From 64b7ed88b716dcf528ced3f438224a6aafde2278 Mon Sep 17 00:00:00 2001 From: kinrezc Date: Tue, 20 Feb 2024 16:35:22 -0500 Subject: [PATCH] fix: init test --- out/Allocate.t.sol/DFMMAllocateTest.json | 1 - out/Allocate.t.sol/G3MAllocateTest.json | 1 - out/Allocate.t.sol/LogNormalAllocateTest.json | 1 - out/ArbMath.sol/ArbMath.json | 1 - out/ArbiterToken.sol/ArbiterToken.json | 1 - out/AtomicV2.sol/AtomicV2.json | 1 - out/AtomicV2.sol/LiquidExchange.json | 1 - out/AtomicV2.sol/StrategyLike.json | 1 - out/AtomicV2.sol/TokenLike.json | 1 - out/Base.sol/CommonBase.json | 1 - out/Base.sol/ScriptBase.json | 1 - out/Base.sol/TestBase.json | 1 - out/BisectionLib.sol/BisectionLib.json | 1 - out/Coin.sol/Coin.json | 1 - out/ConstantSum.sol/ConstantSum.json | 1 - out/ConstantSumLib.sol/ConstantSumLib.json | 1 - out/ConstantSumSolver.sol/ConstantSumSolver.json | 1 - out/ConstantSumTest.t.sol/ConstantSumTest.json | 1 - out/Constructor.t.sol/DFMMConstructorTest.json | 1 - out/DFMM.sol/DFMM.json | 1 - out/Deallocate.t.sol/DFMMDeallocateTest.json | 1 - out/Deallocate.t.sol/G3MDeallocateTest.json | 1 - out/Deallocate.t.sol/LogNormalDeallocateTest.json | 1 - out/Deployment.s.sol/DeploymentScript.json | 1 - out/DynamicParamLib.sol/DynamicParamLib.json | 1 - out/DynamicParamLib.t.sol/DynamicParamLibTest.json | 1 - out/ERC20.sol/ERC20.json | 1 - out/FixedPointMathLib.sol/FixedPointMathLib.json | 1 - out/G3M.sol/G3M.json | 1 - out/G3M.t.sol/G3MAttackTest.json | 1 - out/G3M.t.sol/G3MTestFork.json | 1 - out/G3M.t.sol/USDC.json | 1 - out/G3MExtendedLib.sol/G3MExtendedLib.json | 1 - out/G3MLib.sol/G3MLib.json | 1 - out/G3MLib.t.sol/G3MLibTest.json | 1 - out/G3MSolver.sol/G3MSolver.json | 1 - out/G3MTest.t.sol/G3MTest.json | 1 - out/Gaussian.sol/Gaussian.json | 1 - out/IDFMM.sol/IDFMM.json | 1 - out/IStrategy.sol/IStrategy.json | 1 - out/Init.t.sol/DFMMInit.json | 1 - out/Init.t.sol/G3MInitTest.json | 1 - out/Init.t.sol/LogNormalInitTest.json | 1 - out/Invariant.sol/Invariant.json | 1 - out/LPToken.sol/LPToken.json | 1 - out/LPToken.t.sol/LPTokenTest.json | 1 - out/Lex.sol/Lex.json | 1 - out/LibString.sol/LibString.json | 1 - out/LogNormal.sol/LogNormal.json | 1 - out/LogNormal.t.sol/LogNormalTestFork.json | 1 - out/LogNormalExtendedLib.sol/LogNormalExtendedLib.json | 1 - out/LogNormalLib.sol/LogNormalLib.json | 1 - out/LogNormalMath.sol/LogNormalMath.json | 1 - out/LogNormalSolver.sol/LogNormalSolver.json | 1 - out/LogNormalTest.t.sol/LogNormalTest.json | 1 - out/MockERC20.sol/MockERC20.json | 1 - out/MockStrategy.sol/MockStrategy.json | 1 - out/PortfolioTracker.sol/PortfolioTracker.json | 1 - out/PortfolioTracker.sol/TokenLike.json | 1 - out/SafeTransferLib.sol/SafeTransferLib.json | 1 - out/ScalingLib.sol/ScalingLib.json | 1 - out/ScalingLib.t.sol/ScalingLibTest.json | 1 - out/Script.sol/Script.json | 1 - out/SetUp.sol/DFMMSetUp.json | 1 - out/SetUp.sol/G3MSetUp.json | 1 - out/SetUp.sol/LogNormalSetUp.json | 1 - out/SetUp.sol/SetUp.json | 1 - out/SignedWadMath.sol/SignedWadMathLib.json | 1 - out/StdAssertions.sol/StdAssertions.json | 1 - out/StdChains.sol/StdChains.json | 1 - out/StdCheats.sol/StdCheats.json | 1 - out/StdCheats.sol/StdCheatsSafe.json | 1 - out/StdError.sol/stdError.json | 1 - out/StdJson.sol/stdJson.json | 1 - out/StdMath.sol/stdMath.json | 1 - out/StdStorage.sol/stdStorage.json | 1 - out/StdStorage.sol/stdStorageSafe.json | 1 - out/StdUtils.sol/StdUtils.json | 1 - out/StrategyLib.sol/StrategyLib.json | 1 - out/Swap.t.sol/DFMMSwapTest.json | 1 - out/Swap.t.sol/G3MSwapTest.json | 1 - out/Swap.t.sol/LogNormalSwapTest.json | 1 - out/Test.sol/Test.json | 1 - out/Units.sol/Units.json | 1 - out/Update.t.sol/G3MUpdateTest.json | 1 - out/Update.t.sol/LogNormalUpdateTest.json | 1 - out/Vm.sol/Vm.json | 1 - out/Vm.sol/VmSafe.json | 1 - out/WETH.sol/WETH.json | 1 - out/console.sol/console.json | 1 - out/console2.sol/console2.json | 1 - out/test.sol/DSTest.json | 1 - 92 files changed, 92 deletions(-) delete mode 100644 out/Allocate.t.sol/DFMMAllocateTest.json delete mode 100644 out/Allocate.t.sol/G3MAllocateTest.json delete mode 100644 out/Allocate.t.sol/LogNormalAllocateTest.json delete mode 100644 out/ArbMath.sol/ArbMath.json delete mode 100644 out/ArbiterToken.sol/ArbiterToken.json delete mode 100644 out/AtomicV2.sol/AtomicV2.json delete mode 100644 out/AtomicV2.sol/LiquidExchange.json delete mode 100644 out/AtomicV2.sol/StrategyLike.json delete mode 100644 out/AtomicV2.sol/TokenLike.json delete mode 100644 out/Base.sol/CommonBase.json delete mode 100644 out/Base.sol/ScriptBase.json delete mode 100644 out/Base.sol/TestBase.json delete mode 100644 out/BisectionLib.sol/BisectionLib.json delete mode 100644 out/Coin.sol/Coin.json delete mode 100644 out/ConstantSum.sol/ConstantSum.json delete mode 100644 out/ConstantSumLib.sol/ConstantSumLib.json delete mode 100644 out/ConstantSumSolver.sol/ConstantSumSolver.json delete mode 100644 out/ConstantSumTest.t.sol/ConstantSumTest.json delete mode 100644 out/Constructor.t.sol/DFMMConstructorTest.json delete mode 100644 out/DFMM.sol/DFMM.json delete mode 100644 out/Deallocate.t.sol/DFMMDeallocateTest.json delete mode 100644 out/Deallocate.t.sol/G3MDeallocateTest.json delete mode 100644 out/Deallocate.t.sol/LogNormalDeallocateTest.json delete mode 100644 out/Deployment.s.sol/DeploymentScript.json delete mode 100644 out/DynamicParamLib.sol/DynamicParamLib.json delete mode 100644 out/DynamicParamLib.t.sol/DynamicParamLibTest.json delete mode 100644 out/ERC20.sol/ERC20.json delete mode 100644 out/FixedPointMathLib.sol/FixedPointMathLib.json delete mode 100644 out/G3M.sol/G3M.json delete mode 100644 out/G3M.t.sol/G3MAttackTest.json delete mode 100644 out/G3M.t.sol/G3MTestFork.json delete mode 100644 out/G3M.t.sol/USDC.json delete mode 100644 out/G3MExtendedLib.sol/G3MExtendedLib.json delete mode 100644 out/G3MLib.sol/G3MLib.json delete mode 100644 out/G3MLib.t.sol/G3MLibTest.json delete mode 100644 out/G3MSolver.sol/G3MSolver.json delete mode 100644 out/G3MTest.t.sol/G3MTest.json delete mode 100644 out/Gaussian.sol/Gaussian.json delete mode 100644 out/IDFMM.sol/IDFMM.json delete mode 100644 out/IStrategy.sol/IStrategy.json delete mode 100644 out/Init.t.sol/DFMMInit.json delete mode 100644 out/Init.t.sol/G3MInitTest.json delete mode 100644 out/Init.t.sol/LogNormalInitTest.json delete mode 100644 out/Invariant.sol/Invariant.json delete mode 100644 out/LPToken.sol/LPToken.json delete mode 100644 out/LPToken.t.sol/LPTokenTest.json delete mode 100644 out/Lex.sol/Lex.json delete mode 100644 out/LibString.sol/LibString.json delete mode 100644 out/LogNormal.sol/LogNormal.json delete mode 100644 out/LogNormal.t.sol/LogNormalTestFork.json delete mode 100644 out/LogNormalExtendedLib.sol/LogNormalExtendedLib.json delete mode 100644 out/LogNormalLib.sol/LogNormalLib.json delete mode 100644 out/LogNormalMath.sol/LogNormalMath.json delete mode 100644 out/LogNormalSolver.sol/LogNormalSolver.json delete mode 100644 out/LogNormalTest.t.sol/LogNormalTest.json delete mode 100644 out/MockERC20.sol/MockERC20.json delete mode 100644 out/MockStrategy.sol/MockStrategy.json delete mode 100644 out/PortfolioTracker.sol/PortfolioTracker.json delete mode 100644 out/PortfolioTracker.sol/TokenLike.json delete mode 100644 out/SafeTransferLib.sol/SafeTransferLib.json delete mode 100644 out/ScalingLib.sol/ScalingLib.json delete mode 100644 out/ScalingLib.t.sol/ScalingLibTest.json delete mode 100644 out/Script.sol/Script.json delete mode 100644 out/SetUp.sol/DFMMSetUp.json delete mode 100644 out/SetUp.sol/G3MSetUp.json delete mode 100644 out/SetUp.sol/LogNormalSetUp.json delete mode 100644 out/SetUp.sol/SetUp.json delete mode 100644 out/SignedWadMath.sol/SignedWadMathLib.json delete mode 100644 out/StdAssertions.sol/StdAssertions.json delete mode 100644 out/StdChains.sol/StdChains.json delete mode 100644 out/StdCheats.sol/StdCheats.json delete mode 100644 out/StdCheats.sol/StdCheatsSafe.json delete mode 100644 out/StdError.sol/stdError.json delete mode 100644 out/StdJson.sol/stdJson.json delete mode 100644 out/StdMath.sol/stdMath.json delete mode 100644 out/StdStorage.sol/stdStorage.json delete mode 100644 out/StdStorage.sol/stdStorageSafe.json delete mode 100644 out/StdUtils.sol/StdUtils.json delete mode 100644 out/StrategyLib.sol/StrategyLib.json delete mode 100644 out/Swap.t.sol/DFMMSwapTest.json delete mode 100644 out/Swap.t.sol/G3MSwapTest.json delete mode 100644 out/Swap.t.sol/LogNormalSwapTest.json delete mode 100644 out/Test.sol/Test.json delete mode 100644 out/Units.sol/Units.json delete mode 100644 out/Update.t.sol/G3MUpdateTest.json delete mode 100644 out/Update.t.sol/LogNormalUpdateTest.json delete mode 100644 out/Vm.sol/Vm.json delete mode 100644 out/Vm.sol/VmSafe.json delete mode 100644 out/WETH.sol/WETH.json delete mode 100644 out/console.sol/console.json delete mode 100644 out/console2.sol/console2.json delete mode 100644 out/test.sol/DSTest.json diff --git a/out/Allocate.t.sol/DFMMAllocateTest.json b/out/Allocate.t.sol/DFMMAllocateTest.json deleted file mode 100644 index 3c130cc1..00000000 --- a/out/Allocate.t.sol/DFMMAllocateTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"POOL_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TEST_SWAP_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolLiquidityToken","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_DFMM_allocate_RevertsWhenNoPoolWasInitialized","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_DFMM_allocate_RevertsWhenPoolNotInitialized","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523461002357600160ff19600054161760005561568690816100298239f35b600080fdfe60806040818152600491823610156200001757600080fd5b60009260e08435811c9283630a9254e414620004e85750826342a48a901462000407578263620a260714620003e2578263994d3a02146200023f578263ba414fa61462000214578263e0d7d0e914620001f2578263e21485ad14620000ae57505063fa7626d4146200008857600080fd5b34620000aa5781600319360112620000aa5760ff602092541690519015158152f35b5080fd5b90915034620001ee576020366003190112620001ee57601354835163068bcd8d60e01b81528335818501526001600160a01b0393909183908390602490829088165afa958615620001e357809662000112575b6020868660c08a0151169051908152f35b90919280965083813d8311620001db575b6200012f818362000930565b81010312620001d8575083519485019085821067ffffffffffffffff831117620001c3575093620001b660c0809360209787526200016d8162000b63565b84526200017c88820162000b63565b888501526200018d87820162000b63565b87850152606081015160608501526080810151608085015260a081015160a08501520162000b63565b8282015293388062000101565b604190634e487b7160e01b6000525260246000fd5b80fd5b503d62000123565b8551903d90823e3d90fd5b8380fd5b50505034620000aa5781600319360112620000aa576020906018549051908152f35b50505034620000aa5781600319360112620000aa576020906200023662000a44565b90519015158152f35b50838334620000aa5781600319360112620000aa57805192612f21938481019481861067ffffffffffffffff871117620003cf5781859660209262001be4833986815203019084f0908115620003c357601380546001600160a01b0319166001600160a01b03938416179055620002b562000953565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620003bf57845163f28dceb360e01b81526020848201529186918391829084908290620002ff906024830190620009e2565b03925af18015620003b55790859162000398575b50506060916013541683519485926305d8703160e31b84528301528360248301528186816200034560448201620009a1565b03925af19081156200038f57506200035b575080f35b620003819060603d60601162000387575b62000378818362000930565b81019062000a09565b50505080f35b503d6200036c565b513d84823e3d90fd5b620003a390620008e8565b620003b057838662000313565b505050fd5b84513d87823e3d90fd5b8580fd5b505051903d90823e3d90fd5b634e487b7160e01b855260418352602485fd5b50505034620000aa5781600319360112620000aa5760209051660aa87bee5380008152f35b84828534620004da5782600319360112620004da57826200042762000953565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620004da57835163f28dceb360e01b8152602086820152918391839182908490829062000471906024830190620009e2565b03925af18015620004de57620004c2575b505060135481516305d8703160e31b81526020938101939093526024830182905260609083906001600160a01b03168186816200034560448201620009a1565b620004cd90620008e8565b620004da57828462000482565b8280fd5b83513d84823e3d90fd5b84869334620008e45784600319360112620008e45761106b8084019067ffffffffffffffff9085831082841117620008d15762000b7995818782396060845260066060850152650e8ded6cadcb60d31b6080850152878160209560a087820152600160a0820152600b60fb1b60c082015260128982015203019089f0968715620008485760018060a01b0396876bffffffffffffffffffffffff60a01b99168960155416176015558651928084019184831086841117620008be57908492918339606081526006606082015265746f6b656e5960d01b608082015260a086820152600160a0820152605960f81b60c082015260128882015203019088f08015620008b4578516866016541617601655846015541692833b156200088e5784516340c10f1960e01b808252308383015268056bc75e2d63100000918a816044818360249b888d8401525af180156200083e576200089c575b50908991886016541691823b15620001ee5760448492838b5195869485938452308a8501528c8401525af18015620008925762000876575b5050856015541686601654169086519161059791828401928484108785111762000864579160609391859362004b058539825287820152670de0b6b3a76400008982015203019089f08015620008485786168760145416176014558451612f21808201908282108583111762000852578591839162001be483398b815203019089f08015620008485786166013548189821617601355898589601554169360448a5184819593829463095ea7b360e01b9889855216178983015260001997888d8401525af180156200083e57908692916200081c575b5060448960165416918c8b60135416938b5196879586948552898501528b8401525af180156200081257620007de575b508560135416908551946105b5918287019487861090861117620007cd575050908492916200509c8439815203019085f0908115620007c457501690601754161760175580f35b513d85823e3d90fd5b634e487b7160e01b8b526041905289fd5b6200080290843d86116200080a575b620007f9818362000930565b81019062000a2a565b50886200077d565b503d620007ed565b86513d8b823e3d90fd5b6200083690833d85116200080a57620007f9818362000930565b508b6200074d565b88513d8d823e3d90fd5b85513d8a823e3d90fd5b634e487b7160e01b8b5260418452868bfd5b634e487b7160e01b8d5260418652888dfd5b6200088190620008e8565b6200088e57878962000677565b8780fd5b87513d84823e3d90fd5b620008ab909a91929a620008e8565b98908a6200063f565b84513d89823e3d90fd5b634e487b7160e01b8c526041885260248cfd5b634e487b7160e01b885260418452602488fd5b8480fd5b67ffffffffffffffff8111620008fd57604052565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff821117620008fd57604052565b90601f8019910116810190811067ffffffffffffffff821117620008fd57604052565b604051634e487b7160e01b60208201526032602482015260248152620009798162000913565b90565b60005b838110620009905750506000910152565b81810151838201526020016200097f565b906060519182815260005b838110620009cd5750826000602080949584010152601f8019910116010190565b806020916080015182828501015201620009ac565b90602091620009fd815180928185528580860191016200097c565b601f01601f1916010190565b9081606091031262000a25578051916040602083015192015190565b600080fd5b9081602091031262000a255751801515810362000a255790565b6000805460081c60ff161562000a5e575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62000a8057505090565b908080935060405192602093828582018381526519985a5b195960d21b60408401526040835262000ab18362000913565b62000aec6024604051809362000adb8b830197630667f9d760e41b8952518092858501906200097c565b810103600481018452018262000930565b51925af1503d1562000b54573d67ffffffffffffffff811162000b40576040516200097993929162000b28601f8201601f191684018362000930565b81528092823d92013e5b808251830101910162000a2a565b634e487b7160e01b83526041600452602483fd5b62000979915060609062000b32565b51906001600160a01b038216820362000a255756fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c6343000816003360a03461006957601f6105b538819003918201601f19168301916001600160401b0383118484101761006e5780849260209460405283398101031261006957516001600160a01b038116810361006957608052604051610530908161008582396080518160ef0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600436101561001457600080fd5b600091823560e01c9081622e524b146103f95750806306fdde031461035657806368bd3e381461031d57806373cb2d031461024e5780638a04bdd514610137578063acad29891461011e578063afba13c4146100db5763dc1783551461007957600080fd5b346100d7576020806003193601126100d3579181519283916020835260605191826020850152815b8381106100be575050828201840152601f01601f19168101030190f35b608081015187820187015286945081016100a1565b8280fd5b5080fd5b50346100d757816003193601126100d757517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b82346101345761012d36610493565b5050505080f35b80fd5b5090346101345761014736610493565b849350839250829182918290602090830183900312610134575035600181036101c45750505050505060016101c0670de0b6b3a7640000926802b5e3af16b188000080674563918244f40000925b51958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b0390f35b600981036102055750505050505060016101c0670de0b6b3a76400009268056bc75e2d6310000068068155a43676e0000090678ac7230489e8000092610195565b600814610218575b6101c0939495610195565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d63100000905068068155a43676e0000061020d565b5090346101345761025e36610493565b849350839250829182918290602090830183900312610134575035600181146102e8575b6002146102bb575b6101c093949551958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d6310000090508061028a565b670de0b6b3a7640000955060019450673782dace9d90000093506729a2241af62c00009250671bc16d674ec800009150610282565b50346100d75760c09161032f36610493565b505050508082519281845281602085015283015280606083015280608083015260a0820152f35b50346100d757816003193601126100d757805181810181811067ffffffffffffffff8211176103e5578252600c81526020906b4d6f636b537472617465677960a01b6020820152825193849260208452825192836020860152825b8481106103cf57505050828201840152601f01601f19168101030190f35b81810183015188820188015287955082016103b1565b634e487b7160e01b84526041600452602484fd5b8383346100d757806003193601126100d75767ffffffffffffffff9260243584811161047b573660238201121561047b5780600401359480861161047f57601f8601601f19908116603f011683019081118382101761047f578352848252366024868301011161047b5784849260209660248894018483013701015251908152f35b8380fd5b634e487b7160e01b85526041600452602485fd5b9060606003198301126104f5576004356001600160a01b03811681036104f557916024359160443567ffffffffffffffff928382116104f557806023830112156104f55781600401359384116104f557602484830101116104f5576024019190565b600080fdfea264697066735822122009a636832ec6847884e761e11e93e4c99c16c8767042c516d6f7d4bb27fb9bb064736f6c63430008160033a2646970667358221220881b5dc41032707466ef8d41d14b8d6e9331e68ad6e7c90fbed28f5788fe8f5b64736f6c63430008160033","sourceMap":"88:461:60:-:0;;;;;;;1594:4:0;88:461:60;;1594:4:0;88:461:60;;;1594:4:0;88:461:60;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600491823610156200001757600080fd5b60009260e08435811c9283630a9254e414620004e85750826342a48a901462000407578263620a260714620003e2578263994d3a02146200023f578263ba414fa61462000214578263e0d7d0e914620001f2578263e21485ad14620000ae57505063fa7626d4146200008857600080fd5b34620000aa5781600319360112620000aa5760ff602092541690519015158152f35b5080fd5b90915034620001ee576020366003190112620001ee57601354835163068bcd8d60e01b81528335818501526001600160a01b0393909183908390602490829088165afa958615620001e357809662000112575b6020868660c08a0151169051908152f35b90919280965083813d8311620001db575b6200012f818362000930565b81010312620001d8575083519485019085821067ffffffffffffffff831117620001c3575093620001b660c0809360209787526200016d8162000b63565b84526200017c88820162000b63565b888501526200018d87820162000b63565b87850152606081015160608501526080810151608085015260a081015160a08501520162000b63565b8282015293388062000101565b604190634e487b7160e01b6000525260246000fd5b80fd5b503d62000123565b8551903d90823e3d90fd5b8380fd5b50505034620000aa5781600319360112620000aa576020906018549051908152f35b50505034620000aa5781600319360112620000aa576020906200023662000a44565b90519015158152f35b50838334620000aa5781600319360112620000aa57805192612f21938481019481861067ffffffffffffffff871117620003cf5781859660209262001be4833986815203019084f0908115620003c357601380546001600160a01b0319166001600160a01b03938416179055620002b562000953565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620003bf57845163f28dceb360e01b81526020848201529186918391829084908290620002ff906024830190620009e2565b03925af18015620003b55790859162000398575b50506060916013541683519485926305d8703160e31b84528301528360248301528186816200034560448201620009a1565b03925af19081156200038f57506200035b575080f35b620003819060603d60601162000387575b62000378818362000930565b81019062000a09565b50505080f35b503d6200036c565b513d84823e3d90fd5b620003a390620008e8565b620003b057838662000313565b505050fd5b84513d87823e3d90fd5b8580fd5b505051903d90823e3d90fd5b634e487b7160e01b855260418352602485fd5b50505034620000aa5781600319360112620000aa5760209051660aa87bee5380008152f35b84828534620004da5782600319360112620004da57826200042762000953565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620004da57835163f28dceb360e01b8152602086820152918391839182908490829062000471906024830190620009e2565b03925af18015620004de57620004c2575b505060135481516305d8703160e31b81526020938101939093526024830182905260609083906001600160a01b03168186816200034560448201620009a1565b620004cd90620008e8565b620004da57828462000482565b8280fd5b83513d84823e3d90fd5b84869334620008e45784600319360112620008e45761106b8084019067ffffffffffffffff9085831082841117620008d15762000b7995818782396060845260066060850152650e8ded6cadcb60d31b6080850152878160209560a087820152600160a0820152600b60fb1b60c082015260128982015203019089f0968715620008485760018060a01b0396876bffffffffffffffffffffffff60a01b99168960155416176015558651928084019184831086841117620008be57908492918339606081526006606082015265746f6b656e5960d01b608082015260a086820152600160a0820152605960f81b60c082015260128882015203019088f08015620008b4578516866016541617601655846015541692833b156200088e5784516340c10f1960e01b808252308383015268056bc75e2d63100000918a816044818360249b888d8401525af180156200083e576200089c575b50908991886016541691823b15620001ee5760448492838b5195869485938452308a8501528c8401525af18015620008925762000876575b5050856015541686601654169086519161059791828401928484108785111762000864579160609391859362004b058539825287820152670de0b6b3a76400008982015203019089f08015620008485786168760145416176014558451612f21808201908282108583111762000852578591839162001be483398b815203019089f08015620008485786166013548189821617601355898589601554169360448a5184819593829463095ea7b360e01b9889855216178983015260001997888d8401525af180156200083e57908692916200081c575b5060448960165416918c8b60135416938b5196879586948552898501528b8401525af180156200081257620007de575b508560135416908551946105b5918287019487861090861117620007cd575050908492916200509c8439815203019085f0908115620007c457501690601754161760175580f35b513d85823e3d90fd5b634e487b7160e01b8b526041905289fd5b6200080290843d86116200080a575b620007f9818362000930565b81019062000a2a565b50886200077d565b503d620007ed565b86513d8b823e3d90fd5b6200083690833d85116200080a57620007f9818362000930565b508b6200074d565b88513d8d823e3d90fd5b85513d8a823e3d90fd5b634e487b7160e01b8b5260418452868bfd5b634e487b7160e01b8d5260418652888dfd5b6200088190620008e8565b6200088e57878962000677565b8780fd5b87513d84823e3d90fd5b620008ab909a91929a620008e8565b98908a6200063f565b84513d89823e3d90fd5b634e487b7160e01b8c526041885260248cfd5b634e487b7160e01b885260418452602488fd5b8480fd5b67ffffffffffffffff8111620008fd57604052565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff821117620008fd57604052565b90601f8019910116810190811067ffffffffffffffff821117620008fd57604052565b604051634e487b7160e01b60208201526032602482015260248152620009798162000913565b90565b60005b838110620009905750506000910152565b81810151838201526020016200097f565b906060519182815260005b838110620009cd5750826000602080949584010152601f8019910116010190565b806020916080015182828501015201620009ac565b90602091620009fd815180928185528580860191016200097c565b601f01601f1916010190565b9081606091031262000a25578051916040602083015192015190565b600080fd5b9081602091031262000a255751801515810362000a255790565b6000805460081c60ff161562000a5e575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62000a8057505090565b908080935060405192602093828582018381526519985a5b195960d21b60408401526040835262000ab18362000913565b62000aec6024604051809362000adb8b830197630667f9d760e41b8952518092858501906200097c565b810103600481018452018262000930565b51925af1503d1562000b54573d67ffffffffffffffff811162000b40576040516200097993929162000b28601f8201601f191684018362000930565b81528092823d92013e5b808251830101910162000a2a565b634e487b7160e01b83526041600452602483fd5b62000979915060609062000b32565b51906001600160a01b038216820362000a255756fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c6343000816003360a03461006957601f6105b538819003918201601f19168301916001600160401b0383118484101761006e5780849260209460405283398101031261006957516001600160a01b038116810361006957608052604051610530908161008582396080518160ef0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600436101561001457600080fd5b600091823560e01c9081622e524b146103f95750806306fdde031461035657806368bd3e381461031d57806373cb2d031461024e5780638a04bdd514610137578063acad29891461011e578063afba13c4146100db5763dc1783551461007957600080fd5b346100d7576020806003193601126100d3579181519283916020835260605191826020850152815b8381106100be575050828201840152601f01601f19168101030190f35b608081015187820187015286945081016100a1565b8280fd5b5080fd5b50346100d757816003193601126100d757517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b82346101345761012d36610493565b5050505080f35b80fd5b5090346101345761014736610493565b849350839250829182918290602090830183900312610134575035600181036101c45750505050505060016101c0670de0b6b3a7640000926802b5e3af16b188000080674563918244f40000925b51958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b0390f35b600981036102055750505050505060016101c0670de0b6b3a76400009268056bc75e2d6310000068068155a43676e0000090678ac7230489e8000092610195565b600814610218575b6101c0939495610195565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d63100000905068068155a43676e0000061020d565b5090346101345761025e36610493565b849350839250829182918290602090830183900312610134575035600181146102e8575b6002146102bb575b6101c093949551958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d6310000090508061028a565b670de0b6b3a7640000955060019450673782dace9d90000093506729a2241af62c00009250671bc16d674ec800009150610282565b50346100d75760c09161032f36610493565b505050508082519281845281602085015283015280606083015280608083015260a0820152f35b50346100d757816003193601126100d757805181810181811067ffffffffffffffff8211176103e5578252600c81526020906b4d6f636b537472617465677960a01b6020820152825193849260208452825192836020860152825b8481106103cf57505050828201840152601f01601f19168101030190f35b81810183015188820188015287955082016103b1565b634e487b7160e01b84526041600452602484fd5b8383346100d757806003193601126100d75767ffffffffffffffff9260243584811161047b573660238201121561047b5780600401359480861161047f57601f8601601f19908116603f011683019081118382101761047f578352848252366024868301011161047b5784849260209660248894018483013701015251908152f35b8380fd5b634e487b7160e01b85526041600452602485fd5b9060606003198301126104f5576004356001600160a01b03811681036104f557916024359160443567ffffffffffffffff928382116104f557806023830112156104f55781600401359384116104f557602484830101116104f5576024019190565b600080fdfea264697066735822122009a636832ec6847884e761e11e93e4c99c16c8767042c516d6f7d4bb27fb9bb064736f6c63430008160033a2646970667358221220881b5dc41032707466ef8d41d14b8d6e9331e68ad6e7c90fbed28f5788fe8f5b64736f6c63430008160033","sourceMap":"88:461:60:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;88:461:60;;;;992:4:59;88:461:60;;;-1:-1:-1;;;992:20:59;;88:461:60;;992:20:59;;;88:461:60;-1:-1:-1;;;;;88:461:60;;;;;;;;;;;;;992:20:59;;;;;;;;;;;88:461:60;;1029:19:59;;;;;88:461:60;;;;;;;;992:20:59;;;;;;;;;;;;;;;;;;;:::i;:::-;;;88:461:60;;;;;;;1057:14:1;;;;;;;;;;;;;;;88:461:60;;1057:14:1;;88:461:60;1057:14:1;;;88:461:60;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;778:47:6;88:461:60;;;;;;;778:47:6;88:461:60;;;;;;;778:47:6;88:461:60;;;;;;:::i;:::-;;;;;992:20:59;;;;;1057:14:1;88:461:60;;;;;;;;;;;;;;992:20:59;;;;;;88:461:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;208:22:64;88:461:60;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;410:20;;;;;;;;;;;;;;;;;;;88:461;410:20;;;;88:461;;;410:20;;;;;;;;;;403:27;88:461;;-1:-1:-1;;;;;;88:461:60;-1:-1:-1;;;;;88:461:60;;;;;;484:22;;:::i;:::-;88:461;468:39;;;;;88:461;;-1:-1:-1;;;468:39:60;;88:461;468:39;;;778:47:6;88:461:60;;;;;;;;;;;778:47:6;;;;;;;:::i;:::-;468:39:60;;;;;;;;;;;;;88:461;;;;;403:27;88:461;;;;778:47:6;;;;;;517:23:60;;;;88:461;;778:47:6;88:461:60;;;;;;;;;;;:::i;:::-;517:23;;;;;;;;;;;;88:461;;;517:23;;;88:461;517:23;88:461;517:23;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;88:461;;;517:23;;;;;;88:461;;;;;;;;468:39;;;;:::i;:::-;88:461;;468:39;;;;88:461;;;;;468:39;88:461;;;;;;;;;468:39;88:461;;;410:20;88:461;;;;;;;;;;;410:20;-1:-1:-1;;;88:461:60;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;88:461:60;;;;;;;;;;;;;;;;;;254:22;;;:::i;:::-;88:461;238:39;;;;;88:461;;-1:-1:-1;;;238:39:60;;778:47:6;238:39:60;;;778:47:6;88:461:60;;;;;;;;;;;778:47:6;;;;;;;:::i;:::-;238:39:60;;;;;;;;;;88:461;-1:-1:-1;;287:4:60;88:461;;;-1:-1:-1;;;287:24:60;;778:47:6;287:24:60;;;88:461;;;;778:47:6;;;;;;88:461:60;;;;-1:-1:-1;;;;;88:461:60;;778:47:6;88:461:60;778:47:6;;;;;:::i;238:39:60:-;;;;:::i;:::-;88:461;;238:39;;;;88:461;;;;238:39;88:461;;;;;;;;;;;;;;;;;;;;;;;;447:32:59;;;;;;;;;;;;;;;;;;;;;;88:461:60;;;;;;;778:47:6;-1:-1:-1;;;778:47:6;;;88:461:60;778:47:6;;;88:461:60;;;;;;;;;;778:47:6;-1:-1:-1;;;778:47:6;;;88:461:60;476:2:59;88:461:60;;;1057:14:1;447:32:59;;;;;;;;;;;88:461:60;;;;;;;;;;;;438:41:59;88:461:60;;;438:41:59;88:461:60;;;498:32:59;;;;;;;;;;;;;;;;;;;;88:461:60;;;;;;;778:47:6;-1:-1:-1;;;778:47:6;;;88:461:60;;;;;;;;;;778:47:6;-1:-1:-1;;;778:47:6;;;88:461:60;476:2:59;88:461:60;;;1057:14:1;498:32:59;;;;;;;;;88:461:60;;;489:41:59;88:461:60;;;489:41:59;88:461:60;;438:41:59;88:461:60;;540:34:59;;;;;;88:461:60;;778:47:6;;;540:34:59;;;560:4;540:34;;;88:461:60;567:6:59;88:461:60;;;;;;;;;;;;;540:34:59;;;;;;;;88:461:60;;;;;;489:41:59;88:461:60;;584:34:59;;;;;;88:461:60;;;;;;584:34:59;;;;;;;560:4;584:34;;;88:461:60;;;;;584:34:59;;;;;;;;88:461:60;;;;438:41:59;88:461:60;;;489:41:59;88:461:60;;;;;635:50:59;;;;;;;;;;;;;;;;;88:461:60;635:50:59;;;;;;;88:461:60;;;;;;677:7:59;88:461:60;;;;635:50:59;;;;;;;;;88:461:60;;;629:56:59;88:461:60;;;629:56:59;88:461:60;;;702:20:59;;;;;;;;;;;;;;;;;;;;;88:461:60;;;702:20:59;;;;;;;;;88:461:60;;695:27:59;88:461:60;;;;;;695:27:59;88:461:60;;;;438:41:59;88:461:60;;;;;;778:47:6;;;;;;;;;733:48:59;;;;88:461:60;;733:48:59;;;88:461:60;763:17:59;;88:461:60;;;;;;733:48:59;;;;;;;;;;;;88:461:60;;;;489:41:59;88:461:60;;;;;695:27:59;88:461:60;;;;;791:48:59;;;;;;;;;;88:461:60;;;;;791:48:59;;;;;;;;88:461:60;;;695:27:59;88:461:60;;;;;314:31:64;;;;;;;;;;;;;;;;;;;;;;;;;88:461:60;;314:31:64;;;;;;;;;;88:461:60;;;303:42:64;88:461:60;;;303:42:64;88:461:60;;;314:31:64;88:461:60;;;;;;;;314:31:64;-1:-1:-1;;;88:461:60;;;;;;;791:48:59;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;88:461:60;;;;;;;;;733:48:59;;;;;;;;;;;;;:::i;:::-;;;;;;88:461:60;;;;;;;;;702:20:59;88:461:60;;;;;;;;;702:20:59;-1:-1:-1;;;88:461:60;;;;;;;;635:50:59;-1:-1:-1;;;88:461:60;;;;;;;;584:34:59;;;;:::i;:::-;88:461:60;;584:34:59;;;;88:461:60;;;;584:34:59;88:461:60;;;;;;;;;540:34:59;;;;;;;;:::i;:::-;;;;;;498:32;88:461:60;;;;;;;;;498:32:59;-1:-1:-1;;;88:461:60;;;;;;;;447:32:59;-1:-1:-1;;;88:461:60;;;;;;;;;;;;1057:14:1;;;;;;;;:::o;:::-;88:461:60;;;1057:14:1;88:461:60;;;;;1057:14:1;88:461:60;1057:14:1;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;740:85:6:-;88:461:60;;;;;778:47:6;;;;820:4;778:47;;;1057:14:1;778:47:6;;;;;;:::i;:::-;740:85;:::o;778:47::-;;;;;;;;-1:-1:-1;;778:47:6;;;;:::o;:::-;;;;;;;;;;;;;;;88:461:60;778:47:6;;;;;;;;;;;;;;;;;;;;;;;1057:14:1;;;;;;778:47:6;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1057:14:1;;-1:-1:-1;;1057:14:1;778:47:6;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;88:461:60;;;1671:64:0;;;;;;;;;;88:461:60;;;1671:64:0;;;;;:::o;1819:584::-;1873:7;88:461:60;;;;;;;;;;;;;;;1896:14:0:o;1869:528::-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;88:461:60;;;;;;;2196:43:0;;;;;;;88:461:60;;;1671:64:0;;;88:461:60;1671:64:0;;88:461:60;;2196:43:0;;;;;:::i;:::-;2086:175;1671:64;88:461:60;;2086:175:0;;1671:64;2086:175;;;1671:64;;;;;;778:47:6;1671:64:0;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:0;;;;;;;;;;88:461:60;;2312:27:0;;88:461:60;;1671:64:0;1057:14:1;;;-1:-1:-1;;1057:14:1;1671:64:0;;88:461:60;1671:64:0;:::i;:::-;;;;;;;;;;;778:47:6;;;2312:27:0;;;;;;:::i;1671:64::-;-1:-1:-1;;;88:461:60;;;2086:175:0;88:461:60;1671:64:0;88:461:60;;1671:64:0;2312:27;1671:64;;88:461:60;1671:64:0;;;88:461:60;;;-1:-1:-1;;;;;88:461:60;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","POOL_ID()":"e0d7d0e9","TEST_SWAP_FEE()":"620a2607","failed()":"ba414fa6","getPoolLiquidityToken(uint256)":"e21485ad","setUp()":"0a9254e4","test_DFMM_allocate_RevertsWhenNoPoolWasInitialized()":"994d3a02","test_DFMM_allocate_RevertsWhenPoolNotInitialized()":"42a48a90"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POOL_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_SWAP_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolLiquidityToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_DFMM_allocate_RevertsWhenNoPoolWasInitialized\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_DFMM_allocate_RevertsWhenPoolNotInitialized\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/unit/DFMM/Allocate.t.sol\":\"DFMMAllocateTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]},\"src/test/helpers/MockStrategy.sol\":{\"keccak256\":\"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5\",\"dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw\"]},\"src/test/helpers/SetUp.sol\":{\"keccak256\":\"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30\",\"dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14\"]},\"src/test/unit/DFMM/Allocate.t.sol\":{\"keccak256\":\"0x3fe4a90df5c176fa8df77b73a1427dd7a5ab1f167e71c2d512b659b2f4f22f96\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://56b8ff30a100e840c84214f26ce0dec6d4bbaaff3de04db981c0eb1cad3a09b5\",\"dweb:/ipfs/QmR3VR4jrh1bkhhvvq1ZDE7sQeDFK7ZezDWF8wgPD4DhKj\"]},\"src/test/unit/DFMM/SetUp.sol\":{\"keccak256\":\"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4\",\"dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"POOL_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_SWAP_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolLiquidityToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_DFMM_allocate_RevertsWhenNoPoolWasInitialized"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_DFMM_allocate_RevertsWhenPoolNotInitialized"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/unit/DFMM/Allocate.t.sol":"DFMMAllocateTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"},"src/test/helpers/MockStrategy.sol":{"keccak256":"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a","urls":["bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5","dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw"],"license":"UNLICENSED"},"src/test/helpers/SetUp.sol":{"keccak256":"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb","urls":["bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30","dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14"],"license":"UNLICENSED"},"src/test/unit/DFMM/Allocate.t.sol":{"keccak256":"0x3fe4a90df5c176fa8df77b73a1427dd7a5ab1f167e71c2d512b659b2f4f22f96","urls":["bzz-raw://56b8ff30a100e840c84214f26ce0dec6d4bbaaff3de04db981c0eb1cad3a09b5","dweb:/ipfs/QmR3VR4jrh1bkhhvvq1ZDE7sQeDFK7ZezDWF8wgPD4DhKj"],"license":"UNLICENSED"},"src/test/unit/DFMM/SetUp.sol":{"keccak256":"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a","urls":["bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4","dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/unit/DFMM/Allocate.t.sol","id":44912,"exportedSymbols":{"ArbiterToken":[43381],"DFMM":[29062],"DFMMAllocateTest":[44911],"DFMMSetUp":[45761],"DSTest":[1786],"ERC20":[25948],"FixedPointMathLib":[26640],"IDFMM":[29730],"IStrategy":[29839],"LPToken":[29516],"Lex":[44392],"LibString":[26659],"Min":[27736],"MockERC20":[25560],"MockStrategy":[44649],"SafeTransferLib":[26744],"SetUp":[44852],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"Test":[8195],"TestBase":[1843],"Vm":[9352],"WETH":[26027],"abs":[27763],"computeScalingFactor":[30048],"console":[17416],"console2":[25512],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"muli":[27777],"muliWad":[27795],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"39:511:60","nodes":[{"id":44854,"nodeType":"PragmaDirective","src":"39:24:60","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":44855,"nodeType":"ImportDirective","src":"65:21:60","nodes":[],"absolutePath":"src/test/unit/DFMM/SetUp.sol","file":"./SetUp.sol","nameLocation":"-1:-1:-1","scope":44912,"sourceUnit":45762,"symbolAliases":[],"unitAlias":""},{"id":44911,"nodeType":"ContractDefinition","src":"88:461:60","nodes":[{"id":44878,"nodeType":"FunctionDefinition","src":"133:185:60","nodes":[],"body":{"id":44877,"nodeType":"Block","src":"200:118:60","nodes":[],"statements":[{"assignments":[44861],"declarations":[{"constant":false,"id":44861,"mutability":"mutable","name":"empty","nameLocation":"223:5:60","nodeType":"VariableDeclaration","scope":44877,"src":"210:18:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":44860,"name":"bytes","nodeType":"ElementaryTypeName","src":"210:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":44862,"nodeType":"VariableDeclarationStatement","src":"210:18:60"},{"expression":{"arguments":[{"expression":{"id":44866,"name":"stdError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5247,"src":"254:8:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdError_$5247_$","typeString":"type(library stdError)"}},"id":44867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"263:13:60","memberName":"indexOOBError","nodeType":"MemberAccess","referencedDeclaration":5232,"src":"254:22:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":44863,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"238:2:60","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":44865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"241:12:60","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":9116,"src":"238:15:60","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":44868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"238:39:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44869,"nodeType":"ExpressionStatement","src":"238:39:60"},{"expression":{"arguments":[{"hexValue":"3332","id":44873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"301:2:60","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"id":44874,"name":"empty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"305:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":44870,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"287:4:60","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":44872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"292:8:60","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":28225,"src":"287:13:60","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) payable external returns (uint256,uint256,uint256)"}},"id":44875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"287:24:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"id":44876,"nodeType":"ExpressionStatement","src":"287:24:60"}]},"functionSelector":"42a48a90","implemented":true,"kind":"function","modifiers":[],"name":"test_DFMM_allocate_RevertsWhenPoolNotInitialized","nameLocation":"142:48:60","parameters":{"id":44858,"nodeType":"ParameterList","parameters":[],"src":"190:2:60"},"returnParameters":{"id":44859,"nodeType":"ParameterList","parameters":[],"src":"200:0:60"},"scope":44911,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":44910,"nodeType":"FunctionDefinition","src":"324:223:60","nodes":[],"body":{"id":44909,"nodeType":"Block","src":"393:154:60","nodes":[],"statements":[{"expression":{"id":44890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44881,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"403:4:60","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30","id":44887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"427:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":44886,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"419:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":44885,"name":"address","nodeType":"ElementaryTypeName","src":"419:7:60","typeDescriptions":{}}},"id":44888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"419:10:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"410:8:60","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_DFMM_$29062_$","typeString":"function (address) returns (contract DFMM)"},"typeName":{"id":44883,"nodeType":"UserDefinedTypeName","pathNode":{"id":44882,"name":"DFMM","nameLocations":["414:4:60"],"nodeType":"IdentifierPath","referencedDeclaration":29062,"src":"414:4:60"},"referencedDeclaration":29062,"src":"414:4:60","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}},"id":44889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"410:20:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"src":"403:27:60","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":44891,"nodeType":"ExpressionStatement","src":"403:27:60"},{"assignments":[44893],"declarations":[{"constant":false,"id":44893,"mutability":"mutable","name":"empty","nameLocation":"453:5:60","nodeType":"VariableDeclaration","scope":44909,"src":"440:18:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":44892,"name":"bytes","nodeType":"ElementaryTypeName","src":"440:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":44894,"nodeType":"VariableDeclarationStatement","src":"440:18:60"},{"expression":{"arguments":[{"expression":{"id":44898,"name":"stdError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5247,"src":"484:8:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdError_$5247_$","typeString":"type(library stdError)"}},"id":44899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"493:13:60","memberName":"indexOOBError","nodeType":"MemberAccess","referencedDeclaration":5232,"src":"484:22:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":44895,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"468:2:60","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":44897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"471:12:60","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":9116,"src":"468:15:60","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":44900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"468:39:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44901,"nodeType":"ExpressionStatement","src":"468:39:60"},{"expression":{"arguments":[{"hexValue":"30","id":44905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"531:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":44906,"name":"empty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44893,"src":"534:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":44902,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"517:4:60","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":44904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"522:8:60","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":28225,"src":"517:13:60","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) payable external returns (uint256,uint256,uint256)"}},"id":44907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"517:23:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"id":44908,"nodeType":"ExpressionStatement","src":"517:23:60"}]},"functionSelector":"994d3a02","implemented":true,"kind":"function","modifiers":[],"name":"test_DFMM_allocate_RevertsWhenNoPoolWasInitialized","nameLocation":"333:50:60","parameters":{"id":44879,"nodeType":"ParameterList","parameters":[],"src":"383:2:60"},"returnParameters":{"id":44880,"nodeType":"ParameterList","parameters":[],"src":"393:0:60"},"scope":44911,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":44856,"name":"DFMMSetUp","nameLocations":["117:9:60"],"nodeType":"IdentifierPath","referencedDeclaration":45761,"src":"117:9:60"},"id":44857,"nodeType":"InheritanceSpecifier","src":"117:9:60"}],"canonicalName":"DFMMAllocateTest","contractDependencies":[25560,29062,44392,44649],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[44911,45761,44852,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"DFMMAllocateTest","nameLocation":"97:16:60","scope":44912,"usedErrors":[],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":60} \ No newline at end of file diff --git a/out/Allocate.t.sol/G3MAllocateTest.json b/out/Allocate.t.sol/G3MAllocateTest.json deleted file mode 100644 index b23e6a5b..00000000 --- a/out/Allocate.t.sol/G3MAllocateTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"POOL_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TEST_SWAP_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolLiquidityToken","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_G3M_allocate_GivenX","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_G3M_allocate_GivenY","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"BisectionLib_InvalidBounds","inputs":[{"name":"lower","type":"uint256","internalType":"uint256"},{"name":"upper","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BisectionLib_RootOutsideBounds","inputs":[{"name":"lowerResult","type":"int256","internalType":"int256"},{"name":"upperResult","type":"int256","internalType":"int256"}]}],"bytecode":{"object":"0x34620000ae57600160ff1960005416176000556101006040526706f05b59d3b20000806080528060a052660aa87bee538000908160c0523060e05280601a55601b55601c553060018060a01b0319601d541617601d5562000067670de0b6b3a7640000601e55565b62000079670de0b6b3a7640000601f55565b6200009e62000098601e54601f54620000916200010f565b91620002d3565b620001de565b604051619524908162000ba68239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b03821117620000e557604052565b620000b3565b601f909101601f19168101906001600160401b03821190821017620000e557604052565b604051906200011e82620000c9565b601a548252601b546020830152601c546040830152601d546001600160a01b03166060830152565b90600182811c9216801562000178575b60208310146200016257565b634e487b7160e01b600052602260045260246000fd5b91607f169162000156565b601f811162000190575050565b60009060206000526020600020906020601f850160051c83019410620001d3575b601f0160051c01915b828110620001c757505050565b818155600101620001ba565b9092508290620001b1565b80519091906001600160401b038111620000e5576020906200020c8162000206845462000146565b62000183565b81601f8211600114620002505781906200024093949560009262000244575b50508160011b916000199060031b1c19161790565b9055565b0151905038806200022b565b6020600052601f198216907fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb9160005b818110620002bb57509583600195969710620002a1575b505050811b019055565b015160001960f88460031b161c1916905538808062000297565b91928560018192868b01518155019401920162000280565b92916200031d60208201620003166200030d6200030588620002ff855198620002ff8951809b62000731565b62000754565b958862000516565b91518562000516565b90620006d9565b936200032c8286858462000496565b859060008082121562000438575b808212620004155750620003b862000405926200041296979886935b6040805160208082018a90528183018d90526060808301949094528a5160808301528a015160a08201529089015160c08201529701516001600160a01b031660e0808901919091528752601f1996620003b261010082620000eb565b620007b2565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b03908101835282620000eb565b90565b9662000422915062000776565b95620004318488878662000496565b906200033a565b9691965b8082136200045d5750620003b8620004129596976200040593869362000356565b966200046a915062000706565b95620004798488878662000496565b906200043c565b634e487b7160e01b600052601160045260246000fd5b926020620004c784620004c0620004b7620003169697620004d19962000731565b85519062000516565b9562000731565b9101519062000516565b670de0b6b3a763ffff198101908113600116620004eb5790565b62000480565b818102929160008212600160ff1b821416620004eb578184051490151715620004eb57565b620006c562000412927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284620006d3936200055160008213620008f0565b711340daa0d5f769dba1915cef59f0815a55066200056f8262000ac5565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d019160016c0504a838426634cdd8738f543560611b0319916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d620004f1565b670de0b6b3a7640000900590565b62000929565b818102918183041490151760011615620000ae576001670de0b6b3a7640000600019830104019015150290565b6103e990818102918183041490151760011615620000ae5760016103e8600019830104019015150290565b670de0b6b3a76400009081810291818304149015178215151615620000ae570490565b818102918183041490151760011615620000ae57670de0b6b3a7640000900490565b6103e790818102918183041490151760011615620000ae576103e8900490565b91908203918211620004eb57565b91908201809211620004eb57565b60009392918491838211620008d057620007cd828262000b2d565b620007d9858362000b2d565b6000620007e78284620004f1565b13620008b15750620007fc8386979662000796565b60019460009186805b62000817575b50505050505050509050565b1562000887575b50859697985080916200083c620008368b88620007a4565b60011c90565b99620008498b8762000b2d565b9083620008578784620004f1565b136200087a57505089925b876200086f888662000796565b920193999862000805565b8b97509094509262000862565b861080620008a5575b156200089d57886200081e565b80806200080b565b50610100821062000890565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b15620008f857565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131562000abf57680755bf798b4a1bf1e581121562000a8b576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b3989179d835ebba824c98fb31b83b2ca45c0000000000000000000000006060916b8000000000000000000000008582851b0501831d94850290036e0587f503bb6ea29d25fcb740196450816c10fe68e7fd37d0007b713f7650810102841d936e05180bb14799ab47a8a8cb2a527d57836e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028a1d0102881d0102861d0102841d0102821d01946d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b62000ad2811515620008f0565b8060018060801b031060071b81811c60018060401b031060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b8080518101039160e08312620000ae576020820151926080604084015191605f190112620000ae5760e06040519362000b6685620000c9565b6080810151855260a0810151602086015260c081015160408601520151936001600160a01b0385168503620000ae57620004129460608501526200049656fe60808060405260043610156200001457600080fd5b6000803560e01c91826305457be914620000ac57505080630a9254e414620000a6578063620a260714620000a0578063acb87c30146200009a578063ba414fa61462000094578063e0d7d0e9146200008e578063e21485ad14620000885763fa7626d4146200008257600080fd5b620009e1565b620008a9565b62000889565b62000860565b62000778565b62000754565b62000276565b34620002615781600319360112620002615781737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000261576372eb5f8160e11b8352600060845282908183607f1960a401925af180156200024a5762000250575b60175482908290620001e6906200012c906001600160a01b03165b6001600160a01b031690565b601554620001a29062000148906001600160a01b031662000120565b601654620001929062000164906001600160a01b031662000120565b91620001826200017362000a8e565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6001600160a01b03166040830152565b620001ac62000ad0565b6060820152601354620001c8906001600160a01b031662000120565b906040519485809481936305157c7f60e21b83526004830162000c43565b03925af19081156200024a576200020692849262000213575b5050601955565b6200021062000d06565b80f35b620002379250803d1062000242575b6200022e818362000a6b565b81019062000bd4565b5050508380620001ff565b503d62000222565b62000ac4565b6200025b6080604052565b62000105565b5080fd5b60009103126200027157565b600080fd5b3462000271576000806003193601126200075157620002946200140a565b6040805161106b8082019067ffffffffffffffff9280831084841117620007125780620002c9620017a594848684396200103e565b039086f080156200024a57601580546001600160a01b0319166001600160a01b039092169190911790558351918183018381108582111762000712578392620003149284396200107e565b039084f080156200024a57601680546001600160a01b0319166001600160a01b039283161790556015546200034a911662000120565b803b156200074d5782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af180156200024a5762000736575b506016548490620003a9906001600160a01b031662000120565b91823b156200026157845190815230600482015268056bc75e2d631000006024820152918290604490829084905af180156200024a5762000718575b50601554620003fd906001600160a01b031662000120565b60165462000414906001600160a01b031662000120565b9083519161059790818401928484108685111762000712578493620004619362008f5886396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200024a57601480546001600160a01b0319166001600160a01b039092169190911790558151612f21808201908282108483111762000712578291620004b7916200281084396000815260200190565b039084f080156200024a57601380546001600160a01b0319166001600160a01b03929092169182179055620004ec9062000120565b8251906112cb808301918383108584111762000712578392620005229262007c8d85396001600160a01b03909116815260200190565b039084f080156200024a57601780546001600160a01b0319166001600160a01b03929092169182179055620005579062000120565b82519161255c808401929091831184841017620007125783926200058e926200573185396001600160a01b03909116815260200190565b039083f09081156200024a57620005c5620006319260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b601554620005dc906001600160a01b031662000120565b601354620005f3906001600160a01b031662000120565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200024a57620006a9938593620006f0575b5060165462000662906001600160a01b031662000120565b60135490919087906200067e906001600160a01b031662000120565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200024a57620006bd578280f35b81620006e192903d10620006e8575b620006d8818362000a6b565b810190620010be565b5038808280f35b503d620006cc565b6200070a90843d8611620006e857620006d8818362000a6b565b50386200064a565b62000a06565b80620007286200072f9262000a1c565b8062000265565b38620003e5565b8062000728620007469262000a1c565b386200038f565b8380fd5b80fd5b346200027157600036600319011262000271576020604051660aa87bee5380008152f35b3462000271576000806003193601126200075157737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000261576040516372eb5f8160e11b8152600060048201529082908290602490829084905af180156200024a5762000849575b506017548190608090620007fa906200012c906001600160a01b031662000120565b03925af180156200024a576200081891839162000822575b50601955565b62000210620010d8565b6200083f915060803d60801162000242576200022e818362000a6b565b5050503862000812565b8062000728620008599262000a1c565b38620007d8565b3462000271576000366003190112620002715760206200087f62001199565b6040519015158152f35b346200027157600036600319011262000271576020601954604051908152f35b3462000271576020366003190112620002715760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa9081156200024a576000916200092d575b60c082015162000929906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e011620009d8575b816200094b60e0938362000a6b565b8101031262000271576200090f60c06200092992620009cb8260405192620009738462000a31565b6200097e8162000aaf565b84526200098e6020820162000aaf565b6020850152620009a16040820162000aaf565b6040850152606081015160608501526080810151608085015260a081015160a08501520162000aaf565b82820152925050620008fb565b3d91506200093c565b34620002715760003660031901126200027157602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200071257604052565b60e0810190811067ffffffffffffffff8211176200071257604052565b6080810190811067ffffffffffffffff8211176200071257604052565b90601f8019910116810190811067ffffffffffffffff8211176200071257604052565b604051906080820182811067ffffffffffffffff8211176200071257604052565b51906001600160a01b03821682036200027157565b6040513d6000823e3d90fd5b6040519060006020906020546001928160011c936001831692831562000bc9575b60208610841462000bb55785885287949360208601939291811562000b94575060011462000b2d575b50505062000b2b9250038362000a6b565b565b92509362000b5d60206000527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb90565b946000935b82851062000b7d5750505062000b2b93500138808062000b1a565b865485850152958601958895509381019362000b62565b9250505062000b2b9491925060ff19168252151560051b0138808062000b1a565b634e487b7160e01b85526022600452602485fd5b94607f169462000af1565b919082608091031262000271578151916020810151916060604083015192015190565b60005b83811062000c0b5750506000910152565b818101518382015260200162000bfa565b9060209162000c378151809281855285808601910162000bf7565b601f01601f1916010190565b60a0606062000c869360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062000c1c565b90565b9081606091031262000271578051916040602083015192015190565b9081602091031262000271575190565b60409062000c8693928152816020820152019062000c1c565b634e487b7160e01b600052601160045260246000fd5b9190820391821162000cf257565b62000cce565b9190820180921162000cf257565b60185462000d1d906001600160a01b031662000120565b6019546040805163ee3e8cfb60e01b8152600480820184905267016345785d8a0000602483015292939092606091829085908180604481015b03915afa80156200024a5760009160009560009262001016575b5060135462000d88906001600160a01b031662000120565b8551633be6a34160e01b8082523084830190815260208181018c90529a929691939192908b90889081906040010381855afa9687156200024a5760009762000ff2575b5088516333854efd60e21b9687825289828062000def868b83019190602083019252565b0381875afa9b8c156200024a578d9260009d62000fab575b508b519283019586526020860152604085015262000e5a93899391929062000e3d90849060600103601f19810185528462000a6b565b60008b518096819582946305d8703160e31b84528b840162000cb5565b03925af180156200024a5762000f89575b5060135462000e83906001600160a01b031662000120565b9260195494875191825286828062000ea2898883019190602083019252565b0381885afa9687156200024a5762000efa998b9862000ed89462000ed19360009262000f52575b505062000ce4565b9062000cf8565b9551908152309181019182526020820193909352919485928391829160400190565b03915afa9182156200024a5762000b2b9360009362000f1c575b505062001271565b62000f41929350803d1062000f4a575b62000f38818362000a6b565b81019062000ca5565b90388062000f14565b503d62000f2c565b62000f769250803d1062000f81575b62000f6d818362000a6b565b81019062000c89565b915050388062000ec9565b503d62000f61565b62000fa390863d881162000f815762000f6d818362000a6b565b505062000e6b565b8c9d50928b959386979593973d881162000fea575b62000fcc818362000a6b565b810162000fd99162000c89565b9150509d5092949591939562000e07565b503d62000fc0565b6200100e9197508b3d8d1162000f4a5762000f38818362000a6b565b953862000dcb565b91509450620010359150823d841162000f815762000f6d818362000a6b565b90943862000d70565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b908160209103126200027157518015158103620002715790565b601854620010ef906001600160a01b031662000120565b60195460408051631fc5d02760e21b8152600480820184905267016345785d8a00006024830152929390926060918290859081806044810162000d56565b90600491630667f9d760e41b815262001150825180936020868501910162000bf7565b010190565b3d1562001194573d9067ffffffffffffffff821162000712576040519162001188601f8201601f19166020018462000a6b565b82523d6000602084013e565b606090565b6000805460081c60ff1615620011b3575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620011d557505090565b81925060405182816200121360208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b0362001228601f199182810185528462000a6b565b6200124e6040519182620012416020820196876200112d565b0390810183528262000a6b565b51925af15062000c866200126162001155565b60208082518301019101620010be565b908082036200127e575050565b6080806040938451937f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50836020968781526022888201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8982015261745d60f01b6060820152a1855190868252600a87830152690808115e1c1958dd195960b21b6060830152858201527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8938491a1845190858252600a8683015269080808081058dd1d585b60b21b606083015284820152a1737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62001383575b50505061010061ff00196000541617600055565b826000620013e0620013f1602483979684975195818701908882526519985a5b195960d21b818901526001606089015260608852620013c28862000a4e565b519485928301976370ca10bb60e01b89525180928585019062000bf7565b810103600481018452018262000a6b565b51925af1506200140062001155565b503880806200136f565b6040805161106b80820167ffffffffffffffff91838210838311176200071257836200143e620017a593838584396200103e565b0360009485f080156200024a57601580546001600160a01b0319166001600160a01b0390921691909117905584519181830183811085821117620007125783926200148b9284396200107e565b039083f080156200024a57601680546001600160a01b0319166001600160a01b03928316179055601554620014c1911662000120565b803b15620017a05783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af180156200024a5762001789575b506016546200151e906001600160a01b031662000120565b90813b156200074d57845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af180156200024a5762001772575b5060155462001574906001600160a01b031662000120565b6016546200158b906001600160a01b031662000120565b9084519161059790818401928484108685111762000712578493620015d89362008f5886396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200024a57601480546001600160a01b0319166001600160a01b03909216919091179055825190612f2180830191821183831017620007125782916200162e916200281084396000815260200190565b039082f09182156200024a5762001665620016d49360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b6015546200167c906001600160a01b031662000120565b60135490919062001696906001600160a01b031662000120565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af19283156200024a576200171f94869462001750575b5060165462001705906001600160a01b031662000120565b6013549092906200067e906001600160a01b031662000120565b03925af180156200024a5762001733575050565b816200174d92903d10620006e857620006d8818362000a6b565b50565b6200176a90853d8711620006e857620006d8818362000a6b565b5038620016ed565b8062000728620017829262000a1c565b386200155c565b8062000728620017999262000a1c565b3862001506565b8280fdfe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461007457601f61255c38819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b0319169190911790556040516124cc90816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630f4166b814610167578063250968d914610162578063306db46b1461015d578063332266f3146101585780633928ff97146101535780633b4d10301461014e5780634fd67c58146101495780635a93b8ce146101445780636237569f1461013f5780637f17409c1461013a57806381b5fac214610135578063902ecaa214610130578063a8c62e761461012b578063b09d04e514610126578063cb1f553214610121578063ce153bf41461011c578063def15f9214610117578063ec29d8e614610112578063ee3e8cfb1461010d578063f2de7a7b146101085763f30d37f21461010357600080fd5b6109b2565b610996565b610962565b61094c565b6108e0565b61082f565b6107ea565b6107a6565b61077d565b610754565b610700565b6106a0565b61063f565b61061a565b6105f1565b6105bf565b61032e565b6102d6565b61029f565b610236565b346101d55760403660031901126101d55767ffffffffffffffff6024358181116101d557366023820112156101d55780600401359182116101d55736602483830101116101d5576101d19160246101c192016004356109e5565b6040519081529081906020820190565b0390f35b600080fd5b60005b8381106101ed5750506000910152565b81810151838201526020016101dd565b90602091610216815180928185528580860191016101da565b601f01601f1916010190565b9060206102339281815201906101fd565b90565b346101d55760403660031901126101d5576101d160405160026020820152600435604082015260243560608201526060815261027181610881565b6040519182916020835260208301906101fd565b60609060031901126101d557600435906024359060443590565b346101d55760206102ce6102b236610285565b906102c56102bf84610c45565b93610d72565b92919091610f1e565b604051908152f35b346101d55760206102ce6102e936610285565b906102f66102bf84610c45565b92919091611149565b801515036101d557565b90926080926102339594151583526020830152604082015281606082015201906101fd565b346101d55760603660031901126101d55760043560243561034e816102ff565b6104c46044359161035d610a11565b6103ad610368610a11565b9461037287610d72565b9491959092602096878401946040978886015285528352868a878b61039683610c45565b9889938851906103a78b5191610c45565b916112e2565b951561053b575061040c936103fe6103f96104409998956103f3866103dc610405976104199c99015187611d20565b926103ea8d518b5190611d4c565b91015190611324565b90611d20565b610a57565b9351610a7a565b8b52610a7a565b80868a015288518a610e65565b9061043761042c878a0193808552610a57565b808452825111610b21565b51905190610b14565b955b60c0865185880192610484845197610476888c015189519a8b96879485016040919493926060820195825260208201520152565b03601f1981018452836108be565b6000546104a79061049b906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610baf565b03915afa948515610536576000956104f6575b50906104eb916101d19596519051906114e4565b905194859485610309565b6101d19550906105216104eb939260c03d60c01161052f575b61051981836108be565b810190610b78565b5050505050955090916104d7565b503d61050f565b610bd3565b91966105b09561059d946105866105a59761057f6103f98c6103f36105b99f61057761056d6105909c83015188611d20565b93518b5190611d4c565b905190611324565b9451610a7a565b9401938452610a7a565b9081898d0152518c610bdf565b808a52610a57565b808952825111610a87565b51865190610b14565b95610442565b346101d55760203660031901126101d55760206102ce6004356105ea6105e482610c45565b91610d72565b50906114e4565b346101d55760206102ce61060436610285565b906106116102bf84610c45565b92919091611509565b346101d55760206102ce61063961063036610285565b91929092610c45565b916116a4565b346101d55760403660031901126101d55761067b6004356101d161068261067361066884610d72565b9190506024356116d1565b949093610c45565b84846119e2565b92604051938493846040919493926060820195825260208201520152565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36106c985610d72565b91506024356116fe565b939094610c45565b83856116a4565b91604051938493846040919493926060820195825260208201520152565b346101d55760203660031901126101d557608061071e600435610c45565b61075260405180926060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565bf35b346101d55760206102ce61076736610285565b906107746102bf84610c45565b92919091611725565b346101d55760003660031901126101d5576000546040516001600160a01b039091168152602090f35b346101d55760203660031901126101d5576101d160405160016020820152600435604082015260408152610271816108a2565b6001600160a01b038116036101d557565b346101d55760203660031901126101d5576101d160043561080a816107d9565b60408051600360208201526001600160a01b03909216828201528152610271816108a2565b346101d55760203660031901126101d5576101d161084e600435610d72565b604080519384526020840192909252908201529081906060820190565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761089d57604052565b61086b565b6060810190811067ffffffffffffffff82111761089d57604052565b90601f8019910116810190811067ffffffffffffffff82111761089d57604052565b346101d55760c03660031901126101d55760803660431901126101d5576101d161094060405161090f81610881565b60443581526064356020820152608435604082015260a435610930816107d9565b60608201526024356004356118a2565b60405191829182610222565b346101d55760206102ce6103a761063036610285565b346101d55760403660031901126101d55761067b6004356101d161068261067361098b84610d72565b9190506024356116fe565b346101d55760206102ce6109ac61063036610285565b916119e2565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36109db85610d72565b91506024356116d1565b9181606091810103126101d5576109fe61023392610c45565b9060408101359060208101359035610e8b565b604051906060820182811067ffffffffffffffff82111761089d5760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610a6557565b610a41565b906103e8918201809211610a6557565b91908201809211610a6557565b15610a8e57565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b90670de0b6b3a7640000918203918211610a6557565b906103e8918203918211610a6557565b6103e719810191908211610a6557565b91908203918211610a6557565b15610b2857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c09103126101d5578151610b8f816102ff565b9160208101519160408201519160608101519160a0608083015192015190565b610233939260609260018060a01b03168252602082015281604082015201906101fd565b6040513d6000823e3d90fd5b9161063961023393610c45565b91908260809103126101d557604051610c0481610881565b6060808294805184526020810151602085015260408101516040850152015191610c2d836107d9565b0152565b906080828203126101d55761023391610bec565b90604051610c5281610881565b600090818152816060602092828482015282604082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610536578092610cb3575b506102339293508082518301019101610c31565b9091503d8082863e610cc581866108be565b8401908285830312610d3b57845167ffffffffffffffff95868211610d3e57019082601f83011215610d3b57815195861161089d5760405192610d11601f8801601f19168601856108be565b868452848784010111610d3b57506102339394610d33918480850191016101da565b908392610c9f565b80fd5b8280fd5b908160209103126101d55751610233816107d9565b908160609103126101d5578051916040602083015192015190565b9060046020610d8e61049b61049b60005460018060a01b031690565b604051632bee84f160e21b815292839182905afa92831561053657610dd993606092600091610e36575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156105365760008093600093610dff575b50929190565b91935050610e25915060603d606011610e2f575b610e1d81836108be565b810190610d57565b9290929138610df9565b503d610e13565b610e58915060203d602011610e5e575b610e5081836108be565b810190610d42565b38610db8565b503d610e46565b916109ac61023393610c45565b81810392916000138015828513169184121617610a6557565b9260206103ea84610eae610ea66103f39697610eb499612087565b855190611324565b95612087565b670de0b6b3a763ffff198101908113600116610a655790565b908152602080820192909252604080820193909352606080820194909452845160808201529084015160a08201529083015160c08201529101516001600160a01b031660e08201526101000190565b565b909291855160208701516040880151610f3690610ade565b91610f418785612087565b610f4b8282611324565b92610f5591611324565b895185898581610f65858d6120ca565b90610f6f916120ca565b90610f79916120ca565b92610f83906120a9565b610f8c90610af4565b90610f9691610a7a565b90610fa0916120ca565b610fa986610ade565b610fb2916120ca565b92610fbc8a610a6a565b90610fc6906110f0565b610fcf91611324565b91610fd9906120a9565b610fe286610ade565b610feb916120ca565b610ff59089610a7a565b92610fff91610b14565b91611009916120ca565b895161101490610ade565b61101d90612068565b61102691611324565b61102f916120ca565b91885161103b90610ade565b61104488610a6a565b9261104f89896120ca565b90611059916120ca565b91611063866120a9565b9061106d90610ade565b611076916120ca565b92611080916120ca565b9161108a91610a7a565b611093916120ca565b9061109d846110f0565b916110a791612087565b6110b09161112d565b6000136110e557610233956110e0936110d29260405196879560208701610ecd565b03601f1981018352826108be565b611a30565b505050505050600090565b600160ff1b8114610a655760000390565b90816103e801918212600116610a6557565b9081670de0b6b3a763ffff190191821215600116610a6557565b91909160008382019384129112908015821691151617610a6557565b94939290928451906020860151604087015161116490610ade565b9261116f8787612087565b6111798282611324565b9261118391611324565b885187898581611193858c6120ca565b9061119d916120ca565b906111a7916120ca565b926111b290886120ca565b6111bc9088610b14565b906111c691610a7a565b906111d0916120ca565b6111d987610ade565b6111e2916120ca565b926111ed8a87610a7a565b906111f7906110f0565b61120091611324565b9161120b90866120ca565b61121487610ade565b61121d916120ca565b6112279088610a7a565b9261123191610b14565b9161123b916120ca565b885161124690610ade565b61124f90612068565b61125891611324565b611261916120ca565b965161126c90610ade565b936112778784610a7a565b96611281916120ca565b9061128b916120ca565b93611295916120ca565b9061129f90610ade565b6112a8916120ca565b926112b2916120ca565b916112bc91610a7a565b6112c5916120ca565b916112cf906110f0565b916112d991612087565b6102339161112d565b610233929160206112f86103f393855190611324565b93015190611324565b818102929160008212600160ff1b821416610a65578184051490151715610a6557565b6114d1610233927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642846114df9361135a60008213611dc8565b711340daa0d5f769dba1915cef59f0815a55066113768261210a565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d611301565b670de0b6b3a7640000900590565b611e00565b611503906114fb6102339493602085015190612087565b925190612087565b90612087565b90929185516040870151670de0b6b3a764000060008282039212818312811691831390151617610a655761153c83611101565b61154583611113565b61154e91611324565b908261155a8589611fa9565b9061156491611324565b61156d81611fc7565b9261157783611113565b6115819085611ff0565b61158b9089610e72565b91829161159788611101565b6115a19088611ff0565b936115ab91611ff0565b6115b487611f8a565b6115bd91611324565b926115c787611113565b6115d1908b611ff0565b91886115dc89611fc7565b906115e69161112d565b6115ef91611ff0565b6115f886611113565b61160191611ff0565b9261160b91611ff0565b926116169089611ff0565b9161162091610e72565b61162991611ff0565b6116329161112d565b9261163c85611101565b61164591611ff0565b9161164f876110f0565b9161165990611113565b61166291611ff0565b61166b9161112d565b61167491611ff0565b61167d91611fa9565b6000136110e5576102339561169f936110d29260405196879560208701610ecd565b611b55565b6116c461023393926116be6116cb93602086015190611324565b90611d4c565b9151611d7c565b90611324565b9291906116e76116e18284611d4c565b85611d20565b938103908111610a6557928103908111610a655790565b92919061170e6116e18284611d4c565b938101809111610a6557928101809111610a655790565b9293949091946040825192015193670de0b6b3a764000060008682039612818712811691871390151617610a6557828794611760868561112d565b61176983611113565b61177291611324565b9561177c91611fa9565b9061178691611324565b936117918584611ff0565b9461179b87611113565b6117a59087611ff0565b6117af9089610e72565b9283926117bc8b8761112d565b6117c69088611ff0565b946117d091611ff0565b6117d987611f8a565b6117e291611324565b936117ec87611113565b6117f6908b611ff0565b928b6118028989611ff0565b9061180c9161112d565b61181591611ff0565b61181e8a611113565b61182791611ff0565b9361183191611ff0565b9361183b91611ff0565b9161184591610e72565b61184e91611ff0565b6118579161112d565b956118619161112d565b61186a91611ff0565b92611874906110f0565b9161187e90611113565b61188791611ff0565b6118909161112d565b61189991611ff0565b61023391611fa9565b929190836118bd6118c2926118bd6020860151865190612087565b6120ca565b906118ce8183866112e2565b936118db82868584610e8b565b85906000808212156119a4575b808212611986575061192d61197a9261023396979886935b6119146040519889928c8a6020860161201f565b0396611928601f19988981018352826108be565b611c2c565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b039081018352826108be565b9661199191506120eb565b9561199e84888786610e8b565b906118e8565b9691965b8082136119c4575061192d61023395969761197a938693611900565b966119cf9150611d9e565b956119dc84888786610e8b565b906119a8565b60206119fb61023394936116be6116cb94865190611324565b920151611d7c565b9190610100838203126101d557825192602081015192610233604083015193608060608501519401610bec565b91906103e892600093600091838211611b3457611a4c8161217c565b611a5685836122d5565b6000611a628284611301565b13611b155750611a73859695610b04565b60019460009186805b611a8d575b50505050505050509050565b15611af0575b5085969798508091611aae611aa88b88610a7a565b60011c90565b99611ab98b876122d5565b9083611ac58784611301565b13611ae457505089925b87611ada8886610b14565b9201939998611a7c565b8b975090945092611acf565b861080611b0a575b15611b035788611a93565b8080611a81565b506101008210611af8565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e892600093600091838211611b3457611b71816122f6565b611b7b8583612441565b6000611b878284611301565b13611b155750611b98859695610b04565b60019460009186805b611bb15750505050505050509050565b15611c0e575b5085969798508091611bcc611aa88b88610a7a565b99611bd78b87612441565b9083611be38784611301565b13611c0257505089925b87611bf88886610b14565b9201939998611ba1565b8b975090945092611bed565b861080611c21575b15611b035788611bb7565b506101008210611c16565b60009392918491838211611d0057611c448282612462565b611c4e8583612462565b6000611c5a8284611301565b13611b155750611c6c83869796610b14565b60019460009186805b611c855750505050505050509050565b15611ce2575b5085969798508091611ca0611aa88b88610a7a565b99611cab8b87612462565b9083611cb78784611301565b13611cd657505089925b87611ccc8886610b14565b9201939998611c75565b8b975090945092611cc1565b861080611cf5575b15611b035788611c8b565b506101008210611cea565b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b8181029181830414901517600116156101d5576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101d557600190600019830104019015150290565b600181151516156101d5576ec097ce7bc90715b34b9f0fffffffff0460010190565b6103e9908181029181830414901517600116156101d55760016103e8600019830104019015150290565b15611dcf57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e19811315611f8457680755bf798b4a1bf1e5811215611f50576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029182051482151516156101d5570590565b6103e881810291600160ff1b81136001179183051416156101d557670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b9091131716156101d557670de0b6b3a7640000900590565b610f1c9360609296959360e083019783526020830152604082015201906060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000490565b670de0b6b3a764000090818102918183041490151782151516156101d5570490565b6103e89080820291820414600116156101d557670de0b6b3a7640000900490565b8181029181830414901517600116156101d557670de0b6b3a7640000900490565b6103e7908181029181830414901517600116156101d5576103e8900490565b612115811515611dc8565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b80518101602001906020019061219191611a03565b9291908351602085015160408601516121a990610ade565b916121b48686612087565b6121be8282611324565b926121c891611324565b8751868885816121d8858b6120ca565b906121e2916120ca565b906121ec916120ca565b926121f6906120a9565b6121ff90610af4565b9061220991610a7a565b90612213916120ca565b61221c86610ade565b612225916120ca565b9261222f89610a6a565b90612239906110f0565b61224291611324565b9161224c906120a9565b61225586610ade565b61225e916120ca565b6122689087610a7a565b9261227291610b14565b9161227c916120ca565b875161228790610ade565b61229090612068565b61229991611324565b6122a2916120ca565b95516122ad90610ade565b926122b786610a6a565b956122c1916120ca565b906122cb916120ca565b92611295906120a9565b906122ec6102339260208082518301019101611a03565b9493929092611149565b6123099060208082518301019101611a03565b6040819593959492945191015192670de0b6b3a764000060008582039512818612811691861390151617610a655781869361234385611101565b61234c83611113565b61235591611324565b9461235f91611fa9565b9061236991611324565b9261237384611fc7565b9361237d86611113565b6123879086611ff0565b6123919088610e72565b92839261239d8a611101565b6123a79087611ff0565b946123b191611ff0565b6123ba86611f8a565b6123c391611324565b936123cd86611113565b6123d7908a611ff0565b928a6123e288611fc7565b906123ec9161112d565b6123f591611ff0565b6123fe89611113565b61240791611ff0565b9361241191611ff0565b9361241b91611ff0565b9161242591610e72565b61242e91611ff0565b6124379161112d565b9461186190611101565b906124586102339260208082518301019101611a03565b9493929092611725565b805181019160e0828403126101d5576102339261249060208401519360806020604083015194019101610bec565b92610e8b56fea2646970667358221220ddef7f48a463f4812492c0cc35c784e857fab14e0a29d203d7aa233c67d9fa2964736f6c6343000816003360a03461007f57601f6112cb38819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f57608052604051611230908161009b82396080518181816103b701528181610612015281816107c601526109240152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b610953565b61090e565b6107ad565b610773565b6105f6565b610331565b6102ae565b610221565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101c3565b838082518301019101610986565b9061010d6100ff600435610a7f565b8680825183010191016109a1565b92610b68565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761015057604052565b61011e565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101a1601f8201601f191660200184610155565b8294818452818301116101be578281602093846000960137010152565b600080fd5b9080601f830112156101be578160206101de93359101610177565b90565b919082519283825260005b84811061020d575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101ec565b346101be5760003660031901126101be57604051604081019080821067ffffffffffffffff8311176101505761027891604052600381526247334d60e81b60208201526040519182916020835260208301906101e1565b0390f35b9060405161028981610134565b6060600382948054845260018101546020850152600281015460408501520154910152565b346101be5760203660031901126101be57600435600052600060205260c060406000206102da8161027c565b90600481015490600560018060a01b03910154169060606040519380518552602081015160208601526040810151604086015201516060840152608083015260a0820152f35b6001600160a01b038116036101be57565b346101be5760603660031901126101be5761034d600435610320565b60243560443567ffffffffffffffff81116101be576103709036906004016101c3565b9061037a81610a7f565b90610390825192602080809583010191016109a1565b6040516333854efd60e21b8152600481018390529092906060816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa948515610596576000908192829761055d575b508084806103ff93518301019101610986565b949195909787878581116000146104c45793610454869461044e866104496104769b9761044461046198604061043b61046d9f6104679f610a08565b91015190610f48565b610f48565b610f74565b50610a7f565b80518101820191016109a1565b91610bb9565b83610a27565b93828685610b68565b93846013191292836104b9575b6102789394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b601486129350610483565b5050919290938089116000146104ff5761046161046d946104546104769761044e856104498f998f61044490604061043b866104679f610a08565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9096506103ff9250610587915060603d60601161058f575b61057f8183610155565b810190610986565b9690926103ec565b503d610575565b6109e6565b9060606003198301126101be576004356105b481610320565b916024359160443567ffffffffffffffff928382116101be57806023830112156101be5781600401359384116101be57602484830101116101be576024019190565b346101be576106043661059b565b9192506001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610761578160c091810103126101be5780359160208201359160408101359460608201359060a08301359261066984610320565b670de0b6b3a764000083101561074f5761070d946107059460806106f1936106f69661069f876000526000602052604060002090565b55013560046106b8866000526000602052604060002090565b01551660056106d1846000526000602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610a7f565b602080825183010191016109a1565b848385610b68565b9283601319129182610744575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b60148512925061071a565b60405163e8a38a6160e01b8152600490fd5b604051636853cba760e01b8152600490fd5b346101be5760606107833661059b565b818094509492940103126101be5780359061070d6107056106f66040602085013594013595610a7f565b346101be576107bb3661059b565b926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610761576108236108176005610809876000526000602052604060002090565b01546001600160a01b031690565b6001600160a01b031690565b9116036108fc5761083683820182610a4a565b61083f81610a5f565b60018103610878575061086261085d61087392600494953691610177565b610caa565b926000526000602052604060002090565b01555b005b61088181610a5f565b600281036108bd5750906108a56108a06108b893610876953691610177565b610c00565b9290916000526000602052604060002090565b610c28565b806108c9600392610a5f565b036108ea576106d16108626108e5600593610876963691610177565b610bd8565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101be5760003660031901126101be576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101be5760203660031901126101be57610278610972600435610a7f565b6040519182916020835260208301906101e1565b908160609103126101be578051916040602083015192015190565b908160809103126101be576060604051916109bb83610134565b80518352602081015160208401526040810151604084015201516109de81610320565b606082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610a1557565b6109f2565b91908201809211610a1557565b81810392916000138015828513169184121617610a1557565b600411156101be57565b908160209103126101be57356101de81610a40565b60041115610a6957565b634e487b7160e01b600052602160045260246000fd5b60408051610a8c81610134565b6000918282526020820193838552818301848152606084019085825282865285602052610ac2610abd85882061027c565b610cdf565b808652670de0b6b3a7640000908103908111610a1557846101de97610b1f95610b1294600594610b5a9c5281835282602052600484842001549052815280602052200160018060a01b0390541690565b6001600160a01b03169052565b5192839160208301919091606060808201938051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b03601f198101835282610155565b926020610b9184610b8b610b83610b9a9697610ba099610fa4565b855190610d88565b95610fa4565b91015190610d88565b90610f48565b670de0b6b3a763ffff198101908113600116610a155790565b6101de92916020610bcf610b9a93855190610d88565b93015190610d88565b6040818051810103126101be5780610bf560206040930151610a40565b015161081781610320565b6060818051810103126101be57610c1a6020820151610a40565b606060408201519101519091565b919042821115610c9857610c3e610abd8461027c565b9081845542600385015542830391838311610a1557610c5c91610a27565b428314610c8257600160ff1b8114600019831416610a1557600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101be5780610cc760206040930151610a40565b015190565b81810292918115918404141715610a1557565b6060810151906020810151808314610d5e57804211600014610d5657915b8203918211610a15576040810190815160008113600014610d3057506101de92610d2a9151925190610ccc565b90610a1a565b90519150600160ff1b8114610a15576101de92610d509160000390610ccc565b90610a08565b504291610cfd565b5090505190565b818102929160008212600160ff1b821416610a15578184051490151715610a1557565b610f356101de927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284610f4393610dbe60008213610fc6565b711340daa0d5f769dba1915cef59f0815a5506610dda82611188565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d610d65565b670de0b6b3a7640000900590565b610ffe565b8181029181830414901517600116156101be576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101be57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101be570490565b15610fcd57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131561118257680755bf798b4a1bf1e581121561114e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b611193811515610fc6565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c600110179056fea26469706673582212209815df372867dd1ba42d4263690c8e70d1f8dc34ff9f897579936267cb43316764736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a26469706673582212209f84f95ffd6d57e95a0e6fdb3a129e7e6d8817b1b2045f622386152cbaabb13a64736f6c63430008160033","sourceMap":"88:1631:69:-:0;;;1594:4:0;88:1631:69;;1594:4:0;88:1631:69;;;1594:4:0;88:1631:69;378:11:59;88:1631:69;378:11:59;330:9:73;378:11:59;88:1631:69;378:11:59;;302:134:73;378:11:59;;;;302:134:73;378:11:59;424:4:73;302:134;378:11:59;;302:134:73;378:11:59;;;;;424:4:73;378:11:59;;;;;;;;;;;;468:7:73;;;378:11:59;;468:7:73;510;468;510;378:11:59;;510:7:73;378:11:59;554:88:73;468:7;378:11:59;510:7:73;378:11:59;;;:::i;:::-;554:88:73;;:::i;:::-;378:11:59;:::i;:::-;88:1631:69;;;;;;;;;;;;;378:11:59;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;;;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;378:11:59;;;;-1:-1:-1;;;;;378:11:59;;;;;;;;;;:::o;:::-;88:1631:69;;378:11:59;;;;:::i;:::-;302:134:73;378:11:59;;;;;;;;;;;88:1631:69;378:11:59;;;;;-1:-1:-1;;;;;378:11:59;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;378:11:59;302:134:73;-1:-1:-1;378:11:59;302:134:73;-1:-1:-1;378:11:59;;302:134:73;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;378:11:59;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;302:134:73;378:11:59;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;378:11:59;;;;;302:134:73;378:11:59;;-1:-1:-1;;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1858:513:35;;;799:19:18;1349:9:35;;;1790:35;1728;631:21:18;378:11:59;631:21:18;378:11:59;;;965:21:18;378:11:59;;965:21:18;;;:::i;:::-;631;:::i;:::-;1728:35:35;;;:::i;:::-;378:11:59;;1790:35:35;;:::i;:::-;799:19:18;;:::i;:::-;2139:69:35;;;;;;;:::i;:::-;8798:29;;-1:-1:-1;8914:21:35;;;-1:-1:-1;;;8954:21:35;;;;;;8910:600;9519:160;2296:72;8910:600;2296:72;8910:600;;;;;;88:1631:69;;;1349:9:35;9538:45;;;88:1631:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;88:1631:69;;;;;;;;9538:45:35;;-1:-1:-1;;;9538:45:35;88:1631:69;;9538:45:35;:::i;:::-;9519:160;:::i;:::-;378:11:59;;88:1631:69;2334:14:35;;;378:11:59;2350:17:35;;;;378:11:59;88:1631:69;;1349:9:35;2296:72;;88:1631:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;88:1631:69;;;;;;;;;;;;2296:72:35;;;;;;;;;:::i;:::-;1858:513;:::o;8947:268::-;8999:27;;;;;:::i;:::-;9060:144;;;;;;;:::i;:::-;8947:268;;;8910:600;9237:267;;;9244:21;;;;;;8910:600;9519:160;2296:72;8910:600;;;2296:72;8910:600;;;;;9237:267;9289:26;;;;;:::i;:::-;9349:144;;;;;;;:::i;:::-;9237:267;;;88:1631:69;378:11:59;;;88:1631:69;;;;;;;;1692:384:42;;2000:9;965:21:18;1692:384:42;1880:50;965:21:18;1961:50:42;1692:384;;799:19:18;1692:384:42;965:21:18;:::i;:::-;378:11:59;;1880:50:42;;:::i;:::-;965:21:18;;:::i;:::-;2000:9:42;;378:11:59;1961:50:42;;:::i;799:19:18:-;88:1631:69;;;;;;;;;;;1692:384:42;:::o;88:1631:69:-;;:::i;:::-;;;;;;;;;-1:-1:-1;;;88:1631:69;;;;;;;;;;;;;;;:::o;1208:273:18:-;1399:12;1391:36;1208:273;7380:72;1398:28;1208:273;4688:27;-1:-1:-1;4696:5:18;;4688:27;:::i;:::-;7125:43;5125:16;;;:::i;:::-;5145:2;88:1631:69;;;5175:3:18;88:1631:69;;378:11:59;5175:3:18;378:11:59;88:1631:69;;;;7232:71:18;88:1631:69;;6411:30:18;88:1631:69;6343:32:18;88:1631:69;6274:33:18;88:1631:69;6205:33:18;88:1631:69;6136:33:18;88:1631:69;6068:32:18;88:1631:69;6001:31:18;88:1631:69;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;88:1631:69;;;;;;;;;;;;;;;;5533:32:18;88:1631:69;5465:32:18;88:1631:69;5398:31:18;88:1631:69;;;;;;;;;;;;;;;;;;;;;;;;6455:304:18;88:1631:69;;;;;1399:12:18;:::i;:::-;491:4;88:1631:69;;;;1398:28:18;1391:36;:::i;8282:752::-;8417:611;;;;;;;;;;;;;;;;;491:4;378:11:59;;8417:611:18;;;;;;;;8282:752;:::o;:::-;9304:4:35;8417:611:18;;;;;;;;;;;;;;;;;;9310:4:35;378:11:59;;8417:611:18;;;;;;;;8282:752;:::o;7741:535::-;491:4;7878:392;;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;7878:392;;;;;;;;;;;;;;;;491:4;7878:392;;7741:535;:::o;:::-;9016:3:35;7878:392:18;;;;;;;;;;;;;;;;;9021:4:35;7878:392:18;;7741:535;:::o;88:1631:69:-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;1009:1952:33:-;378:11:59;;1009:1952:33;;378:11:59;;1239:13:33;;;1235:66;;1632:15;;;;:::i;:::-;1674;;;;:::i;:::-;378:11:59;1699:25:33;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;;:::i;:::-;9631:1:35;;378:11:59;;9631:1:35;;;;;1978:981:33;1009:1952;;;;;;;;;;:::o;1978:981::-;;;;;2909:48;;;;;;;2123:13;2122:19;2123:13;;;;:::i;:::-;88:1631:69;;;;2122:19:33;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;378:11:59;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;88:1631:69;;1978:981:33;;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;2909:18;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;;;;;;2931:26;9643:3:35;2931:26:33;;2909:48;;1695:115;88:1631:69;;-1:-1:-1;;;1747:56:33;;;;;88:1631:69;;;;;;;;;;1747:56:33;1235:66;88:1631:69;;-1:-1:-1;;;1261:40:33;;;;;88:1631:69;;;;;;;;;;;1747:56:33;88:1631:69;;;;:::o;:::-;;;-1:-1:-1;;;88:1631:69;;;;;;;;;;;;-1:-1:-1;;;88:1631:69;;;;;;;1487:3103:18;-1:-1:-1;;1713:26:18;;;1709:40;;1948:21;1943:26;;;1939:54;;2266:5;378:11:59;88:1631:69;378:11:59;88:1631:69;4502:49:18;2559:29;88:1631:69;3136:40:18;88:1631:69;378:11:59;2591:5:18;378:11:59;;;;88:1631:69;;;;;;;;;3074:35:18;88:1631:69;2874:31:18;88:1631:69;;;;;;3649:35:18;88:1631:69;;;;3508:34:18;88:1631:69;;;;3371:32:18;88:1631:69;;;;;;;;;;;;;;;;;;;;;;;;;;2941:32:18;88:1631:69;;;;;;;;;;;;;;;3699:327:18;88:1631:69;;4564:3:18;88:1631:69;378:11:59;1487:3103:18;:::o;1939:54::-;88:1631:69;;-1:-1:-1;;;1971:22:18;;88:1631:69;1971:22:18;;;88:1631:69;;;;;;-1:-1:-1;;;88:1631:69;;;;;;1747:56:33;1709:40:18;1741:8;1748:1;1741:8;:::o;15328:575::-;15397:27;15405:5;;;15397:27;:::i;:::-;15435:462;378:11:59;15435:462:18;;;;;;;;;;378:11:59;;;;;15435:462:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:575;:::o;88:1631:69:-;378:11:59;;;3862:59:35;;88:1631:69;;;;;;;3862:59:35;;;88:1631:69;;;;;;;;;;;;;;;;;378:11:59;;;;:::i;:::-;88:1631:69;;;;;;;;;;3862:59:35;88:1631:69;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;88:1631:69;;;;3934:64:35;88:1631:69;;;;;3934:64:35;:::i","linkReferences":{}},"deployedBytecode":{"object":"0x60808060405260043610156200001457600080fd5b6000803560e01c91826305457be914620000ac57505080630a9254e414620000a6578063620a260714620000a0578063acb87c30146200009a578063ba414fa61462000094578063e0d7d0e9146200008e578063e21485ad14620000885763fa7626d4146200008257600080fd5b620009e1565b620008a9565b62000889565b62000860565b62000778565b62000754565b62000276565b34620002615781600319360112620002615781737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000261576372eb5f8160e11b8352600060845282908183607f1960a401925af180156200024a5762000250575b60175482908290620001e6906200012c906001600160a01b03165b6001600160a01b031690565b601554620001a29062000148906001600160a01b031662000120565b601654620001929062000164906001600160a01b031662000120565b91620001826200017362000a8e565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6001600160a01b03166040830152565b620001ac62000ad0565b6060820152601354620001c8906001600160a01b031662000120565b906040519485809481936305157c7f60e21b83526004830162000c43565b03925af19081156200024a576200020692849262000213575b5050601955565b6200021062000d06565b80f35b620002379250803d1062000242575b6200022e818362000a6b565b81019062000bd4565b5050508380620001ff565b503d62000222565b62000ac4565b6200025b6080604052565b62000105565b5080fd5b60009103126200027157565b600080fd5b3462000271576000806003193601126200075157620002946200140a565b6040805161106b8082019067ffffffffffffffff9280831084841117620007125780620002c9620017a594848684396200103e565b039086f080156200024a57601580546001600160a01b0319166001600160a01b039092169190911790558351918183018381108582111762000712578392620003149284396200107e565b039084f080156200024a57601680546001600160a01b0319166001600160a01b039283161790556015546200034a911662000120565b803b156200074d5782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af180156200024a5762000736575b506016548490620003a9906001600160a01b031662000120565b91823b156200026157845190815230600482015268056bc75e2d631000006024820152918290604490829084905af180156200024a5762000718575b50601554620003fd906001600160a01b031662000120565b60165462000414906001600160a01b031662000120565b9083519161059790818401928484108685111762000712578493620004619362008f5886396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200024a57601480546001600160a01b0319166001600160a01b039092169190911790558151612f21808201908282108483111762000712578291620004b7916200281084396000815260200190565b039084f080156200024a57601380546001600160a01b0319166001600160a01b03929092169182179055620004ec9062000120565b8251906112cb808301918383108584111762000712578392620005229262007c8d85396001600160a01b03909116815260200190565b039084f080156200024a57601780546001600160a01b0319166001600160a01b03929092169182179055620005579062000120565b82519161255c808401929091831184841017620007125783926200058e926200573185396001600160a01b03909116815260200190565b039083f09081156200024a57620005c5620006319260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b601554620005dc906001600160a01b031662000120565b601354620005f3906001600160a01b031662000120565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200024a57620006a9938593620006f0575b5060165462000662906001600160a01b031662000120565b60135490919087906200067e906001600160a01b031662000120565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200024a57620006bd578280f35b81620006e192903d10620006e8575b620006d8818362000a6b565b810190620010be565b5038808280f35b503d620006cc565b6200070a90843d8611620006e857620006d8818362000a6b565b50386200064a565b62000a06565b80620007286200072f9262000a1c565b8062000265565b38620003e5565b8062000728620007469262000a1c565b386200038f565b8380fd5b80fd5b346200027157600036600319011262000271576020604051660aa87bee5380008152f35b3462000271576000806003193601126200075157737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000261576040516372eb5f8160e11b8152600060048201529082908290602490829084905af180156200024a5762000849575b506017548190608090620007fa906200012c906001600160a01b031662000120565b03925af180156200024a576200081891839162000822575b50601955565b62000210620010d8565b6200083f915060803d60801162000242576200022e818362000a6b565b5050503862000812565b8062000728620008599262000a1c565b38620007d8565b3462000271576000366003190112620002715760206200087f62001199565b6040519015158152f35b346200027157600036600319011262000271576020601954604051908152f35b3462000271576020366003190112620002715760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa9081156200024a576000916200092d575b60c082015162000929906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e011620009d8575b816200094b60e0938362000a6b565b8101031262000271576200090f60c06200092992620009cb8260405192620009738462000a31565b6200097e8162000aaf565b84526200098e6020820162000aaf565b6020850152620009a16040820162000aaf565b6040850152606081015160608501526080810151608085015260a081015160a08501520162000aaf565b82820152925050620008fb565b3d91506200093c565b34620002715760003660031901126200027157602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200071257604052565b60e0810190811067ffffffffffffffff8211176200071257604052565b6080810190811067ffffffffffffffff8211176200071257604052565b90601f8019910116810190811067ffffffffffffffff8211176200071257604052565b604051906080820182811067ffffffffffffffff8211176200071257604052565b51906001600160a01b03821682036200027157565b6040513d6000823e3d90fd5b6040519060006020906020546001928160011c936001831692831562000bc9575b60208610841462000bb55785885287949360208601939291811562000b94575060011462000b2d575b50505062000b2b9250038362000a6b565b565b92509362000b5d60206000527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb90565b946000935b82851062000b7d5750505062000b2b93500138808062000b1a565b865485850152958601958895509381019362000b62565b9250505062000b2b9491925060ff19168252151560051b0138808062000b1a565b634e487b7160e01b85526022600452602485fd5b94607f169462000af1565b919082608091031262000271578151916020810151916060604083015192015190565b60005b83811062000c0b5750506000910152565b818101518382015260200162000bfa565b9060209162000c378151809281855285808601910162000bf7565b601f01601f1916010190565b60a0606062000c869360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062000c1c565b90565b9081606091031262000271578051916040602083015192015190565b9081602091031262000271575190565b60409062000c8693928152816020820152019062000c1c565b634e487b7160e01b600052601160045260246000fd5b9190820391821162000cf257565b62000cce565b9190820180921162000cf257565b60185462000d1d906001600160a01b031662000120565b6019546040805163ee3e8cfb60e01b8152600480820184905267016345785d8a0000602483015292939092606091829085908180604481015b03915afa80156200024a5760009160009560009262001016575b5060135462000d88906001600160a01b031662000120565b8551633be6a34160e01b8082523084830190815260208181018c90529a929691939192908b90889081906040010381855afa9687156200024a5760009762000ff2575b5088516333854efd60e21b9687825289828062000def868b83019190602083019252565b0381875afa9b8c156200024a578d9260009d62000fab575b508b519283019586526020860152604085015262000e5a93899391929062000e3d90849060600103601f19810185528462000a6b565b60008b518096819582946305d8703160e31b84528b840162000cb5565b03925af180156200024a5762000f89575b5060135462000e83906001600160a01b031662000120565b9260195494875191825286828062000ea2898883019190602083019252565b0381885afa9687156200024a5762000efa998b9862000ed89462000ed19360009262000f52575b505062000ce4565b9062000cf8565b9551908152309181019182526020820193909352919485928391829160400190565b03915afa9182156200024a5762000b2b9360009362000f1c575b505062001271565b62000f41929350803d1062000f4a575b62000f38818362000a6b565b81019062000ca5565b90388062000f14565b503d62000f2c565b62000f769250803d1062000f81575b62000f6d818362000a6b565b81019062000c89565b915050388062000ec9565b503d62000f61565b62000fa390863d881162000f815762000f6d818362000a6b565b505062000e6b565b8c9d50928b959386979593973d881162000fea575b62000fcc818362000a6b565b810162000fd99162000c89565b9150509d5092949591939562000e07565b503d62000fc0565b6200100e9197508b3d8d1162000f4a5762000f38818362000a6b565b953862000dcb565b91509450620010359150823d841162000f815762000f6d818362000a6b565b90943862000d70565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b908160209103126200027157518015158103620002715790565b601854620010ef906001600160a01b031662000120565b60195460408051631fc5d02760e21b8152600480820184905267016345785d8a00006024830152929390926060918290859081806044810162000d56565b90600491630667f9d760e41b815262001150825180936020868501910162000bf7565b010190565b3d1562001194573d9067ffffffffffffffff821162000712576040519162001188601f8201601f19166020018462000a6b565b82523d6000602084013e565b606090565b6000805460081c60ff1615620011b3575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620011d557505090565b81925060405182816200121360208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b0362001228601f199182810185528462000a6b565b6200124e6040519182620012416020820196876200112d565b0390810183528262000a6b565b51925af15062000c866200126162001155565b60208082518301019101620010be565b908082036200127e575050565b6080806040938451937f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50836020968781526022888201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8982015261745d60f01b6060820152a1855190868252600a87830152690808115e1c1958dd195960b21b6060830152858201527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8938491a1845190858252600a8683015269080808081058dd1d585b60b21b606083015284820152a1737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62001383575b50505061010061ff00196000541617600055565b826000620013e0620013f1602483979684975195818701908882526519985a5b195960d21b818901526001606089015260608852620013c28862000a4e565b519485928301976370ca10bb60e01b89525180928585019062000bf7565b810103600481018452018262000a6b565b51925af1506200140062001155565b503880806200136f565b6040805161106b80820167ffffffffffffffff91838210838311176200071257836200143e620017a593838584396200103e565b0360009485f080156200024a57601580546001600160a01b0319166001600160a01b0390921691909117905584519181830183811085821117620007125783926200148b9284396200107e565b039083f080156200024a57601680546001600160a01b0319166001600160a01b03928316179055601554620014c1911662000120565b803b15620017a05783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af180156200024a5762001789575b506016546200151e906001600160a01b031662000120565b90813b156200074d57845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af180156200024a5762001772575b5060155462001574906001600160a01b031662000120565b6016546200158b906001600160a01b031662000120565b9084519161059790818401928484108685111762000712578493620015d89362008f5886396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200024a57601480546001600160a01b0319166001600160a01b03909216919091179055825190612f2180830191821183831017620007125782916200162e916200281084396000815260200190565b039082f09182156200024a5762001665620016d49360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b6015546200167c906001600160a01b031662000120565b60135490919062001696906001600160a01b031662000120565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af19283156200024a576200171f94869462001750575b5060165462001705906001600160a01b031662000120565b6013549092906200067e906001600160a01b031662000120565b03925af180156200024a5762001733575050565b816200174d92903d10620006e857620006d8818362000a6b565b50565b6200176a90853d8711620006e857620006d8818362000a6b565b5038620016ed565b8062000728620017829262000a1c565b386200155c565b8062000728620017999262000a1c565b3862001506565b8280fdfe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461007457601f61255c38819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b0319169190911790556040516124cc90816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630f4166b814610167578063250968d914610162578063306db46b1461015d578063332266f3146101585780633928ff97146101535780633b4d10301461014e5780634fd67c58146101495780635a93b8ce146101445780636237569f1461013f5780637f17409c1461013a57806381b5fac214610135578063902ecaa214610130578063a8c62e761461012b578063b09d04e514610126578063cb1f553214610121578063ce153bf41461011c578063def15f9214610117578063ec29d8e614610112578063ee3e8cfb1461010d578063f2de7a7b146101085763f30d37f21461010357600080fd5b6109b2565b610996565b610962565b61094c565b6108e0565b61082f565b6107ea565b6107a6565b61077d565b610754565b610700565b6106a0565b61063f565b61061a565b6105f1565b6105bf565b61032e565b6102d6565b61029f565b610236565b346101d55760403660031901126101d55767ffffffffffffffff6024358181116101d557366023820112156101d55780600401359182116101d55736602483830101116101d5576101d19160246101c192016004356109e5565b6040519081529081906020820190565b0390f35b600080fd5b60005b8381106101ed5750506000910152565b81810151838201526020016101dd565b90602091610216815180928185528580860191016101da565b601f01601f1916010190565b9060206102339281815201906101fd565b90565b346101d55760403660031901126101d5576101d160405160026020820152600435604082015260243560608201526060815261027181610881565b6040519182916020835260208301906101fd565b60609060031901126101d557600435906024359060443590565b346101d55760206102ce6102b236610285565b906102c56102bf84610c45565b93610d72565b92919091610f1e565b604051908152f35b346101d55760206102ce6102e936610285565b906102f66102bf84610c45565b92919091611149565b801515036101d557565b90926080926102339594151583526020830152604082015281606082015201906101fd565b346101d55760603660031901126101d55760043560243561034e816102ff565b6104c46044359161035d610a11565b6103ad610368610a11565b9461037287610d72565b9491959092602096878401946040978886015285528352868a878b61039683610c45565b9889938851906103a78b5191610c45565b916112e2565b951561053b575061040c936103fe6103f96104409998956103f3866103dc610405976104199c99015187611d20565b926103ea8d518b5190611d4c565b91015190611324565b90611d20565b610a57565b9351610a7a565b8b52610a7a565b80868a015288518a610e65565b9061043761042c878a0193808552610a57565b808452825111610b21565b51905190610b14565b955b60c0865185880192610484845197610476888c015189519a8b96879485016040919493926060820195825260208201520152565b03601f1981018452836108be565b6000546104a79061049b906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610baf565b03915afa948515610536576000956104f6575b50906104eb916101d19596519051906114e4565b905194859485610309565b6101d19550906105216104eb939260c03d60c01161052f575b61051981836108be565b810190610b78565b5050505050955090916104d7565b503d61050f565b610bd3565b91966105b09561059d946105866105a59761057f6103f98c6103f36105b99f61057761056d6105909c83015188611d20565b93518b5190611d4c565b905190611324565b9451610a7a565b9401938452610a7a565b9081898d0152518c610bdf565b808a52610a57565b808952825111610a87565b51865190610b14565b95610442565b346101d55760203660031901126101d55760206102ce6004356105ea6105e482610c45565b91610d72565b50906114e4565b346101d55760206102ce61060436610285565b906106116102bf84610c45565b92919091611509565b346101d55760206102ce61063961063036610285565b91929092610c45565b916116a4565b346101d55760403660031901126101d55761067b6004356101d161068261067361066884610d72565b9190506024356116d1565b949093610c45565b84846119e2565b92604051938493846040919493926060820195825260208201520152565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36106c985610d72565b91506024356116fe565b939094610c45565b83856116a4565b91604051938493846040919493926060820195825260208201520152565b346101d55760203660031901126101d557608061071e600435610c45565b61075260405180926060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565bf35b346101d55760206102ce61076736610285565b906107746102bf84610c45565b92919091611725565b346101d55760003660031901126101d5576000546040516001600160a01b039091168152602090f35b346101d55760203660031901126101d5576101d160405160016020820152600435604082015260408152610271816108a2565b6001600160a01b038116036101d557565b346101d55760203660031901126101d5576101d160043561080a816107d9565b60408051600360208201526001600160a01b03909216828201528152610271816108a2565b346101d55760203660031901126101d5576101d161084e600435610d72565b604080519384526020840192909252908201529081906060820190565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761089d57604052565b61086b565b6060810190811067ffffffffffffffff82111761089d57604052565b90601f8019910116810190811067ffffffffffffffff82111761089d57604052565b346101d55760c03660031901126101d55760803660431901126101d5576101d161094060405161090f81610881565b60443581526064356020820152608435604082015260a435610930816107d9565b60608201526024356004356118a2565b60405191829182610222565b346101d55760206102ce6103a761063036610285565b346101d55760403660031901126101d55761067b6004356101d161068261067361098b84610d72565b9190506024356116fe565b346101d55760206102ce6109ac61063036610285565b916119e2565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36109db85610d72565b91506024356116d1565b9181606091810103126101d5576109fe61023392610c45565b9060408101359060208101359035610e8b565b604051906060820182811067ffffffffffffffff82111761089d5760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610a6557565b610a41565b906103e8918201809211610a6557565b91908201809211610a6557565b15610a8e57565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b90670de0b6b3a7640000918203918211610a6557565b906103e8918203918211610a6557565b6103e719810191908211610a6557565b91908203918211610a6557565b15610b2857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c09103126101d5578151610b8f816102ff565b9160208101519160408201519160608101519160a0608083015192015190565b610233939260609260018060a01b03168252602082015281604082015201906101fd565b6040513d6000823e3d90fd5b9161063961023393610c45565b91908260809103126101d557604051610c0481610881565b6060808294805184526020810151602085015260408101516040850152015191610c2d836107d9565b0152565b906080828203126101d55761023391610bec565b90604051610c5281610881565b600090818152816060602092828482015282604082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610536578092610cb3575b506102339293508082518301019101610c31565b9091503d8082863e610cc581866108be565b8401908285830312610d3b57845167ffffffffffffffff95868211610d3e57019082601f83011215610d3b57815195861161089d5760405192610d11601f8801601f19168601856108be565b868452848784010111610d3b57506102339394610d33918480850191016101da565b908392610c9f565b80fd5b8280fd5b908160209103126101d55751610233816107d9565b908160609103126101d5578051916040602083015192015190565b9060046020610d8e61049b61049b60005460018060a01b031690565b604051632bee84f160e21b815292839182905afa92831561053657610dd993606092600091610e36575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156105365760008093600093610dff575b50929190565b91935050610e25915060603d606011610e2f575b610e1d81836108be565b810190610d57565b9290929138610df9565b503d610e13565b610e58915060203d602011610e5e575b610e5081836108be565b810190610d42565b38610db8565b503d610e46565b916109ac61023393610c45565b81810392916000138015828513169184121617610a6557565b9260206103ea84610eae610ea66103f39697610eb499612087565b855190611324565b95612087565b670de0b6b3a763ffff198101908113600116610a655790565b908152602080820192909252604080820193909352606080820194909452845160808201529084015160a08201529083015160c08201529101516001600160a01b031660e08201526101000190565b565b909291855160208701516040880151610f3690610ade565b91610f418785612087565b610f4b8282611324565b92610f5591611324565b895185898581610f65858d6120ca565b90610f6f916120ca565b90610f79916120ca565b92610f83906120a9565b610f8c90610af4565b90610f9691610a7a565b90610fa0916120ca565b610fa986610ade565b610fb2916120ca565b92610fbc8a610a6a565b90610fc6906110f0565b610fcf91611324565b91610fd9906120a9565b610fe286610ade565b610feb916120ca565b610ff59089610a7a565b92610fff91610b14565b91611009916120ca565b895161101490610ade565b61101d90612068565b61102691611324565b61102f916120ca565b91885161103b90610ade565b61104488610a6a565b9261104f89896120ca565b90611059916120ca565b91611063866120a9565b9061106d90610ade565b611076916120ca565b92611080916120ca565b9161108a91610a7a565b611093916120ca565b9061109d846110f0565b916110a791612087565b6110b09161112d565b6000136110e557610233956110e0936110d29260405196879560208701610ecd565b03601f1981018352826108be565b611a30565b505050505050600090565b600160ff1b8114610a655760000390565b90816103e801918212600116610a6557565b9081670de0b6b3a763ffff190191821215600116610a6557565b91909160008382019384129112908015821691151617610a6557565b94939290928451906020860151604087015161116490610ade565b9261116f8787612087565b6111798282611324565b9261118391611324565b885187898581611193858c6120ca565b9061119d916120ca565b906111a7916120ca565b926111b290886120ca565b6111bc9088610b14565b906111c691610a7a565b906111d0916120ca565b6111d987610ade565b6111e2916120ca565b926111ed8a87610a7a565b906111f7906110f0565b61120091611324565b9161120b90866120ca565b61121487610ade565b61121d916120ca565b6112279088610a7a565b9261123191610b14565b9161123b916120ca565b885161124690610ade565b61124f90612068565b61125891611324565b611261916120ca565b965161126c90610ade565b936112778784610a7a565b96611281916120ca565b9061128b916120ca565b93611295916120ca565b9061129f90610ade565b6112a8916120ca565b926112b2916120ca565b916112bc91610a7a565b6112c5916120ca565b916112cf906110f0565b916112d991612087565b6102339161112d565b610233929160206112f86103f393855190611324565b93015190611324565b818102929160008212600160ff1b821416610a65578184051490151715610a6557565b6114d1610233927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642846114df9361135a60008213611dc8565b711340daa0d5f769dba1915cef59f0815a55066113768261210a565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d611301565b670de0b6b3a7640000900590565b611e00565b611503906114fb6102339493602085015190612087565b925190612087565b90612087565b90929185516040870151670de0b6b3a764000060008282039212818312811691831390151617610a655761153c83611101565b61154583611113565b61154e91611324565b908261155a8589611fa9565b9061156491611324565b61156d81611fc7565b9261157783611113565b6115819085611ff0565b61158b9089610e72565b91829161159788611101565b6115a19088611ff0565b936115ab91611ff0565b6115b487611f8a565b6115bd91611324565b926115c787611113565b6115d1908b611ff0565b91886115dc89611fc7565b906115e69161112d565b6115ef91611ff0565b6115f886611113565b61160191611ff0565b9261160b91611ff0565b926116169089611ff0565b9161162091610e72565b61162991611ff0565b6116329161112d565b9261163c85611101565b61164591611ff0565b9161164f876110f0565b9161165990611113565b61166291611ff0565b61166b9161112d565b61167491611ff0565b61167d91611fa9565b6000136110e5576102339561169f936110d29260405196879560208701610ecd565b611b55565b6116c461023393926116be6116cb93602086015190611324565b90611d4c565b9151611d7c565b90611324565b9291906116e76116e18284611d4c565b85611d20565b938103908111610a6557928103908111610a655790565b92919061170e6116e18284611d4c565b938101809111610a6557928101809111610a655790565b9293949091946040825192015193670de0b6b3a764000060008682039612818712811691871390151617610a6557828794611760868561112d565b61176983611113565b61177291611324565b9561177c91611fa9565b9061178691611324565b936117918584611ff0565b9461179b87611113565b6117a59087611ff0565b6117af9089610e72565b9283926117bc8b8761112d565b6117c69088611ff0565b946117d091611ff0565b6117d987611f8a565b6117e291611324565b936117ec87611113565b6117f6908b611ff0565b928b6118028989611ff0565b9061180c9161112d565b61181591611ff0565b61181e8a611113565b61182791611ff0565b9361183191611ff0565b9361183b91611ff0565b9161184591610e72565b61184e91611ff0565b6118579161112d565b956118619161112d565b61186a91611ff0565b92611874906110f0565b9161187e90611113565b61188791611ff0565b6118909161112d565b61189991611ff0565b61023391611fa9565b929190836118bd6118c2926118bd6020860151865190612087565b6120ca565b906118ce8183866112e2565b936118db82868584610e8b565b85906000808212156119a4575b808212611986575061192d61197a9261023396979886935b6119146040519889928c8a6020860161201f565b0396611928601f19988981018352826108be565b611c2c565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b039081018352826108be565b9661199191506120eb565b9561199e84888786610e8b565b906118e8565b9691965b8082136119c4575061192d61023395969761197a938693611900565b966119cf9150611d9e565b956119dc84888786610e8b565b906119a8565b60206119fb61023394936116be6116cb94865190611324565b920151611d7c565b9190610100838203126101d557825192602081015192610233604083015193608060608501519401610bec565b91906103e892600093600091838211611b3457611a4c8161217c565b611a5685836122d5565b6000611a628284611301565b13611b155750611a73859695610b04565b60019460009186805b611a8d575b50505050505050509050565b15611af0575b5085969798508091611aae611aa88b88610a7a565b60011c90565b99611ab98b876122d5565b9083611ac58784611301565b13611ae457505089925b87611ada8886610b14565b9201939998611a7c565b8b975090945092611acf565b861080611b0a575b15611b035788611a93565b8080611a81565b506101008210611af8565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e892600093600091838211611b3457611b71816122f6565b611b7b8583612441565b6000611b878284611301565b13611b155750611b98859695610b04565b60019460009186805b611bb15750505050505050509050565b15611c0e575b5085969798508091611bcc611aa88b88610a7a565b99611bd78b87612441565b9083611be38784611301565b13611c0257505089925b87611bf88886610b14565b9201939998611ba1565b8b975090945092611bed565b861080611c21575b15611b035788611bb7565b506101008210611c16565b60009392918491838211611d0057611c448282612462565b611c4e8583612462565b6000611c5a8284611301565b13611b155750611c6c83869796610b14565b60019460009186805b611c855750505050505050509050565b15611ce2575b5085969798508091611ca0611aa88b88610a7a565b99611cab8b87612462565b9083611cb78784611301565b13611cd657505089925b87611ccc8886610b14565b9201939998611c75565b8b975090945092611cc1565b861080611cf5575b15611b035788611c8b565b506101008210611cea565b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b8181029181830414901517600116156101d5576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101d557600190600019830104019015150290565b600181151516156101d5576ec097ce7bc90715b34b9f0fffffffff0460010190565b6103e9908181029181830414901517600116156101d55760016103e8600019830104019015150290565b15611dcf57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e19811315611f8457680755bf798b4a1bf1e5811215611f50576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029182051482151516156101d5570590565b6103e881810291600160ff1b81136001179183051416156101d557670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b9091131716156101d557670de0b6b3a7640000900590565b610f1c9360609296959360e083019783526020830152604082015201906060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000490565b670de0b6b3a764000090818102918183041490151782151516156101d5570490565b6103e89080820291820414600116156101d557670de0b6b3a7640000900490565b8181029181830414901517600116156101d557670de0b6b3a7640000900490565b6103e7908181029181830414901517600116156101d5576103e8900490565b612115811515611dc8565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b80518101602001906020019061219191611a03565b9291908351602085015160408601516121a990610ade565b916121b48686612087565b6121be8282611324565b926121c891611324565b8751868885816121d8858b6120ca565b906121e2916120ca565b906121ec916120ca565b926121f6906120a9565b6121ff90610af4565b9061220991610a7a565b90612213916120ca565b61221c86610ade565b612225916120ca565b9261222f89610a6a565b90612239906110f0565b61224291611324565b9161224c906120a9565b61225586610ade565b61225e916120ca565b6122689087610a7a565b9261227291610b14565b9161227c916120ca565b875161228790610ade565b61229090612068565b61229991611324565b6122a2916120ca565b95516122ad90610ade565b926122b786610a6a565b956122c1916120ca565b906122cb916120ca565b92611295906120a9565b906122ec6102339260208082518301019101611a03565b9493929092611149565b6123099060208082518301019101611a03565b6040819593959492945191015192670de0b6b3a764000060008582039512818612811691861390151617610a655781869361234385611101565b61234c83611113565b61235591611324565b9461235f91611fa9565b9061236991611324565b9261237384611fc7565b9361237d86611113565b6123879086611ff0565b6123919088610e72565b92839261239d8a611101565b6123a79087611ff0565b946123b191611ff0565b6123ba86611f8a565b6123c391611324565b936123cd86611113565b6123d7908a611ff0565b928a6123e288611fc7565b906123ec9161112d565b6123f591611ff0565b6123fe89611113565b61240791611ff0565b9361241191611ff0565b9361241b91611ff0565b9161242591610e72565b61242e91611ff0565b6124379161112d565b9461186190611101565b906124586102339260208082518301019101611a03565b9493929092611725565b805181019160e0828403126101d5576102339261249060208401519360806020604083015194019101610bec565b92610e8b56fea2646970667358221220ddef7f48a463f4812492c0cc35c784e857fab14e0a29d203d7aa233c67d9fa2964736f6c6343000816003360a03461007f57601f6112cb38819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f57608052604051611230908161009b82396080518181816103b701528181610612015281816107c601526109240152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b610953565b61090e565b6107ad565b610773565b6105f6565b610331565b6102ae565b610221565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101c3565b838082518301019101610986565b9061010d6100ff600435610a7f565b8680825183010191016109a1565b92610b68565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761015057604052565b61011e565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101a1601f8201601f191660200184610155565b8294818452818301116101be578281602093846000960137010152565b600080fd5b9080601f830112156101be578160206101de93359101610177565b90565b919082519283825260005b84811061020d575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101ec565b346101be5760003660031901126101be57604051604081019080821067ffffffffffffffff8311176101505761027891604052600381526247334d60e81b60208201526040519182916020835260208301906101e1565b0390f35b9060405161028981610134565b6060600382948054845260018101546020850152600281015460408501520154910152565b346101be5760203660031901126101be57600435600052600060205260c060406000206102da8161027c565b90600481015490600560018060a01b03910154169060606040519380518552602081015160208601526040810151604086015201516060840152608083015260a0820152f35b6001600160a01b038116036101be57565b346101be5760603660031901126101be5761034d600435610320565b60243560443567ffffffffffffffff81116101be576103709036906004016101c3565b9061037a81610a7f565b90610390825192602080809583010191016109a1565b6040516333854efd60e21b8152600481018390529092906060816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa948515610596576000908192829761055d575b508084806103ff93518301019101610986565b949195909787878581116000146104c45793610454869461044e866104496104769b9761044461046198604061043b61046d9f6104679f610a08565b91015190610f48565b610f48565b610f74565b50610a7f565b80518101820191016109a1565b91610bb9565b83610a27565b93828685610b68565b93846013191292836104b9575b6102789394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b601486129350610483565b5050919290938089116000146104ff5761046161046d946104546104769761044e856104498f998f61044490604061043b866104679f610a08565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9096506103ff9250610587915060603d60601161058f575b61057f8183610155565b810190610986565b9690926103ec565b503d610575565b6109e6565b9060606003198301126101be576004356105b481610320565b916024359160443567ffffffffffffffff928382116101be57806023830112156101be5781600401359384116101be57602484830101116101be576024019190565b346101be576106043661059b565b9192506001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610761578160c091810103126101be5780359160208201359160408101359460608201359060a08301359261066984610320565b670de0b6b3a764000083101561074f5761070d946107059460806106f1936106f69661069f876000526000602052604060002090565b55013560046106b8866000526000602052604060002090565b01551660056106d1846000526000602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610a7f565b602080825183010191016109a1565b848385610b68565b9283601319129182610744575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b60148512925061071a565b60405163e8a38a6160e01b8152600490fd5b604051636853cba760e01b8152600490fd5b346101be5760606107833661059b565b818094509492940103126101be5780359061070d6107056106f66040602085013594013595610a7f565b346101be576107bb3661059b565b926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610761576108236108176005610809876000526000602052604060002090565b01546001600160a01b031690565b6001600160a01b031690565b9116036108fc5761083683820182610a4a565b61083f81610a5f565b60018103610878575061086261085d61087392600494953691610177565b610caa565b926000526000602052604060002090565b01555b005b61088181610a5f565b600281036108bd5750906108a56108a06108b893610876953691610177565b610c00565b9290916000526000602052604060002090565b610c28565b806108c9600392610a5f565b036108ea576106d16108626108e5600593610876963691610177565b610bd8565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101be5760003660031901126101be576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101be5760203660031901126101be57610278610972600435610a7f565b6040519182916020835260208301906101e1565b908160609103126101be578051916040602083015192015190565b908160809103126101be576060604051916109bb83610134565b80518352602081015160208401526040810151604084015201516109de81610320565b606082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610a1557565b6109f2565b91908201809211610a1557565b81810392916000138015828513169184121617610a1557565b600411156101be57565b908160209103126101be57356101de81610a40565b60041115610a6957565b634e487b7160e01b600052602160045260246000fd5b60408051610a8c81610134565b6000918282526020820193838552818301848152606084019085825282865285602052610ac2610abd85882061027c565b610cdf565b808652670de0b6b3a7640000908103908111610a1557846101de97610b1f95610b1294600594610b5a9c5281835282602052600484842001549052815280602052200160018060a01b0390541690565b6001600160a01b03169052565b5192839160208301919091606060808201938051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b03601f198101835282610155565b926020610b9184610b8b610b83610b9a9697610ba099610fa4565b855190610d88565b95610fa4565b91015190610d88565b90610f48565b670de0b6b3a763ffff198101908113600116610a155790565b6101de92916020610bcf610b9a93855190610d88565b93015190610d88565b6040818051810103126101be5780610bf560206040930151610a40565b015161081781610320565b6060818051810103126101be57610c1a6020820151610a40565b606060408201519101519091565b919042821115610c9857610c3e610abd8461027c565b9081845542600385015542830391838311610a1557610c5c91610a27565b428314610c8257600160ff1b8114600019831416610a1557600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101be5780610cc760206040930151610a40565b015190565b81810292918115918404141715610a1557565b6060810151906020810151808314610d5e57804211600014610d5657915b8203918211610a15576040810190815160008113600014610d3057506101de92610d2a9151925190610ccc565b90610a1a565b90519150600160ff1b8114610a15576101de92610d509160000390610ccc565b90610a08565b504291610cfd565b5090505190565b818102929160008212600160ff1b821416610a15578184051490151715610a1557565b610f356101de927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284610f4393610dbe60008213610fc6565b711340daa0d5f769dba1915cef59f0815a5506610dda82611188565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d610d65565b670de0b6b3a7640000900590565b610ffe565b8181029181830414901517600116156101be576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101be57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101be570490565b15610fcd57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131561118257680755bf798b4a1bf1e581121561114e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b611193811515610fc6565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c600110179056fea26469706673582212209815df372867dd1ba42d4263690c8e70d1f8dc34ff9f897579936267cb43316764736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a26469706673582212209f84f95ffd6d57e95a0e6fdb3a129e7e6d8817b1b2045f622386152cbaabb13a64736f6c63430008160033","sourceMap":"88:1631:69:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;1235:10:73;;;;;-1:-1:-1;;;1235:10:73;;88:1631:69;1235:10:73;88:1631:69;1057:14:1;;;1235:10:73;-1:-1:-1;;88:1631:69;1235:10:73;;;;;;;;;;88:1631:69;1349:3:73;1057:14:1;;;;;1506:28:73;;1341:12;;-1:-1:-1;;;;;88:1631:69;1057:14:1;-1:-1:-1;;;;;88:1631:69;;;1341:12:73;1383:6;1057:14:1;1300:180:73;;1375:15;;-1:-1:-1;;;;;88:1631:69;1057:14:1;88:1631:69;1375:15:73;1420:6;1057:14:1;1300:180:73;;1412:15;;-1:-1:-1;;;;;88:1631:69;1057:14:1;88:1631:69;1412:15:73;1057:14:1;1300:180:73;1057:14:1;;:::i;:::-;-1:-1:-1;;;;;88:1631:69;;;1057:14:1;;;1300:180:73;-1:-1:-1;;;;;88:1631:69;1447:22:73;1300:180;;1057:14:1;;1300:180:73;-1:-1:-1;;;;;88:1631:69;;1300:180:73;;1057:14:1;;1300:180:73;1057:14:1;;:::i;:::-;1300:180:73;;;1057:14:1;1506:4:73;1057:14:1;1506:9:73;;-1:-1:-1;;;;;88:1631:69;1057:14:1;88:1631:69;1506:9:73;88:1631:69;;;1057:14:1;;;;;;;;;1506:28:73;;88:1631:69;1506:28:73;;;:::i;:::-;;;;;;;;;;1491:43;1506:28;;;;;88:1631:69;1491:43:73;;;1057:14:1;;1491:43:73;1545:1;;:::i;:::-;88:1631:69;;1506:28:73;;;;;;-1:-1:-1;1506:28:73;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;1235:10::-;;88:1631:69;;;;1235:10:73;;;;88:1631:69;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;649:554:73;;:::i;:::-;88:1631:69;;;724:32:73;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;715:41;88:1631:69;;-1:-1:-1;;;;;;88:1631:69;-1:-1:-1;;;;;88:1631:69;;;;;;;;;;;775:32:73;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;766:41;88:1631:69;;-1:-1:-1;;;;;;88:1631:69;-1:-1:-1;;;;;88:1631:69;;;;;;715:41:73;1057:14:1;817:11:73;;88:1631:69;1057:14:1;88:1631:69;817:11:73;:34;;;;;88:1631:69;;-1:-1:-1;;;817:34:73;;;837:4;88:1631:69;817:34:73;;88:1631:69;844:6:73;88:1631:69;;;;1057:14:1;;;88:1631:69;;;;;;1057:14:1;;817:34:73;;;;;;;;88:1631:69;-1:-1:-1;766:41:73;1057:14:1;;;861:11:73;;-1:-1:-1;;;;;88:1631:69;1057:14:1;88:1631:69;861:11:73;:34;;;;;;88:1631:69;;861:34:73;;;837:4;88:1631:69;861:34:73;;88:1631:69;844:6:73;88:1631:69;;;;;;;;;;;837:4:73;;861:34;;;;;;;;88:1631:69;-1:-1:-1;715:41:73;1057:14:1;920:15:73;;-1:-1:-1;;;;;88:1631:69;1057:14:1;88:1631:69;920:15:73;766:41;1057:14:1;937:15:73;;-1:-1:-1;;;;;88:1631:69;1057:14:1;88:1631:69;937:15:73;88:1631:69;;;912:46:73;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:1631:69;;;;;;;378:4:31;;;88:1631:69;378:4:31;;;;88:1631:69;378:4:31;;;;912:46:73;;;;;;;;;906:52;88:1631:69;;-1:-1:-1;;;;;;88:1631:69;-1:-1:-1;;;;;88:1631:69;;;;;;;;;;;975:20:73;;;;;;;;;;;;;;;;;;;;;88:1631:69;;;;;;;975:20:73;;;;;;;;;968:27;88:1631:69;;-1:-1:-1;;;;;;88:1631:69;-1:-1:-1;;;;;88:1631:69;;;;;;;;;1019:13:73;;1057:14:1;88:1631:69;1019:13:73;88:1631:69;;1011:22:73;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:1631:69;;;;;;;;;1011:22:73;;;;;;;;;1005:28;88:1631:69;;-1:-1:-1;;;;;;88:1631:69;-1:-1:-1;;;;;88:1631:69;;;;;;;;;1066:12:73;;1057:14:1;88:1631:69;1066:12:73;88:1631:69;;;1052:27:73;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:1631:69;;;;;;;;;1052:27:73;;;;;;;;;;1043:36;1090:48;1043:36;724:32;88:1631:69;;;;;;;;1043:36:73;88:1631:69;;;1043:36:73;88:1631:69;;1043:36:73;715:41;1057:14:1;1090::73;;-1:-1:-1;;;;;88:1631:69;1057:14:1;88:1631:69;1090:14:73;968:27;1057:14:1;1105:13:73;;-1:-1:-1;;;;;88:1631:69;1057:14:1;88:1631:69;1105:13:73;88:1631:69;;-1:-1:-1;;;1090:48:73;;;-1:-1:-1;;;;;88:1631:69;;;;1090:48:73;;88:1631:69;-1:-1:-1;;88:1631:69;;;;1090:48:73;;88:1631:69;;1057:14:1;;1090:48:73;;88:1631:69;;1090:48:73;88:1631:69;;1090:48:73;;88:1631:69;;;;;;;1090:48:73;;;;;;;;;;1148;1090;;;;;88:1631:69;-1:-1:-1;766:41:73;1057:14:1;1148::73;;-1:-1:-1;;;;;88:1631:69;1057:14:1;88:1631:69;1148:14:73;968:27;1057:14:1;;;;;;1163:13:73;;-1:-1:-1;;;;;88:1631:69;1057:14:1;88:1631:69;1163:13:73;88:1631:69;;1148:48:73;;;-1:-1:-1;;;;;88:1631:69;;;;1148:48:73;;88:1631:69;-1:-1:-1;;88:1631:69;;;;;;;;;;;;;;;;1148:48:73;;;;;;;;;;;88:1631:69;;;1148:48:73;;;;;;-1:-1:-1;1148:48:73;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;88:1631:69;;;1148:48:73;;;;;1090;;;;;;;;;;;;;:::i;:::-;;;;;1052:27;;:::i;861:34::-;;;;;;:::i;:::-;;;:::i;:::-;;;;817;;;;;;:::i;:::-;;;;;88:1631:69;;;;;;;;;;;;-1:-1:-1;;88:1631:69;;;;;;;378:11:59;88:1631:69;;;;;;;;;;;;;;;;;1235:10:73;;;;;88:1631:69;;-1:-1:-1;;;1235:10:73;;88:1631:69;;1235:10:73;;88:1631:69;;;;;;;;;;;;1235:10:73;;;;;;;;88:1631:69;-1:-1:-1;1349:3:73;1057:14:1;;;;;1506:28:73;;1341:12;;-1:-1:-1;;;;;88:1631:69;1057:14:1;88:1631:69;1506:28:73;;;;;;;;;1491:43;1506:28;;;;;88:1631:69;1491:43:73;;1057:14:1;;1491:43:73;1545:1;;:::i;1506:28::-;;;;1057:14:1;1506:28:73;1057:14:1;1506:28:73;;;;;;;:::i;:::-;;;;;;;1235:10;;;;;;:::i;:::-;;;;88:1631:69;;;;;;-1:-1:-1;;88:1631:69;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;88:1631:69;;;;;243:22:73;88:1631:69;;;;;;;;;;;;;-1:-1:-1;;88:1631:69;;;;992:4:59;1057:14:1;88:1631:69;;-1:-1:-1;;;992:20:59;;88:1631:69;;;992:20:59;;;88:1631:69;;1057:14:1;;88:1631:69;;;;;;-1:-1:-1;;;;;88:1631:69;992:20:59;;;;;;;-1:-1:-1;992:20:59;;;88:1631:69;1029:19:59;;;88:1631:69;;;-1:-1:-1;;;;;88:1631:69;;;;-1:-1:-1;;;;;88:1631:69;;;;;;;;;;;;;;;;;992:20:59;;;1057:14:1;992:20:59;;1057:14:1;992:20:59;;;;;;1057:14:1;992:20:59;;;:::i;:::-;;;88:1631:69;;;;;1029:19:59;88:1631:69;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;992:20:59;;;;;;;;-1:-1:-1;992:20:59;;88:1631:69;;;;;;-1:-1:-1;;88:1631:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1057:14:1;88:1631:69;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;88:1631:69;;;;;;:::o;1057:14:1:-;88:1631:69;;1057:14:1;;;;;;;;88:1631:69;;1057:14:1;-1:-1:-1;1447:22:73;1057:14:1;1447:22:73;1057:14:1;;;;;;;;;;;;;;;;1447:22:73;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;1447:22:73;1057:14:1;;;;;;;-1:-1:-1;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1057:14:1;;;;;;88:1631:69;1057:14:1;;;;;;;;;;;;;;;;;;88:1631:69;;1057:14:1;;;;88:1631:69;1057:14:1;;;;;88:1631:69;1057:14:1;;88:1631:69;1057:14:1;:::o;:::-;;;;;;;;-1:-1:-1;;1057:14:1;;;;:::o;:::-;;;;;;;;;;;;;;;;;;88:1631:69;;1057:14:1;;;;;;;;;;;;:::i;:::-;88:1631:69;;-1:-1:-1;;88:1631:69;1057:14:1;;;:::o;:::-;;;;;;;;724:32:73;88:1631:69;;;;1057:14:1;;;88:1631:69;1057:14:1;;;88:1631:69;1057:14:1;;;;;88:1631:69;1057:14:1;;;88:1631:69;1057:14:1;;;;88:1631:69;1057:14:1;;;88:1631:69;1057:14:1;;;;;;;;;;;:::i;:::-;;:::o;88:1631:69:-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::o;131:790::-;302:6;88:1631;302:21;;-1:-1:-1;;;;;88:1631:69;;;302:21;324:7;88:1631;;;;-1:-1:-1;;;302:39:69;;;;;;88:1631;;;207:9;88:1631;;;;;;;;302:39;;;;88:1631;;;;;;;302:39;;;;;;;;;-1:-1:-1;;;;;302:39:69;;;131:790;-1:-1:-1;382:4:69;1057:14:1;382:16:69;;-1:-1:-1;;;;;88:1631:69;1057:14:1;88:1631:69;382:16;88:1631;;-1:-1:-1;;;382:40:69;;;407:4;382:40;;;88:1631;;;382:40;88:1631;;;;;;382:40;88:1631;;1057:14:1;;;;407:4:69;382:40;;88:1631;;;;;;382:40;;;;;;;;;;-1:-1:-1;382:40:69;;;131:790;88:1631;;;1057:14:1;;;465:37:69;;;;;;;;;;;;88:1631;;;;;;;;465:37;;;;;;;;;;;;;-1:-1:-1;465:37:69;;;131:790;-1:-1:-1;88:1631:69;;533:46;;;88:1631;;;;;;;;;;;589:28;;88:1631;;;;;533:46;;88:1631;;;;533:46;88:1631;;533:46;;;;;;:::i;:::-;-1:-1:-1;88:1631:69;;1057:14:1;;;;;;;;;589:28:69;;;;;;:::i;:::-;;;;;;;;;;;131:790;-1:-1:-1;382:4:69;1057:14:1;662:28:69;;-1:-1:-1;;;;;88:1631:69;1057:14:1;88:1631:69;662:28;88:1631;324:7;88:1631;;;;662:37;;;;;;;;;;;88:1631;;;;;;;;662:37;;;;;;;;;;;864:40;662:37;;;809:41;662:37;739:38;662:37;-1:-1:-1;662:37:69;;;131:790;739:38;;;:::i;:::-;809:41;;:::i;:::-;88:1631;;864:40;;;407:4;864:40;;;88:1631;;;;;;;;;;;;;;;;;;;;;;864:40;;;;;;;;;;;;-1:-1:-1;864:40:69;;;131:790;864:40;;;:::i;:::-;;;;;;;-1:-1:-1;864:40:69;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;662:37;;;;;;-1:-1:-1;662:37:69;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;589:28;;;;;;;;;;;;;:::i;:::-;;;;;465:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;382:40;;;;;;;;;;;;;;;:::i;:::-;;;;;302:39;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;88:1631;;;;;;;;;1057:14:1;-1:-1:-1;;;1057:14:1;;;88:1631:69;;1057:14:1;88:1631:69;;;;;;;1057:14:1;-1:-1:-1;;;1057:14:1;;;88:1631:69;753:2:73;88:1631:69;;;;;;;:::o;:::-;;;;;;;;;1057:14:1;-1:-1:-1;;;1057:14:1;;;88:1631:69;;1057:14:1;88:1631:69;;;;;;;1057:14:1;-1:-1:-1;;;1057:14:1;;;88:1631:69;753:2:73;88:1631:69;;;;;;;:::o;378:4:31:-;;;;;;;;;;88:1631:69;;;378:4:31;;;;;:::o;927:790:69:-;1098:6;88:1631;1098:21;;-1:-1:-1;;;;;88:1631:69;;;1098:21;1120:7;88:1631;;;;-1:-1:-1;;;1098:39:69;;;;;;88:1631;;;207:9;88:1631;;;;;;;;1098:39;;;;88:1631;;;;;;;1098:39;88:1631;1671:64:0;;;;;;;;;;88:1631:69;;1671:64:0;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;88:1631:69;;;;;;;-1:-1:-1;;88:1631:69;1671:64:0;;88:1631:69;;:::i;:::-;1671:64:0;;;-1:-1:-1;1671:64:0;;;;:::o;:::-;;;:::o;1819:584::-;1873:7;88:1631:69;;;;;;1873:7:0;;;88:1631:69;;;;;1057:14:1;:::o;1869:528:0:-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;88:1631:69;;;;;2196:43:0;;;;;;1671:64;;;;88:1631:69;;;;1671:64:0;;;;;;88:1631:69;1671:64:0;2196:43;;;88:1631:69;;2196:43:0;;;;;;;;:::i;:::-;2086:175;88:1631:69;;2086:175:0;;;2196:43;2086:175;;;;;:::i;:::-;;;;;;;;;:::i;:::-;2047:232;;;;;2312:27;2047:232;;:::i;:::-;2196:43;88:1631:69;;;2312:27:0;;;;;;:::i;5202:262::-;;5259:6;;;5255:203;;5202:262;;:::o;5255:203::-;88:1631:69;;;;;;;5286:41:0;88:1631:69;;;;;;;;;;1057:14:1;88:1631:69;1057:14:1;;;88:1631:69;-1:-1:-1;;;88:1631:69;;;;5286:41:0;88:1631:69;;;;;;;;;;1057:14:1;-1:-1:-1;;;88:1631:69;1057:14:1;;88:1631:69;;;;;5346:31:0;;;;;88:1631:69;;;;;;;;;;1057:14:1;-1:-1:-1;;;88:1631:69;1057:14:1;;88:1631:69;;;;;5396:31:0;2939:104;;;2445:359;;5255:203;88:1631:69;;;;;;2928:1:0;88:1631:69;;;2928:1:0;88:1631:69;5202:262:0:o;2445:359::-;88:1631:69;-1:-1:-1;1671:64:0;2534:196;1671:64;88:1631:69;;;;;;2645:67:0;;;;88:1631:69;;;;1671:64:0;;;88:1631:69;;;;2705:4:0;88:1631:69;;;;;2645:67:0;;;;;:::i;:::-;88:1631:69;2534:196:0;;;;;1671:64;;;;;;88:1631:69;1671:64:0;;;;;;;:::i;:::-;;;2534:196;1671:64;2534:196;;;;;;;:::i;:::-;2499:245;;;;;;;:::i;:::-;;2445:359;;;;;396:450:59;88:1631:69;;;447:32:59;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;715:41:73;88:1631:69;;-1:-1:-1;;;;;;88:1631:69;-1:-1:-1;;;;;88:1631:69;;;;;;;;;;;498:32:59;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;766:41:73;88:1631:69;;-1:-1:-1;;;;;;88:1631:69;-1:-1:-1;;;;;88:1631:69;;;;;;438:41:59;1057:14:1;540:11:59;;88:1631:69;1057:14:1;88:1631:69;540:11:59;:34;;;;;88:1631:69;;-1:-1:-1;;;540:34:59;;;560:4;540:34;;;88:1631:69;844:6:73;88:1631:69;;;;1057:14:1;;;88:1631:69;;;;;;1057:14:1;;540:34:59;;;;;;;;396:450;-1:-1:-1;489:41:59;1057:14:1;584:11:59;;-1:-1:-1;;;;;88:1631:69;1057:14:1;88:1631:69;584:11:59;:34;;;;;;88:1631:69;;584:34:59;;;560:4;540:34;584;;88:1631:69;844:6:73;88:1631:69;;;;;;;;;;;;;;;584:34:59;;;;;;;;396:450;-1:-1:-1;438:41:59;1057:14:1;643:15:59;;-1:-1:-1;;;;;88:1631:69;1057:14:1;88:1631:69;643:15:59;489:41;1057:14:1;660:15:59;;-1:-1:-1;;;;;88:1631:69;1057:14:1;88:1631:69;660:15:59;88:1631:69;;;635:50:59;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:1631:69;;;;;;;378:4:31;;;88:1631:69;378:4:31;;;;88:1631:69;378:4:31;;;;635:50:59;;;;;;;;;906:52:73;88:1631:69;;-1:-1:-1;;;;;;88:1631:69;-1:-1:-1;;;;;88:1631:69;;;;;;;;;;;;702:20:59;;;;;;;;;;;;;;;;;;;;88:1631:69;;;;;;;702:20:59;;;;;;;;;;695:27;733:48;695:27;724:32:73;88:1631:69;;;;;;;;968:27:73;88:1631:69;;;968:27:73;88:1631:69;;695:27:59;438:41;1057:14:1;733::59;;-1:-1:-1;;;;;88:1631:69;1057:14:1;88:1631:69;733:14:59;695:27;1057:14:1;;;;748:13:59;;-1:-1:-1;;;;;88:1631:69;1057:14:1;88:1631:69;748:13:59;88:1631:69;;-1:-1:-1;;;733:48:59;;;-1:-1:-1;;;;;88:1631:69;;;540:34:59;733:48;;88:1631:69;-1:-1:-1;;88:1631:69;;;;733:48:59;;88:1631:69;;1057:14:1;;733:48:59;;88:1631:69;;733:48:59;88:1631:69;;;;;;;;;;;733:48:59;;;;;;;;;;791;733;;;;;396:450;-1:-1:-1;489:41:59;1057:14:1;791::59;;-1:-1:-1;;;;;88:1631:69;1057:14:1;88:1631:69;791:14:59;695:27;1057:14:1;;;;806:13:59;;-1:-1:-1;;;;;88:1631:69;1057:14:1;88:1631:69;791:48:59;;;;;;;;;;;396:450;;:::o;791:48::-;;;;;;-1:-1:-1;791:48:59;;;;;;:::i;:::-;;396:450::o;733:48::-;;;;;;;;;;;;;:::i;:::-;;;;;584:34;;;;;;:::i;:::-;;;;540;;;;;;:::i;:::-;;;;;88:1631:69;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","POOL_ID()":"e0d7d0e9","TEST_SWAP_FEE()":"620a2607","failed()":"ba414fa6","getPoolLiquidityToken(uint256)":"e21485ad","setUp()":"0a9254e4","test_G3M_allocate_GivenX()":"05457be9","test_G3M_allocate_GivenY()":"acb87c30"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"upper\",\"type\":\"uint256\"}],\"name\":\"BisectionLib_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"lowerResult\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"upperResult\",\"type\":\"int256\"}],\"name\":\"BisectionLib_RootOutsideBounds\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POOL_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_SWAP_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolLiquidityToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_G3M_allocate_GivenX\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_G3M_allocate_GivenY\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"BisectionLib_InvalidBounds(uint256,uint256)\":[{\"details\":\"Thrown when the lower bound is greater than the upper bound.\"}],\"BisectionLib_RootOutsideBounds(int256,int256)\":[{\"details\":\"Thrown when the result of the function `fx` for each input, `upper` and `lower`, is the same sign.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/unit/strategies/G3M/Allocate.t.sol\":\"G3MAllocateTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/lib/SignedWadMath.sol\":{\"keccak256\":\"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a\",\"dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/solvers/G3M/G3MExtendedLib.sol\":{\"keccak256\":\"0xa7e4eb7172ca81b319ccb5ac248c302fb549be3eb6badda424800f73edfbc448\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2d53a62a983c65dd0b892f30d30b603fc5cf7ebb4895dbdcb0a05a9eae1a431f\",\"dweb:/ipfs/QmNXKi6XUWswwKuzaE6SorZhRvd7Nz6dxYmLmii8bVcRhK\"]},\"src/solvers/G3M/G3MSolver.sol\":{\"keccak256\":\"0x78a3ae3db50beba513113d6a79c1d29282ccc46852563237fc3852eb1390376e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://146cfcc48b6a2fd6cd392f8508232b201add90f0f4352b141bc8d25b821884da\",\"dweb:/ipfs/QmXB3vg58RwUEEMCqgvdEGfwZjTzvE9PXDEZ8XFYsmiK1s\"]},\"src/strategies/G3M/G3M.sol\":{\"keccak256\":\"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c\",\"dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE\"]},\"src/strategies/G3M/G3MLib.sol\":{\"keccak256\":\"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70\",\"dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]},\"src/test/helpers/MockStrategy.sol\":{\"keccak256\":\"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5\",\"dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw\"]},\"src/test/helpers/SetUp.sol\":{\"keccak256\":\"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30\",\"dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14\"]},\"src/test/unit/DFMM/SetUp.sol\":{\"keccak256\":\"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4\",\"dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm\"]},\"src/test/unit/strategies/G3M/Allocate.t.sol\":{\"keccak256\":\"0x24a19b271797222016e1bb233f71a7039c4fb360df5acdee2312dd02d898cb0d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://66630e95f2dbe54a91655358031ed331c4c2d22ba46dcb3ce8e304d0683d932f\",\"dweb:/ipfs/QmZy7N9HW5ANggPN5VqQdHNFTd8tsHQedSL7aea2qJdKcz\"]},\"src/test/unit/strategies/G3M/SetUp.sol\":{\"keccak256\":\"0xf3df0de5242d3ce771a7d1c56bc0e6d49c33c93bd213f173ae893ffa8cb8a2db\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://15593516464636019a55cab0dfda3c32d88ce82ece50e1f6ecab55e17305042a\",\"dweb:/ipfs/QmcySG4cNFidHEpwBcuMfWVkzGPWTPyLwgwrNodUoTZips\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"lower","type":"uint256"},{"internalType":"uint256","name":"upper","type":"uint256"}],"type":"error","name":"BisectionLib_InvalidBounds"},{"inputs":[{"internalType":"int256","name":"lowerResult","type":"int256"},{"internalType":"int256","name":"upperResult","type":"int256"}],"type":"error","name":"BisectionLib_RootOutsideBounds"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"POOL_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_SWAP_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolLiquidityToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_G3M_allocate_GivenX"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_G3M_allocate_GivenY"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/unit/strategies/G3M/Allocate.t.sol":"G3MAllocateTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/lib/SignedWadMath.sol":{"keccak256":"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630","urls":["bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a","dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN"],"license":"MIT"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/solvers/G3M/G3MExtendedLib.sol":{"keccak256":"0xa7e4eb7172ca81b319ccb5ac248c302fb549be3eb6badda424800f73edfbc448","urls":["bzz-raw://2d53a62a983c65dd0b892f30d30b603fc5cf7ebb4895dbdcb0a05a9eae1a431f","dweb:/ipfs/QmNXKi6XUWswwKuzaE6SorZhRvd7Nz6dxYmLmii8bVcRhK"],"license":"GPL-3.0-or-later"},"src/solvers/G3M/G3MSolver.sol":{"keccak256":"0x78a3ae3db50beba513113d6a79c1d29282ccc46852563237fc3852eb1390376e","urls":["bzz-raw://146cfcc48b6a2fd6cd392f8508232b201add90f0f4352b141bc8d25b821884da","dweb:/ipfs/QmXB3vg58RwUEEMCqgvdEGfwZjTzvE9PXDEZ8XFYsmiK1s"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3M.sol":{"keccak256":"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034","urls":["bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c","dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3MLib.sol":{"keccak256":"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4","urls":["bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70","dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m"],"license":"GPL-3.0-or-later"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"},"src/test/helpers/MockStrategy.sol":{"keccak256":"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a","urls":["bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5","dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw"],"license":"UNLICENSED"},"src/test/helpers/SetUp.sol":{"keccak256":"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb","urls":["bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30","dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14"],"license":"UNLICENSED"},"src/test/unit/DFMM/SetUp.sol":{"keccak256":"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a","urls":["bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4","dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm"],"license":"UNLICENSED"},"src/test/unit/strategies/G3M/Allocate.t.sol":{"keccak256":"0x24a19b271797222016e1bb233f71a7039c4fb360df5acdee2312dd02d898cb0d","urls":["bzz-raw://66630e95f2dbe54a91655358031ed331c4c2d22ba46dcb3ce8e304d0683d932f","dweb:/ipfs/QmZy7N9HW5ANggPN5VqQdHNFTd8tsHQedSL7aea2qJdKcz"],"license":"UNLICENSED"},"src/test/unit/strategies/G3M/SetUp.sol":{"keccak256":"0xf3df0de5242d3ce771a7d1c56bc0e6d49c33c93bd213f173ae893ffa8cb8a2db","urls":["bzz-raw://15593516464636019a55cab0dfda3c32d88ce82ece50e1f6ecab55e17305042a","dweb:/ipfs/QmcySG4cNFidHEpwBcuMfWVkzGPWTPyLwgwrNodUoTZips"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/unit/strategies/G3M/Allocate.t.sol","id":46708,"exportedSymbols":{"ArbiterToken":[43381],"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"DFMM":[29062],"DFMMSetUp":[45761],"DSTest":[1786],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"G3M":[37911],"G3MAllocateTest":[46707],"G3MLib":[38158],"G3MSetUp":[47524],"G3MSolver":[33820],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"LPToken":[29516],"Lex":[44392],"LibString":[26659],"Min":[27736],"MockERC20":[25560],"MockStrategy":[44649],"ONE":[30639],"SQRT_WAD":[30630],"SafeTransferLib":[26744],"SetUp":[44852],"SignedWadMathLib":[30623],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"TWO":[30633],"Test":[8195],"TestBase":[1843],"Vm":[9352],"WETH":[26027],"ZERO":[30649],"abs":[27763],"bisection":[31118],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeInitialPoolData":[31906],"computeL":[31844],"computeLGivenX":[31662],"computeLGivenY":[31688],"computeNextLiquidity":[32899],"computeNextRx":[32006],"computeNextRy":[31956],"computeOptimalLower":[32732],"computeOptimalRaise":[32798],"computePrice":[32043],"computeScalingFactor":[30048],"computeX":[31792],"computeXGivenL":[31714],"computeY":[31766],"computeYGivenL":[31740],"console":[17416],"console2":[25512],"diffLower":[32419],"diffRaise":[32666],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"findRootLiquidity":[32083],"findRootLower":[32129],"findRootRaise":[32175],"muli":[27777],"muliWad":[27795],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"39:1681:69","nodes":[{"id":46537,"nodeType":"PragmaDirective","src":"39:24:69","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":46538,"nodeType":"ImportDirective","src":"65:21:69","nodes":[],"absolutePath":"src/test/unit/strategies/G3M/SetUp.sol","file":"./SetUp.sol","nameLocation":"-1:-1:-1","scope":46708,"sourceUnit":47525,"symbolAliases":[],"unitAlias":""},{"id":46707,"nodeType":"ContractDefinition","src":"88:1631:69","nodes":[{"id":46623,"nodeType":"FunctionDefinition","src":"131:790:69","nodes":[],"body":{"id":46622,"nodeType":"Block","src":"179:742:69","nodes":[],"statements":[{"assignments":[46546],"declarations":[{"constant":false,"id":46546,"mutability":"mutable","name":"amountX","nameLocation":"197:7:69","nodeType":"VariableDeclaration","scope":46622,"src":"189:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46545,"name":"uint256","nodeType":"ElementaryTypeName","src":"189:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46548,"initialValue":{"hexValue":"302e31","id":46547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"207:9:69","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"189:27:69"},{"assignments":[46550,46552,46554],"declarations":[{"constant":false,"id":46550,"mutability":"mutable","name":"reserveX","nameLocation":"236:8:69","nodeType":"VariableDeclaration","scope":46622,"src":"228:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46549,"name":"uint256","nodeType":"ElementaryTypeName","src":"228:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46552,"mutability":"mutable","name":"reserveY","nameLocation":"254:8:69","nodeType":"VariableDeclaration","scope":46622,"src":"246:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46551,"name":"uint256","nodeType":"ElementaryTypeName","src":"246:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46554,"mutability":"mutable","name":"deltaLiquidity","nameLocation":"272:14:69","nodeType":"VariableDeclaration","scope":46622,"src":"264:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46553,"name":"uint256","nodeType":"ElementaryTypeName","src":"264:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46560,"initialValue":{"arguments":[{"id":46557,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"324:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46558,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46546,"src":"333:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46555,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47328,"src":"302:6:69","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":46556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"309:14:69","memberName":"allocateGivenX","nodeType":"MemberAccess","referencedDeclaration":33083,"src":"302:21:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) view external returns (uint256,uint256,uint256)"}},"id":46559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"302:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"227:114:69"},{"assignments":[46562],"declarations":[{"constant":false,"id":46562,"mutability":"mutable","name":"preLiquidityBalance","nameLocation":"360:19:69","nodeType":"VariableDeclaration","scope":46622,"src":"352:27:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46561,"name":"uint256","nodeType":"ElementaryTypeName","src":"352:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46571,"initialValue":{"arguments":[{"arguments":[{"id":46567,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"407:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_G3MAllocateTest_$46707","typeString":"contract G3MAllocateTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MAllocateTest_$46707","typeString":"contract G3MAllocateTest"}],"id":46566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"399:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46565,"name":"address","nodeType":"ElementaryTypeName","src":"399:7:69","typeDescriptions":{}}},"id":46568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"399:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46569,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"414:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46563,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"382:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":46564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"387:11:69","memberName":"liquidityOf","nodeType":"MemberAccess","referencedDeclaration":29061,"src":"382:16:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":46570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"382:40:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"352:70:69"},{"assignments":[null,null,46573],"declarations":[null,null,{"constant":false,"id":46573,"mutability":"mutable","name":"preTotalLiquidity","nameLocation":"444:17:69","nodeType":"VariableDeclaration","scope":46622,"src":"436:25:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46572,"name":"uint256","nodeType":"ElementaryTypeName","src":"436:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46578,"initialValue":{"arguments":[{"id":46576,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"494:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46574,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"465:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":46575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"470:23:69","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29012,"src":"465:28:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":46577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"465:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"432:70:69"},{"assignments":[46580],"declarations":[{"constant":false,"id":46580,"mutability":"mutable","name":"data","nameLocation":"526:4:69","nodeType":"VariableDeclaration","scope":46622,"src":"513:17:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46579,"name":"bytes","nodeType":"ElementaryTypeName","src":"513:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":46587,"initialValue":{"arguments":[{"id":46583,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46550,"src":"544:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46584,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46552,"src":"554:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46585,"name":"deltaLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46554,"src":"564:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46581,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"533:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"537:6:69","memberName":"encode","nodeType":"MemberAccess","src":"533:10:69","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":46586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"533:46:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"513:66:69"},{"expression":{"arguments":[{"id":46591,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"603:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46592,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46580,"src":"612:4:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":46588,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"589:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":46590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"594:8:69","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":28225,"src":"589:13:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) payable external returns (uint256,uint256,uint256)"}},"id":46593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"589:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"id":46594,"nodeType":"ExpressionStatement","src":"589:28:69"},{"assignments":[null,null,46596],"declarations":[null,null,{"constant":false,"id":46596,"mutability":"mutable","name":"postTotalLiquidity","nameLocation":"640:18:69","nodeType":"VariableDeclaration","scope":46622,"src":"632:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46595,"name":"uint256","nodeType":"ElementaryTypeName","src":"632:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46601,"initialValue":{"arguments":[{"id":46599,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"691:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46597,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"662:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":46598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"667:23:69","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29012,"src":"662:28:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":46600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"662:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"628:71:69"},{"assignments":[46603],"declarations":[{"constant":false,"id":46603,"mutability":"mutable","name":"deltaTotalLiquidity","nameLocation":"717:19:69","nodeType":"VariableDeclaration","scope":46622,"src":"709:27:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46602,"name":"uint256","nodeType":"ElementaryTypeName","src":"709:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46607,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46604,"name":"postTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46596,"src":"739:18:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":46605,"name":"preTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46573,"src":"760:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"739:38:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"709:68:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46609,"name":"preLiquidityBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46562,"src":"809:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":46610,"name":"deltaTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46603,"src":"831:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"809:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":46616,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"889:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_G3MAllocateTest_$46707","typeString":"contract G3MAllocateTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MAllocateTest_$46707","typeString":"contract G3MAllocateTest"}],"id":46615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"881:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46614,"name":"address","nodeType":"ElementaryTypeName","src":"881:7:69","typeDescriptions":{}}},"id":46617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"881:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46618,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"896:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46612,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"864:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":46613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"869:11:69","memberName":"liquidityOf","nodeType":"MemberAccess","referencedDeclaration":29061,"src":"864:16:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":46619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"864:40:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46608,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"787:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"787:127:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46621,"nodeType":"ExpressionStatement","src":"787:127:69"}]},"functionSelector":"05457be9","implemented":true,"kind":"function","modifiers":[{"id":46543,"kind":"modifierInvocation","modifierName":{"id":46542,"name":"init","nameLocations":["174:4:69"],"nodeType":"IdentifierPath","referencedDeclaration":47523,"src":"174:4:69"},"nodeType":"ModifierInvocation","src":"174:4:69"}],"name":"test_G3M_allocate_GivenX","nameLocation":"140:24:69","parameters":{"id":46541,"nodeType":"ParameterList","parameters":[],"src":"164:2:69"},"returnParameters":{"id":46544,"nodeType":"ParameterList","parameters":[],"src":"179:0:69"},"scope":46707,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":46706,"nodeType":"FunctionDefinition","src":"927:790:69","nodes":[],"body":{"id":46705,"nodeType":"Block","src":"975:742:69","nodes":[],"statements":[{"assignments":[46629],"declarations":[{"constant":false,"id":46629,"mutability":"mutable","name":"amountX","nameLocation":"993:7:69","nodeType":"VariableDeclaration","scope":46705,"src":"985:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46628,"name":"uint256","nodeType":"ElementaryTypeName","src":"985:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46631,"initialValue":{"hexValue":"302e31","id":46630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1003:9:69","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"985:27:69"},{"assignments":[46633,46635,46637],"declarations":[{"constant":false,"id":46633,"mutability":"mutable","name":"reserveX","nameLocation":"1032:8:69","nodeType":"VariableDeclaration","scope":46705,"src":"1024:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46632,"name":"uint256","nodeType":"ElementaryTypeName","src":"1024:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46635,"mutability":"mutable","name":"reserveY","nameLocation":"1050:8:69","nodeType":"VariableDeclaration","scope":46705,"src":"1042:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46634,"name":"uint256","nodeType":"ElementaryTypeName","src":"1042:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46637,"mutability":"mutable","name":"deltaLiquidity","nameLocation":"1068:14:69","nodeType":"VariableDeclaration","scope":46705,"src":"1060:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46636,"name":"uint256","nodeType":"ElementaryTypeName","src":"1060:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46643,"initialValue":{"arguments":[{"id":46640,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"1120:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46641,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46629,"src":"1129:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46638,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47328,"src":"1098:6:69","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":46639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1105:14:69","memberName":"allocateGivenY","nodeType":"MemberAccess","referencedDeclaration":33129,"src":"1098:21:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) view external returns (uint256,uint256,uint256)"}},"id":46642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1098:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1023:114:69"},{"assignments":[46645],"declarations":[{"constant":false,"id":46645,"mutability":"mutable","name":"preLiquidityBalance","nameLocation":"1156:19:69","nodeType":"VariableDeclaration","scope":46705,"src":"1148:27:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46644,"name":"uint256","nodeType":"ElementaryTypeName","src":"1148:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46654,"initialValue":{"arguments":[{"arguments":[{"id":46650,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1203:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_G3MAllocateTest_$46707","typeString":"contract G3MAllocateTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MAllocateTest_$46707","typeString":"contract G3MAllocateTest"}],"id":46649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1195:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46648,"name":"address","nodeType":"ElementaryTypeName","src":"1195:7:69","typeDescriptions":{}}},"id":46651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1195:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46652,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"1210:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46646,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1178:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":46647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1183:11:69","memberName":"liquidityOf","nodeType":"MemberAccess","referencedDeclaration":29061,"src":"1178:16:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":46653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1178:40:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1148:70:69"},{"assignments":[null,null,46656],"declarations":[null,null,{"constant":false,"id":46656,"mutability":"mutable","name":"preTotalLiquidity","nameLocation":"1240:17:69","nodeType":"VariableDeclaration","scope":46705,"src":"1232:25:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46655,"name":"uint256","nodeType":"ElementaryTypeName","src":"1232:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46661,"initialValue":{"arguments":[{"id":46659,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"1290:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46657,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1261:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":46658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1266:23:69","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29012,"src":"1261:28:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":46660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1261:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1228:70:69"},{"assignments":[46663],"declarations":[{"constant":false,"id":46663,"mutability":"mutable","name":"data","nameLocation":"1322:4:69","nodeType":"VariableDeclaration","scope":46705,"src":"1309:17:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46662,"name":"bytes","nodeType":"ElementaryTypeName","src":"1309:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":46670,"initialValue":{"arguments":[{"id":46666,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46633,"src":"1340:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46667,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46635,"src":"1350:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46668,"name":"deltaLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46637,"src":"1360:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46664,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1329:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1333:6:69","memberName":"encode","nodeType":"MemberAccess","src":"1329:10:69","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":46669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1329:46:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1309:66:69"},{"expression":{"arguments":[{"id":46674,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"1399:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46675,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46663,"src":"1408:4:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":46671,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1385:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":46673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1390:8:69","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":28225,"src":"1385:13:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) payable external returns (uint256,uint256,uint256)"}},"id":46676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1385:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"id":46677,"nodeType":"ExpressionStatement","src":"1385:28:69"},{"assignments":[null,null,46679],"declarations":[null,null,{"constant":false,"id":46679,"mutability":"mutable","name":"postTotalLiquidity","nameLocation":"1436:18:69","nodeType":"VariableDeclaration","scope":46705,"src":"1428:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46678,"name":"uint256","nodeType":"ElementaryTypeName","src":"1428:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46684,"initialValue":{"arguments":[{"id":46682,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"1487:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46680,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1458:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":46681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1463:23:69","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29012,"src":"1458:28:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":46683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1458:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1424:71:69"},{"assignments":[46686],"declarations":[{"constant":false,"id":46686,"mutability":"mutable","name":"deltaTotalLiquidity","nameLocation":"1513:19:69","nodeType":"VariableDeclaration","scope":46705,"src":"1505:27:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46685,"name":"uint256","nodeType":"ElementaryTypeName","src":"1505:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46690,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46687,"name":"postTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46679,"src":"1535:18:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":46688,"name":"preTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46656,"src":"1556:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1535:38:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1505:68:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46692,"name":"preLiquidityBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46645,"src":"1605:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":46693,"name":"deltaTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46686,"src":"1627:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1605:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":46699,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1685:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_G3MAllocateTest_$46707","typeString":"contract G3MAllocateTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MAllocateTest_$46707","typeString":"contract G3MAllocateTest"}],"id":46698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1677:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46697,"name":"address","nodeType":"ElementaryTypeName","src":"1677:7:69","typeDescriptions":{}}},"id":46700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1677:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46701,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"1692:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46695,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1660:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":46696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1665:11:69","memberName":"liquidityOf","nodeType":"MemberAccess","referencedDeclaration":29061,"src":"1660:16:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":46702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1660:40:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46691,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"1583:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1583:127:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46704,"nodeType":"ExpressionStatement","src":"1583:127:69"}]},"functionSelector":"acb87c30","implemented":true,"kind":"function","modifiers":[{"id":46626,"kind":"modifierInvocation","modifierName":{"id":46625,"name":"init","nameLocations":["970:4:69"],"nodeType":"IdentifierPath","referencedDeclaration":47523,"src":"970:4:69"},"nodeType":"ModifierInvocation","src":"970:4:69"}],"name":"test_G3M_allocate_GivenY","nameLocation":"936:24:69","parameters":{"id":46624,"nodeType":"ParameterList","parameters":[],"src":"960:2:69"},"returnParameters":{"id":46627,"nodeType":"ParameterList","parameters":[],"src":"975:0:69"},"scope":46707,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":46539,"name":"G3MSetUp","nameLocations":["116:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":47524,"src":"116:8:69"},"id":46540,"nodeType":"InheritanceSpecifier","src":"116:8:69"}],"canonicalName":"G3MAllocateTest","contractDependencies":[25560,29062,33820,37911,44392],"contractKind":"contract","fullyImplemented":true,"internalFunctionIDs":{"32083":1},"linearizedBaseContracts":[46707,47524,44852,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"G3MAllocateTest","nameLocation":"97:15:69","scope":46708,"usedErrors":[30985,30992],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":69} \ No newline at end of file diff --git a/out/Allocate.t.sol/LogNormalAllocateTest.json b/out/Allocate.t.sol/LogNormalAllocateTest.json deleted file mode 100644 index c1e649dd..00000000 --- a/out/Allocate.t.sol/LogNormalAllocateTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"POOL_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TEST_SWAP_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolLiquidityToken","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_LogNormal_allocate_GivenX","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_LogNormal_allocate_GivenY","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"BisectionLib_InvalidBounds","inputs":[{"name":"lower","type":"uint256","internalType":"uint256"},{"name":"upper","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BisectionLib_RootOutsideBounds","inputs":[{"name":"lowerResult","type":"int256","internalType":"int256"},{"name":"upperResult","type":"int256","internalType":"int256"}]},{"type":"error","name":"Infinity","inputs":[]},{"type":"error","name":"Min","inputs":[]},{"type":"error","name":"NegativeInfinity","inputs":[]},{"type":"error","name":"OutOfBounds","inputs":[]}],"bytecode":{"object":"0x34620000b757600160ff196000541617600055610120604052670de0b6b3a7640000806080528060a0528060c052660aa87bee538000908160e052306101005280601a5580601b55601c55601d553060018060a01b0319601e541617601e5562000070670de0b6b3a7640000601f55565b62000082670de0b6b3a7640000602055565b620000a7620000a1601f546020546200009a62000118565b91620002ea565b620001ef565b60405161b0449081620017578239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b60a081019081106001600160401b03821117620000ee57604052565b620000bc565b601f909101601f19168101906001600160401b03821190821017620000ee57604052565b604051906200012782620000d2565b601a548252601b546020830152601c546040830152601d546060830152601e546001600160a01b03166080830152565b90600182811c9216801562000189575b60208310146200017357565b634e487b7160e01b600052602260045260246000fd5b91607f169162000167565b601f8111620001a1575050565b60009060216000526020600020906020601f850160051c83019410620001e4575b601f0160051c01915b828110620001d857505050565b818155600101620001cb565b9092508290620001c2565b80519091906001600160401b038111620000ee576200021b816200021560215462000157565b62000194565b602080601f8311600114620002625750819062000251939460009262000256575b50508160011b916000199060031b1c19161790565b602155565b0151905038806200023c565b6021600052601f198316949091907f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b570926000905b878210620002d1575050836001959610620002b7575b505050811b01602155565b015160001960f88460031b161c19169055388080620002ac565b8060018596829496860151815501950193019062000296565b825160208401908151936040860191825162000307818862000c6a565b9162000314908462000c98565b6200031f9062001151565b90670de0b6b3a764000062000335819962001151565b6200034090620008b1565b056200034c906200131f565b90620003589162000d39565b620003639062000d5b565b6200036e9162000635565b620003799062000893565b90620003859162000931565b620003909062000976565b6200039b90620009b6565b8503858111620004f257620003b1908562000c98565b9486519351925191620003c5838562000c6a565b94620003d19162000c98565b620003dc9062001151565b92620003e89062001151565b620003f390620008b1565b05620003ff906200131f565b906200040b9162000d39565b620004169062000d5b565b620004219162000a38565b6200042c9062000893565b90620004389162000931565b620004439062000976565b6200044e90620009b6565b828451906200045d9162000cc9565b90620004699162000cc9565b9183620004798183868662000652565b91620004879285856200076c565b604080516020808201949094528082019490945260608085019290925284516080808601919091529285015160a085015284015160c084015283015160e0830152909101516001600160a01b0316610100808301919091528152620004ef61012082620000f4565b90565b634e487b7160e01b600052601160045260246000fd5b919082039182116200051657565b620004f2565b9081670de0b6b3a7640000019182126001166200051657565b9081670b68df18e471fbff1901918212156001166200051657565b90816714a8454c19e1ac00019182126001166200051657565b9081670fc10e01578277ff1901918212156001166200051657565b90816703debd083b8c7c00019182126001166200051657565b9081670295d400ea3257ff1901918212156001166200051657565b9081670157d8b2ecc70800019182126001166200051657565b90816705310aa7d5213000019182126001166200051657565b9081670de0cc3d15610000019182126001166200051657565b9081672005fe4f268ea000019182126001166200051657565b9081670dc5527f642c2000019182126001166200051657565b919091600083820193841291129080158216911516176200051657565b9092828210156200072757620004ef93620006dd9284670de0b6b3a764000091826200067f838362000cf6565b106200071057506001600160ff1b039590505b835191620006ac620006a5838562000d39565b8562000cf6565b10620006e357506001600160ff1b0392620006d6925090505b604060208201519101519062000c6a565b9262000635565b62000635565b620006d692620006fc6200070392620007099462000d39565b9062000cf6565b62000a52565b91620006c5565b6200072091620007039162000cf6565b9462000692565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b929493859391926000808212156200082e575b8082126200080b575091620007f66200080592620004ef979895945b604051958694602086019260e092959491956101008501968552602085015260408401528051606084015260208101516080840152604081015160a0840152606081015160c0840152608060018060a01b0391015116910152565b03601f198101835282620000f4565b62000dbd565b9662000818915062000d19565b95620008278288868662000652565b906200077f565b8082136200084f575091620007f66200080592620004ef979895946200079b565b9490506103e980820291600191818404149015178116156200088f576103e8600019830104019015150293620008888286868662000652565b906200082e565b8580fd5b90670de0b6b3a7640000918281029281840514901517156200051657565b90671bc16d674ec80000918281029281840514901517156200051657565b60008190039190600160ff1b811460011662000516576000198305036200051657565b90633b9aca00918281029281840514901517156200051657565b818102929160008212600160ff1b821416620005165781840514901517156200051657565b81156200094e57600160ff1b811460001983141662000516570590565b634e487b7160e01b600052601260045260246000fd5b600160ff1b8114620005165760000390565b620009b2620009ac620009a66713a04bbdfdc9be886200099f671bc16d674ec800009562000893565b0562000964565b62000efb565b62000893565b0590565b60008112620009c25790565b60405162461bcd60e51b815260206004820152601060248201526f746f55696e743a206e6567617469766560801b6044820152606490fd5b9067119000ab100ffbff1982019182136001166200051657565b90671bc16d674ec80000600083820393128184128116918413901516176200051657565b818103929160001380158285131691841216176200051657565b6706f05b59d3b20000811462000c6457670de0b6b3a76400008082121562000c0a57811562000c2e5760018260011b916002938305600203620005165760008312801562000c52575b62000c4057821562000c0a57671bc16d674ec80000831462000c2e57821291821562000c1c57925b62000ace84620015a5565b801562000c0a5762000b5a62000b0a62000b0462000afe62000af862000b60959997969962001151565b62001509565b62001052565b620008f2565b62000b5462000b2362000b1d83620015d1565b62000603565b62000b4d62000b4762000b4062000b3a86620015fd565b6200061c565b8562001583565b6200051c565b9062001648565b62000a38565b62001532565b936000925b81841062000ba05750505050620004ef9162000b899160001462000b8f57620014b5565b62000964565b62000b9a9062000964565b620014b5565b909162000bff8662000bf862000bbd8562000b5486999b62000efb565b62000b4d62000be562000bdf62000bd962000b89878062001583565b6200131f565b6200155b565b62000bf1838662001583565b9062000a38565b9062000635565b950192919062000b65565b6040516307a0212760e01b8152600490fd5b62000c279062000a14565b9262000ac3565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec80000831362000a9b565b50600090565b9062000c769062001052565b633b9aca00908181029181830414901517156200051657620004ef9162000d39565b90670de0b6b3a76400009182810292818404149015178115151615620000b757600190600019830104019015150290565b818102918183041490151760011615620000b7576001670de0b6b3a7640000600019830104019015150290565b670de0b6b3a76400009081810291818304149015178215151615620000b7570490565b6103e790818102918183041490151760011615620000b7576103e8900490565b818102918183041490151760011615620000b757670de0b6b3a7640000900490565b6706f05b59d3b20000908082029182041460011615620000b757670de0b6b3a7640000900490565b670de0b6b3a764000090818102918183041490151760011615620000b757671bc16d674ec80000900490565b919082018092116200051657565b6000939291849183821162000edb5762000dd88282620016d3565b62000de48583620016d3565b600062000df282846200090c565b1362000ebc575062000e078386979662000508565b60019460009186805b62000e22575b50505050505050509050565b1562000e92575b508596979850809162000e4762000e418b8862000daf565b60011c90565b9962000e548b87620016d3565b908362000e6287846200090c565b1362000e8557505089925b8762000e7a888662000508565b920193999862000e10565b8b97509094509262000e6d565b6014108062000eb1575b1562000ea9578862000e29565b808062000e16565b506040821062000e9c565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b80156200104557675698eef06670000081121562000c6457675698eef0666fffff19811315620010385760006200102562000f3683620012f0565b62000fe362000bd962000f5762000f5162000b478562000d83565b62001628565b92620006dd6200101f62001019620010116200100a6200100462000ffd62000ff762000ff062000fea8d62000fe362000fdd62000fd662000fd062000b4062000fca62000fc362000fbd62000fb662000fb08a620014dd565b62000535565b8962001583565b62000550565b8762001583565b62000569565b62000584565b8362001583565b6200059d565b9062001583565b620005b8565b8c62001583565b620005d1565b8a62001583565b620005ea565b8862001583565b938062001583565b620008cf565b620009fa565b911215620004ef57620004ef9062000a14565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b60b581600160881b81101562001100575b80690100000000000000000062010000921015620010f2575b65010000000000811015620010e4575b6301000000811015620010d6575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916200109a565b60201c9160101b916200108c565b60401c9160201b916200107c565b5068b500000000000000009050608082901c62001063565b156200112057565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284906200117f6000821362001118565b711340daa0d5f769dba1915cef59f0815a55066200119d826200166b565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d019160016c0504a838426634cdd8738f543560611b0319916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b600160ff1b81146200130d576000811215620004ef571960010190565b604051634d2d75b160e01b8152600490fd5b680248ce36a70cb26b3e1981131562000c6457680755bf798b4a1bf1e581121562001481576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b3989179d835ebba824c98fb31b83b2ca45c0000000000000000000000006060916b8000000000000000000000008582851b0501831d94850290036e0587f503bb6ea29d25fcb740196450816c10fe68e7fd37d0007b713f7650810102841d936e05180bb14799ab47a8a8cb2a527d57836e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028a1d0102881d0102861d0102841d0102821d01946d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be88908082029182051460011615620000b757670de0b6b3a7640000900590565b67025f0fe105a3140090818102918183051490151760011615620000b757670de0b6b3a7640000900590565b671bc16d674ec7ffff19818102916001918305141615620000b757670de0b6b3a7640000900590565b6709d028cc6f205fff19818102916001918305141615620000b757670de0b6b3a7640000900590565b670fa8cedfc2adddfa908082029182051460011615620000b757670de0b6b3a7640000900590565b818102918183051490151760011615620000b757670de0b6b3a7640000900590565b670de0b6b3a764000090818102918183051490151760011615620000b757671bc16d674ec80000900590565b6703c1665c7aab200090818102918183051490151760011615620000b757670de0b6b3a7640000900590565b669f32752462a00090818102918183051490151760011615620000b757670de0b6b3a7640000900590565b60018115151615620000b7576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a76400009081810291818305149015178215151615620000b7570590565b6200167881151562001118565b8060018060801b031060071b81811c60018060401b031060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b8080518101039161010092838112620000b75760208301519360a0604085015192605f190112620000b757604051936200170d85620000d2565b6080810151855260a0810151602086015260c0810151604086015260e081015160608601520151936001600160a01b0385168503620000b757620004ef9460808501526200065256fe60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e414620000ac57505080634bce9b6214620000a6578063620a260714620000a05780639f8be6b8146200009a578063ba414fa61462000094578063e0d7d0e9146200008e578063e21485ad14620000885763fa7626d4146200008257600080fd5b620009c4565b6200088c565b6200086c565b62000843565b62000783565b6200075f565b620005a5565b346200057557816003193601126200057557620000c862001254565b805161106b8082019067ffffffffffffffff9280831084841117620005515780620000fb62001788948486843962000aa7565b039086f080156200052957601580546001600160a01b0319166001600160a01b0390921691909117905583519181830183811085821117620005515783926200014692843962000af3565b039084f080156200052957601680546001600160a01b0319166001600160a01b039283161790556015546200018391165b6001600160a01b031690565b803b15620005905782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af18015620005295762000579575b506016548490620001e2906001600160a01b031662000177565b91823b156200057557845190815230600482015268056bc75e2d631000006024820152918290604490829084905af18015620005295762000557575b5060155462000236906001600160a01b031662000177565b6016546200024d906001600160a01b031662000177565b90835191610597908184019284841086851117620005515784936200029a936200aa7886396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200052957601480546001600160a01b0319166001600160a01b039092169190911790558151612f21808201908282108483111762000551578291620002f091620027f384396000815260200190565b039084f080156200052957601380546001600160a01b0319166001600160a01b03929092169182179055620003259062000177565b825190611bc48083019183831085841117620005515783926200035b9262008eb485396001600160a01b03909116815260200190565b039084f080156200052957601780546001600160a01b0319166001600160a01b03929092169182179055620003909062000177565b8251916137a080840192909183118484101762000551578392620003c7926200571485396001600160a01b03909116815260200190565b039083f09081156200052957620003fe6200046a9260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b60155462000415906001600160a01b031662000177565b6013546200042c906001600160a01b031662000177565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200052957620004e29385936200052f575b506016546200049b906001600160a01b031662000177565b6013549091908790620004b7906001600160a01b031662000177565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200052957620004f6578280f35b816200051a92903d1062000521575b62000511818362000a4e565b81019062000b33565b5081808280f35b503d62000505565b62000ae7565b6200054990843d8611620005215762000511818362000a4e565b508662000483565b620009e9565b80620005676200056e92620009ff565b8062000594565b836200021e565b5080fd5b80620005676200058992620009ff565b84620001c8565b8380fd5b6000910312620005a057565b600080fd5b34620005a0576000806003193601126200075c57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000575576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620005295762000745575b506017548190608090620006e19062000627906001600160a01b031662000177565b6015546200069d9062000643906001600160a01b031662000177565b6016546200068d906200065f906001600160a01b031662000177565b916200067d6200066e62000a71565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6001600160a01b03166040830152565b620006a762000b4d565b6060820152601354620006c3906001600160a01b031662000177565b906040519485809481936305157c7f60e21b83526004830162000cc0565b03925af180156200052957620006ff9183916200070c575b50601955565b6200070962000d83565b80f35b62000733915060803d6080116200073d575b6200072a818362000a4e565b81019062000c51565b50505038620006f9565b503d6200071e565b80620005676200075592620009ff565b3862000605565b80fd5b34620005a0576000366003190112620005a0576020604051660aa87bee5380008152f35b34620005a0576000806003193601126200075c57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000575576040516372eb5f8160e11b8152600060048201529082908290602490829084905af1801562000529576200082c575b506017548190608090620008059062000627906001600160a01b031662000177565b03925af180156200052957620008229183916200070c5750601955565b62000709620010bb565b80620005676200083c92620009ff565b38620007e3565b34620005a0576000366003190112620005a0576020620008626200117c565b6040519015158152f35b34620005a0576000366003190112620005a0576020601954604051908152f35b34620005a0576020366003190112620005a05760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa908115620005295760009162000910575b60c08201516200090c906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e011620009bb575b816200092e60e0938362000a4e565b81010312620005a057620008f260c06200090c92620009ae8260405192620009568462000a14565b620009618162000a92565b8452620009716020820162000a92565b6020850152620009846040820162000a92565b6040850152606081015160608501526080810151608085015260a081015160a08501520162000a92565b82820152925050620008de565b3d91506200091f565b34620005a0576000366003190112620005a057602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200055157604052565b60e0810190811067ffffffffffffffff8211176200055157604052565b6080810190811067ffffffffffffffff8211176200055157604052565b90601f8019910116810190811067ffffffffffffffff8211176200055157604052565b604051906080820182811067ffffffffffffffff8211176200055157604052565b51906001600160a01b0382168203620005a057565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b6040513d6000823e3d90fd5b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b90816020910312620005a057518015158103620005a05790565b6040519060006021549060018260011c926001811691821562000c46575b60209160208610841462000c325785885287949360208601939291811562000c11575060011462000baa575b50505062000ba89250038362000a4e565b565b92509362000bda60216000527f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b57090565b946000935b82851062000bfa5750505062000ba893500138808062000b97565b865485850152958601958895509381019362000bdf565b9250505062000ba89491925060ff19168252151560051b0138808062000b97565b634e487b7160e01b85526022600452602485fd5b93607f169362000b6b565b9190826080910312620005a0578151916020810151916060604083015192015190565b60005b83811062000c885750506000910152565b818101518382015260200162000c77565b9060209162000cb48151809281855285808601910162000c74565b601f01601f1916010190565b60a0606062000d039360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062000c99565b90565b90816060910312620005a0578051916040602083015192015190565b90816020910312620005a0575190565b60409062000d0393928152816020820152019062000c99565b634e487b7160e01b600052601160045260246000fd5b9190820391821162000d6f57565b62000d4b565b9190820180921162000d6f57565b60185462000d9a906001600160a01b031662000177565b60195460408051631fc5d02760e21b8152600480820184905267016345785d8a0000602483015292939092606091829085908180604481015b03915afa8015620005295760009160009560009262001093575b5060135462000e05906001600160a01b031662000177565b8551633be6a34160e01b8082523084830190815260208181018c90529a929691939192908b90889081906040010381855afa96871562000529576000976200106f575b5088516333854efd60e21b9687825289828062000e6c868b83019190602083019252565b0381875afa9b8c1562000529578d9260009d62001028575b508b519283019586526020860152604085015262000ed793899391929062000eba90849060600103601f19810185528462000a4e565b60008b518096819582946305d8703160e31b84528b840162000d32565b03925af18015620005295762001006575b5060135462000f00906001600160a01b031662000177565b9260195494875191825286828062000f1f898883019190602083019252565b0381885afa968715620005295762000f77998b9862000f559462000f4e9360009262000fcf575b505062000d61565b9062000d75565b9551908152309181019182526020820193909352919485928391829160400190565b03915afa918215620005295762000ba89360009362000f99575b5050620015ee565b62000fbe929350803d1062000fc7575b62000fb5818362000a4e565b81019062000d22565b90388062000f91565b503d62000fa9565b62000ff39250803d1062000ffe575b62000fea818362000a4e565b81019062000d06565b915050388062000f46565b503d62000fde565b6200102090863d881162000ffe5762000fea818362000a4e565b505062000ee8565b8c9d50928b959386979593973d881162001067575b62001049818362000a4e565b8101620010569162000d06565b9150509d5092949591939562000e84565b503d6200103d565b6200108b9197508b3d8d1162000fc75762000fb5818362000a4e565b953862000e48565b91509450620010b29150823d841162000ffe5762000fea818362000a4e565b90943862000ded565b601854620010d2906001600160a01b031662000177565b6019546040805163ee3e8cfb60e01b8152600480820184905267016345785d8a00006024830152929390926060918290859081806044810162000dd3565b90600491630667f9d760e41b815262001133825180936020868501910162000c74565b010190565b3d1562001177573d9067ffffffffffffffff82116200055157604051916200116b601f8201601f19166020018462000a4e565b82523d6000602084013e565b606090565b6000805460081c60ff161562001196575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620011b857505090565b8192506040518281620011f660208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b036200120b601f199182810185528462000a4e565b6200123160405191826200122460208201968762001110565b0390810183528262000a4e565b51925af15062000d036200124462001138565b6020808251830101910162000b33565b6040805161106b80820167ffffffffffffffff91838210838311176200055157836200128862001788938385843962000aa7565b0360009485f080156200052957601580546001600160a01b0319166001600160a01b039092169190911790558451918183018381108582111762000551578392620012d592843962000af3565b039083f080156200052957601680546001600160a01b0319166001600160a01b039283161790556015546200130b911662000177565b803b15620015ea5783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af180156200052957620015d3575b5060165462001368906001600160a01b031662000177565b90813b156200059057845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af180156200052957620015bc575b50601554620013be906001600160a01b031662000177565b601654620013d5906001600160a01b031662000177565b908451916105979081840192848410868511176200055157849362001422936200aa7886396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200052957601480546001600160a01b0319166001600160a01b03909216919091179055825190612f2180830191821183831017620005515782916200147891620027f384396000815260200190565b039082f09182156200052957620014af6200151e9360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b601554620014c6906001600160a01b031662000177565b601354909190620014e0906001600160a01b031662000177565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af19283156200052957620015699486946200159a575b506016546200154f906001600160a01b031662000177565b601354909290620004b7906001600160a01b031662000177565b03925af1801562000529576200157d575050565b816200159792903d10620005215762000511818362000a4e565b50565b620015b490853d8711620005215762000511818362000a4e565b503862001537565b8062000567620015cc92620009ff565b38620013a6565b8062000567620015e392620009ff565b3862001350565b8280fd5b90808203620015fb575050565b6080806040938451937f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50836020968781526022888201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8982015261745d60f01b6060820152a1855190868252600a87830152690808115e1c1958dd195960b21b6060830152858201527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8938491a1845190858252600a8683015269080808081058dd1d585b60b21b606083015284820152a1737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62001700575b50505061010061ff00196000541617600055565b8260006200175d6200176e602483979684975195818701908882526519985a5b195960d21b8189015260016060890152606088526200173f8862000a31565b519485928301976370ca10bb60e01b89525180928585019062000c74565b810103600481018452018262000a4e565b51925af1506200177d62001138565b50388080620016ec56fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c634300081600336080346200007a57601f620037a038819003918201601f19168301916001600160401b038311848410176200007f578084926020946040528339810103126200007a57516001600160a01b038116908190036200007a57600080546001600160a01b03191691909117905560405161370a9081620000968239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630420580a146101b7578063120649c5146101b2578063134ead12146101ad5780631e978cb0146101a8578063306db46b146101a3578063332266f31461019e5780633928ff97146101995780633b268d5d146101945780633b4d10301461018f5780634e817fd91461018a5780634fd67c58146101855780635eb408fc146101805780636237569f1461017b5780636d652299146101765780637f17409c1461017157806381b5fac21461016c578063902ecaa214610167578063a8c62e7614610162578063af4e437f1461015d578063b09d04e514610158578063cb1f553214610153578063ce153bf41461014e578063e94716d514610149578063ee3e8cfb14610144578063f30d37f21461013f5763f9c282111461013a57600080fd5b610aff565b610acf565b610a9e565b610a63565b610a27565b6109e2565b6109af565b610993565b61096a565b610941565b610914565b610872565b610856565b6107e9565b6107cd565b6107a4565b610788565b610759565b61071e565b61048d565b610436565b610407565b6103e2565b610354565b61028e565b610218565b60005b8381106101cf5750506000910152565b81810151838201526020016101bf565b906020916101f8815180928185528580860191016101bc565b601f01601f1916010190565b9060206102159281815201906101df565b90565b3461026b57604036600319011261026b57610267604051600260208201526004356040820152602435606082015260608152610253816102e9565b6040519182916020835260208301906101df565b0390f35b600080fd5b608090600319011261026b5760043590602435906044359060643590565b3461026b5760206102aa6102a136610270565b92919091610b4d565b604051908152f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff8211176102e457604052565b6102b2565b6080810190811067ffffffffffffffff8211176102e457604052565b6060810190811067ffffffffffffffff8211176102e457604052565b90601f8019910116810190811067ffffffffffffffff8211176102e457604052565b6001600160a01b0381160361026b57565b3461026b5760e036600319011261026b5760a036604319011261026b576102676103bc604051610383816102c8565b60443581526064356020820152608435604082015260a435606082015260c4356103ac81610343565b608082015260243560043561139a565b60405191829182610204565b606090600319011261026b57600435906024359060443590565b3461026b5760206102aa6104016103f8366103c8565b91929092610f06565b91611583565b3461026b5760206102aa61041a366103c8565b9061042d61042784610f06565b936110d9565b92919091611670565b3461026b5760206102aa610449366103c8565b9061045661042784610f06565b9290506119da565b8015150361026b57565b90926080926102159594151583526020830152604082015281606082015201906101df565b3461026b57606036600319011261026b5761050360243561061f6004356104b38361045e565b604435926104bf610c57565b936104c8610c57565b946104d2846110d9565b60208496939592960194604096878601928352865284526104f287610f06565b998a9185519087519051918a611009565b921561069657928261054a6105519361054361053e61053661056f9861053160606105979d9c0151866125a2565b6125a2565b8651906125f8565b610c9d565b9351610cb0565b8a52610cb0565b61056385890191808352895188610c4a565b90885190519087610b4d565b9061058e6105836020890193808552610c9d565b808452825111610d31565b51905190610d24565b945b84519260c06020870151848801926105df8451976105d18851998a958693602085016040919493926060820195825260208201520152565b03601f198101845283610321565b600054610602906105f6906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610dbf565b03915afa94851561069157600095610651575b509061064691610267959651905190611583565b905194859485610468565b61026795509061067c610646939260c03d60c01161068a575b6106748183610321565b810190610d88565b505050505095509091610632565b503d61066a565b610b41565b826106df610718966106d2610704956106cb61053e6106c361070f9a61053160606106fc9b0151866125a2565b8551906125f8565b9251610cb0565b9260208d01938452610cb0565b6106f1888c019180835283518b610de3565b915190519089610df0565b808952610c9d565b808852825111610cbd565b51855190610d24565b94610599565b3461026b57604036600319011261026b57610267604051600460208201526004356040820152602435606082015260608152610253816102e9565b3461026b57602036600319011261026b5760206102aa60043561040161077e826110d9565b9291939050610f06565b3461026b5760206102aa61079e6103f8366103c8565b91611b9c565b3461026b5760206102aa6107b7366103c8565b906107c461042784610f06565b92919091611c16565b3461026b5760206102aa6107e036610270565b92919091610df0565b3461026b57604036600319011261026b5761083860043561026761081a61080f836110d9565b919050602435611f7a565b939092848461083261082b84610f06565b8383611583565b92610b4d565b92604051938493846040919493926060820195825260208201520152565b3461026b57600036600319011261026b57602060405160008152f35b3461026b57604036600319011261026b576004356108c06102676108a2610898846110d9565b9150602435611fa7565b92909383856108ba6108b384610f06565b8383611b9c565b92610df0565b91604051938493846040919493926060820195825260208201520152565b805182526020808201519083015260408082015190830152606080820151908301526080908101516001600160a01b0316910152565b3461026b57602036600319011261026b5760a0610932600435610f06565b61093f60405180926108de565bf35b3461026b5760206102aa610954366103c8565b9061096161042784610f06565b92909150611fce565b3461026b57600036600319011261026b576000546040516001600160a01b039091168152602090f35b3461026b5760206102aa6109a636610270565b92919091611009565b3461026b57602036600319011261026b576102676040516001602082015260043560408201526040815261025381610305565b3461026b57602036600319011261026b57610267600435610a0281610343565b60408051600560208201526001600160a01b0390921682820152815261025381610305565b3461026b57602036600319011261026b57610267610a466004356110d9565b604080519384526020840192909252908201529081906060820190565b3461026b57604036600319011261026b57610267604051600360208201526004356040820152602435606082015260608152610253816102e9565b3461026b57604036600319011261026b5761083860043561026761081a610ac4836110d9565b919050602435611fa7565b3461026b57604036600319011261026b576004356108c06102676108a2610af5846110d9565b9150602435611f7a565b3461026b57600036600319011261026b57602060405160788152f35b9081602091031261026b575190565b6040906102159392815281602082015201906101df565b6040513d6000823e3d90fd5b610b85610bee9493929361053184610b7e610b79610b74610b6d88610f06565b809661230a565b61237f565b6123b2565b92516125a2565b916020604051610bbc81610bae85888a8785016040919493926060820195825260208201520152565b03601f198101835282610321565b600054610bd3906105f6906001600160a01b031681565b6040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093610c15575b50610c0f90610f06565b936111f1565b610c0f919350610c3c9060203d602011610c43575b610c348183610321565b810190610b1b565b9290610c05565b503d610c2a565b9161040161021593610f06565b604051906060820182811067ffffffffffffffff8211176102e45760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610cab57565b610c87565b91908201809211610cab57565b15610cc457565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b6103e719810191908211610cab57565b91908203918211610cab57565b15610d3857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c091031261026b578151610d9f8161045e565b9160208101519160408201519160608101519160a0608083015192015190565b610215939260609260018060a01b03168252602082015281604082015201906101df565b9161079e61021593610f06565b92610b79610b74610e0d92949394610e0787610f06565b90612f44565b92670de0b6b3a7640000938403938411610cab57610e2e610e5794836125a2565b916020604051610bbc81610bae8589898785016040919493926060820195825260208201520152565b03915afa9182156106915761021595600093610e7e575b50610e7890610f06565b93611e24565b610e78919350610e9c9060203d602011610c4357610c348183610321565b9290610e6e565b91908260a091031261026b57604051610ebb816102c8565b608080829480518452602081015160208501526040810151604085015260608101516060850152015191610eee83610343565b0152565b9060a08282031261026b5761021591610ea3565b90604051610f13816102c8565b600090818152816080602092828482015282604082015282606082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610691578092610f7a575b506102159293508082518301019101610ef2565b9091503d8082863e610f8c8186610321565b840190828583031261100257845167ffffffffffffffff9586821161100557019082601f830112156110025781519586116102e45760405192610fd8601f8801601f1916860185610321565b86845284878401011161100257506102159394610ffa918480850191016101bc565b908392610f66565b80fd5b8280fd5b61105d939192602060405161103781610bae87868a8785016040919493926060820195825260208201520152565b60018060a01b03600054166040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093611084575b5061107e90610f06565b936121b4565b61107e9193506110a29060203d602011610c4357610c348183610321565b9290611074565b9081602091031261026b575161021581610343565b9081606091031261026b578051916040602083015192015190565b90600460206110f56105f66105f660005460018060a01b031690565b604051632bee84f160e21b815292839182905afa928315610691576111409360609260009161119d575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156106915760008093600093611166575b50929190565b9193505061118c915060603d606011611196575b6111848183610321565b8101906110be565b9290929138611160565b503d61117a565b6111bf915060203d6020116111c5575b6111b78183610321565b8101906110a9565b3861111f565b503d6111ad565b6111ef9360609296959361010083019783526020830152604082015201906108de565b565b929360009385929185851215611367575b8585126113485790610bae611224925b604096604051958694602086016111cc565b81859285968281116113255761123a818561337f565b92611245818661337f565b88611250828761152f565b136113045750906112649197969297610d24565b60019591829187805b61127f575b5050505050505050505090565b156112e0575b5086979850819261129f6112998b89610cb0565b60011c90565b996112aa8b8861337f565b90846112b6888461152f565b136112d457505089935b886112cb8987610d24565b9201949961126d565b8b9850909550936112c0565b601410806112fb575b156112f45788611285565b8080611272565b508083106112e9565b6040516306f1be5d60e21b8152600481018690526024810191909152604490fd5b604051633082dfdb60e11b81526004810191909152602481019290925250604490fd5b935091611354906125ce565b91611361848385846124a9565b93611202565b85851361137b5790610bae61122492611212565b935094611387906123f5565b94611394848388846124a9565b93611367565b916113ab610b79610b748385612f44565b91670de0b6b3a7640000928303928311610cab57611402826113ee6113e3610b79610b74846113dd6114209a8c6125f8565b9761230a565b6105318584516125a2565b926113fb8282868a6124a9565b84886121b4565b906040519460208601526040850152606084015260808301906108de565b6101008152610120810181811067ffffffffffffffff8211176102e45760405290565b90670de0b6b3a764000060008382039312818412811691841390151617610cab57565b90671bc16d674ec8000060008382039312818412811691841390151617610cab57565b9067119000ab100ffbff198201918213600116610cab57565b81810392916000138015828513169184121617610cab57565b90670de0b6b3a764000091828102928184051490151715610cab57565b90671bc16d674ec8000091828102928184051490151715610cab57565b90633b9aca0091828102928184051490151715610cab57565b60008190039190600160ff1b8114600116610cab57600019830503610cab57565b818102929160008212600160ff1b821416610cab578184051490151715610cab57565b811561156d57600160ff1b8114600019831416610cab570590565b634e487b7160e01b600052601260045260246000fd5b9190916115be60208301936115b885516115b06115a66040880192835190612843565b975182519061286c565b905190612414565b92612435565b92670de0b6b3a76400008085121561163c5760008513156116315760008582039512818612811691861390151617610cab5761162561162a92611620611612610b799461160d6102159961288b565b61152f565b670de0b6b3a7640000900590565b6114a2565b612917565b90516125a2565b505050505060001990565b5050505050600090565b90959492936111ef94608093610120840198845260208401526040830152606082015201906108de565b909291828651602088015160408901519060608a01519261169083612ac8565b6116999061185a565b936116a390611443565b906116ad8a612b86565b6116b68b611981565b6116bf91612c38565b6116c88b611981565b6116d184612bb5565b6116da916114a2565b6116e49088612c38565b6116ed91612cb5565b6116f690612cd3565b9361170084612fbb565b611709906114d8565b670de0b6b3a7640000900561171d90612917565b9061172791612c38565b61173090612c67565b611739906119c9565b848661174486612c09565b9061174e91612c38565b9061175891612c38565b611761916119ad565b61176a90612917565b826117758c84612c38565b9061177f91612c38565b61178891612c38565b6117918b611981565b61179a84612bb5565b6117a3916114a2565b6117ac91612cb5565b956117b691612c38565b906117c090611993565b6117c991612c38565b926117d391612c38565b6117dc90612c8e565b906117e6916114a2565b6117ef90612e24565b6117f891612c38565b61180186612b86565b61180a91612cb5565b90611814846119c9565b9061181e916119ad565b90611828916119ad565b60001361184f576102159561184a93610bae9260405196879560208701611646565b61264d565b505050505050600090565b90633b9aca0091828102928184041490151715610cab57565b9081672005fe4f268ea00001918212600116610cab57565b9081670dc5527f642c200001918212600116610cab57565b9081670de0b6b3a764000001918212600116610cab57565b9081670b68df18e471fbff190191821215600116610cab57565b90816714a8454c19e1ac0001918212600116610cab57565b9081670fc10e01578277ff190191821215600116610cab57565b90816703debd083b8c7c0001918212600116610cab57565b9081670295d400ea3257ff190191821215600116610cab57565b9081670157d8b2ecc7080001918212600116610cab57565b90816705310aa7d521300001918212600116610cab57565b9081670de0cc3d1561000001918212600116610cab57565b90816103e801918212600116610cab57565b9081670de0b6b3a763ffff190191821215600116610cab57565b91909160008382019384129112908015821691151617610cab57565b600160ff1b8114610cab5760000390565b939290919280519160208201519060408301519260600151936119fc84612ac8565b611a059061185a565b94611a0f90611443565b9182611a1a88612b86565b611a2489846119ad565b611a2d91612c38565b611a3789846119ad565b611a418385612c38565b611a4a916114a2565b611a54908b612c38565b611a5d91612cb5565b611a6690612cd3565b95611a7086612fbb565b611a79906114d8565b670de0b6b3a76400009005611a8d90612917565b90611a9791612c38565b611aa090612c67565b611aa9906119c9565b8688611ab488612c09565b90611abe91612c38565b90611ac891612c38565b611ad1916119ad565b611ada90612917565b81611ae58a86612c38565b90611aef91612c38565b611af891612c38565b91611b0389826119ad565b91611b0d91612c38565b611b16916114a2565b611b1f91612cb5565b96611b2991612c38565b90611b3390611993565b611b3c91612c38565b92611b4691612c38565b611b4f90612c8e565b90611b59916114a2565b611b6290612e24565b611b6b91612c38565b90611b7590612b86565b611b7e91612cb5565b91611b88906119c9565b90611b92916119ad565b90610215916119ad565b919091611bda6020830191611bd4611bcc84516115b0611bc26040890192835190612843565b965182519061286c565b958551612414565b90612435565b670de0b6b3a7640000918282121561163c576000821315611631576102159461162a93611c106116259361160d610b799661288b565b056119ad565b909291855160208701516040880151606089015191611c3482612ac8565b611c3d9061185a565b92611c4790611443565b93611c5186612b86565b611c5a87611981565b611c6391612c38565b611c6d8983612c38565b611c7688611981565b611c7f91612c38565b611c88906119c9565b86611c938b85612c38565b611c9c90612bde565b90611ca691612c38565b611caf916119ad565b611cb891612cb5565b611cc1906119c9565b611cca90612cd3565b92611cd483612fbb565b611cdd906114d8565b670de0b6b3a76400009005611cf190612917565b90611cfb91612c38565b611d0490612c67565b611d0d906119c9565b8385611d1885612c09565b90611d2291612c38565b90611d2c91612c38565b611d35916119ad565b611d3e90612917565b85611d49888a612c38565b90611d5391612c38565b611d5c91612c38565b90611d6687611981565b611d6f87612bb5565b611d78916114a2565b611d8191612c38565b611d8a91612cb5565b93611d958789612c38565b90611d9f90611993565b611da891612c38565b92611db291612c38565b611dbb90612c8e565b90611dc5916114a2565b611dce90612e24565b611dd791612c38565b611de083612b86565b611de991612cb5565b90611df390611993565b90611dfd916119ad565b60001361184f5761021595611e1f93610bae9260405196879560208701611646565b61276c565b929360009385929185851215611f47575b858512611f285790610bae611e5692604096604051958694602086016111cc565b818592859682811161132557611e6c81856133a0565b92611e7781866133a0565b88611e82828761152f565b13611304575090611e969197969297610d24565b60019591829187805b611eb0575050505050505050505090565b15611f0b575b50869798508192611eca6112998b89610cb0565b99611ed58b886133a0565b9084611ee1888461152f565b13611eff57505089935b88611ef68987610d24565b92019499611e9f565b8b985090955093611eeb565b60141080611f1f575b156112f45788611eb6565b50808310611f14565b935091611f34906125ce565b91611f41848383866124a9565b93611e35565b858513611f5b5790610bae611e5692611212565b935094611f67906123f5565b94611f74848383896124a9565b93611f47565b929190611f90611f8a82846125f8565b856125a2565b938103908111610cab57928103908111610cab5790565b929190611fb7611f8a82846125f8565b938101809111610cab57928101809111610cab5790565b9390929181516020830151916040840151936060015194611fee85612ac8565b611ff79061185a565b9561200190611443565b928361200c89612b86565b6120168a856119ad565b61201f91612c38565b6120298584612c38565b6120338b866119ad565b61203c91612c38565b612045906119c9565b82856120518887612c38565b9061205b91612c38565b9061206591612c38565b61206e916119ad565b61207791612cb5565b612080906119c9565b61208990612cd3565b9661209387612fbb565b61209c906114d8565b670de0b6b3a764000090056120b090612917565b906120ba91612c38565b6120c390612c67565b6120cc906119c9565b87896120d789612c09565b906120e191612c38565b906120eb91612c38565b6120f4916119ad565b6120fd90612917565b816121088b8d612c38565b9061211291612c38565b61211b91612c38565b926121268a826119ad565b9161213091612c38565b612139916114a2565b61214291612c38565b61214b91612cb5565b9661215591612c38565b9061215f90611993565b61216891612c38565b9261217291612c38565b61217b90612c8e565b90612185916114a2565b61218e90612e24565b61219791612c38565b906121a190612b86565b6121aa91612cb5565b90611b9290611993565b9293600093859291858512156122d7575b8585126122b85790610bae6121e692604096604051958694602086016111cc565b8185928596828111611325576121fc81856133c2565b9261220781866133c2565b88612212828761152f565b136113045750906122269197969297610d24565b60019591829187805b612240575050505050505050505090565b1561229b575b5086979850819261225a6112998b89610cb0565b996122658b886133c2565b9084612271888461152f565b1361228f57505089935b886122868987610d24565b9201949961222f565b8b98509095509361227b565b601410806122af575b156112f45788612246565b508083106122a4565b9350946122c4906123f5565b946122d1848784846124a9565b936121c5565b8585136122eb5790610bae6121e692611212565b9350916122f7906125ce565b91612304848484846124a9565b936122d7565b61237a6123756102159361236f61236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b9d6125f8565b612fbb565b97612fbb565b6114d8565b05612917565b612414565b612457565b906114a2565b6114bb565b611552565b6123ae6123756123a96713a04bbdfdc9be886123a3671bc16d674ec80000956114bb565b056119c9565b612e24565b0590565b600081126123bd5790565b60405162461bcd60e51b815260206004820152601060248201526f746f55696e743a206e6567617469766560801b6044820152606490fd5b6103e79081810291818304149015176001161561026b576103e8900490565b81810291818304149015176001161561026b57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517821515161561026b570490565b6706f05b59d3b2000090808202918204146001161561026b57670de0b6b3a7640000900490565b670de0b6b3a76400009081810291818304149015176001161561026b57671bc16d674ec80000900490565b90928282101561255d57610215936125269284670de0b6b3a764000091826124d18383612435565b1061254a57506001600160ff1b039590505b8351916124f96124f38385612414565b85612435565b1061252b57506001600160ff1b0392612520925090505b6040602082015191015190612843565b926119ad565b6119ad565b61252092611bd461253f9261254494612414565b61288b565b91612510565b6125579161253f91612435565b946124e3565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b81810291818304149015176001161561026b576001670de0b6b3a7640000600019830104019015150290565b6103e99081810291818304149015176001161561026b5760016103e8600019830104019015150290565b90670de0b6b3a7640000918281029281840414901517811515161561026b57600190600019830104019015150290565b6101008183031261026b57805192610215602083015193606060408501519401610ea3565b91906103e89260009360009183821161274b57612669816133e2565b6126738583613521565b600061267f828461152f565b1361272c5750612690859695610d14565b60019460009186805b6126aa575b50505050505050509050565b15612707575b50859697985080916126c56112998b88610cb0565b996126d08b87613521565b90836126dc878461152f565b136126fb57505089925b876126f18886610d24565b9201939998612699565b8b9750909450926126e6565b861080612721575b1561271a57886126b0565b808061269e565b50610100821061270f565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e89260009360009183821161274b5761278881613543565b61279285836136b3565b600061279e828461152f565b1361272c57506127af859695610d14565b60019460009186805b6127c85750505050505050509050565b15612825575b50859697985080916127e36112998b88610cb0565b996127ee8b876136b3565b90836127fa878461152f565b1361281957505089925b8761280f8886610d24565b92019399986127b8565b8b975090945092612804565b861080612838575b1561271a57886127ce565b50610100821061282d565b9061284d90612ac8565b633b9aca0090818102918183041490151715610cab5761021591612414565b61021591612365670de0b6b3a764000061235f61235a61236a95612fbb565b6706f05b59d3b20000811461291157670de0b6b3a764000090818112156128ff5780156128ed578060011b908105600203610cab576128c990612cd3565b906713a04bbdfdc9be8891808302928305146001161561026b5761021591056119c9565b6040516322ed598560e21b8152600490fd5b6040516307a0212760e01b8152600490fd5b50600090565b680248ce36a70cb26b3e1981131561291157680755bf798b4a1bf1e5811215612a67576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b91906101208382031261026b57825192602081015192610215604083015193608060608501519401610ea3565b60b581600160881b811015612b6f575b80690100000000000000000062010000921015612b62575b65010000000000811015612b55575b6301000000811015612b48575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b91612b0c565b60201c9160101b91612aff565b60401c9160201b91612af0565b5068b500000000000000009050608082901c612ad8565b671bc16d674ec8000081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e881810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e88082029160016000198210179181840514901517161561026b57670de0b6b3a7640000900590565b6713a04bbde78cc40081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b90911317161561026b57670de0b6b3a7640000900590565b670de0b6b3a764000090818102918205146001161561026b57671bc16d674ec80000900590565b670de0b6b3a764000090818102918205146001161561026b576713a04bbde78cc400900590565b670de0b6b3a76400009081810291820514821515161561026b570590565b600081128015612e13575b612e015780156128ff57671bc16d674ec8000081146128ed57670de0b6b3a76400008112908115612df257905b612d1482613189565b80156128ff57612d7d612d41612d3c612d37612d32612d8295612fbb565b61324a565b612ac8565b6114f5565b611620612d55612d50836131b4565b611873565b612d77612d72612d6c612d67866131df565b61188b565b856132c1565b6118a3565b90613228565b613272565b916000905b60028210612da257505015612d995790565b610215906119c9565b9092612dea81612de4612dba85611620600196612e24565b612d77612dda612dd5611625612dd087806132c1565b6119c9565b61329a565b61236f83866132c1565b906119ad565b930190612d87565b612dfb90611466565b90612d0b565b604051632d0483c560e21b8152600490fd5b50671bc16d674ec800008113612cde565b8015612f3757675698eef06670000081121561291157675698eef0666fffff19811315612f2a576000612f1a612e598361315c565b612ee2611625612e73612e6e612d728561247e565b613209565b92612526612f15612f10612f09612f03612efe612ef8612ef3612eed612ee88d612ee2612edd612ed7612ed2612d6c612ecd612ec7612ec2612ebc612eb78a6132e2565b6118bb565b896132c1565b6118d5565b876132c1565b6118ed565b611907565b836132c1565b61191f565b906132c1565b611939565b8c6132c1565b611951565b8a6132c1565b611969565b886132c1565b93806132c1565b61150e565b611489565b9112156102155761021590611466565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b61237a61237561021593612de461236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b15612f8a57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b886428490612fe760008213612f83565b711340daa0d5f769dba1915cef59f0815a55066130038261330d565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b600160ff1b8114613177576000811215610215571960010190565b604051634d2d75b160e01b8152600490fd5b670de0b6b3a76400009081810291818305149015176001161561026b57671bc16d674ec80000900590565b6703c1665c7aab20009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b669f32752462a0009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b6001811515161561026b576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029181830514901517821515161561026b570590565b671bc16d674ec7ffff1981810291600191830514161561026b57670de0b6b3a7640000900590565b6709d028cc6f205fff1981810291600191830514161561026b57670de0b6b3a7640000900590565b670fa8cedfc2adddfa90808202918205146001161561026b57670de0b6b3a7640000900590565b81810291818305149015176001161561026b57670de0b6b3a7640000900590565b67025f0fe105a314009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b613318811515612f83565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b906133966102159260208082518301019101612628565b93919290506124a9565b906133b76102159260208082518301019101612628565b9390509190916124a9565b906133d96102159260208082518301019101612628565b939290506124a9565b8051810160200190602001906133f791612a9b565b809193925051906020810151604082015191606001519261341783612ac8565b6134209061185a565b9361342a90611443565b9061343486612b86565b61343d87611981565b61344691612c38565b61344f87611981565b61345884612bb5565b613461916114a2565b61346b9089612c38565b61347491612cb5565b61347d90612cd3565b9361348784612fbb565b613490906114d8565b670de0b6b3a764000090056134a490612917565b906134ae91612c38565b6134b790612c67565b6134c0906119c9565b84866134cb86612c09565b906134d591612c38565b906134df91612c38565b6134e8916119ad565b6134f190612917565b826134fc8884612c38565b9061350691612c38565b61350f91612c38565b61351887611981565b611b0d84612bb5565b906135386102159260208082518301019101612a9b565b9493909291506119da565b80518101602001906020019061355891612a9b565b809192935051602082015190604083015192606001519361357884612ac8565b6135819061185a565b9461358b90611443565b9161359587612b86565b61359e88611981565b6135a791612c38565b6135b18383612c38565b6135ba89611981565b6135c391612c38565b6135cc906119c9565b846135d78585612c38565b6135e090612bde565b906135ea91612c38565b6135f3916119ad565b6135fc91612cb5565b613605906119c9565b61360e90612cd3565b9461361885612fbb565b613621906114d8565b670de0b6b3a7640000900561363590612917565b9061363f91612c38565b61364890612c67565b613651906119c9565b858761365c87612c09565b9061366691612c38565b9061367091612c38565b613679916119ad565b61368290612917565b8361368d898b612c38565b9061369791612c38565b6136a091612c38565b906136aa88611981565b61213085612bb5565b906136ca6102159260208082518301019101612a9b565b9493909250611fce56fea2646970667358221220f3e875cd9c43c4535da38090630f644037f96036f7dad55519e2d7d792047e4b64736f6c6343000816003360803461007457601f611bc438819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051611b3490816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b6109e4565b6109bb565b610814565b6107da565b610674565b6103dc565b6102e1565b61023d565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101df565b838082518301019101610a17565b9061010d6100ff600435610b92565b868082518301019101610a32565b92610d8d565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761015057604052565b61011e565b60c0810190811067ffffffffffffffff82111761015057604052565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101bd601f8201601f191660200184610171565b8294818452818301116101da578281602093846000960137010152565b600080fd5b9080601f830112156101da578160206101fa93359101610193565b90565b919082519283825260005b848110610229575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610208565b346101da5760003660031901126101da57604051604081019080821067ffffffffffffffff8311176101505761029a916040526009815268131bd9d39bdc9b585b60ba1b60208201526040519182916020835260208301906101fd565b0390f35b906040516080810181811067ffffffffffffffff821117610150576040526060600382948054845260018101546020850152600281015460408501520154910152565b346101da5760203660031901126101da5760043560005260016020526101c0604060002061030e8161029e565b9061031b6004820161029e565b906103bd61032b6008830161029e565b610393600c84015493600d60018060a01b03910154169461036d6040518098606080918051845260208101516020850152604081015160408501520151910152565b80516080880152602081015160a0880152604081015160c08801526060015160e0870152565b80516101008601526020810151610120860152604081015161014086015260600151610160850152565b6101808301526101a0820152f35b6001600160a01b038116036101da57565b346101da576060806003193601126101da576103f96004356103cb565b6024356044359167ffffffffffffffff83116101da576104206104829336906004016101df565b8161043c61042d85610b92565b60208082518301019101610a32565b60005490949061046290610456906001600160a01b031681565b6001600160a01b031690565b60405180809881946333854efd60e21b8352600483019190602083019252565b03915afa801561061457600091829583926105d9575b50806020806104ac93518301019101610a17565b939194909682861160001461054c5750916104ed826104e8836104e36104fe976104d96104f5988c610aa3565b908c0151906112af565b6112af565b6112db565b505b83610afe565b93828685610d8d565b9384601319129283610541575b61029a9394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b60148612935061050b565b90929091508187111561057b57610575826104e8836104e36104fe976104d96104f5988e610aa3565b506104ef565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9095506104ac92506106019150833d851161060d575b6105f98183610171565b810190610a17565b95919290959190610498565b503d6105ef565b610a81565b9060606003198301126101da57600435610632816103cb565b916024359160443567ffffffffffffffff928382116101da57806023830112156101da5781600401359384116101da57602484830101116101da576024019190565b346101da5761068236610619565b600054929350916001600160a01b031633036107c85761078661077e61042d610779956106c0608095610743976106b7610b67565b50810190610e8c565b6020819b949a9399929b01516106e0866000526001602052604060002090565b55604081015160046106fc876000526001602052604060002090565b015580516008610716876000526001602052604060002090565b01556060810151600c610733876000526001602052604060002090565b015501516001600160a01b031690565b600d610759846000526001602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610b92565b848385610d8d565b92836013191291826107bd575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b601485129250610793565b604051636853cba760e01b8152600490fd5b346101da5760606107ea36610619565b818094509492940103126101da5780359061078661077e61042d6040602085013594013595610b92565b346101da5761082236610619565b6000549093906001600160a01b0390811633036107c857610863610456600d610855876000526001602052604060002090565b01546001600160a01b031690565b9116036109a95761087683820182610b32565b61087f81610b47565b600181036108b857506108a261089d6108b392600c94953691610193565b610fc3565b926000526001602052604060002090565b01555b005b6108c181610b47565b600381036108fd5750906108e56108e06108f8936108b6953691610193565b610f19565b9290916000526001602052604060002090565b610f41565b61090681610b47565b6004810361094057509060046109276108e061093a946108b6963691610193565b9390926000526001602052604060002090565b01610f41565b61094981610b47565b6002810361096a57509060086109276108e061093a946108b6963691610193565b80610976600592610b47565b03610997576107596108a2610992600d936108b6963691610193565b610ef1565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101da5760003660031901126101da576000546040516001600160a01b039091168152602090f35b346101da5760203660031901126101da5761029a610a03600435610b92565b6040519182916020835260208301906101fd565b908160609103126101da578051916040602083015192015190565b908160a09103126101da57608060405191610a4c83610134565b805183526020810151602084015260408101516040840152606081015160608401520151610a79816103cb565b608082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610ab057565b610a8d565b91908201809211610ab057565b90671bc16d674ec8000060008382039312818412811691841390151617610ab057565b9067119000ab100ffbff198201918213600116610ab057565b81810392916000138015828513169184121617610ab057565b600160ff1b8114610ab05760000390565b600611156101da57565b908160209103126101da57356101fa81610b28565b60061115610b5157565b634e487b7160e01b600052602160045260246000fd5b60405190610b7482610134565b60006080838281528260208201528260408201528260608201520152565b610b9a610b67565b816000526001602052610bb8610bb3604060002061029e565b610ff8565b9160208201928352806000526001602052610bdc610bb3600860406000200161029e565b8252600c610c1d610c05610bb36004610bff866000526001602052604060002090565b0161029e565b92604085019384526000526001602052604060002090565b015490606083019182526040519383516020860152516040850152516060840152516080830152608060018060a01b039101511660a082015260a081526101fa81610155565b9081672005fe4f268ea00001918212600116610ab057565b9081670dc5527f642c200001918212600116610ab057565b9081670de0b6b3a764000001918212600116610ab057565b9081670b68df18e471fbff190191821215600116610ab057565b90816714a8454c19e1ac0001918212600116610ab057565b9081670fc10e01578277ff190191821215600116610ab057565b90816703debd083b8c7c0001918212600116610ab057565b9081670295d400ea3257ff190191821215600116610ab057565b9081670157d8b2ecc7080001918212600116610ab057565b90816705310aa7d521300001918212600116610ab057565b9081670de0cc3d1561000001918212600116610ab057565b91909160008382019384129112908015821691151617610ab057565b909282821015610e47576101fa93610e0a9284670de0b6b3a76400009182610db5838361130b565b10610e3457506001600160ff1b039590505b835191610ddd610dd7838561132d565b8561130b565b10610e0f57506001600160ff1b0392610e04925090505b6040602082015191015190611286565b92610d71565b610d71565b610e0492610e23610e2992610e2e9461132d565b9061130b565b6110b3565b91610df4565b610e4191610e299161130b565b94610dc7565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b80910361010081126101da5781359260208301359260a0604082013593605f1901126101da5760e060405191610ec183610134565b606081013583526080810135602084015260a0810135604084015260c081013560608401520135610a79816103cb565b6040818051810103126101da5780610f0e60206040930151610b28565b0151610456816103cb565b6060818051810103126101da57610f336020820151610b28565b606060408201519101519091565b919042821115610fb157610f57610bb38461029e565b9081845542600385015542830391838311610ab057610f7591610afe565b428314610f9b57600160ff1b8114600019831416610ab057600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101da5780610fe060206040930151610b28565b015190565b81810292918115918404141715610ab057565b606081015160208201518082146110735780421160001461106b57905b8103908111610ab05760408201908151600081136000146110485750611042906101fa9351925190610fe5565b90610ab5565b9261105f9250611059905193610b17565b90610fe5565b8103908111610ab05790565b504290611015565b50505190565b90633b9aca0091828102928184051490151715610ab057565b60008190039190600160ff1b8114600116610ab057600019830503610ab057565b6706f05b59d3b20000811461128057670de0b6b3a76400008082121561122a57811561124b5760018260011b916002938305600203610ab05760008312801561126f575b61125d57821561122a57671bc16d674ec80000831461124b57821291821561123c57925b611124846118db565b801561122a5761119661115561115061114b61114661119b959997969961146f565b61199c565b611379565b611079565b61119161116961116483611906565b610c63565b61118b61118661118061117b86611931565b610c7b565b85611a13565b610c93565b9061197a565b610afe565b6119c4565b936000925b8184106111d257505050506101fa916111bf916000146111c4576118b4565b610b17565b6111cd90610b17565b6118b4565b90916112208661121a6111ea8561119186999b611610565b61118b61120a6112056112006111bf8780611a13565b611730565b6119ec565b6112148386611a13565b90610afe565b90610d71565b95019291906111a0565b6040516307a0212760e01b8152600490fd5b61124590610ac2565b9261111b565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec8000083136110f7565b50600090565b9061129090611379565b633b9aca0090818102918183041490151715610ab0576101fa9161132d565b8181029181830414901517600116156101da576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101da57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101da570490565b8181029181830414901517600116156101da57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517600116156101da57671bc16d674ec80000900490565b60b581600160881b811015611420575b80690100000000000000000062010000921015611413575b65010000000000811015611406575b63010000008110156113f9575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916113bd565b60201c9160101b916113b0565b60401c9160201b916113a1565b5068b500000000000000009050608082901c611389565b1561143e57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642849061149b60008213611437565b711340daa0d5f769dba1915cef59f0815a55066114b782611a5f565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b801561172357675698eef06670000081121561128057675698eef0666fffff1981131561171657600061170661164583611ad1565b6116ce61120061165f61165a6111868561134e565b61195b565b92610e0a6117016116fc6116f56116ef6116ea6116e46116df6116d96116d48d6116ce6116c96116c36116be6111806116b96116b36116ae6116a86116a38a611a34565b610cab565b89611a13565b610cc5565b87611a13565b610cdd565b610cf7565b83611a13565b610d0f565b90611a13565b610d29565b8c611a13565b610d41565b8a611a13565b610d59565b88611a13565b9380611a13565b611092565b610ae5565b9112156101fa576101fa90610ac2565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b680248ce36a70cb26b3e1981131561128057680755bf798b4a1bf1e5811215611880576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be889080820291820514600116156101da57670de0b6b3a7640000900590565b670de0b6b3a7640000908181029181830514901517600116156101da57671bc16d674ec80000900590565b6703c1665c7aab2000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b669f32752462a000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b600181151516156101da576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a764000090818102918183051490151782151516156101da570590565b671bc16d674ec7ffff198181029160019183051416156101da57670de0b6b3a7640000900590565b6709d028cc6f205fff198181029160019183051416156101da57670de0b6b3a7640000900590565b670fa8cedfc2adddfa9080820291820514600116156101da57670de0b6b3a7640000900590565b8181029181830514901517600116156101da57670de0b6b3a7640000900590565b67025f0fe105a31400908181029181830514901517600116156101da57670de0b6b3a7640000900590565b611a6a811515611437565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b600160ff1b8114611aec5760008112156101fa571960010190565b604051634d2d75b160e01b8152600490fdfea2646970667358221220b596d744fe988e0f66eb3212b01d8a9e660acea43730ff108a9b5edd5f05d2b364736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a2646970667358221220f64f11a9bfe9a45db41c08f1dbdb7b7b4478f983a7cee980b34aa3fb84ed081564736f6c63430008160033","sourceMap":"88:1655:76:-:0;;;1594:4:0;88:1655:76;;1594:4:0;88:1655:76;;;1594:4:0;88:1655:76;378:11:59;88:1655:76;378:11:59;:4:31;:11:59;88:1655:76;378:11:59;;362:159:79;378:11:59;;362:159:79;378:11:59;;;;362:159:79;378:11:59;509:4:79;362:159;378:11:59;;362:159:79;378:11:59;;;;;;;;509:4:79;378:11:59;;;;;;;;;;;;554:3:79;378:4:31;554:3:79;378:11:59;;554:3:79;586;378:4:31;362:159:79;378:11:59;;586:3:79;378:11:59;634:68:79;554:3;378:11:59;362:159:79;378:11:59;;;:::i;:::-;634:68:79;;:::i;:::-;378:11:59;:::i;:::-;88:1655:76;;;;;;;;;;;;;378:11:59;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;;;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;378:11:59;;;;-1:-1:-1;;;;;378:11:59;;;;;;;;;;:::o;:::-;88:1655:76;;378:11:59;;;;:::i;:::-;362:159:79;378:11:59;;;;;;;;;;;88:1655:76;378:11:59;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;378:11:59;634:68:79;-1:-1:-1;378:11:59;;-1:-1:-1;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;378:11:59;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;;;634:68:79;378:11:59;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:68:79;378:11:59;:::o;:::-;;;;-1:-1:-1;378:11:59;;;;;634:68:79;378:11:59;;-1:-1:-1;;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:68:79;378:11:59;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5320:526:37;378:11:59;;2443:12:37;;;378:11:59;;;2457:10:37;;;;378:11:59;;;2497:31:37;;;;:::i;:::-;1133:19:18;;;;;:::i;:::-;303:29:45;;;:::i;:::-;378:4:31;;1399:8:18;;;;:::i;:::-;:12;;;:::i;:::-;88:1655:76;1391:36:18;;;:::i;:::-;631:21;;;;:::i;:::-;;;;:::i;:::-;2657:36:37;;;:::i;:::-;2656:45;;;:::i;:::-;:68;;;;:::i;:::-;1009:16;;;:::i;:::-;1053:24;;;:::i;:::-;88:1655:76;;;;;;;1133:19:18;;;;:::i;:::-;378:11:59;;;;;;;3255:31:37;;;;;:::i;:::-;1133:19:18;;;;:::i;:::-;303:29:45;;;:::i;:::-;1399:8:18;;;;:::i;:::-;:12;;;:::i;:::-;88:1655:76;1391:36:18;;;:::i;:::-;631:21;;;;:::i;:::-;;;;:::i;:::-;3415:36:37;;;:::i;:::-;3414:45;;;:::i;:::-;:68;;;;:::i;:::-;1444:16;;;:::i;:::-;1488:24;;;:::i;:::-;378:11:59;;;799:19:18;;;;:::i;:::-;;;;;:::i;:::-;5620:111:37;;;;;;;;:::i;:::-;5741:55;;;;;;:::i;:::-;2457:10;88:1655:76;;2443:12:37;5809:34;;;88:1655:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;88:1655:76;;;;;;;;5809:34:37;;;88:1655:76;;5809:34:37;:::i;:::-;5320:526;:::o;88:1655:76:-;378:11:59;;;88:1655:76;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;1905:7:21;88:1655:76;;;;;;;;:::o;:::-;;2650:19:21;;;88:1655:76;;;;;;;;;:::o;:::-;;;2590:20:21;88:1655:76;;;;;;;;:::o;:::-;;2529:21:21;;;88:1655:76;;;;;;;;;:::o;:::-;;;2463:18:21;88:1655:76;;;;;;;;:::o;:::-;;2396:19:21;;;88:1655:76;;;;;;;;;:::o;:::-;;;2331:17:21;88:1655:76;;;;;;;;:::o;:::-;;;2265:18:21;88:1655:76;;;;;;;;:::o;:::-;;;2205:20:21;88:1655:76;;;;;;;;:::o;:::-;;;2852:20:21;88:1655:76;;;;;;;;:::o;:::-;;;2980:18:21;88:1655:76;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;2719:1063:44:-;;;2907:6;;;88:1655:76;;;3754:21:44;2955:12;3754:13;2955:12;378:4:31;;965:21:18;;;;;;:::i;:::-;3003:42:44;378:4:31;;-1:-1:-1;;;;;;3076:12:44;2999:197;-1:-1:-1;2999:197:44;378:11:59;;631:21:18;965;631;;;;:::i;:::-;965;;:::i;:::-;3222:117:44;378:4:31;;-1:-1:-1;;;;;;3076:12:44;3690:45;;-1:-1:-1;3205:453:44;-1:-1:-1;3205:453:44;3724:10;3710:12;;;378:11:59;3724:10:44;;378:11:59;3690:45:44;;:::i;:::-;3754:13;;:::i;:::-;:21;:::i;3205:453::-;3690:45;631:21:18;;965;631;3431:216:44;631:21:18;;:::i;:::-;965;;:::i;:::-;3431:216:44;:::i;:::-;3205:453;;;2999:197;3128:57;965:21:18;;;;:::i;3128:57:44:-;2999:197;;;88:1655:76;;;-1:-1:-1;;;88:1655:76;;;;;;;;;;;;;;;;;;;;5848:1096:37;6037:29;;5848:1096;6037:29;;5848:1096;;6173:1;6153:21;;;6173:1;;;6193:21;;;;;;6149:612;;6789:45;;6149:612;6770:171;6149:612;;;;;88:1655:76;;6789:45:37;;;;;;88:1655:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;;;;;88:1655:76;;;378:11:59;88:1655:76;;;;6789:45:37;;378:11:59;;6789:45:37;;;;;;:::i;:::-;6770:171;:::i;6186:274::-;6238:27;;;;;:::i;:::-;6299:150;;;;;;;:::i;:::-;6186:274;;;6149:612;6489:21;;;;;6149:612;;6789:45;;6149:612;6770:171;6149:612;;;;;;6482:273;6549:4;;;;8417:611:18;;;;;;;;;;;;;;;;;;6555:4:37;378:11:59;;8417:611:18;;;;;;;;6594:150:37;;;;;;;:::i;:::-;6482:273;;;8417:611:18;;;;88:1655:76;;378:4:31;88:1655:76;;;;;;;;;;;;;;;:::o;:::-;;317:4:31;88:1655:76;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;88:1655:76;;378:11:59;88:1655:76;;;-1:-1:-1;;88:1655:76;;;;;:::o;:::-;;1774:3:21;88:1655:76;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;;88:1655:76;;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;88:1655:76;;-1:-1:-1;;88:1655:76;;;;;;;:::o;:::-;378:11:59;;;88:1655:76;;;;;;;;2046:20:21;-1:-1:-1;;;2046:20:21;;;;;;;:::o;7612:209::-;7796:11;7768:13;7737:6;2046:20;7694:7;1949;7612:209;7694:7;:::i;:::-;88:1655:76;7737:6:21;:::i;:::-;7768:13;:::i;:::-;7796:11;:::i;:::-;88:1655:76;7612:209:21;:::o;7135:175:44:-;7240:1;7235:6;;88:1655:76;;7135:175:44;:::o;88:1655:76:-;;;-1:-1:-1;;;88:1655:76;;;;;;;;;;;;-1:-1:-1;;;88:1655:76;;;;;;;;;;;;;;;;;;;;:::o;:::-;;317:4:31;88:1655:76;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;88:1655:76;;;;;;;;;;;;;:::o;9402:337:21:-;1324:9;9472:21;;9468:43;;1905:7;9525:8;;;;9521:31;;9566:6;;9562:37;;88:1655:76;;;;9629:1:21;;88:1655:76;;;9629:1:21;88:1655:76;;;-1:-1:-1;5990:5:21;;:20;;;;9402:337;5986:46;;6046:6;;6042:29;;6090:7;6085:12;;6081:43;;6178:7;;;6177:23;;;;;;1053:19:23;;;:::i;:::-;6257:13:21;;6253:36;;6632:35;6363:55;6370:33;958:19:23;6311:16:21;958:19:23;6311:16:21;;;;;;:::i;:::-;958:19:23;:::i;:::-;6370:33:21;:::i;:::-;6363:55;:::i;:::-;1053:19:23;6481:29:21;958:19:23;;;:::i;:::-;6481:29:21;:::i;:::-;6547:49;958:19:23;6565:29:21;958:19:23;;;:::i;:::-;6565:29:21;:::i;:::-;958:19:23;;:::i;:::-;6547:49:21;:::i;:::-;1053:19:23;;:::i;:::-;6632:35:21;:::i;:::-;958:19:23;:::i;:::-;6689:9:21;-1:-1:-1;6708:336:21;6715:5;;;;;;7058:16;;;;9728:4;7058:16;958:19:23;7058:16:21;;;;;958:19:23;:::i;:::-;9728:4:21;:::i;7058:16::-;7072:2;;;:::i;:::-;958:19:23;:::i;6708:336:21:-;6749:7;;6951:23;6749:7;1053:19:23;6749:12:21;:7;;;;;;:::i;:12::-;6891:42;958:19:23;6848:14:21;6790:16;958:19:23;;;;:::i;6790:16:21:-;6848:14;:::i;:::-;958:19:23;:::i;:::-;;;;;:::i;:::-;6891:42:21;;:::i;1053:19:23:-;6951:23:21;;:::i;:::-;88:1655:76;;;6708:336:21;;;;6253:36;88:1655:76;;-1:-1:-1;;;6279:10:21;;;;;6177:23;6193:7;;;:::i;:::-;6177:23;;;6081:43;88:1655:76;;-1:-1:-1;;;6106:18:21;;;;;5986:46;88:1655:76;;-1:-1:-1;;;6019:13:21;;;;;5990:20;5999:11;6003:7;5999:11;;5990:20;;9468:43;9495:16;9509:1;9495:16;:::o;337:213:45:-;;464:27;337:213;464:27;:::i;:::-;494:7;88:1655:76;;;;;;;;;;;;;;;631:21:18;;;:::i;8282:752::-;;378:4:31;8417:611:18;;;;;;;;;;;;;;;;;;;;378:11:59;;;8417:611:18;;;;;;;;8282:752;:::o;:::-;8417:611;;;;;;;;;;;;;;;;;378:4:31;:11:59;;8417:611:18;;;;;;;;8282:752;:::o;7741:535::-;378:4:31;7878:392:18;;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;6255:3:37;7878:392:18;;;;;;;;;;;;;;;;;6260:4:37;7878:392:18;;7741:535;:::o;:::-;7878:392;;;;;;;;;;;;;;;;378:4:31;7878:392:18;;7741:535;:::o;:::-;1324:9:21;7878:392:18;;;;;;;;;;;;;378:4:31;7878:392:18;;7741:535;:::o;:::-;1905:7:21;7878:392:18;;;;;;;;;;;;;;;;;317:4:31;7878:392:18;;7741:535;:::o;88:1655:76:-;;;;;;;;;;:::o;1009:1952:33:-;378:11:59;;1009:1952:33;;378:11:59;;1239:13:33;;;1235:66;;1632:15;;;;:::i;:::-;1674;;;;:::i;:::-;378:11:59;1699:25:33;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;;:::i;:::-;6918:17:37;;378:11:59;;6918:17:37;;;;;1978:981:33;1009:1952;;;;;;;;;;:::o;1978:981::-;;;;;2909:48;;;;;;;2123:13;2122:19;2123:13;;;;:::i;:::-;88:1655:76;;;;2122:19:33;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;378:11:59;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;88:1655:76;;1978:981:33;;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;653:2:31;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;;;;;;2931:26;88:1655:76;2931:26:33;;2909:48;;1695:115;88:1655:76;;-1:-1:-1;;;1747:56:33;;;;;88:1655:76;;;;;;;;;;1747:56:33;1235:66;88:1655:76;;-1:-1:-1;;;1261:40:33;;;;;88:1655:76;;;;;;;;;;;1747:56:33;4268:1017:21;4348:10;;4344:26;;1500:10;4384:26;;;4380:40;;-1:-1:-1;;4434:26:21;;;4430:42;;-1:-1:-1;958:19:23;4495:11:21;;;:::i;:::-;5188:10;5094:60;1053:19:23;4548:38:21;965:21:18;;;:::i;4548:38:21:-;1053:19:23;:::i;:::-;958;5095:51:21;:42;958:19:23;;4962:98:21;958:19:23;4984:74:21;958:19:23;5006:50:21;958:19:23;;5028:26:21;958:19:23;4762:100:21;958:19:23;4784:76:21;958:19:23;4806:52:21;958:19:23;4828:28:21;958:19:23;;;:::i;:::-;4828:28:21;:::i;:::-;958:19:23;;:::i;:::-;4806:52:21;:::i;:::-;958:19:23;;:::i;:::-;4784:76:21;:::i;958:19:23:-;4762:100:21;:::i;:::-;958:19:23;;:::i;:::-;5028:26:21;:::i;:::-;958:19:23;;:::i;:::-;5006:50:21;:::i;:::-;958:19:23;;:::i;:::-;4984:74:21;:::i;:::-;958:19:23;;:::i;:::-;4962:98:21;:::i;:::-;958:19:23;;:::i;:::-;;;;:::i;:::-;5095:42:21;:::i;:::-;:51;:::i;958:19:23:-;5253:25:21;5254:9;-1:-1:-1;;;5267:7:21;;;:::i;4430:42::-;4462:10;1949:7;4462:10;:::o;4344:26::-;4360:10;1905:7;4360:10;:::o;11969:3353:18:-;12038:3278;;-1:-1:-1;;;12038:3278:18;;;;;11969:3353;12038:3278;;;;;;;;11969:3353;12038:3278;;;;;;11969:3353;12038:3278;;;;;;11969:3353;12038:3278;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11969:3353;:::o;12038:3278::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12038:3278:18;;-1:-1:-1;12038:3278:18;;;;;;88:1655:76;;;;:::o;:::-;;;-1:-1:-1;;;88:1655:76;;;;;;;;;;;;-1:-1:-1;;;88:1655:76;;;;;;;4596:2947:18;7380:72;4596:2947;4688:27;4700:1;4696:5;;4688:27;:::i;:::-;7125:43;5125:16;;;:::i;:::-;5145:2;88:1655:76;;;5175:3:18;88:1655:76;;378:11:59;5175:3:18;378:11:59;88:1655:76;;;;7232:71:18;88:1655:76;;6411:30:18;88:1655:76;6343:32:18;88:1655:76;6274:33:18;88:1655:76;6205:33:18;88:1655:76;6136:33:18;88:1655:76;6068:32:18;88:1655:76;6001:31:18;88:1655:76;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;88:1655:76;;;;;;;;;;;;;;;;5533:32:18;88:1655:76;5465:32:18;88:1655:76;5398:31:18;88:1655:76;;;;;;;;;;;;;;;;;;;;;;;;6455:304:18;88:1655:76;;;;;4596:2947:18;:::o;71:276:23:-;-1:-1:-1;;;138:25:23;;134:43;;195:1;187:9;;195:1;;;208:61;;;;71:276::o;134:43::-;88:1655:76;;-1:-1:-1;;;172:5:23;;;;;1487:3103:18;-1:-1:-1;;1713:26:18;;;1709:40;;1948:21;1943:26;;;1939:54;;2266:5;378:11:59;88:1655:76;378:11:59;88:1655:76;4502:49:18;2559:29;88:1655:76;3136:40:18;88:1655:76;378:11:59;2591:5:18;378:11:59;;;;88:1655:76;;;;;;;;;3074:35:18;88:1655:76;2874:31:18;88:1655:76;;;;;;3649:35:18;88:1655:76;;;;3508:34:18;88:1655:76;;;;3371:32:18;88:1655:76;;;;;;;;;;;;;;;;;;;;;;;;;;2941:32:18;88:1655:76;;;;;;;;;;;;;;;3699:327:18;88:1655:76;;4564:3:18;88:1655:76;378:11:59;1487:3103:18;:::o;1939:54::-;88:1655:76;;-1:-1:-1;;;1971:22:18;;88:1655:76;1971:22:18;;;88:1655:76;;;;;;-1:-1:-1;;;88:1655:76;;;;;;1747:56:33;405:480:23;2046:20:21;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;2717:18:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;-1:-1:-1;;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;-1:-1:-1;;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;3113:20:21;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;503:380;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;1905:7:21;503:380:23;;;;;;;;;;;;;;;;;6090:7:21;503:380:23;;405:480;:::o;:::-;2913:18:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;3047:17:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;503:380;;;;;;;;;;405:480;:::o;:::-;1905:7:21;503:380:23;;;;;;;;;;;;;;;;;;;;405:480;:::o;15328:575:18:-;15397:27;15405:5;;;15397:27;:::i;:::-;15435:462;378:11:59;15435:462:18;;;;;;;;;;378:11:59;;;;;15435:462:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:575;:::o;88:1655:76:-;378:11:59;;;5076:71:37;;88:1655:76;;;;;;;;;5076:71:37;;;88:1655:76;;;;;;;;;;;;;;;;378:11:59;;;;:::i;:::-;88:1655:76;;;;;;;;;;5076:71:37;88:1655:76;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;88:1655:76;;;;5168:70:37;88:1655:76;;;;;5168:70:37;:::i","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e414620000ac57505080634bce9b6214620000a6578063620a260714620000a05780639f8be6b8146200009a578063ba414fa61462000094578063e0d7d0e9146200008e578063e21485ad14620000885763fa7626d4146200008257600080fd5b620009c4565b6200088c565b6200086c565b62000843565b62000783565b6200075f565b620005a5565b346200057557816003193601126200057557620000c862001254565b805161106b8082019067ffffffffffffffff9280831084841117620005515780620000fb62001788948486843962000aa7565b039086f080156200052957601580546001600160a01b0319166001600160a01b0390921691909117905583519181830183811085821117620005515783926200014692843962000af3565b039084f080156200052957601680546001600160a01b0319166001600160a01b039283161790556015546200018391165b6001600160a01b031690565b803b15620005905782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af18015620005295762000579575b506016548490620001e2906001600160a01b031662000177565b91823b156200057557845190815230600482015268056bc75e2d631000006024820152918290604490829084905af18015620005295762000557575b5060155462000236906001600160a01b031662000177565b6016546200024d906001600160a01b031662000177565b90835191610597908184019284841086851117620005515784936200029a936200aa7886396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200052957601480546001600160a01b0319166001600160a01b039092169190911790558151612f21808201908282108483111762000551578291620002f091620027f384396000815260200190565b039084f080156200052957601380546001600160a01b0319166001600160a01b03929092169182179055620003259062000177565b825190611bc48083019183831085841117620005515783926200035b9262008eb485396001600160a01b03909116815260200190565b039084f080156200052957601780546001600160a01b0319166001600160a01b03929092169182179055620003909062000177565b8251916137a080840192909183118484101762000551578392620003c7926200571485396001600160a01b03909116815260200190565b039083f09081156200052957620003fe6200046a9260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b60155462000415906001600160a01b031662000177565b6013546200042c906001600160a01b031662000177565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200052957620004e29385936200052f575b506016546200049b906001600160a01b031662000177565b6013549091908790620004b7906001600160a01b031662000177565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200052957620004f6578280f35b816200051a92903d1062000521575b62000511818362000a4e565b81019062000b33565b5081808280f35b503d62000505565b62000ae7565b6200054990843d8611620005215762000511818362000a4e565b508662000483565b620009e9565b80620005676200056e92620009ff565b8062000594565b836200021e565b5080fd5b80620005676200058992620009ff565b84620001c8565b8380fd5b6000910312620005a057565b600080fd5b34620005a0576000806003193601126200075c57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000575576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620005295762000745575b506017548190608090620006e19062000627906001600160a01b031662000177565b6015546200069d9062000643906001600160a01b031662000177565b6016546200068d906200065f906001600160a01b031662000177565b916200067d6200066e62000a71565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6001600160a01b03166040830152565b620006a762000b4d565b6060820152601354620006c3906001600160a01b031662000177565b906040519485809481936305157c7f60e21b83526004830162000cc0565b03925af180156200052957620006ff9183916200070c575b50601955565b6200070962000d83565b80f35b62000733915060803d6080116200073d575b6200072a818362000a4e565b81019062000c51565b50505038620006f9565b503d6200071e565b80620005676200075592620009ff565b3862000605565b80fd5b34620005a0576000366003190112620005a0576020604051660aa87bee5380008152f35b34620005a0576000806003193601126200075c57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000575576040516372eb5f8160e11b8152600060048201529082908290602490829084905af1801562000529576200082c575b506017548190608090620008059062000627906001600160a01b031662000177565b03925af180156200052957620008229183916200070c5750601955565b62000709620010bb565b80620005676200083c92620009ff565b38620007e3565b34620005a0576000366003190112620005a0576020620008626200117c565b6040519015158152f35b34620005a0576000366003190112620005a0576020601954604051908152f35b34620005a0576020366003190112620005a05760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa908115620005295760009162000910575b60c08201516200090c906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e011620009bb575b816200092e60e0938362000a4e565b81010312620005a057620008f260c06200090c92620009ae8260405192620009568462000a14565b620009618162000a92565b8452620009716020820162000a92565b6020850152620009846040820162000a92565b6040850152606081015160608501526080810151608085015260a081015160a08501520162000a92565b82820152925050620008de565b3d91506200091f565b34620005a0576000366003190112620005a057602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200055157604052565b60e0810190811067ffffffffffffffff8211176200055157604052565b6080810190811067ffffffffffffffff8211176200055157604052565b90601f8019910116810190811067ffffffffffffffff8211176200055157604052565b604051906080820182811067ffffffffffffffff8211176200055157604052565b51906001600160a01b0382168203620005a057565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b6040513d6000823e3d90fd5b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b90816020910312620005a057518015158103620005a05790565b6040519060006021549060018260011c926001811691821562000c46575b60209160208610841462000c325785885287949360208601939291811562000c11575060011462000baa575b50505062000ba89250038362000a4e565b565b92509362000bda60216000527f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b57090565b946000935b82851062000bfa5750505062000ba893500138808062000b97565b865485850152958601958895509381019362000bdf565b9250505062000ba89491925060ff19168252151560051b0138808062000b97565b634e487b7160e01b85526022600452602485fd5b93607f169362000b6b565b9190826080910312620005a0578151916020810151916060604083015192015190565b60005b83811062000c885750506000910152565b818101518382015260200162000c77565b9060209162000cb48151809281855285808601910162000c74565b601f01601f1916010190565b60a0606062000d039360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062000c99565b90565b90816060910312620005a0578051916040602083015192015190565b90816020910312620005a0575190565b60409062000d0393928152816020820152019062000c99565b634e487b7160e01b600052601160045260246000fd5b9190820391821162000d6f57565b62000d4b565b9190820180921162000d6f57565b60185462000d9a906001600160a01b031662000177565b60195460408051631fc5d02760e21b8152600480820184905267016345785d8a0000602483015292939092606091829085908180604481015b03915afa8015620005295760009160009560009262001093575b5060135462000e05906001600160a01b031662000177565b8551633be6a34160e01b8082523084830190815260208181018c90529a929691939192908b90889081906040010381855afa96871562000529576000976200106f575b5088516333854efd60e21b9687825289828062000e6c868b83019190602083019252565b0381875afa9b8c1562000529578d9260009d62001028575b508b519283019586526020860152604085015262000ed793899391929062000eba90849060600103601f19810185528462000a4e565b60008b518096819582946305d8703160e31b84528b840162000d32565b03925af18015620005295762001006575b5060135462000f00906001600160a01b031662000177565b9260195494875191825286828062000f1f898883019190602083019252565b0381885afa968715620005295762000f77998b9862000f559462000f4e9360009262000fcf575b505062000d61565b9062000d75565b9551908152309181019182526020820193909352919485928391829160400190565b03915afa918215620005295762000ba89360009362000f99575b5050620015ee565b62000fbe929350803d1062000fc7575b62000fb5818362000a4e565b81019062000d22565b90388062000f91565b503d62000fa9565b62000ff39250803d1062000ffe575b62000fea818362000a4e565b81019062000d06565b915050388062000f46565b503d62000fde565b6200102090863d881162000ffe5762000fea818362000a4e565b505062000ee8565b8c9d50928b959386979593973d881162001067575b62001049818362000a4e565b8101620010569162000d06565b9150509d5092949591939562000e84565b503d6200103d565b6200108b9197508b3d8d1162000fc75762000fb5818362000a4e565b953862000e48565b91509450620010b29150823d841162000ffe5762000fea818362000a4e565b90943862000ded565b601854620010d2906001600160a01b031662000177565b6019546040805163ee3e8cfb60e01b8152600480820184905267016345785d8a00006024830152929390926060918290859081806044810162000dd3565b90600491630667f9d760e41b815262001133825180936020868501910162000c74565b010190565b3d1562001177573d9067ffffffffffffffff82116200055157604051916200116b601f8201601f19166020018462000a4e565b82523d6000602084013e565b606090565b6000805460081c60ff161562001196575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620011b857505090565b8192506040518281620011f660208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b036200120b601f199182810185528462000a4e565b6200123160405191826200122460208201968762001110565b0390810183528262000a4e565b51925af15062000d036200124462001138565b6020808251830101910162000b33565b6040805161106b80820167ffffffffffffffff91838210838311176200055157836200128862001788938385843962000aa7565b0360009485f080156200052957601580546001600160a01b0319166001600160a01b039092169190911790558451918183018381108582111762000551578392620012d592843962000af3565b039083f080156200052957601680546001600160a01b0319166001600160a01b039283161790556015546200130b911662000177565b803b15620015ea5783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af180156200052957620015d3575b5060165462001368906001600160a01b031662000177565b90813b156200059057845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af180156200052957620015bc575b50601554620013be906001600160a01b031662000177565b601654620013d5906001600160a01b031662000177565b908451916105979081840192848410868511176200055157849362001422936200aa7886396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200052957601480546001600160a01b0319166001600160a01b03909216919091179055825190612f2180830191821183831017620005515782916200147891620027f384396000815260200190565b039082f09182156200052957620014af6200151e9360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b601554620014c6906001600160a01b031662000177565b601354909190620014e0906001600160a01b031662000177565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af19283156200052957620015699486946200159a575b506016546200154f906001600160a01b031662000177565b601354909290620004b7906001600160a01b031662000177565b03925af1801562000529576200157d575050565b816200159792903d10620005215762000511818362000a4e565b50565b620015b490853d8711620005215762000511818362000a4e565b503862001537565b8062000567620015cc92620009ff565b38620013a6565b8062000567620015e392620009ff565b3862001350565b8280fd5b90808203620015fb575050565b6080806040938451937f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50836020968781526022888201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8982015261745d60f01b6060820152a1855190868252600a87830152690808115e1c1958dd195960b21b6060830152858201527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8938491a1845190858252600a8683015269080808081058dd1d585b60b21b606083015284820152a1737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62001700575b50505061010061ff00196000541617600055565b8260006200175d6200176e602483979684975195818701908882526519985a5b195960d21b8189015260016060890152606088526200173f8862000a31565b519485928301976370ca10bb60e01b89525180928585019062000c74565b810103600481018452018262000a4e565b51925af1506200177d62001138565b50388080620016ec56fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c634300081600336080346200007a57601f620037a038819003918201601f19168301916001600160401b038311848410176200007f578084926020946040528339810103126200007a57516001600160a01b038116908190036200007a57600080546001600160a01b03191691909117905560405161370a9081620000968239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630420580a146101b7578063120649c5146101b2578063134ead12146101ad5780631e978cb0146101a8578063306db46b146101a3578063332266f31461019e5780633928ff97146101995780633b268d5d146101945780633b4d10301461018f5780634e817fd91461018a5780634fd67c58146101855780635eb408fc146101805780636237569f1461017b5780636d652299146101765780637f17409c1461017157806381b5fac21461016c578063902ecaa214610167578063a8c62e7614610162578063af4e437f1461015d578063b09d04e514610158578063cb1f553214610153578063ce153bf41461014e578063e94716d514610149578063ee3e8cfb14610144578063f30d37f21461013f5763f9c282111461013a57600080fd5b610aff565b610acf565b610a9e565b610a63565b610a27565b6109e2565b6109af565b610993565b61096a565b610941565b610914565b610872565b610856565b6107e9565b6107cd565b6107a4565b610788565b610759565b61071e565b61048d565b610436565b610407565b6103e2565b610354565b61028e565b610218565b60005b8381106101cf5750506000910152565b81810151838201526020016101bf565b906020916101f8815180928185528580860191016101bc565b601f01601f1916010190565b9060206102159281815201906101df565b90565b3461026b57604036600319011261026b57610267604051600260208201526004356040820152602435606082015260608152610253816102e9565b6040519182916020835260208301906101df565b0390f35b600080fd5b608090600319011261026b5760043590602435906044359060643590565b3461026b5760206102aa6102a136610270565b92919091610b4d565b604051908152f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff8211176102e457604052565b6102b2565b6080810190811067ffffffffffffffff8211176102e457604052565b6060810190811067ffffffffffffffff8211176102e457604052565b90601f8019910116810190811067ffffffffffffffff8211176102e457604052565b6001600160a01b0381160361026b57565b3461026b5760e036600319011261026b5760a036604319011261026b576102676103bc604051610383816102c8565b60443581526064356020820152608435604082015260a435606082015260c4356103ac81610343565b608082015260243560043561139a565b60405191829182610204565b606090600319011261026b57600435906024359060443590565b3461026b5760206102aa6104016103f8366103c8565b91929092610f06565b91611583565b3461026b5760206102aa61041a366103c8565b9061042d61042784610f06565b936110d9565b92919091611670565b3461026b5760206102aa610449366103c8565b9061045661042784610f06565b9290506119da565b8015150361026b57565b90926080926102159594151583526020830152604082015281606082015201906101df565b3461026b57606036600319011261026b5761050360243561061f6004356104b38361045e565b604435926104bf610c57565b936104c8610c57565b946104d2846110d9565b60208496939592960194604096878601928352865284526104f287610f06565b998a9185519087519051918a611009565b921561069657928261054a6105519361054361053e61053661056f9861053160606105979d9c0151866125a2565b6125a2565b8651906125f8565b610c9d565b9351610cb0565b8a52610cb0565b61056385890191808352895188610c4a565b90885190519087610b4d565b9061058e6105836020890193808552610c9d565b808452825111610d31565b51905190610d24565b945b84519260c06020870151848801926105df8451976105d18851998a958693602085016040919493926060820195825260208201520152565b03601f198101845283610321565b600054610602906105f6906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610dbf565b03915afa94851561069157600095610651575b509061064691610267959651905190611583565b905194859485610468565b61026795509061067c610646939260c03d60c01161068a575b6106748183610321565b810190610d88565b505050505095509091610632565b503d61066a565b610b41565b826106df610718966106d2610704956106cb61053e6106c361070f9a61053160606106fc9b0151866125a2565b8551906125f8565b9251610cb0565b9260208d01938452610cb0565b6106f1888c019180835283518b610de3565b915190519089610df0565b808952610c9d565b808852825111610cbd565b51855190610d24565b94610599565b3461026b57604036600319011261026b57610267604051600460208201526004356040820152602435606082015260608152610253816102e9565b3461026b57602036600319011261026b5760206102aa60043561040161077e826110d9565b9291939050610f06565b3461026b5760206102aa61079e6103f8366103c8565b91611b9c565b3461026b5760206102aa6107b7366103c8565b906107c461042784610f06565b92919091611c16565b3461026b5760206102aa6107e036610270565b92919091610df0565b3461026b57604036600319011261026b5761083860043561026761081a61080f836110d9565b919050602435611f7a565b939092848461083261082b84610f06565b8383611583565b92610b4d565b92604051938493846040919493926060820195825260208201520152565b3461026b57600036600319011261026b57602060405160008152f35b3461026b57604036600319011261026b576004356108c06102676108a2610898846110d9565b9150602435611fa7565b92909383856108ba6108b384610f06565b8383611b9c565b92610df0565b91604051938493846040919493926060820195825260208201520152565b805182526020808201519083015260408082015190830152606080820151908301526080908101516001600160a01b0316910152565b3461026b57602036600319011261026b5760a0610932600435610f06565b61093f60405180926108de565bf35b3461026b5760206102aa610954366103c8565b9061096161042784610f06565b92909150611fce565b3461026b57600036600319011261026b576000546040516001600160a01b039091168152602090f35b3461026b5760206102aa6109a636610270565b92919091611009565b3461026b57602036600319011261026b576102676040516001602082015260043560408201526040815261025381610305565b3461026b57602036600319011261026b57610267600435610a0281610343565b60408051600560208201526001600160a01b0390921682820152815261025381610305565b3461026b57602036600319011261026b57610267610a466004356110d9565b604080519384526020840192909252908201529081906060820190565b3461026b57604036600319011261026b57610267604051600360208201526004356040820152602435606082015260608152610253816102e9565b3461026b57604036600319011261026b5761083860043561026761081a610ac4836110d9565b919050602435611fa7565b3461026b57604036600319011261026b576004356108c06102676108a2610af5846110d9565b9150602435611f7a565b3461026b57600036600319011261026b57602060405160788152f35b9081602091031261026b575190565b6040906102159392815281602082015201906101df565b6040513d6000823e3d90fd5b610b85610bee9493929361053184610b7e610b79610b74610b6d88610f06565b809661230a565b61237f565b6123b2565b92516125a2565b916020604051610bbc81610bae85888a8785016040919493926060820195825260208201520152565b03601f198101835282610321565b600054610bd3906105f6906001600160a01b031681565b6040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093610c15575b50610c0f90610f06565b936111f1565b610c0f919350610c3c9060203d602011610c43575b610c348183610321565b810190610b1b565b9290610c05565b503d610c2a565b9161040161021593610f06565b604051906060820182811067ffffffffffffffff8211176102e45760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610cab57565b610c87565b91908201809211610cab57565b15610cc457565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b6103e719810191908211610cab57565b91908203918211610cab57565b15610d3857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c091031261026b578151610d9f8161045e565b9160208101519160408201519160608101519160a0608083015192015190565b610215939260609260018060a01b03168252602082015281604082015201906101df565b9161079e61021593610f06565b92610b79610b74610e0d92949394610e0787610f06565b90612f44565b92670de0b6b3a7640000938403938411610cab57610e2e610e5794836125a2565b916020604051610bbc81610bae8589898785016040919493926060820195825260208201520152565b03915afa9182156106915761021595600093610e7e575b50610e7890610f06565b93611e24565b610e78919350610e9c9060203d602011610c4357610c348183610321565b9290610e6e565b91908260a091031261026b57604051610ebb816102c8565b608080829480518452602081015160208501526040810151604085015260608101516060850152015191610eee83610343565b0152565b9060a08282031261026b5761021591610ea3565b90604051610f13816102c8565b600090818152816080602092828482015282604082015282606082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610691578092610f7a575b506102159293508082518301019101610ef2565b9091503d8082863e610f8c8186610321565b840190828583031261100257845167ffffffffffffffff9586821161100557019082601f830112156110025781519586116102e45760405192610fd8601f8801601f1916860185610321565b86845284878401011161100257506102159394610ffa918480850191016101bc565b908392610f66565b80fd5b8280fd5b61105d939192602060405161103781610bae87868a8785016040919493926060820195825260208201520152565b60018060a01b03600054166040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093611084575b5061107e90610f06565b936121b4565b61107e9193506110a29060203d602011610c4357610c348183610321565b9290611074565b9081602091031261026b575161021581610343565b9081606091031261026b578051916040602083015192015190565b90600460206110f56105f66105f660005460018060a01b031690565b604051632bee84f160e21b815292839182905afa928315610691576111409360609260009161119d575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156106915760008093600093611166575b50929190565b9193505061118c915060603d606011611196575b6111848183610321565b8101906110be565b9290929138611160565b503d61117a565b6111bf915060203d6020116111c5575b6111b78183610321565b8101906110a9565b3861111f565b503d6111ad565b6111ef9360609296959361010083019783526020830152604082015201906108de565b565b929360009385929185851215611367575b8585126113485790610bae611224925b604096604051958694602086016111cc565b81859285968281116113255761123a818561337f565b92611245818661337f565b88611250828761152f565b136113045750906112649197969297610d24565b60019591829187805b61127f575b5050505050505050505090565b156112e0575b5086979850819261129f6112998b89610cb0565b60011c90565b996112aa8b8861337f565b90846112b6888461152f565b136112d457505089935b886112cb8987610d24565b9201949961126d565b8b9850909550936112c0565b601410806112fb575b156112f45788611285565b8080611272565b508083106112e9565b6040516306f1be5d60e21b8152600481018690526024810191909152604490fd5b604051633082dfdb60e11b81526004810191909152602481019290925250604490fd5b935091611354906125ce565b91611361848385846124a9565b93611202565b85851361137b5790610bae61122492611212565b935094611387906123f5565b94611394848388846124a9565b93611367565b916113ab610b79610b748385612f44565b91670de0b6b3a7640000928303928311610cab57611402826113ee6113e3610b79610b74846113dd6114209a8c6125f8565b9761230a565b6105318584516125a2565b926113fb8282868a6124a9565b84886121b4565b906040519460208601526040850152606084015260808301906108de565b6101008152610120810181811067ffffffffffffffff8211176102e45760405290565b90670de0b6b3a764000060008382039312818412811691841390151617610cab57565b90671bc16d674ec8000060008382039312818412811691841390151617610cab57565b9067119000ab100ffbff198201918213600116610cab57565b81810392916000138015828513169184121617610cab57565b90670de0b6b3a764000091828102928184051490151715610cab57565b90671bc16d674ec8000091828102928184051490151715610cab57565b90633b9aca0091828102928184051490151715610cab57565b60008190039190600160ff1b8114600116610cab57600019830503610cab57565b818102929160008212600160ff1b821416610cab578184051490151715610cab57565b811561156d57600160ff1b8114600019831416610cab570590565b634e487b7160e01b600052601260045260246000fd5b9190916115be60208301936115b885516115b06115a66040880192835190612843565b975182519061286c565b905190612414565b92612435565b92670de0b6b3a76400008085121561163c5760008513156116315760008582039512818612811691861390151617610cab5761162561162a92611620611612610b799461160d6102159961288b565b61152f565b670de0b6b3a7640000900590565b6114a2565b612917565b90516125a2565b505050505060001990565b5050505050600090565b90959492936111ef94608093610120840198845260208401526040830152606082015201906108de565b909291828651602088015160408901519060608a01519261169083612ac8565b6116999061185a565b936116a390611443565b906116ad8a612b86565b6116b68b611981565b6116bf91612c38565b6116c88b611981565b6116d184612bb5565b6116da916114a2565b6116e49088612c38565b6116ed91612cb5565b6116f690612cd3565b9361170084612fbb565b611709906114d8565b670de0b6b3a7640000900561171d90612917565b9061172791612c38565b61173090612c67565b611739906119c9565b848661174486612c09565b9061174e91612c38565b9061175891612c38565b611761916119ad565b61176a90612917565b826117758c84612c38565b9061177f91612c38565b61178891612c38565b6117918b611981565b61179a84612bb5565b6117a3916114a2565b6117ac91612cb5565b956117b691612c38565b906117c090611993565b6117c991612c38565b926117d391612c38565b6117dc90612c8e565b906117e6916114a2565b6117ef90612e24565b6117f891612c38565b61180186612b86565b61180a91612cb5565b90611814846119c9565b9061181e916119ad565b90611828916119ad565b60001361184f576102159561184a93610bae9260405196879560208701611646565b61264d565b505050505050600090565b90633b9aca0091828102928184041490151715610cab57565b9081672005fe4f268ea00001918212600116610cab57565b9081670dc5527f642c200001918212600116610cab57565b9081670de0b6b3a764000001918212600116610cab57565b9081670b68df18e471fbff190191821215600116610cab57565b90816714a8454c19e1ac0001918212600116610cab57565b9081670fc10e01578277ff190191821215600116610cab57565b90816703debd083b8c7c0001918212600116610cab57565b9081670295d400ea3257ff190191821215600116610cab57565b9081670157d8b2ecc7080001918212600116610cab57565b90816705310aa7d521300001918212600116610cab57565b9081670de0cc3d1561000001918212600116610cab57565b90816103e801918212600116610cab57565b9081670de0b6b3a763ffff190191821215600116610cab57565b91909160008382019384129112908015821691151617610cab57565b600160ff1b8114610cab5760000390565b939290919280519160208201519060408301519260600151936119fc84612ac8565b611a059061185a565b94611a0f90611443565b9182611a1a88612b86565b611a2489846119ad565b611a2d91612c38565b611a3789846119ad565b611a418385612c38565b611a4a916114a2565b611a54908b612c38565b611a5d91612cb5565b611a6690612cd3565b95611a7086612fbb565b611a79906114d8565b670de0b6b3a76400009005611a8d90612917565b90611a9791612c38565b611aa090612c67565b611aa9906119c9565b8688611ab488612c09565b90611abe91612c38565b90611ac891612c38565b611ad1916119ad565b611ada90612917565b81611ae58a86612c38565b90611aef91612c38565b611af891612c38565b91611b0389826119ad565b91611b0d91612c38565b611b16916114a2565b611b1f91612cb5565b96611b2991612c38565b90611b3390611993565b611b3c91612c38565b92611b4691612c38565b611b4f90612c8e565b90611b59916114a2565b611b6290612e24565b611b6b91612c38565b90611b7590612b86565b611b7e91612cb5565b91611b88906119c9565b90611b92916119ad565b90610215916119ad565b919091611bda6020830191611bd4611bcc84516115b0611bc26040890192835190612843565b965182519061286c565b958551612414565b90612435565b670de0b6b3a7640000918282121561163c576000821315611631576102159461162a93611c106116259361160d610b799661288b565b056119ad565b909291855160208701516040880151606089015191611c3482612ac8565b611c3d9061185a565b92611c4790611443565b93611c5186612b86565b611c5a87611981565b611c6391612c38565b611c6d8983612c38565b611c7688611981565b611c7f91612c38565b611c88906119c9565b86611c938b85612c38565b611c9c90612bde565b90611ca691612c38565b611caf916119ad565b611cb891612cb5565b611cc1906119c9565b611cca90612cd3565b92611cd483612fbb565b611cdd906114d8565b670de0b6b3a76400009005611cf190612917565b90611cfb91612c38565b611d0490612c67565b611d0d906119c9565b8385611d1885612c09565b90611d2291612c38565b90611d2c91612c38565b611d35916119ad565b611d3e90612917565b85611d49888a612c38565b90611d5391612c38565b611d5c91612c38565b90611d6687611981565b611d6f87612bb5565b611d78916114a2565b611d8191612c38565b611d8a91612cb5565b93611d958789612c38565b90611d9f90611993565b611da891612c38565b92611db291612c38565b611dbb90612c8e565b90611dc5916114a2565b611dce90612e24565b611dd791612c38565b611de083612b86565b611de991612cb5565b90611df390611993565b90611dfd916119ad565b60001361184f5761021595611e1f93610bae9260405196879560208701611646565b61276c565b929360009385929185851215611f47575b858512611f285790610bae611e5692604096604051958694602086016111cc565b818592859682811161132557611e6c81856133a0565b92611e7781866133a0565b88611e82828761152f565b13611304575090611e969197969297610d24565b60019591829187805b611eb0575050505050505050505090565b15611f0b575b50869798508192611eca6112998b89610cb0565b99611ed58b886133a0565b9084611ee1888461152f565b13611eff57505089935b88611ef68987610d24565b92019499611e9f565b8b985090955093611eeb565b60141080611f1f575b156112f45788611eb6565b50808310611f14565b935091611f34906125ce565b91611f41848383866124a9565b93611e35565b858513611f5b5790610bae611e5692611212565b935094611f67906123f5565b94611f74848383896124a9565b93611f47565b929190611f90611f8a82846125f8565b856125a2565b938103908111610cab57928103908111610cab5790565b929190611fb7611f8a82846125f8565b938101809111610cab57928101809111610cab5790565b9390929181516020830151916040840151936060015194611fee85612ac8565b611ff79061185a565b9561200190611443565b928361200c89612b86565b6120168a856119ad565b61201f91612c38565b6120298584612c38565b6120338b866119ad565b61203c91612c38565b612045906119c9565b82856120518887612c38565b9061205b91612c38565b9061206591612c38565b61206e916119ad565b61207791612cb5565b612080906119c9565b61208990612cd3565b9661209387612fbb565b61209c906114d8565b670de0b6b3a764000090056120b090612917565b906120ba91612c38565b6120c390612c67565b6120cc906119c9565b87896120d789612c09565b906120e191612c38565b906120eb91612c38565b6120f4916119ad565b6120fd90612917565b816121088b8d612c38565b9061211291612c38565b61211b91612c38565b926121268a826119ad565b9161213091612c38565b612139916114a2565b61214291612c38565b61214b91612cb5565b9661215591612c38565b9061215f90611993565b61216891612c38565b9261217291612c38565b61217b90612c8e565b90612185916114a2565b61218e90612e24565b61219791612c38565b906121a190612b86565b6121aa91612cb5565b90611b9290611993565b9293600093859291858512156122d7575b8585126122b85790610bae6121e692604096604051958694602086016111cc565b8185928596828111611325576121fc81856133c2565b9261220781866133c2565b88612212828761152f565b136113045750906122269197969297610d24565b60019591829187805b612240575050505050505050505090565b1561229b575b5086979850819261225a6112998b89610cb0565b996122658b886133c2565b9084612271888461152f565b1361228f57505089935b886122868987610d24565b9201949961222f565b8b98509095509361227b565b601410806122af575b156112f45788612246565b508083106122a4565b9350946122c4906123f5565b946122d1848784846124a9565b936121c5565b8585136122eb5790610bae6121e692611212565b9350916122f7906125ce565b91612304848484846124a9565b936122d7565b61237a6123756102159361236f61236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b9d6125f8565b612fbb565b97612fbb565b6114d8565b05612917565b612414565b612457565b906114a2565b6114bb565b611552565b6123ae6123756123a96713a04bbdfdc9be886123a3671bc16d674ec80000956114bb565b056119c9565b612e24565b0590565b600081126123bd5790565b60405162461bcd60e51b815260206004820152601060248201526f746f55696e743a206e6567617469766560801b6044820152606490fd5b6103e79081810291818304149015176001161561026b576103e8900490565b81810291818304149015176001161561026b57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517821515161561026b570490565b6706f05b59d3b2000090808202918204146001161561026b57670de0b6b3a7640000900490565b670de0b6b3a76400009081810291818304149015176001161561026b57671bc16d674ec80000900490565b90928282101561255d57610215936125269284670de0b6b3a764000091826124d18383612435565b1061254a57506001600160ff1b039590505b8351916124f96124f38385612414565b85612435565b1061252b57506001600160ff1b0392612520925090505b6040602082015191015190612843565b926119ad565b6119ad565b61252092611bd461253f9261254494612414565b61288b565b91612510565b6125579161253f91612435565b946124e3565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b81810291818304149015176001161561026b576001670de0b6b3a7640000600019830104019015150290565b6103e99081810291818304149015176001161561026b5760016103e8600019830104019015150290565b90670de0b6b3a7640000918281029281840414901517811515161561026b57600190600019830104019015150290565b6101008183031261026b57805192610215602083015193606060408501519401610ea3565b91906103e89260009360009183821161274b57612669816133e2565b6126738583613521565b600061267f828461152f565b1361272c5750612690859695610d14565b60019460009186805b6126aa575b50505050505050509050565b15612707575b50859697985080916126c56112998b88610cb0565b996126d08b87613521565b90836126dc878461152f565b136126fb57505089925b876126f18886610d24565b9201939998612699565b8b9750909450926126e6565b861080612721575b1561271a57886126b0565b808061269e565b50610100821061270f565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e89260009360009183821161274b5761278881613543565b61279285836136b3565b600061279e828461152f565b1361272c57506127af859695610d14565b60019460009186805b6127c85750505050505050509050565b15612825575b50859697985080916127e36112998b88610cb0565b996127ee8b876136b3565b90836127fa878461152f565b1361281957505089925b8761280f8886610d24565b92019399986127b8565b8b975090945092612804565b861080612838575b1561271a57886127ce565b50610100821061282d565b9061284d90612ac8565b633b9aca0090818102918183041490151715610cab5761021591612414565b61021591612365670de0b6b3a764000061235f61235a61236a95612fbb565b6706f05b59d3b20000811461291157670de0b6b3a764000090818112156128ff5780156128ed578060011b908105600203610cab576128c990612cd3565b906713a04bbdfdc9be8891808302928305146001161561026b5761021591056119c9565b6040516322ed598560e21b8152600490fd5b6040516307a0212760e01b8152600490fd5b50600090565b680248ce36a70cb26b3e1981131561291157680755bf798b4a1bf1e5811215612a67576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b91906101208382031261026b57825192602081015192610215604083015193608060608501519401610ea3565b60b581600160881b811015612b6f575b80690100000000000000000062010000921015612b62575b65010000000000811015612b55575b6301000000811015612b48575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b91612b0c565b60201c9160101b91612aff565b60401c9160201b91612af0565b5068b500000000000000009050608082901c612ad8565b671bc16d674ec8000081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e881810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e88082029160016000198210179181840514901517161561026b57670de0b6b3a7640000900590565b6713a04bbde78cc40081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b90911317161561026b57670de0b6b3a7640000900590565b670de0b6b3a764000090818102918205146001161561026b57671bc16d674ec80000900590565b670de0b6b3a764000090818102918205146001161561026b576713a04bbde78cc400900590565b670de0b6b3a76400009081810291820514821515161561026b570590565b600081128015612e13575b612e015780156128ff57671bc16d674ec8000081146128ed57670de0b6b3a76400008112908115612df257905b612d1482613189565b80156128ff57612d7d612d41612d3c612d37612d32612d8295612fbb565b61324a565b612ac8565b6114f5565b611620612d55612d50836131b4565b611873565b612d77612d72612d6c612d67866131df565b61188b565b856132c1565b6118a3565b90613228565b613272565b916000905b60028210612da257505015612d995790565b610215906119c9565b9092612dea81612de4612dba85611620600196612e24565b612d77612dda612dd5611625612dd087806132c1565b6119c9565b61329a565b61236f83866132c1565b906119ad565b930190612d87565b612dfb90611466565b90612d0b565b604051632d0483c560e21b8152600490fd5b50671bc16d674ec800008113612cde565b8015612f3757675698eef06670000081121561291157675698eef0666fffff19811315612f2a576000612f1a612e598361315c565b612ee2611625612e73612e6e612d728561247e565b613209565b92612526612f15612f10612f09612f03612efe612ef8612ef3612eed612ee88d612ee2612edd612ed7612ed2612d6c612ecd612ec7612ec2612ebc612eb78a6132e2565b6118bb565b896132c1565b6118d5565b876132c1565b6118ed565b611907565b836132c1565b61191f565b906132c1565b611939565b8c6132c1565b611951565b8a6132c1565b611969565b886132c1565b93806132c1565b61150e565b611489565b9112156102155761021590611466565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b61237a61237561021593612de461236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b15612f8a57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b886428490612fe760008213612f83565b711340daa0d5f769dba1915cef59f0815a55066130038261330d565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b600160ff1b8114613177576000811215610215571960010190565b604051634d2d75b160e01b8152600490fd5b670de0b6b3a76400009081810291818305149015176001161561026b57671bc16d674ec80000900590565b6703c1665c7aab20009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b669f32752462a0009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b6001811515161561026b576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029181830514901517821515161561026b570590565b671bc16d674ec7ffff1981810291600191830514161561026b57670de0b6b3a7640000900590565b6709d028cc6f205fff1981810291600191830514161561026b57670de0b6b3a7640000900590565b670fa8cedfc2adddfa90808202918205146001161561026b57670de0b6b3a7640000900590565b81810291818305149015176001161561026b57670de0b6b3a7640000900590565b67025f0fe105a314009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b613318811515612f83565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b906133966102159260208082518301019101612628565b93919290506124a9565b906133b76102159260208082518301019101612628565b9390509190916124a9565b906133d96102159260208082518301019101612628565b939290506124a9565b8051810160200190602001906133f791612a9b565b809193925051906020810151604082015191606001519261341783612ac8565b6134209061185a565b9361342a90611443565b9061343486612b86565b61343d87611981565b61344691612c38565b61344f87611981565b61345884612bb5565b613461916114a2565b61346b9089612c38565b61347491612cb5565b61347d90612cd3565b9361348784612fbb565b613490906114d8565b670de0b6b3a764000090056134a490612917565b906134ae91612c38565b6134b790612c67565b6134c0906119c9565b84866134cb86612c09565b906134d591612c38565b906134df91612c38565b6134e8916119ad565b6134f190612917565b826134fc8884612c38565b9061350691612c38565b61350f91612c38565b61351887611981565b611b0d84612bb5565b906135386102159260208082518301019101612a9b565b9493909291506119da565b80518101602001906020019061355891612a9b565b809192935051602082015190604083015192606001519361357884612ac8565b6135819061185a565b9461358b90611443565b9161359587612b86565b61359e88611981565b6135a791612c38565b6135b18383612c38565b6135ba89611981565b6135c391612c38565b6135cc906119c9565b846135d78585612c38565b6135e090612bde565b906135ea91612c38565b6135f3916119ad565b6135fc91612cb5565b613605906119c9565b61360e90612cd3565b9461361885612fbb565b613621906114d8565b670de0b6b3a7640000900561363590612917565b9061363f91612c38565b61364890612c67565b613651906119c9565b858761365c87612c09565b9061366691612c38565b9061367091612c38565b613679916119ad565b61368290612917565b8361368d898b612c38565b9061369791612c38565b6136a091612c38565b906136aa88611981565b61213085612bb5565b906136ca6102159260208082518301019101612a9b565b9493909250611fce56fea2646970667358221220f3e875cd9c43c4535da38090630f644037f96036f7dad55519e2d7d792047e4b64736f6c6343000816003360803461007457601f611bc438819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051611b3490816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b6109e4565b6109bb565b610814565b6107da565b610674565b6103dc565b6102e1565b61023d565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101df565b838082518301019101610a17565b9061010d6100ff600435610b92565b868082518301019101610a32565b92610d8d565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761015057604052565b61011e565b60c0810190811067ffffffffffffffff82111761015057604052565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101bd601f8201601f191660200184610171565b8294818452818301116101da578281602093846000960137010152565b600080fd5b9080601f830112156101da578160206101fa93359101610193565b90565b919082519283825260005b848110610229575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610208565b346101da5760003660031901126101da57604051604081019080821067ffffffffffffffff8311176101505761029a916040526009815268131bd9d39bdc9b585b60ba1b60208201526040519182916020835260208301906101fd565b0390f35b906040516080810181811067ffffffffffffffff821117610150576040526060600382948054845260018101546020850152600281015460408501520154910152565b346101da5760203660031901126101da5760043560005260016020526101c0604060002061030e8161029e565b9061031b6004820161029e565b906103bd61032b6008830161029e565b610393600c84015493600d60018060a01b03910154169461036d6040518098606080918051845260208101516020850152604081015160408501520151910152565b80516080880152602081015160a0880152604081015160c08801526060015160e0870152565b80516101008601526020810151610120860152604081015161014086015260600151610160850152565b6101808301526101a0820152f35b6001600160a01b038116036101da57565b346101da576060806003193601126101da576103f96004356103cb565b6024356044359167ffffffffffffffff83116101da576104206104829336906004016101df565b8161043c61042d85610b92565b60208082518301019101610a32565b60005490949061046290610456906001600160a01b031681565b6001600160a01b031690565b60405180809881946333854efd60e21b8352600483019190602083019252565b03915afa801561061457600091829583926105d9575b50806020806104ac93518301019101610a17565b939194909682861160001461054c5750916104ed826104e8836104e36104fe976104d96104f5988c610aa3565b908c0151906112af565b6112af565b6112db565b505b83610afe565b93828685610d8d565b9384601319129283610541575b61029a9394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b60148612935061050b565b90929091508187111561057b57610575826104e8836104e36104fe976104d96104f5988e610aa3565b506104ef565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9095506104ac92506106019150833d851161060d575b6105f98183610171565b810190610a17565b95919290959190610498565b503d6105ef565b610a81565b9060606003198301126101da57600435610632816103cb565b916024359160443567ffffffffffffffff928382116101da57806023830112156101da5781600401359384116101da57602484830101116101da576024019190565b346101da5761068236610619565b600054929350916001600160a01b031633036107c85761078661077e61042d610779956106c0608095610743976106b7610b67565b50810190610e8c565b6020819b949a9399929b01516106e0866000526001602052604060002090565b55604081015160046106fc876000526001602052604060002090565b015580516008610716876000526001602052604060002090565b01556060810151600c610733876000526001602052604060002090565b015501516001600160a01b031690565b600d610759846000526001602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610b92565b848385610d8d565b92836013191291826107bd575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b601485129250610793565b604051636853cba760e01b8152600490fd5b346101da5760606107ea36610619565b818094509492940103126101da5780359061078661077e61042d6040602085013594013595610b92565b346101da5761082236610619565b6000549093906001600160a01b0390811633036107c857610863610456600d610855876000526001602052604060002090565b01546001600160a01b031690565b9116036109a95761087683820182610b32565b61087f81610b47565b600181036108b857506108a261089d6108b392600c94953691610193565b610fc3565b926000526001602052604060002090565b01555b005b6108c181610b47565b600381036108fd5750906108e56108e06108f8936108b6953691610193565b610f19565b9290916000526001602052604060002090565b610f41565b61090681610b47565b6004810361094057509060046109276108e061093a946108b6963691610193565b9390926000526001602052604060002090565b01610f41565b61094981610b47565b6002810361096a57509060086109276108e061093a946108b6963691610193565b80610976600592610b47565b03610997576107596108a2610992600d936108b6963691610193565b610ef1565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101da5760003660031901126101da576000546040516001600160a01b039091168152602090f35b346101da5760203660031901126101da5761029a610a03600435610b92565b6040519182916020835260208301906101fd565b908160609103126101da578051916040602083015192015190565b908160a09103126101da57608060405191610a4c83610134565b805183526020810151602084015260408101516040840152606081015160608401520151610a79816103cb565b608082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610ab057565b610a8d565b91908201809211610ab057565b90671bc16d674ec8000060008382039312818412811691841390151617610ab057565b9067119000ab100ffbff198201918213600116610ab057565b81810392916000138015828513169184121617610ab057565b600160ff1b8114610ab05760000390565b600611156101da57565b908160209103126101da57356101fa81610b28565b60061115610b5157565b634e487b7160e01b600052602160045260246000fd5b60405190610b7482610134565b60006080838281528260208201528260408201528260608201520152565b610b9a610b67565b816000526001602052610bb8610bb3604060002061029e565b610ff8565b9160208201928352806000526001602052610bdc610bb3600860406000200161029e565b8252600c610c1d610c05610bb36004610bff866000526001602052604060002090565b0161029e565b92604085019384526000526001602052604060002090565b015490606083019182526040519383516020860152516040850152516060840152516080830152608060018060a01b039101511660a082015260a081526101fa81610155565b9081672005fe4f268ea00001918212600116610ab057565b9081670dc5527f642c200001918212600116610ab057565b9081670de0b6b3a764000001918212600116610ab057565b9081670b68df18e471fbff190191821215600116610ab057565b90816714a8454c19e1ac0001918212600116610ab057565b9081670fc10e01578277ff190191821215600116610ab057565b90816703debd083b8c7c0001918212600116610ab057565b9081670295d400ea3257ff190191821215600116610ab057565b9081670157d8b2ecc7080001918212600116610ab057565b90816705310aa7d521300001918212600116610ab057565b9081670de0cc3d1561000001918212600116610ab057565b91909160008382019384129112908015821691151617610ab057565b909282821015610e47576101fa93610e0a9284670de0b6b3a76400009182610db5838361130b565b10610e3457506001600160ff1b039590505b835191610ddd610dd7838561132d565b8561130b565b10610e0f57506001600160ff1b0392610e04925090505b6040602082015191015190611286565b92610d71565b610d71565b610e0492610e23610e2992610e2e9461132d565b9061130b565b6110b3565b91610df4565b610e4191610e299161130b565b94610dc7565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b80910361010081126101da5781359260208301359260a0604082013593605f1901126101da5760e060405191610ec183610134565b606081013583526080810135602084015260a0810135604084015260c081013560608401520135610a79816103cb565b6040818051810103126101da5780610f0e60206040930151610b28565b0151610456816103cb565b6060818051810103126101da57610f336020820151610b28565b606060408201519101519091565b919042821115610fb157610f57610bb38461029e565b9081845542600385015542830391838311610ab057610f7591610afe565b428314610f9b57600160ff1b8114600019831416610ab057600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101da5780610fe060206040930151610b28565b015190565b81810292918115918404141715610ab057565b606081015160208201518082146110735780421160001461106b57905b8103908111610ab05760408201908151600081136000146110485750611042906101fa9351925190610fe5565b90610ab5565b9261105f9250611059905193610b17565b90610fe5565b8103908111610ab05790565b504290611015565b50505190565b90633b9aca0091828102928184051490151715610ab057565b60008190039190600160ff1b8114600116610ab057600019830503610ab057565b6706f05b59d3b20000811461128057670de0b6b3a76400008082121561122a57811561124b5760018260011b916002938305600203610ab05760008312801561126f575b61125d57821561122a57671bc16d674ec80000831461124b57821291821561123c57925b611124846118db565b801561122a5761119661115561115061114b61114661119b959997969961146f565b61199c565b611379565b611079565b61119161116961116483611906565b610c63565b61118b61118661118061117b86611931565b610c7b565b85611a13565b610c93565b9061197a565b610afe565b6119c4565b936000925b8184106111d257505050506101fa916111bf916000146111c4576118b4565b610b17565b6111cd90610b17565b6118b4565b90916112208661121a6111ea8561119186999b611610565b61118b61120a6112056112006111bf8780611a13565b611730565b6119ec565b6112148386611a13565b90610afe565b90610d71565b95019291906111a0565b6040516307a0212760e01b8152600490fd5b61124590610ac2565b9261111b565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec8000083136110f7565b50600090565b9061129090611379565b633b9aca0090818102918183041490151715610ab0576101fa9161132d565b8181029181830414901517600116156101da576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101da57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101da570490565b8181029181830414901517600116156101da57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517600116156101da57671bc16d674ec80000900490565b60b581600160881b811015611420575b80690100000000000000000062010000921015611413575b65010000000000811015611406575b63010000008110156113f9575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916113bd565b60201c9160101b916113b0565b60401c9160201b916113a1565b5068b500000000000000009050608082901c611389565b1561143e57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642849061149b60008213611437565b711340daa0d5f769dba1915cef59f0815a55066114b782611a5f565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b801561172357675698eef06670000081121561128057675698eef0666fffff1981131561171657600061170661164583611ad1565b6116ce61120061165f61165a6111868561134e565b61195b565b92610e0a6117016116fc6116f56116ef6116ea6116e46116df6116d96116d48d6116ce6116c96116c36116be6111806116b96116b36116ae6116a86116a38a611a34565b610cab565b89611a13565b610cc5565b87611a13565b610cdd565b610cf7565b83611a13565b610d0f565b90611a13565b610d29565b8c611a13565b610d41565b8a611a13565b610d59565b88611a13565b9380611a13565b611092565b610ae5565b9112156101fa576101fa90610ac2565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b680248ce36a70cb26b3e1981131561128057680755bf798b4a1bf1e5811215611880576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be889080820291820514600116156101da57670de0b6b3a7640000900590565b670de0b6b3a7640000908181029181830514901517600116156101da57671bc16d674ec80000900590565b6703c1665c7aab2000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b669f32752462a000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b600181151516156101da576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a764000090818102918183051490151782151516156101da570590565b671bc16d674ec7ffff198181029160019183051416156101da57670de0b6b3a7640000900590565b6709d028cc6f205fff198181029160019183051416156101da57670de0b6b3a7640000900590565b670fa8cedfc2adddfa9080820291820514600116156101da57670de0b6b3a7640000900590565b8181029181830514901517600116156101da57670de0b6b3a7640000900590565b67025f0fe105a31400908181029181830514901517600116156101da57670de0b6b3a7640000900590565b611a6a811515611437565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b600160ff1b8114611aec5760008112156101fa571960010190565b604051634d2d75b160e01b8152600490fdfea2646970667358221220b596d744fe988e0f66eb3212b01d8a9e660acea43730ff108a9b5edd5f05d2b364736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a2646970667358221220f64f11a9bfe9a45db41c08f1dbdb7b7b4478f983a7cee980b34aa3fb84ed081564736f6c63430008160033","sourceMap":"88:1655:76:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;709:579:79;;:::i;:::-;88:1655:76;;785:32:79;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;776:41;88:1655:76;;-1:-1:-1;;;;;;88:1655:76;-1:-1:-1;;;;;88:1655:76;;;;;;;;;;;836:32:79;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;827:41;88:1655:76;;-1:-1:-1;;;;;;88:1655:76;-1:-1:-1;;;;;88:1655:76;;;;;;776:41:79;88:1655:76;878:11:79;;88:1655:76;;-1:-1:-1;;;;;88:1655:76;;;878:11:79;:34;;;;;88:1655:76;;-1:-1:-1;;;878:34:79;;;898:4;88:1655:76;878:34:79;;88:1655:76;905:6:79;88:1655:76;;;;;;;;;;;;;;;878:34:79;;;;;;;;88:1655:76;-1:-1:-1;827:41:79;88:1655:76;;;922:11:79;;-1:-1:-1;;;;;88:1655:76;;;922:11:79;:34;;;;;;88:1655:76;;922:34:79;;;898:4;88:1655:76;922:34:79;;88:1655:76;905:6:79;88:1655:76;;;;;;;;;;;898:4:79;;922:34;;;;;;;;88:1655:76;-1:-1:-1;776:41:79;88:1655:76;981:15:79;;-1:-1:-1;;;;;88:1655:76;;;981:15:79;827:41;88:1655:76;998:15:79;;-1:-1:-1;;;;;88:1655:76;;;998:15:79;88:1655:76;;;973:46:79;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:1655:76;;;;;;;378:4:31;;;88:1655:76;378:4:31;;;;88:1655:76;378:4:31;;;;973:46:79;;;;;;;;;967:52;88:1655:76;;-1:-1:-1;;;;;;88:1655:76;-1:-1:-1;;;;;88:1655:76;;;;;;;;;;;1036:20:79;;;;;;;;;;;;;;;;;;;;;88:1655:76;;;;;;;1036:20:79;;;;;;;;;1029:27;88:1655:76;;-1:-1:-1;;;;;;88:1655:76;-1:-1:-1;;;;;88:1655:76;;;;;;;;;1092:13:79;;378:4:31;88:1655:76;1092:13:79;88:1655:76;;1078:28:79;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:1655:76;;;;;;;;;1078:28:79;;;;;;;;;1066:40;88:1655:76;;-1:-1:-1;;;;;;88:1655:76;-1:-1:-1;;;;;88:1655:76;;;;;;;;;1145:18:79;;378:4:31;88:1655:76;1145:18:79;88:1655:76;;;1125:39:79;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:1655:76;;;;;;;;;1125:39:79;;;;;;;;;;1116:48;1175;1116;785:32;88:1655:76;;;;;;;;1116:48:79;88:1655:76;;;1116:48:79;88:1655:76;;1116:48:79;776:41;88:1655:76;1175:14:79;;-1:-1:-1;;;;;88:1655:76;;;1175:14:79;1029:27;378:4:31;1190:13:79;;-1:-1:-1;;;;;88:1655:76;378:4:31;88:1655:76;1190:13:79;88:1655:76;;-1:-1:-1;;;1175:48:79;;;-1:-1:-1;;;;;88:1655:76;;;;1175:48:79;;88:1655:76;-1:-1:-1;;378:4:31;;;88:1655:76;1175:48:79;;88:1655:76;;;;1175:48:79;;88:1655:76;;1175:48:79;88:1655:76;;1175:48:79;;88:1655:76;;378:4:31;;;;;1175:48:79;;;;;;;;;;1233;1175;;;;;88:1655:76;-1:-1:-1;827:41:79;88:1655:76;1233:14:79;;-1:-1:-1;;;;;88:1655:76;;;1233:14:79;1029:27;378:4:31;;;;;;1248:13:79;;-1:-1:-1;;;;;88:1655:76;378:4:31;88:1655:76;1248:13:79;88:1655:76;;1233:48:79;;;-1:-1:-1;;;;;88:1655:76;;;;1233:48:79;;88:1655:76;-1:-1:-1;;378:4:31;;;88:1655:76;;;;;;;;378:4:31;;;;;1233:48:79;;;;;;;;;;;88:1655:76;;;1233:48:79;;;;;;-1:-1:-1;1233:48:79;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;88:1655:76;;;1233:48:79;;;;;;;:::i;1175:::-;;;;;;;;;;;;;:::i;:::-;;;;;1125:39;;:::i;922:34::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;88:1655:76;;;878:34:79;;;;;;:::i;:::-;;;;;88:1655:76;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;1320:10:79;;;;;88:1655:76;;-1:-1:-1;;;1320:10:79;;88:1655:76;;1320:10:79;;88:1655:76;;;;;;;;;;;;1320:10:79;;;;;;;;88:1655:76;-1:-1:-1;1434:9:79;378:4:31;;;1057:14:1;;1597:28:79;;1426:18;;-1:-1:-1;;;;;88:1655:76;378:4:31;88:1655:76;1426:18:79;1474:6;88:1655:76;1385:186:79;;1466:15;;-1:-1:-1;;;;;88:1655:76;;;1466:15:79;1511:6;88:1655:76;1385:186:79;;1503:15;;-1:-1:-1;;;;;88:1655:76;;;1503:15:79;1057:14:1;1385:186:79;1057:14:1;;:::i;:::-;-1:-1:-1;;;;;88:1655:76;;;1057:14:1;;;1385:186:79;-1:-1:-1;;;;;88:1655:76;1385:186:79;;;1057:14:1;;1385:186:79;-1:-1:-1;;;;;88:1655:76;;1385:186:79;;1057:14:1;;1385:186:79;1057:14:1;;:::i;:::-;1385:186:79;;;1057:14:1;1597:4:79;378::31;1597:9:79;;-1:-1:-1;;;;;88:1655:76;378:4:31;88:1655:76;1597:9:79;88:1655:76;;;;;;;;;;;;1597:28:79;;88:1655:76;1597:28:79;;;:::i;:::-;;;;;;;;;1582:43;1597:28;;;;;88:1655:76;1582:43:79;;1057:14:1;;1582:43:79;1636:1;;:::i;:::-;88:1655:76;;1597:28:79;;;;1057:14:1;1597:28:79;1057:14:1;1597:28:79;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;1320:10;;;;;;:::i;:::-;;;;88:1655:76;;;;;;;;;-1:-1:-1;;88:1655:76;;;;;;;378:11:59;88:1655:76;;;;;;;;;;;;;;;;;1320:10:79;;;;;88:1655:76;;-1:-1:-1;;;1320:10:79;;88:1655:76;;1320:10:79;;88:1655:76;;;;;;;;;;;;1320:10:79;;;;;;;;88:1655:76;-1:-1:-1;1434:9:79;378:4:31;;;1057:14:1;;1597:28:79;;1426:18;;-1:-1:-1;;;;;88:1655:76;378:4:31;88:1655:76;1597:28:79;;;;;;;;;1582:43;1597:28;;;;;1582:43;;1057:14:1;;1582:43:79;1636:1;;:::i;1320:10::-;;;;;;:::i;:::-;;;;88:1655:76;;;;;;-1:-1:-1;;88:1655:76;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;88:1655:76;;;;;291:22:79;88:1655:76;;;;;;;;;;;;;-1:-1:-1;;88:1655:76;;;;992:4:59;378::31;88:1655:76;;-1:-1:-1;;;992:20:59;;88:1655:76;;;992:20:59;;;88:1655:76;;;;;;;;;;-1:-1:-1;;;;;88:1655:76;992:20:59;;;;;;;-1:-1:-1;992:20:59;;;88:1655:76;1029:19:59;;;88:1655:76;;;-1:-1:-1;;;;;88:1655:76;;;;-1:-1:-1;;;;;88:1655:76;;;;;;;;;;;;;;;;;992:20:59;;;88:1655:76;992:20:59;;88:1655:76;992:20:59;;;;;;88:1655:76;992:20:59;;;:::i;:::-;;;88:1655:76;;;;;1029:19:59;88:1655:76;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;992:20:59;;;;;;;;-1:-1:-1;992:20:59;;88:1655:76;;;;;;-1:-1:-1;;88:1655:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;1057:14:1;88:1655:76;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;88:1655:76;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;88:1655:76;;;;;;;;;;;;;;-1:-1:-1;;;88:1655:76;;;;814:2:79;88:1655:76;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;88:1655:76;;;;;;;;;;;;;;-1:-1:-1;;;88:1655:76;;;;814:2:79;88:1655:76;;;;;;;:::o;378:4:31:-;;;;;;;;;;88:1655:76;;;378:4:31;;;;;:::o;1057:14:1:-;88:1655:76;;1057:14:1;-1:-1:-1;1538:22:79;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;88:1655:76;;;;;1057:14:1;88:1655:76;;;;1057:14:1;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;1538:22:79;1057:14:1;;;;;;;-1:-1:-1;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1057:14:1;;;;;;88:1655:76;1057:14:1;;;;;;;;;;;;;;;;;;88:1655:76;;1057:14:1;;;;88:1655:76;1057:14:1;;;;;88:1655:76;1057:14:1;;88:1655:76;1057:14:1;:::o;:::-;;;;;;;;-1:-1:-1;;1057:14:1;;;;:::o;:::-;;;;;;;;;;;;;;;88:1655:76;1057:14:1;;88:1655:76;;;;;;;;;;;1057:14:1;;;:::i;:::-;88:1655:76;;-1:-1:-1;;88:1655:76;1057:14:1;;;:::o;:::-;;;;;;;;785:32:79;88:1655:76;;;;1057:14:1;;;88:1655:76;1057:14:1;;;88:1655:76;1057:14:1;;;;;88:1655:76;1057:14:1;;;88:1655:76;1057:14:1;;;;88:1655:76;1057:14:1;;;88:1655:76;1057:14:1;;;;;;;;;;;:::i;:::-;;:::o;88:1655:76:-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::o;945:796::-;1122:6;88:1655;1122:21;;-1:-1:-1;;;;;88:1655:76;;;1122:21;1144:7;88:1655;;;;-1:-1:-1;;;1122:39:76;;;;;;88:1655;;;1027:9;88:1655;;;;;;;;1122:39;;;;88:1655;;;;;;;1122:39;;;;;;;;;-1:-1:-1;;;;;1122:39:76;;;945:796;-1:-1:-1;1202:4:76;378::31;1202:16:76;;-1:-1:-1;;;;;88:1655:76;378:4:31;88:1655:76;1202:16;88:1655;;-1:-1:-1;;;1202:40:76;;;1227:4;1202:40;;;88:1655;;;1202:40;378:4:31;;;88:1655:76;;;1202:40;88:1655;;;;;;1227:4;1202:40;;88:1655;;;;378:4:31;;1202:40:76;;;;;;;;;;-1:-1:-1;1202:40:76;;;945:796;88:1655;;;;;;1285:37;;;;;;;;;;;;88:1655;;;;;;;;1285:37;;;;;;;;;;;;;-1:-1:-1;1285:37:76;;;945:796;-1:-1:-1;88:1655:76;;1353:46;;;88:1655;;;;;;;;;;;1409:28;;88:1655;;;;;1353:46;;88:1655;;;;1353:46;88:1655;;1353:46;;;;;;:::i;:::-;-1:-1:-1;88:1655:76;;;;;;;;;;;1409:28;;;;;;:::i;:::-;;;;;;;;;;;945:796;-1:-1:-1;1202:4:76;378::31;1482:28:76;;-1:-1:-1;;;;;88:1655:76;378:4:31;88:1655:76;1482:28;88:1655;1144:7;88:1655;;;;1482:37;;;;;;;;;;;88:1655;;;;;;;;1482:37;;;;;;;;;;;1684:40;1482:37;;;1629:41;1482:37;1559:38;1482:37;-1:-1:-1;1482:37:76;;;945:796;1559:38;;;:::i;:::-;1629:41;;:::i;:::-;88:1655;;1684:40;;;1227:4;1684:40;;;88:1655;;;378:4:31;;;88:1655:76;;;;;;;;;;;;378:4:31;;;;1684:40:76;;;;;;;;;;;;-1:-1:-1;1684:40:76;;;945:796;1684:40;;;:::i;:::-;;;;;;;-1:-1:-1;1684:40:76;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;1482:37;;;;;;-1:-1:-1;1482:37:76;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;1409:28;;;;;;;;;;;;;:::i;:::-;;;;;1285:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1202:40;;;;;;;;;;;;;;;:::i;:::-;;;;;1122:39;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;143:796;320:6;88:1655;320:21;;-1:-1:-1;;;;;88:1655:76;;;320:21;342:7;88:1655;;;;-1:-1:-1;;;320:39:76;;;;;;88:1655;;;1027:9;88:1655;;;;;;;;320:39;;;;88:1655;;;;;;;320:39;88:1655;1671:64:0;;;;;;;;;;88:1655:76;;1671:64:0;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;88:1655:76;;;;;;;-1:-1:-1;;88:1655:76;1671:64:0;;88:1655:76;;:::i;:::-;1671:64:0;;;-1:-1:-1;1671:64:0;;;;:::o;:::-;;;:::o;1819:584::-;1873:7;88:1655:76;;;;;;1873:7:0;;;88:1655:76;;;;;1057:14:1;:::o;1869:528:0:-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;88:1655:76;;;;;2196:43:0;;;;;;1671:64;;;;88:1655:76;;;;1671:64:0;;;;;;88:1655:76;1671:64:0;2196:43;;;88:1655:76;;2196:43:0;;;;;;;;:::i;:::-;2086:175;88:1655:76;;2086:175:0;;;2196:43;2086:175;;;;;:::i;:::-;;;;;;;;;:::i;:::-;2047:232;;;;;2312:27;2047:232;;:::i;:::-;2196:43;88:1655:76;;;2312:27:0;;;;;;:::i;396:450:59:-;88:1655:76;;;447:32:59;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;776:41:79;88:1655:76;;-1:-1:-1;;;;;;88:1655:76;-1:-1:-1;;;;;88:1655:76;;;;;;;;;;;498:32:59;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;827:41:79;88:1655:76;;-1:-1:-1;;;;;;88:1655:76;-1:-1:-1;;;;;88:1655:76;;;;;;438:41:59;88:1655:76;540:11:59;;88:1655:76;;;540:11:59;:34;;;;;88:1655:76;;-1:-1:-1;;;540:34:59;;;560:4;540:34;;;88:1655:76;905:6:79;88:1655:76;;;;;;;;;;;;;;;540:34:59;;;;;;;;396:450;-1:-1:-1;489:41:59;88:1655:76;584:11:59;;-1:-1:-1;;;;;88:1655:76;;;584:11:59;:34;;;;;;88:1655:76;;584:34:59;;;560:4;540:34;584;;88:1655:76;905:6:79;88:1655:76;;;;;;;;;;;;;;;584:34:59;;;;;;;;396:450;-1:-1:-1;438:41:59;88:1655:76;643:15:59;;-1:-1:-1;;;;;88:1655:76;;;643:15:59;489:41;88:1655:76;660:15:59;;-1:-1:-1;;;;;88:1655:76;;;660:15:59;88:1655:76;;;635:50:59;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:1655:76;;;;;;;378:4:31;;;88:1655:76;378:4:31;;;;88:1655:76;378:4:31;;;;635:50:59;;;;;;;;;967:52:79;88:1655:76;;-1:-1:-1;;;;;;88:1655:76;-1:-1:-1;;;;;88:1655:76;;;;;;;;;;;;702:20:59;;;;;;;;;;;;;;;;;;;;88:1655:76;;;;;;;702:20:59;;;;;;;;;;695:27;733:48;695:27;785:32:79;88:1655:76;;;;;;;;1029:27:79;88:1655:76;;;1029:27:79;88:1655:76;;695:27:59;438:41;88:1655:76;733:14:59;;-1:-1:-1;;;;;88:1655:76;;;733:14:59;695:27;378:4:31;;;;748:13:59;;-1:-1:-1;;;;;88:1655:76;378:4:31;88:1655:76;748:13:59;88:1655:76;;-1:-1:-1;;;733:48:59;;;-1:-1:-1;;;;;88:1655:76;;;540:34:59;733:48;;88:1655:76;-1:-1:-1;;378:4:31;;;88:1655:76;733:48:59;;88:1655:76;;;;733:48:59;;88:1655:76;;733:48:59;88:1655:76;;;;;;378:4:31;;;;;733:48:59;;;;;;;;;;791;733;;;;;396:450;-1:-1:-1;489:41:59;88:1655:76;791:14:59;;-1:-1:-1;;;;;88:1655:76;;;791:14:59;695:27;378:4:31;;;;806:13:59;;-1:-1:-1;;;;;88:1655:76;378:4:31;88:1655:76;791:48:59;;;;;;;;;;;396:450;;:::o;791:48::-;;;;;;-1:-1:-1;791:48:59;;;;;;:::i;:::-;;396:450::o;733:48::-;;;;;;;;;;;;;:::i;:::-;;;;;584:34;;;;;;:::i;:::-;;;;540;;;;;;:::i;:::-;;;;;88:1655:76;;;5202:262:0;;5259:6;;;5255:203;;5202:262;;:::o;5255:203::-;88:1655:76;;;;;;;5286:41:0;88:1655:76;;;;;;;;;;;;;;;;-1:-1:-1;;;88:1655:76;;;;5286:41:0;88:1655:76;;;;;;;;;;;-1:-1:-1;;;88:1655:76;;;;;;;;5346:31:0;;;;;88:1655:76;;;;;;;;;;;-1:-1:-1;;;88:1655:76;;;;;;;;5396:31:0;2939:104;;;2445:359;;5255:203;88:1655:76;;;;;;2928:1:0;88:1655:76;;;2928:1:0;88:1655:76;5202:262:0:o;2445:359::-;88:1655:76;-1:-1:-1;1671:64:0;2534:196;1671:64;88:1655:76;;;;;;2645:67:0;;;;88:1655:76;;;;1671:64:0;;;88:1655:76;;;;2705:4:0;88:1655:76;;;;;2645:67:0;;;;;:::i;:::-;88:1655:76;2534:196:0;;;;;1671:64;;;;;;88:1655:76;1671:64:0;;;;;;;:::i;:::-;;;2534:196;1671:64;2534:196;;;;;;;:::i;:::-;2499:245;;;;;;;:::i;:::-;;2445:359;;;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","POOL_ID()":"e0d7d0e9","TEST_SWAP_FEE()":"620a2607","failed()":"ba414fa6","getPoolLiquidityToken(uint256)":"e21485ad","setUp()":"0a9254e4","test_LogNormal_allocate_GivenX()":"9f8be6b8","test_LogNormal_allocate_GivenY()":"4bce9b62"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"upper\",\"type\":\"uint256\"}],\"name\":\"BisectionLib_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"lowerResult\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"upperResult\",\"type\":\"int256\"}],\"name\":\"BisectionLib_RootOutsideBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Infinity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Min\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NegativeInfinity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfBounds\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POOL_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_SWAP_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolLiquidityToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_LogNormal_allocate_GivenX\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_LogNormal_allocate_GivenY\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"BisectionLib_InvalidBounds(uint256,uint256)\":[{\"details\":\"Thrown when the lower bound is greater than the upper bound.\"}],\"BisectionLib_RootOutsideBounds(int256,int256)\":[{\"details\":\"Thrown when the result of the function `fx` for each input, `upper` and `lower`, is the same sign.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/unit/strategies/LogNormal/Allocate.t.sol\":\"LogNormalAllocateTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/lib/SignedWadMath.sol\":{\"keccak256\":\"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a\",\"dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/solvers/LogNormal/LogNormalExtendedLib.sol\":{\"keccak256\":\"0x204015cfa704225710b310e02fd4ea4648617f580cbb08fb22306357969e4a63\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0b2df304ee8a88040b573201316e12756e74c042fddbb4ec25d23ecd34971768\",\"dweb:/ipfs/QmaC4vUQY6UAD6UrEF3rvMLyYbtQKuF9Bbgr3aqkGMzSqF\"]},\"src/solvers/LogNormal/LogNormalSolver.sol\":{\"keccak256\":\"0xe97dbbad3eb6aadeaaa7c9ad82cf08a79006ad3058e6dcbc2576e17d6337cc1d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://22e41f296c3675c79ba6a670d081e073cdb935fd44f8e739a88a250be0766004\",\"dweb:/ipfs/QmZMYJq14i3q2zKTerD836DXC9deux4EggR3BNp61J4t2U\"]},\"src/strategies/LogNormal/LogNormal.sol\":{\"keccak256\":\"0xce0e14a6180d989eff4223bd173904717c745f93c7d02e972dce9d4f5a414d15\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0fe700ac552153eb030453532afdf52d7ae1b7f8ca53b0f050ab9a9e0b1f0ee9\",\"dweb:/ipfs/QmPQW7F1wUqLKs2qPmvJq5EiBfUmPGGsW4y9dUmMtDkfnt\"]},\"src/strategies/LogNormal/LogNormalLib.sol\":{\"keccak256\":\"0x208f8cd3b02d7305d4c54cf02c07f443ddfed1c6c719e752888be208c3ad3645\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://850b799c647dfbece76c7c1daad3ac375243f66daa0eb8206eeeee783982429c\",\"dweb:/ipfs/QmUrixVb4EAxccZxvZCoAJjF8YRqnMbX6cpGCwPfjZvgQk\"]},\"src/strategies/LogNormal/LogNormalMath.sol\":{\"keccak256\":\"0x5d97983f91cf766e1e87ef244a39c6ec6961de38c4c8817030b32edd72a1e65f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://df6121bf8157bad9b659d484fdcc8ebf0cd41179b323d06225d1cf6bff266663\",\"dweb:/ipfs/QmRGN6MwWZb9f6X4Xqv7f3VpUFWXFb36jDKcyEQVaFUhhz\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]},\"src/test/helpers/MockStrategy.sol\":{\"keccak256\":\"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5\",\"dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw\"]},\"src/test/helpers/SetUp.sol\":{\"keccak256\":\"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30\",\"dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14\"]},\"src/test/unit/DFMM/SetUp.sol\":{\"keccak256\":\"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4\",\"dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm\"]},\"src/test/unit/strategies/LogNormal/Allocate.t.sol\":{\"keccak256\":\"0x6e99a05221172dc7f356bdc3f967c077688833cee3bf1922fd9b196a23ec7fe1\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9a101ced60d39ff2e7f535ecf0f2f55f5a62a8e8a4ab277e74dbe4e81ef6f70e\",\"dweb:/ipfs/QmbqZ835v8RUhyH12nK5jzworwwaBdRU7gaQE94QaRrmn6\"]},\"src/test/unit/strategies/LogNormal/SetUp.sol\":{\"keccak256\":\"0x272206974452b0c363a55f2658a4c24e6355f5a06fe817532c723af8f732540d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://87550594bcc0d4b66eada3e1692ac1b15064eefee9cbb356ff8c4410f4a51e78\",\"dweb:/ipfs/QmS3HCkpwfti4ifTitYoR5sRLb8ShMDvkW9ST9Ta8cUvu5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"lower","type":"uint256"},{"internalType":"uint256","name":"upper","type":"uint256"}],"type":"error","name":"BisectionLib_InvalidBounds"},{"inputs":[{"internalType":"int256","name":"lowerResult","type":"int256"},{"internalType":"int256","name":"upperResult","type":"int256"}],"type":"error","name":"BisectionLib_RootOutsideBounds"},{"inputs":[],"type":"error","name":"Infinity"},{"inputs":[],"type":"error","name":"Min"},{"inputs":[],"type":"error","name":"NegativeInfinity"},{"inputs":[],"type":"error","name":"OutOfBounds"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"POOL_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_SWAP_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolLiquidityToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_LogNormal_allocate_GivenX"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_LogNormal_allocate_GivenY"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/unit/strategies/LogNormal/Allocate.t.sol":"LogNormalAllocateTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/lib/SignedWadMath.sol":{"keccak256":"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630","urls":["bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a","dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN"],"license":"MIT"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/solvers/LogNormal/LogNormalExtendedLib.sol":{"keccak256":"0x204015cfa704225710b310e02fd4ea4648617f580cbb08fb22306357969e4a63","urls":["bzz-raw://0b2df304ee8a88040b573201316e12756e74c042fddbb4ec25d23ecd34971768","dweb:/ipfs/QmaC4vUQY6UAD6UrEF3rvMLyYbtQKuF9Bbgr3aqkGMzSqF"],"license":"GPL-3.0-or-later"},"src/solvers/LogNormal/LogNormalSolver.sol":{"keccak256":"0xe97dbbad3eb6aadeaaa7c9ad82cf08a79006ad3058e6dcbc2576e17d6337cc1d","urls":["bzz-raw://22e41f296c3675c79ba6a670d081e073cdb935fd44f8e739a88a250be0766004","dweb:/ipfs/QmZMYJq14i3q2zKTerD836DXC9deux4EggR3BNp61J4t2U"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormal.sol":{"keccak256":"0xce0e14a6180d989eff4223bd173904717c745f93c7d02e972dce9d4f5a414d15","urls":["bzz-raw://0fe700ac552153eb030453532afdf52d7ae1b7f8ca53b0f050ab9a9e0b1f0ee9","dweb:/ipfs/QmPQW7F1wUqLKs2qPmvJq5EiBfUmPGGsW4y9dUmMtDkfnt"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormalLib.sol":{"keccak256":"0x208f8cd3b02d7305d4c54cf02c07f443ddfed1c6c719e752888be208c3ad3645","urls":["bzz-raw://850b799c647dfbece76c7c1daad3ac375243f66daa0eb8206eeeee783982429c","dweb:/ipfs/QmUrixVb4EAxccZxvZCoAJjF8YRqnMbX6cpGCwPfjZvgQk"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormalMath.sol":{"keccak256":"0x5d97983f91cf766e1e87ef244a39c6ec6961de38c4c8817030b32edd72a1e65f","urls":["bzz-raw://df6121bf8157bad9b659d484fdcc8ebf0cd41179b323d06225d1cf6bff266663","dweb:/ipfs/QmRGN6MwWZb9f6X4Xqv7f3VpUFWXFb36jDKcyEQVaFUhhz"],"license":"GPL-3.0-or-later"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"},"src/test/helpers/MockStrategy.sol":{"keccak256":"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a","urls":["bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5","dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw"],"license":"UNLICENSED"},"src/test/helpers/SetUp.sol":{"keccak256":"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb","urls":["bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30","dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14"],"license":"UNLICENSED"},"src/test/unit/DFMM/SetUp.sol":{"keccak256":"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a","urls":["bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4","dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm"],"license":"UNLICENSED"},"src/test/unit/strategies/LogNormal/Allocate.t.sol":{"keccak256":"0x6e99a05221172dc7f356bdc3f967c077688833cee3bf1922fd9b196a23ec7fe1","urls":["bzz-raw://9a101ced60d39ff2e7f535ecf0f2f55f5a62a8e8a4ab277e74dbe4e81ef6f70e","dweb:/ipfs/QmbqZ835v8RUhyH12nK5jzworwwaBdRU7gaQE94QaRrmn6"],"license":"UNLICENSED"},"src/test/unit/strategies/LogNormal/SetUp.sol":{"keccak256":"0x272206974452b0c363a55f2658a4c24e6355f5a06fe817532c723af8f732540d","urls":["bzz-raw://87550594bcc0d4b66eada3e1692ac1b15064eefee9cbb356ff8c4410f4a51e78","dweb:/ipfs/QmS3HCkpwfti4ifTitYoR5sRLb8ShMDvkW9ST9Ta8cUvu5"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/unit/strategies/LogNormal/Allocate.t.sol","id":48026,"exportedSymbols":{"ArbiterToken":[43381],"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"DFMM":[29062],"DFMMSetUp":[45761],"DSTest":[1786],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"LPToken":[29516],"Lex":[44392],"LibString":[26659],"LogNormal":[38879],"LogNormalAllocateTest":[48025],"LogNormalLib":[39517],"LogNormalSetUp":[48576],"LogNormalSolver":[36460],"MAX_ITER":[33842],"Min":[27736],"MockERC20":[25560],"MockStrategy":[44649],"ONE":[30639],"SQRT_WAD":[30630],"SafeTransferLib":[26744],"SetUp":[44852],"SignedWadMathLib":[30623],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"TWO":[30633],"Test":[8195],"TestBase":[1843],"Vm":[9352],"WETH":[26027],"ZERO":[30649],"abs":[27763],"bisection":[31118],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeD1":[34040],"computeD2":[34104],"computeHalfSigmaTauSquared":[39613],"computeInitialPoolData":[34282],"computeLGivenX":[33886],"computeLnSDivK":[39549],"computeNextLiquidity":[34383],"computeNextRx":[34484],"computeNextRy":[34585],"computeOptimalLower":[35332],"computeOptimalRaise":[35398],"computeScalingFactor":[30048],"computeSigmaSqrtTau":[39577],"computeXGivenL":[33976],"computeYGivenL":[33932],"console":[17416],"console2":[25512],"diffLower":[34961],"diffRaise":[35266],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"findRootLiquidity":[34224],"findRootLower":[34631],"findRootRaise":[34677],"findRootX":[34184],"findRootY":[34144],"muli":[27777],"muliWad":[27795],"mulidiv":[39703],"mulidivUp":[39659],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"39:1705:76","nodes":[{"id":47855,"nodeType":"PragmaDirective","src":"39:24:76","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":47856,"nodeType":"ImportDirective","src":"65:21:76","nodes":[],"absolutePath":"src/test/unit/strategies/LogNormal/SetUp.sol","file":"./SetUp.sol","nameLocation":"-1:-1:-1","scope":48026,"sourceUnit":48577,"symbolAliases":[],"unitAlias":""},{"id":48025,"nodeType":"ContractDefinition","src":"88:1655:76","nodes":[{"id":47941,"nodeType":"FunctionDefinition","src":"143:796:76","nodes":[],"body":{"id":47940,"nodeType":"Block","src":"197:742:76","nodes":[],"statements":[{"assignments":[47864],"declarations":[{"constant":false,"id":47864,"mutability":"mutable","name":"amountX","nameLocation":"215:7:76","nodeType":"VariableDeclaration","scope":47940,"src":"207:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47863,"name":"uint256","nodeType":"ElementaryTypeName","src":"207:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47866,"initialValue":{"hexValue":"302e31","id":47865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"225:9:76","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"207:27:76"},{"assignments":[47868,47870,47872],"declarations":[{"constant":false,"id":47868,"mutability":"mutable","name":"reserveX","nameLocation":"254:8:76","nodeType":"VariableDeclaration","scope":47940,"src":"246:16:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47867,"name":"uint256","nodeType":"ElementaryTypeName","src":"246:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47870,"mutability":"mutable","name":"reserveY","nameLocation":"272:8:76","nodeType":"VariableDeclaration","scope":47940,"src":"264:16:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47869,"name":"uint256","nodeType":"ElementaryTypeName","src":"264:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47872,"mutability":"mutable","name":"deltaLiquidity","nameLocation":"290:14:76","nodeType":"VariableDeclaration","scope":47940,"src":"282:22:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47871,"name":"uint256","nodeType":"ElementaryTypeName","src":"282:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47878,"initialValue":{"arguments":[{"id":47875,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"342:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47876,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47864,"src":"351:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47873,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48318,"src":"320:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":47874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"327:14:76","memberName":"allocateGivenX","nodeType":"MemberAccess","referencedDeclaration":35631,"src":"320:21:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) view external returns (uint256,uint256,uint256)"}},"id":47877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"320:39:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"245:114:76"},{"assignments":[47880],"declarations":[{"constant":false,"id":47880,"mutability":"mutable","name":"preLiquidityBalance","nameLocation":"378:19:76","nodeType":"VariableDeclaration","scope":47940,"src":"370:27:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47879,"name":"uint256","nodeType":"ElementaryTypeName","src":"370:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47889,"initialValue":{"arguments":[{"arguments":[{"id":47885,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"425:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalAllocateTest_$48025","typeString":"contract LogNormalAllocateTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormalAllocateTest_$48025","typeString":"contract LogNormalAllocateTest"}],"id":47884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"417:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47883,"name":"address","nodeType":"ElementaryTypeName","src":"417:7:76","typeDescriptions":{}}},"id":47886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"417:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47887,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"432:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47881,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"400:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":47882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"405:11:76","memberName":"liquidityOf","nodeType":"MemberAccess","referencedDeclaration":29061,"src":"400:16:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":47888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"400:40:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"370:70:76"},{"assignments":[null,null,47891],"declarations":[null,null,{"constant":false,"id":47891,"mutability":"mutable","name":"preTotalLiquidity","nameLocation":"462:17:76","nodeType":"VariableDeclaration","scope":47940,"src":"454:25:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47890,"name":"uint256","nodeType":"ElementaryTypeName","src":"454:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47896,"initialValue":{"arguments":[{"id":47894,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"512:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47892,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"483:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":47893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"488:23:76","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29012,"src":"483:28:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":47895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"483:37:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"450:70:76"},{"assignments":[47898],"declarations":[{"constant":false,"id":47898,"mutability":"mutable","name":"data","nameLocation":"544:4:76","nodeType":"VariableDeclaration","scope":47940,"src":"531:17:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47897,"name":"bytes","nodeType":"ElementaryTypeName","src":"531:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":47905,"initialValue":{"arguments":[{"id":47901,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47868,"src":"562:8:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47902,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47870,"src":"572:8:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47903,"name":"deltaLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47872,"src":"582:14:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47899,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"551:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"555:6:76","memberName":"encode","nodeType":"MemberAccess","src":"551:10:76","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":47904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"551:46:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"531:66:76"},{"expression":{"arguments":[{"id":47909,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"621:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47910,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47898,"src":"630:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":47906,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"607:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":47908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"612:8:76","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":28225,"src":"607:13:76","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) payable external returns (uint256,uint256,uint256)"}},"id":47911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"607:28:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"id":47912,"nodeType":"ExpressionStatement","src":"607:28:76"},{"assignments":[null,null,47914],"declarations":[null,null,{"constant":false,"id":47914,"mutability":"mutable","name":"postTotalLiquidity","nameLocation":"658:18:76","nodeType":"VariableDeclaration","scope":47940,"src":"650:26:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47913,"name":"uint256","nodeType":"ElementaryTypeName","src":"650:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47919,"initialValue":{"arguments":[{"id":47917,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"709:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47915,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"680:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":47916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"685:23:76","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29012,"src":"680:28:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":47918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"680:37:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"646:71:76"},{"assignments":[47921],"declarations":[{"constant":false,"id":47921,"mutability":"mutable","name":"deltaTotalLiquidity","nameLocation":"735:19:76","nodeType":"VariableDeclaration","scope":47940,"src":"727:27:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47920,"name":"uint256","nodeType":"ElementaryTypeName","src":"727:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47925,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47922,"name":"postTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47914,"src":"757:18:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":47923,"name":"preTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47891,"src":"778:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"757:38:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"727:68:76"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47927,"name":"preLiquidityBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47880,"src":"827:19:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":47928,"name":"deltaTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47921,"src":"849:19:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"827:41:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":47934,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"907:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalAllocateTest_$48025","typeString":"contract LogNormalAllocateTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormalAllocateTest_$48025","typeString":"contract LogNormalAllocateTest"}],"id":47933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"899:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47932,"name":"address","nodeType":"ElementaryTypeName","src":"899:7:76","typeDescriptions":{}}},"id":47935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"899:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47936,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"914:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47930,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"882:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":47931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"887:11:76","memberName":"liquidityOf","nodeType":"MemberAccess","referencedDeclaration":29061,"src":"882:16:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":47937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"882:40:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47926,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"805:8:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":47938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"805:127:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47939,"nodeType":"ExpressionStatement","src":"805:127:76"}]},"functionSelector":"9f8be6b8","implemented":true,"kind":"function","modifiers":[{"id":47861,"kind":"modifierInvocation","modifierName":{"id":47860,"name":"init","nameLocations":["192:4:76"],"nodeType":"IdentifierPath","referencedDeclaration":48514,"src":"192:4:76"},"nodeType":"ModifierInvocation","src":"192:4:76"}],"name":"test_LogNormal_allocate_GivenX","nameLocation":"152:30:76","parameters":{"id":47859,"nodeType":"ParameterList","parameters":[],"src":"182:2:76"},"returnParameters":{"id":47862,"nodeType":"ParameterList","parameters":[],"src":"197:0:76"},"scope":48025,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":48024,"nodeType":"FunctionDefinition","src":"945:796:76","nodes":[],"body":{"id":48023,"nodeType":"Block","src":"999:742:76","nodes":[],"statements":[{"assignments":[47947],"declarations":[{"constant":false,"id":47947,"mutability":"mutable","name":"amountX","nameLocation":"1017:7:76","nodeType":"VariableDeclaration","scope":48023,"src":"1009:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47946,"name":"uint256","nodeType":"ElementaryTypeName","src":"1009:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47949,"initialValue":{"hexValue":"302e31","id":47948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1027:9:76","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"1009:27:76"},{"assignments":[47951,47953,47955],"declarations":[{"constant":false,"id":47951,"mutability":"mutable","name":"reserveX","nameLocation":"1056:8:76","nodeType":"VariableDeclaration","scope":48023,"src":"1048:16:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47950,"name":"uint256","nodeType":"ElementaryTypeName","src":"1048:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47953,"mutability":"mutable","name":"reserveY","nameLocation":"1074:8:76","nodeType":"VariableDeclaration","scope":48023,"src":"1066:16:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47952,"name":"uint256","nodeType":"ElementaryTypeName","src":"1066:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47955,"mutability":"mutable","name":"deltaLiquidity","nameLocation":"1092:14:76","nodeType":"VariableDeclaration","scope":48023,"src":"1084:22:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47954,"name":"uint256","nodeType":"ElementaryTypeName","src":"1084:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47961,"initialValue":{"arguments":[{"id":47958,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"1144:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47959,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47947,"src":"1153:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47956,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48318,"src":"1122:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":47957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1129:14:76","memberName":"allocateGivenY","nodeType":"MemberAccess","referencedDeclaration":35686,"src":"1122:21:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) view external returns (uint256,uint256,uint256)"}},"id":47960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1122:39:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1047:114:76"},{"assignments":[47963],"declarations":[{"constant":false,"id":47963,"mutability":"mutable","name":"preLiquidityBalance","nameLocation":"1180:19:76","nodeType":"VariableDeclaration","scope":48023,"src":"1172:27:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47962,"name":"uint256","nodeType":"ElementaryTypeName","src":"1172:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47972,"initialValue":{"arguments":[{"arguments":[{"id":47968,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1227:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalAllocateTest_$48025","typeString":"contract LogNormalAllocateTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormalAllocateTest_$48025","typeString":"contract LogNormalAllocateTest"}],"id":47967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1219:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47966,"name":"address","nodeType":"ElementaryTypeName","src":"1219:7:76","typeDescriptions":{}}},"id":47969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1219:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47970,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"1234:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47964,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1202:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":47965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1207:11:76","memberName":"liquidityOf","nodeType":"MemberAccess","referencedDeclaration":29061,"src":"1202:16:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":47971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1202:40:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1172:70:76"},{"assignments":[null,null,47974],"declarations":[null,null,{"constant":false,"id":47974,"mutability":"mutable","name":"preTotalLiquidity","nameLocation":"1264:17:76","nodeType":"VariableDeclaration","scope":48023,"src":"1256:25:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47973,"name":"uint256","nodeType":"ElementaryTypeName","src":"1256:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47979,"initialValue":{"arguments":[{"id":47977,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"1314:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47975,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1285:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":47976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1290:23:76","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29012,"src":"1285:28:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":47978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1285:37:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1252:70:76"},{"assignments":[47981],"declarations":[{"constant":false,"id":47981,"mutability":"mutable","name":"data","nameLocation":"1346:4:76","nodeType":"VariableDeclaration","scope":48023,"src":"1333:17:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47980,"name":"bytes","nodeType":"ElementaryTypeName","src":"1333:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":47988,"initialValue":{"arguments":[{"id":47984,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47951,"src":"1364:8:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47985,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47953,"src":"1374:8:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47986,"name":"deltaLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47955,"src":"1384:14:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47982,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1353:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47983,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1357:6:76","memberName":"encode","nodeType":"MemberAccess","src":"1353:10:76","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":47987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1353:46:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1333:66:76"},{"expression":{"arguments":[{"id":47992,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"1423:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47993,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47981,"src":"1432:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":47989,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1409:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":47991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1414:8:76","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":28225,"src":"1409:13:76","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) payable external returns (uint256,uint256,uint256)"}},"id":47994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1409:28:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"id":47995,"nodeType":"ExpressionStatement","src":"1409:28:76"},{"assignments":[null,null,47997],"declarations":[null,null,{"constant":false,"id":47997,"mutability":"mutable","name":"postTotalLiquidity","nameLocation":"1460:18:76","nodeType":"VariableDeclaration","scope":48023,"src":"1452:26:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47996,"name":"uint256","nodeType":"ElementaryTypeName","src":"1452:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48002,"initialValue":{"arguments":[{"id":48000,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"1511:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47998,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1482:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":47999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1487:23:76","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29012,"src":"1482:28:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":48001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:37:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1448:71:76"},{"assignments":[48004],"declarations":[{"constant":false,"id":48004,"mutability":"mutable","name":"deltaTotalLiquidity","nameLocation":"1537:19:76","nodeType":"VariableDeclaration","scope":48023,"src":"1529:27:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48003,"name":"uint256","nodeType":"ElementaryTypeName","src":"1529:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48008,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48005,"name":"postTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47997,"src":"1559:18:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":48006,"name":"preTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47974,"src":"1580:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1559:38:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1529:68:76"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48010,"name":"preLiquidityBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47963,"src":"1629:19:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":48011,"name":"deltaTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48004,"src":"1651:19:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1629:41:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":48017,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1709:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalAllocateTest_$48025","typeString":"contract LogNormalAllocateTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormalAllocateTest_$48025","typeString":"contract LogNormalAllocateTest"}],"id":48016,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1701:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48015,"name":"address","nodeType":"ElementaryTypeName","src":"1701:7:76","typeDescriptions":{}}},"id":48018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1701:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48019,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"1716:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48013,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1684:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":48014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1689:11:76","memberName":"liquidityOf","nodeType":"MemberAccess","referencedDeclaration":29061,"src":"1684:16:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":48020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1684:40:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48009,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"1607:8:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":48021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1607:127:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48022,"nodeType":"ExpressionStatement","src":"1607:127:76"}]},"functionSelector":"4bce9b62","implemented":true,"kind":"function","modifiers":[{"id":47944,"kind":"modifierInvocation","modifierName":{"id":47943,"name":"init","nameLocations":["994:4:76"],"nodeType":"IdentifierPath","referencedDeclaration":48514,"src":"994:4:76"},"nodeType":"ModifierInvocation","src":"994:4:76"}],"name":"test_LogNormal_allocate_GivenY","nameLocation":"954:30:76","parameters":{"id":47942,"nodeType":"ParameterList","parameters":[],"src":"984:2:76"},"returnParameters":{"id":47945,"nodeType":"ParameterList","parameters":[],"src":"999:0:76"},"scope":48025,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":47857,"name":"LogNormalSetUp","nameLocations":["122:14:76"],"nodeType":"IdentifierPath","referencedDeclaration":48576,"src":"122:14:76"},"id":47858,"nodeType":"InheritanceSpecifier","src":"122:14:76"}],"canonicalName":"LogNormalAllocateTest","contractDependencies":[25560,29062,36460,38879,44392],"contractKind":"contract","fullyImplemented":true,"internalFunctionIDs":{"34224":1},"linearizedBaseContracts":[48025,48576,44852,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"LogNormalAllocateTest","nameLocation":"97:21:76","scope":48026,"usedErrors":[26761,26763,26765,27736,30985,30992],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":76} \ No newline at end of file diff --git a/out/ArbMath.sol/ArbMath.json b/out/ArbMath.sol/ArbMath.json deleted file mode 100644 index 22715887..00000000 --- a/out/ArbMath.sol/ArbMath.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cdf","inputs":[{"name":"input","type":"int256","internalType":"int256"}],"outputs":[{"name":"output","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"divWadDown","inputs":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"z","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"divWadUp","inputs":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"z","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"log","inputs":[{"name":"x","type":"int256","internalType":"int256"}],"outputs":[{"name":"z","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"mulWadDown","inputs":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"z","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"mulWadUp","inputs":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"z","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"pdf","inputs":[{"name":"input","type":"int256","internalType":"int256"}],"outputs":[{"name":"output","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"pow","inputs":[{"name":"x","type":"int256","internalType":"int256"},{"name":"y","type":"int256","internalType":"int256"}],"outputs":[{"name":"z","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"ppf","inputs":[{"name":"input","type":"int256","internalType":"int256"}],"outputs":[{"name":"output","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"sqrt","inputs":[{"name":"x","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"z","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"error","name":"Infinity","inputs":[]},{"type":"error","name":"Min","inputs":[]},{"type":"error","name":"NegativeInfinity","inputs":[]},{"type":"error","name":"OutOfBounds","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657610ee6908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80632d5b6cb9146100b75780633679723a146100b257806337c6a44a146100ad578063677342ce146100a857806392b0c5b2146100a3578063ae9768a81461009e578063bd252d0614610099578063d0b71b1e14610094578063d24ce6e51461008f5763e524f8491461008a57600080fd5b6102c0565b610286565b610234565b6101e7565b61019b565b610160565b610142565b610100565b6100e2565b346100dd5760203660031901126100dd5760206100d5600435610338565b604051908152f35b600080fd5b346100dd5760203660031901126100dd5760206100d560043561057f565b346100dd5760403660031901126100dd5760043560243590670de0b6b3a764000090818102918183041490151782151516156100dd5760209160405191048152f35b346100dd5760203660031901126100dd5760206100d5600435610755565b346100dd5760403660031901126100dd5760206100d5670de0b6b3a7640000610195602435610190600435610338565b61054b565b05610a2f565b346100dd5760403660031901126100dd57600435602435908181029181830414901517600116156100dd57602090604051906001670de0b6b3a764000060001983010401901515028152f35b346100dd5760403660031901126100dd57600435602435670de0b6b3a764000091828102928184041490151781151516156100dd5760209160016040519260001983010401901515028152f35b346100dd5760203660031901126100dd576020671bc16d674ec8000061027d6102786102736713a04bbdfdc9be8861026d6004356104ef565b0561056e565b610bb3565b6104ef565b05604051908152f35b346100dd5760203660031901126100dd5760206722c955229554c1b661027d610278671bc16d674ec800006101956004356101908161056e565b346100dd5760403660031901126100dd57600435602435908181029181830414901517600116156100dd57602090670de0b6b3a764000060405191048152f35b1561030757565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642849061036460008213610300565b711340daa0d5f769dba1915cef59f0815a550661038082610813565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b634e487b7160e01b600052601160045260246000fd5b90670de0b6b3a76400009182810292818405149015171561050c57565b6104d9565b90633b9aca009182810292818405149015171561050c57565b60008190039190600160ff1b811460011661050c5760001983050361050c57565b818102929160008212600160ff1b82141661050c57818405149015171561050c57565b600160ff1b811461050c5760000390565b6706f05b59d3b20000811461074f57670de0b6b3a7640000808212156106f957811561071a5760018260011b91600293830560020361050c5760008312801561073e575b61072c5782156106f957671bc16d674ec80000831461071a57821291821561070b57925b6105f084610cff565b80156106f95761066261062161061c6106176106126106679599979699610338565b610dc0565b610755565b610511565b61065d61063561063083610d2a565b6108da565b61065761065261064c61064786610d55565b6108f2565b85610e37565b61090a565b90610d9e565b6108c1565b610de8565b936000925b8184106106a157505050506106909161068b9160001461069357610cd8565b61056e565b90565b61069c9061056e565b610cd8565b90916106ef866106e96106b98561065d86999b610bb3565b6106576106d96106d46106cf61068b8780610e37565b610a2f565b610e10565b6106e38386610e37565b906108c1565b906109e8565b950192919061066c565b6040516307a0212760e01b8152600490fd5b61071490610885565b926105e7565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec8000083136105c3565b50600090565b60b581600160881b8110156107fc575b806901000000000000000000620100009210156107ef575b650100000000008110156107e2575b63010000008110156107d5575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b91610799565b60201c9160101b9161078c565b60401c9160201b9161077d565b5068b500000000000000009050608082901c610765565b61081e811515610300565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b90671bc16d674ec800006000838203931281841281169184139015161761050c57565b9067119000ab100ffbff19820191821360011661050c57565b8181039291600013801582851316918412161761050c57565b9081672005fe4f268ea0000191821260011661050c57565b9081670dc5527f642c20000191821260011661050c57565b9081670de0b6b3a76400000191821260011661050c57565b9081670b68df18e471fbff19019182121560011661050c57565b90816714a8454c19e1ac000191821260011661050c57565b9081670fc10e01578277ff19019182121560011661050c57565b90816703debd083b8c7c000191821260011661050c57565b9081670295d400ea3257ff19019182121560011661050c57565b9081670157d8b2ecc708000191821260011661050c57565b90816705310aa7d52130000191821260011661050c57565b9081670de0cc3d156100000191821260011661050c57565b9190916000838201938412911290801582169115161761050c57565b670de0b6b3a7640000908181029181830414901517600116156100dd57671bc16d674ec80000900490565b680248ce36a70cb26b3e1981131561074f57680755bf798b4a1bf1e5811215610b7f576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b8015610ccb57675698eef06670000081121561074f57675698eef0666fffff19811315610cbe576000610cae610be883610e83565b610c716106cf610c02610bfd61065285610a04565b610d7f565b92610ca9610ca4610c9f610c98610c92610c8d610c87610c82610c7c610c778d610c71610c6c610c66610c6161064c610c5c610c56610c51610c4b610c468a610e58565b610922565b89610e37565b61093c565b87610e37565b610954565b61096e565b83610e37565b610986565b90610e37565b6109a0565b8c610e37565b6109b8565b8a610e37565b6109d0565b88610e37565b9380610e37565b61052a565b6108a8565b6109e8565b9112156106905761069090610885565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b6713a04bbdfdc9be889080820291820514600116156100dd57670de0b6b3a7640000900590565b670de0b6b3a7640000908181029181830514901517600116156100dd57671bc16d674ec80000900590565b6703c1665c7aab2000908181029181830514901517600116156100dd57670de0b6b3a7640000900590565b669f32752462a000908181029181830514901517600116156100dd57670de0b6b3a7640000900590565b600181151516156100dd576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a764000090818102918183051490151782151516156100dd570590565b671bc16d674ec7ffff198181029160019183051416156100dd57670de0b6b3a7640000900590565b6709d028cc6f205fff198181029160019183051416156100dd57670de0b6b3a7640000900590565b670fa8cedfc2adddfa9080820291820514600116156100dd57670de0b6b3a7640000900590565b8181029181830514901517600116156100dd57670de0b6b3a7640000900590565b67025f0fe105a31400908181029181830514901517600116156100dd57670de0b6b3a7640000900590565b600160ff1b8114610e9e576000811215610690571960010190565b604051634d2d75b160e01b8152600490fdfea26469706673582212207eefcc35928418e86b3d58b8a795e6b6ccd74a9af75bb2aeb388c1c00918118364736f6c63430008160033","sourceMap":"175:1335:52:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c80632d5b6cb9146100b75780633679723a146100b257806337c6a44a146100ad578063677342ce146100a857806392b0c5b2146100a3578063ae9768a81461009e578063bd252d0614610099578063d0b71b1e14610094578063d24ce6e51461008f5763e524f8491461008a57600080fd5b6102c0565b610286565b610234565b6101e7565b61019b565b610160565b610142565b610100565b6100e2565b346100dd5760203660031901126100dd5760206100d5600435610338565b604051908152f35b600080fd5b346100dd5760203660031901126100dd5760206100d560043561057f565b346100dd5760403660031901126100dd5760043560243590670de0b6b3a764000090818102918183041490151782151516156100dd5760209160405191048152f35b346100dd5760203660031901126100dd5760206100d5600435610755565b346100dd5760403660031901126100dd5760206100d5670de0b6b3a7640000610195602435610190600435610338565b61054b565b05610a2f565b346100dd5760403660031901126100dd57600435602435908181029181830414901517600116156100dd57602090604051906001670de0b6b3a764000060001983010401901515028152f35b346100dd5760403660031901126100dd57600435602435670de0b6b3a764000091828102928184041490151781151516156100dd5760209160016040519260001983010401901515028152f35b346100dd5760203660031901126100dd576020671bc16d674ec8000061027d6102786102736713a04bbdfdc9be8861026d6004356104ef565b0561056e565b610bb3565b6104ef565b05604051908152f35b346100dd5760203660031901126100dd5760206722c955229554c1b661027d610278671bc16d674ec800006101956004356101908161056e565b346100dd5760403660031901126100dd57600435602435908181029181830414901517600116156100dd57602090670de0b6b3a764000060405191048152f35b1561030757565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642849061036460008213610300565b711340daa0d5f769dba1915cef59f0815a550661038082610813565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b634e487b7160e01b600052601160045260246000fd5b90670de0b6b3a76400009182810292818405149015171561050c57565b6104d9565b90633b9aca009182810292818405149015171561050c57565b60008190039190600160ff1b811460011661050c5760001983050361050c57565b818102929160008212600160ff1b82141661050c57818405149015171561050c57565b600160ff1b811461050c5760000390565b6706f05b59d3b20000811461074f57670de0b6b3a7640000808212156106f957811561071a5760018260011b91600293830560020361050c5760008312801561073e575b61072c5782156106f957671bc16d674ec80000831461071a57821291821561070b57925b6105f084610cff565b80156106f95761066261062161061c6106176106126106679599979699610338565b610dc0565b610755565b610511565b61065d61063561063083610d2a565b6108da565b61065761065261064c61064786610d55565b6108f2565b85610e37565b61090a565b90610d9e565b6108c1565b610de8565b936000925b8184106106a157505050506106909161068b9160001461069357610cd8565b61056e565b90565b61069c9061056e565b610cd8565b90916106ef866106e96106b98561065d86999b610bb3565b6106576106d96106d46106cf61068b8780610e37565b610a2f565b610e10565b6106e38386610e37565b906108c1565b906109e8565b950192919061066c565b6040516307a0212760e01b8152600490fd5b61071490610885565b926105e7565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec8000083136105c3565b50600090565b60b581600160881b8110156107fc575b806901000000000000000000620100009210156107ef575b650100000000008110156107e2575b63010000008110156107d5575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b91610799565b60201c9160101b9161078c565b60401c9160201b9161077d565b5068b500000000000000009050608082901c610765565b61081e811515610300565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b90671bc16d674ec800006000838203931281841281169184139015161761050c57565b9067119000ab100ffbff19820191821360011661050c57565b8181039291600013801582851316918412161761050c57565b9081672005fe4f268ea0000191821260011661050c57565b9081670dc5527f642c20000191821260011661050c57565b9081670de0b6b3a76400000191821260011661050c57565b9081670b68df18e471fbff19019182121560011661050c57565b90816714a8454c19e1ac000191821260011661050c57565b9081670fc10e01578277ff19019182121560011661050c57565b90816703debd083b8c7c000191821260011661050c57565b9081670295d400ea3257ff19019182121560011661050c57565b9081670157d8b2ecc708000191821260011661050c57565b90816705310aa7d52130000191821260011661050c57565b9081670de0cc3d156100000191821260011661050c57565b9190916000838201938412911290801582169115161761050c57565b670de0b6b3a7640000908181029181830414901517600116156100dd57671bc16d674ec80000900490565b680248ce36a70cb26b3e1981131561074f57680755bf798b4a1bf1e5811215610b7f576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b8015610ccb57675698eef06670000081121561074f57675698eef0666fffff19811315610cbe576000610cae610be883610e83565b610c716106cf610c02610bfd61065285610a04565b610d7f565b92610ca9610ca4610c9f610c98610c92610c8d610c87610c82610c7c610c778d610c71610c6c610c66610c6161064c610c5c610c56610c51610c4b610c468a610e58565b610922565b89610e37565b61093c565b87610e37565b610954565b61096e565b83610e37565b610986565b90610e37565b6109a0565b8c610e37565b6109b8565b8a610e37565b6109d0565b88610e37565b9380610e37565b61052a565b6108a8565b6109e8565b9112156106905761069090610885565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b6713a04bbdfdc9be889080820291820514600116156100dd57670de0b6b3a7640000900590565b670de0b6b3a7640000908181029181830514901517600116156100dd57671bc16d674ec80000900590565b6703c1665c7aab2000908181029181830514901517600116156100dd57670de0b6b3a7640000900590565b669f32752462a000908181029181830514901517600116156100dd57670de0b6b3a7640000900590565b600181151516156100dd576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a764000090818102918183051490151782151516156100dd570590565b671bc16d674ec7ffff198181029160019183051416156100dd57670de0b6b3a7640000900590565b6709d028cc6f205fff198181029160019183051416156100dd57670de0b6b3a7640000900590565b670fa8cedfc2adddfa9080820291820514600116156100dd57670de0b6b3a7640000900590565b8181029181830514901517600116156100dd57670de0b6b3a7640000900590565b67025f0fe105a31400908181029181830514901517600116156100dd57670de0b6b3a7640000900590565b600160ff1b8114610e9e576000811215610690571960010190565b604051634d2d75b160e01b8152600490fdfea26469706673582212207eefcc35928418e86b3d58b8a795e6b6ccd74a9af75bb2aeb388c1c00918118364736f6c63430008160033","sourceMap":"175:1335:52:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;175:1335:52;;;;;1245:26;175:1335;;1245:26;:::i;:::-;175:1335;;;;;;;;;;;;;;;;-1:-1:-1;;175:1335:52;;;;;613:19;175:1335;;613:19;:::i;175:1335::-;;;;;;-1:-1:-1;;175:1335:52;;;;;;;;491:4:18;;7878:392;;;;;;;;;;;;;;;;;;;175:1335:52;;;;7878:392:18;;175:1335:52;;;;;;;;;-1:-1:-1;;175:1335:52;;;;;1355:25;175:1335;;1355:25;:::i;175:1335::-;;;;;;-1:-1:-1;;175:1335:52;;;;;1391:36:18;491:4;1399:12;175:1335:52;;1399:8:18;175:1335:52;;1399:8:18;:::i;:::-;:12;:::i;:::-;175:1335:52;1391:36:18;:::i;175:1335:52:-;;;;;;-1:-1:-1;;175:1335:52;;;;;;;;8417:611:18;;;;;;;;;;;;;;;;;175:1335:52;;;;8417:611:18;;491:4;8417:611;;;;;;;;;;175:1335:52;;;;;;;;;-1:-1:-1;;175:1335:52;;;;;;;;491:4:18;8417:611;;;;;;;;;;;;;;;;;;;175:1335:52;;8417:611:18;175:1335:52;;8417:611:18;;;;;;;;;;;175:1335:52;;;;;;;;;-1:-1:-1;;175:1335:52;;;;;1949:7:21;7796:11;7768:13;7737:6;2046:20;7694:7;175:1335:52;;7694:7:21;:::i;:::-;175:1335:52;7737:6:21;:::i;:::-;7768:13;:::i;:::-;7796:11;:::i;:::-;175:1335:52;;;;;;;;;;;;;-1:-1:-1;;175:1335:52;;;;;1622:20:21;8495:7;8470:10;1949:7;8443:6;175:1335:52;;8443:2:21;;;:::i;175:1335:52:-;;;;;;-1:-1:-1;;175:1335:52;;;;;;;;7878:392:18;;;;;;;;;;;;;;;;;175:1335:52;;491:4:18;175:1335:52;;7878:392:18;;175:1335:52;;;;;;;:::o;:::-;;;-1:-1:-1;;;175:1335:52;;;;;;;;;;;;-1:-1:-1;;;175:1335:52;;;;;;;4596:2947:18;7380:72;4596:2947;4688:27;4700:1;4696:5;;4688:27;:::i;:::-;7125:43;5125:16;;;:::i;:::-;5145:2;175:1335:52;;;5175:3:18;175:1335:52;;;5175:3:18;175:1335:52;;;;;7232:71:18;175:1335:52;;6411:30:18;175:1335:52;6343:32:18;175:1335:52;6274:33:18;175:1335:52;6205:33:18;175:1335:52;6136:33:18;175:1335:52;6068:32:18;175:1335:52;6001:31:18;175:1335:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5533:32:18;175:1335:52;5465:32:18;175:1335:52;5398:31:18;175:1335:52;;;;;;;;;;;;;;;;;;;;;;;;6455:304:18;175:1335:52;;;;;4596:2947:18;:::o;1905:7:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;1774:3;1905:7;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;1905:7:21;;175:1335:52;1905:7:21;;;-1:-1:-1;;1905:7:21;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;;1905:7:21;;;;;;;;;;;;;;;:::o;2046:20::-;-1:-1:-1;;;2046:20:21;;;;;;;:::o;9402:337::-;1324:9;9472:21;;9468:43;;1905:7;9525:8;;;;9521:31;;9566:6;;9562:37;;1905:7;;;;9629:1;;1905:7;;;9629:1;1905:7;;;-1:-1:-1;5990:5:21;;:20;;;;9402:337;5986:46;;6046:6;;6042:29;;6090:7;6085:12;;6081:43;;6178:7;;;6177:23;;;;;;1053:19:23;;;:::i;:::-;6257:13:21;;6253:36;;6632:35;6363:55;6370:33;958:19:23;6311:16:21;958:19:23;6311:16:21;;;;;;:::i;:::-;958:19:23;:::i;:::-;6370:33:21;:::i;:::-;6363:55;:::i;:::-;1053:19:23;6481:29:21;958:19:23;;;:::i;:::-;6481:29:21;:::i;:::-;6547:49;958:19:23;6565:29:21;958:19:23;;;:::i;:::-;6565:29:21;:::i;:::-;958:19:23;;:::i;:::-;6547:49:21;:::i;:::-;1053:19:23;;:::i;:::-;6632:35:21;:::i;:::-;958:19:23;:::i;:::-;6689:9:21;-1:-1:-1;6708:336:21;6715:5;;;;;;7058:16;;;;9728:4;7058:16;958:19:23;7058:16:21;;;;;958:19:23;:::i;:::-;9728:4:21;:::i;:::-;9402:337;:::o;7058:16::-;7072:2;;;:::i;:::-;958:19:23;:::i;6708:336:21:-;6749:7;;6951:23;6749:7;1053:19:23;6749:12:21;:7;;;;;;:::i;:12::-;6891:42;958:19:23;6848:14:21;6790:16;958:19:23;;;;:::i;6790:16:21:-;6848:14;:::i;:::-;958:19:23;:::i;:::-;;;;;:::i;:::-;6891:42:21;;:::i;1053:19:23:-;6951:23:21;;:::i;:::-;3113:20;;;6708:336;;;;6253:36;175:1335:52;;-1:-1:-1;;;6279:10:21;;;;;6177:23;6193:7;;;:::i;:::-;6177:23;;;6081:43;175:1335:52;;-1:-1:-1;;;6106:18:21;;;;;5986:46;175:1335:52;;-1:-1:-1;;;6019:13:21;;;;;5990:20;5999:11;6003:7;5999:11;;5990:20;;9468:43;9495:16;9509:1;9495:16;:::o;11969:3353:18:-;12038:3278;;-1:-1:-1;;;12038:3278:18;;;;;11969:3353;12038:3278;;;;;;;;11969:3353;12038:3278;;;;;;11969:3353;12038:3278;;;;;;11969:3353;12038:3278;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11969:3353;:::o;12038:3278::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12038:3278:18;;-1:-1:-1;12038:3278:18;;;;;;15328:575;15397:27;15405:5;;;15397:27;:::i;:::-;15435:462;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:575;:::o;175:1335:52:-;;6090:7:21;175:1335:52;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;175:1335:52;;;;;;;;;;;;;:::o;2913:18:21:-;;;2852:20;2913:18;;;;;;;;:::o;:::-;;;2980;2913;;;;;;;;:::o;:::-;;;1905:7;2913:18;;;;;;;;:::o;:::-;;2650:19;;;2913:18;;;;;;;;;:::o;:::-;;;2590:20;2913:18;;;;;;;;:::o;:::-;;2529:21;;;2913:18;;;;;;;;;:::o;:::-;;;2463;2913;;;;;;;;:::o;:::-;;2396:19;;;2913:18;;;;;;;;;:::o;:::-;;;2331:17;2913:18;;;;;;;;:::o;:::-;;;2265;2913;;;;;;;;:::o;:::-;;;2205:20;2913:18;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;7741:535:18:-;1905:7:21;7878:392:18;;;;;;;;;;;;;;;;;1378:7:21;7878:392:18;;7741:535;:::o;1487:3103::-;-1:-1:-1;;1713:26:18;;;1709:40;;1948:21;1943:26;;;1939:54;;2266:5;175:1335:52;;;;4502:49:18;2559:29;175:1335:52;;2591:5:18;175:1335:52;2591:5:18;;175:1335:52;;;;;;;;;;;;;;2874:31:18;175:1335:52;;;;;;3074:35:18;3649;175:1335:52;;;;3508:34:18;175:1335:52;;;;3371:32:18;175:1335:52;;;;;;;;;;;;;;;;;;;;;;;;;3136:40:18;;;;175:1335:52;2941:32:18;175:1335:52;;;;;;;;;;;;;;;3699:327:18;175:1335:52;;4564:3:18;175:1335:52;;1487:3103:18;:::o;1939:54::-;175:1335:52;;-1:-1:-1;;;1971:22:18;;175:1335:52;1971:22:18;;;175:1335:52;;;;;;-1:-1:-1;;;175:1335:52;;;;;;1971:22:18;4268:1017:21;4348:10;;4344:26;;1500:10;4384:26;;;4380:40;;-1:-1:-1;;4434:26:21;;;4430:42;;-1:-1:-1;958:19:23;4495:11:21;;;:::i;:::-;5188:10;5094:60;1053:19:23;4548:38:21;965:21:18;;;:::i;4548:38:21:-;1053:19:23;:::i;:::-;958;5095:51:21;:42;958:19:23;;4962:98:21;958:19:23;4984:74:21;958:19:23;5006:50:21;958:19:23;;5028:26:21;958:19:23;4762:100:21;958:19:23;4784:76:21;958:19:23;4806:52:21;958:19:23;4828:28:21;958:19:23;;;:::i;:::-;4828:28:21;:::i;:::-;958:19:23;;:::i;:::-;4806:52:21;:::i;:::-;958:19:23;;:::i;:::-;4784:76:21;:::i;958:19:23:-;4762:100:21;:::i;:::-;958:19:23;;:::i;:::-;5028:26:21;:::i;:::-;958:19:23;;:::i;:::-;5006:50:21;:::i;:::-;958:19:23;;:::i;:::-;4984:74:21;:::i;:::-;958:19:23;;:::i;:::-;4962:98:21;:::i;:::-;958:19:23;;:::i;:::-;;;;:::i;:::-;5095:42:21;:::i;:::-;:51;:::i;:::-;5094:60;:::i;958:19:23:-;5253:25:21;5254:9;-1:-1:-1;;;5267:7:21;;;:::i;4430:42::-;4462:10;1949:7;4462:10;:::o;4344:26::-;4360:10;1905:7;4360:10;:::o;405:480:23:-;2046:20:21;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;1905:7:21;503:380:23;;;;;;;;;;;;;;;;;6090:7:21;503:380:23;;405:480;:::o;:::-;2913:18:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;3047:17:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;503:380;;;;;;;;;;405:480;:::o;:::-;1905:7:21;503:380:23;;;;;;;;;;;;;;;;;;;;405:480;:::o;:::-;-1:-1:-1;;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;-1:-1:-1;;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;3113:20:21;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;503:380;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;2717:18:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;71:276::-;-1:-1:-1;;;138:25:23;;134:43;;195:1;187:9;;195:1;;;208:61;;;;71:276::o;134:43::-;175:1335:52;;-1:-1:-1;;;172:5:23;;;;","linkReferences":{}},"methodIdentifiers":{"cdf(int256)":"d0b71b1e","divWadDown(uint256,uint256)":"37c6a44a","divWadUp(uint256,uint256)":"bd252d06","log(int256)":"2d5b6cb9","mulWadDown(uint256,uint256)":"e524f849","mulWadUp(uint256,uint256)":"ae9768a8","pdf(int256)":"d24ce6e5","pow(int256,int256)":"92b0c5b2","ppf(int256)":"3679723a","sqrt(uint256)":"677342ce"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"Infinity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Min\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NegativeInfinity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"input\",\"type\":\"int256\"}],\"name\":\"cdf\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"output\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"name\":\"divWadDown\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"z\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"name\":\"divWadUp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"z\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"x\",\"type\":\"int256\"}],\"name\":\"log\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"z\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"name\":\"mulWadDown\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"z\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"name\":\"mulWadUp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"z\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"input\",\"type\":\"int256\"}],\"name\":\"pdf\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"output\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"x\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"y\",\"type\":\"int256\"}],\"name\":\"pow\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"z\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"input\",\"type\":\"int256\"}],\"name\":\"ppf\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"output\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"sqrt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"z\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/helpers/ArbMath.sol\":\"ArbMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Invariant.sol\":{\"keccak256\":\"0xc1b1bd5e16204c135ff82855b5e01045505efefa48c986356a01e58517f65006\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6163e9486820eae1ff3ee3af534032360099f5bd61617ab48dea415009d6062f\",\"dweb:/ipfs/QmddfNakL2FyWsFoB6AjmGn9oVE95tNG1xXmc9M7PUGHka\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/test/helpers/ArbMath.sol\":{\"keccak256\":\"0xa278eab3cd11e8943bf861494ccc756331b1a85ef451d7e6eaf3fca8cd769647\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3ced74a24cfbcbe4dff794f76eb4aefa08a4eeaa7b7a7dc62fc9c3042f4a4619\",\"dweb:/ipfs/QmQ2yHv6JhqWZPpVHmRzGyckiDZEhHGWcQtwEmBiTvBQwm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"Infinity"},{"inputs":[],"type":"error","name":"Min"},{"inputs":[],"type":"error","name":"NegativeInfinity"},{"inputs":[],"type":"error","name":"OutOfBounds"},{"inputs":[{"internalType":"int256","name":"input","type":"int256"}],"stateMutability":"pure","type":"function","name":"cdf","outputs":[{"internalType":"int256","name":"output","type":"int256"}]},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"stateMutability":"pure","type":"function","name":"divWadDown","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"stateMutability":"pure","type":"function","name":"divWadUp","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}]},{"inputs":[{"internalType":"int256","name":"x","type":"int256"}],"stateMutability":"pure","type":"function","name":"log","outputs":[{"internalType":"int256","name":"z","type":"int256"}]},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"stateMutability":"pure","type":"function","name":"mulWadDown","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"stateMutability":"pure","type":"function","name":"mulWadUp","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}]},{"inputs":[{"internalType":"int256","name":"input","type":"int256"}],"stateMutability":"pure","type":"function","name":"pdf","outputs":[{"internalType":"int256","name":"output","type":"int256"}]},{"inputs":[{"internalType":"int256","name":"x","type":"int256"},{"internalType":"int256","name":"y","type":"int256"}],"stateMutability":"pure","type":"function","name":"pow","outputs":[{"internalType":"int256","name":"z","type":"int256"}]},{"inputs":[{"internalType":"int256","name":"input","type":"int256"}],"stateMutability":"pure","type":"function","name":"ppf","outputs":[{"internalType":"int256","name":"output","type":"int256"}]},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"stateMutability":"pure","type":"function","name":"sqrt","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/helpers/ArbMath.sol":"ArbMath"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Invariant.sol":{"keccak256":"0xc1b1bd5e16204c135ff82855b5e01045505efefa48c986356a01e58517f65006","urls":["bzz-raw://6163e9486820eae1ff3ee3af534032360099f5bd61617ab48dea415009d6062f","dweb:/ipfs/QmddfNakL2FyWsFoB6AjmGn9oVE95tNG1xXmc9M7PUGHka"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/test/helpers/ArbMath.sol":{"keccak256":"0xa278eab3cd11e8943bf861494ccc756331b1a85ef451d7e6eaf3fca8cd769647","urls":["bzz-raw://3ced74a24cfbcbe4dff794f76eb4aefa08a4eeaa7b7a7dc62fc9c3042f4a4619","dweb:/ipfs/QmQ2yHv6JhqWZPpVHmRzGyckiDZEhHGWcQtwEmBiTvBQwm"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/helpers/ArbMath.sol","id":43323,"exportedSymbols":{"ArbMath":[43322],"FixedPointMathLib":[26640],"Gaussian":[27374],"Invariant":[27732],"Min":[27736],"abs":[27763],"diviWad":[27813],"muli":[27777],"muliWad":[27795]},"nodeType":"SourceUnit","src":"39:1472:52","nodes":[{"id":43143,"nodeType":"PragmaDirective","src":"39:24:52","nodes":[],"literals":["solidity","^","0.8",".17"]},{"id":43144,"nodeType":"ImportDirective","src":"65:45:52","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol","file":"solmate/utils/FixedPointMathLib.sol","nameLocation":"-1:-1:-1","scope":43323,"sourceUnit":26641,"symbolAliases":[],"unitAlias":""},{"id":43145,"nodeType":"ImportDirective","src":"111:30:52","nodes":[],"absolutePath":"lib/solstat/src/Gaussian.sol","file":"solstat/Gaussian.sol","nameLocation":"-1:-1:-1","scope":43323,"sourceUnit":27375,"symbolAliases":[],"unitAlias":""},{"id":43146,"nodeType":"ImportDirective","src":"142:31:52","nodes":[],"absolutePath":"lib/solstat/src/Invariant.sol","file":"solstat/Invariant.sol","nameLocation":"-1:-1:-1","scope":43323,"sourceUnit":27733,"symbolAliases":[],"unitAlias":""},{"id":43322,"nodeType":"ContractDefinition","src":"175:1335:52","nodes":[{"id":43149,"nodeType":"UsingForDirective","src":"198:35:52","nodes":[],"global":false,"libraryName":{"id":43147,"name":"FixedPointMathLib","nameLocations":["204:17:52"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"204:17:52"},"typeName":{"id":43148,"name":"int256","nodeType":"ElementaryTypeName","src":"226:6:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":43152,"nodeType":"UsingForDirective","src":"238:36:52","nodes":[],"global":false,"libraryName":{"id":43150,"name":"FixedPointMathLib","nameLocations":["244:17:52"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"244:17:52"},"typeName":{"id":43151,"name":"uint256","nodeType":"ElementaryTypeName","src":"266:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":43156,"nodeType":"FunctionDefinition","src":"280:17:52","nodes":[],"body":{"id":43155,"nodeType":"Block","src":"294:3:52","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":43153,"nodeType":"ParameterList","parameters":[],"src":"291:2:52"},"returnParameters":{"id":43154,"nodeType":"ParameterList","parameters":[],"src":"294:0:52"},"scope":43322,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":43171,"nodeType":"FunctionDefinition","src":"303:108:52","nodes":[],"body":{"id":43170,"nodeType":"Block","src":"366:45:52","nodes":[],"statements":[{"expression":{"id":43168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43163,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43161,"src":"376:6:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43166,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43158,"src":"398:5:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":43164,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"385:8:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":43165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"394:3:52","memberName":"cdf","nodeType":"MemberAccess","referencedDeclaration":27280,"src":"385:12:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":43167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"385:19:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"376:28:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":43169,"nodeType":"ExpressionStatement","src":"376:28:52"}]},"functionSelector":"d0b71b1e","implemented":true,"kind":"function","modifiers":[],"name":"cdf","nameLocation":"312:3:52","parameters":{"id":43159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43158,"mutability":"mutable","name":"input","nameLocation":"323:5:52","nodeType":"VariableDeclaration","scope":43171,"src":"316:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":43157,"name":"int256","nodeType":"ElementaryTypeName","src":"316:6:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"315:14:52"},"returnParameters":{"id":43162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43161,"mutability":"mutable","name":"output","nameLocation":"358:6:52","nodeType":"VariableDeclaration","scope":43171,"src":"351:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":43160,"name":"int256","nodeType":"ElementaryTypeName","src":"351:6:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"350:15:52"},"scope":43322,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":43186,"nodeType":"FunctionDefinition","src":"417:108:52","nodes":[],"body":{"id":43185,"nodeType":"Block","src":"480:45:52","nodes":[],"statements":[{"expression":{"id":43183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43178,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43176,"src":"490:6:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43181,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43173,"src":"512:5:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":43179,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"499:8:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":43180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"508:3:52","memberName":"pdf","nodeType":"MemberAccess","referencedDeclaration":27314,"src":"499:12:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":43182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"499:19:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"490:28:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":43184,"nodeType":"ExpressionStatement","src":"490:28:52"}]},"functionSelector":"d24ce6e5","implemented":true,"kind":"function","modifiers":[],"name":"pdf","nameLocation":"426:3:52","parameters":{"id":43174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43173,"mutability":"mutable","name":"input","nameLocation":"437:5:52","nodeType":"VariableDeclaration","scope":43186,"src":"430:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":43172,"name":"int256","nodeType":"ElementaryTypeName","src":"430:6:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"429:14:52"},"returnParameters":{"id":43177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43176,"mutability":"mutable","name":"output","nameLocation":"472:6:52","nodeType":"VariableDeclaration","scope":43186,"src":"465:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":43175,"name":"int256","nodeType":"ElementaryTypeName","src":"465:6:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"464:15:52"},"scope":43322,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":43201,"nodeType":"FunctionDefinition","src":"531:108:52","nodes":[],"body":{"id":43200,"nodeType":"Block","src":"594:45:52","nodes":[],"statements":[{"expression":{"id":43198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43193,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43191,"src":"604:6:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43196,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43188,"src":"626:5:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":43194,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"613:8:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":43195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"622:3:52","memberName":"ppf","nodeType":"MemberAccess","referencedDeclaration":27373,"src":"613:12:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":43197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"613:19:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"604:28:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":43199,"nodeType":"ExpressionStatement","src":"604:28:52"}]},"functionSelector":"3679723a","implemented":true,"kind":"function","modifiers":[],"name":"ppf","nameLocation":"540:3:52","parameters":{"id":43189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43188,"mutability":"mutable","name":"input","nameLocation":"551:5:52","nodeType":"VariableDeclaration","scope":43201,"src":"544:12:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":43187,"name":"int256","nodeType":"ElementaryTypeName","src":"544:6:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"543:14:52"},"returnParameters":{"id":43192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43191,"mutability":"mutable","name":"output","nameLocation":"586:6:52","nodeType":"VariableDeclaration","scope":43201,"src":"579:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":43190,"name":"int256","nodeType":"ElementaryTypeName","src":"579:6:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"578:15:52"},"scope":43322,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":43219,"nodeType":"FunctionDefinition","src":"645:129:52","nodes":[],"body":{"id":43218,"nodeType":"Block","src":"719:55:52","nodes":[],"statements":[{"expression":{"id":43216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43210,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43208,"src":"729:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43213,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43203,"src":"762:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43214,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43205,"src":"765:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":43211,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"733:17:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":43212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"751:10:52","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"733:28:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":43215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"733:34:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"729:38:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43217,"nodeType":"ExpressionStatement","src":"729:38:52"}]},"functionSelector":"e524f849","implemented":true,"kind":"function","modifiers":[],"name":"mulWadDown","nameLocation":"654:10:52","parameters":{"id":43206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43203,"mutability":"mutable","name":"x","nameLocation":"673:1:52","nodeType":"VariableDeclaration","scope":43219,"src":"665:9:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43202,"name":"uint256","nodeType":"ElementaryTypeName","src":"665:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43205,"mutability":"mutable","name":"y","nameLocation":"684:1:52","nodeType":"VariableDeclaration","scope":43219,"src":"676:9:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43204,"name":"uint256","nodeType":"ElementaryTypeName","src":"676:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"664:22:52"},"returnParameters":{"id":43209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43208,"mutability":"mutable","name":"z","nameLocation":"716:1:52","nodeType":"VariableDeclaration","scope":43219,"src":"708:9:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43207,"name":"uint256","nodeType":"ElementaryTypeName","src":"708:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"707:11:52"},"scope":43322,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":43237,"nodeType":"FunctionDefinition","src":"780:125:52","nodes":[],"body":{"id":43236,"nodeType":"Block","src":"852:53:52","nodes":[],"statements":[{"expression":{"id":43234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43228,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43226,"src":"862:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43231,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43221,"src":"893:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43232,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43223,"src":"896:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":43229,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"866:17:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":43230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"884:8:52","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"866:26:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":43233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"866:32:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"862:36:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43235,"nodeType":"ExpressionStatement","src":"862:36:52"}]},"functionSelector":"ae9768a8","implemented":true,"kind":"function","modifiers":[],"name":"mulWadUp","nameLocation":"789:8:52","parameters":{"id":43224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43221,"mutability":"mutable","name":"x","nameLocation":"806:1:52","nodeType":"VariableDeclaration","scope":43237,"src":"798:9:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43220,"name":"uint256","nodeType":"ElementaryTypeName","src":"798:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43223,"mutability":"mutable","name":"y","nameLocation":"817:1:52","nodeType":"VariableDeclaration","scope":43237,"src":"809:9:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43222,"name":"uint256","nodeType":"ElementaryTypeName","src":"809:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"797:22:52"},"returnParameters":{"id":43227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43226,"mutability":"mutable","name":"z","nameLocation":"849:1:52","nodeType":"VariableDeclaration","scope":43237,"src":"841:9:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43225,"name":"uint256","nodeType":"ElementaryTypeName","src":"841:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"840:11:52"},"scope":43322,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":43255,"nodeType":"FunctionDefinition","src":"911:129:52","nodes":[],"body":{"id":43254,"nodeType":"Block","src":"985:55:52","nodes":[],"statements":[{"expression":{"id":43252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43246,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43244,"src":"995:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43249,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43239,"src":"1028:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43250,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43241,"src":"1031:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":43247,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"999:17:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":43248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1017:10:52","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"999:28:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":43251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"999:34:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"995:38:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43253,"nodeType":"ExpressionStatement","src":"995:38:52"}]},"functionSelector":"37c6a44a","implemented":true,"kind":"function","modifiers":[],"name":"divWadDown","nameLocation":"920:10:52","parameters":{"id":43242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43239,"mutability":"mutable","name":"x","nameLocation":"939:1:52","nodeType":"VariableDeclaration","scope":43255,"src":"931:9:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43238,"name":"uint256","nodeType":"ElementaryTypeName","src":"931:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43241,"mutability":"mutable","name":"y","nameLocation":"950:1:52","nodeType":"VariableDeclaration","scope":43255,"src":"942:9:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43240,"name":"uint256","nodeType":"ElementaryTypeName","src":"942:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"930:22:52"},"returnParameters":{"id":43245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43244,"mutability":"mutable","name":"z","nameLocation":"982:1:52","nodeType":"VariableDeclaration","scope":43255,"src":"974:9:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43243,"name":"uint256","nodeType":"ElementaryTypeName","src":"974:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"973:11:52"},"scope":43322,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":43273,"nodeType":"FunctionDefinition","src":"1046:125:52","nodes":[],"body":{"id":43272,"nodeType":"Block","src":"1118:53:52","nodes":[],"statements":[{"expression":{"id":43270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43264,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43262,"src":"1128:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43267,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43257,"src":"1159:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43268,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43259,"src":"1162:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":43265,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"1132:17:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":43266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1150:8:52","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"1132:26:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":43269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1132:32:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1128:36:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43271,"nodeType":"ExpressionStatement","src":"1128:36:52"}]},"functionSelector":"bd252d06","implemented":true,"kind":"function","modifiers":[],"name":"divWadUp","nameLocation":"1055:8:52","parameters":{"id":43260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43257,"mutability":"mutable","name":"x","nameLocation":"1072:1:52","nodeType":"VariableDeclaration","scope":43273,"src":"1064:9:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43256,"name":"uint256","nodeType":"ElementaryTypeName","src":"1064:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43259,"mutability":"mutable","name":"y","nameLocation":"1083:1:52","nodeType":"VariableDeclaration","scope":43273,"src":"1075:9:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43258,"name":"uint256","nodeType":"ElementaryTypeName","src":"1075:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1063:22:52"},"returnParameters":{"id":43263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43262,"mutability":"mutable","name":"z","nameLocation":"1115:1:52","nodeType":"VariableDeclaration","scope":43273,"src":"1107:9:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43261,"name":"uint256","nodeType":"ElementaryTypeName","src":"1107:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1106:11:52"},"scope":43322,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":43288,"nodeType":"FunctionDefinition","src":"1177:101:52","nodes":[],"body":{"id":43287,"nodeType":"Block","src":"1231:47:52","nodes":[],"statements":[{"expression":{"id":43285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43280,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43278,"src":"1241:1:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43283,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43275,"src":"1269:1:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":43281,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"1245:17:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":43282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1263:5:52","memberName":"lnWad","nodeType":"MemberAccess","referencedDeclaration":26541,"src":"1245:23:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":43284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1245:26:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1241:30:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":43286,"nodeType":"ExpressionStatement","src":"1241:30:52"}]},"functionSelector":"2d5b6cb9","implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"1186:3:52","parameters":{"id":43276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43275,"mutability":"mutable","name":"x","nameLocation":"1197:1:52","nodeType":"VariableDeclaration","scope":43288,"src":"1190:8:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":43274,"name":"int256","nodeType":"ElementaryTypeName","src":"1190:6:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1189:10:52"},"returnParameters":{"id":43279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43278,"mutability":"mutable","name":"z","nameLocation":"1228:1:52","nodeType":"VariableDeclaration","scope":43288,"src":"1221:8:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":43277,"name":"int256","nodeType":"ElementaryTypeName","src":"1221:6:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1220:10:52"},"scope":43322,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":43303,"nodeType":"FunctionDefinition","src":"1284:103:52","nodes":[],"body":{"id":43302,"nodeType":"Block","src":"1341:46:52","nodes":[],"statements":[{"expression":{"id":43300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43295,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43293,"src":"1351:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43298,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43290,"src":"1378:1:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":43296,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"1355:17:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":43297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1373:4:52","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":26589,"src":"1355:22:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":43299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1355:25:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1351:29:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43301,"nodeType":"ExpressionStatement","src":"1351:29:52"}]},"functionSelector":"677342ce","implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"1293:4:52","parameters":{"id":43291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43290,"mutability":"mutable","name":"x","nameLocation":"1306:1:52","nodeType":"VariableDeclaration","scope":43303,"src":"1298:9:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43289,"name":"uint256","nodeType":"ElementaryTypeName","src":"1298:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1297:11:52"},"returnParameters":{"id":43294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43293,"mutability":"mutable","name":"z","nameLocation":"1338:1:52","nodeType":"VariableDeclaration","scope":43303,"src":"1330:9:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43292,"name":"uint256","nodeType":"ElementaryTypeName","src":"1330:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1329:11:52"},"scope":43322,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":43321,"nodeType":"FunctionDefinition","src":"1393:115:52","nodes":[],"body":{"id":43320,"nodeType":"Block","src":"1457:51:52","nodes":[],"statements":[{"expression":{"id":43318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43312,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43310,"src":"1467:1:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43315,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43305,"src":"1496:1:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":43316,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43307,"src":"1499:1:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":43313,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"1471:17:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":43314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1489:6:52","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"1471:24:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":43317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1471:30:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1467:34:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":43319,"nodeType":"ExpressionStatement","src":"1467:34:52"}]},"functionSelector":"92b0c5b2","implemented":true,"kind":"function","modifiers":[],"name":"pow","nameLocation":"1402:3:52","parameters":{"id":43308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43305,"mutability":"mutable","name":"x","nameLocation":"1413:1:52","nodeType":"VariableDeclaration","scope":43321,"src":"1406:8:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":43304,"name":"int256","nodeType":"ElementaryTypeName","src":"1406:6:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":43307,"mutability":"mutable","name":"y","nameLocation":"1423:1:52","nodeType":"VariableDeclaration","scope":43321,"src":"1416:8:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":43306,"name":"int256","nodeType":"ElementaryTypeName","src":"1416:6:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1405:20:52"},"returnParameters":{"id":43311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43310,"mutability":"mutable","name":"z","nameLocation":"1454:1:52","nodeType":"VariableDeclaration","scope":43321,"src":"1447:8:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":43309,"name":"int256","nodeType":"ElementaryTypeName","src":"1447:6:52","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1446:10:52"},"scope":43322,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"ArbMath","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[43322],"name":"ArbMath","nameLocation":"184:7:52","scope":43323,"usedErrors":[26761,26763,26765,27736],"usedEvents":[]}],"license":"UNLICENSED"},"id":52} \ No newline at end of file diff --git a/out/ArbiterToken.sol/ArbiterToken.json b/out/ArbiterToken.sol/ArbiterToken.json deleted file mode 100644 index b1899aae..00000000 --- a/out/ArbiterToken.sol/ArbiterToken.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"decimals","type":"uint8","internalType":"uint8"}],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60e0604090808252346200044e57620010b8803803809162000022828562000453565b833981016060828203126200044e5781516001600160401b0393908481116200044e57826200005391850162000477565b92602092838201518681116200044e5783916200007291840162000477565b91015160ff811681036200044e578451948686116200043857600095806200009b8854620004ed565b92601f93848111620003e7575b5087908483116001146200037f57899262000373575b50508160011b916000199060031b1c19161786555b8251908782116200035f578190600194620000ef8654620004ed565b8281116200030a575b5087918311600114620002a65788926200029a575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004ed565b92838352878301958882821691826000146200027a5750506001146200023a575b506200016a9250038262000453565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000226575083905251902060c052600680546001600160a01b03191633179055610b8d90816200052b823960805181610679015260a051816109b5015260c051816109dc0152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b858310620002615750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000247565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002f35750508411620002d9575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002cb565b8385015186558997909501949384019301620002b8565b909192508589528789208380860160051c8201928a871062000355575b91869589929594930160051c01915b82811062000346575050620000f8565b8b815586955088910162000336565b9250819262000327565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003d0575050908460019594939210620003b6575b505050811b018655620000d3565b015160001960f88460031b161c19169055388080620003a8565b60018596829396860151815501950193016200038e565b9091508880528789208480850160051c8201928a86106200042e575b9085949392910160051c01905b8181106200041f5750620000a8565b8a815584935060010162000410565b9250819262000403565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200043857604052565b919080601f840112156200044e5782516001600160401b038111620004385760209060405192620004b283601f19601f850116018562000453565b8184528282870101116200044e5760005b818110620004d957508260009394955001015290565b8581018301518482018401528201620004c3565b90600182811c921680156200051f575b60208310146200050957565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004fd56fe608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde03146107fe57508163095ea7b31461078f57816318160ddd1461077057816323b872dd1461069d578163313ce5671461065f5781633644e5151461063b57816340c10f191461055057816370a08231146105185781637ecebe00146104e057816395d89b41146103fa578163a9059cbb14610376578163d505accf14610137578163dd62ed3e146100ea575063f851a440146100bf57600080fd5b346100e657816003193601126100e65760065490516001600160a01b039091168152602090f35b5080fd5b905034610133578160031936011261013357602092829161010961095c565b610111610977565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b8383346100e65760e03660031901126100e65761015261095c565b9061015b610977565b91604435606435926084359260ff84168094036103725742851061032f576101816109b0565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761031b578188528451902061010085019261190160f01b8452610102860152610122850152604281526101608401948186109086111761030857848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102fe5786511696871515806102f5575b156102c35786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610280565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5050346100e657806003193601126100e65760209161039361095c565b8260243591338452600386528184206103ad84825461098d565b90556001600160a01b0316808452600386529220805482019055825190815233907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908590a35160018152f35b8284346104dd57806003193601126104dd5781519080600180549061041e826108a1565b80865292602092600181169081156104b05750600114610458575b610454868861044a828903836108db565b5191829182610913565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061049d5750505050810160200161044a8261045486610439565b8054868601840152938201938101610480565b90506104549795508693506020925061044a94915060ff191682840152151560051b820101929486610439565b80fd5b5050346100e65760203660031901126100e65760209181906001600160a01b0361050861095c565b1681526005845220549051908152f35b5050346100e65760203660031901126100e65760209181906001600160a01b0361054061095c565b1681526003845220549051908152f35b8284346104dd57816003193601126104dd5761056a61095c565b60065460243592916001600160a01b0391821633036105ee576002548481018091116105db57602096509186917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef936002551693848452600382528584208181540190558551908152a35160018152f35b634e487b7160e01b845260118752602484fd5b845162461bcd60e51b8152602081880152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b5050346100e657816003193601126100e6576020906106586109b0565b9051908152f35b5050346100e657816003193601126100e6576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8284346104dd5760603660031901126104dd576106b861095c565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6106e1610977565b6001600160a01b039283168085526020878152868620338752815286862054909791948893604435938993856001820161074d575b5050508688526003855282882061072e85825461098d565b9055169586815260038452208181540190558551908152a35160018152f35b6107569161098d565b90888a528652838920338a528652838920558a8085610716565b5050346100e657816003193601126100e6576020906002549051908152f35b9050346101335781600319360112610133576020926107ac61095c565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346104dd57806003193601126104dd5780548161081d826108a1565b808552916020916001918281169081156104b0575060011461084a57610454868861044a828903836108db565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b83851061088e5750505050810160200161044a8261045486610439565b8054868601840152938201938101610871565b90600182811c921680156108d1575b60208310146108bb57565b634e487b7160e01b600052602260045260246000fd5b91607f16916108b0565b90601f8019910116810190811067ffffffffffffffff8211176108fd57604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b82811061094857505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610926565b600435906001600160a01b038216820361097257565b600080fd5b602435906001600160a01b038216820361097257565b9190820391821161099a57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109fe57507f000000000000000000000000000000000000000000000000000000000000000090565b60405181548291610a0e826108a1565b808252816020948582019460019087600182169182600014610b39575050600114610ae0575b50610a41925003826108db565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610acc575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610b21575050610a41935082010138610a34565b80548388018501528694508893909201918101610b0a565b60ff19168852610a4195151560051b8501019250389150610a34905056fea2646970667358221220bb7e59c870fb12e6a97b862b170e604eae41818eb723198bc726bb1da33fe4ba64736f6c63430008160033","sourceMap":"101:592:53:-:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;101:592:53;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;101:592:53;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;101:592:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2103:16:16;;;101:592:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;101:592:53;;;;;;;;;;;;;;2129:20:16;;2179:13;2160:32;;101:592:53;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2103:16:16;;101:592:53;2103:16:16;;;101:592:53;;;;;;;;;;;;;;:::i;:::-;;5776:22:16;;101:592:53;;;5627:295:16;;;101:592:53;5659:95:16;101:592:53;;;;;;5820:14:16;101:592:53;;;;2179:13:16;2129:20;101:592:53;;;5899:4:16;2160:32;101:592:53;;;2160:32:16;5627:295;;101:592:53;;;;;;;;;;;;;-1:-1:-1;101:592:53;;;;5600:336:16;;101:592:53;2202:51:16;305:18:53;101:592;;-1:-1:-1;;;;;;101:592:53;313:10;101:592;;;;;;;;;2129:20:16;101:592:53;;;;;2160:32:16;101:592:53;;;;;;;;;;;;;-1:-1:-1;;;101:592:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;101:592:53;;;;;;;;;;;-1:-1:-1;;101:592:53;;;;;;;;;;;;;-1:-1:-1;101:592:53;;-1:-1:-1;101:592:53;;-1:-1:-1;101:592:53;;;;;-1:-1:-1;101:592:53;;;;;;;;;;;;;-1:-1:-1;101:592:53;;-1:-1:-1;;101:592:53;;;;;;;;;;;;;-1:-1:-1;101:592:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;101:592:53;;;;;;;;;;;;;-1:-1:-1;;;101:592:53;;;;;;;;;;;;-1:-1:-1;101:592:53;;;;;;;;;;;;-1:-1:-1;;;101:592:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;101:592:53;;;;;;;;;;;;;;;-1:-1:-1;101:592:53;;;;;-1:-1:-1;101:592:53;;-1:-1:-1;101:592:53;;;;;;;-1:-1:-1;;101:592:53;;;;-1:-1:-1;;;;;101:592:53;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;101:592:53;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;101:592:53;;;;;;;;-1:-1:-1;101:592:53;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde03146107fe57508163095ea7b31461078f57816318160ddd1461077057816323b872dd1461069d578163313ce5671461065f5781633644e5151461063b57816340c10f191461055057816370a08231146105185781637ecebe00146104e057816395d89b41146103fa578163a9059cbb14610376578163d505accf14610137578163dd62ed3e146100ea575063f851a440146100bf57600080fd5b346100e657816003193601126100e65760065490516001600160a01b039091168152602090f35b5080fd5b905034610133578160031936011261013357602092829161010961095c565b610111610977565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b8383346100e65760e03660031901126100e65761015261095c565b9061015b610977565b91604435606435926084359260ff84168094036103725742851061032f576101816109b0565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761031b578188528451902061010085019261190160f01b8452610102860152610122850152604281526101608401948186109086111761030857848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102fe5786511696871515806102f5575b156102c35786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610280565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5050346100e657806003193601126100e65760209161039361095c565b8260243591338452600386528184206103ad84825461098d565b90556001600160a01b0316808452600386529220805482019055825190815233907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908590a35160018152f35b8284346104dd57806003193601126104dd5781519080600180549061041e826108a1565b80865292602092600181169081156104b05750600114610458575b610454868861044a828903836108db565b5191829182610913565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061049d5750505050810160200161044a8261045486610439565b8054868601840152938201938101610480565b90506104549795508693506020925061044a94915060ff191682840152151560051b820101929486610439565b80fd5b5050346100e65760203660031901126100e65760209181906001600160a01b0361050861095c565b1681526005845220549051908152f35b5050346100e65760203660031901126100e65760209181906001600160a01b0361054061095c565b1681526003845220549051908152f35b8284346104dd57816003193601126104dd5761056a61095c565b60065460243592916001600160a01b0391821633036105ee576002548481018091116105db57602096509186917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef936002551693848452600382528584208181540190558551908152a35160018152f35b634e487b7160e01b845260118752602484fd5b845162461bcd60e51b8152602081880152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b5050346100e657816003193601126100e6576020906106586109b0565b9051908152f35b5050346100e657816003193601126100e6576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8284346104dd5760603660031901126104dd576106b861095c565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6106e1610977565b6001600160a01b039283168085526020878152868620338752815286862054909791948893604435938993856001820161074d575b5050508688526003855282882061072e85825461098d565b9055169586815260038452208181540190558551908152a35160018152f35b6107569161098d565b90888a528652838920338a528652838920558a8085610716565b5050346100e657816003193601126100e6576020906002549051908152f35b9050346101335781600319360112610133576020926107ac61095c565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346104dd57806003193601126104dd5780548161081d826108a1565b808552916020916001918281169081156104b0575060011461084a57610454868861044a828903836108db565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b83851061088e5750505050810160200161044a8261045486610439565b8054868601840152938201938101610871565b90600182811c921680156108d1575b60208310146108bb57565b634e487b7160e01b600052602260045260246000fd5b91607f16916108b0565b90601f8019910116810190811067ffffffffffffffff8211176108fd57604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b82811061094857505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610926565b600435906001600160a01b038216820361097257565b600080fd5b602435906001600160a01b038216820361097257565b9190820391821161099a57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109fe57507f000000000000000000000000000000000000000000000000000000000000000090565b60405181548291610a0e826108a1565b808252816020948582019460019087600182169182600014610b39575050600114610ae0575b50610a41925003826108db565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610acc575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610b21575050610a41935082010138610a34565b80548388018501528694508893909201918101610b0a565b60ff19168852610a4195151560051b8501019250389150610a34905056fea2646970667358221220bb7e59c870fb12e6a97b862b170e604eae41818eb723198bc726bb1da33fe4ba64736f6c63430008160033","sourceMap":"101:592:53:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;138:20;101:592;;;-1:-1:-1;;;;;101:592:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;101:592:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;101:592:53;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4044:15:16;4032:27;;101:592:53;;4415:18:16;;:::i;:::-;101:592:53;;;;;;;;;;;;;;;4860:6:16;101:592:53;;;;;;;;;;;;;;;;4498:449:16;;;;;101:592:53;4542:165:16;101:592:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;4498:449:16;;101:592:53;;;;;;;;;;;;;;;;;;;4459:514:16;;4337:658;;;101:592:53;;;;;;;;;;;;;;;4337:658:16;;101:592:53;;;;;;;;;;;;;;;;;4306:707:16;;101:592:53;;;;;;;;;;;;;;;;;;;4279:805:16;;;101:592:53;;;;;;;4279:805:16;;;;;;;101:592:53;5107:30:16;;;;:59;;;101:592:53;;;;;;5270:31:16;101:592:53;;;;;;;;;;;;;;;;;;;;;;;5270:31:16;101:592:53;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;101:592:53;;;;;5107:59:16;5141:25;;;;5107:59;;4279:805;101:592:53;;;;;;;;;;-1:-1:-1;;;101:592:53;;;;;;;;;-1:-1:-1;;;;101:592:53;;;;;;;;;;;-1:-1:-1;;;101:592:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;2761:10:16;;101:592:53;;2751:9:16;101:592:53;;;;;2751:31:16;101:592:53;;;2751:31:16;:::i;:::-;101:592:53;;-1:-1:-1;;;;;101:592:53;;;;2751:9:16;101:592:53;;;;;;;;;;;;;;;2761:10:16;;2977:32;;101:592:53;;2977:32:16;101:592:53;;;;;;;;;;;;;;;;;;;;;;;1043:20:16;;101:592:53;;;;;:::i;:::-;;;;;;;1043:20:16;101:592:53;;;1043:20:16;;;;101:592:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;1043:20:16;101:592:53;;;;;;;;;-1:-1:-1;;;;101:592:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;101:592:53;;;;;;;;-1:-1:-1;;;;;101:592:53;;:::i;:::-;;;;1738:41:16;101:592:53;;;;;;;;;;;;;;;;;;-1:-1:-1;;101:592:53;;;;;;;;-1:-1:-1;;;;;101:592:53;;:::i;:::-;;;;1324:44:16;101:592:53;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;461:5;101:592;;;;;-1:-1:-1;;;;;101:592:53;;;447:10;:19;101:592;;6207:21:16;101:592:53;;;;;;;;;;;;;;;6423:32:16;101:592:53;6207:21:16;101:592:53;;;;;;6374:9:16;101:592:53;;;;;;;;;;;;;;;;6423:32:16;101:592:53;;;;;;-1:-1:-1;;;101:592:53;;;;;;;;;;;-1:-1:-1;;;101:592:53;;;;;;;;;;;;;;;;;-1:-1:-1;;;101:592:53;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1070:31:16;101:592:53;;;;;;;;;;;;-1:-1:-1;;101:592:53;;;;;;:::i;:::-;3581:26:16;101:592:53;;:::i;:::-;-1:-1:-1;;;;;101:592:53;;;;;;;;;;;;;3212:10:16;101:592:53;;;;;;;;;;;;;;;;;;;;;3274:28:16;;3270:80;;101:592:53;;;;;;;3361:9:16;101:592:53;;;;;3361:25:16;101:592:53;;;3361:25:16;:::i;:::-;101:592:53;;;;;;;3361:9:16;101:592:53;;;;;;;;;;;;;;3581:26:16;101:592:53;;;;;3270:80:16;3334:16;;;:::i;:::-;101:592:53;;;;;;;;;3212:10:16;101:592:53;;;;;;;;3270:80:16;;;;;101:592:53;;;;;;;;;;;;;;;;1291:26:16;101:592:53;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;2548:10:16;;;;101:592:53;;;;;;;;;;;;;;;;;;;;;;;;;;;2593:37:16;2548:10;;2593:37;;101:592:53;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;101:592:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;101:592:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;101:592:53;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;101:592:53;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;5314:177:16;-1:-1:-1;5397:13:16;5414:16;5397:33;5414:16;;5433:24;;5314:177;:::o;5397:87::-;101:592:53;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5776:22:16;;101:592:53;;;5627:295:16;;;101:592:53;5659:95:16;101:592:53;;;;;;5820:14:16;101:592:53;;;;5397:13:16;101:592:53;;;;5899:4:16;101:592:53;;;;;5627:295:16;;101:592:53;;;;;;;;;;;;;;;;;5600:336:16;;5314:177;:::o;101:592:53:-;-1:-1:-1;;;101:592:53;;;;;;;;;;;;;;-1:-1:-1;101:592:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;101:592:53;;;;;;;;;;;-1:-1:-1;;101:592:53;;;;;;;;;;;;;-1:-1:-1;101:592:53;;-1:-1:-1;101:592:53;;-1:-1:-1;101:592:53","linkReferences":{},"immutableReferences":{"25585":[{"start":1657,"length":32}],"25599":[{"start":2485,"length":32}],"25601":[{"start":2524,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","admin()":"f851a440","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/helpers/ArbiterToken.sol\":\"ArbiterToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/helpers/ArbiterToken.sol":"ArbiterToken"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/helpers/ArbiterToken.sol","id":43382,"exportedSymbols":{"ArbiterToken":[43381],"ERC20":[25948]},"nodeType":"SourceUnit","src":"39:655:53","nodes":[{"id":43324,"nodeType":"PragmaDirective","src":"39:24:53","nodes":[],"literals":["solidity","^","0.8",".10"]},{"id":43325,"nodeType":"ImportDirective","src":"65:34:53","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/tokens/ERC20.sol","file":"solmate/tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":43382,"sourceUnit":25949,"symbolAliases":[],"unitAlias":""},{"id":43381,"nodeType":"ContractDefinition","src":"101:592:53","nodes":[{"id":43329,"nodeType":"VariableDeclaration","src":"138:20:53","nodes":[],"constant":false,"functionSelector":"f851a440","mutability":"mutable","name":"admin","nameLocation":"153:5:53","scope":43381,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43328,"name":"address","nodeType":"ElementaryTypeName","src":"138:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":43349,"nodeType":"FunctionDefinition","src":"165:215:53","nodes":[],"body":{"id":43348,"nodeType":"Block","src":"295:85:53","nodes":[],"statements":[{"expression":{"id":43346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43343,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43329,"src":"305:5:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":43344,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"313:3:53","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"317:6:53","memberName":"sender","nodeType":"MemberAccess","src":"313:10:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"305:18:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43347,"nodeType":"ExpressionStatement","src":"305:18:53"}]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":43338,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43331,"src":"271:4:53","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43339,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43333,"src":"277:6:53","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":43340,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43335,"src":"285:8:53","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":43341,"kind":"baseConstructorSpecifier","modifierName":{"id":43337,"name":"ERC20","nameLocations":["265:5:53"],"nodeType":"IdentifierPath","referencedDeclaration":25948,"src":"265:5:53"},"nodeType":"ModifierInvocation","src":"265:29:53"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":43336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43331,"mutability":"mutable","name":"name","nameLocation":"200:4:53","nodeType":"VariableDeclaration","scope":43349,"src":"186:18:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43330,"name":"string","nodeType":"ElementaryTypeName","src":"186:6:53","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43333,"mutability":"mutable","name":"symbol","nameLocation":"228:6:53","nodeType":"VariableDeclaration","scope":43349,"src":"214:20:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43332,"name":"string","nodeType":"ElementaryTypeName","src":"214:6:53","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43335,"mutability":"mutable","name":"decimals","nameLocation":"250:8:53","nodeType":"VariableDeclaration","scope":43349,"src":"244:14:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":43334,"name":"uint8","nodeType":"ElementaryTypeName","src":"244:5:53","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"176:88:53"},"returnParameters":{"id":43342,"nodeType":"ParameterList","parameters":[],"src":"295:0:53"},"scope":43381,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":43361,"nodeType":"ModifierDefinition","src":"408:114:53","nodes":[],"body":{"id":43360,"nodeType":"Block","src":"429:93:53","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":43355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43352,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"447:3:53","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"451:6:53","memberName":"sender","nodeType":"MemberAccess","src":"447:10:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":43354,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43329,"src":"461:5:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"447:19:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6e","id":43356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"468:35:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0ef19aa67a8b89b19419c8977a6a75d04286a47014bf7a3d2ea537634352c8b","typeString":"literal_string \"Only admin can call this function\""},"value":"Only admin can call this function"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e0ef19aa67a8b89b19419c8977a6a75d04286a47014bf7a3d2ea537634352c8b","typeString":"literal_string \"Only admin can call this function\""}],"id":43351,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"439:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":43357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"439:65:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43358,"nodeType":"ExpressionStatement","src":"439:65:53"},{"id":43359,"nodeType":"PlaceholderStatement","src":"514:1:53"}]},"name":"onlyAdmin","nameLocation":"417:9:53","parameters":{"id":43350,"nodeType":"ParameterList","parameters":[],"src":"426:2:53"},"virtual":false,"visibility":"internal"},{"id":43380,"nodeType":"FunctionDefinition","src":"528:163:53","nodes":[],"body":{"id":43379,"nodeType":"Block","src":"630:61:53","nodes":[],"statements":[{"expression":{"arguments":[{"id":43373,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43363,"src":"646:8:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43374,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43365,"src":"656:6:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43372,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25919,"src":"640:5:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":43375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"640:23:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43376,"nodeType":"ExpressionStatement","src":"640:23:53"},{"expression":{"hexValue":"74727565","id":43377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"680:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":43371,"id":43378,"nodeType":"Return","src":"673:11:53"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":43368,"kind":"modifierInvocation","modifierName":{"id":43367,"name":"onlyAdmin","nameLocations":["605:9:53"],"nodeType":"IdentifierPath","referencedDeclaration":43361,"src":"605:9:53"},"nodeType":"ModifierInvocation","src":"605:9:53"}],"name":"mint","nameLocation":"537:4:53","parameters":{"id":43366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43363,"mutability":"mutable","name":"receiver","nameLocation":"559:8:53","nodeType":"VariableDeclaration","scope":43380,"src":"551:16:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43362,"name":"address","nodeType":"ElementaryTypeName","src":"551:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43365,"mutability":"mutable","name":"amount","nameLocation":"585:6:53","nodeType":"VariableDeclaration","scope":43380,"src":"577:14:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43364,"name":"uint256","nodeType":"ElementaryTypeName","src":"577:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"541:56:53"},"returnParameters":{"id":43371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43370,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43380,"src":"624:4:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43369,"name":"bool","nodeType":"ElementaryTypeName","src":"624:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"623:6:53"},"scope":43381,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":43326,"name":"ERC20","nameLocations":["126:5:53"],"nodeType":"IdentifierPath","referencedDeclaration":25948,"src":"126:5:53"},"id":43327,"nodeType":"InheritanceSpecifier","src":"126:5:53"}],"canonicalName":"ArbiterToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[43381,25948],"name":"ArbiterToken","nameLocation":"110:12:53","scope":43382,"usedErrors":[],"usedEvents":[25571,25579]}],"license":"UNLICENSED"},"id":53} \ No newline at end of file diff --git a/out/AtomicV2.sol/AtomicV2.json b/out/AtomicV2.sol/AtomicV2.json deleted file mode 100644 index 5ef9b164..00000000 --- a/out/AtomicV2.sol/AtomicV2.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"solverAddress","type":"address","internalType":"address"},{"name":"exchangeAddress","type":"address","internalType":"address"},{"name":"liquidExchangeAddress","type":"address","internalType":"address"},{"name":"assetAddress","type":"address","internalType":"address"},{"name":"quoteAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"XTOY","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"YTOX","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"asset","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cdf","inputs":[{"name":"input","type":"int256","internalType":"int256"}],"outputs":[{"name":"output","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"cumulativeProfit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"divWadDown","inputs":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"z","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"divWadUp","inputs":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"z","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"exchange","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"intermediateTokenXBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"intermediateTokenYEndBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"intermediateTokenYStartBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"liquidExchange","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"log","inputs":[{"name":"x","type":"int256","internalType":"int256"}],"outputs":[{"name":"z","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"lower_exchange_price","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"input","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mulWadDown","inputs":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"z","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"mulWadUp","inputs":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"z","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"pdf","inputs":[{"name":"input","type":"int256","internalType":"int256"}],"outputs":[{"name":"output","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"ppf","inputs":[{"name":"input","type":"int256","internalType":"int256"}],"outputs":[{"name":"output","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"quote","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"raise_exchange_price","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"input","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"simulateSwap","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"swapXIn","type":"bool","internalType":"bool"},{"name":"amountIn","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"},{"name":"estimatedOut","type":"uint256","internalType":"uint256"},{"name":"estimatedPrice","type":"uint256","internalType":"uint256"},{"name":"payload","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"solver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"sqrt","inputs":[{"name":"x","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"z","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"event","name":"Loss","inputs":[{"name":"loss","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Price","inputs":[{"name":"price","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"timestamp","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Profit","inputs":[{"name":"profit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AttemptedProfit","inputs":[{"name":"profit","type":"int256","internalType":"int256"}]},{"type":"error","name":"DexSwapFailure","inputs":[{"name":"reason","type":"string","internalType":"string"},{"name":"err","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"Infinity","inputs":[]},{"type":"error","name":"InsufficientApprovalY","inputs":[{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"payment","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientBalanceX","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"payment","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientBalanceY","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"payment","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Min","inputs":[]},{"type":"error","name":"NegativeInfinity","inputs":[]},{"type":"error","name":"OutOfBounds","inputs":[]},{"type":"error","name":"SimulatedSwapFailure","inputs":[{"name":"valid","type":"bool","internalType":"bool"},{"name":"estimatedOut","type":"uint256","internalType":"uint256"},{"name":"estimatedPrice","type":"uint256","internalType":"uint256"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"UnprofitableArbitrage","inputs":[{"name":"start_y_balance","type":"uint256","internalType":"uint256"},{"name":"end_y_balance","type":"uint256","internalType":"uint256"},{"name":"absolute_difference","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x608034620000ef57601f6200201738819003918201601f19168301916001600160401b03831184841017620000f45780849260a094604052833981010312620000ef576200004d816200010a565b906200005c602082016200010a565b906200006b604082016200010a565b9162000088608062000080606085016200010a565b93016200010a565b91600161ffff19600954161760095560018060a01b0380948180948160018060a01b0319991689600254161760025516876001541617600155168560005416176000551683600354161760035516906004541617600455604051611ef79081620001208239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620000ef5756fe6080604052600436101561001257600080fd5b60003560e01c80632d5b6cb9146101875780633679723a1461018257806337c6a44a1461017d57806338d52e0f146101785780633928ff971461017357806349a7a26d1461016e5780636449fc5714610169578063677342ce1461016457806372b982461461015f57806385b319ff1461015a578063936520c31461015557806396fbee1d14610150578063999b93af1461014b5780639f27ef4f14610146578063ae9768a814610141578063bd252d061461013c578063d0b71b1e14610137578063d24ce6e514610132578063d2f7265a1461012d578063e524f84914610128578063f3c973cf14610123578063f9005eb51461011e5763fa2e59941461011957600080fd5b61090b565b6107d8565b6107b5565b610775565b61074c565b6106ef565b6106a8565b61065b565b61060f565b6105e6565b6105bd565b610448565b61042a565b61040c565b6103ee565b6103d0565b6103aa565b610381565b6102cb565b610228565b6101db565b6101c3565b6101a3565b602090600319011261019e5760043590565b600080fd5b3461019e5760206101bb6101b63661018c565b610a63565b604051908152f35b3461019e5760206101bb6101d63661018c565b610c82565b3461019e57604036600319011261019e5760043560243590670de0b6b3a7640000908181029181830414901517821515161561019e5760209160405191048152f35b600091031261019e57565b3461019e57600036600319011261019e576003546040516001600160a01b039091168152602090f35b8015150361019e57565b60005b83811061026e5750506000910152565b818101518382015260200161025e565b906020916102978151809281855285808601910161025b565b601f01601f1916010190565b90926080926102c895941515835260208301526040820152816060820152019061027e565b90565b3461019e57606036600319011261019e576024356102e881610251565b600254604051633928ff9760e01b81526004803590820152911515602483015260448035908301526000908190839060649082906001600160a01b03165afa801561037c5781809381809361034f575b50509061034b91604051948594856102a3565b0390f35b9150915061034b935061037492503d8091833e61036c8183610958565b810190610996565b919338610338565b610a10565b3461019e57600036600319011261019e576002546040516001600160a01b039091168152602090f35b3461019e57600036600319011261019e57602060ff60095460081c166040519015158152f35b3461019e57602036600319011261019e5760206101bb600435610e55565b3461019e57600036600319011261019e576020600754604051908152f35b3461019e57600036600319011261019e576020600854604051908152f35b3461019e57600036600319011261019e576020600554604051908152f35b3461019e57604036600319011261019e57600254602435906004359061048490610478906001600160a01b031681565b6001600160a01b031690565b6040516303b4d10360e41b81526004810183905260209390918490839060249082905afa801561037c576104f67fd1353c68e79ef70de84ee90d2facf845ec24895116d4a03505aa41785af71f5a91610510946000916105a0575b506040805191825242602083015290918291820190565b0390a161050281610f13565b60095460081c60ff16611108565b60095460ff1660035461052d90610478906001600160a01b031681565b6040516370a0823160e01b815230600482015292908490849060249082905afa92831561037c5761056794600094610571575b5050611409565b61056f6116e6565b005b610591929450803d10610599575b6105898183610958565b810190610a1c565b913880610560565b503d61057f565b6105b79150873d8911610599576105898183610958565b386104df565b3461019e57600036600319011261019e576004546040516001600160a01b039091168152602090f35b3461019e57600036600319011261019e576000546040516001600160a01b039091168152602090f35b3461019e57604036600319011261019e576004356024359081810291818304149015176001161561019e57602090604051906001670de0b6b3a764000060001983010401901515028152f35b3461019e57604036600319011261019e57600435602435670de0b6b3a7640000918281029281840414901517811515161561019e5760209160016040519260001983010401901515028152f35b3461019e576020671bc16d674ec800006106e66106d66106e16713a04bbdfdc9be886106db6106d63661018c565b610c1a565b05610c71565b611a40565b05604051908152f35b3461019e576106fd3661018c565b61070681610c71565b8082029160008212600160ff1b821416610747578183051490151715610747576722c955229554c1b66106e66106d6671bc16d674ec8000060209405611b65565b610c04565b3461019e57600036600319011261019e576001546040516001600160a01b039091168152602090f35b3461019e57604036600319011261019e576004356024359081810291818304149015176001161561019e57602090670de0b6b3a764000060405191048152f35b3461019e57600036600319011261019e57602060ff600954166040519015158152f35b3461019e57604036600319011261019e57600254600435906024359061080890610478906001600160a01b031681565b6040516303b4d10360e41b8152600481018490526020939092918490849060249082905afa801561037c5761087a7fd1353c68e79ef70de84ee90d2facf845ec24895116d4a03505aa41785af71f5a91610895956000916105a057506040805191825242602083015290918291820190565b0390a161088682610f13565b60095460081c60ff1690611409565b60095460ff166003546108b290610478906001600160a01b031681565b6040516370a0823160e01b815230600482015291908390839060249082905afa91821561037c57610567936000936108ec575b5050611108565b610903929350803d10610599576105898183610958565b9038806108e5565b3461019e57600036600319011261019e576020600654604051908152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161095357604052565b610929565b90601f8019910116810190811067ffffffffffffffff82111761095357604052565b67ffffffffffffffff811161095357601f01601f191660200190565b60808183031261019e5780516109ab81610251565b9260208201519260408301519260608101519067ffffffffffffffff821161019e570181601f8201121561019e5780516109e48161097a565b926109f26040519485610958565b8184526020828401011161019e576102c8916020808501910161025b565b6040513d6000823e3d90fd5b9081602091031261019e575190565b15610a3257565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b886428490610a8f60008213610a2b565b711340daa0d5f769dba1915cef59f0815a5506610aab82611879565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b634e487b7160e01b600052601160045260246000fd5b90670de0b6b3a76400009182810292818405149015171561074757565b90633b9aca009182810292818405149015171561074757565b60008190039190600160ff1b81146001166107475760001983050361074757565b600160ff1b81146107475760000390565b6706f05b59d3b200008114610e4f57670de0b6b3a764000080821215610df9578115610e1a5760018260011b91600293830560020361074757600083128015610e3e575b610e2c578215610df957671bc16d674ec800008314610e1a578212918215610e0b57925b610cf384611d10565b8015610df957610d65610d24610d1f610d1a610d15610d6a9599979699610a63565b611dd1565b610e55565b610c37565b610d60610d38610d3383611d3b565b6118eb565b610d5a610d55610d4f610d4a86611d66565b611903565b85611e48565b61191b565b90611daf565b6116c0565b611df9565b936000925b818410610da157505050506102c891610d8e91600014610d9357611ce9565b610c71565b610d9c90610c71565b611ce9565b9091610def86610de9610db985610d6086999b611a40565b610d5a610dd9610dd4610dcf610d8e8780611e48565b611b65565b611e21565b610de38386611e48565b906116c0565b906119f9565b9501929190610d6f565b6040516307a0212760e01b8152600490fd5b610e1490611684565b92610cea565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec800008313610cc6565b50600090565b60b581600160881b811015610efc575b80690100000000000000000062010000921015610eef575b65010000000000811015610ee2575b6301000000811015610ed5575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b91610e99565b60201c9160101b91610e8c565b60401c9160201b91610e7d565b5068b500000000000000009050608082901c610e65565b60048054909190610f2e90610478906001600160a01b031681565b604080516370a0823160e01b8082523382870190815260209691949193929087908290819083010381855afa90811561037c576000916110eb575b508581106110c857508151636eb1769f60e11b8152338482019081523060208201528790829081906040010381855afa90811561037c576000916110ab575b508581106110845750803b1561019e5781516323b872dd60e01b815233848201908152306020820152604081019690965294600091869182908490829060600103925af192831561037c5761102e94869461106b575b50825461101590610478906001600160a01b031681565b9151908152309281019283529384928391829160200190565b03915afa90811561037c5761104c9260009261104e575b5050600655565b565b6110649250803d10610599576105898183610958565b3880611045565b8061107861107e9261093f565b8061021d565b38610ffe565b825163da56d3c560e01b8152808501918252602082018790529081906040010390fd5b0390fd5b6110c29150873d8911610599576105898183610958565b38610fa8565b8251630abe5a8960e01b8152808501918252602082018790529081906040010390fd5b6111029150873d8911610599576105898183610958565b38610f69565b9091901561120d5760035461112790610478906001600160a01b031681565b600080549091906001600160a01b0316813b156111f65760405163095ea7b360e01b81526001600160a01b03919091166004820152602481018590529082908290604490829084905af1801561037c576111fa575b50805461119390610478906001600160a01b031681565b6003546001600160a01b03169390803b156111f65760405163d004f0f760e01b81526001600160a01b0395909516600486015260248501919091529192918290604490829084905af1801561037c576111e95750565b8061107861104c9261093f565b8280fd5b806110786112079261093f565b3861117c565b60045490919061122790610478906001600160a01b031681565b60008054909291906001600160a01b0316813b156113665760405163095ea7b360e01b81526001600160a01b03919091166004820152602481018390529083908290604490829084905af1801561037c5761136a575b50815461129490610478906001600160a01b031681565b6004546001600160a01b0316813b156113665760405163d004f0f760e01b81526001600160a01b03919091166004820152602481019290925282908290604490829084905af1801561037c57611353575b506003546112fd90610478906001600160a01b031681565b6040516370a0823160e01b815230600482015290602090829060249082905afa90811561037c5761104c9291611334575b50600555565b61134d915060203d602011610599576105898183610958565b3861132e565b806110786113609261093f565b386112e5565b8380fd5b806110786113779261093f565b3861127d565b6040906102c893928152816020820152019061027e565b3d156113bf573d906113a58261097a565b916113b36040519384610958565b82523d6000602084013e565b606090565b9060806102c89260408152601960408201527f4445582073776170206661696c656420776974682064617461000000000000006060820152816020820152019061027e565b9181156115ef5760035461142790610478906001600160a01b031681565b6001546001600160a01b03169390803b1561019e5760405163095ea7b360e01b81526001600160a01b03959095166004860152602485018390526000908590604490829084905af193841561037c576114ce946115dc575b505b60025461149890610478906001600160a01b031681565b604051633928ff9760e01b8152600481018390528415156024820152604481019390935260009485918491829081906064820190565b03915afa91821561037c57848591869087956115ba575b50811561159c5750506001546115069150610478906001600160a01b031681565b90813b1561159857918491611532938360405180968195829463bd0625ab60e01b84526004840161137d565b03925af19081611585575b50611566576110a761154d611394565b6040516367a16b8d60e11b8152918291600483016113c4565b1561156e5750565b6003546112fd90610478906001600160a01b031681565b806110786115929261093f565b3861153d565b8480fd5b846110a791604051948594630314e62360e31b8652600486016102a3565b925050506115d39192503d8086833e61036c8183610958565b939290386114e5565b806110786115e99261093f565b3861147f565b60045461160690610478906001600160a01b031681565b6001546001600160a01b03169390803b1561019e5760405163095ea7b360e01b81526001600160a01b03959095166004860152602485018390526000908590604490829084905af193841561037c576114ce94611664575b50611481565b806110786116719261093f565b3861165e565b9190820391821161074757565b90671bc16d674ec800006000838203931281841281169184139015161761074757565b9067119000ab100ffbff19820191821360011661074757565b8181039291600013801582851316918412161761074757565b9190820180921161074757565b6004546116fd90610478906001600160a01b031681565b6040516370a0823160e01b815230600482015290602090829060249082905afa801561037c576117359160009161185a575b50600755565b600754600654908181106117f0576117717f357d905f1831209797df4d55d79c5c5bf1d9f7311c976afd05e13d881eab9bc89261179592611677565b611785611780826008546116d9565b600855565b6040519081529081906020820190565b0390a16004546117af90610478906001600160a01b031681565b60075490803b1561019e5760405163a9059cbb60e01b815233600482015260248101929092526000908290604490829084905af1801561037c576111e95750565b907fb65b2e085d7d040c313f7d4e1ac90f5937026fee497e0e24a7eff16a55e1c5ea61181f6117858484611677565b0390a16110a761182f83836116c0565b1960405193849363b16e378360e01b8552600485016040919493926060820195825260208201520152565b611873915060203d602011610599576105898183610958565b3861172f565b611884811515610a2b565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b9081672005fe4f268ea0000191821260011661074757565b9081670dc5527f642c20000191821260011661074757565b9081670de0b6b3a76400000191821260011661074757565b9081670b68df18e471fbff19019182121560011661074757565b90816714a8454c19e1ac000191821260011661074757565b9081670fc10e01578277ff19019182121560011661074757565b90816703debd083b8c7c000191821260011661074757565b9081670295d400ea3257ff19019182121560011661074757565b9081670157d8b2ecc708000191821260011661074757565b90816705310aa7d52130000191821260011661074757565b9081670de0cc3d156100000191821260011661074757565b9190916000838201938412911290801582169115161761074757565b670de0b6b3a76400009081810291818304149015176001161561019e57671bc16d674ec80000900490565b8015611b5857675698eef066700000811215610e4f57675698eef0666fffff19811315611b4b576000611b3b611a7583611e94565b611afe610dcf611a8f611a8a610d5585611a15565b611d90565b92611b36611b31611b2c611b25611b1f611b1a611b14611b0f611b09611b048d611afe611af9611af3611aee610d4f611ae9611ae3611ade611ad8611ad38a611e69565b611933565b89611e48565b61194d565b87611e48565b611965565b61197f565b83611e48565b611997565b90611e48565b6119b1565b8c611e48565b6119c9565b8a611e48565b6119e1565b88611e48565b9380611e48565b610c50565b6116a7565b6119f9565b9112156102c8576102c890611684565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b680248ce36a70cb26b3e19811315610e4f57680755bf798b4a1bf1e5811215611cb5576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be8890808202918205146001161561019e57670de0b6b3a7640000900590565b670de0b6b3a76400009081810291818305149015176001161561019e57671bc16d674ec80000900590565b6703c1665c7aab20009081810291818305149015176001161561019e57670de0b6b3a7640000900590565b669f32752462a0009081810291818305149015176001161561019e57670de0b6b3a7640000900590565b6001811515161561019e576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029181830514901517821515161561019e570590565b671bc16d674ec7ffff1981810291600191830514161561019e57670de0b6b3a7640000900590565b6709d028cc6f205fff1981810291600191830514161561019e57670de0b6b3a7640000900590565b670fa8cedfc2adddfa90808202918205146001161561019e57670de0b6b3a7640000900590565b81810291818305149015176001161561019e57670de0b6b3a7640000900590565b67025f0fe105a314009081810291818305149015176001161561019e57670de0b6b3a7640000900590565b600160ff1b8114611eaf5760008112156102c8571960010190565b604051634d2d75b160e01b8152600490fdfea2646970667358221220787851310b35cfa3423fd0c89eb648843841e1769ee31178e9d6b1d6c9514e3b64736f6c63430008160033","sourceMap":"1420:8353:54:-:0;;;;;;;;;;;;;-1:-1:-1;;1420:8353:54;;;;-1:-1:-1;;;;;1420:8353:54;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;3062:4;1420:8353;;3062:4;1420:8353;;;3062:4;1420:8353;;;;;;;;;;;;;;;;;;;;;2864:22;1420:8353;;;2864:22;1420:8353;;;3062:4;1420:8353;;;3062:4;1420:8353;;;-1:-1:-1;1420:8353:54;;;-1:-1:-1;1420:8353:54;;;2980:20;1420:8353;;;2980:20;1420:8353;;;3010:20;1420:8353;;;3010:20;1420:8353;;;;;;;;;;;-1:-1:-1;1420:8353:54;;;;;;-1:-1:-1;1420:8353:54;;;;;-1:-1:-1;1420:8353:54;;;;-1:-1:-1;;;;;1420:8353:54;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c80632d5b6cb9146101875780633679723a1461018257806337c6a44a1461017d57806338d52e0f146101785780633928ff971461017357806349a7a26d1461016e5780636449fc5714610169578063677342ce1461016457806372b982461461015f57806385b319ff1461015a578063936520c31461015557806396fbee1d14610150578063999b93af1461014b5780639f27ef4f14610146578063ae9768a814610141578063bd252d061461013c578063d0b71b1e14610137578063d24ce6e514610132578063d2f7265a1461012d578063e524f84914610128578063f3c973cf14610123578063f9005eb51461011e5763fa2e59941461011957600080fd5b61090b565b6107d8565b6107b5565b610775565b61074c565b6106ef565b6106a8565b61065b565b61060f565b6105e6565b6105bd565b610448565b61042a565b61040c565b6103ee565b6103d0565b6103aa565b610381565b6102cb565b610228565b6101db565b6101c3565b6101a3565b602090600319011261019e5760043590565b600080fd5b3461019e5760206101bb6101b63661018c565b610a63565b604051908152f35b3461019e5760206101bb6101d63661018c565b610c82565b3461019e57604036600319011261019e5760043560243590670de0b6b3a7640000908181029181830414901517821515161561019e5760209160405191048152f35b600091031261019e57565b3461019e57600036600319011261019e576003546040516001600160a01b039091168152602090f35b8015150361019e57565b60005b83811061026e5750506000910152565b818101518382015260200161025e565b906020916102978151809281855285808601910161025b565b601f01601f1916010190565b90926080926102c895941515835260208301526040820152816060820152019061027e565b90565b3461019e57606036600319011261019e576024356102e881610251565b600254604051633928ff9760e01b81526004803590820152911515602483015260448035908301526000908190839060649082906001600160a01b03165afa801561037c5781809381809361034f575b50509061034b91604051948594856102a3565b0390f35b9150915061034b935061037492503d8091833e61036c8183610958565b810190610996565b919338610338565b610a10565b3461019e57600036600319011261019e576002546040516001600160a01b039091168152602090f35b3461019e57600036600319011261019e57602060ff60095460081c166040519015158152f35b3461019e57602036600319011261019e5760206101bb600435610e55565b3461019e57600036600319011261019e576020600754604051908152f35b3461019e57600036600319011261019e576020600854604051908152f35b3461019e57600036600319011261019e576020600554604051908152f35b3461019e57604036600319011261019e57600254602435906004359061048490610478906001600160a01b031681565b6001600160a01b031690565b6040516303b4d10360e41b81526004810183905260209390918490839060249082905afa801561037c576104f67fd1353c68e79ef70de84ee90d2facf845ec24895116d4a03505aa41785af71f5a91610510946000916105a0575b506040805191825242602083015290918291820190565b0390a161050281610f13565b60095460081c60ff16611108565b60095460ff1660035461052d90610478906001600160a01b031681565b6040516370a0823160e01b815230600482015292908490849060249082905afa92831561037c5761056794600094610571575b5050611409565b61056f6116e6565b005b610591929450803d10610599575b6105898183610958565b810190610a1c565b913880610560565b503d61057f565b6105b79150873d8911610599576105898183610958565b386104df565b3461019e57600036600319011261019e576004546040516001600160a01b039091168152602090f35b3461019e57600036600319011261019e576000546040516001600160a01b039091168152602090f35b3461019e57604036600319011261019e576004356024359081810291818304149015176001161561019e57602090604051906001670de0b6b3a764000060001983010401901515028152f35b3461019e57604036600319011261019e57600435602435670de0b6b3a7640000918281029281840414901517811515161561019e5760209160016040519260001983010401901515028152f35b3461019e576020671bc16d674ec800006106e66106d66106e16713a04bbdfdc9be886106db6106d63661018c565b610c1a565b05610c71565b611a40565b05604051908152f35b3461019e576106fd3661018c565b61070681610c71565b8082029160008212600160ff1b821416610747578183051490151715610747576722c955229554c1b66106e66106d6671bc16d674ec8000060209405611b65565b610c04565b3461019e57600036600319011261019e576001546040516001600160a01b039091168152602090f35b3461019e57604036600319011261019e576004356024359081810291818304149015176001161561019e57602090670de0b6b3a764000060405191048152f35b3461019e57600036600319011261019e57602060ff600954166040519015158152f35b3461019e57604036600319011261019e57600254600435906024359061080890610478906001600160a01b031681565b6040516303b4d10360e41b8152600481018490526020939092918490849060249082905afa801561037c5761087a7fd1353c68e79ef70de84ee90d2facf845ec24895116d4a03505aa41785af71f5a91610895956000916105a057506040805191825242602083015290918291820190565b0390a161088682610f13565b60095460081c60ff1690611409565b60095460ff166003546108b290610478906001600160a01b031681565b6040516370a0823160e01b815230600482015291908390839060249082905afa91821561037c57610567936000936108ec575b5050611108565b610903929350803d10610599576105898183610958565b9038806108e5565b3461019e57600036600319011261019e576020600654604051908152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161095357604052565b610929565b90601f8019910116810190811067ffffffffffffffff82111761095357604052565b67ffffffffffffffff811161095357601f01601f191660200190565b60808183031261019e5780516109ab81610251565b9260208201519260408301519260608101519067ffffffffffffffff821161019e570181601f8201121561019e5780516109e48161097a565b926109f26040519485610958565b8184526020828401011161019e576102c8916020808501910161025b565b6040513d6000823e3d90fd5b9081602091031261019e575190565b15610a3257565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b886428490610a8f60008213610a2b565b711340daa0d5f769dba1915cef59f0815a5506610aab82611879565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b634e487b7160e01b600052601160045260246000fd5b90670de0b6b3a76400009182810292818405149015171561074757565b90633b9aca009182810292818405149015171561074757565b60008190039190600160ff1b81146001166107475760001983050361074757565b600160ff1b81146107475760000390565b6706f05b59d3b200008114610e4f57670de0b6b3a764000080821215610df9578115610e1a5760018260011b91600293830560020361074757600083128015610e3e575b610e2c578215610df957671bc16d674ec800008314610e1a578212918215610e0b57925b610cf384611d10565b8015610df957610d65610d24610d1f610d1a610d15610d6a9599979699610a63565b611dd1565b610e55565b610c37565b610d60610d38610d3383611d3b565b6118eb565b610d5a610d55610d4f610d4a86611d66565b611903565b85611e48565b61191b565b90611daf565b6116c0565b611df9565b936000925b818410610da157505050506102c891610d8e91600014610d9357611ce9565b610c71565b610d9c90610c71565b611ce9565b9091610def86610de9610db985610d6086999b611a40565b610d5a610dd9610dd4610dcf610d8e8780611e48565b611b65565b611e21565b610de38386611e48565b906116c0565b906119f9565b9501929190610d6f565b6040516307a0212760e01b8152600490fd5b610e1490611684565b92610cea565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec800008313610cc6565b50600090565b60b581600160881b811015610efc575b80690100000000000000000062010000921015610eef575b65010000000000811015610ee2575b6301000000811015610ed5575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b91610e99565b60201c9160101b91610e8c565b60401c9160201b91610e7d565b5068b500000000000000009050608082901c610e65565b60048054909190610f2e90610478906001600160a01b031681565b604080516370a0823160e01b8082523382870190815260209691949193929087908290819083010381855afa90811561037c576000916110eb575b508581106110c857508151636eb1769f60e11b8152338482019081523060208201528790829081906040010381855afa90811561037c576000916110ab575b508581106110845750803b1561019e5781516323b872dd60e01b815233848201908152306020820152604081019690965294600091869182908490829060600103925af192831561037c5761102e94869461106b575b50825461101590610478906001600160a01b031681565b9151908152309281019283529384928391829160200190565b03915afa90811561037c5761104c9260009261104e575b5050600655565b565b6110649250803d10610599576105898183610958565b3880611045565b8061107861107e9261093f565b8061021d565b38610ffe565b825163da56d3c560e01b8152808501918252602082018790529081906040010390fd5b0390fd5b6110c29150873d8911610599576105898183610958565b38610fa8565b8251630abe5a8960e01b8152808501918252602082018790529081906040010390fd5b6111029150873d8911610599576105898183610958565b38610f69565b9091901561120d5760035461112790610478906001600160a01b031681565b600080549091906001600160a01b0316813b156111f65760405163095ea7b360e01b81526001600160a01b03919091166004820152602481018590529082908290604490829084905af1801561037c576111fa575b50805461119390610478906001600160a01b031681565b6003546001600160a01b03169390803b156111f65760405163d004f0f760e01b81526001600160a01b0395909516600486015260248501919091529192918290604490829084905af1801561037c576111e95750565b8061107861104c9261093f565b8280fd5b806110786112079261093f565b3861117c565b60045490919061122790610478906001600160a01b031681565b60008054909291906001600160a01b0316813b156113665760405163095ea7b360e01b81526001600160a01b03919091166004820152602481018390529083908290604490829084905af1801561037c5761136a575b50815461129490610478906001600160a01b031681565b6004546001600160a01b0316813b156113665760405163d004f0f760e01b81526001600160a01b03919091166004820152602481019290925282908290604490829084905af1801561037c57611353575b506003546112fd90610478906001600160a01b031681565b6040516370a0823160e01b815230600482015290602090829060249082905afa90811561037c5761104c9291611334575b50600555565b61134d915060203d602011610599576105898183610958565b3861132e565b806110786113609261093f565b386112e5565b8380fd5b806110786113779261093f565b3861127d565b6040906102c893928152816020820152019061027e565b3d156113bf573d906113a58261097a565b916113b36040519384610958565b82523d6000602084013e565b606090565b9060806102c89260408152601960408201527f4445582073776170206661696c656420776974682064617461000000000000006060820152816020820152019061027e565b9181156115ef5760035461142790610478906001600160a01b031681565b6001546001600160a01b03169390803b1561019e5760405163095ea7b360e01b81526001600160a01b03959095166004860152602485018390526000908590604490829084905af193841561037c576114ce946115dc575b505b60025461149890610478906001600160a01b031681565b604051633928ff9760e01b8152600481018390528415156024820152604481019390935260009485918491829081906064820190565b03915afa91821561037c57848591869087956115ba575b50811561159c5750506001546115069150610478906001600160a01b031681565b90813b1561159857918491611532938360405180968195829463bd0625ab60e01b84526004840161137d565b03925af19081611585575b50611566576110a761154d611394565b6040516367a16b8d60e11b8152918291600483016113c4565b1561156e5750565b6003546112fd90610478906001600160a01b031681565b806110786115929261093f565b3861153d565b8480fd5b846110a791604051948594630314e62360e31b8652600486016102a3565b925050506115d39192503d8086833e61036c8183610958565b939290386114e5565b806110786115e99261093f565b3861147f565b60045461160690610478906001600160a01b031681565b6001546001600160a01b03169390803b1561019e5760405163095ea7b360e01b81526001600160a01b03959095166004860152602485018390526000908590604490829084905af193841561037c576114ce94611664575b50611481565b806110786116719261093f565b3861165e565b9190820391821161074757565b90671bc16d674ec800006000838203931281841281169184139015161761074757565b9067119000ab100ffbff19820191821360011661074757565b8181039291600013801582851316918412161761074757565b9190820180921161074757565b6004546116fd90610478906001600160a01b031681565b6040516370a0823160e01b815230600482015290602090829060249082905afa801561037c576117359160009161185a575b50600755565b600754600654908181106117f0576117717f357d905f1831209797df4d55d79c5c5bf1d9f7311c976afd05e13d881eab9bc89261179592611677565b611785611780826008546116d9565b600855565b6040519081529081906020820190565b0390a16004546117af90610478906001600160a01b031681565b60075490803b1561019e5760405163a9059cbb60e01b815233600482015260248101929092526000908290604490829084905af1801561037c576111e95750565b907fb65b2e085d7d040c313f7d4e1ac90f5937026fee497e0e24a7eff16a55e1c5ea61181f6117858484611677565b0390a16110a761182f83836116c0565b1960405193849363b16e378360e01b8552600485016040919493926060820195825260208201520152565b611873915060203d602011610599576105898183610958565b3861172f565b611884811515610a2b565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b9081672005fe4f268ea0000191821260011661074757565b9081670dc5527f642c20000191821260011661074757565b9081670de0b6b3a76400000191821260011661074757565b9081670b68df18e471fbff19019182121560011661074757565b90816714a8454c19e1ac000191821260011661074757565b9081670fc10e01578277ff19019182121560011661074757565b90816703debd083b8c7c000191821260011661074757565b9081670295d400ea3257ff19019182121560011661074757565b9081670157d8b2ecc708000191821260011661074757565b90816705310aa7d52130000191821260011661074757565b9081670de0cc3d156100000191821260011661074757565b9190916000838201938412911290801582169115161761074757565b670de0b6b3a76400009081810291818304149015176001161561019e57671bc16d674ec80000900490565b8015611b5857675698eef066700000811215610e4f57675698eef0666fffff19811315611b4b576000611b3b611a7583611e94565b611afe610dcf611a8f611a8a610d5585611a15565b611d90565b92611b36611b31611b2c611b25611b1f611b1a611b14611b0f611b09611b048d611afe611af9611af3611aee610d4f611ae9611ae3611ade611ad8611ad38a611e69565b611933565b89611e48565b61194d565b87611e48565b611965565b61197f565b83611e48565b611997565b90611e48565b6119b1565b8c611e48565b6119c9565b8a611e48565b6119e1565b88611e48565b9380611e48565b610c50565b6116a7565b6119f9565b9112156102c8576102c890611684565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b680248ce36a70cb26b3e19811315610e4f57680755bf798b4a1bf1e5811215611cb5576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be8890808202918205146001161561019e57670de0b6b3a7640000900590565b670de0b6b3a76400009081810291818305149015176001161561019e57671bc16d674ec80000900590565b6703c1665c7aab20009081810291818305149015176001161561019e57670de0b6b3a7640000900590565b669f32752462a0009081810291818305149015176001161561019e57670de0b6b3a7640000900590565b6001811515161561019e576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029181830514901517821515161561019e570590565b671bc16d674ec7ffff1981810291600191830514161561019e57670de0b6b3a7640000900590565b6709d028cc6f205fff1981810291600191830514161561019e57670de0b6b3a7640000900590565b670fa8cedfc2adddfa90808202918205146001161561019e57670de0b6b3a7640000900590565b81810291818305149015176001161561019e57670de0b6b3a7640000900590565b67025f0fe105a314009081810291818305149015176001161561019e57670de0b6b3a7640000900590565b600160ff1b8114611eaf5760008112156102c8571960010190565b604051634d2d75b160e01b8152600490fdfea2646970667358221220787851310b35cfa3423fd0c89eb648843841e1769ee31178e9d6b1d6c9514e3b64736f6c63430008160033","sourceMap":"1420:8353:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;9629:26;1420:8353;;;:::i;:::-;9629:26;:::i;:::-;1420:8353;;;;;;;;;;;8997:19;1420:8353;;;:::i;:::-;8997:19;:::i;1420:8353::-;;;;;;-1:-1:-1;;1420:8353:54;;;;;;;;491:4:18;;7878:392;;;;;;;;;;;;;;;;;;;1420:8353:54;;;;7878:392:18;;1420:8353:54;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;1420:8353:54;;;;2247:20;1420:8353;;;-1:-1:-1;;;;;1420:8353:54;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1420:8353:54;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1420:8353:54;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;1420:8353:54;;;;;;;;;:::i;:::-;8627:6;1420:8353;;;-1:-1:-1;;;8614:60:54;;1420:8353;;;8614:60;;;1420:8353;;;;;;;;;;;;;;;-1:-1:-1;;;;1420:8353:54;;;;;;-1:-1:-1;;;;;1420:8353:54;8614:60;;;;;;;-1:-1:-1;;;;8614:60:54;;;1420:8353;;;;;;;;;;;;;:::i;:::-;;;;8614:60;;;;;1420:8353;8614:60;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;1420:8353::-;;;;;;-1:-1:-1;;1420:8353:54;;;;2220:21;1420:8353;;;-1:-1:-1;;;;;1420:8353:54;;;;;;;;;;;;;;-1:-1:-1;;1420:8353:54;;;;;;3072:24;1420:8353;;;;;;;;;;;;;;;;;;-1:-1:-1;;1420:8353:54;;;;;9739:25;1420:8353;;9739:25;:::i;1420:8353::-;;;;;;-1:-1:-1;;1420:8353:54;;;;;2511:43;1420:8353;;;;;;;;;;;;;-1:-1:-1;;1420:8353:54;;;;;2635:31;1420:8353;;;;;;;;;;;;;-1:-1:-1;;1420:8353:54;;;;;2414:40;1420:8353;;;;;;;;;;;;;-1:-1:-1;;1420:8353:54;;;;3255:6;1420:8353;;;;;;;3242:34;;:20;;-1:-1:-1;;;;;1420:8353:54;3242:20;1420:8353;;-1:-1:-1;;;;;1420:8353:54;;;3242:34;1420:8353;;-1:-1:-1;;;3242:42:54;;1420:8353;3242:42;;1420:8353;;;;;;;;;;;;;;;3242:42;;;;;;3299:29;;3242:42;3442:5;3242:42;-1:-1:-1;3242:42:54;;;1420:8353;-1:-1:-1;1420:8353:54;;;;;;3312:15;1420:8353;;;;;;;;;;;;3299:29;;;;3384:5;;;:::i;:::-;3436:4;1420:8353;;;;;3442:5;:::i;:::-;3436:4;1420:8353;;;3518:5;1420:8353;3508:26;;:16;;-1:-1:-1;;;;;1420:8353:54;3508:16;1420:8353;3508:26;1420:8353;;-1:-1:-1;;;3508:41:54;;3543:4;1420:8353;3508:41;;1420:8353;;;;;;;;;;;3508:41;;;;;;;;;-1:-1:-1;3508:41:54;;;1420:8353;3508:41;;;:::i;:::-;;;:::i;:::-;1420:8353;3508:41;;;;;;;-1:-1:-1;3508:41:54;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;3242:42;;;;;;;;;;;;;;:::i;:::-;;;;1420:8353;;;;;;-1:-1:-1;;1420:8353:54;;;;;;;;-1:-1:-1;;;;;1420:8353:54;;;;;;;;;;;;;;-1:-1:-1;;1420:8353:54;;;;;;;;-1:-1:-1;;;;;1420:8353:54;;;;;;;;;;;;;;-1:-1:-1;;1420:8353:54;;;;;;;;8417:611:18;;;;;;;;;;;;;;;;;1420:8353:54;;;;8417:611:18;;491:4;8417:611;;;;;;;;;;1420:8353:54;;;;;;;;;-1:-1:-1;;1420:8353:54;;;;;;;;491:4:18;8417:611;;;;;;;;;;;;;;;;;;;1420:8353:54;;8417:611:18;1420:8353:54;;8417:611:18;;;;;;;;;;;1420:8353:54;;;;;;;;1949:7:21;7796:11;7768:13;7737:6;2046:20;7694:7;1420:8353:54;;;:::i;:::-;7694:7:21;:::i;:::-;1420:8353:54;7737:6:21;:::i;:::-;7768:13;:::i;7796:11::-;1420:8353:54;;;;;;;;;;;;;;:::i;:::-;8443:2:21;;;:::i;:::-;1905:7;;;;-1:-1:-1;1905:7:21;;-1:-1:-1;;;1905:7:21;;;;;;;;;;;;;;;1622:20;8495:7;8470:10;1949:7;1420:8353:54;;;8470:10:21;:::i;1905:7::-;;:::i;1420:8353:54:-;;;;;;-1:-1:-1;;1420:8353:54;;;;;;;;-1:-1:-1;;;;;1420:8353:54;;;;;;;;;;;;;;-1:-1:-1;;1420:8353:54;;;;;;;;7878:392:18;;;;;;;;;;;;;;;;;1420:8353:54;;491:4:18;1420:8353:54;;7878:392:18;;1420:8353:54;;;;;;;;;-1:-1:-1;;1420:8353:54;;;;;;3043:23;1420:8353;;;;;;;;;;;;;;;;-1:-1:-1;;1420:8353:54;;;;3729:6;1420:8353;;;;;;;3716:34;;:20;;-1:-1:-1;;;;;1420:8353:54;3716:20;1420:8353;3716:34;1420:8353;;-1:-1:-1;;;3716:42:54;;1420:8353;3716:42;;1420:8353;;;;;;;;;;;;;;;;3716:42;;;;;;3773:29;;3716:42;3924:5;3716:42;-1:-1:-1;3716:42:54;;;-1:-1:-1;1420:8353:54;;;;;;3786:15;1420:8353;;;;;;;;;;;;3773:29;;;;3858:5;;;:::i;:::-;3918:4;1420:8353;;;;;3924:5;;:::i;:::-;3918:4;1420:8353;;;3992:5;1420:8353;3982:26;;:16;;-1:-1:-1;;;;;1420:8353:54;3982:16;1420:8353;3982:26;1420:8353;;-1:-1:-1;;;3982:41:54;;4017:4;1420:8353;3982:41;;1420:8353;;;;;;;;;;;3982:41;;;;;;;;;-1:-1:-1;3982:41:54;;;1420:8353;3982:41;;;:::i;:::-;;;;;;;-1:-1:-1;3982:41:54;;;;;;:::i;:::-;;;;;;1420:8353;;;;;;-1:-1:-1;;1420:8353:54;;;;;2460:45;1420:8353;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1420:8353:54;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;1420:8353:54;;;;;;;;;;;;-1:-1:-1;;;1420:8353:54;;;;;;;4596:2947:18;7380:72;4596:2947;4688:27;4700:1;4696:5;;4688:27;:::i;:::-;7125:43;5125:16;;;:::i;:::-;5145:2;1420:8353:54;;;5175:3:18;1420:8353:54;;;5175:3:18;1420:8353:54;;;;;7232:71:18;1420:8353:54;;6411:30:18;1420:8353:54;6343:32:18;1420:8353:54;6274:33:18;1420:8353:54;6205:33:18;1420:8353:54;6136:33:18;1420:8353:54;6068:32:18;1420:8353:54;6001:31:18;1420:8353:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5533:32:18;1420:8353:54;5465:32:18;1420:8353:54;5398:31:18;1420:8353:54;;;;;;;;;;;;;;;;;;;;;;;;6455:304:18;1420:8353:54;;;;;4596:2947:18;:::o;1905:7:21:-;1420:8353:54;;;1905:7:21;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;1774:3;1905:7;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;1905:7:21;;1420:8353:54;1905:7:21;;;-1:-1:-1;;1905:7:21;;;;;:::o;2046:20::-;-1:-1:-1;;;2046:20:21;;;;;;;:::o;9402:337::-;1324:9;9472:21;;9468:43;;1905:7;9525:8;;;;9521:31;;9566:6;;9562:37;;1905:7;;;;9629:1;;1905:7;;;9629:1;1905:7;;;-1:-1:-1;5990:5:21;;:20;;;;9402:337;5986:46;;6046:6;;6042:29;;6090:7;6085:12;;6081:43;;6178:7;;;6177:23;;;;;;1053:19:23;;;:::i;:::-;6257:13:21;;6253:36;;6632:35;6363:55;6370:33;958:19:23;6311:16:21;958:19:23;6311:16:21;;;;;;:::i;:::-;958:19:23;:::i;:::-;6370:33:21;:::i;:::-;6363:55;:::i;:::-;1053:19:23;6481:29:21;958:19:23;;;:::i;:::-;6481:29:21;:::i;:::-;6547:49;958:19:23;6565:29:21;958:19:23;;;:::i;:::-;6565:29:21;:::i;:::-;958:19:23;;:::i;:::-;6547:49:21;:::i;:::-;1053:19:23;;:::i;:::-;6632:35:21;:::i;:::-;958:19:23;:::i;:::-;6689:9:21;-1:-1:-1;6708:336:21;6715:5;;;;;;7058:16;;;;9728:4;7058:16;958:19:23;7058:16:21;;;;;958:19:23;:::i;:::-;9728:4:21;:::i;7058:16::-;7072:2;;;:::i;:::-;958:19:23;:::i;6708:336:21:-;6749:7;;6951:23;6749:7;1053:19:23;6749:12:21;:7;;;;;;:::i;:12::-;6891:42;958:19:23;6848:14:21;6790:16;958:19:23;;;;:::i;6790:16:21:-;6848:14;:::i;:::-;958:19:23;:::i;:::-;;;;;:::i;:::-;6891:42:21;;:::i;1053:19:23:-;6951:23:21;;:::i;:::-;3113:20;;;6708:336;;;;6253:36;1420:8353:54;;-1:-1:-1;;;6279:10:21;;;;;6177:23;6193:7;;;:::i;:::-;6177:23;;;6081:43;1420:8353:54;;-1:-1:-1;;;6106:18:21;;;;;5986:46;1420:8353:54;;-1:-1:-1;;;6019:13:21;;;;;5990:20;5999:11;6003:7;5999:11;;5990:20;;9468:43;9495:16;9509:1;9495:16;:::o;11969:3353:18:-;12038:3278;;-1:-1:-1;;;12038:3278:18;;;;;11969:3353;12038:3278;;;;;;;;11969:3353;12038:3278;;;;;;11969:3353;12038:3278;;;;;;11969:3353;12038:3278;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11969:3353;:::o;12038:3278::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12038:3278:18;;-1:-1:-1;12038:3278:18;;;;;;4149:634:54;4238:5;1420:8353;;4238:5;;1420:8353;4228:26;;:16;;-1:-1:-1;;;;;1420:8353:54;4228:16;1420:8353;4228:26;1420:8353;;;-1:-1:-1;;;4228:38:54;;;4255:10;4228:38;;;1420:8353;;;4228:38;;1420:8353;;;;;;4228:38;;1420:8353;;;;;;4228:38;;;;;;;;;;-1:-1:-1;4228:38:54;;;4149:634;4280:24;;;;4276:107;;-1:-1:-1;1420:8353:54;;-1:-1:-1;;;4430:53:54;;4255:10;4430:53;;;1420:8353;;;4477:4;1420:8353;;;;4477:4;;1420:8353;;;;;;4430:53;;;;;;;;;;-1:-1:-1;4430:53:54;;;4149:634;4497:25;;;;4493:110;;4613:66;;;;;;1420:8353;;-1:-1:-1;;;4613:66:54;;4255:10;4613:66;;;1420:8353;;;4477:4;1420:8353;;;;;;;;;;;;-1:-1:-1;;1420:8353:54;;;;-1:-1:-1;;1420:8353:54;;;;4613:66;;;;;;;;;4735:41;4613:66;;;;;4149:634;-1:-1:-1;1420:8353:54;;4735:26;;:16;;-1:-1:-1;;;;;1420:8353:54;4735:16;1420:8353;4735:26;1420:8353;;4735:41;;;4477:4;4735:41;;;1420:8353;;;;;;;;;;;;;;4735:41;;;;;;;;;;4690:86;4735:41;-1:-1:-1;4735:41:54;;;4149:634;4690:86;;;1420:8353;;4690:86;4149:634::o;4735:41::-;;;;;;-1:-1:-1;4735:41:54;;;;;;:::i;:::-;;;;;4613:66;;;;;;:::i;:::-;;;:::i;:::-;;;;4493:110;1420:8353;;-1:-1:-1;;;4545:47:54;;;;;1420:8353;;;;;;;;;;;;;;4545:47;;;;;;;4430:53;;;;;;;;;;;;;;:::i;:::-;;;;4276:107;1420:8353;;-1:-1:-1;;;4327:45:54;;;;;1420:8353;;;;;;;;;;;;;;4545:47;;;4228:38;;;;;;;;;;;;;;:::i;:::-;;;;4789:877;;;;4856:804;;;4989:5;1420:8353;4979:24;;:16;;-1:-1:-1;;;;;1420:8353:54;4979:16;1420:8353;4979:24;5004:14;1420:8353;;5004:14;;1420:8353;-1:-1:-1;;;;;1420:8353:54;4979:47;;;;;1420:8353;;-1:-1:-1;;;4979:47:54;;-1:-1:-1;;;;;1420:8353:54;;;;4979:47;;;1420:8353;;;;;;;;;;;;;;;;;;4979:47;;;;;;;;4856:804;-1:-1:-1;1420:8353:54;;5099:35;;:30;;-1:-1:-1;;;;;1420:8353:54;5099:30;1420:8353;5099:35;4989:5;1420:8353;-1:-1:-1;;;;;1420:8353:54;;;5099:49;;;;;1420:8353;;-1:-1:-1;;;5099:49:54;;-1:-1:-1;;;;;1420:8353:54;;;;4979:47;5099:49;;1420:8353;;;;;;;;;;;;;;;;;;;5099:49;;;;;;;;4856:804;4789:877::o;5099:49::-;;;;;;:::i;:::-;1420:8353;;;4979:47;;;;;;:::i;:::-;;;;4856:804;5341:5;1420:8353;;;;5331:24;;:16;;-1:-1:-1;;;;;1420:8353:54;5331:16;1420:8353;5331:24;5356:14;1420:8353;;5356:14;;;;-1:-1:-1;;;;;1420:8353:54;5331:47;;;;;1420:8353;;-1:-1:-1;;;5331:47:54;;-1:-1:-1;;;;;1420:8353:54;;;;5341:5;5331:47;;1420:8353;;;;;;;;;;;;;;;;;;5331:47;;;;;;;;4856:804;-1:-1:-1;1420:8353:54;;5451:35;;:30;;-1:-1:-1;;;;;1420:8353:54;5451:30;1420:8353;5451:35;5341:5;1420:8353;-1:-1:-1;;;;;1420:8353:54;5451:49;;;;;1420:8353;;-1:-1:-1;;;5451:49:54;;-1:-1:-1;;;;;1420:8353:54;;;;5341:5;5451:49;;1420:8353;;;;;;;;;;;;;;;;;;5451:49;;;;;;;;4856:804;-1:-1:-1;5618:5:54;1420:8353;5608:26;;:16;;-1:-1:-1;;;;;1420:8353:54;5608:16;1420:8353;5608:26;1420:8353;;-1:-1:-1;;;5608:41:54;;5643:4;5341:5;5608:41;;1420:8353;;5608:41;;1420:8353;;;;;;5608:41;;;;;;;5564:85;5608:41;;;;4856:804;5564:85;;1420:8353;;5608:41;;;;;;;;;;;;;;:::i;:::-;;;;5451:49;;;;;;:::i;:::-;;;;;1420:8353;;;5331:47;;;;;;:::i;:::-;;;;1420:8353;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1420:8353:54;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5672:1592::-;;5788:337;;;;5915:5;1420:8353;5905:24;;:16;;-1:-1:-1;;;;;1420:8353:54;5905:16;1420:8353;5905:24;5930:8;1420:8353;-1:-1:-1;;;;;1420:8353:54;;;5905:44;;;;;1420:8353;;-1:-1:-1;;;5905:44:54;;-1:-1:-1;;;;;1420:8353:54;;;;5905:44;;;1420:8353;;;;;;;-1:-1:-1;;1420:8353:54;;;;;;-1:-1:-1;;5905:44:54;;;;;;;6418:60;5905:44;;;5788:337;;;6431:6;1420:8353;6418:33;;:20;;-1:-1:-1;;;;;1420:8353:54;6418:20;1420:8353;6418:33;1420:8353;;-1:-1:-1;;;6418:60:54;;;;;1420:8353;;;;;;;;;;;;;;;;;6418:60;;;;1420:8353;;;;;;;;;;;6418:60;;;;;;;;;;;;;;;;;;;5788:337;6493:6;;;6489:140;;-1:-1:-1;;6685:8:54;1420:8353;6672:27;;-1:-1:-1;6672:22:54;;-1:-1:-1;;;;;1420:8353:54;6672:22;1420:8353;6672:27;:44;;;;;;1420:8353;;;6672:44;1420:8353;;;;;;;;;;;;;6672:44;;6418:60;6672:44;;;:::i;:::-;;;;;;;;;5788:337;-1:-1:-1;6668:590:54;;7199:48;7153:105;;:::i;:::-;1420:8353;;-1:-1:-1;;;7199:48:54;;1420:8353;;;6418:60;7199:48;;;:::i;6668:590::-;6816:326;;;6668:590;5672:1592::o;6816:326::-;7096:5;1420:8353;7086:26;;:16;;-1:-1:-1;;;;;1420:8353:54;7086:16;1420:8353;6672:44;;;;;;:::i;:::-;;;;;1420:8353;;;6489:140;1420:8353;6522:96;1420:8353;;;6522:96;;;;;;;;6418:60;6522:96;;;:::i;6418:60::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;5905:44;;;;;;:::i;:::-;;;;5788:337;6080:5;1420:8353;6070:24;;:16;;-1:-1:-1;;;;;1420:8353:54;6070:16;1420:8353;6070:24;6095:8;1420:8353;-1:-1:-1;;;;;1420:8353:54;;;6070:44;;;;;1420:8353;;-1:-1:-1;;;6070:44:54;;-1:-1:-1;;;;;1420:8353:54;;;;6080:5;6070:44;;1420:8353;;;;;;;-1:-1:-1;;1420:8353:54;;;;;;-1:-1:-1;;6070:44:54;;;;;;;6418:60;6070:44;;;5788:337;;;;6070:44;;;;;;:::i;:::-;;;;1420:8353;;;;;;;;;;:::o;:::-;;6090:7:21;1420:8353:54;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;1420:8353:54;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;7270:1034::-;7394:5;1420:8353;7384:26;;:16;;-1:-1:-1;;;;;1420:8353:54;7384:16;1420:8353;7384:26;1420:8353;;-1:-1:-1;;;7384:41:54;;7419:4;7394:5;7384:41;;1420:8353;;7384:41;;1420:8353;;;;;;7384:41;;;;;;7353:72;7384:41;-1:-1:-1;7384:41:54;;;7270:1034;7353:72;;1420:8353;;7353:72;;1420:8353;7471:30;1420:8353;7440:61;;;;7436:563;;8093:61;8205:14;8093:61;8205:14;8093:61;;:::i;:::-;8164:26;;1420:8353;8164:26;1420:8353;8164:26;:::i;:::-;;1420:8353;;8164:26;1420:8353;;;;;;;;;;;;;8205:14;;;;7394:5;1420:8353;8230:25;;:16;;-1:-1:-1;;;;;1420:8353:54;8230:16;1420:8353;8230:25;7353:72;1420:8353;8230:67;;;;;;1420:8353;;-1:-1:-1;;;8230:67:54;;8256:10;7394:5;8230:67;;1420:8353;;;;;;;;-1:-1:-1;;1420:8353:54;;;;;;-1:-1:-1;;8230:67:54;;;;;;;;7270:1034;:::o;7436:563::-;7544:61;7522:97;;7544:61;;;;:::i;7522:97::-;;;;7640:348;7829:105;;;;:::i;:::-;7802:154;1420:8353;;7640:348;;;;;;;;7394:5;7640:348;;1420:8353;;;;;;;;;;;;;;;;;;7384:41;;;;;;;;;;;;;;:::i;:::-;;;;15328:575:18;15397:27;15405:5;;;15397:27;:::i;:::-;15435:462;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:575;:::o;2913:18:21:-;;;2852:20;2913:18;;;;;;;;:::o;:::-;;;2980;2913;;;;;;;;:::o;:::-;;;1905:7;2913:18;;;;;;;;:::o;:::-;;2650:19;;;2913:18;;;;;;;;;:::o;:::-;;;2590:20;2913:18;;;;;;;;:::o;:::-;;2529:21;;;2913:18;;;;;;;;;:::o;:::-;;;2463;2913;;;;;;;;:::o;:::-;;2396:19;;;2913:18;;;;;;;;;:::o;:::-;;;2331:17;2913:18;;;;;;;;:::o;:::-;;;2265;2913;;;;;;;;:::o;:::-;;;2205:20;2913:18;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;7741:535:18:-;1905:7:21;7878:392:18;;;;;;;;;;;;;;;;;1378:7:21;7878:392:18;;7741:535;:::o;4268:1017:21:-;4348:10;;4344:26;;1500:10;4384:26;;;4380:40;;-1:-1:-1;;4434:26:21;;;4430:42;;-1:-1:-1;958:19:23;4495:11:21;;;:::i;:::-;5188:10;5094:60;1053:19:23;4548:38:21;965:21:18;;;:::i;4548:38:21:-;1053:19:23;:::i;:::-;958;5095:51:21;:42;958:19:23;;4962:98:21;958:19:23;4984:74:21;958:19:23;5006:50:21;958:19:23;;5028:26:21;958:19:23;4762:100:21;958:19:23;4784:76:21;958:19:23;4806:52:21;958:19:23;4828:28:21;958:19:23;;;:::i;:::-;4828:28:21;:::i;:::-;958:19:23;;:::i;:::-;4806:52:21;:::i;:::-;958:19:23;;:::i;:::-;4784:76:21;:::i;958:19:23:-;4762:100:21;:::i;:::-;958:19:23;;:::i;:::-;5028:26:21;:::i;:::-;958:19:23;;:::i;:::-;5006:50:21;:::i;:::-;958:19:23;;:::i;:::-;4984:74:21;:::i;:::-;958:19:23;;:::i;:::-;4962:98:21;:::i;:::-;958:19:23;;:::i;:::-;;;;:::i;:::-;5095:42:21;:::i;:::-;:51;:::i;:::-;5094:60;:::i;958:19:23:-;5253:25:21;5254:9;-1:-1:-1;;;5267:7:21;;;:::i;4430:42::-;4462:10;1949:7;4462:10;:::o;4344:26::-;4360:10;1905:7;4360:10;:::o;1487:3103:18:-;-1:-1:-1;;1713:26:18;;;1709:40;;1948:21;1943:26;;;1939:54;;2266:5;1420:8353:54;;;;4502:49:18;2559:29;1420:8353:54;;2591:5:18;1420:8353:54;2591:5:18;;1420:8353:54;;;;;;;;;;;;;;2874:31:18;1420:8353:54;;;;;;3074:35:18;3649;1420:8353:54;;;;3508:34:18;1420:8353:54;;;;3371:32:18;1420:8353:54;;;;;;;;;;;;;;;;;;;;;;;;;3136:40:18;;;;1420:8353:54;2941:32:18;1420:8353:54;;;;;;;;;;;;;;;3699:327:18;1420:8353:54;;4564:3:18;1420:8353:54;;1487:3103:18;:::o;1939:54::-;1420:8353:54;;-1:-1:-1;;;1971:22:18;;1420:8353:54;1971:22:18;;;1420:8353:54;;;;;;-1:-1:-1;;;1420:8353:54;;;;;;4545:47;405:480:23;2046:20:21;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;1905:7:21;503:380:23;;;;;;;;;;;;;;;;;6090:7:21;503:380:23;;405:480;:::o;:::-;2913:18:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;3047:17:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;503:380;;;;;;;;;;405:480;:::o;:::-;1905:7:21;503:380:23;;;;;;;;;;;;;;;;;;;;405:480;:::o;:::-;-1:-1:-1;;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;-1:-1:-1;;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;3113:20:21;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;503:380;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;2717:18:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;71:276::-;-1:-1:-1;;;138:25:23;;134:43;;195:1;187:9;;195:1;;;208:61;;;;71:276::o;134:43::-;1420:8353:54;;-1:-1:-1;;;172:5:23;;;;","linkReferences":{}},"methodIdentifiers":{"XTOY()":"f3c973cf","YTOX()":"6449fc57","asset()":"38d52e0f","cdf(int256)":"d0b71b1e","cumulativeProfit()":"85b319ff","divWadDown(uint256,uint256)":"37c6a44a","divWadUp(uint256,uint256)":"bd252d06","exchange()":"d2f7265a","intermediateTokenXBalance()":"936520c3","intermediateTokenYEndBalance()":"72b98246","intermediateTokenYStartBalance()":"fa2e5994","liquidExchange()":"9f27ef4f","log(int256)":"2d5b6cb9","lower_exchange_price(uint256,uint256)":"96fbee1d","mulWadDown(uint256,uint256)":"e524f849","mulWadUp(uint256,uint256)":"ae9768a8","pdf(int256)":"d24ce6e5","ppf(int256)":"3679723a","quote()":"999b93af","raise_exchange_price(uint256,uint256)":"f9005eb5","simulateSwap(uint256,bool,uint256)":"3928ff97","solver()":"49a7a26d","sqrt(uint256)":"677342ce"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"solverAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"exchangeAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"liquidExchangeAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"assetAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"quoteAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"profit\",\"type\":\"int256\"}],\"name\":\"AttemptedProfit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"DexSwapFailure\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Infinity\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"}],\"name\":\"InsufficientApprovalY\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalanceX\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalanceY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Min\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NegativeInfinity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"estimatedOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"estimatedPrice\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"SimulatedSwapFailure\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start_y_balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end_y_balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"absolute_difference\",\"type\":\"uint256\"}],\"name\":\"UnprofitableArbitrage\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"loss\",\"type\":\"uint256\"}],\"name\":\"Loss\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"Price\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"profit\",\"type\":\"uint256\"}],\"name\":\"Profit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"XTOY\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"YTOX\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"input\",\"type\":\"int256\"}],\"name\":\"cdf\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"output\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cumulativeProfit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"name\":\"divWadDown\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"z\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"name\":\"divWadUp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"z\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exchange\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"intermediateTokenXBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"intermediateTokenYEndBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"intermediateTokenYStartBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"liquidExchange\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"x\",\"type\":\"int256\"}],\"name\":\"log\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"z\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\"}],\"name\":\"lower_exchange_price\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"name\":\"mulWadDown\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"z\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"name\":\"mulWadUp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"z\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"input\",\"type\":\"int256\"}],\"name\":\"pdf\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"output\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"input\",\"type\":\"int256\"}],\"name\":\"ppf\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"output\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quote\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\"}],\"name\":\"raise_exchange_price\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"swapXIn\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"name\":\"simulateSwap\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"estimatedOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"estimatedPrice\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"solver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"sqrt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"z\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Takes Y tokens from Arbitrageur, swaps on either LEX or DEX, then swaps on the opposite exchange and returns the output Y tokens to Arbitrageur.\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"cumulativeProfit\":{\"details\":\"Accumulates the profit from each arbitrage loop in Y tokens.\"},\"intermediateTokenXBalance\":{\"details\":\"Since token x is transferred inside the arbitrage loop, this stores that value in the last arb loop.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/helpers/AtomicV2.sol\":\"AtomicV2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/test/helpers/AtomicV2.sol\":{\"keccak256\":\"0xa19f56ab0a72272bc46fa1f6b1438ca036c2c3d957b6b40c9cebbed7fb21d05b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6f3807847572c311c041cdc27772c0b467f402998c3d036c0bfb30d6581b620d\",\"dweb:/ipfs/QmZXWhCdQhXbwMUpF9QAPt8QQQ3oxYKdge41tSH7U3gFNW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"solverAddress","type":"address"},{"internalType":"address","name":"exchangeAddress","type":"address"},{"internalType":"address","name":"liquidExchangeAddress","type":"address"},{"internalType":"address","name":"assetAddress","type":"address"},{"internalType":"address","name":"quoteAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"int256","name":"profit","type":"int256"}],"type":"error","name":"AttemptedProfit"},{"inputs":[{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"err","type":"bytes"}],"type":"error","name":"DexSwapFailure"},{"inputs":[],"type":"error","name":"Infinity"},{"inputs":[{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"payment","type":"uint256"}],"type":"error","name":"InsufficientApprovalY"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"payment","type":"uint256"}],"type":"error","name":"InsufficientBalanceX"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"payment","type":"uint256"}],"type":"error","name":"InsufficientBalanceY"},{"inputs":[],"type":"error","name":"Min"},{"inputs":[],"type":"error","name":"NegativeInfinity"},{"inputs":[],"type":"error","name":"OutOfBounds"},{"inputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"uint256","name":"estimatedOut","type":"uint256"},{"internalType":"uint256","name":"estimatedPrice","type":"uint256"},{"internalType":"bytes","name":"payload","type":"bytes"}],"type":"error","name":"SimulatedSwapFailure"},{"inputs":[{"internalType":"uint256","name":"start_y_balance","type":"uint256"},{"internalType":"uint256","name":"end_y_balance","type":"uint256"},{"internalType":"uint256","name":"absolute_difference","type":"uint256"}],"type":"error","name":"UnprofitableArbitrage"},{"inputs":[{"internalType":"uint256","name":"loss","type":"uint256","indexed":false}],"type":"event","name":"Loss","anonymous":false},{"inputs":[{"internalType":"uint256","name":"price","type":"uint256","indexed":false},{"internalType":"uint256","name":"timestamp","type":"uint256","indexed":false}],"type":"event","name":"Price","anonymous":false},{"inputs":[{"internalType":"uint256","name":"profit","type":"uint256","indexed":false}],"type":"event","name":"Profit","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"XTOY","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"YTOX","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"int256","name":"input","type":"int256"}],"stateMutability":"pure","type":"function","name":"cdf","outputs":[{"internalType":"int256","name":"output","type":"int256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"cumulativeProfit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"stateMutability":"pure","type":"function","name":"divWadDown","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"stateMutability":"pure","type":"function","name":"divWadUp","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"exchange","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"intermediateTokenXBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"intermediateTokenYEndBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"intermediateTokenYStartBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"liquidExchange","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"int256","name":"x","type":"int256"}],"stateMutability":"pure","type":"function","name":"log","outputs":[{"internalType":"int256","name":"z","type":"int256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"input","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"lower_exchange_price"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"stateMutability":"pure","type":"function","name":"mulWadDown","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"stateMutability":"pure","type":"function","name":"mulWadUp","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}]},{"inputs":[{"internalType":"int256","name":"input","type":"int256"}],"stateMutability":"pure","type":"function","name":"pdf","outputs":[{"internalType":"int256","name":"output","type":"int256"}]},{"inputs":[{"internalType":"int256","name":"input","type":"int256"}],"stateMutability":"pure","type":"function","name":"ppf","outputs":[{"internalType":"int256","name":"output","type":"int256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"quote","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"input","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"raise_exchange_price"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bool","name":"swapXIn","type":"bool"},{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"view","type":"function","name":"simulateSwap","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"uint256","name":"estimatedOut","type":"uint256"},{"internalType":"uint256","name":"estimatedPrice","type":"uint256"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"solver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"stateMutability":"pure","type":"function","name":"sqrt","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/helpers/AtomicV2.sol":"AtomicV2"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/test/helpers/AtomicV2.sol":{"keccak256":"0xa19f56ab0a72272bc46fa1f6b1438ca036c2c3d957b6b40c9cebbed7fb21d05b","urls":["bzz-raw://6f3807847572c311c041cdc27772c0b467f402998c3d036c0bfb30d6581b620d","dweb:/ipfs/QmZXWhCdQhXbwMUpF9QAPt8QQQ3oxYKdge41tSH7U3gFNW"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/helpers/AtomicV2.sol","id":44179,"exportedSymbols":{"AtomicV2":[44178],"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"FixedPointMathLib":[26640],"Gaussian":[27374],"LiquidExchange":[43400],"Min":[27736],"StrategyLike":[43443],"TokenLike":[43483],"abs":[27763],"bisection":[31118],"console2":[25512],"diviWad":[27813],"muli":[27777],"muliWad":[27795]},"nodeType":"SourceUnit","src":"39:9735:54","nodes":[{"id":43383,"nodeType":"PragmaDirective","src":"39:24:54","nodes":[],"literals":["solidity","^","0.8",".14"]},{"id":43384,"nodeType":"ImportDirective","src":"65:30:54","nodes":[],"absolutePath":"lib/solstat/src/Gaussian.sol","file":"solstat/Gaussian.sol","nameLocation":"-1:-1:-1","scope":44179,"sourceUnit":27375,"symbolAliases":[],"unitAlias":""},{"id":43385,"nodeType":"ImportDirective","src":"96:45:54","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol","file":"solmate/utils/FixedPointMathLib.sol","nameLocation":"-1:-1:-1","scope":44179,"sourceUnit":26641,"symbolAliases":[],"unitAlias":""},{"id":43386,"nodeType":"ImportDirective","src":"142:38:54","nodes":[],"absolutePath":"src/solvers/BisectionLib.sol","file":"src/solvers/BisectionLib.sol","nameLocation":"-1:-1:-1","scope":44179,"sourceUnit":31119,"symbolAliases":[],"unitAlias":""},{"id":43387,"nodeType":"ImportDirective","src":"181:32:54","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/console2.sol","file":"forge-std/console2.sol","nameLocation":"-1:-1:-1","scope":44179,"sourceUnit":25513,"symbolAliases":[],"unitAlias":""},{"id":43400,"nodeType":"ContractDefinition","src":"215:136:54","nodes":[{"id":43394,"nodeType":"FunctionDefinition","src":"246:54:54","nodes":[],"functionSelector":"d004f0f7","implemented":false,"kind":"function","modifiers":[],"name":"swap","nameLocation":"255:4:54","parameters":{"id":43392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43389,"mutability":"mutable","name":"token","nameLocation":"268:5:54","nodeType":"VariableDeclaration","scope":43394,"src":"260:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43388,"name":"address","nodeType":"ElementaryTypeName","src":"260:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43391,"mutability":"mutable","name":"amount","nameLocation":"283:6:54","nodeType":"VariableDeclaration","scope":43394,"src":"275:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43390,"name":"uint256","nodeType":"ElementaryTypeName","src":"275:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"259:31:54"},"returnParameters":{"id":43393,"nodeType":"ParameterList","parameters":[],"src":"299:0:54"},"scope":43400,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43399,"nodeType":"FunctionDefinition","src":"305:44:54","nodes":[],"functionSelector":"a035b1fe","implemented":false,"kind":"function","modifiers":[],"name":"price","nameLocation":"314:5:54","parameters":{"id":43395,"nodeType":"ParameterList","parameters":[],"src":"319:2:54"},"returnParameters":{"id":43398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43397,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43399,"src":"340:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43396,"name":"uint256","nodeType":"ElementaryTypeName","src":"340:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"339:9:54"},"scope":43400,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"LiquidExchange","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[43400],"name":"LiquidExchange","nameLocation":"225:14:54","scope":44179,"usedErrors":[],"usedEvents":[]},{"id":43443,"nodeType":"ContractDefinition","src":"353:585:54","nodes":[{"id":43407,"nodeType":"FunctionDefinition","src":"382:60:54","nodes":[],"functionSelector":"bd0625ab","implemented":false,"kind":"function","modifiers":[],"name":"swap","nameLocation":"391:4:54","parameters":{"id":43405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43402,"mutability":"mutable","name":"poolId","nameLocation":"404:6:54","nodeType":"VariableDeclaration","scope":43407,"src":"396:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43401,"name":"uint256","nodeType":"ElementaryTypeName","src":"396:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43404,"mutability":"mutable","name":"data","nameLocation":"427:4:54","nodeType":"VariableDeclaration","scope":43407,"src":"412:19:54","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":43403,"name":"bytes","nodeType":"ElementaryTypeName","src":"412:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"395:37:54"},"returnParameters":{"id":43406,"nodeType":"ParameterList","parameters":[],"src":"441:0:54"},"scope":43443,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43424,"nodeType":"FunctionDefinition","src":"447:285:54","nodes":[],"functionSelector":"3928ff97","implemented":false,"kind":"function","modifiers":[],"name":"simulateSwap","nameLocation":"456:12:54","parameters":{"id":43414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43409,"mutability":"mutable","name":"poolId","nameLocation":"486:6:54","nodeType":"VariableDeclaration","scope":43424,"src":"478:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43408,"name":"uint256","nodeType":"ElementaryTypeName","src":"478:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43411,"mutability":"mutable","name":"swapXIn","nameLocation":"507:7:54","nodeType":"VariableDeclaration","scope":43424,"src":"502:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43410,"name":"bool","nodeType":"ElementaryTypeName","src":"502:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43413,"mutability":"mutable","name":"amountIn","nameLocation":"532:8:54","nodeType":"VariableDeclaration","scope":43424,"src":"524:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43412,"name":"uint256","nodeType":"ElementaryTypeName","src":"524:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"468:78:54"},"returnParameters":{"id":43423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43416,"mutability":"mutable","name":"valid","nameLocation":"612:5:54","nodeType":"VariableDeclaration","scope":43424,"src":"607:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43415,"name":"bool","nodeType":"ElementaryTypeName","src":"607:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43418,"mutability":"mutable","name":"estimatedOut","nameLocation":"639:12:54","nodeType":"VariableDeclaration","scope":43424,"src":"631:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43417,"name":"uint256","nodeType":"ElementaryTypeName","src":"631:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43420,"mutability":"mutable","name":"estimatedPrice","nameLocation":"673:14:54","nodeType":"VariableDeclaration","scope":43424,"src":"665:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43419,"name":"uint256","nodeType":"ElementaryTypeName","src":"665:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43422,"mutability":"mutable","name":"payload","nameLocation":"714:7:54","nodeType":"VariableDeclaration","scope":43424,"src":"701:20:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43421,"name":"bytes","nodeType":"ElementaryTypeName","src":"701:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"593:138:54"},"scope":43443,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":43431,"nodeType":"FunctionDefinition","src":"737:71:54","nodes":[],"functionSelector":"3b4d1030","implemented":false,"kind":"function","modifiers":[],"name":"internalPrice","nameLocation":"746:13:54","parameters":{"id":43427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43426,"mutability":"mutable","name":"poolId","nameLocation":"768:6:54","nodeType":"VariableDeclaration","scope":43431,"src":"760:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43425,"name":"uint256","nodeType":"ElementaryTypeName","src":"760:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"759:16:54"},"returnParameters":{"id":43430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43429,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43431,"src":"799:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43428,"name":"uint256","nodeType":"ElementaryTypeName","src":"799:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"798:9:54"},"scope":43443,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":43442,"nodeType":"FunctionDefinition","src":"813:123:54","nodes":[],"functionSelector":"ce153bf4","implemented":false,"kind":"function","modifiers":[],"name":"getReservesAndLiquidity","nameLocation":"822:23:54","parameters":{"id":43434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43433,"mutability":"mutable","name":"poolId","nameLocation":"854:6:54","nodeType":"VariableDeclaration","scope":43442,"src":"846:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43432,"name":"uint256","nodeType":"ElementaryTypeName","src":"846:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"845:16:54"},"returnParameters":{"id":43441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43436,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43442,"src":"909:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43435,"name":"uint256","nodeType":"ElementaryTypeName","src":"909:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43442,"src":"918:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43437,"name":"uint256","nodeType":"ElementaryTypeName","src":"918:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43440,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43442,"src":"927:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43439,"name":"uint256","nodeType":"ElementaryTypeName","src":"927:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"908:27:54"},"scope":43443,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"StrategyLike","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[43443],"name":"StrategyLike","nameLocation":"363:12:54","scope":44179,"usedErrors":[],"usedEvents":[]},{"id":43483,"nodeType":"ContractDefinition","src":"940:324:54","nodes":[{"id":43452,"nodeType":"FunctionDefinition","src":"966:58:54","nodes":[],"functionSelector":"23b872dd","implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"975:12:54","parameters":{"id":43450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43445,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43452,"src":"988:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43444,"name":"address","nodeType":"ElementaryTypeName","src":"988:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43447,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43452,"src":"997:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43446,"name":"address","nodeType":"ElementaryTypeName","src":"997:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43449,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43452,"src":"1006:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43448,"name":"uint256","nodeType":"ElementaryTypeName","src":"1006:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"987:27:54"},"returnParameters":{"id":43451,"nodeType":"ParameterList","parameters":[],"src":"1023:0:54"},"scope":43483,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43459,"nodeType":"FunctionDefinition","src":"1029:45:54","nodes":[],"functionSelector":"a9059cbb","implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1038:8:54","parameters":{"id":43457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43454,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43459,"src":"1047:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43453,"name":"address","nodeType":"ElementaryTypeName","src":"1047:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43459,"src":"1056:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43455,"name":"uint256","nodeType":"ElementaryTypeName","src":"1056:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1046:18:54"},"returnParameters":{"id":43458,"nodeType":"ParameterList","parameters":[],"src":"1073:0:54"},"scope":43483,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43466,"nodeType":"FunctionDefinition","src":"1079:44:54","nodes":[],"functionSelector":"095ea7b3","implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"1088:7:54","parameters":{"id":43464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43466,"src":"1096:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43460,"name":"address","nodeType":"ElementaryTypeName","src":"1096:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43463,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43466,"src":"1105:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43462,"name":"uint256","nodeType":"ElementaryTypeName","src":"1105:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1095:18:54"},"returnParameters":{"id":43465,"nodeType":"ParameterList","parameters":[],"src":"1122:0:54"},"scope":43483,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43473,"nodeType":"FunctionDefinition","src":"1128:60:54","nodes":[],"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1137:9:54","parameters":{"id":43469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43468,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43473,"src":"1147:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43467,"name":"address","nodeType":"ElementaryTypeName","src":"1147:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1146:9:54"},"returnParameters":{"id":43472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43471,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43473,"src":"1179:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43470,"name":"uint256","nodeType":"ElementaryTypeName","src":"1179:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1178:9:54"},"scope":43483,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":43482,"nodeType":"FunctionDefinition","src":"1193:69:54","nodes":[],"functionSelector":"dd62ed3e","implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1202:9:54","parameters":{"id":43478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43475,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43482,"src":"1212:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43474,"name":"address","nodeType":"ElementaryTypeName","src":"1212:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43477,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43482,"src":"1221:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43476,"name":"address","nodeType":"ElementaryTypeName","src":"1221:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1211:18:54"},"returnParameters":{"id":43481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43480,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43482,"src":"1253:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43479,"name":"uint256","nodeType":"ElementaryTypeName","src":"1253:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1252:9:54"},"scope":43483,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"TokenLike","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[43483],"name":"TokenLike","nameLocation":"950:9:54","scope":44179,"usedErrors":[],"usedEvents":[]},{"id":44178,"nodeType":"ContractDefinition","src":"1420:8353:54","nodes":[{"id":43487,"nodeType":"UsingForDirective","src":"1444:35:54","nodes":[],"global":false,"libraryName":{"id":43485,"name":"FixedPointMathLib","nameLocations":["1450:17:54"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"1450:17:54"},"typeName":{"id":43486,"name":"int256","nodeType":"ElementaryTypeName","src":"1472:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":43490,"nodeType":"UsingForDirective","src":"1484:36:54","nodes":[],"global":false,"libraryName":{"id":43488,"name":"FixedPointMathLib","nameLocations":["1490:17:54"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"1490:17:54"},"typeName":{"id":43489,"name":"uint256","nodeType":"ElementaryTypeName","src":"1512:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":43496,"nodeType":"ErrorDefinition","src":"1526:61:54","nodes":[],"errorSelector":"0abe5a89","name":"InsufficientBalanceY","nameLocation":"1532:20:54","parameters":{"id":43495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43492,"mutability":"mutable","name":"balance","nameLocation":"1561:7:54","nodeType":"VariableDeclaration","scope":43496,"src":"1553:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43491,"name":"uint256","nodeType":"ElementaryTypeName","src":"1553:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43494,"mutability":"mutable","name":"payment","nameLocation":"1578:7:54","nodeType":"VariableDeclaration","scope":43496,"src":"1570:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43493,"name":"uint256","nodeType":"ElementaryTypeName","src":"1570:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1552:34:54"}},{"id":43502,"nodeType":"ErrorDefinition","src":"1592:61:54","nodes":[],"errorSelector":"0295b09c","name":"InsufficientBalanceX","nameLocation":"1598:20:54","parameters":{"id":43501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43498,"mutability":"mutable","name":"balance","nameLocation":"1627:7:54","nodeType":"VariableDeclaration","scope":43502,"src":"1619:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43497,"name":"uint256","nodeType":"ElementaryTypeName","src":"1619:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43500,"mutability":"mutable","name":"payment","nameLocation":"1644:7:54","nodeType":"VariableDeclaration","scope":43502,"src":"1636:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43499,"name":"uint256","nodeType":"ElementaryTypeName","src":"1636:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1618:34:54"}},{"id":43508,"nodeType":"ErrorDefinition","src":"1658:64:54","nodes":[],"errorSelector":"da56d3c5","name":"InsufficientApprovalY","nameLocation":"1664:21:54","parameters":{"id":43507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43504,"mutability":"mutable","name":"allowance","nameLocation":"1694:9:54","nodeType":"VariableDeclaration","scope":43508,"src":"1686:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43503,"name":"uint256","nodeType":"ElementaryTypeName","src":"1686:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43506,"mutability":"mutable","name":"payment","nameLocation":"1713:7:54","nodeType":"VariableDeclaration","scope":43508,"src":"1705:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43505,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1685:36:54"}},{"id":43514,"nodeType":"ErrorDefinition","src":"1727:47:54","nodes":[],"errorSelector":"cf42d71a","name":"DexSwapFailure","nameLocation":"1733:14:54","parameters":{"id":43513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43510,"mutability":"mutable","name":"reason","nameLocation":"1755:6:54","nodeType":"VariableDeclaration","scope":43514,"src":"1748:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43509,"name":"string","nodeType":"ElementaryTypeName","src":"1748:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43512,"mutability":"mutable","name":"err","nameLocation":"1769:3:54","nodeType":"VariableDeclaration","scope":43514,"src":"1763:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43511,"name":"bytes","nodeType":"ElementaryTypeName","src":"1763:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1747:26:54"}},{"id":43524,"nodeType":"ErrorDefinition","src":"1779:114:54","nodes":[],"errorSelector":"18a73118","name":"SimulatedSwapFailure","nameLocation":"1785:20:54","parameters":{"id":43523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43516,"mutability":"mutable","name":"valid","nameLocation":"1820:5:54","nodeType":"VariableDeclaration","scope":43524,"src":"1815:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43515,"name":"bool","nodeType":"ElementaryTypeName","src":"1815:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43518,"mutability":"mutable","name":"estimatedOut","nameLocation":"1835:12:54","nodeType":"VariableDeclaration","scope":43524,"src":"1827:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43517,"name":"uint256","nodeType":"ElementaryTypeName","src":"1827:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43520,"mutability":"mutable","name":"estimatedPrice","nameLocation":"1857:14:54","nodeType":"VariableDeclaration","scope":43524,"src":"1849:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43519,"name":"uint256","nodeType":"ElementaryTypeName","src":"1849:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43522,"mutability":"mutable","name":"payload","nameLocation":"1879:7:54","nodeType":"VariableDeclaration","scope":43524,"src":"1873:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43521,"name":"bytes","nodeType":"ElementaryTypeName","src":"1873:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1805:87:54"}},{"id":43532,"nodeType":"ErrorDefinition","src":"1899:135:54","nodes":[],"errorSelector":"b16e3783","name":"UnprofitableArbitrage","nameLocation":"1905:21:54","parameters":{"id":43531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43526,"mutability":"mutable","name":"start_y_balance","nameLocation":"1944:15:54","nodeType":"VariableDeclaration","scope":43532,"src":"1936:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43525,"name":"uint256","nodeType":"ElementaryTypeName","src":"1936:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43528,"mutability":"mutable","name":"end_y_balance","nameLocation":"1977:13:54","nodeType":"VariableDeclaration","scope":43532,"src":"1969:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43527,"name":"uint256","nodeType":"ElementaryTypeName","src":"1969:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43530,"mutability":"mutable","name":"absolute_difference","nameLocation":"2008:19:54","nodeType":"VariableDeclaration","scope":43532,"src":"2000:27:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43529,"name":"uint256","nodeType":"ElementaryTypeName","src":"2000:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1926:107:54"}},{"id":43536,"nodeType":"EventDefinition","src":"2040:29:54","nodes":[],"anonymous":false,"eventSelector":"357d905f1831209797df4d55d79c5c5bf1d9f7311c976afd05e13d881eab9bc8","name":"Profit","nameLocation":"2046:6:54","parameters":{"id":43535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43534,"indexed":false,"mutability":"mutable","name":"profit","nameLocation":"2061:6:54","nodeType":"VariableDeclaration","scope":43536,"src":"2053:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43533,"name":"uint256","nodeType":"ElementaryTypeName","src":"2053:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2052:16:54"}},{"id":43540,"nodeType":"EventDefinition","src":"2074:25:54","nodes":[],"anonymous":false,"eventSelector":"b65b2e085d7d040c313f7d4e1ac90f5937026fee497e0e24a7eff16a55e1c5ea","name":"Loss","nameLocation":"2080:4:54","parameters":{"id":43539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43538,"indexed":false,"mutability":"mutable","name":"loss","nameLocation":"2093:4:54","nodeType":"VariableDeclaration","scope":43540,"src":"2085:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43537,"name":"uint256","nodeType":"ElementaryTypeName","src":"2085:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2084:14:54"}},{"id":43546,"nodeType":"EventDefinition","src":"2104:46:54","nodes":[],"anonymous":false,"eventSelector":"d1353c68e79ef70de84ee90d2facf845ec24895116d4a03505aa41785af71f5a","name":"Price","nameLocation":"2110:5:54","parameters":{"id":43545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43542,"indexed":false,"mutability":"mutable","name":"price","nameLocation":"2124:5:54","nodeType":"VariableDeclaration","scope":43546,"src":"2116:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43541,"name":"uint256","nodeType":"ElementaryTypeName","src":"2116:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43544,"indexed":false,"mutability":"mutable","name":"timestamp","nameLocation":"2139:9:54","nodeType":"VariableDeclaration","scope":43546,"src":"2131:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43543,"name":"uint256","nodeType":"ElementaryTypeName","src":"2131:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2115:34:54"}},{"id":43548,"nodeType":"VariableDeclaration","src":"2156:29:54","nodes":[],"constant":false,"functionSelector":"9f27ef4f","mutability":"mutable","name":"liquidExchange","nameLocation":"2171:14:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43547,"name":"address","nodeType":"ElementaryTypeName","src":"2156:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":43550,"nodeType":"VariableDeclaration","src":"2191:23:54","nodes":[],"constant":false,"functionSelector":"d2f7265a","mutability":"mutable","name":"exchange","nameLocation":"2206:8:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43549,"name":"address","nodeType":"ElementaryTypeName","src":"2191:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":43552,"nodeType":"VariableDeclaration","src":"2220:21:54","nodes":[],"constant":false,"functionSelector":"49a7a26d","mutability":"mutable","name":"solver","nameLocation":"2235:6:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43551,"name":"address","nodeType":"ElementaryTypeName","src":"2220:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":43554,"nodeType":"VariableDeclaration","src":"2247:20:54","nodes":[],"constant":false,"functionSelector":"38d52e0f","mutability":"mutable","name":"asset","nameLocation":"2262:5:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43553,"name":"address","nodeType":"ElementaryTypeName","src":"2247:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":43556,"nodeType":"VariableDeclaration","src":"2273:20:54","nodes":[],"constant":false,"functionSelector":"999b93af","mutability":"mutable","name":"quote","nameLocation":"2288:5:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43555,"name":"address","nodeType":"ElementaryTypeName","src":"2273:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":43559,"nodeType":"VariableDeclaration","src":"2414:40:54","nodes":[],"constant":false,"documentation":{"id":43557,"nodeType":"StructuredDocumentation","src":"2300:109:54","text":"@dev Since token x is transferred inside the arbitrage loop, this stores that value in the last arb loop."},"functionSelector":"936520c3","mutability":"mutable","name":"intermediateTokenXBalance","nameLocation":"2429:25:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43558,"name":"uint256","nodeType":"ElementaryTypeName","src":"2414:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":43561,"nodeType":"VariableDeclaration","src":"2460:45:54","nodes":[],"constant":false,"functionSelector":"fa2e5994","mutability":"mutable","name":"intermediateTokenYStartBalance","nameLocation":"2475:30:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43560,"name":"uint256","nodeType":"ElementaryTypeName","src":"2460:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":43563,"nodeType":"VariableDeclaration","src":"2511:43:54","nodes":[],"constant":false,"functionSelector":"72b98246","mutability":"mutable","name":"intermediateTokenYEndBalance","nameLocation":"2526:28:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43562,"name":"uint256","nodeType":"ElementaryTypeName","src":"2511:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":43566,"nodeType":"VariableDeclaration","src":"2635:31:54","nodes":[],"constant":false,"documentation":{"id":43564,"nodeType":"StructuredDocumentation","src":"2561:69:54","text":"@dev Accumulates the profit from each arbitrage loop in Y tokens."},"functionSelector":"85b319ff","mutability":"mutable","name":"cumulativeProfit","nameLocation":"2650:16:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43565,"name":"uint256","nodeType":"ElementaryTypeName","src":"2635:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":43600,"nodeType":"FunctionDefinition","src":"2673:364:54","nodes":[],"body":{"id":43599,"nodeType":"Block","src":"2854:183:54","nodes":[],"statements":[{"expression":{"id":43581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43579,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43552,"src":"2864:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43580,"name":"solverAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43568,"src":"2873:13:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2864:22:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43582,"nodeType":"ExpressionStatement","src":"2864:22:54"},{"expression":{"id":43585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43583,"name":"exchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43550,"src":"2896:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43584,"name":"exchangeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43570,"src":"2907:15:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2896:26:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43586,"nodeType":"ExpressionStatement","src":"2896:26:54"},{"expression":{"id":43589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43587,"name":"liquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43548,"src":"2932:14:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43588,"name":"liquidExchangeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43572,"src":"2949:21:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2932:38:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43590,"nodeType":"ExpressionStatement","src":"2932:38:54"},{"expression":{"id":43593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43591,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"2980:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43592,"name":"assetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43574,"src":"2988:12:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2980:20:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43594,"nodeType":"ExpressionStatement","src":"2980:20:54"},{"expression":{"id":43597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43595,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"3010:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43596,"name":"quoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43576,"src":"3018:12:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3010:20:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43598,"nodeType":"ExpressionStatement","src":"3010:20:54"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":43577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43568,"mutability":"mutable","name":"solverAddress","nameLocation":"2702:13:54","nodeType":"VariableDeclaration","scope":43600,"src":"2694:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43567,"name":"address","nodeType":"ElementaryTypeName","src":"2694:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43570,"mutability":"mutable","name":"exchangeAddress","nameLocation":"2733:15:54","nodeType":"VariableDeclaration","scope":43600,"src":"2725:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43569,"name":"address","nodeType":"ElementaryTypeName","src":"2725:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43572,"mutability":"mutable","name":"liquidExchangeAddress","nameLocation":"2766:21:54","nodeType":"VariableDeclaration","scope":43600,"src":"2758:29:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43571,"name":"address","nodeType":"ElementaryTypeName","src":"2758:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43574,"mutability":"mutable","name":"assetAddress","nameLocation":"2805:12:54","nodeType":"VariableDeclaration","scope":43600,"src":"2797:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43573,"name":"address","nodeType":"ElementaryTypeName","src":"2797:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43576,"mutability":"mutable","name":"quoteAddress","nameLocation":"2835:12:54","nodeType":"VariableDeclaration","scope":43600,"src":"2827:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43575,"name":"address","nodeType":"ElementaryTypeName","src":"2827:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2684:169:54"},"returnParameters":{"id":43578,"nodeType":"ParameterList","parameters":[],"src":"2854:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":43603,"nodeType":"VariableDeclaration","src":"3043:23:54","nodes":[],"constant":false,"functionSelector":"f3c973cf","mutability":"mutable","name":"XTOY","nameLocation":"3055:4:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43601,"name":"bool","nodeType":"ElementaryTypeName","src":"3043:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":43602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3062:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"public"},{"id":43606,"nodeType":"VariableDeclaration","src":"3072:24:54","nodes":[],"constant":false,"functionSelector":"6449fc57","mutability":"mutable","name":"YTOX","nameLocation":"3084:4:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43604,"name":"bool","nodeType":"ElementaryTypeName","src":"3072:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":43605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3091:5:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"public"},{"id":43610,"nodeType":"ErrorDefinition","src":"3103:37:54","nodes":[],"errorSelector":"85aba8de","name":"AttemptedProfit","nameLocation":"3109:15:54","parameters":{"id":43609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43608,"mutability":"mutable","name":"profit","nameLocation":"3132:6:54","nodeType":"VariableDeclaration","scope":43610,"src":"3125:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":43607,"name":"int256","nodeType":"ElementaryTypeName","src":"3125:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3124:15:54"}},{"id":43659,"nodeType":"FunctionDefinition","src":"3146:468:54","nodes":[],"body":{"id":43658,"nodeType":"Block","src":"3216:398:54","nodes":[],"statements":[{"assignments":[43618],"declarations":[{"constant":false,"id":43618,"mutability":"mutable","name":"price","nameLocation":"3234:5:54","nodeType":"VariableDeclaration","scope":43658,"src":"3226:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43617,"name":"uint256","nodeType":"ElementaryTypeName","src":"3226:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43625,"initialValue":{"arguments":[{"id":43623,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43612,"src":"3277:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43620,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43552,"src":"3255:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43619,"name":"StrategyLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"3242:12:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyLike_$43443_$","typeString":"type(contract StrategyLike)"}},"id":43621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3242:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StrategyLike_$43443","typeString":"contract StrategyLike"}},"id":43622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3263:13:54","memberName":"internalPrice","nodeType":"MemberAccess","referencedDeclaration":43431,"src":"3242:34:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":43624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3242:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3226:58:54"},{"eventCall":{"arguments":[{"id":43627,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43618,"src":"3305:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":43628,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3312:5:54","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":43629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3318:9:54","memberName":"timestamp","nodeType":"MemberAccess","src":"3312:15:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43626,"name":"Price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43546,"src":"3299:5:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":43630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3299:29:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43631,"nodeType":"EmitStatement","src":"3294:34:54"},{"expression":{"arguments":[{"id":43633,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43614,"src":"3384:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43632,"name":"_invoice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43784,"src":"3375:8:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":43634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3375:15:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43635,"nodeType":"ExpressionStatement","src":"3375:15:54"},{"expression":{"arguments":[{"id":43637,"name":"YTOX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43606,"src":"3436:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43638,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43614,"src":"3442:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43636,"name":"_lex_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43840,"src":"3426:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$_t_uint256_$returns$__$","typeString":"function (bool,uint256)"}},"id":43639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3426:22:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43640,"nodeType":"ExpressionStatement","src":"3426:22:54"},{"expression":{"arguments":[{"id":43642,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43612,"src":"3494:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43643,"name":"XTOY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43603,"src":"3502:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"id":43650,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3543:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3535:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43648,"name":"address","nodeType":"ElementaryTypeName","src":"3535:7:54","typeDescriptions":{}}},"id":43651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3535:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43645,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"3518:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43644,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"3508:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3508:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3525:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"3508:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3508:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43641,"name":"_dex_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43934,"src":"3484:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$_t_uint256_$returns$__$","typeString":"function (uint256,bool,uint256)"}},"id":43653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3484:66:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43654,"nodeType":"ExpressionStatement","src":"3484:66:54"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43655,"name":"_payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44003,"src":"3598:7:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":43656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3598:9:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43657,"nodeType":"ExpressionStatement","src":"3598:9:54"}]},"functionSelector":"96fbee1d","implemented":true,"kind":"function","modifiers":[],"name":"lower_exchange_price","nameLocation":"3155:20:54","parameters":{"id":43615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43612,"mutability":"mutable","name":"poolId","nameLocation":"3184:6:54","nodeType":"VariableDeclaration","scope":43659,"src":"3176:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43611,"name":"uint256","nodeType":"ElementaryTypeName","src":"3176:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43614,"mutability":"mutable","name":"input","nameLocation":"3200:5:54","nodeType":"VariableDeclaration","scope":43659,"src":"3192:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43613,"name":"uint256","nodeType":"ElementaryTypeName","src":"3192:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3175:31:54"},"returnParameters":{"id":43616,"nodeType":"ParameterList","parameters":[],"src":"3216:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43708,"nodeType":"FunctionDefinition","src":"3620:468:54","nodes":[],"body":{"id":43707,"nodeType":"Block","src":"3690:398:54","nodes":[],"statements":[{"assignments":[43667],"declarations":[{"constant":false,"id":43667,"mutability":"mutable","name":"price","nameLocation":"3708:5:54","nodeType":"VariableDeclaration","scope":43707,"src":"3700:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43666,"name":"uint256","nodeType":"ElementaryTypeName","src":"3700:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43674,"initialValue":{"arguments":[{"id":43672,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43661,"src":"3751:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43669,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43552,"src":"3729:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43668,"name":"StrategyLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"3716:12:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyLike_$43443_$","typeString":"type(contract StrategyLike)"}},"id":43670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3716:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StrategyLike_$43443","typeString":"contract StrategyLike"}},"id":43671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3737:13:54","memberName":"internalPrice","nodeType":"MemberAccess","referencedDeclaration":43431,"src":"3716:34:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":43673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3716:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3700:58:54"},{"eventCall":{"arguments":[{"id":43676,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43667,"src":"3779:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":43677,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3786:5:54","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":43678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3792:9:54","memberName":"timestamp","nodeType":"MemberAccess","src":"3786:15:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43675,"name":"Price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43546,"src":"3773:5:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":43679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3773:29:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43680,"nodeType":"EmitStatement","src":"3768:34:54"},{"expression":{"arguments":[{"id":43682,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43663,"src":"3858:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43681,"name":"_invoice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43784,"src":"3849:8:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":43683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3849:15:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43684,"nodeType":"ExpressionStatement","src":"3849:15:54"},{"expression":{"arguments":[{"id":43686,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43661,"src":"3910:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43687,"name":"YTOX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43606,"src":"3918:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43688,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43663,"src":"3924:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43685,"name":"_dex_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43934,"src":"3900:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$_t_uint256_$returns$__$","typeString":"function (uint256,bool,uint256)"}},"id":43689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3900:30:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43690,"nodeType":"ExpressionStatement","src":"3900:30:54"},{"expression":{"arguments":[{"id":43692,"name":"XTOY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43603,"src":"3976:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"id":43699,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4017:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4009:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43697,"name":"address","nodeType":"ElementaryTypeName","src":"4009:7:54","typeDescriptions":{}}},"id":43700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4009:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43694,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"3992:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43693,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"3982:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3982:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3999:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"3982:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3982:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43691,"name":"_lex_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43840,"src":"3966:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$_t_uint256_$returns$__$","typeString":"function (bool,uint256)"}},"id":43702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3966:58:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43703,"nodeType":"ExpressionStatement","src":"3966:58:54"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43704,"name":"_payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44003,"src":"4072:7:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":43705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4072:9:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43706,"nodeType":"ExpressionStatement","src":"4072:9:54"}]},"functionSelector":"f9005eb5","implemented":true,"kind":"function","modifiers":[],"name":"raise_exchange_price","nameLocation":"3629:20:54","parameters":{"id":43664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43661,"mutability":"mutable","name":"poolId","nameLocation":"3658:6:54","nodeType":"VariableDeclaration","scope":43708,"src":"3650:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43660,"name":"uint256","nodeType":"ElementaryTypeName","src":"3650:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43663,"mutability":"mutable","name":"input","nameLocation":"3674:5:54","nodeType":"VariableDeclaration","scope":43708,"src":"3666:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43662,"name":"uint256","nodeType":"ElementaryTypeName","src":"3666:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3649:31:54"},"returnParameters":{"id":43665,"nodeType":"ParameterList","parameters":[],"src":"3690:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43784,"nodeType":"FunctionDefinition","src":"4149:634:54","nodes":[],"body":{"id":43783,"nodeType":"Block","src":"4194:589:54","nodes":[],"statements":[{"assignments":[43715],"declarations":[{"constant":false,"id":43715,"mutability":"mutable","name":"quote_balance","nameLocation":"4212:13:54","nodeType":"VariableDeclaration","scope":43783,"src":"4204:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43714,"name":"uint256","nodeType":"ElementaryTypeName","src":"4204:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43723,"initialValue":{"arguments":[{"expression":{"id":43720,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4255:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4259:6:54","memberName":"sender","nodeType":"MemberAccess","src":"4255:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43717,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"4238:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43716,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"4228:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4228:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4245:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"4228:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4228:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4204:62:54"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43724,"name":"quote_balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43715,"src":"4280:13:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43725,"name":"amount_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43711,"src":"4296:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4280:24:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43733,"nodeType":"IfStatement","src":"4276:107:54","trueBody":{"id":43732,"nodeType":"Block","src":"4306:77:54","statements":[{"errorCall":{"arguments":[{"id":43728,"name":"quote_balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43715,"src":"4348:13:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43729,"name":"amount_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43711,"src":"4363:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43727,"name":"InsufficientBalanceY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43496,"src":"4327:20:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4327:45:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43731,"nodeType":"RevertStatement","src":"4320:52:54"}]}},{"assignments":[43735],"declarations":[{"constant":false,"id":43735,"mutability":"mutable","name":"quote_approval","nameLocation":"4401:14:54","nodeType":"VariableDeclaration","scope":43783,"src":"4393:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43734,"name":"uint256","nodeType":"ElementaryTypeName","src":"4393:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43747,"initialValue":{"arguments":[{"expression":{"id":43740,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4457:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4461:6:54","memberName":"sender","nodeType":"MemberAccess","src":"4457:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":43744,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4477:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4469:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43742,"name":"address","nodeType":"ElementaryTypeName","src":"4469:7:54","typeDescriptions":{}}},"id":43745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4469:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43737,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"4440:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43736,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"4430:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4430:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4447:9:54","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":43482,"src":"4430:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":43746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4430:53:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4393:90:54"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43748,"name":"quote_approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43735,"src":"4497:14:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43749,"name":"amount_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43711,"src":"4514:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4497:25:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43757,"nodeType":"IfStatement","src":"4493:110:54","trueBody":{"id":43756,"nodeType":"Block","src":"4524:79:54","statements":[{"errorCall":{"arguments":[{"id":43752,"name":"quote_approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43735,"src":"4567:14:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43753,"name":"amount_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43711,"src":"4583:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43751,"name":"InsufficientApprovalY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43508,"src":"4545:21:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4545:47:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43755,"nodeType":"RevertStatement","src":"4538:54:54"}]}},{"expression":{"arguments":[{"expression":{"id":43762,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4643:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4647:6:54","memberName":"sender","nodeType":"MemberAccess","src":"4643:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":43766,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4663:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4655:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43764,"name":"address","nodeType":"ElementaryTypeName","src":"4655:7:54","typeDescriptions":{}}},"id":43767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4655:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43768,"name":"amount_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43711,"src":"4670:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43759,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"4623:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43758,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"4613:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4613:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4630:12:54","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":43452,"src":"4613:29:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":43769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4613:66:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43770,"nodeType":"ExpressionStatement","src":"4613:66:54"},{"expression":{"id":43781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43771,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"4690:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":43778,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4770:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4762:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43776,"name":"address","nodeType":"ElementaryTypeName","src":"4762:7:54","typeDescriptions":{}}},"id":43779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4762:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43773,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"4745:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43772,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"4735:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4735:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4752:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"4735:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4735:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4690:86:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43782,"nodeType":"ExpressionStatement","src":"4690:86:54"}]},"documentation":{"id":43709,"nodeType":"StructuredDocumentation","src":"4094:50:54","text":"@dev Handles the payment from the arbitrageur."},"implemented":true,"kind":"function","modifiers":[],"name":"_invoice","nameLocation":"4158:8:54","parameters":{"id":43712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43711,"mutability":"mutable","name":"amount_y","nameLocation":"4175:8:54","nodeType":"VariableDeclaration","scope":43784,"src":"4167:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43710,"name":"uint256","nodeType":"ElementaryTypeName","src":"4167:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4166:18:54"},"returnParameters":{"id":43713,"nodeType":"ParameterList","parameters":[],"src":"4194:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43840,"nodeType":"FunctionDefinition","src":"4789:877:54","nodes":[],"body":{"id":43839,"nodeType":"Block","src":"4846:820:54","nodes":[],"statements":[{"condition":{"id":43791,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43786,"src":"4860:7:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43837,"nodeType":"Block","src":"5221:439:54","statements":[{"expression":{"arguments":[{"id":43813,"name":"liquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43548,"src":"5356:14:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43814,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43788,"src":"5372:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43810,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"5341:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43809,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"5331:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5331:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5348:7:54","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":43466,"src":"5331:24:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5331:47:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43816,"nodeType":"ExpressionStatement","src":"5331:47:54"},{"expression":{"arguments":[{"id":43821,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"5487:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43822,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43788,"src":"5494:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43818,"name":"liquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43548,"src":"5466:14:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43817,"name":"LiquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43400,"src":"5451:14:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LiquidExchange_$43400_$","typeString":"type(contract LiquidExchange)"}},"id":43819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5451:30:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LiquidExchange_$43400","typeString":"contract LiquidExchange"}},"id":43820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5482:4:54","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":43394,"src":"5451:35:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5451:49:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43824,"nodeType":"ExpressionStatement","src":"5451:49:54"},{"expression":{"id":43835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43825,"name":"intermediateTokenXBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43559,"src":"5564:25:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":43832,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5643:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5635:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43830,"name":"address","nodeType":"ElementaryTypeName","src":"5635:7:54","typeDescriptions":{}}},"id":43833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5635:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43827,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"5618:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43826,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"5608:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5608:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5625:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"5608:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5608:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5564:85:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43836,"nodeType":"ExpressionStatement","src":"5564:85:54"}]},"id":43838,"nodeType":"IfStatement","src":"4856:804:54","trueBody":{"id":43808,"nodeType":"Block","src":"4869:346:54","statements":[{"expression":{"arguments":[{"id":43796,"name":"liquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43548,"src":"5004:14:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43797,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43788,"src":"5020:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43793,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"4989:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43792,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"4979:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4979:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4996:7:54","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":43466,"src":"4979:24:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4979:47:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43799,"nodeType":"ExpressionStatement","src":"4979:47:54"},{"expression":{"arguments":[{"id":43804,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"5135:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43805,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43788,"src":"5142:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43801,"name":"liquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43548,"src":"5114:14:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43800,"name":"LiquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43400,"src":"5099:14:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LiquidExchange_$43400_$","typeString":"type(contract LiquidExchange)"}},"id":43802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5099:30:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LiquidExchange_$43400","typeString":"contract LiquidExchange"}},"id":43803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5130:4:54","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":43394,"src":"5099:35:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5099:49:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43807,"nodeType":"ExpressionStatement","src":"5099:49:54"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_lex_swap","nameLocation":"4798:9:54","parameters":{"id":43789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43786,"mutability":"mutable","name":"swapXIn","nameLocation":"4813:7:54","nodeType":"VariableDeclaration","scope":43840,"src":"4808:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43785,"name":"bool","nodeType":"ElementaryTypeName","src":"4808:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43788,"mutability":"mutable","name":"input","nameLocation":"4830:5:54","nodeType":"VariableDeclaration","scope":43840,"src":"4822:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43787,"name":"uint256","nodeType":"ElementaryTypeName","src":"4822:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4807:29:54"},"returnParameters":{"id":43790,"nodeType":"ParameterList","parameters":[],"src":"4846:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43934,"nodeType":"FunctionDefinition","src":"5672:1592:54","nodes":[],"body":{"id":43933,"nodeType":"Block","src":"5778:1486:54","nodes":[],"statements":[{"condition":{"id":43849,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43844,"src":"5792:7:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43867,"nodeType":"Block","src":"5966:159:54","statements":[{"expression":{"arguments":[{"id":43863,"name":"exchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43550,"src":"6095:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43864,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43846,"src":"6105:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43860,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"6080:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43859,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"6070:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6070:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6087:7:54","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":43466,"src":"6070:24:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6070:44:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43866,"nodeType":"ExpressionStatement","src":"6070:44:54"}]},"id":43868,"nodeType":"IfStatement","src":"5788:337:54","trueBody":{"id":43858,"nodeType":"Block","src":"5801:159:54","statements":[{"expression":{"arguments":[{"id":43854,"name":"exchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43550,"src":"5930:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43855,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43846,"src":"5940:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43851,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"5915:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43850,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"5905:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5905:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5922:7:54","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":43466,"src":"5905:24:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5905:44:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43857,"nodeType":"ExpressionStatement","src":"5905:44:54"}]}},{"assignments":[43870,43872,43874,43876],"declarations":[{"constant":false,"id":43870,"mutability":"mutable","name":"valid","nameLocation":"6296:5:54","nodeType":"VariableDeclaration","scope":43933,"src":"6291:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43869,"name":"bool","nodeType":"ElementaryTypeName","src":"6291:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43872,"mutability":"mutable","name":"estimatedOut","nameLocation":"6323:12:54","nodeType":"VariableDeclaration","scope":43933,"src":"6315:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43871,"name":"uint256","nodeType":"ElementaryTypeName","src":"6315:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43874,"mutability":"mutable","name":"estimatedPrice","nameLocation":"6357:14:54","nodeType":"VariableDeclaration","scope":43933,"src":"6349:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43873,"name":"uint256","nodeType":"ElementaryTypeName","src":"6349:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43876,"mutability":"mutable","name":"payload","nameLocation":"6398:7:54","nodeType":"VariableDeclaration","scope":43933,"src":"6385:20:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43875,"name":"bytes","nodeType":"ElementaryTypeName","src":"6385:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":43885,"initialValue":{"arguments":[{"id":43881,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43842,"src":"6452:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43882,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43844,"src":"6460:7:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43883,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43846,"src":"6469:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43878,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43552,"src":"6431:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43877,"name":"StrategyLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"6418:12:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyLike_$43443_$","typeString":"type(contract StrategyLike)"}},"id":43879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6418:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StrategyLike_$43443","typeString":"contract StrategyLike"}},"id":43880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6439:12:54","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":43424,"src":"6418:33:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,uint256,bytes memory)"}},"id":43884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6418:60:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6277:201:54"},{"condition":{"id":43887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6493:6:54","subExpression":{"id":43886,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43870,"src":"6494:5:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43896,"nodeType":"IfStatement","src":"6489:140:54","trueBody":{"id":43895,"nodeType":"Block","src":"6501:128:54","statements":[{"errorCall":{"arguments":[{"id":43889,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43870,"src":"6560:5:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43890,"name":"estimatedOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43872,"src":"6567:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43891,"name":"estimatedPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43874,"src":"6581:14:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43892,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43876,"src":"6597:7:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43888,"name":"SimulatedSwapFailure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43524,"src":"6522:20:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bool,uint256,uint256,bytes memory) pure"}},"id":43893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6522:96:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43894,"nodeType":"RevertStatement","src":"6515:103:54"}]}},{"clauses":[{"block":{"id":43920,"nodeType":"Block","src":"6717:435:54","statements":[{"condition":{"id":43904,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43844,"src":"6820:7:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43918,"nodeType":"Block","src":"6938:204:54","statements":[{"expression":{"id":43916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43906,"name":"intermediateTokenXBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43559,"src":"7038:25:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":43913,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7121:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43912,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7113:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43911,"name":"address","nodeType":"ElementaryTypeName","src":"7113:7:54","typeDescriptions":{}}},"id":43914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7113:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43908,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"7096:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43907,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"7086:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7086:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7103:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"7086:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7086:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7038:89:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43917,"nodeType":"ExpressionStatement","src":"7038:89:54"}]},"id":43919,"nodeType":"IfStatement","src":"6816:326:54","trueBody":{"id":43905,"nodeType":"Block","src":"6829:103:54","statements":[]}}]},"errorName":"","id":43921,"nodeType":"TryCatchClause","src":"6717:435:54"},{"block":{"id":43930,"nodeType":"Block","src":"7178:80:54","statements":[{"errorCall":{"arguments":[{"hexValue":"4445582073776170206661696c656420776974682064617461","id":43926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7214:27:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_f15362d018ecb0a5e9c49cd1e85ce384ef3452d5cda7e416ace6693442dd5650","typeString":"literal_string \"DEX swap failed with data\""},"value":"DEX swap failed with data"},{"id":43927,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43923,"src":"7243:3:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f15362d018ecb0a5e9c49cd1e85ce384ef3452d5cda7e416ace6693442dd5650","typeString":"literal_string \"DEX swap failed with data\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43925,"name":"DexSwapFailure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43514,"src":"7199:14:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,bytes memory) pure"}},"id":43928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7199:48:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43929,"nodeType":"RevertStatement","src":"7192:55:54"}]},"errorName":"","id":43931,"nodeType":"TryCatchClause","parameters":{"id":43924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43923,"mutability":"mutable","name":"err","nameLocation":"7173:3:54","nodeType":"VariableDeclaration","scope":43931,"src":"7160:16:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43922,"name":"bytes","nodeType":"ElementaryTypeName","src":"7160:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7159:18:54"},"src":"7153:105:54"}],"externalCall":{"arguments":[{"id":43901,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43842,"src":"6700:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43902,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43876,"src":"6708:7:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":43898,"name":"exchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43550,"src":"6685:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43897,"name":"StrategyLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"6672:12:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyLike_$43443_$","typeString":"type(contract StrategyLike)"}},"id":43899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6672:22:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StrategyLike_$43443","typeString":"contract StrategyLike"}},"id":43900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6695:4:54","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":43407,"src":"6672:27:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory) external"}},"id":43903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6672:44:54","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43932,"nodeType":"TryStatement","src":"6668:590:54"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_dex_swap","nameLocation":"5681:9:54","parameters":{"id":43847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43842,"mutability":"mutable","name":"poolId","nameLocation":"5708:6:54","nodeType":"VariableDeclaration","scope":43934,"src":"5700:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43841,"name":"uint256","nodeType":"ElementaryTypeName","src":"5700:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43844,"mutability":"mutable","name":"swapXIn","nameLocation":"5729:7:54","nodeType":"VariableDeclaration","scope":43934,"src":"5724:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43843,"name":"bool","nodeType":"ElementaryTypeName","src":"5724:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43846,"mutability":"mutable","name":"amountIn","nameLocation":"5754:8:54","nodeType":"VariableDeclaration","scope":43934,"src":"5746:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43845,"name":"uint256","nodeType":"ElementaryTypeName","src":"5746:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5690:78:54"},"returnParameters":{"id":43848,"nodeType":"ParameterList","parameters":[],"src":"5778:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44003,"nodeType":"FunctionDefinition","src":"7270:1034:54","nodes":[],"body":{"id":44002,"nodeType":"Block","src":"7298:1006:54","nodes":[],"statements":[{"expression":{"id":43947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43937,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"7353:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":43944,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7419:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7411:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43942,"name":"address","nodeType":"ElementaryTypeName","src":"7411:7:54","typeDescriptions":{}}},"id":43945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7411:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43939,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"7394:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43938,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"7384:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7384:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7401:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"7384:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7384:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7353:72:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43948,"nodeType":"ExpressionStatement","src":"7353:72:54"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43949,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"7440:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43950,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"7471:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7440:61:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43978,"nodeType":"IfStatement","src":"7436:563:54","trueBody":{"id":43977,"nodeType":"Block","src":"7503:496:54","statements":[{"eventCall":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43953,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"7544:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":43954,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"7577:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7544:61:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43952,"name":"Loss","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43540,"src":"7522:4:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":43956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7522:97:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43957,"nodeType":"EmitStatement","src":"7517:102:54"},{"errorCall":{"arguments":[{"id":43959,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"7679:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43960,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"7727:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":43973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"7802:154:54","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":43971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":43965,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"7836:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7829:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":43963,"name":"int256","nodeType":"ElementaryTypeName","src":"7829:6:54","typeDescriptions":{}}},"id":43966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7829:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":43969,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"7905:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7898:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":43967,"name":"int256","nodeType":"ElementaryTypeName","src":"7898:6:54","typeDescriptions":{}}},"id":43970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7898:36:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7829:105:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":43972,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7803:153:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":43962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7773:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":43961,"name":"uint256","nodeType":"ElementaryTypeName","src":"7773:7:54","typeDescriptions":{}}},"id":43974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7773:201:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43958,"name":"UnprofitableArbitrage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43532,"src":"7640:21:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":43975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7640:348:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43976,"nodeType":"RevertStatement","src":"7633:355:54"}]}},{"assignments":[43980],"declarations":[{"constant":false,"id":43980,"mutability":"mutable","name":"profit","nameLocation":"8072:6:54","nodeType":"VariableDeclaration","scope":44002,"src":"8064:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43979,"name":"uint256","nodeType":"ElementaryTypeName","src":"8064:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43984,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43981,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"8093:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":43982,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"8124:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8093:61:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8064:90:54"},{"expression":{"id":43987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43985,"name":"cumulativeProfit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43566,"src":"8164:16:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":43986,"name":"profit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43980,"src":"8184:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8164:26:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43988,"nodeType":"ExpressionStatement","src":"8164:26:54"},{"eventCall":{"arguments":[{"id":43990,"name":"profit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43980,"src":"8212:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43989,"name":"Profit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43536,"src":"8205:6:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":43991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8205:14:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43992,"nodeType":"EmitStatement","src":"8200:19:54"},{"expression":{"arguments":[{"expression":{"id":43997,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8256:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8260:6:54","memberName":"sender","nodeType":"MemberAccess","src":"8256:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43999,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"8268:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43994,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"8240:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43993,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"8230:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8230:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8247:8:54","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":43459,"src":"8230:25:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":44000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8230:67:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44001,"nodeType":"ExpressionStatement","src":"8230:67:54"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_payout","nameLocation":"7279:7:54","parameters":{"id":43935,"nodeType":"ParameterList","parameters":[],"src":"7286:2:54"},"returnParameters":{"id":43936,"nodeType":"ParameterList","parameters":[],"src":"7298:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44030,"nodeType":"FunctionDefinition","src":"8310:371:54","nodes":[],"body":{"id":44029,"nodeType":"Block","src":"8597:84:54","nodes":[],"statements":[{"expression":{"arguments":[{"id":44024,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44005,"src":"8648:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44025,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"8656:7:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44026,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44009,"src":"8665:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":44021,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43552,"src":"8627:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44020,"name":"StrategyLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"8614:12:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyLike_$43443_$","typeString":"type(contract StrategyLike)"}},"id":44022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8614:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StrategyLike_$43443","typeString":"contract StrategyLike"}},"id":44023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8635:12:54","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":43424,"src":"8614:33:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,uint256,bytes memory)"}},"id":44027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8614:60:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"functionReturnParameters":44019,"id":44028,"nodeType":"Return","src":"8607:67:54"}]},"functionSelector":"3928ff97","implemented":true,"kind":"function","modifiers":[],"name":"simulateSwap","nameLocation":"8319:12:54","parameters":{"id":44010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44005,"mutability":"mutable","name":"poolId","nameLocation":"8349:6:54","nodeType":"VariableDeclaration","scope":44030,"src":"8341:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44004,"name":"uint256","nodeType":"ElementaryTypeName","src":"8341:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44007,"mutability":"mutable","name":"swapXIn","nameLocation":"8370:7:54","nodeType":"VariableDeclaration","scope":44030,"src":"8365:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44006,"name":"bool","nodeType":"ElementaryTypeName","src":"8365:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44009,"mutability":"mutable","name":"amountIn","nameLocation":"8395:8:54","nodeType":"VariableDeclaration","scope":44030,"src":"8387:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44008,"name":"uint256","nodeType":"ElementaryTypeName","src":"8387:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8331:78:54"},"returnParameters":{"id":44019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44012,"mutability":"mutable","name":"valid","nameLocation":"8473:5:54","nodeType":"VariableDeclaration","scope":44030,"src":"8468:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44011,"name":"bool","nodeType":"ElementaryTypeName","src":"8468:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44014,"mutability":"mutable","name":"estimatedOut","nameLocation":"8500:12:54","nodeType":"VariableDeclaration","scope":44030,"src":"8492:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44013,"name":"uint256","nodeType":"ElementaryTypeName","src":"8492:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44016,"mutability":"mutable","name":"estimatedPrice","nameLocation":"8534:14:54","nodeType":"VariableDeclaration","scope":44030,"src":"8526:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44015,"name":"uint256","nodeType":"ElementaryTypeName","src":"8526:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44018,"mutability":"mutable","name":"payload","nameLocation":"8575:7:54","nodeType":"VariableDeclaration","scope":44030,"src":"8562:20:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":44017,"name":"bytes","nodeType":"ElementaryTypeName","src":"8562:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8454:138:54"},"scope":44178,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":44045,"nodeType":"FunctionDefinition","src":"8687:108:54","nodes":[],"body":{"id":44044,"nodeType":"Block","src":"8750:45:54","nodes":[],"statements":[{"expression":{"id":44042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44037,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44035,"src":"8760:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44040,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44032,"src":"8782:5:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":44038,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"8769:8:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":44039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8778:3:54","memberName":"cdf","nodeType":"MemberAccess","referencedDeclaration":27280,"src":"8769:12:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":44041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8769:19:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8760:28:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":44043,"nodeType":"ExpressionStatement","src":"8760:28:54"}]},"functionSelector":"d0b71b1e","implemented":true,"kind":"function","modifiers":[],"name":"cdf","nameLocation":"8696:3:54","parameters":{"id":44033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44032,"mutability":"mutable","name":"input","nameLocation":"8707:5:54","nodeType":"VariableDeclaration","scope":44045,"src":"8700:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44031,"name":"int256","nodeType":"ElementaryTypeName","src":"8700:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8699:14:54"},"returnParameters":{"id":44036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44035,"mutability":"mutable","name":"output","nameLocation":"8742:6:54","nodeType":"VariableDeclaration","scope":44045,"src":"8735:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44034,"name":"int256","nodeType":"ElementaryTypeName","src":"8735:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8734:15:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44060,"nodeType":"FunctionDefinition","src":"8801:108:54","nodes":[],"body":{"id":44059,"nodeType":"Block","src":"8864:45:54","nodes":[],"statements":[{"expression":{"id":44057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44052,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44050,"src":"8874:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44055,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44047,"src":"8896:5:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":44053,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"8883:8:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":44054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8892:3:54","memberName":"pdf","nodeType":"MemberAccess","referencedDeclaration":27314,"src":"8883:12:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":44056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8883:19:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8874:28:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":44058,"nodeType":"ExpressionStatement","src":"8874:28:54"}]},"functionSelector":"d24ce6e5","implemented":true,"kind":"function","modifiers":[],"name":"pdf","nameLocation":"8810:3:54","parameters":{"id":44048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44047,"mutability":"mutable","name":"input","nameLocation":"8821:5:54","nodeType":"VariableDeclaration","scope":44060,"src":"8814:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44046,"name":"int256","nodeType":"ElementaryTypeName","src":"8814:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8813:14:54"},"returnParameters":{"id":44051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44050,"mutability":"mutable","name":"output","nameLocation":"8856:6:54","nodeType":"VariableDeclaration","scope":44060,"src":"8849:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44049,"name":"int256","nodeType":"ElementaryTypeName","src":"8849:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8848:15:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44075,"nodeType":"FunctionDefinition","src":"8915:108:54","nodes":[],"body":{"id":44074,"nodeType":"Block","src":"8978:45:54","nodes":[],"statements":[{"expression":{"id":44072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44067,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44065,"src":"8988:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44070,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9010:5:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":44068,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"8997:8:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":44069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9006:3:54","memberName":"ppf","nodeType":"MemberAccess","referencedDeclaration":27373,"src":"8997:12:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":44071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8997:19:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8988:28:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":44073,"nodeType":"ExpressionStatement","src":"8988:28:54"}]},"functionSelector":"3679723a","implemented":true,"kind":"function","modifiers":[],"name":"ppf","nameLocation":"8924:3:54","parameters":{"id":44063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44062,"mutability":"mutable","name":"input","nameLocation":"8935:5:54","nodeType":"VariableDeclaration","scope":44075,"src":"8928:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44061,"name":"int256","nodeType":"ElementaryTypeName","src":"8928:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8927:14:54"},"returnParameters":{"id":44066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44065,"mutability":"mutable","name":"output","nameLocation":"8970:6:54","nodeType":"VariableDeclaration","scope":44075,"src":"8963:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44064,"name":"int256","nodeType":"ElementaryTypeName","src":"8963:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8962:15:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44093,"nodeType":"FunctionDefinition","src":"9029:129:54","nodes":[],"body":{"id":44092,"nodeType":"Block","src":"9103:55:54","nodes":[],"statements":[{"expression":{"id":44090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44084,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44082,"src":"9113:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44087,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44077,"src":"9146:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44088,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44079,"src":"9149:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44085,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9117:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9135:10:54","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"9117:28:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":44089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9117:34:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9113:38:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44091,"nodeType":"ExpressionStatement","src":"9113:38:54"}]},"functionSelector":"e524f849","implemented":true,"kind":"function","modifiers":[],"name":"mulWadDown","nameLocation":"9038:10:54","parameters":{"id":44080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44077,"mutability":"mutable","name":"x","nameLocation":"9057:1:54","nodeType":"VariableDeclaration","scope":44093,"src":"9049:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44076,"name":"uint256","nodeType":"ElementaryTypeName","src":"9049:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44079,"mutability":"mutable","name":"y","nameLocation":"9068:1:54","nodeType":"VariableDeclaration","scope":44093,"src":"9060:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44078,"name":"uint256","nodeType":"ElementaryTypeName","src":"9060:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9048:22:54"},"returnParameters":{"id":44083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44082,"mutability":"mutable","name":"z","nameLocation":"9100:1:54","nodeType":"VariableDeclaration","scope":44093,"src":"9092:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44081,"name":"uint256","nodeType":"ElementaryTypeName","src":"9092:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9091:11:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44111,"nodeType":"FunctionDefinition","src":"9164:125:54","nodes":[],"body":{"id":44110,"nodeType":"Block","src":"9236:53:54","nodes":[],"statements":[{"expression":{"id":44108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44102,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44100,"src":"9246:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44105,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44095,"src":"9277:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44106,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44097,"src":"9280:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44103,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9250:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9268:8:54","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"9250:26:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":44107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9250:32:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9246:36:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44109,"nodeType":"ExpressionStatement","src":"9246:36:54"}]},"functionSelector":"ae9768a8","implemented":true,"kind":"function","modifiers":[],"name":"mulWadUp","nameLocation":"9173:8:54","parameters":{"id":44098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44095,"mutability":"mutable","name":"x","nameLocation":"9190:1:54","nodeType":"VariableDeclaration","scope":44111,"src":"9182:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44094,"name":"uint256","nodeType":"ElementaryTypeName","src":"9182:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44097,"mutability":"mutable","name":"y","nameLocation":"9201:1:54","nodeType":"VariableDeclaration","scope":44111,"src":"9193:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44096,"name":"uint256","nodeType":"ElementaryTypeName","src":"9193:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9181:22:54"},"returnParameters":{"id":44101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44100,"mutability":"mutable","name":"z","nameLocation":"9233:1:54","nodeType":"VariableDeclaration","scope":44111,"src":"9225:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44099,"name":"uint256","nodeType":"ElementaryTypeName","src":"9225:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9224:11:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44129,"nodeType":"FunctionDefinition","src":"9295:129:54","nodes":[],"body":{"id":44128,"nodeType":"Block","src":"9369:55:54","nodes":[],"statements":[{"expression":{"id":44126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44120,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44118,"src":"9379:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44123,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44113,"src":"9412:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44124,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"9415:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44121,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9383:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9401:10:54","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"9383:28:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":44125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9383:34:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9379:38:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44127,"nodeType":"ExpressionStatement","src":"9379:38:54"}]},"functionSelector":"37c6a44a","implemented":true,"kind":"function","modifiers":[],"name":"divWadDown","nameLocation":"9304:10:54","parameters":{"id":44116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44113,"mutability":"mutable","name":"x","nameLocation":"9323:1:54","nodeType":"VariableDeclaration","scope":44129,"src":"9315:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44112,"name":"uint256","nodeType":"ElementaryTypeName","src":"9315:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44115,"mutability":"mutable","name":"y","nameLocation":"9334:1:54","nodeType":"VariableDeclaration","scope":44129,"src":"9326:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44114,"name":"uint256","nodeType":"ElementaryTypeName","src":"9326:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9314:22:54"},"returnParameters":{"id":44119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44118,"mutability":"mutable","name":"z","nameLocation":"9366:1:54","nodeType":"VariableDeclaration","scope":44129,"src":"9358:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44117,"name":"uint256","nodeType":"ElementaryTypeName","src":"9358:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9357:11:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44147,"nodeType":"FunctionDefinition","src":"9430:125:54","nodes":[],"body":{"id":44146,"nodeType":"Block","src":"9502:53:54","nodes":[],"statements":[{"expression":{"id":44144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44138,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44136,"src":"9512:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44141,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"9543:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44142,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44133,"src":"9546:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44139,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9516:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9534:8:54","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"9516:26:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":44143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9516:32:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9512:36:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44145,"nodeType":"ExpressionStatement","src":"9512:36:54"}]},"functionSelector":"bd252d06","implemented":true,"kind":"function","modifiers":[],"name":"divWadUp","nameLocation":"9439:8:54","parameters":{"id":44134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44131,"mutability":"mutable","name":"x","nameLocation":"9456:1:54","nodeType":"VariableDeclaration","scope":44147,"src":"9448:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44130,"name":"uint256","nodeType":"ElementaryTypeName","src":"9448:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44133,"mutability":"mutable","name":"y","nameLocation":"9467:1:54","nodeType":"VariableDeclaration","scope":44147,"src":"9459:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44132,"name":"uint256","nodeType":"ElementaryTypeName","src":"9459:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9447:22:54"},"returnParameters":{"id":44137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44136,"mutability":"mutable","name":"z","nameLocation":"9499:1:54","nodeType":"VariableDeclaration","scope":44147,"src":"9491:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44135,"name":"uint256","nodeType":"ElementaryTypeName","src":"9491:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9490:11:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44162,"nodeType":"FunctionDefinition","src":"9561:101:54","nodes":[],"body":{"id":44161,"nodeType":"Block","src":"9615:47:54","nodes":[],"statements":[{"expression":{"id":44159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44154,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44152,"src":"9625:1:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44157,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44149,"src":"9653:1:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":44155,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9629:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9647:5:54","memberName":"lnWad","nodeType":"MemberAccess","referencedDeclaration":26541,"src":"9629:23:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":44158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9629:26:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9625:30:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":44160,"nodeType":"ExpressionStatement","src":"9625:30:54"}]},"functionSelector":"2d5b6cb9","implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9570:3:54","parameters":{"id":44150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44149,"mutability":"mutable","name":"x","nameLocation":"9581:1:54","nodeType":"VariableDeclaration","scope":44162,"src":"9574:8:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44148,"name":"int256","nodeType":"ElementaryTypeName","src":"9574:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9573:10:54"},"returnParameters":{"id":44153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44152,"mutability":"mutable","name":"z","nameLocation":"9612:1:54","nodeType":"VariableDeclaration","scope":44162,"src":"9605:8:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44151,"name":"int256","nodeType":"ElementaryTypeName","src":"9605:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9604:10:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44177,"nodeType":"FunctionDefinition","src":"9668:103:54","nodes":[],"body":{"id":44176,"nodeType":"Block","src":"9725:46:54","nodes":[],"statements":[{"expression":{"id":44174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44169,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44167,"src":"9735:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44172,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44164,"src":"9762:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44170,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9739:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9757:4:54","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":26589,"src":"9739:22:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":44173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9739:25:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9735:29:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44175,"nodeType":"ExpressionStatement","src":"9735:29:54"}]},"functionSelector":"677342ce","implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"9677:4:54","parameters":{"id":44165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44164,"mutability":"mutable","name":"x","nameLocation":"9690:1:54","nodeType":"VariableDeclaration","scope":44177,"src":"9682:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44163,"name":"uint256","nodeType":"ElementaryTypeName","src":"9682:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9681:11:54"},"returnParameters":{"id":44168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44167,"mutability":"mutable","name":"z","nameLocation":"9722:1:54","nodeType":"VariableDeclaration","scope":44177,"src":"9714:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44166,"name":"uint256","nodeType":"ElementaryTypeName","src":"9714:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9713:11:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"AtomicV2","contractDependencies":[],"contractKind":"contract","documentation":{"id":43484,"nodeType":"StructuredDocumentation","src":"1266:154:54","text":"@dev Takes Y tokens from Arbitrageur, swaps on either LEX or DEX, then swaps on the opposite exchange and returns the output Y tokens to Arbitrageur."},"fullyImplemented":true,"linearizedBaseContracts":[44178],"name":"AtomicV2","nameLocation":"1429:8:54","scope":44179,"usedErrors":[26761,26763,26765,27736,43496,43502,43508,43514,43524,43532,43610],"usedEvents":[43536,43540,43546]}],"license":"UNLICENSED"},"id":54} \ No newline at end of file diff --git a/out/AtomicV2.sol/LiquidExchange.json b/out/AtomicV2.sol/LiquidExchange.json deleted file mode 100644 index 90ee3d38..00000000 --- a/out/AtomicV2.sol/LiquidExchange.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"price","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"price()":"a035b1fe","swap(address,uint256)":"d004f0f7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"price\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/helpers/AtomicV2.sol\":\"LiquidExchange\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/test/helpers/AtomicV2.sol\":{\"keccak256\":\"0xa19f56ab0a72272bc46fa1f6b1438ca036c2c3d957b6b40c9cebbed7fb21d05b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6f3807847572c311c041cdc27772c0b467f402998c3d036c0bfb30d6581b620d\",\"dweb:/ipfs/QmZXWhCdQhXbwMUpF9QAPt8QQQ3oxYKdge41tSH7U3gFNW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/helpers/AtomicV2.sol":"LiquidExchange"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/test/helpers/AtomicV2.sol":{"keccak256":"0xa19f56ab0a72272bc46fa1f6b1438ca036c2c3d957b6b40c9cebbed7fb21d05b","urls":["bzz-raw://6f3807847572c311c041cdc27772c0b467f402998c3d036c0bfb30d6581b620d","dweb:/ipfs/QmZXWhCdQhXbwMUpF9QAPt8QQQ3oxYKdge41tSH7U3gFNW"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/helpers/AtomicV2.sol","id":44179,"exportedSymbols":{"AtomicV2":[44178],"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"FixedPointMathLib":[26640],"Gaussian":[27374],"LiquidExchange":[43400],"Min":[27736],"StrategyLike":[43443],"TokenLike":[43483],"abs":[27763],"bisection":[31118],"console2":[25512],"diviWad":[27813],"muli":[27777],"muliWad":[27795]},"nodeType":"SourceUnit","src":"39:9735:54","nodes":[{"id":43383,"nodeType":"PragmaDirective","src":"39:24:54","nodes":[],"literals":["solidity","^","0.8",".14"]},{"id":43384,"nodeType":"ImportDirective","src":"65:30:54","nodes":[],"absolutePath":"lib/solstat/src/Gaussian.sol","file":"solstat/Gaussian.sol","nameLocation":"-1:-1:-1","scope":44179,"sourceUnit":27375,"symbolAliases":[],"unitAlias":""},{"id":43385,"nodeType":"ImportDirective","src":"96:45:54","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol","file":"solmate/utils/FixedPointMathLib.sol","nameLocation":"-1:-1:-1","scope":44179,"sourceUnit":26641,"symbolAliases":[],"unitAlias":""},{"id":43386,"nodeType":"ImportDirective","src":"142:38:54","nodes":[],"absolutePath":"src/solvers/BisectionLib.sol","file":"src/solvers/BisectionLib.sol","nameLocation":"-1:-1:-1","scope":44179,"sourceUnit":31119,"symbolAliases":[],"unitAlias":""},{"id":43387,"nodeType":"ImportDirective","src":"181:32:54","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/console2.sol","file":"forge-std/console2.sol","nameLocation":"-1:-1:-1","scope":44179,"sourceUnit":25513,"symbolAliases":[],"unitAlias":""},{"id":43400,"nodeType":"ContractDefinition","src":"215:136:54","nodes":[{"id":43394,"nodeType":"FunctionDefinition","src":"246:54:54","nodes":[],"functionSelector":"d004f0f7","implemented":false,"kind":"function","modifiers":[],"name":"swap","nameLocation":"255:4:54","parameters":{"id":43392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43389,"mutability":"mutable","name":"token","nameLocation":"268:5:54","nodeType":"VariableDeclaration","scope":43394,"src":"260:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43388,"name":"address","nodeType":"ElementaryTypeName","src":"260:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43391,"mutability":"mutable","name":"amount","nameLocation":"283:6:54","nodeType":"VariableDeclaration","scope":43394,"src":"275:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43390,"name":"uint256","nodeType":"ElementaryTypeName","src":"275:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"259:31:54"},"returnParameters":{"id":43393,"nodeType":"ParameterList","parameters":[],"src":"299:0:54"},"scope":43400,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43399,"nodeType":"FunctionDefinition","src":"305:44:54","nodes":[],"functionSelector":"a035b1fe","implemented":false,"kind":"function","modifiers":[],"name":"price","nameLocation":"314:5:54","parameters":{"id":43395,"nodeType":"ParameterList","parameters":[],"src":"319:2:54"},"returnParameters":{"id":43398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43397,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43399,"src":"340:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43396,"name":"uint256","nodeType":"ElementaryTypeName","src":"340:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"339:9:54"},"scope":43400,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"LiquidExchange","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[43400],"name":"LiquidExchange","nameLocation":"225:14:54","scope":44179,"usedErrors":[],"usedEvents":[]},{"id":43443,"nodeType":"ContractDefinition","src":"353:585:54","nodes":[{"id":43407,"nodeType":"FunctionDefinition","src":"382:60:54","nodes":[],"functionSelector":"bd0625ab","implemented":false,"kind":"function","modifiers":[],"name":"swap","nameLocation":"391:4:54","parameters":{"id":43405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43402,"mutability":"mutable","name":"poolId","nameLocation":"404:6:54","nodeType":"VariableDeclaration","scope":43407,"src":"396:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43401,"name":"uint256","nodeType":"ElementaryTypeName","src":"396:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43404,"mutability":"mutable","name":"data","nameLocation":"427:4:54","nodeType":"VariableDeclaration","scope":43407,"src":"412:19:54","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":43403,"name":"bytes","nodeType":"ElementaryTypeName","src":"412:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"395:37:54"},"returnParameters":{"id":43406,"nodeType":"ParameterList","parameters":[],"src":"441:0:54"},"scope":43443,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43424,"nodeType":"FunctionDefinition","src":"447:285:54","nodes":[],"functionSelector":"3928ff97","implemented":false,"kind":"function","modifiers":[],"name":"simulateSwap","nameLocation":"456:12:54","parameters":{"id":43414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43409,"mutability":"mutable","name":"poolId","nameLocation":"486:6:54","nodeType":"VariableDeclaration","scope":43424,"src":"478:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43408,"name":"uint256","nodeType":"ElementaryTypeName","src":"478:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43411,"mutability":"mutable","name":"swapXIn","nameLocation":"507:7:54","nodeType":"VariableDeclaration","scope":43424,"src":"502:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43410,"name":"bool","nodeType":"ElementaryTypeName","src":"502:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43413,"mutability":"mutable","name":"amountIn","nameLocation":"532:8:54","nodeType":"VariableDeclaration","scope":43424,"src":"524:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43412,"name":"uint256","nodeType":"ElementaryTypeName","src":"524:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"468:78:54"},"returnParameters":{"id":43423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43416,"mutability":"mutable","name":"valid","nameLocation":"612:5:54","nodeType":"VariableDeclaration","scope":43424,"src":"607:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43415,"name":"bool","nodeType":"ElementaryTypeName","src":"607:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43418,"mutability":"mutable","name":"estimatedOut","nameLocation":"639:12:54","nodeType":"VariableDeclaration","scope":43424,"src":"631:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43417,"name":"uint256","nodeType":"ElementaryTypeName","src":"631:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43420,"mutability":"mutable","name":"estimatedPrice","nameLocation":"673:14:54","nodeType":"VariableDeclaration","scope":43424,"src":"665:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43419,"name":"uint256","nodeType":"ElementaryTypeName","src":"665:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43422,"mutability":"mutable","name":"payload","nameLocation":"714:7:54","nodeType":"VariableDeclaration","scope":43424,"src":"701:20:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43421,"name":"bytes","nodeType":"ElementaryTypeName","src":"701:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"593:138:54"},"scope":43443,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":43431,"nodeType":"FunctionDefinition","src":"737:71:54","nodes":[],"functionSelector":"3b4d1030","implemented":false,"kind":"function","modifiers":[],"name":"internalPrice","nameLocation":"746:13:54","parameters":{"id":43427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43426,"mutability":"mutable","name":"poolId","nameLocation":"768:6:54","nodeType":"VariableDeclaration","scope":43431,"src":"760:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43425,"name":"uint256","nodeType":"ElementaryTypeName","src":"760:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"759:16:54"},"returnParameters":{"id":43430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43429,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43431,"src":"799:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43428,"name":"uint256","nodeType":"ElementaryTypeName","src":"799:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"798:9:54"},"scope":43443,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":43442,"nodeType":"FunctionDefinition","src":"813:123:54","nodes":[],"functionSelector":"ce153bf4","implemented":false,"kind":"function","modifiers":[],"name":"getReservesAndLiquidity","nameLocation":"822:23:54","parameters":{"id":43434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43433,"mutability":"mutable","name":"poolId","nameLocation":"854:6:54","nodeType":"VariableDeclaration","scope":43442,"src":"846:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43432,"name":"uint256","nodeType":"ElementaryTypeName","src":"846:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"845:16:54"},"returnParameters":{"id":43441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43436,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43442,"src":"909:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43435,"name":"uint256","nodeType":"ElementaryTypeName","src":"909:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43442,"src":"918:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43437,"name":"uint256","nodeType":"ElementaryTypeName","src":"918:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43440,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43442,"src":"927:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43439,"name":"uint256","nodeType":"ElementaryTypeName","src":"927:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"908:27:54"},"scope":43443,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"StrategyLike","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[43443],"name":"StrategyLike","nameLocation":"363:12:54","scope":44179,"usedErrors":[],"usedEvents":[]},{"id":43483,"nodeType":"ContractDefinition","src":"940:324:54","nodes":[{"id":43452,"nodeType":"FunctionDefinition","src":"966:58:54","nodes":[],"functionSelector":"23b872dd","implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"975:12:54","parameters":{"id":43450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43445,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43452,"src":"988:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43444,"name":"address","nodeType":"ElementaryTypeName","src":"988:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43447,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43452,"src":"997:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43446,"name":"address","nodeType":"ElementaryTypeName","src":"997:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43449,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43452,"src":"1006:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43448,"name":"uint256","nodeType":"ElementaryTypeName","src":"1006:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"987:27:54"},"returnParameters":{"id":43451,"nodeType":"ParameterList","parameters":[],"src":"1023:0:54"},"scope":43483,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43459,"nodeType":"FunctionDefinition","src":"1029:45:54","nodes":[],"functionSelector":"a9059cbb","implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1038:8:54","parameters":{"id":43457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43454,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43459,"src":"1047:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43453,"name":"address","nodeType":"ElementaryTypeName","src":"1047:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43459,"src":"1056:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43455,"name":"uint256","nodeType":"ElementaryTypeName","src":"1056:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1046:18:54"},"returnParameters":{"id":43458,"nodeType":"ParameterList","parameters":[],"src":"1073:0:54"},"scope":43483,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43466,"nodeType":"FunctionDefinition","src":"1079:44:54","nodes":[],"functionSelector":"095ea7b3","implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"1088:7:54","parameters":{"id":43464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43466,"src":"1096:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43460,"name":"address","nodeType":"ElementaryTypeName","src":"1096:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43463,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43466,"src":"1105:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43462,"name":"uint256","nodeType":"ElementaryTypeName","src":"1105:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1095:18:54"},"returnParameters":{"id":43465,"nodeType":"ParameterList","parameters":[],"src":"1122:0:54"},"scope":43483,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43473,"nodeType":"FunctionDefinition","src":"1128:60:54","nodes":[],"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1137:9:54","parameters":{"id":43469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43468,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43473,"src":"1147:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43467,"name":"address","nodeType":"ElementaryTypeName","src":"1147:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1146:9:54"},"returnParameters":{"id":43472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43471,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43473,"src":"1179:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43470,"name":"uint256","nodeType":"ElementaryTypeName","src":"1179:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1178:9:54"},"scope":43483,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":43482,"nodeType":"FunctionDefinition","src":"1193:69:54","nodes":[],"functionSelector":"dd62ed3e","implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1202:9:54","parameters":{"id":43478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43475,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43482,"src":"1212:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43474,"name":"address","nodeType":"ElementaryTypeName","src":"1212:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43477,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43482,"src":"1221:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43476,"name":"address","nodeType":"ElementaryTypeName","src":"1221:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1211:18:54"},"returnParameters":{"id":43481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43480,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43482,"src":"1253:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43479,"name":"uint256","nodeType":"ElementaryTypeName","src":"1253:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1252:9:54"},"scope":43483,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"TokenLike","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[43483],"name":"TokenLike","nameLocation":"950:9:54","scope":44179,"usedErrors":[],"usedEvents":[]},{"id":44178,"nodeType":"ContractDefinition","src":"1420:8353:54","nodes":[{"id":43487,"nodeType":"UsingForDirective","src":"1444:35:54","nodes":[],"global":false,"libraryName":{"id":43485,"name":"FixedPointMathLib","nameLocations":["1450:17:54"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"1450:17:54"},"typeName":{"id":43486,"name":"int256","nodeType":"ElementaryTypeName","src":"1472:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":43490,"nodeType":"UsingForDirective","src":"1484:36:54","nodes":[],"global":false,"libraryName":{"id":43488,"name":"FixedPointMathLib","nameLocations":["1490:17:54"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"1490:17:54"},"typeName":{"id":43489,"name":"uint256","nodeType":"ElementaryTypeName","src":"1512:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":43496,"nodeType":"ErrorDefinition","src":"1526:61:54","nodes":[],"errorSelector":"0abe5a89","name":"InsufficientBalanceY","nameLocation":"1532:20:54","parameters":{"id":43495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43492,"mutability":"mutable","name":"balance","nameLocation":"1561:7:54","nodeType":"VariableDeclaration","scope":43496,"src":"1553:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43491,"name":"uint256","nodeType":"ElementaryTypeName","src":"1553:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43494,"mutability":"mutable","name":"payment","nameLocation":"1578:7:54","nodeType":"VariableDeclaration","scope":43496,"src":"1570:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43493,"name":"uint256","nodeType":"ElementaryTypeName","src":"1570:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1552:34:54"}},{"id":43502,"nodeType":"ErrorDefinition","src":"1592:61:54","nodes":[],"errorSelector":"0295b09c","name":"InsufficientBalanceX","nameLocation":"1598:20:54","parameters":{"id":43501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43498,"mutability":"mutable","name":"balance","nameLocation":"1627:7:54","nodeType":"VariableDeclaration","scope":43502,"src":"1619:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43497,"name":"uint256","nodeType":"ElementaryTypeName","src":"1619:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43500,"mutability":"mutable","name":"payment","nameLocation":"1644:7:54","nodeType":"VariableDeclaration","scope":43502,"src":"1636:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43499,"name":"uint256","nodeType":"ElementaryTypeName","src":"1636:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1618:34:54"}},{"id":43508,"nodeType":"ErrorDefinition","src":"1658:64:54","nodes":[],"errorSelector":"da56d3c5","name":"InsufficientApprovalY","nameLocation":"1664:21:54","parameters":{"id":43507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43504,"mutability":"mutable","name":"allowance","nameLocation":"1694:9:54","nodeType":"VariableDeclaration","scope":43508,"src":"1686:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43503,"name":"uint256","nodeType":"ElementaryTypeName","src":"1686:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43506,"mutability":"mutable","name":"payment","nameLocation":"1713:7:54","nodeType":"VariableDeclaration","scope":43508,"src":"1705:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43505,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1685:36:54"}},{"id":43514,"nodeType":"ErrorDefinition","src":"1727:47:54","nodes":[],"errorSelector":"cf42d71a","name":"DexSwapFailure","nameLocation":"1733:14:54","parameters":{"id":43513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43510,"mutability":"mutable","name":"reason","nameLocation":"1755:6:54","nodeType":"VariableDeclaration","scope":43514,"src":"1748:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43509,"name":"string","nodeType":"ElementaryTypeName","src":"1748:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43512,"mutability":"mutable","name":"err","nameLocation":"1769:3:54","nodeType":"VariableDeclaration","scope":43514,"src":"1763:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43511,"name":"bytes","nodeType":"ElementaryTypeName","src":"1763:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1747:26:54"}},{"id":43524,"nodeType":"ErrorDefinition","src":"1779:114:54","nodes":[],"errorSelector":"18a73118","name":"SimulatedSwapFailure","nameLocation":"1785:20:54","parameters":{"id":43523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43516,"mutability":"mutable","name":"valid","nameLocation":"1820:5:54","nodeType":"VariableDeclaration","scope":43524,"src":"1815:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43515,"name":"bool","nodeType":"ElementaryTypeName","src":"1815:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43518,"mutability":"mutable","name":"estimatedOut","nameLocation":"1835:12:54","nodeType":"VariableDeclaration","scope":43524,"src":"1827:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43517,"name":"uint256","nodeType":"ElementaryTypeName","src":"1827:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43520,"mutability":"mutable","name":"estimatedPrice","nameLocation":"1857:14:54","nodeType":"VariableDeclaration","scope":43524,"src":"1849:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43519,"name":"uint256","nodeType":"ElementaryTypeName","src":"1849:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43522,"mutability":"mutable","name":"payload","nameLocation":"1879:7:54","nodeType":"VariableDeclaration","scope":43524,"src":"1873:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43521,"name":"bytes","nodeType":"ElementaryTypeName","src":"1873:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1805:87:54"}},{"id":43532,"nodeType":"ErrorDefinition","src":"1899:135:54","nodes":[],"errorSelector":"b16e3783","name":"UnprofitableArbitrage","nameLocation":"1905:21:54","parameters":{"id":43531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43526,"mutability":"mutable","name":"start_y_balance","nameLocation":"1944:15:54","nodeType":"VariableDeclaration","scope":43532,"src":"1936:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43525,"name":"uint256","nodeType":"ElementaryTypeName","src":"1936:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43528,"mutability":"mutable","name":"end_y_balance","nameLocation":"1977:13:54","nodeType":"VariableDeclaration","scope":43532,"src":"1969:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43527,"name":"uint256","nodeType":"ElementaryTypeName","src":"1969:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43530,"mutability":"mutable","name":"absolute_difference","nameLocation":"2008:19:54","nodeType":"VariableDeclaration","scope":43532,"src":"2000:27:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43529,"name":"uint256","nodeType":"ElementaryTypeName","src":"2000:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1926:107:54"}},{"id":43536,"nodeType":"EventDefinition","src":"2040:29:54","nodes":[],"anonymous":false,"eventSelector":"357d905f1831209797df4d55d79c5c5bf1d9f7311c976afd05e13d881eab9bc8","name":"Profit","nameLocation":"2046:6:54","parameters":{"id":43535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43534,"indexed":false,"mutability":"mutable","name":"profit","nameLocation":"2061:6:54","nodeType":"VariableDeclaration","scope":43536,"src":"2053:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43533,"name":"uint256","nodeType":"ElementaryTypeName","src":"2053:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2052:16:54"}},{"id":43540,"nodeType":"EventDefinition","src":"2074:25:54","nodes":[],"anonymous":false,"eventSelector":"b65b2e085d7d040c313f7d4e1ac90f5937026fee497e0e24a7eff16a55e1c5ea","name":"Loss","nameLocation":"2080:4:54","parameters":{"id":43539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43538,"indexed":false,"mutability":"mutable","name":"loss","nameLocation":"2093:4:54","nodeType":"VariableDeclaration","scope":43540,"src":"2085:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43537,"name":"uint256","nodeType":"ElementaryTypeName","src":"2085:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2084:14:54"}},{"id":43546,"nodeType":"EventDefinition","src":"2104:46:54","nodes":[],"anonymous":false,"eventSelector":"d1353c68e79ef70de84ee90d2facf845ec24895116d4a03505aa41785af71f5a","name":"Price","nameLocation":"2110:5:54","parameters":{"id":43545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43542,"indexed":false,"mutability":"mutable","name":"price","nameLocation":"2124:5:54","nodeType":"VariableDeclaration","scope":43546,"src":"2116:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43541,"name":"uint256","nodeType":"ElementaryTypeName","src":"2116:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43544,"indexed":false,"mutability":"mutable","name":"timestamp","nameLocation":"2139:9:54","nodeType":"VariableDeclaration","scope":43546,"src":"2131:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43543,"name":"uint256","nodeType":"ElementaryTypeName","src":"2131:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2115:34:54"}},{"id":43548,"nodeType":"VariableDeclaration","src":"2156:29:54","nodes":[],"constant":false,"functionSelector":"9f27ef4f","mutability":"mutable","name":"liquidExchange","nameLocation":"2171:14:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43547,"name":"address","nodeType":"ElementaryTypeName","src":"2156:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":43550,"nodeType":"VariableDeclaration","src":"2191:23:54","nodes":[],"constant":false,"functionSelector":"d2f7265a","mutability":"mutable","name":"exchange","nameLocation":"2206:8:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43549,"name":"address","nodeType":"ElementaryTypeName","src":"2191:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":43552,"nodeType":"VariableDeclaration","src":"2220:21:54","nodes":[],"constant":false,"functionSelector":"49a7a26d","mutability":"mutable","name":"solver","nameLocation":"2235:6:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43551,"name":"address","nodeType":"ElementaryTypeName","src":"2220:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":43554,"nodeType":"VariableDeclaration","src":"2247:20:54","nodes":[],"constant":false,"functionSelector":"38d52e0f","mutability":"mutable","name":"asset","nameLocation":"2262:5:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43553,"name":"address","nodeType":"ElementaryTypeName","src":"2247:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":43556,"nodeType":"VariableDeclaration","src":"2273:20:54","nodes":[],"constant":false,"functionSelector":"999b93af","mutability":"mutable","name":"quote","nameLocation":"2288:5:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43555,"name":"address","nodeType":"ElementaryTypeName","src":"2273:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":43559,"nodeType":"VariableDeclaration","src":"2414:40:54","nodes":[],"constant":false,"documentation":{"id":43557,"nodeType":"StructuredDocumentation","src":"2300:109:54","text":"@dev Since token x is transferred inside the arbitrage loop, this stores that value in the last arb loop."},"functionSelector":"936520c3","mutability":"mutable","name":"intermediateTokenXBalance","nameLocation":"2429:25:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43558,"name":"uint256","nodeType":"ElementaryTypeName","src":"2414:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":43561,"nodeType":"VariableDeclaration","src":"2460:45:54","nodes":[],"constant":false,"functionSelector":"fa2e5994","mutability":"mutable","name":"intermediateTokenYStartBalance","nameLocation":"2475:30:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43560,"name":"uint256","nodeType":"ElementaryTypeName","src":"2460:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":43563,"nodeType":"VariableDeclaration","src":"2511:43:54","nodes":[],"constant":false,"functionSelector":"72b98246","mutability":"mutable","name":"intermediateTokenYEndBalance","nameLocation":"2526:28:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43562,"name":"uint256","nodeType":"ElementaryTypeName","src":"2511:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":43566,"nodeType":"VariableDeclaration","src":"2635:31:54","nodes":[],"constant":false,"documentation":{"id":43564,"nodeType":"StructuredDocumentation","src":"2561:69:54","text":"@dev Accumulates the profit from each arbitrage loop in Y tokens."},"functionSelector":"85b319ff","mutability":"mutable","name":"cumulativeProfit","nameLocation":"2650:16:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43565,"name":"uint256","nodeType":"ElementaryTypeName","src":"2635:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":43600,"nodeType":"FunctionDefinition","src":"2673:364:54","nodes":[],"body":{"id":43599,"nodeType":"Block","src":"2854:183:54","nodes":[],"statements":[{"expression":{"id":43581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43579,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43552,"src":"2864:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43580,"name":"solverAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43568,"src":"2873:13:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2864:22:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43582,"nodeType":"ExpressionStatement","src":"2864:22:54"},{"expression":{"id":43585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43583,"name":"exchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43550,"src":"2896:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43584,"name":"exchangeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43570,"src":"2907:15:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2896:26:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43586,"nodeType":"ExpressionStatement","src":"2896:26:54"},{"expression":{"id":43589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43587,"name":"liquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43548,"src":"2932:14:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43588,"name":"liquidExchangeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43572,"src":"2949:21:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2932:38:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43590,"nodeType":"ExpressionStatement","src":"2932:38:54"},{"expression":{"id":43593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43591,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"2980:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43592,"name":"assetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43574,"src":"2988:12:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2980:20:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43594,"nodeType":"ExpressionStatement","src":"2980:20:54"},{"expression":{"id":43597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43595,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"3010:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43596,"name":"quoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43576,"src":"3018:12:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3010:20:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43598,"nodeType":"ExpressionStatement","src":"3010:20:54"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":43577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43568,"mutability":"mutable","name":"solverAddress","nameLocation":"2702:13:54","nodeType":"VariableDeclaration","scope":43600,"src":"2694:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43567,"name":"address","nodeType":"ElementaryTypeName","src":"2694:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43570,"mutability":"mutable","name":"exchangeAddress","nameLocation":"2733:15:54","nodeType":"VariableDeclaration","scope":43600,"src":"2725:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43569,"name":"address","nodeType":"ElementaryTypeName","src":"2725:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43572,"mutability":"mutable","name":"liquidExchangeAddress","nameLocation":"2766:21:54","nodeType":"VariableDeclaration","scope":43600,"src":"2758:29:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43571,"name":"address","nodeType":"ElementaryTypeName","src":"2758:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43574,"mutability":"mutable","name":"assetAddress","nameLocation":"2805:12:54","nodeType":"VariableDeclaration","scope":43600,"src":"2797:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43573,"name":"address","nodeType":"ElementaryTypeName","src":"2797:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43576,"mutability":"mutable","name":"quoteAddress","nameLocation":"2835:12:54","nodeType":"VariableDeclaration","scope":43600,"src":"2827:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43575,"name":"address","nodeType":"ElementaryTypeName","src":"2827:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2684:169:54"},"returnParameters":{"id":43578,"nodeType":"ParameterList","parameters":[],"src":"2854:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":43603,"nodeType":"VariableDeclaration","src":"3043:23:54","nodes":[],"constant":false,"functionSelector":"f3c973cf","mutability":"mutable","name":"XTOY","nameLocation":"3055:4:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43601,"name":"bool","nodeType":"ElementaryTypeName","src":"3043:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":43602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3062:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"public"},{"id":43606,"nodeType":"VariableDeclaration","src":"3072:24:54","nodes":[],"constant":false,"functionSelector":"6449fc57","mutability":"mutable","name":"YTOX","nameLocation":"3084:4:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43604,"name":"bool","nodeType":"ElementaryTypeName","src":"3072:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":43605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3091:5:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"public"},{"id":43610,"nodeType":"ErrorDefinition","src":"3103:37:54","nodes":[],"errorSelector":"85aba8de","name":"AttemptedProfit","nameLocation":"3109:15:54","parameters":{"id":43609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43608,"mutability":"mutable","name":"profit","nameLocation":"3132:6:54","nodeType":"VariableDeclaration","scope":43610,"src":"3125:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":43607,"name":"int256","nodeType":"ElementaryTypeName","src":"3125:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3124:15:54"}},{"id":43659,"nodeType":"FunctionDefinition","src":"3146:468:54","nodes":[],"body":{"id":43658,"nodeType":"Block","src":"3216:398:54","nodes":[],"statements":[{"assignments":[43618],"declarations":[{"constant":false,"id":43618,"mutability":"mutable","name":"price","nameLocation":"3234:5:54","nodeType":"VariableDeclaration","scope":43658,"src":"3226:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43617,"name":"uint256","nodeType":"ElementaryTypeName","src":"3226:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43625,"initialValue":{"arguments":[{"id":43623,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43612,"src":"3277:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43620,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43552,"src":"3255:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43619,"name":"StrategyLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"3242:12:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyLike_$43443_$","typeString":"type(contract StrategyLike)"}},"id":43621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3242:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StrategyLike_$43443","typeString":"contract StrategyLike"}},"id":43622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3263:13:54","memberName":"internalPrice","nodeType":"MemberAccess","referencedDeclaration":43431,"src":"3242:34:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":43624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3242:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3226:58:54"},{"eventCall":{"arguments":[{"id":43627,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43618,"src":"3305:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":43628,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3312:5:54","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":43629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3318:9:54","memberName":"timestamp","nodeType":"MemberAccess","src":"3312:15:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43626,"name":"Price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43546,"src":"3299:5:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":43630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3299:29:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43631,"nodeType":"EmitStatement","src":"3294:34:54"},{"expression":{"arguments":[{"id":43633,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43614,"src":"3384:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43632,"name":"_invoice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43784,"src":"3375:8:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":43634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3375:15:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43635,"nodeType":"ExpressionStatement","src":"3375:15:54"},{"expression":{"arguments":[{"id":43637,"name":"YTOX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43606,"src":"3436:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43638,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43614,"src":"3442:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43636,"name":"_lex_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43840,"src":"3426:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$_t_uint256_$returns$__$","typeString":"function (bool,uint256)"}},"id":43639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3426:22:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43640,"nodeType":"ExpressionStatement","src":"3426:22:54"},{"expression":{"arguments":[{"id":43642,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43612,"src":"3494:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43643,"name":"XTOY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43603,"src":"3502:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"id":43650,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3543:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3535:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43648,"name":"address","nodeType":"ElementaryTypeName","src":"3535:7:54","typeDescriptions":{}}},"id":43651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3535:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43645,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"3518:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43644,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"3508:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3508:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3525:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"3508:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3508:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43641,"name":"_dex_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43934,"src":"3484:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$_t_uint256_$returns$__$","typeString":"function (uint256,bool,uint256)"}},"id":43653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3484:66:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43654,"nodeType":"ExpressionStatement","src":"3484:66:54"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43655,"name":"_payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44003,"src":"3598:7:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":43656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3598:9:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43657,"nodeType":"ExpressionStatement","src":"3598:9:54"}]},"functionSelector":"96fbee1d","implemented":true,"kind":"function","modifiers":[],"name":"lower_exchange_price","nameLocation":"3155:20:54","parameters":{"id":43615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43612,"mutability":"mutable","name":"poolId","nameLocation":"3184:6:54","nodeType":"VariableDeclaration","scope":43659,"src":"3176:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43611,"name":"uint256","nodeType":"ElementaryTypeName","src":"3176:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43614,"mutability":"mutable","name":"input","nameLocation":"3200:5:54","nodeType":"VariableDeclaration","scope":43659,"src":"3192:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43613,"name":"uint256","nodeType":"ElementaryTypeName","src":"3192:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3175:31:54"},"returnParameters":{"id":43616,"nodeType":"ParameterList","parameters":[],"src":"3216:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43708,"nodeType":"FunctionDefinition","src":"3620:468:54","nodes":[],"body":{"id":43707,"nodeType":"Block","src":"3690:398:54","nodes":[],"statements":[{"assignments":[43667],"declarations":[{"constant":false,"id":43667,"mutability":"mutable","name":"price","nameLocation":"3708:5:54","nodeType":"VariableDeclaration","scope":43707,"src":"3700:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43666,"name":"uint256","nodeType":"ElementaryTypeName","src":"3700:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43674,"initialValue":{"arguments":[{"id":43672,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43661,"src":"3751:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43669,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43552,"src":"3729:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43668,"name":"StrategyLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"3716:12:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyLike_$43443_$","typeString":"type(contract StrategyLike)"}},"id":43670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3716:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StrategyLike_$43443","typeString":"contract StrategyLike"}},"id":43671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3737:13:54","memberName":"internalPrice","nodeType":"MemberAccess","referencedDeclaration":43431,"src":"3716:34:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":43673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3716:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3700:58:54"},{"eventCall":{"arguments":[{"id":43676,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43667,"src":"3779:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":43677,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3786:5:54","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":43678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3792:9:54","memberName":"timestamp","nodeType":"MemberAccess","src":"3786:15:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43675,"name":"Price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43546,"src":"3773:5:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":43679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3773:29:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43680,"nodeType":"EmitStatement","src":"3768:34:54"},{"expression":{"arguments":[{"id":43682,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43663,"src":"3858:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43681,"name":"_invoice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43784,"src":"3849:8:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":43683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3849:15:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43684,"nodeType":"ExpressionStatement","src":"3849:15:54"},{"expression":{"arguments":[{"id":43686,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43661,"src":"3910:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43687,"name":"YTOX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43606,"src":"3918:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43688,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43663,"src":"3924:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43685,"name":"_dex_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43934,"src":"3900:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$_t_uint256_$returns$__$","typeString":"function (uint256,bool,uint256)"}},"id":43689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3900:30:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43690,"nodeType":"ExpressionStatement","src":"3900:30:54"},{"expression":{"arguments":[{"id":43692,"name":"XTOY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43603,"src":"3976:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"id":43699,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4017:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4009:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43697,"name":"address","nodeType":"ElementaryTypeName","src":"4009:7:54","typeDescriptions":{}}},"id":43700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4009:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43694,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"3992:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43693,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"3982:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3982:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3999:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"3982:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3982:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43691,"name":"_lex_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43840,"src":"3966:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$_t_uint256_$returns$__$","typeString":"function (bool,uint256)"}},"id":43702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3966:58:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43703,"nodeType":"ExpressionStatement","src":"3966:58:54"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43704,"name":"_payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44003,"src":"4072:7:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":43705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4072:9:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43706,"nodeType":"ExpressionStatement","src":"4072:9:54"}]},"functionSelector":"f9005eb5","implemented":true,"kind":"function","modifiers":[],"name":"raise_exchange_price","nameLocation":"3629:20:54","parameters":{"id":43664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43661,"mutability":"mutable","name":"poolId","nameLocation":"3658:6:54","nodeType":"VariableDeclaration","scope":43708,"src":"3650:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43660,"name":"uint256","nodeType":"ElementaryTypeName","src":"3650:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43663,"mutability":"mutable","name":"input","nameLocation":"3674:5:54","nodeType":"VariableDeclaration","scope":43708,"src":"3666:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43662,"name":"uint256","nodeType":"ElementaryTypeName","src":"3666:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3649:31:54"},"returnParameters":{"id":43665,"nodeType":"ParameterList","parameters":[],"src":"3690:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43784,"nodeType":"FunctionDefinition","src":"4149:634:54","nodes":[],"body":{"id":43783,"nodeType":"Block","src":"4194:589:54","nodes":[],"statements":[{"assignments":[43715],"declarations":[{"constant":false,"id":43715,"mutability":"mutable","name":"quote_balance","nameLocation":"4212:13:54","nodeType":"VariableDeclaration","scope":43783,"src":"4204:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43714,"name":"uint256","nodeType":"ElementaryTypeName","src":"4204:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43723,"initialValue":{"arguments":[{"expression":{"id":43720,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4255:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4259:6:54","memberName":"sender","nodeType":"MemberAccess","src":"4255:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43717,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"4238:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43716,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"4228:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4228:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4245:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"4228:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4228:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4204:62:54"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43724,"name":"quote_balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43715,"src":"4280:13:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43725,"name":"amount_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43711,"src":"4296:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4280:24:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43733,"nodeType":"IfStatement","src":"4276:107:54","trueBody":{"id":43732,"nodeType":"Block","src":"4306:77:54","statements":[{"errorCall":{"arguments":[{"id":43728,"name":"quote_balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43715,"src":"4348:13:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43729,"name":"amount_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43711,"src":"4363:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43727,"name":"InsufficientBalanceY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43496,"src":"4327:20:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4327:45:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43731,"nodeType":"RevertStatement","src":"4320:52:54"}]}},{"assignments":[43735],"declarations":[{"constant":false,"id":43735,"mutability":"mutable","name":"quote_approval","nameLocation":"4401:14:54","nodeType":"VariableDeclaration","scope":43783,"src":"4393:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43734,"name":"uint256","nodeType":"ElementaryTypeName","src":"4393:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43747,"initialValue":{"arguments":[{"expression":{"id":43740,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4457:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4461:6:54","memberName":"sender","nodeType":"MemberAccess","src":"4457:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":43744,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4477:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4469:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43742,"name":"address","nodeType":"ElementaryTypeName","src":"4469:7:54","typeDescriptions":{}}},"id":43745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4469:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43737,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"4440:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43736,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"4430:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4430:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4447:9:54","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":43482,"src":"4430:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":43746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4430:53:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4393:90:54"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43748,"name":"quote_approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43735,"src":"4497:14:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43749,"name":"amount_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43711,"src":"4514:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4497:25:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43757,"nodeType":"IfStatement","src":"4493:110:54","trueBody":{"id":43756,"nodeType":"Block","src":"4524:79:54","statements":[{"errorCall":{"arguments":[{"id":43752,"name":"quote_approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43735,"src":"4567:14:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43753,"name":"amount_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43711,"src":"4583:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43751,"name":"InsufficientApprovalY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43508,"src":"4545:21:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4545:47:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43755,"nodeType":"RevertStatement","src":"4538:54:54"}]}},{"expression":{"arguments":[{"expression":{"id":43762,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4643:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4647:6:54","memberName":"sender","nodeType":"MemberAccess","src":"4643:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":43766,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4663:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4655:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43764,"name":"address","nodeType":"ElementaryTypeName","src":"4655:7:54","typeDescriptions":{}}},"id":43767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4655:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43768,"name":"amount_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43711,"src":"4670:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43759,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"4623:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43758,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"4613:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4613:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4630:12:54","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":43452,"src":"4613:29:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":43769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4613:66:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43770,"nodeType":"ExpressionStatement","src":"4613:66:54"},{"expression":{"id":43781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43771,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"4690:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":43778,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4770:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4762:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43776,"name":"address","nodeType":"ElementaryTypeName","src":"4762:7:54","typeDescriptions":{}}},"id":43779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4762:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43773,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"4745:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43772,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"4735:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4735:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4752:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"4735:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4735:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4690:86:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43782,"nodeType":"ExpressionStatement","src":"4690:86:54"}]},"documentation":{"id":43709,"nodeType":"StructuredDocumentation","src":"4094:50:54","text":"@dev Handles the payment from the arbitrageur."},"implemented":true,"kind":"function","modifiers":[],"name":"_invoice","nameLocation":"4158:8:54","parameters":{"id":43712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43711,"mutability":"mutable","name":"amount_y","nameLocation":"4175:8:54","nodeType":"VariableDeclaration","scope":43784,"src":"4167:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43710,"name":"uint256","nodeType":"ElementaryTypeName","src":"4167:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4166:18:54"},"returnParameters":{"id":43713,"nodeType":"ParameterList","parameters":[],"src":"4194:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43840,"nodeType":"FunctionDefinition","src":"4789:877:54","nodes":[],"body":{"id":43839,"nodeType":"Block","src":"4846:820:54","nodes":[],"statements":[{"condition":{"id":43791,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43786,"src":"4860:7:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43837,"nodeType":"Block","src":"5221:439:54","statements":[{"expression":{"arguments":[{"id":43813,"name":"liquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43548,"src":"5356:14:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43814,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43788,"src":"5372:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43810,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"5341:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43809,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"5331:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5331:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5348:7:54","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":43466,"src":"5331:24:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5331:47:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43816,"nodeType":"ExpressionStatement","src":"5331:47:54"},{"expression":{"arguments":[{"id":43821,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"5487:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43822,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43788,"src":"5494:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43818,"name":"liquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43548,"src":"5466:14:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43817,"name":"LiquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43400,"src":"5451:14:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LiquidExchange_$43400_$","typeString":"type(contract LiquidExchange)"}},"id":43819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5451:30:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LiquidExchange_$43400","typeString":"contract LiquidExchange"}},"id":43820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5482:4:54","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":43394,"src":"5451:35:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5451:49:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43824,"nodeType":"ExpressionStatement","src":"5451:49:54"},{"expression":{"id":43835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43825,"name":"intermediateTokenXBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43559,"src":"5564:25:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":43832,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5643:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5635:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43830,"name":"address","nodeType":"ElementaryTypeName","src":"5635:7:54","typeDescriptions":{}}},"id":43833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5635:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43827,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"5618:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43826,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"5608:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5608:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5625:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"5608:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5608:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5564:85:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43836,"nodeType":"ExpressionStatement","src":"5564:85:54"}]},"id":43838,"nodeType":"IfStatement","src":"4856:804:54","trueBody":{"id":43808,"nodeType":"Block","src":"4869:346:54","statements":[{"expression":{"arguments":[{"id":43796,"name":"liquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43548,"src":"5004:14:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43797,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43788,"src":"5020:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43793,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"4989:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43792,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"4979:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4979:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4996:7:54","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":43466,"src":"4979:24:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4979:47:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43799,"nodeType":"ExpressionStatement","src":"4979:47:54"},{"expression":{"arguments":[{"id":43804,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"5135:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43805,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43788,"src":"5142:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43801,"name":"liquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43548,"src":"5114:14:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43800,"name":"LiquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43400,"src":"5099:14:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LiquidExchange_$43400_$","typeString":"type(contract LiquidExchange)"}},"id":43802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5099:30:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LiquidExchange_$43400","typeString":"contract LiquidExchange"}},"id":43803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5130:4:54","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":43394,"src":"5099:35:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5099:49:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43807,"nodeType":"ExpressionStatement","src":"5099:49:54"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_lex_swap","nameLocation":"4798:9:54","parameters":{"id":43789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43786,"mutability":"mutable","name":"swapXIn","nameLocation":"4813:7:54","nodeType":"VariableDeclaration","scope":43840,"src":"4808:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43785,"name":"bool","nodeType":"ElementaryTypeName","src":"4808:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43788,"mutability":"mutable","name":"input","nameLocation":"4830:5:54","nodeType":"VariableDeclaration","scope":43840,"src":"4822:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43787,"name":"uint256","nodeType":"ElementaryTypeName","src":"4822:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4807:29:54"},"returnParameters":{"id":43790,"nodeType":"ParameterList","parameters":[],"src":"4846:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43934,"nodeType":"FunctionDefinition","src":"5672:1592:54","nodes":[],"body":{"id":43933,"nodeType":"Block","src":"5778:1486:54","nodes":[],"statements":[{"condition":{"id":43849,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43844,"src":"5792:7:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43867,"nodeType":"Block","src":"5966:159:54","statements":[{"expression":{"arguments":[{"id":43863,"name":"exchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43550,"src":"6095:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43864,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43846,"src":"6105:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43860,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"6080:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43859,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"6070:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6070:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6087:7:54","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":43466,"src":"6070:24:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6070:44:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43866,"nodeType":"ExpressionStatement","src":"6070:44:54"}]},"id":43868,"nodeType":"IfStatement","src":"5788:337:54","trueBody":{"id":43858,"nodeType":"Block","src":"5801:159:54","statements":[{"expression":{"arguments":[{"id":43854,"name":"exchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43550,"src":"5930:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43855,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43846,"src":"5940:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43851,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"5915:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43850,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"5905:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5905:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5922:7:54","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":43466,"src":"5905:24:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5905:44:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43857,"nodeType":"ExpressionStatement","src":"5905:44:54"}]}},{"assignments":[43870,43872,43874,43876],"declarations":[{"constant":false,"id":43870,"mutability":"mutable","name":"valid","nameLocation":"6296:5:54","nodeType":"VariableDeclaration","scope":43933,"src":"6291:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43869,"name":"bool","nodeType":"ElementaryTypeName","src":"6291:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43872,"mutability":"mutable","name":"estimatedOut","nameLocation":"6323:12:54","nodeType":"VariableDeclaration","scope":43933,"src":"6315:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43871,"name":"uint256","nodeType":"ElementaryTypeName","src":"6315:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43874,"mutability":"mutable","name":"estimatedPrice","nameLocation":"6357:14:54","nodeType":"VariableDeclaration","scope":43933,"src":"6349:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43873,"name":"uint256","nodeType":"ElementaryTypeName","src":"6349:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43876,"mutability":"mutable","name":"payload","nameLocation":"6398:7:54","nodeType":"VariableDeclaration","scope":43933,"src":"6385:20:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43875,"name":"bytes","nodeType":"ElementaryTypeName","src":"6385:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":43885,"initialValue":{"arguments":[{"id":43881,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43842,"src":"6452:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43882,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43844,"src":"6460:7:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43883,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43846,"src":"6469:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43878,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43552,"src":"6431:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43877,"name":"StrategyLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"6418:12:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyLike_$43443_$","typeString":"type(contract StrategyLike)"}},"id":43879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6418:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StrategyLike_$43443","typeString":"contract StrategyLike"}},"id":43880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6439:12:54","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":43424,"src":"6418:33:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,uint256,bytes memory)"}},"id":43884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6418:60:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6277:201:54"},{"condition":{"id":43887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6493:6:54","subExpression":{"id":43886,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43870,"src":"6494:5:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43896,"nodeType":"IfStatement","src":"6489:140:54","trueBody":{"id":43895,"nodeType":"Block","src":"6501:128:54","statements":[{"errorCall":{"arguments":[{"id":43889,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43870,"src":"6560:5:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43890,"name":"estimatedOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43872,"src":"6567:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43891,"name":"estimatedPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43874,"src":"6581:14:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43892,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43876,"src":"6597:7:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43888,"name":"SimulatedSwapFailure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43524,"src":"6522:20:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bool,uint256,uint256,bytes memory) pure"}},"id":43893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6522:96:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43894,"nodeType":"RevertStatement","src":"6515:103:54"}]}},{"clauses":[{"block":{"id":43920,"nodeType":"Block","src":"6717:435:54","statements":[{"condition":{"id":43904,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43844,"src":"6820:7:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43918,"nodeType":"Block","src":"6938:204:54","statements":[{"expression":{"id":43916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43906,"name":"intermediateTokenXBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43559,"src":"7038:25:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":43913,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7121:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43912,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7113:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43911,"name":"address","nodeType":"ElementaryTypeName","src":"7113:7:54","typeDescriptions":{}}},"id":43914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7113:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43908,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"7096:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43907,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"7086:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7086:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7103:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"7086:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7086:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7038:89:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43917,"nodeType":"ExpressionStatement","src":"7038:89:54"}]},"id":43919,"nodeType":"IfStatement","src":"6816:326:54","trueBody":{"id":43905,"nodeType":"Block","src":"6829:103:54","statements":[]}}]},"errorName":"","id":43921,"nodeType":"TryCatchClause","src":"6717:435:54"},{"block":{"id":43930,"nodeType":"Block","src":"7178:80:54","statements":[{"errorCall":{"arguments":[{"hexValue":"4445582073776170206661696c656420776974682064617461","id":43926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7214:27:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_f15362d018ecb0a5e9c49cd1e85ce384ef3452d5cda7e416ace6693442dd5650","typeString":"literal_string \"DEX swap failed with data\""},"value":"DEX swap failed with data"},{"id":43927,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43923,"src":"7243:3:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f15362d018ecb0a5e9c49cd1e85ce384ef3452d5cda7e416ace6693442dd5650","typeString":"literal_string \"DEX swap failed with data\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43925,"name":"DexSwapFailure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43514,"src":"7199:14:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,bytes memory) pure"}},"id":43928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7199:48:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43929,"nodeType":"RevertStatement","src":"7192:55:54"}]},"errorName":"","id":43931,"nodeType":"TryCatchClause","parameters":{"id":43924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43923,"mutability":"mutable","name":"err","nameLocation":"7173:3:54","nodeType":"VariableDeclaration","scope":43931,"src":"7160:16:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43922,"name":"bytes","nodeType":"ElementaryTypeName","src":"7160:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7159:18:54"},"src":"7153:105:54"}],"externalCall":{"arguments":[{"id":43901,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43842,"src":"6700:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43902,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43876,"src":"6708:7:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":43898,"name":"exchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43550,"src":"6685:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43897,"name":"StrategyLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"6672:12:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyLike_$43443_$","typeString":"type(contract StrategyLike)"}},"id":43899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6672:22:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StrategyLike_$43443","typeString":"contract StrategyLike"}},"id":43900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6695:4:54","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":43407,"src":"6672:27:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory) external"}},"id":43903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6672:44:54","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43932,"nodeType":"TryStatement","src":"6668:590:54"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_dex_swap","nameLocation":"5681:9:54","parameters":{"id":43847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43842,"mutability":"mutable","name":"poolId","nameLocation":"5708:6:54","nodeType":"VariableDeclaration","scope":43934,"src":"5700:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43841,"name":"uint256","nodeType":"ElementaryTypeName","src":"5700:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43844,"mutability":"mutable","name":"swapXIn","nameLocation":"5729:7:54","nodeType":"VariableDeclaration","scope":43934,"src":"5724:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43843,"name":"bool","nodeType":"ElementaryTypeName","src":"5724:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43846,"mutability":"mutable","name":"amountIn","nameLocation":"5754:8:54","nodeType":"VariableDeclaration","scope":43934,"src":"5746:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43845,"name":"uint256","nodeType":"ElementaryTypeName","src":"5746:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5690:78:54"},"returnParameters":{"id":43848,"nodeType":"ParameterList","parameters":[],"src":"5778:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44003,"nodeType":"FunctionDefinition","src":"7270:1034:54","nodes":[],"body":{"id":44002,"nodeType":"Block","src":"7298:1006:54","nodes":[],"statements":[{"expression":{"id":43947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43937,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"7353:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":43944,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7419:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7411:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43942,"name":"address","nodeType":"ElementaryTypeName","src":"7411:7:54","typeDescriptions":{}}},"id":43945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7411:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43939,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"7394:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43938,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"7384:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7384:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7401:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"7384:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7384:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7353:72:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43948,"nodeType":"ExpressionStatement","src":"7353:72:54"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43949,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"7440:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43950,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"7471:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7440:61:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43978,"nodeType":"IfStatement","src":"7436:563:54","trueBody":{"id":43977,"nodeType":"Block","src":"7503:496:54","statements":[{"eventCall":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43953,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"7544:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":43954,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"7577:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7544:61:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43952,"name":"Loss","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43540,"src":"7522:4:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":43956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7522:97:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43957,"nodeType":"EmitStatement","src":"7517:102:54"},{"errorCall":{"arguments":[{"id":43959,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"7679:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43960,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"7727:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":43973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"7802:154:54","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":43971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":43965,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"7836:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7829:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":43963,"name":"int256","nodeType":"ElementaryTypeName","src":"7829:6:54","typeDescriptions":{}}},"id":43966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7829:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":43969,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"7905:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7898:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":43967,"name":"int256","nodeType":"ElementaryTypeName","src":"7898:6:54","typeDescriptions":{}}},"id":43970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7898:36:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7829:105:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":43972,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7803:153:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":43962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7773:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":43961,"name":"uint256","nodeType":"ElementaryTypeName","src":"7773:7:54","typeDescriptions":{}}},"id":43974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7773:201:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43958,"name":"UnprofitableArbitrage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43532,"src":"7640:21:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":43975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7640:348:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43976,"nodeType":"RevertStatement","src":"7633:355:54"}]}},{"assignments":[43980],"declarations":[{"constant":false,"id":43980,"mutability":"mutable","name":"profit","nameLocation":"8072:6:54","nodeType":"VariableDeclaration","scope":44002,"src":"8064:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43979,"name":"uint256","nodeType":"ElementaryTypeName","src":"8064:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43984,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43981,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"8093:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":43982,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"8124:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8093:61:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8064:90:54"},{"expression":{"id":43987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43985,"name":"cumulativeProfit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43566,"src":"8164:16:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":43986,"name":"profit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43980,"src":"8184:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8164:26:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43988,"nodeType":"ExpressionStatement","src":"8164:26:54"},{"eventCall":{"arguments":[{"id":43990,"name":"profit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43980,"src":"8212:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43989,"name":"Profit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43536,"src":"8205:6:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":43991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8205:14:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43992,"nodeType":"EmitStatement","src":"8200:19:54"},{"expression":{"arguments":[{"expression":{"id":43997,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8256:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8260:6:54","memberName":"sender","nodeType":"MemberAccess","src":"8256:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43999,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"8268:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43994,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"8240:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43993,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"8230:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8230:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8247:8:54","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":43459,"src":"8230:25:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":44000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8230:67:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44001,"nodeType":"ExpressionStatement","src":"8230:67:54"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_payout","nameLocation":"7279:7:54","parameters":{"id":43935,"nodeType":"ParameterList","parameters":[],"src":"7286:2:54"},"returnParameters":{"id":43936,"nodeType":"ParameterList","parameters":[],"src":"7298:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44030,"nodeType":"FunctionDefinition","src":"8310:371:54","nodes":[],"body":{"id":44029,"nodeType":"Block","src":"8597:84:54","nodes":[],"statements":[{"expression":{"arguments":[{"id":44024,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44005,"src":"8648:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44025,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"8656:7:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44026,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44009,"src":"8665:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":44021,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43552,"src":"8627:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44020,"name":"StrategyLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"8614:12:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyLike_$43443_$","typeString":"type(contract StrategyLike)"}},"id":44022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8614:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StrategyLike_$43443","typeString":"contract StrategyLike"}},"id":44023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8635:12:54","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":43424,"src":"8614:33:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,uint256,bytes memory)"}},"id":44027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8614:60:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"functionReturnParameters":44019,"id":44028,"nodeType":"Return","src":"8607:67:54"}]},"functionSelector":"3928ff97","implemented":true,"kind":"function","modifiers":[],"name":"simulateSwap","nameLocation":"8319:12:54","parameters":{"id":44010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44005,"mutability":"mutable","name":"poolId","nameLocation":"8349:6:54","nodeType":"VariableDeclaration","scope":44030,"src":"8341:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44004,"name":"uint256","nodeType":"ElementaryTypeName","src":"8341:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44007,"mutability":"mutable","name":"swapXIn","nameLocation":"8370:7:54","nodeType":"VariableDeclaration","scope":44030,"src":"8365:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44006,"name":"bool","nodeType":"ElementaryTypeName","src":"8365:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44009,"mutability":"mutable","name":"amountIn","nameLocation":"8395:8:54","nodeType":"VariableDeclaration","scope":44030,"src":"8387:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44008,"name":"uint256","nodeType":"ElementaryTypeName","src":"8387:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8331:78:54"},"returnParameters":{"id":44019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44012,"mutability":"mutable","name":"valid","nameLocation":"8473:5:54","nodeType":"VariableDeclaration","scope":44030,"src":"8468:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44011,"name":"bool","nodeType":"ElementaryTypeName","src":"8468:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44014,"mutability":"mutable","name":"estimatedOut","nameLocation":"8500:12:54","nodeType":"VariableDeclaration","scope":44030,"src":"8492:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44013,"name":"uint256","nodeType":"ElementaryTypeName","src":"8492:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44016,"mutability":"mutable","name":"estimatedPrice","nameLocation":"8534:14:54","nodeType":"VariableDeclaration","scope":44030,"src":"8526:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44015,"name":"uint256","nodeType":"ElementaryTypeName","src":"8526:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44018,"mutability":"mutable","name":"payload","nameLocation":"8575:7:54","nodeType":"VariableDeclaration","scope":44030,"src":"8562:20:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":44017,"name":"bytes","nodeType":"ElementaryTypeName","src":"8562:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8454:138:54"},"scope":44178,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":44045,"nodeType":"FunctionDefinition","src":"8687:108:54","nodes":[],"body":{"id":44044,"nodeType":"Block","src":"8750:45:54","nodes":[],"statements":[{"expression":{"id":44042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44037,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44035,"src":"8760:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44040,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44032,"src":"8782:5:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":44038,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"8769:8:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":44039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8778:3:54","memberName":"cdf","nodeType":"MemberAccess","referencedDeclaration":27280,"src":"8769:12:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":44041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8769:19:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8760:28:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":44043,"nodeType":"ExpressionStatement","src":"8760:28:54"}]},"functionSelector":"d0b71b1e","implemented":true,"kind":"function","modifiers":[],"name":"cdf","nameLocation":"8696:3:54","parameters":{"id":44033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44032,"mutability":"mutable","name":"input","nameLocation":"8707:5:54","nodeType":"VariableDeclaration","scope":44045,"src":"8700:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44031,"name":"int256","nodeType":"ElementaryTypeName","src":"8700:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8699:14:54"},"returnParameters":{"id":44036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44035,"mutability":"mutable","name":"output","nameLocation":"8742:6:54","nodeType":"VariableDeclaration","scope":44045,"src":"8735:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44034,"name":"int256","nodeType":"ElementaryTypeName","src":"8735:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8734:15:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44060,"nodeType":"FunctionDefinition","src":"8801:108:54","nodes":[],"body":{"id":44059,"nodeType":"Block","src":"8864:45:54","nodes":[],"statements":[{"expression":{"id":44057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44052,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44050,"src":"8874:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44055,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44047,"src":"8896:5:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":44053,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"8883:8:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":44054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8892:3:54","memberName":"pdf","nodeType":"MemberAccess","referencedDeclaration":27314,"src":"8883:12:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":44056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8883:19:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8874:28:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":44058,"nodeType":"ExpressionStatement","src":"8874:28:54"}]},"functionSelector":"d24ce6e5","implemented":true,"kind":"function","modifiers":[],"name":"pdf","nameLocation":"8810:3:54","parameters":{"id":44048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44047,"mutability":"mutable","name":"input","nameLocation":"8821:5:54","nodeType":"VariableDeclaration","scope":44060,"src":"8814:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44046,"name":"int256","nodeType":"ElementaryTypeName","src":"8814:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8813:14:54"},"returnParameters":{"id":44051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44050,"mutability":"mutable","name":"output","nameLocation":"8856:6:54","nodeType":"VariableDeclaration","scope":44060,"src":"8849:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44049,"name":"int256","nodeType":"ElementaryTypeName","src":"8849:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8848:15:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44075,"nodeType":"FunctionDefinition","src":"8915:108:54","nodes":[],"body":{"id":44074,"nodeType":"Block","src":"8978:45:54","nodes":[],"statements":[{"expression":{"id":44072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44067,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44065,"src":"8988:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44070,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9010:5:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":44068,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"8997:8:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":44069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9006:3:54","memberName":"ppf","nodeType":"MemberAccess","referencedDeclaration":27373,"src":"8997:12:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":44071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8997:19:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8988:28:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":44073,"nodeType":"ExpressionStatement","src":"8988:28:54"}]},"functionSelector":"3679723a","implemented":true,"kind":"function","modifiers":[],"name":"ppf","nameLocation":"8924:3:54","parameters":{"id":44063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44062,"mutability":"mutable","name":"input","nameLocation":"8935:5:54","nodeType":"VariableDeclaration","scope":44075,"src":"8928:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44061,"name":"int256","nodeType":"ElementaryTypeName","src":"8928:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8927:14:54"},"returnParameters":{"id":44066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44065,"mutability":"mutable","name":"output","nameLocation":"8970:6:54","nodeType":"VariableDeclaration","scope":44075,"src":"8963:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44064,"name":"int256","nodeType":"ElementaryTypeName","src":"8963:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8962:15:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44093,"nodeType":"FunctionDefinition","src":"9029:129:54","nodes":[],"body":{"id":44092,"nodeType":"Block","src":"9103:55:54","nodes":[],"statements":[{"expression":{"id":44090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44084,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44082,"src":"9113:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44087,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44077,"src":"9146:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44088,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44079,"src":"9149:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44085,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9117:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9135:10:54","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"9117:28:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":44089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9117:34:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9113:38:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44091,"nodeType":"ExpressionStatement","src":"9113:38:54"}]},"functionSelector":"e524f849","implemented":true,"kind":"function","modifiers":[],"name":"mulWadDown","nameLocation":"9038:10:54","parameters":{"id":44080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44077,"mutability":"mutable","name":"x","nameLocation":"9057:1:54","nodeType":"VariableDeclaration","scope":44093,"src":"9049:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44076,"name":"uint256","nodeType":"ElementaryTypeName","src":"9049:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44079,"mutability":"mutable","name":"y","nameLocation":"9068:1:54","nodeType":"VariableDeclaration","scope":44093,"src":"9060:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44078,"name":"uint256","nodeType":"ElementaryTypeName","src":"9060:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9048:22:54"},"returnParameters":{"id":44083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44082,"mutability":"mutable","name":"z","nameLocation":"9100:1:54","nodeType":"VariableDeclaration","scope":44093,"src":"9092:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44081,"name":"uint256","nodeType":"ElementaryTypeName","src":"9092:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9091:11:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44111,"nodeType":"FunctionDefinition","src":"9164:125:54","nodes":[],"body":{"id":44110,"nodeType":"Block","src":"9236:53:54","nodes":[],"statements":[{"expression":{"id":44108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44102,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44100,"src":"9246:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44105,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44095,"src":"9277:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44106,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44097,"src":"9280:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44103,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9250:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9268:8:54","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"9250:26:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":44107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9250:32:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9246:36:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44109,"nodeType":"ExpressionStatement","src":"9246:36:54"}]},"functionSelector":"ae9768a8","implemented":true,"kind":"function","modifiers":[],"name":"mulWadUp","nameLocation":"9173:8:54","parameters":{"id":44098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44095,"mutability":"mutable","name":"x","nameLocation":"9190:1:54","nodeType":"VariableDeclaration","scope":44111,"src":"9182:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44094,"name":"uint256","nodeType":"ElementaryTypeName","src":"9182:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44097,"mutability":"mutable","name":"y","nameLocation":"9201:1:54","nodeType":"VariableDeclaration","scope":44111,"src":"9193:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44096,"name":"uint256","nodeType":"ElementaryTypeName","src":"9193:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9181:22:54"},"returnParameters":{"id":44101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44100,"mutability":"mutable","name":"z","nameLocation":"9233:1:54","nodeType":"VariableDeclaration","scope":44111,"src":"9225:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44099,"name":"uint256","nodeType":"ElementaryTypeName","src":"9225:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9224:11:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44129,"nodeType":"FunctionDefinition","src":"9295:129:54","nodes":[],"body":{"id":44128,"nodeType":"Block","src":"9369:55:54","nodes":[],"statements":[{"expression":{"id":44126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44120,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44118,"src":"9379:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44123,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44113,"src":"9412:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44124,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"9415:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44121,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9383:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9401:10:54","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"9383:28:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":44125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9383:34:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9379:38:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44127,"nodeType":"ExpressionStatement","src":"9379:38:54"}]},"functionSelector":"37c6a44a","implemented":true,"kind":"function","modifiers":[],"name":"divWadDown","nameLocation":"9304:10:54","parameters":{"id":44116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44113,"mutability":"mutable","name":"x","nameLocation":"9323:1:54","nodeType":"VariableDeclaration","scope":44129,"src":"9315:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44112,"name":"uint256","nodeType":"ElementaryTypeName","src":"9315:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44115,"mutability":"mutable","name":"y","nameLocation":"9334:1:54","nodeType":"VariableDeclaration","scope":44129,"src":"9326:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44114,"name":"uint256","nodeType":"ElementaryTypeName","src":"9326:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9314:22:54"},"returnParameters":{"id":44119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44118,"mutability":"mutable","name":"z","nameLocation":"9366:1:54","nodeType":"VariableDeclaration","scope":44129,"src":"9358:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44117,"name":"uint256","nodeType":"ElementaryTypeName","src":"9358:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9357:11:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44147,"nodeType":"FunctionDefinition","src":"9430:125:54","nodes":[],"body":{"id":44146,"nodeType":"Block","src":"9502:53:54","nodes":[],"statements":[{"expression":{"id":44144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44138,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44136,"src":"9512:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44141,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"9543:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44142,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44133,"src":"9546:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44139,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9516:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9534:8:54","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"9516:26:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":44143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9516:32:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9512:36:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44145,"nodeType":"ExpressionStatement","src":"9512:36:54"}]},"functionSelector":"bd252d06","implemented":true,"kind":"function","modifiers":[],"name":"divWadUp","nameLocation":"9439:8:54","parameters":{"id":44134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44131,"mutability":"mutable","name":"x","nameLocation":"9456:1:54","nodeType":"VariableDeclaration","scope":44147,"src":"9448:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44130,"name":"uint256","nodeType":"ElementaryTypeName","src":"9448:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44133,"mutability":"mutable","name":"y","nameLocation":"9467:1:54","nodeType":"VariableDeclaration","scope":44147,"src":"9459:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44132,"name":"uint256","nodeType":"ElementaryTypeName","src":"9459:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9447:22:54"},"returnParameters":{"id":44137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44136,"mutability":"mutable","name":"z","nameLocation":"9499:1:54","nodeType":"VariableDeclaration","scope":44147,"src":"9491:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44135,"name":"uint256","nodeType":"ElementaryTypeName","src":"9491:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9490:11:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44162,"nodeType":"FunctionDefinition","src":"9561:101:54","nodes":[],"body":{"id":44161,"nodeType":"Block","src":"9615:47:54","nodes":[],"statements":[{"expression":{"id":44159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44154,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44152,"src":"9625:1:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44157,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44149,"src":"9653:1:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":44155,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9629:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9647:5:54","memberName":"lnWad","nodeType":"MemberAccess","referencedDeclaration":26541,"src":"9629:23:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":44158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9629:26:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9625:30:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":44160,"nodeType":"ExpressionStatement","src":"9625:30:54"}]},"functionSelector":"2d5b6cb9","implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9570:3:54","parameters":{"id":44150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44149,"mutability":"mutable","name":"x","nameLocation":"9581:1:54","nodeType":"VariableDeclaration","scope":44162,"src":"9574:8:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44148,"name":"int256","nodeType":"ElementaryTypeName","src":"9574:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9573:10:54"},"returnParameters":{"id":44153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44152,"mutability":"mutable","name":"z","nameLocation":"9612:1:54","nodeType":"VariableDeclaration","scope":44162,"src":"9605:8:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44151,"name":"int256","nodeType":"ElementaryTypeName","src":"9605:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9604:10:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44177,"nodeType":"FunctionDefinition","src":"9668:103:54","nodes":[],"body":{"id":44176,"nodeType":"Block","src":"9725:46:54","nodes":[],"statements":[{"expression":{"id":44174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44169,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44167,"src":"9735:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44172,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44164,"src":"9762:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44170,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9739:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9757:4:54","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":26589,"src":"9739:22:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":44173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9739:25:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9735:29:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44175,"nodeType":"ExpressionStatement","src":"9735:29:54"}]},"functionSelector":"677342ce","implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"9677:4:54","parameters":{"id":44165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44164,"mutability":"mutable","name":"x","nameLocation":"9690:1:54","nodeType":"VariableDeclaration","scope":44177,"src":"9682:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44163,"name":"uint256","nodeType":"ElementaryTypeName","src":"9682:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9681:11:54"},"returnParameters":{"id":44168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44167,"mutability":"mutable","name":"z","nameLocation":"9722:1:54","nodeType":"VariableDeclaration","scope":44177,"src":"9714:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44166,"name":"uint256","nodeType":"ElementaryTypeName","src":"9714:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9713:11:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"AtomicV2","contractDependencies":[],"contractKind":"contract","documentation":{"id":43484,"nodeType":"StructuredDocumentation","src":"1266:154:54","text":"@dev Takes Y tokens from Arbitrageur, swaps on either LEX or DEX, then swaps on the opposite exchange and returns the output Y tokens to Arbitrageur."},"fullyImplemented":true,"linearizedBaseContracts":[44178],"name":"AtomicV2","nameLocation":"1429:8:54","scope":44179,"usedErrors":[26761,26763,26765,27736,43496,43502,43508,43514,43524,43532,43610],"usedEvents":[43536,43540,43546]}],"license":"UNLICENSED"},"id":54} \ No newline at end of file diff --git a/out/AtomicV2.sol/StrategyLike.json b/out/AtomicV2.sol/StrategyLike.json deleted file mode 100644 index 3907e4a5..00000000 --- a/out/AtomicV2.sol/StrategyLike.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getReservesAndLiquidity","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"internalPrice","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"simulateSwap","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"swapXIn","type":"bool","internalType":"bool"},{"name":"amountIn","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"},{"name":"estimatedOut","type":"uint256","internalType":"uint256"},{"name":"estimatedPrice","type":"uint256","internalType":"uint256"},{"name":"payload","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getReservesAndLiquidity(uint256)":"ce153bf4","internalPrice(uint256)":"3b4d1030","simulateSwap(uint256,bool,uint256)":"3928ff97","swap(uint256,bytes)":"bd0625ab"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getReservesAndLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"internalPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"swapXIn\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"name\":\"simulateSwap\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"estimatedOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"estimatedPrice\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/helpers/AtomicV2.sol\":\"StrategyLike\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/test/helpers/AtomicV2.sol\":{\"keccak256\":\"0xa19f56ab0a72272bc46fa1f6b1438ca036c2c3d957b6b40c9cebbed7fb21d05b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6f3807847572c311c041cdc27772c0b467f402998c3d036c0bfb30d6581b620d\",\"dweb:/ipfs/QmZXWhCdQhXbwMUpF9QAPt8QQQ3oxYKdge41tSH7U3gFNW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getReservesAndLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"internalPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bool","name":"swapXIn","type":"bool"},{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"view","type":"function","name":"simulateSwap","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"uint256","name":"estimatedOut","type":"uint256"},{"internalType":"uint256","name":"estimatedPrice","type":"uint256"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"swap"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/helpers/AtomicV2.sol":"StrategyLike"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/test/helpers/AtomicV2.sol":{"keccak256":"0xa19f56ab0a72272bc46fa1f6b1438ca036c2c3d957b6b40c9cebbed7fb21d05b","urls":["bzz-raw://6f3807847572c311c041cdc27772c0b467f402998c3d036c0bfb30d6581b620d","dweb:/ipfs/QmZXWhCdQhXbwMUpF9QAPt8QQQ3oxYKdge41tSH7U3gFNW"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/helpers/AtomicV2.sol","id":44179,"exportedSymbols":{"AtomicV2":[44178],"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"FixedPointMathLib":[26640],"Gaussian":[27374],"LiquidExchange":[43400],"Min":[27736],"StrategyLike":[43443],"TokenLike":[43483],"abs":[27763],"bisection":[31118],"console2":[25512],"diviWad":[27813],"muli":[27777],"muliWad":[27795]},"nodeType":"SourceUnit","src":"39:9735:54","nodes":[{"id":43383,"nodeType":"PragmaDirective","src":"39:24:54","nodes":[],"literals":["solidity","^","0.8",".14"]},{"id":43384,"nodeType":"ImportDirective","src":"65:30:54","nodes":[],"absolutePath":"lib/solstat/src/Gaussian.sol","file":"solstat/Gaussian.sol","nameLocation":"-1:-1:-1","scope":44179,"sourceUnit":27375,"symbolAliases":[],"unitAlias":""},{"id":43385,"nodeType":"ImportDirective","src":"96:45:54","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol","file":"solmate/utils/FixedPointMathLib.sol","nameLocation":"-1:-1:-1","scope":44179,"sourceUnit":26641,"symbolAliases":[],"unitAlias":""},{"id":43386,"nodeType":"ImportDirective","src":"142:38:54","nodes":[],"absolutePath":"src/solvers/BisectionLib.sol","file":"src/solvers/BisectionLib.sol","nameLocation":"-1:-1:-1","scope":44179,"sourceUnit":31119,"symbolAliases":[],"unitAlias":""},{"id":43387,"nodeType":"ImportDirective","src":"181:32:54","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/console2.sol","file":"forge-std/console2.sol","nameLocation":"-1:-1:-1","scope":44179,"sourceUnit":25513,"symbolAliases":[],"unitAlias":""},{"id":43400,"nodeType":"ContractDefinition","src":"215:136:54","nodes":[{"id":43394,"nodeType":"FunctionDefinition","src":"246:54:54","nodes":[],"functionSelector":"d004f0f7","implemented":false,"kind":"function","modifiers":[],"name":"swap","nameLocation":"255:4:54","parameters":{"id":43392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43389,"mutability":"mutable","name":"token","nameLocation":"268:5:54","nodeType":"VariableDeclaration","scope":43394,"src":"260:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43388,"name":"address","nodeType":"ElementaryTypeName","src":"260:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43391,"mutability":"mutable","name":"amount","nameLocation":"283:6:54","nodeType":"VariableDeclaration","scope":43394,"src":"275:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43390,"name":"uint256","nodeType":"ElementaryTypeName","src":"275:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"259:31:54"},"returnParameters":{"id":43393,"nodeType":"ParameterList","parameters":[],"src":"299:0:54"},"scope":43400,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43399,"nodeType":"FunctionDefinition","src":"305:44:54","nodes":[],"functionSelector":"a035b1fe","implemented":false,"kind":"function","modifiers":[],"name":"price","nameLocation":"314:5:54","parameters":{"id":43395,"nodeType":"ParameterList","parameters":[],"src":"319:2:54"},"returnParameters":{"id":43398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43397,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43399,"src":"340:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43396,"name":"uint256","nodeType":"ElementaryTypeName","src":"340:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"339:9:54"},"scope":43400,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"LiquidExchange","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[43400],"name":"LiquidExchange","nameLocation":"225:14:54","scope":44179,"usedErrors":[],"usedEvents":[]},{"id":43443,"nodeType":"ContractDefinition","src":"353:585:54","nodes":[{"id":43407,"nodeType":"FunctionDefinition","src":"382:60:54","nodes":[],"functionSelector":"bd0625ab","implemented":false,"kind":"function","modifiers":[],"name":"swap","nameLocation":"391:4:54","parameters":{"id":43405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43402,"mutability":"mutable","name":"poolId","nameLocation":"404:6:54","nodeType":"VariableDeclaration","scope":43407,"src":"396:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43401,"name":"uint256","nodeType":"ElementaryTypeName","src":"396:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43404,"mutability":"mutable","name":"data","nameLocation":"427:4:54","nodeType":"VariableDeclaration","scope":43407,"src":"412:19:54","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":43403,"name":"bytes","nodeType":"ElementaryTypeName","src":"412:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"395:37:54"},"returnParameters":{"id":43406,"nodeType":"ParameterList","parameters":[],"src":"441:0:54"},"scope":43443,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43424,"nodeType":"FunctionDefinition","src":"447:285:54","nodes":[],"functionSelector":"3928ff97","implemented":false,"kind":"function","modifiers":[],"name":"simulateSwap","nameLocation":"456:12:54","parameters":{"id":43414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43409,"mutability":"mutable","name":"poolId","nameLocation":"486:6:54","nodeType":"VariableDeclaration","scope":43424,"src":"478:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43408,"name":"uint256","nodeType":"ElementaryTypeName","src":"478:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43411,"mutability":"mutable","name":"swapXIn","nameLocation":"507:7:54","nodeType":"VariableDeclaration","scope":43424,"src":"502:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43410,"name":"bool","nodeType":"ElementaryTypeName","src":"502:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43413,"mutability":"mutable","name":"amountIn","nameLocation":"532:8:54","nodeType":"VariableDeclaration","scope":43424,"src":"524:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43412,"name":"uint256","nodeType":"ElementaryTypeName","src":"524:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"468:78:54"},"returnParameters":{"id":43423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43416,"mutability":"mutable","name":"valid","nameLocation":"612:5:54","nodeType":"VariableDeclaration","scope":43424,"src":"607:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43415,"name":"bool","nodeType":"ElementaryTypeName","src":"607:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43418,"mutability":"mutable","name":"estimatedOut","nameLocation":"639:12:54","nodeType":"VariableDeclaration","scope":43424,"src":"631:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43417,"name":"uint256","nodeType":"ElementaryTypeName","src":"631:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43420,"mutability":"mutable","name":"estimatedPrice","nameLocation":"673:14:54","nodeType":"VariableDeclaration","scope":43424,"src":"665:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43419,"name":"uint256","nodeType":"ElementaryTypeName","src":"665:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43422,"mutability":"mutable","name":"payload","nameLocation":"714:7:54","nodeType":"VariableDeclaration","scope":43424,"src":"701:20:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43421,"name":"bytes","nodeType":"ElementaryTypeName","src":"701:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"593:138:54"},"scope":43443,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":43431,"nodeType":"FunctionDefinition","src":"737:71:54","nodes":[],"functionSelector":"3b4d1030","implemented":false,"kind":"function","modifiers":[],"name":"internalPrice","nameLocation":"746:13:54","parameters":{"id":43427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43426,"mutability":"mutable","name":"poolId","nameLocation":"768:6:54","nodeType":"VariableDeclaration","scope":43431,"src":"760:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43425,"name":"uint256","nodeType":"ElementaryTypeName","src":"760:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"759:16:54"},"returnParameters":{"id":43430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43429,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43431,"src":"799:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43428,"name":"uint256","nodeType":"ElementaryTypeName","src":"799:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"798:9:54"},"scope":43443,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":43442,"nodeType":"FunctionDefinition","src":"813:123:54","nodes":[],"functionSelector":"ce153bf4","implemented":false,"kind":"function","modifiers":[],"name":"getReservesAndLiquidity","nameLocation":"822:23:54","parameters":{"id":43434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43433,"mutability":"mutable","name":"poolId","nameLocation":"854:6:54","nodeType":"VariableDeclaration","scope":43442,"src":"846:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43432,"name":"uint256","nodeType":"ElementaryTypeName","src":"846:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"845:16:54"},"returnParameters":{"id":43441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43436,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43442,"src":"909:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43435,"name":"uint256","nodeType":"ElementaryTypeName","src":"909:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43442,"src":"918:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43437,"name":"uint256","nodeType":"ElementaryTypeName","src":"918:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43440,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43442,"src":"927:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43439,"name":"uint256","nodeType":"ElementaryTypeName","src":"927:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"908:27:54"},"scope":43443,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"StrategyLike","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[43443],"name":"StrategyLike","nameLocation":"363:12:54","scope":44179,"usedErrors":[],"usedEvents":[]},{"id":43483,"nodeType":"ContractDefinition","src":"940:324:54","nodes":[{"id":43452,"nodeType":"FunctionDefinition","src":"966:58:54","nodes":[],"functionSelector":"23b872dd","implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"975:12:54","parameters":{"id":43450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43445,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43452,"src":"988:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43444,"name":"address","nodeType":"ElementaryTypeName","src":"988:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43447,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43452,"src":"997:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43446,"name":"address","nodeType":"ElementaryTypeName","src":"997:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43449,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43452,"src":"1006:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43448,"name":"uint256","nodeType":"ElementaryTypeName","src":"1006:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"987:27:54"},"returnParameters":{"id":43451,"nodeType":"ParameterList","parameters":[],"src":"1023:0:54"},"scope":43483,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43459,"nodeType":"FunctionDefinition","src":"1029:45:54","nodes":[],"functionSelector":"a9059cbb","implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1038:8:54","parameters":{"id":43457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43454,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43459,"src":"1047:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43453,"name":"address","nodeType":"ElementaryTypeName","src":"1047:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43459,"src":"1056:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43455,"name":"uint256","nodeType":"ElementaryTypeName","src":"1056:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1046:18:54"},"returnParameters":{"id":43458,"nodeType":"ParameterList","parameters":[],"src":"1073:0:54"},"scope":43483,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43466,"nodeType":"FunctionDefinition","src":"1079:44:54","nodes":[],"functionSelector":"095ea7b3","implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"1088:7:54","parameters":{"id":43464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43466,"src":"1096:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43460,"name":"address","nodeType":"ElementaryTypeName","src":"1096:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43463,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43466,"src":"1105:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43462,"name":"uint256","nodeType":"ElementaryTypeName","src":"1105:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1095:18:54"},"returnParameters":{"id":43465,"nodeType":"ParameterList","parameters":[],"src":"1122:0:54"},"scope":43483,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43473,"nodeType":"FunctionDefinition","src":"1128:60:54","nodes":[],"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1137:9:54","parameters":{"id":43469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43468,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43473,"src":"1147:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43467,"name":"address","nodeType":"ElementaryTypeName","src":"1147:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1146:9:54"},"returnParameters":{"id":43472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43471,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43473,"src":"1179:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43470,"name":"uint256","nodeType":"ElementaryTypeName","src":"1179:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1178:9:54"},"scope":43483,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":43482,"nodeType":"FunctionDefinition","src":"1193:69:54","nodes":[],"functionSelector":"dd62ed3e","implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1202:9:54","parameters":{"id":43478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43475,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43482,"src":"1212:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43474,"name":"address","nodeType":"ElementaryTypeName","src":"1212:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43477,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43482,"src":"1221:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43476,"name":"address","nodeType":"ElementaryTypeName","src":"1221:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1211:18:54"},"returnParameters":{"id":43481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43480,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43482,"src":"1253:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43479,"name":"uint256","nodeType":"ElementaryTypeName","src":"1253:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1252:9:54"},"scope":43483,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"TokenLike","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[43483],"name":"TokenLike","nameLocation":"950:9:54","scope":44179,"usedErrors":[],"usedEvents":[]},{"id":44178,"nodeType":"ContractDefinition","src":"1420:8353:54","nodes":[{"id":43487,"nodeType":"UsingForDirective","src":"1444:35:54","nodes":[],"global":false,"libraryName":{"id":43485,"name":"FixedPointMathLib","nameLocations":["1450:17:54"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"1450:17:54"},"typeName":{"id":43486,"name":"int256","nodeType":"ElementaryTypeName","src":"1472:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":43490,"nodeType":"UsingForDirective","src":"1484:36:54","nodes":[],"global":false,"libraryName":{"id":43488,"name":"FixedPointMathLib","nameLocations":["1490:17:54"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"1490:17:54"},"typeName":{"id":43489,"name":"uint256","nodeType":"ElementaryTypeName","src":"1512:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":43496,"nodeType":"ErrorDefinition","src":"1526:61:54","nodes":[],"errorSelector":"0abe5a89","name":"InsufficientBalanceY","nameLocation":"1532:20:54","parameters":{"id":43495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43492,"mutability":"mutable","name":"balance","nameLocation":"1561:7:54","nodeType":"VariableDeclaration","scope":43496,"src":"1553:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43491,"name":"uint256","nodeType":"ElementaryTypeName","src":"1553:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43494,"mutability":"mutable","name":"payment","nameLocation":"1578:7:54","nodeType":"VariableDeclaration","scope":43496,"src":"1570:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43493,"name":"uint256","nodeType":"ElementaryTypeName","src":"1570:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1552:34:54"}},{"id":43502,"nodeType":"ErrorDefinition","src":"1592:61:54","nodes":[],"errorSelector":"0295b09c","name":"InsufficientBalanceX","nameLocation":"1598:20:54","parameters":{"id":43501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43498,"mutability":"mutable","name":"balance","nameLocation":"1627:7:54","nodeType":"VariableDeclaration","scope":43502,"src":"1619:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43497,"name":"uint256","nodeType":"ElementaryTypeName","src":"1619:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43500,"mutability":"mutable","name":"payment","nameLocation":"1644:7:54","nodeType":"VariableDeclaration","scope":43502,"src":"1636:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43499,"name":"uint256","nodeType":"ElementaryTypeName","src":"1636:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1618:34:54"}},{"id":43508,"nodeType":"ErrorDefinition","src":"1658:64:54","nodes":[],"errorSelector":"da56d3c5","name":"InsufficientApprovalY","nameLocation":"1664:21:54","parameters":{"id":43507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43504,"mutability":"mutable","name":"allowance","nameLocation":"1694:9:54","nodeType":"VariableDeclaration","scope":43508,"src":"1686:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43503,"name":"uint256","nodeType":"ElementaryTypeName","src":"1686:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43506,"mutability":"mutable","name":"payment","nameLocation":"1713:7:54","nodeType":"VariableDeclaration","scope":43508,"src":"1705:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43505,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1685:36:54"}},{"id":43514,"nodeType":"ErrorDefinition","src":"1727:47:54","nodes":[],"errorSelector":"cf42d71a","name":"DexSwapFailure","nameLocation":"1733:14:54","parameters":{"id":43513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43510,"mutability":"mutable","name":"reason","nameLocation":"1755:6:54","nodeType":"VariableDeclaration","scope":43514,"src":"1748:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43509,"name":"string","nodeType":"ElementaryTypeName","src":"1748:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43512,"mutability":"mutable","name":"err","nameLocation":"1769:3:54","nodeType":"VariableDeclaration","scope":43514,"src":"1763:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43511,"name":"bytes","nodeType":"ElementaryTypeName","src":"1763:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1747:26:54"}},{"id":43524,"nodeType":"ErrorDefinition","src":"1779:114:54","nodes":[],"errorSelector":"18a73118","name":"SimulatedSwapFailure","nameLocation":"1785:20:54","parameters":{"id":43523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43516,"mutability":"mutable","name":"valid","nameLocation":"1820:5:54","nodeType":"VariableDeclaration","scope":43524,"src":"1815:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43515,"name":"bool","nodeType":"ElementaryTypeName","src":"1815:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43518,"mutability":"mutable","name":"estimatedOut","nameLocation":"1835:12:54","nodeType":"VariableDeclaration","scope":43524,"src":"1827:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43517,"name":"uint256","nodeType":"ElementaryTypeName","src":"1827:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43520,"mutability":"mutable","name":"estimatedPrice","nameLocation":"1857:14:54","nodeType":"VariableDeclaration","scope":43524,"src":"1849:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43519,"name":"uint256","nodeType":"ElementaryTypeName","src":"1849:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43522,"mutability":"mutable","name":"payload","nameLocation":"1879:7:54","nodeType":"VariableDeclaration","scope":43524,"src":"1873:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43521,"name":"bytes","nodeType":"ElementaryTypeName","src":"1873:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1805:87:54"}},{"id":43532,"nodeType":"ErrorDefinition","src":"1899:135:54","nodes":[],"errorSelector":"b16e3783","name":"UnprofitableArbitrage","nameLocation":"1905:21:54","parameters":{"id":43531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43526,"mutability":"mutable","name":"start_y_balance","nameLocation":"1944:15:54","nodeType":"VariableDeclaration","scope":43532,"src":"1936:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43525,"name":"uint256","nodeType":"ElementaryTypeName","src":"1936:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43528,"mutability":"mutable","name":"end_y_balance","nameLocation":"1977:13:54","nodeType":"VariableDeclaration","scope":43532,"src":"1969:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43527,"name":"uint256","nodeType":"ElementaryTypeName","src":"1969:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43530,"mutability":"mutable","name":"absolute_difference","nameLocation":"2008:19:54","nodeType":"VariableDeclaration","scope":43532,"src":"2000:27:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43529,"name":"uint256","nodeType":"ElementaryTypeName","src":"2000:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1926:107:54"}},{"id":43536,"nodeType":"EventDefinition","src":"2040:29:54","nodes":[],"anonymous":false,"eventSelector":"357d905f1831209797df4d55d79c5c5bf1d9f7311c976afd05e13d881eab9bc8","name":"Profit","nameLocation":"2046:6:54","parameters":{"id":43535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43534,"indexed":false,"mutability":"mutable","name":"profit","nameLocation":"2061:6:54","nodeType":"VariableDeclaration","scope":43536,"src":"2053:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43533,"name":"uint256","nodeType":"ElementaryTypeName","src":"2053:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2052:16:54"}},{"id":43540,"nodeType":"EventDefinition","src":"2074:25:54","nodes":[],"anonymous":false,"eventSelector":"b65b2e085d7d040c313f7d4e1ac90f5937026fee497e0e24a7eff16a55e1c5ea","name":"Loss","nameLocation":"2080:4:54","parameters":{"id":43539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43538,"indexed":false,"mutability":"mutable","name":"loss","nameLocation":"2093:4:54","nodeType":"VariableDeclaration","scope":43540,"src":"2085:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43537,"name":"uint256","nodeType":"ElementaryTypeName","src":"2085:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2084:14:54"}},{"id":43546,"nodeType":"EventDefinition","src":"2104:46:54","nodes":[],"anonymous":false,"eventSelector":"d1353c68e79ef70de84ee90d2facf845ec24895116d4a03505aa41785af71f5a","name":"Price","nameLocation":"2110:5:54","parameters":{"id":43545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43542,"indexed":false,"mutability":"mutable","name":"price","nameLocation":"2124:5:54","nodeType":"VariableDeclaration","scope":43546,"src":"2116:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43541,"name":"uint256","nodeType":"ElementaryTypeName","src":"2116:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43544,"indexed":false,"mutability":"mutable","name":"timestamp","nameLocation":"2139:9:54","nodeType":"VariableDeclaration","scope":43546,"src":"2131:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43543,"name":"uint256","nodeType":"ElementaryTypeName","src":"2131:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2115:34:54"}},{"id":43548,"nodeType":"VariableDeclaration","src":"2156:29:54","nodes":[],"constant":false,"functionSelector":"9f27ef4f","mutability":"mutable","name":"liquidExchange","nameLocation":"2171:14:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43547,"name":"address","nodeType":"ElementaryTypeName","src":"2156:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":43550,"nodeType":"VariableDeclaration","src":"2191:23:54","nodes":[],"constant":false,"functionSelector":"d2f7265a","mutability":"mutable","name":"exchange","nameLocation":"2206:8:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43549,"name":"address","nodeType":"ElementaryTypeName","src":"2191:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":43552,"nodeType":"VariableDeclaration","src":"2220:21:54","nodes":[],"constant":false,"functionSelector":"49a7a26d","mutability":"mutable","name":"solver","nameLocation":"2235:6:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43551,"name":"address","nodeType":"ElementaryTypeName","src":"2220:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":43554,"nodeType":"VariableDeclaration","src":"2247:20:54","nodes":[],"constant":false,"functionSelector":"38d52e0f","mutability":"mutable","name":"asset","nameLocation":"2262:5:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43553,"name":"address","nodeType":"ElementaryTypeName","src":"2247:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":43556,"nodeType":"VariableDeclaration","src":"2273:20:54","nodes":[],"constant":false,"functionSelector":"999b93af","mutability":"mutable","name":"quote","nameLocation":"2288:5:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43555,"name":"address","nodeType":"ElementaryTypeName","src":"2273:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":43559,"nodeType":"VariableDeclaration","src":"2414:40:54","nodes":[],"constant":false,"documentation":{"id":43557,"nodeType":"StructuredDocumentation","src":"2300:109:54","text":"@dev Since token x is transferred inside the arbitrage loop, this stores that value in the last arb loop."},"functionSelector":"936520c3","mutability":"mutable","name":"intermediateTokenXBalance","nameLocation":"2429:25:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43558,"name":"uint256","nodeType":"ElementaryTypeName","src":"2414:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":43561,"nodeType":"VariableDeclaration","src":"2460:45:54","nodes":[],"constant":false,"functionSelector":"fa2e5994","mutability":"mutable","name":"intermediateTokenYStartBalance","nameLocation":"2475:30:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43560,"name":"uint256","nodeType":"ElementaryTypeName","src":"2460:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":43563,"nodeType":"VariableDeclaration","src":"2511:43:54","nodes":[],"constant":false,"functionSelector":"72b98246","mutability":"mutable","name":"intermediateTokenYEndBalance","nameLocation":"2526:28:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43562,"name":"uint256","nodeType":"ElementaryTypeName","src":"2511:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":43566,"nodeType":"VariableDeclaration","src":"2635:31:54","nodes":[],"constant":false,"documentation":{"id":43564,"nodeType":"StructuredDocumentation","src":"2561:69:54","text":"@dev Accumulates the profit from each arbitrage loop in Y tokens."},"functionSelector":"85b319ff","mutability":"mutable","name":"cumulativeProfit","nameLocation":"2650:16:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43565,"name":"uint256","nodeType":"ElementaryTypeName","src":"2635:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":43600,"nodeType":"FunctionDefinition","src":"2673:364:54","nodes":[],"body":{"id":43599,"nodeType":"Block","src":"2854:183:54","nodes":[],"statements":[{"expression":{"id":43581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43579,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43552,"src":"2864:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43580,"name":"solverAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43568,"src":"2873:13:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2864:22:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43582,"nodeType":"ExpressionStatement","src":"2864:22:54"},{"expression":{"id":43585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43583,"name":"exchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43550,"src":"2896:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43584,"name":"exchangeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43570,"src":"2907:15:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2896:26:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43586,"nodeType":"ExpressionStatement","src":"2896:26:54"},{"expression":{"id":43589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43587,"name":"liquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43548,"src":"2932:14:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43588,"name":"liquidExchangeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43572,"src":"2949:21:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2932:38:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43590,"nodeType":"ExpressionStatement","src":"2932:38:54"},{"expression":{"id":43593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43591,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"2980:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43592,"name":"assetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43574,"src":"2988:12:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2980:20:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43594,"nodeType":"ExpressionStatement","src":"2980:20:54"},{"expression":{"id":43597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43595,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"3010:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43596,"name":"quoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43576,"src":"3018:12:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3010:20:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43598,"nodeType":"ExpressionStatement","src":"3010:20:54"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":43577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43568,"mutability":"mutable","name":"solverAddress","nameLocation":"2702:13:54","nodeType":"VariableDeclaration","scope":43600,"src":"2694:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43567,"name":"address","nodeType":"ElementaryTypeName","src":"2694:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43570,"mutability":"mutable","name":"exchangeAddress","nameLocation":"2733:15:54","nodeType":"VariableDeclaration","scope":43600,"src":"2725:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43569,"name":"address","nodeType":"ElementaryTypeName","src":"2725:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43572,"mutability":"mutable","name":"liquidExchangeAddress","nameLocation":"2766:21:54","nodeType":"VariableDeclaration","scope":43600,"src":"2758:29:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43571,"name":"address","nodeType":"ElementaryTypeName","src":"2758:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43574,"mutability":"mutable","name":"assetAddress","nameLocation":"2805:12:54","nodeType":"VariableDeclaration","scope":43600,"src":"2797:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43573,"name":"address","nodeType":"ElementaryTypeName","src":"2797:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43576,"mutability":"mutable","name":"quoteAddress","nameLocation":"2835:12:54","nodeType":"VariableDeclaration","scope":43600,"src":"2827:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43575,"name":"address","nodeType":"ElementaryTypeName","src":"2827:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2684:169:54"},"returnParameters":{"id":43578,"nodeType":"ParameterList","parameters":[],"src":"2854:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":43603,"nodeType":"VariableDeclaration","src":"3043:23:54","nodes":[],"constant":false,"functionSelector":"f3c973cf","mutability":"mutable","name":"XTOY","nameLocation":"3055:4:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43601,"name":"bool","nodeType":"ElementaryTypeName","src":"3043:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":43602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3062:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"public"},{"id":43606,"nodeType":"VariableDeclaration","src":"3072:24:54","nodes":[],"constant":false,"functionSelector":"6449fc57","mutability":"mutable","name":"YTOX","nameLocation":"3084:4:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43604,"name":"bool","nodeType":"ElementaryTypeName","src":"3072:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":43605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3091:5:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"public"},{"id":43610,"nodeType":"ErrorDefinition","src":"3103:37:54","nodes":[],"errorSelector":"85aba8de","name":"AttemptedProfit","nameLocation":"3109:15:54","parameters":{"id":43609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43608,"mutability":"mutable","name":"profit","nameLocation":"3132:6:54","nodeType":"VariableDeclaration","scope":43610,"src":"3125:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":43607,"name":"int256","nodeType":"ElementaryTypeName","src":"3125:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3124:15:54"}},{"id":43659,"nodeType":"FunctionDefinition","src":"3146:468:54","nodes":[],"body":{"id":43658,"nodeType":"Block","src":"3216:398:54","nodes":[],"statements":[{"assignments":[43618],"declarations":[{"constant":false,"id":43618,"mutability":"mutable","name":"price","nameLocation":"3234:5:54","nodeType":"VariableDeclaration","scope":43658,"src":"3226:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43617,"name":"uint256","nodeType":"ElementaryTypeName","src":"3226:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43625,"initialValue":{"arguments":[{"id":43623,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43612,"src":"3277:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43620,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43552,"src":"3255:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43619,"name":"StrategyLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"3242:12:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyLike_$43443_$","typeString":"type(contract StrategyLike)"}},"id":43621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3242:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StrategyLike_$43443","typeString":"contract StrategyLike"}},"id":43622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3263:13:54","memberName":"internalPrice","nodeType":"MemberAccess","referencedDeclaration":43431,"src":"3242:34:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":43624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3242:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3226:58:54"},{"eventCall":{"arguments":[{"id":43627,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43618,"src":"3305:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":43628,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3312:5:54","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":43629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3318:9:54","memberName":"timestamp","nodeType":"MemberAccess","src":"3312:15:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43626,"name":"Price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43546,"src":"3299:5:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":43630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3299:29:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43631,"nodeType":"EmitStatement","src":"3294:34:54"},{"expression":{"arguments":[{"id":43633,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43614,"src":"3384:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43632,"name":"_invoice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43784,"src":"3375:8:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":43634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3375:15:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43635,"nodeType":"ExpressionStatement","src":"3375:15:54"},{"expression":{"arguments":[{"id":43637,"name":"YTOX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43606,"src":"3436:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43638,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43614,"src":"3442:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43636,"name":"_lex_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43840,"src":"3426:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$_t_uint256_$returns$__$","typeString":"function (bool,uint256)"}},"id":43639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3426:22:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43640,"nodeType":"ExpressionStatement","src":"3426:22:54"},{"expression":{"arguments":[{"id":43642,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43612,"src":"3494:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43643,"name":"XTOY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43603,"src":"3502:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"id":43650,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3543:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3535:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43648,"name":"address","nodeType":"ElementaryTypeName","src":"3535:7:54","typeDescriptions":{}}},"id":43651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3535:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43645,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"3518:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43644,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"3508:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3508:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3525:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"3508:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3508:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43641,"name":"_dex_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43934,"src":"3484:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$_t_uint256_$returns$__$","typeString":"function (uint256,bool,uint256)"}},"id":43653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3484:66:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43654,"nodeType":"ExpressionStatement","src":"3484:66:54"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43655,"name":"_payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44003,"src":"3598:7:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":43656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3598:9:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43657,"nodeType":"ExpressionStatement","src":"3598:9:54"}]},"functionSelector":"96fbee1d","implemented":true,"kind":"function","modifiers":[],"name":"lower_exchange_price","nameLocation":"3155:20:54","parameters":{"id":43615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43612,"mutability":"mutable","name":"poolId","nameLocation":"3184:6:54","nodeType":"VariableDeclaration","scope":43659,"src":"3176:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43611,"name":"uint256","nodeType":"ElementaryTypeName","src":"3176:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43614,"mutability":"mutable","name":"input","nameLocation":"3200:5:54","nodeType":"VariableDeclaration","scope":43659,"src":"3192:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43613,"name":"uint256","nodeType":"ElementaryTypeName","src":"3192:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3175:31:54"},"returnParameters":{"id":43616,"nodeType":"ParameterList","parameters":[],"src":"3216:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43708,"nodeType":"FunctionDefinition","src":"3620:468:54","nodes":[],"body":{"id":43707,"nodeType":"Block","src":"3690:398:54","nodes":[],"statements":[{"assignments":[43667],"declarations":[{"constant":false,"id":43667,"mutability":"mutable","name":"price","nameLocation":"3708:5:54","nodeType":"VariableDeclaration","scope":43707,"src":"3700:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43666,"name":"uint256","nodeType":"ElementaryTypeName","src":"3700:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43674,"initialValue":{"arguments":[{"id":43672,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43661,"src":"3751:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43669,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43552,"src":"3729:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43668,"name":"StrategyLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"3716:12:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyLike_$43443_$","typeString":"type(contract StrategyLike)"}},"id":43670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3716:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StrategyLike_$43443","typeString":"contract StrategyLike"}},"id":43671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3737:13:54","memberName":"internalPrice","nodeType":"MemberAccess","referencedDeclaration":43431,"src":"3716:34:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":43673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3716:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3700:58:54"},{"eventCall":{"arguments":[{"id":43676,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43667,"src":"3779:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":43677,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3786:5:54","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":43678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3792:9:54","memberName":"timestamp","nodeType":"MemberAccess","src":"3786:15:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43675,"name":"Price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43546,"src":"3773:5:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":43679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3773:29:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43680,"nodeType":"EmitStatement","src":"3768:34:54"},{"expression":{"arguments":[{"id":43682,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43663,"src":"3858:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43681,"name":"_invoice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43784,"src":"3849:8:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":43683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3849:15:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43684,"nodeType":"ExpressionStatement","src":"3849:15:54"},{"expression":{"arguments":[{"id":43686,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43661,"src":"3910:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43687,"name":"YTOX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43606,"src":"3918:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43688,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43663,"src":"3924:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43685,"name":"_dex_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43934,"src":"3900:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$_t_uint256_$returns$__$","typeString":"function (uint256,bool,uint256)"}},"id":43689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3900:30:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43690,"nodeType":"ExpressionStatement","src":"3900:30:54"},{"expression":{"arguments":[{"id":43692,"name":"XTOY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43603,"src":"3976:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"id":43699,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4017:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4009:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43697,"name":"address","nodeType":"ElementaryTypeName","src":"4009:7:54","typeDescriptions":{}}},"id":43700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4009:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43694,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"3992:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43693,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"3982:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3982:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3999:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"3982:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3982:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43691,"name":"_lex_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43840,"src":"3966:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$_t_uint256_$returns$__$","typeString":"function (bool,uint256)"}},"id":43702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3966:58:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43703,"nodeType":"ExpressionStatement","src":"3966:58:54"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43704,"name":"_payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44003,"src":"4072:7:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":43705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4072:9:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43706,"nodeType":"ExpressionStatement","src":"4072:9:54"}]},"functionSelector":"f9005eb5","implemented":true,"kind":"function","modifiers":[],"name":"raise_exchange_price","nameLocation":"3629:20:54","parameters":{"id":43664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43661,"mutability":"mutable","name":"poolId","nameLocation":"3658:6:54","nodeType":"VariableDeclaration","scope":43708,"src":"3650:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43660,"name":"uint256","nodeType":"ElementaryTypeName","src":"3650:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43663,"mutability":"mutable","name":"input","nameLocation":"3674:5:54","nodeType":"VariableDeclaration","scope":43708,"src":"3666:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43662,"name":"uint256","nodeType":"ElementaryTypeName","src":"3666:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3649:31:54"},"returnParameters":{"id":43665,"nodeType":"ParameterList","parameters":[],"src":"3690:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43784,"nodeType":"FunctionDefinition","src":"4149:634:54","nodes":[],"body":{"id":43783,"nodeType":"Block","src":"4194:589:54","nodes":[],"statements":[{"assignments":[43715],"declarations":[{"constant":false,"id":43715,"mutability":"mutable","name":"quote_balance","nameLocation":"4212:13:54","nodeType":"VariableDeclaration","scope":43783,"src":"4204:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43714,"name":"uint256","nodeType":"ElementaryTypeName","src":"4204:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43723,"initialValue":{"arguments":[{"expression":{"id":43720,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4255:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4259:6:54","memberName":"sender","nodeType":"MemberAccess","src":"4255:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43717,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"4238:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43716,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"4228:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4228:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4245:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"4228:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4228:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4204:62:54"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43724,"name":"quote_balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43715,"src":"4280:13:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43725,"name":"amount_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43711,"src":"4296:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4280:24:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43733,"nodeType":"IfStatement","src":"4276:107:54","trueBody":{"id":43732,"nodeType":"Block","src":"4306:77:54","statements":[{"errorCall":{"arguments":[{"id":43728,"name":"quote_balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43715,"src":"4348:13:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43729,"name":"amount_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43711,"src":"4363:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43727,"name":"InsufficientBalanceY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43496,"src":"4327:20:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4327:45:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43731,"nodeType":"RevertStatement","src":"4320:52:54"}]}},{"assignments":[43735],"declarations":[{"constant":false,"id":43735,"mutability":"mutable","name":"quote_approval","nameLocation":"4401:14:54","nodeType":"VariableDeclaration","scope":43783,"src":"4393:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43734,"name":"uint256","nodeType":"ElementaryTypeName","src":"4393:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43747,"initialValue":{"arguments":[{"expression":{"id":43740,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4457:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4461:6:54","memberName":"sender","nodeType":"MemberAccess","src":"4457:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":43744,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4477:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4469:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43742,"name":"address","nodeType":"ElementaryTypeName","src":"4469:7:54","typeDescriptions":{}}},"id":43745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4469:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43737,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"4440:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43736,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"4430:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4430:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4447:9:54","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":43482,"src":"4430:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":43746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4430:53:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4393:90:54"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43748,"name":"quote_approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43735,"src":"4497:14:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43749,"name":"amount_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43711,"src":"4514:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4497:25:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43757,"nodeType":"IfStatement","src":"4493:110:54","trueBody":{"id":43756,"nodeType":"Block","src":"4524:79:54","statements":[{"errorCall":{"arguments":[{"id":43752,"name":"quote_approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43735,"src":"4567:14:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43753,"name":"amount_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43711,"src":"4583:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43751,"name":"InsufficientApprovalY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43508,"src":"4545:21:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4545:47:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43755,"nodeType":"RevertStatement","src":"4538:54:54"}]}},{"expression":{"arguments":[{"expression":{"id":43762,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4643:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4647:6:54","memberName":"sender","nodeType":"MemberAccess","src":"4643:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":43766,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4663:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4655:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43764,"name":"address","nodeType":"ElementaryTypeName","src":"4655:7:54","typeDescriptions":{}}},"id":43767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4655:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43768,"name":"amount_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43711,"src":"4670:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43759,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"4623:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43758,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"4613:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4613:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4630:12:54","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":43452,"src":"4613:29:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":43769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4613:66:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43770,"nodeType":"ExpressionStatement","src":"4613:66:54"},{"expression":{"id":43781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43771,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"4690:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":43778,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4770:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4762:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43776,"name":"address","nodeType":"ElementaryTypeName","src":"4762:7:54","typeDescriptions":{}}},"id":43779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4762:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43773,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"4745:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43772,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"4735:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4735:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4752:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"4735:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4735:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4690:86:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43782,"nodeType":"ExpressionStatement","src":"4690:86:54"}]},"documentation":{"id":43709,"nodeType":"StructuredDocumentation","src":"4094:50:54","text":"@dev Handles the payment from the arbitrageur."},"implemented":true,"kind":"function","modifiers":[],"name":"_invoice","nameLocation":"4158:8:54","parameters":{"id":43712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43711,"mutability":"mutable","name":"amount_y","nameLocation":"4175:8:54","nodeType":"VariableDeclaration","scope":43784,"src":"4167:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43710,"name":"uint256","nodeType":"ElementaryTypeName","src":"4167:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4166:18:54"},"returnParameters":{"id":43713,"nodeType":"ParameterList","parameters":[],"src":"4194:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43840,"nodeType":"FunctionDefinition","src":"4789:877:54","nodes":[],"body":{"id":43839,"nodeType":"Block","src":"4846:820:54","nodes":[],"statements":[{"condition":{"id":43791,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43786,"src":"4860:7:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43837,"nodeType":"Block","src":"5221:439:54","statements":[{"expression":{"arguments":[{"id":43813,"name":"liquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43548,"src":"5356:14:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43814,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43788,"src":"5372:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43810,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"5341:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43809,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"5331:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5331:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5348:7:54","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":43466,"src":"5331:24:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5331:47:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43816,"nodeType":"ExpressionStatement","src":"5331:47:54"},{"expression":{"arguments":[{"id":43821,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"5487:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43822,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43788,"src":"5494:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43818,"name":"liquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43548,"src":"5466:14:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43817,"name":"LiquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43400,"src":"5451:14:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LiquidExchange_$43400_$","typeString":"type(contract LiquidExchange)"}},"id":43819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5451:30:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LiquidExchange_$43400","typeString":"contract LiquidExchange"}},"id":43820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5482:4:54","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":43394,"src":"5451:35:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5451:49:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43824,"nodeType":"ExpressionStatement","src":"5451:49:54"},{"expression":{"id":43835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43825,"name":"intermediateTokenXBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43559,"src":"5564:25:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":43832,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5643:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5635:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43830,"name":"address","nodeType":"ElementaryTypeName","src":"5635:7:54","typeDescriptions":{}}},"id":43833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5635:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43827,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"5618:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43826,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"5608:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5608:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5625:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"5608:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5608:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5564:85:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43836,"nodeType":"ExpressionStatement","src":"5564:85:54"}]},"id":43838,"nodeType":"IfStatement","src":"4856:804:54","trueBody":{"id":43808,"nodeType":"Block","src":"4869:346:54","statements":[{"expression":{"arguments":[{"id":43796,"name":"liquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43548,"src":"5004:14:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43797,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43788,"src":"5020:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43793,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"4989:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43792,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"4979:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4979:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4996:7:54","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":43466,"src":"4979:24:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4979:47:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43799,"nodeType":"ExpressionStatement","src":"4979:47:54"},{"expression":{"arguments":[{"id":43804,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"5135:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43805,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43788,"src":"5142:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43801,"name":"liquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43548,"src":"5114:14:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43800,"name":"LiquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43400,"src":"5099:14:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LiquidExchange_$43400_$","typeString":"type(contract LiquidExchange)"}},"id":43802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5099:30:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LiquidExchange_$43400","typeString":"contract LiquidExchange"}},"id":43803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5130:4:54","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":43394,"src":"5099:35:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5099:49:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43807,"nodeType":"ExpressionStatement","src":"5099:49:54"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_lex_swap","nameLocation":"4798:9:54","parameters":{"id":43789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43786,"mutability":"mutable","name":"swapXIn","nameLocation":"4813:7:54","nodeType":"VariableDeclaration","scope":43840,"src":"4808:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43785,"name":"bool","nodeType":"ElementaryTypeName","src":"4808:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43788,"mutability":"mutable","name":"input","nameLocation":"4830:5:54","nodeType":"VariableDeclaration","scope":43840,"src":"4822:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43787,"name":"uint256","nodeType":"ElementaryTypeName","src":"4822:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4807:29:54"},"returnParameters":{"id":43790,"nodeType":"ParameterList","parameters":[],"src":"4846:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43934,"nodeType":"FunctionDefinition","src":"5672:1592:54","nodes":[],"body":{"id":43933,"nodeType":"Block","src":"5778:1486:54","nodes":[],"statements":[{"condition":{"id":43849,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43844,"src":"5792:7:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43867,"nodeType":"Block","src":"5966:159:54","statements":[{"expression":{"arguments":[{"id":43863,"name":"exchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43550,"src":"6095:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43864,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43846,"src":"6105:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43860,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"6080:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43859,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"6070:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6070:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6087:7:54","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":43466,"src":"6070:24:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6070:44:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43866,"nodeType":"ExpressionStatement","src":"6070:44:54"}]},"id":43868,"nodeType":"IfStatement","src":"5788:337:54","trueBody":{"id":43858,"nodeType":"Block","src":"5801:159:54","statements":[{"expression":{"arguments":[{"id":43854,"name":"exchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43550,"src":"5930:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43855,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43846,"src":"5940:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43851,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"5915:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43850,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"5905:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5905:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5922:7:54","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":43466,"src":"5905:24:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5905:44:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43857,"nodeType":"ExpressionStatement","src":"5905:44:54"}]}},{"assignments":[43870,43872,43874,43876],"declarations":[{"constant":false,"id":43870,"mutability":"mutable","name":"valid","nameLocation":"6296:5:54","nodeType":"VariableDeclaration","scope":43933,"src":"6291:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43869,"name":"bool","nodeType":"ElementaryTypeName","src":"6291:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43872,"mutability":"mutable","name":"estimatedOut","nameLocation":"6323:12:54","nodeType":"VariableDeclaration","scope":43933,"src":"6315:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43871,"name":"uint256","nodeType":"ElementaryTypeName","src":"6315:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43874,"mutability":"mutable","name":"estimatedPrice","nameLocation":"6357:14:54","nodeType":"VariableDeclaration","scope":43933,"src":"6349:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43873,"name":"uint256","nodeType":"ElementaryTypeName","src":"6349:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43876,"mutability":"mutable","name":"payload","nameLocation":"6398:7:54","nodeType":"VariableDeclaration","scope":43933,"src":"6385:20:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43875,"name":"bytes","nodeType":"ElementaryTypeName","src":"6385:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":43885,"initialValue":{"arguments":[{"id":43881,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43842,"src":"6452:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43882,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43844,"src":"6460:7:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43883,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43846,"src":"6469:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43878,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43552,"src":"6431:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43877,"name":"StrategyLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"6418:12:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyLike_$43443_$","typeString":"type(contract StrategyLike)"}},"id":43879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6418:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StrategyLike_$43443","typeString":"contract StrategyLike"}},"id":43880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6439:12:54","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":43424,"src":"6418:33:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,uint256,bytes memory)"}},"id":43884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6418:60:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6277:201:54"},{"condition":{"id":43887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6493:6:54","subExpression":{"id":43886,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43870,"src":"6494:5:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43896,"nodeType":"IfStatement","src":"6489:140:54","trueBody":{"id":43895,"nodeType":"Block","src":"6501:128:54","statements":[{"errorCall":{"arguments":[{"id":43889,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43870,"src":"6560:5:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43890,"name":"estimatedOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43872,"src":"6567:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43891,"name":"estimatedPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43874,"src":"6581:14:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43892,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43876,"src":"6597:7:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43888,"name":"SimulatedSwapFailure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43524,"src":"6522:20:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bool,uint256,uint256,bytes memory) pure"}},"id":43893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6522:96:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43894,"nodeType":"RevertStatement","src":"6515:103:54"}]}},{"clauses":[{"block":{"id":43920,"nodeType":"Block","src":"6717:435:54","statements":[{"condition":{"id":43904,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43844,"src":"6820:7:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43918,"nodeType":"Block","src":"6938:204:54","statements":[{"expression":{"id":43916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43906,"name":"intermediateTokenXBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43559,"src":"7038:25:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":43913,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7121:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43912,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7113:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43911,"name":"address","nodeType":"ElementaryTypeName","src":"7113:7:54","typeDescriptions":{}}},"id":43914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7113:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43908,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"7096:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43907,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"7086:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7086:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7103:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"7086:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7086:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7038:89:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43917,"nodeType":"ExpressionStatement","src":"7038:89:54"}]},"id":43919,"nodeType":"IfStatement","src":"6816:326:54","trueBody":{"id":43905,"nodeType":"Block","src":"6829:103:54","statements":[]}}]},"errorName":"","id":43921,"nodeType":"TryCatchClause","src":"6717:435:54"},{"block":{"id":43930,"nodeType":"Block","src":"7178:80:54","statements":[{"errorCall":{"arguments":[{"hexValue":"4445582073776170206661696c656420776974682064617461","id":43926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7214:27:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_f15362d018ecb0a5e9c49cd1e85ce384ef3452d5cda7e416ace6693442dd5650","typeString":"literal_string \"DEX swap failed with data\""},"value":"DEX swap failed with data"},{"id":43927,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43923,"src":"7243:3:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f15362d018ecb0a5e9c49cd1e85ce384ef3452d5cda7e416ace6693442dd5650","typeString":"literal_string \"DEX swap failed with data\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43925,"name":"DexSwapFailure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43514,"src":"7199:14:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,bytes memory) pure"}},"id":43928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7199:48:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43929,"nodeType":"RevertStatement","src":"7192:55:54"}]},"errorName":"","id":43931,"nodeType":"TryCatchClause","parameters":{"id":43924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43923,"mutability":"mutable","name":"err","nameLocation":"7173:3:54","nodeType":"VariableDeclaration","scope":43931,"src":"7160:16:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43922,"name":"bytes","nodeType":"ElementaryTypeName","src":"7160:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7159:18:54"},"src":"7153:105:54"}],"externalCall":{"arguments":[{"id":43901,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43842,"src":"6700:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43902,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43876,"src":"6708:7:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":43898,"name":"exchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43550,"src":"6685:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43897,"name":"StrategyLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"6672:12:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyLike_$43443_$","typeString":"type(contract StrategyLike)"}},"id":43899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6672:22:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StrategyLike_$43443","typeString":"contract StrategyLike"}},"id":43900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6695:4:54","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":43407,"src":"6672:27:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory) external"}},"id":43903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6672:44:54","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43932,"nodeType":"TryStatement","src":"6668:590:54"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_dex_swap","nameLocation":"5681:9:54","parameters":{"id":43847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43842,"mutability":"mutable","name":"poolId","nameLocation":"5708:6:54","nodeType":"VariableDeclaration","scope":43934,"src":"5700:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43841,"name":"uint256","nodeType":"ElementaryTypeName","src":"5700:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43844,"mutability":"mutable","name":"swapXIn","nameLocation":"5729:7:54","nodeType":"VariableDeclaration","scope":43934,"src":"5724:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43843,"name":"bool","nodeType":"ElementaryTypeName","src":"5724:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43846,"mutability":"mutable","name":"amountIn","nameLocation":"5754:8:54","nodeType":"VariableDeclaration","scope":43934,"src":"5746:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43845,"name":"uint256","nodeType":"ElementaryTypeName","src":"5746:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5690:78:54"},"returnParameters":{"id":43848,"nodeType":"ParameterList","parameters":[],"src":"5778:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44003,"nodeType":"FunctionDefinition","src":"7270:1034:54","nodes":[],"body":{"id":44002,"nodeType":"Block","src":"7298:1006:54","nodes":[],"statements":[{"expression":{"id":43947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43937,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"7353:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":43944,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7419:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7411:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43942,"name":"address","nodeType":"ElementaryTypeName","src":"7411:7:54","typeDescriptions":{}}},"id":43945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7411:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43939,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"7394:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43938,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"7384:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7384:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7401:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"7384:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7384:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7353:72:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43948,"nodeType":"ExpressionStatement","src":"7353:72:54"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43949,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"7440:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43950,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"7471:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7440:61:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43978,"nodeType":"IfStatement","src":"7436:563:54","trueBody":{"id":43977,"nodeType":"Block","src":"7503:496:54","statements":[{"eventCall":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43953,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"7544:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":43954,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"7577:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7544:61:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43952,"name":"Loss","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43540,"src":"7522:4:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":43956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7522:97:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43957,"nodeType":"EmitStatement","src":"7517:102:54"},{"errorCall":{"arguments":[{"id":43959,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"7679:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43960,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"7727:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":43973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"7802:154:54","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":43971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":43965,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"7836:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7829:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":43963,"name":"int256","nodeType":"ElementaryTypeName","src":"7829:6:54","typeDescriptions":{}}},"id":43966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7829:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":43969,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"7905:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7898:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":43967,"name":"int256","nodeType":"ElementaryTypeName","src":"7898:6:54","typeDescriptions":{}}},"id":43970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7898:36:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7829:105:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":43972,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7803:153:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":43962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7773:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":43961,"name":"uint256","nodeType":"ElementaryTypeName","src":"7773:7:54","typeDescriptions":{}}},"id":43974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7773:201:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43958,"name":"UnprofitableArbitrage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43532,"src":"7640:21:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":43975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7640:348:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43976,"nodeType":"RevertStatement","src":"7633:355:54"}]}},{"assignments":[43980],"declarations":[{"constant":false,"id":43980,"mutability":"mutable","name":"profit","nameLocation":"8072:6:54","nodeType":"VariableDeclaration","scope":44002,"src":"8064:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43979,"name":"uint256","nodeType":"ElementaryTypeName","src":"8064:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43984,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43981,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"8093:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":43982,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"8124:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8093:61:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8064:90:54"},{"expression":{"id":43987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43985,"name":"cumulativeProfit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43566,"src":"8164:16:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":43986,"name":"profit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43980,"src":"8184:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8164:26:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43988,"nodeType":"ExpressionStatement","src":"8164:26:54"},{"eventCall":{"arguments":[{"id":43990,"name":"profit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43980,"src":"8212:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43989,"name":"Profit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43536,"src":"8205:6:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":43991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8205:14:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43992,"nodeType":"EmitStatement","src":"8200:19:54"},{"expression":{"arguments":[{"expression":{"id":43997,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8256:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8260:6:54","memberName":"sender","nodeType":"MemberAccess","src":"8256:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43999,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"8268:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43994,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"8240:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43993,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"8230:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8230:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8247:8:54","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":43459,"src":"8230:25:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":44000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8230:67:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44001,"nodeType":"ExpressionStatement","src":"8230:67:54"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_payout","nameLocation":"7279:7:54","parameters":{"id":43935,"nodeType":"ParameterList","parameters":[],"src":"7286:2:54"},"returnParameters":{"id":43936,"nodeType":"ParameterList","parameters":[],"src":"7298:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44030,"nodeType":"FunctionDefinition","src":"8310:371:54","nodes":[],"body":{"id":44029,"nodeType":"Block","src":"8597:84:54","nodes":[],"statements":[{"expression":{"arguments":[{"id":44024,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44005,"src":"8648:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44025,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"8656:7:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44026,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44009,"src":"8665:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":44021,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43552,"src":"8627:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44020,"name":"StrategyLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"8614:12:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyLike_$43443_$","typeString":"type(contract StrategyLike)"}},"id":44022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8614:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StrategyLike_$43443","typeString":"contract StrategyLike"}},"id":44023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8635:12:54","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":43424,"src":"8614:33:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,uint256,bytes memory)"}},"id":44027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8614:60:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"functionReturnParameters":44019,"id":44028,"nodeType":"Return","src":"8607:67:54"}]},"functionSelector":"3928ff97","implemented":true,"kind":"function","modifiers":[],"name":"simulateSwap","nameLocation":"8319:12:54","parameters":{"id":44010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44005,"mutability":"mutable","name":"poolId","nameLocation":"8349:6:54","nodeType":"VariableDeclaration","scope":44030,"src":"8341:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44004,"name":"uint256","nodeType":"ElementaryTypeName","src":"8341:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44007,"mutability":"mutable","name":"swapXIn","nameLocation":"8370:7:54","nodeType":"VariableDeclaration","scope":44030,"src":"8365:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44006,"name":"bool","nodeType":"ElementaryTypeName","src":"8365:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44009,"mutability":"mutable","name":"amountIn","nameLocation":"8395:8:54","nodeType":"VariableDeclaration","scope":44030,"src":"8387:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44008,"name":"uint256","nodeType":"ElementaryTypeName","src":"8387:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8331:78:54"},"returnParameters":{"id":44019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44012,"mutability":"mutable","name":"valid","nameLocation":"8473:5:54","nodeType":"VariableDeclaration","scope":44030,"src":"8468:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44011,"name":"bool","nodeType":"ElementaryTypeName","src":"8468:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44014,"mutability":"mutable","name":"estimatedOut","nameLocation":"8500:12:54","nodeType":"VariableDeclaration","scope":44030,"src":"8492:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44013,"name":"uint256","nodeType":"ElementaryTypeName","src":"8492:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44016,"mutability":"mutable","name":"estimatedPrice","nameLocation":"8534:14:54","nodeType":"VariableDeclaration","scope":44030,"src":"8526:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44015,"name":"uint256","nodeType":"ElementaryTypeName","src":"8526:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44018,"mutability":"mutable","name":"payload","nameLocation":"8575:7:54","nodeType":"VariableDeclaration","scope":44030,"src":"8562:20:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":44017,"name":"bytes","nodeType":"ElementaryTypeName","src":"8562:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8454:138:54"},"scope":44178,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":44045,"nodeType":"FunctionDefinition","src":"8687:108:54","nodes":[],"body":{"id":44044,"nodeType":"Block","src":"8750:45:54","nodes":[],"statements":[{"expression":{"id":44042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44037,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44035,"src":"8760:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44040,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44032,"src":"8782:5:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":44038,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"8769:8:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":44039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8778:3:54","memberName":"cdf","nodeType":"MemberAccess","referencedDeclaration":27280,"src":"8769:12:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":44041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8769:19:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8760:28:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":44043,"nodeType":"ExpressionStatement","src":"8760:28:54"}]},"functionSelector":"d0b71b1e","implemented":true,"kind":"function","modifiers":[],"name":"cdf","nameLocation":"8696:3:54","parameters":{"id":44033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44032,"mutability":"mutable","name":"input","nameLocation":"8707:5:54","nodeType":"VariableDeclaration","scope":44045,"src":"8700:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44031,"name":"int256","nodeType":"ElementaryTypeName","src":"8700:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8699:14:54"},"returnParameters":{"id":44036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44035,"mutability":"mutable","name":"output","nameLocation":"8742:6:54","nodeType":"VariableDeclaration","scope":44045,"src":"8735:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44034,"name":"int256","nodeType":"ElementaryTypeName","src":"8735:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8734:15:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44060,"nodeType":"FunctionDefinition","src":"8801:108:54","nodes":[],"body":{"id":44059,"nodeType":"Block","src":"8864:45:54","nodes":[],"statements":[{"expression":{"id":44057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44052,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44050,"src":"8874:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44055,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44047,"src":"8896:5:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":44053,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"8883:8:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":44054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8892:3:54","memberName":"pdf","nodeType":"MemberAccess","referencedDeclaration":27314,"src":"8883:12:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":44056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8883:19:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8874:28:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":44058,"nodeType":"ExpressionStatement","src":"8874:28:54"}]},"functionSelector":"d24ce6e5","implemented":true,"kind":"function","modifiers":[],"name":"pdf","nameLocation":"8810:3:54","parameters":{"id":44048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44047,"mutability":"mutable","name":"input","nameLocation":"8821:5:54","nodeType":"VariableDeclaration","scope":44060,"src":"8814:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44046,"name":"int256","nodeType":"ElementaryTypeName","src":"8814:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8813:14:54"},"returnParameters":{"id":44051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44050,"mutability":"mutable","name":"output","nameLocation":"8856:6:54","nodeType":"VariableDeclaration","scope":44060,"src":"8849:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44049,"name":"int256","nodeType":"ElementaryTypeName","src":"8849:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8848:15:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44075,"nodeType":"FunctionDefinition","src":"8915:108:54","nodes":[],"body":{"id":44074,"nodeType":"Block","src":"8978:45:54","nodes":[],"statements":[{"expression":{"id":44072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44067,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44065,"src":"8988:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44070,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9010:5:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":44068,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"8997:8:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":44069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9006:3:54","memberName":"ppf","nodeType":"MemberAccess","referencedDeclaration":27373,"src":"8997:12:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":44071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8997:19:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8988:28:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":44073,"nodeType":"ExpressionStatement","src":"8988:28:54"}]},"functionSelector":"3679723a","implemented":true,"kind":"function","modifiers":[],"name":"ppf","nameLocation":"8924:3:54","parameters":{"id":44063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44062,"mutability":"mutable","name":"input","nameLocation":"8935:5:54","nodeType":"VariableDeclaration","scope":44075,"src":"8928:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44061,"name":"int256","nodeType":"ElementaryTypeName","src":"8928:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8927:14:54"},"returnParameters":{"id":44066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44065,"mutability":"mutable","name":"output","nameLocation":"8970:6:54","nodeType":"VariableDeclaration","scope":44075,"src":"8963:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44064,"name":"int256","nodeType":"ElementaryTypeName","src":"8963:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8962:15:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44093,"nodeType":"FunctionDefinition","src":"9029:129:54","nodes":[],"body":{"id":44092,"nodeType":"Block","src":"9103:55:54","nodes":[],"statements":[{"expression":{"id":44090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44084,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44082,"src":"9113:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44087,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44077,"src":"9146:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44088,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44079,"src":"9149:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44085,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9117:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9135:10:54","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"9117:28:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":44089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9117:34:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9113:38:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44091,"nodeType":"ExpressionStatement","src":"9113:38:54"}]},"functionSelector":"e524f849","implemented":true,"kind":"function","modifiers":[],"name":"mulWadDown","nameLocation":"9038:10:54","parameters":{"id":44080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44077,"mutability":"mutable","name":"x","nameLocation":"9057:1:54","nodeType":"VariableDeclaration","scope":44093,"src":"9049:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44076,"name":"uint256","nodeType":"ElementaryTypeName","src":"9049:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44079,"mutability":"mutable","name":"y","nameLocation":"9068:1:54","nodeType":"VariableDeclaration","scope":44093,"src":"9060:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44078,"name":"uint256","nodeType":"ElementaryTypeName","src":"9060:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9048:22:54"},"returnParameters":{"id":44083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44082,"mutability":"mutable","name":"z","nameLocation":"9100:1:54","nodeType":"VariableDeclaration","scope":44093,"src":"9092:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44081,"name":"uint256","nodeType":"ElementaryTypeName","src":"9092:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9091:11:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44111,"nodeType":"FunctionDefinition","src":"9164:125:54","nodes":[],"body":{"id":44110,"nodeType":"Block","src":"9236:53:54","nodes":[],"statements":[{"expression":{"id":44108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44102,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44100,"src":"9246:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44105,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44095,"src":"9277:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44106,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44097,"src":"9280:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44103,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9250:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9268:8:54","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"9250:26:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":44107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9250:32:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9246:36:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44109,"nodeType":"ExpressionStatement","src":"9246:36:54"}]},"functionSelector":"ae9768a8","implemented":true,"kind":"function","modifiers":[],"name":"mulWadUp","nameLocation":"9173:8:54","parameters":{"id":44098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44095,"mutability":"mutable","name":"x","nameLocation":"9190:1:54","nodeType":"VariableDeclaration","scope":44111,"src":"9182:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44094,"name":"uint256","nodeType":"ElementaryTypeName","src":"9182:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44097,"mutability":"mutable","name":"y","nameLocation":"9201:1:54","nodeType":"VariableDeclaration","scope":44111,"src":"9193:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44096,"name":"uint256","nodeType":"ElementaryTypeName","src":"9193:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9181:22:54"},"returnParameters":{"id":44101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44100,"mutability":"mutable","name":"z","nameLocation":"9233:1:54","nodeType":"VariableDeclaration","scope":44111,"src":"9225:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44099,"name":"uint256","nodeType":"ElementaryTypeName","src":"9225:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9224:11:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44129,"nodeType":"FunctionDefinition","src":"9295:129:54","nodes":[],"body":{"id":44128,"nodeType":"Block","src":"9369:55:54","nodes":[],"statements":[{"expression":{"id":44126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44120,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44118,"src":"9379:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44123,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44113,"src":"9412:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44124,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"9415:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44121,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9383:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9401:10:54","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"9383:28:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":44125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9383:34:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9379:38:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44127,"nodeType":"ExpressionStatement","src":"9379:38:54"}]},"functionSelector":"37c6a44a","implemented":true,"kind":"function","modifiers":[],"name":"divWadDown","nameLocation":"9304:10:54","parameters":{"id":44116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44113,"mutability":"mutable","name":"x","nameLocation":"9323:1:54","nodeType":"VariableDeclaration","scope":44129,"src":"9315:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44112,"name":"uint256","nodeType":"ElementaryTypeName","src":"9315:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44115,"mutability":"mutable","name":"y","nameLocation":"9334:1:54","nodeType":"VariableDeclaration","scope":44129,"src":"9326:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44114,"name":"uint256","nodeType":"ElementaryTypeName","src":"9326:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9314:22:54"},"returnParameters":{"id":44119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44118,"mutability":"mutable","name":"z","nameLocation":"9366:1:54","nodeType":"VariableDeclaration","scope":44129,"src":"9358:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44117,"name":"uint256","nodeType":"ElementaryTypeName","src":"9358:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9357:11:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44147,"nodeType":"FunctionDefinition","src":"9430:125:54","nodes":[],"body":{"id":44146,"nodeType":"Block","src":"9502:53:54","nodes":[],"statements":[{"expression":{"id":44144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44138,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44136,"src":"9512:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44141,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"9543:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44142,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44133,"src":"9546:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44139,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9516:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9534:8:54","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"9516:26:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":44143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9516:32:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9512:36:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44145,"nodeType":"ExpressionStatement","src":"9512:36:54"}]},"functionSelector":"bd252d06","implemented":true,"kind":"function","modifiers":[],"name":"divWadUp","nameLocation":"9439:8:54","parameters":{"id":44134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44131,"mutability":"mutable","name":"x","nameLocation":"9456:1:54","nodeType":"VariableDeclaration","scope":44147,"src":"9448:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44130,"name":"uint256","nodeType":"ElementaryTypeName","src":"9448:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44133,"mutability":"mutable","name":"y","nameLocation":"9467:1:54","nodeType":"VariableDeclaration","scope":44147,"src":"9459:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44132,"name":"uint256","nodeType":"ElementaryTypeName","src":"9459:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9447:22:54"},"returnParameters":{"id":44137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44136,"mutability":"mutable","name":"z","nameLocation":"9499:1:54","nodeType":"VariableDeclaration","scope":44147,"src":"9491:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44135,"name":"uint256","nodeType":"ElementaryTypeName","src":"9491:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9490:11:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44162,"nodeType":"FunctionDefinition","src":"9561:101:54","nodes":[],"body":{"id":44161,"nodeType":"Block","src":"9615:47:54","nodes":[],"statements":[{"expression":{"id":44159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44154,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44152,"src":"9625:1:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44157,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44149,"src":"9653:1:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":44155,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9629:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9647:5:54","memberName":"lnWad","nodeType":"MemberAccess","referencedDeclaration":26541,"src":"9629:23:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":44158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9629:26:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9625:30:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":44160,"nodeType":"ExpressionStatement","src":"9625:30:54"}]},"functionSelector":"2d5b6cb9","implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9570:3:54","parameters":{"id":44150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44149,"mutability":"mutable","name":"x","nameLocation":"9581:1:54","nodeType":"VariableDeclaration","scope":44162,"src":"9574:8:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44148,"name":"int256","nodeType":"ElementaryTypeName","src":"9574:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9573:10:54"},"returnParameters":{"id":44153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44152,"mutability":"mutable","name":"z","nameLocation":"9612:1:54","nodeType":"VariableDeclaration","scope":44162,"src":"9605:8:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44151,"name":"int256","nodeType":"ElementaryTypeName","src":"9605:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9604:10:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44177,"nodeType":"FunctionDefinition","src":"9668:103:54","nodes":[],"body":{"id":44176,"nodeType":"Block","src":"9725:46:54","nodes":[],"statements":[{"expression":{"id":44174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44169,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44167,"src":"9735:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44172,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44164,"src":"9762:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44170,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9739:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9757:4:54","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":26589,"src":"9739:22:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":44173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9739:25:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9735:29:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44175,"nodeType":"ExpressionStatement","src":"9735:29:54"}]},"functionSelector":"677342ce","implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"9677:4:54","parameters":{"id":44165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44164,"mutability":"mutable","name":"x","nameLocation":"9690:1:54","nodeType":"VariableDeclaration","scope":44177,"src":"9682:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44163,"name":"uint256","nodeType":"ElementaryTypeName","src":"9682:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9681:11:54"},"returnParameters":{"id":44168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44167,"mutability":"mutable","name":"z","nameLocation":"9722:1:54","nodeType":"VariableDeclaration","scope":44177,"src":"9714:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44166,"name":"uint256","nodeType":"ElementaryTypeName","src":"9714:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9713:11:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"AtomicV2","contractDependencies":[],"contractKind":"contract","documentation":{"id":43484,"nodeType":"StructuredDocumentation","src":"1266:154:54","text":"@dev Takes Y tokens from Arbitrageur, swaps on either LEX or DEX, then swaps on the opposite exchange and returns the output Y tokens to Arbitrageur."},"fullyImplemented":true,"linearizedBaseContracts":[44178],"name":"AtomicV2","nameLocation":"1429:8:54","scope":44179,"usedErrors":[26761,26763,26765,27736,43496,43502,43508,43514,43524,43532,43610],"usedEvents":[43536,43540,43546]}],"license":"UNLICENSED"},"id":54} \ No newline at end of file diff --git a/out/AtomicV2.sol/TokenLike.json b/out/AtomicV2.sol/TokenLike.json deleted file mode 100644 index 78732351..00000000 --- a/out/AtomicV2.sol/TokenLike.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/helpers/AtomicV2.sol\":\"TokenLike\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/test/helpers/AtomicV2.sol\":{\"keccak256\":\"0xa19f56ab0a72272bc46fa1f6b1438ca036c2c3d957b6b40c9cebbed7fb21d05b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6f3807847572c311c041cdc27772c0b467f402998c3d036c0bfb30d6581b620d\",\"dweb:/ipfs/QmZXWhCdQhXbwMUpF9QAPt8QQQ3oxYKdge41tSH7U3gFNW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/helpers/AtomicV2.sol":"TokenLike"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/test/helpers/AtomicV2.sol":{"keccak256":"0xa19f56ab0a72272bc46fa1f6b1438ca036c2c3d957b6b40c9cebbed7fb21d05b","urls":["bzz-raw://6f3807847572c311c041cdc27772c0b467f402998c3d036c0bfb30d6581b620d","dweb:/ipfs/QmZXWhCdQhXbwMUpF9QAPt8QQQ3oxYKdge41tSH7U3gFNW"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/helpers/AtomicV2.sol","id":44179,"exportedSymbols":{"AtomicV2":[44178],"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"FixedPointMathLib":[26640],"Gaussian":[27374],"LiquidExchange":[43400],"Min":[27736],"StrategyLike":[43443],"TokenLike":[43483],"abs":[27763],"bisection":[31118],"console2":[25512],"diviWad":[27813],"muli":[27777],"muliWad":[27795]},"nodeType":"SourceUnit","src":"39:9735:54","nodes":[{"id":43383,"nodeType":"PragmaDirective","src":"39:24:54","nodes":[],"literals":["solidity","^","0.8",".14"]},{"id":43384,"nodeType":"ImportDirective","src":"65:30:54","nodes":[],"absolutePath":"lib/solstat/src/Gaussian.sol","file":"solstat/Gaussian.sol","nameLocation":"-1:-1:-1","scope":44179,"sourceUnit":27375,"symbolAliases":[],"unitAlias":""},{"id":43385,"nodeType":"ImportDirective","src":"96:45:54","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol","file":"solmate/utils/FixedPointMathLib.sol","nameLocation":"-1:-1:-1","scope":44179,"sourceUnit":26641,"symbolAliases":[],"unitAlias":""},{"id":43386,"nodeType":"ImportDirective","src":"142:38:54","nodes":[],"absolutePath":"src/solvers/BisectionLib.sol","file":"src/solvers/BisectionLib.sol","nameLocation":"-1:-1:-1","scope":44179,"sourceUnit":31119,"symbolAliases":[],"unitAlias":""},{"id":43387,"nodeType":"ImportDirective","src":"181:32:54","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/console2.sol","file":"forge-std/console2.sol","nameLocation":"-1:-1:-1","scope":44179,"sourceUnit":25513,"symbolAliases":[],"unitAlias":""},{"id":43400,"nodeType":"ContractDefinition","src":"215:136:54","nodes":[{"id":43394,"nodeType":"FunctionDefinition","src":"246:54:54","nodes":[],"functionSelector":"d004f0f7","implemented":false,"kind":"function","modifiers":[],"name":"swap","nameLocation":"255:4:54","parameters":{"id":43392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43389,"mutability":"mutable","name":"token","nameLocation":"268:5:54","nodeType":"VariableDeclaration","scope":43394,"src":"260:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43388,"name":"address","nodeType":"ElementaryTypeName","src":"260:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43391,"mutability":"mutable","name":"amount","nameLocation":"283:6:54","nodeType":"VariableDeclaration","scope":43394,"src":"275:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43390,"name":"uint256","nodeType":"ElementaryTypeName","src":"275:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"259:31:54"},"returnParameters":{"id":43393,"nodeType":"ParameterList","parameters":[],"src":"299:0:54"},"scope":43400,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43399,"nodeType":"FunctionDefinition","src":"305:44:54","nodes":[],"functionSelector":"a035b1fe","implemented":false,"kind":"function","modifiers":[],"name":"price","nameLocation":"314:5:54","parameters":{"id":43395,"nodeType":"ParameterList","parameters":[],"src":"319:2:54"},"returnParameters":{"id":43398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43397,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43399,"src":"340:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43396,"name":"uint256","nodeType":"ElementaryTypeName","src":"340:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"339:9:54"},"scope":43400,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"LiquidExchange","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[43400],"name":"LiquidExchange","nameLocation":"225:14:54","scope":44179,"usedErrors":[],"usedEvents":[]},{"id":43443,"nodeType":"ContractDefinition","src":"353:585:54","nodes":[{"id":43407,"nodeType":"FunctionDefinition","src":"382:60:54","nodes":[],"functionSelector":"bd0625ab","implemented":false,"kind":"function","modifiers":[],"name":"swap","nameLocation":"391:4:54","parameters":{"id":43405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43402,"mutability":"mutable","name":"poolId","nameLocation":"404:6:54","nodeType":"VariableDeclaration","scope":43407,"src":"396:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43401,"name":"uint256","nodeType":"ElementaryTypeName","src":"396:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43404,"mutability":"mutable","name":"data","nameLocation":"427:4:54","nodeType":"VariableDeclaration","scope":43407,"src":"412:19:54","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":43403,"name":"bytes","nodeType":"ElementaryTypeName","src":"412:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"395:37:54"},"returnParameters":{"id":43406,"nodeType":"ParameterList","parameters":[],"src":"441:0:54"},"scope":43443,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43424,"nodeType":"FunctionDefinition","src":"447:285:54","nodes":[],"functionSelector":"3928ff97","implemented":false,"kind":"function","modifiers":[],"name":"simulateSwap","nameLocation":"456:12:54","parameters":{"id":43414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43409,"mutability":"mutable","name":"poolId","nameLocation":"486:6:54","nodeType":"VariableDeclaration","scope":43424,"src":"478:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43408,"name":"uint256","nodeType":"ElementaryTypeName","src":"478:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43411,"mutability":"mutable","name":"swapXIn","nameLocation":"507:7:54","nodeType":"VariableDeclaration","scope":43424,"src":"502:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43410,"name":"bool","nodeType":"ElementaryTypeName","src":"502:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43413,"mutability":"mutable","name":"amountIn","nameLocation":"532:8:54","nodeType":"VariableDeclaration","scope":43424,"src":"524:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43412,"name":"uint256","nodeType":"ElementaryTypeName","src":"524:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"468:78:54"},"returnParameters":{"id":43423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43416,"mutability":"mutable","name":"valid","nameLocation":"612:5:54","nodeType":"VariableDeclaration","scope":43424,"src":"607:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43415,"name":"bool","nodeType":"ElementaryTypeName","src":"607:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43418,"mutability":"mutable","name":"estimatedOut","nameLocation":"639:12:54","nodeType":"VariableDeclaration","scope":43424,"src":"631:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43417,"name":"uint256","nodeType":"ElementaryTypeName","src":"631:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43420,"mutability":"mutable","name":"estimatedPrice","nameLocation":"673:14:54","nodeType":"VariableDeclaration","scope":43424,"src":"665:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43419,"name":"uint256","nodeType":"ElementaryTypeName","src":"665:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43422,"mutability":"mutable","name":"payload","nameLocation":"714:7:54","nodeType":"VariableDeclaration","scope":43424,"src":"701:20:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43421,"name":"bytes","nodeType":"ElementaryTypeName","src":"701:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"593:138:54"},"scope":43443,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":43431,"nodeType":"FunctionDefinition","src":"737:71:54","nodes":[],"functionSelector":"3b4d1030","implemented":false,"kind":"function","modifiers":[],"name":"internalPrice","nameLocation":"746:13:54","parameters":{"id":43427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43426,"mutability":"mutable","name":"poolId","nameLocation":"768:6:54","nodeType":"VariableDeclaration","scope":43431,"src":"760:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43425,"name":"uint256","nodeType":"ElementaryTypeName","src":"760:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"759:16:54"},"returnParameters":{"id":43430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43429,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43431,"src":"799:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43428,"name":"uint256","nodeType":"ElementaryTypeName","src":"799:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"798:9:54"},"scope":43443,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":43442,"nodeType":"FunctionDefinition","src":"813:123:54","nodes":[],"functionSelector":"ce153bf4","implemented":false,"kind":"function","modifiers":[],"name":"getReservesAndLiquidity","nameLocation":"822:23:54","parameters":{"id":43434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43433,"mutability":"mutable","name":"poolId","nameLocation":"854:6:54","nodeType":"VariableDeclaration","scope":43442,"src":"846:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43432,"name":"uint256","nodeType":"ElementaryTypeName","src":"846:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"845:16:54"},"returnParameters":{"id":43441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43436,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43442,"src":"909:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43435,"name":"uint256","nodeType":"ElementaryTypeName","src":"909:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43442,"src":"918:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43437,"name":"uint256","nodeType":"ElementaryTypeName","src":"918:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43440,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43442,"src":"927:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43439,"name":"uint256","nodeType":"ElementaryTypeName","src":"927:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"908:27:54"},"scope":43443,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"StrategyLike","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[43443],"name":"StrategyLike","nameLocation":"363:12:54","scope":44179,"usedErrors":[],"usedEvents":[]},{"id":43483,"nodeType":"ContractDefinition","src":"940:324:54","nodes":[{"id":43452,"nodeType":"FunctionDefinition","src":"966:58:54","nodes":[],"functionSelector":"23b872dd","implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"975:12:54","parameters":{"id":43450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43445,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43452,"src":"988:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43444,"name":"address","nodeType":"ElementaryTypeName","src":"988:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43447,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43452,"src":"997:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43446,"name":"address","nodeType":"ElementaryTypeName","src":"997:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43449,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43452,"src":"1006:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43448,"name":"uint256","nodeType":"ElementaryTypeName","src":"1006:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"987:27:54"},"returnParameters":{"id":43451,"nodeType":"ParameterList","parameters":[],"src":"1023:0:54"},"scope":43483,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43459,"nodeType":"FunctionDefinition","src":"1029:45:54","nodes":[],"functionSelector":"a9059cbb","implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1038:8:54","parameters":{"id":43457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43454,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43459,"src":"1047:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43453,"name":"address","nodeType":"ElementaryTypeName","src":"1047:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43459,"src":"1056:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43455,"name":"uint256","nodeType":"ElementaryTypeName","src":"1056:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1046:18:54"},"returnParameters":{"id":43458,"nodeType":"ParameterList","parameters":[],"src":"1073:0:54"},"scope":43483,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43466,"nodeType":"FunctionDefinition","src":"1079:44:54","nodes":[],"functionSelector":"095ea7b3","implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"1088:7:54","parameters":{"id":43464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43466,"src":"1096:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43460,"name":"address","nodeType":"ElementaryTypeName","src":"1096:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43463,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43466,"src":"1105:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43462,"name":"uint256","nodeType":"ElementaryTypeName","src":"1105:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1095:18:54"},"returnParameters":{"id":43465,"nodeType":"ParameterList","parameters":[],"src":"1122:0:54"},"scope":43483,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43473,"nodeType":"FunctionDefinition","src":"1128:60:54","nodes":[],"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1137:9:54","parameters":{"id":43469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43468,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43473,"src":"1147:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43467,"name":"address","nodeType":"ElementaryTypeName","src":"1147:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1146:9:54"},"returnParameters":{"id":43472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43471,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43473,"src":"1179:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43470,"name":"uint256","nodeType":"ElementaryTypeName","src":"1179:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1178:9:54"},"scope":43483,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":43482,"nodeType":"FunctionDefinition","src":"1193:69:54","nodes":[],"functionSelector":"dd62ed3e","implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1202:9:54","parameters":{"id":43478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43475,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43482,"src":"1212:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43474,"name":"address","nodeType":"ElementaryTypeName","src":"1212:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43477,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43482,"src":"1221:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43476,"name":"address","nodeType":"ElementaryTypeName","src":"1221:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1211:18:54"},"returnParameters":{"id":43481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43480,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43482,"src":"1253:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43479,"name":"uint256","nodeType":"ElementaryTypeName","src":"1253:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1252:9:54"},"scope":43483,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"TokenLike","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[43483],"name":"TokenLike","nameLocation":"950:9:54","scope":44179,"usedErrors":[],"usedEvents":[]},{"id":44178,"nodeType":"ContractDefinition","src":"1420:8353:54","nodes":[{"id":43487,"nodeType":"UsingForDirective","src":"1444:35:54","nodes":[],"global":false,"libraryName":{"id":43485,"name":"FixedPointMathLib","nameLocations":["1450:17:54"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"1450:17:54"},"typeName":{"id":43486,"name":"int256","nodeType":"ElementaryTypeName","src":"1472:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":43490,"nodeType":"UsingForDirective","src":"1484:36:54","nodes":[],"global":false,"libraryName":{"id":43488,"name":"FixedPointMathLib","nameLocations":["1490:17:54"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"1490:17:54"},"typeName":{"id":43489,"name":"uint256","nodeType":"ElementaryTypeName","src":"1512:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":43496,"nodeType":"ErrorDefinition","src":"1526:61:54","nodes":[],"errorSelector":"0abe5a89","name":"InsufficientBalanceY","nameLocation":"1532:20:54","parameters":{"id":43495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43492,"mutability":"mutable","name":"balance","nameLocation":"1561:7:54","nodeType":"VariableDeclaration","scope":43496,"src":"1553:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43491,"name":"uint256","nodeType":"ElementaryTypeName","src":"1553:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43494,"mutability":"mutable","name":"payment","nameLocation":"1578:7:54","nodeType":"VariableDeclaration","scope":43496,"src":"1570:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43493,"name":"uint256","nodeType":"ElementaryTypeName","src":"1570:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1552:34:54"}},{"id":43502,"nodeType":"ErrorDefinition","src":"1592:61:54","nodes":[],"errorSelector":"0295b09c","name":"InsufficientBalanceX","nameLocation":"1598:20:54","parameters":{"id":43501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43498,"mutability":"mutable","name":"balance","nameLocation":"1627:7:54","nodeType":"VariableDeclaration","scope":43502,"src":"1619:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43497,"name":"uint256","nodeType":"ElementaryTypeName","src":"1619:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43500,"mutability":"mutable","name":"payment","nameLocation":"1644:7:54","nodeType":"VariableDeclaration","scope":43502,"src":"1636:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43499,"name":"uint256","nodeType":"ElementaryTypeName","src":"1636:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1618:34:54"}},{"id":43508,"nodeType":"ErrorDefinition","src":"1658:64:54","nodes":[],"errorSelector":"da56d3c5","name":"InsufficientApprovalY","nameLocation":"1664:21:54","parameters":{"id":43507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43504,"mutability":"mutable","name":"allowance","nameLocation":"1694:9:54","nodeType":"VariableDeclaration","scope":43508,"src":"1686:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43503,"name":"uint256","nodeType":"ElementaryTypeName","src":"1686:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43506,"mutability":"mutable","name":"payment","nameLocation":"1713:7:54","nodeType":"VariableDeclaration","scope":43508,"src":"1705:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43505,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1685:36:54"}},{"id":43514,"nodeType":"ErrorDefinition","src":"1727:47:54","nodes":[],"errorSelector":"cf42d71a","name":"DexSwapFailure","nameLocation":"1733:14:54","parameters":{"id":43513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43510,"mutability":"mutable","name":"reason","nameLocation":"1755:6:54","nodeType":"VariableDeclaration","scope":43514,"src":"1748:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":43509,"name":"string","nodeType":"ElementaryTypeName","src":"1748:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43512,"mutability":"mutable","name":"err","nameLocation":"1769:3:54","nodeType":"VariableDeclaration","scope":43514,"src":"1763:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43511,"name":"bytes","nodeType":"ElementaryTypeName","src":"1763:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1747:26:54"}},{"id":43524,"nodeType":"ErrorDefinition","src":"1779:114:54","nodes":[],"errorSelector":"18a73118","name":"SimulatedSwapFailure","nameLocation":"1785:20:54","parameters":{"id":43523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43516,"mutability":"mutable","name":"valid","nameLocation":"1820:5:54","nodeType":"VariableDeclaration","scope":43524,"src":"1815:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43515,"name":"bool","nodeType":"ElementaryTypeName","src":"1815:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43518,"mutability":"mutable","name":"estimatedOut","nameLocation":"1835:12:54","nodeType":"VariableDeclaration","scope":43524,"src":"1827:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43517,"name":"uint256","nodeType":"ElementaryTypeName","src":"1827:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43520,"mutability":"mutable","name":"estimatedPrice","nameLocation":"1857:14:54","nodeType":"VariableDeclaration","scope":43524,"src":"1849:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43519,"name":"uint256","nodeType":"ElementaryTypeName","src":"1849:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43522,"mutability":"mutable","name":"payload","nameLocation":"1879:7:54","nodeType":"VariableDeclaration","scope":43524,"src":"1873:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43521,"name":"bytes","nodeType":"ElementaryTypeName","src":"1873:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1805:87:54"}},{"id":43532,"nodeType":"ErrorDefinition","src":"1899:135:54","nodes":[],"errorSelector":"b16e3783","name":"UnprofitableArbitrage","nameLocation":"1905:21:54","parameters":{"id":43531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43526,"mutability":"mutable","name":"start_y_balance","nameLocation":"1944:15:54","nodeType":"VariableDeclaration","scope":43532,"src":"1936:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43525,"name":"uint256","nodeType":"ElementaryTypeName","src":"1936:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43528,"mutability":"mutable","name":"end_y_balance","nameLocation":"1977:13:54","nodeType":"VariableDeclaration","scope":43532,"src":"1969:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43527,"name":"uint256","nodeType":"ElementaryTypeName","src":"1969:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43530,"mutability":"mutable","name":"absolute_difference","nameLocation":"2008:19:54","nodeType":"VariableDeclaration","scope":43532,"src":"2000:27:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43529,"name":"uint256","nodeType":"ElementaryTypeName","src":"2000:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1926:107:54"}},{"id":43536,"nodeType":"EventDefinition","src":"2040:29:54","nodes":[],"anonymous":false,"eventSelector":"357d905f1831209797df4d55d79c5c5bf1d9f7311c976afd05e13d881eab9bc8","name":"Profit","nameLocation":"2046:6:54","parameters":{"id":43535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43534,"indexed":false,"mutability":"mutable","name":"profit","nameLocation":"2061:6:54","nodeType":"VariableDeclaration","scope":43536,"src":"2053:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43533,"name":"uint256","nodeType":"ElementaryTypeName","src":"2053:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2052:16:54"}},{"id":43540,"nodeType":"EventDefinition","src":"2074:25:54","nodes":[],"anonymous":false,"eventSelector":"b65b2e085d7d040c313f7d4e1ac90f5937026fee497e0e24a7eff16a55e1c5ea","name":"Loss","nameLocation":"2080:4:54","parameters":{"id":43539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43538,"indexed":false,"mutability":"mutable","name":"loss","nameLocation":"2093:4:54","nodeType":"VariableDeclaration","scope":43540,"src":"2085:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43537,"name":"uint256","nodeType":"ElementaryTypeName","src":"2085:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2084:14:54"}},{"id":43546,"nodeType":"EventDefinition","src":"2104:46:54","nodes":[],"anonymous":false,"eventSelector":"d1353c68e79ef70de84ee90d2facf845ec24895116d4a03505aa41785af71f5a","name":"Price","nameLocation":"2110:5:54","parameters":{"id":43545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43542,"indexed":false,"mutability":"mutable","name":"price","nameLocation":"2124:5:54","nodeType":"VariableDeclaration","scope":43546,"src":"2116:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43541,"name":"uint256","nodeType":"ElementaryTypeName","src":"2116:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43544,"indexed":false,"mutability":"mutable","name":"timestamp","nameLocation":"2139:9:54","nodeType":"VariableDeclaration","scope":43546,"src":"2131:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43543,"name":"uint256","nodeType":"ElementaryTypeName","src":"2131:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2115:34:54"}},{"id":43548,"nodeType":"VariableDeclaration","src":"2156:29:54","nodes":[],"constant":false,"functionSelector":"9f27ef4f","mutability":"mutable","name":"liquidExchange","nameLocation":"2171:14:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43547,"name":"address","nodeType":"ElementaryTypeName","src":"2156:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":43550,"nodeType":"VariableDeclaration","src":"2191:23:54","nodes":[],"constant":false,"functionSelector":"d2f7265a","mutability":"mutable","name":"exchange","nameLocation":"2206:8:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43549,"name":"address","nodeType":"ElementaryTypeName","src":"2191:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":43552,"nodeType":"VariableDeclaration","src":"2220:21:54","nodes":[],"constant":false,"functionSelector":"49a7a26d","mutability":"mutable","name":"solver","nameLocation":"2235:6:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43551,"name":"address","nodeType":"ElementaryTypeName","src":"2220:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":43554,"nodeType":"VariableDeclaration","src":"2247:20:54","nodes":[],"constant":false,"functionSelector":"38d52e0f","mutability":"mutable","name":"asset","nameLocation":"2262:5:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43553,"name":"address","nodeType":"ElementaryTypeName","src":"2247:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":43556,"nodeType":"VariableDeclaration","src":"2273:20:54","nodes":[],"constant":false,"functionSelector":"999b93af","mutability":"mutable","name":"quote","nameLocation":"2288:5:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43555,"name":"address","nodeType":"ElementaryTypeName","src":"2273:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":43559,"nodeType":"VariableDeclaration","src":"2414:40:54","nodes":[],"constant":false,"documentation":{"id":43557,"nodeType":"StructuredDocumentation","src":"2300:109:54","text":"@dev Since token x is transferred inside the arbitrage loop, this stores that value in the last arb loop."},"functionSelector":"936520c3","mutability":"mutable","name":"intermediateTokenXBalance","nameLocation":"2429:25:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43558,"name":"uint256","nodeType":"ElementaryTypeName","src":"2414:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":43561,"nodeType":"VariableDeclaration","src":"2460:45:54","nodes":[],"constant":false,"functionSelector":"fa2e5994","mutability":"mutable","name":"intermediateTokenYStartBalance","nameLocation":"2475:30:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43560,"name":"uint256","nodeType":"ElementaryTypeName","src":"2460:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":43563,"nodeType":"VariableDeclaration","src":"2511:43:54","nodes":[],"constant":false,"functionSelector":"72b98246","mutability":"mutable","name":"intermediateTokenYEndBalance","nameLocation":"2526:28:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43562,"name":"uint256","nodeType":"ElementaryTypeName","src":"2511:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":43566,"nodeType":"VariableDeclaration","src":"2635:31:54","nodes":[],"constant":false,"documentation":{"id":43564,"nodeType":"StructuredDocumentation","src":"2561:69:54","text":"@dev Accumulates the profit from each arbitrage loop in Y tokens."},"functionSelector":"85b319ff","mutability":"mutable","name":"cumulativeProfit","nameLocation":"2650:16:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43565,"name":"uint256","nodeType":"ElementaryTypeName","src":"2635:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":43600,"nodeType":"FunctionDefinition","src":"2673:364:54","nodes":[],"body":{"id":43599,"nodeType":"Block","src":"2854:183:54","nodes":[],"statements":[{"expression":{"id":43581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43579,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43552,"src":"2864:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43580,"name":"solverAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43568,"src":"2873:13:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2864:22:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43582,"nodeType":"ExpressionStatement","src":"2864:22:54"},{"expression":{"id":43585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43583,"name":"exchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43550,"src":"2896:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43584,"name":"exchangeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43570,"src":"2907:15:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2896:26:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43586,"nodeType":"ExpressionStatement","src":"2896:26:54"},{"expression":{"id":43589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43587,"name":"liquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43548,"src":"2932:14:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43588,"name":"liquidExchangeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43572,"src":"2949:21:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2932:38:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43590,"nodeType":"ExpressionStatement","src":"2932:38:54"},{"expression":{"id":43593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43591,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"2980:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43592,"name":"assetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43574,"src":"2988:12:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2980:20:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43594,"nodeType":"ExpressionStatement","src":"2980:20:54"},{"expression":{"id":43597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43595,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"3010:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43596,"name":"quoteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43576,"src":"3018:12:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3010:20:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43598,"nodeType":"ExpressionStatement","src":"3010:20:54"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":43577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43568,"mutability":"mutable","name":"solverAddress","nameLocation":"2702:13:54","nodeType":"VariableDeclaration","scope":43600,"src":"2694:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43567,"name":"address","nodeType":"ElementaryTypeName","src":"2694:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43570,"mutability":"mutable","name":"exchangeAddress","nameLocation":"2733:15:54","nodeType":"VariableDeclaration","scope":43600,"src":"2725:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43569,"name":"address","nodeType":"ElementaryTypeName","src":"2725:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43572,"mutability":"mutable","name":"liquidExchangeAddress","nameLocation":"2766:21:54","nodeType":"VariableDeclaration","scope":43600,"src":"2758:29:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43571,"name":"address","nodeType":"ElementaryTypeName","src":"2758:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43574,"mutability":"mutable","name":"assetAddress","nameLocation":"2805:12:54","nodeType":"VariableDeclaration","scope":43600,"src":"2797:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43573,"name":"address","nodeType":"ElementaryTypeName","src":"2797:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43576,"mutability":"mutable","name":"quoteAddress","nameLocation":"2835:12:54","nodeType":"VariableDeclaration","scope":43600,"src":"2827:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43575,"name":"address","nodeType":"ElementaryTypeName","src":"2827:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2684:169:54"},"returnParameters":{"id":43578,"nodeType":"ParameterList","parameters":[],"src":"2854:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":43603,"nodeType":"VariableDeclaration","src":"3043:23:54","nodes":[],"constant":false,"functionSelector":"f3c973cf","mutability":"mutable","name":"XTOY","nameLocation":"3055:4:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43601,"name":"bool","nodeType":"ElementaryTypeName","src":"3043:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":43602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3062:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"public"},{"id":43606,"nodeType":"VariableDeclaration","src":"3072:24:54","nodes":[],"constant":false,"functionSelector":"6449fc57","mutability":"mutable","name":"YTOX","nameLocation":"3084:4:54","scope":44178,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43604,"name":"bool","nodeType":"ElementaryTypeName","src":"3072:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":43605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3091:5:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"public"},{"id":43610,"nodeType":"ErrorDefinition","src":"3103:37:54","nodes":[],"errorSelector":"85aba8de","name":"AttemptedProfit","nameLocation":"3109:15:54","parameters":{"id":43609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43608,"mutability":"mutable","name":"profit","nameLocation":"3132:6:54","nodeType":"VariableDeclaration","scope":43610,"src":"3125:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":43607,"name":"int256","nodeType":"ElementaryTypeName","src":"3125:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3124:15:54"}},{"id":43659,"nodeType":"FunctionDefinition","src":"3146:468:54","nodes":[],"body":{"id":43658,"nodeType":"Block","src":"3216:398:54","nodes":[],"statements":[{"assignments":[43618],"declarations":[{"constant":false,"id":43618,"mutability":"mutable","name":"price","nameLocation":"3234:5:54","nodeType":"VariableDeclaration","scope":43658,"src":"3226:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43617,"name":"uint256","nodeType":"ElementaryTypeName","src":"3226:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43625,"initialValue":{"arguments":[{"id":43623,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43612,"src":"3277:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43620,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43552,"src":"3255:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43619,"name":"StrategyLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"3242:12:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyLike_$43443_$","typeString":"type(contract StrategyLike)"}},"id":43621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3242:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StrategyLike_$43443","typeString":"contract StrategyLike"}},"id":43622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3263:13:54","memberName":"internalPrice","nodeType":"MemberAccess","referencedDeclaration":43431,"src":"3242:34:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":43624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3242:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3226:58:54"},{"eventCall":{"arguments":[{"id":43627,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43618,"src":"3305:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":43628,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3312:5:54","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":43629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3318:9:54","memberName":"timestamp","nodeType":"MemberAccess","src":"3312:15:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43626,"name":"Price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43546,"src":"3299:5:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":43630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3299:29:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43631,"nodeType":"EmitStatement","src":"3294:34:54"},{"expression":{"arguments":[{"id":43633,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43614,"src":"3384:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43632,"name":"_invoice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43784,"src":"3375:8:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":43634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3375:15:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43635,"nodeType":"ExpressionStatement","src":"3375:15:54"},{"expression":{"arguments":[{"id":43637,"name":"YTOX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43606,"src":"3436:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43638,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43614,"src":"3442:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43636,"name":"_lex_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43840,"src":"3426:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$_t_uint256_$returns$__$","typeString":"function (bool,uint256)"}},"id":43639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3426:22:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43640,"nodeType":"ExpressionStatement","src":"3426:22:54"},{"expression":{"arguments":[{"id":43642,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43612,"src":"3494:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43643,"name":"XTOY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43603,"src":"3502:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"id":43650,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3543:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3535:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43648,"name":"address","nodeType":"ElementaryTypeName","src":"3535:7:54","typeDescriptions":{}}},"id":43651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3535:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43645,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"3518:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43644,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"3508:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3508:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3525:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"3508:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3508:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43641,"name":"_dex_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43934,"src":"3484:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$_t_uint256_$returns$__$","typeString":"function (uint256,bool,uint256)"}},"id":43653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3484:66:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43654,"nodeType":"ExpressionStatement","src":"3484:66:54"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43655,"name":"_payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44003,"src":"3598:7:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":43656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3598:9:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43657,"nodeType":"ExpressionStatement","src":"3598:9:54"}]},"functionSelector":"96fbee1d","implemented":true,"kind":"function","modifiers":[],"name":"lower_exchange_price","nameLocation":"3155:20:54","parameters":{"id":43615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43612,"mutability":"mutable","name":"poolId","nameLocation":"3184:6:54","nodeType":"VariableDeclaration","scope":43659,"src":"3176:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43611,"name":"uint256","nodeType":"ElementaryTypeName","src":"3176:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43614,"mutability":"mutable","name":"input","nameLocation":"3200:5:54","nodeType":"VariableDeclaration","scope":43659,"src":"3192:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43613,"name":"uint256","nodeType":"ElementaryTypeName","src":"3192:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3175:31:54"},"returnParameters":{"id":43616,"nodeType":"ParameterList","parameters":[],"src":"3216:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43708,"nodeType":"FunctionDefinition","src":"3620:468:54","nodes":[],"body":{"id":43707,"nodeType":"Block","src":"3690:398:54","nodes":[],"statements":[{"assignments":[43667],"declarations":[{"constant":false,"id":43667,"mutability":"mutable","name":"price","nameLocation":"3708:5:54","nodeType":"VariableDeclaration","scope":43707,"src":"3700:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43666,"name":"uint256","nodeType":"ElementaryTypeName","src":"3700:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43674,"initialValue":{"arguments":[{"id":43672,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43661,"src":"3751:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43669,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43552,"src":"3729:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43668,"name":"StrategyLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"3716:12:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyLike_$43443_$","typeString":"type(contract StrategyLike)"}},"id":43670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3716:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StrategyLike_$43443","typeString":"contract StrategyLike"}},"id":43671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3737:13:54","memberName":"internalPrice","nodeType":"MemberAccess","referencedDeclaration":43431,"src":"3716:34:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":43673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3716:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3700:58:54"},{"eventCall":{"arguments":[{"id":43676,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43667,"src":"3779:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":43677,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3786:5:54","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":43678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3792:9:54","memberName":"timestamp","nodeType":"MemberAccess","src":"3786:15:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43675,"name":"Price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43546,"src":"3773:5:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":43679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3773:29:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43680,"nodeType":"EmitStatement","src":"3768:34:54"},{"expression":{"arguments":[{"id":43682,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43663,"src":"3858:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43681,"name":"_invoice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43784,"src":"3849:8:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":43683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3849:15:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43684,"nodeType":"ExpressionStatement","src":"3849:15:54"},{"expression":{"arguments":[{"id":43686,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43661,"src":"3910:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43687,"name":"YTOX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43606,"src":"3918:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43688,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43663,"src":"3924:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43685,"name":"_dex_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43934,"src":"3900:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$_t_uint256_$returns$__$","typeString":"function (uint256,bool,uint256)"}},"id":43689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3900:30:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43690,"nodeType":"ExpressionStatement","src":"3900:30:54"},{"expression":{"arguments":[{"id":43692,"name":"XTOY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43603,"src":"3976:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"id":43699,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4017:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4009:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43697,"name":"address","nodeType":"ElementaryTypeName","src":"4009:7:54","typeDescriptions":{}}},"id":43700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4009:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43694,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"3992:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43693,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"3982:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3982:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3999:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"3982:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3982:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43691,"name":"_lex_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43840,"src":"3966:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$_t_uint256_$returns$__$","typeString":"function (bool,uint256)"}},"id":43702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3966:58:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43703,"nodeType":"ExpressionStatement","src":"3966:58:54"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43704,"name":"_payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44003,"src":"4072:7:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":43705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4072:9:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43706,"nodeType":"ExpressionStatement","src":"4072:9:54"}]},"functionSelector":"f9005eb5","implemented":true,"kind":"function","modifiers":[],"name":"raise_exchange_price","nameLocation":"3629:20:54","parameters":{"id":43664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43661,"mutability":"mutable","name":"poolId","nameLocation":"3658:6:54","nodeType":"VariableDeclaration","scope":43708,"src":"3650:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43660,"name":"uint256","nodeType":"ElementaryTypeName","src":"3650:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43663,"mutability":"mutable","name":"input","nameLocation":"3674:5:54","nodeType":"VariableDeclaration","scope":43708,"src":"3666:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43662,"name":"uint256","nodeType":"ElementaryTypeName","src":"3666:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3649:31:54"},"returnParameters":{"id":43665,"nodeType":"ParameterList","parameters":[],"src":"3690:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":43784,"nodeType":"FunctionDefinition","src":"4149:634:54","nodes":[],"body":{"id":43783,"nodeType":"Block","src":"4194:589:54","nodes":[],"statements":[{"assignments":[43715],"declarations":[{"constant":false,"id":43715,"mutability":"mutable","name":"quote_balance","nameLocation":"4212:13:54","nodeType":"VariableDeclaration","scope":43783,"src":"4204:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43714,"name":"uint256","nodeType":"ElementaryTypeName","src":"4204:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43723,"initialValue":{"arguments":[{"expression":{"id":43720,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4255:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4259:6:54","memberName":"sender","nodeType":"MemberAccess","src":"4255:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43717,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"4238:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43716,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"4228:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4228:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4245:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"4228:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4228:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4204:62:54"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43724,"name":"quote_balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43715,"src":"4280:13:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43725,"name":"amount_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43711,"src":"4296:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4280:24:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43733,"nodeType":"IfStatement","src":"4276:107:54","trueBody":{"id":43732,"nodeType":"Block","src":"4306:77:54","statements":[{"errorCall":{"arguments":[{"id":43728,"name":"quote_balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43715,"src":"4348:13:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43729,"name":"amount_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43711,"src":"4363:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43727,"name":"InsufficientBalanceY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43496,"src":"4327:20:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4327:45:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43731,"nodeType":"RevertStatement","src":"4320:52:54"}]}},{"assignments":[43735],"declarations":[{"constant":false,"id":43735,"mutability":"mutable","name":"quote_approval","nameLocation":"4401:14:54","nodeType":"VariableDeclaration","scope":43783,"src":"4393:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43734,"name":"uint256","nodeType":"ElementaryTypeName","src":"4393:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43747,"initialValue":{"arguments":[{"expression":{"id":43740,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4457:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4461:6:54","memberName":"sender","nodeType":"MemberAccess","src":"4457:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":43744,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4477:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4469:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43742,"name":"address","nodeType":"ElementaryTypeName","src":"4469:7:54","typeDescriptions":{}}},"id":43745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4469:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43737,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"4440:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43736,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"4430:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4430:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4447:9:54","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":43482,"src":"4430:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":43746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4430:53:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4393:90:54"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43748,"name":"quote_approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43735,"src":"4497:14:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43749,"name":"amount_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43711,"src":"4514:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4497:25:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43757,"nodeType":"IfStatement","src":"4493:110:54","trueBody":{"id":43756,"nodeType":"Block","src":"4524:79:54","statements":[{"errorCall":{"arguments":[{"id":43752,"name":"quote_approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43735,"src":"4567:14:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43753,"name":"amount_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43711,"src":"4583:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43751,"name":"InsufficientApprovalY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43508,"src":"4545:21:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4545:47:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43755,"nodeType":"RevertStatement","src":"4538:54:54"}]}},{"expression":{"arguments":[{"expression":{"id":43762,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4643:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4647:6:54","memberName":"sender","nodeType":"MemberAccess","src":"4643:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":43766,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4663:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4655:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43764,"name":"address","nodeType":"ElementaryTypeName","src":"4655:7:54","typeDescriptions":{}}},"id":43767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4655:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43768,"name":"amount_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43711,"src":"4670:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43759,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"4623:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43758,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"4613:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4613:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4630:12:54","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":43452,"src":"4613:29:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":43769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4613:66:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43770,"nodeType":"ExpressionStatement","src":"4613:66:54"},{"expression":{"id":43781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43771,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"4690:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":43778,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4770:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4762:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43776,"name":"address","nodeType":"ElementaryTypeName","src":"4762:7:54","typeDescriptions":{}}},"id":43779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4762:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43773,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"4745:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43772,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"4735:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4735:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4752:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"4735:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4735:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4690:86:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43782,"nodeType":"ExpressionStatement","src":"4690:86:54"}]},"documentation":{"id":43709,"nodeType":"StructuredDocumentation","src":"4094:50:54","text":"@dev Handles the payment from the arbitrageur."},"implemented":true,"kind":"function","modifiers":[],"name":"_invoice","nameLocation":"4158:8:54","parameters":{"id":43712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43711,"mutability":"mutable","name":"amount_y","nameLocation":"4175:8:54","nodeType":"VariableDeclaration","scope":43784,"src":"4167:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43710,"name":"uint256","nodeType":"ElementaryTypeName","src":"4167:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4166:18:54"},"returnParameters":{"id":43713,"nodeType":"ParameterList","parameters":[],"src":"4194:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43840,"nodeType":"FunctionDefinition","src":"4789:877:54","nodes":[],"body":{"id":43839,"nodeType":"Block","src":"4846:820:54","nodes":[],"statements":[{"condition":{"id":43791,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43786,"src":"4860:7:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43837,"nodeType":"Block","src":"5221:439:54","statements":[{"expression":{"arguments":[{"id":43813,"name":"liquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43548,"src":"5356:14:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43814,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43788,"src":"5372:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43810,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"5341:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43809,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"5331:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5331:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5348:7:54","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":43466,"src":"5331:24:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5331:47:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43816,"nodeType":"ExpressionStatement","src":"5331:47:54"},{"expression":{"arguments":[{"id":43821,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"5487:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43822,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43788,"src":"5494:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43818,"name":"liquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43548,"src":"5466:14:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43817,"name":"LiquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43400,"src":"5451:14:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LiquidExchange_$43400_$","typeString":"type(contract LiquidExchange)"}},"id":43819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5451:30:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LiquidExchange_$43400","typeString":"contract LiquidExchange"}},"id":43820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5482:4:54","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":43394,"src":"5451:35:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5451:49:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43824,"nodeType":"ExpressionStatement","src":"5451:49:54"},{"expression":{"id":43835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43825,"name":"intermediateTokenXBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43559,"src":"5564:25:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":43832,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5643:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5635:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43830,"name":"address","nodeType":"ElementaryTypeName","src":"5635:7:54","typeDescriptions":{}}},"id":43833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5635:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43827,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"5618:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43826,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"5608:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5608:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5625:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"5608:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5608:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5564:85:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43836,"nodeType":"ExpressionStatement","src":"5564:85:54"}]},"id":43838,"nodeType":"IfStatement","src":"4856:804:54","trueBody":{"id":43808,"nodeType":"Block","src":"4869:346:54","statements":[{"expression":{"arguments":[{"id":43796,"name":"liquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43548,"src":"5004:14:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43797,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43788,"src":"5020:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43793,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"4989:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43792,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"4979:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4979:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4996:7:54","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":43466,"src":"4979:24:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4979:47:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43799,"nodeType":"ExpressionStatement","src":"4979:47:54"},{"expression":{"arguments":[{"id":43804,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"5135:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43805,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43788,"src":"5142:5:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43801,"name":"liquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43548,"src":"5114:14:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43800,"name":"LiquidExchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43400,"src":"5099:14:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LiquidExchange_$43400_$","typeString":"type(contract LiquidExchange)"}},"id":43802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5099:30:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LiquidExchange_$43400","typeString":"contract LiquidExchange"}},"id":43803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5130:4:54","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":43394,"src":"5099:35:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5099:49:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43807,"nodeType":"ExpressionStatement","src":"5099:49:54"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_lex_swap","nameLocation":"4798:9:54","parameters":{"id":43789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43786,"mutability":"mutable","name":"swapXIn","nameLocation":"4813:7:54","nodeType":"VariableDeclaration","scope":43840,"src":"4808:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43785,"name":"bool","nodeType":"ElementaryTypeName","src":"4808:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43788,"mutability":"mutable","name":"input","nameLocation":"4830:5:54","nodeType":"VariableDeclaration","scope":43840,"src":"4822:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43787,"name":"uint256","nodeType":"ElementaryTypeName","src":"4822:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4807:29:54"},"returnParameters":{"id":43790,"nodeType":"ParameterList","parameters":[],"src":"4846:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43934,"nodeType":"FunctionDefinition","src":"5672:1592:54","nodes":[],"body":{"id":43933,"nodeType":"Block","src":"5778:1486:54","nodes":[],"statements":[{"condition":{"id":43849,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43844,"src":"5792:7:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43867,"nodeType":"Block","src":"5966:159:54","statements":[{"expression":{"arguments":[{"id":43863,"name":"exchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43550,"src":"6095:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43864,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43846,"src":"6105:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43860,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"6080:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43859,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"6070:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6070:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6087:7:54","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":43466,"src":"6070:24:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6070:44:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43866,"nodeType":"ExpressionStatement","src":"6070:44:54"}]},"id":43868,"nodeType":"IfStatement","src":"5788:337:54","trueBody":{"id":43858,"nodeType":"Block","src":"5801:159:54","statements":[{"expression":{"arguments":[{"id":43854,"name":"exchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43550,"src":"5930:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43855,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43846,"src":"5940:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43851,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"5915:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43850,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"5905:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5905:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5922:7:54","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":43466,"src":"5905:24:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":43856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5905:44:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43857,"nodeType":"ExpressionStatement","src":"5905:44:54"}]}},{"assignments":[43870,43872,43874,43876],"declarations":[{"constant":false,"id":43870,"mutability":"mutable","name":"valid","nameLocation":"6296:5:54","nodeType":"VariableDeclaration","scope":43933,"src":"6291:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43869,"name":"bool","nodeType":"ElementaryTypeName","src":"6291:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43872,"mutability":"mutable","name":"estimatedOut","nameLocation":"6323:12:54","nodeType":"VariableDeclaration","scope":43933,"src":"6315:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43871,"name":"uint256","nodeType":"ElementaryTypeName","src":"6315:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43874,"mutability":"mutable","name":"estimatedPrice","nameLocation":"6357:14:54","nodeType":"VariableDeclaration","scope":43933,"src":"6349:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43873,"name":"uint256","nodeType":"ElementaryTypeName","src":"6349:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43876,"mutability":"mutable","name":"payload","nameLocation":"6398:7:54","nodeType":"VariableDeclaration","scope":43933,"src":"6385:20:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43875,"name":"bytes","nodeType":"ElementaryTypeName","src":"6385:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":43885,"initialValue":{"arguments":[{"id":43881,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43842,"src":"6452:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43882,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43844,"src":"6460:7:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43883,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43846,"src":"6469:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43878,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43552,"src":"6431:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43877,"name":"StrategyLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"6418:12:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyLike_$43443_$","typeString":"type(contract StrategyLike)"}},"id":43879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6418:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StrategyLike_$43443","typeString":"contract StrategyLike"}},"id":43880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6439:12:54","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":43424,"src":"6418:33:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,uint256,bytes memory)"}},"id":43884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6418:60:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6277:201:54"},{"condition":{"id":43887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6493:6:54","subExpression":{"id":43886,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43870,"src":"6494:5:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43896,"nodeType":"IfStatement","src":"6489:140:54","trueBody":{"id":43895,"nodeType":"Block","src":"6501:128:54","statements":[{"errorCall":{"arguments":[{"id":43889,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43870,"src":"6560:5:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":43890,"name":"estimatedOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43872,"src":"6567:12:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43891,"name":"estimatedPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43874,"src":"6581:14:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43892,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43876,"src":"6597:7:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43888,"name":"SimulatedSwapFailure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43524,"src":"6522:20:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bool,uint256,uint256,bytes memory) pure"}},"id":43893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6522:96:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43894,"nodeType":"RevertStatement","src":"6515:103:54"}]}},{"clauses":[{"block":{"id":43920,"nodeType":"Block","src":"6717:435:54","statements":[{"condition":{"id":43904,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43844,"src":"6820:7:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43918,"nodeType":"Block","src":"6938:204:54","statements":[{"expression":{"id":43916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43906,"name":"intermediateTokenXBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43559,"src":"7038:25:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":43913,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7121:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43912,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7113:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43911,"name":"address","nodeType":"ElementaryTypeName","src":"7113:7:54","typeDescriptions":{}}},"id":43914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7113:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43908,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43554,"src":"7096:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43907,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"7086:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7086:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7103:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"7086:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7086:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7038:89:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43917,"nodeType":"ExpressionStatement","src":"7038:89:54"}]},"id":43919,"nodeType":"IfStatement","src":"6816:326:54","trueBody":{"id":43905,"nodeType":"Block","src":"6829:103:54","statements":[]}}]},"errorName":"","id":43921,"nodeType":"TryCatchClause","src":"6717:435:54"},{"block":{"id":43930,"nodeType":"Block","src":"7178:80:54","statements":[{"errorCall":{"arguments":[{"hexValue":"4445582073776170206661696c656420776974682064617461","id":43926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7214:27:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_f15362d018ecb0a5e9c49cd1e85ce384ef3452d5cda7e416ace6693442dd5650","typeString":"literal_string \"DEX swap failed with data\""},"value":"DEX swap failed with data"},{"id":43927,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43923,"src":"7243:3:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f15362d018ecb0a5e9c49cd1e85ce384ef3452d5cda7e416ace6693442dd5650","typeString":"literal_string \"DEX swap failed with data\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43925,"name":"DexSwapFailure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43514,"src":"7199:14:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,bytes memory) pure"}},"id":43928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7199:48:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43929,"nodeType":"RevertStatement","src":"7192:55:54"}]},"errorName":"","id":43931,"nodeType":"TryCatchClause","parameters":{"id":43924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43923,"mutability":"mutable","name":"err","nameLocation":"7173:3:54","nodeType":"VariableDeclaration","scope":43931,"src":"7160:16:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43922,"name":"bytes","nodeType":"ElementaryTypeName","src":"7160:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7159:18:54"},"src":"7153:105:54"}],"externalCall":{"arguments":[{"id":43901,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43842,"src":"6700:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43902,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43876,"src":"6708:7:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":43898,"name":"exchange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43550,"src":"6685:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43897,"name":"StrategyLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"6672:12:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyLike_$43443_$","typeString":"type(contract StrategyLike)"}},"id":43899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6672:22:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StrategyLike_$43443","typeString":"contract StrategyLike"}},"id":43900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6695:4:54","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":43407,"src":"6672:27:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory) external"}},"id":43903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6672:44:54","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43932,"nodeType":"TryStatement","src":"6668:590:54"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_dex_swap","nameLocation":"5681:9:54","parameters":{"id":43847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43842,"mutability":"mutable","name":"poolId","nameLocation":"5708:6:54","nodeType":"VariableDeclaration","scope":43934,"src":"5700:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43841,"name":"uint256","nodeType":"ElementaryTypeName","src":"5700:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43844,"mutability":"mutable","name":"swapXIn","nameLocation":"5729:7:54","nodeType":"VariableDeclaration","scope":43934,"src":"5724:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43843,"name":"bool","nodeType":"ElementaryTypeName","src":"5724:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43846,"mutability":"mutable","name":"amountIn","nameLocation":"5754:8:54","nodeType":"VariableDeclaration","scope":43934,"src":"5746:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43845,"name":"uint256","nodeType":"ElementaryTypeName","src":"5746:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5690:78:54"},"returnParameters":{"id":43848,"nodeType":"ParameterList","parameters":[],"src":"5778:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44003,"nodeType":"FunctionDefinition","src":"7270:1034:54","nodes":[],"body":{"id":44002,"nodeType":"Block","src":"7298:1006:54","nodes":[],"statements":[{"expression":{"id":43947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43937,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"7353:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":43944,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7419:4:54","typeDescriptions":{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AtomicV2_$44178","typeString":"contract AtomicV2"}],"id":43943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7411:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43942,"name":"address","nodeType":"ElementaryTypeName","src":"7411:7:54","typeDescriptions":{}}},"id":43945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7411:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":43939,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"7394:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43938,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"7384:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7384:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7401:9:54","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":43473,"src":"7384:26:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7384:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7353:72:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43948,"nodeType":"ExpressionStatement","src":"7353:72:54"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43949,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"7440:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43950,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"7471:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7440:61:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43978,"nodeType":"IfStatement","src":"7436:563:54","trueBody":{"id":43977,"nodeType":"Block","src":"7503:496:54","statements":[{"eventCall":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43953,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"7544:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":43954,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"7577:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7544:61:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43952,"name":"Loss","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43540,"src":"7522:4:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":43956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7522:97:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43957,"nodeType":"EmitStatement","src":"7517:102:54"},{"errorCall":{"arguments":[{"id":43959,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"7679:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43960,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"7727:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":43973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"7802:154:54","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":43971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":43965,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"7836:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7829:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":43963,"name":"int256","nodeType":"ElementaryTypeName","src":"7829:6:54","typeDescriptions":{}}},"id":43966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7829:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":43969,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"7905:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7898:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":43967,"name":"int256","nodeType":"ElementaryTypeName","src":"7898:6:54","typeDescriptions":{}}},"id":43970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7898:36:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7829:105:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":43972,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7803:153:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":43962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7773:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":43961,"name":"uint256","nodeType":"ElementaryTypeName","src":"7773:7:54","typeDescriptions":{}}},"id":43974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7773:201:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43958,"name":"UnprofitableArbitrage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43532,"src":"7640:21:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":43975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7640:348:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43976,"nodeType":"RevertStatement","src":"7633:355:54"}]}},{"assignments":[43980],"declarations":[{"constant":false,"id":43980,"mutability":"mutable","name":"profit","nameLocation":"8072:6:54","nodeType":"VariableDeclaration","scope":44002,"src":"8064:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43979,"name":"uint256","nodeType":"ElementaryTypeName","src":"8064:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43984,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43981,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"8093:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":43982,"name":"intermediateTokenYStartBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43561,"src":"8124:30:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8093:61:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8064:90:54"},{"expression":{"id":43987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43985,"name":"cumulativeProfit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43566,"src":"8164:16:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":43986,"name":"profit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43980,"src":"8184:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8164:26:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43988,"nodeType":"ExpressionStatement","src":"8164:26:54"},{"eventCall":{"arguments":[{"id":43990,"name":"profit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43980,"src":"8212:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43989,"name":"Profit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43536,"src":"8205:6:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":43991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8205:14:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43992,"nodeType":"EmitStatement","src":"8200:19:54"},{"expression":{"arguments":[{"expression":{"id":43997,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8256:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8260:6:54","memberName":"sender","nodeType":"MemberAccess","src":"8256:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43999,"name":"intermediateTokenYEndBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43563,"src":"8268:28:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43994,"name":"quote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43556,"src":"8240:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43993,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43483,"src":"8230:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$43483_$","typeString":"type(contract TokenLike)"}},"id":43995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8230:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$43483","typeString":"contract TokenLike"}},"id":43996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8247:8:54","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":43459,"src":"8230:25:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":44000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8230:67:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44001,"nodeType":"ExpressionStatement","src":"8230:67:54"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_payout","nameLocation":"7279:7:54","parameters":{"id":43935,"nodeType":"ParameterList","parameters":[],"src":"7286:2:54"},"returnParameters":{"id":43936,"nodeType":"ParameterList","parameters":[],"src":"7298:0:54"},"scope":44178,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44030,"nodeType":"FunctionDefinition","src":"8310:371:54","nodes":[],"body":{"id":44029,"nodeType":"Block","src":"8597:84:54","nodes":[],"statements":[{"expression":{"arguments":[{"id":44024,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44005,"src":"8648:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44025,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44007,"src":"8656:7:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":44026,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44009,"src":"8665:8:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":44021,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43552,"src":"8627:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44020,"name":"StrategyLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43443,"src":"8614:12:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyLike_$43443_$","typeString":"type(contract StrategyLike)"}},"id":44022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8614:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StrategyLike_$43443","typeString":"contract StrategyLike"}},"id":44023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8635:12:54","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":43424,"src":"8614:33:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,uint256,bytes memory)"}},"id":44027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8614:60:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"functionReturnParameters":44019,"id":44028,"nodeType":"Return","src":"8607:67:54"}]},"functionSelector":"3928ff97","implemented":true,"kind":"function","modifiers":[],"name":"simulateSwap","nameLocation":"8319:12:54","parameters":{"id":44010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44005,"mutability":"mutable","name":"poolId","nameLocation":"8349:6:54","nodeType":"VariableDeclaration","scope":44030,"src":"8341:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44004,"name":"uint256","nodeType":"ElementaryTypeName","src":"8341:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44007,"mutability":"mutable","name":"swapXIn","nameLocation":"8370:7:54","nodeType":"VariableDeclaration","scope":44030,"src":"8365:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44006,"name":"bool","nodeType":"ElementaryTypeName","src":"8365:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44009,"mutability":"mutable","name":"amountIn","nameLocation":"8395:8:54","nodeType":"VariableDeclaration","scope":44030,"src":"8387:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44008,"name":"uint256","nodeType":"ElementaryTypeName","src":"8387:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8331:78:54"},"returnParameters":{"id":44019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44012,"mutability":"mutable","name":"valid","nameLocation":"8473:5:54","nodeType":"VariableDeclaration","scope":44030,"src":"8468:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44011,"name":"bool","nodeType":"ElementaryTypeName","src":"8468:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44014,"mutability":"mutable","name":"estimatedOut","nameLocation":"8500:12:54","nodeType":"VariableDeclaration","scope":44030,"src":"8492:20:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44013,"name":"uint256","nodeType":"ElementaryTypeName","src":"8492:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44016,"mutability":"mutable","name":"estimatedPrice","nameLocation":"8534:14:54","nodeType":"VariableDeclaration","scope":44030,"src":"8526:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44015,"name":"uint256","nodeType":"ElementaryTypeName","src":"8526:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44018,"mutability":"mutable","name":"payload","nameLocation":"8575:7:54","nodeType":"VariableDeclaration","scope":44030,"src":"8562:20:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":44017,"name":"bytes","nodeType":"ElementaryTypeName","src":"8562:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8454:138:54"},"scope":44178,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":44045,"nodeType":"FunctionDefinition","src":"8687:108:54","nodes":[],"body":{"id":44044,"nodeType":"Block","src":"8750:45:54","nodes":[],"statements":[{"expression":{"id":44042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44037,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44035,"src":"8760:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44040,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44032,"src":"8782:5:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":44038,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"8769:8:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":44039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8778:3:54","memberName":"cdf","nodeType":"MemberAccess","referencedDeclaration":27280,"src":"8769:12:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":44041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8769:19:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8760:28:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":44043,"nodeType":"ExpressionStatement","src":"8760:28:54"}]},"functionSelector":"d0b71b1e","implemented":true,"kind":"function","modifiers":[],"name":"cdf","nameLocation":"8696:3:54","parameters":{"id":44033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44032,"mutability":"mutable","name":"input","nameLocation":"8707:5:54","nodeType":"VariableDeclaration","scope":44045,"src":"8700:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44031,"name":"int256","nodeType":"ElementaryTypeName","src":"8700:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8699:14:54"},"returnParameters":{"id":44036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44035,"mutability":"mutable","name":"output","nameLocation":"8742:6:54","nodeType":"VariableDeclaration","scope":44045,"src":"8735:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44034,"name":"int256","nodeType":"ElementaryTypeName","src":"8735:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8734:15:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44060,"nodeType":"FunctionDefinition","src":"8801:108:54","nodes":[],"body":{"id":44059,"nodeType":"Block","src":"8864:45:54","nodes":[],"statements":[{"expression":{"id":44057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44052,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44050,"src":"8874:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44055,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44047,"src":"8896:5:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":44053,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"8883:8:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":44054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8892:3:54","memberName":"pdf","nodeType":"MemberAccess","referencedDeclaration":27314,"src":"8883:12:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":44056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8883:19:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8874:28:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":44058,"nodeType":"ExpressionStatement","src":"8874:28:54"}]},"functionSelector":"d24ce6e5","implemented":true,"kind":"function","modifiers":[],"name":"pdf","nameLocation":"8810:3:54","parameters":{"id":44048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44047,"mutability":"mutable","name":"input","nameLocation":"8821:5:54","nodeType":"VariableDeclaration","scope":44060,"src":"8814:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44046,"name":"int256","nodeType":"ElementaryTypeName","src":"8814:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8813:14:54"},"returnParameters":{"id":44051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44050,"mutability":"mutable","name":"output","nameLocation":"8856:6:54","nodeType":"VariableDeclaration","scope":44060,"src":"8849:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44049,"name":"int256","nodeType":"ElementaryTypeName","src":"8849:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8848:15:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44075,"nodeType":"FunctionDefinition","src":"8915:108:54","nodes":[],"body":{"id":44074,"nodeType":"Block","src":"8978:45:54","nodes":[],"statements":[{"expression":{"id":44072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44067,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44065,"src":"8988:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44070,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9010:5:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":44068,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"8997:8:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":44069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9006:3:54","memberName":"ppf","nodeType":"MemberAccess","referencedDeclaration":27373,"src":"8997:12:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":44071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8997:19:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8988:28:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":44073,"nodeType":"ExpressionStatement","src":"8988:28:54"}]},"functionSelector":"3679723a","implemented":true,"kind":"function","modifiers":[],"name":"ppf","nameLocation":"8924:3:54","parameters":{"id":44063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44062,"mutability":"mutable","name":"input","nameLocation":"8935:5:54","nodeType":"VariableDeclaration","scope":44075,"src":"8928:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44061,"name":"int256","nodeType":"ElementaryTypeName","src":"8928:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8927:14:54"},"returnParameters":{"id":44066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44065,"mutability":"mutable","name":"output","nameLocation":"8970:6:54","nodeType":"VariableDeclaration","scope":44075,"src":"8963:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44064,"name":"int256","nodeType":"ElementaryTypeName","src":"8963:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8962:15:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44093,"nodeType":"FunctionDefinition","src":"9029:129:54","nodes":[],"body":{"id":44092,"nodeType":"Block","src":"9103:55:54","nodes":[],"statements":[{"expression":{"id":44090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44084,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44082,"src":"9113:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44087,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44077,"src":"9146:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44088,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44079,"src":"9149:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44085,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9117:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9135:10:54","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"9117:28:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":44089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9117:34:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9113:38:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44091,"nodeType":"ExpressionStatement","src":"9113:38:54"}]},"functionSelector":"e524f849","implemented":true,"kind":"function","modifiers":[],"name":"mulWadDown","nameLocation":"9038:10:54","parameters":{"id":44080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44077,"mutability":"mutable","name":"x","nameLocation":"9057:1:54","nodeType":"VariableDeclaration","scope":44093,"src":"9049:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44076,"name":"uint256","nodeType":"ElementaryTypeName","src":"9049:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44079,"mutability":"mutable","name":"y","nameLocation":"9068:1:54","nodeType":"VariableDeclaration","scope":44093,"src":"9060:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44078,"name":"uint256","nodeType":"ElementaryTypeName","src":"9060:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9048:22:54"},"returnParameters":{"id":44083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44082,"mutability":"mutable","name":"z","nameLocation":"9100:1:54","nodeType":"VariableDeclaration","scope":44093,"src":"9092:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44081,"name":"uint256","nodeType":"ElementaryTypeName","src":"9092:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9091:11:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44111,"nodeType":"FunctionDefinition","src":"9164:125:54","nodes":[],"body":{"id":44110,"nodeType":"Block","src":"9236:53:54","nodes":[],"statements":[{"expression":{"id":44108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44102,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44100,"src":"9246:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44105,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44095,"src":"9277:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44106,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44097,"src":"9280:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44103,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9250:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9268:8:54","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"9250:26:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":44107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9250:32:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9246:36:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44109,"nodeType":"ExpressionStatement","src":"9246:36:54"}]},"functionSelector":"ae9768a8","implemented":true,"kind":"function","modifiers":[],"name":"mulWadUp","nameLocation":"9173:8:54","parameters":{"id":44098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44095,"mutability":"mutable","name":"x","nameLocation":"9190:1:54","nodeType":"VariableDeclaration","scope":44111,"src":"9182:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44094,"name":"uint256","nodeType":"ElementaryTypeName","src":"9182:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44097,"mutability":"mutable","name":"y","nameLocation":"9201:1:54","nodeType":"VariableDeclaration","scope":44111,"src":"9193:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44096,"name":"uint256","nodeType":"ElementaryTypeName","src":"9193:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9181:22:54"},"returnParameters":{"id":44101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44100,"mutability":"mutable","name":"z","nameLocation":"9233:1:54","nodeType":"VariableDeclaration","scope":44111,"src":"9225:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44099,"name":"uint256","nodeType":"ElementaryTypeName","src":"9225:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9224:11:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44129,"nodeType":"FunctionDefinition","src":"9295:129:54","nodes":[],"body":{"id":44128,"nodeType":"Block","src":"9369:55:54","nodes":[],"statements":[{"expression":{"id":44126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44120,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44118,"src":"9379:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44123,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44113,"src":"9412:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44124,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"9415:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44121,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9383:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9401:10:54","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"9383:28:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":44125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9383:34:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9379:38:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44127,"nodeType":"ExpressionStatement","src":"9379:38:54"}]},"functionSelector":"37c6a44a","implemented":true,"kind":"function","modifiers":[],"name":"divWadDown","nameLocation":"9304:10:54","parameters":{"id":44116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44113,"mutability":"mutable","name":"x","nameLocation":"9323:1:54","nodeType":"VariableDeclaration","scope":44129,"src":"9315:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44112,"name":"uint256","nodeType":"ElementaryTypeName","src":"9315:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44115,"mutability":"mutable","name":"y","nameLocation":"9334:1:54","nodeType":"VariableDeclaration","scope":44129,"src":"9326:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44114,"name":"uint256","nodeType":"ElementaryTypeName","src":"9326:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9314:22:54"},"returnParameters":{"id":44119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44118,"mutability":"mutable","name":"z","nameLocation":"9366:1:54","nodeType":"VariableDeclaration","scope":44129,"src":"9358:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44117,"name":"uint256","nodeType":"ElementaryTypeName","src":"9358:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9357:11:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44147,"nodeType":"FunctionDefinition","src":"9430:125:54","nodes":[],"body":{"id":44146,"nodeType":"Block","src":"9502:53:54","nodes":[],"statements":[{"expression":{"id":44144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44138,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44136,"src":"9512:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44141,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"9543:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44142,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44133,"src":"9546:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44139,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9516:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9534:8:54","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"9516:26:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":44143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9516:32:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9512:36:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44145,"nodeType":"ExpressionStatement","src":"9512:36:54"}]},"functionSelector":"bd252d06","implemented":true,"kind":"function","modifiers":[],"name":"divWadUp","nameLocation":"9439:8:54","parameters":{"id":44134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44131,"mutability":"mutable","name":"x","nameLocation":"9456:1:54","nodeType":"VariableDeclaration","scope":44147,"src":"9448:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44130,"name":"uint256","nodeType":"ElementaryTypeName","src":"9448:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44133,"mutability":"mutable","name":"y","nameLocation":"9467:1:54","nodeType":"VariableDeclaration","scope":44147,"src":"9459:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44132,"name":"uint256","nodeType":"ElementaryTypeName","src":"9459:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9447:22:54"},"returnParameters":{"id":44137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44136,"mutability":"mutable","name":"z","nameLocation":"9499:1:54","nodeType":"VariableDeclaration","scope":44147,"src":"9491:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44135,"name":"uint256","nodeType":"ElementaryTypeName","src":"9491:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9490:11:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44162,"nodeType":"FunctionDefinition","src":"9561:101:54","nodes":[],"body":{"id":44161,"nodeType":"Block","src":"9615:47:54","nodes":[],"statements":[{"expression":{"id":44159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44154,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44152,"src":"9625:1:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44157,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44149,"src":"9653:1:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":44155,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9629:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9647:5:54","memberName":"lnWad","nodeType":"MemberAccess","referencedDeclaration":26541,"src":"9629:23:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":44158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9629:26:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9625:30:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":44160,"nodeType":"ExpressionStatement","src":"9625:30:54"}]},"functionSelector":"2d5b6cb9","implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9570:3:54","parameters":{"id":44150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44149,"mutability":"mutable","name":"x","nameLocation":"9581:1:54","nodeType":"VariableDeclaration","scope":44162,"src":"9574:8:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44148,"name":"int256","nodeType":"ElementaryTypeName","src":"9574:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9573:10:54"},"returnParameters":{"id":44153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44152,"mutability":"mutable","name":"z","nameLocation":"9612:1:54","nodeType":"VariableDeclaration","scope":44162,"src":"9605:8:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44151,"name":"int256","nodeType":"ElementaryTypeName","src":"9605:6:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9604:10:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":44177,"nodeType":"FunctionDefinition","src":"9668:103:54","nodes":[],"body":{"id":44176,"nodeType":"Block","src":"9725:46:54","nodes":[],"statements":[{"expression":{"id":44174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44169,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44167,"src":"9735:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44172,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44164,"src":"9762:1:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44170,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"9739:17:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9757:4:54","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":26589,"src":"9739:22:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":44173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9739:25:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9735:29:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44175,"nodeType":"ExpressionStatement","src":"9735:29:54"}]},"functionSelector":"677342ce","implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"9677:4:54","parameters":{"id":44165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44164,"mutability":"mutable","name":"x","nameLocation":"9690:1:54","nodeType":"VariableDeclaration","scope":44177,"src":"9682:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44163,"name":"uint256","nodeType":"ElementaryTypeName","src":"9682:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9681:11:54"},"returnParameters":{"id":44168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44167,"mutability":"mutable","name":"z","nameLocation":"9722:1:54","nodeType":"VariableDeclaration","scope":44177,"src":"9714:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44166,"name":"uint256","nodeType":"ElementaryTypeName","src":"9714:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9713:11:54"},"scope":44178,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"AtomicV2","contractDependencies":[],"contractKind":"contract","documentation":{"id":43484,"nodeType":"StructuredDocumentation","src":"1266:154:54","text":"@dev Takes Y tokens from Arbitrageur, swaps on either LEX or DEX, then swaps on the opposite exchange and returns the output Y tokens to Arbitrageur."},"fullyImplemented":true,"linearizedBaseContracts":[44178],"name":"AtomicV2","nameLocation":"1429:8:54","scope":44179,"usedErrors":[26761,26763,26765,27736,43496,43502,43508,43514,43524,43532,43610],"usedEvents":[43536,43540,43546]}],"license":"UNLICENSED"},"id":54} \ No newline at end of file diff --git a/out/Base.sol/CommonBase.json b/out/Base.sol/CommonBase.json deleted file mode 100644 index fc8658e8..00000000 --- a/out/Base.sol/CommonBase.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/forge-std/src/Base.sol\":\"CommonBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/forge-std/src/Base.sol":"CommonBase"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/forge-std/src/Base.sol","id":1856,"exportedSymbols":{"CommonBase":[1840],"ScriptBase":[1855],"StdStorage":[6088],"TestBase":[1843],"Vm":[9352],"VmSafe":[9027]},"nodeType":"SourceUnit","src":"32:1422:1","nodes":[{"id":1788,"nodeType":"PragmaDirective","src":"32:31:1","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":1790,"nodeType":"ImportDirective","src":"65:44:1","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":1856,"sourceUnit":7523,"symbolAliases":[{"foreign":{"id":1789,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6088,"src":"73:10:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1793,"nodeType":"ImportDirective","src":"110:36:1","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":1856,"sourceUnit":9353,"symbolAliases":[{"foreign":{"id":1791,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9352,"src":"118:2:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":1792,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9027,"src":"122:6:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1840,"nodeType":"ContractDefinition","src":"148:960:1","nodes":[{"id":1807,"nodeType":"VariableDeclaration","src":"254:94:1","nodes":[],"constant":true,"mutability":"constant","name":"VM_ADDRESS","nameLocation":"280:10:1","scope":1840,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1794,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":1802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"327:17:1","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":1801,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"317:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"317:28:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"309:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1799,"name":"uint256","nodeType":"ElementaryTypeName","src":"309:7:1","typeDescriptions":{}}},"id":1804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"309:37:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"301:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":1797,"name":"uint160","nodeType":"ElementaryTypeName","src":"301:7:1","typeDescriptions":{}}},"id":1805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"301:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1796,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"293:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1795,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:1","typeDescriptions":{}}},"id":1806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"293:55:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":1810,"nodeType":"VariableDeclaration","src":"438:78:1","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE","nameLocation":"464:7:1","scope":1840,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1808,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":1809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"474:42:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"internal"},{"id":1824,"nodeType":"VariableDeclaration","src":"619:105:1","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_SENDER","nameLocation":"645:14:1","scope":1840,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1811,"name":"address","nodeType":"ElementaryTypeName","src":"619:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"666f756e6472792064656661756c742063616c6c6572","id":1819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"696:24:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""},"value":"foundry default caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""}],"id":1818,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"686:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"686:35:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1817,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"678:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1816,"name":"uint256","nodeType":"ElementaryTypeName","src":"678:7:1","typeDescriptions":{}}},"id":1821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"678:44:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"670:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":1814,"name":"uint160","nodeType":"ElementaryTypeName","src":"670:7:1","typeDescriptions":{}}},"id":1822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"670:53:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"662:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1812,"name":"address","nodeType":"ElementaryTypeName","src":"662:7:1","typeDescriptions":{}}},"id":1823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"662:62:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":1827,"nodeType":"VariableDeclaration","src":"799:92:1","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_TEST_CONTRACT","nameLocation":"825:21:1","scope":1840,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1825,"name":"address","nodeType":"ElementaryTypeName","src":"799:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307835363135644542373938424233453464466130313339644661316233443433334363323362373266","id":1826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"849:42:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f"},"visibility":"internal"},{"id":1830,"nodeType":"VariableDeclaration","src":"898:126:1","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"924:11:1","scope":1840,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1828,"name":"uint256","nodeType":"ElementaryTypeName","src":"898:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":1829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"946:78:1","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"internal"},{"id":1836,"nodeType":"VariableDeclaration","src":"1031:40:1","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"1052:2:1","scope":1840,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"},"typeName":{"id":1832,"nodeType":"UserDefinedTypeName","pathNode":{"id":1831,"name":"Vm","nameLocations":["1031:2:1"],"nodeType":"IdentifierPath","referencedDeclaration":9352,"src":"1031:2:1"},"referencedDeclaration":9352,"src":"1031:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"value":{"arguments":[{"id":1834,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1807,"src":"1060:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1833,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9352,"src":"1057:2:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$9352_$","typeString":"type(contract Vm)"}},"id":1835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1057:14:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"visibility":"internal"},{"id":1839,"nodeType":"VariableDeclaration","src":"1077:28:1","nodes":[],"constant":false,"mutability":"mutable","name":"stdstore","nameLocation":"1097:8:1","scope":1840,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage","typeString":"struct StdStorage"},"typeName":{"id":1838,"nodeType":"UserDefinedTypeName","pathNode":{"id":1837,"name":"StdStorage","nameLocations":["1077:10:1"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"1077:10:1"},"referencedDeclaration":6088,"src":"1077:10:1","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"CommonBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[1840],"name":"CommonBase","nameLocation":"166:10:1","scope":1856,"usedErrors":[],"usedEvents":[]},{"id":1843,"nodeType":"ContractDefinition","src":"1110:43:1","nodes":[],"abstract":true,"baseContracts":[{"baseName":{"id":1841,"name":"CommonBase","nameLocations":["1140:10:1"],"nodeType":"IdentifierPath","referencedDeclaration":1840,"src":"1140:10:1"},"id":1842,"nodeType":"InheritanceSpecifier","src":"1140:10:1"}],"canonicalName":"TestBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[1843,1840],"name":"TestBase","nameLocation":"1128:8:1","scope":1856,"usedErrors":[],"usedEvents":[]},{"id":1855,"nodeType":"ContractDefinition","src":"1155:298:1","nodes":[{"id":1848,"nodeType":"VariableDeclaration","src":"1305:86:1","nodes":[],"constant":true,"mutability":"constant","name":"CREATE2_FACTORY","nameLocation":"1331:15:1","scope":1855,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1846,"name":"address","nodeType":"ElementaryTypeName","src":"1305:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":1847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1349:42:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"internal"},{"id":1854,"nodeType":"VariableDeclaration","src":"1398:52:1","nodes":[],"constant":true,"mutability":"constant","name":"vmSafe","nameLocation":"1423:6:1","scope":1855,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"},"typeName":{"id":1850,"nodeType":"UserDefinedTypeName","pathNode":{"id":1849,"name":"VmSafe","nameLocations":["1398:6:1"],"nodeType":"IdentifierPath","referencedDeclaration":9027,"src":"1398:6:1"},"referencedDeclaration":9027,"src":"1398:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"value":{"arguments":[{"id":1852,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1807,"src":"1439:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1851,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9027,"src":"1432:6:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$9027_$","typeString":"type(contract VmSafe)"}},"id":1853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1432:18:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":1844,"name":"CommonBase","nameLocations":["1187:10:1"],"nodeType":"IdentifierPath","referencedDeclaration":1840,"src":"1187:10:1"},"id":1845,"nodeType":"InheritanceSpecifier","src":"1187:10:1"}],"canonicalName":"ScriptBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[1855,1840],"name":"ScriptBase","nameLocation":"1173:10:1","scope":1856,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":1} \ No newline at end of file diff --git a/out/Base.sol/ScriptBase.json b/out/Base.sol/ScriptBase.json deleted file mode 100644 index 6b9bff60..00000000 --- a/out/Base.sol/ScriptBase.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/forge-std/src/Base.sol\":\"ScriptBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/forge-std/src/Base.sol":"ScriptBase"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/forge-std/src/Base.sol","id":1856,"exportedSymbols":{"CommonBase":[1840],"ScriptBase":[1855],"StdStorage":[6088],"TestBase":[1843],"Vm":[9352],"VmSafe":[9027]},"nodeType":"SourceUnit","src":"32:1422:1","nodes":[{"id":1788,"nodeType":"PragmaDirective","src":"32:31:1","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":1790,"nodeType":"ImportDirective","src":"65:44:1","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":1856,"sourceUnit":7523,"symbolAliases":[{"foreign":{"id":1789,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6088,"src":"73:10:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1793,"nodeType":"ImportDirective","src":"110:36:1","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":1856,"sourceUnit":9353,"symbolAliases":[{"foreign":{"id":1791,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9352,"src":"118:2:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":1792,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9027,"src":"122:6:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1840,"nodeType":"ContractDefinition","src":"148:960:1","nodes":[{"id":1807,"nodeType":"VariableDeclaration","src":"254:94:1","nodes":[],"constant":true,"mutability":"constant","name":"VM_ADDRESS","nameLocation":"280:10:1","scope":1840,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1794,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":1802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"327:17:1","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":1801,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"317:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"317:28:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"309:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1799,"name":"uint256","nodeType":"ElementaryTypeName","src":"309:7:1","typeDescriptions":{}}},"id":1804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"309:37:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"301:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":1797,"name":"uint160","nodeType":"ElementaryTypeName","src":"301:7:1","typeDescriptions":{}}},"id":1805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"301:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1796,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"293:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1795,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:1","typeDescriptions":{}}},"id":1806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"293:55:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":1810,"nodeType":"VariableDeclaration","src":"438:78:1","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE","nameLocation":"464:7:1","scope":1840,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1808,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":1809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"474:42:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"internal"},{"id":1824,"nodeType":"VariableDeclaration","src":"619:105:1","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_SENDER","nameLocation":"645:14:1","scope":1840,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1811,"name":"address","nodeType":"ElementaryTypeName","src":"619:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"666f756e6472792064656661756c742063616c6c6572","id":1819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"696:24:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""},"value":"foundry default caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""}],"id":1818,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"686:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"686:35:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1817,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"678:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1816,"name":"uint256","nodeType":"ElementaryTypeName","src":"678:7:1","typeDescriptions":{}}},"id":1821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"678:44:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"670:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":1814,"name":"uint160","nodeType":"ElementaryTypeName","src":"670:7:1","typeDescriptions":{}}},"id":1822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"670:53:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"662:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1812,"name":"address","nodeType":"ElementaryTypeName","src":"662:7:1","typeDescriptions":{}}},"id":1823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"662:62:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":1827,"nodeType":"VariableDeclaration","src":"799:92:1","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_TEST_CONTRACT","nameLocation":"825:21:1","scope":1840,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1825,"name":"address","nodeType":"ElementaryTypeName","src":"799:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307835363135644542373938424233453464466130313339644661316233443433334363323362373266","id":1826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"849:42:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f"},"visibility":"internal"},{"id":1830,"nodeType":"VariableDeclaration","src":"898:126:1","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"924:11:1","scope":1840,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1828,"name":"uint256","nodeType":"ElementaryTypeName","src":"898:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":1829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"946:78:1","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"internal"},{"id":1836,"nodeType":"VariableDeclaration","src":"1031:40:1","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"1052:2:1","scope":1840,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"},"typeName":{"id":1832,"nodeType":"UserDefinedTypeName","pathNode":{"id":1831,"name":"Vm","nameLocations":["1031:2:1"],"nodeType":"IdentifierPath","referencedDeclaration":9352,"src":"1031:2:1"},"referencedDeclaration":9352,"src":"1031:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"value":{"arguments":[{"id":1834,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1807,"src":"1060:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1833,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9352,"src":"1057:2:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$9352_$","typeString":"type(contract Vm)"}},"id":1835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1057:14:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"visibility":"internal"},{"id":1839,"nodeType":"VariableDeclaration","src":"1077:28:1","nodes":[],"constant":false,"mutability":"mutable","name":"stdstore","nameLocation":"1097:8:1","scope":1840,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage","typeString":"struct StdStorage"},"typeName":{"id":1838,"nodeType":"UserDefinedTypeName","pathNode":{"id":1837,"name":"StdStorage","nameLocations":["1077:10:1"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"1077:10:1"},"referencedDeclaration":6088,"src":"1077:10:1","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"CommonBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[1840],"name":"CommonBase","nameLocation":"166:10:1","scope":1856,"usedErrors":[],"usedEvents":[]},{"id":1843,"nodeType":"ContractDefinition","src":"1110:43:1","nodes":[],"abstract":true,"baseContracts":[{"baseName":{"id":1841,"name":"CommonBase","nameLocations":["1140:10:1"],"nodeType":"IdentifierPath","referencedDeclaration":1840,"src":"1140:10:1"},"id":1842,"nodeType":"InheritanceSpecifier","src":"1140:10:1"}],"canonicalName":"TestBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[1843,1840],"name":"TestBase","nameLocation":"1128:8:1","scope":1856,"usedErrors":[],"usedEvents":[]},{"id":1855,"nodeType":"ContractDefinition","src":"1155:298:1","nodes":[{"id":1848,"nodeType":"VariableDeclaration","src":"1305:86:1","nodes":[],"constant":true,"mutability":"constant","name":"CREATE2_FACTORY","nameLocation":"1331:15:1","scope":1855,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1846,"name":"address","nodeType":"ElementaryTypeName","src":"1305:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":1847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1349:42:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"internal"},{"id":1854,"nodeType":"VariableDeclaration","src":"1398:52:1","nodes":[],"constant":true,"mutability":"constant","name":"vmSafe","nameLocation":"1423:6:1","scope":1855,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"},"typeName":{"id":1850,"nodeType":"UserDefinedTypeName","pathNode":{"id":1849,"name":"VmSafe","nameLocations":["1398:6:1"],"nodeType":"IdentifierPath","referencedDeclaration":9027,"src":"1398:6:1"},"referencedDeclaration":9027,"src":"1398:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"value":{"arguments":[{"id":1852,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1807,"src":"1439:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1851,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9027,"src":"1432:6:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$9027_$","typeString":"type(contract VmSafe)"}},"id":1853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1432:18:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":1844,"name":"CommonBase","nameLocations":["1187:10:1"],"nodeType":"IdentifierPath","referencedDeclaration":1840,"src":"1187:10:1"},"id":1845,"nodeType":"InheritanceSpecifier","src":"1187:10:1"}],"canonicalName":"ScriptBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[1855,1840],"name":"ScriptBase","nameLocation":"1173:10:1","scope":1856,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":1} \ No newline at end of file diff --git a/out/Base.sol/TestBase.json b/out/Base.sol/TestBase.json deleted file mode 100644 index 0988ad74..00000000 --- a/out/Base.sol/TestBase.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/forge-std/src/Base.sol\":\"TestBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/forge-std/src/Base.sol":"TestBase"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/forge-std/src/Base.sol","id":1856,"exportedSymbols":{"CommonBase":[1840],"ScriptBase":[1855],"StdStorage":[6088],"TestBase":[1843],"Vm":[9352],"VmSafe":[9027]},"nodeType":"SourceUnit","src":"32:1422:1","nodes":[{"id":1788,"nodeType":"PragmaDirective","src":"32:31:1","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":1790,"nodeType":"ImportDirective","src":"65:44:1","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":1856,"sourceUnit":7523,"symbolAliases":[{"foreign":{"id":1789,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6088,"src":"73:10:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1793,"nodeType":"ImportDirective","src":"110:36:1","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":1856,"sourceUnit":9353,"symbolAliases":[{"foreign":{"id":1791,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9352,"src":"118:2:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":1792,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9027,"src":"122:6:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1840,"nodeType":"ContractDefinition","src":"148:960:1","nodes":[{"id":1807,"nodeType":"VariableDeclaration","src":"254:94:1","nodes":[],"constant":true,"mutability":"constant","name":"VM_ADDRESS","nameLocation":"280:10:1","scope":1840,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1794,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":1802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"327:17:1","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":1801,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"317:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"317:28:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"309:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1799,"name":"uint256","nodeType":"ElementaryTypeName","src":"309:7:1","typeDescriptions":{}}},"id":1804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"309:37:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"301:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":1797,"name":"uint160","nodeType":"ElementaryTypeName","src":"301:7:1","typeDescriptions":{}}},"id":1805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"301:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1796,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"293:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1795,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:1","typeDescriptions":{}}},"id":1806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"293:55:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":1810,"nodeType":"VariableDeclaration","src":"438:78:1","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE","nameLocation":"464:7:1","scope":1840,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1808,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":1809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"474:42:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"internal"},{"id":1824,"nodeType":"VariableDeclaration","src":"619:105:1","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_SENDER","nameLocation":"645:14:1","scope":1840,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1811,"name":"address","nodeType":"ElementaryTypeName","src":"619:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"666f756e6472792064656661756c742063616c6c6572","id":1819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"696:24:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""},"value":"foundry default caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""}],"id":1818,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"686:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"686:35:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1817,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"678:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1816,"name":"uint256","nodeType":"ElementaryTypeName","src":"678:7:1","typeDescriptions":{}}},"id":1821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"678:44:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"670:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":1814,"name":"uint160","nodeType":"ElementaryTypeName","src":"670:7:1","typeDescriptions":{}}},"id":1822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"670:53:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"662:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1812,"name":"address","nodeType":"ElementaryTypeName","src":"662:7:1","typeDescriptions":{}}},"id":1823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"662:62:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":1827,"nodeType":"VariableDeclaration","src":"799:92:1","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_TEST_CONTRACT","nameLocation":"825:21:1","scope":1840,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1825,"name":"address","nodeType":"ElementaryTypeName","src":"799:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307835363135644542373938424233453464466130313339644661316233443433334363323362373266","id":1826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"849:42:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f"},"visibility":"internal"},{"id":1830,"nodeType":"VariableDeclaration","src":"898:126:1","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"924:11:1","scope":1840,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1828,"name":"uint256","nodeType":"ElementaryTypeName","src":"898:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":1829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"946:78:1","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"internal"},{"id":1836,"nodeType":"VariableDeclaration","src":"1031:40:1","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"1052:2:1","scope":1840,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"},"typeName":{"id":1832,"nodeType":"UserDefinedTypeName","pathNode":{"id":1831,"name":"Vm","nameLocations":["1031:2:1"],"nodeType":"IdentifierPath","referencedDeclaration":9352,"src":"1031:2:1"},"referencedDeclaration":9352,"src":"1031:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"value":{"arguments":[{"id":1834,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1807,"src":"1060:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1833,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9352,"src":"1057:2:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$9352_$","typeString":"type(contract Vm)"}},"id":1835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1057:14:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"visibility":"internal"},{"id":1839,"nodeType":"VariableDeclaration","src":"1077:28:1","nodes":[],"constant":false,"mutability":"mutable","name":"stdstore","nameLocation":"1097:8:1","scope":1840,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage","typeString":"struct StdStorage"},"typeName":{"id":1838,"nodeType":"UserDefinedTypeName","pathNode":{"id":1837,"name":"StdStorage","nameLocations":["1077:10:1"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"1077:10:1"},"referencedDeclaration":6088,"src":"1077:10:1","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"CommonBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[1840],"name":"CommonBase","nameLocation":"166:10:1","scope":1856,"usedErrors":[],"usedEvents":[]},{"id":1843,"nodeType":"ContractDefinition","src":"1110:43:1","nodes":[],"abstract":true,"baseContracts":[{"baseName":{"id":1841,"name":"CommonBase","nameLocations":["1140:10:1"],"nodeType":"IdentifierPath","referencedDeclaration":1840,"src":"1140:10:1"},"id":1842,"nodeType":"InheritanceSpecifier","src":"1140:10:1"}],"canonicalName":"TestBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[1843,1840],"name":"TestBase","nameLocation":"1128:8:1","scope":1856,"usedErrors":[],"usedEvents":[]},{"id":1855,"nodeType":"ContractDefinition","src":"1155:298:1","nodes":[{"id":1848,"nodeType":"VariableDeclaration","src":"1305:86:1","nodes":[],"constant":true,"mutability":"constant","name":"CREATE2_FACTORY","nameLocation":"1331:15:1","scope":1855,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1846,"name":"address","nodeType":"ElementaryTypeName","src":"1305:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":1847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1349:42:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"internal"},{"id":1854,"nodeType":"VariableDeclaration","src":"1398:52:1","nodes":[],"constant":true,"mutability":"constant","name":"vmSafe","nameLocation":"1423:6:1","scope":1855,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"},"typeName":{"id":1850,"nodeType":"UserDefinedTypeName","pathNode":{"id":1849,"name":"VmSafe","nameLocations":["1398:6:1"],"nodeType":"IdentifierPath","referencedDeclaration":9027,"src":"1398:6:1"},"referencedDeclaration":9027,"src":"1398:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"value":{"arguments":[{"id":1852,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1807,"src":"1439:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1851,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9027,"src":"1432:6:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$9027_$","typeString":"type(contract VmSafe)"}},"id":1853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1432:18:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":1844,"name":"CommonBase","nameLocations":["1187:10:1"],"nodeType":"IdentifierPath","referencedDeclaration":1840,"src":"1187:10:1"},"id":1845,"nodeType":"InheritanceSpecifier","src":"1187:10:1"}],"canonicalName":"ScriptBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[1855,1840],"name":"ScriptBase","nameLocation":"1173:10:1","scope":1856,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":1} \ No newline at end of file diff --git a/out/BisectionLib.sol/BisectionLib.json b/out/BisectionLib.sol/BisectionLib.json deleted file mode 100644 index 12668434..00000000 --- a/out/BisectionLib.sol/BisectionLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/solvers/BisectionLib.sol","id":31119,"exportedSymbols":{"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"bisection":[31118]},"nodeType":"SourceUnit","src":"45:2917:33","nodes":[{"id":30978,"nodeType":"PragmaDirective","src":"45:24:33","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":30985,"nodeType":"ErrorDefinition","src":"141:63:33","nodes":[],"documentation":{"id":30979,"nodeType":"StructuredDocumentation","src":"71:70:33","text":"@dev Thrown when the lower bound is greater than the upper bound."},"errorSelector":"6105bfb6","name":"BisectionLib_InvalidBounds","nameLocation":"147:26:33","parameters":{"id":30984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30981,"mutability":"mutable","name":"lower","nameLocation":"182:5:33","nodeType":"VariableDeclaration","scope":30985,"src":"174:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30980,"name":"uint256","nodeType":"ElementaryTypeName","src":"174:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30983,"mutability":"mutable","name":"upper","nameLocation":"197:5:33","nodeType":"VariableDeclaration","scope":30985,"src":"189:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30982,"name":"uint256","nodeType":"ElementaryTypeName","src":"189:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"173:30:33"}},{"id":30992,"nodeType":"ErrorDefinition","src":"313:77:33","nodes":[],"documentation":{"id":30986,"nodeType":"StructuredDocumentation","src":"205:108:33","text":"@dev Thrown when the result of the function `fx` for each input, `upper` and `lower`, is the same sign."},"errorSelector":"1bc6f974","name":"BisectionLib_RootOutsideBounds","nameLocation":"319:30:33","parameters":{"id":30991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30988,"mutability":"mutable","name":"lowerResult","nameLocation":"357:11:33","nodeType":"VariableDeclaration","scope":30992,"src":"350:18:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30987,"name":"int256","nodeType":"ElementaryTypeName","src":"350:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":30990,"mutability":"mutable","name":"upperResult","nameLocation":"377:11:33","nodeType":"VariableDeclaration","scope":30992,"src":"370:18:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30989,"name":"int256","nodeType":"ElementaryTypeName","src":"370:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"349:40:33"}},{"id":31118,"nodeType":"FunctionDefinition","src":"1009:1952:33","nodes":[],"body":{"id":31117,"nodeType":"Block","src":"1229:1732:33","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31018,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30997,"src":"1239:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":31019,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30999,"src":"1247:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1239:13:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31026,"nodeType":"IfStatement","src":"1235:66:33","trueBody":{"errorCall":{"arguments":[{"id":31022,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30997,"src":"1288:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31023,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30999,"src":"1295:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31021,"name":"BisectionLib_InvalidBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30985,"src":"1261:26:33","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":31024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1261:40:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31025,"nodeType":"RevertStatement","src":"1254:47:33"}},{"assignments":[31028],"declarations":[{"constant":false,"id":31028,"mutability":"mutable","name":"lowerOutput","nameLocation":"1618:11:33","nodeType":"VariableDeclaration","scope":31117,"src":"1611:18:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":31027,"name":"int256","nodeType":"ElementaryTypeName","src":"1611:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":31033,"initialValue":{"arguments":[{"id":31030,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30995,"src":"1635:4:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":31031,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30997,"src":"1641:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31029,"name":"fx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31013,"src":"1632:2:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$","typeString":"function (bytes memory,uint256) pure returns (int256)"}},"id":31032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1632:15:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"1611:36:33"},{"assignments":[31035],"declarations":[{"constant":false,"id":31035,"mutability":"mutable","name":"upperOutput","nameLocation":"1660:11:33","nodeType":"VariableDeclaration","scope":31117,"src":"1653:18:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":31034,"name":"int256","nodeType":"ElementaryTypeName","src":"1653:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":31040,"initialValue":{"arguments":[{"id":31037,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30995,"src":"1677:4:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":31038,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30999,"src":"1683:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31036,"name":"fx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31013,"src":"1674:2:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$","typeString":"function (bytes memory,uint256) pure returns (int256)"}},"id":31039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1674:15:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"1653:36:33"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":31045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":31043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31041,"name":"lowerOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31028,"src":"1699:11:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":31042,"name":"upperOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31035,"src":"1713:11:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1699:25:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":31044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1727:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1699:29:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31052,"nodeType":"IfStatement","src":"1695:115:33","trueBody":{"id":31051,"nodeType":"Block","src":"1730:80:33","statements":[{"errorCall":{"arguments":[{"id":31047,"name":"lowerOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31028,"src":"1778:11:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":31048,"name":"upperOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31035,"src":"1791:11:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":31046,"name":"BisectionLib_RootOutsideBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30992,"src":"1747:30:33","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_int256_$_t_int256_$returns$__$","typeString":"function (int256,int256) pure"}},"id":31049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1747:56:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31050,"nodeType":"RevertStatement","src":"1740:63:33"}]}},{"assignments":[31054],"declarations":[{"constant":false,"id":31054,"mutability":"mutable","name":"distance","nameLocation":"1873:8:33","nodeType":"VariableDeclaration","scope":31117,"src":"1865:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31053,"name":"uint256","nodeType":"ElementaryTypeName","src":"1865:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31058,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31055,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30999,"src":"1884:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":31056,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30997,"src":"1892:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1884:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1865:32:33"},{"assignments":[31060],"declarations":[{"constant":false,"id":31060,"mutability":"mutable","name":"iterations","nameLocation":"1912:10:33","nodeType":"VariableDeclaration","scope":31117,"src":"1904:18:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31059,"name":"uint256","nodeType":"ElementaryTypeName","src":"1904:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31061,"nodeType":"VariableDeclarationStatement","src":"1904:18:33"},{"body":{"id":31108,"nodeType":"Block","src":"1981:920:33","statements":[{"expression":{"id":31069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31062,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31016,"src":"2115:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31063,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30997,"src":"2123:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":31064,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30999,"src":"2131:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2123:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":31066,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2122:15:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":31067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2140:1:33","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2122:19:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2115:26:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31070,"nodeType":"ExpressionStatement","src":"2115:26:33"},{"assignments":[31072],"declarations":[{"constant":false,"id":31072,"mutability":"mutable","name":"output","nameLocation":"2159:6:33","nodeType":"VariableDeclaration","scope":31108,"src":"2152:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":31071,"name":"int256","nodeType":"ElementaryTypeName","src":"2152:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":31077,"initialValue":{"arguments":[{"id":31074,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30995,"src":"2171:4:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":31075,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31016,"src":"2177:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31073,"name":"fx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31013,"src":"2168:2:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$","typeString":"function (bytes memory,uint256) pure returns (int256)"}},"id":31076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2168:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"2152:30:33"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":31082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":31080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31078,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31072,"src":"2355:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":31079,"name":"lowerOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31028,"src":"2364:11:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2355:20:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":31081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2379:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2355:25:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":31096,"nodeType":"Block","src":"2512:212:33","statements":[{"expression":{"id":31090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31088,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30997,"src":"2526:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":31089,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31016,"src":"2534:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2526:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31091,"nodeType":"ExpressionStatement","src":"2526:12:33"},{"expression":{"id":31094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31092,"name":"lowerOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31028,"src":"2639:11:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":31093,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31072,"src":"2653:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2639:20:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":31095,"nodeType":"ExpressionStatement","src":"2639:20:33"}]},"id":31097,"nodeType":"IfStatement","src":"2351:373:33","trueBody":{"id":31087,"nodeType":"Block","src":"2382:124:33","statements":[{"expression":{"id":31085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31083,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30999,"src":"2396:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":31084,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31016,"src":"2404:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2396:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31086,"nodeType":"ExpressionStatement","src":"2396:12:33"}]}},{"expression":{"id":31102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31098,"name":"distance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31054,"src":"2786:8:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31099,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30999,"src":"2797:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":31100,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30997,"src":"2805:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2797:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2786:24:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31103,"nodeType":"ExpressionStatement","src":"2786:24:33"},{"id":31107,"nodeType":"UncheckedBlock","src":"2821:74:33","statements":[{"expression":{"id":31105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2845:12:33","subExpression":{"id":31104,"name":"iterations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31060,"src":"2845:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31106,"nodeType":"ExpressionStatement","src":"2845:12:33"}]}]},"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":31115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31109,"name":"distance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31054,"src":"2909:8:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":31110,"name":"epsilon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31001,"src":"2920:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2909:18:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31112,"name":"iterations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31060,"src":"2931:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":31113,"name":"maxIterations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31003,"src":"2944:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2931:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2909:48:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31116,"nodeType":"DoWhileStatement","src":"1978:981:33"}]},"documentation":{"id":30993,"nodeType":"StructuredDocumentation","src":"392:616:33","text":" @notice\n The function `fx` must be continuous and monotonic.\n @dev\n Bisection is a method of finding the root of a function.\n The root is the point where the function crosses the x-axis.\n @param args The arguments to pass to the function `fx`.\n @param lower The lower bound of the root to find.\n @param upper The upper bound of the root to find.\n @param epsilon The maximum distance between the lower and upper results.\n @param maxIterations The maximum amount of loop iterations to run.\n @param fx The function to find the root of.\n @return root The root of the function `fx`."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"bisection","nameLocation":"1018:9:33","parameters":{"id":31014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30995,"mutability":"mutable","name":"args","nameLocation":"1046:4:33","nodeType":"VariableDeclaration","scope":31118,"src":"1033:17:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":30994,"name":"bytes","nodeType":"ElementaryTypeName","src":"1033:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":30997,"mutability":"mutable","name":"lower","nameLocation":"1064:5:33","nodeType":"VariableDeclaration","scope":31118,"src":"1056:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30996,"name":"uint256","nodeType":"ElementaryTypeName","src":"1056:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30999,"mutability":"mutable","name":"upper","nameLocation":"1083:5:33","nodeType":"VariableDeclaration","scope":31118,"src":"1075:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30998,"name":"uint256","nodeType":"ElementaryTypeName","src":"1075:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31001,"mutability":"mutable","name":"epsilon","nameLocation":"1102:7:33","nodeType":"VariableDeclaration","scope":31118,"src":"1094:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31000,"name":"uint256","nodeType":"ElementaryTypeName","src":"1094:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31003,"mutability":"mutable","name":"maxIterations","nameLocation":"1123:13:33","nodeType":"VariableDeclaration","scope":31118,"src":"1115:21:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31002,"name":"uint256","nodeType":"ElementaryTypeName","src":"1115:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31013,"mutability":"mutable","name":"fx","nameLocation":"1196:2:33","nodeType":"VariableDeclaration","scope":31118,"src":"1142:56:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$","typeString":"function (bytes,uint256) pure returns (int256)"},"typeName":{"id":31012,"nodeType":"FunctionTypeName","parameterTypes":{"id":31008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31005,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31012,"src":"1152:12:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":31004,"name":"bytes","nodeType":"ElementaryTypeName","src":"1152:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":31007,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31012,"src":"1165:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31006,"name":"uint256","nodeType":"ElementaryTypeName","src":"1165:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1151:22:33"},"returnParameterTypes":{"id":31011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31010,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31012,"src":"1188:6:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":31009,"name":"int256","nodeType":"ElementaryTypeName","src":"1188:6:33","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1187:8:33"},"src":"1142:56:33","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$","typeString":"function (bytes,uint256) pure returns (int256)"},"visibility":"internal"},"visibility":"internal"}],"src":"1027:173:33"},"returnParameters":{"id":31017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31016,"mutability":"mutable","name":"root","nameLocation":"1223:4:33","nodeType":"VariableDeclaration","scope":31118,"src":"1215:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31015,"name":"uint256","nodeType":"ElementaryTypeName","src":"1215:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1214:14:33"},"scope":31119,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"license":"GPL-3.0-or-later"},"id":33} \ No newline at end of file diff --git a/out/Coin.sol/Coin.json b/out/Coin.sol/Coin.json deleted file mode 100644 index a5d4c304..00000000 --- a/out/Coin.sol/Coin.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"initialSupply","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60e060408181523462000492578162000f8c8038038091620000228285620004c9565b8339602093849181010312620004925751815190620000418262000497565b6004938483526321b7b4b760e11b81840152835191620000618362000497565b8583526321a7a4a760e11b8284015283516001600160401b03949093908585116200047d5760009480620000968754620004ed565b92601f938481116200042c575b508690848311600114620003c4578892620003b8575b50508160011b916000199060031b1c19161785555b815190868211620003a5578190600193620000ea8554620004ed565b82811162000350575b5086918311600114620002ec578792620002e0575b5050600019600383901b1c191690821b1781555b60126080524660a052855184549181866200013785620004ed565b9283835287830195888282169182600014620002c057505060011462000280575b506200016792500382620004c9565b5190208551838101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8352878201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810195818710908711176200026d5785875251902060c0526002548181018091116200025a57907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92916002553384526003825285842081815401905584523393a351610a6190816200052b82396080518161054e015260a05181610889015260c051816108b00152f35b634e487b7160e01b845260118752602484fd5b634e487b7160e01b855260418852602485fd5b8791508880528189209089915b858310620002a75750506200016793508201013862000158565b805483880185015286945089939092019181016200028d565b60ff191688526200016795151560051b8501019250389150620001589050565b01519050388062000108565b8488528688208594509190601f198416895b898282106200033957505084116200031f575b505050811b0181556200011c565b015160001960f88460031b161c1916905538808062000311565b8385015186558897909501949384019301620002fe565b909192508488528688208380860160051c8201928987106200039b575b91869588929594930160051c01915b8281106200038c575050620000f3565b8a81558695508791016200037c565b925081926200036d565b634e487b7160e01b865260418952602486fd5b015190503880620000b9565b8880528789209250601f198416895b8982821062000415575050908460019594939210620003fb575b505050811b018555620000ce565b015160001960f88460031b161c19169055388080620003ed565b6001859682939686015181550195019301620003d3565b9091508780528688208480850160051c82019289861062000473575b9085949392910160051c01905b818110620004645750620000a3565b89815584935060010162000455565b9250819262000448565b604188634e487b7160e01b6000525260246000fd5b600080fd5b604081019081106001600160401b03821117620004b357604052565b634e487b7160e01b600052604160045260246000fd5b601f909101601f19168101906001600160401b03821190821017620004b357604052565b90600182811c921680156200051f575b60208310146200050957565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004fd56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146106d257508063095ea7b31461066457806318160ddd1461064557806323b872dd14610572578063313ce567146105345780633644e5151461051057806370a08231146104d85780637ecebe00146104a057806395d89b41146103ba578063a9059cbb14610336578063d505accf146100f25763dd62ed3e146100a757600080fd5b346100ee57816003193601126100ee5760209282916100c4610830565b6100cc61084b565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103325760e03660031901126103325761010e610830565b9061011761084b565b91604435606435926084359260ff841680940361032e574285106102eb5761013d610884565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102d7578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102c457848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102ba5786511696871515806102b1575b1561027f5786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b5084881461023c565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b505034610332578060031936011261033257602091610353610830565b82602435913384526003865281842061036d848254610861565b90556001600160a01b0316808452600386529220805482019055825190815233907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908590a35160018152f35b82843461049d578060031936011261049d578151908060018054906103de82610775565b80865292602092600181169081156104705750600114610418575b610414868861040a828903836107af565b51918291826107e7565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061045d5750505050810160200161040a82610414866103f9565b8054868601840152938201938101610440565b90506104149795508693506020925061040a94915060ff191682840152151560051b8201019294866103f9565b80fd5b5050346103325760203660031901126103325760209181906001600160a01b036104c8610830565b1681526005845220549051908152f35b5050346103325760203660031901126103325760209181906001600160a01b03610500610830565b1681526003845220549051908152f35b50503461033257816003193601126103325760209061052d610884565b9051908152f35b5050346103325781600319360112610332576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461049d57606036600319011261049d5761058d610830565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6105b661084b565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610622575b50505086885260038552828820610603858254610861565b9055169586815260038452208181540190558551908152a35160018152f35b61062b91610861565b90888a528652838920338a528652838920553880856105eb565b5050346103325781600319360112610332576020906002549051908152f35b50346100ee57816003193601126100ee57602092610680610830565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461049d578060031936011261049d578054816106f182610775565b80855291602091600191828116908115610470575060011461071e57610414868861040a828903836107af565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8385106107625750505050810160200161040a82610414866103f9565b8054868601840152938201938101610745565b90600182811c921680156107a5575b602083101461078f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610784565b90601f8019910116810190811067ffffffffffffffff8211176107d157604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b82811061081c57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016107fa565b600435906001600160a01b038216820361084657565b600080fd5b602435906001600160a01b038216820361084657565b9190820391821161086e57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036108d257507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916108e282610775565b808252816020948582019460019087600182169182600014610a0d5750506001146109b4575b50610915925003826107af565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff8311176109a0575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8583106109f5575050610915935082010138610908565b805483880185015286945088939092019181016109de565b60ff1916885261091595151560051b8501019250389150610908905056fea2646970667358221220ebaeb219997aead8d12d861da50dcba28530a48d15b35dcb292be1d7187ab81164736f6c63430008160033","sourceMap":"94:141:55:-:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;94:141:55;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;94:141:55;;;;;;-1:-1:-1;;;;;94:141:55;;;;;;;;;-1:-1:-1;94:141:55;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;94:141:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;94:141:55;;;;;;;;;;;;;;180:2;2129:20:16;;2179:13;2160:32;;94:141:55;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5776:22:16;;94:141:55;;5627:295:16;;;94:141:55;5659:95:16;94:141:55;;;;;;5820:14:16;94:141:55;;;;2179:13:16;2129:20;94:141:55;;;5899:4:16;2160:32;94:141:55;;;2160:32:16;5627:295;;94:141:55;;;;;;;;;;;;;;;;;5600:336:16;;94:141:55;2202:51:16;6207:21;94:141:55;;;;;;;;;;6423:32:16;94:141:55;;6207:21:16;94:141:55;200:10;94:141;;6374:9:16;94:141:55;;;;;;;;;;;;;200:10;6423:32:16;;94:141:55;;;;;;;2129:20:16;94:141:55;;;;;2160:32:16;94:141:55;;;;;;;;;;;;;-1:-1:-1;;;94:141:55;;;;;;;;;-1:-1:-1;;;94:141:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;94:141:55;;;;;;;;;;;-1:-1:-1;;94:141:55;;;;;;;;;;;;;-1:-1:-1;94:141:55;;-1:-1:-1;94:141:55;;-1:-1:-1;94:141:55;;;;;-1:-1:-1;94:141:55;;;;;;;;;;;;;-1:-1:-1;94:141:55;;-1:-1:-1;;94:141:55;;;;;;;;;;;;;-1:-1:-1;94:141:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;94:141:55;;;;;;;;;;;;;-1:-1:-1;;;94:141:55;;;;;;;;;;;;-1:-1:-1;94:141:55;;;;;;;;;;;;-1:-1:-1;;;94:141:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;94:141:55;;;;;;;;;;;;;;;;;-1:-1:-1;94:141:55;;;-1:-1:-1;94:141:55;;-1:-1:-1;94:141:55;;;;;;;;;-1:-1:-1;;;;;94:141:55;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;94:141:55;;;;-1:-1:-1;;;;;94:141:55;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146106d257508063095ea7b31461066457806318160ddd1461064557806323b872dd14610572578063313ce567146105345780633644e5151461051057806370a08231146104d85780637ecebe00146104a057806395d89b41146103ba578063a9059cbb14610336578063d505accf146100f25763dd62ed3e146100a757600080fd5b346100ee57816003193601126100ee5760209282916100c4610830565b6100cc61084b565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103325760e03660031901126103325761010e610830565b9061011761084b565b91604435606435926084359260ff841680940361032e574285106102eb5761013d610884565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102d7578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102c457848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102ba5786511696871515806102b1575b1561027f5786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b5084881461023c565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b505034610332578060031936011261033257602091610353610830565b82602435913384526003865281842061036d848254610861565b90556001600160a01b0316808452600386529220805482019055825190815233907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908590a35160018152f35b82843461049d578060031936011261049d578151908060018054906103de82610775565b80865292602092600181169081156104705750600114610418575b610414868861040a828903836107af565b51918291826107e7565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061045d5750505050810160200161040a82610414866103f9565b8054868601840152938201938101610440565b90506104149795508693506020925061040a94915060ff191682840152151560051b8201019294866103f9565b80fd5b5050346103325760203660031901126103325760209181906001600160a01b036104c8610830565b1681526005845220549051908152f35b5050346103325760203660031901126103325760209181906001600160a01b03610500610830565b1681526003845220549051908152f35b50503461033257816003193601126103325760209061052d610884565b9051908152f35b5050346103325781600319360112610332576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461049d57606036600319011261049d5761058d610830565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6105b661084b565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610622575b50505086885260038552828820610603858254610861565b9055169586815260038452208181540190558551908152a35160018152f35b61062b91610861565b90888a528652838920338a528652838920553880856105eb565b5050346103325781600319360112610332576020906002549051908152f35b50346100ee57816003193601126100ee57602092610680610830565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461049d578060031936011261049d578054816106f182610775565b80855291602091600191828116908115610470575060011461071e57610414868861040a828903836107af565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8385106107625750505050810160200161040a82610414866103f9565b8054868601840152938201938101610745565b90600182811c921680156107a5575b602083101461078f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610784565b90601f8019910116810190811067ffffffffffffffff8211176107d157604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b82811061081c57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016107fa565b600435906001600160a01b038216820361084657565b600080fd5b602435906001600160a01b038216820361084657565b9190820391821161086e57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036108d257507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916108e282610775565b808252816020948582019460019087600182169182600014610a0d5750506001146109b4575b50610915925003826107af565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff8311176109a0575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8583106109f5575050610915935082010138610908565b805483880185015286945088939092019181016109de565b60ff1916885261091595151560051b8501019250389150610908905056fea2646970667358221220ebaeb219997aead8d12d861da50dcba28530a48d15b35dcb292be1d7187ab81164736f6c63430008160033","sourceMap":"94:141:55:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;94:141:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;94:141:55;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4044:15:16;4032:27;;94:141:55;;4415:18:16;;:::i;:::-;94:141:55;;;;;;;;;;;;;;;4860:6:16;94:141:55;;;;;;;;;;;;;;;;4498:449:16;;;;;94:141:55;4542:165:16;94:141:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;4498:449:16;;94:141:55;;;;;;;;;;;;;;;;;;;4459:514:16;;4337:658;;;94:141:55;;;;;;;;;;;;;;;4337:658:16;;94:141:55;;;;;;;;;;;;;;;;;4306:707:16;;94:141:55;;;;;;;;;;;;;;;;;;;4279:805:16;;;94:141:55;;;;;;;4279:805:16;;;;;;;94:141:55;5107:30:16;;;;:59;;;94:141:55;;;;;;5270:31:16;94:141:55;;;;;;;;;;;;;;;;;;;;;;;5270:31:16;94:141:55;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;94:141:55;;;;;5107:59:16;5141:25;;;;5107:59;;4279:805;94:141:55;;;;;;;;;;-1:-1:-1;;;94:141:55;;;;;;;;;-1:-1:-1;;;;94:141:55;;;;;;;;;;;-1:-1:-1;;;94:141:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;2761:10:16;;94:141:55;;2751:9:16;94:141:55;;;;;2751:31:16;94:141:55;;;2751:31:16;:::i;:::-;94:141:55;;-1:-1:-1;;;;;94:141:55;;;;2751:9:16;94:141:55;;;;;;;;;;;;;;;2761:10:16;;2977:32;;94:141:55;;2977:32:16;94:141:55;;;;;;;;;;;;;;;;;;;;;;;1043:20:16;;94:141:55;;;;;:::i;:::-;;;;;;;1043:20:16;94:141:55;;;1043:20:16;;;;94:141:55;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;1043:20:16;94:141:55;;;;;;;;;-1:-1:-1;;;;94:141:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;94:141:55;;;;;;;;-1:-1:-1;;;;;94:141:55;;:::i;:::-;;;;1738:41:16;94:141:55;;;;;;;;;;;;;;;;;;-1:-1:-1;;94:141:55;;;;;;;;-1:-1:-1;;;;;94:141:55;;:::i;:::-;;;;1324:44:16;94:141:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1070:31:16;94:141:55;;;;;;;;;;;;-1:-1:-1;;94:141:55;;;;;;:::i;:::-;3581:26:16;94:141:55;;:::i;:::-;-1:-1:-1;;;;;94:141:55;;;;;;;;;;;;;3212:10:16;94:141:55;;;;;;;;;;;;;;;;;;;;;3274:28:16;;3270:80;;94:141:55;;;;;;;3361:9:16;94:141:55;;;;;3361:25:16;94:141:55;;;3361:25:16;:::i;:::-;94:141:55;;;;;;;3361:9:16;94:141:55;;;;;;;;;;;;;;3581:26:16;94:141:55;;;;;3270:80:16;3334:16;;;:::i;:::-;94:141:55;;;;;;;;;3212:10:16;94:141:55;;;;;;;;3270:80:16;;;;;94:141:55;;;;;;;;;;;;;;;;1291:26:16;94:141:55;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;2548:10:16;;;;94:141:55;;;;;;;;;;;;;;;;;;;;;;;;;;;2593:37:16;2548:10;;2593:37;;94:141:55;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;94:141:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;94:141:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;94:141:55;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;94:141:55;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;5314:177:16;-1:-1:-1;5397:13:16;5414:16;5397:33;5414:16;;5433:24;;5314:177;:::o;5397:87::-;94:141:55;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5776:22:16;;94:141:55;;;5627:295:16;;;94:141:55;5659:95:16;94:141:55;;;;;;5820:14:16;94:141:55;;;;5397:13:16;94:141:55;;;;5899:4:16;94:141:55;;;;;5627:295:16;;94:141:55;;;;;;;;;;;;;;;;;5600:336:16;;5314:177;:::o;94:141:55:-;-1:-1:-1;;;94:141:55;;;;;;;;;;;;;;-1:-1:-1;94:141:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;94:141:55;;;;;;;;;;;-1:-1:-1;;94:141:55;;;;;;;;;;;;;-1:-1:-1;94:141:55;;-1:-1:-1;94:141:55;;-1:-1:-1;94:141:55","linkReferences":{},"immutableReferences":{"25585":[{"start":1358,"length":32}],"25599":[{"start":2185,"length":32}],"25601":[{"start":2224,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"initialSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/helpers/Coin.sol\":\"Coin\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"src/test/helpers/Coin.sol\":{\"keccak256\":\"0x5e6ec8ca8f55bce16282253e4e817e6938fab93b82553c2f2fd7d6874dc14fc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://077c56b107adbdd865f0ed12b17e1022cb4a0964caef2854a33e9dded4b9ded9\",\"dweb:/ipfs/QmT1YVAXJGSFASECUj8MgfEPoPAqRH9A5Mfh4NvGGLt62D\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"initialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/helpers/Coin.sol":"Coin"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"src/test/helpers/Coin.sol":{"keccak256":"0x5e6ec8ca8f55bce16282253e4e817e6938fab93b82553c2f2fd7d6874dc14fc4","urls":["bzz-raw://077c56b107adbdd865f0ed12b17e1022cb4a0964caef2854a33e9dded4b9ded9","dweb:/ipfs/QmT1YVAXJGSFASECUj8MgfEPoPAqRH9A5Mfh4NvGGLt62D"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/test/helpers/Coin.sol","id":44202,"exportedSymbols":{"Coin":[44201],"ERC20":[25948]},"nodeType":"SourceUnit","src":"32:204:55","nodes":[{"id":44180,"nodeType":"PragmaDirective","src":"32:24:55","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":44181,"nodeType":"ImportDirective","src":"58:34:55","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/tokens/ERC20.sol","file":"solmate/tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":44202,"sourceUnit":25949,"symbolAliases":[],"unitAlias":""},{"id":44201,"nodeType":"ContractDefinition","src":"94:141:55","nodes":[{"id":44200,"nodeType":"FunctionDefinition","src":"123:110:55","nodes":[],"body":{"id":44199,"nodeType":"Block","src":"184:49:55","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":44194,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"200:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":44195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"204:6:55","memberName":"sender","nodeType":"MemberAccess","src":"200:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44196,"name":"initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44185,"src":"212:13:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44193,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25919,"src":"194:5:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"194:32:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44198,"nodeType":"ExpressionStatement","src":"194:32:55"}]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"436f696e","id":44188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"164:6:55","typeDescriptions":{"typeIdentifier":"t_stringliteral_07fa16837b0b8cc4f178ea82c59160a6e5e93daa4f0f237ee2f1ae74266c5fb7","typeString":"literal_string \"Coin\""},"value":"Coin"},{"hexValue":"434f494e","id":44189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"172:6:55","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d28cfe178ae84130ce540d5dadabd088b301735941a744d121b4926572ece0","typeString":"literal_string \"COIN\""},"value":"COIN"},{"hexValue":"3138","id":44190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"180:2:55","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"id":44191,"kind":"baseConstructorSpecifier","modifierName":{"id":44187,"name":"ERC20","nameLocations":["158:5:55"],"nodeType":"IdentifierPath","referencedDeclaration":25948,"src":"158:5:55"},"nodeType":"ModifierInvocation","src":"158:25:55"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":44186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44185,"mutability":"mutable","name":"initialSupply","nameLocation":"143:13:55","nodeType":"VariableDeclaration","scope":44200,"src":"135:21:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44184,"name":"uint256","nodeType":"ElementaryTypeName","src":"135:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"134:23:55"},"returnParameters":{"id":44192,"nodeType":"ParameterList","parameters":[],"src":"184:0:55"},"scope":44201,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":44182,"name":"ERC20","nameLocations":["111:5:55"],"nodeType":"IdentifierPath","referencedDeclaration":25948,"src":"111:5:55"},"id":44183,"nodeType":"InheritanceSpecifier","src":"111:5:55"}],"canonicalName":"Coin","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[44201,25948],"name":"Coin","nameLocation":"103:4:55","scope":44202,"usedErrors":[],"usedEvents":[25571,25579]}],"license":"MIT"},"id":55} \ No newline at end of file diff --git a/out/ConstantSum.sol/ConstantSum.json b/out/ConstantSum.sol/ConstantSum.json deleted file mode 100644 index c99f134c..00000000 --- a/out/ConstantSum.sol/ConstantSum.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"dfmm_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"computeSwapConstant","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"dfmm","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getPoolParams","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"init","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"},{"name":"invariant","type":"int256","internalType":"int256"},{"name":"reserveX","type":"uint256","internalType":"uint256"},{"name":"reserveY","type":"uint256","internalType":"uint256"},{"name":"totalLiquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"internalParams","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"price","type":"uint256","internalType":"uint256"},{"name":"swapFee","type":"uint256","internalType":"uint256"},{"name":"controller","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"update","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateAllocateOrDeallocate","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"},{"name":"invariant","type":"int256","internalType":"int256"},{"name":"reserveX","type":"uint256","internalType":"uint256"},{"name":"reserveY","type":"uint256","internalType":"uint256"},{"name":"totalLiquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validateSwap","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"},{"name":"invariant","type":"int256","internalType":"int256"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"nextRx","type":"uint256","internalType":"uint256"},{"name":"nextRy","type":"uint256","internalType":"uint256"},{"name":"nextL","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"error","name":"InvalidSender","inputs":[]},{"type":"error","name":"InvalidUpdateCode","inputs":[]},{"type":"error","name":"NotDFMM","inputs":[]}],"bytecode":{"object":"0x60803461007457601f610db038819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051610d2090816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b61087d565b610854565b610705565b6106cb565b6105b4565b610343565b61028b565b61023f565b3461013b57604036600319011261013b576024359067ffffffffffffffff821161013b573660238301121561013b576101376101276101026100f3366004870135602488016101b3565b602080825183010191016108b0565b90610120610111600435610aed565b602080825183010191016108cb565b5192610b61565b6040519081529081906020820190565b0390f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761017057604052565b61013e565b6040810190811067ffffffffffffffff82111761017057604052565b90601f8019910116810190811067ffffffffffffffff82111761017057604052565b92919267ffffffffffffffff821161017057604051916101dd601f8201601f191660200184610191565b8294818452818301116101fa578281602093846000960137010152565b600080fd5b919082519283825260005b84811061022b575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161020a565b346101fa5760003660031901126101fa5761013760405161025f81610175565b600b81526a436f6e7374616e7453756d60a81b60208201526040519182916020835260208301906101ff565b346101fa5760203660031901126101fa57600435600052600160205260606040600020805490600181015490600260018060a01b03910154169060405192835260208301526040820152f35b6001600160a01b038116036101fa57565b9060606003198301126101fa57600435610301816102d7565b916024359160443567ffffffffffffffff928382116101fa57806023830112156101fa5781600401359384116101fa57602484830101116101fa576024019190565b346101fa57610351366102e8565b9250906103ab606061036561011184610aed565b60005490939061038b9061037f906001600160a01b031681565b6001600160a01b031690565b60405180809581946333854efd60e21b8352600483019190602083019252565b03915afa9283156105af57600094600092600095610572575b50906103d291810190610911565b92919390956000928086116000146104bf575061043561042d6104659461041b6103ff61043e958a610942565b6104108161040b610954565b610bb0565b602087015190610cbe565b906104288261040b610986565b6109b4565b965b856109c1565b958612156109da565b61044f8561044a6109f7565b610bfa565b61045c815161040b610a30565b51828685610b61565b936104728561044a610a53565b846013191292836104b4575b6101379394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b60148612935061047e565b925050818611156105145761043e61043561050e6104fa6104e3610465968b610942565b6104ef8161040b610954565b602086015190610cbe565b6105068161040b610986565b845190610c8e565b9661042f565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b90945061059d9195506103d2925060603d6060116105a8575b6105958183610191565b8101906108b0565b9195919490926103c4565b503d61058b565b610905565b346101fa576105c2366102e8565b600054919350906001600160a01b031633036106b95782906105e2610a8c565b508101039160c083126101fa578035916020820135916060604082013595605f1901126101fa5761067791600161066c6040519361061f85610154565b606081013580865260a06020870192608081013584520135610640816102d7565b6040870152610659856000526001602052604060002090565b5551926000526001602052604060002090565b015551848385610b61565b92836013191291826106ae575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b601485129250610684565b604051636853cba760e01b8152600490fd5b346101fa576106fc6101116106f26106776106e5366102e8565b9080929593500190610911565b9591949093610aed565b51848385610b61565b346101fa57610713366102e8565b6000549093906001600160a01b0390811633036106b95761075461037f6002610746876000526001602052604060002090565b01546001600160a01b031690565b9116036108425761076783820182610ab5565b61077081610acd565b600281036107a5575061078c610791916107a2939436916101b3565b610c51565b916000526001602052604060002090565b55005b6107ae81610acd565b600181036107e157506107cc61078c6107dd926001949536916101b3565b926000526001602052604060002090565b0155005b806107ed600392610acd565b036108305761080e6107cc61080960029361082e9636916101b3565b610c29565b0180546001600160a01b0319166001600160a01b03909216919091179055565b005b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101fa5760003660031901126101fa576000546040516001600160a01b039091168152602090f35b346101fa5760203660031901126101fa5761013761089c600435610aed565b6040519182916020835260208301906101ff565b908160609103126101fa578051916040602083015192015190565b908160609103126101fa5760408051916108e483610154565b805183526020810151602084015201516108fd816102d7565b604082015290565b6040513d6000823e3d90fd5b908160609103126101fa578035916040602083013592013590565b634e487b7160e01b600052601160045260246000fd5b9190820391821161094f57565b61092c565b6040519061096182610175565b6016825275030b6b7bab73a24b71034b7103b30b634b230ba329d160551b6020830152565b6040519061099382610175565b601282527103332b2b99034b7103b30b634b230ba329d160751b6020830152565b9190820180921161094f57565b8181039291600013801582851316918412161761094f57565b156109e157565b634e487b7160e01b600052600160045260246000fd5b60405190610a0482610175565b601c82527f6c697175696469747944656c746120696e2076616c69646174653a20000000006020830152565b60405190610a3d82610175565b60078252660383934b1b29d160cd1b6020830152565b60405190610a6082610175565b601782527f696e76617269616e7420696e2076616c69646174653a200000000000000000006020830152565b60405190610a9982610154565b60006040838281528260208201520152565b600411156101fa57565b908160209103126101fa5735610aca81610aab565b90565b60041115610ad757565b634e487b7160e01b600052602160045260246000fd5b610af5610a8c565b90806000526001602052604090816000205483526000526001602052600181600020015491602081019283528151928151602085015251828401528160018060a01b0391015116606083015260608252608082019082821067ffffffffffffffff831117610170575290565b8293610b73610b7f94610b7993610c8e565b94610cbe565b90610c8e565b906000828201928312911290801582169115161761094f57670de0b6b3a763ffff19810190811360011661094f5790565b610bf3610bdf91610bf893604051938492632d839cb360e21b60208501526040602485015260648401906101ff565b90604483015203601f198101835282610191565b610c73565b565b610bf3610bdf91610bf893604051938492631e53134760e11b60208501526040602485015260648401906101ff565b6040818051810103126101fa5780610c4660206040930151610aab565b015161037f816102d7565b6040818051810103126101fa5780610c6e60206040930151610aab565b015190565b600080916020815191016a636f6e736f6c652e6c6f675afa50565b90670de0b6b3a764000091828102928184041490151781151516156101fa57600190600019830104019015150290565b8181029181830414901517600116156101fa576001670de0b6b3a764000060001983010401901515029056fea264697066735822122079499075bdd39583b9f30943004e2499fd0904e46091bbba750512bf0550406664736f6c63430008160033","sourceMap":"244:5985:39:-:0;;;;;;;;;;;;;-1:-1:-1;;244:5985:39;;;;-1:-1:-1;;;;;244:5985:39;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;244:5985:39;;;;;;;;-1:-1:-1;244:5985:39;;-1:-1:-1;;;;;;244:5985:39;;;;;;;;;;;;;;;;;-1:-1:-1;244:5985:39;;;;;;-1:-1:-1;244:5985:39;;;;;-1:-1:-1;244:5985:39","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b61087d565b610854565b610705565b6106cb565b6105b4565b610343565b61028b565b61023f565b3461013b57604036600319011261013b576024359067ffffffffffffffff821161013b573660238301121561013b576101376101276101026100f3366004870135602488016101b3565b602080825183010191016108b0565b90610120610111600435610aed565b602080825183010191016108cb565b5192610b61565b6040519081529081906020820190565b0390f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761017057604052565b61013e565b6040810190811067ffffffffffffffff82111761017057604052565b90601f8019910116810190811067ffffffffffffffff82111761017057604052565b92919267ffffffffffffffff821161017057604051916101dd601f8201601f191660200184610191565b8294818452818301116101fa578281602093846000960137010152565b600080fd5b919082519283825260005b84811061022b575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161020a565b346101fa5760003660031901126101fa5761013760405161025f81610175565b600b81526a436f6e7374616e7453756d60a81b60208201526040519182916020835260208301906101ff565b346101fa5760203660031901126101fa57600435600052600160205260606040600020805490600181015490600260018060a01b03910154169060405192835260208301526040820152f35b6001600160a01b038116036101fa57565b9060606003198301126101fa57600435610301816102d7565b916024359160443567ffffffffffffffff928382116101fa57806023830112156101fa5781600401359384116101fa57602484830101116101fa576024019190565b346101fa57610351366102e8565b9250906103ab606061036561011184610aed565b60005490939061038b9061037f906001600160a01b031681565b6001600160a01b031690565b60405180809581946333854efd60e21b8352600483019190602083019252565b03915afa9283156105af57600094600092600095610572575b50906103d291810190610911565b92919390956000928086116000146104bf575061043561042d6104659461041b6103ff61043e958a610942565b6104108161040b610954565b610bb0565b602087015190610cbe565b906104288261040b610986565b6109b4565b965b856109c1565b958612156109da565b61044f8561044a6109f7565b610bfa565b61045c815161040b610a30565b51828685610b61565b936104728561044a610a53565b846013191292836104b4575b6101379394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b60148612935061047e565b925050818611156105145761043e61043561050e6104fa6104e3610465968b610942565b6104ef8161040b610954565b602086015190610cbe565b6105068161040b610986565b845190610c8e565b9661042f565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b90945061059d9195506103d2925060603d6060116105a8575b6105958183610191565b8101906108b0565b9195919490926103c4565b503d61058b565b610905565b346101fa576105c2366102e8565b600054919350906001600160a01b031633036106b95782906105e2610a8c565b508101039160c083126101fa578035916020820135916060604082013595605f1901126101fa5761067791600161066c6040519361061f85610154565b606081013580865260a06020870192608081013584520135610640816102d7565b6040870152610659856000526001602052604060002090565b5551926000526001602052604060002090565b015551848385610b61565b92836013191291826106ae575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b601485129250610684565b604051636853cba760e01b8152600490fd5b346101fa576106fc6101116106f26106776106e5366102e8565b9080929593500190610911565b9591949093610aed565b51848385610b61565b346101fa57610713366102e8565b6000549093906001600160a01b0390811633036106b95761075461037f6002610746876000526001602052604060002090565b01546001600160a01b031690565b9116036108425761076783820182610ab5565b61077081610acd565b600281036107a5575061078c610791916107a2939436916101b3565b610c51565b916000526001602052604060002090565b55005b6107ae81610acd565b600181036107e157506107cc61078c6107dd926001949536916101b3565b926000526001602052604060002090565b0155005b806107ed600392610acd565b036108305761080e6107cc61080960029361082e9636916101b3565b610c29565b0180546001600160a01b0319166001600160a01b03909216919091179055565b005b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101fa5760003660031901126101fa576000546040516001600160a01b039091168152602090f35b346101fa5760203660031901126101fa5761013761089c600435610aed565b6040519182916020835260208301906101ff565b908160609103126101fa578051916040602083015192015190565b908160609103126101fa5760408051916108e483610154565b805183526020810151602084015201516108fd816102d7565b604082015290565b6040513d6000823e3d90fd5b908160609103126101fa578035916040602083013592013590565b634e487b7160e01b600052601160045260246000fd5b9190820391821161094f57565b61092c565b6040519061096182610175565b6016825275030b6b7bab73a24b71034b7103b30b634b230ba329d160551b6020830152565b6040519061099382610175565b601282527103332b2b99034b7103b30b634b230ba329d160751b6020830152565b9190820180921161094f57565b8181039291600013801582851316918412161761094f57565b156109e157565b634e487b7160e01b600052600160045260246000fd5b60405190610a0482610175565b601c82527f6c697175696469747944656c746120696e2076616c69646174653a20000000006020830152565b60405190610a3d82610175565b60078252660383934b1b29d160cd1b6020830152565b60405190610a6082610175565b601782527f696e76617269616e7420696e2076616c69646174653a200000000000000000006020830152565b60405190610a9982610154565b60006040838281528260208201520152565b600411156101fa57565b908160209103126101fa5735610aca81610aab565b90565b60041115610ad757565b634e487b7160e01b600052602160045260246000fd5b610af5610a8c565b90806000526001602052604090816000205483526000526001602052600181600020015491602081019283528151928151602085015251828401528160018060a01b0391015116606083015260608252608082019082821067ffffffffffffffff831117610170575290565b8293610b73610b7f94610b7993610c8e565b94610cbe565b90610c8e565b906000828201928312911290801582169115161761094f57670de0b6b3a763ffff19810190811360011661094f5790565b610bf3610bdf91610bf893604051938492632d839cb360e21b60208501526040602485015260648401906101ff565b90604483015203601f198101835282610191565b610c73565b565b610bf3610bdf91610bf893604051938492631e53134760e11b60208501526040602485015260648401906101ff565b6040818051810103126101fa5780610c4660206040930151610aab565b015161037f816102d7565b6040818051810103126101fa5780610c6e60206040930151610aab565b015190565b600080916020815191016a636f6e736f6c652e6c6f675afa50565b90670de0b6b3a764000091828102928184041490151781151516156101fa57600190600019830104019015150290565b8181029181830414901517600116156101fa576001670de0b6b3a764000060001983010401901515029056fea264697066735822122079499075bdd39583b9f30943004e2499fd0904e46091bbba750512bf0550406664736f6c63430008160033","sourceMap":"244:5985:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;244:5985:39;;;;;;;;;;;;;;;;;;;;;4026:186;3964:45;244:5985;;;;;;;;;;:::i;:::-;;;;;3964:45;;;;;;:::i;:::-;244:5985;4142:54;4153:21;244:5985;;4153:21;:::i;:::-;244:5985;;;;4142:54;;;;;;:::i;:::-;244:5985;4026:186;;:::i;:::-;244:5985;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;244:5985:39;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;244:5985:39;;;;;;:::o;:::-;-1:-1:-1;244:5985:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;244:5985:39;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;244:5985:39;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;244:5985:39;;;;;;-1:-1:-1;244:5985:39;731:56;244:5985;;;;-1:-1:-1;244:5985:39;;;731:56;;;;244:5985;;731:56;244:5985;;;;;731:56;;244:5985;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;244:5985:39;;;;;:::o;:::-;;;-1:-1:-1;;244:5985:39;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;2268:21;;;2387:43;;2257:54;2268:21;;;:::i;2257:54::-;-1:-1:-1;244:5985:39;;;;2387:35;;:11;;-1:-1:-1;;;;;244:5985:39;2387:11;244:5985;;-1:-1:-1;;;;;244:5985:39;;;2387:35;244:5985;;;;;;;;;;2387:43;;244:5985;2387:43;;244:5985;;;;;;;;2387:43;;;;;;;;;;-1:-1:-1;;;;;2387:43:39;;;244:5985;2467:45;;;;;;;;:::i;:::-;2523:25;;;;;-1:-1:-1;2610:16:39;;;;2606:684;2610:16;;;2653;3317:30;2853:25;3560:67;2653:16;799:19:18;2653:16:39;3357:51;2653:16;;;:::i;:::-;2683:48;244:5985;;;:::i;:::-;2683:48;:::i;:::-;2257:54;2770:14;;244:5985;799:19:18;;:::i;:::-;244:5985:39;2799:40;244:5985;;;:::i;2799:40::-;2853:25;:::i;:::-;2606:684;;3317:30;;:::i;:::-;3364:43;;;;3357:51;:::i;:::-;3419:60;244:5985;;;:::i;:::-;3419:60;:::i;:::-;3489:37;244:5985;;;;:::i;3489:37::-;244:5985;3560:67;;;;:::i;:::-;244:5985;3638:50;244:5985;;;:::i;3638:50::-;653:2:31;;;3706:20:39;:43;;;;2606:684;244:5985;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3706:43;653:2:31;3730:19:39;;;-1:-1:-1;3706:43:39;;2606:684;2899:16;-1:-1:-1;;2899:16:39;;;;;;3357:51;3317:30;1133:19:18;799;2942:16:39;3560:67;2942:16;;;:::i;:::-;2972:48;244:5985;;;:::i;2972:48::-;2257:54;3059:14;;244:5985;799:19:18;;:::i;:::-;3088:40:39;244:5985;;;:::i;3088:40::-;244:5985;;1133:19:18;;:::i;:::-;2895:395:39;2606:684;;2895:395;244:5985;;-1:-1:-1;;;3221:58:39;;244:5985;;3221:58;;244:5985;;;;;;;;;;;-1:-1:-1;;;244:5985:39;;;;;;3221:58;2387:43;;;;;;;;2467:45;2387:43;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;244:5985::-;;;;;;;:::i;:::-;-1:-1:-1;244:5985:39;;;-1:-1:-1;244:5985:39;-1:-1:-1;;;;;244:5985:39;890:10;:18;886:40;;244:5985;;;;:::i;:::-;;1363:64;;244:5985;;;;;;;;;;;;;;;;;;;;;;;;;;;1621:102;244:5985;1438:14;1491:22;244:5985;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;1438:22;;244:5985;;1438:14;244:5985;;;;;;;1438:22;244:5985;;1491:22;244:5985;;1438:14;244:5985;;;;;;;1491:22;:30;244:5985;;1621:102;;;;:::i;:::-;653:2:31;;;;1742:20:39;:43;;;;244:5985;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1742:43;653:2:31;1766:19:39;;;-1:-1:-1;1742:43:39;;886:40;244:5985;;-1:-1:-1;;;917:9:39;;244:5985;;917:9;244:5985;;;;4840:54;4851:21;4656:45;4724:186;244:5985;;;:::i;:::-;4656:45;;;;;;;;;:::i;:::-;4851:21;;;;;;:::i;4840:54::-;244:5985;4724:186;;;;:::i;244:5985::-;;;;;;;:::i;:::-;904:4;244:5985;;;;-1:-1:-1;;;;;244:5985:39;;;890:10;:18;886:40;;5116:43;5126:33;;:22;;244:5985;;1438:14;244:5985;;;;;;;5126:22;:33;244:5985;-1:-1:-1;;;;;244:5985:39;;;5116:43;244:5985;;5116:43;5112:71;;5255:56;;;;;;:::i;:::-;244:5985;;;:::i;:::-;5126:33;5326:56;;5126:33;;244:5985;;5445:38;244:5985;5398:22;244:5985;;;;;:::i;:::-;5445:38;:::i;:::-;5398:22;244:5985;;1438:14;244:5985;;;;;;;5398:22;244:5985;;5322:624;244:5985;;;:::i;:::-;5126:14;5504:58;;5126:14;;244:5985;5627:36;244:5985;5578:22;244:5985;5126:14;244:5985;;;;;:::i;5627:36::-;5578:22;244:5985;;1438:14;244:5985;;;;;;;5578:22;:30;244:5985;;5500:446;244:5985;;5711:47;244:5985;;:::i;:::-;5697:61;5711:47;;5783:22;5835:43;244:5985;5126:33;244:5985;5783:95;244:5985;;;;:::i;:::-;5835:43;:::i;5783:22::-;:33;244:5985;;-1:-1:-1;;;;;;244:5985:39;-1:-1:-1;;;;;244:5985:39;;;;;;;;;;5783:95;244:5985;5680:266;244:5985;;-1:-1:-1;;;5916:19:39;;244:5985;;5916:19;5112:71;244:5985;;-1:-1:-1;;;5168:15:39;;244:5985;;5168:15;244:5985;;;;;;-1:-1:-1;;244:5985:39;;;;;;;;-1:-1:-1;;;;;244:5985:39;;;;;;;;;;;;;;-1:-1:-1;;244:5985:39;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;244:5985:39;;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;244:5985:39;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;244:5985:39;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;244:5985:39;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;244:5985:39;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;244:5985:39;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;-1:-1:-1;244:5985:39;;;:::o;:::-;;;;;;;;;;;;5958:269;244:5985;;:::i;:::-;;;-1:-1:-1;244:5985:39;6099:14;244:5985;;;;;-1:-1:-1;244:5985:39;;;;-1:-1:-1;244:5985:39;6099:14;244:5985;;6099:14;244:5985;-1:-1:-1;244:5985:39;6154:30;244:5985;6137:14;244:5985;6137:14;;244:5985;;;;;;;;;6202:18;;244:5985;;;;;;;;;;;;;;;;;;;;;6202:18;;244:5985;;;;;;;;;;;;;;5958:269;:::o;1607:332:40:-;;;1133:19:18;;1607:332:40;799:19:18;1607:332:40;1133:19:18;:::i;:::-;799;;:::i;:::-;1133;;:::i;:::-;244:5985:39;-1:-1:-1;244:5985:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1607:332:40;:::o;7176:145:14:-;7259:54;244:5985:39;7176:145:14;7259:54;7176:145;244:5985:39;;7259:54:14;;;;;;;;;;244:5985:39;7259:54:14;;;244:5985:39;;;;;;:::i;:::-;;;;;;7259:54:14;244:5985:39;;7259:54:14;;;;;;:::i;:::-;;:::i;:::-;7176:145::o;7327:143::-;7409:53;244:5985:39;7327:143:14;7409:53;7327:143;244:5985:39;;7409:53:14;;;;;;;;;;244:5985:39;7409:53:14;;;244:5985:39;;;;;;:::i;1359:242:40:-;244:5985:39;;;;1517:50:40;;244:5985:39;;;;1517:50:40;244:5985:39;1517:50:40;244:5985:39;1517:50:40;;244:5985:39;;:::i;:::-;;;;;;:::i;541:217:40:-;244:5985:39;;;;677:50:40;;244:5985:39;;;;677:50:40;244:5985:39;677:50:40;244:5985:39;677:50:40;;244:5985:39;;:::i;:::-;;;541:217:40;:::o;641:376:14:-;852:159;641:376;;852:159;244:5985:39;;852:159:14;;591:42;852:159;;;641:376::o;8282:752:18:-;;378:4:31;8417:611:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8282:752;:::o;:::-;8417:611;;;;;;;;;;;;;;;;;378:4:31;8417:611:18;;;;;;;;;;8282:752;:::o","linkReferences":{}},"methodIdentifiers":{"computeSwapConstant(uint256,bytes)":"002e524b","dfmm()":"afba13c4","getPoolParams(uint256)":"dc178355","init(address,uint256,bytes)":"73cb2d03","internalParams(uint256)":"1edb71e5","name()":"06fdde03","update(address,uint256,bytes)":"acad2989","validateAllocateOrDeallocate(address,uint256,bytes)":"8a04bdd5","validateSwap(address,uint256,bytes)":"68bd3e38"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dfmm_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidSender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidUpdateCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDFMM\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"computeSwapConstant\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dfmm\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolParams\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"init\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalLiquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"internalParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"update\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"validateAllocateOrDeallocate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalLiquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"validateSwap\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"nextRx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nextRy\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nextL\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidSender()\":[{\"details\":\"Thrown when the sender is authorized.\"}],\"InvalidUpdateCode()\":[{\"details\":\"Thrown when the update code is invalid.\"}],\"NotDFMM()\":[{\"details\":\"Thrown when the sender is not the DFMM contract.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"name\":{\"details\":\"The name of the strategy is included in the name of the liquidity token.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"name()\":{\"notice\":\"Returns the name of the strategy.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/strategies/ConstantSum/ConstantSum.sol\":\"ConstantSum\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/strategies/ConstantSum/ConstantSum.sol\":{\"keccak256\":\"0xb842f20507e6dcc6751ca5a7e902b3a71376bacd6ccb732c36369ec42b80293b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3e8eab1244452c527e995512bf2be44809de0dff09f9c675a9aa65dee5e85fe5\",\"dweb:/ipfs/QmfHn6yjWUhrVbKwSA6hZ1xpCXd5zFjgkGoKv6jqPdjnbK\"]},\"src/strategies/ConstantSum/ConstantSumLib.sol\":{\"keccak256\":\"0xbecc63accf7f1015ad2e60521f9c91f03b2692493e93b936e3939a1619f51c2a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2cbb36900fbcd271029f9659731988e3c401d01f19ab9a3b7ce182153918dc66\",\"dweb:/ipfs/QmZS3YyfNRdwndyb8njoByb7qVbAKEbo6DgejmUdNAfkwv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"dfmm_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InvalidSender"},{"inputs":[],"type":"error","name":"InvalidUpdateCode"},{"inputs":[],"type":"error","name":"NotDFMM"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"computeSwapConstant","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"dfmm","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolParams","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"init","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"int256","name":"invariant","type":"int256"},{"internalType":"uint256","name":"reserveX","type":"uint256"},{"internalType":"uint256","name":"reserveY","type":"uint256"},{"internalType":"uint256","name":"totalLiquidity","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"internalParams","outputs":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"swapFee","type":"uint256"},{"internalType":"address","name":"controller","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"update"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"validateAllocateOrDeallocate","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"int256","name":"invariant","type":"int256"},{"internalType":"uint256","name":"reserveX","type":"uint256"},{"internalType":"uint256","name":"reserveY","type":"uint256"},{"internalType":"uint256","name":"totalLiquidity","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"validateSwap","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"int256","name":"invariant","type":"int256"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"uint256","name":"nextRx","type":"uint256"},{"internalType":"uint256","name":"nextRy","type":"uint256"},{"internalType":"uint256","name":"nextL","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"name()":{"notice":"Returns the name of the strategy."}},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/strategies/ConstantSum/ConstantSum.sol":"ConstantSum"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/strategies/ConstantSum/ConstantSum.sol":{"keccak256":"0xb842f20507e6dcc6751ca5a7e902b3a71376bacd6ccb732c36369ec42b80293b","urls":["bzz-raw://3e8eab1244452c527e995512bf2be44809de0dff09f9c675a9aa65dee5e85fe5","dweb:/ipfs/QmfHn6yjWUhrVbKwSA6hZ1xpCXd5zFjgkGoKv6jqPdjnbK"],"license":"GPL-3.0-or-later"},"src/strategies/ConstantSum/ConstantSumLib.sol":{"keccak256":"0xbecc63accf7f1015ad2e60521f9c91f03b2692493e93b936e3939a1619f51c2a","urls":["bzz-raw://2cbb36900fbcd271029f9659731988e3c401d01f19ab9a3b7ce182153918dc66","dweb:/ipfs/QmZS3YyfNRdwndyb8njoByb7qVbAKEbo6DgejmUdNAfkwv"],"license":"GPL-3.0-or-later"}},"version":1},"ast":{"absolutePath":"src/strategies/ConstantSum/ConstantSum.sol","id":37072,"exportedSymbols":{"ConstantSum":[37071],"ConstantSumLib":[37235],"DSTest":[1786],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"FixedPointMathLib":[26640],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"Min":[27736],"ONE":[30639],"SQRT_WAD":[30630],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"TWO":[30633],"Test":[8195],"TestBase":[1843],"Vm":[9352],"ZERO":[30649],"abs":[27763],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"console":[17416],"console2":[25512],"diviWad":[27813],"muli":[27777],"muliWad":[27795],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522]},"nodeType":"SourceUnit","src":"45:6185:39","nodes":[{"id":36462,"nodeType":"PragmaDirective","src":"45:24:39","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":36463,"nodeType":"ImportDirective","src":"71:34:39","nodes":[],"absolutePath":"src/interfaces/IDFMM.sol","file":"src/interfaces/IDFMM.sol","nameLocation":"-1:-1:-1","scope":37072,"sourceUnit":29731,"symbolAliases":[],"unitAlias":""},{"id":36464,"nodeType":"ImportDirective","src":"106:38:39","nodes":[],"absolutePath":"src/interfaces/IStrategy.sol","file":"src/interfaces/IStrategy.sol","nameLocation":"-1:-1:-1","scope":37072,"sourceUnit":29840,"symbolAliases":[],"unitAlias":""},{"id":36465,"nodeType":"ImportDirective","src":"145:37:39","nodes":[],"absolutePath":"src/lib/DynamicParamLib.sol","file":"src/lib/DynamicParamLib.sol","nameLocation":"-1:-1:-1","scope":37072,"sourceUnit":30013,"symbolAliases":[],"unitAlias":""},{"id":36466,"nodeType":"ImportDirective","src":"183:30:39","nodes":[],"absolutePath":"src/strategies/ConstantSum/ConstantSumLib.sol","file":"./ConstantSumLib.sol","nameLocation":"-1:-1:-1","scope":37072,"sourceUnit":37236,"symbolAliases":[],"unitAlias":""},{"id":36467,"nodeType":"ImportDirective","src":"214:28:39","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":37072,"sourceUnit":8196,"symbolAliases":[],"unitAlias":""},{"id":37071,"nodeType":"ContractDefinition","src":"244:5985:39","nodes":[{"id":36472,"nodeType":"UsingForDirective","src":"284:36:39","nodes":[],"global":false,"libraryName":{"id":36470,"name":"FixedPointMathLib","nameLocations":["290:17:39"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"290:17:39"},"typeName":{"id":36471,"name":"uint256","nodeType":"ElementaryTypeName","src":"312:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":36476,"nodeType":"UsingForDirective","src":"325:39:39","nodes":[],"global":false,"libraryName":{"id":36473,"name":"DynamicParamLib","nameLocations":["331:15:39"],"nodeType":"IdentifierPath","referencedDeclaration":30012,"src":"331:15:39"},"typeName":{"id":36475,"nodeType":"UserDefinedTypeName","pathNode":{"id":36474,"name":"DynamicParam","nameLocations":["351:12:39"],"nodeType":"IdentifierPath","referencedDeclaration":29851,"src":"351:12:39"},"referencedDeclaration":29851,"src":"351:12:39","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"}}},{"id":36483,"nodeType":"StructDefinition","src":"370:105:39","nodes":[],"canonicalName":"ConstantSum.InternalParams","members":[{"constant":false,"id":36478,"mutability":"mutable","name":"price","nameLocation":"410:5:39","nodeType":"VariableDeclaration","scope":36483,"src":"402:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36477,"name":"uint256","nodeType":"ElementaryTypeName","src":"402:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36480,"mutability":"mutable","name":"swapFee","nameLocation":"433:7:39","nodeType":"VariableDeclaration","scope":36483,"src":"425:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36479,"name":"uint256","nodeType":"ElementaryTypeName","src":"425:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36482,"mutability":"mutable","name":"controller","nameLocation":"458:10:39","nodeType":"VariableDeclaration","scope":36483,"src":"450:18:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36481,"name":"address","nodeType":"ElementaryTypeName","src":"450:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"InternalParams","nameLocation":"377:14:39","scope":37071,"visibility":"public"},{"id":36490,"nodeType":"StructDefinition","src":"481:108:39","nodes":[],"canonicalName":"ConstantSum.ConstantSumParams","members":[{"constant":false,"id":36485,"mutability":"mutable","name":"price","nameLocation":"524:5:39","nodeType":"VariableDeclaration","scope":36490,"src":"516:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36484,"name":"uint256","nodeType":"ElementaryTypeName","src":"516:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36487,"mutability":"mutable","name":"swapFee","nameLocation":"547:7:39","nodeType":"VariableDeclaration","scope":36490,"src":"539:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36486,"name":"uint256","nodeType":"ElementaryTypeName","src":"539:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36489,"mutability":"mutable","name":"controller","nameLocation":"572:10:39","nodeType":"VariableDeclaration","scope":36490,"src":"564:18:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36488,"name":"address","nodeType":"ElementaryTypeName","src":"564:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"ConstantSumParams","nameLocation":"488:17:39","scope":37071,"visibility":"public"},{"id":36493,"nodeType":"VariableDeclaration","src":"625:19:39","nodes":[],"baseFunctions":[29831],"constant":false,"documentation":{"id":36491,"nodeType":"StructuredDocumentation","src":"595:25:39","text":"@inheritdoc IStrategy"},"functionSelector":"afba13c4","mutability":"mutable","name":"dfmm","nameLocation":"640:4:39","scope":37071,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36492,"name":"address","nodeType":"ElementaryTypeName","src":"625:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":36497,"nodeType":"VariableDeclaration","src":"681:43:39","nodes":[],"baseFunctions":[29768],"constant":true,"documentation":{"id":36494,"nodeType":"StructuredDocumentation","src":"651:25:39","text":"@inheritdoc IStrategy"},"functionSelector":"06fdde03","mutability":"constant","name":"name","nameLocation":"704:4:39","scope":37071,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":36495,"name":"string","nodeType":"ElementaryTypeName","src":"681:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"436f6e7374616e7453756d","id":36496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"711:13:39","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d40ac42989a30ac93e361dd494fc0f13677a14223e3e8e73b6a9765afa29696","typeString":"literal_string \"ConstantSum\""},"value":"ConstantSum"},"visibility":"public"},{"id":36502,"nodeType":"VariableDeclaration","src":"731:56:39","nodes":[],"constant":false,"functionSelector":"1edb71e5","mutability":"mutable","name":"internalParams","nameLocation":"773:14:39","scope":37071,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$36483_storage_$","typeString":"mapping(uint256 => struct ConstantSum.InternalParams)"},"typeName":{"id":36501,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":36498,"name":"uint256","nodeType":"ElementaryTypeName","src":"739:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"731:34:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$36483_storage_$","typeString":"mapping(uint256 => struct ConstantSum.InternalParams)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":36500,"nodeType":"UserDefinedTypeName","pathNode":{"id":36499,"name":"InternalParams","nameLocations":["750:14:39"],"nodeType":"IdentifierPath","referencedDeclaration":36483,"src":"750:14:39"},"referencedDeclaration":36483,"src":"750:14:39","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$36483_storage_ptr","typeString":"struct ConstantSum.InternalParams"}}},"visibility":"public"},{"id":36512,"nodeType":"FunctionDefinition","src":"794:56:39","nodes":[],"body":{"id":36511,"nodeType":"Block","src":"821:29:39","nodes":[],"statements":[{"expression":{"id":36509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36507,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36493,"src":"831:4:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36508,"name":"dfmm_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36504,"src":"838:5:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"831:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36510,"nodeType":"ExpressionStatement","src":"831:12:39"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36504,"mutability":"mutable","name":"dfmm_","nameLocation":"814:5:39","nodeType":"VariableDeclaration","scope":36512,"src":"806:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36503,"name":"address","nodeType":"ElementaryTypeName","src":"806:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"805:15:39"},"returnParameters":{"id":36506,"nodeType":"ParameterList","parameters":[],"src":"821:0:39"},"scope":37071,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":36524,"nodeType":"ModifierDefinition","src":"856:88:39","nodes":[],"body":{"id":36523,"nodeType":"Block","src":"876:68:39","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36514,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"890:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"894:6:39","memberName":"sender","nodeType":"MemberAccess","src":"890:10:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":36516,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36493,"src":"904:4:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"890:18:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36521,"nodeType":"IfStatement","src":"886:40:39","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36518,"name":"NotDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29739,"src":"917:7:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"917:9:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36520,"nodeType":"RevertStatement","src":"910:16:39"}},{"id":36522,"nodeType":"PlaceholderStatement","src":"936:1:39"}]},"name":"onlyDFMM","nameLocation":"865:8:39","parameters":{"id":36513,"nodeType":"ParameterList","parameters":[],"src":"873:2:39"},"virtual":false,"visibility":"internal"},{"id":36614,"nodeType":"FunctionDefinition","src":"950:914:39","nodes":[],"body":{"id":36613,"nodeType":"Block","src":"1253:611:39","nodes":[],"statements":[{"assignments":[36547],"declarations":[{"constant":false,"id":36547,"mutability":"mutable","name":"params","nameLocation":"1288:6:39","nodeType":"VariableDeclaration","scope":36613,"src":"1263:31:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams"},"typeName":{"id":36546,"nodeType":"UserDefinedTypeName","pathNode":{"id":36545,"name":"ConstantSumParams","nameLocations":["1263:17:39"],"nodeType":"IdentifierPath","referencedDeclaration":36490,"src":"1263:17:39"},"referencedDeclaration":36490,"src":"1263:17:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_storage_ptr","typeString":"struct ConstantSum.ConstantSumParams"}},"visibility":"internal"}],"id":36548,"nodeType":"VariableDeclarationStatement","src":"1263:31:39"},{"expression":{"id":36566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":36549,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36539,"src":"1305:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36550,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36541,"src":"1315:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36551,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36543,"src":"1325:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36552,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36547,"src":"1341:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}}],"id":36553,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1304:44:39","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_ConstantSumParams_$36490_memory_ptr_$","typeString":"tuple(uint256,uint256,uint256,struct ConstantSum.ConstantSumParams memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":36556,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36530,"src":"1374:4:39","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":36558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1381:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":36557,"name":"uint256","nodeType":"ElementaryTypeName","src":"1381:7:39","typeDescriptions":{}}},{"id":36560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1390:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":36559,"name":"uint256","nodeType":"ElementaryTypeName","src":"1390:7:39","typeDescriptions":{}}},{"id":36562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1399:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":36561,"name":"uint256","nodeType":"ElementaryTypeName","src":"1399:7:39","typeDescriptions":{}}},{"id":36563,"name":"ConstantSumParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36490,"src":"1408:17:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}}],"id":36564,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1380:46:39","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256),type(struct ConstantSum.ConstantSumParams storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256),type(struct ConstantSum.ConstantSumParams storage pointer))"}],"expression":{"id":36554,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1363:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":36555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1367:6:39","memberName":"decode","nodeType":"MemberAccess","src":"1363:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":36565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1363:64:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_ConstantSumParams_$36490_memory_ptr_$","typeString":"tuple(uint256,uint256,uint256,struct ConstantSum.ConstantSumParams memory)"}},"src":"1304:123:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36567,"nodeType":"ExpressionStatement","src":"1304:123:39"},{"expression":{"id":36574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":36568,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36502,"src":"1438:14:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$36483_storage_$","typeString":"mapping(uint256 => struct ConstantSum.InternalParams storage ref)"}},"id":36570,"indexExpression":{"id":36569,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36528,"src":"1453:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1438:22:39","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$36483_storage","typeString":"struct ConstantSum.InternalParams storage ref"}},"id":36571,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1461:5:39","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":36478,"src":"1438:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36572,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36547,"src":"1469:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":36573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1476:5:39","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":36485,"src":"1469:12:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1438:43:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36575,"nodeType":"ExpressionStatement","src":"1438:43:39"},{"expression":{"id":36582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":36576,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36502,"src":"1491:14:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$36483_storage_$","typeString":"mapping(uint256 => struct ConstantSum.InternalParams storage ref)"}},"id":36578,"indexExpression":{"id":36577,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36528,"src":"1506:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1491:22:39","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$36483_storage","typeString":"struct ConstantSum.InternalParams storage ref"}},"id":36579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1514:7:39","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":36480,"src":"1491:30:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36580,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36547,"src":"1524:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":36581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1531:7:39","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":36487,"src":"1524:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1491:47:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36583,"nodeType":"ExpressionStatement","src":"1491:47:39"},{"expression":{"id":36593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36584,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36537,"src":"1609:9:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":36587,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36539,"src":"1665:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36588,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36541,"src":"1675:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36589,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36543,"src":"1685:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":36590,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36547,"src":"1701:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":36591,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1708:5:39","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":36485,"src":"1701:12:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36585,"name":"ConstantSumLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37235,"src":"1621:14:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ConstantSumLib_$37235_$","typeString":"type(library ConstantSumLib)"}},"id":36586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1636:15:39","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":37234,"src":"1621:30:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,uint256) pure returns (int256)"}},"id":36592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1621:102:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1609:114:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":36594,"nodeType":"ExpressionStatement","src":"1609:114:39"},{"expression":{"id":36604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36595,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36535,"src":"1734:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":36603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":36599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1742:8:39","subExpression":{"id":36596,"name":"EPSILON","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30665,"src":"1743:7:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":36598,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36537,"src":"1753:9:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1742:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":36602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36600,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36537,"src":"1766:9:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":36601,"name":"EPSILON","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30665,"src":"1778:7:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1766:19:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1742:43:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1734:51:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36605,"nodeType":"ExpressionStatement","src":"1734:51:39"},{"expression":{"components":[{"id":36606,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36535,"src":"1804:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":36607,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36537,"src":"1811:9:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":36608,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36539,"src":"1822:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36609,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36541,"src":"1832:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36610,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36543,"src":"1842:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":36611,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1803:54:39","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,int256,uint256,uint256,uint256)"}},"functionReturnParameters":36544,"id":36612,"nodeType":"Return","src":"1796:61:39"}]},"baseFunctions":[29762],"functionSelector":"73cb2d03","implemented":true,"kind":"function","modifiers":[{"id":36533,"kind":"modifierInvocation","modifierName":{"id":36532,"name":"onlyDFMM","nameLocations":["1063:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":36524,"src":"1063:8:39"},"nodeType":"ModifierInvocation","src":"1063:8:39"}],"name":"init","nameLocation":"959:4:39","parameters":{"id":36531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36526,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36614,"src":"973:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36525,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36528,"mutability":"mutable","name":"poolId","nameLocation":"998:6:39","nodeType":"VariableDeclaration","scope":36614,"src":"990:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36527,"name":"uint256","nodeType":"ElementaryTypeName","src":"990:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36530,"mutability":"mutable","name":"data","nameLocation":"1029:4:39","nodeType":"VariableDeclaration","scope":36614,"src":"1014:19:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":36529,"name":"bytes","nodeType":"ElementaryTypeName","src":"1014:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"963:76:39"},"returnParameters":{"id":36544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36535,"mutability":"mutable","name":"valid","nameLocation":"1107:5:39","nodeType":"VariableDeclaration","scope":36614,"src":"1102:10:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36534,"name":"bool","nodeType":"ElementaryTypeName","src":"1102:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":36537,"mutability":"mutable","name":"invariant","nameLocation":"1133:9:39","nodeType":"VariableDeclaration","scope":36614,"src":"1126:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":36536,"name":"int256","nodeType":"ElementaryTypeName","src":"1126:6:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":36539,"mutability":"mutable","name":"reserveX","nameLocation":"1164:8:39","nodeType":"VariableDeclaration","scope":36614,"src":"1156:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36538,"name":"uint256","nodeType":"ElementaryTypeName","src":"1156:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36541,"mutability":"mutable","name":"reserveY","nameLocation":"1194:8:39","nodeType":"VariableDeclaration","scope":36614,"src":"1186:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36540,"name":"uint256","nodeType":"ElementaryTypeName","src":"1186:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36543,"mutability":"mutable","name":"totalLiquidity","nameLocation":"1224:14:39","nodeType":"VariableDeclaration","scope":36614,"src":"1216:22:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36542,"name":"uint256","nodeType":"ElementaryTypeName","src":"1216:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1088:160:39"},"scope":37071,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":36835,"nodeType":"FunctionDefinition","src":"1870:1886:39","nodes":[],"body":{"id":36834,"nodeType":"Block","src":"2201:1555:39","nodes":[],"statements":[{"assignments":[36637],"declarations":[{"constant":false,"id":36637,"mutability":"mutable","name":"params","nameLocation":"2236:6:39","nodeType":"VariableDeclaration","scope":36834,"src":"2211:31:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams"},"typeName":{"id":36636,"nodeType":"UserDefinedTypeName","pathNode":{"id":36635,"name":"ConstantSumParams","nameLocations":["2211:17:39"],"nodeType":"IdentifierPath","referencedDeclaration":36490,"src":"2211:17:39"},"referencedDeclaration":36490,"src":"2211:17:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_storage_ptr","typeString":"struct ConstantSum.ConstantSumParams"}},"visibility":"internal"}],"id":36646,"initialValue":{"arguments":[{"arguments":[{"id":36641,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36618,"src":"2282:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36640,"name":"getPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37070,"src":"2268:13:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) view returns (bytes memory)"}},"id":36642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2268:21:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":36643,"name":"ConstantSumParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36490,"src":"2292:17:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}}],"id":36644,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2291:19:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}],"expression":{"id":36638,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2257:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":36639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2261:6:39","memberName":"decode","nodeType":"MemberAccess","src":"2257:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":36645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2257:54:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"nodeType":"VariableDeclarationStatement","src":"2211:100:39"},{"assignments":[36648,36650,36652],"declarations":[{"constant":false,"id":36648,"mutability":"mutable","name":"startRx","nameLocation":"2331:7:39","nodeType":"VariableDeclaration","scope":36834,"src":"2323:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36647,"name":"uint256","nodeType":"ElementaryTypeName","src":"2323:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36650,"mutability":"mutable","name":"startRy","nameLocation":"2348:7:39","nodeType":"VariableDeclaration","scope":36834,"src":"2340:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36649,"name":"uint256","nodeType":"ElementaryTypeName","src":"2340:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36652,"mutability":"mutable","name":"startL","nameLocation":"2365:6:39","nodeType":"VariableDeclaration","scope":36834,"src":"2357:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36651,"name":"uint256","nodeType":"ElementaryTypeName","src":"2357:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36659,"initialValue":{"arguments":[{"id":36657,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36618,"src":"2423:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":36654,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36493,"src":"2393:4:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":36653,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"2387:5:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":36655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2387:11:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDFMM_$29730","typeString":"contract IDFMM"}},"id":36656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2399:23:39","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29710,"src":"2387:35:39","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":36658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2387:43:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"2322:108:39"},{"expression":{"id":36675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":36660,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36629,"src":"2442:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36661,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36631,"src":"2450:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36662,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36633,"src":"2458:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":36663,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2441:23:39","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":36666,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36620,"src":"2478:4:39","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":36668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2485:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":36667,"name":"uint256","nodeType":"ElementaryTypeName","src":"2485:7:39","typeDescriptions":{}}},{"id":36670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2494:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":36669,"name":"uint256","nodeType":"ElementaryTypeName","src":"2494:7:39","typeDescriptions":{}}},{"id":36672,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2503:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":36671,"name":"uint256","nodeType":"ElementaryTypeName","src":"2503:7:39","typeDescriptions":{}}}],"id":36673,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2484:27:39","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}],"expression":{"id":36664,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2467:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":36665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2471:6:39","memberName":"decode","nodeType":"MemberAccess","src":"2467:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":36674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2467:45:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"src":"2441:71:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36676,"nodeType":"ExpressionStatement","src":"2441:71:39"},{"assignments":[36678],"declarations":[{"constant":false,"id":36678,"mutability":"mutable","name":"minLiquidityDelta","nameLocation":"2531:17:39","nodeType":"VariableDeclaration","scope":36834,"src":"2523:25:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36677,"name":"uint256","nodeType":"ElementaryTypeName","src":"2523:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36679,"nodeType":"VariableDeclarationStatement","src":"2523:25:39"},{"assignments":[36681],"declarations":[{"constant":false,"id":36681,"mutability":"mutable","name":"amountIn","nameLocation":"2566:8:39","nodeType":"VariableDeclaration","scope":36834,"src":"2558:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36680,"name":"uint256","nodeType":"ElementaryTypeName","src":"2558:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36682,"nodeType":"VariableDeclarationStatement","src":"2558:16:39"},{"assignments":[36684],"declarations":[{"constant":false,"id":36684,"mutability":"mutable","name":"fees","nameLocation":"2592:4:39","nodeType":"VariableDeclaration","scope":36834,"src":"2584:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36683,"name":"uint256","nodeType":"ElementaryTypeName","src":"2584:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36685,"nodeType":"VariableDeclarationStatement","src":"2584:12:39"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36686,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36629,"src":"2610:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":36687,"name":"startRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36650,"src":"2619:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2610:16:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36722,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36631,"src":"2899:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":36723,"name":"startRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36650,"src":"2908:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2899:16:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":36766,"nodeType":"Block","src":"3207:83:39","statements":[{"expression":{"arguments":[{"hexValue":"696e76616c696420737761703a20696e70757473207820616e6420792068617665207468652073616d65207369676e21","id":36763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3228:50:39","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c54ddfd1f745104b0bff565f04a31914e6f8f946d592485aea78017952f8de3","typeString":"literal_string \"invalid swap: inputs x and y have the same sign!\""},"value":"invalid swap: inputs x and y have the same sign!"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6c54ddfd1f745104b0bff565f04a31914e6f8f946d592485aea78017952f8de3","typeString":"literal_string \"invalid swap: inputs x and y have the same sign!\""}],"id":36762,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3221:6:39","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":36764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3221:58:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36765,"nodeType":"ExpressionStatement","src":"3221:58:39"}]},"id":36767,"nodeType":"IfStatement","src":"2895:395:39","trueBody":{"id":36761,"nodeType":"Block","src":"2917:284:39","statements":[{"expression":{"id":36729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36725,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36681,"src":"2931:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36726,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36631,"src":"2942:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":36727,"name":"startRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36650,"src":"2951:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2942:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2931:27:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36730,"nodeType":"ExpressionStatement","src":"2931:27:39"},{"expression":{"arguments":[{"hexValue":"616d6f756e74496e20696e2076616c69646174653a20","id":36734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2985:24:39","typeDescriptions":{"typeIdentifier":"t_stringliteral_cde3342921a83d43823a2706b663cc1bfe3361079bfb748f04fe4e5a3bdb3dcd","typeString":"literal_string \"amountIn in validate: \""},"value":"amountIn in validate: "},{"id":36735,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36681,"src":"3011:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cde3342921a83d43823a2706b663cc1bfe3361079bfb748f04fe4e5a3bdb3dcd","typeString":"literal_string \"amountIn in validate: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36731,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"2972:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":36733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2981:3:39","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"2972:12:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":36736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2972:48:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36737,"nodeType":"ExpressionStatement","src":"2972:48:39"},{"expression":{"id":36744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36738,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36684,"src":"3034:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":36741,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36637,"src":"3059:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":36742,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3066:7:39","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":36487,"src":"3059:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36739,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36681,"src":"3041:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3050:8:39","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"3041:17:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3041:33:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3034:40:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36745,"nodeType":"ExpressionStatement","src":"3034:40:39"},{"expression":{"arguments":[{"hexValue":"6665657320696e2076616c69646174653a20","id":36749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3101:20:39","typeDescriptions":{"typeIdentifier":"t_stringliteral_e74e3cfb8138326841d5b041fa6f061576672ab633759de8e3ac2761820c9226","typeString":"literal_string \"fees in validate: \""},"value":"fees in validate: "},{"id":36750,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36684,"src":"3123:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e74e3cfb8138326841d5b041fa6f061576672ab633759de8e3ac2761820c9226","typeString":"literal_string \"fees in validate: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36746,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"3088:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":36748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3097:3:39","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"3088:12:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":36751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3088:40:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36752,"nodeType":"ExpressionStatement","src":"3088:40:39"},{"expression":{"id":36759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36753,"name":"minLiquidityDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36678,"src":"3142:17:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"expression":{"id":36756,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36637,"src":"3177:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":36757,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3184:5:39","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":36485,"src":"3177:12:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36754,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36684,"src":"3163:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3168:8:39","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"3163:13:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3163:27:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3142:48:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36760,"nodeType":"ExpressionStatement","src":"3142:48:39"}]}},"id":36768,"nodeType":"IfStatement","src":"2606:684:39","trueBody":{"id":36721,"nodeType":"Block","src":"2628:261:39","statements":[{"expression":{"id":36693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36689,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36681,"src":"2642:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36690,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36629,"src":"2653:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":36691,"name":"startRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36648,"src":"2662:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2653:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2642:27:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36694,"nodeType":"ExpressionStatement","src":"2642:27:39"},{"expression":{"arguments":[{"hexValue":"616d6f756e74496e20696e2076616c69646174653a20","id":36698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2696:24:39","typeDescriptions":{"typeIdentifier":"t_stringliteral_cde3342921a83d43823a2706b663cc1bfe3361079bfb748f04fe4e5a3bdb3dcd","typeString":"literal_string \"amountIn in validate: \""},"value":"amountIn in validate: "},{"id":36699,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36681,"src":"2722:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cde3342921a83d43823a2706b663cc1bfe3361079bfb748f04fe4e5a3bdb3dcd","typeString":"literal_string \"amountIn in validate: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36695,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"2683:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":36697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2692:3:39","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"2683:12:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":36700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2683:48:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36701,"nodeType":"ExpressionStatement","src":"2683:48:39"},{"expression":{"id":36708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36702,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36684,"src":"2745:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":36705,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36637,"src":"2770:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":36706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2777:7:39","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":36487,"src":"2770:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36703,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36681,"src":"2752:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2761:8:39","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"2752:17:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2752:33:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2745:40:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36709,"nodeType":"ExpressionStatement","src":"2745:40:39"},{"expression":{"arguments":[{"hexValue":"6665657320696e2076616c69646174653a20","id":36713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2812:20:39","typeDescriptions":{"typeIdentifier":"t_stringliteral_e74e3cfb8138326841d5b041fa6f061576672ab633759de8e3ac2761820c9226","typeString":"literal_string \"fees in validate: \""},"value":"fees in validate: "},{"id":36714,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36684,"src":"2834:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e74e3cfb8138326841d5b041fa6f061576672ab633759de8e3ac2761820c9226","typeString":"literal_string \"fees in validate: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36710,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"2799:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":36712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2808:3:39","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"2799:12:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":36715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2799:40:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36716,"nodeType":"ExpressionStatement","src":"2799:40:39"},{"expression":{"id":36719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36717,"name":"minLiquidityDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36678,"src":"2853:17:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":36718,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36684,"src":"2874:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2853:25:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36720,"nodeType":"ExpressionStatement","src":"2853:25:39"}]}},{"expression":{"id":36779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36769,"name":"liquidityDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36627,"src":"3300:14:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":36778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":36772,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36633,"src":"3324:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36771,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3317:6:39","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":36770,"name":"int256","nodeType":"ElementaryTypeName","src":"3317:6:39","typeDescriptions":{}}},"id":36773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3317:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":36776,"name":"startL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36652,"src":"3340:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3333:6:39","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":36774,"name":"int256","nodeType":"ElementaryTypeName","src":"3333:6:39","typeDescriptions":{}}},"id":36777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3333:14:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3317:30:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3300:47:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":36780,"nodeType":"ExpressionStatement","src":"3300:47:39"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":36787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36782,"name":"liquidityDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36627,"src":"3364:14:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[{"id":36785,"name":"minLiquidityDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36678,"src":"3389:17:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3382:6:39","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":36783,"name":"int256","nodeType":"ElementaryTypeName","src":"3382:6:39","typeDescriptions":{}}},"id":36786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3382:25:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3364:43:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":36781,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"3357:6:39","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":36788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3357:51:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36789,"nodeType":"ExpressionStatement","src":"3357:51:39"},{"expression":{"arguments":[{"hexValue":"6c697175696469747944656c746120696e2076616c69646174653a20","id":36793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3432:30:39","typeDescriptions":{"typeIdentifier":"t_stringliteral_ec58198f7d535c5cff41ce2d0c4baa889f5c9d07784f2c8406b2921bc77dd461","typeString":"literal_string \"liquidityDelta in validate: \""},"value":"liquidityDelta in validate: "},{"id":36794,"name":"liquidityDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36627,"src":"3464:14:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ec58198f7d535c5cff41ce2d0c4baa889f5c9d07784f2c8406b2921bc77dd461","typeString":"literal_string \"liquidityDelta in validate: \""},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":36790,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"3419:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":36792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3428:3:39","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18156,"src":"3419:12:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_int256_$returns$__$","typeString":"function (string memory,int256) view"}},"id":36795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3419:60:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36796,"nodeType":"ExpressionStatement","src":"3419:60:39"},{"expression":{"arguments":[{"hexValue":"70726963653a20","id":36800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3502:9:39","typeDescriptions":{"typeIdentifier":"t_stringliteral_3aa48c3588dd77a7238e530f76a63b6b4be114831bfa0aeb1ab81b373f2e5d81","typeString":"literal_string \"price: \""},"value":"price: "},{"expression":{"id":36801,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36637,"src":"3513:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":36802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3520:5:39","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":36485,"src":"3513:12:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3aa48c3588dd77a7238e530f76a63b6b4be114831bfa0aeb1ab81b373f2e5d81","typeString":"literal_string \"price: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36797,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"3489:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":36799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3498:3:39","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"3489:12:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":36803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3489:37:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36804,"nodeType":"ExpressionStatement","src":"3489:37:39"},{"expression":{"id":36814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36805,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36625,"src":"3536:9:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":36808,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36629,"src":"3591:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36809,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36631,"src":"3599:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36810,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36633,"src":"3607:5:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":36811,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36637,"src":"3614:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":36812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3621:5:39","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":36485,"src":"3614:12:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36806,"name":"ConstantSumLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37235,"src":"3560:14:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ConstantSumLib_$37235_$","typeString":"type(library ConstantSumLib)"}},"id":36807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3575:15:39","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":37234,"src":"3560:30:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,uint256) pure returns (int256)"}},"id":36813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3560:67:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3536:91:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":36815,"nodeType":"ExpressionStatement","src":"3536:91:39"},{"expression":{"arguments":[{"hexValue":"696e76617269616e7420696e2076616c69646174653a20","id":36819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3651:25:39","typeDescriptions":{"typeIdentifier":"t_stringliteral_ab6d2d5531c4d7069b0830b52c16f5abeb47a1df006d92a8fc0d334fa61ec58a","typeString":"literal_string \"invariant in validate: \""},"value":"invariant in validate: "},{"id":36820,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36625,"src":"3678:9:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ab6d2d5531c4d7069b0830b52c16f5abeb47a1df006d92a8fc0d334fa61ec58a","typeString":"literal_string \"invariant in validate: \""},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":36816,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"3638:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":36818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3647:3:39","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18156,"src":"3638:12:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_int256_$returns$__$","typeString":"function (string memory,int256) view"}},"id":36821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3638:50:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36822,"nodeType":"ExpressionStatement","src":"3638:50:39"},{"expression":{"id":36832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36823,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36623,"src":"3698:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":36831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":36827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"3706:8:39","subExpression":{"id":36824,"name":"EPSILON","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30665,"src":"3707:7:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":36826,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36625,"src":"3717:9:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3706:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":36830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36828,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36625,"src":"3730:9:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":36829,"name":"EPSILON","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30665,"src":"3742:7:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3730:19:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3706:43:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3698:51:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36833,"nodeType":"ExpressionStatement","src":"3698:51:39"}]},"baseFunctions":[29808],"functionSelector":"68bd3e38","implemented":true,"kind":"function","modifiers":[],"name":"validateSwap","nameLocation":"1879:12:39","parameters":{"id":36621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36835,"src":"1901:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36615,"name":"address","nodeType":"ElementaryTypeName","src":"1901:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36618,"mutability":"mutable","name":"poolId","nameLocation":"1926:6:39","nodeType":"VariableDeclaration","scope":36835,"src":"1918:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36617,"name":"uint256","nodeType":"ElementaryTypeName","src":"1918:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36620,"mutability":"mutable","name":"data","nameLocation":"1957:4:39","nodeType":"VariableDeclaration","scope":36835,"src":"1942:19:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":36619,"name":"bytes","nodeType":"ElementaryTypeName","src":"1942:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1891:76:39"},"returnParameters":{"id":36634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36623,"mutability":"mutable","name":"valid","nameLocation":"2033:5:39","nodeType":"VariableDeclaration","scope":36835,"src":"2028:10:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36622,"name":"bool","nodeType":"ElementaryTypeName","src":"2028:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":36625,"mutability":"mutable","name":"invariant","nameLocation":"2059:9:39","nodeType":"VariableDeclaration","scope":36835,"src":"2052:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":36624,"name":"int256","nodeType":"ElementaryTypeName","src":"2052:6:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":36627,"mutability":"mutable","name":"liquidityDelta","nameLocation":"2089:14:39","nodeType":"VariableDeclaration","scope":36835,"src":"2082:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":36626,"name":"int256","nodeType":"ElementaryTypeName","src":"2082:6:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":36629,"mutability":"mutable","name":"nextRx","nameLocation":"2125:6:39","nodeType":"VariableDeclaration","scope":36835,"src":"2117:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36628,"name":"uint256","nodeType":"ElementaryTypeName","src":"2117:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36631,"mutability":"mutable","name":"nextRy","nameLocation":"2153:6:39","nodeType":"VariableDeclaration","scope":36835,"src":"2145:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36630,"name":"uint256","nodeType":"ElementaryTypeName","src":"2145:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36633,"mutability":"mutable","name":"nextL","nameLocation":"2181:5:39","nodeType":"VariableDeclaration","scope":36835,"src":"2173:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36632,"name":"uint256","nodeType":"ElementaryTypeName","src":"2173:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2014:182:39"},"scope":37071,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":36879,"nodeType":"FunctionDefinition","src":"3762:457:39","nodes":[],"body":{"id":36878,"nodeType":"Block","src":"3879:340:39","nodes":[],"statements":[{"assignments":[36845,36847,36849],"declarations":[{"constant":false,"id":36845,"mutability":"mutable","name":"reserveX","nameLocation":"3898:8:39","nodeType":"VariableDeclaration","scope":36878,"src":"3890:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36844,"name":"uint256","nodeType":"ElementaryTypeName","src":"3890:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36847,"mutability":"mutable","name":"reserveY","nameLocation":"3916:8:39","nodeType":"VariableDeclaration","scope":36878,"src":"3908:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36846,"name":"uint256","nodeType":"ElementaryTypeName","src":"3908:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36849,"mutability":"mutable","name":"totalLiquidity","nameLocation":"3934:14:39","nodeType":"VariableDeclaration","scope":36878,"src":"3926:22:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36848,"name":"uint256","nodeType":"ElementaryTypeName","src":"3926:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36861,"initialValue":{"arguments":[{"id":36852,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36839,"src":"3975:4:39","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":36854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3982:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":36853,"name":"uint256","nodeType":"ElementaryTypeName","src":"3982:7:39","typeDescriptions":{}}},{"id":36856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3991:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":36855,"name":"uint256","nodeType":"ElementaryTypeName","src":"3991:7:39","typeDescriptions":{}}},{"id":36858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4000:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":36857,"name":"uint256","nodeType":"ElementaryTypeName","src":"4000:7:39","typeDescriptions":{}}}],"id":36859,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3981:27:39","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}],"expression":{"id":36850,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3964:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":36851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3968:6:39","memberName":"decode","nodeType":"MemberAccess","src":"3964:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":36860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3964:45:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"3889:120:39"},{"expression":{"arguments":[{"id":36864,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36845,"src":"4070:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36865,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36847,"src":"4092:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36866,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36849,"src":"4114:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"arguments":[{"arguments":[{"id":36870,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36837,"src":"4167:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36869,"name":"getPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37070,"src":"4153:13:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) view returns (bytes memory)"}},"id":36871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4153:21:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":36872,"name":"ConstantSumParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36490,"src":"4177:17:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}}],"id":36873,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4176:19:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}],"expression":{"id":36867,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4142:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":36868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4146:6:39","memberName":"decode","nodeType":"MemberAccess","src":"4142:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":36874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4142:54:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":36875,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4197:5:39","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":36485,"src":"4142:60:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36862,"name":"ConstantSumLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37235,"src":"4026:14:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ConstantSumLib_$37235_$","typeString":"type(library ConstantSumLib)"}},"id":36863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4041:15:39","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":37234,"src":"4026:30:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,uint256) pure returns (int256)"}},"id":36876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4026:186:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":36843,"id":36877,"nodeType":"Return","src":"4019:193:39"}]},"baseFunctions":[29826],"functionSelector":"002e524b","implemented":true,"kind":"function","modifiers":[],"name":"computeSwapConstant","nameLocation":"3771:19:39","parameters":{"id":36840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36837,"mutability":"mutable","name":"poolId","nameLocation":"3808:6:39","nodeType":"VariableDeclaration","scope":36879,"src":"3800:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36836,"name":"uint256","nodeType":"ElementaryTypeName","src":"3800:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36839,"mutability":"mutable","name":"data","nameLocation":"3837:4:39","nodeType":"VariableDeclaration","scope":36879,"src":"3824:17:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":36838,"name":"bytes","nodeType":"ElementaryTypeName","src":"3824:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3790:57:39"},"returnParameters":{"id":36843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36842,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36879,"src":"3871:6:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":36841,"name":"int256","nodeType":"ElementaryTypeName","src":"3871:6:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3870:8:39"},"scope":37071,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":36945,"nodeType":"FunctionDefinition","src":"4270:709:39","nodes":[],"body":{"id":36944,"nodeType":"Block","src":"4595:384:39","nodes":[],"statements":[{"expression":{"id":36913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":36898,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36892,"src":"4606:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36899,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36894,"src":"4616:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36900,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36896,"src":"4626:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":36901,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"4605:36:39","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":36904,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36885,"src":"4667:4:39","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":36906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4674:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":36905,"name":"uint256","nodeType":"ElementaryTypeName","src":"4674:7:39","typeDescriptions":{}}},{"id":36908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4683:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":36907,"name":"uint256","nodeType":"ElementaryTypeName","src":"4683:7:39","typeDescriptions":{}}},{"id":36910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4692:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":36909,"name":"uint256","nodeType":"ElementaryTypeName","src":"4692:7:39","typeDescriptions":{}}}],"id":36911,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4673:27:39","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}],"expression":{"id":36902,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4656:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":36903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4660:6:39","memberName":"decode","nodeType":"MemberAccess","src":"4656:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":36912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4656:45:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"src":"4605:96:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36914,"nodeType":"ExpressionStatement","src":"4605:96:39"},{"expression":{"id":36931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36915,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36890,"src":"4712:9:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":36918,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36892,"src":"4768:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36919,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36894,"src":"4790:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36920,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36896,"src":"4812:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"arguments":[{"arguments":[{"id":36924,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36883,"src":"4865:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36923,"name":"getPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37070,"src":"4851:13:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) view returns (bytes memory)"}},"id":36925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4851:21:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":36926,"name":"ConstantSumParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36490,"src":"4875:17:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}}],"id":36927,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4874:19:39","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}],"expression":{"id":36921,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4840:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":36922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4844:6:39","memberName":"decode","nodeType":"MemberAccess","src":"4840:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":36928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4840:54:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":36929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4895:5:39","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":36485,"src":"4840:60:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36916,"name":"ConstantSumLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37235,"src":"4724:14:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ConstantSumLib_$37235_$","typeString":"type(library ConstantSumLib)"}},"id":36917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4739:15:39","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":37234,"src":"4724:30:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,uint256) pure returns (int256)"}},"id":36930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4724:186:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4712:198:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":36932,"nodeType":"ExpressionStatement","src":"4712:198:39"},{"expression":{"id":36942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36933,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36888,"src":"4921:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":36941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":36937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"4929:8:39","subExpression":{"id":36934,"name":"EPSILON","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30665,"src":"4930:7:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":36936,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36890,"src":"4940:9:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4929:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":36940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36938,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36890,"src":"4953:9:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":36939,"name":"EPSILON","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30665,"src":"4965:7:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4953:19:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4929:43:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4921:51:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36943,"nodeType":"ExpressionStatement","src":"4921:51:39"}]},"baseFunctions":[29787],"functionSelector":"8a04bdd5","implemented":true,"kind":"function","modifiers":[],"name":"validateAllocateOrDeallocate","nameLocation":"4279:28:39","parameters":{"id":36886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36881,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36945,"src":"4317:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36880,"name":"address","nodeType":"ElementaryTypeName","src":"4317:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36883,"mutability":"mutable","name":"poolId","nameLocation":"4342:6:39","nodeType":"VariableDeclaration","scope":36945,"src":"4334:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36882,"name":"uint256","nodeType":"ElementaryTypeName","src":"4334:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36885,"mutability":"mutable","name":"data","nameLocation":"4373:4:39","nodeType":"VariableDeclaration","scope":36945,"src":"4358:19:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":36884,"name":"bytes","nodeType":"ElementaryTypeName","src":"4358:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4307:76:39"},"returnParameters":{"id":36897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36888,"mutability":"mutable","name":"valid","nameLocation":"4449:5:39","nodeType":"VariableDeclaration","scope":36945,"src":"4444:10:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36887,"name":"bool","nodeType":"ElementaryTypeName","src":"4444:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":36890,"mutability":"mutable","name":"invariant","nameLocation":"4475:9:39","nodeType":"VariableDeclaration","scope":36945,"src":"4468:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":36889,"name":"int256","nodeType":"ElementaryTypeName","src":"4468:6:39","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":36892,"mutability":"mutable","name":"reserveX","nameLocation":"4506:8:39","nodeType":"VariableDeclaration","scope":36945,"src":"4498:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36891,"name":"uint256","nodeType":"ElementaryTypeName","src":"4498:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36894,"mutability":"mutable","name":"reserveY","nameLocation":"4536:8:39","nodeType":"VariableDeclaration","scope":36945,"src":"4528:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36893,"name":"uint256","nodeType":"ElementaryTypeName","src":"4528:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36896,"mutability":"mutable","name":"totalLiquidity","nameLocation":"4566:14:39","nodeType":"VariableDeclaration","scope":36945,"src":"4558:22:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36895,"name":"uint256","nodeType":"ElementaryTypeName","src":"4558:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4430:160:39"},"scope":37071,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37035,"nodeType":"FunctionDefinition","src":"4985:967:39","nodes":[],"body":{"id":37034,"nodeType":"Block","src":"5102:850:39","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36956,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36947,"src":"5116:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"baseExpression":{"id":36957,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36502,"src":"5126:14:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$36483_storage_$","typeString":"mapping(uint256 => struct ConstantSum.InternalParams storage ref)"}},"id":36959,"indexExpression":{"id":36958,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36949,"src":"5141:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5126:22:39","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$36483_storage","typeString":"struct ConstantSum.InternalParams storage ref"}},"id":36960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5149:10:39","memberName":"controller","nodeType":"MemberAccess","referencedDeclaration":36482,"src":"5126:33:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5116:43:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36965,"nodeType":"IfStatement","src":"5112:71:39","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36962,"name":"InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29742,"src":"5168:13:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5168:15:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36964,"nodeType":"RevertStatement","src":"5161:22:39"}},{"assignments":[36970],"declarations":[{"constant":false,"id":36970,"mutability":"mutable","name":"updateCode","nameLocation":"5230:10:39","nodeType":"VariableDeclaration","scope":37034,"src":"5193:47:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConstantSumUpdateCode_$37086","typeString":"enum ConstantSumLib.ConstantSumUpdateCode"},"typeName":{"id":36969,"nodeType":"UserDefinedTypeName","pathNode":{"id":36968,"name":"ConstantSumLib.ConstantSumUpdateCode","nameLocations":["5193:14:39","5208:21:39"],"nodeType":"IdentifierPath","referencedDeclaration":37086,"src":"5193:36:39"},"referencedDeclaration":37086,"src":"5193:36:39","typeDescriptions":{"typeIdentifier":"t_enum$_ConstantSumUpdateCode_$37086","typeString":"enum ConstantSumLib.ConstantSumUpdateCode"}},"visibility":"internal"}],"id":36978,"initialValue":{"arguments":[{"id":36973,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36951,"src":"5266:4:39","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"expression":{"id":36974,"name":"ConstantSumLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37235,"src":"5273:14:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ConstantSumLib_$37235_$","typeString":"type(library ConstantSumLib)"}},"id":36975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5288:21:39","memberName":"ConstantSumUpdateCode","nodeType":"MemberAccess","referencedDeclaration":37086,"src":"5273:36:39","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConstantSumUpdateCode_$37086_$","typeString":"type(enum ConstantSumLib.ConstantSumUpdateCode)"}}],"id":36976,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5272:38:39","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConstantSumUpdateCode_$37086_$","typeString":"type(enum ConstantSumLib.ConstantSumUpdateCode)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_enum$_ConstantSumUpdateCode_$37086_$","typeString":"type(enum ConstantSumLib.ConstantSumUpdateCode)"}],"expression":{"id":36971,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5255:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":36972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5259:6:39","memberName":"decode","nodeType":"MemberAccess","src":"5255:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":36977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5255:56:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ConstantSumUpdateCode_$37086","typeString":"enum ConstantSumLib.ConstantSumUpdateCode"}},"nodeType":"VariableDeclarationStatement","src":"5193:118:39"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ConstantSumUpdateCode_$37086","typeString":"enum ConstantSumLib.ConstantSumUpdateCode"},"id":36983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36979,"name":"updateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36970,"src":"5326:10:39","typeDescriptions":{"typeIdentifier":"t_enum$_ConstantSumUpdateCode_$37086","typeString":"enum ConstantSumLib.ConstantSumUpdateCode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":36980,"name":"ConstantSumLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37235,"src":"5340:14:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ConstantSumLib_$37235_$","typeString":"type(library ConstantSumLib)"}},"id":36981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5355:21:39","memberName":"ConstantSumUpdateCode","nodeType":"MemberAccess","referencedDeclaration":37086,"src":"5340:36:39","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConstantSumUpdateCode_$37086_$","typeString":"type(enum ConstantSumLib.ConstantSumUpdateCode)"}},"id":36982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5377:5:39","memberName":"Price","nodeType":"MemberAccess","referencedDeclaration":37084,"src":"5340:42:39","typeDescriptions":{"typeIdentifier":"t_enum$_ConstantSumUpdateCode_$37086","typeString":"enum ConstantSumLib.ConstantSumUpdateCode"}},"src":"5326:56:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ConstantSumUpdateCode_$37086","typeString":"enum ConstantSumLib.ConstantSumUpdateCode"},"id":36999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36995,"name":"updateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36970,"src":"5504:10:39","typeDescriptions":{"typeIdentifier":"t_enum$_ConstantSumUpdateCode_$37086","typeString":"enum ConstantSumLib.ConstantSumUpdateCode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":36996,"name":"ConstantSumLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37235,"src":"5518:14:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ConstantSumLib_$37235_$","typeString":"type(library ConstantSumLib)"}},"id":36997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5533:21:39","memberName":"ConstantSumUpdateCode","nodeType":"MemberAccess","referencedDeclaration":37086,"src":"5518:36:39","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConstantSumUpdateCode_$37086_$","typeString":"type(enum ConstantSumLib.ConstantSumUpdateCode)"}},"id":36998,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5555:7:39","memberName":"SwapFee","nodeType":"MemberAccess","referencedDeclaration":37083,"src":"5518:44:39","typeDescriptions":{"typeIdentifier":"t_enum$_ConstantSumUpdateCode_$37086","typeString":"enum ConstantSumLib.ConstantSumUpdateCode"}},"src":"5504:58:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ConstantSumUpdateCode_$37086","typeString":"enum ConstantSumLib.ConstantSumUpdateCode"},"id":37015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37011,"name":"updateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36970,"src":"5697:10:39","typeDescriptions":{"typeIdentifier":"t_enum$_ConstantSumUpdateCode_$37086","typeString":"enum ConstantSumLib.ConstantSumUpdateCode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":37012,"name":"ConstantSumLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37235,"src":"5711:14:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ConstantSumLib_$37235_$","typeString":"type(library ConstantSumLib)"}},"id":37013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5726:21:39","memberName":"ConstantSumUpdateCode","nodeType":"MemberAccess","referencedDeclaration":37086,"src":"5711:36:39","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConstantSumUpdateCode_$37086_$","typeString":"type(enum ConstantSumLib.ConstantSumUpdateCode)"}},"id":37014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5748:10:39","memberName":"Controller","nodeType":"MemberAccess","referencedDeclaration":37085,"src":"5711:47:39","typeDescriptions":{"typeIdentifier":"t_enum$_ConstantSumUpdateCode_$37086","typeString":"enum ConstantSumLib.ConstantSumUpdateCode"}},"src":"5697:61:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":37030,"nodeType":"Block","src":"5895:51:39","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":37027,"name":"InvalidUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29736,"src":"5916:17:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":37028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5916:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37029,"nodeType":"RevertStatement","src":"5909:26:39"}]},"id":37031,"nodeType":"IfStatement","src":"5680:266:39","trueBody":{"id":37026,"nodeType":"Block","src":"5769:120:39","statements":[{"expression":{"id":37024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":37016,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36502,"src":"5783:14:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$36483_storage_$","typeString":"mapping(uint256 => struct ConstantSum.InternalParams storage ref)"}},"id":37018,"indexExpression":{"id":37017,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36949,"src":"5798:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5783:22:39","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$36483_storage","typeString":"struct ConstantSum.InternalParams storage ref"}},"id":37019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5806:10:39","memberName":"controller","nodeType":"MemberAccess","referencedDeclaration":36482,"src":"5783:33:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37022,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36951,"src":"5873:4:39","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":37020,"name":"ConstantSumLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37235,"src":"5835:14:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ConstantSumLib_$37235_$","typeString":"type(library ConstantSumLib)"}},"id":37021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5850:22:39","memberName":"decodeControllerUpdate","nodeType":"MemberAccess","referencedDeclaration":37196,"src":"5835:37:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) pure returns (address)"}},"id":37023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5835:43:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5783:95:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37025,"nodeType":"ExpressionStatement","src":"5783:95:39"}]}},"id":37032,"nodeType":"IfStatement","src":"5500:446:39","trueBody":{"id":37010,"nodeType":"Block","src":"5564:110:39","statements":[{"expression":{"id":37008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":37000,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36502,"src":"5578:14:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$36483_storage_$","typeString":"mapping(uint256 => struct ConstantSum.InternalParams storage ref)"}},"id":37002,"indexExpression":{"id":37001,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36949,"src":"5593:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5578:22:39","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$36483_storage","typeString":"struct ConstantSum.InternalParams storage ref"}},"id":37003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5601:7:39","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":36480,"src":"5578:30:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37006,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36951,"src":"5658:4:39","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":37004,"name":"ConstantSumLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37235,"src":"5627:14:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ConstantSumLib_$37235_$","typeString":"type(library ConstantSumLib)"}},"id":37005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5642:15:39","memberName":"decodeFeeUpdate","nodeType":"MemberAccess","referencedDeclaration":37125,"src":"5627:30:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":37007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5627:36:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5578:85:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37009,"nodeType":"ExpressionStatement","src":"5578:85:39"}]}},"id":37033,"nodeType":"IfStatement","src":"5322:624:39","trueBody":{"id":36994,"nodeType":"Block","src":"5384:110:39","statements":[{"expression":{"id":36992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":36984,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36502,"src":"5398:14:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$36483_storage_$","typeString":"mapping(uint256 => struct ConstantSum.InternalParams storage ref)"}},"id":36986,"indexExpression":{"id":36985,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36949,"src":"5413:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5398:22:39","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$36483_storage","typeString":"struct ConstantSum.InternalParams storage ref"}},"id":36987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5421:5:39","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":36478,"src":"5398:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":36990,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36951,"src":"5478:4:39","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":36988,"name":"ConstantSumLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37235,"src":"5445:14:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ConstantSumLib_$37235_$","typeString":"type(library ConstantSumLib)"}},"id":36989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5460:17:39","memberName":"decodePriceUpdate","nodeType":"MemberAccess","referencedDeclaration":37160,"src":"5445:32:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":36991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5445:38:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5398:85:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36993,"nodeType":"ExpressionStatement","src":"5398:85:39"}]}}]},"baseFunctions":[29817],"functionSelector":"acad2989","implemented":true,"kind":"function","modifiers":[{"id":36954,"kind":"modifierInvocation","modifierName":{"id":36953,"name":"onlyDFMM","nameLocations":["5093:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":36524,"src":"5093:8:39"},"nodeType":"ModifierInvocation","src":"5093:8:39"}],"name":"update","nameLocation":"4994:6:39","parameters":{"id":36952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36947,"mutability":"mutable","name":"sender","nameLocation":"5018:6:39","nodeType":"VariableDeclaration","scope":37035,"src":"5010:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36946,"name":"address","nodeType":"ElementaryTypeName","src":"5010:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36949,"mutability":"mutable","name":"poolId","nameLocation":"5042:6:39","nodeType":"VariableDeclaration","scope":37035,"src":"5034:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36948,"name":"uint256","nodeType":"ElementaryTypeName","src":"5034:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36951,"mutability":"mutable","name":"data","nameLocation":"5073:4:39","nodeType":"VariableDeclaration","scope":37035,"src":"5058:19:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":36950,"name":"bytes","nodeType":"ElementaryTypeName","src":"5058:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5000:83:39"},"returnParameters":{"id":36955,"nodeType":"ParameterList","parameters":[],"src":"5102:0:39"},"scope":37071,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":37070,"nodeType":"FunctionDefinition","src":"5958:269:39","nodes":[],"body":{"id":37069,"nodeType":"Block","src":"6032:195:39","nodes":[],"statements":[{"assignments":[37044],"declarations":[{"constant":false,"id":37044,"mutability":"mutable","name":"params","nameLocation":"6067:6:39","nodeType":"VariableDeclaration","scope":37069,"src":"6042:31:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams"},"typeName":{"id":37043,"nodeType":"UserDefinedTypeName","pathNode":{"id":37042,"name":"ConstantSumParams","nameLocations":["6042:17:39"],"nodeType":"IdentifierPath","referencedDeclaration":36490,"src":"6042:17:39"},"referencedDeclaration":36490,"src":"6042:17:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_storage_ptr","typeString":"struct ConstantSum.ConstantSumParams"}},"visibility":"internal"}],"id":37045,"nodeType":"VariableDeclarationStatement","src":"6042:31:39"},{"expression":{"id":37053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":37046,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37044,"src":"6084:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":37048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6091:5:39","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":36485,"src":"6084:12:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":37049,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36502,"src":"6099:14:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$36483_storage_$","typeString":"mapping(uint256 => struct ConstantSum.InternalParams storage ref)"}},"id":37051,"indexExpression":{"id":37050,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37037,"src":"6114:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6099:22:39","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$36483_storage","typeString":"struct ConstantSum.InternalParams storage ref"}},"id":37052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6122:5:39","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":36478,"src":"6099:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6084:43:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37054,"nodeType":"ExpressionStatement","src":"6084:43:39"},{"expression":{"id":37062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":37055,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37044,"src":"6137:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":37057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6144:7:39","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":36487,"src":"6137:14:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":37058,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36502,"src":"6154:14:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$36483_storage_$","typeString":"mapping(uint256 => struct ConstantSum.InternalParams storage ref)"}},"id":37060,"indexExpression":{"id":37059,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37037,"src":"6169:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6154:22:39","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$36483_storage","typeString":"struct ConstantSum.InternalParams storage ref"}},"id":37061,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6177:7:39","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":36480,"src":"6154:30:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6137:47:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37063,"nodeType":"ExpressionStatement","src":"6137:47:39"},{"expression":{"arguments":[{"id":37066,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37044,"src":"6213:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}],"expression":{"id":37064,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6202:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37065,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6206:6:39","memberName":"encode","nodeType":"MemberAccess","src":"6202:10:39","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":37067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6202:18:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":37041,"id":37068,"nodeType":"Return","src":"6195:25:39"}]},"baseFunctions":[29838],"functionSelector":"dc178355","implemented":true,"kind":"function","modifiers":[],"name":"getPoolParams","nameLocation":"5967:13:39","parameters":{"id":37038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37037,"mutability":"mutable","name":"poolId","nameLocation":"5989:6:39","nodeType":"VariableDeclaration","scope":37070,"src":"5981:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37036,"name":"uint256","nodeType":"ElementaryTypeName","src":"5981:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5980:16:39"},"returnParameters":{"id":37041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37070,"src":"6018:12:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37039,"name":"bytes","nodeType":"ElementaryTypeName","src":"6018:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6017:14:39"},"scope":37071,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":36468,"name":"IStrategy","nameLocations":["268:9:39"],"nodeType":"IdentifierPath","referencedDeclaration":29839,"src":"268:9:39"},"id":36469,"nodeType":"InheritanceSpecifier","src":"268:9:39"}],"canonicalName":"ConstantSum","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[37071,29839],"name":"ConstantSum","nameLocation":"253:11:39","scope":37072,"usedErrors":[29736,29739,29742],"usedEvents":[]}],"license":"GPL-3.0-or-later"},"id":39} \ No newline at end of file diff --git a/out/ConstantSumLib.sol/ConstantSumLib.json b/out/ConstantSumLib.sol/ConstantSumLib.json deleted file mode 100644 index 7d1262b8..00000000 --- a/out/ConstantSumLib.sol/ConstantSumLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212200ef46d293530ddb789726cc741ebd2295b93aae341c4835da56cf1566e872c0a64736f6c63430008160033","sourceMap":"208:1733:40:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212200ef46d293530ddb789726cc741ebd2295b93aae341c4835da56cf1566e872c0a64736f6c63430008160033","sourceMap":"208:1733:40:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/strategies/ConstantSum/ConstantSumLib.sol\":\"ConstantSumLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/strategies/ConstantSum/ConstantSum.sol\":{\"keccak256\":\"0xb842f20507e6dcc6751ca5a7e902b3a71376bacd6ccb732c36369ec42b80293b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3e8eab1244452c527e995512bf2be44809de0dff09f9c675a9aa65dee5e85fe5\",\"dweb:/ipfs/QmfHn6yjWUhrVbKwSA6hZ1xpCXd5zFjgkGoKv6jqPdjnbK\"]},\"src/strategies/ConstantSum/ConstantSumLib.sol\":{\"keccak256\":\"0xbecc63accf7f1015ad2e60521f9c91f03b2692493e93b936e3939a1619f51c2a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2cbb36900fbcd271029f9659731988e3c401d01f19ab9a3b7ce182153918dc66\",\"dweb:/ipfs/QmZS3YyfNRdwndyb8njoByb7qVbAKEbo6DgejmUdNAfkwv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/strategies/ConstantSum/ConstantSumLib.sol":"ConstantSumLib"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/strategies/ConstantSum/ConstantSum.sol":{"keccak256":"0xb842f20507e6dcc6751ca5a7e902b3a71376bacd6ccb732c36369ec42b80293b","urls":["bzz-raw://3e8eab1244452c527e995512bf2be44809de0dff09f9c675a9aa65dee5e85fe5","dweb:/ipfs/QmfHn6yjWUhrVbKwSA6hZ1xpCXd5zFjgkGoKv6jqPdjnbK"],"license":"GPL-3.0-or-later"},"src/strategies/ConstantSum/ConstantSumLib.sol":{"keccak256":"0xbecc63accf7f1015ad2e60521f9c91f03b2692493e93b936e3939a1619f51c2a","urls":["bzz-raw://2cbb36900fbcd271029f9659731988e3c401d01f19ab9a3b7ce182153918dc66","dweb:/ipfs/QmZS3YyfNRdwndyb8njoByb7qVbAKEbo6DgejmUdNAfkwv"],"license":"GPL-3.0-or-later"}},"version":1},"ast":{"absolutePath":"src/strategies/ConstantSum/ConstantSumLib.sol","id":37236,"exportedSymbols":{"ConstantSum":[37071],"ConstantSumLib":[37235],"EPSILON":[30665],"FixedPointMathLib":[26640],"Gaussian":[27374],"HALF":[30636],"INFINITY_IS_NOT_REAL":[30646],"I_ONE":[30655],"I_TWO":[30661],"Min":[27736],"ONE":[30639],"SQRT_WAD":[30630],"TWO":[30633],"ZERO":[30649],"abs":[27763],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"diviWad":[27813],"muli":[27777],"muliWad":[27795]},"nodeType":"SourceUnit","src":"45:1897:40","nodes":[{"id":37073,"nodeType":"PragmaDirective","src":"45:24:40","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":37074,"nodeType":"ImportDirective","src":"71:27:40","nodes":[],"absolutePath":"src/strategies/ConstantSum/ConstantSum.sol","file":"./ConstantSum.sol","nameLocation":"-1:-1:-1","scope":37236,"sourceUnit":37072,"symbolAliases":[],"unitAlias":""},{"id":37075,"nodeType":"ImportDirective","src":"99:33:40","nodes":[],"absolutePath":"src/lib/StrategyLib.sol","file":"src/lib/StrategyLib.sol","nameLocation":"-1:-1:-1","scope":37236,"sourceUnit":30776,"symbolAliases":[],"unitAlias":""},{"id":37078,"nodeType":"UsingForDirective","src":"134:36:40","nodes":[],"global":false,"libraryName":{"id":37076,"name":"FixedPointMathLib","nameLocations":["140:17:40"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"140:17:40"},"typeName":{"id":37077,"name":"uint256","nodeType":"ElementaryTypeName","src":"162:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":37081,"nodeType":"UsingForDirective","src":"171:35:40","nodes":[],"global":false,"libraryName":{"id":37079,"name":"FixedPointMathLib","nameLocations":["177:17:40"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"177:17:40"},"typeName":{"id":37080,"name":"int256","nodeType":"ElementaryTypeName","src":"199:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":37235,"nodeType":"ContractDefinition","src":"208:1733:40","nodes":[{"id":37086,"nodeType":"EnumDefinition","src":"237:102:40","nodes":[],"canonicalName":"ConstantSumLib.ConstantSumUpdateCode","members":[{"id":37082,"name":"Invalid","nameLocation":"274:7:40","nodeType":"EnumValue","src":"274:7:40"},{"id":37083,"name":"SwapFee","nameLocation":"291:7:40","nodeType":"EnumValue","src":"291:7:40"},{"id":37084,"name":"Price","nameLocation":"308:5:40","nodeType":"EnumValue","src":"308:5:40"},{"id":37085,"name":"Controller","nameLocation":"323:10:40","nodeType":"EnumValue","src":"323:10:40"}],"name":"ConstantSumUpdateCode","nameLocation":"242:21:40"},{"id":37104,"nodeType":"FunctionDefinition","src":"345:190:40","nodes":[],"body":{"id":37103,"nodeType":"Block","src":"452:83:40","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":37095,"name":"ConstantSumUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37086,"src":"480:21:40","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConstantSumUpdateCode_$37086_$","typeString":"type(enum ConstantSumLib.ConstantSumUpdateCode)"}},"id":37096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"502:7:40","memberName":"SwapFee","nodeType":"MemberAccess","referencedDeclaration":37083,"src":"480:29:40","typeDescriptions":{"typeIdentifier":"t_enum$_ConstantSumUpdateCode_$37086","typeString":"enum ConstantSumLib.ConstantSumUpdateCode"}},{"arguments":[{"id":37099,"name":"swapFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37088,"src":"519:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"511:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":37097,"name":"uint256","nodeType":"ElementaryTypeName","src":"511:7:40","typeDescriptions":{}}},"id":37100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"511:16:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ConstantSumUpdateCode_$37086","typeString":"enum ConstantSumLib.ConstantSumUpdateCode"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37093,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"469:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37094,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"473:6:40","memberName":"encode","nodeType":"MemberAccess","src":"469:10:40","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":37101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"469:59:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":37092,"id":37102,"nodeType":"Return","src":"462:66:40"}]},"implemented":true,"kind":"function","modifiers":[],"name":"encodeFeeUpdate","nameLocation":"354:15:40","parameters":{"id":37089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37088,"mutability":"mutable","name":"swapFee","nameLocation":"378:7:40","nodeType":"VariableDeclaration","scope":37104,"src":"370:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37087,"name":"uint256","nodeType":"ElementaryTypeName","src":"370:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"369:17:40"},"returnParameters":{"id":37092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37104,"src":"434:12:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37090,"name":"bytes","nodeType":"ElementaryTypeName","src":"434:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"433:14:40"},"scope":37235,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37125,"nodeType":"FunctionDefinition","src":"541:217:40","nodes":[],"body":{"id":37124,"nodeType":"Block","src":"645:113:40","nodes":[],"statements":[{"assignments":[null,37112],"declarations":[null,{"constant":false,"id":37112,"mutability":"mutable","name":"swapFee","nameLocation":"666:7:40","nodeType":"VariableDeclaration","scope":37124,"src":"658:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37111,"name":"uint256","nodeType":"ElementaryTypeName","src":"658:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37121,"initialValue":{"arguments":[{"id":37115,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37106,"src":"688:4:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":37116,"name":"ConstantSumUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37086,"src":"695:21:40","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConstantSumUpdateCode_$37086_$","typeString":"type(enum ConstantSumLib.ConstantSumUpdateCode)"}},{"id":37118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"718:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":37117,"name":"uint256","nodeType":"ElementaryTypeName","src":"718:7:40","typeDescriptions":{}}}],"id":37119,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"694:32:40","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_enum$_ConstantSumUpdateCode_$37086_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(enum ConstantSumLib.ConstantSumUpdateCode),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_enum$_ConstantSumUpdateCode_$37086_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(enum ConstantSumLib.ConstantSumUpdateCode),type(uint256))"}],"expression":{"id":37113,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"677:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"681:6:40","memberName":"decode","nodeType":"MemberAccess","src":"677:10:40","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":37120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"677:50:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_ConstantSumUpdateCode_$37086_$_t_uint256_$","typeString":"tuple(enum ConstantSumLib.ConstantSumUpdateCode,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"655:72:40"},{"expression":{"id":37122,"name":"swapFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37112,"src":"744:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37110,"id":37123,"nodeType":"Return","src":"737:14:40"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decodeFeeUpdate","nameLocation":"550:15:40","parameters":{"id":37107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37106,"mutability":"mutable","name":"data","nameLocation":"579:4:40","nodeType":"VariableDeclaration","scope":37125,"src":"566:17:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37105,"name":"bytes","nodeType":"ElementaryTypeName","src":"566:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"565:19:40"},"returnParameters":{"id":37110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37109,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37125,"src":"632:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37108,"name":"uint256","nodeType":"ElementaryTypeName","src":"632:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"631:9:40"},"scope":37235,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37140,"nodeType":"FunctionDefinition","src":"764:183:40","nodes":[],"body":{"id":37139,"nodeType":"Block","src":"874:73:40","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":37134,"name":"ConstantSumUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37086,"src":"902:21:40","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConstantSumUpdateCode_$37086_$","typeString":"type(enum ConstantSumLib.ConstantSumUpdateCode)"}},"id":37135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"924:5:40","memberName":"Price","nodeType":"MemberAccess","referencedDeclaration":37084,"src":"902:27:40","typeDescriptions":{"typeIdentifier":"t_enum$_ConstantSumUpdateCode_$37086","typeString":"enum ConstantSumLib.ConstantSumUpdateCode"}},{"id":37136,"name":"newPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"931:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ConstantSumUpdateCode_$37086","typeString":"enum ConstantSumLib.ConstantSumUpdateCode"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37132,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"891:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37133,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"895:6:40","memberName":"encode","nodeType":"MemberAccess","src":"891:10:40","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":37137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"891:49:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":37131,"id":37138,"nodeType":"Return","src":"884:56:40"}]},"implemented":true,"kind":"function","modifiers":[],"name":"encodePriceUpdate","nameLocation":"773:17:40","parameters":{"id":37128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37127,"mutability":"mutable","name":"newPrice","nameLocation":"799:8:40","nodeType":"VariableDeclaration","scope":37140,"src":"791:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37126,"name":"uint256","nodeType":"ElementaryTypeName","src":"791:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"790:18:40"},"returnParameters":{"id":37131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37130,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37140,"src":"856:12:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37129,"name":"bytes","nodeType":"ElementaryTypeName","src":"856:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"855:14:40"},"scope":37235,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37160,"nodeType":"FunctionDefinition","src":"953:197:40","nodes":[],"body":{"id":37159,"nodeType":"Block","src":"1068:82:40","nodes":[],"statements":[{"expression":{"id":37157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[null,{"id":37147,"name":"newPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37145,"src":"1081:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":37148,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1078:12:40","typeDescriptions":{"typeIdentifier":"t_tuple$__$_t_uint256_$","typeString":"tuple(,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37151,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37142,"src":"1104:4:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":37152,"name":"ConstantSumUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37086,"src":"1111:21:40","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConstantSumUpdateCode_$37086_$","typeString":"type(enum ConstantSumLib.ConstantSumUpdateCode)"}},{"id":37154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1134:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":37153,"name":"uint256","nodeType":"ElementaryTypeName","src":"1134:7:40","typeDescriptions":{}}}],"id":37155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1110:32:40","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_enum$_ConstantSumUpdateCode_$37086_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(enum ConstantSumLib.ConstantSumUpdateCode),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_enum$_ConstantSumUpdateCode_$37086_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(enum ConstantSumLib.ConstantSumUpdateCode),type(uint256))"}],"expression":{"id":37149,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1093:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1097:6:40","memberName":"decode","nodeType":"MemberAccess","src":"1093:10:40","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":37156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1093:50:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_ConstantSumUpdateCode_$37086_$_t_uint256_$","typeString":"tuple(enum ConstantSumLib.ConstantSumUpdateCode,uint256)"}},"src":"1078:65:40","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37158,"nodeType":"ExpressionStatement","src":"1078:65:40"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decodePriceUpdate","nameLocation":"962:17:40","parameters":{"id":37143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37142,"mutability":"mutable","name":"data","nameLocation":"993:4:40","nodeType":"VariableDeclaration","scope":37160,"src":"980:17:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37141,"name":"bytes","nodeType":"ElementaryTypeName","src":"980:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"979:19:40"},"returnParameters":{"id":37146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37145,"mutability":"mutable","name":"newPrice","nameLocation":"1054:8:40","nodeType":"VariableDeclaration","scope":37160,"src":"1046:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37144,"name":"uint256","nodeType":"ElementaryTypeName","src":"1046:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1045:18:40"},"scope":37235,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37175,"nodeType":"FunctionDefinition","src":"1156:197:40","nodes":[],"body":{"id":37174,"nodeType":"Block","src":"1273:80:40","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":37169,"name":"ConstantSumUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37086,"src":"1301:21:40","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConstantSumUpdateCode_$37086_$","typeString":"type(enum ConstantSumLib.ConstantSumUpdateCode)"}},"id":37170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1323:10:40","memberName":"Controller","nodeType":"MemberAccess","referencedDeclaration":37085,"src":"1301:32:40","typeDescriptions":{"typeIdentifier":"t_enum$_ConstantSumUpdateCode_$37086","typeString":"enum ConstantSumLib.ConstantSumUpdateCode"}},{"id":37171,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37162,"src":"1335:10:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ConstantSumUpdateCode_$37086","typeString":"enum ConstantSumLib.ConstantSumUpdateCode"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":37167,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1290:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1294:6:40","memberName":"encode","nodeType":"MemberAccess","src":"1290:10:40","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":37172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1290:56:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":37166,"id":37173,"nodeType":"Return","src":"1283:63:40"}]},"implemented":true,"kind":"function","modifiers":[],"name":"encodeControllerUpdate","nameLocation":"1165:22:40","parameters":{"id":37163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37162,"mutability":"mutable","name":"controller","nameLocation":"1196:10:40","nodeType":"VariableDeclaration","scope":37175,"src":"1188:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37161,"name":"address","nodeType":"ElementaryTypeName","src":"1188:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1187:20:40"},"returnParameters":{"id":37166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37165,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37175,"src":"1255:12:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37164,"name":"bytes","nodeType":"ElementaryTypeName","src":"1255:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1254:14:40"},"scope":37235,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37196,"nodeType":"FunctionDefinition","src":"1359:242:40","nodes":[],"body":{"id":37195,"nodeType":"Block","src":"1470:131:40","nodes":[],"statements":[{"assignments":[null,37183],"declarations":[null,{"constant":false,"id":37183,"mutability":"mutable","name":"controller","nameLocation":"1491:10:40","nodeType":"VariableDeclaration","scope":37195,"src":"1483:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37182,"name":"address","nodeType":"ElementaryTypeName","src":"1483:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":37192,"initialValue":{"arguments":[{"id":37186,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37177,"src":"1528:4:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":37187,"name":"ConstantSumUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37086,"src":"1535:21:40","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConstantSumUpdateCode_$37086_$","typeString":"type(enum ConstantSumLib.ConstantSumUpdateCode)"}},{"id":37189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1558:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":37188,"name":"address","nodeType":"ElementaryTypeName","src":"1558:7:40","typeDescriptions":{}}}],"id":37190,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1534:32:40","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_enum$_ConstantSumUpdateCode_$37086_$_$_t_type$_t_address_$_$","typeString":"tuple(type(enum ConstantSumLib.ConstantSumUpdateCode),type(address))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_enum$_ConstantSumUpdateCode_$37086_$_$_t_type$_t_address_$_$","typeString":"tuple(type(enum ConstantSumLib.ConstantSumUpdateCode),type(address))"}],"expression":{"id":37184,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1517:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1521:6:40","memberName":"decode","nodeType":"MemberAccess","src":"1517:10:40","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":37191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1517:50:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_ConstantSumUpdateCode_$37086_$_t_address_payable_$","typeString":"tuple(enum ConstantSumLib.ConstantSumUpdateCode,address payable)"}},"nodeType":"VariableDeclarationStatement","src":"1480:87:40"},{"expression":{"id":37193,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37183,"src":"1584:10:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":37181,"id":37194,"nodeType":"Return","src":"1577:17:40"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decodeControllerUpdate","nameLocation":"1368:22:40","parameters":{"id":37178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37177,"mutability":"mutable","name":"data","nameLocation":"1404:4:40","nodeType":"VariableDeclaration","scope":37196,"src":"1391:17:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37176,"name":"bytes","nodeType":"ElementaryTypeName","src":"1391:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1390:19:40"},"returnParameters":{"id":37181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37180,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37196,"src":"1457:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37179,"name":"address","nodeType":"ElementaryTypeName","src":"1457:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1456:9:40"},"scope":37235,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37234,"nodeType":"FunctionDefinition","src":"1607:332:40","nodes":[],"body":{"id":37233,"nodeType":"Block","src":"1776:163:40","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":37231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":37226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":37213,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37202,"src":"1818:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37211,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37198,"src":"1800:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1809:8:40","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"1800:17:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":37214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1800:33:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37210,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1793:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":37209,"name":"int256","nodeType":"ElementaryTypeName","src":"1793:6:40","typeDescriptions":{}}},"id":37215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1793:41:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"arguments":[{"arguments":[{"id":37222,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37204,"src":"1898:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37220,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37202,"src":"1874:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1889:8:40","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"1874:23:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":37223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1874:30:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37218,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37200,"src":"1856:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1865:8:40","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"1856:17:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":37224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1856:49:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37217,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1849:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":37216,"name":"int256","nodeType":"ElementaryTypeName","src":"1849:6:40","typeDescriptions":{}}},"id":37225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1849:57:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1793:113:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":37229,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"1928:3:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1921:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":37227,"name":"int256","nodeType":"ElementaryTypeName","src":"1921:6:40","typeDescriptions":{}}},"id":37230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1921:11:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1793:139:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":37208,"id":37232,"nodeType":"Return","src":"1786:146:40"}]},"implemented":true,"kind":"function","modifiers":[],"name":"tradingFunction","nameLocation":"1616:15:40","parameters":{"id":37205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37198,"mutability":"mutable","name":"reserveX","nameLocation":"1649:8:40","nodeType":"VariableDeclaration","scope":37234,"src":"1641:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37197,"name":"uint256","nodeType":"ElementaryTypeName","src":"1641:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37200,"mutability":"mutable","name":"reserveY","nameLocation":"1675:8:40","nodeType":"VariableDeclaration","scope":37234,"src":"1667:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37199,"name":"uint256","nodeType":"ElementaryTypeName","src":"1667:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37202,"mutability":"mutable","name":"totalLiquidity","nameLocation":"1701:14:40","nodeType":"VariableDeclaration","scope":37234,"src":"1693:22:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37201,"name":"uint256","nodeType":"ElementaryTypeName","src":"1693:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37204,"mutability":"mutable","name":"price","nameLocation":"1733:5:40","nodeType":"VariableDeclaration","scope":37234,"src":"1725:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37203,"name":"uint256","nodeType":"ElementaryTypeName","src":"1725:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1631:113:40"},"returnParameters":{"id":37208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37207,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37234,"src":"1768:6:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":37206,"name":"int256","nodeType":"ElementaryTypeName","src":"1768:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1767:8:40"},"scope":37235,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"ConstantSumLib","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[37235],"name":"ConstantSumLib","nameLocation":"216:14:40","scope":37236,"usedErrors":[],"usedEvents":[]}],"license":"GPL-3.0-or-later"},"id":40} \ No newline at end of file diff --git a/out/ConstantSumSolver.sol/ConstantSumSolver.json b/out/ConstantSumSolver.sol/ConstantSumSolver.json deleted file mode 100644 index 763ed7f0..00000000 --- a/out/ConstantSumSolver.sol/ConstantSumSolver.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"strategy_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"getInitialPoolData","inputs":[{"name":"rx","type":"uint256","internalType":"uint256"},{"name":"ry","type":"uint256","internalType":"uint256"},{"name":"params","type":"tuple","internalType":"struct ConstantSum.ConstantSumParams","components":[{"name":"price","type":"uint256","internalType":"uint256"},{"name":"swapFee","type":"uint256","internalType":"uint256"},{"name":"controller","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"simulateAllocateOrDeallocate","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"IsAllocate","type":"bool","internalType":"bool"},{"name":"amountX","type":"uint256","internalType":"uint256"},{"name":"amountY","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"simulateSwap","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"swapXIn","type":"bool","internalType":"bool"},{"name":"amountIn","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"strategy","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"error","name":"NotEnoughLiquidity","inputs":[]}],"bytecode":{"object":"0x60803461007457601f610c8938819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051610bf990816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60406080815260048036101561001457600080fd5b600091823560e01c9283633928ff971461005f57505050806389ea85591461005a5780638a1a20de146100555763a8c62e761461005057600080fd5b61088b565b6105c9565b6104fa565b346103cc5760603660031901126103cc57823560243561007e816103cf565b6044359161008a6108b4565b956100936108b4565b85549094906100b8906100ac906001600160a01b031681565b6001600160a01b031690565b8751632bee84f160e21b81529094602092838386818a5afa9283156102b657899361039d575b5060608a5180946333854efd60e21b825281806101028b8b83019190602083019252565b03916001600160a01b03165afa9081156102b6578b938a908b908c94610367575b50858d019384529486019485528c528a5163dc17835560e01b81528681018881528b908290819060200103818c5afa80156102b657610172918c91610345575b50868082518301019101610978565b92156102cb57916101be916101b66101de946101af888501516101a96101a361019b8386610b54565b975185610b80565b916109c8565b90610b80565b9e516109eb565b8a52516109eb565b8988019081526101d58b6101d06109f8565b610acc565b516101d0610a1f565b888151106102bb579261022f959261023d61025996936102018c60c098516109de565b818701525b8a5198899687928301919091604080606083019480518452602081015160208501520151910152565b03601f1981018652856104b6565b8851630d17a7c760e31b81529586948593849330908501610a78565b03915afa9283156102b6579261027e575b5061027a91925193849384610426565b0390f35b61027a92506102a49060c03d60c0116102af575b61029c81836104b6565b810190610a41565b50505050509161026a565b503d610292565b6108e8565b8751634323a55560e01b81528390fd5b916101be9161031161031b946101af969e968885015194610309836103046102fe6102f68a84610b54565b855190610b24565b986109c8565b610b80565b905190610ba1565b868b0152516109eb565b888151106102bb579261022f959261023d610259969361033e8c60c098516109de565b8652610206565b61036191503d808e833e61035981836104b6565b81019061090f565b8e610163565b91505061038d91925060603d606011610396575b61038581836104b6565b8101906108f4565b9291908e610123565b503d61037b565b6103be919350843d86116103c5575b6103b681836104b6565b8101906108d3565b918b6100de565b503d6103ac565b80fd5b801515036103d957565b600080fd5b60005b8381106103f15750506000910152565b81810151838201526020016103e1565b9060209161041a815180928185528580860191016103de565b601f01601f1916010190565b61044493926060921515825260208201528160408201520190610401565b90565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761047957604052565b610447565b60e0810190811067ffffffffffffffff82111761047957604052565b6040810190811067ffffffffffffffff82111761047957604052565b90601f8019910116810190811067ffffffffffffffff82111761047957604052565b6001600160a01b038116036103d957565b906020610444928181520190610401565b346103d95760a03660031901126103d95760243560043560603660431901126103d9576040516105298161045d565b60443590818152602081019060643582526105576084359361054a856104d8565b6040830194855286610b24565b84018085116105ab5761027a95604051956020870152604086015260608501525160808401525160a083015260018060a01b0390511660c082015260c0815261059f8161047e565b604051918291826104e9565b6109b2565b6040906104449392151581528160208201520190610401565b346103d95760803660031901126103d957600460243581356105ea826103cf565b604435906064356105f96108b4565b916106026108b4565b9260009561061c6100ac6100ac895460018060a01b031690565b93604096875190632bee84f160e21b825260209485838d818b5afa80156102b657876060918e61066d968f9261086c575b508d516333854efd60e21b81529081019283529586928391829160200190565b03916001600160a01b03165afa80156102b6578b888e6106bd938e9784918591869161084a575b508c880199880152885285528d51938492839263dc17835560e01b845283019190602083019252565b03818c5afa80156102b6576106e2918d91610830575b50878082518301019101610978565b94156107cf5761077698969461072661071761022f9e9661075a9661070f60a09d9b9761072c97516109eb565b8c52516109eb565b80858b01528951925190610b24565b906109eb565b898701525b88519a8b9687928301919091604080606083019480518452602081015160208501520151910152565b8651638a04bdd560e01b81529586948593849330908501610a78565b03915afa9283156102b65792610796575b5061027a9051928392836105b0565b61027a9192506107bd9060a03d60a0116107c8575b6107b581836104b6565b810190610a9c565b505050509190610787565b503d6107ab565b818151108015610826575b6108165761077698969461072661071761022f9e9661075a9661080560a09d9b9761080d97516109de565b8c52516109de565b89870152610731565b8951634323a55560e01b81528c90fd5b50838351106107da565b61084491503d808f833e61035981836104b6565b386106d3565b915050610866915060603d6060116103965761038581836104b6565b38610694565b6108849192508a3d8c116103c5576103b681836104b6565b903861064d565b346103d95760003660031901126103d9576000546040516001600160a01b039091168152602090f35b604051906108c18261045d565b60006040838281528260208201520152565b908160209103126103d95751610444816104d8565b6040513d6000823e3d90fd5b908160609103126103d9578051916040602083015192015190565b6020818303126103d957805167ffffffffffffffff918282116103d957019082601f830112156103d9578151908111610479576040519261095a601f8301601f1916602001856104b6565b818452602082840101116103d95761044491602080850191016103de565b908160609103126103d95760408051916109918361045d565b805183526020810151602084015201516109aa816104d8565b604082015290565b634e487b7160e01b600052601160045260246000fd5b90670de0b6b3a76400009182039182116105ab57565b919082039182116105ab57565b919082018092116105ab57565b60405190610a058261049a565b600b82526a030b6b7bab73a27baba1d160ad1b6020830152565b60405190610a2c8261049a565b600682526503732bba61d160d51b6020830152565b91908260c09103126103d9578151610a58816103cf565b9160208101519160408201519160608101519160a0608083015192015190565b610444939260609260018060a01b0316825260208201528160408201520190610401565b908160a09103126103d9578051610ab2816103cf565b916020820151916040810151916080606083015192015190565b600091908291610b116040518092610afd6020830195632d839cb360e21b8752604060248501526064840190610401565b90604483015203601f1981018352826104b6565b51906a636f6e736f6c652e6c6f675afa50565b90670de0b6b3a764000091828102928184041490151781151516156103d957600190600019830104019015150290565b8181029181830414901517600116156103d9576001670de0b6b3a7640000600019830104019015150290565b8181029181830414901517600116156103d957670de0b6b3a7640000900490565b670de0b6b3a764000090818102918183041490151782151516156103d957049056fea26469706673582212208dfd5857d9ca2481ec2f8db3afb8a6c38074c957084a4bb83e162400bf0d0bad64736f6c63430008160033","sourceMap":"268:4281:34:-:0;;;;;;;;;;;;;-1:-1:-1;;268:4281:34;;;;-1:-1:-1;;;;;268:4281:34;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;268:4281:34;;;;;;;;-1:-1:-1;268:4281:34;;-1:-1:-1;;;;;;268:4281:34;;;;;;;;;;;;;;;;;-1:-1:-1;268:4281:34;;;;;;-1:-1:-1;268:4281:34;;;;;-1:-1:-1;268:4281:34","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260048036101561001457600080fd5b600091823560e01c9283633928ff971461005f57505050806389ea85591461005a5780638a1a20de146100555763a8c62e761461005057600080fd5b61088b565b6105c9565b6104fa565b346103cc5760603660031901126103cc57823560243561007e816103cf565b6044359161008a6108b4565b956100936108b4565b85549094906100b8906100ac906001600160a01b031681565b6001600160a01b031690565b8751632bee84f160e21b81529094602092838386818a5afa9283156102b657899361039d575b5060608a5180946333854efd60e21b825281806101028b8b83019190602083019252565b03916001600160a01b03165afa9081156102b6578b938a908b908c94610367575b50858d019384529486019485528c528a5163dc17835560e01b81528681018881528b908290819060200103818c5afa80156102b657610172918c91610345575b50868082518301019101610978565b92156102cb57916101be916101b66101de946101af888501516101a96101a361019b8386610b54565b975185610b80565b916109c8565b90610b80565b9e516109eb565b8a52516109eb565b8988019081526101d58b6101d06109f8565b610acc565b516101d0610a1f565b888151106102bb579261022f959261023d61025996936102018c60c098516109de565b818701525b8a5198899687928301919091604080606083019480518452602081015160208501520151910152565b03601f1981018652856104b6565b8851630d17a7c760e31b81529586948593849330908501610a78565b03915afa9283156102b6579261027e575b5061027a91925193849384610426565b0390f35b61027a92506102a49060c03d60c0116102af575b61029c81836104b6565b810190610a41565b50505050509161026a565b503d610292565b6108e8565b8751634323a55560e01b81528390fd5b916101be9161031161031b946101af969e968885015194610309836103046102fe6102f68a84610b54565b855190610b24565b986109c8565b610b80565b905190610ba1565b868b0152516109eb565b888151106102bb579261022f959261023d610259969361033e8c60c098516109de565b8652610206565b61036191503d808e833e61035981836104b6565b81019061090f565b8e610163565b91505061038d91925060603d606011610396575b61038581836104b6565b8101906108f4565b9291908e610123565b503d61037b565b6103be919350843d86116103c5575b6103b681836104b6565b8101906108d3565b918b6100de565b503d6103ac565b80fd5b801515036103d957565b600080fd5b60005b8381106103f15750506000910152565b81810151838201526020016103e1565b9060209161041a815180928185528580860191016103de565b601f01601f1916010190565b61044493926060921515825260208201528160408201520190610401565b90565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761047957604052565b610447565b60e0810190811067ffffffffffffffff82111761047957604052565b6040810190811067ffffffffffffffff82111761047957604052565b90601f8019910116810190811067ffffffffffffffff82111761047957604052565b6001600160a01b038116036103d957565b906020610444928181520190610401565b346103d95760a03660031901126103d95760243560043560603660431901126103d9576040516105298161045d565b60443590818152602081019060643582526105576084359361054a856104d8565b6040830194855286610b24565b84018085116105ab5761027a95604051956020870152604086015260608501525160808401525160a083015260018060a01b0390511660c082015260c0815261059f8161047e565b604051918291826104e9565b6109b2565b6040906104449392151581528160208201520190610401565b346103d95760803660031901126103d957600460243581356105ea826103cf565b604435906064356105f96108b4565b916106026108b4565b9260009561061c6100ac6100ac895460018060a01b031690565b93604096875190632bee84f160e21b825260209485838d818b5afa80156102b657876060918e61066d968f9261086c575b508d516333854efd60e21b81529081019283529586928391829160200190565b03916001600160a01b03165afa80156102b6578b888e6106bd938e9784918591869161084a575b508c880199880152885285528d51938492839263dc17835560e01b845283019190602083019252565b03818c5afa80156102b6576106e2918d91610830575b50878082518301019101610978565b94156107cf5761077698969461072661071761022f9e9661075a9661070f60a09d9b9761072c97516109eb565b8c52516109eb565b80858b01528951925190610b24565b906109eb565b898701525b88519a8b9687928301919091604080606083019480518452602081015160208501520151910152565b8651638a04bdd560e01b81529586948593849330908501610a78565b03915afa9283156102b65792610796575b5061027a9051928392836105b0565b61027a9192506107bd9060a03d60a0116107c8575b6107b581836104b6565b810190610a9c565b505050509190610787565b503d6107ab565b818151108015610826575b6108165761077698969461072661071761022f9e9661075a9661080560a09d9b9761080d97516109de565b8c52516109de565b89870152610731565b8951634323a55560e01b81528c90fd5b50838351106107da565b61084491503d808f833e61035981836104b6565b386106d3565b915050610866915060603d6060116103965761038581836104b6565b38610694565b6108849192508a3d8c116103c5576103b681836104b6565b903861064d565b346103d95760003660031901126103d9576000546040516001600160a01b039091168152602090f35b604051906108c18261045d565b60006040838281528260208201520152565b908160209103126103d95751610444816104d8565b6040513d6000823e3d90fd5b908160609103126103d9578051916040602083015192015190565b6020818303126103d957805167ffffffffffffffff918282116103d957019082601f830112156103d9578151908111610479576040519261095a601f8301601f1916602001856104b6565b818452602082840101116103d95761044491602080850191016103de565b908160609103126103d95760408051916109918361045d565b805183526020810151602084015201516109aa816104d8565b604082015290565b634e487b7160e01b600052601160045260246000fd5b90670de0b6b3a76400009182039182116105ab57565b919082039182116105ab57565b919082018092116105ab57565b60405190610a058261049a565b600b82526a030b6b7bab73a27baba1d160ad1b6020830152565b60405190610a2c8261049a565b600682526503732bba61d160d51b6020830152565b91908260c09103126103d9578151610a58816103cf565b9160208101519160408201519160608101519160a0608083015192015190565b610444939260609260018060a01b0316825260208201528160408201520190610401565b908160a09103126103d9578051610ab2816103cf565b916020820151916040810151916080606083015192015190565b600091908291610b116040518092610afd6020830195632d839cb360e21b8752604060248501526064840190610401565b90604483015203601f1981018352826104b6565b51906a636f6e736f6c652e6c6f675afa50565b90670de0b6b3a764000091828102928184041490151781151516156103d957600190600019830104019015150290565b8181029181830414901517600116156103d9576001670de0b6b3a7640000600019830104019015150290565b8181029181830414901517600116156103d957670de0b6b3a7640000900490565b670de0b6b3a764000090818102918183041490151782151516156103d957049056fea26469706673582212208dfd5857d9ca2481ec2f8db3afb8a6c38074c957084a4bb83e162400bf0d0bad64736f6c63430008160033","sourceMap":"268:4281:34:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;268:4281:34;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;1359:24;;:19;;-1:-1:-1;;;;;268:4281:34;1359:19;268:4281;;-1:-1:-1;;;;;268:4281:34;;;1359:24;268:4281;;-1:-1:-1;;;1359:26:34;;268:4281;;;;;;1359:26;268:4281;;1359:26;;;;;;;;;;;268:4281;;;;;;;;;;1353:65;;;;;;;;;268:4281;;;;;;;;1353:65;;;-1:-1:-1;;;;;268:4281:34;1353:65;;;;;;;;;;268:4281;;;;1353:65;;;268:4281;-1:-1:-1;1322:15:34;;;268:4281;;;1304:16;;;268:4281;;;;;;;-1:-1:-1;;;1502:41:34;;;;;268:4281;;;1502:41;;268:4281;;;;;;1502:41;;;;;;;;;1478:120;1502:41;;;;;268:4281;;;;;;1478:120;;;;;;:::i;:::-;1608:17;1635:1239;;;1697:18;1936:24;1697:18;1879:27;2027:37;1697:18;631:21:18;1697:18:34;;;268:4281;1809:24;631:21:18;799:19;;;;:::i;:::-;268:4281:34;;631:21:18;;:::i;:::-;1809:24:34;;:::i;:::-;631:21:18;;:::i;:::-;268:4281:34;;1879:27;:::i;:::-;268:4281;;;1936:24;:::i;:::-;1920:13;;;268:4281;;;1975:38;378:4:31;;;:::i;:::-;1975:38:34;:::i;:::-;268:4281;378:4:31;;:::i;2027:37:34:-;268:4281;;;2083:28;2079:94;;268:4281;2908:23;268:4281;;2908:23;2973:65;268:4281;;2203:28;268:4281;2973:65;268:4281;;2203:28;:::i;:::-;2186:14;;;268:4281;1635:1239;268:4281;;2908:23;;;;;;;378:4:31;;;;;;;;;;;268:4281:34;;378:4:31;;;;;;;268:4281:34;378:4:31;;;;268:4281:34;378:4:31;2908:23:34;;;;;;;;;;:::i;:::-;268:4281;;-1:-1:-1;;;2973:65:34;;268:4281;;;;;;;3014:4;;2973:65;;;:::i;:::-;;;;;;;;;;;;;1635:1239;268:4281;;;;;;;;;;:::i;:::-;;;;2973:65;268:4281;2973:65;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;2079:94::-;268:4281;;-1:-1:-1;;;2138:20:34;;268:4281;;2138:20;1635:1239;2313:18;2568:24;2313:18;2511:27;2659:37;2313:18;965:21:18;2313:18:34;;;;;;268:4281;799:19:18;631:21;799:19;2387:24:34;1133:19:18;799;;;;:::i;:::-;268:4281:34;;1133:19:18;;:::i;:::-;2387:24:34;;:::i;:::-;631:21:18;:::i;:::-;268:4281:34;;965:21:18;;:::i;2511:27:34:-;2494:14;;;268:4281;;2568:24;:::i;2659:37::-;268:4281;;;2715:28;2711:94;;268:4281;2908:23;268:4281;;2908:23;2973:65;268:4281;;2835:28;268:4281;2973:65;268:4281;;2835:28;:::i;:::-;268:4281;;1635:1239;;1502:41;;;-1:-1:-1;1502:41:34;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;1353:65;;;;;;;;268:4281;1353:65;268:4281;1353:65;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;1359:26;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;268:4281;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;268:4281:34;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;268:4281:34;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;2908:23;;268:4281;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;268:4281:34;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;268:4281:34;;;;;;;;;;-1:-1:-1;;268:4281:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;1133:19:18;268:4281:34;;;;;;:::i;:::-;;;;;;;1133:19:18;;:::i;:::-;378:4:31;;;;;;;268:4281:34;;;;1007:29;268:4281;1007:29;;268:4281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1007:29;;;;;:::i;:::-;268:4281;;;;;;;:::i;378:4:31:-;;:::i;268:4281:34:-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;268:4281:34;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;-1:-1:-1;;268:4281:34;3440:24;:19;268:4281;;;;;;;;;;;3440:24;268:4281;;;;;;;;;3440:26;;268:4281;3440:26;;;;;;;;;;;;;268:4281;3440:26;;3434:65;3440:26;;;;;268:4281;-1:-1:-1;268:4281:34;;-1:-1:-1;;;3434:65:34;;;;;268:4281;;;;;;;;;;;;;;3434:65;;;-1:-1:-1;;;;;268:4281:34;3434:65;;;;;;;;;3583:41;3434:65;;;;-1:-1:-1;;;;3434:65:34;;;268:4281;3385:16;;;;3403:15;;;268:4281;;;;;;;;;;;;;;;3583:41;;;;268:4281;;;;;;;;3583:41;;;;;;;;;;3559:120;3583:41;;;;;268:4281;;;;;;3559:120;;;;;;:::i;:::-;3690:615;;;;4395:107;268:4281;;;1133:19:18;3794:26:34;4343:23;268:4281;;4343:23;268:4281;3737:26;4395:107;268:4281;;;3866:58;268:4281;;3737:26;:::i;:::-;268:4281;;;3794:26;:::i;:::-;3777:14;;;;268:4281;;;;;1133:19:18;;:::i;:::-;3866:58:34;;:::i;:::-;3834:13;;;268:4281;3690:615;268:4281;;4343:23;;;;;;;378:4:31;;;;;;;;;;;268:4281:34;;378:4:31;;;;;;;268:4281:34;378:4:31;;;;268:4281:34;378:4:31;4343:23:34;268:4281;;-1:-1:-1;;;4395:107:34;;268:4281;;;;;;;4465:4;;4395:107;;;:::i;:::-;;;;;;;;;;;;;3690:615;268:4281;;;;;;;;;:::i;4395:107::-;268:4281;4395:107;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;3690:615;268:4281;;;3959:26;:56;;;;3690:615;3955:122;;4395:107;268:4281;;;1133:19:18;4164:26:34;4343:23;268:4281;;4343:23;268:4281;4107:26;4395:107;268:4281;;;4236:58;268:4281;;4107:26;:::i;:::-;268:4281;;;4164:26;:::i;4236:58::-;4204:13;;;268:4281;3690:615;;3955:122;268:4281;;-1:-1:-1;;;4042:20:34;;268:4281;;4042:20;3959:56;268:4281;;;;3989:26;3959:56;;3583:41;;;-1:-1:-1;3583:41:34;;;;;;;;;:::i;:::-;;;;3434:65;;;;;;;268:4281;3434:65;268:4281;3434:65;;;;;;;:::i;:::-;;;;3440:26;;;;;;;;;;;;;;;:::i;:::-;;;;;268:4281;;;;;;-1:-1:-1;;268:4281:34;;;;;;;;-1:-1:-1;;;;;268:4281:34;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;268:4281:34;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2908:23;268:4281;;-1:-1:-1;;268:4281:34;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;378:4:31:-;268:4281:34;;;378:4:31;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;268:4281:34;;;;;;:::i;:::-;378:4:31;;;-1:-1:-1;;;378:4:31;;;;:::o;:::-;268:4281:34;;;;;;:::i;:::-;378:4:31;;;-1:-1:-1;;;378:4:31;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;268:4281:34;378:4:31;;;;;268:4281:34;378:4:31;;268:4281:34;378:4:31;:::o;:::-;;;;;;268:4281:34;;;;;;;;378:4:31;;;268:4281:34;378:4:31;;;;;;;;:::i;268:4281:34:-;;;;;;;;;378:4:31;;;;;:::i;:::-;268:4281:34;;;;378:4:31;268:4281:34;;;;;;;;;;;;;;;:::o;7176:145:14:-;-1:-1:-1;7176:145:14;;;;7259:54;268:4281:34;;7259:54:14;;268:4281:34;7259:54:14;;;;;;;;;268:4281:34;7259:54:14;;;268:4281:34;;;;;;:::i;:::-;;;;;;7259:54:14;2908:23:34;;7259:54:14;;;;;;:::i;:::-;268:4281:34;852:159:14;591:42;852:159;;;7176:145::o;8282:752:18:-;;378:4:31;8417:611:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8282:752;:::o;:::-;8417:611;;;;;;;;;;;;;;;;;378:4:31;8417:611:18;;;;;;;;;;8282:752;:::o;7741:535::-;7878:392;;;;;;;;;;;;;;;;378:4:31;7878:392:18;;7741:535;:::o;:::-;378:4:31;7878:392:18;;;;;;;;;;;;;;;;;;;;7741:535;:::o","linkReferences":{}},"methodIdentifiers":{"getInitialPoolData(uint256,uint256,(uint256,uint256,address))":"89ea8559","simulateAllocateOrDeallocate(uint256,bool,uint256,uint256)":"8a1a20de","simulateSwap(uint256,bool,uint256)":"3928ff97","strategy()":"a8c62e76"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"strategy_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NotEnoughLiquidity\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"rx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ry\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"internalType\":\"struct ConstantSum.ConstantSumParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"getInitialPoolData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"IsAllocate\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"amountX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountY\",\"type\":\"uint256\"}],\"name\":\"simulateAllocateOrDeallocate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"swapXIn\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"name\":\"simulateSwap\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/solvers/ConstantSum/ConstantSumSolver.sol\":\"ConstantSumSolver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/solvers/ConstantSum/ConstantSumSolver.sol\":{\"keccak256\":\"0x1a158ac3d20750c049a2951f4c524990bb6ba4e504cc8e853e26ee5fdad7949e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://bf94f52d0e1c0eb3d77af0a7a705a8bbaf4b829b0d45be6c0c9864a2d71dcb64\",\"dweb:/ipfs/QmXKtEBo6iP127RVqiERBh4ji7u1xKdAS3iPzkWS8sHXMg\"]},\"src/strategies/ConstantSum/ConstantSum.sol\":{\"keccak256\":\"0xb842f20507e6dcc6751ca5a7e902b3a71376bacd6ccb732c36369ec42b80293b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3e8eab1244452c527e995512bf2be44809de0dff09f9c675a9aa65dee5e85fe5\",\"dweb:/ipfs/QmfHn6yjWUhrVbKwSA6hZ1xpCXd5zFjgkGoKv6jqPdjnbK\"]},\"src/strategies/ConstantSum/ConstantSumLib.sol\":{\"keccak256\":\"0xbecc63accf7f1015ad2e60521f9c91f03b2692493e93b936e3939a1619f51c2a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2cbb36900fbcd271029f9659731988e3c401d01f19ab9a3b7ce182153918dc66\",\"dweb:/ipfs/QmZS3YyfNRdwndyb8njoByb7qVbAKEbo6DgejmUdNAfkwv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"strategy_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NotEnoughLiquidity"},{"inputs":[{"internalType":"uint256","name":"rx","type":"uint256"},{"internalType":"uint256","name":"ry","type":"uint256"},{"internalType":"struct ConstantSum.ConstantSumParams","name":"params","type":"tuple","components":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"swapFee","type":"uint256"},{"internalType":"address","name":"controller","type":"address"}]}],"stateMutability":"pure","type":"function","name":"getInitialPoolData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bool","name":"IsAllocate","type":"bool"},{"internalType":"uint256","name":"amountX","type":"uint256"},{"internalType":"uint256","name":"amountY","type":"uint256"}],"stateMutability":"view","type":"function","name":"simulateAllocateOrDeallocate","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bool","name":"swapXIn","type":"bool"},{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"view","type":"function","name":"simulateSwap","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"strategy","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/solvers/ConstantSum/ConstantSumSolver.sol":"ConstantSumSolver"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/solvers/ConstantSum/ConstantSumSolver.sol":{"keccak256":"0x1a158ac3d20750c049a2951f4c524990bb6ba4e504cc8e853e26ee5fdad7949e","urls":["bzz-raw://bf94f52d0e1c0eb3d77af0a7a705a8bbaf4b829b0d45be6c0c9864a2d71dcb64","dweb:/ipfs/QmXKtEBo6iP127RVqiERBh4ji7u1xKdAS3iPzkWS8sHXMg"],"license":"GPL-3.0-or-later"},"src/strategies/ConstantSum/ConstantSum.sol":{"keccak256":"0xb842f20507e6dcc6751ca5a7e902b3a71376bacd6ccb732c36369ec42b80293b","urls":["bzz-raw://3e8eab1244452c527e995512bf2be44809de0dff09f9c675a9aa65dee5e85fe5","dweb:/ipfs/QmfHn6yjWUhrVbKwSA6hZ1xpCXd5zFjgkGoKv6jqPdjnbK"],"license":"GPL-3.0-or-later"},"src/strategies/ConstantSum/ConstantSumLib.sol":{"keccak256":"0xbecc63accf7f1015ad2e60521f9c91f03b2692493e93b936e3939a1619f51c2a","urls":["bzz-raw://2cbb36900fbcd271029f9659731988e3c401d01f19ab9a3b7ce182153918dc66","dweb:/ipfs/QmZS3YyfNRdwndyb8njoByb7qVbAKEbo6DgejmUdNAfkwv"],"license":"GPL-3.0-or-later"}},"version":1},"ast":{"absolutePath":"src/solvers/ConstantSum/ConstantSumSolver.sol","id":31600,"exportedSymbols":{"ConstantSum":[37071],"ConstantSumLib":[37235],"ConstantSumSolver":[31599],"DSTest":[1786],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"Min":[27736],"ONE":[30639],"SQRT_WAD":[30630],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"TWO":[30633],"Test":[8195],"TestBase":[1843],"Vm":[9352],"ZERO":[30649],"abs":[27763],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"console":[17416],"console2":[25512],"diviWad":[27813],"muli":[27777],"muliWad":[27795],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522]},"nodeType":"SourceUnit","src":"45:4505:34","nodes":[{"id":31120,"nodeType":"PragmaDirective","src":"45:24:34","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":31121,"nodeType":"ImportDirective","src":"71:34:34","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/tokens/ERC20.sol","file":"solmate/tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":31600,"sourceUnit":25949,"symbolAliases":[],"unitAlias":""},{"id":31122,"nodeType":"ImportDirective","src":"106:38:34","nodes":[],"absolutePath":"src/interfaces/IStrategy.sol","file":"src/interfaces/IStrategy.sol","nameLocation":"-1:-1:-1","scope":31600,"sourceUnit":29840,"symbolAliases":[],"unitAlias":""},{"id":31123,"nodeType":"ImportDirective","src":"145:34:34","nodes":[],"absolutePath":"src/interfaces/IDFMM.sol","file":"src/interfaces/IDFMM.sol","nameLocation":"-1:-1:-1","scope":31600,"sourceUnit":29731,"symbolAliases":[],"unitAlias":""},{"id":31124,"nodeType":"ImportDirective","src":"180:33:34","nodes":[],"absolutePath":"src/lib/StrategyLib.sol","file":"src/lib/StrategyLib.sol","nameLocation":"-1:-1:-1","scope":31600,"sourceUnit":30776,"symbolAliases":[],"unitAlias":""},{"id":31125,"nodeType":"ImportDirective","src":"214:52:34","nodes":[],"absolutePath":"src/strategies/ConstantSum/ConstantSum.sol","file":"src/strategies/ConstantSum/ConstantSum.sol","nameLocation":"-1:-1:-1","scope":31600,"sourceUnit":37072,"symbolAliases":[],"unitAlias":""},{"id":31599,"nodeType":"ContractDefinition","src":"268:4281:34","nodes":[{"id":31127,"nodeType":"ErrorDefinition","src":"301:27:34","nodes":[],"errorSelector":"4323a555","name":"NotEnoughLiquidity","nameLocation":"307:18:34","parameters":{"id":31126,"nodeType":"ParameterList","parameters":[],"src":"325:2:34"}},{"id":31130,"nodeType":"UsingForDirective","src":"334:36:34","nodes":[],"global":false,"libraryName":{"id":31128,"name":"FixedPointMathLib","nameLocations":["340:17:34"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"340:17:34"},"typeName":{"id":31129,"name":"uint256","nodeType":"ElementaryTypeName","src":"362:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":31133,"nodeType":"UsingForDirective","src":"375:35:34","nodes":[],"global":false,"libraryName":{"id":31131,"name":"FixedPointMathLib","nameLocations":["381:17:34"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"381:17:34"},"typeName":{"id":31132,"name":"int256","nodeType":"ElementaryTypeName","src":"403:6:34","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":31140,"nodeType":"StructDefinition","src":"416:82:34","nodes":[],"canonicalName":"ConstantSumSolver.Reserves","members":[{"constant":false,"id":31135,"mutability":"mutable","name":"rx","nameLocation":"450:2:34","nodeType":"VariableDeclaration","scope":31140,"src":"442:10:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31134,"name":"uint256","nodeType":"ElementaryTypeName","src":"442:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31137,"mutability":"mutable","name":"ry","nameLocation":"470:2:34","nodeType":"VariableDeclaration","scope":31140,"src":"462:10:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31136,"name":"uint256","nodeType":"ElementaryTypeName","src":"462:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31139,"mutability":"mutable","name":"L","nameLocation":"490:1:34","nodeType":"VariableDeclaration","scope":31140,"src":"482:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31138,"name":"uint256","nodeType":"ElementaryTypeName","src":"482:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Reserves","nameLocation":"423:8:34","scope":31599,"visibility":"public"},{"id":31142,"nodeType":"VariableDeclaration","src":"504:23:34","nodes":[],"constant":false,"functionSelector":"a8c62e76","mutability":"mutable","name":"strategy","nameLocation":"519:8:34","scope":31599,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31141,"name":"address","nodeType":"ElementaryTypeName","src":"504:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":31152,"nodeType":"FunctionDefinition","src":"534:68:34","nodes":[],"body":{"id":31151,"nodeType":"Block","src":"565:37:34","nodes":[],"statements":[{"expression":{"id":31149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31147,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31142,"src":"575:8:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":31148,"name":"strategy_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31144,"src":"586:9:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"575:20:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":31150,"nodeType":"ExpressionStatement","src":"575:20:34"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":31145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31144,"mutability":"mutable","name":"strategy_","nameLocation":"554:9:34","nodeType":"VariableDeclaration","scope":31152,"src":"546:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31143,"name":"address","nodeType":"ElementaryTypeName","src":"546:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"545:19:34"},"returnParameters":{"id":31146,"nodeType":"ParameterList","parameters":[],"src":"565:0:34"},"scope":31599,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":31183,"nodeType":"FunctionDefinition","src":"608:435:34","nodes":[],"body":{"id":31182,"nodeType":"Block","src":"770:273:34","nodes":[],"statements":[{"assignments":[31165],"declarations":[{"constant":false,"id":31165,"mutability":"mutable","name":"L","nameLocation":"956:1:34","nodeType":"VariableDeclaration","scope":31182,"src":"948:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31164,"name":"uint256","nodeType":"ElementaryTypeName","src":"948:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31173,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31166,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31154,"src":"960:2:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"expression":{"id":31169,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31159,"src":"977:6:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":31170,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"984:5:34","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":36485,"src":"977:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31167,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31156,"src":"965:2:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"968:8:34","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"965:11:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"965:25:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"960:30:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"948:42:34"},{"expression":{"arguments":[{"id":31176,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31154,"src":"1018:2:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31177,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31156,"src":"1022:2:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31178,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31165,"src":"1026:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31179,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31159,"src":"1029:6:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}],"expression":{"id":31174,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1007:3:34","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1011:6:34","memberName":"encode","nodeType":"MemberAccess","src":"1007:10:34","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":31180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1007:29:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":31163,"id":31181,"nodeType":"Return","src":"1000:36:34"}]},"functionSelector":"89ea8559","implemented":true,"kind":"function","modifiers":[],"name":"getInitialPoolData","nameLocation":"617:18:34","parameters":{"id":31160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31154,"mutability":"mutable","name":"rx","nameLocation":"653:2:34","nodeType":"VariableDeclaration","scope":31183,"src":"645:10:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31153,"name":"uint256","nodeType":"ElementaryTypeName","src":"645:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31156,"mutability":"mutable","name":"ry","nameLocation":"673:2:34","nodeType":"VariableDeclaration","scope":31183,"src":"665:10:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31155,"name":"uint256","nodeType":"ElementaryTypeName","src":"665:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31159,"mutability":"mutable","name":"params","nameLocation":"722:6:34","nodeType":"VariableDeclaration","scope":31183,"src":"685:43:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams"},"typeName":{"id":31158,"nodeType":"UserDefinedTypeName","pathNode":{"id":31157,"name":"ConstantSum.ConstantSumParams","nameLocations":["685:11:34","697:17:34"],"nodeType":"IdentifierPath","referencedDeclaration":36490,"src":"685:29:34"},"referencedDeclaration":36490,"src":"685:29:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_storage_ptr","typeString":"struct ConstantSum.ConstantSumParams"}},"visibility":"internal"}],"src":"635:99:34"},"returnParameters":{"id":31163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31162,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31183,"src":"756:12:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":31161,"name":"bytes","nodeType":"ElementaryTypeName","src":"756:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"755:14:34"},"scope":31599,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":31429,"nodeType":"FunctionDefinition","src":"1049:2041:34","nodes":[],"body":{"id":31428,"nodeType":"Block","src":"1199:1891:34","nodes":[],"statements":[{"assignments":[31200],"declarations":[{"constant":false,"id":31200,"mutability":"mutable","name":"startReserves","nameLocation":"1225:13:34","nodeType":"VariableDeclaration","scope":31428,"src":"1209:29:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves"},"typeName":{"id":31199,"nodeType":"UserDefinedTypeName","pathNode":{"id":31198,"name":"Reserves","nameLocations":["1209:8:34"],"nodeType":"IdentifierPath","referencedDeclaration":31140,"src":"1209:8:34"},"referencedDeclaration":31140,"src":"1209:8:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_storage_ptr","typeString":"struct ConstantSumSolver.Reserves"}},"visibility":"internal"}],"id":31201,"nodeType":"VariableDeclarationStatement","src":"1209:29:34"},{"assignments":[31204],"declarations":[{"constant":false,"id":31204,"mutability":"mutable","name":"endReserves","nameLocation":"1264:11:34","nodeType":"VariableDeclaration","scope":31428,"src":"1248:27:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves"},"typeName":{"id":31203,"nodeType":"UserDefinedTypeName","pathNode":{"id":31202,"name":"Reserves","nameLocations":["1248:8:34"],"nodeType":"IdentifierPath","referencedDeclaration":31140,"src":"1248:8:34"},"referencedDeclaration":31140,"src":"1248:8:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_storage_ptr","typeString":"struct ConstantSumSolver.Reserves"}},"visibility":"internal"}],"id":31205,"nodeType":"VariableDeclarationStatement","src":"1248:27:34"},{"expression":{"id":31224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"expression":{"id":31206,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31200,"src":"1286:13:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1300:2:34","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":31135,"src":"1286:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":31209,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31200,"src":"1304:13:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31210,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1318:2:34","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":31137,"src":"1304:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":31211,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31200,"src":"1322:13:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1336:1:34","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":31139,"src":"1322:15:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":31213,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1285:53:34","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":31222,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31185,"src":"1411:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":31216,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31142,"src":"1369:8:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31215,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"1359:9:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$29839_$","typeString":"type(contract IStrategy)"}},"id":31217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1359:19:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$29839","typeString":"contract IStrategy"}},"id":31218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1379:4:34","memberName":"dfmm","nodeType":"MemberAccess","referencedDeclaration":29831,"src":"1359:24:34","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":31219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1359:26:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31214,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"1353:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":31220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1353:33:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDFMM_$29730","typeString":"contract IDFMM"}},"id":31221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1387:23:34","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29710,"src":"1353:57:34","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":31223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1353:65:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"src":"1285:133:34","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31225,"nodeType":"ExpressionStatement","src":"1285:133:34"},{"assignments":[31230],"declarations":[{"constant":false,"id":31230,"mutability":"mutable","name":"poolParams","nameLocation":"1465:10:34","nodeType":"VariableDeclaration","scope":31428,"src":"1428:47:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams"},"typeName":{"id":31229,"nodeType":"UserDefinedTypeName","pathNode":{"id":31228,"name":"ConstantSum.ConstantSumParams","nameLocations":["1428:11:34","1440:17:34"],"nodeType":"IdentifierPath","referencedDeclaration":36490,"src":"1428:29:34"},"referencedDeclaration":36490,"src":"1428:29:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_storage_ptr","typeString":"struct ConstantSum.ConstantSumParams"}},"visibility":"internal"}],"id":31243,"initialValue":{"arguments":[{"arguments":[{"id":31237,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31185,"src":"1536:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":31234,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31142,"src":"1512:8:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31233,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"1502:9:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$29839_$","typeString":"type(contract IStrategy)"}},"id":31235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1502:19:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$29839","typeString":"contract IStrategy"}},"id":31236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1522:13:34","memberName":"getPoolParams","nodeType":"MemberAccess","referencedDeclaration":29838,"src":"1502:33:34","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) view external returns (bytes memory)"}},"id":31238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1502:41:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":31239,"name":"ConstantSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37071,"src":"1558:11:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ConstantSum_$37071_$","typeString":"type(contract ConstantSum)"}},"id":31240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1570:17:34","memberName":"ConstantSumParams","nodeType":"MemberAccess","referencedDeclaration":36490,"src":"1558:29:34","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}}],"id":31241,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1557:31:34","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}],"expression":{"id":31231,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1478:3:34","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1482:6:34","memberName":"decode","nodeType":"MemberAccess","src":"1478:10:34","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":31242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1478:120:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"nodeType":"VariableDeclarationStatement","src":"1428:170:34"},{"assignments":[31245],"declarations":[{"constant":false,"id":31245,"mutability":"mutable","name":"amountOut","nameLocation":"1616:9:34","nodeType":"VariableDeclaration","scope":31428,"src":"1608:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31244,"name":"uint256","nodeType":"ElementaryTypeName","src":"1608:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31246,"nodeType":"VariableDeclarationStatement","src":"1608:17:34"},{"condition":{"id":31247,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31187,"src":"1639:7:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":31400,"nodeType":"Block","src":"2248:626:34","statements":[{"assignments":[31323],"declarations":[{"constant":false,"id":31323,"mutability":"mutable","name":"deltaL","nameLocation":"2270:6:34","nodeType":"VariableDeclaration","scope":31400,"src":"2262:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31322,"name":"uint256","nodeType":"ElementaryTypeName","src":"2262:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31333,"initialValue":{"arguments":[{"expression":{"id":31330,"name":"poolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31230,"src":"2342:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":31331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2353:5:34","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":36485,"src":"2342:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":31326,"name":"poolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31230,"src":"2313:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":31327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2324:7:34","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":36487,"src":"2313:18:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31324,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31189,"src":"2295:8:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2304:8:34","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"2295:17:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2295:37:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2333:8:34","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"2295:46:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2295:64:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2262:97:34"},{"expression":{"id":31347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31334,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31245,"src":"2374:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":31344,"name":"poolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31230,"src":"2462:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":31345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2473:5:34","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":36485,"src":"2462:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":31341,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31189,"src":"2424:8:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31335,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"2387:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":31336,"name":"poolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31230,"src":"2393:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":31337,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2404:7:34","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":36487,"src":"2393:18:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2387:24:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":31339,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2386:26:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2413:10:34","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"2386:37:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2386:47:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2451:10:34","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"2386:75:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2386:93:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2374:105:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31348,"nodeType":"ExpressionStatement","src":"2374:105:34"},{"expression":{"id":31356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":31349,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31204,"src":"2494:11:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31351,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2506:2:34","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":31137,"src":"2494:14:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":31352,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31200,"src":"2511:13:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2525:2:34","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":31137,"src":"2511:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":31354,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31189,"src":"2530:8:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2511:27:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2494:44:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31357,"nodeType":"ExpressionStatement","src":"2494:44:34"},{"expression":{"id":31365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":31358,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31204,"src":"2552:11:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2564:1:34","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":31139,"src":"2552:13:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":31361,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31200,"src":"2568:13:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31362,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2582:1:34","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":31139,"src":"2568:15:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":31363,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31323,"src":"2586:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2568:24:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2552:40:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31366,"nodeType":"ExpressionStatement","src":"2552:40:34"},{"expression":{"arguments":[{"hexValue":"616d6f756e744f75743a20","id":31370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2620:13:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ef8f92aaa32f0dcfbe7eafff45dd9369fde88197579275455403f4a1e7d8f3a","typeString":"literal_string \"amountOut: \""},"value":"amountOut: "},{"id":31371,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31245,"src":"2635:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3ef8f92aaa32f0dcfbe7eafff45dd9369fde88197579275455403f4a1e7d8f3a","typeString":"literal_string \"amountOut: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31367,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"2607:8:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":31369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2616:3:34","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"2607:12:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":31372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2607:38:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31373,"nodeType":"ExpressionStatement","src":"2607:38:34"},{"expression":{"arguments":[{"hexValue":"6e65774c3a20","id":31377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2672:8:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_7c331ab154f5a027f338d8a3b030cb763a8d71c19cf54dd63d1efedc859d64a3","typeString":"literal_string \"newL: \""},"value":"newL: "},{"expression":{"id":31378,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31204,"src":"2682:11:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2694:1:34","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":31139,"src":"2682:13:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7c331ab154f5a027f338d8a3b030cb763a8d71c19cf54dd63d1efedc859d64a3","typeString":"literal_string \"newL: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31374,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"2659:8:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":31376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2668:3:34","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"2659:12:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":31380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2659:37:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31381,"nodeType":"ExpressionStatement","src":"2659:37:34"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":31382,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31200,"src":"2715:13:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2729:2:34","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":31135,"src":"2715:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":31384,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31245,"src":"2734:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2715:28:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31390,"nodeType":"IfStatement","src":"2711:94:34","trueBody":{"id":31389,"nodeType":"Block","src":"2745:60:34","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":31386,"name":"NotEnoughLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31127,"src":"2770:18:34","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":31387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2770:20:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31388,"nodeType":"RevertStatement","src":"2763:27:34"}]}},{"expression":{"id":31398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":31391,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31204,"src":"2818:11:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2830:2:34","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":31135,"src":"2818:14:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":31394,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31200,"src":"2835:13:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2849:2:34","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":31135,"src":"2835:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":31396,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31245,"src":"2854:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2835:28:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2818:45:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31399,"nodeType":"ExpressionStatement","src":"2818:45:34"}]},"id":31401,"nodeType":"IfStatement","src":"1635:1239:34","trueBody":{"id":31321,"nodeType":"Block","src":"1648:594:34","statements":[{"assignments":[31249],"declarations":[{"constant":false,"id":31249,"mutability":"mutable","name":"deltaL","nameLocation":"1670:6:34","nodeType":"VariableDeclaration","scope":31321,"src":"1662:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31248,"name":"uint256","nodeType":"ElementaryTypeName","src":"1662:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31255,"initialValue":{"arguments":[{"expression":{"id":31252,"name":"poolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31230,"src":"1697:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":31253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1708:7:34","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":36487,"src":"1697:18:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31250,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31189,"src":"1679:8:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1688:8:34","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"1679:17:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1679:37:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1662:54:34"},{"expression":{"id":31268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31256,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31245,"src":"1731:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31263,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"1809:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":31264,"name":"poolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31230,"src":"1815:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":31265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1826:7:34","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":36487,"src":"1815:18:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1809:24:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":31259,"name":"poolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31230,"src":"1763:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":31260,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1774:5:34","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":36485,"src":"1763:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31257,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31189,"src":"1743:8:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1752:10:34","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"1743:19:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1743:37:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1781:10:34","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"1743:48:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1743:104:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1731:116:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31269,"nodeType":"ExpressionStatement","src":"1731:116:34"},{"expression":{"id":31277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":31270,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31204,"src":"1862:11:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1874:2:34","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":31135,"src":"1862:14:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":31273,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31200,"src":"1879:13:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31274,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1893:2:34","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":31135,"src":"1879:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":31275,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31189,"src":"1898:8:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1879:27:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1862:44:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31278,"nodeType":"ExpressionStatement","src":"1862:44:34"},{"expression":{"id":31286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":31279,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31204,"src":"1920:11:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1932:1:34","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":31139,"src":"1920:13:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":31282,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31200,"src":"1936:13:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1950:1:34","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":31139,"src":"1936:15:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":31284,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31249,"src":"1954:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1936:24:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1920:40:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31287,"nodeType":"ExpressionStatement","src":"1920:40:34"},{"expression":{"arguments":[{"hexValue":"616d6f756e744f75743a20","id":31291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1988:13:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ef8f92aaa32f0dcfbe7eafff45dd9369fde88197579275455403f4a1e7d8f3a","typeString":"literal_string \"amountOut: \""},"value":"amountOut: "},{"id":31292,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31245,"src":"2003:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3ef8f92aaa32f0dcfbe7eafff45dd9369fde88197579275455403f4a1e7d8f3a","typeString":"literal_string \"amountOut: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31288,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"1975:8:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":31290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1984:3:34","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"1975:12:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":31293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1975:38:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31294,"nodeType":"ExpressionStatement","src":"1975:38:34"},{"expression":{"arguments":[{"hexValue":"6e65774c3a20","id":31298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2040:8:34","typeDescriptions":{"typeIdentifier":"t_stringliteral_7c331ab154f5a027f338d8a3b030cb763a8d71c19cf54dd63d1efedc859d64a3","typeString":"literal_string \"newL: \""},"value":"newL: "},{"expression":{"id":31299,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31204,"src":"2050:11:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2062:1:34","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":31139,"src":"2050:13:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7c331ab154f5a027f338d8a3b030cb763a8d71c19cf54dd63d1efedc859d64a3","typeString":"literal_string \"newL: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31295,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"2027:8:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":31297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2036:3:34","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"2027:12:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":31301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2027:37:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31302,"nodeType":"ExpressionStatement","src":"2027:37:34"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":31303,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31200,"src":"2083:13:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2097:2:34","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":31137,"src":"2083:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":31305,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31245,"src":"2102:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2083:28:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31311,"nodeType":"IfStatement","src":"2079:94:34","trueBody":{"id":31310,"nodeType":"Block","src":"2113:60:34","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":31307,"name":"NotEnoughLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31127,"src":"2138:18:34","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":31308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2138:20:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31309,"nodeType":"RevertStatement","src":"2131:27:34"}]}},{"expression":{"id":31319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":31312,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31204,"src":"2186:11:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2198:2:34","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":31137,"src":"2186:14:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":31315,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31200,"src":"2203:13:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2217:2:34","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":31137,"src":"2203:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":31317,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31245,"src":"2222:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2203:28:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2186:45:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31320,"nodeType":"ExpressionStatement","src":"2186:45:34"}]}},{"assignments":[31403],"declarations":[{"constant":false,"id":31403,"mutability":"mutable","name":"swapData","nameLocation":"2897:8:34","nodeType":"VariableDeclaration","scope":31428,"src":"2884:21:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":31402,"name":"bytes","nodeType":"ElementaryTypeName","src":"2884:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":31408,"initialValue":{"arguments":[{"id":31406,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31204,"src":"2919:11:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}],"expression":{"id":31404,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2908:3:34","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31405,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2912:6:34","memberName":"encode","nodeType":"MemberAccess","src":"2908:10:34","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":31407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2908:23:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2884:47:34"},{"assignments":[31410,null,null,null,null,null],"declarations":[{"constant":false,"id":31410,"mutability":"mutable","name":"valid","nameLocation":"2947:5:34","nodeType":"VariableDeclaration","scope":31428,"src":"2942:10:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31409,"name":"bool","nodeType":"ElementaryTypeName","src":"2942:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null,null,null,null,null],"id":31422,"initialValue":{"arguments":[{"arguments":[{"id":31417,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3014:4:34","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSumSolver_$31599","typeString":"contract ConstantSumSolver"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ConstantSumSolver_$31599","typeString":"contract ConstantSumSolver"}],"id":31416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3006:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31415,"name":"address","nodeType":"ElementaryTypeName","src":"3006:7:34","typeDescriptions":{}}},"id":31418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3006:13:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31419,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31185,"src":"3021:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31420,"name":"swapData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31403,"src":"3029:8:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":31412,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31142,"src":"2983:8:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31411,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"2973:9:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$29839_$","typeString":"type(contract IStrategy)"}},"id":31413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2973:19:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$29839","typeString":"contract IStrategy"}},"id":31414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2993:12:34","memberName":"validateSwap","nodeType":"MemberAccess","referencedDeclaration":29808,"src":"2973:32:34","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_int256_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256,bytes memory) view external returns (bool,int256,int256,uint256,uint256,uint256)"}},"id":31421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2973:65:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_int256_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,int256,int256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"2941:97:34"},{"expression":{"components":[{"id":31423,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31410,"src":"3056:5:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31424,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31245,"src":"3063:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31425,"name":"swapData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31403,"src":"3074:8:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":31426,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3055:28:34","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,bytes memory)"}},"functionReturnParameters":31197,"id":31427,"nodeType":"Return","src":"3048:35:34"}]},"functionSelector":"3928ff97","implemented":true,"kind":"function","modifiers":[],"name":"simulateSwap","nameLocation":"1058:12:34","parameters":{"id":31190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31185,"mutability":"mutable","name":"poolId","nameLocation":"1088:6:34","nodeType":"VariableDeclaration","scope":31429,"src":"1080:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31184,"name":"uint256","nodeType":"ElementaryTypeName","src":"1080:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31187,"mutability":"mutable","name":"swapXIn","nameLocation":"1109:7:34","nodeType":"VariableDeclaration","scope":31429,"src":"1104:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31186,"name":"bool","nodeType":"ElementaryTypeName","src":"1104:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31189,"mutability":"mutable","name":"amountIn","nameLocation":"1134:8:34","nodeType":"VariableDeclaration","scope":31429,"src":"1126:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31188,"name":"uint256","nodeType":"ElementaryTypeName","src":"1126:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1070:78:34"},"returnParameters":{"id":31197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31192,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31429,"src":"1170:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31191,"name":"bool","nodeType":"ElementaryTypeName","src":"1170:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31194,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31429,"src":"1176:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31193,"name":"uint256","nodeType":"ElementaryTypeName","src":"1176:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31196,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31429,"src":"1185:12:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":31195,"name":"bytes","nodeType":"ElementaryTypeName","src":"1185:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1169:29:34"},"scope":31599,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":31598,"nodeType":"FunctionDefinition","src":"3096:1451:34","nodes":[],"body":{"id":31597,"nodeType":"Block","src":"3280:1267:34","nodes":[],"statements":[{"assignments":[31446],"declarations":[{"constant":false,"id":31446,"mutability":"mutable","name":"startReserves","nameLocation":"3306:13:34","nodeType":"VariableDeclaration","scope":31597,"src":"3290:29:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves"},"typeName":{"id":31445,"nodeType":"UserDefinedTypeName","pathNode":{"id":31444,"name":"Reserves","nameLocations":["3290:8:34"],"nodeType":"IdentifierPath","referencedDeclaration":31140,"src":"3290:8:34"},"referencedDeclaration":31140,"src":"3290:8:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_storage_ptr","typeString":"struct ConstantSumSolver.Reserves"}},"visibility":"internal"}],"id":31447,"nodeType":"VariableDeclarationStatement","src":"3290:29:34"},{"assignments":[31450],"declarations":[{"constant":false,"id":31450,"mutability":"mutable","name":"endReserves","nameLocation":"3345:11:34","nodeType":"VariableDeclaration","scope":31597,"src":"3329:27:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves"},"typeName":{"id":31449,"nodeType":"UserDefinedTypeName","pathNode":{"id":31448,"name":"Reserves","nameLocations":["3329:8:34"],"nodeType":"IdentifierPath","referencedDeclaration":31140,"src":"3329:8:34"},"referencedDeclaration":31140,"src":"3329:8:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_storage_ptr","typeString":"struct ConstantSumSolver.Reserves"}},"visibility":"internal"}],"id":31451,"nodeType":"VariableDeclarationStatement","src":"3329:27:34"},{"expression":{"id":31470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"expression":{"id":31452,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31446,"src":"3367:13:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3381:2:34","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":31135,"src":"3367:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":31455,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31446,"src":"3385:13:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3399:2:34","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":31137,"src":"3385:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":31457,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31446,"src":"3403:13:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3417:1:34","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":31139,"src":"3403:15:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":31459,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"3366:53:34","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":31468,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31431,"src":"3492:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":31462,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31142,"src":"3450:8:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31461,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"3440:9:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$29839_$","typeString":"type(contract IStrategy)"}},"id":31463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3440:19:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$29839","typeString":"contract IStrategy"}},"id":31464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3460:4:34","memberName":"dfmm","nodeType":"MemberAccess","referencedDeclaration":29831,"src":"3440:24:34","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":31465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3440:26:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31460,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"3434:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":31466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3434:33:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDFMM_$29730","typeString":"contract IDFMM"}},"id":31467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3468:23:34","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29710,"src":"3434:57:34","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":31469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3434:65:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"src":"3366:133:34","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31471,"nodeType":"ExpressionStatement","src":"3366:133:34"},{"assignments":[31476],"declarations":[{"constant":false,"id":31476,"mutability":"mutable","name":"poolParams","nameLocation":"3546:10:34","nodeType":"VariableDeclaration","scope":31597,"src":"3509:47:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams"},"typeName":{"id":31475,"nodeType":"UserDefinedTypeName","pathNode":{"id":31474,"name":"ConstantSum.ConstantSumParams","nameLocations":["3509:11:34","3521:17:34"],"nodeType":"IdentifierPath","referencedDeclaration":36490,"src":"3509:29:34"},"referencedDeclaration":36490,"src":"3509:29:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_storage_ptr","typeString":"struct ConstantSum.ConstantSumParams"}},"visibility":"internal"}],"id":31489,"initialValue":{"arguments":[{"arguments":[{"id":31483,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31431,"src":"3617:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":31480,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31142,"src":"3593:8:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31479,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"3583:9:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$29839_$","typeString":"type(contract IStrategy)"}},"id":31481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3583:19:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$29839","typeString":"contract IStrategy"}},"id":31482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3603:13:34","memberName":"getPoolParams","nodeType":"MemberAccess","referencedDeclaration":29838,"src":"3583:33:34","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) view external returns (bytes memory)"}},"id":31484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3583:41:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":31485,"name":"ConstantSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37071,"src":"3639:11:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ConstantSum_$37071_$","typeString":"type(contract ConstantSum)"}},"id":31486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3651:17:34","memberName":"ConstantSumParams","nodeType":"MemberAccess","referencedDeclaration":36490,"src":"3639:29:34","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}}],"id":31487,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3638:31:34","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}],"expression":{"id":31477,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3559:3:34","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3563:6:34","memberName":"decode","nodeType":"MemberAccess","src":"3559:10:34","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":31488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3559:120:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"nodeType":"VariableDeclarationStatement","src":"3509:170:34"},{"condition":{"id":31490,"name":"IsAllocate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31433,"src":"3694:10:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":31570,"nodeType":"Block","src":"3941:364:34","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":31532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":31524,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31446,"src":"3959:13:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31525,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3973:2:34","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":31135,"src":"3959:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":31526,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31435,"src":"3978:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3959:26:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":31528,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31446,"src":"3989:13:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4003:2:34","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":31137,"src":"3989:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":31530,"name":"amountY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31437,"src":"4008:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3989:26:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3959:56:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31537,"nodeType":"IfStatement","src":"3955:122:34","trueBody":{"id":31536,"nodeType":"Block","src":"4017:60:34","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":31533,"name":"NotEnoughLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31127,"src":"4042:18:34","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":31534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4042:20:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31535,"nodeType":"RevertStatement","src":"4035:27:34"}]}},{"expression":{"id":31545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":31538,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31450,"src":"4090:11:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31540,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4102:2:34","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":31135,"src":"4090:14:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":31541,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31446,"src":"4107:13:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31542,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4121:2:34","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":31135,"src":"4107:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":31543,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31435,"src":"4126:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4107:26:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4090:43:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31546,"nodeType":"ExpressionStatement","src":"4090:43:34"},{"expression":{"id":31554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":31547,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31450,"src":"4147:11:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4159:2:34","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":31137,"src":"4147:14:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":31550,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31446,"src":"4164:13:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4178:2:34","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":31137,"src":"4164:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":31552,"name":"amountY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31437,"src":"4183:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4164:26:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4147:43:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31555,"nodeType":"ExpressionStatement","src":"4147:43:34"},{"expression":{"id":31568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":31556,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31450,"src":"4204:11:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4216:1:34","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":31139,"src":"4204:13:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":31559,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31450,"src":"4236:11:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4248:2:34","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":31135,"src":"4236:14:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"expression":{"id":31564,"name":"poolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31476,"src":"4277:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":31565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4288:5:34","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":36485,"src":"4277:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":31561,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31450,"src":"4253:11:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31562,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4265:2:34","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":31137,"src":"4253:14:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4268:8:34","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"4253:23:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4253:41:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4236:58:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4204:90:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31569,"nodeType":"ExpressionStatement","src":"4204:90:34"}]},"id":31571,"nodeType":"IfStatement","src":"3690:615:34","trueBody":{"id":31523,"nodeType":"Block","src":"3706:229:34","statements":[{"expression":{"id":31498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":31491,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31450,"src":"3720:11:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3732:2:34","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":31135,"src":"3720:14:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":31494,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31446,"src":"3737:13:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31495,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3751:2:34","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":31135,"src":"3737:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":31496,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31435,"src":"3756:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3737:26:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3720:43:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31499,"nodeType":"ExpressionStatement","src":"3720:43:34"},{"expression":{"id":31507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":31500,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31450,"src":"3777:11:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3789:2:34","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":31137,"src":"3777:14:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":31503,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31446,"src":"3794:13:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3808:2:34","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":31137,"src":"3794:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":31505,"name":"amountY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31437,"src":"3813:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3794:26:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3777:43:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31508,"nodeType":"ExpressionStatement","src":"3777:43:34"},{"expression":{"id":31521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":31509,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31450,"src":"3834:11:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3846:1:34","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":31139,"src":"3834:13:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":31512,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31450,"src":"3866:11:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31513,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3878:2:34","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":31135,"src":"3866:14:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"expression":{"id":31517,"name":"poolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31476,"src":"3907:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":31518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3918:5:34","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":36485,"src":"3907:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":31514,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31450,"src":"3883:11:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}},"id":31515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3895:2:34","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":31137,"src":"3883:14:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3898:8:34","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"3883:23:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3883:41:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3866:58:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3834:90:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31522,"nodeType":"ExpressionStatement","src":"3834:90:34"}]}},{"assignments":[31573],"declarations":[{"constant":false,"id":31573,"mutability":"mutable","name":"allocateData","nameLocation":"4328:12:34","nodeType":"VariableDeclaration","scope":31597,"src":"4315:25:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":31572,"name":"bytes","nodeType":"ElementaryTypeName","src":"4315:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":31578,"initialValue":{"arguments":[{"id":31576,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31450,"src":"4354:11:34","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Reserves_$31140_memory_ptr","typeString":"struct ConstantSumSolver.Reserves memory"}],"expression":{"id":31574,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4343:3:34","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31575,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4347:6:34","memberName":"encode","nodeType":"MemberAccess","src":"4343:10:34","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":31577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4343:23:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4315:51:34"},{"assignments":[31580,null,null,null,null],"declarations":[{"constant":false,"id":31580,"mutability":"mutable","name":"valid","nameLocation":"4382:5:34","nodeType":"VariableDeclaration","scope":31597,"src":"4377:10:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31579,"name":"bool","nodeType":"ElementaryTypeName","src":"4377:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null,null,null,null],"id":31592,"initialValue":{"arguments":[{"arguments":[{"id":31587,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4465:4:34","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSumSolver_$31599","typeString":"contract ConstantSumSolver"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ConstantSumSolver_$31599","typeString":"contract ConstantSumSolver"}],"id":31586,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4457:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31585,"name":"address","nodeType":"ElementaryTypeName","src":"4457:7:34","typeDescriptions":{}}},"id":31588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4457:13:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31589,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31431,"src":"4472:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31590,"name":"allocateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31573,"src":"4480:12:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":31582,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31142,"src":"4405:8:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31581,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"4395:9:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$29839_$","typeString":"type(contract IStrategy)"}},"id":31583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4395:19:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$29839","typeString":"contract IStrategy"}},"id":31584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4415:28:34","memberName":"validateAllocateOrDeallocate","nodeType":"MemberAccess","referencedDeclaration":29787,"src":"4395:48:34","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256,bytes memory) view external returns (bool,int256,uint256,uint256,uint256)"}},"id":31591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4395:107:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,int256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4376:126:34"},{"expression":{"components":[{"id":31593,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31580,"src":"4520:5:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31594,"name":"allocateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31573,"src":"4527:12:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":31595,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4519:21:34","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":31443,"id":31596,"nodeType":"Return","src":"4512:28:34"}]},"functionSelector":"8a1a20de","implemented":true,"kind":"function","modifiers":[],"name":"simulateAllocateOrDeallocate","nameLocation":"3105:28:34","parameters":{"id":31438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31431,"mutability":"mutable","name":"poolId","nameLocation":"3151:6:34","nodeType":"VariableDeclaration","scope":31598,"src":"3143:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31430,"name":"uint256","nodeType":"ElementaryTypeName","src":"3143:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31433,"mutability":"mutable","name":"IsAllocate","nameLocation":"3172:10:34","nodeType":"VariableDeclaration","scope":31598,"src":"3167:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31432,"name":"bool","nodeType":"ElementaryTypeName","src":"3167:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31435,"mutability":"mutable","name":"amountX","nameLocation":"3200:7:34","nodeType":"VariableDeclaration","scope":31598,"src":"3192:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31434,"name":"uint256","nodeType":"ElementaryTypeName","src":"3192:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31437,"mutability":"mutable","name":"amountY","nameLocation":"3225:7:34","nodeType":"VariableDeclaration","scope":31598,"src":"3217:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31436,"name":"uint256","nodeType":"ElementaryTypeName","src":"3217:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3133:105:34"},"returnParameters":{"id":31443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31440,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31598,"src":"3260:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31439,"name":"bool","nodeType":"ElementaryTypeName","src":"3260:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31442,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31598,"src":"3266:12:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":31441,"name":"bytes","nodeType":"ElementaryTypeName","src":"3266:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3259:20:34"},"scope":31599,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"ConstantSumSolver","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[31599],"name":"ConstantSumSolver","nameLocation":"277:17:34","scope":31600,"usedErrors":[31127],"usedEvents":[]}],"license":"GPL-3.0-or-later"},"id":34} \ No newline at end of file diff --git a/out/ConstantSumTest.t.sol/ConstantSumTest.json b/out/ConstantSumTest.t.sol/ConstantSumTest.json deleted file mode 100644 index 8b9e4ad6..00000000 --- a/out/ConstantSumTest.t.sol/ConstantSumTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"TEST_SWAP_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TEST_ZERO_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_constant_sum_allocate","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_constant_sum_deallocate","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_constant_sum_fail_deallocate","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_constant_sum_price_update","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_constant_sum_swap_x_in_invalid","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_constant_sum_swap_x_in_no_fee","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_constant_sum_swap_x_in_with_fee","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_constant_sum_swap_y_in_invalid","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_constant_sum_swap_y_in_no_fee","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_constant_sum_swap_y_in_with_fee","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_init","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523461002457600160ff19600054161760005561991290816200002a8239f35b600080fdfe60806040818152600491823610156200001757600080fd5b600092833560e01c9182630a9254e41462002d08575081632a001b87146200298d578163330fdce51462002582578163368a67f314620021045781635ca61cb114620020e7578163620a260714620020c35781637cdc65bc1462001ccb578163964fb96d1462001787578163a182379e146200151e578163af08ec5314620012dd578163b736a4851462000e49578163b86532b31462000b6d578163ba414fa61462000b43578163dbd6f94d1462000705578163f5df5a2c146200010c575063fa7626d414620000e657600080fd5b34620001085781600319360112620001085760ff602092541690519015158152f35b5080fd5b905034620006f75782600319360112620006f757826000805160206200987d833981519152803b15620001085781809160248651809481936372eb5f8160e11b835281898401525af18015620006fb57620006df575b5050815190620001728262003195565b671bc16d674ec800008252620001bd602092660aa87bee5380008482015285858201528560018060a01b03918260155416875180809681946389ea855960e01b8352898301620032d6565b03915afa918215620006d5578692620006ac575b508060145416918160165416826017541690875194620001f186620031b2565b85528685015286840152606083015262000229816013541692865180946305157c7f60e21b8252818a8160809687968b83016200335e565b03925af19283156200066d57849362000677575b5084826013541687519485809263057ff68760e51b82525afa9283156200066d57879362000633575b50600019830192831162000620579186826064969482899795601554168851998a8092633928ff9760e01b8252888a83015284602483015267016345785d8a000060448301525afa9586156200061657620003c5988485918699620005e4575b5080620002e1620002fc92620002db620033dc565b6200368b565b620002f683620002f062003545565b620036e9565b62003401565b6200030b81620002f062003545565b66b11a4f960da000908181036200054b575b505062000373620003368289518a0101838a016200341f565b92916200034781620002f06200343b565b670d2f9c6411566000908c828203620004b0575b5050506200036d81620002f062003468565b6200381e565b6200038281620002f062003495565b6714d19a7a13cd60009283820362000415575b50505050601354169285519687958694859363bd0625ab60e01b8552840152876024840152604483019062003337565b03925af180156200040957620003d9578280f35b81620003fd92903d1062000401575b620003f48183620031ec565b8101906200356e565b8280f35b503d620003e8565b505051903d90823e3d90fd5b6000805160206200985d833981519152908a518481526022858201526000805160206200989d8339815191528c82015261745d60f01b6060820152a1885192898452620004648a850162003732565b908385015283600080516020620098bd8339815191529485920390a188519182918a8352620004958b84016200374f565b918301520390a1620004a662003860565b3880808062000395565b62000530916000805160206200985d8339815191528983518a815260228b8201526000805160206200989d8339815191528582015261745d60f01b6060820152a18151938285526200050483860162003732565b908986015284600080516020620098bd8339815191529586920390a1815192828493845283016200374f565b90888301520390a16200054262003860565b38808c6200035b565b6000805160206200985d833981519152848b518581526022868201526000805160206200989d8339815191528d82015261745d60f01b6060820152a18951918a83526200059a8b840162003732565b908484015282600080516020620098bd8339815191529384920390a1895180918b8252620005ca8c83016200374f565b90858301520390a1620005dc62003860565b38806200031d565b9050620002fc98506200060c91503d8087833e620006038183620031ec565b81019062003506565b98909190620002c6565b87513d85823e3d90fd5b634e487b7160e01b875260118452602487fd5b9092508481813d831162000665575b6200064e8183620031ec565b81010312620006605751913862000266565b600080fd5b503d62000642565b86513d89823e3d90fd5b6200069b90823d8411620006a4575b620006928183620031ec565b81019062003314565b5050506200023d565b503d62000686565b620006cd9192503d8088833e620006c48183620031ec565b810190620032ac565b9038620001d1565b85513d88823e3d90fd5b620006ea906200316a565b620006f757823862000162565b8280fd5b84513d84823e3d90fd5b83833462000108578160031936011262000108576000805160206200987d833981519152803b15620006f75782809160248451809481936372eb5f8160e11b8352818a8401525af18015620004095790839162000b2b575b50508051926200076d8462003195565b671bc16d674ec8000084526020660aa87bee538000818601528383860152620007b78460018060a01b03968760155416865180809581946389ea855960e01b8352898301620032d6565b03915afa90811562000ade57620008248692608092849162000b0d575b5088601454169089601654168a6017541690895193620007f485620031b2565b84528784015288830152606082015288601354169087519485809481936305157c7f60e21b83528a83016200335e565b03925af1801562000ade579083929162000ae8575b5080866013541685519384809263057ff68760e51b82525afa91821562000ade57859262000aa9575b50600019820191821162000a96579385608494958280986015541688519788809263450d106f60e11b8252888a8301526001602483015267016345785d8a000080604484015260648301525afa958615620006165791839162000972989795936060979590849762000a5f575b5090620008e982620002f66200091294620002db620033dc565b62000921620009008289518a0101838a016200341f565b9490916200036d81620002f06200343b565b6200036d81620002f062003468565b6200093082620002f062003495565b6716e5fa420765000091828103620009c5575b50505060135416928651978895869485936305d8703160e31b8552840152886024840152604483019062003337565b03925af1908115620009bc575062000988575080f35b620009ae9060603d606011620009b4575b620009a58183620031ec565b8101906200341f565b50505080f35b503d62000999565b513d84823e3d90fd5b6000805160206200985d83398151915260808b518481526022858201526000805160206200989d8339815191528d82015261745d60f01b8c820152a18951928a845262000a148b850162003732565b908385015283600080516020620098bd8339815191529485920390a189519182918b835262000a458c84016200374f565b918301520390a162000a5662003860565b89808062000943565b620008e997506200091292915062000a8b903d8087833e62000a828183620031ec565b810190620033a1565b9790919250620008cf565b634e487b7160e01b855260118352602485fd5b9080925081813d831162000ad6575b62000ac48183620031ec565b81010312620006605751908662000862565b503d62000ab8565b84513d87823e3d90fd5b62000b049060803d608011620006a457620006928183620031ec565b50505062000839565b62000b2491503d8086833e620006c48183620031ec565b89620007d4565b62000b36906200316a565b620001085781846200075d565b505034620001085781600319360112620001085760209062000b64620035ba565b90519015158152f35b91905034620006f75782600319360112620006f7576000805160206200987d833981519152803b1562000d8d578382516372eb5f8160e11b81528185820152818160248183875af18015620006fb5762000e31575b5050815162000bd18162003195565b671bc16d674ec800008152602091858383015285848301528562000c168160018060a01b03948560155416885180809581946389ea855960e01b83528d8301620032d6565b03915afa90811562000e275760809162000c8291849162000e09575b5085601454169086601654168760175416908a519362000c5285620031b2565b84528984015289830152606082015285601354169088519485809481936305157c7f60e21b83528d83016200335e565b03925af1801562000dda5762000de4575b508483836013541686519283809263057ff68760e51b82525afa93841562000dda57879462000da4575b5050600019830192831162000d915790818693923b1562000d8d578451630618f58760e51b8152634323a55560e01b878201529084908290602490829084905af1801562000d835790849162000d6b575b5050606490601554169484519586938492633928ff9760e01b845283015260016024830152670f43fc2c04ee000060448301525afa908115620009bc575062000d55575080f35b620009ae903d8084833e620006038183620031ec565b62000d76906200316a565b620006f757823862000d0e565b85513d86823e3d90fd5b8380fd5b634e487b7160e01b865260118552602486fd5b9080929450813d831162000dd2575b62000dbf8183620031ec565b8101031262000660575191388062000cbd565b503d62000db3565b85513d89823e3d90fd5b62000e009060803d608011620006a457620006928183620031ec565b50505062000c93565b62000e2091503d8086833e620006c48183620031ec565b3862000c32565b86513d84823e3d90fd5b62000e3c906200316a565b62000d8d57833862000bc2565b905034620006f75782600319360112620006f757826000805160206200987d833981519152803b15620001085781809160248651809481936372eb5f8160e11b835281898401525af18015620006fb57620012c5575b505081519062000eaf8262003195565b671bc16d674ec800008252836020928184820152818582015262000ef48260018060a01b03928360155416885180809581946389ea855960e01b83528a8301620032d6565b03915afa908115620012bb5760809162000f609185916200129d575b5083601454169084601654168560175416908a519362000f3085620031b2565b84528984015289830152606082015283601354169088519586809481936305157c7f60e21b83528a83016200335e565b03925af1918215620006d557839262001278575b5083816013541686519384809263057ff68760e51b82525afa918215620006d557869262001243575b50600019820191821162001230579160649391868481889660155416875198898092633928ff9760e01b8252878983015284602483015267016345785d8a000060448301525afa94851562000e2757620003c597838491859862001201575b50906200101782620002e16200109f9594620002db620033dc565b6200102681620002f062003545565b66b1a2bc2ec500009081810362001167575b50506200108a620010518289518a0101838a016200341f565b9390916200106381620002f06200343b565b8b670d2f13f7789f000092838303620010cb575b505050506200036d81620002f062003468565b6200109981620002f062003495565b62003834565b601354169285519687958694859363bd0625ab60e01b8552840152876024840152604483019062003337565b6200114c926000805160206200985d833981519152608084518481526022858201526000805160206200989d8339815191528682015261745d60f01b6060820152a18251948386526200112084870162003732565b908387015285600080516020620098bd8339815191529687920390a1825193838594855284016200374f565b918301520390a16200115d62003860565b38808b8162001077565b6000805160206200985d83398151915260808b518581526022868201526000805160206200989d8339815191528d82015261745d60f01b6060820152a18951918a8352620011b78b840162003732565b908484015282600080516020620098bd8339815191529384920390a1895180918b8252620011e78c83016200374f565b90858301520390a1620011f962003860565b388062001038565b6200101798506200109f9392506200122591503d8087833e620006038183620031ec565b989293509162000ffc565b634e487b7160e01b865260118352602486fd5b9091508381813d831162001270575b6200125e8183620031ec565b81010312620006605751903862000f9d565b503d62001252565b620012949060803d608011620006a457620006928183620031ec565b50505062000f74565b620012b491503d8087833e620006c48183620031ec565b3862000f10565b86513d85823e3d90fd5b620012d0906200316a565b620006f757823862000e9f565b91905034620006f75782600319360112620006f7576000805160206200987d833981519152803b1562000d8d578382516372eb5f8160e11b81528185820152818160248183875af18015620006fb5762001506575b50508151620013418162003195565b671bc16d674ec8000081526020918583830152858483015285620013868160018060a01b03948560155416885180809581946389ea855960e01b83528d8301620032d6565b03915afa90811562000e2757608091620013c191849162000e09575085601454169086601654168760175416908a519362000c5285620031b2565b03925af1801562000dda57620014e1575b508483836013541686519283809263057ff68760e51b82525afa93841562000dda578794620014ab575b5050600019830192831162000d915790818693923b1562000d8d578451630618f58760e51b8152634323a55560e01b878201529084908290602490829084905af1801562000d835790849162001493575b5050606490601554169484519586938492633928ff9760e01b8452830152846024830152671d24b2dfac52000060448301525afa908115620009bc575062000d55575080f35b6200149e906200316a565b620006f75782386200144d565b9080929450813d8311620014d9575b620014c68183620031ec565b81010312620006605751913880620013fc565b503d620014ba565b620014fd9060803d608011620006a457620006928183620031ec565b505050620013d2565b62001511906200316a565b62000d8d57833862001332565b91905034620006f75782600319360112620006f7576000805160206200987d833981519152803b1562000d8d578382516372eb5f8160e11b81528185820152818160248183875af18015620006fb576200176f575b50508151620015828162003195565b671bc16d674ec800008152602091660aa87bee53800083830152858483015285620015ce8160018060a01b03948560155416885180809581946389ea855960e01b83528d8301620032d6565b03915afa90811562000e27576080916200160991849162000e09575085601454169086601654168760175416908a519362000c5285620031b2565b03925af1801562000dda576200174a575b508483836013541686519283809263057ff68760e51b82525afa93841562000dda57879462001714575b5050600019830192831162000d915790818693923b1562000d8d578451630618f58760e51b8152634323a55560e01b878201529084908290602490829084905af1801562000d8357908491620016fc575b505060849060155416948451958693849263450d106f60e11b84528301528460248301526710a741a46278000080604484015260648301525afa908115620009bc5750620016e1575080f35b620016f7903d8084833e62000a828183620031ec565b505080f35b62001707906200316a565b620006f757823862001695565b9080929450813d831162001742575b6200172f8183620031ec565b8101031262000660575191388062001644565b503d62001723565b620017669060803d608011620006a457620006928183620031ec565b5050506200161a565b6200177a906200316a565b62000d8d57833862001573565b83833462000108578160031936011262000108576000805160206200987d833981519152803b15620006f75782809160248451809481936372eb5f8160e11b8352818a8401525af18015620004095790839162001cb3575b5050805192620017ef8462003195565b6200183d671bc16d674ec8000094858152660aa87bee538000906020828183015286868301528660018060a01b03928360155416885180809881946389ea855960e01b83528b8301620032d6565b03915afa9384156200066d57879462001c93575b5081601454169082601654168360175416908851936200187185620031b2565b8452828401528783015260609485830152826013541686885180926305157c7f60e21b8252818c81620018aa6080998a9783016200335e565b03925af1801562001c66579087959493929162001c70575b5080836013541689519687809263057ff68760e51b82525afa94851562001c6657899562001c31575b50600019850194851162001c1e578899888460149b98999a9b541691888860248d8551968793849263dc17835560e01b84528301525afa96871562001c14576200194e60249888958c8e9d9262001bf5575b5050868082518301019101620034c1565b91825181810362001b5c575b50508482015181810362001ac3575b5050015116918262001a05575b5050506013541694865195869384926333854efd60e21b84528301525afa918215620019f857620019c69350849085928694620019c9575b505090620019c062001099926200384a565b6200384a565b80f35b620019c09450620010999350620019ef9250803d10620009b457620009a58183620031ec565b939092620019ae565b50505051903d90823e3d90fd5b6000805160206200985d833981519152908a518381526025848201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b6164648c82015264726573735d60d81b89820152a188519189835262001a678a840162003732565b8b83850152837f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f9485920390a189519182918b835262001aa98c84016200374f565b918301520390a162001aba62003860565b88808062001976565b6000805160206200985d833981519152878c61745d60f01b8751918a835260228b8401526000805160206200989d83398151915289840152820152a183519184835262001b1285840162003732565b908784015282600080516020620098bd8339815191529384920390a18351809185825262001b428683016200374f565b90888301520390a162001b5462003860565b8d8062001969565b6000805160206200985d833981519152888d61745d60f01b8851918b835260228c8401526000805160206200989d8339815191528a840152820152a184519185835262001bab86840162003732565b908884015282600080516020620098bd8339815191529384920390a18451809186825262001bdb8783016200374f565b90898301520390a162001bed62003860565b8e806200195a565b62001c0c92503d8091833e620006c48183620031ec565b8f806200193d565b82513d8b823e3d90fd5b634e487b7160e01b895260118752602489fd5b9080955081813d831162001c5e575b62001c4c8183620031ec565b81010312620006605751938a620018eb565b503d62001c40565b88513d8b823e3d90fd5b62001c8a90833d8511620006a457620006928183620031ec565b505050620018c2565b62001cab9194503d8089833e620006c48183620031ec565b928862001851565b62001cbe906200316a565b62000108578184620017df565b905034620006f75782600319360112620006f757826000805160206200987d833981519152803b15620001085781809160248651809481936372eb5f8160e11b835281898401525af18015620006fb57620020ab575b505081519062001d318262003195565b671bc16d674ec800008252836020928184820152818582015262001d768260018060a01b03928360155416885180809581946389ea855960e01b83528a8301620032d6565b03915afa908115620012bb5760809162001db19185916200129d575083601454169084601654168560175416908a519362000f3085620031b2565b03925af1918215620006d557839262002086575b5083816013541686519384809263057ff68760e51b82525afa918215620006d557869262002051575b50600019820191821162001230579160649391868481889660155416875198898092633928ff9760e01b825287898301526001602483015267016345785d8a000060448301525afa94851562000e2757620003c597838491859862002022575b509062001e6982620002e16200109f9594620002db620033dc565b62001e7881620002f062003545565b6702c68af0bb1400009081810362001f88575b505062001eb862001ea48289518a0101838a016200341f565b93916200036d81620002f09593956200343b565b62001ec782620002f062003468565b670b1a2bc2ec5000009182810362001eec575b5050506200109981620002f062003495565b6000805160206200985d83398151915260808c6000805160206200989d83398151915281519186835260228784015282015261745d60f01b6060820152a18a51928b845262001f3d8c850162003732565b908385015283600080516020620098bd8339815191529485920390a18a519182918c835262001f6e8d84016200374f565b918301520390a162001f7f62003860565b38808062001eda565b6000805160206200985d83398151915260808b518581526022868201526000805160206200989d8339815191528d82015261745d60f01b6060820152a18951918a835262001fd88b840162003732565b908484015282600080516020620098bd8339815191529384920390a1895180918b8252620020088c83016200374f565b90858301520390a16200201a62003860565b388062001e8b565b62001e6998506200109f9392506200204691503d8087833e620006038183620031ec565b989293509162001e4e565b9091508381813d83116200207e575b6200206c8183620031ec565b81010312620006605751903862001dee565b503d62002060565b620020a29060803d608011620006a457620006928183620031ec565b50505062001dc5565b620020b6906200316a565b620006f757823862001d21565b505034620001085781600319360112620001085760209051660aa87bee5380008152f35b505034620001085781600319360112620001085751908152602090f35b905034620006f75782600319360112620006f757826000805160206200987d833981519152803b15620001085781809160248651809481936372eb5f8160e11b835281898401525af18015620006fb576200256a575b50508151906200216a8262003195565b671bc16d674ec800008252620021b5602092660aa87bee5380008482015285858201528560018060a01b03918260155416875180809681946389ea855960e01b8352898301620032d6565b03915afa918215620006d55786926200254a575b508060145416918160165416826017541690875194620021e986620031b2565b85528685015286840152606083015262002221816013541692865180946305157c7f60e21b8252818a8160809687968b83016200335e565b03925af19283156200066d57849362002527575b5084826013541687519485809263057ff68760e51b82525afa9283156200066d578793620024f2575b50600019830192831162000620579186826064969482899795601554168851998a8092633928ff9760e01b8252888a8301526001602483015267016345785d8a000060448301525afa9586156200061657620003c5988485918699620024c9575b5080620002e1620022d492620002db620033dc565b620022e381620002f062003545565b6702c4693e583680009081810362002430575b5050620023216200230f8289518a0101838a016200341f565b9290916200036d81620002f06200343b565b6200233081620002f062003468565b670b1c4d754f2d80009081810362002396575b50506200235481620002f062003495565b6714d222e6ac84c00092838203620004155750505050601354169285519687958694859363bd0625ab60e01b8552840152876024840152604483019062003337565b6000805160206200985d833981519152858c6000805160206200989d83398151915281519188835260228984015282015261745d60f01b6060820152a18a51918b8352620023e68c840162003732565b908584015282600080516020620098bd8339815191529384920390a18a5180918c8252620024168d83016200374f565b90868301520390a16200242862003860565b388062002343565b6000805160206200985d833981519152848b518581526022868201526000805160206200989d8339815191528d82015261745d60f01b6060820152a18951918a83526200247f8b840162003732565b908484015282600080516020620098bd8339815191529384920390a1895180918b8252620024af8c83016200374f565b90858301520390a1620024c162003860565b3880620022f6565b9050620022d49850620024e891503d8087833e620006038183620031ec565b98909190620022bf565b9092508481813d83116200251f575b6200250d8183620031ec565b8101031262000660575191386200225e565b503d62002501565b6200254190823d8411620006a457620006928183620031ec565b50505062002235565b620025629192503d8088833e620006c48183620031ec565b9038620021c9565b62002575906200316a565b620006f75782386200215a565b905034620006f75782600319360112620006f7576000805160206200987d83398151915291823b1562000d8d578381516372eb5f8160e11b81528184820152818160248183895af1801562002983576200296b575b5050805191620025e78362003195565b671bc16d674ec800008352602092660aa87bee53800084820152858382015285620026338160018060a01b03938460155416875180809581946389ea855960e01b83528a8301620032d6565b03915afa90811562002961576080916200269f91849162002943575b5084601454169085601654168660175416908951936200266f85620031b2565b84528a84015288830152606082015284601354169087519485809481936305157c7f60e21b83528a83016200335e565b03925af180156200291457908392916200291e575b5084816013541685519384809263057ff68760e51b82525afa91821562002914578792620028df575b506000198201918211620028cc5790869184516002878201526729a2241af62c0000978887830152868252620027138262003195565b803b15620028a657848091602489518094819363ca669fa760e01b8352818c8401525af18015620028c257908591620028aa575b50508160135416803b15620028a65762002786859291839289519485809481936242d70760e31b83528a8d8401528d6024840152604483019062003337565b03925af180156200289c5790849162002884575b505060249060145416938551948593849263dc17835560e01b84528301525afa9081156200287a5790620027e09186916200285c575b50838082518301019101620034c1565b5191838303620027ee578480f35b62002843926000805160206200985d833981519152608084518481526022858201526000805160206200989d8339815191528682015261745d60f01b6060820152a18251948386526200112084870162003732565b918301520390a16200285462003860565b388080808480f35b6200287391503d8088833e620006c48183620031ec565b38620027d0565b82513d87823e3d90fd5b6200288f906200316a565b620006f75782386200279a565b86513d86823e3d90fd5b8480fd5b620028b5906200316a565b62000d8d57833862002747565b87513d87823e3d90fd5b634e487b7160e01b875260118352602487fd5b9091508481813d83116200290c575b620028fa8183620031ec565b810103126200066057519038620026dd565b503d620028ee565b84513d89823e3d90fd5b6200293a9060803d608011620006a457620006928183620031ec565b505050620026b4565b6200295a91503d8086833e620006c48183620031ec565b386200264f565b85513d84823e3d90fd5b62002976906200316a565b62000d8d578338620025d7565b83513d84823e3d90fd5b83833462000108578160031936011262000108576000805160206200987d833981519152803b15620006f75782809160248451809481936372eb5f8160e11b8352818a8401525af18015620004095790839162002cf0575b5050805192620029f58462003195565b671bc16d674ec8000084526020660aa87bee53800081860152838386015262002a3f8460018060a01b03968760155416865180809581946389ea855960e01b8352898301620032d6565b03915afa90811562000ade5762002a7b8692608092849162000b0d575088601454169089601654168a6017541690895193620007f485620031b2565b03925af1801562000ade579083929162002ccb575b5080866013541685519384809263057ff68760e51b82525afa91821562000ade57859262002c96575b50600019820191821162000a96579385608494958280986015541688519788809263450d106f60e11b8252888a83015284602483015267016345785d8a000080604484015260648301525afa958615620006165791839162000972989795936060979590849762002c68575b509062002b3f82620002f662002b6e94620002db620033dc565b62002b7d62002b568289518a0101838a016200341f565b94909162002b6881620002f06200343b565b6200376c565b62002b6881620002f062003468565b62002b8c82620002f062003495565b6712bc29d8eec700009182810362002bce575b5050506013541692865197889586948593634eca17cd60e11b8552840152886024840152604483019062003337565b6000805160206200985d83398151915260808b518481526022858201526000805160206200989d8339815191528d82015261745d60f01b8c820152a18951928a845262002c1d8b850162003732565b908385015283600080516020620098bd8339815191529485920390a189519182918b835262002c4e8c84016200374f565b918301520390a162002c5f62003860565b89808062002b9f565b62002b3f975062002b6e92915062002c8b903d8087833e62000a828183620031ec565b979091925062002b25565b9080925081813d831162002cc3575b62002cb18183620031ec565b81010312620006605751908662002ab9565b503d62002ca5565b62002ce79060803d608011620006a457620006928183620031ec565b50505062002a90565b62002cfb906200316a565b62000108578184620029e5565b9150913462000d8d578360031936011262000d8d5761106b928383019267ffffffffffffffff948185108686111762003157576200390191818382396060865260066060870152650e8ded6cadcb60d31b608087015260e08160209760a089820152600160a0820152600b60fb1b60c082015260128882015203019088f0908115620029145760018060a01b0392836bffffffffffffffffffffffff60a01b9316836016541617601655855191808301918383108a841117620031445791839160e0938339606081526006606082015265746f6b656e5960d01b608082015260a089820152600160a0820152605960f81b60c082015260128882015203019088f0801562002914578216816017541617601755816016541695863b15620031145784516340c10f1960e01b80825230868301526a52b7d2dcc80cd2e4000000918a8160249b858d83015281835a92604493f180156200313a5762003122575b50908991856017541690813b1562000d8d5760448b918580948c51968795869485528d30908601528401525af180156200311857620030fc575b50508260165416836017541690865191610597918284019284841086851117620030d85791606093918593620092c6853982528a820152670de0b6b3a76400008982015203019089f08015620030ce5783168260185416176018558451612f218082019082821084831117620030ea57889183916200496c83398b815203019089f08015620030ce5783166013548184821617601355865191610db0918284019284841086851117620030d857918c8b949286946200851686391617815203019089f08015620030ce57831690601454918084841617601455865192610c898085019385851090851117620030bc57918b8a949286946200788d86391617815203019088f08015620029145790828794939216906015541617601555868160165416918187826013541694604489518094819363095ea7b360e01b998a84528b840152600019809c8401525af1801562000616579088959493929162003079575b506044939495816017541691601354169988519a8b97889687528601528401525af190811562003070575062003036578280f35b81813d831162003068575b6200304d8183620031ec565b81010312620001085762003061906200320f565b5038808280f35b503d62003041565b513d85823e3d90fd5b939484813d8311620030b4575b620030928183620031ec565b8101031262000108578795620030aa6044956200320f565b5095949362003002565b503d62003086565b634e487b7160e01b8c52604188528a8cfd5b85513d8a823e3d90fd5b634e487b7160e01b8d52604189528b8dfd5b634e487b7160e01b8b5260418752898bfd5b62003107906200316a565b6200311457873862002ea1565b8780fd5b87513d84823e3d90fd5b62003131909a91929a6200316a565b98903862002e67565b88513d8d823e3d90fd5b634e487b7160e01b8b526041875260248bfd5b634e487b7160e01b875260418352602487fd5b67ffffffffffffffff81116200317f57604052565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff8211176200317f57604052565b6080810190811067ffffffffffffffff8211176200317f57604052565b6040810190811067ffffffffffffffff8211176200317f57604052565b90601f8019910116810190811067ffffffffffffffff8211176200317f57604052565b519081151582036200066057565b67ffffffffffffffff81116200317f57601f01601f191660200190565b60005b8381106200324e5750506000910152565b81810151838201526020016200323d565b81601f820112156200066057805162003278816200321d565b92620032886040519485620031ec565b818452602082840101116200066057620032a991602080850191016200323a565b90565b906020828203126200066057815167ffffffffffffffff81116200066057620032a992016200325f565b919091608060a0820193670de0b6b3a764000080845260208401528051604084015260208101516060840152604060018060a01b0391015116910152565b919082608091031262000660578151916020810151916060604083015192015190565b9060209162003352815180928185528580860191016200323a565b601f01601f1916010190565b60a06060620032a99360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062003337565b9190916040818403126200066057620033ba816200320f565b92602082015167ffffffffffffffff81116200066057620032a992016200325f565b60405190620033eb82620031cf565b600782526602b30b634b21d160cd1b6020830152565b156200340957565b634e487b7160e01b600052600160045260246000fd5b9081606091031262000660578051916040602083015192015190565b604051906200344a82620031cf565b600f82526e032b7322932b9b2b93b32b9a93c1d1608d1b6020830152565b604051906200347782620031cf565b600f82526e032b7322932b9b2b93b32b9a93c9d1608d1b6020830152565b60405190620034a482620031cf565b600e82526d032b7322932b9b2b93b32b9a61d160951b6020830152565b9081606091031262000660576040805191620034dd8362003195565b805183526020808201519084015201516001600160a01b03811681036200066057604082015290565b9160608383031262000660576200351d836200320f565b92602081015192604082015167ffffffffffffffff81116200066057620032a992016200325f565b604051906200355482620031cf565b600b82526a020b6b7bab73a27baba1d160ad1b6020830152565b919082604091031262000660576020825192015190565b3d15620035b5573d9062003599826200321d565b91620035a96040519384620031ec565b82523d6000602084013e565b606090565b6000805460081c60ff1615620035d4575460081c60ff1690565b806000805160206200987d833981519152803b620035f157505090565b819250819060405182602082018381526519985a5b195960d21b6040840152604083526200361f8362003195565b6200365b602460405180936200364a6020830197630667f9d760e41b8952518092858501906200323a565b8101036004810184520182620031ec565b51925af1506200366a62003585565b906020828051810103126200368857506020620032a991016200320f565b80fd5b600091908291620036d66040518092620036bf602083019563c3b5563560e01b875260406024850152606484019062003337565b901515604483015203601f198101835282620031ec565b51906a636f6e736f6c652e6c6f675afa50565b600091908291620036d660405180926200371d6020830195632d839cb360e21b875260406024850152606484019062003337565b90604483015203601f198101835282620031ec565b600a8152690808115e1c1958dd195960b21b602082015260400190565b600a815269080808081058dd1d585b60b21b602082015260400190565b670c7d713b49da00009081810362003782575050565b62003809906040906000805160206200985d8339815191526080835160208152602260208201526000805160206200989d8339815191528582015261745d60f01b6060820152a1815193828552620037dc83860162003732565b90602086015284600080516020620098bd8339815191529586920390a1815192828493845283016200374f565b9060208301520390a16200381c62003860565b565b670f43fc2c04ee00009081810362003782575050565b6714d1120d7b1600009081810362003782575050565b670de0b6b3a76400009081810362003782575050565b6000805160206200987d833981519152803b6200388a575b5061010061ff00196000541617600055565b6000809160405182602082018381526519985a5b195960d21b60408401526001606084015260608352620038be83620031b2565b620038e9602460405180936200364a60208301976370ca10bb60e01b8952518092858501906200323a565b51925af150620038f862003585565b50386200387856fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461007457601f610c8938819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051610bf990816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60406080815260048036101561001457600080fd5b600091823560e01c9283633928ff971461005f57505050806389ea85591461005a5780638a1a20de146100555763a8c62e761461005057600080fd5b61088b565b6105c9565b6104fa565b346103cc5760603660031901126103cc57823560243561007e816103cf565b6044359161008a6108b4565b956100936108b4565b85549094906100b8906100ac906001600160a01b031681565b6001600160a01b031690565b8751632bee84f160e21b81529094602092838386818a5afa9283156102b657899361039d575b5060608a5180946333854efd60e21b825281806101028b8b83019190602083019252565b03916001600160a01b03165afa9081156102b6578b938a908b908c94610367575b50858d019384529486019485528c528a5163dc17835560e01b81528681018881528b908290819060200103818c5afa80156102b657610172918c91610345575b50868082518301019101610978565b92156102cb57916101be916101b66101de946101af888501516101a96101a361019b8386610b54565b975185610b80565b916109c8565b90610b80565b9e516109eb565b8a52516109eb565b8988019081526101d58b6101d06109f8565b610acc565b516101d0610a1f565b888151106102bb579261022f959261023d61025996936102018c60c098516109de565b818701525b8a5198899687928301919091604080606083019480518452602081015160208501520151910152565b03601f1981018652856104b6565b8851630d17a7c760e31b81529586948593849330908501610a78565b03915afa9283156102b6579261027e575b5061027a91925193849384610426565b0390f35b61027a92506102a49060c03d60c0116102af575b61029c81836104b6565b810190610a41565b50505050509161026a565b503d610292565b6108e8565b8751634323a55560e01b81528390fd5b916101be9161031161031b946101af969e968885015194610309836103046102fe6102f68a84610b54565b855190610b24565b986109c8565b610b80565b905190610ba1565b868b0152516109eb565b888151106102bb579261022f959261023d610259969361033e8c60c098516109de565b8652610206565b61036191503d808e833e61035981836104b6565b81019061090f565b8e610163565b91505061038d91925060603d606011610396575b61038581836104b6565b8101906108f4565b9291908e610123565b503d61037b565b6103be919350843d86116103c5575b6103b681836104b6565b8101906108d3565b918b6100de565b503d6103ac565b80fd5b801515036103d957565b600080fd5b60005b8381106103f15750506000910152565b81810151838201526020016103e1565b9060209161041a815180928185528580860191016103de565b601f01601f1916010190565b61044493926060921515825260208201528160408201520190610401565b90565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761047957604052565b610447565b60e0810190811067ffffffffffffffff82111761047957604052565b6040810190811067ffffffffffffffff82111761047957604052565b90601f8019910116810190811067ffffffffffffffff82111761047957604052565b6001600160a01b038116036103d957565b906020610444928181520190610401565b346103d95760a03660031901126103d95760243560043560603660431901126103d9576040516105298161045d565b60443590818152602081019060643582526105576084359361054a856104d8565b6040830194855286610b24565b84018085116105ab5761027a95604051956020870152604086015260608501525160808401525160a083015260018060a01b0390511660c082015260c0815261059f8161047e565b604051918291826104e9565b6109b2565b6040906104449392151581528160208201520190610401565b346103d95760803660031901126103d957600460243581356105ea826103cf565b604435906064356105f96108b4565b916106026108b4565b9260009561061c6100ac6100ac895460018060a01b031690565b93604096875190632bee84f160e21b825260209485838d818b5afa80156102b657876060918e61066d968f9261086c575b508d516333854efd60e21b81529081019283529586928391829160200190565b03916001600160a01b03165afa80156102b6578b888e6106bd938e9784918591869161084a575b508c880199880152885285528d51938492839263dc17835560e01b845283019190602083019252565b03818c5afa80156102b6576106e2918d91610830575b50878082518301019101610978565b94156107cf5761077698969461072661071761022f9e9661075a9661070f60a09d9b9761072c97516109eb565b8c52516109eb565b80858b01528951925190610b24565b906109eb565b898701525b88519a8b9687928301919091604080606083019480518452602081015160208501520151910152565b8651638a04bdd560e01b81529586948593849330908501610a78565b03915afa9283156102b65792610796575b5061027a9051928392836105b0565b61027a9192506107bd9060a03d60a0116107c8575b6107b581836104b6565b810190610a9c565b505050509190610787565b503d6107ab565b818151108015610826575b6108165761077698969461072661071761022f9e9661075a9661080560a09d9b9761080d97516109de565b8c52516109de565b89870152610731565b8951634323a55560e01b81528c90fd5b50838351106107da565b61084491503d808f833e61035981836104b6565b386106d3565b915050610866915060603d6060116103965761038581836104b6565b38610694565b6108849192508a3d8c116103c5576103b681836104b6565b903861064d565b346103d95760003660031901126103d9576000546040516001600160a01b039091168152602090f35b604051906108c18261045d565b60006040838281528260208201520152565b908160209103126103d95751610444816104d8565b6040513d6000823e3d90fd5b908160609103126103d9578051916040602083015192015190565b6020818303126103d957805167ffffffffffffffff918282116103d957019082601f830112156103d9578151908111610479576040519261095a601f8301601f1916602001856104b6565b818452602082840101116103d95761044491602080850191016103de565b908160609103126103d95760408051916109918361045d565b805183526020810151602084015201516109aa816104d8565b604082015290565b634e487b7160e01b600052601160045260246000fd5b90670de0b6b3a76400009182039182116105ab57565b919082039182116105ab57565b919082018092116105ab57565b60405190610a058261049a565b600b82526a030b6b7bab73a27baba1d160ad1b6020830152565b60405190610a2c8261049a565b600682526503732bba61d160d51b6020830152565b91908260c09103126103d9578151610a58816103cf565b9160208101519160408201519160608101519160a0608083015192015190565b610444939260609260018060a01b0316825260208201528160408201520190610401565b908160a09103126103d9578051610ab2816103cf565b916020820151916040810151916080606083015192015190565b600091908291610b116040518092610afd6020830195632d839cb360e21b8752604060248501526064840190610401565b90604483015203601f1981018352826104b6565b51906a636f6e736f6c652e6c6f675afa50565b90670de0b6b3a764000091828102928184041490151781151516156103d957600190600019830104019015150290565b8181029181830414901517600116156103d9576001670de0b6b3a7640000600019830104019015150290565b8181029181830414901517600116156103d957670de0b6b3a7640000900490565b670de0b6b3a764000090818102918183041490151782151516156103d957049056fea26469706673582212208dfd5857d9ca2481ec2f8db3afb8a6c38074c957084a4bb83e162400bf0d0bad64736f6c6343000816003360803461007457601f610db038819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051610d2090816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b61087d565b610854565b610705565b6106cb565b6105b4565b610343565b61028b565b61023f565b3461013b57604036600319011261013b576024359067ffffffffffffffff821161013b573660238301121561013b576101376101276101026100f3366004870135602488016101b3565b602080825183010191016108b0565b90610120610111600435610aed565b602080825183010191016108cb565b5192610b61565b6040519081529081906020820190565b0390f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761017057604052565b61013e565b6040810190811067ffffffffffffffff82111761017057604052565b90601f8019910116810190811067ffffffffffffffff82111761017057604052565b92919267ffffffffffffffff821161017057604051916101dd601f8201601f191660200184610191565b8294818452818301116101fa578281602093846000960137010152565b600080fd5b919082519283825260005b84811061022b575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161020a565b346101fa5760003660031901126101fa5761013760405161025f81610175565b600b81526a436f6e7374616e7453756d60a81b60208201526040519182916020835260208301906101ff565b346101fa5760203660031901126101fa57600435600052600160205260606040600020805490600181015490600260018060a01b03910154169060405192835260208301526040820152f35b6001600160a01b038116036101fa57565b9060606003198301126101fa57600435610301816102d7565b916024359160443567ffffffffffffffff928382116101fa57806023830112156101fa5781600401359384116101fa57602484830101116101fa576024019190565b346101fa57610351366102e8565b9250906103ab606061036561011184610aed565b60005490939061038b9061037f906001600160a01b031681565b6001600160a01b031690565b60405180809581946333854efd60e21b8352600483019190602083019252565b03915afa9283156105af57600094600092600095610572575b50906103d291810190610911565b92919390956000928086116000146104bf575061043561042d6104659461041b6103ff61043e958a610942565b6104108161040b610954565b610bb0565b602087015190610cbe565b906104288261040b610986565b6109b4565b965b856109c1565b958612156109da565b61044f8561044a6109f7565b610bfa565b61045c815161040b610a30565b51828685610b61565b936104728561044a610a53565b846013191292836104b4575b6101379394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b60148612935061047e565b925050818611156105145761043e61043561050e6104fa6104e3610465968b610942565b6104ef8161040b610954565b602086015190610cbe565b6105068161040b610986565b845190610c8e565b9661042f565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b90945061059d9195506103d2925060603d6060116105a8575b6105958183610191565b8101906108b0565b9195919490926103c4565b503d61058b565b610905565b346101fa576105c2366102e8565b600054919350906001600160a01b031633036106b95782906105e2610a8c565b508101039160c083126101fa578035916020820135916060604082013595605f1901126101fa5761067791600161066c6040519361061f85610154565b606081013580865260a06020870192608081013584520135610640816102d7565b6040870152610659856000526001602052604060002090565b5551926000526001602052604060002090565b015551848385610b61565b92836013191291826106ae575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b601485129250610684565b604051636853cba760e01b8152600490fd5b346101fa576106fc6101116106f26106776106e5366102e8565b9080929593500190610911565b9591949093610aed565b51848385610b61565b346101fa57610713366102e8565b6000549093906001600160a01b0390811633036106b95761075461037f6002610746876000526001602052604060002090565b01546001600160a01b031690565b9116036108425761076783820182610ab5565b61077081610acd565b600281036107a5575061078c610791916107a2939436916101b3565b610c51565b916000526001602052604060002090565b55005b6107ae81610acd565b600181036107e157506107cc61078c6107dd926001949536916101b3565b926000526001602052604060002090565b0155005b806107ed600392610acd565b036108305761080e6107cc61080960029361082e9636916101b3565b610c29565b0180546001600160a01b0319166001600160a01b03909216919091179055565b005b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101fa5760003660031901126101fa576000546040516001600160a01b039091168152602090f35b346101fa5760203660031901126101fa5761013761089c600435610aed565b6040519182916020835260208301906101ff565b908160609103126101fa578051916040602083015192015190565b908160609103126101fa5760408051916108e483610154565b805183526020810151602084015201516108fd816102d7565b604082015290565b6040513d6000823e3d90fd5b908160609103126101fa578035916040602083013592013590565b634e487b7160e01b600052601160045260246000fd5b9190820391821161094f57565b61092c565b6040519061096182610175565b6016825275030b6b7bab73a24b71034b7103b30b634b230ba329d160551b6020830152565b6040519061099382610175565b601282527103332b2b99034b7103b30b634b230ba329d160751b6020830152565b9190820180921161094f57565b8181039291600013801582851316918412161761094f57565b156109e157565b634e487b7160e01b600052600160045260246000fd5b60405190610a0482610175565b601c82527f6c697175696469747944656c746120696e2076616c69646174653a20000000006020830152565b60405190610a3d82610175565b60078252660383934b1b29d160cd1b6020830152565b60405190610a6082610175565b601782527f696e76617269616e7420696e2076616c69646174653a200000000000000000006020830152565b60405190610a9982610154565b60006040838281528260208201520152565b600411156101fa57565b908160209103126101fa5735610aca81610aab565b90565b60041115610ad757565b634e487b7160e01b600052602160045260246000fd5b610af5610a8c565b90806000526001602052604090816000205483526000526001602052600181600020015491602081019283528151928151602085015251828401528160018060a01b0391015116606083015260608252608082019082821067ffffffffffffffff831117610170575290565b8293610b73610b7f94610b7993610c8e565b94610cbe565b90610c8e565b906000828201928312911290801582169115161761094f57670de0b6b3a763ffff19810190811360011661094f5790565b610bf3610bdf91610bf893604051938492632d839cb360e21b60208501526040602485015260648401906101ff565b90604483015203601f198101835282610191565b610c73565b565b610bf3610bdf91610bf893604051938492631e53134760e11b60208501526040602485015260648401906101ff565b6040818051810103126101fa5780610c4660206040930151610aab565b015161037f816102d7565b6040818051810103126101fa5780610c6e60206040930151610aab565b015190565b600080916020815191016a636f6e736f6c652e6c6f675afa50565b90670de0b6b3a764000091828102928184041490151781151516156101fa57600190600019830104019015150290565b8181029181830414901517600116156101fa576001670de0b6b3a764000060001983010401901515029056fea264697066735822122079499075bdd39583b9f30943004e2499fd0904e46091bbba750512bf0550406664736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c6343000816003341304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f500000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696eb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8a26469706673582212204dae5d66ea6f84fe059ca15458429b743fc88b13943d44de163a54cf0455b3d864736f6c63430008160033","sourceMap":"311:9978:46:-:0;;;;;;;1594:4:0;311:9978:46;;1594:4:0;311:9978:46;;;1594:4:0;311:9978:46;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600491823610156200001757600080fd5b600092833560e01c9182630a9254e41462002d08575081632a001b87146200298d578163330fdce51462002582578163368a67f314620021045781635ca61cb114620020e7578163620a260714620020c35781637cdc65bc1462001ccb578163964fb96d1462001787578163a182379e146200151e578163af08ec5314620012dd578163b736a4851462000e49578163b86532b31462000b6d578163ba414fa61462000b43578163dbd6f94d1462000705578163f5df5a2c146200010c575063fa7626d414620000e657600080fd5b34620001085781600319360112620001085760ff602092541690519015158152f35b5080fd5b905034620006f75782600319360112620006f757826000805160206200987d833981519152803b15620001085781809160248651809481936372eb5f8160e11b835281898401525af18015620006fb57620006df575b5050815190620001728262003195565b671bc16d674ec800008252620001bd602092660aa87bee5380008482015285858201528560018060a01b03918260155416875180809681946389ea855960e01b8352898301620032d6565b03915afa918215620006d5578692620006ac575b508060145416918160165416826017541690875194620001f186620031b2565b85528685015286840152606083015262000229816013541692865180946305157c7f60e21b8252818a8160809687968b83016200335e565b03925af19283156200066d57849362000677575b5084826013541687519485809263057ff68760e51b82525afa9283156200066d57879362000633575b50600019830192831162000620579186826064969482899795601554168851998a8092633928ff9760e01b8252888a83015284602483015267016345785d8a000060448301525afa9586156200061657620003c5988485918699620005e4575b5080620002e1620002fc92620002db620033dc565b6200368b565b620002f683620002f062003545565b620036e9565b62003401565b6200030b81620002f062003545565b66b11a4f960da000908181036200054b575b505062000373620003368289518a0101838a016200341f565b92916200034781620002f06200343b565b670d2f9c6411566000908c828203620004b0575b5050506200036d81620002f062003468565b6200381e565b6200038281620002f062003495565b6714d19a7a13cd60009283820362000415575b50505050601354169285519687958694859363bd0625ab60e01b8552840152876024840152604483019062003337565b03925af180156200040957620003d9578280f35b81620003fd92903d1062000401575b620003f48183620031ec565b8101906200356e565b8280f35b503d620003e8565b505051903d90823e3d90fd5b6000805160206200985d833981519152908a518481526022858201526000805160206200989d8339815191528c82015261745d60f01b6060820152a1885192898452620004648a850162003732565b908385015283600080516020620098bd8339815191529485920390a188519182918a8352620004958b84016200374f565b918301520390a1620004a662003860565b3880808062000395565b62000530916000805160206200985d8339815191528983518a815260228b8201526000805160206200989d8339815191528582015261745d60f01b6060820152a18151938285526200050483860162003732565b908986015284600080516020620098bd8339815191529586920390a1815192828493845283016200374f565b90888301520390a16200054262003860565b38808c6200035b565b6000805160206200985d833981519152848b518581526022868201526000805160206200989d8339815191528d82015261745d60f01b6060820152a18951918a83526200059a8b840162003732565b908484015282600080516020620098bd8339815191529384920390a1895180918b8252620005ca8c83016200374f565b90858301520390a1620005dc62003860565b38806200031d565b9050620002fc98506200060c91503d8087833e620006038183620031ec565b81019062003506565b98909190620002c6565b87513d85823e3d90fd5b634e487b7160e01b875260118452602487fd5b9092508481813d831162000665575b6200064e8183620031ec565b81010312620006605751913862000266565b600080fd5b503d62000642565b86513d89823e3d90fd5b6200069b90823d8411620006a4575b620006928183620031ec565b81019062003314565b5050506200023d565b503d62000686565b620006cd9192503d8088833e620006c48183620031ec565b810190620032ac565b9038620001d1565b85513d88823e3d90fd5b620006ea906200316a565b620006f757823862000162565b8280fd5b84513d84823e3d90fd5b83833462000108578160031936011262000108576000805160206200987d833981519152803b15620006f75782809160248451809481936372eb5f8160e11b8352818a8401525af18015620004095790839162000b2b575b50508051926200076d8462003195565b671bc16d674ec8000084526020660aa87bee538000818601528383860152620007b78460018060a01b03968760155416865180809581946389ea855960e01b8352898301620032d6565b03915afa90811562000ade57620008248692608092849162000b0d575b5088601454169089601654168a6017541690895193620007f485620031b2565b84528784015288830152606082015288601354169087519485809481936305157c7f60e21b83528a83016200335e565b03925af1801562000ade579083929162000ae8575b5080866013541685519384809263057ff68760e51b82525afa91821562000ade57859262000aa9575b50600019820191821162000a96579385608494958280986015541688519788809263450d106f60e11b8252888a8301526001602483015267016345785d8a000080604484015260648301525afa958615620006165791839162000972989795936060979590849762000a5f575b5090620008e982620002f66200091294620002db620033dc565b62000921620009008289518a0101838a016200341f565b9490916200036d81620002f06200343b565b6200036d81620002f062003468565b6200093082620002f062003495565b6716e5fa420765000091828103620009c5575b50505060135416928651978895869485936305d8703160e31b8552840152886024840152604483019062003337565b03925af1908115620009bc575062000988575080f35b620009ae9060603d606011620009b4575b620009a58183620031ec565b8101906200341f565b50505080f35b503d62000999565b513d84823e3d90fd5b6000805160206200985d83398151915260808b518481526022858201526000805160206200989d8339815191528d82015261745d60f01b8c820152a18951928a845262000a148b850162003732565b908385015283600080516020620098bd8339815191529485920390a189519182918b835262000a458c84016200374f565b918301520390a162000a5662003860565b89808062000943565b620008e997506200091292915062000a8b903d8087833e62000a828183620031ec565b810190620033a1565b9790919250620008cf565b634e487b7160e01b855260118352602485fd5b9080925081813d831162000ad6575b62000ac48183620031ec565b81010312620006605751908662000862565b503d62000ab8565b84513d87823e3d90fd5b62000b049060803d608011620006a457620006928183620031ec565b50505062000839565b62000b2491503d8086833e620006c48183620031ec565b89620007d4565b62000b36906200316a565b620001085781846200075d565b505034620001085781600319360112620001085760209062000b64620035ba565b90519015158152f35b91905034620006f75782600319360112620006f7576000805160206200987d833981519152803b1562000d8d578382516372eb5f8160e11b81528185820152818160248183875af18015620006fb5762000e31575b5050815162000bd18162003195565b671bc16d674ec800008152602091858383015285848301528562000c168160018060a01b03948560155416885180809581946389ea855960e01b83528d8301620032d6565b03915afa90811562000e275760809162000c8291849162000e09575b5085601454169086601654168760175416908a519362000c5285620031b2565b84528984015289830152606082015285601354169088519485809481936305157c7f60e21b83528d83016200335e565b03925af1801562000dda5762000de4575b508483836013541686519283809263057ff68760e51b82525afa93841562000dda57879462000da4575b5050600019830192831162000d915790818693923b1562000d8d578451630618f58760e51b8152634323a55560e01b878201529084908290602490829084905af1801562000d835790849162000d6b575b5050606490601554169484519586938492633928ff9760e01b845283015260016024830152670f43fc2c04ee000060448301525afa908115620009bc575062000d55575080f35b620009ae903d8084833e620006038183620031ec565b62000d76906200316a565b620006f757823862000d0e565b85513d86823e3d90fd5b8380fd5b634e487b7160e01b865260118552602486fd5b9080929450813d831162000dd2575b62000dbf8183620031ec565b8101031262000660575191388062000cbd565b503d62000db3565b85513d89823e3d90fd5b62000e009060803d608011620006a457620006928183620031ec565b50505062000c93565b62000e2091503d8086833e620006c48183620031ec565b3862000c32565b86513d84823e3d90fd5b62000e3c906200316a565b62000d8d57833862000bc2565b905034620006f75782600319360112620006f757826000805160206200987d833981519152803b15620001085781809160248651809481936372eb5f8160e11b835281898401525af18015620006fb57620012c5575b505081519062000eaf8262003195565b671bc16d674ec800008252836020928184820152818582015262000ef48260018060a01b03928360155416885180809581946389ea855960e01b83528a8301620032d6565b03915afa908115620012bb5760809162000f609185916200129d575b5083601454169084601654168560175416908a519362000f3085620031b2565b84528984015289830152606082015283601354169088519586809481936305157c7f60e21b83528a83016200335e565b03925af1918215620006d557839262001278575b5083816013541686519384809263057ff68760e51b82525afa918215620006d557869262001243575b50600019820191821162001230579160649391868481889660155416875198898092633928ff9760e01b8252878983015284602483015267016345785d8a000060448301525afa94851562000e2757620003c597838491859862001201575b50906200101782620002e16200109f9594620002db620033dc565b6200102681620002f062003545565b66b1a2bc2ec500009081810362001167575b50506200108a620010518289518a0101838a016200341f565b9390916200106381620002f06200343b565b8b670d2f13f7789f000092838303620010cb575b505050506200036d81620002f062003468565b6200109981620002f062003495565b62003834565b601354169285519687958694859363bd0625ab60e01b8552840152876024840152604483019062003337565b6200114c926000805160206200985d833981519152608084518481526022858201526000805160206200989d8339815191528682015261745d60f01b6060820152a18251948386526200112084870162003732565b908387015285600080516020620098bd8339815191529687920390a1825193838594855284016200374f565b918301520390a16200115d62003860565b38808b8162001077565b6000805160206200985d83398151915260808b518581526022868201526000805160206200989d8339815191528d82015261745d60f01b6060820152a18951918a8352620011b78b840162003732565b908484015282600080516020620098bd8339815191529384920390a1895180918b8252620011e78c83016200374f565b90858301520390a1620011f962003860565b388062001038565b6200101798506200109f9392506200122591503d8087833e620006038183620031ec565b989293509162000ffc565b634e487b7160e01b865260118352602486fd5b9091508381813d831162001270575b6200125e8183620031ec565b81010312620006605751903862000f9d565b503d62001252565b620012949060803d608011620006a457620006928183620031ec565b50505062000f74565b620012b491503d8087833e620006c48183620031ec565b3862000f10565b86513d85823e3d90fd5b620012d0906200316a565b620006f757823862000e9f565b91905034620006f75782600319360112620006f7576000805160206200987d833981519152803b1562000d8d578382516372eb5f8160e11b81528185820152818160248183875af18015620006fb5762001506575b50508151620013418162003195565b671bc16d674ec8000081526020918583830152858483015285620013868160018060a01b03948560155416885180809581946389ea855960e01b83528d8301620032d6565b03915afa90811562000e2757608091620013c191849162000e09575085601454169086601654168760175416908a519362000c5285620031b2565b03925af1801562000dda57620014e1575b508483836013541686519283809263057ff68760e51b82525afa93841562000dda578794620014ab575b5050600019830192831162000d915790818693923b1562000d8d578451630618f58760e51b8152634323a55560e01b878201529084908290602490829084905af1801562000d835790849162001493575b5050606490601554169484519586938492633928ff9760e01b8452830152846024830152671d24b2dfac52000060448301525afa908115620009bc575062000d55575080f35b6200149e906200316a565b620006f75782386200144d565b9080929450813d8311620014d9575b620014c68183620031ec565b81010312620006605751913880620013fc565b503d620014ba565b620014fd9060803d608011620006a457620006928183620031ec565b505050620013d2565b62001511906200316a565b62000d8d57833862001332565b91905034620006f75782600319360112620006f7576000805160206200987d833981519152803b1562000d8d578382516372eb5f8160e11b81528185820152818160248183875af18015620006fb576200176f575b50508151620015828162003195565b671bc16d674ec800008152602091660aa87bee53800083830152858483015285620015ce8160018060a01b03948560155416885180809581946389ea855960e01b83528d8301620032d6565b03915afa90811562000e27576080916200160991849162000e09575085601454169086601654168760175416908a519362000c5285620031b2565b03925af1801562000dda576200174a575b508483836013541686519283809263057ff68760e51b82525afa93841562000dda57879462001714575b5050600019830192831162000d915790818693923b1562000d8d578451630618f58760e51b8152634323a55560e01b878201529084908290602490829084905af1801562000d8357908491620016fc575b505060849060155416948451958693849263450d106f60e11b84528301528460248301526710a741a46278000080604484015260648301525afa908115620009bc5750620016e1575080f35b620016f7903d8084833e62000a828183620031ec565b505080f35b62001707906200316a565b620006f757823862001695565b9080929450813d831162001742575b6200172f8183620031ec565b8101031262000660575191388062001644565b503d62001723565b620017669060803d608011620006a457620006928183620031ec565b5050506200161a565b6200177a906200316a565b62000d8d57833862001573565b83833462000108578160031936011262000108576000805160206200987d833981519152803b15620006f75782809160248451809481936372eb5f8160e11b8352818a8401525af18015620004095790839162001cb3575b5050805192620017ef8462003195565b6200183d671bc16d674ec8000094858152660aa87bee538000906020828183015286868301528660018060a01b03928360155416885180809881946389ea855960e01b83528b8301620032d6565b03915afa9384156200066d57879462001c93575b5081601454169082601654168360175416908851936200187185620031b2565b8452828401528783015260609485830152826013541686885180926305157c7f60e21b8252818c81620018aa6080998a9783016200335e565b03925af1801562001c66579087959493929162001c70575b5080836013541689519687809263057ff68760e51b82525afa94851562001c6657899562001c31575b50600019850194851162001c1e578899888460149b98999a9b541691888860248d8551968793849263dc17835560e01b84528301525afa96871562001c14576200194e60249888958c8e9d9262001bf5575b5050868082518301019101620034c1565b91825181810362001b5c575b50508482015181810362001ac3575b5050015116918262001a05575b5050506013541694865195869384926333854efd60e21b84528301525afa918215620019f857620019c69350849085928694620019c9575b505090620019c062001099926200384a565b6200384a565b80f35b620019c09450620010999350620019ef9250803d10620009b457620009a58183620031ec565b939092620019ae565b50505051903d90823e3d90fd5b6000805160206200985d833981519152908a518381526025848201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b6164648c82015264726573735d60d81b89820152a188519189835262001a678a840162003732565b8b83850152837f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f9485920390a189519182918b835262001aa98c84016200374f565b918301520390a162001aba62003860565b88808062001976565b6000805160206200985d833981519152878c61745d60f01b8751918a835260228b8401526000805160206200989d83398151915289840152820152a183519184835262001b1285840162003732565b908784015282600080516020620098bd8339815191529384920390a18351809185825262001b428683016200374f565b90888301520390a162001b5462003860565b8d8062001969565b6000805160206200985d833981519152888d61745d60f01b8851918b835260228c8401526000805160206200989d8339815191528a840152820152a184519185835262001bab86840162003732565b908884015282600080516020620098bd8339815191529384920390a18451809186825262001bdb8783016200374f565b90898301520390a162001bed62003860565b8e806200195a565b62001c0c92503d8091833e620006c48183620031ec565b8f806200193d565b82513d8b823e3d90fd5b634e487b7160e01b895260118752602489fd5b9080955081813d831162001c5e575b62001c4c8183620031ec565b81010312620006605751938a620018eb565b503d62001c40565b88513d8b823e3d90fd5b62001c8a90833d8511620006a457620006928183620031ec565b505050620018c2565b62001cab9194503d8089833e620006c48183620031ec565b928862001851565b62001cbe906200316a565b62000108578184620017df565b905034620006f75782600319360112620006f757826000805160206200987d833981519152803b15620001085781809160248651809481936372eb5f8160e11b835281898401525af18015620006fb57620020ab575b505081519062001d318262003195565b671bc16d674ec800008252836020928184820152818582015262001d768260018060a01b03928360155416885180809581946389ea855960e01b83528a8301620032d6565b03915afa908115620012bb5760809162001db19185916200129d575083601454169084601654168560175416908a519362000f3085620031b2565b03925af1918215620006d557839262002086575b5083816013541686519384809263057ff68760e51b82525afa918215620006d557869262002051575b50600019820191821162001230579160649391868481889660155416875198898092633928ff9760e01b825287898301526001602483015267016345785d8a000060448301525afa94851562000e2757620003c597838491859862002022575b509062001e6982620002e16200109f9594620002db620033dc565b62001e7881620002f062003545565b6702c68af0bb1400009081810362001f88575b505062001eb862001ea48289518a0101838a016200341f565b93916200036d81620002f09593956200343b565b62001ec782620002f062003468565b670b1a2bc2ec5000009182810362001eec575b5050506200109981620002f062003495565b6000805160206200985d83398151915260808c6000805160206200989d83398151915281519186835260228784015282015261745d60f01b6060820152a18a51928b845262001f3d8c850162003732565b908385015283600080516020620098bd8339815191529485920390a18a519182918c835262001f6e8d84016200374f565b918301520390a162001f7f62003860565b38808062001eda565b6000805160206200985d83398151915260808b518581526022868201526000805160206200989d8339815191528d82015261745d60f01b6060820152a18951918a835262001fd88b840162003732565b908484015282600080516020620098bd8339815191529384920390a1895180918b8252620020088c83016200374f565b90858301520390a16200201a62003860565b388062001e8b565b62001e6998506200109f9392506200204691503d8087833e620006038183620031ec565b989293509162001e4e565b9091508381813d83116200207e575b6200206c8183620031ec565b81010312620006605751903862001dee565b503d62002060565b620020a29060803d608011620006a457620006928183620031ec565b50505062001dc5565b620020b6906200316a565b620006f757823862001d21565b505034620001085781600319360112620001085760209051660aa87bee5380008152f35b505034620001085781600319360112620001085751908152602090f35b905034620006f75782600319360112620006f757826000805160206200987d833981519152803b15620001085781809160248651809481936372eb5f8160e11b835281898401525af18015620006fb576200256a575b50508151906200216a8262003195565b671bc16d674ec800008252620021b5602092660aa87bee5380008482015285858201528560018060a01b03918260155416875180809681946389ea855960e01b8352898301620032d6565b03915afa918215620006d55786926200254a575b508060145416918160165416826017541690875194620021e986620031b2565b85528685015286840152606083015262002221816013541692865180946305157c7f60e21b8252818a8160809687968b83016200335e565b03925af19283156200066d57849362002527575b5084826013541687519485809263057ff68760e51b82525afa9283156200066d578793620024f2575b50600019830192831162000620579186826064969482899795601554168851998a8092633928ff9760e01b8252888a8301526001602483015267016345785d8a000060448301525afa9586156200061657620003c5988485918699620024c9575b5080620002e1620022d492620002db620033dc565b620022e381620002f062003545565b6702c4693e583680009081810362002430575b5050620023216200230f8289518a0101838a016200341f565b9290916200036d81620002f06200343b565b6200233081620002f062003468565b670b1c4d754f2d80009081810362002396575b50506200235481620002f062003495565b6714d222e6ac84c00092838203620004155750505050601354169285519687958694859363bd0625ab60e01b8552840152876024840152604483019062003337565b6000805160206200985d833981519152858c6000805160206200989d83398151915281519188835260228984015282015261745d60f01b6060820152a18a51918b8352620023e68c840162003732565b908584015282600080516020620098bd8339815191529384920390a18a5180918c8252620024168d83016200374f565b90868301520390a16200242862003860565b388062002343565b6000805160206200985d833981519152848b518581526022868201526000805160206200989d8339815191528d82015261745d60f01b6060820152a18951918a83526200247f8b840162003732565b908484015282600080516020620098bd8339815191529384920390a1895180918b8252620024af8c83016200374f565b90858301520390a1620024c162003860565b3880620022f6565b9050620022d49850620024e891503d8087833e620006038183620031ec565b98909190620022bf565b9092508481813d83116200251f575b6200250d8183620031ec565b8101031262000660575191386200225e565b503d62002501565b6200254190823d8411620006a457620006928183620031ec565b50505062002235565b620025629192503d8088833e620006c48183620031ec565b9038620021c9565b62002575906200316a565b620006f75782386200215a565b905034620006f75782600319360112620006f7576000805160206200987d83398151915291823b1562000d8d578381516372eb5f8160e11b81528184820152818160248183895af1801562002983576200296b575b5050805191620025e78362003195565b671bc16d674ec800008352602092660aa87bee53800084820152858382015285620026338160018060a01b03938460155416875180809581946389ea855960e01b83528a8301620032d6565b03915afa90811562002961576080916200269f91849162002943575b5084601454169085601654168660175416908951936200266f85620031b2565b84528a84015288830152606082015284601354169087519485809481936305157c7f60e21b83528a83016200335e565b03925af180156200291457908392916200291e575b5084816013541685519384809263057ff68760e51b82525afa91821562002914578792620028df575b506000198201918211620028cc5790869184516002878201526729a2241af62c0000978887830152868252620027138262003195565b803b15620028a657848091602489518094819363ca669fa760e01b8352818c8401525af18015620028c257908591620028aa575b50508160135416803b15620028a65762002786859291839289519485809481936242d70760e31b83528a8d8401528d6024840152604483019062003337565b03925af180156200289c5790849162002884575b505060249060145416938551948593849263dc17835560e01b84528301525afa9081156200287a5790620027e09186916200285c575b50838082518301019101620034c1565b5191838303620027ee578480f35b62002843926000805160206200985d833981519152608084518481526022858201526000805160206200989d8339815191528682015261745d60f01b6060820152a18251948386526200112084870162003732565b918301520390a16200285462003860565b388080808480f35b6200287391503d8088833e620006c48183620031ec565b38620027d0565b82513d87823e3d90fd5b6200288f906200316a565b620006f75782386200279a565b86513d86823e3d90fd5b8480fd5b620028b5906200316a565b62000d8d57833862002747565b87513d87823e3d90fd5b634e487b7160e01b875260118352602487fd5b9091508481813d83116200290c575b620028fa8183620031ec565b810103126200066057519038620026dd565b503d620028ee565b84513d89823e3d90fd5b6200293a9060803d608011620006a457620006928183620031ec565b505050620026b4565b6200295a91503d8086833e620006c48183620031ec565b386200264f565b85513d84823e3d90fd5b62002976906200316a565b62000d8d578338620025d7565b83513d84823e3d90fd5b83833462000108578160031936011262000108576000805160206200987d833981519152803b15620006f75782809160248451809481936372eb5f8160e11b8352818a8401525af18015620004095790839162002cf0575b5050805192620029f58462003195565b671bc16d674ec8000084526020660aa87bee53800081860152838386015262002a3f8460018060a01b03968760155416865180809581946389ea855960e01b8352898301620032d6565b03915afa90811562000ade5762002a7b8692608092849162000b0d575088601454169089601654168a6017541690895193620007f485620031b2565b03925af1801562000ade579083929162002ccb575b5080866013541685519384809263057ff68760e51b82525afa91821562000ade57859262002c96575b50600019820191821162000a96579385608494958280986015541688519788809263450d106f60e11b8252888a83015284602483015267016345785d8a000080604484015260648301525afa958615620006165791839162000972989795936060979590849762002c68575b509062002b3f82620002f662002b6e94620002db620033dc565b62002b7d62002b568289518a0101838a016200341f565b94909162002b6881620002f06200343b565b6200376c565b62002b6881620002f062003468565b62002b8c82620002f062003495565b6712bc29d8eec700009182810362002bce575b5050506013541692865197889586948593634eca17cd60e11b8552840152886024840152604483019062003337565b6000805160206200985d83398151915260808b518481526022858201526000805160206200989d8339815191528d82015261745d60f01b8c820152a18951928a845262002c1d8b850162003732565b908385015283600080516020620098bd8339815191529485920390a189519182918b835262002c4e8c84016200374f565b918301520390a162002c5f62003860565b89808062002b9f565b62002b3f975062002b6e92915062002c8b903d8087833e62000a828183620031ec565b979091925062002b25565b9080925081813d831162002cc3575b62002cb18183620031ec565b81010312620006605751908662002ab9565b503d62002ca5565b62002ce79060803d608011620006a457620006928183620031ec565b50505062002a90565b62002cfb906200316a565b62000108578184620029e5565b9150913462000d8d578360031936011262000d8d5761106b928383019267ffffffffffffffff948185108686111762003157576200390191818382396060865260066060870152650e8ded6cadcb60d31b608087015260e08160209760a089820152600160a0820152600b60fb1b60c082015260128882015203019088f0908115620029145760018060a01b0392836bffffffffffffffffffffffff60a01b9316836016541617601655855191808301918383108a841117620031445791839160e0938339606081526006606082015265746f6b656e5960d01b608082015260a089820152600160a0820152605960f81b60c082015260128882015203019088f0801562002914578216816017541617601755816016541695863b15620031145784516340c10f1960e01b80825230868301526a52b7d2dcc80cd2e4000000918a8160249b858d83015281835a92604493f180156200313a5762003122575b50908991856017541690813b1562000d8d5760448b918580948c51968795869485528d30908601528401525af180156200311857620030fc575b50508260165416836017541690865191610597918284019284841086851117620030d85791606093918593620092c6853982528a820152670de0b6b3a76400008982015203019089f08015620030ce5783168260185416176018558451612f218082019082821084831117620030ea57889183916200496c83398b815203019089f08015620030ce5783166013548184821617601355865191610db0918284019284841086851117620030d857918c8b949286946200851686391617815203019089f08015620030ce57831690601454918084841617601455865192610c898085019385851090851117620030bc57918b8a949286946200788d86391617815203019088f08015620029145790828794939216906015541617601555868160165416918187826013541694604489518094819363095ea7b360e01b998a84528b840152600019809c8401525af1801562000616579088959493929162003079575b506044939495816017541691601354169988519a8b97889687528601528401525af190811562003070575062003036578280f35b81813d831162003068575b6200304d8183620031ec565b81010312620001085762003061906200320f565b5038808280f35b503d62003041565b513d85823e3d90fd5b939484813d8311620030b4575b620030928183620031ec565b8101031262000108578795620030aa6044956200320f565b5095949362003002565b503d62003086565b634e487b7160e01b8c52604188528a8cfd5b85513d8a823e3d90fd5b634e487b7160e01b8d52604189528b8dfd5b634e487b7160e01b8b5260418752898bfd5b62003107906200316a565b6200311457873862002ea1565b8780fd5b87513d84823e3d90fd5b62003131909a91929a6200316a565b98903862002e67565b88513d8d823e3d90fd5b634e487b7160e01b8b526041875260248bfd5b634e487b7160e01b875260418352602487fd5b67ffffffffffffffff81116200317f57604052565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff8211176200317f57604052565b6080810190811067ffffffffffffffff8211176200317f57604052565b6040810190811067ffffffffffffffff8211176200317f57604052565b90601f8019910116810190811067ffffffffffffffff8211176200317f57604052565b519081151582036200066057565b67ffffffffffffffff81116200317f57601f01601f191660200190565b60005b8381106200324e5750506000910152565b81810151838201526020016200323d565b81601f820112156200066057805162003278816200321d565b92620032886040519485620031ec565b818452602082840101116200066057620032a991602080850191016200323a565b90565b906020828203126200066057815167ffffffffffffffff81116200066057620032a992016200325f565b919091608060a0820193670de0b6b3a764000080845260208401528051604084015260208101516060840152604060018060a01b0391015116910152565b919082608091031262000660578151916020810151916060604083015192015190565b9060209162003352815180928185528580860191016200323a565b601f01601f1916010190565b60a06060620032a99360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062003337565b9190916040818403126200066057620033ba816200320f565b92602082015167ffffffffffffffff81116200066057620032a992016200325f565b60405190620033eb82620031cf565b600782526602b30b634b21d160cd1b6020830152565b156200340957565b634e487b7160e01b600052600160045260246000fd5b9081606091031262000660578051916040602083015192015190565b604051906200344a82620031cf565b600f82526e032b7322932b9b2b93b32b9a93c1d1608d1b6020830152565b604051906200347782620031cf565b600f82526e032b7322932b9b2b93b32b9a93c9d1608d1b6020830152565b60405190620034a482620031cf565b600e82526d032b7322932b9b2b93b32b9a61d160951b6020830152565b9081606091031262000660576040805191620034dd8362003195565b805183526020808201519084015201516001600160a01b03811681036200066057604082015290565b9160608383031262000660576200351d836200320f565b92602081015192604082015167ffffffffffffffff81116200066057620032a992016200325f565b604051906200355482620031cf565b600b82526a020b6b7bab73a27baba1d160ad1b6020830152565b919082604091031262000660576020825192015190565b3d15620035b5573d9062003599826200321d565b91620035a96040519384620031ec565b82523d6000602084013e565b606090565b6000805460081c60ff1615620035d4575460081c60ff1690565b806000805160206200987d833981519152803b620035f157505090565b819250819060405182602082018381526519985a5b195960d21b6040840152604083526200361f8362003195565b6200365b602460405180936200364a6020830197630667f9d760e41b8952518092858501906200323a565b8101036004810184520182620031ec565b51925af1506200366a62003585565b906020828051810103126200368857506020620032a991016200320f565b80fd5b600091908291620036d66040518092620036bf602083019563c3b5563560e01b875260406024850152606484019062003337565b901515604483015203601f198101835282620031ec565b51906a636f6e736f6c652e6c6f675afa50565b600091908291620036d660405180926200371d6020830195632d839cb360e21b875260406024850152606484019062003337565b90604483015203601f198101835282620031ec565b600a8152690808115e1c1958dd195960b21b602082015260400190565b600a815269080808081058dd1d585b60b21b602082015260400190565b670c7d713b49da00009081810362003782575050565b62003809906040906000805160206200985d8339815191526080835160208152602260208201526000805160206200989d8339815191528582015261745d60f01b6060820152a1815193828552620037dc83860162003732565b90602086015284600080516020620098bd8339815191529586920390a1815192828493845283016200374f565b9060208301520390a16200381c62003860565b565b670f43fc2c04ee00009081810362003782575050565b6714d1120d7b1600009081810362003782575050565b670de0b6b3a76400009081810362003782575050565b6000805160206200987d833981519152803b6200388a575b5061010061ff00196000541617600055565b6000809160405182602082018381526519985a5b195960d21b60408401526001606084015260608352620038be83620031b2565b620038e9602460405180936200364a60208301976370ca10bb60e01b8952518092858501906200323a565b51925af150620038f862003585565b50386200387856fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461007457601f610c8938819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051610bf990816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60406080815260048036101561001457600080fd5b600091823560e01c9283633928ff971461005f57505050806389ea85591461005a5780638a1a20de146100555763a8c62e761461005057600080fd5b61088b565b6105c9565b6104fa565b346103cc5760603660031901126103cc57823560243561007e816103cf565b6044359161008a6108b4565b956100936108b4565b85549094906100b8906100ac906001600160a01b031681565b6001600160a01b031690565b8751632bee84f160e21b81529094602092838386818a5afa9283156102b657899361039d575b5060608a5180946333854efd60e21b825281806101028b8b83019190602083019252565b03916001600160a01b03165afa9081156102b6578b938a908b908c94610367575b50858d019384529486019485528c528a5163dc17835560e01b81528681018881528b908290819060200103818c5afa80156102b657610172918c91610345575b50868082518301019101610978565b92156102cb57916101be916101b66101de946101af888501516101a96101a361019b8386610b54565b975185610b80565b916109c8565b90610b80565b9e516109eb565b8a52516109eb565b8988019081526101d58b6101d06109f8565b610acc565b516101d0610a1f565b888151106102bb579261022f959261023d61025996936102018c60c098516109de565b818701525b8a5198899687928301919091604080606083019480518452602081015160208501520151910152565b03601f1981018652856104b6565b8851630d17a7c760e31b81529586948593849330908501610a78565b03915afa9283156102b6579261027e575b5061027a91925193849384610426565b0390f35b61027a92506102a49060c03d60c0116102af575b61029c81836104b6565b810190610a41565b50505050509161026a565b503d610292565b6108e8565b8751634323a55560e01b81528390fd5b916101be9161031161031b946101af969e968885015194610309836103046102fe6102f68a84610b54565b855190610b24565b986109c8565b610b80565b905190610ba1565b868b0152516109eb565b888151106102bb579261022f959261023d610259969361033e8c60c098516109de565b8652610206565b61036191503d808e833e61035981836104b6565b81019061090f565b8e610163565b91505061038d91925060603d606011610396575b61038581836104b6565b8101906108f4565b9291908e610123565b503d61037b565b6103be919350843d86116103c5575b6103b681836104b6565b8101906108d3565b918b6100de565b503d6103ac565b80fd5b801515036103d957565b600080fd5b60005b8381106103f15750506000910152565b81810151838201526020016103e1565b9060209161041a815180928185528580860191016103de565b601f01601f1916010190565b61044493926060921515825260208201528160408201520190610401565b90565b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761047957604052565b610447565b60e0810190811067ffffffffffffffff82111761047957604052565b6040810190811067ffffffffffffffff82111761047957604052565b90601f8019910116810190811067ffffffffffffffff82111761047957604052565b6001600160a01b038116036103d957565b906020610444928181520190610401565b346103d95760a03660031901126103d95760243560043560603660431901126103d9576040516105298161045d565b60443590818152602081019060643582526105576084359361054a856104d8565b6040830194855286610b24565b84018085116105ab5761027a95604051956020870152604086015260608501525160808401525160a083015260018060a01b0390511660c082015260c0815261059f8161047e565b604051918291826104e9565b6109b2565b6040906104449392151581528160208201520190610401565b346103d95760803660031901126103d957600460243581356105ea826103cf565b604435906064356105f96108b4565b916106026108b4565b9260009561061c6100ac6100ac895460018060a01b031690565b93604096875190632bee84f160e21b825260209485838d818b5afa80156102b657876060918e61066d968f9261086c575b508d516333854efd60e21b81529081019283529586928391829160200190565b03916001600160a01b03165afa80156102b6578b888e6106bd938e9784918591869161084a575b508c880199880152885285528d51938492839263dc17835560e01b845283019190602083019252565b03818c5afa80156102b6576106e2918d91610830575b50878082518301019101610978565b94156107cf5761077698969461072661071761022f9e9661075a9661070f60a09d9b9761072c97516109eb565b8c52516109eb565b80858b01528951925190610b24565b906109eb565b898701525b88519a8b9687928301919091604080606083019480518452602081015160208501520151910152565b8651638a04bdd560e01b81529586948593849330908501610a78565b03915afa9283156102b65792610796575b5061027a9051928392836105b0565b61027a9192506107bd9060a03d60a0116107c8575b6107b581836104b6565b810190610a9c565b505050509190610787565b503d6107ab565b818151108015610826575b6108165761077698969461072661071761022f9e9661075a9661080560a09d9b9761080d97516109de565b8c52516109de565b89870152610731565b8951634323a55560e01b81528c90fd5b50838351106107da565b61084491503d808f833e61035981836104b6565b386106d3565b915050610866915060603d6060116103965761038581836104b6565b38610694565b6108849192508a3d8c116103c5576103b681836104b6565b903861064d565b346103d95760003660031901126103d9576000546040516001600160a01b039091168152602090f35b604051906108c18261045d565b60006040838281528260208201520152565b908160209103126103d95751610444816104d8565b6040513d6000823e3d90fd5b908160609103126103d9578051916040602083015192015190565b6020818303126103d957805167ffffffffffffffff918282116103d957019082601f830112156103d9578151908111610479576040519261095a601f8301601f1916602001856104b6565b818452602082840101116103d95761044491602080850191016103de565b908160609103126103d95760408051916109918361045d565b805183526020810151602084015201516109aa816104d8565b604082015290565b634e487b7160e01b600052601160045260246000fd5b90670de0b6b3a76400009182039182116105ab57565b919082039182116105ab57565b919082018092116105ab57565b60405190610a058261049a565b600b82526a030b6b7bab73a27baba1d160ad1b6020830152565b60405190610a2c8261049a565b600682526503732bba61d160d51b6020830152565b91908260c09103126103d9578151610a58816103cf565b9160208101519160408201519160608101519160a0608083015192015190565b610444939260609260018060a01b0316825260208201528160408201520190610401565b908160a09103126103d9578051610ab2816103cf565b916020820151916040810151916080606083015192015190565b600091908291610b116040518092610afd6020830195632d839cb360e21b8752604060248501526064840190610401565b90604483015203601f1981018352826104b6565b51906a636f6e736f6c652e6c6f675afa50565b90670de0b6b3a764000091828102928184041490151781151516156103d957600190600019830104019015150290565b8181029181830414901517600116156103d9576001670de0b6b3a7640000600019830104019015150290565b8181029181830414901517600116156103d957670de0b6b3a7640000900490565b670de0b6b3a764000090818102918183041490151782151516156103d957049056fea26469706673582212208dfd5857d9ca2481ec2f8db3afb8a6c38074c957084a4bb83e162400bf0d0bad64736f6c6343000816003360803461007457601f610db038819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051610d2090816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b61087d565b610854565b610705565b6106cb565b6105b4565b610343565b61028b565b61023f565b3461013b57604036600319011261013b576024359067ffffffffffffffff821161013b573660238301121561013b576101376101276101026100f3366004870135602488016101b3565b602080825183010191016108b0565b90610120610111600435610aed565b602080825183010191016108cb565b5192610b61565b6040519081529081906020820190565b0390f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6060810190811067ffffffffffffffff82111761017057604052565b61013e565b6040810190811067ffffffffffffffff82111761017057604052565b90601f8019910116810190811067ffffffffffffffff82111761017057604052565b92919267ffffffffffffffff821161017057604051916101dd601f8201601f191660200184610191565b8294818452818301116101fa578281602093846000960137010152565b600080fd5b919082519283825260005b84811061022b575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161020a565b346101fa5760003660031901126101fa5761013760405161025f81610175565b600b81526a436f6e7374616e7453756d60a81b60208201526040519182916020835260208301906101ff565b346101fa5760203660031901126101fa57600435600052600160205260606040600020805490600181015490600260018060a01b03910154169060405192835260208301526040820152f35b6001600160a01b038116036101fa57565b9060606003198301126101fa57600435610301816102d7565b916024359160443567ffffffffffffffff928382116101fa57806023830112156101fa5781600401359384116101fa57602484830101116101fa576024019190565b346101fa57610351366102e8565b9250906103ab606061036561011184610aed565b60005490939061038b9061037f906001600160a01b031681565b6001600160a01b031690565b60405180809581946333854efd60e21b8352600483019190602083019252565b03915afa9283156105af57600094600092600095610572575b50906103d291810190610911565b92919390956000928086116000146104bf575061043561042d6104659461041b6103ff61043e958a610942565b6104108161040b610954565b610bb0565b602087015190610cbe565b906104288261040b610986565b6109b4565b965b856109c1565b958612156109da565b61044f8561044a6109f7565b610bfa565b61045c815161040b610a30565b51828685610b61565b936104728561044a610a53565b846013191292836104b4575b6101379394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b60148612935061047e565b925050818611156105145761043e61043561050e6104fa6104e3610465968b610942565b6104ef8161040b610954565b602086015190610cbe565b6105068161040b610986565b845190610c8e565b9661042f565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b90945061059d9195506103d2925060603d6060116105a8575b6105958183610191565b8101906108b0565b9195919490926103c4565b503d61058b565b610905565b346101fa576105c2366102e8565b600054919350906001600160a01b031633036106b95782906105e2610a8c565b508101039160c083126101fa578035916020820135916060604082013595605f1901126101fa5761067791600161066c6040519361061f85610154565b606081013580865260a06020870192608081013584520135610640816102d7565b6040870152610659856000526001602052604060002090565b5551926000526001602052604060002090565b015551848385610b61565b92836013191291826106ae575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b601485129250610684565b604051636853cba760e01b8152600490fd5b346101fa576106fc6101116106f26106776106e5366102e8565b9080929593500190610911565b9591949093610aed565b51848385610b61565b346101fa57610713366102e8565b6000549093906001600160a01b0390811633036106b95761075461037f6002610746876000526001602052604060002090565b01546001600160a01b031690565b9116036108425761076783820182610ab5565b61077081610acd565b600281036107a5575061078c610791916107a2939436916101b3565b610c51565b916000526001602052604060002090565b55005b6107ae81610acd565b600181036107e157506107cc61078c6107dd926001949536916101b3565b926000526001602052604060002090565b0155005b806107ed600392610acd565b036108305761080e6107cc61080960029361082e9636916101b3565b610c29565b0180546001600160a01b0319166001600160a01b03909216919091179055565b005b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101fa5760003660031901126101fa576000546040516001600160a01b039091168152602090f35b346101fa5760203660031901126101fa5761013761089c600435610aed565b6040519182916020835260208301906101ff565b908160609103126101fa578051916040602083015192015190565b908160609103126101fa5760408051916108e483610154565b805183526020810151602084015201516108fd816102d7565b604082015290565b6040513d6000823e3d90fd5b908160609103126101fa578035916040602083013592013590565b634e487b7160e01b600052601160045260246000fd5b9190820391821161094f57565b61092c565b6040519061096182610175565b6016825275030b6b7bab73a24b71034b7103b30b634b230ba329d160551b6020830152565b6040519061099382610175565b601282527103332b2b99034b7103b30b634b230ba329d160751b6020830152565b9190820180921161094f57565b8181039291600013801582851316918412161761094f57565b156109e157565b634e487b7160e01b600052600160045260246000fd5b60405190610a0482610175565b601c82527f6c697175696469747944656c746120696e2076616c69646174653a20000000006020830152565b60405190610a3d82610175565b60078252660383934b1b29d160cd1b6020830152565b60405190610a6082610175565b601782527f696e76617269616e7420696e2076616c69646174653a200000000000000000006020830152565b60405190610a9982610154565b60006040838281528260208201520152565b600411156101fa57565b908160209103126101fa5735610aca81610aab565b90565b60041115610ad757565b634e487b7160e01b600052602160045260246000fd5b610af5610a8c565b90806000526001602052604090816000205483526000526001602052600181600020015491602081019283528151928151602085015251828401528160018060a01b0391015116606083015260608252608082019082821067ffffffffffffffff831117610170575290565b8293610b73610b7f94610b7993610c8e565b94610cbe565b90610c8e565b906000828201928312911290801582169115161761094f57670de0b6b3a763ffff19810190811360011661094f5790565b610bf3610bdf91610bf893604051938492632d839cb360e21b60208501526040602485015260648401906101ff565b90604483015203601f198101835282610191565b610c73565b565b610bf3610bdf91610bf893604051938492631e53134760e11b60208501526040602485015260648401906101ff565b6040818051810103126101fa5780610c4660206040930151610aab565b015161037f816102d7565b6040818051810103126101fa5780610c6e60206040930151610aab565b015190565b600080916020815191016a636f6e736f6c652e6c6f675afa50565b90670de0b6b3a764000091828102928184041490151781151516156101fa57600190600019830104019015150290565b8181029181830414901517600116156101fa576001670de0b6b3a764000060001983010401901515029056fea264697066735822122079499075bdd39583b9f30943004e2499fd0904e46091bbba750512bf0550406664736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c6343000816003341304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f500000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696eb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8a26469706673582212204dae5d66ea6f84fe059ca15458429b743fc88b13943d44de163a54cf0455b3d864736f6c63430008160033","sourceMap":"311:9978:46:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1898:10:46;;;;;311:9978;;;1057:14:1;311:9978:46;;;;;;;;;1898:10;;;;;;311:9978;1898:10;;;;;;;;311:9978;;;;;1057:14:1;;;;:::i;:::-;;;;2235:49:46;1057:14:1;1965:154:46;603:11;1965:154;;;1057:14:1;1965:154:46;;;;1057:14:1;311:9978:46;672:32;311:9978;;;;1057:14:1;;2235:6:46;1057:14:1;311:9978:46;;;;;;;;;;;2235:49;;;;;;:::i;:::-;;;;;;;;;;;;;;311:9978;378:4:31;;2381:11:46;378:4:31;311:9978:46;;;2415:6;311:9978;;;2443:6;311:9978;;;;;1057:14:1;;;;:::i;:::-;;;2332:156:46;;;1057:14:1;2332:156:46;;;1057:14:1;;2332:156:46;;1057:14:1;2499:21:46;378:4:31;2499::46;378::31;311:9978:46;;;;;;;;;2499:21;;1057:14:1;;;;2499:21:46;;;;;;;:::i;:::-;;;;;;;;;;;;;;311:9978;378:4:31;;;2499::46;378::31;311:9978:46;;;;;;;;;;6896:12;;;;;;;;;;;;;311:9978;-1:-1:-1;;;311:9978:46;;;;;;;1057:14:1;;;311:9978:46;1057:14:1;;;;;;2235:6:46;1057:14:1;311:9978:46;;;;;;;;;;6991:42;;;;;;311:9978;;1057:14:1;311:9978:46;;;6860:9;311:9978;;;;6991:42;;;;;;;311:9978;6991:42;;;;;;;;311:9978;;;7043:30;7131:13;311:9978;;;:::i;:::-;7043:30;:::i;:::-;7083:38;311:9978;;;:::i;:::-;7083:38;:::i;:::-;7131:13;:::i;:::-;7155:38;311:9978;;;:::i;7155:38::-;7223:13;5259:6:0;;;;5255:203;;311:9978:46;1057:14:1;;7552:34:46;7331:49;1057:14:1;;;7331:49:46;;;;;;;:::i;:::-;311:9978;;7391:46;311:9978;;;:::i;7391:46::-;7471:13;5259:6:0;;;;;5255:203;;311:9978:46;;;;7496:46;311:9978;;;:::i;7496:46::-;7552:34;:::i;:::-;7597:44;311:9978;;;:::i;7597:44::-;7674:13;5259:6:0;;;;5255:203;;311:9978:46;378:4:31;;;;2499::46;378::31;311:9978:46;;;;;;;;;;;;;;7699:27;;;;311:9978;;1057:14:1;311:9978:46;;;;;;;;:::i;:::-;7699:27;;;;;;;;;;311:9978;;;7699:27;;;;;;-1:-1:-1;7699:27:46;;;;;;;:::i;:::-;;;;;:::i;:::-;311:9978;;;7699:27;;;;;;311:9978;;;;;;;;;;;5255:203:0;-1:-1:-1;;;;;;;;;;;311:9978:46;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;311:9978:46;;;;-1:-1:-1;;;1057:14:1;311:9978:46;;;5286:41:0;311:9978:46;;;;;;;;;;;:::i;:::-;;;;;;5346:31:0;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;;;311:9978:46;;;;;;;;;;;;;:::i;:::-;;;;;5396:31:0;;;;;:::i;:::-;5255:203;;;;;;;311:9978:46;;-1:-1:-1;;;;;;;;;;;311:9978:46;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;311:9978:46;;;;-1:-1:-1;;;1057:14:1;311:9978:46;;;5286:41:0;311:9978:46;;;;;;;;;;;:::i;:::-;;;;;;5346:31:0;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;;;311:9978:46;;;;;;;;;;;:::i;:::-;;;;;;5396:31:0;;;;;:::i;:::-;5255:203;;;;;;-1:-1:-1;;;;;;;;;;;311:9978:46;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;311:9978:46;;;;-1:-1:-1;;;1057:14:1;311:9978:46;;;5286:41:0;311:9978:46;;;;;;;;;;;:::i;:::-;;;;;;5346:31:0;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;;;311:9978:46;;;;;;;;;;;;:::i;:::-;;;;;;5396:31:0;;;;;:::i;:::-;5255:203;;;;6991:42:46;;;7131:13;6991:42;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;311:9978;;;;;;;;;;-1:-1:-1;;;1057:14:1;;;;;;311:9978:46;1057:14:1;6896:12:46;;;;;;;;;;;;;;;;;:::i;:::-;;;311:9978;;;;1057:14:1;6896:12:46;;;;311:9978;;;;6896:12;;;;;;311:9978;;;;;;;;;2499:21;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;2235:49;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;311:9978;;;;;;;;;1898:10;;;;:::i;:::-;311:9978;;1898:10;;;;311:9978;;;;1898:10;311:9978;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1898:10:46;;;;;311:9978;;;1057:14:1;311:9978:46;;;;;;;;;1898:10;;;;;;311:9978;1898:10;;;;;;;;;;;311:9978;;;;;1057:14:1;;;;:::i;:::-;;;;;603:11:46;1965:154;;;1057:14:1;1965:154:46;;;;1057:14:1;2235:49:46;311:9978;672:32;311:9978;;;;1057:14:1;;2235:6:46;1057:14:1;311:9978:46;;;;;;;;;;;2235:49;;;;;;:::i;:::-;;;;;;;;;;2499:21;2235:49;;1057:14:1;2235:49:46;;;;;311:9978;378:4:31;;2381:11:46;378:4:31;311:9978:46;;;2415:6;311:9978;;;2443:6;311:9978;;;;;1057:14:1;;;;:::i;:::-;;;2332:156:46;;;1057:14:1;2332:156:46;;;1057:14:1;;2332:156:46;;1057:14:1;378:4:31;2499::46;378::31;311:9978:46;;;;;;;;;;;;;2499:21;;;;;;:::i;:::-;;;;;;;;;;;;;;;311:9978;378:4:31;;;2499::46;378::31;311:9978:46;;;;;;;;;;7817:12;;;;;;;;;;;;;311:9978;-1:-1:-1;;;311:9978:46;;;;;;;1057:14:1;;311:9978:46;1057:14:1;;;;;2235:6:46;1057:14:1;311:9978:46;;;;;;;;;;7967:67;;;;;;311:9978;1057:14:1;;311:9978:46;;;7861:9;311:9978;;;;;;;;;7967:67;;;;;;;;;;311:9978;7967:67;;;;1057:14:1;7967:67:46;;;;;;;311:9978;;;8084:13;311:9978;8044:30;8307:34;311:9978;;;:::i;8084:13::-;8408:34;8191:49;1057:14:1;;;8191:49:46;;;;;;;:::i;:::-;311:9978;;;8251:46;311:9978;;;:::i;8307:34::-;8352:46;311:9978;;;:::i;8408:34::-;8453:44;311:9978;;;:::i;8453:44::-;8530:10;5259:6:0;;;;5255:203;;311:9978:46;378:4:31;;;2499::46;378::31;311:9978:46;;;;;;;;;;;;;;8552:31;;;;311:9978;;1057:14:1;311:9978:46;;;;;;;;:::i;:::-;8552:31;;;;;;;;;;;;311:9978;;;8552:31;;;1057:14:1;8552:31:46;1057:14:1;8552:31:46;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;311:9978;;;8552:31;;;;;;311:9978;;;;;;;;5255:203:0;-1:-1:-1;;;;;;;;;;;1057:14:1;311:9978:46;;;;;;;;;;-1:-1:-1;;;;;;;;;;;311:9978:46;;;;-1:-1:-1;;;311:9978:46;;;;5286:41:0;311:9978:46;;;;;;;;;;;:::i;:::-;;;;;;5346:31:0;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;;;311:9978:46;;;;;;;;;;;;;:::i;:::-;;;;;5396:31:0;;;;;:::i;:::-;5255:203;;;;;7967:67:46;8084:13;7967:67;;8307:34;7967:67;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;311:9978;-1:-1:-1;;;1057:14:1;;;;;;311:9978:46;1057:14:1;7817:12:46;;;;;;;;;;;;;;;;;:::i;:::-;;;311:9978;;;;1057:14:1;7817:12:46;;;;;;;;;;311:9978;;;;;;;;;2499:21;;;1057:14:1;2499:21:46;1057:14:1;2499:21:46;;;;;;;:::i;:::-;;;;;;2235:49;;;;;;;;;;;;;:::i;:::-;;;;1898:10;;;;:::i;:::-;311:9978;;1898:10;;;;311:9978;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1281:10:46;;;;;311:9978;;;;;;1281:10;;;;;;311:9978;1281:10;;1057:14:1;1281:10:46;;;;;;;;;;;311:9978;;;;;1057:14:1;;;:::i;:::-;;;;;1348:98:46;;;;;1057:14:1;1348:98:46;;;;1057:14:1;311:9978:46;1562:49;311:9978;672:32;311:9978;;;;1057:14:1;;1562:6:46;1057:14:1;311:9978:46;;;;;;;;;;;1562:49;;;;;;:::i;:::-;;;;;;;;;;1057:14:1;1562:49:46;1826:21;1562:49;;;;;311:9978;378:4:31;;1708:11:46;378:4:31;311:9978:46;;;1742:6;311:9978;;;1770:6;311:9978;;;;;1057:14:1;;;;:::i;:::-;;;1659:156:46;;;1057:14:1;1659:156:46;;;1057:14:1;;1659:156:46;;1057:14:1;378:4:31;1826::46;378::31;311:9978:46;;;;;;;;;;;;;1826:21;;;;;;:::i;:::-;;;;;;;;;;;311:9978;378:4:31;;;;1826::46;378::31;311:9978:46;;;;;;;;;;5288:12;;;;;;;;;;;;;311:9978;-1:-1:-1;;;;311:9978:46;;;;;;;5314:62;;;;;;;;;311:9978;;-1:-1:-1;;;5314:62:46;;-1:-1:-1;;;5314:62:46;;;311:9978;;;;;;1057:14:1;;311:9978:46;;;;5314:62;;;;;;;;;;;311:9978;1057:14:1;;311:9978:46;1057:14:1;1562:6:46;1057:14:1;311:9978:46;;;;;;;;;;;;5386:42;;;;311:9978;1057:14:1;;311:9978:46;;;5252:9;311:9978;;;;5386:42;;;;;;;;;;311:9978;;;5386:42;;;;;;;;;;;;:::i;5314:62::-;;;;:::i;:::-;311:9978;;5314:62;;;;;311:9978;;;;;;;;;5314:62;311:9978;;;;-1:-1:-1;;;1057:14:1;;;;;;311:9978:46;1057:14:1;5288:12:46;;;;;;;;;;;;;;;;;:::i;:::-;;;311:9978;;;;1057:14:1;5288:12:46;;;;;;;;;;;311:9978;;;;;;;;;1826:21;;;1057:14:1;1826:21:46;1057:14:1;1826:21:46;;;;;;;:::i;:::-;;;;;;1562:49;;;;;;;;;;;;;:::i;:::-;;;;;311:9978;;;;;;;;;1281:10;;;;:::i;:::-;311:9978;;1281:10;;;;311:9978;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1281:10:46;;;;;311:9978;;;1057:14:1;311:9978:46;;;;;;;;;1281:10;;;;;;311:9978;1281:10;;;;;;;;311:9978;;;;;1057:14:1;;;;:::i;:::-;;;;;;1348:98:46;;;;;1057:14:1;1348:98:46;;;;1057:14:1;1562:49:46;311:9978;672:32;311:9978;;;;1057:14:1;;1562:6:46;1057:14:1;311:9978:46;;;;;;;;;;;1562:49;;;;;;:::i;:::-;;;;;;;;;;1057:14:1;1562:49:46;1826:21;1562:49;;;;;311:9978;378:4:31;;1708:11:46;378:4:31;311:9978:46;;;1742:6;311:9978;;;1770:6;311:9978;;;;;1057:14:1;;;;:::i;:::-;;;1659:156:46;;;1057:14:1;1659:156:46;;;1057:14:1;;1659:156:46;;1057:14:1;378:4:31;1826::46;378::31;311:9978:46;;;;;;;;;;;;;1826:21;;;;;;:::i;:::-;;;;;;;;;;;;;;311:9978;378:4:31;;;1826::46;378::31;311:9978:46;;;;;;;;;;4297:12;;;;;;;;;;;;;311:9978;-1:-1:-1;;;311:9978:46;;;;;;;1057:14:1;311:9978:46;1057:14:1;;;;;;;1562:6:46;1057:14:1;311:9978:46;;;;;;;;;;4392:42;;;;;;311:9978;;1057:14:1;311:9978:46;;;4261:9;311:9978;;;;4392:42;;;;;;;311:9978;4392:42;;;;;;;;311:9978;;;4532:13;311:9978;4444:30;5046:33;311:9978;;;;:::i;4532:13::-;4556:38;311:9978;;;:::i;4556:38::-;4624:10;5259:6:0;;;;5255:203;;311:9978:46;1057:14:1;;4947:34:46;4729:49;1057:14:1;;;4729:49:46;;;;;;;:::i;:::-;311:9978;;;4789:46;311:9978;;;:::i;4789:46::-;4869:10;;5259:6:0;;;;5255:203;;311:9978:46;;;;;4891:46;311:9978;;;:::i;4947:34::-;4992:44;311:9978;;;:::i;4992:44::-;5046:33;:::i;:::-;1826:4;378::31;311:9978:46;;;;;;;;;;;;;;5090:27;;;;311:9978;;1057:14:1;311:9978:46;;;;;;;;:::i;5255:203:0:-;311:9978:46;;-1:-1:-1;;;;;;;;;;;1057:14:1;311:9978:46;;;;;;;;;;-1:-1:-1;;;;;;;;;;;311:9978:46;;;;-1:-1:-1;;;1057:14:1;311:9978:46;;;5286:41:0;311:9978:46;;;;;;;;;;;:::i;:::-;;;;;;5346:31:0;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;;;311:9978:46;;;;;;;;;;;:::i;:::-;;;;;5396:31:0;;;;;:::i;:::-;5255:203;;;;;;;-1:-1:-1;;;;;;;;;;;1057:14:1;311:9978:46;;;;;;;;;;-1:-1:-1;;;;;;;;;;;311:9978:46;;;;-1:-1:-1;;;1057:14:1;311:9978:46;;;5286:41:0;311:9978:46;;;;;;;;;;;:::i;:::-;;;;;;5346:31:0;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;;;311:9978:46;;;;;;;;;;;;:::i;:::-;;;;;;5396:31:0;;;;;:::i;:::-;5255:203;;;;4392:42:46;4532:13;4392:42;;5046:33;4392:42;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;4392:42:46;;;311:9978;-1:-1:-1;;;1057:14:1;;;;;;311:9978:46;1057:14:1;4297:12:46;;;;;;;;;;;;;;;;;:::i;:::-;;;311:9978;;;;1057:14:1;4297:12:46;;;;;;;;;1826:21;;;1057:14:1;1826:21:46;1057:14:1;1826:21:46;;;;;;;:::i;:::-;;;;;;1562:49;;;;;;;;;;;;;:::i;:::-;;;;;311:9978;;;;;;;;;1281:10;;;;:::i;:::-;311:9978;;1281:10;;;;311:9978;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1281:10:46;;;;;311:9978;;;;;;1281:10;;;;;;311:9978;1281:10;;1057:14:1;1281:10:46;;;;;;;;;;;311:9978;;;;;1057:14:1;;;:::i;:::-;;;;;1348:98:46;;;;;1057:14:1;1348:98:46;;;;1057:14:1;311:9978:46;1562:49;311:9978;672:32;311:9978;;;;1057:14:1;;1562:6:46;1057:14:1;311:9978:46;;;;;;;;;;;1562:49;;;;;;:::i;:::-;;;;;;;;;;1057:14:1;1562:49:46;1826:21;1562:49;;;;;378:4:31;;1708:11:46;378:4:31;311:9978:46;;;1742:6;311:9978;;;1770:6;311:9978;;;;;1057:14:1;;;;:::i;1826:21:46:-;;;;;;;;;;;311:9978;378:4:31;;;;1826::46;378::31;311:9978:46;;;;;;;;;;5600:12;;;;;;;;;;;;;311:9978;-1:-1:-1;;;;311:9978:46;;;;;;;5626:62;;;;;;;;;311:9978;;-1:-1:-1;;;5626:62:46;;-1:-1:-1;;;5626:62:46;;;311:9978;;;;;;1057:14:1;;311:9978:46;;;;5626:62;;;;;;;;;;;311:9978;1057:14:1;;311:9978:46;1057:14:1;1562:6:46;1057:14:1;311:9978:46;;;;;;;;;;;;5698:42;;;;311:9978;;1057:14:1;311:9978:46;;;5564:9;311:9978;;;;5698:42;;;;;;;;;;311:9978;;;5626:62;;;;:::i;:::-;311:9978;;5626:62;;;;5600:12;;;;;;;;;;;;;;;;;:::i;:::-;;;311:9978;;;;1057:14:1;5600:12:46;;;;;;;;;;1826:21;;;1057:14:1;1826:21:46;1057:14:1;1826:21:46;;;;;;;:::i;:::-;;;;;;1281:10;;;;:::i;:::-;311:9978;;1281:10;;;;311:9978;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1898:10:46;;;;;311:9978;;;;;;1898:10;;;;;;311:9978;1898:10;;1057:14:1;1898:10:46;;;;;;;;;;;311:9978;;;;;1057:14:1;;;:::i;:::-;;;;;1965:154:46;603:11;1965:154;;;1057:14:1;1965:154:46;;;;1057:14:1;311:9978:46;2235:49;311:9978;672:32;311:9978;;;;1057:14:1;;2235:6:46;1057:14:1;311:9978:46;;;;;;;;;;;2235:49;;;;;;:::i;:::-;;;;;;;;;;1057:14:1;2235:49:46;2499:21;2235:49;;;;;378:4:31;;2381:11:46;378:4:31;311:9978:46;;;2415:6;311:9978;;;2443:6;311:9978;;;;;1057:14:1;;;;:::i;2499:21:46:-;;;;;;;;;;;311:9978;378:4:31;;;;2499::46;378::31;311:9978:46;;;;;;;;;;9543:12;;;;;;;;;;;;;311:9978;-1:-1:-1;;;;311:9978:46;;;;;;;9643:62;;;;;;;;;311:9978;;-1:-1:-1;;;9643:62:46;;-1:-1:-1;;;9643:62:46;;;311:9978;;;;;;1057:14:1;;311:9978:46;;;;9643:62;;;;;;;;;;;311:9978;1057:14:1;;311:9978:46;1057:14:1;2235:6:46;1057:14:1;311:9978:46;;;;;;;;;;;;9715:68;;;;311:9978;;1057:14:1;311:9978:46;;;9587:9;311:9978;;;;;;;;;9715:68;;;;;;;;;;311:9978;;;9715:68;;;;;;;;;;;;:::i;:::-;;311:9978;;;9643:62;;;;:::i;:::-;311:9978;;9643:62;;;;9543:12;;;;;;;;;;;;;;;;;:::i;:::-;;;311:9978;;;;1057:14:1;9543:12:46;;;;;;;;;;2499:21;;;1057:14:1;2499:21:46;1057:14:1;2499:21:46;;;;;;;:::i;:::-;;;;;;1898:10;;;;:::i;:::-;311:9978;;1898:10;;;;311:9978;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1898:10:46;;;;;311:9978;;;1057:14:1;311:9978:46;;;;;;;;;1898:10;;;;;;311:9978;1898:10;;;;;;;;;;;311:9978;;;;;1057:14:1;;;;:::i;:::-;2235:49:46;1057:14:1;;;;;603:11:46;1057:14:1;;1965:154:46;;;;1057:14:1;1965:154:46;;;;1057:14:1;311:9978:46;672:32;311:9978;;;;1057:14:1;;2235:6:46;1057:14:1;311:9978:46;;;;;;;;;;;2235:49;;;;;;:::i;:::-;;;;;;;;;;;;;;311:9978;378:4:31;;2381:11:46;378:4:31;311:9978:46;;;2415:6;311:9978;;;2443:6;311:9978;;;;;1057:14:1;;;;:::i;:::-;;;2332:156:46;;;1057:14:1;2332:156:46;;;1057:14:1;;2332:156:46;;;;1057:14:1;378:4:31;2499::46;378::31;311:9978:46;;;;;;;;;2499:21;;1057:14:1;;;2499:21:46;1057:14:1;2499:21:46;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;311:9978;378:4:31;;;2499::46;378::31;311:9978:46;;;;;;;;;;2605:12;;;;;;;;;;;;;311:9978;-1:-1:-1;;;311:9978:46;;;;;;;378:4:31;;;;2381:11:46;378:4:31;;;;;;311:9978:46;;;;1057:14:1;311:9978:46;;;;;;;;;;;2703:33;;;;311:9978;2703:33;;;;;;;2679:100;1057:14:1;2703:33:46;;;;;;;;;311:9978;1057:14:1;;;;;;2679:100:46;;;;;;:::i;:::-;311:9978;;;5259:6:0;;;5255:203;;311:9978:46;2839:14;;;;;311:9978;5259:6:0;;;5255:203;;311:9978:46;2886:17;;;311:9978;;3678:6:0;;3674:212;;311:9978:46;378:4:31;;;2499::46;378::31;311:9978:46;;;;;;;;;;;;2989:42;;;;311:9978;2989:42;;;;;;;3112:26;2989:42;;;;;;;;;;311:9978;3042:25;;;;3077;3042;;:::i;:::-;3077;:::i;3112:26::-;311:9978;;2989:42;3042:25;2989:42;;3077:25;2989:42;;;;;;;-1:-1:-1;2989:42:46;;;;;;:::i;:::-;;;;;;;311:9978;;;;;;;;;;;;3674:212:0;-1:-1:-1;;;;;;;;;;;311:9978:46;;;;;;;;;;;;;;;;-1:-1:-1;;;311:9978:46;;;;3705:44:0;311:9978:46;;;;;;;;;;;:::i;:::-;;;;;;3768:34:0;;;;;;;;311:9978:46;;;;;;;;;;;;;:::i;:::-;;;;;3821:34:0;;;;;:::i;:::-;3674:212;;;;;5255:203;-1:-1:-1;;;;;;;;;;;311:9978:46;;-1:-1:-1;;;311:9978:46;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;311:9978:46;;;;;;;5286:41:0;311:9978:46;;;;;;;;;;;:::i;:::-;;;;;;5346:31:0;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;;;311:9978:46;;;;;;;;;;;;:::i;:::-;;;;;;5396:31:0;;;;;:::i;:::-;5255:203;;;;;-1:-1:-1;;;;;;;;;;;311:9978:46;;-1:-1:-1;;;311:9978:46;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;311:9978:46;;;;;;;5286:41:0;311:9978:46;;;;;;;;;;;:::i;:::-;;;;;;5346:31:0;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;;;311:9978:46;;;;;;;;;;;;:::i;:::-;;;;;;5396:31:0;;;;;:::i;:::-;5255:203;;;;2703:33:46;;;;;;;;;;;;;:::i;:::-;;;;;;311:9978;;;;;;;;;;-1:-1:-1;;;1057:14:1;;;;;;311:9978:46;1057:14:1;2605:12:46;;;;;;;;;;;;;;;;;:::i;:::-;;;311:9978;;;;1057:14:1;2605:12:46;;;;;;;;;;311:9978;;;;;;;;;2499:21;;;;;;;;;;;;;:::i;:::-;;;;;;2235:49;;;;;;;;;;;;;;:::i;:::-;;;;;1898:10;;;;:::i;:::-;311:9978;;1898:10;;;;311:9978;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1281:10:46;;;;;311:9978;;;1057:14:1;311:9978:46;;;;;;;;;1281:10;;;;;;311:9978;1281:10;;;;;;;;311:9978;;;;;1057:14:1;;;;:::i;:::-;;;;;;1348:98:46;;;;;1057:14:1;1348:98:46;;;;1057:14:1;1562:49:46;311:9978;672:32;311:9978;;;;1057:14:1;;1562:6:46;1057:14:1;311:9978:46;;;;;;;;;;;1562:49;;;;;;:::i;:::-;;;;;;;;;;1057:14:1;1562:49:46;1826:21;1562:49;;;;;378:4:31;;1708:11:46;378:4:31;311:9978:46;;;1742:6;311:9978;;;1770:6;311:9978;;;;;1057:14:1;;;;:::i;1826:21:46:-;;;;;;;;;;;;;;311:9978;378:4:31;;;1826::46;378::31;311:9978:46;;;;;;;;;;3308:12;;;;;;;;;;;;;311:9978;-1:-1:-1;;;311:9978:46;;;;;;;1057:14:1;311:9978:46;1057:14:1;;;;;;;1562:6:46;1057:14:1;311:9978:46;;;;;;;;;;3403:42;;;;;;311:9978;1057:14:1;;311:9978:46;;;3272:9;311:9978;;;;3403:42;;;;;;;311:9978;3403:42;;;;;;;;311:9978;;;3543:13;311:9978;3455:30;4055:33;311:9978;;;;:::i;3543:13::-;3567:38;311:9978;;;:::i;3567:38::-;3635:9;5259:6:0;;;;5255:203;;311:9978:46;1057:14:1;;3855:34:46;3739:49;1057:14:1;;;3739:49:46;;;;;;;:::i;:::-;311:9978;;3799:46;311:9978;;;;;;:::i;3855:34::-;3900:46;311:9978;;;:::i;3900:46::-;3980:9;5259:6:0;;;;5255:203;;311:9978:46;;;;4001:44;311:9978;;;:::i;5255:203:0:-;-1:-1:-1;;;;;;;;;;;1057:14:1;311:9978:46;-1:-1:-1;;;;;;;;;;;311:9978:46;;;;;;;;;;;;;;-1:-1:-1;;;1057:14:1;311:9978:46;;;5286:41:0;311:9978:46;;;;;;;;;;;:::i;:::-;;;;;;5346:31:0;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;;;311:9978:46;;;;;;;;;;;;;:::i;:::-;;;;;5396:31:0;;;;;:::i;:::-;5255:203;;;;;;-1:-1:-1;;;;;;;;;;;1057:14:1;311:9978:46;;;;;;;;;;-1:-1:-1;;;;;;;;;;;311:9978:46;;;;-1:-1:-1;;;1057:14:1;311:9978:46;;;5286:41:0;311:9978:46;;;;;;;;;;;:::i;:::-;;;;;;5346:31:0;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;;;311:9978:46;;;;;;;;;;;;:::i;:::-;;;;;;5396:31:0;;;;;:::i;:::-;5255:203;;;;3403:42:46;3543:13;3403:42;;4055:33;3403:42;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;3403:42:46;;;3308:12;;;;;;;;;;;;;;;;;:::i;:::-;;;311:9978;;;;1057:14:1;3308:12:46;;;;;;;;;1826:21;;;1057:14:1;1826:21:46;1057:14:1;1826:21:46;;;;;;;:::i;:::-;;;;;;1281:10;;;;:::i;:::-;311:9978;;1281:10;;;;311:9978;;;;;;;;;;;;;;;;;603:11;311:9978;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1898:10:46;;;;;311:9978;;;1057:14:1;311:9978:46;;;;;;;;;1898:10;;;;;;311:9978;1898:10;;;;;;;;311:9978;;;;;1057:14:1;;;;:::i;:::-;;;;2235:49:46;1057:14:1;1965:154:46;603:11;1965:154;;;1057:14:1;1965:154:46;;;;1057:14:1;311:9978:46;672:32;311:9978;;;;1057:14:1;;2235:6:46;1057:14:1;311:9978:46;;;;;;;;;;;2235:49;;;;;;:::i;:::-;;;;;;;;;;;;;;311:9978;378:4:31;;2381:11:46;378:4:31;311:9978:46;;;2415:6;311:9978;;;2443:6;311:9978;;;;;1057:14:1;;;;:::i;:::-;;;2332:156:46;;;1057:14:1;2332:156:46;;;1057:14:1;;2332:156:46;;1057:14:1;2499:21:46;378:4:31;2499::46;378::31;311:9978:46;;;;;;;;;2499:21;;1057:14:1;;;;2499:21:46;;;;;;;:::i;:::-;;;;;;;;;;;;;;311:9978;378:4:31;;;2499::46;378::31;311:9978:46;;;;;;;;;;5904:12;;;;;;;;;;;;;311:9978;-1:-1:-1;;;311:9978:46;;;;;;;1057:14:1;;;311:9978:46;1057:14:1;;;;;;2235:6:46;1057:14:1;311:9978:46;;;;;;;;;;5999:42;;;;;;311:9978;1057:14:1;;311:9978:46;;;5868:9;311:9978;;;;5999:42;;;;;;;311:9978;5999:42;;;;;;;;311:9978;;;6051:30;6139:13;311:9978;;;:::i;6139:13::-;6163:38;311:9978;;;:::i;6163:38::-;6231:12;5259:6:0;;;;5255:203;;311:9978:46;1057:14:1;;6454:34:46;6338:49;1057:14:1;;;6338:49:46;;;;;;;:::i;:::-;311:9978;;;6398:46;311:9978;;;:::i;6454:34::-;6499:46;311:9978;;;:::i;6499:46::-;6579:12;5259:6:0;;;;5255:203;;311:9978:46;;;6603:44;311:9978;;;:::i;6603:44::-;6680:12;5259:6:0;;;;5255:203;;378:4:31;;;;2499::46;378::31;311:9978:46;;;;;;;;;;;;;;6704:27;;;;311:9978;;1057:14:1;311:9978:46;;;;;;;;:::i;5255:203:0:-;-1:-1:-1;;;;;;;;;;;311:9978:46;;-1:-1:-1;;;;;;;;;;;311:9978:46;;;;;;;;;;;;;;-1:-1:-1;;;1057:14:1;311:9978:46;;;5286:41:0;311:9978:46;;;;;;;;;;;:::i;:::-;;;;;;5346:31:0;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;;;311:9978:46;;;;;;;;;;;;:::i;:::-;;;;;;5396:31:0;;;;;:::i;:::-;5255:203;;;;;-1:-1:-1;;;;;;;;;;;311:9978:46;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;311:9978:46;;;;-1:-1:-1;;;1057:14:1;311:9978:46;;;5286:41:0;311:9978:46;;;;;;;;;;;:::i;:::-;;;;;;5346:31:0;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;;;311:9978:46;;;;;;;;;;;;:::i;:::-;;;;;;5396:31:0;;;;;:::i;:::-;5255:203;;;;5999:42:46;;;6139:13;5999:42;;;;;;;;;;;;;;:::i;:::-;;;;;;;5904:12;;;;;;;;;;;;;;;;;:::i;:::-;;;311:9978;;;;1057:14:1;5904:12:46;;;;;;;;;2499:21;;;;;;;;;;;;;:::i;:::-;;;;;;2235:49;;;;;;;;;;;;;;:::i;:::-;;;;;1898:10;;;;:::i;:::-;311:9978;;1898:10;;;;311:9978;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1898:10:46;;;;;;311:9978;;;;;;1898:10;;;;;;311:9978;1898:10;;1057:14:1;1898:10:46;;;;;;;;;;;311:9978;;;;;1057:14:1;;;;:::i;:::-;;;;;1965:154:46;603:11;1965:154;;;1057:14:1;1965:154:46;;;;1057:14:1;311:9978:46;2235:49;311:9978;672:32;311:9978;;;;1057:14:1;;2235:6:46;1057:14:1;311:9978:46;;;;;;;;;;;2235:49;;;;;;:::i;:::-;;;;;;;;;;1057:14:1;2235:49:46;2499:21;2235:49;;;;;311:9978;378:4:31;;2381:11:46;378:4:31;311:9978:46;;;2415:6;311:9978;;;2443:6;311:9978;;;;;1057:14:1;;;;:::i;:::-;;;2332:156:46;;;1057:14:1;2332:156:46;;;1057:14:1;;2332:156:46;;1057:14:1;378:4:31;2499::46;378::31;311:9978:46;;;;;;;;;;;;;2499:21;;;;;;:::i;:::-;;;;;;;;;;;;;;;311:9978;378:4:31;;;2499::46;378::31;311:9978:46;;;;;;;;;;9878:12;;;;;;;;;;;;;311:9978;-1:-1:-1;;;311:9978:46;;;;;;;;;;;;2035:1;891:49:40;;;311:9978:46;9923:7;311:9978;;;;;;891:49:40;;;;;;:::i;:::-;10013:20:46;;;;;311:9978;;;1057:14:1;311:9978:46;;;;;;;;;10013:20;;;;;;311:9978;10013:20;;;;;;;;;;;311:9978;378:4:31;;;2499::46;378::31;311:9978:46;10043:31;;;;;311:9978;;;;;;;;;;;;;;;;;10043:31;;;;;;311:9978;;1057:14:1;311:9978:46;;;;;;;;:::i;:::-;10043:31;;;;;;;;;;;;;311:9978;378:4:31;;1057:14:1;378:4:31;2381:11:46;378:4:31;311:9978:46;;;;;;;;;;;;10160:33;;;;311:9978;10160:33;;;;;;;;10136:100;10160:33;;;;;311:9978;1057:14:1;;;;;10136:100:46;;;;;;:::i;:::-;311:9978;5259:6:0;;;;5255:203;;311:9978:46;;;5255:203:0;311:9978:46;;-1:-1:-1;;;;;;;;;;;1057:14:1;311:9978:46;;;;;;;;;;-1:-1:-1;;;;;;;;;;;311:9978:46;;;;-1:-1:-1;;;1057:14:1;311:9978:46;;;5286:41:0;311:9978:46;;;;;;;;;;;:::i;:::-;;;;;5396:31:0;;;;;:::i;:::-;5255:203;;;;311:9978:46;;;10160:33;;;;;;;;;;;;;:::i;:::-;;;;;311:9978;;;;;;;;;10043:31;;;;:::i;:::-;311:9978;;10043:31;;;;;311:9978;;;;;;;;;10043:31;311:9978;;;10013:20;;;;:::i;:::-;311:9978;;10013:20;;;;;311:9978;;;;;;;;;;-1:-1:-1;;;1057:14:1;;;;;;311:9978:46;1057:14:1;9878:12:46;;;;;;;;;;;;;;;;;:::i;:::-;;;311:9978;;;;1057:14:1;9878:12:46;;;;;;;;;;311:9978;;;;;;;;;2499:21;;;1057:14:1;2499:21:46;1057:14:1;2499:21:46;;;;;;;:::i;:::-;;;;;;2235:49;;;;;;;;;;;;;:::i;:::-;;;;;311:9978;;;;;;;;;1898:10;;;;:::i;:::-;311:9978;;1898:10;;;;;311:9978;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1898:10:46;;;;;311:9978;;;1057:14:1;311:9978:46;;;;;;;;;1898:10;;;;;;311:9978;1898:10;;;;;;;;;;;311:9978;;;;;1057:14:1;;;;:::i;:::-;;;;;603:11:46;1965:154;;;1057:14:1;1965:154:46;;;;1057:14:1;2235:49:46;311:9978;672:32;311:9978;;;;1057:14:1;;2235:6:46;1057:14:1;311:9978:46;;;;;;;;;;;2235:49;;;;;;:::i;:::-;;;;;;;;;;2499:21;2235:49;;1057:14:1;2235:49:46;;;;;378:4:31;;2381:11:46;378:4:31;311:9978:46;;;2415:6;311:9978;;;2443:6;311:9978;;;;;1057:14:1;;;;:::i;2499:21:46:-;;;;;;;;;;;;;;;311:9978;378:4:31;;;2499::46;378::31;311:9978:46;;;;;;;;;;8676:12;;;;;;;;;;;;;311:9978;-1:-1:-1;;;311:9978:46;;;;;;;1057:14:1;;311:9978:46;1057:14:1;;;;;2235:6:46;1057:14:1;311:9978:46;;;;;;;;;;8826:68;;;;;;311:9978;;1057:14:1;311:9978:46;;;8720:9;311:9978;;;;;;;;;8826:68;;;;;;;;;;311:9978;8826:68;;;;1057:14:1;8826:68:46;;;;;;;311:9978;;;8944:13;311:9978;8904:30;9167:34;311:9978;;;:::i;8944:13::-;9268:34;9051:49;1057:14:1;;;9051:49:46;;;;;;;:::i;:::-;311:9978;;;9111:46;311:9978;;;:::i;9111:46::-;9167:34;:::i;:::-;9212:46;311:9978;;;:::i;9268:34::-;9313:44;311:9978;;;:::i;9313:44::-;9390:10;5259:6:0;;;;5255:203;;311:9978:46;378:4:31;;;2499::46;378::31;311:9978:46;;;;;;;;;;;;;;9412:33;;;;311:9978;;1057:14:1;311:9978:46;;;;;;;;:::i;5255:203:0:-;-1:-1:-1;;;;;;;;;;;1057:14:1;311:9978:46;;;;;;;;;;-1:-1:-1;;;;;;;;;;;311:9978:46;;;;-1:-1:-1;;;311:9978:46;;;;5286:41:0;311:9978:46;;;;;;;;;;;:::i;:::-;;;;;;5346:31:0;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;;;311:9978:46;;;;;;;;;;;;;:::i;:::-;;;;;5396:31:0;;;;;:::i;:::-;5255:203;;;;;8826:68:46;8944:13;8826:68;;9167:34;8826:68;;;;;;;;;;;;;;:::i;:::-;;;;;;;;8676:12;;;;;;;;;;;;;;;;;:::i;:::-;;;311:9978;;;;1057:14:1;8676:12:46;;;;;;;;;2499:21;;;1057:14:1;2499:21:46;1057:14:1;2499:21:46;;;;;;;:::i;:::-;;;;;;1898:10;;;;:::i;:::-;311:9978;;1898:10;;;;311:9978;;;;;;;;;;;;;;;672:32;;;;;;;;;;;;;;;;;;;;;;;311:9978;;;;;;;;-1:-1:-1;;;311:9978:46;;;;;;;;;;;;;;;;;;-1:-1:-1;;;311:9978:46;;;;701:2;311:9978;;;;672:32;;;;;;;;;;;311:9978;;;;;;;;;;;;655:50;311:9978;;;655:50;311:9978;;;732:32;;;;;;;;;;;;;;;;;311:9978;732:32;;;311:9978;;;;;;;;-1:-1:-1;;;311:9978:46;;;;;;;;;;;;;;-1:-1:-1;;;311:9978:46;;;;701:2;311:9978;;;;732:32;;;;;;;;;311:9978;;;715:50;311:9978;;;715:50;311:9978;;655:50;311:9978;;775:56;;;;;;311:9978;;;;;775:56;;;806:4;775:56;;;311:9978;813:17;311:9978;;;;;;;;;;775:56;;;;311:9978;775:56;;;;;;;;311:9978;;;;;;715:50;311:9978;;841:56;;;;;;311:9978;;;;;;;;841:56;;;;;;;806:4;;841:56;;;311:9978;;;;841:56;;;;;;;;311:9978;;;;655:50;311:9978;;;715:50;311:9978;;;;;914:28;;;;;;;;;;;;;;;;;311:9978;914:28;;;;;;;311:9978;;378:4:31;;;311:9978:46;378:4:31;;;;311:9978:46;914:28;;;;;;;;;311:9978;;;908:34;311:9978;;;908:34;311:9978;;;959:20;;;;;;;;;;;;;;;;;;;;;311:9978;;;959:20;;;;;;;;;311:9978;;952:27;311:9978;;;;;;952:27;311:9978;;;1003:30;;;;;;;;;;;;;;;;;;;;;;;;;;311:9978;;;;1003:30;;;;;;;;;311:9978;;;989:44;311:9978;;;;;;;989:44;311:9978;;;1052:43;;;;;;;;;;;;;;;;;;;;;;;;;311:9978;;;;1052:43;;;;;;;;;311:9978;;;;;;;;1043:52;311:9978;;;1043:52;311:9978;;;655:50;311:9978;;378:4:31;;;;952:27:46;378:4:31;311:9978:46;;;;;;;;;;;;1105:59;;;;;;;311:9978;1146:17;;378:4:31;;;;311:9978:46;1105:59;;;;;;;;;;;;;;;311:9978;;;;;;;715:50;311:9978;;378:4:31;952:27:46;378:4:31;311:9978:46;;;;1174:59;;;;;;;;;311:9978;378:4:31;;311:9978:46;1174:59;;;;;;;;;;311:9978;;;1174:59;;;;;;;;;;;;;:::i;:::-;;;378:4:31;;;;;;;:::i;:::-;;1174:59:46;;311:9978;;;1174:59;;;;;;311:9978;;;;;;;;1105:59;;;;;;;;;;;;;;;:::i;:::-;;;378:4:31;;;;;;;311:9978:46;378:4:31;;:::i;:::-;;1105:59:46;;;;;;;;;;1052:43;-1:-1:-1;;;311:9978:46;;;;;;;;1003:30;311:9978;;;;;;;;;1003:30;-1:-1:-1;;;311:9978:46;;;;;;;;959:20;-1:-1:-1;;;311:9978:46;;;;;;;;841:56;;;;:::i;:::-;311:9978;;841:56;;;;311:9978;;;;841:56;311:9978;;;;;;;;;775:56;;;;;;;;:::i;:::-;;;;;;;311:9978;;;;;;;;;732:32;-1:-1:-1;;;311:9978:46;;;;;;;;672:32;-1:-1:-1;;;311:9978:46;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;1057:14:1;311:9978:46;;;;;;;;;;;;;:::o;:::-;1057:14:1;311:9978:46;;;;;;;;;;;;;:::o;:::-;1057:14:1;311:9978:46;;;;;;;;;;;1057:14:1;311:9978:46;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;378:4:31:-;;311:9978:46;;;;378:4:31;;;;:::o;1057:14:1:-;;;;;;311:9978:46;;-1:-1:-1;;311:9978:46;1057:14:1;;;:::o;:::-;;;;;;;;-1:-1:-1;;1057:14:1;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;311:9978:46;1057:14:1;311:9978:46;;1057:14:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;311:9978:46;;;1057:14:1;;;311:9978:46;1057:14:1;;;;;311:9978:46;1057:14:1;;;;;;;311:9978:46;1057:14:1;672:32:46;311:9978;;;;1057:14:1;;;311:9978:46;1057:14:1;;311:9978:46;1057:14:1:o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;311:9978:46;1057:14:1;;;;311:9978:46;;;;;;;;;1057:14:1;;;:::i;:::-;311:9978:46;;-1:-1:-1;;311:9978:46;1057:14:1;;;:::o;:::-;;;;;;;;672:32:46;311:9978;;;;1057:14:1;;;311:9978:46;1057:14:1;;;311:9978:46;1057:14:1;;;;;311:9978:46;1057:14:1;;;311:9978:46;1057:14:1;;;;311:9978:46;1057:14:1;;;311:9978:46;1057:14:1;;;;;;;;;;;:::i;311:9978:46:-;;;;;;;;;;;378:4:31;;;:::i;:::-;311:9978:46;;;;;;;;;;;;;;:::i;:::-;1057:14:1;311:9978:46;1057:14:1;;;;:::i;:::-;311:9978:46;;;-1:-1:-1;;;311:9978:46;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;1057:14:1;;311:9978:46;;;;;1057:14:1;311:9978:46;;1057:14:1;311:9978:46;:::o;:::-;1057:14:1;311:9978:46;1057:14:1;;;;:::i;:::-;311:9978:46;;;-1:-1:-1;;;311:9978:46;;;;:::o;:::-;1057:14:1;311:9978:46;1057:14:1;;;;:::i;:::-;311:9978:46;;;-1:-1:-1;;;311:9978:46;;;;:::o;:::-;1057:14:1;311:9978:46;1057:14:1;;;;:::i;:::-;311:9978:46;;;-1:-1:-1;;;311:9978:46;;;;:::o;:::-;;;;;;;;;;;;1057:14:1;;;;:::i;:::-;;;311:9978:46;;;;;;1057:14:1;311:9978:46;;;;;;-1:-1:-1;;;;;311:9978:46;;;;;;;;;;;:::o;:::-;;;;;;;;;378:4:31;;;:::i;:::-;311:9978:46;;;;1057:14:1;311:9978:46;;;;;;;;;;;;;;:::i;:::-;1057:14:1;311:9978:46;1057:14:1;;;;:::i;:::-;311:9978:46;;;-1:-1:-1;;;311:9978:46;;;;:::o;:::-;;;;;;;;;;;1057:14:1;;311:9978:46;;1057:14:1;311:9978:46;:::o;1671:64:0:-;;;;;;311:9978:46;;;;:::i;:::-;;1057:14:1;311:9978:46;;1057:14:1;;;:::i;:::-;311:9978:46;;1671:64:0;-1:-1:-1;1671:64:0;;;;:::o;:::-;;;:::o;1819:584::-;1873:7;311:9978:46;;;;;;;;;;;;;;;1896:14:0:o;1869:528::-;1941:25;-1:-1:-1;;;;;;;;;;;2939:104:0;;1980:374;;2367:19;;;:::o;1980:374::-;311:9978:46;;;;;;;2196:43:0;;;;311:9978:46;;;1671:64:0;;;311:9978:46;1671:64:0;;311:9978:46;;2196:43:0;;;;;:::i;:::-;2086:175;1671:64;311:9978:46;;2086:175:0;;1671:64;2196:43;2086:175;;311:9978:46;;;;;;1057:14:1;1671:64:0;;;;;;;:::i;:::-;;;2086:175;1671:64;2086:175;;;;;;;:::i;:::-;2047:232;;;;;;;:::i;:::-;1057:14:1;2196:43:0;1057:14:1;;;2312:27:0;;378:4:31;;;;2312:27:0;2196:43;378:4:31;2312:27:0;;378:4:31;:::i;:::-;311:9978:46;;7632:139:14;-1:-1:-1;7632:139:14;;;;7712:51;311:9978:46;;7712:51:14;;311:9978:46;7712:51:14;;;;;;;;;311:9978:46;7712:51:14;;;311:9978:46;;;;;;:::i;:::-;;;;;;;;7712:51:14;311:9978:46;;7712:51:14;;;;;;:::i;:::-;1057:14:1;852:159:14;591:42;852:159;;;7632:139::o;7176:145::-;-1:-1:-1;7176:145:14;;;;7259:54;311:9978:46;;7259:54:14;;311:9978:46;7259:54:14;;;;;;;;;311:9978:46;7259:54:14;;;311:9978:46;;;;;;:::i;:::-;;;;;;7259:54:14;311:9978:46;;7259:54:14;;;;;;:::i;311:9978:46:-;;;;-1:-1:-1;;;311:9978:46;;;;;;;:::o;:::-;;;;-1:-1:-1;;;311:9978:46;;;;;;;:::o;5202:262:0:-;9191:9:46;5259:6:0;;;;5255:203;;5202:262;;:::o;5255:203::-;311:9978:46;;;;-1:-1:-1;;;;;;;;;;;311:9978:46;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;311:9978:46;;;;-1:-1:-1;;;311:9978:46;;;;5286:41:0;311:9978:46;;;;;;;;;;;:::i;:::-;;;;;;5346:31:0;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;;;311:9978:46;;;;;;;;;;;:::i;:::-;;;;;;5396:31:0;;;;;:::i;:::-;5202:262::o;:::-;6478:9:46;5259:6:0;;;;5255:203;;5202:262;;:::o;:::-;4078:9:46;5259:6:0;;;;5255:203;;5202:262;;:::o;:::-;378:4:31;5259:6:0;;;;5255:203;;5202:262;;:::o;2410:424::-;-1:-1:-1;;;;;;;;;;;2939:104:0;;2445:359;;2410:424;311:9978:46;;;;2928:1:0;311:9978:46;;;2928:1:0;311:9978:46;2410:424:0:o;2445:359::-;-1:-1:-1;311:9978:46;;;;2645:67:0;;;;311:9978:46;;;1671:64:0;;;311:9978:46;;;;2705:4:0;311:9978:46;;;;;2645:67:0;;;;;:::i;:::-;2534:196;1671:64;311:9978:46;;2534:196:0;;1671:64;2645:67;2534:196;;311:9978:46;;;;;;1057:14:1;1671:64:0;;;;;;;:::i;2534:196::-;2499:245;;;;;;;:::i;:::-;;2445:359;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","TEST_SWAP_FEE()":"620a2607","TEST_ZERO_FEE()":"5ca61cb1","failed()":"ba414fa6","setUp()":"0a9254e4","test_constant_sum_allocate()":"dbd6f94d","test_constant_sum_deallocate()":"2a001b87","test_constant_sum_fail_deallocate()":"a182379e","test_constant_sum_price_update()":"330fdce5","test_constant_sum_swap_x_in_invalid()":"b86532b3","test_constant_sum_swap_x_in_no_fee()":"7cdc65bc","test_constant_sum_swap_x_in_with_fee()":"368a67f3","test_constant_sum_swap_y_in_invalid()":"af08ec53","test_constant_sum_swap_y_in_no_fee()":"b736a485","test_constant_sum_swap_y_in_with_fee()":"f5df5a2c","test_init()":"964fb96d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_SWAP_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_ZERO_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_constant_sum_allocate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_constant_sum_deallocate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_constant_sum_fail_deallocate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_constant_sum_price_update\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_constant_sum_swap_x_in_invalid\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_constant_sum_swap_x_in_no_fee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_constant_sum_swap_x_in_with_fee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_constant_sum_swap_y_in_invalid\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_constant_sum_swap_y_in_no_fee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_constant_sum_swap_y_in_with_fee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/ConstantSum/ConstantSumTest.t.sol\":\"ConstantSumTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/solvers/ConstantSum/ConstantSumSolver.sol\":{\"keccak256\":\"0x1a158ac3d20750c049a2951f4c524990bb6ba4e504cc8e853e26ee5fdad7949e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://bf94f52d0e1c0eb3d77af0a7a705a8bbaf4b829b0d45be6c0c9864a2d71dcb64\",\"dweb:/ipfs/QmXKtEBo6iP127RVqiERBh4ji7u1xKdAS3iPzkWS8sHXMg\"]},\"src/strategies/ConstantSum/ConstantSum.sol\":{\"keccak256\":\"0xb842f20507e6dcc6751ca5a7e902b3a71376bacd6ccb732c36369ec42b80293b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3e8eab1244452c527e995512bf2be44809de0dff09f9c675a9aa65dee5e85fe5\",\"dweb:/ipfs/QmfHn6yjWUhrVbKwSA6hZ1xpCXd5zFjgkGoKv6jqPdjnbK\"]},\"src/strategies/ConstantSum/ConstantSumLib.sol\":{\"keccak256\":\"0xbecc63accf7f1015ad2e60521f9c91f03b2692493e93b936e3939a1619f51c2a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2cbb36900fbcd271029f9659731988e3c401d01f19ab9a3b7ce182153918dc66\",\"dweb:/ipfs/QmZS3YyfNRdwndyb8njoByb7qVbAKEbo6DgejmUdNAfkwv\"]},\"src/test/ConstantSum/ConstantSumTest.t.sol\":{\"keccak256\":\"0x22f2cfd0a19bc4831866b5f142cd5376389f725f94998dc9d595df665f937177\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://dbfb7efc2ed843e0d21c22927e45907dd396977977b0f5e8e6b69751920e305d\",\"dweb:/ipfs/QmYp5gDWnyNcEUKoxtsytAh8PEnuVSMVmwjgPC2YtWc74R\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_SWAP_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_ZERO_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_constant_sum_allocate"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_constant_sum_deallocate"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_constant_sum_fail_deallocate"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_constant_sum_price_update"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_constant_sum_swap_x_in_invalid"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_constant_sum_swap_x_in_no_fee"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_constant_sum_swap_x_in_with_fee"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_constant_sum_swap_y_in_invalid"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_constant_sum_swap_y_in_no_fee"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_constant_sum_swap_y_in_with_fee"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_init"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/ConstantSum/ConstantSumTest.t.sol":"ConstantSumTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/solvers/ConstantSum/ConstantSumSolver.sol":{"keccak256":"0x1a158ac3d20750c049a2951f4c524990bb6ba4e504cc8e853e26ee5fdad7949e","urls":["bzz-raw://bf94f52d0e1c0eb3d77af0a7a705a8bbaf4b829b0d45be6c0c9864a2d71dcb64","dweb:/ipfs/QmXKtEBo6iP127RVqiERBh4ji7u1xKdAS3iPzkWS8sHXMg"],"license":"GPL-3.0-or-later"},"src/strategies/ConstantSum/ConstantSum.sol":{"keccak256":"0xb842f20507e6dcc6751ca5a7e902b3a71376bacd6ccb732c36369ec42b80293b","urls":["bzz-raw://3e8eab1244452c527e995512bf2be44809de0dff09f9c675a9aa65dee5e85fe5","dweb:/ipfs/QmfHn6yjWUhrVbKwSA6hZ1xpCXd5zFjgkGoKv6jqPdjnbK"],"license":"GPL-3.0-or-later"},"src/strategies/ConstantSum/ConstantSumLib.sol":{"keccak256":"0xbecc63accf7f1015ad2e60521f9c91f03b2692493e93b936e3939a1619f51c2a","urls":["bzz-raw://2cbb36900fbcd271029f9659731988e3c401d01f19ab9a3b7ce182153918dc66","dweb:/ipfs/QmZS3YyfNRdwndyb8njoByb7qVbAKEbo6DgejmUdNAfkwv"],"license":"GPL-3.0-or-later"},"src/test/ConstantSum/ConstantSumTest.t.sol":{"keccak256":"0x22f2cfd0a19bc4831866b5f142cd5376389f725f94998dc9d595df665f937177","urls":["bzz-raw://dbfb7efc2ed843e0d21c22927e45907dd396977977b0f5e8e6b69751920e305d","dweb:/ipfs/QmYp5gDWnyNcEUKoxtsytAh8PEnuVSMVmwjgPC2YtWc74R"],"license":"UNLICENSED"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/ConstantSum/ConstantSumTest.t.sol","id":40980,"exportedSymbols":{"ArbiterToken":[43381],"ConstantSum":[37071],"ConstantSumLib":[37235],"ConstantSumSolver":[31599],"ConstantSumTest":[40979],"DFMM":[29062],"DSTest":[1786],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"LPToken":[29516],"Lex":[44392],"LibString":[26659],"Min":[27736],"MockERC20":[25560],"ONE":[30639],"SQRT_WAD":[30630],"SafeTransferLib":[26744],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"TWO":[30633],"Test":[8195],"TestBase":[1843],"Vm":[9352],"WETH":[26027],"ZERO":[30649],"abs":[27763],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeScalingFactor":[30048],"console":[17416],"console2":[25512],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"muli":[27777],"muliWad":[27795],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"39:10251:46","nodes":[{"id":39705,"nodeType":"PragmaDirective","src":"39:24:46","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":39706,"nodeType":"ImportDirective","src":"65:28:46","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":40980,"sourceUnit":8196,"symbolAliases":[],"unitAlias":""},{"id":39707,"nodeType":"ImportDirective","src":"94:48:46","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol","file":"solmate/test/utils/mocks/MockERC20.sol","nameLocation":"-1:-1:-1","scope":40980,"sourceUnit":25561,"symbolAliases":[],"unitAlias":""},{"id":39708,"nodeType":"ImportDirective","src":"143:24:46","nodes":[],"absolutePath":"src/DFMM.sol","file":"../../DFMM.sol","nameLocation":"-1:-1:-1","scope":40980,"sourceUnit":29063,"symbolAliases":[],"unitAlias":""},{"id":39709,"nodeType":"ImportDirective","src":"168:54:46","nodes":[],"absolutePath":"src/strategies/ConstantSum/ConstantSum.sol","file":"../../strategies/ConstantSum/ConstantSum.sol","nameLocation":"-1:-1:-1","scope":40980,"sourceUnit":37072,"symbolAliases":[],"unitAlias":""},{"id":39710,"nodeType":"ImportDirective","src":"223:57:46","nodes":[],"absolutePath":"src/solvers/ConstantSum/ConstantSumSolver.sol","file":"../../solvers/ConstantSum/ConstantSumSolver.sol","nameLocation":"-1:-1:-1","scope":40980,"sourceUnit":31600,"symbolAliases":[],"unitAlias":""},{"id":39711,"nodeType":"ImportDirective","src":"281:28:46","nodes":[],"absolutePath":"src/test/helpers/Lex.sol","file":"../helpers/Lex.sol","nameLocation":"-1:-1:-1","scope":40980,"sourceUnit":44393,"symbolAliases":[],"unitAlias":""},{"id":40979,"nodeType":"ContractDefinition","src":"311:9978:46","nodes":[{"id":39717,"nodeType":"UsingForDirective","src":"350:32:46","nodes":[],"global":false,"libraryName":{"id":39714,"name":"stdStorage","nameLocations":["356:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":7522,"src":"356:10:46"},"typeName":{"id":39716,"nodeType":"UserDefinedTypeName","pathNode":{"id":39715,"name":"StdStorage","nameLocations":["371:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"371:10:46"},"referencedDeclaration":6088,"src":"371:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}}},{"id":39720,"nodeType":"VariableDeclaration","src":"388:9:46","nodes":[],"constant":false,"mutability":"mutable","name":"dfmm","nameLocation":"393:4:46","scope":40979,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"},"typeName":{"id":39719,"nodeType":"UserDefinedTypeName","pathNode":{"id":39718,"name":"DFMM","nameLocations":["388:4:46"],"nodeType":"IdentifierPath","referencedDeclaration":29062,"src":"388:4:46"},"referencedDeclaration":29062,"src":"388:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"visibility":"internal"},{"id":39723,"nodeType":"VariableDeclaration","src":"403:23:46","nodes":[],"constant":false,"mutability":"mutable","name":"constantSum","nameLocation":"415:11:46","scope":40979,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSum_$37071","typeString":"contract ConstantSum"},"typeName":{"id":39722,"nodeType":"UserDefinedTypeName","pathNode":{"id":39721,"name":"ConstantSum","nameLocations":["403:11:46"],"nodeType":"IdentifierPath","referencedDeclaration":37071,"src":"403:11:46"},"referencedDeclaration":37071,"src":"403:11:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSum_$37071","typeString":"contract ConstantSum"}},"visibility":"internal"},{"id":39726,"nodeType":"VariableDeclaration","src":"432:24:46","nodes":[],"constant":false,"mutability":"mutable","name":"solver","nameLocation":"450:6:46","scope":40979,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSumSolver_$31599","typeString":"contract ConstantSumSolver"},"typeName":{"id":39725,"nodeType":"UserDefinedTypeName","pathNode":{"id":39724,"name":"ConstantSumSolver","nameLocations":["432:17:46"],"nodeType":"IdentifierPath","referencedDeclaration":31599,"src":"432:17:46"},"referencedDeclaration":31599,"src":"432:17:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSumSolver_$31599","typeString":"contract ConstantSumSolver"}},"visibility":"internal"},{"id":39728,"nodeType":"VariableDeclaration","src":"462:14:46","nodes":[],"constant":false,"mutability":"mutable","name":"tokenX","nameLocation":"470:6:46","scope":40979,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39727,"name":"address","nodeType":"ElementaryTypeName","src":"462:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":39730,"nodeType":"VariableDeclaration","src":"482:14:46","nodes":[],"constant":false,"mutability":"mutable","name":"tokenY","nameLocation":"490:6:46","scope":40979,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39729,"name":"address","nodeType":"ElementaryTypeName","src":"482:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":39733,"nodeType":"VariableDeclaration","src":"502:7:46","nodes":[],"constant":false,"mutability":"mutable","name":"lex","nameLocation":"506:3:46","scope":40979,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"},"typeName":{"id":39732,"nodeType":"UserDefinedTypeName","pathNode":{"id":39731,"name":"Lex","nameLocations":["502:3:46"],"nodeType":"IdentifierPath","referencedDeclaration":44392,"src":"502:3:46"},"referencedDeclaration":44392,"src":"502:3:46","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}},"visibility":"internal"},{"id":39736,"nodeType":"VariableDeclaration","src":"516:41:46","nodes":[],"constant":true,"functionSelector":"5ca61cb1","mutability":"constant","name":"TEST_ZERO_FEE","nameLocation":"540:13:46","scope":40979,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39734,"name":"uint256","nodeType":"ElementaryTypeName","src":"516:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":39735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"556:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":39739,"nodeType":"VariableDeclaration","src":"563:51:46","nodes":[],"constant":true,"functionSelector":"620a2607","mutability":"constant","name":"TEST_SWAP_FEE","nameLocation":"587:13:46","scope":40979,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39737,"name":"uint256","nodeType":"ElementaryTypeName","src":"563:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"302e303033","id":39738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"603:11:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_3000000000000000_by_1","typeString":"int_const 3000000000000000"},"value":"0.003"},"visibility":"public"},{"id":39864,"nodeType":"FunctionDefinition","src":"621:619:46","nodes":[],"body":{"id":39863,"nodeType":"Block","src":"645:595:46","nodes":[],"statements":[{"expression":{"id":39753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39742,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39728,"src":"655:6:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"746f6b656e58","id":39748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"686:8:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_6076c392819008730df70238b1f1890b3147aecb6d122c8c4b4d5aa1b5f97482","typeString":"literal_string \"tokenX\""},"value":"tokenX"},{"hexValue":"58","id":39749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"696:3:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_550c64a15031c3064454c19adc6243a6122c138a242eaa098da50bb114fc8d56","typeString":"literal_string \"X\""},"value":"X"},{"hexValue":"3138","id":39750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"701:2:46","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6076c392819008730df70238b1f1890b3147aecb6d122c8c4b4d5aa1b5f97482","typeString":"literal_string \"tokenX\""},{"typeIdentifier":"t_stringliteral_550c64a15031c3064454c19adc6243a6122c138a242eaa098da50bb114fc8d56","typeString":"literal_string \"X\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":39747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"672:13:46","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":39746,"nodeType":"UserDefinedTypeName","pathNode":{"id":39745,"name":"MockERC20","nameLocations":["676:9:46"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"676:9:46"},"referencedDeclaration":25560,"src":"676:9:46","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":39751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"672:32:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":39744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"664:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":39743,"name":"address","nodeType":"ElementaryTypeName","src":"664:7:46","typeDescriptions":{}}},"id":39752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"664:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"655:50:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39754,"nodeType":"ExpressionStatement","src":"655:50:46"},{"expression":{"id":39766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39755,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39730,"src":"715:6:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"746f6b656e59","id":39761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"746:8:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_215291f8765d54708d051c35e3f18ebdc532df00c5f85fe5e7d65833297521e9","typeString":"literal_string \"tokenY\""},"value":"tokenY"},{"hexValue":"59","id":39762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"756:3:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a2c5f9025f1f0333863704310875ae81a574171bed5b047cfc0f50e347f630e","typeString":"literal_string \"Y\""},"value":"Y"},{"hexValue":"3138","id":39763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"761:2:46","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_215291f8765d54708d051c35e3f18ebdc532df00c5f85fe5e7d65833297521e9","typeString":"literal_string \"tokenY\""},{"typeIdentifier":"t_stringliteral_9a2c5f9025f1f0333863704310875ae81a574171bed5b047cfc0f50e347f630e","typeString":"literal_string \"Y\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":39760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"732:13:46","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":39759,"nodeType":"UserDefinedTypeName","pathNode":{"id":39758,"name":"MockERC20","nameLocations":["736:9:46"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"736:9:46"},"referencedDeclaration":25560,"src":"736:9:46","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":39764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"732:32:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":39757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"724:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":39756,"name":"address","nodeType":"ElementaryTypeName","src":"724:7:46","typeDescriptions":{}}},"id":39765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"724:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"715:50:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39767,"nodeType":"ExpressionStatement","src":"715:50:46"},{"expression":{"arguments":[{"arguments":[{"id":39774,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"806:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSumTest_$40979","typeString":"contract ConstantSumTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ConstantSumTest_$40979","typeString":"contract ConstantSumTest"}],"id":39773,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"798:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":39772,"name":"address","nodeType":"ElementaryTypeName","src":"798:7:46","typeDescriptions":{}}},"id":39775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"798:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3130305f3030305f303030","id":39776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"813:17:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000_by_1","typeString":"int_const 100000000000000000000000000"},"value":"100_000_000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000000000_by_1","typeString":"int_const 100000000000000000000000000"}],"expression":{"arguments":[{"id":39769,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39728,"src":"785:6:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39768,"name":"MockERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25560,"src":"775:9:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MockERC20_$25560_$","typeString":"type(contract MockERC20)"}},"id":39770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"775:17:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":39771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"793:4:46","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":25546,"src":"775:22:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":39777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"775:56:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39778,"nodeType":"ExpressionStatement","src":"775:56:46"},{"expression":{"arguments":[{"arguments":[{"id":39785,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"872:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSumTest_$40979","typeString":"contract ConstantSumTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ConstantSumTest_$40979","typeString":"contract ConstantSumTest"}],"id":39784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"864:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":39783,"name":"address","nodeType":"ElementaryTypeName","src":"864:7:46","typeDescriptions":{}}},"id":39786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"864:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3130305f3030305f303030","id":39787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"879:17:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000_by_1","typeString":"int_const 100000000000000000000000000"},"value":"100_000_000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000000000_by_1","typeString":"int_const 100000000000000000000000000"}],"expression":{"arguments":[{"id":39780,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39730,"src":"851:6:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39779,"name":"MockERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25560,"src":"841:9:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MockERC20_$25560_$","typeString":"type(contract MockERC20)"}},"id":39781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"841:17:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":39782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"859:4:46","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":25546,"src":"841:22:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":39788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"841:56:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39789,"nodeType":"ExpressionStatement","src":"841:56:46"},{"expression":{"id":39798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39790,"name":"lex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39733,"src":"908:3:46","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":39794,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39728,"src":"922:6:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":39795,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39730,"src":"930:6:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":39796,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"938:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"914:7:46","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_contract$_Lex_$44392_$","typeString":"function (address,address,uint256) returns (contract Lex)"},"typeName":{"id":39792,"nodeType":"UserDefinedTypeName","pathNode":{"id":39791,"name":"Lex","nameLocations":["918:3:46"],"nodeType":"IdentifierPath","referencedDeclaration":44392,"src":"918:3:46"},"referencedDeclaration":44392,"src":"918:3:46","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}}},"id":39797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"914:28:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}},"src":"908:34:46","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}},"id":39799,"nodeType":"ExpressionStatement","src":"908:34:46"},{"expression":{"id":39809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39800,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"952:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30","id":39806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"976:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":39805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"968:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":39804,"name":"address","nodeType":"ElementaryTypeName","src":"968:7:46","typeDescriptions":{}}},"id":39807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"968:10:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"959:8:46","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_DFMM_$29062_$","typeString":"function (address) returns (contract DFMM)"},"typeName":{"id":39802,"nodeType":"UserDefinedTypeName","pathNode":{"id":39801,"name":"DFMM","nameLocations":["963:4:46"],"nodeType":"IdentifierPath","referencedDeclaration":29062,"src":"963:4:46"},"referencedDeclaration":29062,"src":"963:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}},"id":39808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"959:20:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"src":"952:27:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":39810,"nodeType":"ExpressionStatement","src":"952:27:46"},{"expression":{"id":39820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39811,"name":"constantSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39723,"src":"989:11:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSum_$37071","typeString":"contract ConstantSum"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":39817,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"1027:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":39816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1019:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":39815,"name":"address","nodeType":"ElementaryTypeName","src":"1019:7:46","typeDescriptions":{}}},"id":39818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1019:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1003:15:46","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_ConstantSum_$37071_$","typeString":"function (address) returns (contract ConstantSum)"},"typeName":{"id":39813,"nodeType":"UserDefinedTypeName","pathNode":{"id":39812,"name":"ConstantSum","nameLocations":["1007:11:46"],"nodeType":"IdentifierPath","referencedDeclaration":37071,"src":"1007:11:46"},"referencedDeclaration":37071,"src":"1007:11:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSum_$37071","typeString":"contract ConstantSum"}}},"id":39819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1003:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSum_$37071","typeString":"contract ConstantSum"}},"src":"989:44:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSum_$37071","typeString":"contract ConstantSum"}},"id":39821,"nodeType":"ExpressionStatement","src":"989:44:46"},{"expression":{"id":39831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39822,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39726,"src":"1043:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSumSolver_$31599","typeString":"contract ConstantSumSolver"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":39828,"name":"constantSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39723,"src":"1082:11:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSum_$37071","typeString":"contract ConstantSum"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ConstantSum_$37071","typeString":"contract ConstantSum"}],"id":39827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1074:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":39826,"name":"address","nodeType":"ElementaryTypeName","src":"1074:7:46","typeDescriptions":{}}},"id":39829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1074:20:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1052:21:46","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_ConstantSumSolver_$31599_$","typeString":"function (address) returns (contract ConstantSumSolver)"},"typeName":{"id":39824,"nodeType":"UserDefinedTypeName","pathNode":{"id":39823,"name":"ConstantSumSolver","nameLocations":["1056:17:46"],"nodeType":"IdentifierPath","referencedDeclaration":31599,"src":"1056:17:46"},"referencedDeclaration":31599,"src":"1056:17:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSumSolver_$31599","typeString":"contract ConstantSumSolver"}}},"id":39830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1052:43:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSumSolver_$31599","typeString":"contract ConstantSumSolver"}},"src":"1043:52:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSumSolver_$31599","typeString":"contract ConstantSumSolver"}},"id":39832,"nodeType":"ExpressionStatement","src":"1043:52:46"},{"expression":{"arguments":[{"arguments":[{"id":39839,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"1139:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":39838,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1131:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":39837,"name":"address","nodeType":"ElementaryTypeName","src":"1131:7:46","typeDescriptions":{}}},"id":39840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1131:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":39843,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1151:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39842,"name":"uint256","nodeType":"ElementaryTypeName","src":"1151:7:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":39841,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1146:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":39844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1146:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":39845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1160:3:46","memberName":"max","nodeType":"MemberAccess","src":"1146:17:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":39834,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39728,"src":"1115:6:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39833,"name":"MockERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25560,"src":"1105:9:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MockERC20_$25560_$","typeString":"type(contract MockERC20)"}},"id":39835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1105:17:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":39836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1123:7:46","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":25665,"src":"1105:25:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":39846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1105:59:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39847,"nodeType":"ExpressionStatement","src":"1105:59:46"},{"expression":{"arguments":[{"arguments":[{"id":39854,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"1208:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":39853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1200:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":39852,"name":"address","nodeType":"ElementaryTypeName","src":"1200:7:46","typeDescriptions":{}}},"id":39855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1200:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":39858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1220:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39857,"name":"uint256","nodeType":"ElementaryTypeName","src":"1220:7:46","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":39856,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1215:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":39859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1215:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":39860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1229:3:46","memberName":"max","nodeType":"MemberAccess","src":"1215:17:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":39849,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39730,"src":"1184:6:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39848,"name":"MockERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25560,"src":"1174:9:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MockERC20_$25560_$","typeString":"type(contract MockERC20)"}},"id":39850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1174:17:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":39851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1192:7:46","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":25665,"src":"1174:25:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":39861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1174:59:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39862,"nodeType":"ExpressionStatement","src":"1174:59:46"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"630:5:46","parameters":{"id":39740,"nodeType":"ParameterList","parameters":[],"src":"635:2:46"},"returnParameters":{"id":39741,"nodeType":"ParameterList","parameters":[],"src":"645:0:46"},"scope":40979,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":39934,"nodeType":"ModifierDefinition","src":"1246:619:46","nodes":[],"body":{"id":39933,"nodeType":"Block","src":"1271:594:46","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"30","id":39869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1289:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":39866,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"1281:2:46","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":39868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1284:4:46","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":9034,"src":"1281:7:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":39870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1281:10:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39871,"nodeType":"ExpressionStatement","src":"1281:10:46"},{"assignments":[39876],"declarations":[{"constant":false,"id":39876,"mutability":"mutable","name":"params","nameLocation":"1339:6:46","nodeType":"VariableDeclaration","scope":39933,"src":"1302:43:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams"},"typeName":{"id":39875,"nodeType":"UserDefinedTypeName","pathNode":{"id":39874,"name":"ConstantSum.ConstantSumParams","nameLocations":["1302:11:46","1314:17:46"],"nodeType":"IdentifierPath","referencedDeclaration":36490,"src":"1302:29:46"},"referencedDeclaration":36490,"src":"1302:29:46","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_storage_ptr","typeString":"struct ConstantSum.ConstantSumParams"}},"visibility":"internal"}],"id":39888,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":39879,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"1400:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":39880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1406:1:46","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1400:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":39882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1418:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"hexValue":"30","id":39885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1441:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":39884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1433:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":39883,"name":"address","nodeType":"ElementaryTypeName","src":"1433:7:46","typeDescriptions":{}}},"id":39886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1433:10:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":39877,"name":"ConstantSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37071,"src":"1348:11:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ConstantSum_$37071_$","typeString":"type(contract ConstantSum)"}},"id":39878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1373:17:46","memberName":"ConstantSumParams","nodeType":"MemberAccess","referencedDeclaration":36490,"src":"1348:42:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}},"id":39887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1393:5:46","1409:7:46","1421:10:46"],"names":["price","swapFee","controller"],"nodeType":"FunctionCall","src":"1348:98:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"nodeType":"VariableDeclarationStatement","src":"1302:144:46"},{"assignments":[39890],"declarations":[{"constant":false,"id":39890,"mutability":"mutable","name":"init_x","nameLocation":"1465:6:46","nodeType":"VariableDeclaration","scope":39933,"src":"1457:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39889,"name":"uint256","nodeType":"ElementaryTypeName","src":"1457:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39894,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":39891,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"1474:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31","id":39892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1480:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1474:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1457:24:46"},{"assignments":[39896],"declarations":[{"constant":false,"id":39896,"mutability":"mutable","name":"init_y","nameLocation":"1499:6:46","nodeType":"VariableDeclaration","scope":39933,"src":"1491:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39895,"name":"uint256","nodeType":"ElementaryTypeName","src":"1491:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39900,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":39897,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"1508:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31","id":39898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1514:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1508:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1491:24:46"},{"assignments":[39902],"declarations":[{"constant":false,"id":39902,"mutability":"mutable","name":"initData","nameLocation":"1539:8:46","nodeType":"VariableDeclaration","scope":39933,"src":"1526:21:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":39901,"name":"bytes","nodeType":"ElementaryTypeName","src":"1526:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":39909,"initialValue":{"arguments":[{"id":39905,"name":"init_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39890,"src":"1588:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39906,"name":"init_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39896,"src":"1596:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39907,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39876,"src":"1604:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}],"expression":{"id":39903,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39726,"src":"1562:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSumSolver_$31599","typeString":"contract ConstantSumSolver"}},"id":39904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1569:18:46","memberName":"getInitialPoolData","nodeType":"MemberAccess","referencedDeclaration":31183,"src":"1562:25:46","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_struct$_ConstantSumParams_$36490_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256,struct ConstantSum.ConstantSumParams memory) pure external returns (bytes memory)"}},"id":39908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1562:49:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1526:85:46"},{"assignments":[39914],"declarations":[{"constant":false,"id":39914,"mutability":"mutable","name":"initParams","nameLocation":"1646:10:46","nodeType":"VariableDeclaration","scope":39933,"src":"1622:34:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":39913,"nodeType":"UserDefinedTypeName","pathNode":{"id":39912,"name":"IDFMM.InitParams","nameLocations":["1622:5:46","1628:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":29543,"src":"1622:16:46"},"referencedDeclaration":29543,"src":"1622:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"id":39925,"initialValue":{"arguments":[{"arguments":[{"id":39919,"name":"constantSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39723,"src":"1708:11:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSum_$37071","typeString":"contract ConstantSum"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ConstantSum_$37071","typeString":"contract ConstantSum"}],"id":39918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1700:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":39917,"name":"address","nodeType":"ElementaryTypeName","src":"1700:7:46","typeDescriptions":{}}},"id":39920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1700:20:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":39921,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39728,"src":"1742:6:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":39922,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39730,"src":"1770:6:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":39923,"name":"initData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39902,"src":"1796:8:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":39915,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"1659:5:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":39916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1665:10:46","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":29543,"src":"1659:16:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$29543_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":39924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1690:8:46","1734:6:46","1762:6:46","1790:4:46"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"1659:156:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}},"nodeType":"VariableDeclarationStatement","src":"1622:193:46"},{"expression":{"arguments":[{"id":39929,"name":"initParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39914,"src":"1836:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":39926,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"1826:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":39928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1831:4:46","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":28091,"src":"1826:9:46","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$29543_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":39930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1826:21:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"id":39931,"nodeType":"ExpressionStatement","src":"1826:21:46"},{"id":39932,"nodeType":"PlaceholderStatement","src":"1857:1:46"}]},"name":"basic_feeless","nameLocation":"1255:13:46","parameters":{"id":39865,"nodeType":"ParameterList","parameters":[],"src":"1268:2:46"},"virtual":false,"visibility":"internal"},{"id":40004,"nodeType":"ModifierDefinition","src":"1871:667:46","nodes":[],"body":{"id":40003,"nodeType":"Block","src":"1888:650:46","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"30","id":39939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1906:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":39936,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"1898:2:46","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":39938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1901:4:46","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":9034,"src":"1898:7:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":39940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1898:10:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39941,"nodeType":"ExpressionStatement","src":"1898:10:46"},{"assignments":[39946],"declarations":[{"constant":false,"id":39946,"mutability":"mutable","name":"params","nameLocation":"1956:6:46","nodeType":"VariableDeclaration","scope":40003,"src":"1919:43:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams"},"typeName":{"id":39945,"nodeType":"UserDefinedTypeName","pathNode":{"id":39944,"name":"ConstantSum.ConstantSumParams","nameLocations":["1919:11:46","1931:17:46"],"nodeType":"IdentifierPath","referencedDeclaration":36490,"src":"1919:29:46"},"referencedDeclaration":36490,"src":"1919:29:46","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_storage_ptr","typeString":"struct ConstantSum.ConstantSumParams"}},"visibility":"internal"}],"id":39958,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":39949,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"2029:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":39950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2035:1:46","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2029:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39952,"name":"TEST_SWAP_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39739,"src":"2059:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":39955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2106:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":39954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2098:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":39953,"name":"address","nodeType":"ElementaryTypeName","src":"2098:7:46","typeDescriptions":{}}},"id":39956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2098:10:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":39947,"name":"ConstantSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37071,"src":"1965:11:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ConstantSum_$37071_$","typeString":"type(contract ConstantSum)"}},"id":39948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1990:17:46","memberName":"ConstantSumParams","nodeType":"MemberAccess","referencedDeclaration":36490,"src":"1965:42:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}},"id":39957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2022:5:46","2050:7:46","2086:10:46"],"names":["price","swapFee","controller"],"nodeType":"FunctionCall","src":"1965:154:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"nodeType":"VariableDeclarationStatement","src":"1919:200:46"},{"assignments":[39960],"declarations":[{"constant":false,"id":39960,"mutability":"mutable","name":"init_x","nameLocation":"2138:6:46","nodeType":"VariableDeclaration","scope":40003,"src":"2130:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39959,"name":"uint256","nodeType":"ElementaryTypeName","src":"2130:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39964,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":39961,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"2147:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31","id":39962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2153:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2147:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2130:24:46"},{"assignments":[39966],"declarations":[{"constant":false,"id":39966,"mutability":"mutable","name":"init_y","nameLocation":"2172:6:46","nodeType":"VariableDeclaration","scope":40003,"src":"2164:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39965,"name":"uint256","nodeType":"ElementaryTypeName","src":"2164:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39970,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":39967,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"2181:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31","id":39968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2187:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2181:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2164:24:46"},{"assignments":[39972],"declarations":[{"constant":false,"id":39972,"mutability":"mutable","name":"initData","nameLocation":"2212:8:46","nodeType":"VariableDeclaration","scope":40003,"src":"2199:21:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":39971,"name":"bytes","nodeType":"ElementaryTypeName","src":"2199:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":39979,"initialValue":{"arguments":[{"id":39975,"name":"init_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39960,"src":"2261:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39976,"name":"init_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39966,"src":"2269:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39977,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39946,"src":"2277:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}],"expression":{"id":39973,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39726,"src":"2235:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSumSolver_$31599","typeString":"contract ConstantSumSolver"}},"id":39974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2242:18:46","memberName":"getInitialPoolData","nodeType":"MemberAccess","referencedDeclaration":31183,"src":"2235:25:46","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_struct$_ConstantSumParams_$36490_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256,struct ConstantSum.ConstantSumParams memory) pure external returns (bytes memory)"}},"id":39978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2235:49:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2199:85:46"},{"assignments":[39984],"declarations":[{"constant":false,"id":39984,"mutability":"mutable","name":"initParams","nameLocation":"2319:10:46","nodeType":"VariableDeclaration","scope":40003,"src":"2295:34:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":39983,"nodeType":"UserDefinedTypeName","pathNode":{"id":39982,"name":"IDFMM.InitParams","nameLocations":["2295:5:46","2301:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":29543,"src":"2295:16:46"},"referencedDeclaration":29543,"src":"2295:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"id":39995,"initialValue":{"arguments":[{"arguments":[{"id":39989,"name":"constantSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39723,"src":"2381:11:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSum_$37071","typeString":"contract ConstantSum"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ConstantSum_$37071","typeString":"contract ConstantSum"}],"id":39988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2373:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":39987,"name":"address","nodeType":"ElementaryTypeName","src":"2373:7:46","typeDescriptions":{}}},"id":39990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2373:20:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":39991,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39728,"src":"2415:6:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":39992,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39730,"src":"2443:6:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":39993,"name":"initData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39972,"src":"2469:8:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":39985,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"2332:5:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":39986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2338:10:46","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":29543,"src":"2332:16:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$29543_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":39994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2363:8:46","2407:6:46","2435:6:46","2463:4:46"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"2332:156:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}},"nodeType":"VariableDeclarationStatement","src":"2295:193:46"},{"expression":{"arguments":[{"id":39999,"name":"initParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39984,"src":"2509:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":39996,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"2499:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":39998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2504:4:46","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":28091,"src":"2499:9:46","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$29543_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":40000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2499:21:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"id":40001,"nodeType":"ExpressionStatement","src":"2499:21:46"},{"id":40002,"nodeType":"PlaceholderStatement","src":"2530:1:46"}]},"name":"basic","nameLocation":"1880:5:46","parameters":{"id":39935,"nodeType":"ParameterList","parameters":[],"src":"1885:2:46"},"virtual":false,"visibility":"internal"},{"id":40083,"nodeType":"FunctionDefinition","src":"2544:601:46","nodes":[],"body":{"id":40082,"nodeType":"Block","src":"2578:567:46","nodes":[],"statements":[{"assignments":[40010],"declarations":[{"constant":false,"id":40010,"mutability":"mutable","name":"poolId","nameLocation":"2596:6:46","nodeType":"VariableDeclaration","scope":40082,"src":"2588:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40009,"name":"uint256","nodeType":"ElementaryTypeName","src":"2588:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40016,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40011,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"2605:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":40012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2610:5:46","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"2605:10:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":40013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2605:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":40014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2620:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2605:16:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2588:33:46"},{"assignments":[40021],"declarations":[{"constant":false,"id":40021,"mutability":"mutable","name":"params","nameLocation":"2669:6:46","nodeType":"VariableDeclaration","scope":40082,"src":"2632:43:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams"},"typeName":{"id":40020,"nodeType":"UserDefinedTypeName","pathNode":{"id":40019,"name":"ConstantSum.ConstantSumParams","nameLocations":["2632:11:46","2644:17:46"],"nodeType":"IdentifierPath","referencedDeclaration":36490,"src":"2632:29:46"},"referencedDeclaration":36490,"src":"2632:29:46","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_storage_ptr","typeString":"struct ConstantSum.ConstantSumParams"}},"visibility":"internal"}],"id":40032,"initialValue":{"arguments":[{"arguments":[{"id":40026,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40010,"src":"2729:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40024,"name":"constantSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39723,"src":"2703:11:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSum_$37071","typeString":"contract ConstantSum"}},"id":40025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2715:13:46","memberName":"getPoolParams","nodeType":"MemberAccess","referencedDeclaration":37070,"src":"2703:25:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) view external returns (bytes memory)"}},"id":40027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2703:33:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":40028,"name":"ConstantSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37071,"src":"2739:11:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ConstantSum_$37071_$","typeString":"type(contract ConstantSum)"}},"id":40029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2751:17:46","memberName":"ConstantSumParams","nodeType":"MemberAccess","referencedDeclaration":36490,"src":"2739:29:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}}],"id":40030,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2738:31:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}],"expression":{"id":40022,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2679:3:46","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2683:6:46","memberName":"decode","nodeType":"MemberAccess","src":"2679:10:46","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":40031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2679:100:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"nodeType":"VariableDeclarationStatement","src":"2631:148:46"},{"expression":{"arguments":[{"expression":{"id":40034,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40021,"src":"2798:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":40035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2805:5:46","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":36485,"src":"2798:12:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"32","id":40036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2812:7:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_2000000000000000000_by_1","typeString":"int_const 2000000000000000000"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_2000000000000000000_by_1","typeString":"int_const 2000000000000000000"}],"id":40033,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2789:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2789:31:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40038,"nodeType":"ExpressionStatement","src":"2789:31:46"},{"expression":{"arguments":[{"expression":{"id":40040,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40021,"src":"2839:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":40041,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2846:7:46","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":36487,"src":"2839:14:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"302e303033","id":40042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2855:11:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_3000000000000000_by_1","typeString":"int_const 3000000000000000"},"value":"0.003"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_3000000000000000_by_1","typeString":"int_const 3000000000000000"}],"id":40039,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2830:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2830:37:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40044,"nodeType":"ExpressionStatement","src":"2830:37:46"},{"expression":{"arguments":[{"expression":{"id":40046,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40021,"src":"2886:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":40047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2893:10:46","memberName":"controller","nodeType":"MemberAccess","referencedDeclaration":36489,"src":"2886:17:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":40050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2913:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":40049,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2905:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":40048,"name":"address","nodeType":"ElementaryTypeName","src":"2905:7:46","typeDescriptions":{}}},"id":40051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2905:10:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":40045,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":320,"src":"2877:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":40052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2877:39:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40053,"nodeType":"ExpressionStatement","src":"2877:39:46"},{"assignments":[40055,40057,40059],"declarations":[{"constant":false,"id":40055,"mutability":"mutable","name":"initRx","nameLocation":"2936:6:46","nodeType":"VariableDeclaration","scope":40082,"src":"2928:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40054,"name":"uint256","nodeType":"ElementaryTypeName","src":"2928:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40057,"mutability":"mutable","name":"initRy","nameLocation":"2952:6:46","nodeType":"VariableDeclaration","scope":40082,"src":"2944:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40056,"name":"uint256","nodeType":"ElementaryTypeName","src":"2944:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40059,"mutability":"mutable","name":"initL","nameLocation":"2968:5:46","nodeType":"VariableDeclaration","scope":40082,"src":"2960:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40058,"name":"uint256","nodeType":"ElementaryTypeName","src":"2960:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40066,"initialValue":{"arguments":[{"id":40064,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40010,"src":"3024:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":40061,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"2994:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":40060,"name":"DFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29062,"src":"2989:4:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DFMM_$29062_$","typeString":"type(contract DFMM)"}},"id":40062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2989:10:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":40063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3000:23:46","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29012,"src":"2989:34:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":40065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2989:42:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"2927:104:46"},{"expression":{"arguments":[{"id":40068,"name":"initRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40055,"src":"3051:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":40069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3059:7:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}],"id":40067,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"3042:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3042:25:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40071,"nodeType":"ExpressionStatement","src":"3042:25:46"},{"expression":{"arguments":[{"id":40073,"name":"initRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40057,"src":"3086:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":40074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3094:7:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}],"id":40072,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"3077:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3077:25:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40076,"nodeType":"ExpressionStatement","src":"3077:25:46"},{"expression":{"arguments":[{"id":40078,"name":"initL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40059,"src":"3121:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"312e35","id":40079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3128:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1500000000000000000_by_1","typeString":"int_const 1500000000000000000"},"value":"1.5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1500000000000000000_by_1","typeString":"int_const 1500000000000000000"}],"id":40077,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"3112:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3112:26:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40081,"nodeType":"ExpressionStatement","src":"3112:26:46"}]},"functionSelector":"964fb96d","implemented":true,"kind":"function","modifiers":[{"id":40007,"kind":"modifierInvocation","modifierName":{"id":40006,"name":"basic","nameLocations":["2572:5:46"],"nodeType":"IdentifierPath","referencedDeclaration":40004,"src":"2572:5:46"},"nodeType":"ModifierInvocation","src":"2572:5:46"}],"name":"test_init","nameLocation":"2553:9:46","parameters":{"id":40005,"nodeType":"ParameterList","parameters":[],"src":"2562:2:46"},"returnParameters":{"id":40008,"nodeType":"ParameterList","parameters":[],"src":"2578:0:46"},"scope":40979,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":40209,"nodeType":"FunctionDefinition","src":"3151:982:46","nodes":[],"body":{"id":40208,"nodeType":"Block","src":"3218:915:46","nodes":[],"statements":[{"assignments":[40089],"declarations":[{"constant":false,"id":40089,"mutability":"mutable","name":"xIn","nameLocation":"3233:3:46","nodeType":"VariableDeclaration","scope":40208,"src":"3228:8:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40088,"name":"bool","nodeType":"ElementaryTypeName","src":"3228:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":40091,"initialValue":{"hexValue":"74727565","id":40090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3239:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"3228:15:46"},{"assignments":[40093],"declarations":[{"constant":false,"id":40093,"mutability":"mutable","name":"amountIn","nameLocation":"3261:8:46","nodeType":"VariableDeclaration","scope":40208,"src":"3253:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40092,"name":"uint256","nodeType":"ElementaryTypeName","src":"3253:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40095,"initialValue":{"hexValue":"302e31","id":40094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3272:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"3253:28:46"},{"assignments":[40097],"declarations":[{"constant":false,"id":40097,"mutability":"mutable","name":"poolId","nameLocation":"3299:6:46","nodeType":"VariableDeclaration","scope":40208,"src":"3291:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40096,"name":"uint256","nodeType":"ElementaryTypeName","src":"3291:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40103,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40098,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"3308:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":40099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3313:5:46","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"3308:10:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":40100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3308:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":40101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3323:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3308:16:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3291:33:46"},{"assignments":[40105,40107,40109],"declarations":[{"constant":false,"id":40105,"mutability":"mutable","name":"valid","nameLocation":"3340:5:46","nodeType":"VariableDeclaration","scope":40208,"src":"3335:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40104,"name":"bool","nodeType":"ElementaryTypeName","src":"3335:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40107,"mutability":"mutable","name":"amountOut","nameLocation":"3355:9:46","nodeType":"VariableDeclaration","scope":40208,"src":"3347:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40106,"name":"uint256","nodeType":"ElementaryTypeName","src":"3347:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40109,"mutability":"mutable","name":"swapData","nameLocation":"3379:8:46","nodeType":"VariableDeclaration","scope":40208,"src":"3366:21:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40108,"name":"bytes","nodeType":"ElementaryTypeName","src":"3366:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":40116,"initialValue":{"arguments":[{"id":40112,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40097,"src":"3423:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":40113,"name":"xIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40089,"src":"3431:3:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":40114,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40093,"src":"3436:8:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40110,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39726,"src":"3403:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSumSolver_$31599","typeString":"contract ConstantSumSolver"}},"id":40111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3410:12:46","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":31429,"src":"3403:19:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,bytes memory)"}},"id":40115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3403:42:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3334:111:46"},{"expression":{"arguments":[{"hexValue":"56616c69643a20","id":40120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3468:9:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_68038e4f70bbfe5239b572d0473dc7e4d1e647de6745ccd1b6261658dd3a95d2","typeString":"literal_string \"Valid: \""},"value":"Valid: "},{"id":40121,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40105,"src":"3479:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_68038e4f70bbfe5239b572d0473dc7e4d1e647de6745ccd1b6261658dd3a95d2","typeString":"literal_string \"Valid: \""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":40117,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"3455:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3464:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18190,"src":"3455:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bool_$returns$__$","typeString":"function (string memory,bool) view"}},"id":40122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3455:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40123,"nodeType":"ExpressionStatement","src":"3455:30:46"},{"expression":{"arguments":[{"hexValue":"416d6f756e744f75743a20","id":40127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3508:13:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_3afeac6eb0c574e4a10da748c9771475563436f3441dd159cc2c238325a49d38","typeString":"literal_string \"AmountOut: \""},"value":"AmountOut: "},{"id":40128,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40107,"src":"3523:9:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3afeac6eb0c574e4a10da748c9771475563436f3441dd159cc2c238325a49d38","typeString":"literal_string \"AmountOut: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40124,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"3495:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3504:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"3495:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3495:38:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40130,"nodeType":"ExpressionStatement","src":"3495:38:46"},{"expression":{"arguments":[{"id":40132,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40105,"src":"3550:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":40131,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"3543:6:46","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":40133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3543:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40134,"nodeType":"ExpressionStatement","src":"3543:13:46"},{"expression":{"arguments":[{"hexValue":"416d6f756e744f75743a20","id":40138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3580:13:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_3afeac6eb0c574e4a10da748c9771475563436f3441dd159cc2c238325a49d38","typeString":"literal_string \"AmountOut: \""},"value":"AmountOut: "},{"id":40139,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40107,"src":"3595:9:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3afeac6eb0c574e4a10da748c9771475563436f3441dd159cc2c238325a49d38","typeString":"literal_string \"AmountOut: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40135,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"3567:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3576:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"3567:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3567:38:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40141,"nodeType":"ExpressionStatement","src":"3567:38:46"},{"expression":{"arguments":[{"id":40143,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40107,"src":"3624:9:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"302e32","id":40144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3635:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_200000000000000000_by_1","typeString":"int_const 200000000000000000"},"value":"0.2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_200000000000000000_by_1","typeString":"int_const 200000000000000000"}],"id":40142,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"3615:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3615:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40146,"nodeType":"ExpressionStatement","src":"3615:30:46"},{"assignments":[40148,40150,40152],"declarations":[{"constant":false,"id":40148,"mutability":"mutable","name":"endReservesRx","nameLocation":"3665:13:46","nodeType":"VariableDeclaration","scope":40208,"src":"3657:21:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40147,"name":"uint256","nodeType":"ElementaryTypeName","src":"3657:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40150,"mutability":"mutable","name":"endReservesRy","nameLocation":"3688:13:46","nodeType":"VariableDeclaration","scope":40208,"src":"3680:21:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40149,"name":"uint256","nodeType":"ElementaryTypeName","src":"3680:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40152,"mutability":"mutable","name":"endReservesL","nameLocation":"3711:12:46","nodeType":"VariableDeclaration","scope":40208,"src":"3703:20:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40151,"name":"uint256","nodeType":"ElementaryTypeName","src":"3703:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40164,"initialValue":{"arguments":[{"id":40155,"name":"swapData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40109,"src":"3750:8:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":40157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3761:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":40156,"name":"uint256","nodeType":"ElementaryTypeName","src":"3761:7:46","typeDescriptions":{}}},{"id":40159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3770:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":40158,"name":"uint256","nodeType":"ElementaryTypeName","src":"3770:7:46","typeDescriptions":{}}},{"id":40161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3779:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":40160,"name":"uint256","nodeType":"ElementaryTypeName","src":"3779:7:46","typeDescriptions":{}}}],"id":40162,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3760:27:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}],"expression":{"id":40153,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3739:3:46","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3743:6:46","memberName":"decode","nodeType":"MemberAccess","src":"3739:10:46","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":40163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3739:49:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"3656:132:46"},{"expression":{"arguments":[{"hexValue":"656e64526573657276657352783a20","id":40168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3812:17:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_05bf16485b6449eddbbfe8ef453db3e6fa41c324590aeacf9f1de968dea0f801","typeString":"literal_string \"endReservesRx: \""},"value":"endReservesRx: "},{"id":40169,"name":"endReservesRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40148,"src":"3831:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_05bf16485b6449eddbbfe8ef453db3e6fa41c324590aeacf9f1de968dea0f801","typeString":"literal_string \"endReservesRx: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40165,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"3799:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3808:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"3799:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3799:46:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40171,"nodeType":"ExpressionStatement","src":"3799:46:46"},{"expression":{"arguments":[{"id":40173,"name":"endReservesRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40148,"src":"3864:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"312e31","id":40174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3879:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1100000000000000000_by_1","typeString":"int_const 1100000000000000000"},"value":"1.1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1100000000000000000_by_1","typeString":"int_const 1100000000000000000"}],"id":40172,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"3855:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3855:34:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40176,"nodeType":"ExpressionStatement","src":"3855:34:46"},{"expression":{"arguments":[{"hexValue":"656e64526573657276657352793a20","id":40180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3913:17:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6cbcd47514251251d0b715e53308ce4d1da69e4834a04a997c31032ec2042ea","typeString":"literal_string \"endReservesRy: \""},"value":"endReservesRy: "},{"id":40181,"name":"endReservesRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40150,"src":"3932:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6cbcd47514251251d0b715e53308ce4d1da69e4834a04a997c31032ec2042ea","typeString":"literal_string \"endReservesRy: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40177,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"3900:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3909:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"3900:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3900:46:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40183,"nodeType":"ExpressionStatement","src":"3900:46:46"},{"expression":{"arguments":[{"id":40185,"name":"endReservesRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40150,"src":"3965:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"302e38","id":40186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3980:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_800000000000000000_by_1","typeString":"int_const 800000000000000000"},"value":"0.8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_800000000000000000_by_1","typeString":"int_const 800000000000000000"}],"id":40184,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"3956:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3956:34:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40188,"nodeType":"ExpressionStatement","src":"3956:34:46"},{"expression":{"arguments":[{"hexValue":"656e6452657365727665734c3a20","id":40192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4014:16:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_c18afa812c74703958ad06908f53d2933fae9545c2c275121a944b86acb2f207","typeString":"literal_string \"endReservesL: \""},"value":"endReservesL: "},{"id":40193,"name":"endReservesL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40152,"src":"4032:12:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c18afa812c74703958ad06908f53d2933fae9545c2c275121a944b86acb2f207","typeString":"literal_string \"endReservesL: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40189,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"4001:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4010:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"4001:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4001:44:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40195,"nodeType":"ExpressionStatement","src":"4001:44:46"},{"expression":{"arguments":[{"id":40197,"name":"endReservesL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40152,"src":"4064:12:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"312e35","id":40198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4078:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1500000000000000000_by_1","typeString":"int_const 1500000000000000000"},"value":"1.5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1500000000000000000_by_1","typeString":"int_const 1500000000000000000"}],"id":40196,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"4055:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4055:33:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40200,"nodeType":"ExpressionStatement","src":"4055:33:46"},{"expression":{"arguments":[{"id":40204,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40097,"src":"4109:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":40205,"name":"swapData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40109,"src":"4117:8:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":40201,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"4099:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":40203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4104:4:46","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":28371,"src":"4099:9:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256,uint256)"}},"id":40206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4099:27:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":40207,"nodeType":"ExpressionStatement","src":"4099:27:46"}]},"functionSelector":"7cdc65bc","implemented":true,"kind":"function","modifiers":[{"id":40086,"kind":"modifierInvocation","modifierName":{"id":40085,"name":"basic_feeless","nameLocations":["3204:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":39934,"src":"3204:13:46"},"nodeType":"ModifierInvocation","src":"3204:13:46"}],"name":"test_constant_sum_swap_x_in_no_fee","nameLocation":"3160:34:46","parameters":{"id":40084,"nodeType":"ParameterList","parameters":[],"src":"3194:2:46"},"returnParameters":{"id":40087,"nodeType":"ParameterList","parameters":[],"src":"3218:0:46"},"scope":40979,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":40335,"nodeType":"FunctionDefinition","src":"4139:985:46","nodes":[],"body":{"id":40334,"nodeType":"Block","src":"4206:918:46","nodes":[],"statements":[{"assignments":[40215],"declarations":[{"constant":false,"id":40215,"mutability":"mutable","name":"xIn","nameLocation":"4221:3:46","nodeType":"VariableDeclaration","scope":40334,"src":"4216:8:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40214,"name":"bool","nodeType":"ElementaryTypeName","src":"4216:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":40217,"initialValue":{"hexValue":"66616c7365","id":40216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4227:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"4216:16:46"},{"assignments":[40219],"declarations":[{"constant":false,"id":40219,"mutability":"mutable","name":"amountIn","nameLocation":"4250:8:46","nodeType":"VariableDeclaration","scope":40334,"src":"4242:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40218,"name":"uint256","nodeType":"ElementaryTypeName","src":"4242:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40221,"initialValue":{"hexValue":"302e31","id":40220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4261:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"4242:28:46"},{"assignments":[40223],"declarations":[{"constant":false,"id":40223,"mutability":"mutable","name":"poolId","nameLocation":"4288:6:46","nodeType":"VariableDeclaration","scope":40334,"src":"4280:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40222,"name":"uint256","nodeType":"ElementaryTypeName","src":"4280:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40229,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40224,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"4297:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":40225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4302:5:46","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"4297:10:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":40226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4297:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":40227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4312:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4297:16:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4280:33:46"},{"assignments":[40231,40233,40235],"declarations":[{"constant":false,"id":40231,"mutability":"mutable","name":"valid","nameLocation":"4329:5:46","nodeType":"VariableDeclaration","scope":40334,"src":"4324:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40230,"name":"bool","nodeType":"ElementaryTypeName","src":"4324:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40233,"mutability":"mutable","name":"amountOut","nameLocation":"4344:9:46","nodeType":"VariableDeclaration","scope":40334,"src":"4336:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40232,"name":"uint256","nodeType":"ElementaryTypeName","src":"4336:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40235,"mutability":"mutable","name":"swapData","nameLocation":"4368:8:46","nodeType":"VariableDeclaration","scope":40334,"src":"4355:21:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40234,"name":"bytes","nodeType":"ElementaryTypeName","src":"4355:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":40242,"initialValue":{"arguments":[{"id":40238,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40223,"src":"4412:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":40239,"name":"xIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40215,"src":"4420:3:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":40240,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40219,"src":"4425:8:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40236,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39726,"src":"4392:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSumSolver_$31599","typeString":"contract ConstantSumSolver"}},"id":40237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4399:12:46","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":31429,"src":"4392:19:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,bytes memory)"}},"id":40241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4392:42:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4323:111:46"},{"expression":{"arguments":[{"hexValue":"56616c69643a20","id":40246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4457:9:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_68038e4f70bbfe5239b572d0473dc7e4d1e647de6745ccd1b6261658dd3a95d2","typeString":"literal_string \"Valid: \""},"value":"Valid: "},{"id":40247,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40231,"src":"4468:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_68038e4f70bbfe5239b572d0473dc7e4d1e647de6745ccd1b6261658dd3a95d2","typeString":"literal_string \"Valid: \""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":40243,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"4444:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4453:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18190,"src":"4444:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bool_$returns$__$","typeString":"function (string memory,bool) view"}},"id":40248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4444:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40249,"nodeType":"ExpressionStatement","src":"4444:30:46"},{"expression":{"arguments":[{"hexValue":"416d6f756e744f75743a20","id":40253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4497:13:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_3afeac6eb0c574e4a10da748c9771475563436f3441dd159cc2c238325a49d38","typeString":"literal_string \"AmountOut: \""},"value":"AmountOut: "},{"id":40254,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40233,"src":"4512:9:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3afeac6eb0c574e4a10da748c9771475563436f3441dd159cc2c238325a49d38","typeString":"literal_string \"AmountOut: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40250,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"4484:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4493:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"4484:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4484:38:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40256,"nodeType":"ExpressionStatement","src":"4484:38:46"},{"expression":{"arguments":[{"id":40258,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40231,"src":"4539:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":40257,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"4532:6:46","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":40259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4532:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40260,"nodeType":"ExpressionStatement","src":"4532:13:46"},{"expression":{"arguments":[{"hexValue":"416d6f756e744f75743a20","id":40264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4569:13:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_3afeac6eb0c574e4a10da748c9771475563436f3441dd159cc2c238325a49d38","typeString":"literal_string \"AmountOut: \""},"value":"AmountOut: "},{"id":40265,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40233,"src":"4584:9:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3afeac6eb0c574e4a10da748c9771475563436f3441dd159cc2c238325a49d38","typeString":"literal_string \"AmountOut: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40261,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"4556:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4565:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"4556:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4556:38:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40267,"nodeType":"ExpressionStatement","src":"4556:38:46"},{"expression":{"arguments":[{"id":40269,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40233,"src":"4613:9:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"302e3035","id":40270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4624:10:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_50000000000000000_by_1","typeString":"int_const 50000000000000000"},"value":"0.05"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_50000000000000000_by_1","typeString":"int_const 50000000000000000"}],"id":40268,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"4604:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4604:31:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40272,"nodeType":"ExpressionStatement","src":"4604:31:46"},{"assignments":[40274,40276,40278],"declarations":[{"constant":false,"id":40274,"mutability":"mutable","name":"endReservesRx","nameLocation":"4655:13:46","nodeType":"VariableDeclaration","scope":40334,"src":"4647:21:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40273,"name":"uint256","nodeType":"ElementaryTypeName","src":"4647:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40276,"mutability":"mutable","name":"endReservesRy","nameLocation":"4678:13:46","nodeType":"VariableDeclaration","scope":40334,"src":"4670:21:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40275,"name":"uint256","nodeType":"ElementaryTypeName","src":"4670:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40278,"mutability":"mutable","name":"endReservesL","nameLocation":"4701:12:46","nodeType":"VariableDeclaration","scope":40334,"src":"4693:20:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40277,"name":"uint256","nodeType":"ElementaryTypeName","src":"4693:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40290,"initialValue":{"arguments":[{"id":40281,"name":"swapData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40235,"src":"4740:8:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":40283,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4751:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":40282,"name":"uint256","nodeType":"ElementaryTypeName","src":"4751:7:46","typeDescriptions":{}}},{"id":40285,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4760:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":40284,"name":"uint256","nodeType":"ElementaryTypeName","src":"4760:7:46","typeDescriptions":{}}},{"id":40287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4769:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":40286,"name":"uint256","nodeType":"ElementaryTypeName","src":"4769:7:46","typeDescriptions":{}}}],"id":40288,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4750:27:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}],"expression":{"id":40279,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4729:3:46","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40280,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4733:6:46","memberName":"decode","nodeType":"MemberAccess","src":"4729:10:46","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":40289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4729:49:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4646:132:46"},{"expression":{"arguments":[{"hexValue":"656e64526573657276657352783a20","id":40294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4802:17:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_05bf16485b6449eddbbfe8ef453db3e6fa41c324590aeacf9f1de968dea0f801","typeString":"literal_string \"endReservesRx: \""},"value":"endReservesRx: "},{"id":40295,"name":"endReservesRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40274,"src":"4821:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_05bf16485b6449eddbbfe8ef453db3e6fa41c324590aeacf9f1de968dea0f801","typeString":"literal_string \"endReservesRx: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40291,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"4789:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4798:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"4789:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4789:46:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40297,"nodeType":"ExpressionStatement","src":"4789:46:46"},{"expression":{"arguments":[{"id":40299,"name":"endReservesRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40274,"src":"4854:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"302e3935","id":40300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4869:10:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_950000000000000000_by_1","typeString":"int_const 950000000000000000"},"value":"0.95"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_950000000000000000_by_1","typeString":"int_const 950000000000000000"}],"id":40298,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"4845:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4845:35:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40302,"nodeType":"ExpressionStatement","src":"4845:35:46"},{"expression":{"arguments":[{"hexValue":"656e64526573657276657352793a20","id":40306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4904:17:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6cbcd47514251251d0b715e53308ce4d1da69e4834a04a997c31032ec2042ea","typeString":"literal_string \"endReservesRy: \""},"value":"endReservesRy: "},{"id":40307,"name":"endReservesRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40276,"src":"4923:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6cbcd47514251251d0b715e53308ce4d1da69e4834a04a997c31032ec2042ea","typeString":"literal_string \"endReservesRy: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40303,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"4891:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4900:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"4891:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4891:46:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40309,"nodeType":"ExpressionStatement","src":"4891:46:46"},{"expression":{"arguments":[{"id":40311,"name":"endReservesRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40276,"src":"4956:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"312e31","id":40312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4971:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1100000000000000000_by_1","typeString":"int_const 1100000000000000000"},"value":"1.1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1100000000000000000_by_1","typeString":"int_const 1100000000000000000"}],"id":40310,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"4947:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4947:34:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40314,"nodeType":"ExpressionStatement","src":"4947:34:46"},{"expression":{"arguments":[{"hexValue":"656e6452657365727665734c3a20","id":40318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5005:16:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_c18afa812c74703958ad06908f53d2933fae9545c2c275121a944b86acb2f207","typeString":"literal_string \"endReservesL: \""},"value":"endReservesL: "},{"id":40319,"name":"endReservesL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40278,"src":"5023:12:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c18afa812c74703958ad06908f53d2933fae9545c2c275121a944b86acb2f207","typeString":"literal_string \"endReservesL: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40315,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"4992:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5001:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"4992:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4992:44:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40321,"nodeType":"ExpressionStatement","src":"4992:44:46"},{"expression":{"arguments":[{"id":40323,"name":"endReservesL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40278,"src":"5055:12:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"312e35","id":40324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5069:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1500000000000000000_by_1","typeString":"int_const 1500000000000000000"},"value":"1.5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1500000000000000000_by_1","typeString":"int_const 1500000000000000000"}],"id":40322,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"5046:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5046:33:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40326,"nodeType":"ExpressionStatement","src":"5046:33:46"},{"expression":{"arguments":[{"id":40330,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40223,"src":"5100:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":40331,"name":"swapData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40235,"src":"5108:8:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":40327,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"5090:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":40329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5095:4:46","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":28371,"src":"5090:9:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256,uint256)"}},"id":40332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5090:27:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":40333,"nodeType":"ExpressionStatement","src":"5090:27:46"}]},"functionSelector":"b736a485","implemented":true,"kind":"function","modifiers":[{"id":40212,"kind":"modifierInvocation","modifierName":{"id":40211,"name":"basic_feeless","nameLocations":["4192:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":39934,"src":"4192:13:46"},"nodeType":"ModifierInvocation","src":"4192:13:46"}],"name":"test_constant_sum_swap_y_in_no_fee","nameLocation":"4148:34:46","parameters":{"id":40210,"nodeType":"ParameterList","parameters":[],"src":"4182:2:46"},"returnParameters":{"id":40213,"nodeType":"ParameterList","parameters":[],"src":"4206:0:46"},"scope":40979,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":40373,"nodeType":"FunctionDefinition","src":"5130:305:46","nodes":[],"body":{"id":40372,"nodeType":"Block","src":"5198:237:46","nodes":[],"statements":[{"assignments":[40341],"declarations":[{"constant":false,"id":40341,"mutability":"mutable","name":"xIn","nameLocation":"5213:3:46","nodeType":"VariableDeclaration","scope":40372,"src":"5208:8:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40340,"name":"bool","nodeType":"ElementaryTypeName","src":"5208:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":40343,"initialValue":{"hexValue":"74727565","id":40342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5219:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"5208:15:46"},{"assignments":[40345],"declarations":[{"constant":false,"id":40345,"mutability":"mutable","name":"amountIn","nameLocation":"5241:8:46","nodeType":"VariableDeclaration","scope":40372,"src":"5233:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40344,"name":"uint256","nodeType":"ElementaryTypeName","src":"5233:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40347,"initialValue":{"hexValue":"312e31","id":40346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5252:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1100000000000000000_by_1","typeString":"int_const 1100000000000000000"},"value":"1.1"},"nodeType":"VariableDeclarationStatement","src":"5233:28:46"},{"assignments":[40349],"declarations":[{"constant":false,"id":40349,"mutability":"mutable","name":"poolId","nameLocation":"5279:6:46","nodeType":"VariableDeclaration","scope":40372,"src":"5271:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40348,"name":"uint256","nodeType":"ElementaryTypeName","src":"5271:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40355,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40350,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"5288:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":40351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5293:5:46","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"5288:10:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":40352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5288:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":40353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5303:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5288:16:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5271:33:46"},{"expression":{"arguments":[{"expression":{"expression":{"id":40359,"name":"ConstantSumSolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31599,"src":"5330:17:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ConstantSumSolver_$31599_$","typeString":"type(contract ConstantSumSolver)"}},"id":40360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5348:18:46","memberName":"NotEnoughLiquidity","nodeType":"MemberAccess","referencedDeclaration":31127,"src":"5330:36:46","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":40361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5367:8:46","memberName":"selector","nodeType":"MemberAccess","src":"5330:45:46","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":40356,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"5314:2:46","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":40358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5317:12:46","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":9121,"src":"5314:15:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes4_$returns$__$","typeString":"function (bytes4) external"}},"id":40362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5314:62:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40363,"nodeType":"ExpressionStatement","src":"5314:62:46"},{"expression":{"arguments":[{"id":40367,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40349,"src":"5406:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":40368,"name":"xIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40341,"src":"5414:3:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":40369,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40345,"src":"5419:8:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40364,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39726,"src":"5386:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSumSolver_$31599","typeString":"contract ConstantSumSolver"}},"id":40366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5393:12:46","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":31429,"src":"5386:19:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,bytes memory)"}},"id":40370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5386:42:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,bytes memory)"}},"id":40371,"nodeType":"ExpressionStatement","src":"5386:42:46"}]},"functionSelector":"b86532b3","implemented":true,"kind":"function","modifiers":[{"id":40338,"kind":"modifierInvocation","modifierName":{"id":40337,"name":"basic_feeless","nameLocations":["5184:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":39934,"src":"5184:13:46"},"nodeType":"ModifierInvocation","src":"5184:13:46"}],"name":"test_constant_sum_swap_x_in_invalid","nameLocation":"5139:35:46","parameters":{"id":40336,"nodeType":"ParameterList","parameters":[],"src":"5174:2:46"},"returnParameters":{"id":40339,"nodeType":"ParameterList","parameters":[],"src":"5198:0:46"},"scope":40979,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":40411,"nodeType":"FunctionDefinition","src":"5441:306:46","nodes":[],"body":{"id":40410,"nodeType":"Block","src":"5509:238:46","nodes":[],"statements":[{"assignments":[40379],"declarations":[{"constant":false,"id":40379,"mutability":"mutable","name":"xIn","nameLocation":"5524:3:46","nodeType":"VariableDeclaration","scope":40410,"src":"5519:8:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40378,"name":"bool","nodeType":"ElementaryTypeName","src":"5519:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":40381,"initialValue":{"hexValue":"66616c7365","id":40380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5530:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"5519:16:46"},{"assignments":[40383],"declarations":[{"constant":false,"id":40383,"mutability":"mutable","name":"amountIn","nameLocation":"5553:8:46","nodeType":"VariableDeclaration","scope":40410,"src":"5545:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40382,"name":"uint256","nodeType":"ElementaryTypeName","src":"5545:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40385,"initialValue":{"hexValue":"322e31","id":40384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5564:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_2100000000000000000_by_1","typeString":"int_const 2100000000000000000"},"value":"2.1"},"nodeType":"VariableDeclarationStatement","src":"5545:28:46"},{"assignments":[40387],"declarations":[{"constant":false,"id":40387,"mutability":"mutable","name":"poolId","nameLocation":"5591:6:46","nodeType":"VariableDeclaration","scope":40410,"src":"5583:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40386,"name":"uint256","nodeType":"ElementaryTypeName","src":"5583:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40393,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40388,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"5600:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":40389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5605:5:46","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"5600:10:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":40390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5600:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":40391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5615:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5600:16:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5583:33:46"},{"expression":{"arguments":[{"expression":{"expression":{"id":40397,"name":"ConstantSumSolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31599,"src":"5642:17:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ConstantSumSolver_$31599_$","typeString":"type(contract ConstantSumSolver)"}},"id":40398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5660:18:46","memberName":"NotEnoughLiquidity","nodeType":"MemberAccess","referencedDeclaration":31127,"src":"5642:36:46","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":40399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5679:8:46","memberName":"selector","nodeType":"MemberAccess","src":"5642:45:46","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":40394,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"5626:2:46","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":40396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5629:12:46","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":9121,"src":"5626:15:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes4_$returns$__$","typeString":"function (bytes4) external"}},"id":40400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5626:62:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40401,"nodeType":"ExpressionStatement","src":"5626:62:46"},{"expression":{"arguments":[{"id":40405,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40387,"src":"5718:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":40406,"name":"xIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40379,"src":"5726:3:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":40407,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40383,"src":"5731:8:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40402,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39726,"src":"5698:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSumSolver_$31599","typeString":"contract ConstantSumSolver"}},"id":40404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5705:12:46","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":31429,"src":"5698:19:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,bytes memory)"}},"id":40408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5698:42:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,bytes memory)"}},"id":40409,"nodeType":"ExpressionStatement","src":"5698:42:46"}]},"functionSelector":"af08ec53","implemented":true,"kind":"function","modifiers":[{"id":40376,"kind":"modifierInvocation","modifierName":{"id":40375,"name":"basic_feeless","nameLocations":["5495:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":39934,"src":"5495:13:46"},"nodeType":"ModifierInvocation","src":"5495:13:46"}],"name":"test_constant_sum_swap_y_in_invalid","nameLocation":"5450:35:46","parameters":{"id":40374,"nodeType":"ParameterList","parameters":[],"src":"5485:2:46"},"returnParameters":{"id":40377,"nodeType":"ParameterList","parameters":[],"src":"5509:0:46"},"scope":40979,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":40537,"nodeType":"FunctionDefinition","src":"5753:985:46","nodes":[],"body":{"id":40536,"nodeType":"Block","src":"5814:924:46","nodes":[],"statements":[{"assignments":[40417],"declarations":[{"constant":false,"id":40417,"mutability":"mutable","name":"xIn","nameLocation":"5829:3:46","nodeType":"VariableDeclaration","scope":40536,"src":"5824:8:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40416,"name":"bool","nodeType":"ElementaryTypeName","src":"5824:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":40419,"initialValue":{"hexValue":"74727565","id":40418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5835:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"5824:15:46"},{"assignments":[40421],"declarations":[{"constant":false,"id":40421,"mutability":"mutable","name":"amountIn","nameLocation":"5857:8:46","nodeType":"VariableDeclaration","scope":40536,"src":"5849:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40420,"name":"uint256","nodeType":"ElementaryTypeName","src":"5849:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40423,"initialValue":{"hexValue":"302e31","id":40422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5868:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"5849:28:46"},{"assignments":[40425],"declarations":[{"constant":false,"id":40425,"mutability":"mutable","name":"poolId","nameLocation":"5895:6:46","nodeType":"VariableDeclaration","scope":40536,"src":"5887:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40424,"name":"uint256","nodeType":"ElementaryTypeName","src":"5887:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40431,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40426,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"5904:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":40427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5909:5:46","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"5904:10:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":40428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5904:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":40429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5919:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5904:16:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5887:33:46"},{"assignments":[40433,40435,40437],"declarations":[{"constant":false,"id":40433,"mutability":"mutable","name":"valid","nameLocation":"5936:5:46","nodeType":"VariableDeclaration","scope":40536,"src":"5931:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40432,"name":"bool","nodeType":"ElementaryTypeName","src":"5931:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40435,"mutability":"mutable","name":"amountOut","nameLocation":"5951:9:46","nodeType":"VariableDeclaration","scope":40536,"src":"5943:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40434,"name":"uint256","nodeType":"ElementaryTypeName","src":"5943:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40437,"mutability":"mutable","name":"swapData","nameLocation":"5975:8:46","nodeType":"VariableDeclaration","scope":40536,"src":"5962:21:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40436,"name":"bytes","nodeType":"ElementaryTypeName","src":"5962:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":40444,"initialValue":{"arguments":[{"id":40440,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40425,"src":"6019:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":40441,"name":"xIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40417,"src":"6027:3:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":40442,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40421,"src":"6032:8:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40438,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39726,"src":"5999:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSumSolver_$31599","typeString":"contract ConstantSumSolver"}},"id":40439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6006:12:46","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":31429,"src":"5999:19:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,bytes memory)"}},"id":40443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5999:42:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5930:111:46"},{"expression":{"arguments":[{"hexValue":"56616c69643a20","id":40448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6064:9:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_68038e4f70bbfe5239b572d0473dc7e4d1e647de6745ccd1b6261658dd3a95d2","typeString":"literal_string \"Valid: \""},"value":"Valid: "},{"id":40449,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40433,"src":"6075:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_68038e4f70bbfe5239b572d0473dc7e4d1e647de6745ccd1b6261658dd3a95d2","typeString":"literal_string \"Valid: \""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":40445,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"6051:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6060:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18190,"src":"6051:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bool_$returns$__$","typeString":"function (string memory,bool) view"}},"id":40450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6051:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40451,"nodeType":"ExpressionStatement","src":"6051:30:46"},{"expression":{"arguments":[{"hexValue":"416d6f756e744f75743a20","id":40455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6104:13:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_3afeac6eb0c574e4a10da748c9771475563436f3441dd159cc2c238325a49d38","typeString":"literal_string \"AmountOut: \""},"value":"AmountOut: "},{"id":40456,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40435,"src":"6119:9:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3afeac6eb0c574e4a10da748c9771475563436f3441dd159cc2c238325a49d38","typeString":"literal_string \"AmountOut: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40452,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"6091:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6100:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"6091:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6091:38:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40458,"nodeType":"ExpressionStatement","src":"6091:38:46"},{"expression":{"arguments":[{"id":40460,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40433,"src":"6146:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":40459,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"6139:6:46","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":40461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6139:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40462,"nodeType":"ExpressionStatement","src":"6139:13:46"},{"expression":{"arguments":[{"hexValue":"416d6f756e744f75743a20","id":40466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6176:13:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_3afeac6eb0c574e4a10da748c9771475563436f3441dd159cc2c238325a49d38","typeString":"literal_string \"AmountOut: \""},"value":"AmountOut: "},{"id":40467,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40435,"src":"6191:9:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3afeac6eb0c574e4a10da748c9771475563436f3441dd159cc2c238325a49d38","typeString":"literal_string \"AmountOut: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40463,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"6163:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6172:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"6163:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6163:38:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40469,"nodeType":"ExpressionStatement","src":"6163:38:46"},{"expression":{"arguments":[{"id":40471,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40435,"src":"6220:9:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"302e31393934","id":40472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6231:12:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_199400000000000000_by_1","typeString":"int_const 199400000000000000"},"value":"0.1994"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_199400000000000000_by_1","typeString":"int_const 199400000000000000"}],"id":40470,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"6211:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6211:33:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40474,"nodeType":"ExpressionStatement","src":"6211:33:46"},{"assignments":[40476,40478,40480],"declarations":[{"constant":false,"id":40476,"mutability":"mutable","name":"endReservesRx","nameLocation":"6264:13:46","nodeType":"VariableDeclaration","scope":40536,"src":"6256:21:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40475,"name":"uint256","nodeType":"ElementaryTypeName","src":"6256:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40478,"mutability":"mutable","name":"endReservesRy","nameLocation":"6287:13:46","nodeType":"VariableDeclaration","scope":40536,"src":"6279:21:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40477,"name":"uint256","nodeType":"ElementaryTypeName","src":"6279:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40480,"mutability":"mutable","name":"endReservesL","nameLocation":"6310:12:46","nodeType":"VariableDeclaration","scope":40536,"src":"6302:20:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40479,"name":"uint256","nodeType":"ElementaryTypeName","src":"6302:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40492,"initialValue":{"arguments":[{"id":40483,"name":"swapData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40437,"src":"6349:8:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":40485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6360:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":40484,"name":"uint256","nodeType":"ElementaryTypeName","src":"6360:7:46","typeDescriptions":{}}},{"id":40487,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6369:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":40486,"name":"uint256","nodeType":"ElementaryTypeName","src":"6369:7:46","typeDescriptions":{}}},{"id":40489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6378:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":40488,"name":"uint256","nodeType":"ElementaryTypeName","src":"6378:7:46","typeDescriptions":{}}}],"id":40490,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6359:27:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}],"expression":{"id":40481,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6338:3:46","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6342:6:46","memberName":"decode","nodeType":"MemberAccess","src":"6338:10:46","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":40491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6338:49:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"6255:132:46"},{"expression":{"arguments":[{"hexValue":"656e64526573657276657352783a20","id":40496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6411:17:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_05bf16485b6449eddbbfe8ef453db3e6fa41c324590aeacf9f1de968dea0f801","typeString":"literal_string \"endReservesRx: \""},"value":"endReservesRx: "},{"id":40497,"name":"endReservesRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40476,"src":"6430:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_05bf16485b6449eddbbfe8ef453db3e6fa41c324590aeacf9f1de968dea0f801","typeString":"literal_string \"endReservesRx: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40493,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"6398:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6407:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"6398:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6398:46:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40499,"nodeType":"ExpressionStatement","src":"6398:46:46"},{"expression":{"arguments":[{"id":40501,"name":"endReservesRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40476,"src":"6463:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"312e31","id":40502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6478:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1100000000000000000_by_1","typeString":"int_const 1100000000000000000"},"value":"1.1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1100000000000000000_by_1","typeString":"int_const 1100000000000000000"}],"id":40500,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"6454:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6454:34:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40504,"nodeType":"ExpressionStatement","src":"6454:34:46"},{"expression":{"arguments":[{"hexValue":"656e64526573657276657352793a20","id":40508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6512:17:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6cbcd47514251251d0b715e53308ce4d1da69e4834a04a997c31032ec2042ea","typeString":"literal_string \"endReservesRy: \""},"value":"endReservesRy: "},{"id":40509,"name":"endReservesRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40478,"src":"6531:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6cbcd47514251251d0b715e53308ce4d1da69e4834a04a997c31032ec2042ea","typeString":"literal_string \"endReservesRy: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40505,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"6499:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6508:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"6499:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6499:46:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40511,"nodeType":"ExpressionStatement","src":"6499:46:46"},{"expression":{"arguments":[{"id":40513,"name":"endReservesRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40478,"src":"6564:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"302e38303036","id":40514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6579:12:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_800600000000000000_by_1","typeString":"int_const 800600000000000000"},"value":"0.8006"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_800600000000000000_by_1","typeString":"int_const 800600000000000000"}],"id":40512,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"6555:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6555:37:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40516,"nodeType":"ExpressionStatement","src":"6555:37:46"},{"expression":{"arguments":[{"hexValue":"656e6452657365727665734c3a20","id":40520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6616:16:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_c18afa812c74703958ad06908f53d2933fae9545c2c275121a944b86acb2f207","typeString":"literal_string \"endReservesL: \""},"value":"endReservesL: "},{"id":40521,"name":"endReservesL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40480,"src":"6634:12:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c18afa812c74703958ad06908f53d2933fae9545c2c275121a944b86acb2f207","typeString":"literal_string \"endReservesL: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40517,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"6603:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6612:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"6603:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6603:44:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40523,"nodeType":"ExpressionStatement","src":"6603:44:46"},{"expression":{"arguments":[{"id":40525,"name":"endReservesL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40480,"src":"6666:12:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"312e35303033","id":40526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6680:12:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1500300000000000000_by_1","typeString":"int_const 1500300000000000000"},"value":"1.5003"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1500300000000000000_by_1","typeString":"int_const 1500300000000000000"}],"id":40524,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"6657:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6657:36:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40528,"nodeType":"ExpressionStatement","src":"6657:36:46"},{"expression":{"arguments":[{"id":40532,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40425,"src":"6714:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":40533,"name":"swapData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40437,"src":"6722:8:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":40529,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"6704:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":40531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6709:4:46","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":28371,"src":"6704:9:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256,uint256)"}},"id":40534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6704:27:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":40535,"nodeType":"ExpressionStatement","src":"6704:27:46"}]},"functionSelector":"368a67f3","implemented":true,"kind":"function","modifiers":[{"id":40414,"kind":"modifierInvocation","modifierName":{"id":40413,"name":"basic","nameLocations":["5808:5:46"],"nodeType":"IdentifierPath","referencedDeclaration":40004,"src":"5808:5:46"},"nodeType":"ModifierInvocation","src":"5808:5:46"}],"name":"test_constant_sum_swap_x_in_with_fee","nameLocation":"5762:36:46","parameters":{"id":40412,"nodeType":"ParameterList","parameters":[],"src":"5798:2:46"},"returnParameters":{"id":40415,"nodeType":"ParameterList","parameters":[],"src":"5814:0:46"},"scope":40979,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":40663,"nodeType":"FunctionDefinition","src":"6744:989:46","nodes":[],"body":{"id":40662,"nodeType":"Block","src":"6805:928:46","nodes":[],"statements":[{"assignments":[40543],"declarations":[{"constant":false,"id":40543,"mutability":"mutable","name":"xIn","nameLocation":"6820:3:46","nodeType":"VariableDeclaration","scope":40662,"src":"6815:8:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40542,"name":"bool","nodeType":"ElementaryTypeName","src":"6815:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":40545,"initialValue":{"hexValue":"66616c7365","id":40544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6826:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"6815:16:46"},{"assignments":[40547],"declarations":[{"constant":false,"id":40547,"mutability":"mutable","name":"amountIn","nameLocation":"6849:8:46","nodeType":"VariableDeclaration","scope":40662,"src":"6841:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40546,"name":"uint256","nodeType":"ElementaryTypeName","src":"6841:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40549,"initialValue":{"hexValue":"302e31","id":40548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6860:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"6841:28:46"},{"assignments":[40551],"declarations":[{"constant":false,"id":40551,"mutability":"mutable","name":"poolId","nameLocation":"6887:6:46","nodeType":"VariableDeclaration","scope":40662,"src":"6879:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40550,"name":"uint256","nodeType":"ElementaryTypeName","src":"6879:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40557,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40552,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"6896:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":40553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6901:5:46","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"6896:10:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":40554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6896:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":40555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6911:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6896:16:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6879:33:46"},{"assignments":[40559,40561,40563],"declarations":[{"constant":false,"id":40559,"mutability":"mutable","name":"valid","nameLocation":"6928:5:46","nodeType":"VariableDeclaration","scope":40662,"src":"6923:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40558,"name":"bool","nodeType":"ElementaryTypeName","src":"6923:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40561,"mutability":"mutable","name":"amountOut","nameLocation":"6943:9:46","nodeType":"VariableDeclaration","scope":40662,"src":"6935:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40560,"name":"uint256","nodeType":"ElementaryTypeName","src":"6935:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40563,"mutability":"mutable","name":"swapData","nameLocation":"6967:8:46","nodeType":"VariableDeclaration","scope":40662,"src":"6954:21:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40562,"name":"bytes","nodeType":"ElementaryTypeName","src":"6954:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":40570,"initialValue":{"arguments":[{"id":40566,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40551,"src":"7011:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":40567,"name":"xIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40543,"src":"7019:3:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":40568,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40547,"src":"7024:8:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40564,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39726,"src":"6991:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSumSolver_$31599","typeString":"contract ConstantSumSolver"}},"id":40565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6998:12:46","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":31429,"src":"6991:19:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,bytes memory)"}},"id":40569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6991:42:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6922:111:46"},{"expression":{"arguments":[{"hexValue":"56616c69643a20","id":40574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7056:9:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_68038e4f70bbfe5239b572d0473dc7e4d1e647de6745ccd1b6261658dd3a95d2","typeString":"literal_string \"Valid: \""},"value":"Valid: "},{"id":40575,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40559,"src":"7067:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_68038e4f70bbfe5239b572d0473dc7e4d1e647de6745ccd1b6261658dd3a95d2","typeString":"literal_string \"Valid: \""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":40571,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"7043:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7052:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18190,"src":"7043:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bool_$returns$__$","typeString":"function (string memory,bool) view"}},"id":40576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7043:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40577,"nodeType":"ExpressionStatement","src":"7043:30:46"},{"expression":{"arguments":[{"hexValue":"416d6f756e744f75743a20","id":40581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7096:13:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_3afeac6eb0c574e4a10da748c9771475563436f3441dd159cc2c238325a49d38","typeString":"literal_string \"AmountOut: \""},"value":"AmountOut: "},{"id":40582,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40561,"src":"7111:9:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3afeac6eb0c574e4a10da748c9771475563436f3441dd159cc2c238325a49d38","typeString":"literal_string \"AmountOut: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40578,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"7083:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7092:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"7083:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7083:38:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40584,"nodeType":"ExpressionStatement","src":"7083:38:46"},{"expression":{"arguments":[{"id":40586,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40559,"src":"7138:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":40585,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"7131:6:46","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":40587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7131:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40588,"nodeType":"ExpressionStatement","src":"7131:13:46"},{"expression":{"arguments":[{"hexValue":"416d6f756e744f75743a20","id":40592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7168:13:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_3afeac6eb0c574e4a10da748c9771475563436f3441dd159cc2c238325a49d38","typeString":"literal_string \"AmountOut: \""},"value":"AmountOut: "},{"id":40593,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40561,"src":"7183:9:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3afeac6eb0c574e4a10da748c9771475563436f3441dd159cc2c238325a49d38","typeString":"literal_string \"AmountOut: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40589,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"7155:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7164:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"7155:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7155:38:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40595,"nodeType":"ExpressionStatement","src":"7155:38:46"},{"expression":{"arguments":[{"id":40597,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40561,"src":"7212:9:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"302e3034393835","id":40598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7223:13:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_49850000000000000_by_1","typeString":"int_const 49850000000000000"},"value":"0.04985"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_49850000000000000_by_1","typeString":"int_const 49850000000000000"}],"id":40596,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"7203:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7203:34:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40600,"nodeType":"ExpressionStatement","src":"7203:34:46"},{"assignments":[40602,40604,40606],"declarations":[{"constant":false,"id":40602,"mutability":"mutable","name":"endReservesRx","nameLocation":"7257:13:46","nodeType":"VariableDeclaration","scope":40662,"src":"7249:21:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40601,"name":"uint256","nodeType":"ElementaryTypeName","src":"7249:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40604,"mutability":"mutable","name":"endReservesRy","nameLocation":"7280:13:46","nodeType":"VariableDeclaration","scope":40662,"src":"7272:21:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40603,"name":"uint256","nodeType":"ElementaryTypeName","src":"7272:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40606,"mutability":"mutable","name":"endReservesL","nameLocation":"7303:12:46","nodeType":"VariableDeclaration","scope":40662,"src":"7295:20:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40605,"name":"uint256","nodeType":"ElementaryTypeName","src":"7295:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40618,"initialValue":{"arguments":[{"id":40609,"name":"swapData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40563,"src":"7342:8:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":40611,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7353:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":40610,"name":"uint256","nodeType":"ElementaryTypeName","src":"7353:7:46","typeDescriptions":{}}},{"id":40613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7362:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":40612,"name":"uint256","nodeType":"ElementaryTypeName","src":"7362:7:46","typeDescriptions":{}}},{"id":40615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7371:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":40614,"name":"uint256","nodeType":"ElementaryTypeName","src":"7371:7:46","typeDescriptions":{}}}],"id":40616,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"7352:27:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}],"expression":{"id":40607,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7331:3:46","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7335:6:46","memberName":"decode","nodeType":"MemberAccess","src":"7331:10:46","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":40617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7331:49:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"7248:132:46"},{"expression":{"arguments":[{"hexValue":"656e64526573657276657352783a20","id":40622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7404:17:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_05bf16485b6449eddbbfe8ef453db3e6fa41c324590aeacf9f1de968dea0f801","typeString":"literal_string \"endReservesRx: \""},"value":"endReservesRx: "},{"id":40623,"name":"endReservesRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40602,"src":"7423:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_05bf16485b6449eddbbfe8ef453db3e6fa41c324590aeacf9f1de968dea0f801","typeString":"literal_string \"endReservesRx: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40619,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"7391:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7400:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"7391:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7391:46:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40625,"nodeType":"ExpressionStatement","src":"7391:46:46"},{"expression":{"arguments":[{"id":40627,"name":"endReservesRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40602,"src":"7456:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"302e3935303135","id":40628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7471:13:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_950150000000000000_by_1","typeString":"int_const 950150000000000000"},"value":"0.95015"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_950150000000000000_by_1","typeString":"int_const 950150000000000000"}],"id":40626,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"7447:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7447:38:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40630,"nodeType":"ExpressionStatement","src":"7447:38:46"},{"expression":{"arguments":[{"hexValue":"656e64526573657276657352793a20","id":40634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7509:17:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6cbcd47514251251d0b715e53308ce4d1da69e4834a04a997c31032ec2042ea","typeString":"literal_string \"endReservesRy: \""},"value":"endReservesRy: "},{"id":40635,"name":"endReservesRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40604,"src":"7528:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6cbcd47514251251d0b715e53308ce4d1da69e4834a04a997c31032ec2042ea","typeString":"literal_string \"endReservesRy: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40631,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"7496:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7505:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"7496:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7496:46:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40637,"nodeType":"ExpressionStatement","src":"7496:46:46"},{"expression":{"arguments":[{"id":40639,"name":"endReservesRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40604,"src":"7561:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"312e31","id":40640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7576:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1100000000000000000_by_1","typeString":"int_const 1100000000000000000"},"value":"1.1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1100000000000000000_by_1","typeString":"int_const 1100000000000000000"}],"id":40638,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"7552:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7552:34:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40642,"nodeType":"ExpressionStatement","src":"7552:34:46"},{"expression":{"arguments":[{"hexValue":"656e6452657365727665734c3a20","id":40646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7610:16:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_c18afa812c74703958ad06908f53d2933fae9545c2c275121a944b86acb2f207","typeString":"literal_string \"endReservesL: \""},"value":"endReservesL: "},{"id":40647,"name":"endReservesL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40606,"src":"7628:12:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c18afa812c74703958ad06908f53d2933fae9545c2c275121a944b86acb2f207","typeString":"literal_string \"endReservesL: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40643,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"7597:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7606:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"7597:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7597:44:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40649,"nodeType":"ExpressionStatement","src":"7597:44:46"},{"expression":{"arguments":[{"id":40651,"name":"endReservesL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40606,"src":"7660:12:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"312e3530303135","id":40652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7674:13:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1500150000000000000_by_1","typeString":"int_const 1500150000000000000"},"value":"1.50015"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1500150000000000000_by_1","typeString":"int_const 1500150000000000000"}],"id":40650,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"7651:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7651:37:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40654,"nodeType":"ExpressionStatement","src":"7651:37:46"},{"expression":{"arguments":[{"id":40658,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40551,"src":"7709:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":40659,"name":"swapData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40563,"src":"7717:8:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":40655,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"7699:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":40657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7704:4:46","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":28371,"src":"7699:9:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256,uint256)"}},"id":40660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7699:27:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":40661,"nodeType":"ExpressionStatement","src":"7699:27:46"}]},"functionSelector":"f5df5a2c","implemented":true,"kind":"function","modifiers":[{"id":40540,"kind":"modifierInvocation","modifierName":{"id":40539,"name":"basic","nameLocations":["6799:5:46"],"nodeType":"IdentifierPath","referencedDeclaration":40004,"src":"6799:5:46"},"nodeType":"ModifierInvocation","src":"6799:5:46"}],"name":"test_constant_sum_swap_y_in_with_fee","nameLocation":"6753:36:46","parameters":{"id":40538,"nodeType":"ParameterList","parameters":[],"src":"6789:2:46"},"returnParameters":{"id":40541,"nodeType":"ParameterList","parameters":[],"src":"6805:0:46"},"scope":40979,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":40769,"nodeType":"FunctionDefinition","src":"7739:851:46","nodes":[],"body":{"id":40768,"nodeType":"Block","src":"7790:800:46","nodes":[],"statements":[{"assignments":[40669],"declarations":[{"constant":false,"id":40669,"mutability":"mutable","name":"poolId","nameLocation":"7808:6:46","nodeType":"VariableDeclaration","scope":40768,"src":"7800:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40668,"name":"uint256","nodeType":"ElementaryTypeName","src":"7800:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40675,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40670,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"7817:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":40671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7822:5:46","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"7817:10:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":40672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7817:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":40673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7832:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7817:16:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7800:33:46"},{"assignments":[40677],"declarations":[{"constant":false,"id":40677,"mutability":"mutable","name":"amountX","nameLocation":"7851:7:46","nodeType":"VariableDeclaration","scope":40768,"src":"7843:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40676,"name":"uint256","nodeType":"ElementaryTypeName","src":"7843:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40679,"initialValue":{"hexValue":"302e31","id":40678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7861:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"7843:27:46"},{"assignments":[40681],"declarations":[{"constant":false,"id":40681,"mutability":"mutable","name":"amountY","nameLocation":"7888:7:46","nodeType":"VariableDeclaration","scope":40768,"src":"7880:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40680,"name":"uint256","nodeType":"ElementaryTypeName","src":"7880:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40683,"initialValue":{"hexValue":"302e31","id":40682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7898:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"7880:27:46"},{"assignments":[40685,40687],"declarations":[{"constant":false,"id":40685,"mutability":"mutable","name":"valid","nameLocation":"7923:5:46","nodeType":"VariableDeclaration","scope":40768,"src":"7918:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40684,"name":"bool","nodeType":"ElementaryTypeName","src":"7918:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40687,"mutability":"mutable","name":"swapData","nameLocation":"7943:8:46","nodeType":"VariableDeclaration","scope":40768,"src":"7930:21:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40686,"name":"bytes","nodeType":"ElementaryTypeName","src":"7930:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":40695,"initialValue":{"arguments":[{"id":40690,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40669,"src":"8003:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":40691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8011:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":40692,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40677,"src":"8017:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":40693,"name":"amountY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40681,"src":"8026:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40688,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39726,"src":"7967:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSumSolver_$31599","typeString":"contract ConstantSumSolver"}},"id":40689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7974:28:46","memberName":"simulateAllocateOrDeallocate","nodeType":"MemberAccess","referencedDeclaration":31598,"src":"7967:35:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256,uint256) view external returns (bool,bytes memory)"}},"id":40694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7967:67:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7917:117:46"},{"expression":{"arguments":[{"hexValue":"56616c69643a20","id":40699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8057:9:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_68038e4f70bbfe5239b572d0473dc7e4d1e647de6745ccd1b6261658dd3a95d2","typeString":"literal_string \"Valid: \""},"value":"Valid: "},{"id":40700,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40685,"src":"8068:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_68038e4f70bbfe5239b572d0473dc7e4d1e647de6745ccd1b6261658dd3a95d2","typeString":"literal_string \"Valid: \""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":40696,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"8044:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8053:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18190,"src":"8044:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bool_$returns$__$","typeString":"function (string memory,bool) view"}},"id":40701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8044:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40702,"nodeType":"ExpressionStatement","src":"8044:30:46"},{"expression":{"arguments":[{"id":40704,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40685,"src":"8091:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":40703,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"8084:6:46","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":40705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8084:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40706,"nodeType":"ExpressionStatement","src":"8084:13:46"},{"assignments":[40708,40710,40712],"declarations":[{"constant":false,"id":40708,"mutability":"mutable","name":"endReservesRx","nameLocation":"8117:13:46","nodeType":"VariableDeclaration","scope":40768,"src":"8109:21:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40707,"name":"uint256","nodeType":"ElementaryTypeName","src":"8109:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40710,"mutability":"mutable","name":"endReservesRy","nameLocation":"8140:13:46","nodeType":"VariableDeclaration","scope":40768,"src":"8132:21:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40709,"name":"uint256","nodeType":"ElementaryTypeName","src":"8132:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40712,"mutability":"mutable","name":"endReservesL","nameLocation":"8163:12:46","nodeType":"VariableDeclaration","scope":40768,"src":"8155:20:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40711,"name":"uint256","nodeType":"ElementaryTypeName","src":"8155:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40724,"initialValue":{"arguments":[{"id":40715,"name":"swapData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40687,"src":"8202:8:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":40717,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8213:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":40716,"name":"uint256","nodeType":"ElementaryTypeName","src":"8213:7:46","typeDescriptions":{}}},{"id":40719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8222:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":40718,"name":"uint256","nodeType":"ElementaryTypeName","src":"8222:7:46","typeDescriptions":{}}},{"id":40721,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8231:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":40720,"name":"uint256","nodeType":"ElementaryTypeName","src":"8231:7:46","typeDescriptions":{}}}],"id":40722,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8212:27:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}],"expression":{"id":40713,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8191:3:46","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8195:6:46","memberName":"decode","nodeType":"MemberAccess","src":"8191:10:46","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":40723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8191:49:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"8108:132:46"},{"expression":{"arguments":[{"hexValue":"656e64526573657276657352783a20","id":40728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8264:17:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_05bf16485b6449eddbbfe8ef453db3e6fa41c324590aeacf9f1de968dea0f801","typeString":"literal_string \"endReservesRx: \""},"value":"endReservesRx: "},{"id":40729,"name":"endReservesRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40708,"src":"8283:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_05bf16485b6449eddbbfe8ef453db3e6fa41c324590aeacf9f1de968dea0f801","typeString":"literal_string \"endReservesRx: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40725,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"8251:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8260:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"8251:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8251:46:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40731,"nodeType":"ExpressionStatement","src":"8251:46:46"},{"expression":{"arguments":[{"id":40733,"name":"endReservesRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40708,"src":"8316:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"312e31","id":40734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8331:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1100000000000000000_by_1","typeString":"int_const 1100000000000000000"},"value":"1.1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1100000000000000000_by_1","typeString":"int_const 1100000000000000000"}],"id":40732,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"8307:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8307:34:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40736,"nodeType":"ExpressionStatement","src":"8307:34:46"},{"expression":{"arguments":[{"hexValue":"656e64526573657276657352793a20","id":40740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8365:17:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6cbcd47514251251d0b715e53308ce4d1da69e4834a04a997c31032ec2042ea","typeString":"literal_string \"endReservesRy: \""},"value":"endReservesRy: "},{"id":40741,"name":"endReservesRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40710,"src":"8384:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6cbcd47514251251d0b715e53308ce4d1da69e4834a04a997c31032ec2042ea","typeString":"literal_string \"endReservesRy: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40737,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"8352:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8361:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"8352:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8352:46:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40743,"nodeType":"ExpressionStatement","src":"8352:46:46"},{"expression":{"arguments":[{"id":40745,"name":"endReservesRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40710,"src":"8417:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"312e31","id":40746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8432:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1100000000000000000_by_1","typeString":"int_const 1100000000000000000"},"value":"1.1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1100000000000000000_by_1","typeString":"int_const 1100000000000000000"}],"id":40744,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"8408:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8408:34:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40748,"nodeType":"ExpressionStatement","src":"8408:34:46"},{"expression":{"arguments":[{"hexValue":"656e6452657365727665734c3a20","id":40752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8466:16:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_c18afa812c74703958ad06908f53d2933fae9545c2c275121a944b86acb2f207","typeString":"literal_string \"endReservesL: \""},"value":"endReservesL: "},{"id":40753,"name":"endReservesL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40712,"src":"8484:12:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c18afa812c74703958ad06908f53d2933fae9545c2c275121a944b86acb2f207","typeString":"literal_string \"endReservesL: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40749,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"8453:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8462:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"8453:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8453:44:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40755,"nodeType":"ExpressionStatement","src":"8453:44:46"},{"expression":{"arguments":[{"id":40757,"name":"endReservesL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40712,"src":"8516:12:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"312e3635","id":40758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8530:10:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1650000000000000000_by_1","typeString":"int_const 1650000000000000000"},"value":"1.65"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1650000000000000000_by_1","typeString":"int_const 1650000000000000000"}],"id":40756,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"8507:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8507:34:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40760,"nodeType":"ExpressionStatement","src":"8507:34:46"},{"expression":{"arguments":[{"id":40764,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40669,"src":"8566:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":40765,"name":"swapData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40687,"src":"8574:8:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":40761,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"8552:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":40763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8557:8:46","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":28225,"src":"8552:13:46","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) payable external returns (uint256,uint256,uint256)"}},"id":40766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8552:31:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"id":40767,"nodeType":"ExpressionStatement","src":"8552:31:46"}]},"functionSelector":"dbd6f94d","implemented":true,"kind":"function","modifiers":[{"id":40666,"kind":"modifierInvocation","modifierName":{"id":40665,"name":"basic","nameLocations":["7784:5:46"],"nodeType":"IdentifierPath","referencedDeclaration":40004,"src":"7784:5:46"},"nodeType":"ModifierInvocation","src":"7784:5:46"}],"name":"test_constant_sum_allocate","nameLocation":"7748:26:46","parameters":{"id":40664,"nodeType":"ParameterList","parameters":[],"src":"7774:2:46"},"returnParameters":{"id":40667,"nodeType":"ParameterList","parameters":[],"src":"7790:0:46"},"scope":40979,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":40875,"nodeType":"FunctionDefinition","src":"8596:856:46","nodes":[],"body":{"id":40874,"nodeType":"Block","src":"8649:803:46","nodes":[],"statements":[{"assignments":[40775],"declarations":[{"constant":false,"id":40775,"mutability":"mutable","name":"poolId","nameLocation":"8667:6:46","nodeType":"VariableDeclaration","scope":40874,"src":"8659:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40774,"name":"uint256","nodeType":"ElementaryTypeName","src":"8659:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40781,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40776,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"8676:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":40777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8681:5:46","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"8676:10:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":40778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8676:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":40779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8691:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8676:16:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8659:33:46"},{"assignments":[40783],"declarations":[{"constant":false,"id":40783,"mutability":"mutable","name":"amountX","nameLocation":"8710:7:46","nodeType":"VariableDeclaration","scope":40874,"src":"8702:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40782,"name":"uint256","nodeType":"ElementaryTypeName","src":"8702:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40785,"initialValue":{"hexValue":"302e31","id":40784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8720:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"8702:27:46"},{"assignments":[40787],"declarations":[{"constant":false,"id":40787,"mutability":"mutable","name":"amountY","nameLocation":"8747:7:46","nodeType":"VariableDeclaration","scope":40874,"src":"8739:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40786,"name":"uint256","nodeType":"ElementaryTypeName","src":"8739:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40789,"initialValue":{"hexValue":"302e31","id":40788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8757:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"8739:27:46"},{"assignments":[40791,40793],"declarations":[{"constant":false,"id":40791,"mutability":"mutable","name":"valid","nameLocation":"8782:5:46","nodeType":"VariableDeclaration","scope":40874,"src":"8777:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40790,"name":"bool","nodeType":"ElementaryTypeName","src":"8777:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40793,"mutability":"mutable","name":"swapData","nameLocation":"8802:8:46","nodeType":"VariableDeclaration","scope":40874,"src":"8789:21:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40792,"name":"bytes","nodeType":"ElementaryTypeName","src":"8789:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":40801,"initialValue":{"arguments":[{"id":40796,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40775,"src":"8862:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":40797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8870:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":40798,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40783,"src":"8877:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":40799,"name":"amountY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40787,"src":"8886:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40794,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39726,"src":"8826:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSumSolver_$31599","typeString":"contract ConstantSumSolver"}},"id":40795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8833:28:46","memberName":"simulateAllocateOrDeallocate","nodeType":"MemberAccess","referencedDeclaration":31598,"src":"8826:35:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256,uint256) view external returns (bool,bytes memory)"}},"id":40800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8826:68:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"8776:118:46"},{"expression":{"arguments":[{"hexValue":"56616c69643a20","id":40805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8917:9:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_68038e4f70bbfe5239b572d0473dc7e4d1e647de6745ccd1b6261658dd3a95d2","typeString":"literal_string \"Valid: \""},"value":"Valid: "},{"id":40806,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40791,"src":"8928:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_68038e4f70bbfe5239b572d0473dc7e4d1e647de6745ccd1b6261658dd3a95d2","typeString":"literal_string \"Valid: \""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":40802,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"8904:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8913:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18190,"src":"8904:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bool_$returns$__$","typeString":"function (string memory,bool) view"}},"id":40807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8904:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40808,"nodeType":"ExpressionStatement","src":"8904:30:46"},{"expression":{"arguments":[{"id":40810,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40791,"src":"8951:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":40809,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"8944:6:46","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":40811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8944:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40812,"nodeType":"ExpressionStatement","src":"8944:13:46"},{"assignments":[40814,40816,40818],"declarations":[{"constant":false,"id":40814,"mutability":"mutable","name":"endReservesRx","nameLocation":"8977:13:46","nodeType":"VariableDeclaration","scope":40874,"src":"8969:21:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40813,"name":"uint256","nodeType":"ElementaryTypeName","src":"8969:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40816,"mutability":"mutable","name":"endReservesRy","nameLocation":"9000:13:46","nodeType":"VariableDeclaration","scope":40874,"src":"8992:21:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40815,"name":"uint256","nodeType":"ElementaryTypeName","src":"8992:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40818,"mutability":"mutable","name":"endReservesL","nameLocation":"9023:12:46","nodeType":"VariableDeclaration","scope":40874,"src":"9015:20:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40817,"name":"uint256","nodeType":"ElementaryTypeName","src":"9015:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40830,"initialValue":{"arguments":[{"id":40821,"name":"swapData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40793,"src":"9062:8:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":40823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9073:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":40822,"name":"uint256","nodeType":"ElementaryTypeName","src":"9073:7:46","typeDescriptions":{}}},{"id":40825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9082:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":40824,"name":"uint256","nodeType":"ElementaryTypeName","src":"9082:7:46","typeDescriptions":{}}},{"id":40827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9091:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":40826,"name":"uint256","nodeType":"ElementaryTypeName","src":"9091:7:46","typeDescriptions":{}}}],"id":40828,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"9072:27:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}],"expression":{"id":40819,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9051:3:46","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9055:6:46","memberName":"decode","nodeType":"MemberAccess","src":"9051:10:46","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":40829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9051:49:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"8968:132:46"},{"expression":{"arguments":[{"hexValue":"656e64526573657276657352783a20","id":40834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9124:17:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_05bf16485b6449eddbbfe8ef453db3e6fa41c324590aeacf9f1de968dea0f801","typeString":"literal_string \"endReservesRx: \""},"value":"endReservesRx: "},{"id":40835,"name":"endReservesRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40814,"src":"9143:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_05bf16485b6449eddbbfe8ef453db3e6fa41c324590aeacf9f1de968dea0f801","typeString":"literal_string \"endReservesRx: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40831,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"9111:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9120:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"9111:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9111:46:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40837,"nodeType":"ExpressionStatement","src":"9111:46:46"},{"expression":{"arguments":[{"id":40839,"name":"endReservesRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40814,"src":"9176:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"302e39","id":40840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9191:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_900000000000000000_by_1","typeString":"int_const 900000000000000000"},"value":"0.9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_900000000000000000_by_1","typeString":"int_const 900000000000000000"}],"id":40838,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"9167:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9167:34:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40842,"nodeType":"ExpressionStatement","src":"9167:34:46"},{"expression":{"arguments":[{"hexValue":"656e64526573657276657352793a20","id":40846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9225:17:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6cbcd47514251251d0b715e53308ce4d1da69e4834a04a997c31032ec2042ea","typeString":"literal_string \"endReservesRy: \""},"value":"endReservesRy: "},{"id":40847,"name":"endReservesRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40816,"src":"9244:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6cbcd47514251251d0b715e53308ce4d1da69e4834a04a997c31032ec2042ea","typeString":"literal_string \"endReservesRy: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40843,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"9212:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9221:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"9212:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9212:46:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40849,"nodeType":"ExpressionStatement","src":"9212:46:46"},{"expression":{"arguments":[{"id":40851,"name":"endReservesRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40816,"src":"9277:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"302e39","id":40852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9292:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_900000000000000000_by_1","typeString":"int_const 900000000000000000"},"value":"0.9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_900000000000000000_by_1","typeString":"int_const 900000000000000000"}],"id":40850,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"9268:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9268:34:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40854,"nodeType":"ExpressionStatement","src":"9268:34:46"},{"expression":{"arguments":[{"hexValue":"656e6452657365727665734c3a20","id":40858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9326:16:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_c18afa812c74703958ad06908f53d2933fae9545c2c275121a944b86acb2f207","typeString":"literal_string \"endReservesL: \""},"value":"endReservesL: "},{"id":40859,"name":"endReservesL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40818,"src":"9344:12:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c18afa812c74703958ad06908f53d2933fae9545c2c275121a944b86acb2f207","typeString":"literal_string \"endReservesL: \""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40855,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"9313:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":40857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9322:3:46","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18139,"src":"9313:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":40860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9313:44:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40861,"nodeType":"ExpressionStatement","src":"9313:44:46"},{"expression":{"arguments":[{"id":40863,"name":"endReservesL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40818,"src":"9376:12:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"312e3335","id":40864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9390:10:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1350000000000000000_by_1","typeString":"int_const 1350000000000000000"},"value":"1.35"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1350000000000000000_by_1","typeString":"int_const 1350000000000000000"}],"id":40862,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"9367:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9367:34:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40866,"nodeType":"ExpressionStatement","src":"9367:34:46"},{"expression":{"arguments":[{"id":40870,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40775,"src":"9428:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":40871,"name":"swapData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40793,"src":"9436:8:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":40867,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"9412:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":40869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9417:10:46","memberName":"deallocate","nodeType":"MemberAccess","referencedDeclaration":28288,"src":"9412:15:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256,uint256,uint256)"}},"id":40872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9412:33:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"id":40873,"nodeType":"ExpressionStatement","src":"9412:33:46"}]},"functionSelector":"2a001b87","implemented":true,"kind":"function","modifiers":[{"id":40772,"kind":"modifierInvocation","modifierName":{"id":40771,"name":"basic","nameLocations":["8643:5:46"],"nodeType":"IdentifierPath","referencedDeclaration":40004,"src":"8643:5:46"},"nodeType":"ModifierInvocation","src":"8643:5:46"}],"name":"test_constant_sum_deallocate","nameLocation":"8605:28:46","parameters":{"id":40770,"nodeType":"ParameterList","parameters":[],"src":"8633:2:46"},"returnParameters":{"id":40773,"nodeType":"ParameterList","parameters":[],"src":"8649:0:46"},"scope":40979,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":40914,"nodeType":"FunctionDefinition","src":"9458:332:46","nodes":[],"body":{"id":40913,"nodeType":"Block","src":"9516:274:46","nodes":[],"statements":[{"assignments":[40881],"declarations":[{"constant":false,"id":40881,"mutability":"mutable","name":"poolId","nameLocation":"9534:6:46","nodeType":"VariableDeclaration","scope":40913,"src":"9526:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40880,"name":"uint256","nodeType":"ElementaryTypeName","src":"9526:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40887,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40882,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"9543:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":40883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9548:5:46","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"9543:10:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":40884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9543:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":40885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9558:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9543:16:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9526:33:46"},{"assignments":[40889],"declarations":[{"constant":false,"id":40889,"mutability":"mutable","name":"amountX","nameLocation":"9577:7:46","nodeType":"VariableDeclaration","scope":40913,"src":"9569:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40888,"name":"uint256","nodeType":"ElementaryTypeName","src":"9569:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40891,"initialValue":{"hexValue":"312e32","id":40890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9587:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1200000000000000000_by_1","typeString":"int_const 1200000000000000000"},"value":"1.2"},"nodeType":"VariableDeclarationStatement","src":"9569:27:46"},{"assignments":[40893],"declarations":[{"constant":false,"id":40893,"mutability":"mutable","name":"amountY","nameLocation":"9614:7:46","nodeType":"VariableDeclaration","scope":40913,"src":"9606:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40892,"name":"uint256","nodeType":"ElementaryTypeName","src":"9606:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40895,"initialValue":{"hexValue":"312e32","id":40894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9624:9:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1200000000000000000_by_1","typeString":"int_const 1200000000000000000"},"value":"1.2"},"nodeType":"VariableDeclarationStatement","src":"9606:27:46"},{"expression":{"arguments":[{"expression":{"expression":{"id":40899,"name":"ConstantSumSolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31599,"src":"9659:17:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ConstantSumSolver_$31599_$","typeString":"type(contract ConstantSumSolver)"}},"id":40900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9677:18:46","memberName":"NotEnoughLiquidity","nodeType":"MemberAccess","referencedDeclaration":31127,"src":"9659:36:46","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":40901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9696:8:46","memberName":"selector","nodeType":"MemberAccess","src":"9659:45:46","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":40896,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"9643:2:46","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":40898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9646:12:46","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":9121,"src":"9643:15:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes4_$returns$__$","typeString":"function (bytes4) external"}},"id":40902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9643:62:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40903,"nodeType":"ExpressionStatement","src":"9643:62:46"},{"expression":{"arguments":[{"id":40907,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40881,"src":"9751:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":40908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9759:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":40909,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40889,"src":"9766:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":40910,"name":"amountY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40893,"src":"9775:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40904,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39726,"src":"9715:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSumSolver_$31599","typeString":"contract ConstantSumSolver"}},"id":40906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9722:28:46","memberName":"simulateAllocateOrDeallocate","nodeType":"MemberAccess","referencedDeclaration":31598,"src":"9715:35:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256,uint256) view external returns (bool,bytes memory)"}},"id":40911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9715:68:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"id":40912,"nodeType":"ExpressionStatement","src":"9715:68:46"}]},"functionSelector":"a182379e","implemented":true,"kind":"function","modifiers":[{"id":40878,"kind":"modifierInvocation","modifierName":{"id":40877,"name":"basic","nameLocations":["9510:5:46"],"nodeType":"IdentifierPath","referencedDeclaration":40004,"src":"9510:5:46"},"nodeType":"ModifierInvocation","src":"9510:5:46"}],"name":"test_constant_sum_fail_deallocate","nameLocation":"9467:33:46","parameters":{"id":40876,"nodeType":"ParameterList","parameters":[],"src":"9500:2:46"},"returnParameters":{"id":40879,"nodeType":"ParameterList","parameters":[],"src":"9516:0:46"},"scope":40979,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":40978,"nodeType":"FunctionDefinition","src":"9796:491:46","nodes":[],"body":{"id":40977,"nodeType":"Block","src":"9851:436:46","nodes":[],"statements":[{"assignments":[40920],"declarations":[{"constant":false,"id":40920,"mutability":"mutable","name":"poolId","nameLocation":"9869:6:46","nodeType":"VariableDeclaration","scope":40977,"src":"9861:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40919,"name":"uint256","nodeType":"ElementaryTypeName","src":"9861:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40926,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40921,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"9878:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":40922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9883:5:46","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"9878:10:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":40923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9878:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":40924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9893:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9878:16:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9861:33:46"},{"assignments":[40928],"declarations":[{"constant":false,"id":40928,"mutability":"mutable","name":"newPrice","nameLocation":"9912:8:46","nodeType":"VariableDeclaration","scope":40977,"src":"9904:16:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40927,"name":"uint256","nodeType":"ElementaryTypeName","src":"9904:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40930,"initialValue":{"hexValue":"33","id":40929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9923:7:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_3000000000000000000_by_1","typeString":"int_const 3000000000000000000"},"value":"3"},"nodeType":"VariableDeclarationStatement","src":"9904:26:46"},{"assignments":[40932],"declarations":[{"constant":false,"id":40932,"mutability":"mutable","name":"data","nameLocation":"9953:4:46","nodeType":"VariableDeclaration","scope":40977,"src":"9940:17:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40931,"name":"bytes","nodeType":"ElementaryTypeName","src":"9940:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":40937,"initialValue":{"arguments":[{"id":40935,"name":"newPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40928,"src":"9993:8:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40933,"name":"ConstantSumLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37235,"src":"9960:14:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ConstantSumLib_$37235_$","typeString":"type(library ConstantSumLib)"}},"id":40934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9975:17:46","memberName":"encodePriceUpdate","nodeType":"MemberAccess","referencedDeclaration":37140,"src":"9960:32:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":40936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9960:42:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"9940:62:46"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":40943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10030:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":40942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10022:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":40941,"name":"address","nodeType":"ElementaryTypeName","src":"10022:7:46","typeDescriptions":{}}},"id":40944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10022:10:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":40938,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"10013:2:46","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":40940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10016:5:46","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":9075,"src":"10013:8:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":40945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10013:20:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40946,"nodeType":"ExpressionStatement","src":"10013:20:46"},{"expression":{"arguments":[{"id":40951,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40920,"src":"10061:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":40952,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40932,"src":"10069:4:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":40948,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39720,"src":"10048:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":40947,"name":"DFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29062,"src":"10043:4:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DFMM_$29062_$","typeString":"type(contract DFMM)"}},"id":40949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10043:10:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":40950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10054:6:46","memberName":"update","nodeType":"MemberAccess","referencedDeclaration":28395,"src":"10043:17:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory) external"}},"id":40953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10043:31:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40954,"nodeType":"ExpressionStatement","src":"10043:31:46"},{"assignments":[40959],"declarations":[{"constant":false,"id":40959,"mutability":"mutable","name":"newParams","nameLocation":"10123:9:46","nodeType":"VariableDeclaration","scope":40977,"src":"10086:46:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams"},"typeName":{"id":40958,"nodeType":"UserDefinedTypeName","pathNode":{"id":40957,"name":"ConstantSum.ConstantSumParams","nameLocations":["10086:11:46","10098:17:46"],"nodeType":"IdentifierPath","referencedDeclaration":36490,"src":"10086:29:46"},"referencedDeclaration":36490,"src":"10086:29:46","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_storage_ptr","typeString":"struct ConstantSum.ConstantSumParams"}},"visibility":"internal"}],"id":40970,"initialValue":{"arguments":[{"arguments":[{"id":40964,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40920,"src":"10186:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40962,"name":"constantSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39723,"src":"10160:11:46","typeDescriptions":{"typeIdentifier":"t_contract$_ConstantSum_$37071","typeString":"contract ConstantSum"}},"id":40963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10172:13:46","memberName":"getPoolParams","nodeType":"MemberAccess","referencedDeclaration":37070,"src":"10160:25:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) view external returns (bytes memory)"}},"id":40965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10160:33:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":40966,"name":"ConstantSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37071,"src":"10196:11:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ConstantSum_$37071_$","typeString":"type(contract ConstantSum)"}},"id":40967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10208:17:46","memberName":"ConstantSumParams","nodeType":"MemberAccess","referencedDeclaration":36490,"src":"10196:29:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}}],"id":40968,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10195:31:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_ConstantSumParams_$36490_storage_ptr_$","typeString":"type(struct ConstantSum.ConstantSumParams storage pointer)"}],"expression":{"id":40960,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10136:3:46","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10140:6:46","memberName":"decode","nodeType":"MemberAccess","src":"10136:10:46","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":40969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10136:100:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10085:151:46"},{"expression":{"arguments":[{"expression":{"id":40972,"name":"newParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40959,"src":"10255:9:46","typeDescriptions":{"typeIdentifier":"t_struct$_ConstantSumParams_$36490_memory_ptr","typeString":"struct ConstantSum.ConstantSumParams memory"}},"id":40973,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10265:5:46","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":36485,"src":"10255:15:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"33","id":40974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10272:7:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_3000000000000000000_by_1","typeString":"int_const 3000000000000000000"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_3000000000000000000_by_1","typeString":"int_const 3000000000000000000"}],"id":40971,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"10246:8:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":40975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10246:34:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40976,"nodeType":"ExpressionStatement","src":"10246:34:46"}]},"functionSelector":"330fdce5","implemented":true,"kind":"function","modifiers":[{"id":40917,"kind":"modifierInvocation","modifierName":{"id":40916,"name":"basic","nameLocations":["9845:5:46"],"nodeType":"IdentifierPath","referencedDeclaration":40004,"src":"9845:5:46"},"nodeType":"ModifierInvocation","src":"9845:5:46"}],"name":"test_constant_sum_price_update","nameLocation":"9805:30:46","parameters":{"id":40915,"nodeType":"ParameterList","parameters":[],"src":"9835:2:46"},"returnParameters":{"id":40918,"nodeType":"ParameterList","parameters":[],"src":"9851:0:46"},"scope":40979,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":39712,"name":"Test","nameLocations":["339:4:46"],"nodeType":"IdentifierPath","referencedDeclaration":8195,"src":"339:4:46"},"id":39713,"nodeType":"InheritanceSpecifier","src":"339:4:46"}],"canonicalName":"ConstantSumTest","contractDependencies":[25560,29062,31599,37071,44392],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[40979,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"ConstantSumTest","nameLocation":"320:15:46","scope":40980,"usedErrors":[],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":46} \ No newline at end of file diff --git a/out/Constructor.t.sol/DFMMConstructorTest.json b/out/Constructor.t.sol/DFMMConstructorTest.json deleted file mode 100644 index e184a24b..00000000 --- a/out/Constructor.t.sol/DFMMConstructorTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"POOL_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TEST_SWAP_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolLiquidityToken","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_DFMM_constructor_DeploysLPTokenImplementation","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523461002357600160ff196000541617600055615a5990816100298239f35b600080fdfe60806040818152600491823610156200001757600080fd5b60009260e08435811c9283630a9254e4146200062057508263620a260714620005fb5782636989eff81462000233578263ba414fa61462000208578263e0d7d0e914620001e6578263e21485ad14620000a257505063fa7626d4146200007c57600080fd5b346200009e57816003193601126200009e5760ff602092541690519015158152f35b5080fd5b90915034620001e2576020366003190112620001e257601354835163068bcd8d60e01b81528335818501526001600160a01b0393909183908390602490829088165afa958615620001d757809662000106575b6020868660c08a0151169051908152f35b90919280965083813d8311620001cf575b62000123818362000a56565b81010312620001cc575083519485019085821067ffffffffffffffff831117620001b7575093620001aa60c080936020978752620001618162000a79565b84526200017088820162000a79565b888501526200018187820162000a79565b87850152606081015160608501526080810151608085015260a081015160a08501520162000a79565b82820152933880620000f5565b604190634e487b7160e01b6000525260246000fd5b80fd5b503d62000117565b8551903d90823e3d90fd5b8380fd5b505050346200009e57816003193601126200009e576020906018549051908152f35b505050346200009e57816003193601126200009e576020906200022a62000b90565b90519015158152f35b50905034620005f75782600319360112620005f757601354825163b462cd2560e01b808252602093926001600160a01b039290859082908690829087165afa8015620005ed5783908890620005a8575b62000292925016151562000c81565b838260135416918487518094819382525afa9081156200050b57869162000567575b50168351630ac77c9f60e11b815283818481855afa80156200050b57620002e491879162000533575b5062000c81565b83516306fdde0360e01b815285818481855afa80156200050b576200032391879162000515575b508551906200031a8262000a39565b87825262000d14565b83516395d89b4160e01b81529085828481845afa9182156200050b57849262000366918891620004e4575b508651906200035d8262000a39565b88825262000d14565b845163313ce56760e01b815292839182905afa8015620004d757849062000498575b60ff91501691601283036200039b578380f35b62000480917f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50608083518381526022848201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8582015261745d60f01b6060820152a18151938285526200042a838601604090600a8152690808115e1c1958dd195960b21b60208201520190565b601283870152857fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89687920390a182519383859485528401604090600a815269080808081058dd1d585b60b21b60208201520190565b918301520390a16200049162000e94565b3880808380f35b508181813d8311620004cf575b620004b1818362000a56565b81010312620001e2575160ff81168103620001e25760ff9062000388565b503d620004a5565b50505051903d90823e3d90fd5b6200050491503d808a833e620004fb818362000a56565b81019062000aef565b386200034e565b85513d88823e3d90fd5b6200052c91503d8089833e620004fb818362000a56565b386200030b565b620005589150853d87116200055f575b6200054f818362000a56565b81019062000a93565b38620002dd565b503d62000543565b90508381813d8311620005a0575b62000581818362000a56565b810103126200059c57620005959062000a79565b38620002b4565b8580fd5b503d62000575565b50508481813d8311620005e5575b620005c2818362000a56565b81010312620005e15782620005db620002929262000a79565b62000283565b8680fd5b503d620005b6565b86513d89823e3d90fd5b8280fd5b505050346200009e57816003193601126200009e5760209051660aa87bee5380008152f35b8486933462000a0a578460031936011262000a0a5761106b8084019067ffffffffffffffff9085831082841117620009f75762000f4c95818782396060845260066060850152650e8ded6cadcb60d31b6080850152878160209560a087820152600160a0820152600b60fb1b60c082015260128982015203019089f09687156200096e5760018060a01b0396876bffffffffffffffffffffffff60a01b99168960155416176015558651928084019184831086841117620009e457908492918339606081526006606082015265746f6b656e5960d01b608082015260a086820152600160a0820152605960f81b60c082015260128882015203019088f08015620009da578516866016541617601655846015541692833b15620009b45784516340c10f1960e01b808252308383015268056bc75e2d63100000918a816044818360249b888d8401525af180156200096457620009c2575b50908991886016541691823b15620001e25760448492838b5195869485938452308a8501528c8401525af18015620009b8576200099c575b505085601554168660165416908651916105979182840192848410878511176200098a579160609391859362004ed88539825287820152670de0b6b3a76400008982015203019089f080156200096e5786168760145416176014558451612f21808201908282108583111762000978578591839162001fb783398b815203019089f080156200096e5786166013548189821617601355898589601554169360448a5184819593829463095ea7b360e01b9889855216178983015260001997888d8401525af1801562000964579086929162000942575b5060448960165416918c8b60135416938b5196879586948552898501528b8401525af18015620009385762000916575b508560135416908551946105b591828701948786109086111762000905575050908492916200546f8439815203019085f0908115620008fc57501690601754161760175580f35b513d85823e3d90fd5b634e487b7160e01b8b526041905289fd5b6200093090843d86116200055f576200054f818362000a56565b5088620008b5565b86513d8b823e3d90fd5b6200095c90833d85116200055f576200054f818362000a56565b508b62000885565b88513d8d823e3d90fd5b85513d8a823e3d90fd5b634e487b7160e01b8b5260418452868bfd5b634e487b7160e01b8d5260418652888dfd5b620009a79062000a0e565b620009b4578789620007af565b8780fd5b87513d84823e3d90fd5b620009d1909a91929a62000a0e565b98908a62000777565b84513d89823e3d90fd5b634e487b7160e01b8c526041885260248cfd5b634e487b7160e01b885260418452602488fd5b8480fd5b67ffffffffffffffff811162000a2357604052565b634e487b7160e01b600052604160045260246000fd5b6020810190811067ffffffffffffffff82111762000a2357604052565b90601f8019910116810190811067ffffffffffffffff82111762000a2357604052565b51906001600160a01b038216820362000a8e57565b600080fd5b9081602091031262000a8e5751801515810362000a8e5790565b67ffffffffffffffff811162000a2357601f01601f191660200190565b60005b83811062000ade5750506000910152565b818101518382015260200162000acd565b60208183031262000a8e5780519067ffffffffffffffff821162000a8e570181601f8201121562000a8e57805162000b278162000aad565b9262000b37604051948562000a56565b8184526020828401011162000a8e5762000b58916020808501910162000aca565b90565b3d1562000b8b573d9062000b6f8262000aad565b9162000b7f604051938462000a56565b82523d6000602084013e565b606090565b6000805460081c60ff161562000baa575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62000bcc57505090565b90915060405160208101908282526519985a5b195960d21b604082015260408152606081019080821067ffffffffffffffff83111762000c6d578162000c4a6024879695949387946040526080810195630667f9d760e41b875262000c3982518092608485019062000aca565b810103600481018452018262000a56565b51925af15062000b5862000c5d62000b5b565b6020808251830101910162000a93565b634e487b7160e01b85526041600452602485fd5b1562000c8957565b7f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50606060405160208152601760208201527f4572726f723a20417373657274696f6e204661696c65640000000000000000006040820152a162000ceb62000e94565b565b9060209162000d088151809281855285808601910162000aca565b601f01601f1916010190565b60408051916020928381019062000d458582855162000d378187858a0162000aca565b810103808452018262000a56565b51902082518481019062000d6786828162000d378b8781519384920162000aca565b5190200362000d77575b50505050565b62000e6f9262000e7d917f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50608085518481526024858201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b7374728782015263696e675d60e01b6060820152a183519584875262000e0d858801604090600a8152690808115e1c1958dd195960b21b60208201520190565b96808803848201528062000e447f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583998a9462000ced565b0390a183519484869586528501604090600a815269080808081058dd1d585b60b21b60208201520190565b918483039085015262000ced565b0390a162000e8a62000e94565b3880808062000d71565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62000ec3575b5061010061ff00196000541617600055565b6040519060208201908082526519985a5b195960d21b60408401526001606084015260608352608083019183831067ffffffffffffffff84111762000a235760008362000f3460248397849760405260a08101956370ca10bb60e01b875262000c398251809260a485019062000aca565b51925af15062000f4362000b5b565b503862000eb156fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c6343000816003360a03461006957601f6105b538819003918201601f19168301916001600160401b0383118484101761006e5780849260209460405283398101031261006957516001600160a01b038116810361006957608052604051610530908161008582396080518160ef0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600436101561001457600080fd5b600091823560e01c9081622e524b146103f95750806306fdde031461035657806368bd3e381461031d57806373cb2d031461024e5780638a04bdd514610137578063acad29891461011e578063afba13c4146100db5763dc1783551461007957600080fd5b346100d7576020806003193601126100d3579181519283916020835260605191826020850152815b8381106100be575050828201840152601f01601f19168101030190f35b608081015187820187015286945081016100a1565b8280fd5b5080fd5b50346100d757816003193601126100d757517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b82346101345761012d36610493565b5050505080f35b80fd5b5090346101345761014736610493565b849350839250829182918290602090830183900312610134575035600181036101c45750505050505060016101c0670de0b6b3a7640000926802b5e3af16b188000080674563918244f40000925b51958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b0390f35b600981036102055750505050505060016101c0670de0b6b3a76400009268056bc75e2d6310000068068155a43676e0000090678ac7230489e8000092610195565b600814610218575b6101c0939495610195565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d63100000905068068155a43676e0000061020d565b5090346101345761025e36610493565b849350839250829182918290602090830183900312610134575035600181146102e8575b6002146102bb575b6101c093949551958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d6310000090508061028a565b670de0b6b3a7640000955060019450673782dace9d90000093506729a2241af62c00009250671bc16d674ec800009150610282565b50346100d75760c09161032f36610493565b505050508082519281845281602085015283015280606083015280608083015260a0820152f35b50346100d757816003193601126100d757805181810181811067ffffffffffffffff8211176103e5578252600c81526020906b4d6f636b537472617465677960a01b6020820152825193849260208452825192836020860152825b8481106103cf57505050828201840152601f01601f19168101030190f35b81810183015188820188015287955082016103b1565b634e487b7160e01b84526041600452602484fd5b8383346100d757806003193601126100d75767ffffffffffffffff9260243584811161047b573660238201121561047b5780600401359480861161047f57601f8601601f19908116603f011683019081118382101761047f578352848252366024868301011161047b5784849260209660248894018483013701015251908152f35b8380fd5b634e487b7160e01b85526041600452602485fd5b9060606003198301126104f5576004356001600160a01b03811681036104f557916024359160443567ffffffffffffffff928382116104f557806023830112156104f55781600401359384116104f557602484830101116104f5576024019190565b600080fdfea264697066735822122009a636832ec6847884e761e11e93e4c99c16c8767042c516d6f7d4bb27fb9bb064736f6c63430008160033a264697066735822122004bea06fabc327e40543fecdf9d393a987a4e530a15b7153502d56a66dd1bb4664736f6c63430008160033","sourceMap":"88:419:61:-:0;;;;;;;1594:4:0;88:419:61;;1594:4:0;88:419:61;;;1594:4:0;88:419:61;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600491823610156200001757600080fd5b60009260e08435811c9283630a9254e4146200062057508263620a260714620005fb5782636989eff81462000233578263ba414fa61462000208578263e0d7d0e914620001e6578263e21485ad14620000a257505063fa7626d4146200007c57600080fd5b346200009e57816003193601126200009e5760ff602092541690519015158152f35b5080fd5b90915034620001e2576020366003190112620001e257601354835163068bcd8d60e01b81528335818501526001600160a01b0393909183908390602490829088165afa958615620001d757809662000106575b6020868660c08a0151169051908152f35b90919280965083813d8311620001cf575b62000123818362000a56565b81010312620001cc575083519485019085821067ffffffffffffffff831117620001b7575093620001aa60c080936020978752620001618162000a79565b84526200017088820162000a79565b888501526200018187820162000a79565b87850152606081015160608501526080810151608085015260a081015160a08501520162000a79565b82820152933880620000f5565b604190634e487b7160e01b6000525260246000fd5b80fd5b503d62000117565b8551903d90823e3d90fd5b8380fd5b505050346200009e57816003193601126200009e576020906018549051908152f35b505050346200009e57816003193601126200009e576020906200022a62000b90565b90519015158152f35b50905034620005f75782600319360112620005f757601354825163b462cd2560e01b808252602093926001600160a01b039290859082908690829087165afa8015620005ed5783908890620005a8575b62000292925016151562000c81565b838260135416918487518094819382525afa9081156200050b57869162000567575b50168351630ac77c9f60e11b815283818481855afa80156200050b57620002e491879162000533575b5062000c81565b83516306fdde0360e01b815285818481855afa80156200050b576200032391879162000515575b508551906200031a8262000a39565b87825262000d14565b83516395d89b4160e01b81529085828481845afa9182156200050b57849262000366918891620004e4575b508651906200035d8262000a39565b88825262000d14565b845163313ce56760e01b815292839182905afa8015620004d757849062000498575b60ff91501691601283036200039b578380f35b62000480917f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50608083518381526022848201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8582015261745d60f01b6060820152a18151938285526200042a838601604090600a8152690808115e1c1958dd195960b21b60208201520190565b601283870152857fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89687920390a182519383859485528401604090600a815269080808081058dd1d585b60b21b60208201520190565b918301520390a16200049162000e94565b3880808380f35b508181813d8311620004cf575b620004b1818362000a56565b81010312620001e2575160ff81168103620001e25760ff9062000388565b503d620004a5565b50505051903d90823e3d90fd5b6200050491503d808a833e620004fb818362000a56565b81019062000aef565b386200034e565b85513d88823e3d90fd5b6200052c91503d8089833e620004fb818362000a56565b386200030b565b620005589150853d87116200055f575b6200054f818362000a56565b81019062000a93565b38620002dd565b503d62000543565b90508381813d8311620005a0575b62000581818362000a56565b810103126200059c57620005959062000a79565b38620002b4565b8580fd5b503d62000575565b50508481813d8311620005e5575b620005c2818362000a56565b81010312620005e15782620005db620002929262000a79565b62000283565b8680fd5b503d620005b6565b86513d89823e3d90fd5b8280fd5b505050346200009e57816003193601126200009e5760209051660aa87bee5380008152f35b8486933462000a0a578460031936011262000a0a5761106b8084019067ffffffffffffffff9085831082841117620009f75762000f4c95818782396060845260066060850152650e8ded6cadcb60d31b6080850152878160209560a087820152600160a0820152600b60fb1b60c082015260128982015203019089f09687156200096e5760018060a01b0396876bffffffffffffffffffffffff60a01b99168960155416176015558651928084019184831086841117620009e457908492918339606081526006606082015265746f6b656e5960d01b608082015260a086820152600160a0820152605960f81b60c082015260128882015203019088f08015620009da578516866016541617601655846015541692833b15620009b45784516340c10f1960e01b808252308383015268056bc75e2d63100000918a816044818360249b888d8401525af180156200096457620009c2575b50908991886016541691823b15620001e25760448492838b5195869485938452308a8501528c8401525af18015620009b8576200099c575b505085601554168660165416908651916105979182840192848410878511176200098a579160609391859362004ed88539825287820152670de0b6b3a76400008982015203019089f080156200096e5786168760145416176014558451612f21808201908282108583111762000978578591839162001fb783398b815203019089f080156200096e5786166013548189821617601355898589601554169360448a5184819593829463095ea7b360e01b9889855216178983015260001997888d8401525af1801562000964579086929162000942575b5060448960165416918c8b60135416938b5196879586948552898501528b8401525af18015620009385762000916575b508560135416908551946105b591828701948786109086111762000905575050908492916200546f8439815203019085f0908115620008fc57501690601754161760175580f35b513d85823e3d90fd5b634e487b7160e01b8b526041905289fd5b6200093090843d86116200055f576200054f818362000a56565b5088620008b5565b86513d8b823e3d90fd5b6200095c90833d85116200055f576200054f818362000a56565b508b62000885565b88513d8d823e3d90fd5b85513d8a823e3d90fd5b634e487b7160e01b8b5260418452868bfd5b634e487b7160e01b8d5260418652888dfd5b620009a79062000a0e565b620009b4578789620007af565b8780fd5b87513d84823e3d90fd5b620009d1909a91929a62000a0e565b98908a62000777565b84513d89823e3d90fd5b634e487b7160e01b8c526041885260248cfd5b634e487b7160e01b885260418452602488fd5b8480fd5b67ffffffffffffffff811162000a2357604052565b634e487b7160e01b600052604160045260246000fd5b6020810190811067ffffffffffffffff82111762000a2357604052565b90601f8019910116810190811067ffffffffffffffff82111762000a2357604052565b51906001600160a01b038216820362000a8e57565b600080fd5b9081602091031262000a8e5751801515810362000a8e5790565b67ffffffffffffffff811162000a2357601f01601f191660200190565b60005b83811062000ade5750506000910152565b818101518382015260200162000acd565b60208183031262000a8e5780519067ffffffffffffffff821162000a8e570181601f8201121562000a8e57805162000b278162000aad565b9262000b37604051948562000a56565b8184526020828401011162000a8e5762000b58916020808501910162000aca565b90565b3d1562000b8b573d9062000b6f8262000aad565b9162000b7f604051938462000a56565b82523d6000602084013e565b606090565b6000805460081c60ff161562000baa575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62000bcc57505090565b90915060405160208101908282526519985a5b195960d21b604082015260408152606081019080821067ffffffffffffffff83111762000c6d578162000c4a6024879695949387946040526080810195630667f9d760e41b875262000c3982518092608485019062000aca565b810103600481018452018262000a56565b51925af15062000b5862000c5d62000b5b565b6020808251830101910162000a93565b634e487b7160e01b85526041600452602485fd5b1562000c8957565b7f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50606060405160208152601760208201527f4572726f723a20417373657274696f6e204661696c65640000000000000000006040820152a162000ceb62000e94565b565b9060209162000d088151809281855285808601910162000aca565b601f01601f1916010190565b60408051916020928381019062000d458582855162000d378187858a0162000aca565b810103808452018262000a56565b51902082518481019062000d6786828162000d378b8781519384920162000aca565b5190200362000d77575b50505050565b62000e6f9262000e7d917f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50608085518481526024858201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b7374728782015263696e675d60e01b6060820152a183519584875262000e0d858801604090600a8152690808115e1c1958dd195960b21b60208201520190565b96808803848201528062000e447f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583998a9462000ced565b0390a183519484869586528501604090600a815269080808081058dd1d585b60b21b60208201520190565b918483039085015262000ced565b0390a162000e8a62000e94565b3880808062000d71565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62000ec3575b5061010061ff00196000541617600055565b6040519060208201908082526519985a5b195960d21b60408401526001606084015260608352608083019183831067ffffffffffffffff84111762000a235760008362000f3460248397849760405260a08101956370ca10bb60e01b875262000c398251809260a485019062000aca565b51925af15062000f4362000b5b565b503862000eb156fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c6343000816003360a03461006957601f6105b538819003918201601f19168301916001600160401b0383118484101761006e5780849260209460405283398101031261006957516001600160a01b038116810361006957608052604051610530908161008582396080518160ef0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600436101561001457600080fd5b600091823560e01c9081622e524b146103f95750806306fdde031461035657806368bd3e381461031d57806373cb2d031461024e5780638a04bdd514610137578063acad29891461011e578063afba13c4146100db5763dc1783551461007957600080fd5b346100d7576020806003193601126100d3579181519283916020835260605191826020850152815b8381106100be575050828201840152601f01601f19168101030190f35b608081015187820187015286945081016100a1565b8280fd5b5080fd5b50346100d757816003193601126100d757517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b82346101345761012d36610493565b5050505080f35b80fd5b5090346101345761014736610493565b849350839250829182918290602090830183900312610134575035600181036101c45750505050505060016101c0670de0b6b3a7640000926802b5e3af16b188000080674563918244f40000925b51958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b0390f35b600981036102055750505050505060016101c0670de0b6b3a76400009268056bc75e2d6310000068068155a43676e0000090678ac7230489e8000092610195565b600814610218575b6101c0939495610195565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d63100000905068068155a43676e0000061020d565b5090346101345761025e36610493565b849350839250829182918290602090830183900312610134575035600181146102e8575b6002146102bb575b6101c093949551958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d6310000090508061028a565b670de0b6b3a7640000955060019450673782dace9d90000093506729a2241af62c00009250671bc16d674ec800009150610282565b50346100d75760c09161032f36610493565b505050508082519281845281602085015283015280606083015280608083015260a0820152f35b50346100d757816003193601126100d757805181810181811067ffffffffffffffff8211176103e5578252600c81526020906b4d6f636b537472617465677960a01b6020820152825193849260208452825192836020860152825b8481106103cf57505050828201840152601f01601f19168101030190f35b81810183015188820188015287955082016103b1565b634e487b7160e01b84526041600452602484fd5b8383346100d757806003193601126100d75767ffffffffffffffff9260243584811161047b573660238201121561047b5780600401359480861161047f57601f8601601f19908116603f011683019081118382101761047f578352848252366024868301011161047b5784849260209660248894018483013701015251908152f35b8380fd5b634e487b7160e01b85526041600452602485fd5b9060606003198301126104f5576004356001600160a01b03811681036104f557916024359160443567ffffffffffffffff928382116104f557806023830112156104f55781600401359384116104f557602484830101116104f5576024019190565b600080fdfea264697066735822122009a636832ec6847884e761e11e93e4c99c16c8767042c516d6f7d4bb27fb9bb064736f6c63430008160033a264697066735822122004bea06fabc327e40543fecdf9d393a987a4e530a15b7153502d56a66dd1bb4664736f6c63430008160033","sourceMap":"88:419:61:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;88:419:61;;;;992:4:59;88:419:61;;;-1:-1:-1;;;992:20:59;;88:419:61;;992:20:59;;;88:419:61;-1:-1:-1;;;;;88:419:61;;;;;;;;;;;;;992:20:59;;;;;;;;;;;88:419:61;;1029:19:59;;;;;88:419:61;;;;;;;;992:20:59;;;;;;;;;;;;;;;;;;;:::i;:::-;;;88:419:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;992:20:59;;;;;88:419:61;;;;;;;;;;;;;;;992:20:59;;;;;;88:419:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;208:22:64;88:419:61;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;226:4;88:419;;;-1:-1:-1;;;226:28:61;;;;;88:419;-1:-1:-1;;;;;88:419:61;;226:28;;88:419;;;;;;;;226:28;;;;;;;;;;;;88:419;226:42;88:419;;;226:42;;;:::i;:::-;88:419;;226:4;88:419;;;;;;306:28;;;;;;;;;;;;;;;;;88:419;;;;;;;;356:21;;;;;;;;;;;;;;;;;;;88:419;356:21;;:::i;:::-;88:419;;-1:-1:-1;;;397:14:61;;;88:419;397:14;88:419;397:14;;;;;;;388:28;397:14;;;;;88:419;;;;;;;;:::i;:::-;;;;388:28;:::i;:::-;88:419;;-1:-1:-1;;;435:16:61;;88:419;435:16;88:419;435:16;88:419;;435:16;;;;;;;;;426:30;435:16;;;;;88:419;;;;;;;;:::i;:::-;;;;426:30;:::i;:::-;88:419;;-1:-1:-1;;;475:18:61;;88:419;;;;;475:18;;;;;;;;;;88:419;;;;;5259:6:0;495:2:61;5259:6:0;;5255:203;;88:419:61;;;5255:203:0;88:419:61;;5286:41:0;88:419:61;;;;;;;;;;;;;;;;-1:-1:-1;;;88:419:61;;;;5286:41:0;88:419:61;;;;;;;;;;;;;;;-1:-1:-1;;;88:419:61;;;;;;;;495:2;88:419;;;;5346:31:0;;;;;;;;88:419:61;;;;;;;;;;;;;;;-1:-1:-1;;;88:419:61;;;;;;;;;;;;5396:31:0;;;;;:::i;:::-;5255:203;;;88:419:61;;;475:18;;;;;;;;;;;;;;;:::i;:::-;;;88:419;;;;;;;;;;;;;475:18;;;;;;;;;88:419;;;;;;;;;;;;435:16;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;88:419;;;;;;;;;397:14;;;;;;;;;;;;;:::i;:::-;;;;356:21;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;306:28;;;;;;;;;;;;;;;;:::i;:::-;;;88:419;;;;;;;:::i;:::-;306:28;;;88:419;;;;306:28;;;;;226;;;;;;;;;;;;;;;;:::i;:::-;;;88:419;;;;;;226:42;88:419;;:::i;:::-;226:28;;88:419;;;;226:28;;;;;;88:419;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;88:419:61;;;;;;;;;;;;;;;;;;447:32:59;;;;;;;;;;;;;;;;;;;;;;88:419:61;;;;;;;;-1:-1:-1;;;88:419:61;;;;;;;;;;;;;;;;;;-1:-1:-1;;;88:419:61;;;;476:2:59;88:419:61;;;;447:32:59;;;;;;;;;;;88:419:61;;;;;;;;;;;;438:41:59;88:419:61;;;438:41:59;88:419:61;;;498:32:59;;;;;;;;;;;;;;;;;;;;88:419:61;;;;;;;;-1:-1:-1;;;88:419:61;;;;;;;;;;;;;;-1:-1:-1;;;88:419:61;;;;476:2:59;88:419:61;;;;498:32:59;;;;;;;;;88:419:61;;;489:41:59;88:419:61;;;489:41:59;88:419:61;;438:41:59;88:419:61;;540:34:59;;;;;;88:419:61;;;;;540:34:59;;;560:4;540:34;;;88:419:61;567:6:59;88:419:61;;;;;;;;;;;;;540:34:59;;;;;;;;88:419:61;;;;;;489:41:59;88:419:61;;584:34:59;;;;;;88:419:61;;;;;;584:34:59;;;;;;;560:4;584:34;;;88:419:61;;;;;584:34:59;;;;;;;;88:419:61;;;;438:41:59;88:419:61;;;489:41:59;88:419:61;;;;;635:50:59;;;;;;;;;;;;;;;;;88:419:61;635:50:59;;;;;;;88:419:61;;;;;;677:7:59;88:419:61;;;;635:50:59;;;;;;;;;88:419:61;;;629:56:59;88:419:61;;;629:56:59;88:419:61;;;702:20:59;;;;;;;;;;;;;;;;;;;;;88:419:61;;;702:20:59;;;;;;;;;88:419:61;;695:27:59;88:419:61;;;;;;695:27:59;88:419:61;;;;438:41:59;88:419:61;;;;;;;;;;;;;;;733:48:59;;;;88:419:61;;733:48:59;;;88:419:61;763:17:59;;88:419:61;;;;;;733:48:59;;;;;;;;;;;;88:419:61;;;;489:41:59;88:419:61;;;;;695:27:59;88:419:61;;;;;791:48:59;;;;;;;;;;88:419:61;;;;;791:48:59;;;;;;;;88:419:61;;;695:27:59;88:419:61;;;;;314:31:64;;;;;;;;;;;;;;;;;;;;;;;;;88:419:61;;314:31:64;;;;;;;;;;88:419:61;;;303:42:64;88:419:61;;;303:42:64;88:419:61;;;314:31:64;88:419:61;;;;;;;;314:31:64;-1:-1:-1;;;88:419:61;;;;;;;791:48:59;;;;;;;;;;;;;:::i;:::-;;;;;;88:419:61;;;;;;;;;733:48:59;;;;;;;;;;;;;:::i;:::-;;;;;;88:419:61;;;;;;;;;702:20:59;88:419:61;;;;;;;;;702:20:59;-1:-1:-1;;;88:419:61;;;;;;;;635:50:59;-1:-1:-1;;;88:419:61;;;;;;;;584:34:59;;;;:::i;:::-;88:419:61;;584:34:59;;;;88:419:61;;;;584:34:59;88:419:61;;;;;;;;;540:34:59;;;;;;;;:::i;:::-;;;;;;498:32;88:419:61;;;;;;;;;498:32:59;-1:-1:-1;;;88:419:61;;;;;;;;447:32:59;-1:-1:-1;;;88:419:61;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;226:28;88:419;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;88:419:61;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;88:419:61;;;;:::o;:::-;;;;;;;;-1:-1:-1;;88:419:61;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;1671:64:0:-;;;;;;88:419:61;;;;:::i;:::-;;;;;;;;:::i;:::-;;;1671:64:0;-1:-1:-1;1671:64:0;;;;:::o;:::-;;;:::o;1819:584::-;1873:7;88:419:61;;;;;;;;;;;;;;;1896:14:0:o;1869:528::-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;88:419:61;;;;;2196:43:0;;;88:419:61;;;;1671:64:0;;;88:419:61;1671:64:0;;88:419:61;;2196:43:0;;88:419:61;;;;;;;;;;;;;;2086:175:0;;88:419:61;;;;;;;;;2086:175:0;;;1671:64;;;;;;;;;;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;;2312:27;2047:232;;:::i;:::-;2196:43;1671:64;;;2312:27;;;;;;:::i;88:419:61:-;-1:-1:-1;;;88:419:61;;;;;;;;3255:157:0;3314:10;3310:96;;3255:157::o;3310:96::-;3345:30;88:419:61;;;;;;;;;;;;;;;;3345:30:0;;;:::i;:::-;3255:157::o;88:419:61:-;;;;;1671:64:0;;88:419:61;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;88:419:61;;;;:::o;14688:344:0:-;88:419:61;;;14773:19:0;;;;;;1671:64;14773:19;1671:64;;;;;;;;;;;:::i;:::-;;;14773:19;;;;;;;:::i;:::-;1671:64;14763:30;;88:419:61;;14807:19:0;;;1671:64;14807:19;1671:64;;;;;;;;;;;;;:::i;14807:19::-;1671:64;14797:30;;14763:64;14759:267;;14688:344;;;;;:::o;14759:267::-;88:419:61;;;;14848:43:0;88:419:61;;;;;;;;;;;;;;;;-1:-1:-1;;;88:419:61;;;;14848:43:0;88:419:61;;;;;;;;;;;;;;;-1:-1:-1;;;88:419:61;;;;;;;;;;;;;;;;14910:33:0;88:419:61;14910:33:0;88:419:61;;;;:::i;:::-;14910:33:0;;;88:419:61;;;;;;;;;;;;;;;-1:-1:-1;;;88:419:61;;;;;;;;;;;;;;;;;:::i;:::-;14962:33:0;;;;;:::i;:::-;14759:267;;;;;;2410:424;2939:104;;;2445:359;;2410:424;88:419:61;;;;2928:1:0;88:419:61;;;2928:1:0;88:419:61;2410:424:0:o;2445:359::-;88:419:61;;2645:67:0;;;;88:419:61;;;;1671:64:0;;;88:419:61;;;;2705:4:0;88:419:61;;;;;2645:67:0;;88:419:61;;;;;;;;;;;;;-1:-1:-1;88:419:61;2534:196:0;;88:419:61;;;;;;2534:196:0;;;1671:64;;;;;;;;;;;;;;;;:::i;2534:196::-;2499:245;;;;;;;:::i;:::-;;2445:359;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","POOL_ID()":"e0d7d0e9","TEST_SWAP_FEE()":"620a2607","failed()":"ba414fa6","getPoolLiquidityToken(uint256)":"e21485ad","setUp()":"0a9254e4","test_DFMM_constructor_DeploysLPTokenImplementation()":"6989eff8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POOL_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_SWAP_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolLiquidityToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_DFMM_constructor_DeploysLPTokenImplementation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/unit/DFMM/Constructor.t.sol\":\"DFMMConstructorTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]},\"src/test/helpers/MockStrategy.sol\":{\"keccak256\":\"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5\",\"dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw\"]},\"src/test/helpers/SetUp.sol\":{\"keccak256\":\"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30\",\"dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14\"]},\"src/test/unit/DFMM/Constructor.t.sol\":{\"keccak256\":\"0x1a1c3bd25565b437d12e607f7fe9c702046e78c720fca10d1e4ba3f8378b0044\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://cbd38071be333ca4cae90cf67999a244c18b84069216ec5c8d401af1ec16587e\",\"dweb:/ipfs/QmbkxmQismvvHFQqcj8wkrjtWmBuhw1o7PutHqLZ1WV6FF\"]},\"src/test/unit/DFMM/SetUp.sol\":{\"keccak256\":\"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4\",\"dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"POOL_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_SWAP_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolLiquidityToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_DFMM_constructor_DeploysLPTokenImplementation"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/unit/DFMM/Constructor.t.sol":"DFMMConstructorTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"},"src/test/helpers/MockStrategy.sol":{"keccak256":"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a","urls":["bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5","dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw"],"license":"UNLICENSED"},"src/test/helpers/SetUp.sol":{"keccak256":"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb","urls":["bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30","dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14"],"license":"UNLICENSED"},"src/test/unit/DFMM/Constructor.t.sol":{"keccak256":"0x1a1c3bd25565b437d12e607f7fe9c702046e78c720fca10d1e4ba3f8378b0044","urls":["bzz-raw://cbd38071be333ca4cae90cf67999a244c18b84069216ec5c8d401af1ec16587e","dweb:/ipfs/QmbkxmQismvvHFQqcj8wkrjtWmBuhw1o7PutHqLZ1WV6FF"],"license":"UNLICENSED"},"src/test/unit/DFMM/SetUp.sol":{"keccak256":"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a","urls":["bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4","dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/unit/DFMM/Constructor.t.sol","id":44969,"exportedSymbols":{"ArbiterToken":[43381],"DFMM":[29062],"DFMMConstructorTest":[44968],"DFMMSetUp":[45761],"DSTest":[1786],"ERC20":[25948],"FixedPointMathLib":[26640],"IDFMM":[29730],"IStrategy":[29839],"LPToken":[29516],"Lex":[44392],"LibString":[26659],"Min":[27736],"MockERC20":[25560],"MockStrategy":[44649],"SafeTransferLib":[26744],"SetUp":[44852],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"Test":[8195],"TestBase":[1843],"Vm":[9352],"WETH":[26027],"abs":[27763],"computeScalingFactor":[30048],"console":[17416],"console2":[25512],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"muli":[27777],"muliWad":[27795],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"39:469:61","nodes":[{"id":44913,"nodeType":"PragmaDirective","src":"39:24:61","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":44914,"nodeType":"ImportDirective","src":"65:21:61","nodes":[],"absolutePath":"src/test/unit/DFMM/SetUp.sol","file":"./SetUp.sol","nameLocation":"-1:-1:-1","scope":44969,"sourceUnit":45762,"symbolAliases":[],"unitAlias":""},{"id":44968,"nodeType":"ContractDefinition","src":"88:419:61","nodes":[{"id":44967,"nodeType":"FunctionDefinition","src":"136:369:61","nodes":[],"body":{"id":44966,"nodeType":"Block","src":"205:300:61","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":44927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44920,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"226:4:61","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":44921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"231:21:61","memberName":"lpTokenImplementation","nodeType":"MemberAccess","referencedDeclaration":27840,"src":"226:26:61","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":44922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"226:28:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":44925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"266:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":44924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"258:7:61","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":44923,"name":"address","nodeType":"ElementaryTypeName","src":"258:7:61","typeDescriptions":{}}},"id":44926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"258:10:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"226:42:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":44919,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[269,290],"referencedDeclaration":269,"src":"215:10:61","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$returns$__$","typeString":"function (bool)"}},"id":44928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"215:54:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44929,"nodeType":"ExpressionStatement","src":"215:54:61"},{"assignments":[44932],"declarations":[{"constant":false,"id":44932,"mutability":"mutable","name":"lpToken","nameLocation":"288:7:61","nodeType":"VariableDeclaration","scope":44966,"src":"280:15:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"},"typeName":{"id":44931,"nodeType":"UserDefinedTypeName","pathNode":{"id":44930,"name":"LPToken","nameLocations":["280:7:61"],"nodeType":"IdentifierPath","referencedDeclaration":29516,"src":"280:7:61"},"referencedDeclaration":29516,"src":"280:7:61","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"visibility":"internal"}],"id":44938,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44934,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"306:4:61","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":44935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"311:21:61","memberName":"lpTokenImplementation","nodeType":"MemberAccess","referencedDeclaration":27840,"src":"306:26:61","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":44936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"306:28:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44933,"name":"LPToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29516,"src":"298:7:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LPToken_$29516_$","typeString":"type(contract LPToken)"}},"id":44937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"298:37:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"nodeType":"VariableDeclarationStatement","src":"280:55:61"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44940,"name":"lpToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44932,"src":"356:7:61","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"id":44941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"364:11:61","memberName":"initialized","nodeType":"MemberAccess","referencedDeclaration":29116,"src":"356:19:61","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":44942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"356:21:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":44939,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[269,290],"referencedDeclaration":269,"src":"345:10:61","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$returns$__$","typeString":"function (bool)"}},"id":44943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"345:33:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44944,"nodeType":"ExpressionStatement","src":"345:33:61"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44946,"name":"lpToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44932,"src":"397:7:61","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"id":44947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"405:4:61","memberName":"name","nodeType":"MemberAccess","referencedDeclaration":29087,"src":"397:12:61","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":44948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"397:14:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"","id":44949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"413:2:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":44945,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":1639,"src":"388:8:61","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":44950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"388:28:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44951,"nodeType":"ExpressionStatement","src":"388:28:61"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44953,"name":"lpToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44932,"src":"435:7:61","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"id":44954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"443:6:61","memberName":"symbol","nodeType":"MemberAccess","referencedDeclaration":29089,"src":"435:14:61","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":44955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"435:16:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"","id":44956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"453:2:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":44952,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":1639,"src":"426:8:61","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":44957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"426:30:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44958,"nodeType":"ExpressionStatement","src":"426:30:61"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44960,"name":"lpToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44932,"src":"475:7:61","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"id":44961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"483:8:61","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":29092,"src":"475:16:61","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":44962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"475:18:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"hexValue":"3138","id":44963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"495:2:61","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":44959,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"466:8:61","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":44964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"466:32:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44965,"nodeType":"ExpressionStatement","src":"466:32:61"}]},"functionSelector":"6989eff8","implemented":true,"kind":"function","modifiers":[],"name":"test_DFMM_constructor_DeploysLPTokenImplementation","nameLocation":"145:50:61","parameters":{"id":44917,"nodeType":"ParameterList","parameters":[],"src":"195:2:61"},"returnParameters":{"id":44918,"nodeType":"ParameterList","parameters":[],"src":"205:0:61"},"scope":44968,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":44915,"name":"DFMMSetUp","nameLocations":["120:9:61"],"nodeType":"IdentifierPath","referencedDeclaration":45761,"src":"120:9:61"},"id":44916,"nodeType":"InheritanceSpecifier","src":"120:9:61"}],"canonicalName":"DFMMConstructorTest","contractDependencies":[25560,29062,44392,44649],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[44968,45761,44852,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"DFMMConstructorTest","nameLocation":"97:19:61","scope":44969,"usedErrors":[],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":61} \ No newline at end of file diff --git a/out/DFMM.sol/DFMM.json b/out/DFMM.sol/DFMM.json deleted file mode 100644 index f8fa32d5..00000000 --- a/out/DFMM.sol/DFMM.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"weth_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"allocate","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"deallocate","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPool","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IDFMM.Pool","components":[{"name":"strategy","type":"address","internalType":"address"},{"name":"tokenX","type":"address","internalType":"address"},{"name":"tokenY","type":"address","internalType":"address"},{"name":"reserveX","type":"uint256","internalType":"uint256"},{"name":"reserveY","type":"uint256","internalType":"uint256"},{"name":"totalLiquidity","type":"uint256","internalType":"uint256"},{"name":"liquidityToken","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getReservesAndLiquidity","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"init","inputs":[{"name":"params","type":"tuple","internalType":"struct IDFMM.InitParams","components":[{"name":"strategy","type":"address","internalType":"address"},{"name":"tokenX","type":"address","internalType":"address"},{"name":"tokenY","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"liquidityOf","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"lpTokenImplementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pools","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"strategy","type":"address","internalType":"address"},{"name":"tokenX","type":"address","internalType":"address"},{"name":"tokenY","type":"address","internalType":"address"},{"name":"reserveX","type":"uint256","internalType":"uint256"},{"name":"reserveY","type":"uint256","internalType":"uint256"},{"name":"totalLiquidity","type":"uint256","internalType":"uint256"},{"name":"liquidityToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"update","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"weth","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"Allocate","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"deltaX","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"deltaY","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"deltaL","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deallocate","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"deltaX","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"deltaY","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"deltaL","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Init","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"strategy","type":"address","indexed":false,"internalType":"address"},{"name":"lpToken","type":"address","indexed":false,"internalType":"address"},{"name":"tokenX","type":"address","indexed":true,"internalType":"address"},{"name":"tokenY","type":"address","indexed":true,"internalType":"address"},{"name":"poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"reserveX","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"reserveY","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"totalLiquidity","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Swap","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"isSwapXForY","type":"bool","indexed":false,"internalType":"bool"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC1167FailedCreateClone","inputs":[]},{"type":"error","name":"Invalid","inputs":[{"name":"negative","type":"bool","internalType":"bool"},{"name":"swapConstantGrowth","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidSwap","inputs":[]},{"type":"error","name":"InvalidSwapInputTransfer","inputs":[]},{"type":"error","name":"InvalidSwapOutputTransfer","inputs":[]},{"type":"error","name":"InvalidTokens","inputs":[]},{"type":"error","name":"Locked","inputs":[]},{"type":"error","name":"Min","inputs":[]},{"type":"error","name":"OnlyWETH","inputs":[]}],"bytecode":{"object":"0x60c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c63430008160033","sourceMap":"519:14428:24:-:0;;;;;;;;;;;;;-1:-1:-1;;519:14428:24;;;;-1:-1:-1;;;;;519:14428:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;519:14428:24;;;;;;;;;851:1;519:14428;;1505:12;;519:14428;;1559:13;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1559:13:24;;;;;;;;;519:14428;1527:46;;;1583:49;;;;;519:14428;;;;;;;;;;;;;;1583:49;;;;;;519:14428;;;;;;;;;;;;;;;;1583:49;;;;;;;;-1:-1:-1;519:14428:24;;;;;;;;1527:46;519:14428;;;;;;;;;;1505:12;519:14428;;;;;;;;;;;;;;;;;;;;;1583:49;519:14428;;;;;;;1583:49;;;;;519:14428;-1:-1:-1;;;519:14428:24;;;1583:49;519:14428;;;;1583:49;519:14428;;;;;;;;;1583:49;519:14428;;;1559:13;519:14428;;;;;;;;;1559:13;519:14428;;;-1:-1:-1;519:14428:24;;;;;-1:-1:-1;519:14428:24;;-1:-1:-1;519:14428:24;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c63430008160033","sourceMap":"519:14428:24:-:0;;;;;;;;;-1:-1:-1;519:14428:24;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;-1:-1:-1;;519:14428:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;519:14428:24;;;;;;;;;:::i;:::-;;;1043:7;519:14428;;1054:1;-1:-1:-1;1043:12:24;;1039:33;;519:14428;;1054:1;1043:7;519:14428;6152:13;;;:::i;:::-;-1:-1:-1;519:14428:24;-1:-1:-1;;;;;519:14428:24;;6142:66;;;;;519:14428;6142:66;519:14428;;;;;;;;;;;;;6142:66;;6183:10;519:14428;6142:66;;;:::i;:::-;;;;;;;;;;;519:14428;1114:11;;1043:7;519:14428;;;1114:11;519:14428;;6142:66;;;;:::i;:::-;;;;;;:::i;:::-;519:14428;;;1039:33;519:14428;;-1:-1:-1;;;1064:8:24;;519:14428;;1064:8;519:14428;;;;;;-1:-1:-1;;519:14428:24;;;;;;;;;:::i;:::-;;-1:-1:-1;519:14428:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13854:13;519:14428;;13854:13;:::i;:::-;519:14428;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;519:14428:24;;;;;;;;;;;;;;;;;;;;;;;;;;;1054:1;1043:7;519:14428;1043:12;1039:33;;1054:1;1043:7;519:14428;1830:13;;;;;;;:::i;:::-;1847;;;1830:30;1847:13;;;:::i;:::-;-1:-1:-1;;;;;519:14428:24;;;1830:30;-1:-1:-1;;;;;519:14428:24;;;1830:30;1826:58;;2058:31;:26;2068:15;;;:::i;2058:31::-;-1:-1:-1;;519:14428:24;2058:92;2129:11;;519:14428;;2129:11;;;;:::i;:::-;1847:13;;519:14428;;;2058:92;519:14428;;;;;;;;;;;;2058:92;;2103:10;2058:92;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;;;2058:92:24;;;519:14428;2165:6;;2161:82;;2292:21;2278:37;2286:28;2292:21;2286:28;:::i;2278:37::-;2390:15;2368:68;2390:15;;;:::i;:::-;2407:13;;;:::i;:::-;2422;;;:::i;:::-;2368:68;;:::i;:::-;519:14428;;2446:55;;;;;;;519:14428;;-1:-1:-1;;;2446:55:24;;519:14428;;;;;2446:55;;519:14428;2446:55;;;;:::i;:::-;;;;;;;;;;;;;519:14428;2543:32;;;;:::i;:::-;2511:65;;;;;519:14428;;-1:-1:-1;;;2511:65:24;;;2103:10;2511:65;;;519:14428;;;968:4;;;519:14428;;;;;;;;;;;968:4;;2511:65;;;;;;;;;;;;519:14428;2586:48;;;;;;519:14428;;;2586:48;519:14428;;;;;2586:48;;;;;;;;;968:4;;;;;;519:14428;;;;968:4;519:14428;968:4;2586:48;;;;;;;;;;;;3093:13;3292:32;2586:48;3060:8;2586:48;3045:13;3004:16;2586:48;;519:14428;2586:48;;;;;3108:8;2586:48;2730:13;3179:66;2586:48;2664:286;2586:48;2961:16;2586:48;2693:15;2586:48;;;519:14428;2693:15;;:::i;:::-;2730:13;;:::i;:::-;2765;2664:286;2765:13;;;:::i;:::-;519:14428;2664:286;519:14428;;:::i;:::-;-1:-1:-1;;;;;519:14428:24;;;;;;2664:286;-1:-1:-1;;;;;519:14428:24;;2664:286;;519:14428;;2664:286;-1:-1:-1;;;;;519:14428:24;;;2664:286;;;519:14428;;2664:286;2129:11;2664:286;;519:14428;;;;2664:286;;519:14428;;;2058:92;2664:286;;519:14428;;;-1:-1:-1;;;;;519:14428:24;;2664:286;;;519:14428;2961:16;:::i;:::-;519:14428;3004:16;:::i;:::-;3045:13;;:::i;:::-;3060:8;:::i;:::-;3093:13;:::i;3108:8::-;3145:23;;;;:::i;:::-;968:4;;:::i;:::-;3179:66;:::i;:::-;3292:32;:::i;:::-;1114:11;;1043:7;519:14428;;;1114:11;519:14428;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2586:48;;;;;;:::i;:::-;;;:::i;:::-;;;;;519:14428;;;2511:65;;;;;;:::i;:::-;;;;2446:55;;;;;;:::i;:::-;;;;;519:14428;;2161:82;2194:38;2217:14;;;;;;:::i;:::-;519:14428;;-1:-1:-1;;;2194:38:24;;2202:13;;;;2194:38;;;519:14428;;;;;;;;;;;;;2194:38;;;;2058:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;1826:58;1847:13;519:14428;-1:-1:-1;;;1869:15:24;;519:14428;;1869:15;1039:33;-1:-1:-1;519:14428:24;;-1:-1:-1;;;1064:8:24;;;519:14428;;;;:::i;:::-;;;1054:1;1043:7;519:14428;1043:12;1039:33;;10635:110;519:14428;10635:110;519:14428;1054:1;1043:7;519:14428;10635:62;:33;519:14428;10645:13;;;:::i;:::-;-1:-1:-1;519:14428:24;-1:-1:-1;;;;;519:14428:24;;;10635:62;519:14428;;;;;;;;;;;;10635:110;;10711:10;;10635:110;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;;;10635:110:24;;;519:14428;10760:6;;10756:82;;10901:13;;;10882:41;10901:22;:13;519:14428;10901:13;;:::i;:::-;:22;;519:14428;10882:41;;:::i;:::-;11042:13;11023:41;10635:110;11042:13;;;:::i;:::-;:22;;519:14428;11023:41;;:::i;:::-;11189:13;11164:53;11189:28;:13;;;:::i;11164:53::-;11330:6;;;;;:::i;:::-;10901:22;11348:13;;;:::i;:::-;:22;;519:14428;10635:110;11399:13;;;:::i;:::-;:22;;519:14428;11189:28;11450:13;;;:::i;:::-;:28;;519:14428;4516:6;4441:13;1043:7;4463:6;4441:13;;;;:::i;:::-;519:14428;;;;;;4441:20;;;;519:14428;;4463:6;:::i;:::-;1054:1;4494:13;;;:::i;:::-;:20;;519:14428;;4516:6;:::i;:::-;519:14428;;;;;;;;;;;;;;;;;;;;;;;10711:10;;4539:52;;519:14428;;;;4539:52;;;;1043:7;519:14428;;;;;;;;;;;;;;;;;;;;;;;;;;10756:82;10812:14;10789:38;10812:14;-1:-1:-1;10812:14:24;;:::i;:::-;519:14428;;-1:-1:-1;;;10789:38:24;;10797:13;;;;10635:110;10789:38;;519:14428;;;;;;;;;;;;;;;10635:110;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;519:14428;-1:-1:-1;;;;;519:14428:24;;;;;:::o;:::-;;;;;;-1:-1:-1;;519:14428:24;;;;;;;;;:::i;:::-;;;14650:13;14707:24;14642:37;519:14428;14650:28;:13;;;:::i;:::-;-1:-1:-1;14650:28:24;519:14428;-1:-1:-1;;;;;519:14428:24;;;14707:24;519:14428;;-1:-1:-1;;;14707:33:24;;-1:-1:-1;;;;;519:14428:24;;;;;14707:33;;519:14428;;;;;;14707:33;;;;;;;;519:14428;14707:33;-1:-1:-1;14707:33:24;;;519:14428;;;;;;;;;;;;;14772:28;;;;;;;;519:14428;14772:28;631:21:18;14772:28:24;965:21:18;14772:28:24;-1:-1:-1;14772:28:24;;;519:14428;14835:13;;;:28;:13;;:::i;:::-;:28;;519:14428;965:21:18;:::i;:::-;631;;:::i;:::-;519:14428:24;;;;;;;;;;;;;14772:28;14835;14772;;;14835:13;14772:28;;;;;;-1:-1:-1;14772:28:24;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;14707:33;;;;;;;;;;;;;;;;;:::i;:::-;;;;;519:14428;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;519:14428:24;;;;;;721:29;-1:-1:-1;;;;;519:14428:24;;;;;;;;;;;;;:::i;:::-;;;1054:1;1043:7;519:14428;1043:12;1039:33;;10635:110;519:14428;10635:110;519:14428;1054:1;1043:7;519:14428;10635:62;:33;519:14428;10645:13;;;:::i;10635:110::-;;;;;;;;;;-1:-1:-1;;;;;;;10635:110:24;;;519:14428;10760:6;;10756:82;;10938:13;;;:41;:13;:22;:13;519:14428;10938:13;;:::i;:::-;:22;;519:14428;10938:41;:::i;:::-;11079:13;:41;:13;10635:110;11079:13;;;:::i;:41::-;11232:13;:53;:13;:28;:13;;;:::i;:53::-;11330:6;;;;;:::i;:::-;10938:22;11348:13;;;:::i;:::-;:22;;519:14428;10635:110;11399:13;;;:::i;:::-;:22;;519:14428;11232:28;11450:13;;;:::i;:::-;:28;;519:14428;5029:6;4934:13;;;;:::i;:::-;-1:-1:-1;519:14428:24;4934:20;519:14428;-1:-1:-1;;;;;519:14428:24;4968:6;;519:14428;;10711:10;;519:14428;;4968:6;:::i;:::-;4995:13;;;:::i;:::-;-1:-1:-1;1054:1:24;4995:20;519:14428;10711:10;;519:14428;5029:6;:::i;:::-;519:14428;;;;;;;;;;;;;;;;;;;;;;;10711:10;;5052:54;;519:14428;;;;5052:54;519:14428;10635:110;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;519:14428;;6152:5;519:14428;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;519:14428:24;;;;;;;;;;;;;;-1:-1:-1;;519:14428:24;;;;;;-1:-1:-1;519:14428:24;616:19;;;;;;;;:::i;:::-;-1:-1:-1;519:14428:24;;;616:19;;519:14428;616:19;;;519:14428;616:19;;;519:14428;;616:19;;519:14428;616:19;;;519:14428;616:19;;;;519:14428;;;;-1:-1:-1;;;;;519:14428:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;519:14428:24;;;;;;;;;;;;;;;;;;;-1:-1:-1;;519:14428:24;;;;;;668:46;-1:-1:-1;;;;;519:14428:24;;;;;;;;;;;;;:::i;:::-;;;1054:1;1043:7;519:14428;1043:12;1039:33;;5511:94;519:14428;5511:94;519:14428;1054:1;1043:7;519:14428;5511:46;:33;519:14428;5521:13;;;:::i;5511:46::-;519:14428;;;;;;;;;;;;5511:94;;5571:10;;519:14428;5511:94;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;;;5511:94:24;;;519:14428;5620:6;;5616:82;;5708:13;;;:28;:13;5850:51;5708:13;;:::i;:::-;:28;;519:14428;5850:51;;:::i;:::-;519:14428;;;;;;5917:64;519:14428;;5571:10;5917:64;5571:10;;;5917:64;;519:14428;;;;;;;;;;;;;;;;;;;;5917:64;;;;1114:11;1043:7;519:14428;;;1114:11;519:14428;;;;;;;;;;;;;;5616:82;-1:-1:-1;5672:14:24;5649:38;5672:14;;;:::i;5511:94::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;-1:-1:-1;5511:94:24;;;;;;;;519:14428;;;;;;-1:-1:-1;;519:14428:24;;;;;;14107:22;:13;;;:::i;:::-;:22;;519:14428;;14179:28;:13;519:14428;14143:13;;;:::i;:::-;:22;;519:14428;14179:13;;:::i;:::-;:28;;519:14428;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;968:4;519:14428;;;;;;;;;;;968:4;519:14428;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;519:14428:24;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;519:14428:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;519:14428:24;;;;-1:-1:-1;;;;;519:14428:24;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;519:14428:24;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;519:14428:24;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;968:4::-;519:14428;;;968:4;;;;;;;;;-1:-1:-1;;968:4:24;;;;;;;;:::o;:::-;;:::i;:::-;-1:-1:-1;;968:4:24;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;-1:-1:-1;968:4:24;;;;;;;;;;;;-1:-1:-1;968:4:24;;:::i;:::-;;;;;;;-1:-1:-1;;;;;519:14428:24;;;-1:-1:-1;;;;;;968:4:24;;;;;;;;;;-1:-1:-1;968:4:24;;;;519:14428;;;968:4;;;;;;;;;;;;;;;;;;;;519:14428;;;968:4;;;;;;;;;;;;;519:14428;968:4;;;;;;;519:14428;968:4;;;;;;;519:14428;968:4;;;;;;;;;;;;;;519:14428;;968:4;;;519:14428::o;968:4::-;519:14428;;;-1:-1:-1;968:4:24;-1:-1:-1;968:4:24;;;-1:-1:-1;968:4:24;;;519:14428;;;;;:::i;:::-;968:4;;;;;;;;:::o;519:14428::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1138:85::-;1193:4;-1:-1:-1;;;;;519:14428:24;1179:10;:18;1175:41;;1138:85::o;1175:41::-;519:14428;;-1:-1:-1;;;1206:10:24;;;;;71:276:23;-1:-1:-1;;;138:25:23;;134:43;;195:1;187:9;;195:1;;;208:61;;;;71:276::o;134:43::-;519:14428:24;;-1:-1:-1;;;172:5:23;;;;;12584:957:24;12732:708;12584:957;12732:708;;;;;;;;;;;;;;;;;;519:14428;-1:-1:-1;;;;;519:14428:24;;13453:22;13449:86;;12584:957::o;13449:86::-;519:14428;;-1:-1:-1;;;13498:26:24;;;;;519:14428;;;;;;;;;;;;;;;;;;;;;;;;;;;;;968:4;;;;;519:14428;;;;;;;-1:-1:-1;;519:14428:24;;968:4;519:14428;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;519:14428:24;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;519:14428:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;3711:426::-;519:14428;;-1:-1:-1;;;3925:26:24;;-1:-1:-1;;;;;519:14428:24;;;3925:26;;3711:426;;;3925:26;;519:14428;;3925:26;;519:14428;;;;3925:26;;;;;;;;;;;3711:426;519:14428;;;;;;3925:26;519:14428;;;;;3982:22;;;;519:14428;3982:22;;;;;;;;;;;;;3711:426;519:14428;3925:26;519:14428;;;4035:22;;;;;;;519:14428;4035:22;;;;;;;3877:253;4035:22;;;;;3711:426;519:14428;4088:32;519:14428;;4088:32;:::i;:::-;3877:253;;:::i;4035:22::-;4088:32;4035:22;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;3982;3925:26;3982:22;;;;;;;;;;;;;;:::i;:::-;;;;;3925:26;;;;;;;;;;;;;;:::i;:::-;;;;;8717:626;8794:21;:31;-1:-1:-1;8794:31:24;;-1:-1:-1;8854:4:24;-1:-1:-1;;;;;519:14428:24;8841:46;;;;;;519:14428;8841:46;519:14428;;;;;;;;;8841:46;;;;;;;;;;8790:547;8906:21;;8902:168;;8717:626::o;8902:168::-;9016:21;;9004:10;9016:21;:::i;8841:46::-;;;;;;:::i;:::-;;;;8790:547;1133:19:18;9296:16:24;9163:27;;;;:::i;:::-;1133:19:18;;:::i;:::-;8802:4:24;;;9269:10;;-1:-1:-1;;;;;519:14428:24;9296:16;:::i;3338:367::-;;519:14428;3426:13;;;:::i;519:14428::-;;;;;;968:4;;;;519:14428;3545:11;;;;;968:4;519:14428;3570:11;;;;;968:4;519:14428;3615:13;;;;968:4;3642:13;3669:19;3642:13;;;968:4;3669:19;;968:4;519:14428;3570:11;519:14428;;;;;3545:11;519:14428;;;3570:11;519:14428;;;3615:13;519:14428;;;3642:13;519:14428;;;3669:19;519:14428;;;3455:243;519:14428;3473:10;3455:243;;3338:367::o;7777:145:14:-;-1:-1:-1;7777:145:14;;;;7860:54;519:14428:24;;7860:54:14;;519:14428:24;7860:54:14;;;;;;;;;519:14428:24;7860:54:14;;;519:14428:24;;;;;;:::i;:::-;-1:-1:-1;;;;;519:14428:24;;;;;;;;7860:54:14;-1:-1:-1;;7860:54:14;;;;;;:::i;:::-;519:14428:24;852:159:14;591:42;852:159;;;7777:145::o;9659:426:24:-;-1:-1:-1;;;;;9753:4:24;519:14428;;;;9659:426;519:14428;;;;9744:13;;;519:14428;;9773:36;;;;;;;519:14428;;-1:-1:-1;;;9773:36:24;;;;;519:14428;;;;-1:-1:-1;;519:14428:24;;;;;;-1:-1:-1;;9773:36:24;;;;;;;9859:6;9773:36;;;9740:339;9859:6;;:::i;9773:36::-;;;;;;:::i;:::-;;;;9740:339;2751:1223:20;9962:27:24;;;;;965:21:18;9962:27:24;;;:::i;:::-;965:21:18;;:::i;:::-;2751:1223:20;;;-1:-1:-1;;2751:1223:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;519:14428:24;;;9740:339;9659:426::o;519:14428::-;-1:-1:-1;;;519:14428:24;;2751:1223:20;;519:14428:24;;;;2751:1223:20;519:14428:24;;;-1:-1:-1;;;2751:1223:20;519:14428:24;;;;;;;;;;;;;;;;:::o;6304:2106::-;;;;6666:22;:13;;;:::i;:::-;:22;;519:14428;6725:13;;;;:::i;:::-;-1:-1:-1;6725:22:24;;;;519:14428;;6772:35;;;;6725:22;6818:641;;;;6853:36;;;;6849:62;;6938:13;7604;519:14428;6938:20;:13;;;:::i;519:14428::-;6986:13;7098:35;6986:13;7034:35;519:14428;6986:20;:13;;;:::i;519:14428::-;7034:35;;;:::i;:::-;7098;;:::i;:::-;6818:641;;6666:22;7553:13;;;:::i;:::-;:22;;519:14428;7604:13;:::i;:::-;-1:-1:-1;7604:22:24;519:14428;;;;-1:-1:-1;;;7682:42:24;;;7718:4;7682:42;;;519:14428;;;-1:-1:-1;;;;;519:14428:24;;;;7682:42;;519:14428;7682:42;;519:14428;;;;;;7682:42;;;;;;;;;;6666:5;7682:42;;;6818:641;-1:-1:-1;519:14428:24;;7761:43;;;7718:4;7761:43;;;519:14428;;;;;;;;;;;7718:4;;519:14428;;;;;;7761:43;;;;;;;;;;;;;;;;6666:5;7761:43;;;6818:641;7841:11;7898:12;7841:11;;;;;;:::i;:::-;7886:10;7898:12;;:::i;:::-;519:14428;;7949:42;;;7718:4;7949:42;;;519:14428;;;;;;;;;7949:42;519:14428;;;;;;7949:42;;;;;;;;;6666:5;7949:42;;;6818:641;-1:-1:-1;519:14428:24;;8029:43;;;7718:4;8029:43;;;519:14428;;;;;;;;;8029:43;519:14428;;;;;;8029:43;;;;;;;;;;;6666:5;8029:43;;;6818:641;8106:29;;;;;;:::i;:::-;-1:-1:-1;8083:112:24;;8229:31;;;;:::i;:::-;-1:-1:-1;8205:116:24;;8331:72;;;;;;6304:2106;:::o;8205:116::-;519:14428;-1:-1:-1;;;8283:27:24;;;8083:112;-1:-1:-1;;519:14428:24;-1:-1:-1;;;8158:26:24;;;8029:43;8106:29;8029:43;;;;;;;;;;-1:-1:-1;8029:43:24;;;;;;:::i;:::-;;;;;;;7949:42;;;;;;;;;;;;;;;;;:::i;:::-;;;;;7761:43;7841:11;7761:43;;;;;7898:12;7761:43;;;;;;;;;;;;;:::i;:::-;;;;;;;;;7682:42;;;;;;;;;;;;;;;:::i;:::-;;;;;6849:62;-1:-1:-1;519:14428:24;;-1:-1:-1;;;6898:13:24;;;6818:641;7168:36;;;;;;;7164:62;;7253:13;7604;519:14428;7253:20;:13;;;:::i;519:14428::-;7301:13;7413:35;7301:13;7349:35;519:14428;7301:20;:13;;;:::i;519:14428::-;7349:35;;;:::i;7413:::-;6818:641;;;257:1365:19;;342:6;;338:22;;419:1197;;;;;;;;;;;;;;;;;;;;;;;;;257:1365::o;419:1197::-;;;;;;;;;;;;;968:4:24;;419:1197:19;;;;;;338:22;519:14428:24;;968:4;519:14428;;;;:::i;:::-;;968:4;;-1:-1:-1;;;519:14428:24;;;;350:10:19;:::o;519:14428:24:-;;;;;;;;;:::o;:::-;;491:4:18;519:14428:24;;;;;;;;;;:::o;191:212:29:-;519:14428:24;;-1:-1:-1;;;284:23:29;;519:14428:24;284:23:29;;519:14428:24;;284:23:29;;519:14428:24;;-1:-1:-1;;;;;519:14428:24;284:23:29;;;;;;;;;;;191:212;519:14428:24;;;334:2:29;968:4:24;334:2:29;968:4:24;;;;384:16:29;360:40;384:16;;:::i;:::-;360:40;:::i;284:23::-;;;;;;;;;;;;;;;:::i;:::-;;;519:14428:24;;;;;;;;;;;;;284:23:29;519:14428:24;284:23:29;;519:14428:24;;;;284:23:29;;;-1:-1:-1;284:23:29;;1107:1503:20;;;1268:1285;;1107:1503;;1268:1285;;-1:-1:-1;;1268:1285:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;519:14428:24;;;1107:1503:20;:::o;519:14428:24:-;-1:-1:-1;;;519:14428:24;;1268:1285:20;;519:14428:24;;;;1268:1285:20;519:14428:24;;;-1:-1:-1;;;1268:1285:20;519:14428:24;;;1268:1285:20;;519:14428:24;621:296:20;-1:-1:-1;621:296:20;;;;;716:145;;519:14428:24;;;621:296:20:o;519:14428:24:-;;;-1:-1:-1;;;519:14428:24;;;;;;;;;;;;-1:-1:-1;;;519:14428:24;;;;;;;11577:677;11792:26;11723:37;519:14428;11731:28;:13;;;:::i;11792:26::-;519:14428;;;;;;11792:28;;;;;;;;;;;;;631:21:18;11792:28:24;965:21:18;11792:28:24;11731:5;11792:28;;;11577:677;11855:13;;:28;:13;;:::i;:::-;:28;;519:14428;965:21:18;;:::i;631:::-;12028:39:24;;;;;;519:14428;;-1:-1:-1;;;12028:39:24;;12048:10;11792:28;12028:39;;519:14428;968:4;;;519:14428;;;;11731:5;;519:14428;;;11731:5;519:14428;968:4;;;12028:39;;;;;;;;;;;11577:677;:::o;12028:39::-;;;;;;:::i;11792:28::-;11855;11792;;;;11855:13;11792:28;;;;;;;;;;;:::i;:::-;;;;;;11577:677;11792:26;11723:37;519:14428;11731:28;:13;;;:::i;11792:26::-;519:14428;;;;;;11792:28;;;;;;;;;;;;;799:19:18;11792:28:24;1133:19:18;11792:28:24;-1:-1:-1;11792:28:24;;;11577:677;11855:13;;:28;:13;;:::i;:::-;:28;;519:14428;1133:19:18;;:::i;:::-;799;;:::i;:::-;12198:39:24;;;;;;519:14428;;-1:-1:-1;;;12198:39:24;;12218:10;11792:28;12198:39;;519:14428;968:4;;;519:14428;;;;-1:-1:-1;;519:14428:24;;;-1:-1:-1;519:14428:24;968:4;;;12198:39;968:4;11792:28;11855;11792;;;;11855:13;11792:28;;;;;;;;;;;:::i;:::-;;;;;;7741:535:18;491:4;7878:392;;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;7878:392;;;;;;;;;;;;;;;;491:4;7878:392;;7741:535;:::o;8282:752::-;;491:4;8417:611;;;;;;;;;;;;;;;;;;;;968:4:24;;;8417:611:18;;;;;;;;8282:752;:::o;:::-;8417:611;;;;;;;;;;;;;;;;;491:4;968::24;;8417:611:18;;;;;;;;8282:752;:::o","linkReferences":{},"immutableReferences":{"27840":[{"start":892,"length":32},{"start":3218,"length":32}],"27842":[{"start":2518,"length":32},{"start":4671,"length":32},{"start":5403,"length":32},{"start":5803,"length":32}]}},"methodIdentifiers":{"allocate(uint256,bytes)":"2ec38188","deallocate(uint256,bytes)":"9d942f9a","getPool(uint256)":"068bcd8d","getReservesAndLiquidity(uint256)":"ce153bf4","init((address,address,address,bytes))":"1455f1fc","liquidityOf(address,uint256)":"3be6a341","lpTokenImplementation()":"b462cd25","nonce()":"affed0e0","pools(uint256)":"ac4afa38","swap(uint256,bytes)":"bd0625ab","update(uint256,bytes)":"0216b838","weth()":"3fc8cef3"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"weth_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ERC1167FailedCreateClone\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"negative\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"swapConstantGrowth\",\"type\":\"uint256\"}],\"name\":\"Invalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSwap\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSwapInputTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSwapOutputTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Locked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Min\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyWETH\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deltaX\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deltaY\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deltaL\",\"type\":\"uint256\"}],\"name\":\"Allocate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deltaX\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deltaY\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deltaL\",\"type\":\"uint256\"}],\"name\":\"Deallocate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"lpToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenX\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenY\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalLiquidity\",\"type\":\"uint256\"}],\"name\":\"Init\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSwapXForY\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"allocate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"deallocate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPool\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenX\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenY\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalLiquidity\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"liquidityToken\",\"type\":\"address\"}],\"internalType\":\"struct IDFMM.Pool\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getReservesAndLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenX\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenY\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct IDFMM.InitParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"init\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"liquidityOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lpTokenImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"pools\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenX\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenY\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalLiquidity\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"liquidityToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"update\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"weth\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"Primitive\",\"errors\":{\"ERC1167FailedCreateClone()\":[{\"details\":\"Thrown when a clone contract could not be deployed.\"}],\"Invalid(bool,uint256)\":[{\"details\":\"Thrown when the invariant is invalid.\"}],\"InvalidSwap()\":[{\"details\":\"Thrown when the reserves are invalid after a swap.\"}],\"InvalidSwapInputTransfer()\":[{\"details\":\"Thrown when the transfer of the input amount is invalid.\"}],\"InvalidSwapOutputTransfer()\":[{\"details\":\"Thrown when the transfer of the output amount is invalid.\"}],\"InvalidTokens()\":[{\"details\":\"Thrown when pool tokens are identical.\"}],\"Locked()\":[{\"details\":\"Thrown when a new call is made during a locked state.\"}]},\"events\":{\"Allocate(address,uint256,uint256,uint256,uint256)\":{\"params\":{\"account\":\"Address allocating liquidity.\",\"deltaL\":\"Amount of liquidity received by the allocator.\",\"deltaX\":\"Amount of token X being allocated.\",\"deltaY\":\"Amount of token Y being allocated.\"}},\"Deallocate(address,uint256,uint256,uint256,uint256)\":{\"params\":{\"account\":\"Address deallocating liquidity.\",\"deltaL\":\"Amount of liquidity being deallocated.\",\"deltaX\":\"Amount of token X being deallocated.\",\"deltaY\":\"Amount of token Y being deallocated.\"}},\"Init(address,address,address,address,address,uint256,uint256,uint256,uint256)\":{\"params\":{\"account\":\"Address initializing the pool.\",\"reserveX\":\"Initial reserve of token X in the pool.\",\"reserveY\":\"Initial reserve of token Y in the pool.\",\"totalLiquidity\":\"Initial liquidity in the pool.\"}},\"Swap(address,uint256,bool,uint256,uint256)\":{\"params\":{\"account\":\"Address making the swap.\",\"inputAmount\":\"Amount of token sent by the swapper.\",\"isSwapXForY\":\"True if token X are being swapped for token Y.\",\"outputAmount\":\"Amount of token received by the swapper.\"}}},\"kind\":\"dev\",\"methods\":{\"allocate(uint256,bytes)\":{\"params\":{\"data\":\"An array of bytes used by the strategy contract.\",\"poolId\":\"Id of the pool to allocate liquidity into.\"},\"returns\":{\"_0\":\"Amount of token X allocated into the pool.\",\"_1\":\"Amount of token Y allocated into the pool.\",\"_2\":\"Amount of liquidity received by the allocator.\"}},\"constructor\":{\"details\":\"The implementation of the LPToken contract is also deployed at the same time. It'll be used later to deploy new LPTokens using the [clone factory pattern](https://eips.ethereum.org/EIPS/eip-1167).\"},\"deallocate(uint256,bytes)\":{\"params\":{\"data\":\"An array of bytes used by the strategy contract.\",\"poolId\":\"Id of the pool to deallocate liquidity from.\"},\"returns\":{\"_0\":\"Amount of token X deallocated from the pool.\",\"_1\":\"Amount of token Y deallocated from the pool.\",\"_2\":\"Amount of liquidity being deallocated.\"}},\"init((address,address,address,bytes))\":{\"params\":{\"params\":\"A struct containing the initialization parameters.\"},\"returns\":{\"_0\":\"Id of the newly initialized pool.\",\"_1\":\"Initial amount of token X in the pool.\",\"_2\":\"Initial amount of token Y in the pool.\",\"_3\":\"Initial amount of liquidity in the pool.\"}},\"liquidityOf(address,uint256)\":{\"details\":\"This function should NOT be used in a non-view call, as the values can be manipulated. In the future this function might be removed.\"},\"swap(uint256,bytes)\":{\"params\":{\"data\":\"An array of bytes used by the strategy contract.\",\"poolId\":\"Id of the pool to swap tokens into.\"},\"returns\":{\"_0\":\"Amount of tokens sent to the DFMM contract.\",\"_1\":\"Amount of tokens received by the swapper.\"}},\"update(uint256,bytes)\":{\"params\":{\"data\":\"An array of bytes used by the strategy contract.\",\"poolId\":\"Id of the pool to update.\"}}},\"stateVariables\":{\"BURNT_LIQUIDITY\":{\"details\":\"Amount of liquidity that is burnt on initialization.\"},\"_locked\":{\"details\":\"Part of the reentrancy lock, 1 = unlocked, 2 = locked.\"}},\"title\":\"DFMM\",\"version\":1},\"userdoc\":{\"events\":{\"Allocate(address,uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when liquidity is allocated into the pool.\"},\"Deallocate(address,uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when liquidity is deallocated from the pool.\"},\"Init(address,address,address,address,address,uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when the pool is initialized.\"},\"Swap(address,uint256,bool,uint256,uint256)\":{\"notice\":\"Emitted when a swap is made.\"}},\"kind\":\"user\",\"methods\":{\"allocate(uint256,bytes)\":{\"notice\":\"Allocates liquidity into the pool `poolId`.\"},\"deallocate(uint256,bytes)\":{\"notice\":\"Deallocates liquidity from the pool `poolId`.\"},\"getPool(uint256)\":{\"notice\":\"Returns the pool `poolId` as a Pool struct.\"},\"getReservesAndLiquidity(uint256)\":{\"notice\":\"Returns the reserves and liquidity of pool `poolId`.\"},\"init((address,address,address,bytes))\":{\"notice\":\"Intializes a new pool.\"},\"liquidityOf(address,uint256)\":{\"notice\":\"Returns the amount of liquidity owned by `account` for the pool `poolId`.\"},\"lpTokenImplementation()\":{\"notice\":\"Address of the implementation of the LPToken contract.\"},\"nonce()\":{\"notice\":\"Returns the amount of initialized pools.\"},\"swap(uint256,bytes)\":{\"notice\":\"Swaps tokens into pool `poolId`.\"},\"update(uint256,bytes)\":{\"notice\":\"Updates pool `poolId` by calling the associated strategy.\"}},\"notice\":\"Dynamic Function Market Maker\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/DFMM.sol\":\"DFMM\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"weth_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ERC1167FailedCreateClone"},{"inputs":[{"internalType":"bool","name":"negative","type":"bool"},{"internalType":"uint256","name":"swapConstantGrowth","type":"uint256"}],"type":"error","name":"Invalid"},{"inputs":[],"type":"error","name":"InvalidSwap"},{"inputs":[],"type":"error","name":"InvalidSwapInputTransfer"},{"inputs":[],"type":"error","name":"InvalidSwapOutputTransfer"},{"inputs":[],"type":"error","name":"InvalidTokens"},{"inputs":[],"type":"error","name":"Locked"},{"inputs":[],"type":"error","name":"Min"},{"inputs":[],"type":"error","name":"OnlyWETH"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"poolId","type":"uint256","indexed":false},{"internalType":"uint256","name":"deltaX","type":"uint256","indexed":false},{"internalType":"uint256","name":"deltaY","type":"uint256","indexed":false},{"internalType":"uint256","name":"deltaL","type":"uint256","indexed":false}],"type":"event","name":"Allocate","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"poolId","type":"uint256","indexed":false},{"internalType":"uint256","name":"deltaX","type":"uint256","indexed":false},{"internalType":"uint256","name":"deltaY","type":"uint256","indexed":false},{"internalType":"uint256","name":"deltaL","type":"uint256","indexed":false}],"type":"event","name":"Deallocate","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"strategy","type":"address","indexed":false},{"internalType":"address","name":"lpToken","type":"address","indexed":false},{"internalType":"address","name":"tokenX","type":"address","indexed":true},{"internalType":"address","name":"tokenY","type":"address","indexed":true},{"internalType":"uint256","name":"poolId","type":"uint256","indexed":false},{"internalType":"uint256","name":"reserveX","type":"uint256","indexed":false},{"internalType":"uint256","name":"reserveY","type":"uint256","indexed":false},{"internalType":"uint256","name":"totalLiquidity","type":"uint256","indexed":false}],"type":"event","name":"Init","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"bool","name":"isSwapXForY","type":"bool","indexed":false},{"internalType":"uint256","name":"inputAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"outputAmount","type":"uint256","indexed":false}],"type":"event","name":"Swap","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"allocate","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"deallocate","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPool","outputs":[{"internalType":"struct IDFMM.Pool","name":"","type":"tuple","components":[{"internalType":"address","name":"strategy","type":"address"},{"internalType":"address","name":"tokenX","type":"address"},{"internalType":"address","name":"tokenY","type":"address"},{"internalType":"uint256","name":"reserveX","type":"uint256"},{"internalType":"uint256","name":"reserveY","type":"uint256"},{"internalType":"uint256","name":"totalLiquidity","type":"uint256"},{"internalType":"address","name":"liquidityToken","type":"address"}]}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getReservesAndLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct IDFMM.InitParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"strategy","type":"address"},{"internalType":"address","name":"tokenX","type":"address"},{"internalType":"address","name":"tokenY","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"init","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"liquidityOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lpTokenImplementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"pools","outputs":[{"internalType":"address","name":"strategy","type":"address"},{"internalType":"address","name":"tokenX","type":"address"},{"internalType":"address","name":"tokenY","type":"address"},{"internalType":"uint256","name":"reserveX","type":"uint256"},{"internalType":"uint256","name":"reserveY","type":"uint256"},{"internalType":"uint256","name":"totalLiquidity","type":"uint256"},{"internalType":"address","name":"liquidityToken","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"update"},{"inputs":[],"stateMutability":"view","type":"function","name":"weth","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"allocate(uint256,bytes)":{"params":{"data":"An array of bytes used by the strategy contract.","poolId":"Id of the pool to allocate liquidity into."},"returns":{"_0":"Amount of token X allocated into the pool.","_1":"Amount of token Y allocated into the pool.","_2":"Amount of liquidity received by the allocator."}},"constructor":{"details":"The implementation of the LPToken contract is also deployed at the same time. It'll be used later to deploy new LPTokens using the [clone factory pattern](https://eips.ethereum.org/EIPS/eip-1167)."},"deallocate(uint256,bytes)":{"params":{"data":"An array of bytes used by the strategy contract.","poolId":"Id of the pool to deallocate liquidity from."},"returns":{"_0":"Amount of token X deallocated from the pool.","_1":"Amount of token Y deallocated from the pool.","_2":"Amount of liquidity being deallocated."}},"init((address,address,address,bytes))":{"params":{"params":"A struct containing the initialization parameters."},"returns":{"_0":"Id of the newly initialized pool.","_1":"Initial amount of token X in the pool.","_2":"Initial amount of token Y in the pool.","_3":"Initial amount of liquidity in the pool."}},"liquidityOf(address,uint256)":{"details":"This function should NOT be used in a non-view call, as the values can be manipulated. In the future this function might be removed."},"swap(uint256,bytes)":{"params":{"data":"An array of bytes used by the strategy contract.","poolId":"Id of the pool to swap tokens into."},"returns":{"_0":"Amount of tokens sent to the DFMM contract.","_1":"Amount of tokens received by the swapper."}},"update(uint256,bytes)":{"params":{"data":"An array of bytes used by the strategy contract.","poolId":"Id of the pool to update."}}},"version":1},"userdoc":{"kind":"user","methods":{"allocate(uint256,bytes)":{"notice":"Allocates liquidity into the pool `poolId`."},"deallocate(uint256,bytes)":{"notice":"Deallocates liquidity from the pool `poolId`."},"getPool(uint256)":{"notice":"Returns the pool `poolId` as a Pool struct."},"getReservesAndLiquidity(uint256)":{"notice":"Returns the reserves and liquidity of pool `poolId`."},"init((address,address,address,bytes))":{"notice":"Intializes a new pool."},"liquidityOf(address,uint256)":{"notice":"Returns the amount of liquidity owned by `account` for the pool `poolId`."},"lpTokenImplementation()":{"notice":"Address of the implementation of the LPToken contract."},"nonce()":{"notice":"Returns the amount of initialized pools."},"swap(uint256,bytes)":{"notice":"Swaps tokens into pool `poolId`."},"update(uint256,bytes)":{"notice":"Updates pool `poolId` by calling the associated strategy."}},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/DFMM.sol":"DFMM"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"}},"version":1},"ast":{"absolutePath":"src/DFMM.sol","id":29063,"exportedSymbols":{"DFMM":[29062],"ERC20":[25948],"FixedPointMathLib":[26640],"IDFMM":[29730],"IStrategy":[29839],"LPToken":[29516],"LibString":[26659],"Min":[27736],"SafeTransferLib":[26744],"WETH":[26027],"abs":[27763],"computeScalingFactor":[30048],"console2":[25512],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"muli":[27777],"muliWad":[27795],"upscale":[30064]},"nodeType":"SourceUnit","src":"45:14903:24","nodes":[{"id":27815,"nodeType":"PragmaDirective","src":"45:24:24","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":27816,"nodeType":"ImportDirective","src":"71:45:24","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol","file":"solmate/utils/FixedPointMathLib.sol","nameLocation":"-1:-1:-1","scope":29063,"sourceUnit":26641,"symbolAliases":[],"unitAlias":""},{"id":27817,"nodeType":"ImportDirective","src":"117:43:24","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol","file":"solmate/utils/SafeTransferLib.sol","nameLocation":"-1:-1:-1","scope":29063,"sourceUnit":26745,"symbolAliases":[],"unitAlias":""},{"id":27818,"nodeType":"ImportDirective","src":"161:37:24","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/utils/LibString.sol","file":"solmate/utils/LibString.sol","nameLocation":"-1:-1:-1","scope":29063,"sourceUnit":26660,"symbolAliases":[],"unitAlias":""},{"id":27820,"nodeType":"ImportDirective","src":"199:47:24","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/tokens/WETH.sol","file":"solmate/tokens/WETH.sol","nameLocation":"-1:-1:-1","scope":29063,"sourceUnit":26028,"symbolAliases":[{"foreign":{"id":27819,"name":"WETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26027,"src":"208:4:24","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":27821,"nodeType":"ImportDirective","src":"247:27:24","nodes":[],"absolutePath":"lib/solstat/src/Units.sol","file":"solstat/Units.sol","nameLocation":"-1:-1:-1","scope":29063,"sourceUnit":27814,"symbolAliases":[],"unitAlias":""},{"id":27822,"nodeType":"ImportDirective","src":"275:32:24","nodes":[],"absolutePath":"src/interfaces/IDFMM.sol","file":"./interfaces/IDFMM.sol","nameLocation":"-1:-1:-1","scope":29063,"sourceUnit":29731,"symbolAliases":[],"unitAlias":""},{"id":27823,"nodeType":"ImportDirective","src":"308:36:24","nodes":[],"absolutePath":"src/interfaces/IStrategy.sol","file":"./interfaces/IStrategy.sol","nameLocation":"-1:-1:-1","scope":29063,"sourceUnit":29840,"symbolAliases":[],"unitAlias":""},{"id":27824,"nodeType":"ImportDirective","src":"345:30:24","nodes":[],"absolutePath":"src/lib/ScalingLib.sol","file":"./lib/ScalingLib.sol","nameLocation":"-1:-1:-1","scope":29063,"sourceUnit":30097,"symbolAliases":[],"unitAlias":""},{"id":27825,"nodeType":"ImportDirective","src":"376:23:24","nodes":[],"absolutePath":"src/LPToken.sol","file":"./LPToken.sol","nameLocation":"-1:-1:-1","scope":29063,"sourceUnit":29517,"symbolAliases":[],"unitAlias":""},{"id":27826,"nodeType":"ImportDirective","src":"400:32:24","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/console2.sol","file":"forge-std/console2.sol","nameLocation":"-1:-1:-1","scope":29063,"sourceUnit":25513,"symbolAliases":[],"unitAlias":""},{"id":29062,"nodeType":"ContractDefinition","src":"519:14428:24","nodes":[{"id":27832,"nodeType":"UsingForDirective","src":"548:36:24","nodes":[],"global":false,"libraryName":{"id":27830,"name":"FixedPointMathLib","nameLocations":["554:17:24"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"554:17:24"},"typeName":{"id":27831,"name":"uint256","nodeType":"ElementaryTypeName","src":"576:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":27837,"nodeType":"VariableDeclaration","src":"616:19:24","nodes":[],"baseFunctions":[29729],"constant":false,"documentation":{"id":27833,"nodeType":"StructuredDocumentation","src":"590:21:24","text":"@inheritdoc IDFMM"},"functionSelector":"ac4afa38","mutability":"mutable","name":"pools","nameLocation":"630:5:24","scope":29062,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool[]"},"typeName":{"baseType":{"id":27835,"nodeType":"UserDefinedTypeName","pathNode":{"id":27834,"name":"Pool","nameLocations":["616:4:24"],"nodeType":"IdentifierPath","referencedDeclaration":29534,"src":"616:4:24"},"referencedDeclaration":29534,"src":"616:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage_ptr","typeString":"struct IDFMM.Pool"}},"id":27836,"nodeType":"ArrayTypeName","src":"616:6:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage_ptr","typeString":"struct IDFMM.Pool[]"}},"visibility":"public"},{"id":27840,"nodeType":"VariableDeclaration","src":"668:46:24","nodes":[],"baseFunctions":[29699],"constant":false,"documentation":{"id":27838,"nodeType":"StructuredDocumentation","src":"642:21:24","text":"@inheritdoc IDFMM"},"functionSelector":"b462cd25","mutability":"immutable","name":"lpTokenImplementation","nameLocation":"693:21:24","scope":29062,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27839,"name":"address","nodeType":"ElementaryTypeName","src":"668:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":27842,"nodeType":"VariableDeclaration","src":"721:29:24","nodes":[],"constant":false,"functionSelector":"3fc8cef3","mutability":"immutable","name":"weth","nameLocation":"746:4:24","scope":29062,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27841,"name":"address","nodeType":"ElementaryTypeName","src":"721:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":27846,"nodeType":"VariableDeclaration","src":"825:27:24","nodes":[],"constant":false,"documentation":{"id":27843,"nodeType":"StructuredDocumentation","src":"757:63:24","text":"@dev Part of the reentrancy lock, 1 = unlocked, 2 = locked."},"mutability":"mutable","name":"_locked","nameLocation":"841:7:24","scope":29062,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27844,"name":"uint256","nodeType":"ElementaryTypeName","src":"825:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":27845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"851:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"id":27850,"nodeType":"VariableDeclaration","src":"925:47:24","nodes":[],"constant":true,"documentation":{"id":27847,"nodeType":"StructuredDocumentation","src":"859:61:24","text":"@dev Amount of liquidity that is burnt on initialization."},"mutability":"constant","name":"BURNT_LIQUIDITY","nameLocation":"950:15:24","scope":29062,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27848,"name":"uint256","nodeType":"ElementaryTypeName","src":"925:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31303030","id":27849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"968:4:24","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"visibility":"private"},{"id":27870,"nodeType":"ModifierDefinition","src":"1013:119:24","nodes":[],"body":{"id":27869,"nodeType":"Block","src":"1029:103:24","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27853,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27846,"src":"1043:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":27854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1054:1:24","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1043:12:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27859,"nodeType":"IfStatement","src":"1039:33:24","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":27856,"name":"Locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29558,"src":"1064:6:24","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":27857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1064:8:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27858,"nodeType":"RevertStatement","src":"1057:15:24"}},{"expression":{"id":27862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27860,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27846,"src":"1082:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"32","id":27861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1092:1:24","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1082:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27863,"nodeType":"ExpressionStatement","src":"1082:11:24"},{"id":27864,"nodeType":"PlaceholderStatement","src":"1103:1:24"},{"expression":{"id":27867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27865,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27846,"src":"1114:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":27866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1124:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1114:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27868,"nodeType":"ExpressionStatement","src":"1114:11:24"}]},"documentation":{"id":27851,"nodeType":"StructuredDocumentation","src":"979:29:24","text":"@dev Prevents reentrancy."},"name":"lock","nameLocation":"1022:4:24","parameters":{"id":27852,"nodeType":"ParameterList","parameters":[],"src":"1026:2:24"},"virtual":false,"visibility":"internal"},{"id":27882,"nodeType":"FunctionDefinition","src":"1138:85:24","nodes":[],"body":{"id":27881,"nodeType":"Block","src":"1165:58:24","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":27876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":27873,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1179:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":27874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1183:6:24","memberName":"sender","nodeType":"MemberAccess","src":"1179:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":27875,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27842,"src":"1193:4:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1179:18:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27880,"nodeType":"IfStatement","src":"1175:41:24","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":27877,"name":"OnlyWETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29545,"src":"1206:8:24","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":27878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1206:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27879,"nodeType":"RevertStatement","src":"1199:17:24"}}]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":27871,"nodeType":"ParameterList","parameters":[],"src":"1145:2:24"},"returnParameters":{"id":27872,"nodeType":"ParameterList","parameters":[],"src":"1165:0:24"},"scope":29062,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":27911,"nodeType":"FunctionDefinition","src":"1468:171:24","nodes":[],"body":{"id":27910,"nodeType":"Block","src":"1495:144:24","nodes":[],"statements":[{"expression":{"id":27890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27888,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27842,"src":"1505:4:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27889,"name":"weth_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27885,"src":"1512:5:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1505:12:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":27891,"nodeType":"ExpressionStatement","src":"1505:12:24"},{"expression":{"id":27900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27892,"name":"lpTokenImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27840,"src":"1527:21:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":27897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1559:11:24","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_LPToken_$29516_$","typeString":"function () returns (contract LPToken)"},"typeName":{"id":27896,"nodeType":"UserDefinedTypeName","pathNode":{"id":27895,"name":"LPToken","nameLocations":["1563:7:24"],"nodeType":"IdentifierPath","referencedDeclaration":29516,"src":"1563:7:24"},"referencedDeclaration":29516,"src":"1563:7:24","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}}},"id":27898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1559:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}],"id":27894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1551:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":27893,"name":"address","nodeType":"ElementaryTypeName","src":"1551:7:24","typeDescriptions":{}}},"id":27899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1551:22:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1527:46:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":27901,"nodeType":"ExpressionStatement","src":"1527:46:24"},{"expression":{"arguments":[{"hexValue":"","id":27906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1625:2:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},{"hexValue":"","id":27907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1629:2:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"arguments":[{"id":27903,"name":"lpTokenImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27840,"src":"1591:21:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27902,"name":"LPToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29516,"src":"1583:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LPToken_$29516_$","typeString":"type(contract LPToken)"}},"id":27904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1583:30:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"id":27905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1614:10:24","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":29204,"src":"1583:41:24","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory) external"}},"id":27908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1583:49:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27909,"nodeType":"ExpressionStatement","src":"1583:49:24"}]},"documentation":{"id":27883,"nodeType":"StructuredDocumentation","src":"1229:234:24","text":" @dev The implementation of the LPToken contract is also\n deployed at the same time. It'll be used later to deploy\n new LPTokens using the [clone factory pattern](https://eips.ethereum.org/EIPS/eip-1167)."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":27886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27885,"mutability":"mutable","name":"weth_","nameLocation":"1488:5:24","nodeType":"VariableDeclaration","scope":27911,"src":"1480:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27884,"name":"address","nodeType":"ElementaryTypeName","src":"1480:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1479:15:24"},"returnParameters":{"id":27887,"nodeType":"ParameterList","parameters":[],"src":"1495:0:24"},"scope":29062,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":28091,"nodeType":"FunctionDefinition","src":"1671:1661:24","nodes":[],"body":{"id":28090,"nodeType":"Block","src":"1816:1516:24","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":27932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":27928,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27915,"src":"1830:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_calldata_ptr","typeString":"struct IDFMM.InitParams calldata"}},"id":27929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1837:6:24","memberName":"tokenX","nodeType":"MemberAccess","referencedDeclaration":29538,"src":"1830:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":27930,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27915,"src":"1847:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_calldata_ptr","typeString":"struct IDFMM.InitParams calldata"}},"id":27931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1854:6:24","memberName":"tokenY","nodeType":"MemberAccess","referencedDeclaration":29540,"src":"1847:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1830:30:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27936,"nodeType":"IfStatement","src":"1826:58:24","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":27933,"name":"InvalidTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29555,"src":"1869:13:24","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":27934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1869:15:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27935,"nodeType":"RevertStatement","src":"1862:22:24"}},{"assignments":[27938,27940,27942,27944,27946],"declarations":[{"constant":false,"id":27938,"mutability":"mutable","name":"valid","nameLocation":"1914:5:24","nodeType":"VariableDeclaration","scope":28090,"src":"1909:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27937,"name":"bool","nodeType":"ElementaryTypeName","src":"1909:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":27940,"mutability":"mutable","name":"invariant","nameLocation":"1940:9:24","nodeType":"VariableDeclaration","scope":28090,"src":"1933:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27939,"name":"int256","nodeType":"ElementaryTypeName","src":"1933:6:24","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":27942,"mutability":"mutable","name":"reserveX","nameLocation":"1971:8:24","nodeType":"VariableDeclaration","scope":28090,"src":"1963:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27941,"name":"uint256","nodeType":"ElementaryTypeName","src":"1963:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27944,"mutability":"mutable","name":"reserveY","nameLocation":"2001:8:24","nodeType":"VariableDeclaration","scope":28090,"src":"1993:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27943,"name":"uint256","nodeType":"ElementaryTypeName","src":"1993:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27946,"mutability":"mutable","name":"totalLiquidity","nameLocation":"2031:14:24","nodeType":"VariableDeclaration","scope":28090,"src":"2023:22:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27945,"name":"uint256","nodeType":"ElementaryTypeName","src":"2023:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27959,"initialValue":{"arguments":[{"expression":{"id":27952,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2103:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":27953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2107:6:24","memberName":"sender","nodeType":"MemberAccess","src":"2103:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":27954,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"2115:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":27955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2121:6:24","memberName":"length","nodeType":"MemberAccess","src":"2115:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":27956,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27915,"src":"2129:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_calldata_ptr","typeString":"struct IDFMM.InitParams calldata"}},"id":27957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2136:4:24","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":29542,"src":"2129:11:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"expression":{"id":27948,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27915,"src":"2068:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_calldata_ptr","typeString":"struct IDFMM.InitParams calldata"}},"id":27949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2075:8:24","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":29536,"src":"2068:15:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27947,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"2058:9:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$29839_$","typeString":"type(contract IStrategy)"}},"id":27950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2058:26:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$29839","typeString":"contract IStrategy"}},"id":27951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2085:4:24","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":29762,"src":"2058:31:24","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256,bytes memory) external returns (bool,int256,uint256,uint256,uint256)"}},"id":27958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2058:92:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,int256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1895:255:24"},{"condition":{"id":27961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2165:6:24","subExpression":{"id":27960,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27938,"src":"2166:5:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27972,"nodeType":"IfStatement","src":"2161:82:24","trueBody":{"id":27971,"nodeType":"Block","src":"2173:70:24","statements":[{"errorCall":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27963,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27940,"src":"2202:9:24","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":27964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2214:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2202:13:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":27967,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27940,"src":"2221:9:24","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27966,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27763,"src":"2217:3:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":27968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2217:14:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27962,"name":"Invalid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29552,"src":"2194:7:24","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bool_$_t_uint256_$returns$__$","typeString":"function (bool,uint256) pure"}},"id":27969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2194:38:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27970,"nodeType":"RevertStatement","src":"2187:45:24"}]}},{"assignments":[27975],"declarations":[{"constant":false,"id":27975,"mutability":"mutable","name":"liquidityToken","nameLocation":"2261:14:24","nodeType":"VariableDeclaration","scope":28090,"src":"2253:22:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"},"typeName":{"id":27974,"nodeType":"UserDefinedTypeName","pathNode":{"id":27973,"name":"LPToken","nameLocations":["2253:7:24"],"nodeType":"IdentifierPath","referencedDeclaration":29516,"src":"2253:7:24"},"referencedDeclaration":29516,"src":"2253:7:24","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"visibility":"internal"}],"id":27981,"initialValue":{"arguments":[{"arguments":[{"id":27978,"name":"lpTokenImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27840,"src":"2292:21:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27977,"name":"clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28961,"src":"2286:5:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_address_$","typeString":"function (address) returns (address)"}},"id":27979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2286:28:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27976,"name":"LPToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29516,"src":"2278:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LPToken_$29516_$","typeString":"type(contract LPToken)"}},"id":27980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2278:37:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"nodeType":"VariableDeclarationStatement","src":"2253:62:24"},{"assignments":[27983],"declarations":[{"constant":false,"id":27983,"mutability":"mutable","name":"tokenMetadata","nameLocation":"2340:13:24","nodeType":"VariableDeclaration","scope":28090,"src":"2326:27:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27982,"name":"string","nodeType":"ElementaryTypeName","src":"2326:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":27992,"initialValue":{"arguments":[{"expression":{"id":27985,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27915,"src":"2390:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_calldata_ptr","typeString":"struct IDFMM.InitParams calldata"}},"id":27986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2397:8:24","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":29536,"src":"2390:15:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":27987,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27915,"src":"2407:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_calldata_ptr","typeString":"struct IDFMM.InitParams calldata"}},"id":27988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2414:6:24","memberName":"tokenX","nodeType":"MemberAccess","referencedDeclaration":29538,"src":"2407:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":27989,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27915,"src":"2422:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_calldata_ptr","typeString":"struct IDFMM.InitParams calldata"}},"id":27990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2429:6:24","memberName":"tokenY","nodeType":"MemberAccess","referencedDeclaration":29540,"src":"2422:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":27984,"name":"_prepareTokenMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28166,"src":"2368:21:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address,address,address) view returns (string memory)"}},"id":27991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2368:68:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"2326:110:24"},{"expression":{"arguments":[{"id":27996,"name":"tokenMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27983,"src":"2472:13:24","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27997,"name":"tokenMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27983,"src":"2487:13:24","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":27993,"name":"liquidityToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27975,"src":"2446:14:24","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"id":27995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2461:10:24","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":29204,"src":"2446:25:24","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory) external"}},"id":27998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2446:55:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27999,"nodeType":"ExpressionStatement","src":"2446:55:24"},{"expression":{"arguments":[{"expression":{"id":28003,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2531:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2535:6:24","memberName":"sender","nodeType":"MemberAccess","src":"2531:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28005,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27946,"src":"2543:14:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":28006,"name":"BURNT_LIQUIDITY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27850,"src":"2560:15:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2543:32:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28000,"name":"liquidityToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27975,"src":"2511:14:24","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"id":28002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2526:4:24","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":29152,"src":"2511:19:24","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":28008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2511:65:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28009,"nodeType":"ExpressionStatement","src":"2511:65:24"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":28015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2614:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":28014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2606:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28013,"name":"address","nodeType":"ElementaryTypeName","src":"2606:7:24","typeDescriptions":{}}},"id":28016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2606:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28017,"name":"BURNT_LIQUIDITY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27850,"src":"2618:15:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28010,"name":"liquidityToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27975,"src":"2586:14:24","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"id":28012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2601:4:24","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":29152,"src":"2586:19:24","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":28018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2586:48:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28019,"nodeType":"ExpressionStatement","src":"2586:48:24"},{"assignments":[28022],"declarations":[{"constant":false,"id":28022,"mutability":"mutable","name":"pool","nameLocation":"2657:4:24","nodeType":"VariableDeclaration","scope":28090,"src":"2645:16:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_memory_ptr","typeString":"struct IDFMM.Pool"},"typeName":{"id":28021,"nodeType":"UserDefinedTypeName","pathNode":{"id":28020,"name":"Pool","nameLocations":["2645:4:24"],"nodeType":"IdentifierPath","referencedDeclaration":29534,"src":"2645:4:24"},"referencedDeclaration":29534,"src":"2645:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage_ptr","typeString":"struct IDFMM.Pool"}},"visibility":"internal"}],"id":28038,"initialValue":{"arguments":[{"expression":{"id":28024,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27915,"src":"2693:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_calldata_ptr","typeString":"struct IDFMM.InitParams calldata"}},"id":28025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2700:8:24","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":29536,"src":"2693:15:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":28026,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27915,"src":"2730:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_calldata_ptr","typeString":"struct IDFMM.InitParams calldata"}},"id":28027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2737:6:24","memberName":"tokenX","nodeType":"MemberAccess","referencedDeclaration":29538,"src":"2730:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":28028,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27915,"src":"2765:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_calldata_ptr","typeString":"struct IDFMM.InitParams calldata"}},"id":28029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2772:6:24","memberName":"tokenY","nodeType":"MemberAccess","referencedDeclaration":29540,"src":"2765:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28030,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27942,"src":"2802:8:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28031,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27944,"src":"2834:8:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28032,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27946,"src":"2872:14:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":28035,"name":"liquidityToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27975,"src":"2924:14:24","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}],"id":28034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2916:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28033,"name":"address","nodeType":"ElementaryTypeName","src":"2916:7:24","typeDescriptions":{}}},"id":28036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2916:23:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":28023,"name":"Pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29534,"src":"2664:4:24","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Pool_$29534_storage_ptr_$","typeString":"type(struct IDFMM.Pool storage pointer)"}},"id":28037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2683:8:24","2722:6:24","2757:6:24","2792:8:24","2824:8:24","2856:14:24","2900:14:24"],"names":["strategy","tokenX","tokenY","reserveX","reserveY","totalLiquidity","liquidityToken"],"nodeType":"FunctionCall","src":"2664:286:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_memory_ptr","typeString":"struct IDFMM.Pool memory"}},"nodeType":"VariableDeclarationStatement","src":"2645:305:24"},{"expression":{"arguments":[{"id":28042,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28022,"src":"2972:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_memory_ptr","typeString":"struct IDFMM.Pool memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Pool_$29534_memory_ptr","typeString":"struct IDFMM.Pool memory"}],"expression":{"id":28039,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"2961:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2967:4:24","memberName":"push","nodeType":"MemberAccess","src":"2961:10:24","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Pool_$29534_storage_$dyn_storage_ptr_$_t_struct$_Pool_$29534_storage_$returns$__$attached_to$_t_array$_t_struct$_Pool_$29534_storage_$dyn_storage_ptr_$","typeString":"function (struct IDFMM.Pool storage ref[] storage pointer,struct IDFMM.Pool storage ref)"}},"id":28043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2961:16:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28044,"nodeType":"ExpressionStatement","src":"2961:16:24"},{"assignments":[28046],"declarations":[{"constant":false,"id":28046,"mutability":"mutable","name":"poolId","nameLocation":"2995:6:24","nodeType":"VariableDeclaration","scope":28090,"src":"2987:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28045,"name":"uint256","nodeType":"ElementaryTypeName","src":"2987:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28051,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":28047,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"3004:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3010:6:24","memberName":"length","nodeType":"MemberAccess","src":"3004:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":28049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3019:1:24","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3004:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2987:33:24"},{"expression":{"arguments":[{"expression":{"id":28053,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27915,"src":"3045:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_calldata_ptr","typeString":"struct IDFMM.InitParams calldata"}},"id":28054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3052:6:24","memberName":"tokenX","nodeType":"MemberAccess","referencedDeclaration":29538,"src":"3045:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28055,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27942,"src":"3060:8:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28052,"name":"_transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28682,"src":"3031:13:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":28056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3031:38:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28057,"nodeType":"ExpressionStatement","src":"3031:38:24"},{"expression":{"arguments":[{"expression":{"id":28059,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27915,"src":"3093:6:24","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_calldata_ptr","typeString":"struct IDFMM.InitParams calldata"}},"id":28060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3100:6:24","memberName":"tokenY","nodeType":"MemberAccess","referencedDeclaration":29540,"src":"3093:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28061,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27944,"src":"3108:8:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28058,"name":"_transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28682,"src":"3079:13:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":28062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3079:38:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28063,"nodeType":"ExpressionStatement","src":"3079:38:24"},{"expression":{"arguments":[{"id":28065,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28046,"src":"3137:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":28068,"name":"liquidityToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27975,"src":"3153:14:24","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}],"id":28067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3145:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28066,"name":"address","nodeType":"ElementaryTypeName","src":"3145:7:24","typeDescriptions":{}}},"id":28069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3145:23:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":28064,"name":"emitInit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28125,"src":"3128:8:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":28070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3128:41:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28071,"nodeType":"ExpressionStatement","src":"3128:41:24"},{"expression":{"arguments":[{"hexValue":"6c697175696469747920746f6b656e20616464726573733a20","id":28075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3192:27:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c474adecb48c1e2288f490b736ce610eb38ed77826d0d5a474dce2dc232fb05","typeString":"literal_string \"liquidity token address: \""},"value":"liquidity token address: "},{"arguments":[{"id":28078,"name":"liquidityToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27975,"src":"3229:14:24","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}],"id":28077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3221:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28076,"name":"address","nodeType":"ElementaryTypeName","src":"3221:7:24","typeDescriptions":{}}},"id":28079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3221:23:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6c474adecb48c1e2288f490b736ce610eb38ed77826d0d5a474dce2dc232fb05","typeString":"literal_string \"liquidity token address: \""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":28072,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"3179:8:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":28074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3188:3:24","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18207,"src":"3179:12:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":28080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3179:66:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28081,"nodeType":"ExpressionStatement","src":"3179:66:24"},{"expression":{"components":[{"id":28082,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28046,"src":"3264:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28083,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27942,"src":"3272:8:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28084,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27944,"src":"3282:8:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28085,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27946,"src":"3292:14:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":28086,"name":"BURNT_LIQUIDITY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27850,"src":"3309:15:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3292:32:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":28088,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3263:62:24","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"functionReturnParameters":27927,"id":28089,"nodeType":"Return","src":"3256:69:24"}]},"baseFunctions":[29645],"documentation":{"id":27912,"nodeType":"StructuredDocumentation","src":"1645:21:24","text":"@inheritdoc IDFMM"},"functionSelector":"1455f1fc","implemented":true,"kind":"function","modifiers":[{"id":27918,"kind":"modifierInvocation","modifierName":{"id":27917,"name":"lock","nameLocations":["1754:4:24"],"nodeType":"IdentifierPath","referencedDeclaration":27870,"src":"1754:4:24"},"nodeType":"ModifierInvocation","src":"1754:4:24"}],"name":"init","nameLocation":"1680:4:24","parameters":{"id":27916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27915,"mutability":"mutable","name":"params","nameLocation":"1705:6:24","nodeType":"VariableDeclaration","scope":28091,"src":"1685:26:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_calldata_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":27914,"nodeType":"UserDefinedTypeName","pathNode":{"id":27913,"name":"InitParams","nameLocations":["1685:10:24"],"nodeType":"IdentifierPath","referencedDeclaration":29543,"src":"1685:10:24"},"referencedDeclaration":29543,"src":"1685:10:24","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"src":"1684:28:24"},"returnParameters":{"id":27927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27920,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28091,"src":"1776:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27919,"name":"uint256","nodeType":"ElementaryTypeName","src":"1776:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27922,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28091,"src":"1785:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27921,"name":"uint256","nodeType":"ElementaryTypeName","src":"1785:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27924,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28091,"src":"1794:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27923,"name":"uint256","nodeType":"ElementaryTypeName","src":"1794:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27926,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28091,"src":"1803:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27925,"name":"uint256","nodeType":"ElementaryTypeName","src":"1803:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1775:36:24"},"scope":29062,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":28125,"nodeType":"FunctionDefinition","src":"3338:367:24","nodes":[],"body":{"id":28124,"nodeType":"Block","src":"3397:308:24","nodes":[],"statements":[{"assignments":[28100],"declarations":[{"constant":false,"id":28100,"mutability":"mutable","name":"pool","nameLocation":"3419:4:24","nodeType":"VariableDeclaration","scope":28124,"src":"3407:16:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_memory_ptr","typeString":"struct IDFMM.Pool"},"typeName":{"id":28099,"nodeType":"UserDefinedTypeName","pathNode":{"id":28098,"name":"Pool","nameLocations":["3407:4:24"],"nodeType":"IdentifierPath","referencedDeclaration":29534,"src":"3407:4:24"},"referencedDeclaration":29534,"src":"3407:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage_ptr","typeString":"struct IDFMM.Pool"}},"visibility":"internal"}],"id":28104,"initialValue":{"baseExpression":{"id":28101,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"3426:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28103,"indexExpression":{"id":28102,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28093,"src":"3432:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3426:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3407:32:24"},{"eventCall":{"arguments":[{"expression":{"id":28106,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3473:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3477:6:24","memberName":"sender","nodeType":"MemberAccess","src":"3473:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":28108,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28100,"src":"3497:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_memory_ptr","typeString":"struct IDFMM.Pool memory"}},"id":28109,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3502:8:24","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":29521,"src":"3497:13:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28110,"name":"lpToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28095,"src":"3524:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":28111,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28100,"src":"3545:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_memory_ptr","typeString":"struct IDFMM.Pool memory"}},"id":28112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3550:6:24","memberName":"tokenX","nodeType":"MemberAccess","referencedDeclaration":29523,"src":"3545:11:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":28113,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28100,"src":"3570:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_memory_ptr","typeString":"struct IDFMM.Pool memory"}},"id":28114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3575:6:24","memberName":"tokenY","nodeType":"MemberAccess","referencedDeclaration":29525,"src":"3570:11:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28115,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28093,"src":"3595:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":28116,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28100,"src":"3615:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_memory_ptr","typeString":"struct IDFMM.Pool memory"}},"id":28117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3620:8:24","memberName":"reserveX","nodeType":"MemberAccess","referencedDeclaration":29527,"src":"3615:13:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":28118,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28100,"src":"3642:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_memory_ptr","typeString":"struct IDFMM.Pool memory"}},"id":28119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3647:8:24","memberName":"reserveY","nodeType":"MemberAccess","referencedDeclaration":29529,"src":"3642:13:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":28120,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28100,"src":"3669:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_memory_ptr","typeString":"struct IDFMM.Pool memory"}},"id":28121,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3674:14:24","memberName":"totalLiquidity","nodeType":"MemberAccess","referencedDeclaration":29531,"src":"3669:19:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28105,"name":"Init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29591,"src":"3455:4:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,address,address,address,uint256,uint256,uint256,uint256)"}},"id":28122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3455:243:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28123,"nodeType":"EmitStatement","src":"3450:248:24"}]},"implemented":true,"kind":"function","modifiers":[],"name":"emitInit","nameLocation":"3347:8:24","parameters":{"id":28096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28093,"mutability":"mutable","name":"poolId","nameLocation":"3364:6:24","nodeType":"VariableDeclaration","scope":28125,"src":"3356:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28092,"name":"uint256","nodeType":"ElementaryTypeName","src":"3356:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28095,"mutability":"mutable","name":"lpToken","nameLocation":"3380:7:24","nodeType":"VariableDeclaration","scope":28125,"src":"3372:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28094,"name":"address","nodeType":"ElementaryTypeName","src":"3372:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3355:33:24"},"returnParameters":{"id":28097,"nodeType":"ParameterList","parameters":[],"src":"3397:0:24"},"scope":29062,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":28166,"nodeType":"FunctionDefinition","src":"3711:426:24","nodes":[],"body":{"id":28165,"nodeType":"Block","src":"3860:277:24","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"44464d4d2d","id":28139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3904:7:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_c1ff2b8f311e0cea31d662e0f4b410eb3a2ae0d020338afcb00a50556ec7f963","typeString":"literal_string \"DFMM-\""},"value":"DFMM-"},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":28141,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28127,"src":"3935:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28140,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"3925:9:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$29839_$","typeString":"type(contract IStrategy)"}},"id":28142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3925:19:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$29839","typeString":"contract IStrategy"}},"id":28143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3945:4:24","memberName":"name","nodeType":"MemberAccess","referencedDeclaration":29768,"src":"3925:24:24","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":28144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3925:26:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2d","id":28145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3965:3:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":28147,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28129,"src":"3988:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28146,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25948,"src":"3982:5:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$25948_$","typeString":"type(contract ERC20)"}},"id":28148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3982:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":28149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3996:6:24","memberName":"symbol","nodeType":"MemberAccess","referencedDeclaration":25583,"src":"3982:20:24","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":28150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3982:22:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2d","id":28151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4018:3:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":28153,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28131,"src":"4041:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28152,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25948,"src":"4035:5:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$25948_$","typeString":"type(contract ERC20)"}},"id":28154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4035:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":28155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4049:6:24","memberName":"symbol","nodeType":"MemberAccess","referencedDeclaration":25583,"src":"4035:20:24","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":28156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4035:22:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2d","id":28157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4071:3:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},{"arguments":[{"expression":{"id":28160,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"4107:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4113:6:24","memberName":"length","nodeType":"MemberAccess","src":"4107:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28158,"name":"LibString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26659,"src":"4088:9:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibString_$26659_$","typeString":"type(library LibString)"}},"id":28159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4098:8:24","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":26658,"src":"4088:18:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":28162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4088:32:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c1ff2b8f311e0cea31d662e0f4b410eb3a2ae0d020338afcb00a50556ec7f963","typeString":"literal_string \"DFMM-\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":28137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3877:6:24","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":28136,"name":"string","nodeType":"ElementaryTypeName","src":"3877:6:24","typeDescriptions":{}}},"id":28138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3884:6:24","memberName":"concat","nodeType":"MemberAccess","src":"3877:13:24","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":28163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3877:253:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":28135,"id":28164,"nodeType":"Return","src":"3870:260:24"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_prepareTokenMetadata","nameLocation":"3720:21:24","parameters":{"id":28132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28127,"mutability":"mutable","name":"strategy","nameLocation":"3759:8:24","nodeType":"VariableDeclaration","scope":28166,"src":"3751:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28126,"name":"address","nodeType":"ElementaryTypeName","src":"3751:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28129,"mutability":"mutable","name":"tokenX","nameLocation":"3785:6:24","nodeType":"VariableDeclaration","scope":28166,"src":"3777:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28128,"name":"address","nodeType":"ElementaryTypeName","src":"3777:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28131,"mutability":"mutable","name":"tokenY","nameLocation":"3809:6:24","nodeType":"VariableDeclaration","scope":28166,"src":"3801:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28130,"name":"address","nodeType":"ElementaryTypeName","src":"3801:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3741:80:24"},"returnParameters":{"id":28135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28134,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28166,"src":"3845:13:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28133,"name":"string","nodeType":"ElementaryTypeName","src":"3845:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3844:15:24"},"scope":29062,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":28225,"nodeType":"FunctionDefinition","src":"4169:470:24","nodes":[],"body":{"id":28224,"nodeType":"Block","src":"4304:335:24","nodes":[],"statements":[{"assignments":[28183,28185,28187],"declarations":[{"constant":false,"id":28183,"mutability":"mutable","name":"deltaX","nameLocation":"4323:6:24","nodeType":"VariableDeclaration","scope":28224,"src":"4315:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28182,"name":"uint256","nodeType":"ElementaryTypeName","src":"4315:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28185,"mutability":"mutable","name":"deltaY","nameLocation":"4339:6:24","nodeType":"VariableDeclaration","scope":28224,"src":"4331:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28184,"name":"uint256","nodeType":"ElementaryTypeName","src":"4331:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28187,"mutability":"mutable","name":"deltaL","nameLocation":"4355:6:24","nodeType":"VariableDeclaration","scope":28224,"src":"4347:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28186,"name":"uint256","nodeType":"ElementaryTypeName","src":"4347:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28193,"initialValue":{"arguments":[{"id":28189,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28169,"src":"4397:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":28190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4405:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":28191,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28171,"src":"4411:4:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":28188,"name":"_updatePoolReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28866,"src":"4377:19:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$_t_bytes_calldata_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bool,bytes calldata) returns (uint256,uint256,uint256)"}},"id":28192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4377:39:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4314:102:24"},{"expression":{"arguments":[{"expression":{"baseExpression":{"id":28195,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"4441:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28197,"indexExpression":{"id":28196,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28169,"src":"4447:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4441:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4455:6:24","memberName":"tokenX","nodeType":"MemberAccess","referencedDeclaration":29523,"src":"4441:20:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28199,"name":"deltaX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28183,"src":"4463:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28194,"name":"_transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28682,"src":"4427:13:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":28200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4427:43:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28201,"nodeType":"ExpressionStatement","src":"4427:43:24"},{"expression":{"arguments":[{"expression":{"baseExpression":{"id":28203,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"4494:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28205,"indexExpression":{"id":28204,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28169,"src":"4500:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4494:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4508:6:24","memberName":"tokenY","nodeType":"MemberAccess","referencedDeclaration":29525,"src":"4494:20:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28207,"name":"deltaY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28185,"src":"4516:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28202,"name":"_transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28682,"src":"4480:13:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":28208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4480:43:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28209,"nodeType":"ExpressionStatement","src":"4480:43:24"},{"eventCall":{"arguments":[{"expression":{"id":28211,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4548:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4552:6:24","memberName":"sender","nodeType":"MemberAccess","src":"4548:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28213,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28169,"src":"4560:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28214,"name":"deltaX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28183,"src":"4568:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28215,"name":"deltaY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28185,"src":"4576:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28216,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28187,"src":"4584:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28210,"name":"Allocate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29604,"src":"4539:8:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256,uint256)"}},"id":28217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4539:52:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28218,"nodeType":"EmitStatement","src":"4534:57:24"},{"expression":{"components":[{"id":28219,"name":"deltaX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28183,"src":"4609:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28220,"name":"deltaY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28185,"src":"4617:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28221,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28187,"src":"4625:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":28222,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4608:24:24","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"functionReturnParameters":28181,"id":28223,"nodeType":"Return","src":"4601:31:24"}]},"baseFunctions":[29659],"documentation":{"id":28167,"nodeType":"StructuredDocumentation","src":"4143:21:24","text":"@inheritdoc IDFMM"},"functionSelector":"2ec38188","implemented":true,"kind":"function","modifiers":[{"id":28174,"kind":"modifierInvocation","modifierName":{"id":28173,"name":"lock","nameLocations":["4263:4:24"],"nodeType":"IdentifierPath","referencedDeclaration":27870,"src":"4263:4:24"},"nodeType":"ModifierInvocation","src":"4263:4:24"}],"name":"allocate","nameLocation":"4178:8:24","parameters":{"id":28172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28169,"mutability":"mutable","name":"poolId","nameLocation":"4204:6:24","nodeType":"VariableDeclaration","scope":28225,"src":"4196:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28168,"name":"uint256","nodeType":"ElementaryTypeName","src":"4196:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28171,"mutability":"mutable","name":"data","nameLocation":"4235:4:24","nodeType":"VariableDeclaration","scope":28225,"src":"4220:19:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":28170,"name":"bytes","nodeType":"ElementaryTypeName","src":"4220:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4186:59:24"},"returnParameters":{"id":28181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28176,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28225,"src":"4277:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28175,"name":"uint256","nodeType":"ElementaryTypeName","src":"4277:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28178,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28225,"src":"4286:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28177,"name":"uint256","nodeType":"ElementaryTypeName","src":"4286:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28180,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28225,"src":"4295:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28179,"name":"uint256","nodeType":"ElementaryTypeName","src":"4295:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4276:27:24"},"scope":29062,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":28288,"nodeType":"FunctionDefinition","src":"4671:483:24","nodes":[],"body":{"id":28287,"nodeType":"Block","src":"4800:354:24","nodes":[],"statements":[{"assignments":[28242,28244,28246],"declarations":[{"constant":false,"id":28242,"mutability":"mutable","name":"deltaX","nameLocation":"4819:6:24","nodeType":"VariableDeclaration","scope":28287,"src":"4811:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28241,"name":"uint256","nodeType":"ElementaryTypeName","src":"4811:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28244,"mutability":"mutable","name":"deltaY","nameLocation":"4835:6:24","nodeType":"VariableDeclaration","scope":28287,"src":"4827:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28243,"name":"uint256","nodeType":"ElementaryTypeName","src":"4827:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28246,"mutability":"mutable","name":"deltaL","nameLocation":"4851:6:24","nodeType":"VariableDeclaration","scope":28287,"src":"4843:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28245,"name":"uint256","nodeType":"ElementaryTypeName","src":"4843:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28252,"initialValue":{"arguments":[{"id":28248,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28228,"src":"4893:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":28249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4901:5:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":28250,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28230,"src":"4908:4:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":28247,"name":"_updatePoolReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28866,"src":"4873:19:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$_t_bytes_calldata_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bool,bytes calldata) returns (uint256,uint256,uint256)"}},"id":28251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4873:40:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4810:103:24"},{"expression":{"arguments":[{"expression":{"baseExpression":{"id":28254,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"4934:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28256,"indexExpression":{"id":28255,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28228,"src":"4940:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4934:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28257,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4948:6:24","memberName":"tokenX","nodeType":"MemberAccess","referencedDeclaration":29523,"src":"4934:20:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":28258,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4956:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4960:6:24","memberName":"sender","nodeType":"MemberAccess","src":"4956:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28260,"name":"deltaX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28242,"src":"4968:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28253,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28735,"src":"4924:9:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":28261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4924:51:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28262,"nodeType":"ExpressionStatement","src":"4924:51:24"},{"expression":{"arguments":[{"expression":{"baseExpression":{"id":28264,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"4995:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28266,"indexExpression":{"id":28265,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28228,"src":"5001:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4995:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28267,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5009:6:24","memberName":"tokenY","nodeType":"MemberAccess","referencedDeclaration":29525,"src":"4995:20:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":28268,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5017:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5021:6:24","memberName":"sender","nodeType":"MemberAccess","src":"5017:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28270,"name":"deltaY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28244,"src":"5029:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28263,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28735,"src":"4985:9:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":28271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4985:51:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28272,"nodeType":"ExpressionStatement","src":"4985:51:24"},{"eventCall":{"arguments":[{"expression":{"id":28274,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5063:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5067:6:24","memberName":"sender","nodeType":"MemberAccess","src":"5063:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28276,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28228,"src":"5075:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28277,"name":"deltaX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28242,"src":"5083:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28278,"name":"deltaY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28244,"src":"5091:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28279,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28246,"src":"5099:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28273,"name":"Deallocate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29617,"src":"5052:10:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256,uint256)"}},"id":28280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5052:54:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28281,"nodeType":"EmitStatement","src":"5047:59:24"},{"expression":{"components":[{"id":28282,"name":"deltaX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28242,"src":"5124:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28283,"name":"deltaY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28244,"src":"5132:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28284,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28246,"src":"5140:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":28285,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5123:24:24","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"functionReturnParameters":28240,"id":28286,"nodeType":"Return","src":"5116:31:24"}]},"baseFunctions":[29673],"documentation":{"id":28226,"nodeType":"StructuredDocumentation","src":"4645:21:24","text":"@inheritdoc IDFMM"},"functionSelector":"9d942f9a","implemented":true,"kind":"function","modifiers":[{"id":28233,"kind":"modifierInvocation","modifierName":{"id":28232,"name":"lock","nameLocations":["4759:4:24"],"nodeType":"IdentifierPath","referencedDeclaration":27870,"src":"4759:4:24"},"nodeType":"ModifierInvocation","src":"4759:4:24"}],"name":"deallocate","nameLocation":"4680:10:24","parameters":{"id":28231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28228,"mutability":"mutable","name":"poolId","nameLocation":"4708:6:24","nodeType":"VariableDeclaration","scope":28288,"src":"4700:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28227,"name":"uint256","nodeType":"ElementaryTypeName","src":"4700:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28230,"mutability":"mutable","name":"data","nameLocation":"4739:4:24","nodeType":"VariableDeclaration","scope":28288,"src":"4724:19:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":28229,"name":"bytes","nodeType":"ElementaryTypeName","src":"4724:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4690:59:24"},"returnParameters":{"id":28240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28235,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28288,"src":"4773:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28234,"name":"uint256","nodeType":"ElementaryTypeName","src":"4773:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28237,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28288,"src":"4782:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28236,"name":"uint256","nodeType":"ElementaryTypeName","src":"4782:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28239,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28288,"src":"4791:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28238,"name":"uint256","nodeType":"ElementaryTypeName","src":"4791:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4772:27:24"},"scope":29062,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":28371,"nodeType":"FunctionDefinition","src":"5186:847:24","nodes":[],"body":{"id":28370,"nodeType":"Block","src":"5300:733:24","nodes":[],"statements":[{"assignments":[28303,28305,null,28307,28309,28311],"declarations":[{"constant":false,"id":28303,"mutability":"mutable","name":"valid","nameLocation":"5329:5:24","nodeType":"VariableDeclaration","scope":28370,"src":"5324:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28302,"name":"bool","nodeType":"ElementaryTypeName","src":"5324:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28305,"mutability":"mutable","name":"invariant","nameLocation":"5355:9:24","nodeType":"VariableDeclaration","scope":28370,"src":"5348:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":28304,"name":"int256","nodeType":"ElementaryTypeName","src":"5348:6:24","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},null,{"constant":false,"id":28307,"mutability":"mutable","name":"adjustedReserveX","nameLocation":"5400:16:24","nodeType":"VariableDeclaration","scope":28370,"src":"5392:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28306,"name":"uint256","nodeType":"ElementaryTypeName","src":"5392:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28309,"mutability":"mutable","name":"adjustedReserveY","nameLocation":"5438:16:24","nodeType":"VariableDeclaration","scope":28370,"src":"5430:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28308,"name":"uint256","nodeType":"ElementaryTypeName","src":"5430:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28311,"mutability":"mutable","name":"adjustedTotalLiquidity","nameLocation":"5476:22:24","nodeType":"VariableDeclaration","scope":28370,"src":"5468:30:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28310,"name":"uint256","nodeType":"ElementaryTypeName","src":"5468:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28324,"initialValue":{"arguments":[{"expression":{"id":28319,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5571:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5575:6:24","memberName":"sender","nodeType":"MemberAccess","src":"5571:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28321,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28291,"src":"5583:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28322,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28293,"src":"5591:4:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"expression":{"baseExpression":{"id":28313,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"5521:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28315,"indexExpression":{"id":28314,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28291,"src":"5527:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5521:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5535:8:24","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":29521,"src":"5521:22:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28312,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"5511:9:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$29839_$","typeString":"type(contract IStrategy)"}},"id":28317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5511:33:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$29839","typeString":"contract IStrategy"}},"id":28318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5545:12:24","memberName":"validateSwap","nodeType":"MemberAccess","referencedDeclaration":29808,"src":"5511:46:24","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_int256_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256,bytes memory) view external returns (bool,int256,int256,uint256,uint256,uint256)"}},"id":28323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5511:94:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_int256_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,int256,int256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5310:295:24"},{"condition":{"id":28326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5620:6:24","subExpression":{"id":28325,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28303,"src":"5621:5:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28337,"nodeType":"IfStatement","src":"5616:82:24","trueBody":{"id":28336,"nodeType":"Block","src":"5628:70:24","statements":[{"errorCall":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":28330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28328,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28305,"src":"5657:9:24","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":28329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5669:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5657:13:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":28332,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28305,"src":"5676:9:24","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":28331,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27763,"src":"5672:3:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":28333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5672:14:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28327,"name":"Invalid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29552,"src":"5649:7:24","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bool_$_t_uint256_$returns$__$","typeString":"function (bool,uint256) pure"}},"id":28334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5649:38:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28335,"nodeType":"RevertStatement","src":"5642:45:24"}]}},{"expression":{"id":28343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":28338,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"5708:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28340,"indexExpression":{"id":28339,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28291,"src":"5714:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5708:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5722:14:24","memberName":"totalLiquidity","nodeType":"MemberAccess","referencedDeclaration":29531,"src":"5708:28:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28342,"name":"adjustedTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28311,"src":"5739:22:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5708:53:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28344,"nodeType":"ExpressionStatement","src":"5708:53:24"},{"assignments":[28346,null,null,28348,28350],"declarations":[{"constant":false,"id":28346,"mutability":"mutable","name":"isSwapXForY","nameLocation":"5778:11:24","nodeType":"VariableDeclaration","scope":28370,"src":"5773:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28345,"name":"bool","nodeType":"ElementaryTypeName","src":"5773:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null,null,{"constant":false,"id":28348,"mutability":"mutable","name":"inputAmount","nameLocation":"5801:11:24","nodeType":"VariableDeclaration","scope":28370,"src":"5793:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28347,"name":"uint256","nodeType":"ElementaryTypeName","src":"5793:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28350,"mutability":"mutable","name":"outputAmount","nameLocation":"5822:12:24","nodeType":"VariableDeclaration","scope":28370,"src":"5814:20:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28349,"name":"uint256","nodeType":"ElementaryTypeName","src":"5814:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28356,"initialValue":{"arguments":[{"id":28352,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28291,"src":"5858:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28353,"name":"adjustedReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28307,"src":"5866:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28354,"name":"adjustedReserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28309,"src":"5884:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28351,"name":"_settle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28607,"src":"5850:7:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256,uint256) returns (bool,address,address,uint256,uint256)"}},"id":28355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5850:51:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,address,address,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5772:129:24"},{"eventCall":{"arguments":[{"expression":{"id":28358,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5922:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5926:6:24","memberName":"sender","nodeType":"MemberAccess","src":"5922:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28360,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28291,"src":"5934:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28361,"name":"isSwapXForY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28346,"src":"5942:11:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28362,"name":"inputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28348,"src":"5955:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28363,"name":"outputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28350,"src":"5968:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28357,"name":"Swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29630,"src":"5917:4:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bool_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,bool,uint256,uint256)"}},"id":28364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5917:64:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28365,"nodeType":"EmitStatement","src":"5912:69:24"},{"expression":{"components":[{"id":28366,"name":"inputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28348,"src":"6000:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28367,"name":"outputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28350,"src":"6013:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":28368,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5999:27:24","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":28301,"id":28369,"nodeType":"Return","src":"5992:34:24"}]},"baseFunctions":[29685],"documentation":{"id":28289,"nodeType":"StructuredDocumentation","src":"5160:21:24","text":"@inheritdoc IDFMM"},"functionSelector":"bd0625ab","implemented":true,"kind":"function","modifiers":[{"id":28296,"kind":"modifierInvocation","modifierName":{"id":28295,"name":"lock","nameLocations":["5268:4:24"],"nodeType":"IdentifierPath","referencedDeclaration":27870,"src":"5268:4:24"},"nodeType":"ModifierInvocation","src":"5268:4:24"}],"name":"swap","nameLocation":"5195:4:24","parameters":{"id":28294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28291,"mutability":"mutable","name":"poolId","nameLocation":"5217:6:24","nodeType":"VariableDeclaration","scope":28371,"src":"5209:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28290,"name":"uint256","nodeType":"ElementaryTypeName","src":"5209:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28293,"mutability":"mutable","name":"data","nameLocation":"5248:4:24","nodeType":"VariableDeclaration","scope":28371,"src":"5233:19:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":28292,"name":"bytes","nodeType":"ElementaryTypeName","src":"5233:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5199:59:24"},"returnParameters":{"id":28301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28298,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28371,"src":"5282:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28297,"name":"uint256","nodeType":"ElementaryTypeName","src":"5282:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28371,"src":"5291:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28299,"name":"uint256","nodeType":"ElementaryTypeName","src":"5291:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5281:18:24"},"scope":29062,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":28395,"nodeType":"FunctionDefinition","src":"6065:150:24","nodes":[],"body":{"id":28394,"nodeType":"Block","src":"6132:83:24","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":28388,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6183:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6187:6:24","memberName":"sender","nodeType":"MemberAccess","src":"6183:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28390,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28374,"src":"6195:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28391,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28376,"src":"6203:4:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"expression":{"baseExpression":{"id":28382,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"6152:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28384,"indexExpression":{"id":28383,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28374,"src":"6158:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6152:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6166:8:24","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":29521,"src":"6152:22:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28381,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"6142:9:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$29839_$","typeString":"type(contract IStrategy)"}},"id":28386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6142:33:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$29839","typeString":"contract IStrategy"}},"id":28387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6176:6:24","memberName":"update","nodeType":"MemberAccess","referencedDeclaration":29817,"src":"6142:40:24","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory) external"}},"id":28392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6142:66:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28393,"nodeType":"ExpressionStatement","src":"6142:66:24"}]},"baseFunctions":[29693],"documentation":{"id":28372,"nodeType":"StructuredDocumentation","src":"6039:21:24","text":"@inheritdoc IDFMM"},"functionSelector":"0216b838","implemented":true,"kind":"function","modifiers":[{"id":28379,"kind":"modifierInvocation","modifierName":{"id":28378,"name":"lock","nameLocations":["6127:4:24"],"nodeType":"IdentifierPath","referencedDeclaration":27870,"src":"6127:4:24"},"nodeType":"ModifierInvocation","src":"6127:4:24"}],"name":"update","nameLocation":"6074:6:24","parameters":{"id":28377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28374,"mutability":"mutable","name":"poolId","nameLocation":"6089:6:24","nodeType":"VariableDeclaration","scope":28395,"src":"6081:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28373,"name":"uint256","nodeType":"ElementaryTypeName","src":"6081:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28376,"mutability":"mutable","name":"data","nameLocation":"6112:4:24","nodeType":"VariableDeclaration","scope":28395,"src":"6097:19:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":28375,"name":"bytes","nodeType":"ElementaryTypeName","src":"6097:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6080:37:24"},"returnParameters":{"id":28380,"nodeType":"ParameterList","parameters":[],"src":"6132:0:24"},"scope":29062,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":28607,"nodeType":"FunctionDefinition","src":"6304:2106:24","nodes":[],"body":{"id":28606,"nodeType":"Block","src":"6629:1781:24","nodes":[],"statements":[{"assignments":[28416],"declarations":[{"constant":false,"id":28416,"mutability":"mutable","name":"originalReserveX","nameLocation":"6647:16:24","nodeType":"VariableDeclaration","scope":28606,"src":"6639:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28415,"name":"uint256","nodeType":"ElementaryTypeName","src":"6639:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28421,"initialValue":{"expression":{"baseExpression":{"id":28417,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"6666:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28419,"indexExpression":{"id":28418,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28398,"src":"6672:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6666:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6680:8:24","memberName":"reserveX","nodeType":"MemberAccess","referencedDeclaration":29527,"src":"6666:22:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6639:49:24"},{"assignments":[28423],"declarations":[{"constant":false,"id":28423,"mutability":"mutable","name":"originalReserveY","nameLocation":"6706:16:24","nodeType":"VariableDeclaration","scope":28606,"src":"6698:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28422,"name":"uint256","nodeType":"ElementaryTypeName","src":"6698:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28428,"initialValue":{"expression":{"baseExpression":{"id":28424,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"6725:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28426,"indexExpression":{"id":28425,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28398,"src":"6731:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6725:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6739:8:24","memberName":"reserveY","nodeType":"MemberAccess","referencedDeclaration":29529,"src":"6725:22:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6698:49:24"},{"expression":{"id":28433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28429,"name":"isSwapXForY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28405,"src":"6758:11:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28430,"name":"adjustedReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28400,"src":"6772:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":28431,"name":"originalReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28416,"src":"6791:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6772:35:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6758:49:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28434,"nodeType":"ExpressionStatement","src":"6758:49:24"},{"condition":{"id":28435,"name":"isSwapXForY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28405,"src":"6822:11:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":28503,"nodeType":"Block","src":"7150:309:24","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28470,"name":"adjustedReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28400,"src":"7168:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":28471,"name":"originalReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28416,"src":"7188:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7168:36:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28476,"nodeType":"IfStatement","src":"7164:62:24","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":28473,"name":"InvalidSwap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29561,"src":"7213:11:24","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":28474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7213:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28475,"nodeType":"RevertStatement","src":"7206:20:24"}},{"expression":{"id":28482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28477,"name":"inputToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28407,"src":"7240:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":28478,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"7253:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28480,"indexExpression":{"id":28479,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28398,"src":"7259:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7253:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28481,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7267:6:24","memberName":"tokenY","nodeType":"MemberAccess","referencedDeclaration":29525,"src":"7253:20:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7240:33:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28483,"nodeType":"ExpressionStatement","src":"7240:33:24"},{"expression":{"id":28489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28484,"name":"outputToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28409,"src":"7287:11:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":28485,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"7301:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28487,"indexExpression":{"id":28486,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28398,"src":"7307:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7301:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7315:6:24","memberName":"tokenX","nodeType":"MemberAccess","referencedDeclaration":29523,"src":"7301:20:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7287:34:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28490,"nodeType":"ExpressionStatement","src":"7287:34:24"},{"expression":{"id":28495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28491,"name":"inputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28411,"src":"7335:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28492,"name":"adjustedReserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28402,"src":"7349:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":28493,"name":"originalReserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28423,"src":"7368:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7349:35:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7335:49:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28496,"nodeType":"ExpressionStatement","src":"7335:49:24"},{"expression":{"id":28501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28497,"name":"outputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28413,"src":"7398:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28498,"name":"originalReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28416,"src":"7413:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":28499,"name":"adjustedReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28400,"src":"7432:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7413:35:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7398:50:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28502,"nodeType":"ExpressionStatement","src":"7398:50:24"}]},"id":28504,"nodeType":"IfStatement","src":"6818:641:24","trueBody":{"id":28469,"nodeType":"Block","src":"6835:309:24","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28436,"name":"adjustedReserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28402,"src":"6853:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":28437,"name":"originalReserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28423,"src":"6873:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6853:36:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28442,"nodeType":"IfStatement","src":"6849:62:24","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":28439,"name":"InvalidSwap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29561,"src":"6898:11:24","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":28440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6898:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28441,"nodeType":"RevertStatement","src":"6891:20:24"}},{"expression":{"id":28448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28443,"name":"inputToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28407,"src":"6925:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":28444,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"6938:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28446,"indexExpression":{"id":28445,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28398,"src":"6944:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6938:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6952:6:24","memberName":"tokenX","nodeType":"MemberAccess","referencedDeclaration":29523,"src":"6938:20:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6925:33:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28449,"nodeType":"ExpressionStatement","src":"6925:33:24"},{"expression":{"id":28455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28450,"name":"outputToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28409,"src":"6972:11:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":28451,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"6986:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28453,"indexExpression":{"id":28452,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28398,"src":"6992:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6986:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7000:6:24","memberName":"tokenY","nodeType":"MemberAccess","referencedDeclaration":29525,"src":"6986:20:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6972:34:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28456,"nodeType":"ExpressionStatement","src":"6972:34:24"},{"expression":{"id":28461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28457,"name":"inputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28411,"src":"7020:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28458,"name":"adjustedReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28400,"src":"7034:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":28459,"name":"originalReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28416,"src":"7053:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7034:35:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7020:49:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28462,"nodeType":"ExpressionStatement","src":"7020:49:24"},{"expression":{"id":28467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28463,"name":"outputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28413,"src":"7083:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28464,"name":"originalReserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28423,"src":"7098:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":28465,"name":"adjustedReserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28402,"src":"7117:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7098:35:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7083:50:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28468,"nodeType":"ExpressionStatement","src":"7083:50:24"}]}},{"expression":{"id":28510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":28505,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"7553:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28507,"indexExpression":{"id":28506,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28398,"src":"7559:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7553:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7567:8:24","memberName":"reserveX","nodeType":"MemberAccess","referencedDeclaration":29527,"src":"7553:22:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28509,"name":"adjustedReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28400,"src":"7578:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7553:41:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28511,"nodeType":"ExpressionStatement","src":"7553:41:24"},{"expression":{"id":28517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":28512,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"7604:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28514,"indexExpression":{"id":28513,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28398,"src":"7610:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7604:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7618:8:24","memberName":"reserveY","nodeType":"MemberAccess","referencedDeclaration":29529,"src":"7604:22:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28516,"name":"adjustedReserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28402,"src":"7629:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7604:41:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28518,"nodeType":"ExpressionStatement","src":"7604:41:24"},{"assignments":[28520],"declarations":[{"constant":false,"id":28520,"mutability":"mutable","name":"preInputBalance","nameLocation":"7664:15:24","nodeType":"VariableDeclaration","scope":28606,"src":"7656:23:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28519,"name":"uint256","nodeType":"ElementaryTypeName","src":"7656:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28530,"initialValue":{"arguments":[{"arguments":[{"id":28527,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7718:4:24","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":28526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7710:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28525,"name":"address","nodeType":"ElementaryTypeName","src":"7710:7:24","typeDescriptions":{}}},"id":28528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7710:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":28522,"name":"inputToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28407,"src":"7688:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28521,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25948,"src":"7682:5:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$25948_$","typeString":"type(contract ERC20)"}},"id":28523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7682:17:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":28524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7700:9:24","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"7682:27:24","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":28529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7682:42:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7656:68:24"},{"assignments":[28532],"declarations":[{"constant":false,"id":28532,"mutability":"mutable","name":"preOutputBalance","nameLocation":"7742:16:24","nodeType":"VariableDeclaration","scope":28606,"src":"7734:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28531,"name":"uint256","nodeType":"ElementaryTypeName","src":"7734:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28542,"initialValue":{"arguments":[{"arguments":[{"id":28539,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7798:4:24","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":28538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7790:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28537,"name":"address","nodeType":"ElementaryTypeName","src":"7790:7:24","typeDescriptions":{}}},"id":28540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7790:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":28534,"name":"outputToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28409,"src":"7767:11:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28533,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25948,"src":"7761:5:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$25948_$","typeString":"type(contract ERC20)"}},"id":28535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7761:18:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":28536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7780:9:24","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"7761:28:24","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":28541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7761:43:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7734:70:24"},{"expression":{"arguments":[{"id":28544,"name":"inputToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28407,"src":"7829:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28545,"name":"inputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28411,"src":"7841:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28543,"name":"_transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28682,"src":"7815:13:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":28546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7815:38:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28547,"nodeType":"ExpressionStatement","src":"7815:38:24"},{"expression":{"arguments":[{"id":28549,"name":"outputToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28409,"src":"7873:11:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":28550,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7886:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7890:6:24","memberName":"sender","nodeType":"MemberAccess","src":"7886:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28552,"name":"outputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28413,"src":"7898:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28548,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28735,"src":"7863:9:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":28553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7863:48:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28554,"nodeType":"ExpressionStatement","src":"7863:48:24"},{"assignments":[28556],"declarations":[{"constant":false,"id":28556,"mutability":"mutable","name":"postInputBalance","nameLocation":"7930:16:24","nodeType":"VariableDeclaration","scope":28606,"src":"7922:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28555,"name":"uint256","nodeType":"ElementaryTypeName","src":"7922:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28566,"initialValue":{"arguments":[{"arguments":[{"id":28563,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7985:4:24","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":28562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7977:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28561,"name":"address","nodeType":"ElementaryTypeName","src":"7977:7:24","typeDescriptions":{}}},"id":28564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7977:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":28558,"name":"inputToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28407,"src":"7955:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28557,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25948,"src":"7949:5:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$25948_$","typeString":"type(contract ERC20)"}},"id":28559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7949:17:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":28560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7967:9:24","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"7949:27:24","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":28565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7949:42:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7922:69:24"},{"assignments":[28568],"declarations":[{"constant":false,"id":28568,"mutability":"mutable","name":"postOutputBalance","nameLocation":"8009:17:24","nodeType":"VariableDeclaration","scope":28606,"src":"8001:25:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28567,"name":"uint256","nodeType":"ElementaryTypeName","src":"8001:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28578,"initialValue":{"arguments":[{"arguments":[{"id":28575,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8066:4:24","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":28574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8058:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28573,"name":"address","nodeType":"ElementaryTypeName","src":"8058:7:24","typeDescriptions":{}}},"id":28576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8058:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":28570,"name":"outputToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28409,"src":"8035:11:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28569,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25948,"src":"8029:5:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$25948_$","typeString":"type(contract ERC20)"}},"id":28571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8029:18:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":28572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8048:9:24","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"8029:28:24","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":28577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8029:43:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8001:71:24"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28579,"name":"postInputBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28556,"src":"8087:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28580,"name":"preInputBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28520,"src":"8106:15:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":28581,"name":"inputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28411,"src":"8124:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8106:29:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8087:48:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28588,"nodeType":"IfStatement","src":"8083:112:24","trueBody":{"id":28587,"nodeType":"Block","src":"8137:58:24","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":28584,"name":"InvalidSwapInputTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29564,"src":"8158:24:24","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":28585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8158:26:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28586,"nodeType":"RevertStatement","src":"8151:33:24"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28589,"name":"postOutputBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28568,"src":"8209:17:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28590,"name":"preOutputBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28532,"src":"8229:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":28591,"name":"outputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28413,"src":"8248:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8229:31:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8209:51:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28598,"nodeType":"IfStatement","src":"8205:116:24","trueBody":{"id":28597,"nodeType":"Block","src":"8262:59:24","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":28594,"name":"InvalidSwapOutputTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29567,"src":"8283:25:24","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":28595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8283:27:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28596,"nodeType":"RevertStatement","src":"8276:34:24"}]}},{"expression":{"components":[{"id":28599,"name":"isSwapXForY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28405,"src":"8339:11:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28600,"name":"inputToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28407,"src":"8352:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28601,"name":"outputToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28409,"src":"8364:11:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28602,"name":"inputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28411,"src":"8377:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28603,"name":"outputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28413,"src":"8390:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":28604,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8338:65:24","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,address,address,uint256,uint256)"}},"functionReturnParameters":28414,"id":28605,"nodeType":"Return","src":"8331:72:24"}]},"documentation":{"id":28396,"nodeType":"StructuredDocumentation","src":"6221:78:24","text":"@dev Computes the changes in reserves and transfers the tokens in and out."},"implemented":true,"kind":"function","modifiers":[],"name":"_settle","nameLocation":"6313:7:24","parameters":{"id":28403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28398,"mutability":"mutable","name":"poolId","nameLocation":"6338:6:24","nodeType":"VariableDeclaration","scope":28607,"src":"6330:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28397,"name":"uint256","nodeType":"ElementaryTypeName","src":"6330:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28400,"mutability":"mutable","name":"adjustedReserveX","nameLocation":"6362:16:24","nodeType":"VariableDeclaration","scope":28607,"src":"6354:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28399,"name":"uint256","nodeType":"ElementaryTypeName","src":"6354:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28402,"mutability":"mutable","name":"adjustedReserveY","nameLocation":"6396:16:24","nodeType":"VariableDeclaration","scope":28607,"src":"6388:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28401,"name":"uint256","nodeType":"ElementaryTypeName","src":"6388:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6320:98:24"},"returnParameters":{"id":28414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28405,"mutability":"mutable","name":"isSwapXForY","nameLocation":"6471:11:24","nodeType":"VariableDeclaration","scope":28607,"src":"6466:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28404,"name":"bool","nodeType":"ElementaryTypeName","src":"6466:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28407,"mutability":"mutable","name":"inputToken","nameLocation":"6504:10:24","nodeType":"VariableDeclaration","scope":28607,"src":"6496:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28406,"name":"address","nodeType":"ElementaryTypeName","src":"6496:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28409,"mutability":"mutable","name":"outputToken","nameLocation":"6536:11:24","nodeType":"VariableDeclaration","scope":28607,"src":"6528:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28408,"name":"address","nodeType":"ElementaryTypeName","src":"6528:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28411,"mutability":"mutable","name":"inputAmount","nameLocation":"6569:11:24","nodeType":"VariableDeclaration","scope":28607,"src":"6561:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28410,"name":"uint256","nodeType":"ElementaryTypeName","src":"6561:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28413,"mutability":"mutable","name":"outputAmount","nameLocation":"6602:12:24","nodeType":"VariableDeclaration","scope":28607,"src":"6594:20:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28412,"name":"uint256","nodeType":"ElementaryTypeName","src":"6594:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6452:172:24"},"scope":29062,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":28682,"nodeType":"FunctionDefinition","src":"8717:626:24","nodes":[],"body":{"id":28681,"nodeType":"Block","src":"8780:563:24","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":28617,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8802:4:24","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":28616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8794:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28615,"name":"address","nodeType":"ElementaryTypeName","src":"8794:7:24","typeDescriptions":{}}},"id":28618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8794:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8808:7:24","memberName":"balance","nodeType":"MemberAccess","src":"8794:21:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":28620,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28612,"src":"8819:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8794:31:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":28679,"nodeType":"Block","src":"9086:251:24","statements":[{"assignments":[28656],"declarations":[{"constant":false,"id":28656,"mutability":"mutable","name":"downscaledAmount","nameLocation":"9108:16:24","nodeType":"VariableDeclaration","scope":28679,"src":"9100:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28655,"name":"uint256","nodeType":"ElementaryTypeName","src":"9100:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28663,"initialValue":{"arguments":[{"id":28658,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28612,"src":"9155:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":28660,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28610,"src":"9184:5:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28659,"name":"computeScalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30048,"src":"9163:20:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":28661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9163:27:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28657,"name":"downscaleUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30096,"src":"9143:11:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":28662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9143:48:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9100:91:24"},{"expression":{"arguments":[{"arguments":[{"id":28668,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28610,"src":"9261:5:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28667,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25948,"src":"9255:5:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$25948_$","typeString":"type(contract ERC20)"}},"id":28669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9255:12:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},{"expression":{"id":28670,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9269:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9273:6:24","memberName":"sender","nodeType":"MemberAccess","src":"9269:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":28674,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9289:4:24","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":28673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9281:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28672,"name":"address","nodeType":"ElementaryTypeName","src":"9281:7:24","typeDescriptions":{}}},"id":28675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9281:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28676,"name":"downscaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28656,"src":"9296:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28664,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26744,"src":"9205:15:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeTransferLib_$26744_$","typeString":"type(library SafeTransferLib)"}},"id":28666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9221:16:24","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":26703,"src":"9205:32:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_ERC20_$25948_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (contract ERC20,address,address,uint256)"}},"id":28677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9205:121:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28678,"nodeType":"ExpressionStatement","src":"9205:121:24"}]},"id":28680,"nodeType":"IfStatement","src":"8790:547:24","trueBody":{"id":28654,"nodeType":"Block","src":"8827:253:24","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":28625,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27842,"src":"8854:4:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8846:8:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":28623,"name":"address","nodeType":"ElementaryTypeName","src":"8846:8:24","stateMutability":"payable","typeDescriptions":{}}},"id":28626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8846:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":28622,"name":"WETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26027,"src":"8841:4:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_WETH_$26027_$","typeString":"type(contract WETH)"}},"id":28627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8841:19:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_WETH_$26027","typeString":"contract WETH"}},"id":28628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8861:7:24","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":25993,"src":"8841:27:24","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":28630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":28629,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28612,"src":"8877:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"8841:44:24","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":28631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8841:46:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28632,"nodeType":"ExpressionStatement","src":"8841:46:24"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":28635,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8914:4:24","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":28634,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8906:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28633,"name":"address","nodeType":"ElementaryTypeName","src":"8906:7:24","typeDescriptions":{}}},"id":28636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8906:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8920:7:24","memberName":"balance","nodeType":"MemberAccess","src":"8906:21:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":28638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8930:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8906:25:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28653,"nodeType":"IfStatement","src":"8902:168:24","trueBody":{"id":28652,"nodeType":"Block","src":"8933:137:24","statements":[{"expression":{"arguments":[{"expression":{"id":28643,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9004:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9008:6:24","memberName":"sender","nodeType":"MemberAccess","src":"9004:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":28647,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9024:4:24","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":28646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9016:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28645,"name":"address","nodeType":"ElementaryTypeName","src":"9016:7:24","typeDescriptions":{}}},"id":28648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9016:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9030:7:24","memberName":"balance","nodeType":"MemberAccess","src":"9016:21:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28640,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26744,"src":"8951:15:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeTransferLib_$26744_$","typeString":"type(library SafeTransferLib)"}},"id":28642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8967:15:24","memberName":"safeTransferETH","nodeType":"MemberAccess","referencedDeclaration":26681,"src":"8951:31:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":28650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8951:104:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28651,"nodeType":"ExpressionStatement","src":"8951:104:24"}]}}]}}]},"documentation":{"id":28608,"nodeType":"StructuredDocumentation","src":"8434:278:24","text":" @dev Transfers `amount` of `token` from the sender to the contract.\n Note that if ETH is present in the contract, it will be wrapped to WETH.\n @param token Address of the token to transfer.\n @param amount Amount to transfer expressed in WAD."},"implemented":true,"kind":"function","modifiers":[],"name":"_transferFrom","nameLocation":"8726:13:24","parameters":{"id":28613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28610,"mutability":"mutable","name":"token","nameLocation":"8748:5:24","nodeType":"VariableDeclaration","scope":28682,"src":"8740:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28609,"name":"address","nodeType":"ElementaryTypeName","src":"8740:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28612,"mutability":"mutable","name":"amount","nameLocation":"8763:6:24","nodeType":"VariableDeclaration","scope":28682,"src":"8755:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28611,"name":"uint256","nodeType":"ElementaryTypeName","src":"8755:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8739:31:24"},"returnParameters":{"id":28614,"nodeType":"ParameterList","parameters":[],"src":"8780:0:24"},"scope":29062,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":28735,"nodeType":"FunctionDefinition","src":"9659:426:24","nodes":[],"body":{"id":28734,"nodeType":"Block","src":"9730:355:24","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":28694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28692,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28685,"src":"9744:5:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":28693,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27842,"src":"9753:4:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9744:13:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":28732,"nodeType":"Block","src":"9883:196:24","statements":[{"assignments":[28714],"declarations":[{"constant":false,"id":28714,"mutability":"mutable","name":"downscaledAmount","nameLocation":"9905:16:24","nodeType":"VariableDeclaration","scope":28732,"src":"9897:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28713,"name":"uint256","nodeType":"ElementaryTypeName","src":"9897:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28721,"initialValue":{"arguments":[{"id":28716,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28689,"src":"9954:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":28718,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28685,"src":"9983:5:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28717,"name":"computeScalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30048,"src":"9962:20:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":28719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9962:27:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28715,"name":"downscaleDown","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30080,"src":"9940:13:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":28720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9940:50:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9897:93:24"},{"expression":{"arguments":[{"arguments":[{"id":28726,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28685,"src":"10039:5:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28725,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25948,"src":"10033:5:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$25948_$","typeString":"type(contract ERC20)"}},"id":28727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10033:12:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},{"id":28728,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28687,"src":"10047:2:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28729,"name":"downscaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28714,"src":"10051:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28722,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26744,"src":"10004:15:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeTransferLib_$26744_$","typeString":"type(library SafeTransferLib)"}},"id":28724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10020:12:24","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":26723,"src":"10004:28:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_ERC20_$25948_$_t_address_$_t_uint256_$returns$__$","typeString":"function (contract ERC20,address,uint256)"}},"id":28730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10004:64:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28731,"nodeType":"ExpressionStatement","src":"10004:64:24"}]},"id":28733,"nodeType":"IfStatement","src":"9740:339:24","trueBody":{"id":28712,"nodeType":"Block","src":"9759:118:24","statements":[{"expression":{"arguments":[{"id":28702,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28689,"src":"9802:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[{"id":28698,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27842,"src":"9786:4:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9778:8:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":28696,"name":"address","nodeType":"ElementaryTypeName","src":"9778:8:24","stateMutability":"payable","typeDescriptions":{}}},"id":28699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9778:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":28695,"name":"WETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26027,"src":"9773:4:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_WETH_$26027_$","typeString":"type(contract WETH)"}},"id":28700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9773:19:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_WETH_$26027","typeString":"contract WETH"}},"id":28701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9793:8:24","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":26019,"src":"9773:28:24","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":28703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9773:36:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28704,"nodeType":"ExpressionStatement","src":"9773:36:24"},{"expression":{"arguments":[{"id":28708,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28687,"src":"9855:2:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28709,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28689,"src":"9859:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28705,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26744,"src":"9823:15:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeTransferLib_$26744_$","typeString":"type(library SafeTransferLib)"}},"id":28707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9839:15:24","memberName":"safeTransferETH","nodeType":"MemberAccess","referencedDeclaration":26681,"src":"9823:31:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":28710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9823:43:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28711,"nodeType":"ExpressionStatement","src":"9823:43:24"}]}}]},"documentation":{"id":28683,"nodeType":"StructuredDocumentation","src":"9349:305:24","text":" @dev Transfers `amount of `token` from the contract to the recipient\n `to`. Note that WETH is automatically unwrapped to ETH.\n @param token Address of the token to transfer.\n @param to Address of the recipient.\n @param amount Amount to transfer expressed in WAD."},"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"9668:9:24","parameters":{"id":28690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28685,"mutability":"mutable","name":"token","nameLocation":"9686:5:24","nodeType":"VariableDeclaration","scope":28735,"src":"9678:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28684,"name":"address","nodeType":"ElementaryTypeName","src":"9678:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28687,"mutability":"mutable","name":"to","nameLocation":"9701:2:24","nodeType":"VariableDeclaration","scope":28735,"src":"9693:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28686,"name":"address","nodeType":"ElementaryTypeName","src":"9693:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28689,"mutability":"mutable","name":"amount","nameLocation":"9713:6:24","nodeType":"VariableDeclaration","scope":28735,"src":"9705:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28688,"name":"uint256","nodeType":"ElementaryTypeName","src":"9705:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9677:43:24"},"returnParameters":{"id":28691,"nodeType":"ParameterList","parameters":[],"src":"9730:0:24"},"scope":29062,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":28866,"nodeType":"FunctionDefinition","src":"10259:1251:24","nodes":[],"body":{"id":28865,"nodeType":"Block","src":"10438:1072:24","nodes":[],"statements":[{"assignments":[28752,28754,28756,28758,28760],"declarations":[{"constant":false,"id":28752,"mutability":"mutable","name":"valid","nameLocation":"10467:5:24","nodeType":"VariableDeclaration","scope":28865,"src":"10462:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28751,"name":"bool","nodeType":"ElementaryTypeName","src":"10462:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28754,"mutability":"mutable","name":"invariant","nameLocation":"10493:9:24","nodeType":"VariableDeclaration","scope":28865,"src":"10486:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":28753,"name":"int256","nodeType":"ElementaryTypeName","src":"10486:6:24","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":28756,"mutability":"mutable","name":"adjustedReserveX","nameLocation":"10524:16:24","nodeType":"VariableDeclaration","scope":28865,"src":"10516:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28755,"name":"uint256","nodeType":"ElementaryTypeName","src":"10516:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28758,"mutability":"mutable","name":"adjustedReserveY","nameLocation":"10562:16:24","nodeType":"VariableDeclaration","scope":28865,"src":"10554:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28757,"name":"uint256","nodeType":"ElementaryTypeName","src":"10554:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28760,"mutability":"mutable","name":"adjustedTotalLiquidity","nameLocation":"10600:22:24","nodeType":"VariableDeclaration","scope":28865,"src":"10592:30:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28759,"name":"uint256","nodeType":"ElementaryTypeName","src":"10592:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28773,"initialValue":{"arguments":[{"expression":{"id":28768,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10711:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10715:6:24","memberName":"sender","nodeType":"MemberAccess","src":"10711:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28770,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28738,"src":"10723:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28771,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28742,"src":"10731:4:24","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"expression":{"baseExpression":{"id":28762,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"10645:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28764,"indexExpression":{"id":28763,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28738,"src":"10651:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10645:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10659:8:24","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":29521,"src":"10645:22:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28761,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"10635:9:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$29839_$","typeString":"type(contract IStrategy)"}},"id":28766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10635:33:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$29839","typeString":"contract IStrategy"}},"id":28767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10669:28:24","memberName":"validateAllocateOrDeallocate","nodeType":"MemberAccess","referencedDeclaration":29787,"src":"10635:62:24","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256,bytes memory) view external returns (bool,int256,uint256,uint256,uint256)"}},"id":28772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10635:110:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,int256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"10448:297:24"},{"condition":{"id":28775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10760:6:24","subExpression":{"id":28774,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28752,"src":"10761:5:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28786,"nodeType":"IfStatement","src":"10756:82:24","trueBody":{"id":28785,"nodeType":"Block","src":"10768:70:24","statements":[{"errorCall":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":28779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28777,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28754,"src":"10797:9:24","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":28778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10809:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10797:13:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":28781,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28754,"src":"10816:9:24","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":28780,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27763,"src":"10812:3:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":28782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10812:14:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28776,"name":"Invalid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29552,"src":"10789:7:24","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bool_$_t_uint256_$returns$__$","typeString":"function (bool,uint256) pure"}},"id":28783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10789:38:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28784,"nodeType":"RevertStatement","src":"10782:45:24"}]}},{"expression":{"id":28802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28787,"name":"deltaX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28745,"src":"10848:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"id":28788,"name":"isAllocate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28740,"src":"10857:10:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":28795,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"10938:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28797,"indexExpression":{"id":28796,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28738,"src":"10944:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10938:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10952:8:24","memberName":"reserveX","nodeType":"MemberAccess","referencedDeclaration":29527,"src":"10938:22:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":28799,"name":"adjustedReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28756,"src":"10963:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10938:41:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"10857:122:24","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28789,"name":"adjustedReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28756,"src":"10882:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"baseExpression":{"id":28790,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"10901:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28792,"indexExpression":{"id":28791,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28738,"src":"10907:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10901:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10915:8:24","memberName":"reserveX","nodeType":"MemberAccess","referencedDeclaration":29527,"src":"10901:22:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10882:41:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10848:131:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28803,"nodeType":"ExpressionStatement","src":"10848:131:24"},{"expression":{"id":28819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28804,"name":"deltaY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28747,"src":"10989:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"id":28805,"name":"isAllocate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28740,"src":"10998:10:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":28812,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"11079:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28814,"indexExpression":{"id":28813,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28738,"src":"11085:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11079:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28815,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11093:8:24","memberName":"reserveY","nodeType":"MemberAccess","referencedDeclaration":29529,"src":"11079:22:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":28816,"name":"adjustedReserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28758,"src":"11104:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11079:41:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"10998:122:24","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28806,"name":"adjustedReserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28758,"src":"11023:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"baseExpression":{"id":28807,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"11042:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28809,"indexExpression":{"id":28808,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28738,"src":"11048:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11042:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11056:8:24","memberName":"reserveY","nodeType":"MemberAccess","referencedDeclaration":29529,"src":"11042:22:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11023:41:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10989:131:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28820,"nodeType":"ExpressionStatement","src":"10989:131:24"},{"expression":{"id":28836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28821,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28749,"src":"11130:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"id":28822,"name":"isAllocate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28740,"src":"11139:10:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":28829,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"11232:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28831,"indexExpression":{"id":28830,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28738,"src":"11238:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11232:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28832,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11246:14:24","memberName":"totalLiquidity","nodeType":"MemberAccess","referencedDeclaration":29531,"src":"11232:28:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":28833,"name":"adjustedTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28760,"src":"11263:22:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11232:53:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11139:146:24","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28823,"name":"adjustedTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28760,"src":"11164:22:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"baseExpression":{"id":28824,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"11189:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28826,"indexExpression":{"id":28825,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28738,"src":"11195:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11189:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28827,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11203:14:24","memberName":"totalLiquidity","nodeType":"MemberAccess","referencedDeclaration":29531,"src":"11189:28:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11164:53:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11130:155:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28837,"nodeType":"ExpressionStatement","src":"11130:155:24"},{"expression":{"arguments":[{"id":28839,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28738,"src":"11310:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28840,"name":"isAllocate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28740,"src":"11318:10:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28841,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28749,"src":"11330:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28838,"name":"_manageTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28940,"src":"11296:13:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$_t_uint256_$returns$__$","typeString":"function (uint256,bool,uint256)"}},"id":28842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11296:41:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28843,"nodeType":"ExpressionStatement","src":"11296:41:24"},{"expression":{"id":28849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":28844,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"11348:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28846,"indexExpression":{"id":28845,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28738,"src":"11354:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11348:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28847,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11362:8:24","memberName":"reserveX","nodeType":"MemberAccess","referencedDeclaration":29527,"src":"11348:22:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28848,"name":"adjustedReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28756,"src":"11373:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11348:41:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28850,"nodeType":"ExpressionStatement","src":"11348:41:24"},{"expression":{"id":28856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":28851,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"11399:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28853,"indexExpression":{"id":28852,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28738,"src":"11405:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11399:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28854,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11413:8:24","memberName":"reserveY","nodeType":"MemberAccess","referencedDeclaration":29529,"src":"11399:22:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28855,"name":"adjustedReserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28758,"src":"11424:16:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11399:41:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28857,"nodeType":"ExpressionStatement","src":"11399:41:24"},{"expression":{"id":28863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":28858,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"11450:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28860,"indexExpression":{"id":28859,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28738,"src":"11456:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11450:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11464:14:24","memberName":"totalLiquidity","nodeType":"MemberAccess","referencedDeclaration":29531,"src":"11450:28:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28862,"name":"adjustedTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28760,"src":"11481:22:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11450:53:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28864,"nodeType":"ExpressionStatement","src":"11450:53:24"}]},"documentation":{"id":28736,"nodeType":"StructuredDocumentation","src":"10091:163:24","text":" @dev Validates the adjusted reserves and liquidity and updates the\n reserves and liquidity of a pool during an allocation or deallocation."},"implemented":true,"kind":"function","modifiers":[],"name":"_updatePoolReserves","nameLocation":"10268:19:24","parameters":{"id":28743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28738,"mutability":"mutable","name":"poolId","nameLocation":"10305:6:24","nodeType":"VariableDeclaration","scope":28866,"src":"10297:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28737,"name":"uint256","nodeType":"ElementaryTypeName","src":"10297:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28740,"mutability":"mutable","name":"isAllocate","nameLocation":"10326:10:24","nodeType":"VariableDeclaration","scope":28866,"src":"10321:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28739,"name":"bool","nodeType":"ElementaryTypeName","src":"10321:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28742,"mutability":"mutable","name":"data","nameLocation":"10361:4:24","nodeType":"VariableDeclaration","scope":28866,"src":"10346:19:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":28741,"name":"bytes","nodeType":"ElementaryTypeName","src":"10346:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10287:84:24"},"returnParameters":{"id":28750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28745,"mutability":"mutable","name":"deltaX","nameLocation":"10398:6:24","nodeType":"VariableDeclaration","scope":28866,"src":"10390:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28744,"name":"uint256","nodeType":"ElementaryTypeName","src":"10390:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28747,"mutability":"mutable","name":"deltaY","nameLocation":"10414:6:24","nodeType":"VariableDeclaration","scope":28866,"src":"10406:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28746,"name":"uint256","nodeType":"ElementaryTypeName","src":"10406:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28749,"mutability":"mutable","name":"deltaL","nameLocation":"10430:6:24","nodeType":"VariableDeclaration","scope":28866,"src":"10422:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28748,"name":"uint256","nodeType":"ElementaryTypeName","src":"10422:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10389:48:24"},"scope":29062,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":28940,"nodeType":"FunctionDefinition","src":"11577:677:24","nodes":[],"body":{"id":28939,"nodeType":"Block","src":"11688:566:24","nodes":[],"statements":[{"assignments":[28878],"declarations":[{"constant":false,"id":28878,"mutability":"mutable","name":"liquidityToken","nameLocation":"11706:14:24","nodeType":"VariableDeclaration","scope":28939,"src":"11698:22:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"},"typeName":{"id":28877,"nodeType":"UserDefinedTypeName","pathNode":{"id":28876,"name":"LPToken","nameLocations":["11698:7:24"],"nodeType":"IdentifierPath","referencedDeclaration":29516,"src":"11698:7:24"},"referencedDeclaration":29516,"src":"11698:7:24","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"visibility":"internal"}],"id":28885,"initialValue":{"arguments":[{"expression":{"baseExpression":{"id":28880,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"11731:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28882,"indexExpression":{"id":28881,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28869,"src":"11737:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11731:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11745:14:24","memberName":"liquidityToken","nodeType":"MemberAccess","referencedDeclaration":29533,"src":"11731:28:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":28879,"name":"LPToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29516,"src":"11723:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LPToken_$29516_$","typeString":"type(contract LPToken)"}},"id":28884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11723:37:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"nodeType":"VariableDeclarationStatement","src":"11698:62:24"},{"assignments":[28887],"declarations":[{"constant":false,"id":28887,"mutability":"mutable","name":"totalSupply","nameLocation":"11778:11:24","nodeType":"VariableDeclaration","scope":28939,"src":"11770:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28886,"name":"uint256","nodeType":"ElementaryTypeName","src":"11770:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28891,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":28888,"name":"liquidityToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28878,"src":"11792:14:24","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"id":28889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11807:11:24","memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":29094,"src":"11792:26:24","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":28890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11792:28:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11770:50:24"},{"assignments":[28893],"declarations":[{"constant":false,"id":28893,"mutability":"mutable","name":"totalLiquidity","nameLocation":"11838:14:24","nodeType":"VariableDeclaration","scope":28939,"src":"11830:22:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28892,"name":"uint256","nodeType":"ElementaryTypeName","src":"11830:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28898,"initialValue":{"expression":{"baseExpression":{"id":28894,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"11855:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28896,"indexExpression":{"id":28895,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28869,"src":"11861:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11855:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":28897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11869:14:24","memberName":"totalLiquidity","nodeType":"MemberAccess","referencedDeclaration":29531,"src":"11855:28:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11830:53:24"},{"condition":{"id":28899,"name":"isAllocate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28871,"src":"11898:10:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":28937,"nodeType":"Block","src":"12084:164:24","statements":[{"assignments":[28920],"declarations":[{"constant":false,"id":28920,"mutability":"mutable","name":"amount","nameLocation":"12106:6:24","nodeType":"VariableDeclaration","scope":28937,"src":"12098:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28919,"name":"uint256","nodeType":"ElementaryTypeName","src":"12098:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28928,"initialValue":{"arguments":[{"arguments":[{"id":28925,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28893,"src":"12168:14:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28923,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28887,"src":"12147:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12159:8:24","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"12147:20:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":28926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12147:36:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28921,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28873,"src":"12131:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12138:8:24","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"12131:15:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":28927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12131:53:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12098:86:24"},{"expression":{"arguments":[{"expression":{"id":28932,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12218:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12222:6:24","memberName":"sender","nodeType":"MemberAccess","src":"12218:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28934,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28920,"src":"12230:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28929,"name":"liquidityToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28878,"src":"12198:14:24","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"id":28931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12213:4:24","memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":29167,"src":"12198:19:24","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":28935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12198:39:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28936,"nodeType":"ExpressionStatement","src":"12198:39:24"}]},"id":28938,"nodeType":"IfStatement","src":"11894:354:24","trueBody":{"id":28918,"nodeType":"Block","src":"11910:168:24","statements":[{"assignments":[28901],"declarations":[{"constant":false,"id":28901,"mutability":"mutable","name":"amount","nameLocation":"11932:6:24","nodeType":"VariableDeclaration","scope":28918,"src":"11924:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28900,"name":"uint256","nodeType":"ElementaryTypeName","src":"11924:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28909,"initialValue":{"arguments":[{"arguments":[{"id":28906,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28893,"src":"11998:14:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28904,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28887,"src":"11975:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11987:10:24","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"11975:22:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":28907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11975:38:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28902,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28873,"src":"11957:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11964:10:24","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"11957:17:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":28908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11957:57:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11924:90:24"},{"expression":{"arguments":[{"expression":{"id":28913,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12048:3:24","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":28914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12052:6:24","memberName":"sender","nodeType":"MemberAccess","src":"12048:10:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28915,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28901,"src":"12060:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28910,"name":"liquidityToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28878,"src":"12028:14:24","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"id":28912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12043:4:24","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":29152,"src":"12028:19:24","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":28916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12028:39:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28917,"nodeType":"ExpressionStatement","src":"12028:39:24"}]}}]},"documentation":{"id":28867,"nodeType":"StructuredDocumentation","src":"11516:56:24","text":" @dev Mints or burns liquidity tokens."},"implemented":true,"kind":"function","modifiers":[],"name":"_manageTokens","nameLocation":"11586:13:24","parameters":{"id":28874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28869,"mutability":"mutable","name":"poolId","nameLocation":"11617:6:24","nodeType":"VariableDeclaration","scope":28940,"src":"11609:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28868,"name":"uint256","nodeType":"ElementaryTypeName","src":"11609:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28871,"mutability":"mutable","name":"isAllocate","nameLocation":"11638:10:24","nodeType":"VariableDeclaration","scope":28940,"src":"11633:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28870,"name":"bool","nodeType":"ElementaryTypeName","src":"11633:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28873,"mutability":"mutable","name":"deltaL","nameLocation":"11666:6:24","nodeType":"VariableDeclaration","scope":28940,"src":"11658:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28872,"name":"uint256","nodeType":"ElementaryTypeName","src":"11658:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11599:79:24"},"returnParameters":{"id":28875,"nodeType":"ParameterList","parameters":[],"src":"11688:0:24"},"scope":29062,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":28961,"nodeType":"FunctionDefinition","src":"12584:957:24","nodes":[],"body":{"id":28960,"nodeType":"Block","src":"12679:862:24","nodes":[],"statements":[{"AST":{"nativeSrc":"12741:699:24","nodeType":"YulBlock","src":"12741:699:24","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12963:4:24","nodeType":"YulLiteral","src":"12963:4:24","type":"","value":"0x00"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13013:4:24","nodeType":"YulLiteral","src":"13013:4:24","type":"","value":"0xe8"},{"arguments":[{"kind":"number","nativeSrc":"13023:4:24","nodeType":"YulLiteral","src":"13023:4:24","type":"","value":"0x60"},{"name":"implementation","nativeSrc":"13029:14:24","nodeType":"YulIdentifier","src":"13029:14:24"}],"functionName":{"name":"shl","nativeSrc":"13019:3:24","nodeType":"YulIdentifier","src":"13019:3:24"},"nativeSrc":"13019:25:24","nodeType":"YulFunctionCall","src":"13019:25:24"}],"functionName":{"name":"shr","nativeSrc":"13009:3:24","nodeType":"YulIdentifier","src":"13009:3:24"},"nativeSrc":"13009:36:24","nodeType":"YulFunctionCall","src":"13009:36:24"},{"kind":"number","nativeSrc":"13067:48:24","nodeType":"YulLiteral","src":"13067:48:24","type":"","value":"0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000"}],"functionName":{"name":"or","nativeSrc":"12985:2:24","nodeType":"YulIdentifier","src":"12985:2:24"},"nativeSrc":"12985:148:24","nodeType":"YulFunctionCall","src":"12985:148:24"}],"functionName":{"name":"mstore","nativeSrc":"12939:6:24","nodeType":"YulIdentifier","src":"12939:6:24"},"nativeSrc":"12939:208:24","nodeType":"YulFunctionCall","src":"12939:208:24"},"nativeSrc":"12939:208:24","nodeType":"YulExpressionStatement","src":"12939:208:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13285:4:24","nodeType":"YulLiteral","src":"13285:4:24","type":"","value":"0x20"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13314:4:24","nodeType":"YulLiteral","src":"13314:4:24","type":"","value":"0x78"},{"name":"implementation","nativeSrc":"13320:14:24","nodeType":"YulIdentifier","src":"13320:14:24"}],"functionName":{"name":"shl","nativeSrc":"13310:3:24","nodeType":"YulIdentifier","src":"13310:3:24"},"nativeSrc":"13310:25:24","nodeType":"YulFunctionCall","src":"13310:25:24"},{"kind":"number","nativeSrc":"13337:32:24","nodeType":"YulLiteral","src":"13337:32:24","type":"","value":"0x5af43d82803e903d91602b57fd5bf3"}],"functionName":{"name":"or","nativeSrc":"13307:2:24","nodeType":"YulIdentifier","src":"13307:2:24"},"nativeSrc":"13307:63:24","nodeType":"YulFunctionCall","src":"13307:63:24"}],"functionName":{"name":"mstore","nativeSrc":"13261:6:24","nodeType":"YulIdentifier","src":"13261:6:24"},"nativeSrc":"13261:123:24","nodeType":"YulFunctionCall","src":"13261:123:24"},"nativeSrc":"13261:123:24","nodeType":"YulExpressionStatement","src":"13261:123:24"},{"nativeSrc":"13397:33:24","nodeType":"YulAssignment","src":"13397:33:24","value":{"arguments":[{"kind":"number","nativeSrc":"13416:1:24","nodeType":"YulLiteral","src":"13416:1:24","type":"","value":"0"},{"kind":"number","nativeSrc":"13419:4:24","nodeType":"YulLiteral","src":"13419:4:24","type":"","value":"0x09"},{"kind":"number","nativeSrc":"13425:4:24","nodeType":"YulLiteral","src":"13425:4:24","type":"","value":"0x37"}],"functionName":{"name":"create","nativeSrc":"13409:6:24","nodeType":"YulIdentifier","src":"13409:6:24"},"nativeSrc":"13409:21:24","nodeType":"YulFunctionCall","src":"13409:21:24"},"variableNames":[{"name":"instance","nativeSrc":"13397:8:24","nodeType":"YulIdentifier","src":"13397:8:24"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":28943,"isOffset":false,"isSlot":false,"src":"13029:14:24","valueSize":1},{"declaration":28943,"isOffset":false,"isSlot":false,"src":"13320:14:24","valueSize":1},{"declaration":28946,"isOffset":false,"isSlot":false,"src":"13397:8:24","valueSize":1}],"id":28948,"nodeType":"InlineAssembly","src":"12732:708:24"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":28954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28949,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28946,"src":"13453:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":28952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13473:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":28951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13465:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28950,"name":"address","nodeType":"ElementaryTypeName","src":"13465:7:24","typeDescriptions":{}}},"id":28953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13465:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13453:22:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28959,"nodeType":"IfStatement","src":"13449:86:24","trueBody":{"id":28958,"nodeType":"Block","src":"13477:58:24","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":28955,"name":"ERC1167FailedCreateClone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29570,"src":"13498:24:24","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":28956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13498:26:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28957,"nodeType":"RevertStatement","src":"13491:33:24"}]}}]},"documentation":{"id":28941,"nodeType":"StructuredDocumentation","src":"12260:319:24","text":" @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.\n This function uses the create opcode, which should never revert.\n This function is taken from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/proxy/Clones.sol#L23."},"implemented":true,"kind":"function","modifiers":[],"name":"clone","nameLocation":"12593:5:24","parameters":{"id":28944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28943,"mutability":"mutable","name":"implementation","nameLocation":"12607:14:24","nodeType":"VariableDeclaration","scope":28961,"src":"12599:22:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28942,"name":"address","nodeType":"ElementaryTypeName","src":"12599:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12598:24:24"},"returnParameters":{"id":28947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28946,"mutability":"mutable","name":"instance","nameLocation":"12665:8:24","nodeType":"VariableDeclaration","scope":28961,"src":"12657:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28945,"name":"address","nodeType":"ElementaryTypeName","src":"12657:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12656:18:24"},"scope":29062,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":28971,"nodeType":"FunctionDefinition","src":"13617:85:24","nodes":[],"body":{"id":28970,"nodeType":"Block","src":"13666:36:24","nodes":[],"statements":[{"expression":{"expression":{"id":28967,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"13683:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13689:6:24","memberName":"length","nodeType":"MemberAccess","src":"13683:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":28966,"id":28969,"nodeType":"Return","src":"13676:19:24"}]},"documentation":{"id":28962,"nodeType":"StructuredDocumentation","src":"13560:52:24","text":"@notice Returns the amount of initialized pools."},"functionSelector":"affed0e0","implemented":true,"kind":"function","modifiers":[],"name":"nonce","nameLocation":"13626:5:24","parameters":{"id":28963,"nodeType":"ParameterList","parameters":[],"src":"13631:2:24"},"returnParameters":{"id":28966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28965,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28971,"src":"13657:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28964,"name":"uint256","nodeType":"ElementaryTypeName","src":"13657:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13656:9:24"},"scope":29062,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":28985,"nodeType":"FunctionDefinition","src":"13768:106:24","nodes":[],"body":{"id":28984,"nodeType":"Block","src":"13837:37:24","nodes":[],"statements":[{"expression":{"baseExpression":{"id":28980,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"13854:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28982,"indexExpression":{"id":28981,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28974,"src":"13860:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13854:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"functionReturnParameters":28979,"id":28983,"nodeType":"Return","src":"13847:20:24"}]},"documentation":{"id":28972,"nodeType":"StructuredDocumentation","src":"13708:55:24","text":"@notice Returns the pool `poolId` as a Pool struct."},"functionSelector":"068bcd8d","implemented":true,"kind":"function","modifiers":[],"name":"getPool","nameLocation":"13777:7:24","parameters":{"id":28975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28974,"mutability":"mutable","name":"poolId","nameLocation":"13793:6:24","nodeType":"VariableDeclaration","scope":28985,"src":"13785:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28973,"name":"uint256","nodeType":"ElementaryTypeName","src":"13785:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13784:16:24"},"returnParameters":{"id":28979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28978,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28985,"src":"13824:11:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_memory_ptr","typeString":"struct IDFMM.Pool"},"typeName":{"id":28977,"nodeType":"UserDefinedTypeName","pathNode":{"id":28976,"name":"Pool","nameLocations":["13824:4:24"],"nodeType":"IdentifierPath","referencedDeclaration":29534,"src":"13824:4:24"},"referencedDeclaration":29534,"src":"13824:4:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage_ptr","typeString":"struct IDFMM.Pool"}},"visibility":"internal"}],"src":"13823:13:24"},"scope":29062,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":29012,"nodeType":"FunctionDefinition","src":"13949:275:24","nodes":[],"body":{"id":29011,"nodeType":"Block","src":"14076:148:24","nodes":[],"statements":[{"expression":{"components":[{"expression":{"baseExpression":{"id":28997,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"14107:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":28999,"indexExpression":{"id":28998,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28988,"src":"14113:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14107:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":29000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14121:8:24","memberName":"reserveX","nodeType":"MemberAccess","referencedDeclaration":29527,"src":"14107:22:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"id":29001,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"14143:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":29003,"indexExpression":{"id":29002,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28988,"src":"14149:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14143:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":29004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14157:8:24","memberName":"reserveY","nodeType":"MemberAccess","referencedDeclaration":29529,"src":"14143:22:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"id":29005,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"14179:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":29007,"indexExpression":{"id":29006,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28988,"src":"14185:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14179:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":29008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14193:14:24","memberName":"totalLiquidity","nodeType":"MemberAccess","referencedDeclaration":29531,"src":"14179:28:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":29009,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14093:124:24","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"functionReturnParameters":28996,"id":29010,"nodeType":"Return","src":"14086:131:24"}]},"baseFunctions":[29710],"documentation":{"id":28986,"nodeType":"StructuredDocumentation","src":"13880:64:24","text":"@notice Returns the reserves and liquidity of pool `poolId`."},"functionSelector":"ce153bf4","implemented":true,"kind":"function","modifiers":[],"name":"getReservesAndLiquidity","nameLocation":"13958:23:24","parameters":{"id":28989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28988,"mutability":"mutable","name":"poolId","nameLocation":"13990:6:24","nodeType":"VariableDeclaration","scope":29012,"src":"13982:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28987,"name":"uint256","nodeType":"ElementaryTypeName","src":"13982:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13981:16:24"},"returnParameters":{"id":28996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28991,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29012,"src":"14045:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28990,"name":"uint256","nodeType":"ElementaryTypeName","src":"14045:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28993,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29012,"src":"14054:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28992,"name":"uint256","nodeType":"ElementaryTypeName","src":"14054:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28995,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29012,"src":"14063:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28994,"name":"uint256","nodeType":"ElementaryTypeName","src":"14063:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14044:27:24"},"scope":29062,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":29061,"nodeType":"FunctionDefinition","src":"14501:444:24","nodes":[],"body":{"id":29060,"nodeType":"Block","src":"14607:338:24","nodes":[],"statements":[{"assignments":[29024],"declarations":[{"constant":false,"id":29024,"mutability":"mutable","name":"liquidityToken","nameLocation":"14625:14:24","nodeType":"VariableDeclaration","scope":29060,"src":"14617:22:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"},"typeName":{"id":29023,"nodeType":"UserDefinedTypeName","pathNode":{"id":29022,"name":"LPToken","nameLocations":["14617:7:24"],"nodeType":"IdentifierPath","referencedDeclaration":29516,"src":"14617:7:24"},"referencedDeclaration":29516,"src":"14617:7:24","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"visibility":"internal"}],"id":29031,"initialValue":{"arguments":[{"expression":{"baseExpression":{"id":29026,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"14650:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":29028,"indexExpression":{"id":29027,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29017,"src":"14656:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14650:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":29029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14664:14:24","memberName":"liquidityToken","nodeType":"MemberAccess","referencedDeclaration":29533,"src":"14650:28:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":29025,"name":"LPToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29516,"src":"14642:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LPToken_$29516_$","typeString":"type(contract LPToken)"}},"id":29030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14642:37:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"nodeType":"VariableDeclarationStatement","src":"14617:62:24"},{"assignments":[29033],"declarations":[{"constant":false,"id":29033,"mutability":"mutable","name":"balance","nameLocation":"14697:7:24","nodeType":"VariableDeclaration","scope":29060,"src":"14689:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29032,"name":"uint256","nodeType":"ElementaryTypeName","src":"14689:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29038,"initialValue":{"arguments":[{"id":29036,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29015,"src":"14732:7:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":29034,"name":"liquidityToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29024,"src":"14707:14:24","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"id":29035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14722:9:24","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":29098,"src":"14707:24:24","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":29037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14707:33:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14689:51:24"},{"assignments":[29040],"declarations":[{"constant":false,"id":29040,"mutability":"mutable","name":"totalSupply","nameLocation":"14758:11:24","nodeType":"VariableDeclaration","scope":29060,"src":"14750:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29039,"name":"uint256","nodeType":"ElementaryTypeName","src":"14750:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29044,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":29041,"name":"liquidityToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29024,"src":"14772:14:24","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"id":29042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14787:11:24","memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":29094,"src":"14772:26:24","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":29043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14772:28:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14750:50:24"},{"assignments":[29046],"declarations":[{"constant":false,"id":29046,"mutability":"mutable","name":"totalLiquidity","nameLocation":"14818:14:24","nodeType":"VariableDeclaration","scope":29060,"src":"14810:22:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29045,"name":"uint256","nodeType":"ElementaryTypeName","src":"14810:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29051,"initialValue":{"expression":{"baseExpression":{"id":29047,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27837,"src":"14835:5:24","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Pool_$29534_storage_$dyn_storage","typeString":"struct IDFMM.Pool storage ref[] storage ref"}},"id":29049,"indexExpression":{"id":29048,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29017,"src":"14841:6:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14835:13:24","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage","typeString":"struct IDFMM.Pool storage ref"}},"id":29050,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14849:14:24","memberName":"totalLiquidity","nodeType":"MemberAccess","referencedDeclaration":29531,"src":"14835:28:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14810:53:24"},{"expression":{"arguments":[{"arguments":[{"id":29056,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29040,"src":"14925:11:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29054,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29046,"src":"14899:14:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14914:10:24","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"14899:25:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":29057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14899:38:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29052,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29033,"src":"14880:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14888:10:24","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"14880:18:24","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":29058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14880:58:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":29021,"id":29059,"nodeType":"Return","src":"14873:65:24"}]},"documentation":{"id":29013,"nodeType":"StructuredDocumentation","src":"14230:266:24","text":" @notice Returns the amount of liquidity owned by `account` for\n the pool `poolId`.\n @dev This function should NOT be used in a non-view call, as the\n values can be manipulated. In the future this function might be\n removed."},"functionSelector":"3be6a341","implemented":true,"kind":"function","modifiers":[],"name":"liquidityOf","nameLocation":"14510:11:24","parameters":{"id":29018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29015,"mutability":"mutable","name":"account","nameLocation":"14539:7:24","nodeType":"VariableDeclaration","scope":29061,"src":"14531:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29014,"name":"address","nodeType":"ElementaryTypeName","src":"14531:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29017,"mutability":"mutable","name":"poolId","nameLocation":"14564:6:24","nodeType":"VariableDeclaration","scope":29061,"src":"14556:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29016,"name":"uint256","nodeType":"ElementaryTypeName","src":"14556:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14521:55:24"},"returnParameters":{"id":29021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29020,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29061,"src":"14598:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29019,"name":"uint256","nodeType":"ElementaryTypeName","src":"14598:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14597:9:24"},"scope":29062,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":27828,"name":"IDFMM","nameLocations":["536:5:24"],"nodeType":"IdentifierPath","referencedDeclaration":29730,"src":"536:5:24"},"id":27829,"nodeType":"InheritanceSpecifier","src":"536:5:24"}],"canonicalName":"DFMM","contractDependencies":[29516],"contractKind":"contract","documentation":{"id":27827,"nodeType":"StructuredDocumentation","src":"434:84:24","text":" @title DFMM\n @author Primitive\n @notice Dynamic Function Market Maker"},"fullyImplemented":true,"linearizedBaseContracts":[29062,29730],"name":"DFMM","nameLocation":"528:4:24","scope":29063,"usedErrors":[27736,29545,29552,29555,29558,29561,29564,29567,29570],"usedEvents":[29591,29604,29617,29630]}],"license":"GPL-3.0-or-later"},"id":24} \ No newline at end of file diff --git a/out/Deallocate.t.sol/DFMMDeallocateTest.json b/out/Deallocate.t.sol/DFMMDeallocateTest.json deleted file mode 100644 index 3bb2ac48..00000000 --- a/out/Deallocate.t.sol/DFMMDeallocateTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"POOL_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TEST_SWAP_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolLiquidityToken","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_DFMM_deallocate_CannotDrainReserveX","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_DFMM_deallocate_CannotDrainReserveY","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523461002357600160ff19600054161760005561593d90816100298239f35b600080fdfe60806040818152600491823610156200001757600080fd5b60009260e08435811c9283630a9254e414620007405750826359463825146200054a578263620a2607146200052557826363a34433146200023f578263ba414fa61462000214578263e0d7d0e914620001f2578263e21485ad14620000ae57505063fa7626d4146200008857600080fd5b34620000aa5781600319360112620000aa5760ff602092541690519015158152f35b5080fd5b90915034620001ee576020366003190112620001ee57601354835163068bcd8d60e01b81528335818501526001600160a01b0393909183908390602490829088165afa958615620001e357809662000112575b6020868660c08a0151169051908152f35b90919280965083813d8311620001db575b6200012f818362000bc2565b81010312620001d8575083519485019085821067ffffffffffffffff831117620001c3575093620001b660c0809360209787526200016d8162000e1a565b84526200017c88820162000e1a565b888501526200018d87820162000e1a565b87850152606081015160608501526080810151608085015260a081015160a08501520162000e1a565b8282015293388062000101565b604190634e487b7160e01b6000525260246000fd5b80fd5b503d62000123565b8551903d90823e3d90fd5b8380fd5b50505034620000aa5781600319360112620000aa576020906018549051908152f35b50505034620000aa5781600319360112620000aa576020906200023662000cfb565b90519015158152f35b84828534620005215782600319360112620005215760018060a01b039183808460175416946080620002cd826015541697836016541688519060209a60018c8401528b83526200028f8362000b88565b8a51936200029d8562000b6b565b84528b84015289830152606082015283601354169088519687809481936305157c7f60e21b83528b830162000c59565b03925af192831562000517578293620004dc575b5080601554168160135416813b15620001ee5786516340c10f1960e01b9182825287820152848160448183683635c9adc5dea00000978860248401525af18015620004d257908591620004ba575b50508260165416836013541690803b1562000494578592836044928b51968795869485528c85015260248401525af180156200049857908391620004a2575b50506200037a62000c9f565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620001ee57620003c191849189838a5180968195829463f28dceb360e01b84528d840152602483019062000c32565b03925af18015620004985762000473575b50916060939162000420969360135416928651946009818701528552620003f98562000b88565b865197889586948593634eca17cd60e11b8552840152886024840152604483019062000c32565b03925af19081156200046a575062000436575080f35b6200045c9060603d60601162000462575b62000453818362000bc2565b81019062000cc5565b50505080f35b503d62000447565b513d84823e3d90fd5b916200048481979492959362000b40565b62000494579194909287620003d2565b8580fd5b86513d85823e3d90fd5b620004ad9062000b40565b620000aa5781886200036e565b620004c59062000b40565b620001ee57838a6200032f565b88513d87823e3d90fd5b6200050491935060803d6080116200050f575b620004fb818362000bc2565b81019062000be5565b5050509187620002e1565b503d620004ef565b85513d84823e3d90fd5b8280fd5b50505034620000aa5781600319360112620000aa5760209051660aa87bee5380008152f35b84828534620005215782600319360112620005215760018060a01b0391838084601754169460806200059a826015541697836016541688519060209a60018c8401528b83526200028f8362000b88565b03925af19283156200051757829362000717575b5080601554168160135416813b15620001ee5786516340c10f1960e01b9182825287820152848160448183683635c9adc5dea00000978860248401525af18015620004d257908591620006ff575b50508260165416836013541690803b1562000494578592836044928b51968795869485528c85015260248401525af180156200049857908391620006e7575b50506200064762000c9f565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620001ee576200068e91849189838a5180968195829463f28dceb360e01b84528d840152602483019062000c32565b03925af180156200049857620006c6575b50916060939162000420969360135416928651946008818701528552620003f98562000b88565b91620006d781979492959362000b40565b620004945791949092876200069f565b620006f29062000b40565b620000aa5781886200063b565b6200070a9062000b40565b620001ee57838a620005fc565b6200073591935060803d6080116200050f57620004fb818362000bc2565b5050509187620005ae565b8486933462000b3c578460031936011262000b3c5761106b8084019067ffffffffffffffff908583108284111762000b295762000e3095818782396060845260066060850152650e8ded6cadcb60d31b6080850152878160209560a087820152600160a0820152600b60fb1b60c082015260128982015203019089f096871562000aa05760018060a01b0396876bffffffffffffffffffffffff60a01b9916896015541617601555865192808401918483108684111762000b1657908492918339606081526006606082015265746f6b656e5960d01b608082015260a086820152600160a0820152605960f81b60c082015260128882015203019088f0801562000b0c578516866016541617601655846015541692833b1562000ae65784516340c10f1960e01b808252308383015268056bc75e2d63100000918a816044818360249b888d8401525af1801562000a965762000af4575b50908991886016541691823b15620001ee5760448492838b5195869485938452308a8501528c8401525af1801562000aea5762000ace575b5050856015541686601654169086519161059791828401928484108785111762000abc579160609391859362004dbc8539825287820152670de0b6b3a76400008982015203019089f0801562000aa05786168760145416176014558451612f21808201908282108583111762000aaa578591839162001e9b83398b815203019089f0801562000aa05786166013548189821617601355898589601554169360448a5184819593829463095ea7b360e01b9889855216178983015260001997888d8401525af1801562000a96579086929162000a74575b5060448960165416918c8b60135416938b5196879586948552898501528b8401525af1801562000a6a5762000a36575b508560135416908551946105b591828701948786109086111762000a2557505090849291620053538439815203019085f090811562000a1c57501690601754161760175580f35b513d85823e3d90fd5b634e487b7160e01b8b526041905289fd5b62000a5a90843d861162000a62575b62000a51818362000bc2565b81019062000ce1565b5088620009d5565b503d62000a45565b86513d8b823e3d90fd5b62000a8e90833d851162000a625762000a51818362000bc2565b508b620009a5565b88513d8d823e3d90fd5b85513d8a823e3d90fd5b634e487b7160e01b8b5260418452868bfd5b634e487b7160e01b8d5260418652888dfd5b62000ad99062000b40565b62000ae6578789620008cf565b8780fd5b87513d84823e3d90fd5b62000b03909a91929a62000b40565b98908a62000897565b84513d89823e3d90fd5b634e487b7160e01b8c526041885260248cfd5b634e487b7160e01b885260418452602488fd5b8480fd5b67ffffffffffffffff811162000b5557604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111762000b5557604052565b6040810190811067ffffffffffffffff82111762000b5557604052565b6060810190811067ffffffffffffffff82111762000b5557604052565b90601f8019910116810190811067ffffffffffffffff82111762000b5557604052565b919082608091031262000c08578151916020810151916060604083015192015190565b600080fd5b60005b83811062000c215750506000910152565b818101518382015260200162000c10565b9060209162000c4d8151809281855285808601910162000c0d565b601f01601f1916010190565b60a0606062000c9c9360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062000c32565b90565b604051634e487b7160e01b6020820152601160248201526024815262000c9c8162000ba5565b9081606091031262000c08578051916040602083015192015190565b9081602091031262000c085751801515810362000c085790565b6000805460081c60ff161562000d15575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62000d3757505090565b908080935060405192602093828582018381526519985a5b195960d21b60408401526040835262000d688362000ba5565b62000da36024604051809362000d928b830197630667f9d760e41b89525180928585019062000c0d565b810103600481018452018262000bc2565b51925af1503d1562000e0b573d67ffffffffffffffff811162000df75760405162000c9c93929162000ddf601f8201601f191684018362000bc2565b81528092823d92013e5b808251830101910162000ce1565b634e487b7160e01b83526041600452602483fd5b62000c9c915060609062000de9565b51906001600160a01b038216820362000c085756fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c6343000816003360a03461006957601f6105b538819003918201601f19168301916001600160401b0383118484101761006e5780849260209460405283398101031261006957516001600160a01b038116810361006957608052604051610530908161008582396080518160ef0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600436101561001457600080fd5b600091823560e01c9081622e524b146103f95750806306fdde031461035657806368bd3e381461031d57806373cb2d031461024e5780638a04bdd514610137578063acad29891461011e578063afba13c4146100db5763dc1783551461007957600080fd5b346100d7576020806003193601126100d3579181519283916020835260605191826020850152815b8381106100be575050828201840152601f01601f19168101030190f35b608081015187820187015286945081016100a1565b8280fd5b5080fd5b50346100d757816003193601126100d757517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b82346101345761012d36610493565b5050505080f35b80fd5b5090346101345761014736610493565b849350839250829182918290602090830183900312610134575035600181036101c45750505050505060016101c0670de0b6b3a7640000926802b5e3af16b188000080674563918244f40000925b51958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b0390f35b600981036102055750505050505060016101c0670de0b6b3a76400009268056bc75e2d6310000068068155a43676e0000090678ac7230489e8000092610195565b600814610218575b6101c0939495610195565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d63100000905068068155a43676e0000061020d565b5090346101345761025e36610493565b849350839250829182918290602090830183900312610134575035600181146102e8575b6002146102bb575b6101c093949551958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d6310000090508061028a565b670de0b6b3a7640000955060019450673782dace9d90000093506729a2241af62c00009250671bc16d674ec800009150610282565b50346100d75760c09161032f36610493565b505050508082519281845281602085015283015280606083015280608083015260a0820152f35b50346100d757816003193601126100d757805181810181811067ffffffffffffffff8211176103e5578252600c81526020906b4d6f636b537472617465677960a01b6020820152825193849260208452825192836020860152825b8481106103cf57505050828201840152601f01601f19168101030190f35b81810183015188820188015287955082016103b1565b634e487b7160e01b84526041600452602484fd5b8383346100d757806003193601126100d75767ffffffffffffffff9260243584811161047b573660238201121561047b5780600401359480861161047f57601f8601601f19908116603f011683019081118382101761047f578352848252366024868301011161047b5784849260209660248894018483013701015251908152f35b8380fd5b634e487b7160e01b85526041600452602485fd5b9060606003198301126104f5576004356001600160a01b03811681036104f557916024359160443567ffffffffffffffff928382116104f557806023830112156104f55781600401359384116104f557602484830101116104f5576024019190565b600080fdfea264697066735822122009a636832ec6847884e761e11e93e4c99c16c8767042c516d6f7d4bb27fb9bb064736f6c63430008160033a2646970667358221220e6889a5ce719699f96f4ad8a4d97dfc6c4a0db85dc38d04a36a5a19f663a163a64736f6c63430008160033","sourceMap":"88:3096:62:-:0;;;;;;;1594:4:0;88:3096:62;;1594:4:0;88:3096:62;;;1594:4:0;88:3096:62;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600491823610156200001757600080fd5b60009260e08435811c9283630a9254e414620007405750826359463825146200054a578263620a2607146200052557826363a34433146200023f578263ba414fa61462000214578263e0d7d0e914620001f2578263e21485ad14620000ae57505063fa7626d4146200008857600080fd5b34620000aa5781600319360112620000aa5760ff602092541690519015158152f35b5080fd5b90915034620001ee576020366003190112620001ee57601354835163068bcd8d60e01b81528335818501526001600160a01b0393909183908390602490829088165afa958615620001e357809662000112575b6020868660c08a0151169051908152f35b90919280965083813d8311620001db575b6200012f818362000bc2565b81010312620001d8575083519485019085821067ffffffffffffffff831117620001c3575093620001b660c0809360209787526200016d8162000e1a565b84526200017c88820162000e1a565b888501526200018d87820162000e1a565b87850152606081015160608501526080810151608085015260a081015160a08501520162000e1a565b8282015293388062000101565b604190634e487b7160e01b6000525260246000fd5b80fd5b503d62000123565b8551903d90823e3d90fd5b8380fd5b50505034620000aa5781600319360112620000aa576020906018549051908152f35b50505034620000aa5781600319360112620000aa576020906200023662000cfb565b90519015158152f35b84828534620005215782600319360112620005215760018060a01b039183808460175416946080620002cd826015541697836016541688519060209a60018c8401528b83526200028f8362000b88565b8a51936200029d8562000b6b565b84528b84015289830152606082015283601354169088519687809481936305157c7f60e21b83528b830162000c59565b03925af192831562000517578293620004dc575b5080601554168160135416813b15620001ee5786516340c10f1960e01b9182825287820152848160448183683635c9adc5dea00000978860248401525af18015620004d257908591620004ba575b50508260165416836013541690803b1562000494578592836044928b51968795869485528c85015260248401525af180156200049857908391620004a2575b50506200037a62000c9f565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620001ee57620003c191849189838a5180968195829463f28dceb360e01b84528d840152602483019062000c32565b03925af18015620004985762000473575b50916060939162000420969360135416928651946009818701528552620003f98562000b88565b865197889586948593634eca17cd60e11b8552840152886024840152604483019062000c32565b03925af19081156200046a575062000436575080f35b6200045c9060603d60601162000462575b62000453818362000bc2565b81019062000cc5565b50505080f35b503d62000447565b513d84823e3d90fd5b916200048481979492959362000b40565b62000494579194909287620003d2565b8580fd5b86513d85823e3d90fd5b620004ad9062000b40565b620000aa5781886200036e565b620004c59062000b40565b620001ee57838a6200032f565b88513d87823e3d90fd5b6200050491935060803d6080116200050f575b620004fb818362000bc2565b81019062000be5565b5050509187620002e1565b503d620004ef565b85513d84823e3d90fd5b8280fd5b50505034620000aa5781600319360112620000aa5760209051660aa87bee5380008152f35b84828534620005215782600319360112620005215760018060a01b0391838084601754169460806200059a826015541697836016541688519060209a60018c8401528b83526200028f8362000b88565b03925af19283156200051757829362000717575b5080601554168160135416813b15620001ee5786516340c10f1960e01b9182825287820152848160448183683635c9adc5dea00000978860248401525af18015620004d257908591620006ff575b50508260165416836013541690803b1562000494578592836044928b51968795869485528c85015260248401525af180156200049857908391620006e7575b50506200064762000c9f565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620001ee576200068e91849189838a5180968195829463f28dceb360e01b84528d840152602483019062000c32565b03925af180156200049857620006c6575b50916060939162000420969360135416928651946008818701528552620003f98562000b88565b91620006d781979492959362000b40565b620004945791949092876200069f565b620006f29062000b40565b620000aa5781886200063b565b6200070a9062000b40565b620001ee57838a620005fc565b6200073591935060803d6080116200050f57620004fb818362000bc2565b5050509187620005ae565b8486933462000b3c578460031936011262000b3c5761106b8084019067ffffffffffffffff908583108284111762000b295762000e3095818782396060845260066060850152650e8ded6cadcb60d31b6080850152878160209560a087820152600160a0820152600b60fb1b60c082015260128982015203019089f096871562000aa05760018060a01b0396876bffffffffffffffffffffffff60a01b9916896015541617601555865192808401918483108684111762000b1657908492918339606081526006606082015265746f6b656e5960d01b608082015260a086820152600160a0820152605960f81b60c082015260128882015203019088f0801562000b0c578516866016541617601655846015541692833b1562000ae65784516340c10f1960e01b808252308383015268056bc75e2d63100000918a816044818360249b888d8401525af1801562000a965762000af4575b50908991886016541691823b15620001ee5760448492838b5195869485938452308a8501528c8401525af1801562000aea5762000ace575b5050856015541686601654169086519161059791828401928484108785111762000abc579160609391859362004dbc8539825287820152670de0b6b3a76400008982015203019089f0801562000aa05786168760145416176014558451612f21808201908282108583111762000aaa578591839162001e9b83398b815203019089f0801562000aa05786166013548189821617601355898589601554169360448a5184819593829463095ea7b360e01b9889855216178983015260001997888d8401525af1801562000a96579086929162000a74575b5060448960165416918c8b60135416938b5196879586948552898501528b8401525af1801562000a6a5762000a36575b508560135416908551946105b591828701948786109086111762000a2557505090849291620053538439815203019085f090811562000a1c57501690601754161760175580f35b513d85823e3d90fd5b634e487b7160e01b8b526041905289fd5b62000a5a90843d861162000a62575b62000a51818362000bc2565b81019062000ce1565b5088620009d5565b503d62000a45565b86513d8b823e3d90fd5b62000a8e90833d851162000a625762000a51818362000bc2565b508b620009a5565b88513d8d823e3d90fd5b85513d8a823e3d90fd5b634e487b7160e01b8b5260418452868bfd5b634e487b7160e01b8d5260418652888dfd5b62000ad99062000b40565b62000ae6578789620008cf565b8780fd5b87513d84823e3d90fd5b62000b03909a91929a62000b40565b98908a62000897565b84513d89823e3d90fd5b634e487b7160e01b8c526041885260248cfd5b634e487b7160e01b885260418452602488fd5b8480fd5b67ffffffffffffffff811162000b5557604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111762000b5557604052565b6040810190811067ffffffffffffffff82111762000b5557604052565b6060810190811067ffffffffffffffff82111762000b5557604052565b90601f8019910116810190811067ffffffffffffffff82111762000b5557604052565b919082608091031262000c08578151916020810151916060604083015192015190565b600080fd5b60005b83811062000c215750506000910152565b818101518382015260200162000c10565b9060209162000c4d8151809281855285808601910162000c0d565b601f01601f1916010190565b60a0606062000c9c9360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062000c32565b90565b604051634e487b7160e01b6020820152601160248201526024815262000c9c8162000ba5565b9081606091031262000c08578051916040602083015192015190565b9081602091031262000c085751801515810362000c085790565b6000805460081c60ff161562000d15575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62000d3757505090565b908080935060405192602093828582018381526519985a5b195960d21b60408401526040835262000d688362000ba5565b62000da36024604051809362000d928b830197630667f9d760e41b89525180928585019062000c0d565b810103600481018452018262000bc2565b51925af1503d1562000e0b573d67ffffffffffffffff811162000df75760405162000c9c93929162000ddf601f8201601f191684018362000bc2565b81528092823d92013e5b808251830101910162000ce1565b634e487b7160e01b83526041600452602483fd5b62000c9c915060609062000de9565b51906001600160a01b038216820362000c085756fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c6343000816003360a03461006957601f6105b538819003918201601f19168301916001600160401b0383118484101761006e5780849260209460405283398101031261006957516001600160a01b038116810361006957608052604051610530908161008582396080518160ef0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600436101561001457600080fd5b600091823560e01c9081622e524b146103f95750806306fdde031461035657806368bd3e381461031d57806373cb2d031461024e5780638a04bdd514610137578063acad29891461011e578063afba13c4146100db5763dc1783551461007957600080fd5b346100d7576020806003193601126100d3579181519283916020835260605191826020850152815b8381106100be575050828201840152601f01601f19168101030190f35b608081015187820187015286945081016100a1565b8280fd5b5080fd5b50346100d757816003193601126100d757517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b82346101345761012d36610493565b5050505080f35b80fd5b5090346101345761014736610493565b849350839250829182918290602090830183900312610134575035600181036101c45750505050505060016101c0670de0b6b3a7640000926802b5e3af16b188000080674563918244f40000925b51958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b0390f35b600981036102055750505050505060016101c0670de0b6b3a76400009268056bc75e2d6310000068068155a43676e0000090678ac7230489e8000092610195565b600814610218575b6101c0939495610195565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d63100000905068068155a43676e0000061020d565b5090346101345761025e36610493565b849350839250829182918290602090830183900312610134575035600181146102e8575b6002146102bb575b6101c093949551958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d6310000090508061028a565b670de0b6b3a7640000955060019450673782dace9d90000093506729a2241af62c00009250671bc16d674ec800009150610282565b50346100d75760c09161032f36610493565b505050508082519281845281602085015283015280606083015280608083015260a0820152f35b50346100d757816003193601126100d757805181810181811067ffffffffffffffff8211176103e5578252600c81526020906b4d6f636b537472617465677960a01b6020820152825193849260208452825192836020860152825b8481106103cf57505050828201840152601f01601f19168101030190f35b81810183015188820188015287955082016103b1565b634e487b7160e01b84526041600452602484fd5b8383346100d757806003193601126100d75767ffffffffffffffff9260243584811161047b573660238201121561047b5780600401359480861161047f57601f8601601f19908116603f011683019081118382101761047f578352848252366024868301011161047b5784849260209660248894018483013701015251908152f35b8380fd5b634e487b7160e01b85526041600452602485fd5b9060606003198301126104f5576004356001600160a01b03811681036104f557916024359160443567ffffffffffffffff928382116104f557806023830112156104f55781600401359384116104f557602484830101116104f5576024019190565b600080fdfea264697066735822122009a636832ec6847884e761e11e93e4c99c16c8767042c516d6f7d4bb27fb9bb064736f6c63430008160033a2646970667358221220e6889a5ce719699f96f4ad8a4d97dfc6c4a0db85dc38d04a36a5a19f663a163a64736f6c63430008160033","sourceMap":"88:3096:62:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;88:3096:62;;;;992:4:59;88:3096:62;;;-1:-1:-1;;;992:20:59;;88:3096:62;;992:20:59;;;88:3096:62;-1:-1:-1;;;;;88:3096:62;;;;;;;;;;;;;992:20:59;;;;;;;;;;;88:3096:62;;1029:19:59;;;;;88:3096:62;;;;;;;;992:20:59;;;;;;;;;;;;;;;;;;;:::i;:::-;;;88:3096:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;992:20:59;;;;;88:3096:62;;;;;;;;;;;;;;;992:20:59;;;;;;88:3096:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;208:22:64;88:3096:62;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;447:32:59;88:3096:62;;;;;;;;2783:8;88:3096;;;;2952:17;88:3096;2822:6;88:3096;;;;2859:6;88:3096;;;;2886:22;;;2905:1;2886:22;;;88:3096;2886:22;;;;;;:::i;:::-;88:3096;;;;;;:::i;:::-;;;2734:185;;;88:3096;2734:185;;;88:3096;2734:185;;;88:3096;;2952:4;88:3096;;;;;;;;;;;;;;2952:17;;;;;;:::i;:::-;;;;;;;;;;;;;;88:3096;;;2822:6;88:3096;;;2952:4;88:3096;;2980:38;;;;;88:3096;;;;;2980:38;;;;;;;88:3096;3007:10;;88:3096;3007:10;;;88:3096;;;;;;2980:38;;;;;;;;;;;88:3096;;;;2859:6;88:3096;;;2952:4;88:3096;;3028:38;;;;;;88:3096;;;;;;;3028:38;;;;;;;;;;88:3096;;;;;3028:38;;;;;;;;;;;88:3096;3093:24;;;;:::i;:::-;88:3096;3077:41;;;;;317:47:6;88:3096:62;;;;;;;;;;;;;;;;3077:41;;;;;317:47:6;88:3096:62;317:47:6;;;;:::i;:::-;3077:41:62;;;;;;;;;;88:3096;;;2734:185;88:3096;;317:47:6;88:3096:62;;2952:4;88:3096;;;;;3152:22;3171:1;3152:22;;;88:3096;3152:22;;;;;:::i;:::-;88:3096;;;;;;;;;;;;3128:47;;;;88:3096;317:47:6;88:3096:62;317:47:6;;;88:3096:62;317:47:6;;;;:::i;:::-;3128::62;;;;;;;;;;;;88:3096;;;3128:47;;;2734:185;3128:47;2734:185;3128:47;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;88:3096;;;3128:47;;;;;;88:3096;;;;;;;;3077:41;;;;;;;;;;:::i;:::-;88:3096;;3077:41;;;;;;;88:3096;;;;3077:41;88:3096;;;;;;;;;3028:38;;;;:::i;:::-;88:3096;;3028:38;;;;2980;;;;:::i;:::-;88:3096;;2980:38;;;;;88:3096;;;;;;;;;2952:17;;;;;88:3096;2952:17;88:3096;2952:17;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;88:3096;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;88:3096:62;;;;;;;;;;;;;;;;;;447:32:59;88:3096:62;;;;;;;;2227:8;88:3096;;;;2396:17;88:3096;2266:6;88:3096;;;;2303:6;88:3096;;;;2330:22;;;2349:1;2330:22;;;88:3096;2330:22;;;;;;:::i;2396:17::-;;;;;;;;;;;;;;88:3096;;;2266:6;88:3096;;;2396:4;88:3096;;2424:38;;;;;88:3096;;;;;2424:38;;;;;;;88:3096;2451:10;;88:3096;2451:10;;;88:3096;;;;;;2424:38;;;;;;;;;;;88:3096;;;;2303:6;88:3096;;;2396:4;88:3096;;2472:38;;;;;;88:3096;;;;;;;2472:38;;;;;;;;;;88:3096;;;;;2472:38;;;;;;;;;;;88:3096;2537:24;;;;:::i;:::-;88:3096;2521:41;;;;;317:47:6;88:3096:62;;;;;;;;;;;;;;;;2521:41;;;;;317:47:6;88:3096:62;317:47:6;;;;:::i;:::-;2521:41:62;;;;;;;;;;88:3096;;;2178:185;88:3096;;317:47:6;88:3096:62;;2396:4;88:3096;;;;;2596:22;2615:1;2596:22;;;88:3096;2596:22;;;;;:::i;2521:41::-;;;;;;;;;;:::i;:::-;88:3096;;2521:41;;;;;;;2472:38;;;;:::i;:::-;88:3096;;2472:38;;;;2424;;;;:::i;:::-;88:3096;;2424:38;;;;2396:17;;;;;88:3096;2396:17;88:3096;2396:17;;;;;;;:::i;:::-;;;;;;;;88:3096;;;;;;;;;;;;;;;447:32:59;;;;;;;;;;;;;;;;;;;;;;88:3096:62;;;;;;;;-1:-1:-1;;;88:3096:62;;;;;;;;;;;;;;;;;;-1:-1:-1;;;88:3096:62;;;;476:2:59;88:3096:62;;;1057:14:1;447:32:59;;;;;;;;;;;88:3096:62;;;;;;;;;;;;438:41:59;88:3096:62;;;438:41:59;88:3096:62;;;498:32:59;;;;;;;;;;;;;;;;;;;;88:3096:62;;;;;;;;-1:-1:-1;;;88:3096:62;;;;;;;;;;;;;;-1:-1:-1;;;88:3096:62;;;;476:2:59;88:3096:62;;;1057:14:1;498:32:59;;;;;;;;;88:3096:62;;;489:41:59;88:3096:62;;;489:41:59;88:3096:62;;438:41:59;88:3096:62;;540:34:59;;;;;;88:3096:62;;;;;540:34:59;;;560:4;540:34;;;88:3096:62;567:6:59;88:3096:62;;;;;;;;;;;;;540:34:59;;;;;;;;88:3096:62;;;;;;489:41:59;88:3096:62;;584:34:59;;;;;;88:3096:62;;;;;;584:34:59;;;;;;;560:4;584:34;;;88:3096:62;;;;;584:34:59;;;;;;;;88:3096:62;;;;438:41:59;88:3096:62;;;489:41:59;88:3096:62;;;;;635:50:59;;;;;;;;;;;;;;;;;88:3096:62;635:50:59;;;;;;;88:3096:62;;;;;;677:7:59;88:3096:62;;;;635:50:59;;;;;;;;;88:3096:62;;;629:56:59;88:3096:62;;;629:56:59;88:3096:62;;;702:20:59;;;;;;;;;;;;;;;;;;;;;88:3096:62;;;702:20:59;;;;;;;;;88:3096:62;;695:27:59;88:3096:62;;;;;;695:27:59;88:3096:62;;;;438:41:59;88:3096:62;;;;;;;;;;;;;;;733:48:59;;;;88:3096:62;;733:48:59;;;88:3096:62;763:17:59;;88:3096:62;;;;;;733:48:59;;;;;;;;;;;;88:3096:62;;;;489:41:59;88:3096:62;;;;;695:27:59;88:3096:62;;;;;791:48:59;;;;;;;;;;88:3096:62;;;;;791:48:59;;;;;;;;88:3096:62;;;695:27:59;88:3096:62;;;;;314:31:64;;;;;;;;;;;;;;;;;;;;;;;;;88:3096:62;;314:31:64;;;;;;;;;;88:3096:62;;;303:42:64;88:3096:62;;;303:42:64;88:3096:62;;;314:31:64;88:3096:62;;;;;;;;314:31:64;-1:-1:-1;;;88:3096:62;;;;;;;791:48:59;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;88:3096:62;;;;;;;;;733:48:59;;;;;;;;;;;;;:::i;:::-;;;;;;88:3096:62;;;;;;;;;702:20:59;88:3096:62;;;;;;;;;702:20:59;-1:-1:-1;;;88:3096:62;;;;;;;;635:50:59;-1:-1:-1;;;88:3096:62;;;;;;;;584:34:59;;;;:::i;:::-;88:3096:62;;584:34:59;;;;88:3096:62;;;;584:34:59;88:3096:62;;;;;;;;;540:34:59;;;;;;;;:::i;:::-;;;;;;498:32;88:3096:62;;;;;;;;;498:32:59;-1:-1:-1;;;88:3096:62;;;;;;;;447:32:59;-1:-1:-1;;;88:3096:62;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;88:3096:62;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;88:3096:62;;;;:::o;:::-;;;;;;;;447:32:59;88:3096:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;277:87:6:-;88:3096:62;;;;;317:47:6;;;;359:4;317:47;;;1057:14:1;317:47:6;;;;;;:::i;:::-;;;;;;;;;88:3096:62;;317:47:6;;;;;88:3096:62;317:47:6;;88:3096:62;317:47:6;:::o;1671:64:0:-;;;;;;;;;;88:3096:62;;;1671:64:0;;;;;:::o;1819:584::-;1873:7;88:3096:62;;;;;;;;;;;;;;;1896:14:0:o;1869:528::-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;88:3096:62;;;;;;;2196:43:0;;;;;;;88:3096:62;;;1671:64:0;;;88:3096:62;1671:64:0;;88:3096:62;;2196:43:0;;;;;:::i;:::-;2086:175;1671:64;88:3096:62;;2086:175:0;;1671:64;2086:175;;;1671:64;;;;;;88:3096:62;1671:64:0;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:0;;;;;;;;;;88:3096:62;;2312:27:0;;88:3096:62;;;;;;-1:-1:-1;;88:3096:62;1671:64:0;;88:3096:62;;:::i;:::-;1671:64:0;;;;;;;;;;88:3096:62;;;2312:27:0;;;;;;:::i;1671:64::-;-1:-1:-1;;;88:3096:62;;;2086:175:0;88:3096:62;1671:64:0;88:3096:62;;1671:64:0;2312:27;1671:64;;88:3096:62;1671:64:0;;;88:3096:62;;;-1:-1:-1;;;;;88:3096:62;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","POOL_ID()":"e0d7d0e9","TEST_SWAP_FEE()":"620a2607","failed()":"ba414fa6","getPoolLiquidityToken(uint256)":"e21485ad","setUp()":"0a9254e4","test_DFMM_deallocate_CannotDrainReserveX()":"59463825","test_DFMM_deallocate_CannotDrainReserveY()":"63a34433"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POOL_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_SWAP_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolLiquidityToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_DFMM_deallocate_CannotDrainReserveX\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_DFMM_deallocate_CannotDrainReserveY\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/unit/DFMM/Deallocate.t.sol\":\"DFMMDeallocateTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]},\"src/test/helpers/MockStrategy.sol\":{\"keccak256\":\"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5\",\"dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw\"]},\"src/test/helpers/SetUp.sol\":{\"keccak256\":\"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30\",\"dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14\"]},\"src/test/unit/DFMM/Deallocate.t.sol\":{\"keccak256\":\"0x927722025814a218cfd19df707de180cd26dfc4d4c153be5bdfb15cd19b48b56\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://784e3645f6f7e9358cc40ee256d841b3dfe74160ebfdae5714bd021760f393bf\",\"dweb:/ipfs/QmUo819JLYtvK2cQEmAL5sJMVtTz3ubEABEWsrZ6MTKaL6\"]},\"src/test/unit/DFMM/SetUp.sol\":{\"keccak256\":\"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4\",\"dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"POOL_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_SWAP_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolLiquidityToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_DFMM_deallocate_CannotDrainReserveX"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_DFMM_deallocate_CannotDrainReserveY"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/unit/DFMM/Deallocate.t.sol":"DFMMDeallocateTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"},"src/test/helpers/MockStrategy.sol":{"keccak256":"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a","urls":["bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5","dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw"],"license":"UNLICENSED"},"src/test/helpers/SetUp.sol":{"keccak256":"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb","urls":["bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30","dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14"],"license":"UNLICENSED"},"src/test/unit/DFMM/Deallocate.t.sol":{"keccak256":"0x927722025814a218cfd19df707de180cd26dfc4d4c153be5bdfb15cd19b48b56","urls":["bzz-raw://784e3645f6f7e9358cc40ee256d841b3dfe74160ebfdae5714bd021760f393bf","dweb:/ipfs/QmUo819JLYtvK2cQEmAL5sJMVtTz3ubEABEWsrZ6MTKaL6"],"license":"UNLICENSED"},"src/test/unit/DFMM/SetUp.sol":{"keccak256":"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a","urls":["bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4","dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/unit/DFMM/Deallocate.t.sol","id":45133,"exportedSymbols":{"ArbiterToken":[43381],"DFMM":[29062],"DFMMDeallocateTest":[45132],"DFMMSetUp":[45761],"DSTest":[1786],"ERC20":[25948],"FixedPointMathLib":[26640],"IDFMM":[29730],"IStrategy":[29839],"LPToken":[29516],"Lex":[44392],"LibString":[26659],"Min":[27736],"MockERC20":[25560],"MockStrategy":[44649],"SafeTransferLib":[26744],"SetUp":[44852],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"Test":[8195],"TestBase":[1843],"Vm":[9352],"WETH":[26027],"abs":[27763],"computeScalingFactor":[30048],"console":[17416],"console2":[25512],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"muli":[27777],"muliWad":[27795],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"39:3146:62","nodes":[{"id":44970,"nodeType":"PragmaDirective","src":"39:24:62","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":44971,"nodeType":"ImportDirective","src":"65:21:62","nodes":[],"absolutePath":"src/test/unit/DFMM/SetUp.sol","file":"./SetUp.sol","nameLocation":"-1:-1:-1","scope":45133,"sourceUnit":45762,"symbolAliases":[],"unitAlias":""},{"id":45132,"nodeType":"ContractDefinition","src":"88:3096:62","nodes":[{"id":45052,"nodeType":"FunctionDefinition","src":"2076:550:62","nodes":[],"body":{"id":45051,"nodeType":"Block","src":"2135:491:62","nodes":[],"statements":[{"assignments":[44980],"declarations":[{"constant":false,"id":44980,"mutability":"mutable","name":"params","nameLocation":"2169:6:62","nodeType":"VariableDeclaration","scope":45051,"src":"2145:30:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":44979,"nodeType":"UserDefinedTypeName","pathNode":{"id":44978,"name":"IDFMM.InitParams","nameLocations":["2145:5:62","2151:10:62"],"nodeType":"IdentifierPath","referencedDeclaration":29543,"src":"2145:16:62"},"referencedDeclaration":29543,"src":"2145:16:62","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"id":45003,"initialValue":{"arguments":[{"arguments":[{"id":44985,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45697,"src":"2227:8:62","typeDescriptions":{"typeIdentifier":"t_contract$_MockStrategy_$44649","typeString":"contract MockStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockStrategy_$44649","typeString":"contract MockStrategy"}],"id":44984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2219:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":44983,"name":"address","nodeType":"ElementaryTypeName","src":"2219:7:62","typeDescriptions":{}}},"id":44986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2219:17:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":44989,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"2266:6:62","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":44988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2258:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":44987,"name":"address","nodeType":"ElementaryTypeName","src":"2258:7:62","typeDescriptions":{}}},"id":44990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2258:15:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":44993,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"2303:6:62","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":44992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2295:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":44991,"name":"address","nodeType":"ElementaryTypeName","src":"2295:7:62","typeDescriptions":{}}},"id":44994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2295:15:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"hexValue":"31","id":44999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2349:1:62","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":44998,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2341:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":44997,"name":"uint256","nodeType":"ElementaryTypeName","src":"2341:7:62","typeDescriptions":{}}},"id":45000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2341:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44995,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2330:3:62","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2334:6:62","memberName":"encode","nodeType":"MemberAccess","src":"2330:10:62","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":45001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2330:22:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":44981,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"2178:5:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":44982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2184:10:62","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":29543,"src":"2178:16:62","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$29543_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":45002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2209:8:62","2250:6:62","2287:6:62","2324:4:62"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"2178:185:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}},"nodeType":"VariableDeclarationStatement","src":"2145:218:62"},{"assignments":[45005,null,null,null],"declarations":[{"constant":false,"id":45005,"mutability":"mutable","name":"poolId","nameLocation":"2383:6:62","nodeType":"VariableDeclaration","scope":45051,"src":"2375:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45004,"name":"uint256","nodeType":"ElementaryTypeName","src":"2375:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":45010,"initialValue":{"arguments":[{"id":45008,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44980,"src":"2406:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":45006,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"2396:4:62","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":45007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2401:4:62","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":28091,"src":"2396:9:62","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$29543_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":45009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2396:17:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"2374:39:62"},{"expression":{"arguments":[{"arguments":[{"id":45016,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"2444:4:62","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":45015,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2436:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":45014,"name":"address","nodeType":"ElementaryTypeName","src":"2436:7:62","typeDescriptions":{}}},"id":45017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2436:13:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31303030","id":45018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2451:10:62","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"}],"expression":{"id":45011,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"2424:6:62","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":45013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2431:4:62","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":25546,"src":"2424:11:62","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":45019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2424:38:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45020,"nodeType":"ExpressionStatement","src":"2424:38:62"},{"expression":{"arguments":[{"arguments":[{"id":45026,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"2492:4:62","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":45025,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2484:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":45024,"name":"address","nodeType":"ElementaryTypeName","src":"2484:7:62","typeDescriptions":{}}},"id":45027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2484:13:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31303030","id":45028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2499:10:62","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"}],"expression":{"id":45021,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"2472:6:62","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":45023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2479:4:62","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":25546,"src":"2472:11:62","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":45029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2472:38:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45030,"nodeType":"ExpressionStatement","src":"2472:38:62"},{"expression":{"arguments":[{"expression":{"id":45034,"name":"stdError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5247,"src":"2537:8:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdError_$5247_$","typeString":"type(library stdError)"}},"id":45035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2546:15:62","memberName":"arithmeticError","nodeType":"MemberAccess","referencedDeclaration":5197,"src":"2537:24:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":45031,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"2521:2:62","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":45033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2524:12:62","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":9116,"src":"2521:15:62","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":45036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2521:41:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45037,"nodeType":"ExpressionStatement","src":"2521:41:62"},{"expression":{"arguments":[{"id":45041,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45005,"src":"2588:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"hexValue":"38","id":45046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2615:1:62","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"id":45045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2607:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45044,"name":"uint256","nodeType":"ElementaryTypeName","src":"2607:7:62","typeDescriptions":{}}},"id":45047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2607:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":45042,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2596:3:62","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2600:6:62","memberName":"encode","nodeType":"MemberAccess","src":"2596:10:62","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":45048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2596:22:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":45038,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"2572:4:62","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":45040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2577:10:62","memberName":"deallocate","nodeType":"MemberAccess","referencedDeclaration":28288,"src":"2572:15:62","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256,uint256,uint256)"}},"id":45049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2572:47:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"id":45050,"nodeType":"ExpressionStatement","src":"2572:47:62"}]},"functionSelector":"59463825","implemented":true,"kind":"function","modifiers":[],"name":"test_DFMM_deallocate_CannotDrainReserveX","nameLocation":"2085:40:62","parameters":{"id":44974,"nodeType":"ParameterList","parameters":[],"src":"2125:2:62"},"returnParameters":{"id":44975,"nodeType":"ParameterList","parameters":[],"src":"2135:0:62"},"scope":45132,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":45131,"nodeType":"FunctionDefinition","src":"2632:550:62","nodes":[],"body":{"id":45130,"nodeType":"Block","src":"2691:491:62","nodes":[],"statements":[{"assignments":[45059],"declarations":[{"constant":false,"id":45059,"mutability":"mutable","name":"params","nameLocation":"2725:6:62","nodeType":"VariableDeclaration","scope":45130,"src":"2701:30:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":45058,"nodeType":"UserDefinedTypeName","pathNode":{"id":45057,"name":"IDFMM.InitParams","nameLocations":["2701:5:62","2707:10:62"],"nodeType":"IdentifierPath","referencedDeclaration":29543,"src":"2701:16:62"},"referencedDeclaration":29543,"src":"2701:16:62","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"id":45082,"initialValue":{"arguments":[{"arguments":[{"id":45064,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45697,"src":"2783:8:62","typeDescriptions":{"typeIdentifier":"t_contract$_MockStrategy_$44649","typeString":"contract MockStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockStrategy_$44649","typeString":"contract MockStrategy"}],"id":45063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2775:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":45062,"name":"address","nodeType":"ElementaryTypeName","src":"2775:7:62","typeDescriptions":{}}},"id":45065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2775:17:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":45068,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"2822:6:62","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":45067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2814:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":45066,"name":"address","nodeType":"ElementaryTypeName","src":"2814:7:62","typeDescriptions":{}}},"id":45069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2814:15:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":45072,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"2859:6:62","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":45071,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2851:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":45070,"name":"address","nodeType":"ElementaryTypeName","src":"2851:7:62","typeDescriptions":{}}},"id":45073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2851:15:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"hexValue":"31","id":45078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2905:1:62","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":45077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2897:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45076,"name":"uint256","nodeType":"ElementaryTypeName","src":"2897:7:62","typeDescriptions":{}}},"id":45079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2897:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":45074,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2886:3:62","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2890:6:62","memberName":"encode","nodeType":"MemberAccess","src":"2886:10:62","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":45080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2886:22:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":45060,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"2734:5:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":45061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2740:10:62","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":29543,"src":"2734:16:62","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$29543_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":45081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2765:8:62","2806:6:62","2843:6:62","2880:4:62"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"2734:185:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}},"nodeType":"VariableDeclarationStatement","src":"2701:218:62"},{"assignments":[45084,null,null,null],"declarations":[{"constant":false,"id":45084,"mutability":"mutable","name":"poolId","nameLocation":"2939:6:62","nodeType":"VariableDeclaration","scope":45130,"src":"2931:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45083,"name":"uint256","nodeType":"ElementaryTypeName","src":"2931:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":45089,"initialValue":{"arguments":[{"id":45087,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45059,"src":"2962:6:62","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":45085,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"2952:4:62","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":45086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2957:4:62","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":28091,"src":"2952:9:62","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$29543_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":45088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2952:17:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"2930:39:62"},{"expression":{"arguments":[{"arguments":[{"id":45095,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"3000:4:62","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":45094,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2992:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":45093,"name":"address","nodeType":"ElementaryTypeName","src":"2992:7:62","typeDescriptions":{}}},"id":45096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2992:13:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31303030","id":45097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3007:10:62","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"}],"expression":{"id":45090,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"2980:6:62","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":45092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2987:4:62","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":25546,"src":"2980:11:62","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":45098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2980:38:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45099,"nodeType":"ExpressionStatement","src":"2980:38:62"},{"expression":{"arguments":[{"arguments":[{"id":45105,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"3048:4:62","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":45104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3040:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":45103,"name":"address","nodeType":"ElementaryTypeName","src":"3040:7:62","typeDescriptions":{}}},"id":45106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3040:13:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31303030","id":45107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3055:10:62","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"}],"expression":{"id":45100,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"3028:6:62","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":45102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3035:4:62","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":25546,"src":"3028:11:62","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":45108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3028:38:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45109,"nodeType":"ExpressionStatement","src":"3028:38:62"},{"expression":{"arguments":[{"expression":{"id":45113,"name":"stdError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5247,"src":"3093:8:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdError_$5247_$","typeString":"type(library stdError)"}},"id":45114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3102:15:62","memberName":"arithmeticError","nodeType":"MemberAccess","referencedDeclaration":5197,"src":"3093:24:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":45110,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"3077:2:62","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":45112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3080:12:62","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":9116,"src":"3077:15:62","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":45115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3077:41:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45116,"nodeType":"ExpressionStatement","src":"3077:41:62"},{"expression":{"arguments":[{"id":45120,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45084,"src":"3144:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"hexValue":"39","id":45125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3171:1:62","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"}],"id":45124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3163:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45123,"name":"uint256","nodeType":"ElementaryTypeName","src":"3163:7:62","typeDescriptions":{}}},"id":45126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3163:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":45121,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3152:3:62","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3156:6:62","memberName":"encode","nodeType":"MemberAccess","src":"3152:10:62","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":45127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3152:22:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":45117,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"3128:4:62","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":45119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3133:10:62","memberName":"deallocate","nodeType":"MemberAccess","referencedDeclaration":28288,"src":"3128:15:62","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256,uint256,uint256)"}},"id":45128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3128:47:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"id":45129,"nodeType":"ExpressionStatement","src":"3128:47:62"}]},"functionSelector":"63a34433","implemented":true,"kind":"function","modifiers":[],"name":"test_DFMM_deallocate_CannotDrainReserveY","nameLocation":"2641:40:62","parameters":{"id":45053,"nodeType":"ParameterList","parameters":[],"src":"2681:2:62"},"returnParameters":{"id":45054,"nodeType":"ParameterList","parameters":[],"src":"2691:0:62"},"scope":45132,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":44972,"name":"DFMMSetUp","nameLocations":["119:9:62"],"nodeType":"IdentifierPath","referencedDeclaration":45761,"src":"119:9:62"},"id":44973,"nodeType":"InheritanceSpecifier","src":"119:9:62"}],"canonicalName":"DFMMDeallocateTest","contractDependencies":[25560,29062,44392,44649],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[45132,45761,44852,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"DFMMDeallocateTest","nameLocation":"97:18:62","scope":45133,"usedErrors":[],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":62} \ No newline at end of file diff --git a/out/Deallocate.t.sol/G3MDeallocateTest.json b/out/Deallocate.t.sol/G3MDeallocateTest.json deleted file mode 100644 index 8dfe461f..00000000 --- a/out/Deallocate.t.sol/G3MDeallocateTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"POOL_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TEST_SWAP_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolLiquidityToken","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_G3M_deallocate_GivenX_DecreasesTotalLiquidity","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_G3M_deallocate_GivenX_TransfersTokens","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_G3M_deallocate_GivenX_UpdateReserves","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_G3M_deallocate_GivenY","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"BisectionLib_InvalidBounds","inputs":[{"name":"lower","type":"uint256","internalType":"uint256"},{"name":"upper","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BisectionLib_RootOutsideBounds","inputs":[{"name":"lowerResult","type":"int256","internalType":"int256"},{"name":"upperResult","type":"int256","internalType":"int256"}]}],"bytecode":{"object":"0x34620000ae57600160ff1960005416176000556101006040526706f05b59d3b20000806080528060a052660aa87bee538000908160c0523060e05280601a55601b55601c553060018060a01b0319601d541617601d5562000067670de0b6b3a7640000601e55565b62000079670de0b6b3a7640000601f55565b6200009e62000098601e54601f54620000916200010f565b91620002d3565b620001de565b604051619ef5908162000ba68239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b03821117620000e557604052565b620000b3565b601f909101601f19168101906001600160401b03821190821017620000e557604052565b604051906200011e82620000c9565b601a548252601b546020830152601c546040830152601d546001600160a01b03166060830152565b90600182811c9216801562000178575b60208310146200016257565b634e487b7160e01b600052602260045260246000fd5b91607f169162000156565b601f811162000190575050565b60009060206000526020600020906020601f850160051c83019410620001d3575b601f0160051c01915b828110620001c757505050565b818155600101620001ba565b9092508290620001b1565b80519091906001600160401b038111620000e5576020906200020c8162000206845462000146565b62000183565b81601f8211600114620002505781906200024093949560009262000244575b50508160011b916000199060031b1c19161790565b9055565b0151905038806200022b565b6020600052601f198216907fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb9160005b818110620002bb57509583600195969710620002a1575b505050811b019055565b015160001960f88460031b161c1916905538808062000297565b91928560018192868b01518155019401920162000280565b92916200031d60208201620003166200030d6200030588620002ff855198620002ff8951809b62000731565b62000754565b958862000516565b91518562000516565b90620006d9565b936200032c8286858462000496565b859060008082121562000438575b808212620004155750620003b862000405926200041296979886935b6040805160208082018a90528183018d90526060808301949094528a5160808301528a015160a08201529089015160c08201529701516001600160a01b031660e0808901919091528752601f1996620003b261010082620000eb565b620007b2565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b03908101835282620000eb565b90565b9662000422915062000776565b95620004318488878662000496565b906200033a565b9691965b8082136200045d5750620003b8620004129596976200040593869362000356565b966200046a915062000706565b95620004798488878662000496565b906200043c565b634e487b7160e01b600052601160045260246000fd5b926020620004c784620004c0620004b7620003169697620004d19962000731565b85519062000516565b9562000731565b9101519062000516565b670de0b6b3a763ffff198101908113600116620004eb5790565b62000480565b818102929160008212600160ff1b821416620004eb578184051490151715620004eb57565b620006c562000412927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284620006d3936200055160008213620008f0565b711340daa0d5f769dba1915cef59f0815a55066200056f8262000ac5565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d019160016c0504a838426634cdd8738f543560611b0319916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d620004f1565b670de0b6b3a7640000900590565b62000929565b818102918183041490151760011615620000ae576001670de0b6b3a7640000600019830104019015150290565b6103e990818102918183041490151760011615620000ae5760016103e8600019830104019015150290565b670de0b6b3a76400009081810291818304149015178215151615620000ae570490565b818102918183041490151760011615620000ae57670de0b6b3a7640000900490565b6103e790818102918183041490151760011615620000ae576103e8900490565b91908203918211620004eb57565b91908201809211620004eb57565b60009392918491838211620008d057620007cd828262000b2d565b620007d9858362000b2d565b6000620007e78284620004f1565b13620008b15750620007fc8386979662000796565b60019460009186805b62000817575b50505050505050509050565b1562000887575b50859697985080916200083c620008368b88620007a4565b60011c90565b99620008498b8762000b2d565b9083620008578784620004f1565b136200087a57505089925b876200086f888662000796565b920193999862000805565b8b97509094509262000862565b861080620008a5575b156200089d57886200081e565b80806200080b565b50610100821062000890565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b15620008f857565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131562000abf57680755bf798b4a1bf1e581121562000a8b576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b3989179d835ebba824c98fb31b83b2ca45c0000000000000000000000006060916b8000000000000000000000008582851b0501831d94850290036e0587f503bb6ea29d25fcb740196450816c10fe68e7fd37d0007b713f7650810102841d936e05180bb14799ab47a8a8cb2a527d57836e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028a1d0102881d0102861d0102841d0102821d01946d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b62000ad2811515620008f0565b8060018060801b031060071b81811c60018060401b031060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b8080518101039160e08312620000ae576020820151926080604084015191605f190112620000ae5760e06040519362000b6685620000c9565b6080810151855260a0810151602086015260c081015160408601520151936001600160a01b0385168503620000ae57620004129460608501526200049656fe60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e414620000d0575050806338b6302014620000ca578063620a260714620000c457806398fc510714620000be5780639d89721314620000b8578063a9fca20c14620000b2578063ba414fa614620000ac578063e0d7d0e914620000a6578063e21485ad14620000a05763fa7626d4146200009a57600080fd5b62000b8e565b62000a56565b62000a36565b62000a0d565b62000927565b62000867565b620007a7565b62000783565b620005c9565b346200059957816003193601126200059957620000ec62001c42565b805161106b8082019067ffffffffffffffff92808310848411176200057557806200011f62002176948486843962000c71565b039086f080156200054d57601580546001600160a01b0319166001600160a01b0390921691909117905583519181830183811085821117620005755783926200016a92843962000cbd565b039084f080156200054d57601680546001600160a01b0319166001600160a01b03928316179055601554620001a791165b6001600160a01b031690565b803b15620005b45782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af180156200054d576200059d575b50601654849062000206906001600160a01b03166200019b565b91823b156200059957845190815230600482015268056bc75e2d631000006024820152918290604490829084905af180156200054d576200057b575b506015546200025a906001600160a01b03166200019b565b60165462000271906001600160a01b03166200019b565b9083519161059790818401928484108685111762000575578493620002be936200992986396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200054d57601480546001600160a01b0319166001600160a01b039092169190911790558151612f218082019082821084831117620005755782916200031491620031e184396000815260200190565b039084f080156200054d57601380546001600160a01b0319166001600160a01b0392909216918217905562000349906200019b565b8251906112cb8083019183831085841117620005755783926200037f926200865e85396001600160a01b03909116815260200190565b039084f080156200054d57601780546001600160a01b0319166001600160a01b03929092169182179055620003b4906200019b565b82519161255c80840192909183118484101762000575578392620003eb926200610285396001600160a01b03909116815260200190565b039083f09081156200054d57620004226200048e9260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b60155462000439906001600160a01b03166200019b565b60135462000450906001600160a01b03166200019b565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200054d576200050693859362000553575b50601654620004bf906001600160a01b03166200019b565b6013549091908790620004db906001600160a01b03166200019b565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200054d576200051a578280f35b816200053e92903d1062000545575b62000535818362000c18565b81019062000cfd565b5081808280f35b503d62000529565b62000cb1565b6200056d90843d8611620005455762000535818362000c18565b5086620004a7565b62000bb3565b806200058b620005929262000bc9565b80620005b8565b8362000242565b5080fd5b806200058b620005ad9262000bc9565b84620001ec565b8380fd5b6000910312620005c457565b600080fd5b34620005c4576000806003193601126200078057737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000599576040516372eb5f8160e11b8152600060048201529082908290602490829084905af180156200054d5762000769575b50601754819060809062000705906200064b906001600160a01b03166200019b565b601554620006c19062000667906001600160a01b03166200019b565b601654620006b19062000683906001600160a01b03166200019b565b91620006a16200069262000c3b565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6001600160a01b03166040830152565b620006cb62000d17565b6060820152601354620006e7906001600160a01b03166200019b565b906040519485809481936305157c7f60e21b83526004830162000f56565b03925af180156200054d576200072391839162000730575b50601955565b6200072d62000ffb565b80f35b62000757915060803d60801162000761575b6200074e818362000c18565b81019062000ee7565b505050386200071d565b503d62000742565b806200058b620007799262000bc9565b3862000629565b80fd5b34620005c4576000366003190112620005c4576020604051660aa87bee5380008152f35b34620005c4576000806003193601126200078057737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000599576040516372eb5f8160e11b8152600060048201529082908290602490829084905af180156200054d5762000850575b50601754819060809062000829906200064b906001600160a01b03166200019b565b03925af180156200054d5762000846918391620007305750601955565b6200072d6200127d565b806200058b620008609262000bc9565b3862000807565b34620005c4576000806003193601126200078057737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000599576040516372eb5f8160e11b8152600060048201529082908290602490829084905af180156200054d5762000910575b506017548190608090620008e9906200064b906001600160a01b03166200019b565b03925af180156200054d5762000906918391620007305750601955565b6200072d620015a1565b806200058b620009209262000bc9565b38620008c7565b34620005c4576000806003193601126200078057737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000599576040516372eb5f8160e11b8152600060048201529082908290602490829084905af180156200054d57620009f6575b506017548190608090620009cf90620009a9906001600160a01b03166200019b565b601554620009c59062000667906001600160a01b03166200019b565b620006cb62000e1b565b03925af180156200054d57620009ec918391620007305750601955565b6200072d62001603565b806200058b62000a069262000bc9565b3862000987565b34620005c4576000366003190112620005c457602062000a2c62001b6a565b6040519015158152f35b34620005c4576000366003190112620005c4576020601954604051908152f35b34620005c4576020366003190112620005c45760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa9081156200054d5760009162000ada575b60c082015162000ad6906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e01162000b85575b8162000af860e0938362000c18565b81010312620005c45762000abc60c062000ad69262000b78826040519262000b208462000bde565b62000b2b8162000c5c565b845262000b3b6020820162000c5c565b602085015262000b4e6040820162000c5c565b6040850152606081015160608501526080810151608085015260a081015160a08501520162000c5c565b8282015292505062000aa8565b3d915062000ae9565b34620005c4576000366003190112620005c457602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200057557604052565b60e0810190811067ffffffffffffffff8211176200057557604052565b6080810190811067ffffffffffffffff8211176200057557604052565b90601f8019910116810190811067ffffffffffffffff8211176200057557604052565b604051906080820182811067ffffffffffffffff8211176200057557604052565b51906001600160a01b0382168203620005c457565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b6040513d6000823e3d90fd5b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b90816020910312620005c457518015158103620005c45790565b6040519060006020906020546001928160011c936001831692831562000e10575b60208610841462000dfc5785885287949360208601939291811562000ddb575060011462000d74575b50505062000d729250038362000c18565b565b92509362000da460206000527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb90565b946000935b82851062000dc45750505062000d7293500138808062000d61565b865485850152958601958895509381019362000da9565b9250505062000d729491925060ff19168252151560051b0138808062000d61565b634e487b7160e01b85526022600452602485fd5b94607f169462000d38565b6040519060006020906020546001928160011c936001831692831562000edc575b60208610841462000dfc5785885287949360208601939291811562000ddb575060011462000e755750505062000d729250038362000c18565b92509362000ea560206000527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb90565b946000935b82851062000ec55750505062000d7293500138808062000d61565b865485850152958601958895509381019362000eaa565b94607f169462000e3c565b9190826080910312620005c4578151916020810151916060604083015192015190565b60005b83811062000f1e5750506000910152565b818101518382015260200162000f0d565b9060209162000f4a8151809281855285808601910162000f0a565b601f01601f1916010190565b60a0606062000f999360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062000f2f565b90565b90816060910312620005c4578051916040602083015192015190565b60409062000f9993928152816020820152019062000f2f565b634e487b7160e01b600052601160045260246000fd5b9190820391821162000ff557565b62000fd1565b60135462001012906001600160a01b03166200019b565b6019546040516333854efd60e21b80825260048201839052929091906060908184602481845afa9081156200054d5760009460009262001245575b5060185462001065906001600160a01b03166200019b565b604051636237569f60e01b81526004810186905267016345785d8a00006024820152908490829060449082905afa9182156200054d576200110a95859360009060009460009162001212575b5090620010dc620010eb92604051968793602085016040919493926060820195825260208201520152565b03601f19810185528462000c18565b6000604051809881958294634eca17cd60e11b84526004840162000fb8565b03925af19182156200054d576200115f95600094600094620011e7575b5060135482919062001142906001600160a01b03166200019b565b60195491604051809a819482938352600483019190602083019252565b03915afa9384156200054d5762000d7296600092600096620011a0575b505090620011946200119a9262001194969762000fe7565b62001fdc565b62000fe7565b6200119496506200119a9350620011949181620011d592903d10620011df575b620011cc818362000c18565b81019062000f9c565b509650926200117c565b503d620011c0565b82809650620012069295503d8411620011df57620011cc818362000c18565b50949094939062001127565b620010dc9550620010eb9250620012399150863d8811620011df57620011cc818362000c18565b959095919250620010b1565b909450620012639150823d8411620011df57620011cc818362000c18565b509093386200104d565b90816020910312620005c4575190565b60185462001294906001600160a01b03166200019b565b60195460408051636237569f60e01b8152600480820184905267016345785d8a00006024830152936060939190849082908180604481015b03915afa9182156200054d5760009560009260009462001575575b50601354620012ff906001600160a01b03166200019b565b8551633be6a34160e01b8082523084830190815260208181018790529a92969193919291908b90889081906040010381845afa9687156200054d5760009762001551575b508851956333854efd60e21b968781528b818062001368858b83019190602083019252565b0381865afa998a156200054d578c958c8f9360009d6200150d575b505192830195865260208601526040850152620013cc949390929190620013af908490606001620010dc565b60008b51809681958294634eca17cd60e11b84528b840162000fb8565b03925af180156200054d57620014eb575b50601354620013f5906001600160a01b03166200019b565b9260195494875191825288828062001414898883019190602083019252565b0381885afa9889156200054d576200146c998b986200144a946200144393600093620014c4575b505062000fe7565b9062000fe7565b9551908152309181019182526020820193909352919485928391829160400190565b03915afa9182156200054d5762000d72936000936200148e575b505062001fdc565b620014b3929350803d10620014bc575b620014aa818362000c18565b8101906200126d565b90388062001486565b503d6200149e565b620014df929350803d10620011df57620011cc818362000c18565b9150509038806200143b565b6200150590883d8a11620011df57620011cc818362000c18565b5050620013dd565b620010dc919d50928897969594926200153d620013af95620013cc9b3d8c11620011df57620011cc818362000c18565b9150509e9250929495969798509262001383565b6200156d9197508b3d8d11620014bc57620014aa818362000c18565b953862001343565b9196509250620015959150843d8611620011df57620011cc818362000c18565b919590919238620012e7565b601854620015b8906001600160a01b03166200019b565b601954604080516379869bf960e11b8152600480820184905267016345785d8a0000602483015293606093919084908290818060448101620012cc565b9190820180921162000ff557565b6015546200161a906001600160a01b03166200019b565b604080516370a0823160e01b80825230600480840191909152602094939092918583602481885afa9283156200054d5760009362001ada575b506016546200166b906001600160a01b03166200019b565b8251828152308682019081529194918890829081906020010381885afa9081156200054d5760009162001ab8575b50601354620016b1906001600160a01b03166200019b565b9088855180998682528180620016d8878d8301919091602081019260018060a01b03169052565b03915afa9788156200054d5760009862001a94575b5084518481526001600160a01b03831688820190815290968a918891908290819060200103915afa9586156200054d5760009662001a70575b506018546200173e906001600160a01b03166200019b565b6019548651636237569f60e01b8152808a0182815267016345785d8a000060208201529194606094939092859183918290819060400103915afa9182156200054d57620017d9958d86946000948c60009160009362001a38575b50519283019586526020860152604085015292620017bb908490606001620010dc565b60008c8b5198899586948593634eca17cd60e11b8552840162000fb8565b03925af19283156200054d5760009260009462001a05575b5050620018058262001837939495620015f5565b908a896200181e6200019b60155460018060a01b031690565b8951898152309281019283529586928391829160200190565b03915afa9283156200054d576200186693869362001860928e600093620019e157505062001fdc565b620015f5565b60165490919062001880906001600160a01b03166200019b565b8551858152308982019081529099918b918b91908290819060200103915afa9889156200054d576200191e99620018c6946200119a92600092620019c5575b5062001fdc565b6015549091908890620018e2906001600160a01b03166200019b565b601354620018f9906001600160a01b03166200019b565b86518681526001600160a01b0390911689820190815290998a92918391829160200190565b03915afa9485156200054d576200119a899662001949946200146c9a600092620019a1575062001fdc565b60165490949062001963906001600160a01b03166200019b565b6013549092906200197d906001600160a01b03166200019b565b93519081526001600160a01b03909316908301908152919485928391829160200190565b620019bd919250893d8b11620014bc57620014aa818362000c18565b9038620018bf565b620019bd9192508d803d10620014bc57620014aa818362000c18565b620019fc929350803d10620014bc57620014aa818362000c18565b90388e62001486565b620018059450620018379350908162001a2c92903d10620011df57620011cc818362000c18565b509390809350620017f1565b62001a61919750620017bb949350620010dc9250883d8a11620011df57620011cc818362000c18565b90979197909394509162001798565b62001a8c919650893d8b11620014bc57620014aa818362000c18565b943862001726565b62001ab0919850893d8b11620014bc57620014aa818362000c18565b9638620016ed565b62001ad39150883d8a11620014bc57620014aa818362000c18565b3862001699565b62001af6919350863d8811620014bc57620014aa818362000c18565b913862001653565b90600491630667f9d760e41b815262001b21825180936020868501910162000f0a565b010190565b3d1562001b65573d9067ffffffffffffffff821162000575576040519162001b59601f8201601f19166020018462000c18565b82523d6000602084013e565b606090565b6000805460081c60ff161562001b84575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62001ba657505090565b819250604051828162001be460208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b0362001bf9601f199182810185528462000c18565b62001c1f604051918262001c1260208201968762001afe565b0390810183528262000c18565b51925af15062000f9962001c3262001b26565b6020808251830101910162000cfd565b6040805161106b80820167ffffffffffffffff918382108383111762000575578362001c7662002176938385843962000c71565b0360009485f080156200054d57601580546001600160a01b0319166001600160a01b03909216919091179055845191818301838110858211176200057557839262001cc392843962000cbd565b039083f080156200054d57601680546001600160a01b0319166001600160a01b0392831617905560155462001cf991166200019b565b803b1562001fd85783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af180156200054d5762001fc1575b5060165462001d56906001600160a01b03166200019b565b90813b15620005b457845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af180156200054d5762001faa575b5060155462001dac906001600160a01b03166200019b565b60165462001dc3906001600160a01b03166200019b565b908451916105979081840192848410868511176200057557849362001e10936200992986396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200054d57601480546001600160a01b0319166001600160a01b03909216919091179055825190612f21808301918211838310176200057557829162001e6691620031e184396000815260200190565b039082f09182156200054d5762001e9d62001f0c9360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b60155462001eb4906001600160a01b03166200019b565b60135490919062001ece906001600160a01b03166200019b565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af19283156200054d5762001f5794869462001f88575b5060165462001f3d906001600160a01b03166200019b565b601354909290620004db906001600160a01b03166200019b565b03925af180156200054d5762001f6b575050565b8162001f8592903d10620005455762000535818362000c18565b50565b62001fa290853d8711620005455762000535818362000c18565b503862001f25565b806200058b62001fba9262000bc9565b3862001d94565b806200058b62001fd19262000bc9565b3862001d3e565b8280fd5b9080820362001fe9575050565b6080806040938451937f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50836020968781526022888201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8982015261745d60f01b6060820152a1855190868252600a87830152690808115e1c1958dd195960b21b6060830152858201527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8938491a1845190858252600a8683015269080808081058dd1d585b60b21b606083015284820152a1737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620020ee575b50505061010061ff00196000541617600055565b8260006200214b6200215c602483979684975195818701908882526519985a5b195960d21b8189015260016060890152606088526200212d8862000bfb565b519485928301976370ca10bb60e01b89525180928585019062000f0a565b810103600481018452018262000c18565b51925af1506200216b62001b26565b50388080620020da56fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461007457601f61255c38819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b0319169190911790556040516124cc90816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630f4166b814610167578063250968d914610162578063306db46b1461015d578063332266f3146101585780633928ff97146101535780633b4d10301461014e5780634fd67c58146101495780635a93b8ce146101445780636237569f1461013f5780637f17409c1461013a57806381b5fac214610135578063902ecaa214610130578063a8c62e761461012b578063b09d04e514610126578063cb1f553214610121578063ce153bf41461011c578063def15f9214610117578063ec29d8e614610112578063ee3e8cfb1461010d578063f2de7a7b146101085763f30d37f21461010357600080fd5b6109b2565b610996565b610962565b61094c565b6108e0565b61082f565b6107ea565b6107a6565b61077d565b610754565b610700565b6106a0565b61063f565b61061a565b6105f1565b6105bf565b61032e565b6102d6565b61029f565b610236565b346101d55760403660031901126101d55767ffffffffffffffff6024358181116101d557366023820112156101d55780600401359182116101d55736602483830101116101d5576101d19160246101c192016004356109e5565b6040519081529081906020820190565b0390f35b600080fd5b60005b8381106101ed5750506000910152565b81810151838201526020016101dd565b90602091610216815180928185528580860191016101da565b601f01601f1916010190565b9060206102339281815201906101fd565b90565b346101d55760403660031901126101d5576101d160405160026020820152600435604082015260243560608201526060815261027181610881565b6040519182916020835260208301906101fd565b60609060031901126101d557600435906024359060443590565b346101d55760206102ce6102b236610285565b906102c56102bf84610c45565b93610d72565b92919091610f1e565b604051908152f35b346101d55760206102ce6102e936610285565b906102f66102bf84610c45565b92919091611149565b801515036101d557565b90926080926102339594151583526020830152604082015281606082015201906101fd565b346101d55760603660031901126101d55760043560243561034e816102ff565b6104c46044359161035d610a11565b6103ad610368610a11565b9461037287610d72565b9491959092602096878401946040978886015285528352868a878b61039683610c45565b9889938851906103a78b5191610c45565b916112e2565b951561053b575061040c936103fe6103f96104409998956103f3866103dc610405976104199c99015187611d20565b926103ea8d518b5190611d4c565b91015190611324565b90611d20565b610a57565b9351610a7a565b8b52610a7a565b80868a015288518a610e65565b9061043761042c878a0193808552610a57565b808452825111610b21565b51905190610b14565b955b60c0865185880192610484845197610476888c015189519a8b96879485016040919493926060820195825260208201520152565b03601f1981018452836108be565b6000546104a79061049b906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610baf565b03915afa948515610536576000956104f6575b50906104eb916101d19596519051906114e4565b905194859485610309565b6101d19550906105216104eb939260c03d60c01161052f575b61051981836108be565b810190610b78565b5050505050955090916104d7565b503d61050f565b610bd3565b91966105b09561059d946105866105a59761057f6103f98c6103f36105b99f61057761056d6105909c83015188611d20565b93518b5190611d4c565b905190611324565b9451610a7a565b9401938452610a7a565b9081898d0152518c610bdf565b808a52610a57565b808952825111610a87565b51865190610b14565b95610442565b346101d55760203660031901126101d55760206102ce6004356105ea6105e482610c45565b91610d72565b50906114e4565b346101d55760206102ce61060436610285565b906106116102bf84610c45565b92919091611509565b346101d55760206102ce61063961063036610285565b91929092610c45565b916116a4565b346101d55760403660031901126101d55761067b6004356101d161068261067361066884610d72565b9190506024356116d1565b949093610c45565b84846119e2565b92604051938493846040919493926060820195825260208201520152565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36106c985610d72565b91506024356116fe565b939094610c45565b83856116a4565b91604051938493846040919493926060820195825260208201520152565b346101d55760203660031901126101d557608061071e600435610c45565b61075260405180926060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565bf35b346101d55760206102ce61076736610285565b906107746102bf84610c45565b92919091611725565b346101d55760003660031901126101d5576000546040516001600160a01b039091168152602090f35b346101d55760203660031901126101d5576101d160405160016020820152600435604082015260408152610271816108a2565b6001600160a01b038116036101d557565b346101d55760203660031901126101d5576101d160043561080a816107d9565b60408051600360208201526001600160a01b03909216828201528152610271816108a2565b346101d55760203660031901126101d5576101d161084e600435610d72565b604080519384526020840192909252908201529081906060820190565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761089d57604052565b61086b565b6060810190811067ffffffffffffffff82111761089d57604052565b90601f8019910116810190811067ffffffffffffffff82111761089d57604052565b346101d55760c03660031901126101d55760803660431901126101d5576101d161094060405161090f81610881565b60443581526064356020820152608435604082015260a435610930816107d9565b60608201526024356004356118a2565b60405191829182610222565b346101d55760206102ce6103a761063036610285565b346101d55760403660031901126101d55761067b6004356101d161068261067361098b84610d72565b9190506024356116fe565b346101d55760206102ce6109ac61063036610285565b916119e2565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36109db85610d72565b91506024356116d1565b9181606091810103126101d5576109fe61023392610c45565b9060408101359060208101359035610e8b565b604051906060820182811067ffffffffffffffff82111761089d5760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610a6557565b610a41565b906103e8918201809211610a6557565b91908201809211610a6557565b15610a8e57565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b90670de0b6b3a7640000918203918211610a6557565b906103e8918203918211610a6557565b6103e719810191908211610a6557565b91908203918211610a6557565b15610b2857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c09103126101d5578151610b8f816102ff565b9160208101519160408201519160608101519160a0608083015192015190565b610233939260609260018060a01b03168252602082015281604082015201906101fd565b6040513d6000823e3d90fd5b9161063961023393610c45565b91908260809103126101d557604051610c0481610881565b6060808294805184526020810151602085015260408101516040850152015191610c2d836107d9565b0152565b906080828203126101d55761023391610bec565b90604051610c5281610881565b600090818152816060602092828482015282604082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610536578092610cb3575b506102339293508082518301019101610c31565b9091503d8082863e610cc581866108be565b8401908285830312610d3b57845167ffffffffffffffff95868211610d3e57019082601f83011215610d3b57815195861161089d5760405192610d11601f8801601f19168601856108be565b868452848784010111610d3b57506102339394610d33918480850191016101da565b908392610c9f565b80fd5b8280fd5b908160209103126101d55751610233816107d9565b908160609103126101d5578051916040602083015192015190565b9060046020610d8e61049b61049b60005460018060a01b031690565b604051632bee84f160e21b815292839182905afa92831561053657610dd993606092600091610e36575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156105365760008093600093610dff575b50929190565b91935050610e25915060603d606011610e2f575b610e1d81836108be565b810190610d57565b9290929138610df9565b503d610e13565b610e58915060203d602011610e5e575b610e5081836108be565b810190610d42565b38610db8565b503d610e46565b916109ac61023393610c45565b81810392916000138015828513169184121617610a6557565b9260206103ea84610eae610ea66103f39697610eb499612087565b855190611324565b95612087565b670de0b6b3a763ffff198101908113600116610a655790565b908152602080820192909252604080820193909352606080820194909452845160808201529084015160a08201529083015160c08201529101516001600160a01b031660e08201526101000190565b565b909291855160208701516040880151610f3690610ade565b91610f418785612087565b610f4b8282611324565b92610f5591611324565b895185898581610f65858d6120ca565b90610f6f916120ca565b90610f79916120ca565b92610f83906120a9565b610f8c90610af4565b90610f9691610a7a565b90610fa0916120ca565b610fa986610ade565b610fb2916120ca565b92610fbc8a610a6a565b90610fc6906110f0565b610fcf91611324565b91610fd9906120a9565b610fe286610ade565b610feb916120ca565b610ff59089610a7a565b92610fff91610b14565b91611009916120ca565b895161101490610ade565b61101d90612068565b61102691611324565b61102f916120ca565b91885161103b90610ade565b61104488610a6a565b9261104f89896120ca565b90611059916120ca565b91611063866120a9565b9061106d90610ade565b611076916120ca565b92611080916120ca565b9161108a91610a7a565b611093916120ca565b9061109d846110f0565b916110a791612087565b6110b09161112d565b6000136110e557610233956110e0936110d29260405196879560208701610ecd565b03601f1981018352826108be565b611a30565b505050505050600090565b600160ff1b8114610a655760000390565b90816103e801918212600116610a6557565b9081670de0b6b3a763ffff190191821215600116610a6557565b91909160008382019384129112908015821691151617610a6557565b94939290928451906020860151604087015161116490610ade565b9261116f8787612087565b6111798282611324565b9261118391611324565b885187898581611193858c6120ca565b9061119d916120ca565b906111a7916120ca565b926111b290886120ca565b6111bc9088610b14565b906111c691610a7a565b906111d0916120ca565b6111d987610ade565b6111e2916120ca565b926111ed8a87610a7a565b906111f7906110f0565b61120091611324565b9161120b90866120ca565b61121487610ade565b61121d916120ca565b6112279088610a7a565b9261123191610b14565b9161123b916120ca565b885161124690610ade565b61124f90612068565b61125891611324565b611261916120ca565b965161126c90610ade565b936112778784610a7a565b96611281916120ca565b9061128b916120ca565b93611295916120ca565b9061129f90610ade565b6112a8916120ca565b926112b2916120ca565b916112bc91610a7a565b6112c5916120ca565b916112cf906110f0565b916112d991612087565b6102339161112d565b610233929160206112f86103f393855190611324565b93015190611324565b818102929160008212600160ff1b821416610a65578184051490151715610a6557565b6114d1610233927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642846114df9361135a60008213611dc8565b711340daa0d5f769dba1915cef59f0815a55066113768261210a565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d611301565b670de0b6b3a7640000900590565b611e00565b611503906114fb6102339493602085015190612087565b925190612087565b90612087565b90929185516040870151670de0b6b3a764000060008282039212818312811691831390151617610a655761153c83611101565b61154583611113565b61154e91611324565b908261155a8589611fa9565b9061156491611324565b61156d81611fc7565b9261157783611113565b6115819085611ff0565b61158b9089610e72565b91829161159788611101565b6115a19088611ff0565b936115ab91611ff0565b6115b487611f8a565b6115bd91611324565b926115c787611113565b6115d1908b611ff0565b91886115dc89611fc7565b906115e69161112d565b6115ef91611ff0565b6115f886611113565b61160191611ff0565b9261160b91611ff0565b926116169089611ff0565b9161162091610e72565b61162991611ff0565b6116329161112d565b9261163c85611101565b61164591611ff0565b9161164f876110f0565b9161165990611113565b61166291611ff0565b61166b9161112d565b61167491611ff0565b61167d91611fa9565b6000136110e5576102339561169f936110d29260405196879560208701610ecd565b611b55565b6116c461023393926116be6116cb93602086015190611324565b90611d4c565b9151611d7c565b90611324565b9291906116e76116e18284611d4c565b85611d20565b938103908111610a6557928103908111610a655790565b92919061170e6116e18284611d4c565b938101809111610a6557928101809111610a655790565b9293949091946040825192015193670de0b6b3a764000060008682039612818712811691871390151617610a6557828794611760868561112d565b61176983611113565b61177291611324565b9561177c91611fa9565b9061178691611324565b936117918584611ff0565b9461179b87611113565b6117a59087611ff0565b6117af9089610e72565b9283926117bc8b8761112d565b6117c69088611ff0565b946117d091611ff0565b6117d987611f8a565b6117e291611324565b936117ec87611113565b6117f6908b611ff0565b928b6118028989611ff0565b9061180c9161112d565b61181591611ff0565b61181e8a611113565b61182791611ff0565b9361183191611ff0565b9361183b91611ff0565b9161184591610e72565b61184e91611ff0565b6118579161112d565b956118619161112d565b61186a91611ff0565b92611874906110f0565b9161187e90611113565b61188791611ff0565b6118909161112d565b61189991611ff0565b61023391611fa9565b929190836118bd6118c2926118bd6020860151865190612087565b6120ca565b906118ce8183866112e2565b936118db82868584610e8b565b85906000808212156119a4575b808212611986575061192d61197a9261023396979886935b6119146040519889928c8a6020860161201f565b0396611928601f19988981018352826108be565b611c2c565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b039081018352826108be565b9661199191506120eb565b9561199e84888786610e8b565b906118e8565b9691965b8082136119c4575061192d61023395969761197a938693611900565b966119cf9150611d9e565b956119dc84888786610e8b565b906119a8565b60206119fb61023394936116be6116cb94865190611324565b920151611d7c565b9190610100838203126101d557825192602081015192610233604083015193608060608501519401610bec565b91906103e892600093600091838211611b3457611a4c8161217c565b611a5685836122d5565b6000611a628284611301565b13611b155750611a73859695610b04565b60019460009186805b611a8d575b50505050505050509050565b15611af0575b5085969798508091611aae611aa88b88610a7a565b60011c90565b99611ab98b876122d5565b9083611ac58784611301565b13611ae457505089925b87611ada8886610b14565b9201939998611a7c565b8b975090945092611acf565b861080611b0a575b15611b035788611a93565b8080611a81565b506101008210611af8565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e892600093600091838211611b3457611b71816122f6565b611b7b8583612441565b6000611b878284611301565b13611b155750611b98859695610b04565b60019460009186805b611bb15750505050505050509050565b15611c0e575b5085969798508091611bcc611aa88b88610a7a565b99611bd78b87612441565b9083611be38784611301565b13611c0257505089925b87611bf88886610b14565b9201939998611ba1565b8b975090945092611bed565b861080611c21575b15611b035788611bb7565b506101008210611c16565b60009392918491838211611d0057611c448282612462565b611c4e8583612462565b6000611c5a8284611301565b13611b155750611c6c83869796610b14565b60019460009186805b611c855750505050505050509050565b15611ce2575b5085969798508091611ca0611aa88b88610a7a565b99611cab8b87612462565b9083611cb78784611301565b13611cd657505089925b87611ccc8886610b14565b9201939998611c75565b8b975090945092611cc1565b861080611cf5575b15611b035788611c8b565b506101008210611cea565b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b8181029181830414901517600116156101d5576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101d557600190600019830104019015150290565b600181151516156101d5576ec097ce7bc90715b34b9f0fffffffff0460010190565b6103e9908181029181830414901517600116156101d55760016103e8600019830104019015150290565b15611dcf57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e19811315611f8457680755bf798b4a1bf1e5811215611f50576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029182051482151516156101d5570590565b6103e881810291600160ff1b81136001179183051416156101d557670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b9091131716156101d557670de0b6b3a7640000900590565b610f1c9360609296959360e083019783526020830152604082015201906060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000490565b670de0b6b3a764000090818102918183041490151782151516156101d5570490565b6103e89080820291820414600116156101d557670de0b6b3a7640000900490565b8181029181830414901517600116156101d557670de0b6b3a7640000900490565b6103e7908181029181830414901517600116156101d5576103e8900490565b612115811515611dc8565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b80518101602001906020019061219191611a03565b9291908351602085015160408601516121a990610ade565b916121b48686612087565b6121be8282611324565b926121c891611324565b8751868885816121d8858b6120ca565b906121e2916120ca565b906121ec916120ca565b926121f6906120a9565b6121ff90610af4565b9061220991610a7a565b90612213916120ca565b61221c86610ade565b612225916120ca565b9261222f89610a6a565b90612239906110f0565b61224291611324565b9161224c906120a9565b61225586610ade565b61225e916120ca565b6122689087610a7a565b9261227291610b14565b9161227c916120ca565b875161228790610ade565b61229090612068565b61229991611324565b6122a2916120ca565b95516122ad90610ade565b926122b786610a6a565b956122c1916120ca565b906122cb916120ca565b92611295906120a9565b906122ec6102339260208082518301019101611a03565b9493929092611149565b6123099060208082518301019101611a03565b6040819593959492945191015192670de0b6b3a764000060008582039512818612811691861390151617610a655781869361234385611101565b61234c83611113565b61235591611324565b9461235f91611fa9565b9061236991611324565b9261237384611fc7565b9361237d86611113565b6123879086611ff0565b6123919088610e72565b92839261239d8a611101565b6123a79087611ff0565b946123b191611ff0565b6123ba86611f8a565b6123c391611324565b936123cd86611113565b6123d7908a611ff0565b928a6123e288611fc7565b906123ec9161112d565b6123f591611ff0565b6123fe89611113565b61240791611ff0565b9361241191611ff0565b9361241b91611ff0565b9161242591610e72565b61242e91611ff0565b6124379161112d565b9461186190611101565b906124586102339260208082518301019101611a03565b9493929092611725565b805181019160e0828403126101d5576102339261249060208401519360806020604083015194019101610bec565b92610e8b56fea2646970667358221220ddef7f48a463f4812492c0cc35c784e857fab14e0a29d203d7aa233c67d9fa2964736f6c6343000816003360a03461007f57601f6112cb38819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f57608052604051611230908161009b82396080518181816103b701528181610612015281816107c601526109240152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b610953565b61090e565b6107ad565b610773565b6105f6565b610331565b6102ae565b610221565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101c3565b838082518301019101610986565b9061010d6100ff600435610a7f565b8680825183010191016109a1565b92610b68565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761015057604052565b61011e565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101a1601f8201601f191660200184610155565b8294818452818301116101be578281602093846000960137010152565b600080fd5b9080601f830112156101be578160206101de93359101610177565b90565b919082519283825260005b84811061020d575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101ec565b346101be5760003660031901126101be57604051604081019080821067ffffffffffffffff8311176101505761027891604052600381526247334d60e81b60208201526040519182916020835260208301906101e1565b0390f35b9060405161028981610134565b6060600382948054845260018101546020850152600281015460408501520154910152565b346101be5760203660031901126101be57600435600052600060205260c060406000206102da8161027c565b90600481015490600560018060a01b03910154169060606040519380518552602081015160208601526040810151604086015201516060840152608083015260a0820152f35b6001600160a01b038116036101be57565b346101be5760603660031901126101be5761034d600435610320565b60243560443567ffffffffffffffff81116101be576103709036906004016101c3565b9061037a81610a7f565b90610390825192602080809583010191016109a1565b6040516333854efd60e21b8152600481018390529092906060816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa948515610596576000908192829761055d575b508084806103ff93518301019101610986565b949195909787878581116000146104c45793610454869461044e866104496104769b9761044461046198604061043b61046d9f6104679f610a08565b91015190610f48565b610f48565b610f74565b50610a7f565b80518101820191016109a1565b91610bb9565b83610a27565b93828685610b68565b93846013191292836104b9575b6102789394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b601486129350610483565b5050919290938089116000146104ff5761046161046d946104546104769761044e856104498f998f61044490604061043b866104679f610a08565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9096506103ff9250610587915060603d60601161058f575b61057f8183610155565b810190610986565b9690926103ec565b503d610575565b6109e6565b9060606003198301126101be576004356105b481610320565b916024359160443567ffffffffffffffff928382116101be57806023830112156101be5781600401359384116101be57602484830101116101be576024019190565b346101be576106043661059b565b9192506001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610761578160c091810103126101be5780359160208201359160408101359460608201359060a08301359261066984610320565b670de0b6b3a764000083101561074f5761070d946107059460806106f1936106f69661069f876000526000602052604060002090565b55013560046106b8866000526000602052604060002090565b01551660056106d1846000526000602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610a7f565b602080825183010191016109a1565b848385610b68565b9283601319129182610744575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b60148512925061071a565b60405163e8a38a6160e01b8152600490fd5b604051636853cba760e01b8152600490fd5b346101be5760606107833661059b565b818094509492940103126101be5780359061070d6107056106f66040602085013594013595610a7f565b346101be576107bb3661059b565b926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610761576108236108176005610809876000526000602052604060002090565b01546001600160a01b031690565b6001600160a01b031690565b9116036108fc5761083683820182610a4a565b61083f81610a5f565b60018103610878575061086261085d61087392600494953691610177565b610caa565b926000526000602052604060002090565b01555b005b61088181610a5f565b600281036108bd5750906108a56108a06108b893610876953691610177565b610c00565b9290916000526000602052604060002090565b610c28565b806108c9600392610a5f565b036108ea576106d16108626108e5600593610876963691610177565b610bd8565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101be5760003660031901126101be576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101be5760203660031901126101be57610278610972600435610a7f565b6040519182916020835260208301906101e1565b908160609103126101be578051916040602083015192015190565b908160809103126101be576060604051916109bb83610134565b80518352602081015160208401526040810151604084015201516109de81610320565b606082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610a1557565b6109f2565b91908201809211610a1557565b81810392916000138015828513169184121617610a1557565b600411156101be57565b908160209103126101be57356101de81610a40565b60041115610a6957565b634e487b7160e01b600052602160045260246000fd5b60408051610a8c81610134565b6000918282526020820193838552818301848152606084019085825282865285602052610ac2610abd85882061027c565b610cdf565b808652670de0b6b3a7640000908103908111610a1557846101de97610b1f95610b1294600594610b5a9c5281835282602052600484842001549052815280602052200160018060a01b0390541690565b6001600160a01b03169052565b5192839160208301919091606060808201938051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b03601f198101835282610155565b926020610b9184610b8b610b83610b9a9697610ba099610fa4565b855190610d88565b95610fa4565b91015190610d88565b90610f48565b670de0b6b3a763ffff198101908113600116610a155790565b6101de92916020610bcf610b9a93855190610d88565b93015190610d88565b6040818051810103126101be5780610bf560206040930151610a40565b015161081781610320565b6060818051810103126101be57610c1a6020820151610a40565b606060408201519101519091565b919042821115610c9857610c3e610abd8461027c565b9081845542600385015542830391838311610a1557610c5c91610a27565b428314610c8257600160ff1b8114600019831416610a1557600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101be5780610cc760206040930151610a40565b015190565b81810292918115918404141715610a1557565b6060810151906020810151808314610d5e57804211600014610d5657915b8203918211610a15576040810190815160008113600014610d3057506101de92610d2a9151925190610ccc565b90610a1a565b90519150600160ff1b8114610a15576101de92610d509160000390610ccc565b90610a08565b504291610cfd565b5090505190565b818102929160008212600160ff1b821416610a15578184051490151715610a1557565b610f356101de927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284610f4393610dbe60008213610fc6565b711340daa0d5f769dba1915cef59f0815a5506610dda82611188565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d610d65565b670de0b6b3a7640000900590565b610ffe565b8181029181830414901517600116156101be576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101be57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101be570490565b15610fcd57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131561118257680755bf798b4a1bf1e581121561114e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b611193811515610fc6565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c600110179056fea26469706673582212209815df372867dd1ba42d4263690c8e70d1f8dc34ff9f897579936267cb43316764736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a2646970667358221220f6526418f2cc694cc295f0a1e8a3fdfcaca3aa57c58b86f5fb33bb97580ade4064736f6c63430008160033","sourceMap":"88:3340:70:-:0;;;1594:4:0;88:3340:70;;1594:4:0;88:3340:70;;;1594:4:0;88:3340:70;378:11:59;88:3340:70;378:11:59;330:9:73;378:11:59;88:3340:70;378:11:59;;302:134:73;378:11:59;;;;302:134:73;378:11:59;424:4:73;302:134;378:11:59;;302:134:73;378:11:59;;;;;424:4:73;378:11:59;;;;;;;;;;;;468:7:73;;;378:11:59;;468:7:73;510;468;510;378:11:59;;510:7:73;378:11:59;554:88:73;468:7;378:11:59;510:7:73;378:11:59;;;:::i;:::-;554:88:73;;:::i;:::-;378:11:59;:::i;:::-;88:3340:70;;;;;;;;;;;;;378:11:59;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;;;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;378:11:59;;;;-1:-1:-1;;;;;378:11:59;;;;;;;;;;:::o;:::-;88:3340:70;;378:11:59;;;;:::i;:::-;302:134:73;378:11:59;;;;;;;;;;;88:3340:70;378:11:59;;;;;-1:-1:-1;;;;;378:11:59;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;378:11:59;302:134:73;-1:-1:-1;378:11:59;302:134:73;-1:-1:-1;378:11:59;;302:134:73;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;378:11:59;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;302:134:73;378:11:59;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;378:11:59;;;;;302:134:73;378:11:59;;-1:-1:-1;;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1858:513:35;;;799:19:18;1349:9:35;;;1790:35;1728;631:21:18;378:11:59;631:21:18;378:11:59;;;965:21:18;378:11:59;;965:21:18;;;:::i;:::-;631;:::i;:::-;1728:35:35;;;:::i;:::-;378:11:59;;1790:35:35;;:::i;:::-;799:19:18;;:::i;:::-;2139:69:35;;;;;;;:::i;:::-;8798:29;;-1:-1:-1;8914:21:35;;;-1:-1:-1;;;8954:21:35;;;;;;8910:600;9519:160;2296:72;8910:600;2296:72;8910:600;;;;;;88:3340:70;;;1349:9:35;9538:45;;;88:3340:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;88:3340:70;;;;;;;;9538:45:35;;-1:-1:-1;;;9538:45:35;88:3340:70;;9538:45:35;:::i;:::-;9519:160;:::i;:::-;378:11:59;;88:3340:70;2334:14:35;;;378:11:59;2350:17:35;;;;378:11:59;88:3340:70;;1349:9:35;2296:72;;88:3340:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;88:3340:70;;;;;;;;;;;;2296:72:35;;;;;;;;;:::i;:::-;1858:513;:::o;8947:268::-;8999:27;;;;;:::i;:::-;9060:144;;;;;;;:::i;:::-;8947:268;;;8910:600;9237:267;;;9244:21;;;;;;8910:600;9519:160;2296:72;8910:600;;;2296:72;8910:600;;;;;9237:267;9289:26;;;;;:::i;:::-;9349:144;;;;;;;:::i;:::-;9237:267;;;88:3340:70;378:11:59;;;88:3340:70;;;;;;;;1692:384:42;;2000:9;965:21:18;1692:384:42;1880:50;965:21:18;1961:50:42;1692:384;;799:19:18;1692:384:42;965:21:18;:::i;:::-;378:11:59;;1880:50:42;;:::i;:::-;965:21:18;;:::i;:::-;2000:9:42;;378:11:59;1961:50:42;;:::i;799:19:18:-;88:3340:70;;;;;;;;;;;1692:384:42;:::o;88:3340:70:-;;:::i;:::-;;;;;;;;;-1:-1:-1;;;88:3340:70;;;;;;;;;;;;;;;:::o;1208:273:18:-;1399:12;1391:36;1208:273;7380:72;1398:28;1208:273;4688:27;-1:-1:-1;4696:5:18;;4688:27;:::i;:::-;7125:43;5125:16;;;:::i;:::-;5145:2;88:3340:70;;;5175:3:18;88:3340:70;;378:11:59;5175:3:18;378:11:59;88:3340:70;;;;7232:71:18;88:3340:70;;6411:30:18;88:3340:70;6343:32:18;88:3340:70;6274:33:18;88:3340:70;6205:33:18;88:3340:70;6136:33:18;88:3340:70;6068:32:18;88:3340:70;6001:31:18;88:3340:70;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;88:3340:70;;;;;;;;;;;;;;;;5533:32:18;88:3340:70;5465:32:18;88:3340:70;5398:31:18;88:3340:70;;;;;;;;;;;;;;;;;;;;;;;;6455:304:18;88:3340:70;;;;;1399:12:18;:::i;:::-;491:4;88:3340:70;;;;1398:28:18;1391:36;:::i;8282:752::-;8417:611;;;;;;;;;;;;;;;;;491:4;378:11:59;;8417:611:18;;;;;;;;8282:752;:::o;:::-;9304:4:35;8417:611:18;;;;;;;;;;;;;;;;;;9310:4:35;378:11:59;;8417:611:18;;;;;;;;8282:752;:::o;7741:535::-;491:4;7878:392;;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;7878:392;;;;;;;;;;;;;;;;491:4;7878:392;;7741:535;:::o;:::-;9016:3:35;7878:392:18;;;;;;;;;;;;;;;;;9021:4:35;7878:392:18;;7741:535;:::o;88:3340:70:-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;1009:1952:33:-;378:11:59;;1009:1952:33;;378:11:59;;1239:13:33;;;1235:66;;1632:15;;;;:::i;:::-;1674;;;;:::i;:::-;378:11:59;1699:25:33;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;;:::i;:::-;9631:1:35;;378:11:59;;9631:1:35;;;;;1978:981:33;1009:1952;;;;;;;;;;:::o;1978:981::-;;;;;2909:48;;;;;;;2123:13;2122:19;2123:13;;;;:::i;:::-;88:3340:70;;;;2122:19:33;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;378:11:59;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;88:3340:70;;1978:981:33;;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;2909:18;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;;;;;;2931:26;9643:3:35;2931:26:33;;2909:48;;1695:115;88:3340:70;;-1:-1:-1;;;1747:56:33;;;;;88:3340:70;;;;;;;;;;1747:56:33;1235:66;88:3340:70;;-1:-1:-1;;;1261:40:33;;;;;88:3340:70;;;;;;;;;;;1747:56:33;88:3340:70;;;;:::o;:::-;;;-1:-1:-1;;;88:3340:70;;;;;;;;;;;;-1:-1:-1;;;88:3340:70;;;;;;;1487:3103:18;-1:-1:-1;;1713:26:18;;;1709:40;;1948:21;1943:26;;;1939:54;;2266:5;378:11:59;88:3340:70;378:11:59;88:3340:70;4502:49:18;2559:29;88:3340:70;3136:40:18;88:3340:70;378:11:59;2591:5:18;378:11:59;;;;88:3340:70;;;;;;;;;3074:35:18;88:3340:70;2874:31:18;88:3340:70;;;;;;3649:35:18;88:3340:70;;;;3508:34:18;88:3340:70;;;;3371:32:18;88:3340:70;;;;;;;;;;;;;;;;;;;;;;;;;;2941:32:18;88:3340:70;;;;;;;;;;;;;;;3699:327:18;88:3340:70;;4564:3:18;88:3340:70;378:11:59;1487:3103:18;:::o;1939:54::-;88:3340:70;;-1:-1:-1;;;1971:22:18;;88:3340:70;1971:22:18;;;88:3340:70;;;;;;-1:-1:-1;;;88:3340:70;;;;;;1747:56:33;1709:40:18;1741:8;1748:1;1741:8;:::o;15328:575::-;15397:27;15405:5;;;15397:27;:::i;:::-;15435:462;378:11:59;15435:462:18;;;;;;;;;;378:11:59;;;;;15435:462:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:575;:::o;88:3340:70:-;378:11:59;;;3862:59:35;;88:3340:70;;;;;;;3862:59:35;;;88:3340:70;;;;;;;;;;;;;;;;;378:11:59;;;;:::i;:::-;88:3340:70;;;;;;;;;;3862:59:35;88:3340:70;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;88:3340:70;;;;3934:64:35;88:3340:70;;;;;3934:64:35;:::i","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e414620000d0575050806338b6302014620000ca578063620a260714620000c457806398fc510714620000be5780639d89721314620000b8578063a9fca20c14620000b2578063ba414fa614620000ac578063e0d7d0e914620000a6578063e21485ad14620000a05763fa7626d4146200009a57600080fd5b62000b8e565b62000a56565b62000a36565b62000a0d565b62000927565b62000867565b620007a7565b62000783565b620005c9565b346200059957816003193601126200059957620000ec62001c42565b805161106b8082019067ffffffffffffffff92808310848411176200057557806200011f62002176948486843962000c71565b039086f080156200054d57601580546001600160a01b0319166001600160a01b0390921691909117905583519181830183811085821117620005755783926200016a92843962000cbd565b039084f080156200054d57601680546001600160a01b0319166001600160a01b03928316179055601554620001a791165b6001600160a01b031690565b803b15620005b45782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af180156200054d576200059d575b50601654849062000206906001600160a01b03166200019b565b91823b156200059957845190815230600482015268056bc75e2d631000006024820152918290604490829084905af180156200054d576200057b575b506015546200025a906001600160a01b03166200019b565b60165462000271906001600160a01b03166200019b565b9083519161059790818401928484108685111762000575578493620002be936200992986396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200054d57601480546001600160a01b0319166001600160a01b039092169190911790558151612f218082019082821084831117620005755782916200031491620031e184396000815260200190565b039084f080156200054d57601380546001600160a01b0319166001600160a01b0392909216918217905562000349906200019b565b8251906112cb8083019183831085841117620005755783926200037f926200865e85396001600160a01b03909116815260200190565b039084f080156200054d57601780546001600160a01b0319166001600160a01b03929092169182179055620003b4906200019b565b82519161255c80840192909183118484101762000575578392620003eb926200610285396001600160a01b03909116815260200190565b039083f09081156200054d57620004226200048e9260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b60155462000439906001600160a01b03166200019b565b60135462000450906001600160a01b03166200019b565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200054d576200050693859362000553575b50601654620004bf906001600160a01b03166200019b565b6013549091908790620004db906001600160a01b03166200019b565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200054d576200051a578280f35b816200053e92903d1062000545575b62000535818362000c18565b81019062000cfd565b5081808280f35b503d62000529565b62000cb1565b6200056d90843d8611620005455762000535818362000c18565b5086620004a7565b62000bb3565b806200058b620005929262000bc9565b80620005b8565b8362000242565b5080fd5b806200058b620005ad9262000bc9565b84620001ec565b8380fd5b6000910312620005c457565b600080fd5b34620005c4576000806003193601126200078057737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000599576040516372eb5f8160e11b8152600060048201529082908290602490829084905af180156200054d5762000769575b50601754819060809062000705906200064b906001600160a01b03166200019b565b601554620006c19062000667906001600160a01b03166200019b565b601654620006b19062000683906001600160a01b03166200019b565b91620006a16200069262000c3b565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6001600160a01b03166040830152565b620006cb62000d17565b6060820152601354620006e7906001600160a01b03166200019b565b906040519485809481936305157c7f60e21b83526004830162000f56565b03925af180156200054d576200072391839162000730575b50601955565b6200072d62000ffb565b80f35b62000757915060803d60801162000761575b6200074e818362000c18565b81019062000ee7565b505050386200071d565b503d62000742565b806200058b620007799262000bc9565b3862000629565b80fd5b34620005c4576000366003190112620005c4576020604051660aa87bee5380008152f35b34620005c4576000806003193601126200078057737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000599576040516372eb5f8160e11b8152600060048201529082908290602490829084905af180156200054d5762000850575b50601754819060809062000829906200064b906001600160a01b03166200019b565b03925af180156200054d5762000846918391620007305750601955565b6200072d6200127d565b806200058b620008609262000bc9565b3862000807565b34620005c4576000806003193601126200078057737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000599576040516372eb5f8160e11b8152600060048201529082908290602490829084905af180156200054d5762000910575b506017548190608090620008e9906200064b906001600160a01b03166200019b565b03925af180156200054d5762000906918391620007305750601955565b6200072d620015a1565b806200058b620009209262000bc9565b38620008c7565b34620005c4576000806003193601126200078057737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000599576040516372eb5f8160e11b8152600060048201529082908290602490829084905af180156200054d57620009f6575b506017548190608090620009cf90620009a9906001600160a01b03166200019b565b601554620009c59062000667906001600160a01b03166200019b565b620006cb62000e1b565b03925af180156200054d57620009ec918391620007305750601955565b6200072d62001603565b806200058b62000a069262000bc9565b3862000987565b34620005c4576000366003190112620005c457602062000a2c62001b6a565b6040519015158152f35b34620005c4576000366003190112620005c4576020601954604051908152f35b34620005c4576020366003190112620005c45760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa9081156200054d5760009162000ada575b60c082015162000ad6906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e01162000b85575b8162000af860e0938362000c18565b81010312620005c45762000abc60c062000ad69262000b78826040519262000b208462000bde565b62000b2b8162000c5c565b845262000b3b6020820162000c5c565b602085015262000b4e6040820162000c5c565b6040850152606081015160608501526080810151608085015260a081015160a08501520162000c5c565b8282015292505062000aa8565b3d915062000ae9565b34620005c4576000366003190112620005c457602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200057557604052565b60e0810190811067ffffffffffffffff8211176200057557604052565b6080810190811067ffffffffffffffff8211176200057557604052565b90601f8019910116810190811067ffffffffffffffff8211176200057557604052565b604051906080820182811067ffffffffffffffff8211176200057557604052565b51906001600160a01b0382168203620005c457565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b6040513d6000823e3d90fd5b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b90816020910312620005c457518015158103620005c45790565b6040519060006020906020546001928160011c936001831692831562000e10575b60208610841462000dfc5785885287949360208601939291811562000ddb575060011462000d74575b50505062000d729250038362000c18565b565b92509362000da460206000527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb90565b946000935b82851062000dc45750505062000d7293500138808062000d61565b865485850152958601958895509381019362000da9565b9250505062000d729491925060ff19168252151560051b0138808062000d61565b634e487b7160e01b85526022600452602485fd5b94607f169462000d38565b6040519060006020906020546001928160011c936001831692831562000edc575b60208610841462000dfc5785885287949360208601939291811562000ddb575060011462000e755750505062000d729250038362000c18565b92509362000ea560206000527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb90565b946000935b82851062000ec55750505062000d7293500138808062000d61565b865485850152958601958895509381019362000eaa565b94607f169462000e3c565b9190826080910312620005c4578151916020810151916060604083015192015190565b60005b83811062000f1e5750506000910152565b818101518382015260200162000f0d565b9060209162000f4a8151809281855285808601910162000f0a565b601f01601f1916010190565b60a0606062000f999360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062000f2f565b90565b90816060910312620005c4578051916040602083015192015190565b60409062000f9993928152816020820152019062000f2f565b634e487b7160e01b600052601160045260246000fd5b9190820391821162000ff557565b62000fd1565b60135462001012906001600160a01b03166200019b565b6019546040516333854efd60e21b80825260048201839052929091906060908184602481845afa9081156200054d5760009460009262001245575b5060185462001065906001600160a01b03166200019b565b604051636237569f60e01b81526004810186905267016345785d8a00006024820152908490829060449082905afa9182156200054d576200110a95859360009060009460009162001212575b5090620010dc620010eb92604051968793602085016040919493926060820195825260208201520152565b03601f19810185528462000c18565b6000604051809881958294634eca17cd60e11b84526004840162000fb8565b03925af19182156200054d576200115f95600094600094620011e7575b5060135482919062001142906001600160a01b03166200019b565b60195491604051809a819482938352600483019190602083019252565b03915afa9384156200054d5762000d7296600092600096620011a0575b505090620011946200119a9262001194969762000fe7565b62001fdc565b62000fe7565b6200119496506200119a9350620011949181620011d592903d10620011df575b620011cc818362000c18565b81019062000f9c565b509650926200117c565b503d620011c0565b82809650620012069295503d8411620011df57620011cc818362000c18565b50949094939062001127565b620010dc9550620010eb9250620012399150863d8811620011df57620011cc818362000c18565b959095919250620010b1565b909450620012639150823d8411620011df57620011cc818362000c18565b509093386200104d565b90816020910312620005c4575190565b60185462001294906001600160a01b03166200019b565b60195460408051636237569f60e01b8152600480820184905267016345785d8a00006024830152936060939190849082908180604481015b03915afa9182156200054d5760009560009260009462001575575b50601354620012ff906001600160a01b03166200019b565b8551633be6a34160e01b8082523084830190815260208181018790529a92969193919291908b90889081906040010381845afa9687156200054d5760009762001551575b508851956333854efd60e21b968781528b818062001368858b83019190602083019252565b0381865afa998a156200054d578c958c8f9360009d6200150d575b505192830195865260208601526040850152620013cc949390929190620013af908490606001620010dc565b60008b51809681958294634eca17cd60e11b84528b840162000fb8565b03925af180156200054d57620014eb575b50601354620013f5906001600160a01b03166200019b565b9260195494875191825288828062001414898883019190602083019252565b0381885afa9889156200054d576200146c998b986200144a946200144393600093620014c4575b505062000fe7565b9062000fe7565b9551908152309181019182526020820193909352919485928391829160400190565b03915afa9182156200054d5762000d72936000936200148e575b505062001fdc565b620014b3929350803d10620014bc575b620014aa818362000c18565b8101906200126d565b90388062001486565b503d6200149e565b620014df929350803d10620011df57620011cc818362000c18565b9150509038806200143b565b6200150590883d8a11620011df57620011cc818362000c18565b5050620013dd565b620010dc919d50928897969594926200153d620013af95620013cc9b3d8c11620011df57620011cc818362000c18565b9150509e9250929495969798509262001383565b6200156d9197508b3d8d11620014bc57620014aa818362000c18565b953862001343565b9196509250620015959150843d8611620011df57620011cc818362000c18565b919590919238620012e7565b601854620015b8906001600160a01b03166200019b565b601954604080516379869bf960e11b8152600480820184905267016345785d8a0000602483015293606093919084908290818060448101620012cc565b9190820180921162000ff557565b6015546200161a906001600160a01b03166200019b565b604080516370a0823160e01b80825230600480840191909152602094939092918583602481885afa9283156200054d5760009362001ada575b506016546200166b906001600160a01b03166200019b565b8251828152308682019081529194918890829081906020010381885afa9081156200054d5760009162001ab8575b50601354620016b1906001600160a01b03166200019b565b9088855180998682528180620016d8878d8301919091602081019260018060a01b03169052565b03915afa9788156200054d5760009862001a94575b5084518481526001600160a01b03831688820190815290968a918891908290819060200103915afa9586156200054d5760009662001a70575b506018546200173e906001600160a01b03166200019b565b6019548651636237569f60e01b8152808a0182815267016345785d8a000060208201529194606094939092859183918290819060400103915afa9182156200054d57620017d9958d86946000948c60009160009362001a38575b50519283019586526020860152604085015292620017bb908490606001620010dc565b60008c8b5198899586948593634eca17cd60e11b8552840162000fb8565b03925af19283156200054d5760009260009462001a05575b5050620018058262001837939495620015f5565b908a896200181e6200019b60155460018060a01b031690565b8951898152309281019283529586928391829160200190565b03915afa9283156200054d576200186693869362001860928e600093620019e157505062001fdc565b620015f5565b60165490919062001880906001600160a01b03166200019b565b8551858152308982019081529099918b918b91908290819060200103915afa9889156200054d576200191e99620018c6946200119a92600092620019c5575b5062001fdc565b6015549091908890620018e2906001600160a01b03166200019b565b601354620018f9906001600160a01b03166200019b565b86518681526001600160a01b0390911689820190815290998a92918391829160200190565b03915afa9485156200054d576200119a899662001949946200146c9a600092620019a1575062001fdc565b60165490949062001963906001600160a01b03166200019b565b6013549092906200197d906001600160a01b03166200019b565b93519081526001600160a01b03909316908301908152919485928391829160200190565b620019bd919250893d8b11620014bc57620014aa818362000c18565b9038620018bf565b620019bd9192508d803d10620014bc57620014aa818362000c18565b620019fc929350803d10620014bc57620014aa818362000c18565b90388e62001486565b620018059450620018379350908162001a2c92903d10620011df57620011cc818362000c18565b509390809350620017f1565b62001a61919750620017bb949350620010dc9250883d8a11620011df57620011cc818362000c18565b90979197909394509162001798565b62001a8c919650893d8b11620014bc57620014aa818362000c18565b943862001726565b62001ab0919850893d8b11620014bc57620014aa818362000c18565b9638620016ed565b62001ad39150883d8a11620014bc57620014aa818362000c18565b3862001699565b62001af6919350863d8811620014bc57620014aa818362000c18565b913862001653565b90600491630667f9d760e41b815262001b21825180936020868501910162000f0a565b010190565b3d1562001b65573d9067ffffffffffffffff821162000575576040519162001b59601f8201601f19166020018462000c18565b82523d6000602084013e565b606090565b6000805460081c60ff161562001b84575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62001ba657505090565b819250604051828162001be460208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b0362001bf9601f199182810185528462000c18565b62001c1f604051918262001c1260208201968762001afe565b0390810183528262000c18565b51925af15062000f9962001c3262001b26565b6020808251830101910162000cfd565b6040805161106b80820167ffffffffffffffff918382108383111762000575578362001c7662002176938385843962000c71565b0360009485f080156200054d57601580546001600160a01b0319166001600160a01b03909216919091179055845191818301838110858211176200057557839262001cc392843962000cbd565b039083f080156200054d57601680546001600160a01b0319166001600160a01b0392831617905560155462001cf991166200019b565b803b1562001fd85783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af180156200054d5762001fc1575b5060165462001d56906001600160a01b03166200019b565b90813b15620005b457845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af180156200054d5762001faa575b5060155462001dac906001600160a01b03166200019b565b60165462001dc3906001600160a01b03166200019b565b908451916105979081840192848410868511176200057557849362001e10936200992986396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200054d57601480546001600160a01b0319166001600160a01b03909216919091179055825190612f21808301918211838310176200057557829162001e6691620031e184396000815260200190565b039082f09182156200054d5762001e9d62001f0c9360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b60155462001eb4906001600160a01b03166200019b565b60135490919062001ece906001600160a01b03166200019b565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af19283156200054d5762001f5794869462001f88575b5060165462001f3d906001600160a01b03166200019b565b601354909290620004db906001600160a01b03166200019b565b03925af180156200054d5762001f6b575050565b8162001f8592903d10620005455762000535818362000c18565b50565b62001fa290853d8711620005455762000535818362000c18565b503862001f25565b806200058b62001fba9262000bc9565b3862001d94565b806200058b62001fd19262000bc9565b3862001d3e565b8280fd5b9080820362001fe9575050565b6080806040938451937f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50836020968781526022888201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8982015261745d60f01b6060820152a1855190868252600a87830152690808115e1c1958dd195960b21b6060830152858201527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8938491a1845190858252600a8683015269080808081058dd1d585b60b21b606083015284820152a1737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620020ee575b50505061010061ff00196000541617600055565b8260006200214b6200215c602483979684975195818701908882526519985a5b195960d21b8189015260016060890152606088526200212d8862000bfb565b519485928301976370ca10bb60e01b89525180928585019062000f0a565b810103600481018452018262000c18565b51925af1506200216b62001b26565b50388080620020da56fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461007457601f61255c38819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b0319169190911790556040516124cc90816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630f4166b814610167578063250968d914610162578063306db46b1461015d578063332266f3146101585780633928ff97146101535780633b4d10301461014e5780634fd67c58146101495780635a93b8ce146101445780636237569f1461013f5780637f17409c1461013a57806381b5fac214610135578063902ecaa214610130578063a8c62e761461012b578063b09d04e514610126578063cb1f553214610121578063ce153bf41461011c578063def15f9214610117578063ec29d8e614610112578063ee3e8cfb1461010d578063f2de7a7b146101085763f30d37f21461010357600080fd5b6109b2565b610996565b610962565b61094c565b6108e0565b61082f565b6107ea565b6107a6565b61077d565b610754565b610700565b6106a0565b61063f565b61061a565b6105f1565b6105bf565b61032e565b6102d6565b61029f565b610236565b346101d55760403660031901126101d55767ffffffffffffffff6024358181116101d557366023820112156101d55780600401359182116101d55736602483830101116101d5576101d19160246101c192016004356109e5565b6040519081529081906020820190565b0390f35b600080fd5b60005b8381106101ed5750506000910152565b81810151838201526020016101dd565b90602091610216815180928185528580860191016101da565b601f01601f1916010190565b9060206102339281815201906101fd565b90565b346101d55760403660031901126101d5576101d160405160026020820152600435604082015260243560608201526060815261027181610881565b6040519182916020835260208301906101fd565b60609060031901126101d557600435906024359060443590565b346101d55760206102ce6102b236610285565b906102c56102bf84610c45565b93610d72565b92919091610f1e565b604051908152f35b346101d55760206102ce6102e936610285565b906102f66102bf84610c45565b92919091611149565b801515036101d557565b90926080926102339594151583526020830152604082015281606082015201906101fd565b346101d55760603660031901126101d55760043560243561034e816102ff565b6104c46044359161035d610a11565b6103ad610368610a11565b9461037287610d72565b9491959092602096878401946040978886015285528352868a878b61039683610c45565b9889938851906103a78b5191610c45565b916112e2565b951561053b575061040c936103fe6103f96104409998956103f3866103dc610405976104199c99015187611d20565b926103ea8d518b5190611d4c565b91015190611324565b90611d20565b610a57565b9351610a7a565b8b52610a7a565b80868a015288518a610e65565b9061043761042c878a0193808552610a57565b808452825111610b21565b51905190610b14565b955b60c0865185880192610484845197610476888c015189519a8b96879485016040919493926060820195825260208201520152565b03601f1981018452836108be565b6000546104a79061049b906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610baf565b03915afa948515610536576000956104f6575b50906104eb916101d19596519051906114e4565b905194859485610309565b6101d19550906105216104eb939260c03d60c01161052f575b61051981836108be565b810190610b78565b5050505050955090916104d7565b503d61050f565b610bd3565b91966105b09561059d946105866105a59761057f6103f98c6103f36105b99f61057761056d6105909c83015188611d20565b93518b5190611d4c565b905190611324565b9451610a7a565b9401938452610a7a565b9081898d0152518c610bdf565b808a52610a57565b808952825111610a87565b51865190610b14565b95610442565b346101d55760203660031901126101d55760206102ce6004356105ea6105e482610c45565b91610d72565b50906114e4565b346101d55760206102ce61060436610285565b906106116102bf84610c45565b92919091611509565b346101d55760206102ce61063961063036610285565b91929092610c45565b916116a4565b346101d55760403660031901126101d55761067b6004356101d161068261067361066884610d72565b9190506024356116d1565b949093610c45565b84846119e2565b92604051938493846040919493926060820195825260208201520152565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36106c985610d72565b91506024356116fe565b939094610c45565b83856116a4565b91604051938493846040919493926060820195825260208201520152565b346101d55760203660031901126101d557608061071e600435610c45565b61075260405180926060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565bf35b346101d55760206102ce61076736610285565b906107746102bf84610c45565b92919091611725565b346101d55760003660031901126101d5576000546040516001600160a01b039091168152602090f35b346101d55760203660031901126101d5576101d160405160016020820152600435604082015260408152610271816108a2565b6001600160a01b038116036101d557565b346101d55760203660031901126101d5576101d160043561080a816107d9565b60408051600360208201526001600160a01b03909216828201528152610271816108a2565b346101d55760203660031901126101d5576101d161084e600435610d72565b604080519384526020840192909252908201529081906060820190565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761089d57604052565b61086b565b6060810190811067ffffffffffffffff82111761089d57604052565b90601f8019910116810190811067ffffffffffffffff82111761089d57604052565b346101d55760c03660031901126101d55760803660431901126101d5576101d161094060405161090f81610881565b60443581526064356020820152608435604082015260a435610930816107d9565b60608201526024356004356118a2565b60405191829182610222565b346101d55760206102ce6103a761063036610285565b346101d55760403660031901126101d55761067b6004356101d161068261067361098b84610d72565b9190506024356116fe565b346101d55760206102ce6109ac61063036610285565b916119e2565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36109db85610d72565b91506024356116d1565b9181606091810103126101d5576109fe61023392610c45565b9060408101359060208101359035610e8b565b604051906060820182811067ffffffffffffffff82111761089d5760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610a6557565b610a41565b906103e8918201809211610a6557565b91908201809211610a6557565b15610a8e57565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b90670de0b6b3a7640000918203918211610a6557565b906103e8918203918211610a6557565b6103e719810191908211610a6557565b91908203918211610a6557565b15610b2857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c09103126101d5578151610b8f816102ff565b9160208101519160408201519160608101519160a0608083015192015190565b610233939260609260018060a01b03168252602082015281604082015201906101fd565b6040513d6000823e3d90fd5b9161063961023393610c45565b91908260809103126101d557604051610c0481610881565b6060808294805184526020810151602085015260408101516040850152015191610c2d836107d9565b0152565b906080828203126101d55761023391610bec565b90604051610c5281610881565b600090818152816060602092828482015282604082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610536578092610cb3575b506102339293508082518301019101610c31565b9091503d8082863e610cc581866108be565b8401908285830312610d3b57845167ffffffffffffffff95868211610d3e57019082601f83011215610d3b57815195861161089d5760405192610d11601f8801601f19168601856108be565b868452848784010111610d3b57506102339394610d33918480850191016101da565b908392610c9f565b80fd5b8280fd5b908160209103126101d55751610233816107d9565b908160609103126101d5578051916040602083015192015190565b9060046020610d8e61049b61049b60005460018060a01b031690565b604051632bee84f160e21b815292839182905afa92831561053657610dd993606092600091610e36575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156105365760008093600093610dff575b50929190565b91935050610e25915060603d606011610e2f575b610e1d81836108be565b810190610d57565b9290929138610df9565b503d610e13565b610e58915060203d602011610e5e575b610e5081836108be565b810190610d42565b38610db8565b503d610e46565b916109ac61023393610c45565b81810392916000138015828513169184121617610a6557565b9260206103ea84610eae610ea66103f39697610eb499612087565b855190611324565b95612087565b670de0b6b3a763ffff198101908113600116610a655790565b908152602080820192909252604080820193909352606080820194909452845160808201529084015160a08201529083015160c08201529101516001600160a01b031660e08201526101000190565b565b909291855160208701516040880151610f3690610ade565b91610f418785612087565b610f4b8282611324565b92610f5591611324565b895185898581610f65858d6120ca565b90610f6f916120ca565b90610f79916120ca565b92610f83906120a9565b610f8c90610af4565b90610f9691610a7a565b90610fa0916120ca565b610fa986610ade565b610fb2916120ca565b92610fbc8a610a6a565b90610fc6906110f0565b610fcf91611324565b91610fd9906120a9565b610fe286610ade565b610feb916120ca565b610ff59089610a7a565b92610fff91610b14565b91611009916120ca565b895161101490610ade565b61101d90612068565b61102691611324565b61102f916120ca565b91885161103b90610ade565b61104488610a6a565b9261104f89896120ca565b90611059916120ca565b91611063866120a9565b9061106d90610ade565b611076916120ca565b92611080916120ca565b9161108a91610a7a565b611093916120ca565b9061109d846110f0565b916110a791612087565b6110b09161112d565b6000136110e557610233956110e0936110d29260405196879560208701610ecd565b03601f1981018352826108be565b611a30565b505050505050600090565b600160ff1b8114610a655760000390565b90816103e801918212600116610a6557565b9081670de0b6b3a763ffff190191821215600116610a6557565b91909160008382019384129112908015821691151617610a6557565b94939290928451906020860151604087015161116490610ade565b9261116f8787612087565b6111798282611324565b9261118391611324565b885187898581611193858c6120ca565b9061119d916120ca565b906111a7916120ca565b926111b290886120ca565b6111bc9088610b14565b906111c691610a7a565b906111d0916120ca565b6111d987610ade565b6111e2916120ca565b926111ed8a87610a7a565b906111f7906110f0565b61120091611324565b9161120b90866120ca565b61121487610ade565b61121d916120ca565b6112279088610a7a565b9261123191610b14565b9161123b916120ca565b885161124690610ade565b61124f90612068565b61125891611324565b611261916120ca565b965161126c90610ade565b936112778784610a7a565b96611281916120ca565b9061128b916120ca565b93611295916120ca565b9061129f90610ade565b6112a8916120ca565b926112b2916120ca565b916112bc91610a7a565b6112c5916120ca565b916112cf906110f0565b916112d991612087565b6102339161112d565b610233929160206112f86103f393855190611324565b93015190611324565b818102929160008212600160ff1b821416610a65578184051490151715610a6557565b6114d1610233927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642846114df9361135a60008213611dc8565b711340daa0d5f769dba1915cef59f0815a55066113768261210a565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d611301565b670de0b6b3a7640000900590565b611e00565b611503906114fb6102339493602085015190612087565b925190612087565b90612087565b90929185516040870151670de0b6b3a764000060008282039212818312811691831390151617610a655761153c83611101565b61154583611113565b61154e91611324565b908261155a8589611fa9565b9061156491611324565b61156d81611fc7565b9261157783611113565b6115819085611ff0565b61158b9089610e72565b91829161159788611101565b6115a19088611ff0565b936115ab91611ff0565b6115b487611f8a565b6115bd91611324565b926115c787611113565b6115d1908b611ff0565b91886115dc89611fc7565b906115e69161112d565b6115ef91611ff0565b6115f886611113565b61160191611ff0565b9261160b91611ff0565b926116169089611ff0565b9161162091610e72565b61162991611ff0565b6116329161112d565b9261163c85611101565b61164591611ff0565b9161164f876110f0565b9161165990611113565b61166291611ff0565b61166b9161112d565b61167491611ff0565b61167d91611fa9565b6000136110e5576102339561169f936110d29260405196879560208701610ecd565b611b55565b6116c461023393926116be6116cb93602086015190611324565b90611d4c565b9151611d7c565b90611324565b9291906116e76116e18284611d4c565b85611d20565b938103908111610a6557928103908111610a655790565b92919061170e6116e18284611d4c565b938101809111610a6557928101809111610a655790565b9293949091946040825192015193670de0b6b3a764000060008682039612818712811691871390151617610a6557828794611760868561112d565b61176983611113565b61177291611324565b9561177c91611fa9565b9061178691611324565b936117918584611ff0565b9461179b87611113565b6117a59087611ff0565b6117af9089610e72565b9283926117bc8b8761112d565b6117c69088611ff0565b946117d091611ff0565b6117d987611f8a565b6117e291611324565b936117ec87611113565b6117f6908b611ff0565b928b6118028989611ff0565b9061180c9161112d565b61181591611ff0565b61181e8a611113565b61182791611ff0565b9361183191611ff0565b9361183b91611ff0565b9161184591610e72565b61184e91611ff0565b6118579161112d565b956118619161112d565b61186a91611ff0565b92611874906110f0565b9161187e90611113565b61188791611ff0565b6118909161112d565b61189991611ff0565b61023391611fa9565b929190836118bd6118c2926118bd6020860151865190612087565b6120ca565b906118ce8183866112e2565b936118db82868584610e8b565b85906000808212156119a4575b808212611986575061192d61197a9261023396979886935b6119146040519889928c8a6020860161201f565b0396611928601f19988981018352826108be565b611c2c565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b039081018352826108be565b9661199191506120eb565b9561199e84888786610e8b565b906118e8565b9691965b8082136119c4575061192d61023395969761197a938693611900565b966119cf9150611d9e565b956119dc84888786610e8b565b906119a8565b60206119fb61023394936116be6116cb94865190611324565b920151611d7c565b9190610100838203126101d557825192602081015192610233604083015193608060608501519401610bec565b91906103e892600093600091838211611b3457611a4c8161217c565b611a5685836122d5565b6000611a628284611301565b13611b155750611a73859695610b04565b60019460009186805b611a8d575b50505050505050509050565b15611af0575b5085969798508091611aae611aa88b88610a7a565b60011c90565b99611ab98b876122d5565b9083611ac58784611301565b13611ae457505089925b87611ada8886610b14565b9201939998611a7c565b8b975090945092611acf565b861080611b0a575b15611b035788611a93565b8080611a81565b506101008210611af8565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e892600093600091838211611b3457611b71816122f6565b611b7b8583612441565b6000611b878284611301565b13611b155750611b98859695610b04565b60019460009186805b611bb15750505050505050509050565b15611c0e575b5085969798508091611bcc611aa88b88610a7a565b99611bd78b87612441565b9083611be38784611301565b13611c0257505089925b87611bf88886610b14565b9201939998611ba1565b8b975090945092611bed565b861080611c21575b15611b035788611bb7565b506101008210611c16565b60009392918491838211611d0057611c448282612462565b611c4e8583612462565b6000611c5a8284611301565b13611b155750611c6c83869796610b14565b60019460009186805b611c855750505050505050509050565b15611ce2575b5085969798508091611ca0611aa88b88610a7a565b99611cab8b87612462565b9083611cb78784611301565b13611cd657505089925b87611ccc8886610b14565b9201939998611c75565b8b975090945092611cc1565b861080611cf5575b15611b035788611c8b565b506101008210611cea565b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b8181029181830414901517600116156101d5576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101d557600190600019830104019015150290565b600181151516156101d5576ec097ce7bc90715b34b9f0fffffffff0460010190565b6103e9908181029181830414901517600116156101d55760016103e8600019830104019015150290565b15611dcf57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e19811315611f8457680755bf798b4a1bf1e5811215611f50576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029182051482151516156101d5570590565b6103e881810291600160ff1b81136001179183051416156101d557670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b9091131716156101d557670de0b6b3a7640000900590565b610f1c9360609296959360e083019783526020830152604082015201906060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000490565b670de0b6b3a764000090818102918183041490151782151516156101d5570490565b6103e89080820291820414600116156101d557670de0b6b3a7640000900490565b8181029181830414901517600116156101d557670de0b6b3a7640000900490565b6103e7908181029181830414901517600116156101d5576103e8900490565b612115811515611dc8565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b80518101602001906020019061219191611a03565b9291908351602085015160408601516121a990610ade565b916121b48686612087565b6121be8282611324565b926121c891611324565b8751868885816121d8858b6120ca565b906121e2916120ca565b906121ec916120ca565b926121f6906120a9565b6121ff90610af4565b9061220991610a7a565b90612213916120ca565b61221c86610ade565b612225916120ca565b9261222f89610a6a565b90612239906110f0565b61224291611324565b9161224c906120a9565b61225586610ade565b61225e916120ca565b6122689087610a7a565b9261227291610b14565b9161227c916120ca565b875161228790610ade565b61229090612068565b61229991611324565b6122a2916120ca565b95516122ad90610ade565b926122b786610a6a565b956122c1916120ca565b906122cb916120ca565b92611295906120a9565b906122ec6102339260208082518301019101611a03565b9493929092611149565b6123099060208082518301019101611a03565b6040819593959492945191015192670de0b6b3a764000060008582039512818612811691861390151617610a655781869361234385611101565b61234c83611113565b61235591611324565b9461235f91611fa9565b9061236991611324565b9261237384611fc7565b9361237d86611113565b6123879086611ff0565b6123919088610e72565b92839261239d8a611101565b6123a79087611ff0565b946123b191611ff0565b6123ba86611f8a565b6123c391611324565b936123cd86611113565b6123d7908a611ff0565b928a6123e288611fc7565b906123ec9161112d565b6123f591611ff0565b6123fe89611113565b61240791611ff0565b9361241191611ff0565b9361241b91611ff0565b9161242591610e72565b61242e91611ff0565b6124379161112d565b9461186190611101565b906124586102339260208082518301019101611a03565b9493929092611725565b805181019160e0828403126101d5576102339261249060208401519360806020604083015194019101610bec565b92610e8b56fea2646970667358221220ddef7f48a463f4812492c0cc35c784e857fab14e0a29d203d7aa233c67d9fa2964736f6c6343000816003360a03461007f57601f6112cb38819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f57608052604051611230908161009b82396080518181816103b701528181610612015281816107c601526109240152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b610953565b61090e565b6107ad565b610773565b6105f6565b610331565b6102ae565b610221565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101c3565b838082518301019101610986565b9061010d6100ff600435610a7f565b8680825183010191016109a1565b92610b68565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761015057604052565b61011e565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101a1601f8201601f191660200184610155565b8294818452818301116101be578281602093846000960137010152565b600080fd5b9080601f830112156101be578160206101de93359101610177565b90565b919082519283825260005b84811061020d575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101ec565b346101be5760003660031901126101be57604051604081019080821067ffffffffffffffff8311176101505761027891604052600381526247334d60e81b60208201526040519182916020835260208301906101e1565b0390f35b9060405161028981610134565b6060600382948054845260018101546020850152600281015460408501520154910152565b346101be5760203660031901126101be57600435600052600060205260c060406000206102da8161027c565b90600481015490600560018060a01b03910154169060606040519380518552602081015160208601526040810151604086015201516060840152608083015260a0820152f35b6001600160a01b038116036101be57565b346101be5760603660031901126101be5761034d600435610320565b60243560443567ffffffffffffffff81116101be576103709036906004016101c3565b9061037a81610a7f565b90610390825192602080809583010191016109a1565b6040516333854efd60e21b8152600481018390529092906060816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa948515610596576000908192829761055d575b508084806103ff93518301019101610986565b949195909787878581116000146104c45793610454869461044e866104496104769b9761044461046198604061043b61046d9f6104679f610a08565b91015190610f48565b610f48565b610f74565b50610a7f565b80518101820191016109a1565b91610bb9565b83610a27565b93828685610b68565b93846013191292836104b9575b6102789394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b601486129350610483565b5050919290938089116000146104ff5761046161046d946104546104769761044e856104498f998f61044490604061043b866104679f610a08565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9096506103ff9250610587915060603d60601161058f575b61057f8183610155565b810190610986565b9690926103ec565b503d610575565b6109e6565b9060606003198301126101be576004356105b481610320565b916024359160443567ffffffffffffffff928382116101be57806023830112156101be5781600401359384116101be57602484830101116101be576024019190565b346101be576106043661059b565b9192506001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610761578160c091810103126101be5780359160208201359160408101359460608201359060a08301359261066984610320565b670de0b6b3a764000083101561074f5761070d946107059460806106f1936106f69661069f876000526000602052604060002090565b55013560046106b8866000526000602052604060002090565b01551660056106d1846000526000602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610a7f565b602080825183010191016109a1565b848385610b68565b9283601319129182610744575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b60148512925061071a565b60405163e8a38a6160e01b8152600490fd5b604051636853cba760e01b8152600490fd5b346101be5760606107833661059b565b818094509492940103126101be5780359061070d6107056106f66040602085013594013595610a7f565b346101be576107bb3661059b565b926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610761576108236108176005610809876000526000602052604060002090565b01546001600160a01b031690565b6001600160a01b031690565b9116036108fc5761083683820182610a4a565b61083f81610a5f565b60018103610878575061086261085d61087392600494953691610177565b610caa565b926000526000602052604060002090565b01555b005b61088181610a5f565b600281036108bd5750906108a56108a06108b893610876953691610177565b610c00565b9290916000526000602052604060002090565b610c28565b806108c9600392610a5f565b036108ea576106d16108626108e5600593610876963691610177565b610bd8565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101be5760003660031901126101be576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101be5760203660031901126101be57610278610972600435610a7f565b6040519182916020835260208301906101e1565b908160609103126101be578051916040602083015192015190565b908160809103126101be576060604051916109bb83610134565b80518352602081015160208401526040810151604084015201516109de81610320565b606082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610a1557565b6109f2565b91908201809211610a1557565b81810392916000138015828513169184121617610a1557565b600411156101be57565b908160209103126101be57356101de81610a40565b60041115610a6957565b634e487b7160e01b600052602160045260246000fd5b60408051610a8c81610134565b6000918282526020820193838552818301848152606084019085825282865285602052610ac2610abd85882061027c565b610cdf565b808652670de0b6b3a7640000908103908111610a1557846101de97610b1f95610b1294600594610b5a9c5281835282602052600484842001549052815280602052200160018060a01b0390541690565b6001600160a01b03169052565b5192839160208301919091606060808201938051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b03601f198101835282610155565b926020610b9184610b8b610b83610b9a9697610ba099610fa4565b855190610d88565b95610fa4565b91015190610d88565b90610f48565b670de0b6b3a763ffff198101908113600116610a155790565b6101de92916020610bcf610b9a93855190610d88565b93015190610d88565b6040818051810103126101be5780610bf560206040930151610a40565b015161081781610320565b6060818051810103126101be57610c1a6020820151610a40565b606060408201519101519091565b919042821115610c9857610c3e610abd8461027c565b9081845542600385015542830391838311610a1557610c5c91610a27565b428314610c8257600160ff1b8114600019831416610a1557600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101be5780610cc760206040930151610a40565b015190565b81810292918115918404141715610a1557565b6060810151906020810151808314610d5e57804211600014610d5657915b8203918211610a15576040810190815160008113600014610d3057506101de92610d2a9151925190610ccc565b90610a1a565b90519150600160ff1b8114610a15576101de92610d509160000390610ccc565b90610a08565b504291610cfd565b5090505190565b818102929160008212600160ff1b821416610a15578184051490151715610a1557565b610f356101de927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284610f4393610dbe60008213610fc6565b711340daa0d5f769dba1915cef59f0815a5506610dda82611188565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d610d65565b670de0b6b3a7640000900590565b610ffe565b8181029181830414901517600116156101be576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101be57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101be570490565b15610fcd57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131561118257680755bf798b4a1bf1e581121561114e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b611193811515610fc6565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c600110179056fea26469706673582212209815df372867dd1ba42d4263690c8e70d1f8dc34ff9f897579936267cb43316764736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a2646970667358221220f6526418f2cc694cc295f0a1e8a3fdfcaca3aa57c58b86f5fb33bb97580ade4064736f6c63430008160033","sourceMap":"88:3340:70:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;649:554:73;;:::i;:::-;88:3340:70;;724:32:73;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;715:41;88:3340:70;;-1:-1:-1;;;;;;88:3340:70;-1:-1:-1;;;;;88:3340:70;;;;;;;;;;;775:32:73;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;766:41;88:3340:70;;-1:-1:-1;;;;;;88:3340:70;-1:-1:-1;;;;;88:3340:70;;;;;;715:41:73;88:3340:70;817:11:73;;88:3340:70;;-1:-1:-1;;;;;88:3340:70;;;817:11:73;:34;;;;;88:3340:70;;-1:-1:-1;;;817:34:73;;;837:4;88:3340:70;817:34:73;;88:3340:70;844:6:73;88:3340:70;;;;;;;;;;;;;;;817:34:73;;;;;;;;88:3340:70;-1:-1:-1;766:41:73;88:3340:70;;;861:11:73;;-1:-1:-1;;;;;88:3340:70;;;861:11:73;:34;;;;;;88:3340:70;;861:34:73;;;837:4;88:3340:70;861:34:73;;88:3340:70;844:6:73;88:3340:70;;;;;;;;;;;837:4:73;;861:34;;;;;;;;88:3340:70;-1:-1:-1;715:41:73;88:3340:70;920:15:73;;-1:-1:-1;;;;;88:3340:70;;;920:15:73;766:41;88:3340:70;937:15:73;;-1:-1:-1;;;;;88:3340:70;;;937:15:73;88:3340:70;;;912:46:73;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:3340:70;;;;;;;378:4:31;;;88:3340:70;378:4:31;;;;88:3340:70;378:4:31;;;;912:46:73;;;;;;;;;906:52;88:3340:70;;-1:-1:-1;;;;;;88:3340:70;-1:-1:-1;;;;;88:3340:70;;;;;;;;;;;975:20:73;;;;;;;;;;;;;;;;;;;;;88:3340:70;;;;;;;975:20:73;;;;;;;;;968:27;88:3340:70;;-1:-1:-1;;;;;;88:3340:70;-1:-1:-1;;;;;88:3340:70;;;;;;;;;1019:13:73;;378:4:31;88:3340:70;1019:13:73;88:3340:70;;1011:22:73;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:3340:70;;;;;;;;;1011:22:73;;;;;;;;;1005:28;88:3340:70;;-1:-1:-1;;;;;;88:3340:70;-1:-1:-1;;;;;88:3340:70;;;;;;;;;1066:12:73;;378:4:31;88:3340:70;1066:12:73;88:3340:70;;;1052:27:73;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:3340:70;;;;;;;;;1052:27:73;;;;;;;;;;1043:36;1090:48;1043:36;724:32;88:3340:70;;;;;;;;1043:36:73;88:3340:70;;;1043:36:73;88:3340:70;;1043:36:73;715:41;88:3340:70;1090:14:73;;-1:-1:-1;;;;;88:3340:70;;;1090:14:73;968:27;378:4:31;1105:13:73;;-1:-1:-1;;;;;88:3340:70;378:4:31;88:3340:70;1105:13:73;88:3340:70;;-1:-1:-1;;;1090:48:73;;;-1:-1:-1;;;;;88:3340:70;;;;1090:48:73;;88:3340:70;-1:-1:-1;;378:4:31;;;88:3340:70;1090:48:73;;88:3340:70;;;;1090:48:73;;88:3340:70;;1090:48:73;88:3340:70;;1090:48:73;;88:3340:70;;378:4:31;;;;;1090:48:73;;;;;;;;;;1148;1090;;;;;88:3340:70;-1:-1:-1;766:41:73;88:3340:70;1148:14:73;;-1:-1:-1;;;;;88:3340:70;;;1148:14:73;968:27;378:4:31;;;;;;1163:13:73;;-1:-1:-1;;;;;88:3340:70;378:4:31;88:3340:70;1163:13:73;88:3340:70;;1148:48:73;;;-1:-1:-1;;;;;88:3340:70;;;;1148:48:73;;88:3340:70;-1:-1:-1;;378:4:31;;;88:3340:70;;;;;;;;378:4:31;;;;;1148:48:73;;;;;;;;;;;88:3340:70;;;1148:48:73;;;;;;-1:-1:-1;1148:48:73;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;88:3340:70;;;1148:48:73;;;;;;;:::i;1090:::-;;;;;;;;;;;;;:::i;:::-;;;;;1052:27;;:::i;861:34::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;88:3340:70;;;817:34:73;;;;;;:::i;:::-;;;;;88:3340:70;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;1235:10:73;;;;;88:3340:70;;-1:-1:-1;;;1235:10:73;;88:3340:70;;1235:10:73;;88:3340:70;;;;;;;;;;;;1235:10:73;;;;;;;;88:3340:70;-1:-1:-1;1349:3:73;378:4:31;;;1057:14:1;;1506:28:73;;1341:12;;-1:-1:-1;;;;;88:3340:70;378:4:31;88:3340:70;1341:12:73;1383:6;88:3340:70;1300:180:73;;1375:15;;-1:-1:-1;;;;;88:3340:70;;;1375:15:73;1420:6;88:3340:70;1300:180:73;;1412:15;;-1:-1:-1;;;;;88:3340:70;;;1412:15:73;1057:14:1;1300:180:73;1057:14:1;;:::i;:::-;-1:-1:-1;;;;;88:3340:70;;;1057:14:1;;;1300:180:73;-1:-1:-1;;;;;88:3340:70;1447:22:73;1300:180;;1057:14:1;;1300:180:73;-1:-1:-1;;;;;88:3340:70;;1300:180:73;;1057:14:1;;1300:180:73;1057:14:1;;:::i;:::-;1300:180:73;;;1057:14:1;1506:4:73;378::31;1506:9:73;;-1:-1:-1;;;;;88:3340:70;378:4:31;88:3340:70;1506:9:73;88:3340:70;;;;;;;;;;;;1506:28:73;;88:3340:70;1506:28:73;;;:::i;:::-;;;;;;;;;1491:43;1506:28;;;;;88:3340:70;1491:43:73;;1057:14:1;;1491:43:73;1545:1;;:::i;:::-;88:3340:70;;1506:28:73;;;;1057:14:1;1506:28:73;1057:14:1;1506:28:73;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;1235:10;;;;;;:::i;:::-;;;;88:3340:70;;;;;;;;;-1:-1:-1;;88:3340:70;;;;;;;378:11:59;88:3340:70;;;;;;;;;;;;;;;;;1235:10:73;;;;;88:3340:70;;-1:-1:-1;;;1235:10:73;;88:3340:70;;1235:10:73;;88:3340:70;;;;;;;;;;;;1235:10:73;;;;;;;;88:3340:70;-1:-1:-1;1349:3:73;378:4:31;;;1057:14:1;;1506:28:73;;1341:12;;-1:-1:-1;;;;;88:3340:70;378:4:31;88:3340:70;1506:28:73;;;;;;;;;1491:43;1506:28;;;;;1491:43;;1057:14:1;;1491:43:73;1545:1;;:::i;1235:10::-;;;;;;:::i;:::-;;;;88:3340:70;;;;;;;;;;;;;;1235:10:73;;;;;88:3340:70;;-1:-1:-1;;;1235:10:73;;88:3340:70;;1235:10:73;;88:3340:70;;;;;;;;;;;;1235:10:73;;;;;;;;88:3340:70;-1:-1:-1;1349:3:73;378:4:31;;;1057:14:1;;1506:28:73;;1341:12;;-1:-1:-1;;;;;88:3340:70;378:4:31;88:3340:70;1506:28:73;;;;;;;;;1491:43;1506:28;;;;;1491:43;;1057:14:1;;1491:43:73;1545:1;;:::i;1235:10::-;;;;;;:::i;:::-;;;;88:3340:70;;;;;;;;;;;;;;1235:10:73;;;;;88:3340:70;;-1:-1:-1;;;1235:10:73;;88:3340:70;;1235:10:73;;88:3340:70;;;;;;;;;;;;1235:10:73;;;;;;;;88:3340:70;-1:-1:-1;1349:3:73;378:4:31;;;1057:14:1;;1506:28:73;;1341:12;;-1:-1:-1;;;;;88:3340:70;378:4:31;88:3340:70;1341:12:73;1383:6;88:3340:70;1300:180:73;;1375:15;;-1:-1:-1;;;;;88:3340:70;;;1300:180:73;1057:14:1;;:::i;1506:28:73:-;;;;;;;;;1491:43;1506:28;;;;;1491:43;;1057:14:1;;1491:43:73;1545:1;;:::i;1235:10::-;;;;;;:::i;:::-;;;;88:3340:70;;;;;;-1:-1:-1;;88:3340:70;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;88:3340:70;;;;;243:22:73;88:3340:70;;;;;;;;;;;;;-1:-1:-1;;88:3340:70;;;;992:4:59;378::31;88:3340:70;;-1:-1:-1;;;992:20:59;;88:3340:70;;;992:20:59;;;88:3340:70;;;;;;;;;;-1:-1:-1;;;;;88:3340:70;992:20:59;;;;;;;-1:-1:-1;992:20:59;;;88:3340:70;1029:19:59;;;88:3340:70;;;-1:-1:-1;;;;;88:3340:70;;;;-1:-1:-1;;;;;88:3340:70;;;;;;;;;;;;;;;;;992:20:59;;;88:3340:70;992:20:59;;88:3340:70;992:20:59;;;;;;88:3340:70;992:20:59;;;:::i;:::-;;;88:3340:70;;;;;1029:19:59;88:3340:70;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;992:20:59;;;;;;;;-1:-1:-1;992:20:59;;88:3340:70;;;;;;-1:-1:-1;;88:3340:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;1057:14:1;88:3340:70;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;88:3340:70;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;88:3340:70;;;;;;;;;;;;;;-1:-1:-1;;;88:3340:70;;;;753:2:73;88:3340:70;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;88:3340:70;;;;;;;;;;;;;;-1:-1:-1;;;88:3340:70;;;;753:2:73;88:3340:70;;;;;;;:::o;378:4:31:-;;;;;;;;;;88:3340:70;;;378:4:31;;;;;:::o;1057:14:1:-;88:3340:70;;1057:14:1;-1:-1:-1;1447:22:73;1057:14:1;1447:22:73;1057:14:1;;;;;;;;;;;;;;;;1447:22:73;1057:14:1;;;;;;88:3340:70;;;;;1057:14:1;88:3340:70;;;;1057:14:1;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;1447:22:73;1057:14:1;;;;;;;-1:-1:-1;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1057:14:1;;;;;;88:3340:70;1057:14:1;;;;;;;;;88:3340:70;;1057:14:1;-1:-1:-1;1447:22:73;1057:14:1;1447:22:73;1057:14:1;;;;;;;;;;;;;;;;1447:22:73;1057:14:1;;;;;;88:3340:70;;;;;1057:14:1;88:3340:70;;;;1057:14:1;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;1447:22:73;1057:14:1;;;;;;;-1:-1:-1;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;88:3340:70;;1057:14:1;;;;88:3340:70;1057:14:1;;;;;88:3340:70;1057:14:1;;88:3340:70;1057:14:1;:::o;:::-;;;;;;;;-1:-1:-1;;1057:14:1;;;;:::o;:::-;;;;;;;;;;;;;;;88:3340:70;1057:14:1;;88:3340:70;;;;;;;;;;;1057:14:1;;;:::i;:::-;88:3340:70;;-1:-1:-1;;88:3340:70;1057:14:1;;;:::o;:::-;;;;;;;;724:32:73;88:3340:70;;;;1057:14:1;;;88:3340:70;1057:14:1;;;88:3340:70;1057:14:1;;;;;88:3340:70;1057:14:1;;;88:3340:70;1057:14:1;;;;88:3340:70;1057:14:1;;;88:3340:70;1057:14:1;;;;;;;;;;;:::i;:::-;;:::o;88:3340:70:-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;959:709::-;1129:4;378::31;1129:28:70;;-1:-1:-1;;;;;88:3340:70;378:4:31;88:3340:70;1129:28;1158:7;88:3340;;;-1:-1:-1;;;1129:37:70;;;;;;88:3340;;;;;;;1129:37;;;88:3340;;;;1129:37;;;;;;;-1:-1:-1;;;1129:37:70;;;959:709;-1:-1:-1;1252:6:70;88:3340;1252:23;;-1:-1:-1;;;;;88:3340:70;;;1252:23;88:3340;;-1:-1:-1;;;1252:41:70;;1129:37;1252:41;;88:3340;;;1052:9;88:3340;;;;;;;;;;;;;1252:41;;;;;;;1415:30;1252:41;;;-1:-1:-1;;;;;1252:41:70;;;959:709;88:3340;;1323:46;;88:3340;;;1323:46;;;;;;88:3340;;;;;;;;;;;;;;;;;;1323:46;;88:3340;;1323:46;;;;;;:::i;:::-;-1:-1:-1;88:3340:70;;;;;;;;;;;1415:30;;1129:37;1415:30;;;:::i;:::-;;;;;;;;;;1516:37;1415:30;-1:-1:-1;;;1415:30:70;;;959:709;-1:-1:-1;1129:4:70;378::31;;;;1516:28:70;;-1:-1:-1;;;;;88:3340:70;378:4:31;88:3340:70;1516:28;1158:7;88:3340;;;;1516:37;;;;;;;;1129;1516;;88:3340;;;;;;;;1516:37;;;;;;;;;;1648:12;1516:37;-1:-1:-1;;;1516:37:70;;;959:709;1572:20;;;;1594:12;1572:20;1626;1572;;;:::i;:::-;1594:12;:::i;:::-;1626:20;:::i;1516:37::-;1626:20;1516:37;;1594:12;1516:37;;1572:20;1516:37;;;;;;-1:-1:-1;1516:37:70;;;;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;1516:37:70;-1:-1:-1;1516:37:70;;;;;;;;1415:30;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1252:41;1323:46;1252:41;;1323:46;1252:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1129:37;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1129:37:70;;;;;88:3340;;;;;;;;;;;:::o;133:820::-;330:6;88:3340;330:23;;-1:-1:-1;;;;;88:3340:70;;;330:23;354:7;88:3340;;;;-1:-1:-1;;;330:41:70;;;;;;88:3340;;;1052:9;88:3340;;;;330:41;;;88:3340;;330:41;;88:3340;;;;;;;330:41;;;;;;;;;;-1:-1:-1;;;;;330:41:70;;;133:820;-1:-1:-1;412:4:70;378::31;412:16:70;;-1:-1:-1;;;;;88:3340:70;378:4:31;88:3340:70;412:16;88:3340;;-1:-1:-1;;;412:40:70;;;437:4;412:40;;;88:3340;;;412:40;378:4:31;;;88:3340:70;;;412:40;88:3340;;;;;;;;412:40;;88:3340;;;;378:4:31;;412:40:70;;;;;;;;;;-1:-1:-1;412:40:70;;;133:820;88:3340;;;;;;;495:37;;;;;;;;;;;;88:3340;;;;;;;;495:37;;;;;;;;;;;;;;;;-1:-1:-1;495:37:70;;;133:820;-1:-1:-1;88:3340:70;563:46;;;88:3340;;;;;;;;;;;619:30;;88:3340;;;;;563:46;;88:3340;;;;563:46;88:3340;563:46;-1:-1:-1;88:3340:70;;;;;;;;;;;619:30;;;;;;:::i;:::-;;;;;;;;;;;133:820;-1:-1:-1;412:4:70;378::31;694:28:70;;-1:-1:-1;;;;;88:3340:70;378:4:31;88:3340:70;694:28;88:3340;354:7;88:3340;;;;694:37;;;;;;;;;;;88:3340;;;;;;;;694:37;;;;;;;;;;;896:40;694:37;;;841:41;694:37;771:38;694:37;-1:-1:-1;694:37:70;;;133:820;771:38;;;:::i;:::-;841:41;;:::i;:::-;88:3340;;896:40;;;437:4;896:40;;;88:3340;;;378:4:31;;;88:3340:70;;;;;;;;;;;;378:4:31;;;;896:40:70;;;;;;;;;;;;-1:-1:-1;896:40:70;;;133:820;896:40;;;:::i;:::-;;;;;;;-1:-1:-1;896:40:70;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;694:37;;;;;;;-1:-1:-1;694:37:70;;;;;;:::i;:::-;;;;;;;;;619:30;;;;;;;;;;;;;:::i;:::-;;;;;495:37;563:46;495:37;;;;;;;;;;;563:46;495:37;619:30;495:37;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;412:40;;;;;;;;;;;;;;;:::i;:::-;;;;;330:41;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;2630:796;2803:6;88:3340;2803:23;;-1:-1:-1;;;;;88:3340:70;;;2803:23;2827:7;88:3340;;;;-1:-1:-1;;;2803:41:70;;;;;;88:3340;;;1052:9;88:3340;;;;2803:41;;;88:3340;;2803:41;;88:3340;;;;;;;2803:41;88:3340;;;;;;;;;;;:::o;1674:950::-;1809:6;88:3340;1809:16;;-1:-1:-1;;;;;88:3340:70;;;1809:16;88:3340;;;-1:-1:-1;;;1809:31:70;;;1834:4;1809:31;;;;88:3340;;;;1809:31;;;;;88:3340;1809:31;88:3340;;;1809:31;;;;;;;;-1:-1:-1;1809:31:70;;;1674:950;-1:-1:-1;1872:6:70;88:3340;1872:16;;-1:-1:-1;;;;;88:3340:70;;;1872:16;88:3340;;1872:31;;;1834:4;1872:31;;;88:3340;;;;;;1834:4;;88:3340;;;;;;1872:31;;;;;;;;;;-1:-1:-1;1872:31:70;;;1674:950;-1:-1:-1;1964:4:70;378::31;1956:13:70;;-1:-1:-1;;;;;88:3340:70;378:4:31;88:3340:70;1956:13;88:3340;;;;1939:31;;;;;;;;;;;;88:3340;;;;;;;724:32:73;88:3340:70;;;;;;;;1939:31;;;;;;;;;;-1:-1:-1;1939:31:70;;;1674:950;-1:-1:-1;88:3340:70;;2006:31;;;-1:-1:-1;;;;;88:3340:70;;2006:31;;;88:3340;;;;;;;;;2006:31;88:3340;;;;;;2006:31;;;;;;;;;-1:-1:-1;2006:31:70;;;1674:950;-1:-1:-1;2123:6:70;88:3340;2123:23;;-1:-1:-1;;;;;88:3340:70;;;2123:23;2147:7;88:3340;;;-1:-1:-1;;;2123:41:70;;;;;88:3340;;;1052:9;88:3340;;;;;;2123:41;;88:3340;;;2123:41;;88:3340;;;;;;;;2123:41;;;;;;;;;2286:30;2123:41;;;;-1:-1:-1;;;;;;2123:41:70;;;1674:950;-1:-1:-1;88:3340:70;2194:46;;;88:3340;;;;;;;;;;;;2194:46;;88:3340;;;;2194:46;88:3340;2194:46;-1:-1:-1;88:3340:70;;;;;;;;;;;;;2286:30;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;2286:30:70;;;1674:950;2336:20;;;;2358:31;2336:20;;;;:::i;:::-;88:3340;;;2358:16;88:3340;1809:6;88:3340;724:32:73;88:3340:70;;;;;;;2358:16;88:3340;;2358:31;;;1834:4;2358:31;;;88:3340;;;;;;;;;;;;;;2358:31;;;;;;;;;;2409:20;2358:31;;;;;;-1:-1:-1;2358:31:70;;;;;;:::i;:::-;2409:20;:::i;:::-;1872:6;88:3340;;;;2431:16;;-1:-1:-1;;;;;88:3340:70;;;2431:16;88:3340;;2431:31;;;1834:4;2431:31;;;88:3340;;;;;;;;;;;;;;;;;2431:31;;;;;;;;;2508;2431;2482:24;2431:31;;;-1:-1:-1;2431:31:70;;;1674:950;2431:31;;:::i;2482:24::-;1809:6;88:3340;;;;;;2508:16;;-1:-1:-1;;;;;88:3340:70;;;2508:16;1964:4;378::31;2525:13:70;;-1:-1:-1;;;;;88:3340:70;378:4:31;88:3340:70;2525:13;88:3340;;2508:31;;;-1:-1:-1;;;;;88:3340:70;;;2508:31;;;88:3340;;;;;;;;;;;;;;;;2508:31;;;;;;;;;;;;;2559:24;2508:31;2585;2508;-1:-1:-1;2508:31:70;;;;;:::i;2559:24::-;1872:6;88:3340;;;;2585:16;;-1:-1:-1;;;;;88:3340:70;;;2585:16;1964:4;378::31;;;;2602:13:70;;-1:-1:-1;;;;;88:3340:70;378:4:31;88:3340:70;2602:13;88:3340;;2585:31;;;-1:-1:-1;;;;;88:3340:70;;;2585:31;;;88:3340;;;;;;;;;;;;;;;2508:31;;;;;;;;;;;;;;;:::i;:::-;;;;;2431;;;;;;;;-1:-1:-1;2431:31:70;;;;;;:::i;2358:::-;;;;;;;-1:-1:-1;2358:31:70;;;;;;:::i;:::-;;;;;;2286:30;2336:20;2286:30;;2358:31;2286:30;;;;;;;;-1:-1:-1;2286:30:70;;;;;;:::i;:::-;;;;;;;;;2123:41;;;;;2194:46;2123:41;;;2194:46;2123:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2006:31;;;;;;;;;;;;;;;:::i;:::-;;;;;1939;;;;;;;;;;;;;;;:::i;:::-;;;;;1872;;;;;;;;;;;;;;:::i;:::-;;;;1809;;;;;;;;;;;;;;;:::i;:::-;;;;;1671:64:0;;;;;;;;;;88:3340:70;;1671:64:0;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;88:3340:70;;;;;;;-1:-1:-1;;88:3340:70;1671:64:0;;88:3340:70;;:::i;:::-;1671:64:0;;;-1:-1:-1;1671:64:0;;;;:::o;:::-;;;:::o;1819:584::-;1873:7;88:3340:70;;;;;;1873:7:0;;;88:3340:70;;;;;1057:14:1;:::o;1869:528:0:-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;88:3340:70;;;;;2196:43:0;;;;;;1671:64;;;;88:3340:70;;;;1671:64:0;;;;;;88:3340:70;1671:64:0;2196:43;;;88:3340:70;;2196:43:0;;;;;;;;:::i;:::-;2086:175;88:3340:70;;2086:175:0;;;2196:43;2086:175;;;;;:::i;:::-;;;;;;;;;:::i;:::-;2047:232;;;;;2312:27;2047:232;;:::i;:::-;2196:43;88:3340:70;;;2312:27:0;;;;;;:::i;396:450:59:-;88:3340:70;;;447:32:59;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;715:41:73;88:3340:70;;-1:-1:-1;;;;;;88:3340:70;-1:-1:-1;;;;;88:3340:70;;;;;;;;;;;498:32:59;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;766:41:73;88:3340:70;;-1:-1:-1;;;;;;88:3340:70;-1:-1:-1;;;;;88:3340:70;;;;;;438:41:59;88:3340:70;540:11:59;;88:3340:70;;;540:11:59;:34;;;;;88:3340:70;;-1:-1:-1;;;540:34:59;;;560:4;540:34;;;88:3340:70;844:6:73;88:3340:70;;;;;;;;;;;;;;;540:34:59;;;;;;;;396:450;-1:-1:-1;489:41:59;88:3340:70;584:11:59;;-1:-1:-1;;;;;88:3340:70;;;584:11:59;:34;;;;;;88:3340:70;;584:34:59;;;560:4;540:34;584;;88:3340:70;844:6:73;88:3340:70;;;;;;;;;;;;;;;584:34:59;;;;;;;;396:450;-1:-1:-1;438:41:59;88:3340:70;643:15:59;;-1:-1:-1;;;;;88:3340:70;;;643:15:59;489:41;88:3340:70;660:15:59;;-1:-1:-1;;;;;88:3340:70;;;660:15:59;88:3340:70;;;635:50:59;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:3340:70;;;;;;;378:4:31;;;88:3340:70;378:4:31;;;;88:3340:70;378:4:31;;;;635:50:59;;;;;;;;;906:52:73;88:3340:70;;-1:-1:-1;;;;;;88:3340:70;-1:-1:-1;;;;;88:3340:70;;;;;;;;;;;;702:20:59;;;;;;;;;;;;;;;;;;;;88:3340:70;;;;;;;702:20:59;;;;;;;;;;695:27;733:48;695:27;724:32:73;88:3340:70;;;;;;;;968:27:73;88:3340:70;;;968:27:73;88:3340:70;;695:27:59;438:41;88:3340:70;733:14:59;;-1:-1:-1;;;;;88:3340:70;;;733:14:59;695:27;378:4:31;;;;748:13:59;;-1:-1:-1;;;;;88:3340:70;378:4:31;88:3340:70;748:13:59;88:3340:70;;-1:-1:-1;;;733:48:59;;;-1:-1:-1;;;;;88:3340:70;;;540:34:59;733:48;;88:3340:70;-1:-1:-1;;378:4:31;;;88:3340:70;733:48:59;;88:3340:70;;;;733:48:59;;88:3340:70;;733:48:59;88:3340:70;;;;;;378:4:31;;;;;733:48:59;;;;;;;;;;791;733;;;;;396:450;-1:-1:-1;489:41:59;88:3340:70;791:14:59;;-1:-1:-1;;;;;88:3340:70;;;791:14:59;695:27;378:4:31;;;;806:13:59;;-1:-1:-1;;;;;88:3340:70;378:4:31;88:3340:70;791:48:59;;;;;;;;;;;396:450;;:::o;791:48::-;;;;;;-1:-1:-1;791:48:59;;;;;;:::i;:::-;;396:450::o;733:48::-;;;;;;;;;;;;;:::i;:::-;;;;;584:34;;;;;;:::i;:::-;;;;540;;;;;;:::i;:::-;;;;;88:3340:70;;;5202:262:0;;5259:6;;;5255:203;;5202:262;;:::o;5255:203::-;88:3340:70;;;;;;;5286:41:0;88:3340:70;;;;;;;;;;;;;;;;-1:-1:-1;;;88:3340:70;;;;5286:41:0;88:3340:70;;;;;;;;;;;-1:-1:-1;;;88:3340:70;;;;;;;;5346:31:0;;;;;88:3340:70;;;;;;;;;;;-1:-1:-1;;;88:3340:70;;;;;;;;5396:31:0;2939:104;;;2445:359;;5255:203;88:3340:70;;;;;;2928:1:0;88:3340:70;;;2928:1:0;88:3340:70;5202:262:0:o;2445:359::-;88:3340:70;-1:-1:-1;1671:64:0;2534:196;1671:64;88:3340:70;;;;;;2645:67:0;;;;88:3340:70;;;;1671:64:0;;;88:3340:70;;;;2705:4:0;88:3340:70;;;;;2645:67:0;;;;;:::i;:::-;88:3340:70;2534:196:0;;;;;1671:64;;;;;;88:3340:70;1671:64:0;;;;;;;:::i;:::-;;;2534:196;1671:64;2534:196;;;;;;;:::i;:::-;2499:245;;;;;;;:::i;:::-;;2445:359;;;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","POOL_ID()":"e0d7d0e9","TEST_SWAP_FEE()":"620a2607","failed()":"ba414fa6","getPoolLiquidityToken(uint256)":"e21485ad","setUp()":"0a9254e4","test_G3M_deallocate_GivenX_DecreasesTotalLiquidity()":"98fc5107","test_G3M_deallocate_GivenX_TransfersTokens()":"a9fca20c","test_G3M_deallocate_GivenX_UpdateReserves()":"38b63020","test_G3M_deallocate_GivenY()":"9d897213"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"upper\",\"type\":\"uint256\"}],\"name\":\"BisectionLib_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"lowerResult\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"upperResult\",\"type\":\"int256\"}],\"name\":\"BisectionLib_RootOutsideBounds\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POOL_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_SWAP_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolLiquidityToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_G3M_deallocate_GivenX_DecreasesTotalLiquidity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_G3M_deallocate_GivenX_TransfersTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_G3M_deallocate_GivenX_UpdateReserves\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_G3M_deallocate_GivenY\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"BisectionLib_InvalidBounds(uint256,uint256)\":[{\"details\":\"Thrown when the lower bound is greater than the upper bound.\"}],\"BisectionLib_RootOutsideBounds(int256,int256)\":[{\"details\":\"Thrown when the result of the function `fx` for each input, `upper` and `lower`, is the same sign.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/unit/strategies/G3M/Deallocate.t.sol\":\"G3MDeallocateTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/lib/SignedWadMath.sol\":{\"keccak256\":\"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a\",\"dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/solvers/G3M/G3MExtendedLib.sol\":{\"keccak256\":\"0xa7e4eb7172ca81b319ccb5ac248c302fb549be3eb6badda424800f73edfbc448\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2d53a62a983c65dd0b892f30d30b603fc5cf7ebb4895dbdcb0a05a9eae1a431f\",\"dweb:/ipfs/QmNXKi6XUWswwKuzaE6SorZhRvd7Nz6dxYmLmii8bVcRhK\"]},\"src/solvers/G3M/G3MSolver.sol\":{\"keccak256\":\"0x78a3ae3db50beba513113d6a79c1d29282ccc46852563237fc3852eb1390376e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://146cfcc48b6a2fd6cd392f8508232b201add90f0f4352b141bc8d25b821884da\",\"dweb:/ipfs/QmXB3vg58RwUEEMCqgvdEGfwZjTzvE9PXDEZ8XFYsmiK1s\"]},\"src/strategies/G3M/G3M.sol\":{\"keccak256\":\"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c\",\"dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE\"]},\"src/strategies/G3M/G3MLib.sol\":{\"keccak256\":\"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70\",\"dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]},\"src/test/helpers/MockStrategy.sol\":{\"keccak256\":\"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5\",\"dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw\"]},\"src/test/helpers/SetUp.sol\":{\"keccak256\":\"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30\",\"dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14\"]},\"src/test/unit/DFMM/SetUp.sol\":{\"keccak256\":\"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4\",\"dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm\"]},\"src/test/unit/strategies/G3M/Deallocate.t.sol\":{\"keccak256\":\"0x3bfd2d65aa9db771a31231f98c1f89b6edd3da71ad6bc5d0f54bf64b4e8e51a9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://82240f12afb5538cf6e5b6e19fc00897983f2b4a34232a309a258665237539a1\",\"dweb:/ipfs/QmfAL16S2qpxM6dAoRa2tG5JFY81L3JZXKzWGyaGeEorud\"]},\"src/test/unit/strategies/G3M/SetUp.sol\":{\"keccak256\":\"0xf3df0de5242d3ce771a7d1c56bc0e6d49c33c93bd213f173ae893ffa8cb8a2db\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://15593516464636019a55cab0dfda3c32d88ce82ece50e1f6ecab55e17305042a\",\"dweb:/ipfs/QmcySG4cNFidHEpwBcuMfWVkzGPWTPyLwgwrNodUoTZips\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"lower","type":"uint256"},{"internalType":"uint256","name":"upper","type":"uint256"}],"type":"error","name":"BisectionLib_InvalidBounds"},{"inputs":[{"internalType":"int256","name":"lowerResult","type":"int256"},{"internalType":"int256","name":"upperResult","type":"int256"}],"type":"error","name":"BisectionLib_RootOutsideBounds"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"POOL_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_SWAP_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolLiquidityToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_G3M_deallocate_GivenX_DecreasesTotalLiquidity"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_G3M_deallocate_GivenX_TransfersTokens"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_G3M_deallocate_GivenX_UpdateReserves"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_G3M_deallocate_GivenY"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/unit/strategies/G3M/Deallocate.t.sol":"G3MDeallocateTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/lib/SignedWadMath.sol":{"keccak256":"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630","urls":["bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a","dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN"],"license":"MIT"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/solvers/G3M/G3MExtendedLib.sol":{"keccak256":"0xa7e4eb7172ca81b319ccb5ac248c302fb549be3eb6badda424800f73edfbc448","urls":["bzz-raw://2d53a62a983c65dd0b892f30d30b603fc5cf7ebb4895dbdcb0a05a9eae1a431f","dweb:/ipfs/QmNXKi6XUWswwKuzaE6SorZhRvd7Nz6dxYmLmii8bVcRhK"],"license":"GPL-3.0-or-later"},"src/solvers/G3M/G3MSolver.sol":{"keccak256":"0x78a3ae3db50beba513113d6a79c1d29282ccc46852563237fc3852eb1390376e","urls":["bzz-raw://146cfcc48b6a2fd6cd392f8508232b201add90f0f4352b141bc8d25b821884da","dweb:/ipfs/QmXB3vg58RwUEEMCqgvdEGfwZjTzvE9PXDEZ8XFYsmiK1s"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3M.sol":{"keccak256":"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034","urls":["bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c","dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3MLib.sol":{"keccak256":"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4","urls":["bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70","dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m"],"license":"GPL-3.0-or-later"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"},"src/test/helpers/MockStrategy.sol":{"keccak256":"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a","urls":["bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5","dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw"],"license":"UNLICENSED"},"src/test/helpers/SetUp.sol":{"keccak256":"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb","urls":["bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30","dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14"],"license":"UNLICENSED"},"src/test/unit/DFMM/SetUp.sol":{"keccak256":"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a","urls":["bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4","dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm"],"license":"UNLICENSED"},"src/test/unit/strategies/G3M/Deallocate.t.sol":{"keccak256":"0x3bfd2d65aa9db771a31231f98c1f89b6edd3da71ad6bc5d0f54bf64b4e8e51a9","urls":["bzz-raw://82240f12afb5538cf6e5b6e19fc00897983f2b4a34232a309a258665237539a1","dweb:/ipfs/QmfAL16S2qpxM6dAoRa2tG5JFY81L3JZXKzWGyaGeEorud"],"license":"UNLICENSED"},"src/test/unit/strategies/G3M/SetUp.sol":{"keccak256":"0xf3df0de5242d3ce771a7d1c56bc0e6d49c33c93bd213f173ae893ffa8cb8a2db","urls":["bzz-raw://15593516464636019a55cab0dfda3c32d88ce82ece50e1f6ecab55e17305042a","dweb:/ipfs/QmcySG4cNFidHEpwBcuMfWVkzGPWTPyLwgwrNodUoTZips"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/unit/strategies/G3M/Deallocate.t.sol","id":47086,"exportedSymbols":{"ArbiterToken":[43381],"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"DFMM":[29062],"DFMMSetUp":[45761],"DSTest":[1786],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"G3M":[37911],"G3MDeallocateTest":[47085],"G3MLib":[38158],"G3MSetUp":[47524],"G3MSolver":[33820],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"LPToken":[29516],"Lex":[44392],"LibString":[26659],"Min":[27736],"MockERC20":[25560],"MockStrategy":[44649],"ONE":[30639],"SQRT_WAD":[30630],"SafeTransferLib":[26744],"SetUp":[44852],"SignedWadMathLib":[30623],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"TWO":[30633],"Test":[8195],"TestBase":[1843],"Vm":[9352],"WETH":[26027],"ZERO":[30649],"abs":[27763],"bisection":[31118],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeInitialPoolData":[31906],"computeL":[31844],"computeLGivenX":[31662],"computeLGivenY":[31688],"computeNextLiquidity":[32899],"computeNextRx":[32006],"computeNextRy":[31956],"computeOptimalLower":[32732],"computeOptimalRaise":[32798],"computePrice":[32043],"computeScalingFactor":[30048],"computeX":[31792],"computeXGivenL":[31714],"computeY":[31766],"computeYGivenL":[31740],"console":[17416],"console2":[25512],"diffLower":[32419],"diffRaise":[32666],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"findRootLiquidity":[32083],"findRootLower":[32129],"findRootRaise":[32175],"muli":[27777],"muliWad":[27795],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"39:3390:70","nodes":[{"id":46709,"nodeType":"PragmaDirective","src":"39:24:70","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":46710,"nodeType":"ImportDirective","src":"65:21:70","nodes":[],"absolutePath":"src/test/unit/strategies/G3M/SetUp.sol","file":"./SetUp.sol","nameLocation":"-1:-1:-1","scope":47086,"sourceUnit":47525,"symbolAliases":[],"unitAlias":""},{"id":47085,"nodeType":"ContractDefinition","src":"88:3340:70","nodes":[{"id":46795,"nodeType":"FunctionDefinition","src":"133:820:70","nodes":[],"body":{"id":46794,"nodeType":"Block","src":"207:746:70","nodes":[],"statements":[{"assignments":[46718],"declarations":[{"constant":false,"id":46718,"mutability":"mutable","name":"amountX","nameLocation":"225:7:70","nodeType":"VariableDeclaration","scope":46794,"src":"217:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46717,"name":"uint256","nodeType":"ElementaryTypeName","src":"217:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46720,"initialValue":{"hexValue":"302e31","id":46719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"235:9:70","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"217:27:70"},{"assignments":[46722,46724,46726],"declarations":[{"constant":false,"id":46722,"mutability":"mutable","name":"reserveX","nameLocation":"264:8:70","nodeType":"VariableDeclaration","scope":46794,"src":"256:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46721,"name":"uint256","nodeType":"ElementaryTypeName","src":"256:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46724,"mutability":"mutable","name":"reserveY","nameLocation":"282:8:70","nodeType":"VariableDeclaration","scope":46794,"src":"274:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46723,"name":"uint256","nodeType":"ElementaryTypeName","src":"274:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46726,"mutability":"mutable","name":"deltaLiquidity","nameLocation":"300:14:70","nodeType":"VariableDeclaration","scope":46794,"src":"292:22:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46725,"name":"uint256","nodeType":"ElementaryTypeName","src":"292:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46732,"initialValue":{"arguments":[{"id":46729,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"354:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46730,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46718,"src":"363:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46727,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47328,"src":"330:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":46728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"337:16:70","memberName":"deallocateGivenX","nodeType":"MemberAccess","referencedDeclaration":33175,"src":"330:23:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) view external returns (uint256,uint256,uint256)"}},"id":46731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"330:41:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"255:116:70"},{"assignments":[46734],"declarations":[{"constant":false,"id":46734,"mutability":"mutable","name":"preLiquidityBalance","nameLocation":"390:19:70","nodeType":"VariableDeclaration","scope":46794,"src":"382:27:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46733,"name":"uint256","nodeType":"ElementaryTypeName","src":"382:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46743,"initialValue":{"arguments":[{"arguments":[{"id":46739,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"437:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_G3MDeallocateTest_$47085","typeString":"contract G3MDeallocateTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MDeallocateTest_$47085","typeString":"contract G3MDeallocateTest"}],"id":46738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"429:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46737,"name":"address","nodeType":"ElementaryTypeName","src":"429:7:70","typeDescriptions":{}}},"id":46740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"429:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46741,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"444:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46735,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"412:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":46736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"417:11:70","memberName":"liquidityOf","nodeType":"MemberAccess","referencedDeclaration":29061,"src":"412:16:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":46742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"412:40:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"382:70:70"},{"assignments":[null,null,46745],"declarations":[null,null,{"constant":false,"id":46745,"mutability":"mutable","name":"preTotalLiquidity","nameLocation":"474:17:70","nodeType":"VariableDeclaration","scope":46794,"src":"466:25:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46744,"name":"uint256","nodeType":"ElementaryTypeName","src":"466:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46750,"initialValue":{"arguments":[{"id":46748,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"524:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46746,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"495:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":46747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"500:23:70","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29012,"src":"495:28:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":46749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"495:37:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"462:70:70"},{"assignments":[46752],"declarations":[{"constant":false,"id":46752,"mutability":"mutable","name":"data","nameLocation":"556:4:70","nodeType":"VariableDeclaration","scope":46794,"src":"543:17:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46751,"name":"bytes","nodeType":"ElementaryTypeName","src":"543:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":46759,"initialValue":{"arguments":[{"id":46755,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46722,"src":"574:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46756,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46724,"src":"584:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46757,"name":"deltaLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46726,"src":"594:14:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46753,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"563:3:70","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46754,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"567:6:70","memberName":"encode","nodeType":"MemberAccess","src":"563:10:70","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":46758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"563:46:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"543:66:70"},{"expression":{"arguments":[{"id":46763,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"635:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46764,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46752,"src":"644:4:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":46760,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"619:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":46762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"624:10:70","memberName":"deallocate","nodeType":"MemberAccess","referencedDeclaration":28288,"src":"619:15:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256,uint256,uint256)"}},"id":46765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"619:30:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"id":46766,"nodeType":"ExpressionStatement","src":"619:30:70"},{"assignments":[null,null,46768],"declarations":[null,null,{"constant":false,"id":46768,"mutability":"mutable","name":"postTotalLiquidity","nameLocation":"672:18:70","nodeType":"VariableDeclaration","scope":46794,"src":"664:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46767,"name":"uint256","nodeType":"ElementaryTypeName","src":"664:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46773,"initialValue":{"arguments":[{"id":46771,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"723:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46769,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"694:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":46770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"699:23:70","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29012,"src":"694:28:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":46772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"694:37:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"660:71:70"},{"assignments":[46775],"declarations":[{"constant":false,"id":46775,"mutability":"mutable","name":"deltaTotalLiquidity","nameLocation":"749:19:70","nodeType":"VariableDeclaration","scope":46794,"src":"741:27:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46774,"name":"uint256","nodeType":"ElementaryTypeName","src":"741:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46779,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46776,"name":"preTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46745,"src":"771:17:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":46777,"name":"postTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46768,"src":"791:18:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"771:38:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"741:68:70"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46781,"name":"preLiquidityBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46734,"src":"841:19:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":46782,"name":"deltaTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46775,"src":"863:19:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"841:41:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":46788,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"921:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_G3MDeallocateTest_$47085","typeString":"contract G3MDeallocateTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MDeallocateTest_$47085","typeString":"contract G3MDeallocateTest"}],"id":46787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"913:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46786,"name":"address","nodeType":"ElementaryTypeName","src":"913:7:70","typeDescriptions":{}}},"id":46789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"913:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46790,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"928:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46784,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"896:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":46785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"901:11:70","memberName":"liquidityOf","nodeType":"MemberAccess","referencedDeclaration":29061,"src":"896:16:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":46791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"896:40:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46780,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"819:8:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"819:127:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46793,"nodeType":"ExpressionStatement","src":"819:127:70"}]},"functionSelector":"98fc5107","implemented":true,"kind":"function","modifiers":[{"id":46715,"kind":"modifierInvocation","modifierName":{"id":46714,"name":"init","nameLocations":["202:4:70"],"nodeType":"IdentifierPath","referencedDeclaration":47523,"src":"202:4:70"},"nodeType":"ModifierInvocation","src":"202:4:70"}],"name":"test_G3M_deallocate_GivenX_DecreasesTotalLiquidity","nameLocation":"142:50:70","parameters":{"id":46713,"nodeType":"ParameterList","parameters":[],"src":"192:2:70"},"returnParameters":{"id":46716,"nodeType":"ParameterList","parameters":[],"src":"207:0:70"},"scope":47085,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":46868,"nodeType":"FunctionDefinition","src":"959:709:70","nodes":[],"body":{"id":46867,"nodeType":"Block","src":"1024:644:70","nodes":[],"statements":[{"assignments":[46801],"declarations":[{"constant":false,"id":46801,"mutability":"mutable","name":"amountX","nameLocation":"1042:7:70","nodeType":"VariableDeclaration","scope":46867,"src":"1034:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46800,"name":"uint256","nodeType":"ElementaryTypeName","src":"1034:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46803,"initialValue":{"hexValue":"302e31","id":46802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1052:9:70","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"1034:27:70"},{"assignments":[46805,46807,null],"declarations":[{"constant":false,"id":46805,"mutability":"mutable","name":"preReserveX","nameLocation":"1080:11:70","nodeType":"VariableDeclaration","scope":46867,"src":"1072:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46804,"name":"uint256","nodeType":"ElementaryTypeName","src":"1072:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46807,"mutability":"mutable","name":"preReserveY","nameLocation":"1101:11:70","nodeType":"VariableDeclaration","scope":46867,"src":"1093:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46806,"name":"uint256","nodeType":"ElementaryTypeName","src":"1093:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":46812,"initialValue":{"arguments":[{"id":46810,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"1158:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46808,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1129:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":46809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1134:23:70","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29012,"src":"1129:28:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":46811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1129:37:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1071:95:70"},{"assignments":[46814,46816,46818],"declarations":[{"constant":false,"id":46814,"mutability":"mutable","name":"reserveX","nameLocation":"1186:8:70","nodeType":"VariableDeclaration","scope":46867,"src":"1178:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46813,"name":"uint256","nodeType":"ElementaryTypeName","src":"1178:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46816,"mutability":"mutable","name":"reserveY","nameLocation":"1204:8:70","nodeType":"VariableDeclaration","scope":46867,"src":"1196:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46815,"name":"uint256","nodeType":"ElementaryTypeName","src":"1196:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46818,"mutability":"mutable","name":"deltaLiquidity","nameLocation":"1222:14:70","nodeType":"VariableDeclaration","scope":46867,"src":"1214:22:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46817,"name":"uint256","nodeType":"ElementaryTypeName","src":"1214:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46824,"initialValue":{"arguments":[{"id":46821,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"1276:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46822,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46801,"src":"1285:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46819,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47328,"src":"1252:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":46820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1259:16:70","memberName":"deallocateGivenX","nodeType":"MemberAccess","referencedDeclaration":33175,"src":"1252:23:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) view external returns (uint256,uint256,uint256)"}},"id":46823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1252:41:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1177:116:70"},{"assignments":[46826],"declarations":[{"constant":false,"id":46826,"mutability":"mutable","name":"data","nameLocation":"1316:4:70","nodeType":"VariableDeclaration","scope":46867,"src":"1303:17:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46825,"name":"bytes","nodeType":"ElementaryTypeName","src":"1303:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":46833,"initialValue":{"arguments":[{"id":46829,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46814,"src":"1334:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46830,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46816,"src":"1344:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46831,"name":"deltaLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46818,"src":"1354:14:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46827,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1323:3:70","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1327:6:70","memberName":"encode","nodeType":"MemberAccess","src":"1323:10:70","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":46832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1323:46:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1303:66:70"},{"assignments":[46835,46837,null],"declarations":[{"constant":false,"id":46835,"mutability":"mutable","name":"deltaX","nameLocation":"1388:6:70","nodeType":"VariableDeclaration","scope":46867,"src":"1380:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46834,"name":"uint256","nodeType":"ElementaryTypeName","src":"1380:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46837,"mutability":"mutable","name":"deltaY","nameLocation":"1404:6:70","nodeType":"VariableDeclaration","scope":46867,"src":"1396:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46836,"name":"uint256","nodeType":"ElementaryTypeName","src":"1396:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":46843,"initialValue":{"arguments":[{"id":46840,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"1431:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46841,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46826,"src":"1440:4:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":46838,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1415:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":46839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1420:10:70","memberName":"deallocate","nodeType":"MemberAccess","referencedDeclaration":28288,"src":"1415:15:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256,uint256,uint256)"}},"id":46842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1415:30:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1379:66:70"},{"assignments":[46845,46847,null],"declarations":[{"constant":false,"id":46845,"mutability":"mutable","name":"postReserveX","nameLocation":"1465:12:70","nodeType":"VariableDeclaration","scope":46867,"src":"1457:20:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46844,"name":"uint256","nodeType":"ElementaryTypeName","src":"1457:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46847,"mutability":"mutable","name":"postReserveY","nameLocation":"1487:12:70","nodeType":"VariableDeclaration","scope":46867,"src":"1479:20:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46846,"name":"uint256","nodeType":"ElementaryTypeName","src":"1479:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":46852,"initialValue":{"arguments":[{"id":46850,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"1545:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46848,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1516:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":46849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1521:23:70","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29012,"src":"1516:28:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":46851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1516:37:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1456:97:70"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46854,"name":"preReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46805,"src":"1572:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":46855,"name":"deltaX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46835,"src":"1586:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1572:20:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46857,"name":"postReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46845,"src":"1594:12:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46853,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"1563:8:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1563:44:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46859,"nodeType":"ExpressionStatement","src":"1563:44:70"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46861,"name":"preReserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46807,"src":"1626:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":46862,"name":"deltaY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46837,"src":"1640:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1626:20:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46864,"name":"postReserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46847,"src":"1648:12:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46860,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"1617:8:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1617:44:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46866,"nodeType":"ExpressionStatement","src":"1617:44:70"}]},"functionSelector":"38b63020","implemented":true,"kind":"function","modifiers":[{"id":46798,"kind":"modifierInvocation","modifierName":{"id":46797,"name":"init","nameLocations":["1019:4:70"],"nodeType":"IdentifierPath","referencedDeclaration":47523,"src":"1019:4:70"},"nodeType":"ModifierInvocation","src":"1019:4:70"}],"name":"test_G3M_deallocate_GivenX_UpdateReserves","nameLocation":"968:41:70","parameters":{"id":46796,"nodeType":"ParameterList","parameters":[],"src":"1009:2:70"},"returnParameters":{"id":46799,"nodeType":"ParameterList","parameters":[],"src":"1024:0:70"},"scope":47085,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":47001,"nodeType":"FunctionDefinition","src":"1674:950:70","nodes":[],"body":{"id":47000,"nodeType":"Block","src":"1740:884:70","nodes":[],"statements":[{"assignments":[46874],"declarations":[{"constant":false,"id":46874,"mutability":"mutable","name":"amountX","nameLocation":"1758:7:70","nodeType":"VariableDeclaration","scope":47000,"src":"1750:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46873,"name":"uint256","nodeType":"ElementaryTypeName","src":"1750:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46876,"initialValue":{"hexValue":"302e31","id":46875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1768:9:70","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"1750:27:70"},{"assignments":[46878],"declarations":[{"constant":false,"id":46878,"mutability":"mutable","name":"preBalanceX","nameLocation":"1795:11:70","nodeType":"VariableDeclaration","scope":47000,"src":"1787:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46877,"name":"uint256","nodeType":"ElementaryTypeName","src":"1787:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46886,"initialValue":{"arguments":[{"arguments":[{"id":46883,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1834:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_G3MDeallocateTest_$47085","typeString":"contract G3MDeallocateTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MDeallocateTest_$47085","typeString":"contract G3MDeallocateTest"}],"id":46882,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1826:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46881,"name":"address","nodeType":"ElementaryTypeName","src":"1826:7:70","typeDescriptions":{}}},"id":46884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1826:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46879,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"1809:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":46880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1816:9:70","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"1809:16:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":46885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1809:31:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1787:53:70"},{"assignments":[46888],"declarations":[{"constant":false,"id":46888,"mutability":"mutable","name":"preBalanceY","nameLocation":"1858:11:70","nodeType":"VariableDeclaration","scope":47000,"src":"1850:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46887,"name":"uint256","nodeType":"ElementaryTypeName","src":"1850:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46896,"initialValue":{"arguments":[{"arguments":[{"id":46893,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1897:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_G3MDeallocateTest_$47085","typeString":"contract G3MDeallocateTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MDeallocateTest_$47085","typeString":"contract G3MDeallocateTest"}],"id":46892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1889:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46891,"name":"address","nodeType":"ElementaryTypeName","src":"1889:7:70","typeDescriptions":{}}},"id":46894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1889:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46889,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"1872:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":46890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1879:9:70","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"1872:16:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":46895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1872:31:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1850:53:70"},{"assignments":[46898],"declarations":[{"constant":false,"id":46898,"mutability":"mutable","name":"preBalanceXDFMM","nameLocation":"1921:15:70","nodeType":"VariableDeclaration","scope":47000,"src":"1913:23:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46897,"name":"uint256","nodeType":"ElementaryTypeName","src":"1913:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46906,"initialValue":{"arguments":[{"arguments":[{"id":46903,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1964:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":46902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1956:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46901,"name":"address","nodeType":"ElementaryTypeName","src":"1956:7:70","typeDescriptions":{}}},"id":46904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1956:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46899,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"1939:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":46900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1946:9:70","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"1939:16:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":46905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1939:31:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1913:57:70"},{"assignments":[46908],"declarations":[{"constant":false,"id":46908,"mutability":"mutable","name":"preBalanceYDFMM","nameLocation":"1988:15:70","nodeType":"VariableDeclaration","scope":47000,"src":"1980:23:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46907,"name":"uint256","nodeType":"ElementaryTypeName","src":"1980:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46916,"initialValue":{"arguments":[{"arguments":[{"id":46913,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"2031:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":46912,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2023:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46911,"name":"address","nodeType":"ElementaryTypeName","src":"2023:7:70","typeDescriptions":{}}},"id":46914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2023:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46909,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"2006:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":46910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2013:9:70","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"2006:16:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":46915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2006:31:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1980:57:70"},{"assignments":[46918,46920,46922],"declarations":[{"constant":false,"id":46918,"mutability":"mutable","name":"reserveX","nameLocation":"2057:8:70","nodeType":"VariableDeclaration","scope":47000,"src":"2049:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46917,"name":"uint256","nodeType":"ElementaryTypeName","src":"2049:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46920,"mutability":"mutable","name":"reserveY","nameLocation":"2075:8:70","nodeType":"VariableDeclaration","scope":47000,"src":"2067:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46919,"name":"uint256","nodeType":"ElementaryTypeName","src":"2067:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46922,"mutability":"mutable","name":"deltaLiquidity","nameLocation":"2093:14:70","nodeType":"VariableDeclaration","scope":47000,"src":"2085:22:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46921,"name":"uint256","nodeType":"ElementaryTypeName","src":"2085:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46928,"initialValue":{"arguments":[{"id":46925,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"2147:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46926,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46874,"src":"2156:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46923,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47328,"src":"2123:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":46924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2130:16:70","memberName":"deallocateGivenX","nodeType":"MemberAccess","referencedDeclaration":33175,"src":"2123:23:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) view external returns (uint256,uint256,uint256)"}},"id":46927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2123:41:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"2048:116:70"},{"assignments":[46930],"declarations":[{"constant":false,"id":46930,"mutability":"mutable","name":"data","nameLocation":"2187:4:70","nodeType":"VariableDeclaration","scope":47000,"src":"2174:17:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46929,"name":"bytes","nodeType":"ElementaryTypeName","src":"2174:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":46937,"initialValue":{"arguments":[{"id":46933,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46918,"src":"2205:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46934,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46920,"src":"2215:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46935,"name":"deltaLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46922,"src":"2225:14:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46931,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2194:3:70","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2198:6:70","memberName":"encode","nodeType":"MemberAccess","src":"2194:10:70","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":46936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2194:46:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2174:66:70"},{"assignments":[46939,46941,null],"declarations":[{"constant":false,"id":46939,"mutability":"mutable","name":"deltaX","nameLocation":"2259:6:70","nodeType":"VariableDeclaration","scope":47000,"src":"2251:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46938,"name":"uint256","nodeType":"ElementaryTypeName","src":"2251:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46941,"mutability":"mutable","name":"deltaY","nameLocation":"2275:6:70","nodeType":"VariableDeclaration","scope":47000,"src":"2267:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46940,"name":"uint256","nodeType":"ElementaryTypeName","src":"2267:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":46947,"initialValue":{"arguments":[{"id":46944,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"2302:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":46945,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46930,"src":"2311:4:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":46942,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"2286:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":46943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2291:10:70","memberName":"deallocate","nodeType":"MemberAccess","referencedDeclaration":28288,"src":"2286:15:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256,uint256,uint256)"}},"id":46946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2286:30:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"2250:66:70"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46949,"name":"preBalanceX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46878,"src":"2336:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":46950,"name":"deltaX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46939,"src":"2350:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2336:20:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":46956,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2383:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_G3MDeallocateTest_$47085","typeString":"contract G3MDeallocateTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MDeallocateTest_$47085","typeString":"contract G3MDeallocateTest"}],"id":46955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2375:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46954,"name":"address","nodeType":"ElementaryTypeName","src":"2375:7:70","typeDescriptions":{}}},"id":46957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2375:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46952,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"2358:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":46953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2365:9:70","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"2358:16:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":46958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2358:31:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46948,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2327:8:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2327:63:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46960,"nodeType":"ExpressionStatement","src":"2327:63:70"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46962,"name":"preBalanceY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46888,"src":"2409:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":46963,"name":"deltaY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46941,"src":"2423:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2409:20:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":46969,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2456:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_G3MDeallocateTest_$47085","typeString":"contract G3MDeallocateTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MDeallocateTest_$47085","typeString":"contract G3MDeallocateTest"}],"id":46968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2448:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46967,"name":"address","nodeType":"ElementaryTypeName","src":"2448:7:70","typeDescriptions":{}}},"id":46970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2448:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46965,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"2431:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":46966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2438:9:70","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"2431:16:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":46971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2431:31:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46961,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2400:8:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2400:63:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46973,"nodeType":"ExpressionStatement","src":"2400:63:70"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46975,"name":"preBalanceXDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46898,"src":"2482:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":46976,"name":"deltaX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46939,"src":"2500:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2482:24:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":46982,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"2533:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":46981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2525:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46980,"name":"address","nodeType":"ElementaryTypeName","src":"2525:7:70","typeDescriptions":{}}},"id":46983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2525:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46978,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"2508:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":46979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2515:9:70","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"2508:16:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":46984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2508:31:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46974,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2473:8:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2473:67:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46986,"nodeType":"ExpressionStatement","src":"2473:67:70"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46988,"name":"preBalanceYDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46908,"src":"2559:15:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":46989,"name":"deltaY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46941,"src":"2577:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2559:24:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":46995,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"2610:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":46994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2602:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46993,"name":"address","nodeType":"ElementaryTypeName","src":"2602:7:70","typeDescriptions":{}}},"id":46996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2602:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46991,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"2585:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":46992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2592:9:70","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"2585:16:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":46997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2585:31:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46987,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2550:8:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2550:67:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46999,"nodeType":"ExpressionStatement","src":"2550:67:70"}]},"functionSelector":"a9fca20c","implemented":true,"kind":"function","modifiers":[{"id":46871,"kind":"modifierInvocation","modifierName":{"id":46870,"name":"init","nameLocations":["1735:4:70"],"nodeType":"IdentifierPath","referencedDeclaration":47523,"src":"1735:4:70"},"nodeType":"ModifierInvocation","src":"1735:4:70"}],"name":"test_G3M_deallocate_GivenX_TransfersTokens","nameLocation":"1683:42:70","parameters":{"id":46869,"nodeType":"ParameterList","parameters":[],"src":"1725:2:70"},"returnParameters":{"id":46872,"nodeType":"ParameterList","parameters":[],"src":"1740:0:70"},"scope":47085,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":47084,"nodeType":"FunctionDefinition","src":"2630:796:70","nodes":[],"body":{"id":47083,"nodeType":"Block","src":"2680:746:70","nodes":[],"statements":[{"assignments":[47007],"declarations":[{"constant":false,"id":47007,"mutability":"mutable","name":"amountX","nameLocation":"2698:7:70","nodeType":"VariableDeclaration","scope":47083,"src":"2690:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47006,"name":"uint256","nodeType":"ElementaryTypeName","src":"2690:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47009,"initialValue":{"hexValue":"302e31","id":47008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2708:9:70","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"2690:27:70"},{"assignments":[47011,47013,47015],"declarations":[{"constant":false,"id":47011,"mutability":"mutable","name":"reserveX","nameLocation":"2737:8:70","nodeType":"VariableDeclaration","scope":47083,"src":"2729:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47010,"name":"uint256","nodeType":"ElementaryTypeName","src":"2729:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47013,"mutability":"mutable","name":"reserveY","nameLocation":"2755:8:70","nodeType":"VariableDeclaration","scope":47083,"src":"2747:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47012,"name":"uint256","nodeType":"ElementaryTypeName","src":"2747:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47015,"mutability":"mutable","name":"deltaLiquidity","nameLocation":"2773:14:70","nodeType":"VariableDeclaration","scope":47083,"src":"2765:22:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47014,"name":"uint256","nodeType":"ElementaryTypeName","src":"2765:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47021,"initialValue":{"arguments":[{"id":47018,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"2827:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47019,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47007,"src":"2836:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47016,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47328,"src":"2803:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":47017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2810:16:70","memberName":"deallocateGivenY","nodeType":"MemberAccess","referencedDeclaration":33221,"src":"2803:23:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) view external returns (uint256,uint256,uint256)"}},"id":47020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2803:41:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"2728:116:70"},{"assignments":[47023],"declarations":[{"constant":false,"id":47023,"mutability":"mutable","name":"preLiquidityBalance","nameLocation":"2863:19:70","nodeType":"VariableDeclaration","scope":47083,"src":"2855:27:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47022,"name":"uint256","nodeType":"ElementaryTypeName","src":"2855:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47032,"initialValue":{"arguments":[{"arguments":[{"id":47028,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2910:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_G3MDeallocateTest_$47085","typeString":"contract G3MDeallocateTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MDeallocateTest_$47085","typeString":"contract G3MDeallocateTest"}],"id":47027,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2902:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47026,"name":"address","nodeType":"ElementaryTypeName","src":"2902:7:70","typeDescriptions":{}}},"id":47029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2902:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47030,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"2917:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47024,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"2885:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":47025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2890:11:70","memberName":"liquidityOf","nodeType":"MemberAccess","referencedDeclaration":29061,"src":"2885:16:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":47031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2885:40:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2855:70:70"},{"assignments":[null,null,47034],"declarations":[null,null,{"constant":false,"id":47034,"mutability":"mutable","name":"preTotalLiquidity","nameLocation":"2947:17:70","nodeType":"VariableDeclaration","scope":47083,"src":"2939:25:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47033,"name":"uint256","nodeType":"ElementaryTypeName","src":"2939:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47039,"initialValue":{"arguments":[{"id":47037,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"2997:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47035,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"2968:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":47036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2973:23:70","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29012,"src":"2968:28:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":47038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2968:37:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"2935:70:70"},{"assignments":[47041],"declarations":[{"constant":false,"id":47041,"mutability":"mutable","name":"data","nameLocation":"3029:4:70","nodeType":"VariableDeclaration","scope":47083,"src":"3016:17:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47040,"name":"bytes","nodeType":"ElementaryTypeName","src":"3016:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":47048,"initialValue":{"arguments":[{"id":47044,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47011,"src":"3047:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47045,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47013,"src":"3057:8:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47046,"name":"deltaLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47015,"src":"3067:14:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47042,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3036:3:70","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3040:6:70","memberName":"encode","nodeType":"MemberAccess","src":"3036:10:70","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":47047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3036:46:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3016:66:70"},{"expression":{"arguments":[{"id":47052,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"3108:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47053,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47041,"src":"3117:4:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":47049,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"3092:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":47051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3097:10:70","memberName":"deallocate","nodeType":"MemberAccess","referencedDeclaration":28288,"src":"3092:15:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256,uint256,uint256)"}},"id":47054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3092:30:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"id":47055,"nodeType":"ExpressionStatement","src":"3092:30:70"},{"assignments":[null,null,47057],"declarations":[null,null,{"constant":false,"id":47057,"mutability":"mutable","name":"postTotalLiquidity","nameLocation":"3145:18:70","nodeType":"VariableDeclaration","scope":47083,"src":"3137:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47056,"name":"uint256","nodeType":"ElementaryTypeName","src":"3137:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47062,"initialValue":{"arguments":[{"id":47060,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"3196:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47058,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"3167:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":47059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3172:23:70","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29012,"src":"3167:28:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":47061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3167:37:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"3133:71:70"},{"assignments":[47064],"declarations":[{"constant":false,"id":47064,"mutability":"mutable","name":"deltaTotalLiquidity","nameLocation":"3222:19:70","nodeType":"VariableDeclaration","scope":47083,"src":"3214:27:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47063,"name":"uint256","nodeType":"ElementaryTypeName","src":"3214:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47068,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47065,"name":"preTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47034,"src":"3244:17:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":47066,"name":"postTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47057,"src":"3264:18:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3244:38:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3214:68:70"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47070,"name":"preLiquidityBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47023,"src":"3314:19:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":47071,"name":"deltaTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47064,"src":"3336:19:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3314:41:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":47077,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3394:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_G3MDeallocateTest_$47085","typeString":"contract G3MDeallocateTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MDeallocateTest_$47085","typeString":"contract G3MDeallocateTest"}],"id":47076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3386:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47075,"name":"address","nodeType":"ElementaryTypeName","src":"3386:7:70","typeDescriptions":{}}},"id":47078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3386:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47079,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"3401:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47073,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"3369:4:70","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":47074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3374:11:70","memberName":"liquidityOf","nodeType":"MemberAccess","referencedDeclaration":29061,"src":"3369:16:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":47080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3369:40:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47069,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"3292:8:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":47081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3292:127:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47082,"nodeType":"ExpressionStatement","src":"3292:127:70"}]},"functionSelector":"9d897213","implemented":true,"kind":"function","modifiers":[{"id":47004,"kind":"modifierInvocation","modifierName":{"id":47003,"name":"init","nameLocations":["2675:4:70"],"nodeType":"IdentifierPath","referencedDeclaration":47523,"src":"2675:4:70"},"nodeType":"ModifierInvocation","src":"2675:4:70"}],"name":"test_G3M_deallocate_GivenY","nameLocation":"2639:26:70","parameters":{"id":47002,"nodeType":"ParameterList","parameters":[],"src":"2665:2:70"},"returnParameters":{"id":47005,"nodeType":"ParameterList","parameters":[],"src":"2680:0:70"},"scope":47085,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":46711,"name":"G3MSetUp","nameLocations":["118:8:70"],"nodeType":"IdentifierPath","referencedDeclaration":47524,"src":"118:8:70"},"id":46712,"nodeType":"InheritanceSpecifier","src":"118:8:70"}],"canonicalName":"G3MDeallocateTest","contractDependencies":[25560,29062,33820,37911,44392],"contractKind":"contract","fullyImplemented":true,"internalFunctionIDs":{"32083":1},"linearizedBaseContracts":[47085,47524,44852,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"G3MDeallocateTest","nameLocation":"97:17:70","scope":47086,"usedErrors":[30985,30992],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":70} \ No newline at end of file diff --git a/out/Deallocate.t.sol/LogNormalDeallocateTest.json b/out/Deallocate.t.sol/LogNormalDeallocateTest.json deleted file mode 100644 index 2ed04793..00000000 --- a/out/Deallocate.t.sol/LogNormalDeallocateTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"POOL_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TEST_SWAP_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolLiquidityToken","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_LogNormal_deallocate_GivenX","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_LogNormal_deallocate_GivenY","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"BisectionLib_InvalidBounds","inputs":[{"name":"lower","type":"uint256","internalType":"uint256"},{"name":"upper","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BisectionLib_RootOutsideBounds","inputs":[{"name":"lowerResult","type":"int256","internalType":"int256"},{"name":"upperResult","type":"int256","internalType":"int256"}]},{"type":"error","name":"Infinity","inputs":[]},{"type":"error","name":"Min","inputs":[]},{"type":"error","name":"NegativeInfinity","inputs":[]},{"type":"error","name":"OutOfBounds","inputs":[]}],"bytecode":{"object":"0x34620000b757600160ff196000541617600055610120604052670de0b6b3a7640000806080528060a0528060c052660aa87bee538000908160e052306101005280601a5580601b55601c55601d553060018060a01b0319601e541617601e5562000070670de0b6b3a7640000601f55565b62000082670de0b6b3a7640000602055565b620000a7620000a1601f546020546200009a62000118565b91620002ea565b620001ef565b60405161b0379081620017578239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b60a081019081106001600160401b03821117620000ee57604052565b620000bc565b601f909101601f19168101906001600160401b03821190821017620000ee57604052565b604051906200012782620000d2565b601a548252601b546020830152601c546040830152601d546060830152601e546001600160a01b03166080830152565b90600182811c9216801562000189575b60208310146200017357565b634e487b7160e01b600052602260045260246000fd5b91607f169162000167565b601f8111620001a1575050565b60009060216000526020600020906020601f850160051c83019410620001e4575b601f0160051c01915b828110620001d857505050565b818155600101620001cb565b9092508290620001c2565b80519091906001600160401b038111620000ee576200021b816200021560215462000157565b62000194565b602080601f8311600114620002625750819062000251939460009262000256575b50508160011b916000199060031b1c19161790565b602155565b0151905038806200023c565b6021600052601f198316949091907f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b570926000905b878210620002d1575050836001959610620002b7575b505050811b01602155565b015160001960f88460031b161c19169055388080620002ac565b8060018596829496860151815501950193019062000296565b825160208401908151936040860191825162000307818862000c6a565b9162000314908462000c98565b6200031f9062001151565b90670de0b6b3a764000062000335819962001151565b6200034090620008b1565b056200034c906200131f565b90620003589162000d39565b620003639062000d5b565b6200036e9162000635565b620003799062000893565b90620003859162000931565b620003909062000976565b6200039b90620009b6565b8503858111620004f257620003b1908562000c98565b9486519351925191620003c5838562000c6a565b94620003d19162000c98565b620003dc9062001151565b92620003e89062001151565b620003f390620008b1565b05620003ff906200131f565b906200040b9162000d39565b620004169062000d5b565b620004219162000a38565b6200042c9062000893565b90620004389162000931565b620004439062000976565b6200044e90620009b6565b828451906200045d9162000cc9565b90620004699162000cc9565b9183620004798183868662000652565b91620004879285856200076c565b604080516020808201949094528082019490945260608085019290925284516080808601919091529285015160a085015284015160c084015283015160e0830152909101516001600160a01b0316610100808301919091528152620004ef61012082620000f4565b90565b634e487b7160e01b600052601160045260246000fd5b919082039182116200051657565b620004f2565b9081670de0b6b3a7640000019182126001166200051657565b9081670b68df18e471fbff1901918212156001166200051657565b90816714a8454c19e1ac00019182126001166200051657565b9081670fc10e01578277ff1901918212156001166200051657565b90816703debd083b8c7c00019182126001166200051657565b9081670295d400ea3257ff1901918212156001166200051657565b9081670157d8b2ecc70800019182126001166200051657565b90816705310aa7d5213000019182126001166200051657565b9081670de0cc3d15610000019182126001166200051657565b9081672005fe4f268ea000019182126001166200051657565b9081670dc5527f642c2000019182126001166200051657565b919091600083820193841291129080158216911516176200051657565b9092828210156200072757620004ef93620006dd9284670de0b6b3a764000091826200067f838362000cf6565b106200071057506001600160ff1b039590505b835191620006ac620006a5838562000d39565b8562000cf6565b10620006e357506001600160ff1b0392620006d6925090505b604060208201519101519062000c6a565b9262000635565b62000635565b620006d692620006fc6200070392620007099462000d39565b9062000cf6565b62000a52565b91620006c5565b6200072091620007039162000cf6565b9462000692565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b929493859391926000808212156200082e575b8082126200080b575091620007f66200080592620004ef979895945b604051958694602086019260e092959491956101008501968552602085015260408401528051606084015260208101516080840152604081015160a0840152606081015160c0840152608060018060a01b0391015116910152565b03601f198101835282620000f4565b62000dbd565b9662000818915062000d19565b95620008278288868662000652565b906200077f565b8082136200084f575091620007f66200080592620004ef979895946200079b565b9490506103e980820291600191818404149015178116156200088f576103e8600019830104019015150293620008888286868662000652565b906200082e565b8580fd5b90670de0b6b3a7640000918281029281840514901517156200051657565b90671bc16d674ec80000918281029281840514901517156200051657565b60008190039190600160ff1b811460011662000516576000198305036200051657565b90633b9aca00918281029281840514901517156200051657565b818102929160008212600160ff1b821416620005165781840514901517156200051657565b81156200094e57600160ff1b811460001983141662000516570590565b634e487b7160e01b600052601260045260246000fd5b600160ff1b8114620005165760000390565b620009b2620009ac620009a66713a04bbdfdc9be886200099f671bc16d674ec800009562000893565b0562000964565b62000efb565b62000893565b0590565b60008112620009c25790565b60405162461bcd60e51b815260206004820152601060248201526f746f55696e743a206e6567617469766560801b6044820152606490fd5b9067119000ab100ffbff1982019182136001166200051657565b90671bc16d674ec80000600083820393128184128116918413901516176200051657565b818103929160001380158285131691841216176200051657565b6706f05b59d3b20000811462000c6457670de0b6b3a76400008082121562000c0a57811562000c2e5760018260011b916002938305600203620005165760008312801562000c52575b62000c4057821562000c0a57671bc16d674ec80000831462000c2e57821291821562000c1c57925b62000ace84620015a5565b801562000c0a5762000b5a62000b0a62000b0462000afe62000af862000b60959997969962001151565b62001509565b62001052565b620008f2565b62000b5462000b2362000b1d83620015d1565b62000603565b62000b4d62000b4762000b4062000b3a86620015fd565b6200061c565b8562001583565b6200051c565b9062001648565b62000a38565b62001532565b936000925b81841062000ba05750505050620004ef9162000b899160001462000b8f57620014b5565b62000964565b62000b9a9062000964565b620014b5565b909162000bff8662000bf862000bbd8562000b5486999b62000efb565b62000b4d62000be562000bdf62000bd962000b89878062001583565b6200131f565b6200155b565b62000bf1838662001583565b9062000a38565b9062000635565b950192919062000b65565b6040516307a0212760e01b8152600490fd5b62000c279062000a14565b9262000ac3565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec80000831362000a9b565b50600090565b9062000c769062001052565b633b9aca00908181029181830414901517156200051657620004ef9162000d39565b90670de0b6b3a76400009182810292818404149015178115151615620000b757600190600019830104019015150290565b818102918183041490151760011615620000b7576001670de0b6b3a7640000600019830104019015150290565b670de0b6b3a76400009081810291818304149015178215151615620000b7570490565b6103e790818102918183041490151760011615620000b7576103e8900490565b818102918183041490151760011615620000b757670de0b6b3a7640000900490565b6706f05b59d3b20000908082029182041460011615620000b757670de0b6b3a7640000900490565b670de0b6b3a764000090818102918183041490151760011615620000b757671bc16d674ec80000900490565b919082018092116200051657565b6000939291849183821162000edb5762000dd88282620016d3565b62000de48583620016d3565b600062000df282846200090c565b1362000ebc575062000e078386979662000508565b60019460009186805b62000e22575b50505050505050509050565b1562000e92575b508596979850809162000e4762000e418b8862000daf565b60011c90565b9962000e548b87620016d3565b908362000e6287846200090c565b1362000e8557505089925b8762000e7a888662000508565b920193999862000e10565b8b97509094509262000e6d565b6014108062000eb1575b1562000ea9578862000e29565b808062000e16565b506040821062000e9c565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b80156200104557675698eef06670000081121562000c6457675698eef0666fffff19811315620010385760006200102562000f3683620012f0565b62000fe362000bd962000f5762000f5162000b478562000d83565b62001628565b92620006dd6200101f62001019620010116200100a6200100462000ffd62000ff762000ff062000fea8d62000fe362000fdd62000fd662000fd062000b4062000fca62000fc362000fbd62000fb662000fb08a620014dd565b62000535565b8962001583565b62000550565b8762001583565b62000569565b62000584565b8362001583565b6200059d565b9062001583565b620005b8565b8c62001583565b620005d1565b8a62001583565b620005ea565b8862001583565b938062001583565b620008cf565b620009fa565b911215620004ef57620004ef9062000a14565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b60b581600160881b81101562001100575b80690100000000000000000062010000921015620010f2575b65010000000000811015620010e4575b6301000000811015620010d6575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916200109a565b60201c9160101b916200108c565b60401c9160201b916200107c565b5068b500000000000000009050608082901c62001063565b156200112057565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284906200117f6000821362001118565b711340daa0d5f769dba1915cef59f0815a55066200119d826200166b565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d019160016c0504a838426634cdd8738f543560611b0319916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b600160ff1b81146200130d576000811215620004ef571960010190565b604051634d2d75b160e01b8152600490fd5b680248ce36a70cb26b3e1981131562000c6457680755bf798b4a1bf1e581121562001481576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b3989179d835ebba824c98fb31b83b2ca45c0000000000000000000000006060916b8000000000000000000000008582851b0501831d94850290036e0587f503bb6ea29d25fcb740196450816c10fe68e7fd37d0007b713f7650810102841d936e05180bb14799ab47a8a8cb2a527d57836e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028a1d0102881d0102861d0102841d0102821d01946d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be88908082029182051460011615620000b757670de0b6b3a7640000900590565b67025f0fe105a3140090818102918183051490151760011615620000b757670de0b6b3a7640000900590565b671bc16d674ec7ffff19818102916001918305141615620000b757670de0b6b3a7640000900590565b6709d028cc6f205fff19818102916001918305141615620000b757670de0b6b3a7640000900590565b670fa8cedfc2adddfa908082029182051460011615620000b757670de0b6b3a7640000900590565b818102918183051490151760011615620000b757670de0b6b3a7640000900590565b670de0b6b3a764000090818102918183051490151760011615620000b757671bc16d674ec80000900590565b6703c1665c7aab200090818102918183051490151760011615620000b757670de0b6b3a7640000900590565b669f32752462a00090818102918183051490151760011615620000b757670de0b6b3a7640000900590565b60018115151615620000b7576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a76400009081810291818305149015178215151615620000b7570590565b6200167881151562001118565b8060018060801b031060071b81811c60018060401b031060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b8080518101039161010092838112620000b75760208301519360a0604085015192605f190112620000b757604051936200170d85620000d2565b6080810151855260a0810151602086015260c0810151604086015260e081015160608601520151936001600160a01b0385168503620000b757620004ef9460808501526200065256fe60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e414620000ac5750508063620a260714620000a65780636830230014620000a0578063b3fcee79146200009a578063ba414fa61462000094578063e0d7d0e9146200008e578063e21485ad14620000885763fa7626d4146200008257600080fd5b620009c4565b6200088c565b6200086c565b62000843565b62000783565b620005c9565b620005a5565b346200057557816003193601126200057557620000c862001247565b805161106b8082019067ffffffffffffffff9280831084841117620005515780620000fb6200177b948486843962000aa7565b039086f080156200052957601580546001600160a01b0319166001600160a01b0390921691909117905583519181830183811085821117620005515783926200014692843962000af3565b039084f080156200052957601680546001600160a01b0319166001600160a01b039283161790556015546200018391165b6001600160a01b031690565b803b15620005905782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af18015620005295762000579575b506016548490620001e2906001600160a01b031662000177565b91823b156200057557845190815230600482015268056bc75e2d631000006024820152918290604490829084905af18015620005295762000557575b5060155462000236906001600160a01b031662000177565b6016546200024d906001600160a01b031662000177565b90835191610597908184019284841086851117620005515784936200029a936200aa6b86396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200052957601480546001600160a01b0319166001600160a01b039092169190911790558151612f21808201908282108483111762000551578291620002f091620027e684396000815260200190565b039084f080156200052957601380546001600160a01b0319166001600160a01b03929092169182179055620003259062000177565b825190611bc48083019183831085841117620005515783926200035b9262008ea785396001600160a01b03909116815260200190565b039084f080156200052957601780546001600160a01b0319166001600160a01b03929092169182179055620003909062000177565b8251916137a080840192909183118484101762000551578392620003c7926200570785396001600160a01b03909116815260200190565b039083f09081156200052957620003fe6200046a9260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b60155462000415906001600160a01b031662000177565b6013546200042c906001600160a01b031662000177565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200052957620004e29385936200052f575b506016546200049b906001600160a01b031662000177565b6013549091908790620004b7906001600160a01b031662000177565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200052957620004f6578280f35b816200051a92903d1062000521575b62000511818362000a4e565b81019062000b33565b5081808280f35b503d62000505565b62000ae7565b6200054990843d8611620005215762000511818362000a4e565b508662000483565b620009e9565b80620005676200056e92620009ff565b8062000594565b836200021e565b5080fd5b80620005676200058992620009ff565b84620001c8565b8380fd5b6000910312620005a057565b600080fd5b34620005a0576000366003190112620005a0576020604051660aa87bee5380008152f35b34620005a0576000806003193601126200078057737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000575576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620005295762000769575b50601754819060809062000705906200064b906001600160a01b031662000177565b601554620006c19062000667906001600160a01b031662000177565b601654620006b19062000683906001600160a01b031662000177565b91620006a16200069262000a71565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6001600160a01b03166040830152565b620006cb62000b4d565b6060820152601354620006e7906001600160a01b031662000177565b906040519485809481936305157c7f60e21b83526004830162000cc0565b03925af1801562000529576200072391839162000730575b50601955565b6200072d62000d6f565b80f35b62000757915060803d60801162000761575b6200074e818362000a4e565b81019062000c51565b505050386200071d565b503d62000742565b80620005676200077992620009ff565b3862000629565b80fd5b34620005a0576000806003193601126200078057737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000575576040516372eb5f8160e11b8152600060048201529082908290602490829084905af1801562000529576200082c575b50601754819060809062000805906200064b906001600160a01b031662000177565b03925af18015620005295762000822918391620007305750601955565b6200072d620010af565b80620005676200083c92620009ff565b38620007e3565b34620005a0576000366003190112620005a0576020620008626200116f565b6040519015158152f35b34620005a0576000366003190112620005a0576020601954604051908152f35b34620005a0576020366003190112620005a05760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa908115620005295760009162000910575b60c08201516200090c906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e011620009bb575b816200092e60e0938362000a4e565b81010312620005a057620008f260c06200090c92620009ae8260405192620009568462000a14565b620009618162000a92565b8452620009716020820162000a92565b6020850152620009846040820162000a92565b6040850152606081015160608501526080810151608085015260a081015160a08501520162000a92565b82820152925050620008de565b3d91506200091f565b34620005a0576000366003190112620005a057602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200055157604052565b60e0810190811067ffffffffffffffff8211176200055157604052565b6080810190811067ffffffffffffffff8211176200055157604052565b90601f8019910116810190811067ffffffffffffffff8211176200055157604052565b604051906080820182811067ffffffffffffffff8211176200055157604052565b51906001600160a01b0382168203620005a057565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b6040513d6000823e3d90fd5b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b90816020910312620005a057518015158103620005a05790565b6040519060006021549060018260011c926001811691821562000c46575b60209160208610841462000c325785885287949360208601939291811562000c11575060011462000baa575b50505062000ba89250038362000a4e565b565b92509362000bda60216000527f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b57090565b946000935b82851062000bfa5750505062000ba893500138808062000b97565b865485850152958601958895509381019362000bdf565b9250505062000ba89491925060ff19168252151560051b0138808062000b97565b634e487b7160e01b85526022600452602485fd5b93607f169362000b6b565b9190826080910312620005a0578151916020810151916060604083015192015190565b60005b83811062000c885750506000910152565b818101518382015260200162000c77565b9060209162000cb48151809281855285808601910162000c74565b601f01601f1916010190565b60a0606062000d039360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062000c99565b90565b90816060910312620005a0578051916040602083015192015190565b90816020910312620005a0575190565b60409062000d0393928152816020820152019062000c99565b9190820391821162000d5957565b634e487b7160e01b600052601160045260246000fd5b60185462000d86906001600160a01b031662000177565b601954604080516379869bf960e11b8152600480820184905267016345785d8a00006024830152936060939190849082908180604481015b03915afa918215620005295760009560009260009462001083575b5060135462000df1906001600160a01b031662000177565b8551633be6a34160e01b8082523084830190815260208181018790529a92969193919291908b90889081906040010381845afa96871562000529576000976200105f575b508851956333854efd60e21b968781528b818062000e5a858b83019190602083019252565b0381865afa998a1562000529578c958c8f9360009d6200101b575b50519283019586526020860152604085015262000ec894939092919062000eab9084906060015b03601f19810185528462000a4e565b60008b51809681958294634eca17cd60e11b84528b840162000d32565b03925af18015620005295762000ff9575b5060135462000ef1906001600160a01b031662000177565b9260195494875191825288828062000f10898883019190602083019252565b0381885afa988915620005295762000f68998b9862000f469462000f3f9360009362000fc0575b505062000d4b565b9062000d4b565b9551908152309181019182526020820193909352919485928391829160400190565b03915afa918215620005295762000ba89360009362000f8a575b5050620015e1565b62000faf929350803d1062000fb8575b62000fa6818362000a4e565b81019062000d22565b90388062000f82565b503d62000f9a565b62000fe5929350803d1062000ff1575b62000fdc818362000a4e565b81019062000d06565b91505090388062000f37565b503d62000fd0565b6200101390883d8a1162000ff15762000fdc818362000a4e565b505062000ed9565b62000e9c919d50928897969594926200104b62000eab9562000ec89b3d8c1162000ff15762000fdc818362000a4e565b9150509e9250929495969798509262000e75565b6200107b9197508b3d8d1162000fb85762000fa6818362000a4e565b953862000e35565b9196509250620010a39150843d861162000ff15762000fdc818362000a4e565b91959091923862000dd9565b601854620010c6906001600160a01b031662000177565b60195460408051636237569f60e01b8152600480820184905267016345785d8a000060248301529360609391908490829081806044810162000dbe565b90600491630667f9d760e41b815262001126825180936020868501910162000c74565b010190565b3d156200116a573d9067ffffffffffffffff82116200055157604051916200115e601f8201601f19166020018462000a4e565b82523d6000602084013e565b606090565b6000805460081c60ff161562001189575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620011ab57505090565b8192506040518281620011e960208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b03620011fe601f199182810185528462000a4e565b6200122460405191826200121760208201968762001103565b0390810183528262000a4e565b51925af15062000d03620012376200112b565b6020808251830101910162000b33565b6040805161106b80820167ffffffffffffffff91838210838311176200055157836200127b6200177b938385843962000aa7565b0360009485f080156200052957601580546001600160a01b0319166001600160a01b039092169190911790558451918183018381108582111762000551578392620012c892843962000af3565b039083f080156200052957601680546001600160a01b0319166001600160a01b03928316179055601554620012fe911662000177565b803b15620015dd5783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af180156200052957620015c6575b506016546200135b906001600160a01b031662000177565b90813b156200059057845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af180156200052957620015af575b50601554620013b1906001600160a01b031662000177565b601654620013c8906001600160a01b031662000177565b908451916105979081840192848410868511176200055157849362001415936200aa6b86396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200052957601480546001600160a01b0319166001600160a01b03909216919091179055825190612f2180830191821183831017620005515782916200146b91620027e684396000815260200190565b039082f09182156200052957620014a2620015119360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b601554620014b9906001600160a01b031662000177565b601354909190620014d3906001600160a01b031662000177565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af192831562000529576200155c9486946200158d575b5060165462001542906001600160a01b031662000177565b601354909290620004b7906001600160a01b031662000177565b03925af18015620005295762001570575050565b816200158a92903d10620005215762000511818362000a4e565b50565b620015a790853d8711620005215762000511818362000a4e565b50386200152a565b8062000567620015bf92620009ff565b3862001399565b8062000567620015d692620009ff565b3862001343565b8280fd5b90808203620015ee575050565b6080806040938451937f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50836020968781526022888201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8982015261745d60f01b6060820152a1855190868252600a87830152690808115e1c1958dd195960b21b6060830152858201527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8938491a1845190858252600a8683015269080808081058dd1d585b60b21b606083015284820152a1737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620016f3575b50505061010061ff00196000541617600055565b8260006200175062001761602483979684975195818701908882526519985a5b195960d21b818901526001606089015260608852620017328862000a31565b519485928301976370ca10bb60e01b89525180928585019062000c74565b810103600481018452018262000a4e565b51925af150620017706200112b565b50388080620016df56fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c634300081600336080346200007a57601f620037a038819003918201601f19168301916001600160401b038311848410176200007f578084926020946040528339810103126200007a57516001600160a01b038116908190036200007a57600080546001600160a01b03191691909117905560405161370a9081620000968239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630420580a146101b7578063120649c5146101b2578063134ead12146101ad5780631e978cb0146101a8578063306db46b146101a3578063332266f31461019e5780633928ff97146101995780633b268d5d146101945780633b4d10301461018f5780634e817fd91461018a5780634fd67c58146101855780635eb408fc146101805780636237569f1461017b5780636d652299146101765780637f17409c1461017157806381b5fac21461016c578063902ecaa214610167578063a8c62e7614610162578063af4e437f1461015d578063b09d04e514610158578063cb1f553214610153578063ce153bf41461014e578063e94716d514610149578063ee3e8cfb14610144578063f30d37f21461013f5763f9c282111461013a57600080fd5b610aff565b610acf565b610a9e565b610a63565b610a27565b6109e2565b6109af565b610993565b61096a565b610941565b610914565b610872565b610856565b6107e9565b6107cd565b6107a4565b610788565b610759565b61071e565b61048d565b610436565b610407565b6103e2565b610354565b61028e565b610218565b60005b8381106101cf5750506000910152565b81810151838201526020016101bf565b906020916101f8815180928185528580860191016101bc565b601f01601f1916010190565b9060206102159281815201906101df565b90565b3461026b57604036600319011261026b57610267604051600260208201526004356040820152602435606082015260608152610253816102e9565b6040519182916020835260208301906101df565b0390f35b600080fd5b608090600319011261026b5760043590602435906044359060643590565b3461026b5760206102aa6102a136610270565b92919091610b4d565b604051908152f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff8211176102e457604052565b6102b2565b6080810190811067ffffffffffffffff8211176102e457604052565b6060810190811067ffffffffffffffff8211176102e457604052565b90601f8019910116810190811067ffffffffffffffff8211176102e457604052565b6001600160a01b0381160361026b57565b3461026b5760e036600319011261026b5760a036604319011261026b576102676103bc604051610383816102c8565b60443581526064356020820152608435604082015260a435606082015260c4356103ac81610343565b608082015260243560043561139a565b60405191829182610204565b606090600319011261026b57600435906024359060443590565b3461026b5760206102aa6104016103f8366103c8565b91929092610f06565b91611583565b3461026b5760206102aa61041a366103c8565b9061042d61042784610f06565b936110d9565b92919091611670565b3461026b5760206102aa610449366103c8565b9061045661042784610f06565b9290506119da565b8015150361026b57565b90926080926102159594151583526020830152604082015281606082015201906101df565b3461026b57606036600319011261026b5761050360243561061f6004356104b38361045e565b604435926104bf610c57565b936104c8610c57565b946104d2846110d9565b60208496939592960194604096878601928352865284526104f287610f06565b998a9185519087519051918a611009565b921561069657928261054a6105519361054361053e61053661056f9861053160606105979d9c0151866125a2565b6125a2565b8651906125f8565b610c9d565b9351610cb0565b8a52610cb0565b61056385890191808352895188610c4a565b90885190519087610b4d565b9061058e6105836020890193808552610c9d565b808452825111610d31565b51905190610d24565b945b84519260c06020870151848801926105df8451976105d18851998a958693602085016040919493926060820195825260208201520152565b03601f198101845283610321565b600054610602906105f6906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610dbf565b03915afa94851561069157600095610651575b509061064691610267959651905190611583565b905194859485610468565b61026795509061067c610646939260c03d60c01161068a575b6106748183610321565b810190610d88565b505050505095509091610632565b503d61066a565b610b41565b826106df610718966106d2610704956106cb61053e6106c361070f9a61053160606106fc9b0151866125a2565b8551906125f8565b9251610cb0565b9260208d01938452610cb0565b6106f1888c019180835283518b610de3565b915190519089610df0565b808952610c9d565b808852825111610cbd565b51855190610d24565b94610599565b3461026b57604036600319011261026b57610267604051600460208201526004356040820152602435606082015260608152610253816102e9565b3461026b57602036600319011261026b5760206102aa60043561040161077e826110d9565b9291939050610f06565b3461026b5760206102aa61079e6103f8366103c8565b91611b9c565b3461026b5760206102aa6107b7366103c8565b906107c461042784610f06565b92919091611c16565b3461026b5760206102aa6107e036610270565b92919091610df0565b3461026b57604036600319011261026b5761083860043561026761081a61080f836110d9565b919050602435611f7a565b939092848461083261082b84610f06565b8383611583565b92610b4d565b92604051938493846040919493926060820195825260208201520152565b3461026b57600036600319011261026b57602060405160008152f35b3461026b57604036600319011261026b576004356108c06102676108a2610898846110d9565b9150602435611fa7565b92909383856108ba6108b384610f06565b8383611b9c565b92610df0565b91604051938493846040919493926060820195825260208201520152565b805182526020808201519083015260408082015190830152606080820151908301526080908101516001600160a01b0316910152565b3461026b57602036600319011261026b5760a0610932600435610f06565b61093f60405180926108de565bf35b3461026b5760206102aa610954366103c8565b9061096161042784610f06565b92909150611fce565b3461026b57600036600319011261026b576000546040516001600160a01b039091168152602090f35b3461026b5760206102aa6109a636610270565b92919091611009565b3461026b57602036600319011261026b576102676040516001602082015260043560408201526040815261025381610305565b3461026b57602036600319011261026b57610267600435610a0281610343565b60408051600560208201526001600160a01b0390921682820152815261025381610305565b3461026b57602036600319011261026b57610267610a466004356110d9565b604080519384526020840192909252908201529081906060820190565b3461026b57604036600319011261026b57610267604051600360208201526004356040820152602435606082015260608152610253816102e9565b3461026b57604036600319011261026b5761083860043561026761081a610ac4836110d9565b919050602435611fa7565b3461026b57604036600319011261026b576004356108c06102676108a2610af5846110d9565b9150602435611f7a565b3461026b57600036600319011261026b57602060405160788152f35b9081602091031261026b575190565b6040906102159392815281602082015201906101df565b6040513d6000823e3d90fd5b610b85610bee9493929361053184610b7e610b79610b74610b6d88610f06565b809661230a565b61237f565b6123b2565b92516125a2565b916020604051610bbc81610bae85888a8785016040919493926060820195825260208201520152565b03601f198101835282610321565b600054610bd3906105f6906001600160a01b031681565b6040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093610c15575b50610c0f90610f06565b936111f1565b610c0f919350610c3c9060203d602011610c43575b610c348183610321565b810190610b1b565b9290610c05565b503d610c2a565b9161040161021593610f06565b604051906060820182811067ffffffffffffffff8211176102e45760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610cab57565b610c87565b91908201809211610cab57565b15610cc457565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b6103e719810191908211610cab57565b91908203918211610cab57565b15610d3857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c091031261026b578151610d9f8161045e565b9160208101519160408201519160608101519160a0608083015192015190565b610215939260609260018060a01b03168252602082015281604082015201906101df565b9161079e61021593610f06565b92610b79610b74610e0d92949394610e0787610f06565b90612f44565b92670de0b6b3a7640000938403938411610cab57610e2e610e5794836125a2565b916020604051610bbc81610bae8589898785016040919493926060820195825260208201520152565b03915afa9182156106915761021595600093610e7e575b50610e7890610f06565b93611e24565b610e78919350610e9c9060203d602011610c4357610c348183610321565b9290610e6e565b91908260a091031261026b57604051610ebb816102c8565b608080829480518452602081015160208501526040810151604085015260608101516060850152015191610eee83610343565b0152565b9060a08282031261026b5761021591610ea3565b90604051610f13816102c8565b600090818152816080602092828482015282604082015282606082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610691578092610f7a575b506102159293508082518301019101610ef2565b9091503d8082863e610f8c8186610321565b840190828583031261100257845167ffffffffffffffff9586821161100557019082601f830112156110025781519586116102e45760405192610fd8601f8801601f1916860185610321565b86845284878401011161100257506102159394610ffa918480850191016101bc565b908392610f66565b80fd5b8280fd5b61105d939192602060405161103781610bae87868a8785016040919493926060820195825260208201520152565b60018060a01b03600054166040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093611084575b5061107e90610f06565b936121b4565b61107e9193506110a29060203d602011610c4357610c348183610321565b9290611074565b9081602091031261026b575161021581610343565b9081606091031261026b578051916040602083015192015190565b90600460206110f56105f66105f660005460018060a01b031690565b604051632bee84f160e21b815292839182905afa928315610691576111409360609260009161119d575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156106915760008093600093611166575b50929190565b9193505061118c915060603d606011611196575b6111848183610321565b8101906110be565b9290929138611160565b503d61117a565b6111bf915060203d6020116111c5575b6111b78183610321565b8101906110a9565b3861111f565b503d6111ad565b6111ef9360609296959361010083019783526020830152604082015201906108de565b565b929360009385929185851215611367575b8585126113485790610bae611224925b604096604051958694602086016111cc565b81859285968281116113255761123a818561337f565b92611245818661337f565b88611250828761152f565b136113045750906112649197969297610d24565b60019591829187805b61127f575b5050505050505050505090565b156112e0575b5086979850819261129f6112998b89610cb0565b60011c90565b996112aa8b8861337f565b90846112b6888461152f565b136112d457505089935b886112cb8987610d24565b9201949961126d565b8b9850909550936112c0565b601410806112fb575b156112f45788611285565b8080611272565b508083106112e9565b6040516306f1be5d60e21b8152600481018690526024810191909152604490fd5b604051633082dfdb60e11b81526004810191909152602481019290925250604490fd5b935091611354906125ce565b91611361848385846124a9565b93611202565b85851361137b5790610bae61122492611212565b935094611387906123f5565b94611394848388846124a9565b93611367565b916113ab610b79610b748385612f44565b91670de0b6b3a7640000928303928311610cab57611402826113ee6113e3610b79610b74846113dd6114209a8c6125f8565b9761230a565b6105318584516125a2565b926113fb8282868a6124a9565b84886121b4565b906040519460208601526040850152606084015260808301906108de565b6101008152610120810181811067ffffffffffffffff8211176102e45760405290565b90670de0b6b3a764000060008382039312818412811691841390151617610cab57565b90671bc16d674ec8000060008382039312818412811691841390151617610cab57565b9067119000ab100ffbff198201918213600116610cab57565b81810392916000138015828513169184121617610cab57565b90670de0b6b3a764000091828102928184051490151715610cab57565b90671bc16d674ec8000091828102928184051490151715610cab57565b90633b9aca0091828102928184051490151715610cab57565b60008190039190600160ff1b8114600116610cab57600019830503610cab57565b818102929160008212600160ff1b821416610cab578184051490151715610cab57565b811561156d57600160ff1b8114600019831416610cab570590565b634e487b7160e01b600052601260045260246000fd5b9190916115be60208301936115b885516115b06115a66040880192835190612843565b975182519061286c565b905190612414565b92612435565b92670de0b6b3a76400008085121561163c5760008513156116315760008582039512818612811691861390151617610cab5761162561162a92611620611612610b799461160d6102159961288b565b61152f565b670de0b6b3a7640000900590565b6114a2565b612917565b90516125a2565b505050505060001990565b5050505050600090565b90959492936111ef94608093610120840198845260208401526040830152606082015201906108de565b909291828651602088015160408901519060608a01519261169083612ac8565b6116999061185a565b936116a390611443565b906116ad8a612b86565b6116b68b611981565b6116bf91612c38565b6116c88b611981565b6116d184612bb5565b6116da916114a2565b6116e49088612c38565b6116ed91612cb5565b6116f690612cd3565b9361170084612fbb565b611709906114d8565b670de0b6b3a7640000900561171d90612917565b9061172791612c38565b61173090612c67565b611739906119c9565b848661174486612c09565b9061174e91612c38565b9061175891612c38565b611761916119ad565b61176a90612917565b826117758c84612c38565b9061177f91612c38565b61178891612c38565b6117918b611981565b61179a84612bb5565b6117a3916114a2565b6117ac91612cb5565b956117b691612c38565b906117c090611993565b6117c991612c38565b926117d391612c38565b6117dc90612c8e565b906117e6916114a2565b6117ef90612e24565b6117f891612c38565b61180186612b86565b61180a91612cb5565b90611814846119c9565b9061181e916119ad565b90611828916119ad565b60001361184f576102159561184a93610bae9260405196879560208701611646565b61264d565b505050505050600090565b90633b9aca0091828102928184041490151715610cab57565b9081672005fe4f268ea00001918212600116610cab57565b9081670dc5527f642c200001918212600116610cab57565b9081670de0b6b3a764000001918212600116610cab57565b9081670b68df18e471fbff190191821215600116610cab57565b90816714a8454c19e1ac0001918212600116610cab57565b9081670fc10e01578277ff190191821215600116610cab57565b90816703debd083b8c7c0001918212600116610cab57565b9081670295d400ea3257ff190191821215600116610cab57565b9081670157d8b2ecc7080001918212600116610cab57565b90816705310aa7d521300001918212600116610cab57565b9081670de0cc3d1561000001918212600116610cab57565b90816103e801918212600116610cab57565b9081670de0b6b3a763ffff190191821215600116610cab57565b91909160008382019384129112908015821691151617610cab57565b600160ff1b8114610cab5760000390565b939290919280519160208201519060408301519260600151936119fc84612ac8565b611a059061185a565b94611a0f90611443565b9182611a1a88612b86565b611a2489846119ad565b611a2d91612c38565b611a3789846119ad565b611a418385612c38565b611a4a916114a2565b611a54908b612c38565b611a5d91612cb5565b611a6690612cd3565b95611a7086612fbb565b611a79906114d8565b670de0b6b3a76400009005611a8d90612917565b90611a9791612c38565b611aa090612c67565b611aa9906119c9565b8688611ab488612c09565b90611abe91612c38565b90611ac891612c38565b611ad1916119ad565b611ada90612917565b81611ae58a86612c38565b90611aef91612c38565b611af891612c38565b91611b0389826119ad565b91611b0d91612c38565b611b16916114a2565b611b1f91612cb5565b96611b2991612c38565b90611b3390611993565b611b3c91612c38565b92611b4691612c38565b611b4f90612c8e565b90611b59916114a2565b611b6290612e24565b611b6b91612c38565b90611b7590612b86565b611b7e91612cb5565b91611b88906119c9565b90611b92916119ad565b90610215916119ad565b919091611bda6020830191611bd4611bcc84516115b0611bc26040890192835190612843565b965182519061286c565b958551612414565b90612435565b670de0b6b3a7640000918282121561163c576000821315611631576102159461162a93611c106116259361160d610b799661288b565b056119ad565b909291855160208701516040880151606089015191611c3482612ac8565b611c3d9061185a565b92611c4790611443565b93611c5186612b86565b611c5a87611981565b611c6391612c38565b611c6d8983612c38565b611c7688611981565b611c7f91612c38565b611c88906119c9565b86611c938b85612c38565b611c9c90612bde565b90611ca691612c38565b611caf916119ad565b611cb891612cb5565b611cc1906119c9565b611cca90612cd3565b92611cd483612fbb565b611cdd906114d8565b670de0b6b3a76400009005611cf190612917565b90611cfb91612c38565b611d0490612c67565b611d0d906119c9565b8385611d1885612c09565b90611d2291612c38565b90611d2c91612c38565b611d35916119ad565b611d3e90612917565b85611d49888a612c38565b90611d5391612c38565b611d5c91612c38565b90611d6687611981565b611d6f87612bb5565b611d78916114a2565b611d8191612c38565b611d8a91612cb5565b93611d958789612c38565b90611d9f90611993565b611da891612c38565b92611db291612c38565b611dbb90612c8e565b90611dc5916114a2565b611dce90612e24565b611dd791612c38565b611de083612b86565b611de991612cb5565b90611df390611993565b90611dfd916119ad565b60001361184f5761021595611e1f93610bae9260405196879560208701611646565b61276c565b929360009385929185851215611f47575b858512611f285790610bae611e5692604096604051958694602086016111cc565b818592859682811161132557611e6c81856133a0565b92611e7781866133a0565b88611e82828761152f565b13611304575090611e969197969297610d24565b60019591829187805b611eb0575050505050505050505090565b15611f0b575b50869798508192611eca6112998b89610cb0565b99611ed58b886133a0565b9084611ee1888461152f565b13611eff57505089935b88611ef68987610d24565b92019499611e9f565b8b985090955093611eeb565b60141080611f1f575b156112f45788611eb6565b50808310611f14565b935091611f34906125ce565b91611f41848383866124a9565b93611e35565b858513611f5b5790610bae611e5692611212565b935094611f67906123f5565b94611f74848383896124a9565b93611f47565b929190611f90611f8a82846125f8565b856125a2565b938103908111610cab57928103908111610cab5790565b929190611fb7611f8a82846125f8565b938101809111610cab57928101809111610cab5790565b9390929181516020830151916040840151936060015194611fee85612ac8565b611ff79061185a565b9561200190611443565b928361200c89612b86565b6120168a856119ad565b61201f91612c38565b6120298584612c38565b6120338b866119ad565b61203c91612c38565b612045906119c9565b82856120518887612c38565b9061205b91612c38565b9061206591612c38565b61206e916119ad565b61207791612cb5565b612080906119c9565b61208990612cd3565b9661209387612fbb565b61209c906114d8565b670de0b6b3a764000090056120b090612917565b906120ba91612c38565b6120c390612c67565b6120cc906119c9565b87896120d789612c09565b906120e191612c38565b906120eb91612c38565b6120f4916119ad565b6120fd90612917565b816121088b8d612c38565b9061211291612c38565b61211b91612c38565b926121268a826119ad565b9161213091612c38565b612139916114a2565b61214291612c38565b61214b91612cb5565b9661215591612c38565b9061215f90611993565b61216891612c38565b9261217291612c38565b61217b90612c8e565b90612185916114a2565b61218e90612e24565b61219791612c38565b906121a190612b86565b6121aa91612cb5565b90611b9290611993565b9293600093859291858512156122d7575b8585126122b85790610bae6121e692604096604051958694602086016111cc565b8185928596828111611325576121fc81856133c2565b9261220781866133c2565b88612212828761152f565b136113045750906122269197969297610d24565b60019591829187805b612240575050505050505050505090565b1561229b575b5086979850819261225a6112998b89610cb0565b996122658b886133c2565b9084612271888461152f565b1361228f57505089935b886122868987610d24565b9201949961222f565b8b98509095509361227b565b601410806122af575b156112f45788612246565b508083106122a4565b9350946122c4906123f5565b946122d1848784846124a9565b936121c5565b8585136122eb5790610bae6121e692611212565b9350916122f7906125ce565b91612304848484846124a9565b936122d7565b61237a6123756102159361236f61236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b9d6125f8565b612fbb565b97612fbb565b6114d8565b05612917565b612414565b612457565b906114a2565b6114bb565b611552565b6123ae6123756123a96713a04bbdfdc9be886123a3671bc16d674ec80000956114bb565b056119c9565b612e24565b0590565b600081126123bd5790565b60405162461bcd60e51b815260206004820152601060248201526f746f55696e743a206e6567617469766560801b6044820152606490fd5b6103e79081810291818304149015176001161561026b576103e8900490565b81810291818304149015176001161561026b57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517821515161561026b570490565b6706f05b59d3b2000090808202918204146001161561026b57670de0b6b3a7640000900490565b670de0b6b3a76400009081810291818304149015176001161561026b57671bc16d674ec80000900490565b90928282101561255d57610215936125269284670de0b6b3a764000091826124d18383612435565b1061254a57506001600160ff1b039590505b8351916124f96124f38385612414565b85612435565b1061252b57506001600160ff1b0392612520925090505b6040602082015191015190612843565b926119ad565b6119ad565b61252092611bd461253f9261254494612414565b61288b565b91612510565b6125579161253f91612435565b946124e3565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b81810291818304149015176001161561026b576001670de0b6b3a7640000600019830104019015150290565b6103e99081810291818304149015176001161561026b5760016103e8600019830104019015150290565b90670de0b6b3a7640000918281029281840414901517811515161561026b57600190600019830104019015150290565b6101008183031261026b57805192610215602083015193606060408501519401610ea3565b91906103e89260009360009183821161274b57612669816133e2565b6126738583613521565b600061267f828461152f565b1361272c5750612690859695610d14565b60019460009186805b6126aa575b50505050505050509050565b15612707575b50859697985080916126c56112998b88610cb0565b996126d08b87613521565b90836126dc878461152f565b136126fb57505089925b876126f18886610d24565b9201939998612699565b8b9750909450926126e6565b861080612721575b1561271a57886126b0565b808061269e565b50610100821061270f565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e89260009360009183821161274b5761278881613543565b61279285836136b3565b600061279e828461152f565b1361272c57506127af859695610d14565b60019460009186805b6127c85750505050505050509050565b15612825575b50859697985080916127e36112998b88610cb0565b996127ee8b876136b3565b90836127fa878461152f565b1361281957505089925b8761280f8886610d24565b92019399986127b8565b8b975090945092612804565b861080612838575b1561271a57886127ce565b50610100821061282d565b9061284d90612ac8565b633b9aca0090818102918183041490151715610cab5761021591612414565b61021591612365670de0b6b3a764000061235f61235a61236a95612fbb565b6706f05b59d3b20000811461291157670de0b6b3a764000090818112156128ff5780156128ed578060011b908105600203610cab576128c990612cd3565b906713a04bbdfdc9be8891808302928305146001161561026b5761021591056119c9565b6040516322ed598560e21b8152600490fd5b6040516307a0212760e01b8152600490fd5b50600090565b680248ce36a70cb26b3e1981131561291157680755bf798b4a1bf1e5811215612a67576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b91906101208382031261026b57825192602081015192610215604083015193608060608501519401610ea3565b60b581600160881b811015612b6f575b80690100000000000000000062010000921015612b62575b65010000000000811015612b55575b6301000000811015612b48575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b91612b0c565b60201c9160101b91612aff565b60401c9160201b91612af0565b5068b500000000000000009050608082901c612ad8565b671bc16d674ec8000081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e881810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e88082029160016000198210179181840514901517161561026b57670de0b6b3a7640000900590565b6713a04bbde78cc40081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b90911317161561026b57670de0b6b3a7640000900590565b670de0b6b3a764000090818102918205146001161561026b57671bc16d674ec80000900590565b670de0b6b3a764000090818102918205146001161561026b576713a04bbde78cc400900590565b670de0b6b3a76400009081810291820514821515161561026b570590565b600081128015612e13575b612e015780156128ff57671bc16d674ec8000081146128ed57670de0b6b3a76400008112908115612df257905b612d1482613189565b80156128ff57612d7d612d41612d3c612d37612d32612d8295612fbb565b61324a565b612ac8565b6114f5565b611620612d55612d50836131b4565b611873565b612d77612d72612d6c612d67866131df565b61188b565b856132c1565b6118a3565b90613228565b613272565b916000905b60028210612da257505015612d995790565b610215906119c9565b9092612dea81612de4612dba85611620600196612e24565b612d77612dda612dd5611625612dd087806132c1565b6119c9565b61329a565b61236f83866132c1565b906119ad565b930190612d87565b612dfb90611466565b90612d0b565b604051632d0483c560e21b8152600490fd5b50671bc16d674ec800008113612cde565b8015612f3757675698eef06670000081121561291157675698eef0666fffff19811315612f2a576000612f1a612e598361315c565b612ee2611625612e73612e6e612d728561247e565b613209565b92612526612f15612f10612f09612f03612efe612ef8612ef3612eed612ee88d612ee2612edd612ed7612ed2612d6c612ecd612ec7612ec2612ebc612eb78a6132e2565b6118bb565b896132c1565b6118d5565b876132c1565b6118ed565b611907565b836132c1565b61191f565b906132c1565b611939565b8c6132c1565b611951565b8a6132c1565b611969565b886132c1565b93806132c1565b61150e565b611489565b9112156102155761021590611466565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b61237a61237561021593612de461236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b15612f8a57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b886428490612fe760008213612f83565b711340daa0d5f769dba1915cef59f0815a55066130038261330d565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b600160ff1b8114613177576000811215610215571960010190565b604051634d2d75b160e01b8152600490fd5b670de0b6b3a76400009081810291818305149015176001161561026b57671bc16d674ec80000900590565b6703c1665c7aab20009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b669f32752462a0009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b6001811515161561026b576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029181830514901517821515161561026b570590565b671bc16d674ec7ffff1981810291600191830514161561026b57670de0b6b3a7640000900590565b6709d028cc6f205fff1981810291600191830514161561026b57670de0b6b3a7640000900590565b670fa8cedfc2adddfa90808202918205146001161561026b57670de0b6b3a7640000900590565b81810291818305149015176001161561026b57670de0b6b3a7640000900590565b67025f0fe105a314009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b613318811515612f83565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b906133966102159260208082518301019101612628565b93919290506124a9565b906133b76102159260208082518301019101612628565b9390509190916124a9565b906133d96102159260208082518301019101612628565b939290506124a9565b8051810160200190602001906133f791612a9b565b809193925051906020810151604082015191606001519261341783612ac8565b6134209061185a565b9361342a90611443565b9061343486612b86565b61343d87611981565b61344691612c38565b61344f87611981565b61345884612bb5565b613461916114a2565b61346b9089612c38565b61347491612cb5565b61347d90612cd3565b9361348784612fbb565b613490906114d8565b670de0b6b3a764000090056134a490612917565b906134ae91612c38565b6134b790612c67565b6134c0906119c9565b84866134cb86612c09565b906134d591612c38565b906134df91612c38565b6134e8916119ad565b6134f190612917565b826134fc8884612c38565b9061350691612c38565b61350f91612c38565b61351887611981565b611b0d84612bb5565b906135386102159260208082518301019101612a9b565b9493909291506119da565b80518101602001906020019061355891612a9b565b809192935051602082015190604083015192606001519361357884612ac8565b6135819061185a565b9461358b90611443565b9161359587612b86565b61359e88611981565b6135a791612c38565b6135b18383612c38565b6135ba89611981565b6135c391612c38565b6135cc906119c9565b846135d78585612c38565b6135e090612bde565b906135ea91612c38565b6135f3916119ad565b6135fc91612cb5565b613605906119c9565b61360e90612cd3565b9461361885612fbb565b613621906114d8565b670de0b6b3a7640000900561363590612917565b9061363f91612c38565b61364890612c67565b613651906119c9565b858761365c87612c09565b9061366691612c38565b9061367091612c38565b613679916119ad565b61368290612917565b8361368d898b612c38565b9061369791612c38565b6136a091612c38565b906136aa88611981565b61213085612bb5565b906136ca6102159260208082518301019101612a9b565b9493909250611fce56fea2646970667358221220f3e875cd9c43c4535da38090630f644037f96036f7dad55519e2d7d792047e4b64736f6c6343000816003360803461007457601f611bc438819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051611b3490816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b6109e4565b6109bb565b610814565b6107da565b610674565b6103dc565b6102e1565b61023d565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101df565b838082518301019101610a17565b9061010d6100ff600435610b92565b868082518301019101610a32565b92610d8d565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761015057604052565b61011e565b60c0810190811067ffffffffffffffff82111761015057604052565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101bd601f8201601f191660200184610171565b8294818452818301116101da578281602093846000960137010152565b600080fd5b9080601f830112156101da578160206101fa93359101610193565b90565b919082519283825260005b848110610229575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610208565b346101da5760003660031901126101da57604051604081019080821067ffffffffffffffff8311176101505761029a916040526009815268131bd9d39bdc9b585b60ba1b60208201526040519182916020835260208301906101fd565b0390f35b906040516080810181811067ffffffffffffffff821117610150576040526060600382948054845260018101546020850152600281015460408501520154910152565b346101da5760203660031901126101da5760043560005260016020526101c0604060002061030e8161029e565b9061031b6004820161029e565b906103bd61032b6008830161029e565b610393600c84015493600d60018060a01b03910154169461036d6040518098606080918051845260208101516020850152604081015160408501520151910152565b80516080880152602081015160a0880152604081015160c08801526060015160e0870152565b80516101008601526020810151610120860152604081015161014086015260600151610160850152565b6101808301526101a0820152f35b6001600160a01b038116036101da57565b346101da576060806003193601126101da576103f96004356103cb565b6024356044359167ffffffffffffffff83116101da576104206104829336906004016101df565b8161043c61042d85610b92565b60208082518301019101610a32565b60005490949061046290610456906001600160a01b031681565b6001600160a01b031690565b60405180809881946333854efd60e21b8352600483019190602083019252565b03915afa801561061457600091829583926105d9575b50806020806104ac93518301019101610a17565b939194909682861160001461054c5750916104ed826104e8836104e36104fe976104d96104f5988c610aa3565b908c0151906112af565b6112af565b6112db565b505b83610afe565b93828685610d8d565b9384601319129283610541575b61029a9394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b60148612935061050b565b90929091508187111561057b57610575826104e8836104e36104fe976104d96104f5988e610aa3565b506104ef565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9095506104ac92506106019150833d851161060d575b6105f98183610171565b810190610a17565b95919290959190610498565b503d6105ef565b610a81565b9060606003198301126101da57600435610632816103cb565b916024359160443567ffffffffffffffff928382116101da57806023830112156101da5781600401359384116101da57602484830101116101da576024019190565b346101da5761068236610619565b600054929350916001600160a01b031633036107c85761078661077e61042d610779956106c0608095610743976106b7610b67565b50810190610e8c565b6020819b949a9399929b01516106e0866000526001602052604060002090565b55604081015160046106fc876000526001602052604060002090565b015580516008610716876000526001602052604060002090565b01556060810151600c610733876000526001602052604060002090565b015501516001600160a01b031690565b600d610759846000526001602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610b92565b848385610d8d565b92836013191291826107bd575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b601485129250610793565b604051636853cba760e01b8152600490fd5b346101da5760606107ea36610619565b818094509492940103126101da5780359061078661077e61042d6040602085013594013595610b92565b346101da5761082236610619565b6000549093906001600160a01b0390811633036107c857610863610456600d610855876000526001602052604060002090565b01546001600160a01b031690565b9116036109a95761087683820182610b32565b61087f81610b47565b600181036108b857506108a261089d6108b392600c94953691610193565b610fc3565b926000526001602052604060002090565b01555b005b6108c181610b47565b600381036108fd5750906108e56108e06108f8936108b6953691610193565b610f19565b9290916000526001602052604060002090565b610f41565b61090681610b47565b6004810361094057509060046109276108e061093a946108b6963691610193565b9390926000526001602052604060002090565b01610f41565b61094981610b47565b6002810361096a57509060086109276108e061093a946108b6963691610193565b80610976600592610b47565b03610997576107596108a2610992600d936108b6963691610193565b610ef1565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101da5760003660031901126101da576000546040516001600160a01b039091168152602090f35b346101da5760203660031901126101da5761029a610a03600435610b92565b6040519182916020835260208301906101fd565b908160609103126101da578051916040602083015192015190565b908160a09103126101da57608060405191610a4c83610134565b805183526020810151602084015260408101516040840152606081015160608401520151610a79816103cb565b608082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610ab057565b610a8d565b91908201809211610ab057565b90671bc16d674ec8000060008382039312818412811691841390151617610ab057565b9067119000ab100ffbff198201918213600116610ab057565b81810392916000138015828513169184121617610ab057565b600160ff1b8114610ab05760000390565b600611156101da57565b908160209103126101da57356101fa81610b28565b60061115610b5157565b634e487b7160e01b600052602160045260246000fd5b60405190610b7482610134565b60006080838281528260208201528260408201528260608201520152565b610b9a610b67565b816000526001602052610bb8610bb3604060002061029e565b610ff8565b9160208201928352806000526001602052610bdc610bb3600860406000200161029e565b8252600c610c1d610c05610bb36004610bff866000526001602052604060002090565b0161029e565b92604085019384526000526001602052604060002090565b015490606083019182526040519383516020860152516040850152516060840152516080830152608060018060a01b039101511660a082015260a081526101fa81610155565b9081672005fe4f268ea00001918212600116610ab057565b9081670dc5527f642c200001918212600116610ab057565b9081670de0b6b3a764000001918212600116610ab057565b9081670b68df18e471fbff190191821215600116610ab057565b90816714a8454c19e1ac0001918212600116610ab057565b9081670fc10e01578277ff190191821215600116610ab057565b90816703debd083b8c7c0001918212600116610ab057565b9081670295d400ea3257ff190191821215600116610ab057565b9081670157d8b2ecc7080001918212600116610ab057565b90816705310aa7d521300001918212600116610ab057565b9081670de0cc3d1561000001918212600116610ab057565b91909160008382019384129112908015821691151617610ab057565b909282821015610e47576101fa93610e0a9284670de0b6b3a76400009182610db5838361130b565b10610e3457506001600160ff1b039590505b835191610ddd610dd7838561132d565b8561130b565b10610e0f57506001600160ff1b0392610e04925090505b6040602082015191015190611286565b92610d71565b610d71565b610e0492610e23610e2992610e2e9461132d565b9061130b565b6110b3565b91610df4565b610e4191610e299161130b565b94610dc7565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b80910361010081126101da5781359260208301359260a0604082013593605f1901126101da5760e060405191610ec183610134565b606081013583526080810135602084015260a0810135604084015260c081013560608401520135610a79816103cb565b6040818051810103126101da5780610f0e60206040930151610b28565b0151610456816103cb565b6060818051810103126101da57610f336020820151610b28565b606060408201519101519091565b919042821115610fb157610f57610bb38461029e565b9081845542600385015542830391838311610ab057610f7591610afe565b428314610f9b57600160ff1b8114600019831416610ab057600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101da5780610fe060206040930151610b28565b015190565b81810292918115918404141715610ab057565b606081015160208201518082146110735780421160001461106b57905b8103908111610ab05760408201908151600081136000146110485750611042906101fa9351925190610fe5565b90610ab5565b9261105f9250611059905193610b17565b90610fe5565b8103908111610ab05790565b504290611015565b50505190565b90633b9aca0091828102928184051490151715610ab057565b60008190039190600160ff1b8114600116610ab057600019830503610ab057565b6706f05b59d3b20000811461128057670de0b6b3a76400008082121561122a57811561124b5760018260011b916002938305600203610ab05760008312801561126f575b61125d57821561122a57671bc16d674ec80000831461124b57821291821561123c57925b611124846118db565b801561122a5761119661115561115061114b61114661119b959997969961146f565b61199c565b611379565b611079565b61119161116961116483611906565b610c63565b61118b61118661118061117b86611931565b610c7b565b85611a13565b610c93565b9061197a565b610afe565b6119c4565b936000925b8184106111d257505050506101fa916111bf916000146111c4576118b4565b610b17565b6111cd90610b17565b6118b4565b90916112208661121a6111ea8561119186999b611610565b61118b61120a6112056112006111bf8780611a13565b611730565b6119ec565b6112148386611a13565b90610afe565b90610d71565b95019291906111a0565b6040516307a0212760e01b8152600490fd5b61124590610ac2565b9261111b565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec8000083136110f7565b50600090565b9061129090611379565b633b9aca0090818102918183041490151715610ab0576101fa9161132d565b8181029181830414901517600116156101da576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101da57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101da570490565b8181029181830414901517600116156101da57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517600116156101da57671bc16d674ec80000900490565b60b581600160881b811015611420575b80690100000000000000000062010000921015611413575b65010000000000811015611406575b63010000008110156113f9575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916113bd565b60201c9160101b916113b0565b60401c9160201b916113a1565b5068b500000000000000009050608082901c611389565b1561143e57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642849061149b60008213611437565b711340daa0d5f769dba1915cef59f0815a55066114b782611a5f565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b801561172357675698eef06670000081121561128057675698eef0666fffff1981131561171657600061170661164583611ad1565b6116ce61120061165f61165a6111868561134e565b61195b565b92610e0a6117016116fc6116f56116ef6116ea6116e46116df6116d96116d48d6116ce6116c96116c36116be6111806116b96116b36116ae6116a86116a38a611a34565b610cab565b89611a13565b610cc5565b87611a13565b610cdd565b610cf7565b83611a13565b610d0f565b90611a13565b610d29565b8c611a13565b610d41565b8a611a13565b610d59565b88611a13565b9380611a13565b611092565b610ae5565b9112156101fa576101fa90610ac2565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b680248ce36a70cb26b3e1981131561128057680755bf798b4a1bf1e5811215611880576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be889080820291820514600116156101da57670de0b6b3a7640000900590565b670de0b6b3a7640000908181029181830514901517600116156101da57671bc16d674ec80000900590565b6703c1665c7aab2000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b669f32752462a000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b600181151516156101da576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a764000090818102918183051490151782151516156101da570590565b671bc16d674ec7ffff198181029160019183051416156101da57670de0b6b3a7640000900590565b6709d028cc6f205fff198181029160019183051416156101da57670de0b6b3a7640000900590565b670fa8cedfc2adddfa9080820291820514600116156101da57670de0b6b3a7640000900590565b8181029181830514901517600116156101da57670de0b6b3a7640000900590565b67025f0fe105a31400908181029181830514901517600116156101da57670de0b6b3a7640000900590565b611a6a811515611437565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b600160ff1b8114611aec5760008112156101fa571960010190565b604051634d2d75b160e01b8152600490fdfea2646970667358221220b596d744fe988e0f66eb3212b01d8a9e660acea43730ff108a9b5edd5f05d2b364736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a26469706673582212204cea5fd4a548aba707ee58f02c4136f24931cb068b8def7514004d288b64df5464736f6c63430008160033","sourceMap":"88:1669:77:-:0;;;1594:4:0;88:1669:77;;1594:4:0;88:1669:77;;;1594:4:0;88:1669:77;378:11:59;88:1669:77;378:11:59;:4:31;:11:59;88:1669:77;378:11:59;;362:159:79;378:11:59;;362:159:79;378:11:59;;;;362:159:79;378:11:59;509:4:79;362:159;378:11:59;;362:159:79;378:11:59;;;;;;;;509:4:79;378:11:59;;;;;;;;;;;;554:3:79;378:4:31;554:3:79;378:11:59;;554:3:79;586;378:4:31;362:159:79;378:11:59;;586:3:79;378:11:59;634:68:79;554:3;378:11:59;362:159:79;378:11:59;;;:::i;:::-;634:68:79;;:::i;:::-;378:11:59;:::i;:::-;88:1669:77;;;;;;;;;;;;;378:11:59;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;;;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;378:11:59;;;;-1:-1:-1;;;;;378:11:59;;;;;;;;;;:::o;:::-;88:1669:77;;378:11:59;;;;:::i;:::-;362:159:79;378:11:59;;;;;;;;;;;88:1669:77;378:11:59;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;378:11:59;634:68:79;-1:-1:-1;378:11:59;;-1:-1:-1;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;378:11:59;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;;;634:68:79;378:11:59;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:68:79;378:11:59;:::o;:::-;;;;-1:-1:-1;378:11:59;;;;;634:68:79;378:11:59;;-1:-1:-1;;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:68:79;378:11:59;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5320:526:37;378:11:59;;2443:12:37;;;378:11:59;;;2457:10:37;;;;378:11:59;;;2497:31:37;;;;:::i;:::-;1133:19:18;;;;;:::i;:::-;303:29:45;;;:::i;:::-;378:4:31;;1399:8:18;;;;:::i;:::-;:12;;;:::i;:::-;88:1669:77;1391:36:18;;;:::i;:::-;631:21;;;;:::i;:::-;;;;:::i;:::-;2657:36:37;;;:::i;:::-;2656:45;;;:::i;:::-;:68;;;;:::i;:::-;1009:16;;;:::i;:::-;1053:24;;;:::i;:::-;88:1669:77;;;;;;;1133:19:18;;;;:::i;:::-;378:11:59;;;;;;;3255:31:37;;;;;:::i;:::-;1133:19:18;;;;:::i;:::-;303:29:45;;;:::i;:::-;1399:8:18;;;;:::i;:::-;:12;;;:::i;:::-;88:1669:77;1391:36:18;;;:::i;:::-;631:21;;;;:::i;:::-;;;;:::i;:::-;3415:36:37;;;:::i;:::-;3414:45;;;:::i;:::-;:68;;;;:::i;:::-;1444:16;;;:::i;:::-;1488:24;;;:::i;:::-;378:11:59;;;799:19:18;;;;:::i;:::-;;;;;:::i;:::-;5620:111:37;;;;;;;;:::i;:::-;5741:55;;;;;;:::i;:::-;2457:10;88:1669:77;;2443:12:37;5809:34;;;88:1669:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;88:1669:77;;;;;;;;5809:34:37;;;88:1669:77;;5809:34:37;:::i;:::-;5320:526;:::o;88:1669:77:-;378:11:59;;;88:1669:77;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;1905:7:21;88:1669:77;;;;;;;;:::o;:::-;;2650:19:21;;;88:1669:77;;;;;;;;;:::o;:::-;;;2590:20:21;88:1669:77;;;;;;;;:::o;:::-;;2529:21:21;;;88:1669:77;;;;;;;;;:::o;:::-;;;2463:18:21;88:1669:77;;;;;;;;:::o;:::-;;2396:19:21;;;88:1669:77;;;;;;;;;:::o;:::-;;;2331:17:21;88:1669:77;;;;;;;;:::o;:::-;;;2265:18:21;88:1669:77;;;;;;;;:::o;:::-;;;2205:20:21;88:1669:77;;;;;;;;:::o;:::-;;;2852:20:21;88:1669:77;;;;;;;;:::o;:::-;;;2980:18:21;88:1669:77;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;2719:1063:44:-;;;2907:6;;;88:1669:77;;;3754:21:44;2955:12;3754:13;2955:12;378:4:31;;965:21:18;;;;;;:::i;:::-;3003:42:44;378:4:31;;-1:-1:-1;;;;;;3076:12:44;2999:197;-1:-1:-1;2999:197:44;378:11:59;;631:21:18;965;631;;;;:::i;:::-;965;;:::i;:::-;3222:117:44;378:4:31;;-1:-1:-1;;;;;;3076:12:44;3690:45;;-1:-1:-1;3205:453:44;-1:-1:-1;3205:453:44;3724:10;3710:12;;;378:11:59;3724:10:44;;378:11:59;3690:45:44;;:::i;:::-;3754:13;;:::i;:::-;:21;:::i;3205:453::-;3690:45;631:21:18;;965;631;3431:216:44;631:21:18;;:::i;:::-;965;;:::i;:::-;3431:216:44;:::i;:::-;3205:453;;;2999:197;3128:57;965:21:18;;;;:::i;3128:57:44:-;2999:197;;;88:1669:77;;;-1:-1:-1;;;88:1669:77;;;;;;;;;;;;;;;;;;;;5848:1096:37;6037:29;;5848:1096;6037:29;;5848:1096;;6173:1;6153:21;;;6173:1;;;6193:21;;;;;;6149:612;;6789:45;;6149:612;6770:171;6149:612;;;;;88:1669:77;;6789:45:37;;;;;;88:1669:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;;;;;88:1669:77;;;378:11:59;88:1669:77;;;;6789:45:37;;378:11:59;;6789:45:37;;;;;;:::i;:::-;6770:171;:::i;6186:274::-;6238:27;;;;;:::i;:::-;6299:150;;;;;;;:::i;:::-;6186:274;;;6149:612;6489:21;;;;;6149:612;;6789:45;;6149:612;6770:171;6149:612;;;;;;6482:273;6549:4;;;;8417:611:18;;;;;;;;;;;;;;;;;;6555:4:37;378:11:59;;8417:611:18;;;;;;;;6594:150:37;;;;;;;:::i;:::-;6482:273;;;8417:611:18;;;;88:1669:77;;378:4:31;88:1669:77;;;;;;;;;;;;;;;:::o;:::-;;317:4:31;88:1669:77;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;88:1669:77;;378:11:59;88:1669:77;;;-1:-1:-1;;88:1669:77;;;;;:::o;:::-;;1774:3:21;88:1669:77;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;;88:1669:77;;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;88:1669:77;;-1:-1:-1;;88:1669:77;;;;;;;:::o;:::-;378:11:59;;;88:1669:77;;;;;;;;2046:20:21;-1:-1:-1;;;2046:20:21;;;;;;;:::o;7612:209::-;7796:11;7768:13;7737:6;2046:20;7694:7;1949;7612:209;7694:7;:::i;:::-;88:1669:77;7737:6:21;:::i;:::-;7768:13;:::i;:::-;7796:11;:::i;:::-;88:1669:77;7612:209:21;:::o;7135:175:44:-;7240:1;7235:6;;88:1669:77;;7135:175:44;:::o;88:1669:77:-;;;-1:-1:-1;;;88:1669:77;;;;;;;;;;;;-1:-1:-1;;;88:1669:77;;;;;;;;;;;;;;;;;;;;:::o;:::-;;317:4:31;88:1669:77;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;88:1669:77;;;;;;;;;;;;;:::o;9402:337:21:-;1324:9;9472:21;;9468:43;;1905:7;9525:8;;;;9521:31;;9566:6;;9562:37;;88:1669:77;;;;9629:1:21;;88:1669:77;;;9629:1:21;88:1669:77;;;-1:-1:-1;5990:5:21;;:20;;;;9402:337;5986:46;;6046:6;;6042:29;;6090:7;6085:12;;6081:43;;6178:7;;;6177:23;;;;;;1053:19:23;;;:::i;:::-;6257:13:21;;6253:36;;6632:35;6363:55;6370:33;958:19:23;6311:16:21;958:19:23;6311:16:21;;;;;;:::i;:::-;958:19:23;:::i;:::-;6370:33:21;:::i;:::-;6363:55;:::i;:::-;1053:19:23;6481:29:21;958:19:23;;;:::i;:::-;6481:29:21;:::i;:::-;6547:49;958:19:23;6565:29:21;958:19:23;;;:::i;:::-;6565:29:21;:::i;:::-;958:19:23;;:::i;:::-;6547:49:21;:::i;:::-;1053:19:23;;:::i;:::-;6632:35:21;:::i;:::-;958:19:23;:::i;:::-;6689:9:21;-1:-1:-1;6708:336:21;6715:5;;;;;;7058:16;;;;9728:4;7058:16;958:19:23;7058:16:21;;;;;958:19:23;:::i;:::-;9728:4:21;:::i;7058:16::-;7072:2;;;:::i;:::-;958:19:23;:::i;6708:336:21:-;6749:7;;6951:23;6749:7;1053:19:23;6749:12:21;:7;;;;;;:::i;:12::-;6891:42;958:19:23;6848:14:21;6790:16;958:19:23;;;;:::i;6790:16:21:-;6848:14;:::i;:::-;958:19:23;:::i;:::-;;;;;:::i;:::-;6891:42:21;;:::i;1053:19:23:-;6951:23:21;;:::i;:::-;88:1669:77;;;6708:336:21;;;;6253:36;88:1669:77;;-1:-1:-1;;;6279:10:21;;;;;6177:23;6193:7;;;:::i;:::-;6177:23;;;6081:43;88:1669:77;;-1:-1:-1;;;6106:18:21;;;;;5986:46;88:1669:77;;-1:-1:-1;;;6019:13:21;;;;;5990:20;5999:11;6003:7;5999:11;;5990:20;;9468:43;9495:16;9509:1;9495:16;:::o;337:213:45:-;;464:27;337:213;464:27;:::i;:::-;494:7;88:1669:77;;;;;;;;;;;;;;;631:21:18;;;:::i;8282:752::-;;378:4:31;8417:611:18;;;;;;;;;;;;;;;;;;;;378:11:59;;;8417:611:18;;;;;;;;8282:752;:::o;:::-;8417:611;;;;;;;;;;;;;;;;;378:4:31;:11:59;;8417:611:18;;;;;;;;8282:752;:::o;7741:535::-;378:4:31;7878:392:18;;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;6255:3:37;7878:392:18;;;;;;;;;;;;;;;;;6260:4:37;7878:392:18;;7741:535;:::o;:::-;7878:392;;;;;;;;;;;;;;;;378:4:31;7878:392:18;;7741:535;:::o;:::-;1324:9:21;7878:392:18;;;;;;;;;;;;;378:4:31;7878:392:18;;7741:535;:::o;:::-;1905:7:21;7878:392:18;;;;;;;;;;;;;;;;;317:4:31;7878:392:18;;7741:535;:::o;88:1669:77:-;;;;;;;;;;:::o;1009:1952:33:-;378:11:59;;1009:1952:33;;378:11:59;;1239:13:33;;;1235:66;;1632:15;;;;:::i;:::-;1674;;;;:::i;:::-;378:11:59;1699:25:33;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;;:::i;:::-;6918:17:37;;378:11:59;;6918:17:37;;;;;1978:981:33;1009:1952;;;;;;;;;;:::o;1978:981::-;;;;;2909:48;;;;;;;2123:13;2122:19;2123:13;;;;:::i;:::-;88:1669:77;;;;2122:19:33;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;378:11:59;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;88:1669:77;;1978:981:33;;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;653:2:31;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;;;;;;2931:26;88:1669:77;2931:26:33;;2909:48;;1695:115;88:1669:77;;-1:-1:-1;;;1747:56:33;;;;;88:1669:77;;;;;;;;;;1747:56:33;1235:66;88:1669:77;;-1:-1:-1;;;1261:40:33;;;;;88:1669:77;;;;;;;;;;;1747:56:33;4268:1017:21;4348:10;;4344:26;;1500:10;4384:26;;;4380:40;;-1:-1:-1;;4434:26:21;;;4430:42;;-1:-1:-1;958:19:23;4495:11:21;;;:::i;:::-;5188:10;5094:60;1053:19:23;4548:38:21;965:21:18;;;:::i;4548:38:21:-;1053:19:23;:::i;:::-;958;5095:51:21;:42;958:19:23;;4962:98:21;958:19:23;4984:74:21;958:19:23;5006:50:21;958:19:23;;5028:26:21;958:19:23;4762:100:21;958:19:23;4784:76:21;958:19:23;4806:52:21;958:19:23;4828:28:21;958:19:23;;;:::i;:::-;4828:28:21;:::i;:::-;958:19:23;;:::i;:::-;4806:52:21;:::i;:::-;958:19:23;;:::i;:::-;4784:76:21;:::i;958:19:23:-;4762:100:21;:::i;:::-;958:19:23;;:::i;:::-;5028:26:21;:::i;:::-;958:19:23;;:::i;:::-;5006:50:21;:::i;:::-;958:19:23;;:::i;:::-;4984:74:21;:::i;:::-;958:19:23;;:::i;:::-;4962:98:21;:::i;:::-;958:19:23;;:::i;:::-;;;;:::i;:::-;5095:42:21;:::i;:::-;:51;:::i;958:19:23:-;5253:25:21;5254:9;-1:-1:-1;;;5267:7:21;;;:::i;4430:42::-;4462:10;1949:7;4462:10;:::o;4344:26::-;4360:10;1905:7;4360:10;:::o;11969:3353:18:-;12038:3278;;-1:-1:-1;;;12038:3278:18;;;;;11969:3353;12038:3278;;;;;;;;11969:3353;12038:3278;;;;;;11969:3353;12038:3278;;;;;;11969:3353;12038:3278;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11969:3353;:::o;12038:3278::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12038:3278:18;;-1:-1:-1;12038:3278:18;;;;;;88:1669:77;;;;:::o;:::-;;;-1:-1:-1;;;88:1669:77;;;;;;;;;;;;-1:-1:-1;;;88:1669:77;;;;;;;4596:2947:18;7380:72;4596:2947;4688:27;4700:1;4696:5;;4688:27;:::i;:::-;7125:43;5125:16;;;:::i;:::-;5145:2;88:1669:77;;;5175:3:18;88:1669:77;;378:11:59;5175:3:18;378:11:59;88:1669:77;;;;7232:71:18;88:1669:77;;6411:30:18;88:1669:77;6343:32:18;88:1669:77;6274:33:18;88:1669:77;6205:33:18;88:1669:77;6136:33:18;88:1669:77;6068:32:18;88:1669:77;6001:31:18;88:1669:77;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;88:1669:77;;;;;;;;;;;;;;;;5533:32:18;88:1669:77;5465:32:18;88:1669:77;5398:31:18;88:1669:77;;;;;;;;;;;;;;;;;;;;;;;;6455:304:18;88:1669:77;;;;;4596:2947:18;:::o;71:276:23:-;-1:-1:-1;;;138:25:23;;134:43;;195:1;187:9;;195:1;;;208:61;;;;71:276::o;134:43::-;88:1669:77;;-1:-1:-1;;;172:5:23;;;;;1487:3103:18;-1:-1:-1;;1713:26:18;;;1709:40;;1948:21;1943:26;;;1939:54;;2266:5;378:11:59;88:1669:77;378:11:59;88:1669:77;4502:49:18;2559:29;88:1669:77;3136:40:18;88:1669:77;378:11:59;2591:5:18;378:11:59;;;;88:1669:77;;;;;;;;;3074:35:18;88:1669:77;2874:31:18;88:1669:77;;;;;;3649:35:18;88:1669:77;;;;3508:34:18;88:1669:77;;;;3371:32:18;88:1669:77;;;;;;;;;;;;;;;;;;;;;;;;;;2941:32:18;88:1669:77;;;;;;;;;;;;;;;3699:327:18;88:1669:77;;4564:3:18;88:1669:77;378:11:59;1487:3103:18;:::o;1939:54::-;88:1669:77;;-1:-1:-1;;;1971:22:18;;88:1669:77;1971:22:18;;;88:1669:77;;;;;;-1:-1:-1;;;88:1669:77;;;;;;1747:56:33;405:480:23;2046:20:21;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;2717:18:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;-1:-1:-1;;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;-1:-1:-1;;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;3113:20:21;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;503:380;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;1905:7:21;503:380:23;;;;;;;;;;;;;;;;;6090:7:21;503:380:23;;405:480;:::o;:::-;2913:18:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;3047:17:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;503:380;;;;;;;;;;405:480;:::o;:::-;1905:7:21;503:380:23;;;;;;;;;;;;;;;;;;;;405:480;:::o;15328:575:18:-;15397:27;15405:5;;;15397:27;:::i;:::-;15435:462;378:11:59;15435:462:18;;;;;;;;;;378:11:59;;;;;15435:462:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:575;:::o;88:1669:77:-;378:11:59;;;5076:71:37;;88:1669:77;;;;;;;;;5076:71:37;;;88:1669:77;;;;;;;;;;;;;;;;378:11:59;;;;:::i;:::-;88:1669:77;;;;;;;;;;5076:71:37;88:1669:77;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;88:1669:77;;;;5168:70:37;88:1669:77;;;;;5168:70:37;:::i","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e414620000ac5750508063620a260714620000a65780636830230014620000a0578063b3fcee79146200009a578063ba414fa61462000094578063e0d7d0e9146200008e578063e21485ad14620000885763fa7626d4146200008257600080fd5b620009c4565b6200088c565b6200086c565b62000843565b62000783565b620005c9565b620005a5565b346200057557816003193601126200057557620000c862001247565b805161106b8082019067ffffffffffffffff9280831084841117620005515780620000fb6200177b948486843962000aa7565b039086f080156200052957601580546001600160a01b0319166001600160a01b0390921691909117905583519181830183811085821117620005515783926200014692843962000af3565b039084f080156200052957601680546001600160a01b0319166001600160a01b039283161790556015546200018391165b6001600160a01b031690565b803b15620005905782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af18015620005295762000579575b506016548490620001e2906001600160a01b031662000177565b91823b156200057557845190815230600482015268056bc75e2d631000006024820152918290604490829084905af18015620005295762000557575b5060155462000236906001600160a01b031662000177565b6016546200024d906001600160a01b031662000177565b90835191610597908184019284841086851117620005515784936200029a936200aa6b86396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200052957601480546001600160a01b0319166001600160a01b039092169190911790558151612f21808201908282108483111762000551578291620002f091620027e684396000815260200190565b039084f080156200052957601380546001600160a01b0319166001600160a01b03929092169182179055620003259062000177565b825190611bc48083019183831085841117620005515783926200035b9262008ea785396001600160a01b03909116815260200190565b039084f080156200052957601780546001600160a01b0319166001600160a01b03929092169182179055620003909062000177565b8251916137a080840192909183118484101762000551578392620003c7926200570785396001600160a01b03909116815260200190565b039083f09081156200052957620003fe6200046a9260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b60155462000415906001600160a01b031662000177565b6013546200042c906001600160a01b031662000177565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200052957620004e29385936200052f575b506016546200049b906001600160a01b031662000177565b6013549091908790620004b7906001600160a01b031662000177565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200052957620004f6578280f35b816200051a92903d1062000521575b62000511818362000a4e565b81019062000b33565b5081808280f35b503d62000505565b62000ae7565b6200054990843d8611620005215762000511818362000a4e565b508662000483565b620009e9565b80620005676200056e92620009ff565b8062000594565b836200021e565b5080fd5b80620005676200058992620009ff565b84620001c8565b8380fd5b6000910312620005a057565b600080fd5b34620005a0576000366003190112620005a0576020604051660aa87bee5380008152f35b34620005a0576000806003193601126200078057737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000575576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620005295762000769575b50601754819060809062000705906200064b906001600160a01b031662000177565b601554620006c19062000667906001600160a01b031662000177565b601654620006b19062000683906001600160a01b031662000177565b91620006a16200069262000a71565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6001600160a01b03166040830152565b620006cb62000b4d565b6060820152601354620006e7906001600160a01b031662000177565b906040519485809481936305157c7f60e21b83526004830162000cc0565b03925af1801562000529576200072391839162000730575b50601955565b6200072d62000d6f565b80f35b62000757915060803d60801162000761575b6200074e818362000a4e565b81019062000c51565b505050386200071d565b503d62000742565b80620005676200077992620009ff565b3862000629565b80fd5b34620005a0576000806003193601126200078057737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000575576040516372eb5f8160e11b8152600060048201529082908290602490829084905af1801562000529576200082c575b50601754819060809062000805906200064b906001600160a01b031662000177565b03925af18015620005295762000822918391620007305750601955565b6200072d620010af565b80620005676200083c92620009ff565b38620007e3565b34620005a0576000366003190112620005a0576020620008626200116f565b6040519015158152f35b34620005a0576000366003190112620005a0576020601954604051908152f35b34620005a0576020366003190112620005a05760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa908115620005295760009162000910575b60c08201516200090c906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e011620009bb575b816200092e60e0938362000a4e565b81010312620005a057620008f260c06200090c92620009ae8260405192620009568462000a14565b620009618162000a92565b8452620009716020820162000a92565b6020850152620009846040820162000a92565b6040850152606081015160608501526080810151608085015260a081015160a08501520162000a92565b82820152925050620008de565b3d91506200091f565b34620005a0576000366003190112620005a057602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200055157604052565b60e0810190811067ffffffffffffffff8211176200055157604052565b6080810190811067ffffffffffffffff8211176200055157604052565b90601f8019910116810190811067ffffffffffffffff8211176200055157604052565b604051906080820182811067ffffffffffffffff8211176200055157604052565b51906001600160a01b0382168203620005a057565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b6040513d6000823e3d90fd5b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b90816020910312620005a057518015158103620005a05790565b6040519060006021549060018260011c926001811691821562000c46575b60209160208610841462000c325785885287949360208601939291811562000c11575060011462000baa575b50505062000ba89250038362000a4e565b565b92509362000bda60216000527f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b57090565b946000935b82851062000bfa5750505062000ba893500138808062000b97565b865485850152958601958895509381019362000bdf565b9250505062000ba89491925060ff19168252151560051b0138808062000b97565b634e487b7160e01b85526022600452602485fd5b93607f169362000b6b565b9190826080910312620005a0578151916020810151916060604083015192015190565b60005b83811062000c885750506000910152565b818101518382015260200162000c77565b9060209162000cb48151809281855285808601910162000c74565b601f01601f1916010190565b60a0606062000d039360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062000c99565b90565b90816060910312620005a0578051916040602083015192015190565b90816020910312620005a0575190565b60409062000d0393928152816020820152019062000c99565b9190820391821162000d5957565b634e487b7160e01b600052601160045260246000fd5b60185462000d86906001600160a01b031662000177565b601954604080516379869bf960e11b8152600480820184905267016345785d8a00006024830152936060939190849082908180604481015b03915afa918215620005295760009560009260009462001083575b5060135462000df1906001600160a01b031662000177565b8551633be6a34160e01b8082523084830190815260208181018790529a92969193919291908b90889081906040010381845afa96871562000529576000976200105f575b508851956333854efd60e21b968781528b818062000e5a858b83019190602083019252565b0381865afa998a1562000529578c958c8f9360009d6200101b575b50519283019586526020860152604085015262000ec894939092919062000eab9084906060015b03601f19810185528462000a4e565b60008b51809681958294634eca17cd60e11b84528b840162000d32565b03925af18015620005295762000ff9575b5060135462000ef1906001600160a01b031662000177565b9260195494875191825288828062000f10898883019190602083019252565b0381885afa988915620005295762000f68998b9862000f469462000f3f9360009362000fc0575b505062000d4b565b9062000d4b565b9551908152309181019182526020820193909352919485928391829160400190565b03915afa918215620005295762000ba89360009362000f8a575b5050620015e1565b62000faf929350803d1062000fb8575b62000fa6818362000a4e565b81019062000d22565b90388062000f82565b503d62000f9a565b62000fe5929350803d1062000ff1575b62000fdc818362000a4e565b81019062000d06565b91505090388062000f37565b503d62000fd0565b6200101390883d8a1162000ff15762000fdc818362000a4e565b505062000ed9565b62000e9c919d50928897969594926200104b62000eab9562000ec89b3d8c1162000ff15762000fdc818362000a4e565b9150509e9250929495969798509262000e75565b6200107b9197508b3d8d1162000fb85762000fa6818362000a4e565b953862000e35565b9196509250620010a39150843d861162000ff15762000fdc818362000a4e565b91959091923862000dd9565b601854620010c6906001600160a01b031662000177565b60195460408051636237569f60e01b8152600480820184905267016345785d8a000060248301529360609391908490829081806044810162000dbe565b90600491630667f9d760e41b815262001126825180936020868501910162000c74565b010190565b3d156200116a573d9067ffffffffffffffff82116200055157604051916200115e601f8201601f19166020018462000a4e565b82523d6000602084013e565b606090565b6000805460081c60ff161562001189575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620011ab57505090565b8192506040518281620011e960208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b03620011fe601f199182810185528462000a4e565b6200122460405191826200121760208201968762001103565b0390810183528262000a4e565b51925af15062000d03620012376200112b565b6020808251830101910162000b33565b6040805161106b80820167ffffffffffffffff91838210838311176200055157836200127b6200177b938385843962000aa7565b0360009485f080156200052957601580546001600160a01b0319166001600160a01b039092169190911790558451918183018381108582111762000551578392620012c892843962000af3565b039083f080156200052957601680546001600160a01b0319166001600160a01b03928316179055601554620012fe911662000177565b803b15620015dd5783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af180156200052957620015c6575b506016546200135b906001600160a01b031662000177565b90813b156200059057845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af180156200052957620015af575b50601554620013b1906001600160a01b031662000177565b601654620013c8906001600160a01b031662000177565b908451916105979081840192848410868511176200055157849362001415936200aa6b86396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200052957601480546001600160a01b0319166001600160a01b03909216919091179055825190612f2180830191821183831017620005515782916200146b91620027e684396000815260200190565b039082f09182156200052957620014a2620015119360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b601554620014b9906001600160a01b031662000177565b601354909190620014d3906001600160a01b031662000177565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af192831562000529576200155c9486946200158d575b5060165462001542906001600160a01b031662000177565b601354909290620004b7906001600160a01b031662000177565b03925af18015620005295762001570575050565b816200158a92903d10620005215762000511818362000a4e565b50565b620015a790853d8711620005215762000511818362000a4e565b50386200152a565b8062000567620015bf92620009ff565b3862001399565b8062000567620015d692620009ff565b3862001343565b8280fd5b90808203620015ee575050565b6080806040938451937f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50836020968781526022888201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8982015261745d60f01b6060820152a1855190868252600a87830152690808115e1c1958dd195960b21b6060830152858201527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8938491a1845190858252600a8683015269080808081058dd1d585b60b21b606083015284820152a1737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620016f3575b50505061010061ff00196000541617600055565b8260006200175062001761602483979684975195818701908882526519985a5b195960d21b818901526001606089015260608852620017328862000a31565b519485928301976370ca10bb60e01b89525180928585019062000c74565b810103600481018452018262000a4e565b51925af150620017706200112b565b50388080620016df56fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c634300081600336080346200007a57601f620037a038819003918201601f19168301916001600160401b038311848410176200007f578084926020946040528339810103126200007a57516001600160a01b038116908190036200007a57600080546001600160a01b03191691909117905560405161370a9081620000968239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630420580a146101b7578063120649c5146101b2578063134ead12146101ad5780631e978cb0146101a8578063306db46b146101a3578063332266f31461019e5780633928ff97146101995780633b268d5d146101945780633b4d10301461018f5780634e817fd91461018a5780634fd67c58146101855780635eb408fc146101805780636237569f1461017b5780636d652299146101765780637f17409c1461017157806381b5fac21461016c578063902ecaa214610167578063a8c62e7614610162578063af4e437f1461015d578063b09d04e514610158578063cb1f553214610153578063ce153bf41461014e578063e94716d514610149578063ee3e8cfb14610144578063f30d37f21461013f5763f9c282111461013a57600080fd5b610aff565b610acf565b610a9e565b610a63565b610a27565b6109e2565b6109af565b610993565b61096a565b610941565b610914565b610872565b610856565b6107e9565b6107cd565b6107a4565b610788565b610759565b61071e565b61048d565b610436565b610407565b6103e2565b610354565b61028e565b610218565b60005b8381106101cf5750506000910152565b81810151838201526020016101bf565b906020916101f8815180928185528580860191016101bc565b601f01601f1916010190565b9060206102159281815201906101df565b90565b3461026b57604036600319011261026b57610267604051600260208201526004356040820152602435606082015260608152610253816102e9565b6040519182916020835260208301906101df565b0390f35b600080fd5b608090600319011261026b5760043590602435906044359060643590565b3461026b5760206102aa6102a136610270565b92919091610b4d565b604051908152f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff8211176102e457604052565b6102b2565b6080810190811067ffffffffffffffff8211176102e457604052565b6060810190811067ffffffffffffffff8211176102e457604052565b90601f8019910116810190811067ffffffffffffffff8211176102e457604052565b6001600160a01b0381160361026b57565b3461026b5760e036600319011261026b5760a036604319011261026b576102676103bc604051610383816102c8565b60443581526064356020820152608435604082015260a435606082015260c4356103ac81610343565b608082015260243560043561139a565b60405191829182610204565b606090600319011261026b57600435906024359060443590565b3461026b5760206102aa6104016103f8366103c8565b91929092610f06565b91611583565b3461026b5760206102aa61041a366103c8565b9061042d61042784610f06565b936110d9565b92919091611670565b3461026b5760206102aa610449366103c8565b9061045661042784610f06565b9290506119da565b8015150361026b57565b90926080926102159594151583526020830152604082015281606082015201906101df565b3461026b57606036600319011261026b5761050360243561061f6004356104b38361045e565b604435926104bf610c57565b936104c8610c57565b946104d2846110d9565b60208496939592960194604096878601928352865284526104f287610f06565b998a9185519087519051918a611009565b921561069657928261054a6105519361054361053e61053661056f9861053160606105979d9c0151866125a2565b6125a2565b8651906125f8565b610c9d565b9351610cb0565b8a52610cb0565b61056385890191808352895188610c4a565b90885190519087610b4d565b9061058e6105836020890193808552610c9d565b808452825111610d31565b51905190610d24565b945b84519260c06020870151848801926105df8451976105d18851998a958693602085016040919493926060820195825260208201520152565b03601f198101845283610321565b600054610602906105f6906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610dbf565b03915afa94851561069157600095610651575b509061064691610267959651905190611583565b905194859485610468565b61026795509061067c610646939260c03d60c01161068a575b6106748183610321565b810190610d88565b505050505095509091610632565b503d61066a565b610b41565b826106df610718966106d2610704956106cb61053e6106c361070f9a61053160606106fc9b0151866125a2565b8551906125f8565b9251610cb0565b9260208d01938452610cb0565b6106f1888c019180835283518b610de3565b915190519089610df0565b808952610c9d565b808852825111610cbd565b51855190610d24565b94610599565b3461026b57604036600319011261026b57610267604051600460208201526004356040820152602435606082015260608152610253816102e9565b3461026b57602036600319011261026b5760206102aa60043561040161077e826110d9565b9291939050610f06565b3461026b5760206102aa61079e6103f8366103c8565b91611b9c565b3461026b5760206102aa6107b7366103c8565b906107c461042784610f06565b92919091611c16565b3461026b5760206102aa6107e036610270565b92919091610df0565b3461026b57604036600319011261026b5761083860043561026761081a61080f836110d9565b919050602435611f7a565b939092848461083261082b84610f06565b8383611583565b92610b4d565b92604051938493846040919493926060820195825260208201520152565b3461026b57600036600319011261026b57602060405160008152f35b3461026b57604036600319011261026b576004356108c06102676108a2610898846110d9565b9150602435611fa7565b92909383856108ba6108b384610f06565b8383611b9c565b92610df0565b91604051938493846040919493926060820195825260208201520152565b805182526020808201519083015260408082015190830152606080820151908301526080908101516001600160a01b0316910152565b3461026b57602036600319011261026b5760a0610932600435610f06565b61093f60405180926108de565bf35b3461026b5760206102aa610954366103c8565b9061096161042784610f06565b92909150611fce565b3461026b57600036600319011261026b576000546040516001600160a01b039091168152602090f35b3461026b5760206102aa6109a636610270565b92919091611009565b3461026b57602036600319011261026b576102676040516001602082015260043560408201526040815261025381610305565b3461026b57602036600319011261026b57610267600435610a0281610343565b60408051600560208201526001600160a01b0390921682820152815261025381610305565b3461026b57602036600319011261026b57610267610a466004356110d9565b604080519384526020840192909252908201529081906060820190565b3461026b57604036600319011261026b57610267604051600360208201526004356040820152602435606082015260608152610253816102e9565b3461026b57604036600319011261026b5761083860043561026761081a610ac4836110d9565b919050602435611fa7565b3461026b57604036600319011261026b576004356108c06102676108a2610af5846110d9565b9150602435611f7a565b3461026b57600036600319011261026b57602060405160788152f35b9081602091031261026b575190565b6040906102159392815281602082015201906101df565b6040513d6000823e3d90fd5b610b85610bee9493929361053184610b7e610b79610b74610b6d88610f06565b809661230a565b61237f565b6123b2565b92516125a2565b916020604051610bbc81610bae85888a8785016040919493926060820195825260208201520152565b03601f198101835282610321565b600054610bd3906105f6906001600160a01b031681565b6040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093610c15575b50610c0f90610f06565b936111f1565b610c0f919350610c3c9060203d602011610c43575b610c348183610321565b810190610b1b565b9290610c05565b503d610c2a565b9161040161021593610f06565b604051906060820182811067ffffffffffffffff8211176102e45760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610cab57565b610c87565b91908201809211610cab57565b15610cc457565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b6103e719810191908211610cab57565b91908203918211610cab57565b15610d3857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c091031261026b578151610d9f8161045e565b9160208101519160408201519160608101519160a0608083015192015190565b610215939260609260018060a01b03168252602082015281604082015201906101df565b9161079e61021593610f06565b92610b79610b74610e0d92949394610e0787610f06565b90612f44565b92670de0b6b3a7640000938403938411610cab57610e2e610e5794836125a2565b916020604051610bbc81610bae8589898785016040919493926060820195825260208201520152565b03915afa9182156106915761021595600093610e7e575b50610e7890610f06565b93611e24565b610e78919350610e9c9060203d602011610c4357610c348183610321565b9290610e6e565b91908260a091031261026b57604051610ebb816102c8565b608080829480518452602081015160208501526040810151604085015260608101516060850152015191610eee83610343565b0152565b9060a08282031261026b5761021591610ea3565b90604051610f13816102c8565b600090818152816080602092828482015282604082015282606082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610691578092610f7a575b506102159293508082518301019101610ef2565b9091503d8082863e610f8c8186610321565b840190828583031261100257845167ffffffffffffffff9586821161100557019082601f830112156110025781519586116102e45760405192610fd8601f8801601f1916860185610321565b86845284878401011161100257506102159394610ffa918480850191016101bc565b908392610f66565b80fd5b8280fd5b61105d939192602060405161103781610bae87868a8785016040919493926060820195825260208201520152565b60018060a01b03600054166040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093611084575b5061107e90610f06565b936121b4565b61107e9193506110a29060203d602011610c4357610c348183610321565b9290611074565b9081602091031261026b575161021581610343565b9081606091031261026b578051916040602083015192015190565b90600460206110f56105f66105f660005460018060a01b031690565b604051632bee84f160e21b815292839182905afa928315610691576111409360609260009161119d575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156106915760008093600093611166575b50929190565b9193505061118c915060603d606011611196575b6111848183610321565b8101906110be565b9290929138611160565b503d61117a565b6111bf915060203d6020116111c5575b6111b78183610321565b8101906110a9565b3861111f565b503d6111ad565b6111ef9360609296959361010083019783526020830152604082015201906108de565b565b929360009385929185851215611367575b8585126113485790610bae611224925b604096604051958694602086016111cc565b81859285968281116113255761123a818561337f565b92611245818661337f565b88611250828761152f565b136113045750906112649197969297610d24565b60019591829187805b61127f575b5050505050505050505090565b156112e0575b5086979850819261129f6112998b89610cb0565b60011c90565b996112aa8b8861337f565b90846112b6888461152f565b136112d457505089935b886112cb8987610d24565b9201949961126d565b8b9850909550936112c0565b601410806112fb575b156112f45788611285565b8080611272565b508083106112e9565b6040516306f1be5d60e21b8152600481018690526024810191909152604490fd5b604051633082dfdb60e11b81526004810191909152602481019290925250604490fd5b935091611354906125ce565b91611361848385846124a9565b93611202565b85851361137b5790610bae61122492611212565b935094611387906123f5565b94611394848388846124a9565b93611367565b916113ab610b79610b748385612f44565b91670de0b6b3a7640000928303928311610cab57611402826113ee6113e3610b79610b74846113dd6114209a8c6125f8565b9761230a565b6105318584516125a2565b926113fb8282868a6124a9565b84886121b4565b906040519460208601526040850152606084015260808301906108de565b6101008152610120810181811067ffffffffffffffff8211176102e45760405290565b90670de0b6b3a764000060008382039312818412811691841390151617610cab57565b90671bc16d674ec8000060008382039312818412811691841390151617610cab57565b9067119000ab100ffbff198201918213600116610cab57565b81810392916000138015828513169184121617610cab57565b90670de0b6b3a764000091828102928184051490151715610cab57565b90671bc16d674ec8000091828102928184051490151715610cab57565b90633b9aca0091828102928184051490151715610cab57565b60008190039190600160ff1b8114600116610cab57600019830503610cab57565b818102929160008212600160ff1b821416610cab578184051490151715610cab57565b811561156d57600160ff1b8114600019831416610cab570590565b634e487b7160e01b600052601260045260246000fd5b9190916115be60208301936115b885516115b06115a66040880192835190612843565b975182519061286c565b905190612414565b92612435565b92670de0b6b3a76400008085121561163c5760008513156116315760008582039512818612811691861390151617610cab5761162561162a92611620611612610b799461160d6102159961288b565b61152f565b670de0b6b3a7640000900590565b6114a2565b612917565b90516125a2565b505050505060001990565b5050505050600090565b90959492936111ef94608093610120840198845260208401526040830152606082015201906108de565b909291828651602088015160408901519060608a01519261169083612ac8565b6116999061185a565b936116a390611443565b906116ad8a612b86565b6116b68b611981565b6116bf91612c38565b6116c88b611981565b6116d184612bb5565b6116da916114a2565b6116e49088612c38565b6116ed91612cb5565b6116f690612cd3565b9361170084612fbb565b611709906114d8565b670de0b6b3a7640000900561171d90612917565b9061172791612c38565b61173090612c67565b611739906119c9565b848661174486612c09565b9061174e91612c38565b9061175891612c38565b611761916119ad565b61176a90612917565b826117758c84612c38565b9061177f91612c38565b61178891612c38565b6117918b611981565b61179a84612bb5565b6117a3916114a2565b6117ac91612cb5565b956117b691612c38565b906117c090611993565b6117c991612c38565b926117d391612c38565b6117dc90612c8e565b906117e6916114a2565b6117ef90612e24565b6117f891612c38565b61180186612b86565b61180a91612cb5565b90611814846119c9565b9061181e916119ad565b90611828916119ad565b60001361184f576102159561184a93610bae9260405196879560208701611646565b61264d565b505050505050600090565b90633b9aca0091828102928184041490151715610cab57565b9081672005fe4f268ea00001918212600116610cab57565b9081670dc5527f642c200001918212600116610cab57565b9081670de0b6b3a764000001918212600116610cab57565b9081670b68df18e471fbff190191821215600116610cab57565b90816714a8454c19e1ac0001918212600116610cab57565b9081670fc10e01578277ff190191821215600116610cab57565b90816703debd083b8c7c0001918212600116610cab57565b9081670295d400ea3257ff190191821215600116610cab57565b9081670157d8b2ecc7080001918212600116610cab57565b90816705310aa7d521300001918212600116610cab57565b9081670de0cc3d1561000001918212600116610cab57565b90816103e801918212600116610cab57565b9081670de0b6b3a763ffff190191821215600116610cab57565b91909160008382019384129112908015821691151617610cab57565b600160ff1b8114610cab5760000390565b939290919280519160208201519060408301519260600151936119fc84612ac8565b611a059061185a565b94611a0f90611443565b9182611a1a88612b86565b611a2489846119ad565b611a2d91612c38565b611a3789846119ad565b611a418385612c38565b611a4a916114a2565b611a54908b612c38565b611a5d91612cb5565b611a6690612cd3565b95611a7086612fbb565b611a79906114d8565b670de0b6b3a76400009005611a8d90612917565b90611a9791612c38565b611aa090612c67565b611aa9906119c9565b8688611ab488612c09565b90611abe91612c38565b90611ac891612c38565b611ad1916119ad565b611ada90612917565b81611ae58a86612c38565b90611aef91612c38565b611af891612c38565b91611b0389826119ad565b91611b0d91612c38565b611b16916114a2565b611b1f91612cb5565b96611b2991612c38565b90611b3390611993565b611b3c91612c38565b92611b4691612c38565b611b4f90612c8e565b90611b59916114a2565b611b6290612e24565b611b6b91612c38565b90611b7590612b86565b611b7e91612cb5565b91611b88906119c9565b90611b92916119ad565b90610215916119ad565b919091611bda6020830191611bd4611bcc84516115b0611bc26040890192835190612843565b965182519061286c565b958551612414565b90612435565b670de0b6b3a7640000918282121561163c576000821315611631576102159461162a93611c106116259361160d610b799661288b565b056119ad565b909291855160208701516040880151606089015191611c3482612ac8565b611c3d9061185a565b92611c4790611443565b93611c5186612b86565b611c5a87611981565b611c6391612c38565b611c6d8983612c38565b611c7688611981565b611c7f91612c38565b611c88906119c9565b86611c938b85612c38565b611c9c90612bde565b90611ca691612c38565b611caf916119ad565b611cb891612cb5565b611cc1906119c9565b611cca90612cd3565b92611cd483612fbb565b611cdd906114d8565b670de0b6b3a76400009005611cf190612917565b90611cfb91612c38565b611d0490612c67565b611d0d906119c9565b8385611d1885612c09565b90611d2291612c38565b90611d2c91612c38565b611d35916119ad565b611d3e90612917565b85611d49888a612c38565b90611d5391612c38565b611d5c91612c38565b90611d6687611981565b611d6f87612bb5565b611d78916114a2565b611d8191612c38565b611d8a91612cb5565b93611d958789612c38565b90611d9f90611993565b611da891612c38565b92611db291612c38565b611dbb90612c8e565b90611dc5916114a2565b611dce90612e24565b611dd791612c38565b611de083612b86565b611de991612cb5565b90611df390611993565b90611dfd916119ad565b60001361184f5761021595611e1f93610bae9260405196879560208701611646565b61276c565b929360009385929185851215611f47575b858512611f285790610bae611e5692604096604051958694602086016111cc565b818592859682811161132557611e6c81856133a0565b92611e7781866133a0565b88611e82828761152f565b13611304575090611e969197969297610d24565b60019591829187805b611eb0575050505050505050505090565b15611f0b575b50869798508192611eca6112998b89610cb0565b99611ed58b886133a0565b9084611ee1888461152f565b13611eff57505089935b88611ef68987610d24565b92019499611e9f565b8b985090955093611eeb565b60141080611f1f575b156112f45788611eb6565b50808310611f14565b935091611f34906125ce565b91611f41848383866124a9565b93611e35565b858513611f5b5790610bae611e5692611212565b935094611f67906123f5565b94611f74848383896124a9565b93611f47565b929190611f90611f8a82846125f8565b856125a2565b938103908111610cab57928103908111610cab5790565b929190611fb7611f8a82846125f8565b938101809111610cab57928101809111610cab5790565b9390929181516020830151916040840151936060015194611fee85612ac8565b611ff79061185a565b9561200190611443565b928361200c89612b86565b6120168a856119ad565b61201f91612c38565b6120298584612c38565b6120338b866119ad565b61203c91612c38565b612045906119c9565b82856120518887612c38565b9061205b91612c38565b9061206591612c38565b61206e916119ad565b61207791612cb5565b612080906119c9565b61208990612cd3565b9661209387612fbb565b61209c906114d8565b670de0b6b3a764000090056120b090612917565b906120ba91612c38565b6120c390612c67565b6120cc906119c9565b87896120d789612c09565b906120e191612c38565b906120eb91612c38565b6120f4916119ad565b6120fd90612917565b816121088b8d612c38565b9061211291612c38565b61211b91612c38565b926121268a826119ad565b9161213091612c38565b612139916114a2565b61214291612c38565b61214b91612cb5565b9661215591612c38565b9061215f90611993565b61216891612c38565b9261217291612c38565b61217b90612c8e565b90612185916114a2565b61218e90612e24565b61219791612c38565b906121a190612b86565b6121aa91612cb5565b90611b9290611993565b9293600093859291858512156122d7575b8585126122b85790610bae6121e692604096604051958694602086016111cc565b8185928596828111611325576121fc81856133c2565b9261220781866133c2565b88612212828761152f565b136113045750906122269197969297610d24565b60019591829187805b612240575050505050505050505090565b1561229b575b5086979850819261225a6112998b89610cb0565b996122658b886133c2565b9084612271888461152f565b1361228f57505089935b886122868987610d24565b9201949961222f565b8b98509095509361227b565b601410806122af575b156112f45788612246565b508083106122a4565b9350946122c4906123f5565b946122d1848784846124a9565b936121c5565b8585136122eb5790610bae6121e692611212565b9350916122f7906125ce565b91612304848484846124a9565b936122d7565b61237a6123756102159361236f61236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b9d6125f8565b612fbb565b97612fbb565b6114d8565b05612917565b612414565b612457565b906114a2565b6114bb565b611552565b6123ae6123756123a96713a04bbdfdc9be886123a3671bc16d674ec80000956114bb565b056119c9565b612e24565b0590565b600081126123bd5790565b60405162461bcd60e51b815260206004820152601060248201526f746f55696e743a206e6567617469766560801b6044820152606490fd5b6103e79081810291818304149015176001161561026b576103e8900490565b81810291818304149015176001161561026b57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517821515161561026b570490565b6706f05b59d3b2000090808202918204146001161561026b57670de0b6b3a7640000900490565b670de0b6b3a76400009081810291818304149015176001161561026b57671bc16d674ec80000900490565b90928282101561255d57610215936125269284670de0b6b3a764000091826124d18383612435565b1061254a57506001600160ff1b039590505b8351916124f96124f38385612414565b85612435565b1061252b57506001600160ff1b0392612520925090505b6040602082015191015190612843565b926119ad565b6119ad565b61252092611bd461253f9261254494612414565b61288b565b91612510565b6125579161253f91612435565b946124e3565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b81810291818304149015176001161561026b576001670de0b6b3a7640000600019830104019015150290565b6103e99081810291818304149015176001161561026b5760016103e8600019830104019015150290565b90670de0b6b3a7640000918281029281840414901517811515161561026b57600190600019830104019015150290565b6101008183031261026b57805192610215602083015193606060408501519401610ea3565b91906103e89260009360009183821161274b57612669816133e2565b6126738583613521565b600061267f828461152f565b1361272c5750612690859695610d14565b60019460009186805b6126aa575b50505050505050509050565b15612707575b50859697985080916126c56112998b88610cb0565b996126d08b87613521565b90836126dc878461152f565b136126fb57505089925b876126f18886610d24565b9201939998612699565b8b9750909450926126e6565b861080612721575b1561271a57886126b0565b808061269e565b50610100821061270f565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e89260009360009183821161274b5761278881613543565b61279285836136b3565b600061279e828461152f565b1361272c57506127af859695610d14565b60019460009186805b6127c85750505050505050509050565b15612825575b50859697985080916127e36112998b88610cb0565b996127ee8b876136b3565b90836127fa878461152f565b1361281957505089925b8761280f8886610d24565b92019399986127b8565b8b975090945092612804565b861080612838575b1561271a57886127ce565b50610100821061282d565b9061284d90612ac8565b633b9aca0090818102918183041490151715610cab5761021591612414565b61021591612365670de0b6b3a764000061235f61235a61236a95612fbb565b6706f05b59d3b20000811461291157670de0b6b3a764000090818112156128ff5780156128ed578060011b908105600203610cab576128c990612cd3565b906713a04bbdfdc9be8891808302928305146001161561026b5761021591056119c9565b6040516322ed598560e21b8152600490fd5b6040516307a0212760e01b8152600490fd5b50600090565b680248ce36a70cb26b3e1981131561291157680755bf798b4a1bf1e5811215612a67576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b91906101208382031261026b57825192602081015192610215604083015193608060608501519401610ea3565b60b581600160881b811015612b6f575b80690100000000000000000062010000921015612b62575b65010000000000811015612b55575b6301000000811015612b48575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b91612b0c565b60201c9160101b91612aff565b60401c9160201b91612af0565b5068b500000000000000009050608082901c612ad8565b671bc16d674ec8000081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e881810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e88082029160016000198210179181840514901517161561026b57670de0b6b3a7640000900590565b6713a04bbde78cc40081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b90911317161561026b57670de0b6b3a7640000900590565b670de0b6b3a764000090818102918205146001161561026b57671bc16d674ec80000900590565b670de0b6b3a764000090818102918205146001161561026b576713a04bbde78cc400900590565b670de0b6b3a76400009081810291820514821515161561026b570590565b600081128015612e13575b612e015780156128ff57671bc16d674ec8000081146128ed57670de0b6b3a76400008112908115612df257905b612d1482613189565b80156128ff57612d7d612d41612d3c612d37612d32612d8295612fbb565b61324a565b612ac8565b6114f5565b611620612d55612d50836131b4565b611873565b612d77612d72612d6c612d67866131df565b61188b565b856132c1565b6118a3565b90613228565b613272565b916000905b60028210612da257505015612d995790565b610215906119c9565b9092612dea81612de4612dba85611620600196612e24565b612d77612dda612dd5611625612dd087806132c1565b6119c9565b61329a565b61236f83866132c1565b906119ad565b930190612d87565b612dfb90611466565b90612d0b565b604051632d0483c560e21b8152600490fd5b50671bc16d674ec800008113612cde565b8015612f3757675698eef06670000081121561291157675698eef0666fffff19811315612f2a576000612f1a612e598361315c565b612ee2611625612e73612e6e612d728561247e565b613209565b92612526612f15612f10612f09612f03612efe612ef8612ef3612eed612ee88d612ee2612edd612ed7612ed2612d6c612ecd612ec7612ec2612ebc612eb78a6132e2565b6118bb565b896132c1565b6118d5565b876132c1565b6118ed565b611907565b836132c1565b61191f565b906132c1565b611939565b8c6132c1565b611951565b8a6132c1565b611969565b886132c1565b93806132c1565b61150e565b611489565b9112156102155761021590611466565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b61237a61237561021593612de461236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b15612f8a57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b886428490612fe760008213612f83565b711340daa0d5f769dba1915cef59f0815a55066130038261330d565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b600160ff1b8114613177576000811215610215571960010190565b604051634d2d75b160e01b8152600490fd5b670de0b6b3a76400009081810291818305149015176001161561026b57671bc16d674ec80000900590565b6703c1665c7aab20009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b669f32752462a0009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b6001811515161561026b576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029181830514901517821515161561026b570590565b671bc16d674ec7ffff1981810291600191830514161561026b57670de0b6b3a7640000900590565b6709d028cc6f205fff1981810291600191830514161561026b57670de0b6b3a7640000900590565b670fa8cedfc2adddfa90808202918205146001161561026b57670de0b6b3a7640000900590565b81810291818305149015176001161561026b57670de0b6b3a7640000900590565b67025f0fe105a314009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b613318811515612f83565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b906133966102159260208082518301019101612628565b93919290506124a9565b906133b76102159260208082518301019101612628565b9390509190916124a9565b906133d96102159260208082518301019101612628565b939290506124a9565b8051810160200190602001906133f791612a9b565b809193925051906020810151604082015191606001519261341783612ac8565b6134209061185a565b9361342a90611443565b9061343486612b86565b61343d87611981565b61344691612c38565b61344f87611981565b61345884612bb5565b613461916114a2565b61346b9089612c38565b61347491612cb5565b61347d90612cd3565b9361348784612fbb565b613490906114d8565b670de0b6b3a764000090056134a490612917565b906134ae91612c38565b6134b790612c67565b6134c0906119c9565b84866134cb86612c09565b906134d591612c38565b906134df91612c38565b6134e8916119ad565b6134f190612917565b826134fc8884612c38565b9061350691612c38565b61350f91612c38565b61351887611981565b611b0d84612bb5565b906135386102159260208082518301019101612a9b565b9493909291506119da565b80518101602001906020019061355891612a9b565b809192935051602082015190604083015192606001519361357884612ac8565b6135819061185a565b9461358b90611443565b9161359587612b86565b61359e88611981565b6135a791612c38565b6135b18383612c38565b6135ba89611981565b6135c391612c38565b6135cc906119c9565b846135d78585612c38565b6135e090612bde565b906135ea91612c38565b6135f3916119ad565b6135fc91612cb5565b613605906119c9565b61360e90612cd3565b9461361885612fbb565b613621906114d8565b670de0b6b3a7640000900561363590612917565b9061363f91612c38565b61364890612c67565b613651906119c9565b858761365c87612c09565b9061366691612c38565b9061367091612c38565b613679916119ad565b61368290612917565b8361368d898b612c38565b9061369791612c38565b6136a091612c38565b906136aa88611981565b61213085612bb5565b906136ca6102159260208082518301019101612a9b565b9493909250611fce56fea2646970667358221220f3e875cd9c43c4535da38090630f644037f96036f7dad55519e2d7d792047e4b64736f6c6343000816003360803461007457601f611bc438819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051611b3490816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b6109e4565b6109bb565b610814565b6107da565b610674565b6103dc565b6102e1565b61023d565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101df565b838082518301019101610a17565b9061010d6100ff600435610b92565b868082518301019101610a32565b92610d8d565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761015057604052565b61011e565b60c0810190811067ffffffffffffffff82111761015057604052565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101bd601f8201601f191660200184610171565b8294818452818301116101da578281602093846000960137010152565b600080fd5b9080601f830112156101da578160206101fa93359101610193565b90565b919082519283825260005b848110610229575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610208565b346101da5760003660031901126101da57604051604081019080821067ffffffffffffffff8311176101505761029a916040526009815268131bd9d39bdc9b585b60ba1b60208201526040519182916020835260208301906101fd565b0390f35b906040516080810181811067ffffffffffffffff821117610150576040526060600382948054845260018101546020850152600281015460408501520154910152565b346101da5760203660031901126101da5760043560005260016020526101c0604060002061030e8161029e565b9061031b6004820161029e565b906103bd61032b6008830161029e565b610393600c84015493600d60018060a01b03910154169461036d6040518098606080918051845260208101516020850152604081015160408501520151910152565b80516080880152602081015160a0880152604081015160c08801526060015160e0870152565b80516101008601526020810151610120860152604081015161014086015260600151610160850152565b6101808301526101a0820152f35b6001600160a01b038116036101da57565b346101da576060806003193601126101da576103f96004356103cb565b6024356044359167ffffffffffffffff83116101da576104206104829336906004016101df565b8161043c61042d85610b92565b60208082518301019101610a32565b60005490949061046290610456906001600160a01b031681565b6001600160a01b031690565b60405180809881946333854efd60e21b8352600483019190602083019252565b03915afa801561061457600091829583926105d9575b50806020806104ac93518301019101610a17565b939194909682861160001461054c5750916104ed826104e8836104e36104fe976104d96104f5988c610aa3565b908c0151906112af565b6112af565b6112db565b505b83610afe565b93828685610d8d565b9384601319129283610541575b61029a9394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b60148612935061050b565b90929091508187111561057b57610575826104e8836104e36104fe976104d96104f5988e610aa3565b506104ef565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9095506104ac92506106019150833d851161060d575b6105f98183610171565b810190610a17565b95919290959190610498565b503d6105ef565b610a81565b9060606003198301126101da57600435610632816103cb565b916024359160443567ffffffffffffffff928382116101da57806023830112156101da5781600401359384116101da57602484830101116101da576024019190565b346101da5761068236610619565b600054929350916001600160a01b031633036107c85761078661077e61042d610779956106c0608095610743976106b7610b67565b50810190610e8c565b6020819b949a9399929b01516106e0866000526001602052604060002090565b55604081015160046106fc876000526001602052604060002090565b015580516008610716876000526001602052604060002090565b01556060810151600c610733876000526001602052604060002090565b015501516001600160a01b031690565b600d610759846000526001602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610b92565b848385610d8d565b92836013191291826107bd575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b601485129250610793565b604051636853cba760e01b8152600490fd5b346101da5760606107ea36610619565b818094509492940103126101da5780359061078661077e61042d6040602085013594013595610b92565b346101da5761082236610619565b6000549093906001600160a01b0390811633036107c857610863610456600d610855876000526001602052604060002090565b01546001600160a01b031690565b9116036109a95761087683820182610b32565b61087f81610b47565b600181036108b857506108a261089d6108b392600c94953691610193565b610fc3565b926000526001602052604060002090565b01555b005b6108c181610b47565b600381036108fd5750906108e56108e06108f8936108b6953691610193565b610f19565b9290916000526001602052604060002090565b610f41565b61090681610b47565b6004810361094057509060046109276108e061093a946108b6963691610193565b9390926000526001602052604060002090565b01610f41565b61094981610b47565b6002810361096a57509060086109276108e061093a946108b6963691610193565b80610976600592610b47565b03610997576107596108a2610992600d936108b6963691610193565b610ef1565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101da5760003660031901126101da576000546040516001600160a01b039091168152602090f35b346101da5760203660031901126101da5761029a610a03600435610b92565b6040519182916020835260208301906101fd565b908160609103126101da578051916040602083015192015190565b908160a09103126101da57608060405191610a4c83610134565b805183526020810151602084015260408101516040840152606081015160608401520151610a79816103cb565b608082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610ab057565b610a8d565b91908201809211610ab057565b90671bc16d674ec8000060008382039312818412811691841390151617610ab057565b9067119000ab100ffbff198201918213600116610ab057565b81810392916000138015828513169184121617610ab057565b600160ff1b8114610ab05760000390565b600611156101da57565b908160209103126101da57356101fa81610b28565b60061115610b5157565b634e487b7160e01b600052602160045260246000fd5b60405190610b7482610134565b60006080838281528260208201528260408201528260608201520152565b610b9a610b67565b816000526001602052610bb8610bb3604060002061029e565b610ff8565b9160208201928352806000526001602052610bdc610bb3600860406000200161029e565b8252600c610c1d610c05610bb36004610bff866000526001602052604060002090565b0161029e565b92604085019384526000526001602052604060002090565b015490606083019182526040519383516020860152516040850152516060840152516080830152608060018060a01b039101511660a082015260a081526101fa81610155565b9081672005fe4f268ea00001918212600116610ab057565b9081670dc5527f642c200001918212600116610ab057565b9081670de0b6b3a764000001918212600116610ab057565b9081670b68df18e471fbff190191821215600116610ab057565b90816714a8454c19e1ac0001918212600116610ab057565b9081670fc10e01578277ff190191821215600116610ab057565b90816703debd083b8c7c0001918212600116610ab057565b9081670295d400ea3257ff190191821215600116610ab057565b9081670157d8b2ecc7080001918212600116610ab057565b90816705310aa7d521300001918212600116610ab057565b9081670de0cc3d1561000001918212600116610ab057565b91909160008382019384129112908015821691151617610ab057565b909282821015610e47576101fa93610e0a9284670de0b6b3a76400009182610db5838361130b565b10610e3457506001600160ff1b039590505b835191610ddd610dd7838561132d565b8561130b565b10610e0f57506001600160ff1b0392610e04925090505b6040602082015191015190611286565b92610d71565b610d71565b610e0492610e23610e2992610e2e9461132d565b9061130b565b6110b3565b91610df4565b610e4191610e299161130b565b94610dc7565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b80910361010081126101da5781359260208301359260a0604082013593605f1901126101da5760e060405191610ec183610134565b606081013583526080810135602084015260a0810135604084015260c081013560608401520135610a79816103cb565b6040818051810103126101da5780610f0e60206040930151610b28565b0151610456816103cb565b6060818051810103126101da57610f336020820151610b28565b606060408201519101519091565b919042821115610fb157610f57610bb38461029e565b9081845542600385015542830391838311610ab057610f7591610afe565b428314610f9b57600160ff1b8114600019831416610ab057600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101da5780610fe060206040930151610b28565b015190565b81810292918115918404141715610ab057565b606081015160208201518082146110735780421160001461106b57905b8103908111610ab05760408201908151600081136000146110485750611042906101fa9351925190610fe5565b90610ab5565b9261105f9250611059905193610b17565b90610fe5565b8103908111610ab05790565b504290611015565b50505190565b90633b9aca0091828102928184051490151715610ab057565b60008190039190600160ff1b8114600116610ab057600019830503610ab057565b6706f05b59d3b20000811461128057670de0b6b3a76400008082121561122a57811561124b5760018260011b916002938305600203610ab05760008312801561126f575b61125d57821561122a57671bc16d674ec80000831461124b57821291821561123c57925b611124846118db565b801561122a5761119661115561115061114b61114661119b959997969961146f565b61199c565b611379565b611079565b61119161116961116483611906565b610c63565b61118b61118661118061117b86611931565b610c7b565b85611a13565b610c93565b9061197a565b610afe565b6119c4565b936000925b8184106111d257505050506101fa916111bf916000146111c4576118b4565b610b17565b6111cd90610b17565b6118b4565b90916112208661121a6111ea8561119186999b611610565b61118b61120a6112056112006111bf8780611a13565b611730565b6119ec565b6112148386611a13565b90610afe565b90610d71565b95019291906111a0565b6040516307a0212760e01b8152600490fd5b61124590610ac2565b9261111b565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec8000083136110f7565b50600090565b9061129090611379565b633b9aca0090818102918183041490151715610ab0576101fa9161132d565b8181029181830414901517600116156101da576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101da57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101da570490565b8181029181830414901517600116156101da57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517600116156101da57671bc16d674ec80000900490565b60b581600160881b811015611420575b80690100000000000000000062010000921015611413575b65010000000000811015611406575b63010000008110156113f9575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916113bd565b60201c9160101b916113b0565b60401c9160201b916113a1565b5068b500000000000000009050608082901c611389565b1561143e57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642849061149b60008213611437565b711340daa0d5f769dba1915cef59f0815a55066114b782611a5f565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b801561172357675698eef06670000081121561128057675698eef0666fffff1981131561171657600061170661164583611ad1565b6116ce61120061165f61165a6111868561134e565b61195b565b92610e0a6117016116fc6116f56116ef6116ea6116e46116df6116d96116d48d6116ce6116c96116c36116be6111806116b96116b36116ae6116a86116a38a611a34565b610cab565b89611a13565b610cc5565b87611a13565b610cdd565b610cf7565b83611a13565b610d0f565b90611a13565b610d29565b8c611a13565b610d41565b8a611a13565b610d59565b88611a13565b9380611a13565b611092565b610ae5565b9112156101fa576101fa90610ac2565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b680248ce36a70cb26b3e1981131561128057680755bf798b4a1bf1e5811215611880576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be889080820291820514600116156101da57670de0b6b3a7640000900590565b670de0b6b3a7640000908181029181830514901517600116156101da57671bc16d674ec80000900590565b6703c1665c7aab2000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b669f32752462a000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b600181151516156101da576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a764000090818102918183051490151782151516156101da570590565b671bc16d674ec7ffff198181029160019183051416156101da57670de0b6b3a7640000900590565b6709d028cc6f205fff198181029160019183051416156101da57670de0b6b3a7640000900590565b670fa8cedfc2adddfa9080820291820514600116156101da57670de0b6b3a7640000900590565b8181029181830514901517600116156101da57670de0b6b3a7640000900590565b67025f0fe105a31400908181029181830514901517600116156101da57670de0b6b3a7640000900590565b611a6a811515611437565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b600160ff1b8114611aec5760008112156101fa571960010190565b604051634d2d75b160e01b8152600490fdfea2646970667358221220b596d744fe988e0f66eb3212b01d8a9e660acea43730ff108a9b5edd5f05d2b364736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a26469706673582212204cea5fd4a548aba707ee58f02c4136f24931cb068b8def7514004d288b64df5464736f6c63430008160033","sourceMap":"88:1669:77:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;709:579:79;;:::i;:::-;88:1669:77;;785:32:79;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;776:41;88:1669:77;;-1:-1:-1;;;;;;88:1669:77;-1:-1:-1;;;;;88:1669:77;;;;;;;;;;;836:32:79;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;827:41;88:1669:77;;-1:-1:-1;;;;;;88:1669:77;-1:-1:-1;;;;;88:1669:77;;;;;;776:41:79;88:1669:77;878:11:79;;88:1669:77;;-1:-1:-1;;;;;88:1669:77;;;878:11:79;:34;;;;;88:1669:77;;-1:-1:-1;;;878:34:79;;;898:4;88:1669:77;878:34:79;;88:1669:77;905:6:79;88:1669:77;;;;;;;;;;;;;;;878:34:79;;;;;;;;88:1669:77;-1:-1:-1;827:41:79;88:1669:77;;;922:11:79;;-1:-1:-1;;;;;88:1669:77;;;922:11:79;:34;;;;;;88:1669:77;;922:34:79;;;898:4;88:1669:77;922:34:79;;88:1669:77;905:6:79;88:1669:77;;;;;;;;;;;898:4:79;;922:34;;;;;;;;88:1669:77;-1:-1:-1;776:41:79;88:1669:77;981:15:79;;-1:-1:-1;;;;;88:1669:77;;;981:15:79;827:41;88:1669:77;998:15:79;;-1:-1:-1;;;;;88:1669:77;;;998:15:79;88:1669:77;;;973:46:79;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:1669:77;;;;;;;378:4:31;;;88:1669:77;378:4:31;;;;88:1669:77;378:4:31;;;;973:46:79;;;;;;;;;967:52;88:1669:77;;-1:-1:-1;;;;;;88:1669:77;-1:-1:-1;;;;;88:1669:77;;;;;;;;;;;1036:20:79;;;;;;;;;;;;;;;;;;;;;88:1669:77;;;;;;;1036:20:79;;;;;;;;;1029:27;88:1669:77;;-1:-1:-1;;;;;;88:1669:77;-1:-1:-1;;;;;88:1669:77;;;;;;;;;1092:13:79;;378:4:31;88:1669:77;1092:13:79;88:1669:77;;1078:28:79;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:1669:77;;;;;;;;;1078:28:79;;;;;;;;;1066:40;88:1669:77;;-1:-1:-1;;;;;;88:1669:77;-1:-1:-1;;;;;88:1669:77;;;;;;;;;1145:18:79;;378:4:31;88:1669:77;1145:18:79;88:1669:77;;;1125:39:79;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:1669:77;;;;;;;;;1125:39:79;;;;;;;;;;1116:48;1175;1116;785:32;88:1669:77;;;;;;;;1116:48:79;88:1669:77;;;1116:48:79;88:1669:77;;1116:48:79;776:41;88:1669:77;1175:14:79;;-1:-1:-1;;;;;88:1669:77;;;1175:14:79;1029:27;378:4:31;1190:13:79;;-1:-1:-1;;;;;88:1669:77;378:4:31;88:1669:77;1190:13:79;88:1669:77;;-1:-1:-1;;;1175:48:79;;;-1:-1:-1;;;;;88:1669:77;;;;1175:48:79;;88:1669:77;-1:-1:-1;;378:4:31;;;88:1669:77;1175:48:79;;88:1669:77;;;;1175:48:79;;88:1669:77;;1175:48:79;88:1669:77;;1175:48:79;;88:1669:77;;378:4:31;;;;;1175:48:79;;;;;;;;;;1233;1175;;;;;88:1669:77;-1:-1:-1;827:41:79;88:1669:77;1233:14:79;;-1:-1:-1;;;;;88:1669:77;;;1233:14:79;1029:27;378:4:31;;;;;;1248:13:79;;-1:-1:-1;;;;;88:1669:77;378:4:31;88:1669:77;1248:13:79;88:1669:77;;1233:48:79;;;-1:-1:-1;;;;;88:1669:77;;;;1233:48:79;;88:1669:77;-1:-1:-1;;378:4:31;;;88:1669:77;;;;;;;;378:4:31;;;;;1233:48:79;;;;;;;;;;;88:1669:77;;;1233:48:79;;;;;;-1:-1:-1;1233:48:79;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;88:1669:77;;;1233:48:79;;;;;;;:::i;1175:::-;;;;;;;;;;;;;:::i;:::-;;;;;1125:39;;:::i;922:34::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;88:1669:77;;;878:34:79;;;;;;:::i;:::-;;;;;88:1669:77;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;88:1669:77;;;;;;;378:11:59;88:1669:77;;;;;;;;;;;;;;;;;1320:10:79;;;;;88:1669:77;;-1:-1:-1;;;1320:10:79;;88:1669:77;;1320:10:79;;88:1669:77;;;;;;;;;;;;1320:10:79;;;;;;;;88:1669:77;-1:-1:-1;1434:9:79;378:4:31;;;1057:14:1;;1597:28:79;;1426:18;;-1:-1:-1;;;;;88:1669:77;378:4:31;88:1669:77;1426:18:79;1474:6;88:1669:77;1385:186:79;;1466:15;;-1:-1:-1;;;;;88:1669:77;;;1466:15:79;1511:6;88:1669:77;1385:186:79;;1503:15;;-1:-1:-1;;;;;88:1669:77;;;1503:15:79;1057:14:1;1385:186:79;1057:14:1;;:::i;:::-;-1:-1:-1;;;;;88:1669:77;;;1057:14:1;;;1385:186:79;-1:-1:-1;;;;;88:1669:77;1385:186:79;;;1057:14:1;;1385:186:79;-1:-1:-1;;;;;88:1669:77;;1385:186:79;;1057:14:1;;1385:186:79;1057:14:1;;:::i;:::-;1385:186:79;;;1057:14:1;1597:4:79;378::31;1597:9:79;;-1:-1:-1;;;;;88:1669:77;378:4:31;88:1669:77;1597:9:79;88:1669:77;;;;;;;;;;;;1597:28:79;;88:1669:77;1597:28:79;;;:::i;:::-;;;;;;;;;1582:43;1597:28;;;;;88:1669:77;1582:43:79;;1057:14:1;;1582:43:79;1636:1;;:::i;:::-;88:1669:77;;1597:28:79;;;;1057:14:1;1597:28:79;1057:14:1;1597:28:79;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;1320:10;;;;;;:::i;:::-;;;;88:1669:77;;;;;;;;;;;;;;;;;1320:10:79;;;;;88:1669:77;;-1:-1:-1;;;1320:10:79;;88:1669:77;;1320:10:79;;88:1669:77;;;;;;;;;;;;1320:10:79;;;;;;;;88:1669:77;-1:-1:-1;1434:9:79;378:4:31;;;1057:14:1;;1597:28:79;;1426:18;;-1:-1:-1;;;;;88:1669:77;378:4:31;88:1669:77;1597:28:79;;;;;;;;;1582:43;1597:28;;;;;1582:43;;1057:14:1;;1582:43:79;1636:1;;:::i;1320:10::-;;;;;;:::i;:::-;;;;88:1669:77;;;;;;-1:-1:-1;;88:1669:77;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;88:1669:77;;;;;291:22:79;88:1669:77;;;;;;;;;;;;;-1:-1:-1;;88:1669:77;;;;992:4:59;378::31;88:1669:77;;-1:-1:-1;;;992:20:59;;88:1669:77;;;992:20:59;;;88:1669:77;;;;;;;;;;-1:-1:-1;;;;;88:1669:77;992:20:59;;;;;;;-1:-1:-1;992:20:59;;;88:1669:77;1029:19:59;;;88:1669:77;;;-1:-1:-1;;;;;88:1669:77;;;;-1:-1:-1;;;;;88:1669:77;;;;;;;;;;;;;;;;;992:20:59;;;88:1669:77;992:20:59;;88:1669:77;992:20:59;;;;;;88:1669:77;992:20:59;;;:::i;:::-;;;88:1669:77;;;;;1029:19:59;88:1669:77;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;992:20:59;;;;;;;;-1:-1:-1;992:20:59;;88:1669:77;;;;;;-1:-1:-1;;88:1669:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;1057:14:1;88:1669:77;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;88:1669:77;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;88:1669:77;;;;;;;;;;;;;;-1:-1:-1;;;88:1669:77;;;;814:2:79;88:1669:77;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;88:1669:77;;;;;;;;;;;;;;-1:-1:-1;;;88:1669:77;;;;814:2:79;88:1669:77;;;;;;;:::o;378:4:31:-;;;;;;;;;;88:1669:77;;;378:4:31;;;;;:::o;1057:14:1:-;88:1669:77;;1057:14:1;-1:-1:-1;1538:22:79;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;88:1669:77;;;;;1057:14:1;88:1669:77;;;;1057:14:1;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;1538:22:79;1057:14:1;;;;;;;-1:-1:-1;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1057:14:1;;;;;;88:1669:77;1057:14:1;;;;;;;;;;;;;;;;;;88:1669:77;;1057:14:1;;;;88:1669:77;1057:14:1;;;;;88:1669:77;1057:14:1;;88:1669:77;1057:14:1;:::o;:::-;;;;;;;;-1:-1:-1;;1057:14:1;;;;:::o;:::-;;;;;;;;;;;;;;;88:1669:77;1057:14:1;;88:1669:77;;;;;;;;;;;1057:14:1;;;:::i;:::-;88:1669:77;;-1:-1:-1;;88:1669:77;1057:14:1;;;:::o;:::-;;;;;;;;785:32:79;88:1669:77;;;;1057:14:1;;;88:1669:77;1057:14:1;;;88:1669:77;1057:14:1;;;;;88:1669:77;1057:14:1;;;88:1669:77;1057:14:1;;;;88:1669:77;1057:14:1;;;88:1669:77;1057:14:1;;;;;;;;;;;:::i;:::-;;:::o;88:1669:77:-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;953:802;1132:6;88:1669;1132:23;;-1:-1:-1;;;;;88:1669:77;;;1132:23;1156:7;88:1669;;;;-1:-1:-1;;;1132:41:77;;;;;;88:1669;;;1037:9;88:1669;;;;1132:41;;;88:1669;;1132:41;;88:1669;;;;;;;1132:41;;;;;;;;;;-1:-1:-1;;;;;1132:41:77;;;953:802;-1:-1:-1;1214:4:77;378::31;1214:16:77;;-1:-1:-1;;;;;88:1669:77;378:4:31;88:1669:77;1214:16;88:1669;;-1:-1:-1;;;1214:40:77;;;1239:4;1214:40;;;88:1669;;;1214:40;378:4:31;;;88:1669:77;;;1214:40;88:1669;;;;;;;;1214:40;;88:1669;;;;378:4:31;;1214:40:77;;;;;;;;;;-1:-1:-1;1214:40:77;;;953:802;88:1669;;;;;;;1297:37;;;;;;;;;;;;88:1669;;;;;;;;1297:37;;;;;;;;;;;;;;;;-1:-1:-1;1297:37:77;;;953:802;-1:-1:-1;88:1669:77;1365:46;;;88:1669;;;;;;;;;;;1421:30;;88:1669;;;;;1365:46;;88:1669;;;;1365:46;;88:1669;;1365:46;;;;;;:::i;:::-;-1:-1:-1;88:1669:77;;;;;;;;;;;1421:30;;;;;;:::i;:::-;;;;;;;;;;;953:802;-1:-1:-1;1214:4:77;378::31;1496:28:77;;-1:-1:-1;;;;;88:1669:77;378:4:31;88:1669:77;1496:28;88:1669;1156:7;88:1669;;;;1496:37;;;;;;;;;;;88:1669;;;;;;;;1496:37;;;;;;;;;;;1698:40;1496:37;;;1643:41;1496:37;1573:38;1496:37;-1:-1:-1;1496:37:77;;;953:802;1573:38;;;:::i;:::-;1643:41;;:::i;:::-;88:1669;;1698:40;;;1239:4;1698:40;;;88:1669;;;378:4:31;;;88:1669:77;;;;;;;;;;;;378:4:31;;;;1698:40:77;;;;;;;;;;;;-1:-1:-1;1698:40:77;;;953:802;1698:40;;;:::i;:::-;;;;;;;-1:-1:-1;1698:40:77;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;1496:37;;;;;;;-1:-1:-1;1496:37:77;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;1421:30;;;;;;;;;;;;;:::i;:::-;;;;;1297:37;1365:46;1297:37;;;;;;;;;;;1365:46;1297:37;1421:30;1297:37;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1214:40;;;;;;;;;;;;;;;:::i;:::-;;;;;1132:41;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;145:802;324:6;88:1669;324:23;;-1:-1:-1;;;;;88:1669:77;;;324:23;348:7;88:1669;;;;-1:-1:-1;;;324:41:77;;;;;;88:1669;;;1037:9;88:1669;;;;324:41;;;88:1669;;324:41;;88:1669;;;;;;;324:41;88:1669;1671:64:0;;;;;;;;;;88:1669:77;;1671:64:0;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;88:1669:77;;;;;;;-1:-1:-1;;88:1669:77;1671:64:0;;88:1669:77;;:::i;:::-;1671:64:0;;;-1:-1:-1;1671:64:0;;;;:::o;:::-;;;:::o;1819:584::-;1873:7;88:1669:77;;;;;;1873:7:0;;;88:1669:77;;;;;1057:14:1;:::o;1869:528:0:-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;88:1669:77;;;;;2196:43:0;;;;;;1671:64;;;;88:1669:77;;;;1671:64:0;;;;;;88:1669:77;1671:64:0;2196:43;;;88:1669:77;;2196:43:0;;;;;;;;:::i;:::-;2086:175;88:1669:77;;2086:175:0;;;2196:43;2086:175;;;;;:::i;:::-;;;;;;;;;:::i;:::-;2047:232;;;;;2312:27;2047:232;;:::i;:::-;2196:43;88:1669:77;;;2312:27:0;;;;;;:::i;396:450:59:-;88:1669:77;;;447:32:59;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;776:41:79;88:1669:77;;-1:-1:-1;;;;;;88:1669:77;-1:-1:-1;;;;;88:1669:77;;;;;;;;;;;498:32:59;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;827:41:79;88:1669:77;;-1:-1:-1;;;;;;88:1669:77;-1:-1:-1;;;;;88:1669:77;;;;;;438:41:59;88:1669:77;540:11:59;;88:1669:77;;;540:11:59;:34;;;;;88:1669:77;;-1:-1:-1;;;540:34:59;;;560:4;540:34;;;88:1669:77;905:6:79;88:1669:77;;;;;;;;;;;;;;;540:34:59;;;;;;;;396:450;-1:-1:-1;489:41:59;88:1669:77;584:11:59;;-1:-1:-1;;;;;88:1669:77;;;584:11:59;:34;;;;;;88:1669:77;;584:34:59;;;560:4;540:34;584;;88:1669:77;905:6:79;88:1669:77;;;;;;;;;;;;;;;584:34:59;;;;;;;;396:450;-1:-1:-1;438:41:59;88:1669:77;643:15:59;;-1:-1:-1;;;;;88:1669:77;;;643:15:59;489:41;88:1669:77;660:15:59;;-1:-1:-1;;;;;88:1669:77;;;660:15:59;88:1669:77;;;635:50:59;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:1669:77;;;;;;;378:4:31;;;88:1669:77;378:4:31;;;;88:1669:77;378:4:31;;;;635:50:59;;;;;;;;;967:52:79;88:1669:77;;-1:-1:-1;;;;;;88:1669:77;-1:-1:-1;;;;;88:1669:77;;;;;;;;;;;;702:20:59;;;;;;;;;;;;;;;;;;;;88:1669:77;;;;;;;702:20:59;;;;;;;;;;695:27;733:48;695:27;785:32:79;88:1669:77;;;;;;;;1029:27:79;88:1669:77;;;1029:27:79;88:1669:77;;695:27:59;438:41;88:1669:77;733:14:59;;-1:-1:-1;;;;;88:1669:77;;;733:14:59;695:27;378:4:31;;;;748:13:59;;-1:-1:-1;;;;;88:1669:77;378:4:31;88:1669:77;748:13:59;88:1669:77;;-1:-1:-1;;;733:48:59;;;-1:-1:-1;;;;;88:1669:77;;;540:34:59;733:48;;88:1669:77;-1:-1:-1;;378:4:31;;;88:1669:77;733:48:59;;88:1669:77;;;;733:48:59;;88:1669:77;;733:48:59;88:1669:77;;;;;;378:4:31;;;;;733:48:59;;;;;;;;;;791;733;;;;;396:450;-1:-1:-1;489:41:59;88:1669:77;791:14:59;;-1:-1:-1;;;;;88:1669:77;;;791:14:59;695:27;378:4:31;;;;806:13:59;;-1:-1:-1;;;;;88:1669:77;378:4:31;88:1669:77;791:48:59;;;;;;;;;;;396:450;;:::o;791:48::-;;;;;;-1:-1:-1;791:48:59;;;;;;:::i;:::-;;396:450::o;733:48::-;;;;;;;;;;;;;:::i;:::-;;;;;584:34;;;;;;:::i;:::-;;;;540;;;;;;:::i;:::-;;;;;88:1669:77;;;5202:262:0;;5259:6;;;5255:203;;5202:262;;:::o;5255:203::-;88:1669:77;;;;;;;5286:41:0;88:1669:77;;;;;;;;;;;;;;;;-1:-1:-1;;;88:1669:77;;;;5286:41:0;88:1669:77;;;;;;;;;;;-1:-1:-1;;;88:1669:77;;;;;;;;5346:31:0;;;;;88:1669:77;;;;;;;;;;;-1:-1:-1;;;88:1669:77;;;;;;;;5396:31:0;2939:104;;;2445:359;;5255:203;88:1669:77;;;;;;2928:1:0;88:1669:77;;;2928:1:0;88:1669:77;5202:262:0:o;2445:359::-;88:1669:77;-1:-1:-1;1671:64:0;2534:196;1671:64;88:1669:77;;;;;;2645:67:0;;;;88:1669:77;;;;1671:64:0;;;88:1669:77;;;;2705:4:0;88:1669:77;;;;;2645:67:0;;;;;:::i;:::-;88:1669:77;2534:196:0;;;;;1671:64;;;;;;88:1669:77;1671:64:0;;;;;;;:::i;:::-;;;2534:196;1671:64;2534:196;;;;;;;:::i;:::-;2499:245;;;;;;;:::i;:::-;;2445:359;;;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","POOL_ID()":"e0d7d0e9","TEST_SWAP_FEE()":"620a2607","failed()":"ba414fa6","getPoolLiquidityToken(uint256)":"e21485ad","setUp()":"0a9254e4","test_LogNormal_deallocate_GivenX()":"b3fcee79","test_LogNormal_deallocate_GivenY()":"68302300"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"upper\",\"type\":\"uint256\"}],\"name\":\"BisectionLib_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"lowerResult\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"upperResult\",\"type\":\"int256\"}],\"name\":\"BisectionLib_RootOutsideBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Infinity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Min\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NegativeInfinity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfBounds\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POOL_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_SWAP_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolLiquidityToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_LogNormal_deallocate_GivenX\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_LogNormal_deallocate_GivenY\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"BisectionLib_InvalidBounds(uint256,uint256)\":[{\"details\":\"Thrown when the lower bound is greater than the upper bound.\"}],\"BisectionLib_RootOutsideBounds(int256,int256)\":[{\"details\":\"Thrown when the result of the function `fx` for each input, `upper` and `lower`, is the same sign.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/unit/strategies/LogNormal/Deallocate.t.sol\":\"LogNormalDeallocateTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/lib/SignedWadMath.sol\":{\"keccak256\":\"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a\",\"dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/solvers/LogNormal/LogNormalExtendedLib.sol\":{\"keccak256\":\"0x204015cfa704225710b310e02fd4ea4648617f580cbb08fb22306357969e4a63\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0b2df304ee8a88040b573201316e12756e74c042fddbb4ec25d23ecd34971768\",\"dweb:/ipfs/QmaC4vUQY6UAD6UrEF3rvMLyYbtQKuF9Bbgr3aqkGMzSqF\"]},\"src/solvers/LogNormal/LogNormalSolver.sol\":{\"keccak256\":\"0xe97dbbad3eb6aadeaaa7c9ad82cf08a79006ad3058e6dcbc2576e17d6337cc1d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://22e41f296c3675c79ba6a670d081e073cdb935fd44f8e739a88a250be0766004\",\"dweb:/ipfs/QmZMYJq14i3q2zKTerD836DXC9deux4EggR3BNp61J4t2U\"]},\"src/strategies/LogNormal/LogNormal.sol\":{\"keccak256\":\"0xce0e14a6180d989eff4223bd173904717c745f93c7d02e972dce9d4f5a414d15\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0fe700ac552153eb030453532afdf52d7ae1b7f8ca53b0f050ab9a9e0b1f0ee9\",\"dweb:/ipfs/QmPQW7F1wUqLKs2qPmvJq5EiBfUmPGGsW4y9dUmMtDkfnt\"]},\"src/strategies/LogNormal/LogNormalLib.sol\":{\"keccak256\":\"0x208f8cd3b02d7305d4c54cf02c07f443ddfed1c6c719e752888be208c3ad3645\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://850b799c647dfbece76c7c1daad3ac375243f66daa0eb8206eeeee783982429c\",\"dweb:/ipfs/QmUrixVb4EAxccZxvZCoAJjF8YRqnMbX6cpGCwPfjZvgQk\"]},\"src/strategies/LogNormal/LogNormalMath.sol\":{\"keccak256\":\"0x5d97983f91cf766e1e87ef244a39c6ec6961de38c4c8817030b32edd72a1e65f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://df6121bf8157bad9b659d484fdcc8ebf0cd41179b323d06225d1cf6bff266663\",\"dweb:/ipfs/QmRGN6MwWZb9f6X4Xqv7f3VpUFWXFb36jDKcyEQVaFUhhz\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]},\"src/test/helpers/MockStrategy.sol\":{\"keccak256\":\"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5\",\"dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw\"]},\"src/test/helpers/SetUp.sol\":{\"keccak256\":\"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30\",\"dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14\"]},\"src/test/unit/DFMM/SetUp.sol\":{\"keccak256\":\"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4\",\"dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm\"]},\"src/test/unit/strategies/LogNormal/Deallocate.t.sol\":{\"keccak256\":\"0xc2bd2c7f090a146bf4d44174b1546fb832846d047e6861659df94c7f093914f9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://84705e52489face5f4c55ec10a6a863560090a9127ad36b0dd91e825da6e5508\",\"dweb:/ipfs/QmccQe2eKPjdb1NjTxu2JypZq4mec8ynV282p5oxLX6oBm\"]},\"src/test/unit/strategies/LogNormal/SetUp.sol\":{\"keccak256\":\"0x272206974452b0c363a55f2658a4c24e6355f5a06fe817532c723af8f732540d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://87550594bcc0d4b66eada3e1692ac1b15064eefee9cbb356ff8c4410f4a51e78\",\"dweb:/ipfs/QmS3HCkpwfti4ifTitYoR5sRLb8ShMDvkW9ST9Ta8cUvu5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"lower","type":"uint256"},{"internalType":"uint256","name":"upper","type":"uint256"}],"type":"error","name":"BisectionLib_InvalidBounds"},{"inputs":[{"internalType":"int256","name":"lowerResult","type":"int256"},{"internalType":"int256","name":"upperResult","type":"int256"}],"type":"error","name":"BisectionLib_RootOutsideBounds"},{"inputs":[],"type":"error","name":"Infinity"},{"inputs":[],"type":"error","name":"Min"},{"inputs":[],"type":"error","name":"NegativeInfinity"},{"inputs":[],"type":"error","name":"OutOfBounds"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"POOL_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_SWAP_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolLiquidityToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_LogNormal_deallocate_GivenX"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_LogNormal_deallocate_GivenY"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/unit/strategies/LogNormal/Deallocate.t.sol":"LogNormalDeallocateTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/lib/SignedWadMath.sol":{"keccak256":"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630","urls":["bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a","dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN"],"license":"MIT"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/solvers/LogNormal/LogNormalExtendedLib.sol":{"keccak256":"0x204015cfa704225710b310e02fd4ea4648617f580cbb08fb22306357969e4a63","urls":["bzz-raw://0b2df304ee8a88040b573201316e12756e74c042fddbb4ec25d23ecd34971768","dweb:/ipfs/QmaC4vUQY6UAD6UrEF3rvMLyYbtQKuF9Bbgr3aqkGMzSqF"],"license":"GPL-3.0-or-later"},"src/solvers/LogNormal/LogNormalSolver.sol":{"keccak256":"0xe97dbbad3eb6aadeaaa7c9ad82cf08a79006ad3058e6dcbc2576e17d6337cc1d","urls":["bzz-raw://22e41f296c3675c79ba6a670d081e073cdb935fd44f8e739a88a250be0766004","dweb:/ipfs/QmZMYJq14i3q2zKTerD836DXC9deux4EggR3BNp61J4t2U"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormal.sol":{"keccak256":"0xce0e14a6180d989eff4223bd173904717c745f93c7d02e972dce9d4f5a414d15","urls":["bzz-raw://0fe700ac552153eb030453532afdf52d7ae1b7f8ca53b0f050ab9a9e0b1f0ee9","dweb:/ipfs/QmPQW7F1wUqLKs2qPmvJq5EiBfUmPGGsW4y9dUmMtDkfnt"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormalLib.sol":{"keccak256":"0x208f8cd3b02d7305d4c54cf02c07f443ddfed1c6c719e752888be208c3ad3645","urls":["bzz-raw://850b799c647dfbece76c7c1daad3ac375243f66daa0eb8206eeeee783982429c","dweb:/ipfs/QmUrixVb4EAxccZxvZCoAJjF8YRqnMbX6cpGCwPfjZvgQk"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormalMath.sol":{"keccak256":"0x5d97983f91cf766e1e87ef244a39c6ec6961de38c4c8817030b32edd72a1e65f","urls":["bzz-raw://df6121bf8157bad9b659d484fdcc8ebf0cd41179b323d06225d1cf6bff266663","dweb:/ipfs/QmRGN6MwWZb9f6X4Xqv7f3VpUFWXFb36jDKcyEQVaFUhhz"],"license":"GPL-3.0-or-later"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"},"src/test/helpers/MockStrategy.sol":{"keccak256":"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a","urls":["bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5","dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw"],"license":"UNLICENSED"},"src/test/helpers/SetUp.sol":{"keccak256":"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb","urls":["bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30","dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14"],"license":"UNLICENSED"},"src/test/unit/DFMM/SetUp.sol":{"keccak256":"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a","urls":["bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4","dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm"],"license":"UNLICENSED"},"src/test/unit/strategies/LogNormal/Deallocate.t.sol":{"keccak256":"0xc2bd2c7f090a146bf4d44174b1546fb832846d047e6861659df94c7f093914f9","urls":["bzz-raw://84705e52489face5f4c55ec10a6a863560090a9127ad36b0dd91e825da6e5508","dweb:/ipfs/QmccQe2eKPjdb1NjTxu2JypZq4mec8ynV282p5oxLX6oBm"],"license":"UNLICENSED"},"src/test/unit/strategies/LogNormal/SetUp.sol":{"keccak256":"0x272206974452b0c363a55f2658a4c24e6355f5a06fe817532c723af8f732540d","urls":["bzz-raw://87550594bcc0d4b66eada3e1692ac1b15064eefee9cbb356ff8c4410f4a51e78","dweb:/ipfs/QmS3HCkpwfti4ifTitYoR5sRLb8ShMDvkW9ST9Ta8cUvu5"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/unit/strategies/LogNormal/Deallocate.t.sol","id":48198,"exportedSymbols":{"ArbiterToken":[43381],"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"DFMM":[29062],"DFMMSetUp":[45761],"DSTest":[1786],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"LPToken":[29516],"Lex":[44392],"LibString":[26659],"LogNormal":[38879],"LogNormalDeallocateTest":[48197],"LogNormalLib":[39517],"LogNormalSetUp":[48576],"LogNormalSolver":[36460],"MAX_ITER":[33842],"Min":[27736],"MockERC20":[25560],"MockStrategy":[44649],"ONE":[30639],"SQRT_WAD":[30630],"SafeTransferLib":[26744],"SetUp":[44852],"SignedWadMathLib":[30623],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"TWO":[30633],"Test":[8195],"TestBase":[1843],"Vm":[9352],"WETH":[26027],"ZERO":[30649],"abs":[27763],"bisection":[31118],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeD1":[34040],"computeD2":[34104],"computeHalfSigmaTauSquared":[39613],"computeInitialPoolData":[34282],"computeLGivenX":[33886],"computeLnSDivK":[39549],"computeNextLiquidity":[34383],"computeNextRx":[34484],"computeNextRy":[34585],"computeOptimalLower":[35332],"computeOptimalRaise":[35398],"computeScalingFactor":[30048],"computeSigmaSqrtTau":[39577],"computeXGivenL":[33976],"computeYGivenL":[33932],"console":[17416],"console2":[25512],"diffLower":[34961],"diffRaise":[35266],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"findRootLiquidity":[34224],"findRootLower":[34631],"findRootRaise":[34677],"findRootX":[34184],"findRootY":[34144],"muli":[27777],"muliWad":[27795],"mulidiv":[39703],"mulidivUp":[39659],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"39:1719:77","nodes":[{"id":48027,"nodeType":"PragmaDirective","src":"39:24:77","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":48028,"nodeType":"ImportDirective","src":"65:21:77","nodes":[],"absolutePath":"src/test/unit/strategies/LogNormal/SetUp.sol","file":"./SetUp.sol","nameLocation":"-1:-1:-1","scope":48198,"sourceUnit":48577,"symbolAliases":[],"unitAlias":""},{"id":48197,"nodeType":"ContractDefinition","src":"88:1669:77","nodes":[{"id":48113,"nodeType":"FunctionDefinition","src":"145:802:77","nodes":[],"body":{"id":48112,"nodeType":"Block","src":"201:746:77","nodes":[],"statements":[{"assignments":[48036],"declarations":[{"constant":false,"id":48036,"mutability":"mutable","name":"amountX","nameLocation":"219:7:77","nodeType":"VariableDeclaration","scope":48112,"src":"211:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48035,"name":"uint256","nodeType":"ElementaryTypeName","src":"211:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48038,"initialValue":{"hexValue":"302e31","id":48037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"229:9:77","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"211:27:77"},{"assignments":[48040,48042,48044],"declarations":[{"constant":false,"id":48040,"mutability":"mutable","name":"reserveX","nameLocation":"258:8:77","nodeType":"VariableDeclaration","scope":48112,"src":"250:16:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48039,"name":"uint256","nodeType":"ElementaryTypeName","src":"250:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48042,"mutability":"mutable","name":"reserveY","nameLocation":"276:8:77","nodeType":"VariableDeclaration","scope":48112,"src":"268:16:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48041,"name":"uint256","nodeType":"ElementaryTypeName","src":"268:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48044,"mutability":"mutable","name":"deltaLiquidity","nameLocation":"294:14:77","nodeType":"VariableDeclaration","scope":48112,"src":"286:22:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48043,"name":"uint256","nodeType":"ElementaryTypeName","src":"286:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48050,"initialValue":{"arguments":[{"id":48047,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"348:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48048,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48036,"src":"357:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48045,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48318,"src":"324:6:77","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":48046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"331:16:77","memberName":"deallocateGivenX","nodeType":"MemberAccess","referencedDeclaration":35741,"src":"324:23:77","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) view external returns (uint256,uint256,uint256)"}},"id":48049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"324:41:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"249:116:77"},{"assignments":[48052],"declarations":[{"constant":false,"id":48052,"mutability":"mutable","name":"preLiquidityBalance","nameLocation":"384:19:77","nodeType":"VariableDeclaration","scope":48112,"src":"376:27:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48051,"name":"uint256","nodeType":"ElementaryTypeName","src":"376:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48061,"initialValue":{"arguments":[{"arguments":[{"id":48057,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"431:4:77","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalDeallocateTest_$48197","typeString":"contract LogNormalDeallocateTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormalDeallocateTest_$48197","typeString":"contract LogNormalDeallocateTest"}],"id":48056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"423:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48055,"name":"address","nodeType":"ElementaryTypeName","src":"423:7:77","typeDescriptions":{}}},"id":48058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"423:13:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48059,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"438:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48053,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"406:4:77","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":48054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"411:11:77","memberName":"liquidityOf","nodeType":"MemberAccess","referencedDeclaration":29061,"src":"406:16:77","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":48060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"406:40:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"376:70:77"},{"assignments":[null,null,48063],"declarations":[null,null,{"constant":false,"id":48063,"mutability":"mutable","name":"preTotalLiquidity","nameLocation":"468:17:77","nodeType":"VariableDeclaration","scope":48112,"src":"460:25:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48062,"name":"uint256","nodeType":"ElementaryTypeName","src":"460:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48068,"initialValue":{"arguments":[{"id":48066,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"518:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48064,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"489:4:77","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":48065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"494:23:77","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29012,"src":"489:28:77","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":48067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"489:37:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"456:70:77"},{"assignments":[48070],"declarations":[{"constant":false,"id":48070,"mutability":"mutable","name":"data","nameLocation":"550:4:77","nodeType":"VariableDeclaration","scope":48112,"src":"537:17:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48069,"name":"bytes","nodeType":"ElementaryTypeName","src":"537:5:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":48077,"initialValue":{"arguments":[{"id":48073,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48040,"src":"568:8:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48074,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48042,"src":"578:8:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48075,"name":"deltaLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48044,"src":"588:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48071,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"557:3:77","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"561:6:77","memberName":"encode","nodeType":"MemberAccess","src":"557:10:77","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":48076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"557:46:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"537:66:77"},{"expression":{"arguments":[{"id":48081,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"629:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48082,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48070,"src":"638:4:77","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48078,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"613:4:77","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":48080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"618:10:77","memberName":"deallocate","nodeType":"MemberAccess","referencedDeclaration":28288,"src":"613:15:77","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256,uint256,uint256)"}},"id":48083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"613:30:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"id":48084,"nodeType":"ExpressionStatement","src":"613:30:77"},{"assignments":[null,null,48086],"declarations":[null,null,{"constant":false,"id":48086,"mutability":"mutable","name":"postTotalLiquidity","nameLocation":"666:18:77","nodeType":"VariableDeclaration","scope":48112,"src":"658:26:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48085,"name":"uint256","nodeType":"ElementaryTypeName","src":"658:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48091,"initialValue":{"arguments":[{"id":48089,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"717:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48087,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"688:4:77","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":48088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"693:23:77","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29012,"src":"688:28:77","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":48090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"688:37:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"654:71:77"},{"assignments":[48093],"declarations":[{"constant":false,"id":48093,"mutability":"mutable","name":"deltaTotalLiquidity","nameLocation":"743:19:77","nodeType":"VariableDeclaration","scope":48112,"src":"735:27:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48092,"name":"uint256","nodeType":"ElementaryTypeName","src":"735:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48097,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48094,"name":"preTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48063,"src":"765:17:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":48095,"name":"postTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48086,"src":"785:18:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"765:38:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"735:68:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48099,"name":"preLiquidityBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48052,"src":"835:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":48100,"name":"deltaTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48093,"src":"857:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"835:41:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":48106,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"915:4:77","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalDeallocateTest_$48197","typeString":"contract LogNormalDeallocateTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormalDeallocateTest_$48197","typeString":"contract LogNormalDeallocateTest"}],"id":48105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"907:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48104,"name":"address","nodeType":"ElementaryTypeName","src":"907:7:77","typeDescriptions":{}}},"id":48107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"907:13:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48108,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"922:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48102,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"890:4:77","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":48103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"895:11:77","memberName":"liquidityOf","nodeType":"MemberAccess","referencedDeclaration":29061,"src":"890:16:77","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":48109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"890:40:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48098,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"813:8:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":48110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"813:127:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48111,"nodeType":"ExpressionStatement","src":"813:127:77"}]},"functionSelector":"b3fcee79","implemented":true,"kind":"function","modifiers":[{"id":48033,"kind":"modifierInvocation","modifierName":{"id":48032,"name":"init","nameLocations":["196:4:77"],"nodeType":"IdentifierPath","referencedDeclaration":48514,"src":"196:4:77"},"nodeType":"ModifierInvocation","src":"196:4:77"}],"name":"test_LogNormal_deallocate_GivenX","nameLocation":"154:32:77","parameters":{"id":48031,"nodeType":"ParameterList","parameters":[],"src":"186:2:77"},"returnParameters":{"id":48034,"nodeType":"ParameterList","parameters":[],"src":"201:0:77"},"scope":48197,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":48196,"nodeType":"FunctionDefinition","src":"953:802:77","nodes":[],"body":{"id":48195,"nodeType":"Block","src":"1009:746:77","nodes":[],"statements":[{"assignments":[48119],"declarations":[{"constant":false,"id":48119,"mutability":"mutable","name":"amountX","nameLocation":"1027:7:77","nodeType":"VariableDeclaration","scope":48195,"src":"1019:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48118,"name":"uint256","nodeType":"ElementaryTypeName","src":"1019:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48121,"initialValue":{"hexValue":"302e31","id":48120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1037:9:77","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"1019:27:77"},{"assignments":[48123,48125,48127],"declarations":[{"constant":false,"id":48123,"mutability":"mutable","name":"reserveX","nameLocation":"1066:8:77","nodeType":"VariableDeclaration","scope":48195,"src":"1058:16:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48122,"name":"uint256","nodeType":"ElementaryTypeName","src":"1058:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48125,"mutability":"mutable","name":"reserveY","nameLocation":"1084:8:77","nodeType":"VariableDeclaration","scope":48195,"src":"1076:16:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48124,"name":"uint256","nodeType":"ElementaryTypeName","src":"1076:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48127,"mutability":"mutable","name":"deltaLiquidity","nameLocation":"1102:14:77","nodeType":"VariableDeclaration","scope":48195,"src":"1094:22:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48126,"name":"uint256","nodeType":"ElementaryTypeName","src":"1094:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48133,"initialValue":{"arguments":[{"id":48130,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"1156:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48131,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48119,"src":"1165:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48128,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48318,"src":"1132:6:77","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":48129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1139:16:77","memberName":"deallocateGivenY","nodeType":"MemberAccess","referencedDeclaration":35796,"src":"1132:23:77","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) view external returns (uint256,uint256,uint256)"}},"id":48132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1132:41:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1057:116:77"},{"assignments":[48135],"declarations":[{"constant":false,"id":48135,"mutability":"mutable","name":"preLiquidityBalance","nameLocation":"1192:19:77","nodeType":"VariableDeclaration","scope":48195,"src":"1184:27:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48134,"name":"uint256","nodeType":"ElementaryTypeName","src":"1184:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48144,"initialValue":{"arguments":[{"arguments":[{"id":48140,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1239:4:77","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalDeallocateTest_$48197","typeString":"contract LogNormalDeallocateTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormalDeallocateTest_$48197","typeString":"contract LogNormalDeallocateTest"}],"id":48139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1231:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48138,"name":"address","nodeType":"ElementaryTypeName","src":"1231:7:77","typeDescriptions":{}}},"id":48141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1231:13:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48142,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"1246:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48136,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1214:4:77","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":48137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1219:11:77","memberName":"liquidityOf","nodeType":"MemberAccess","referencedDeclaration":29061,"src":"1214:16:77","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":48143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1214:40:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1184:70:77"},{"assignments":[null,null,48146],"declarations":[null,null,{"constant":false,"id":48146,"mutability":"mutable","name":"preTotalLiquidity","nameLocation":"1276:17:77","nodeType":"VariableDeclaration","scope":48195,"src":"1268:25:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48145,"name":"uint256","nodeType":"ElementaryTypeName","src":"1268:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48151,"initialValue":{"arguments":[{"id":48149,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"1326:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48147,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1297:4:77","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":48148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1302:23:77","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29012,"src":"1297:28:77","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":48150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1297:37:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1264:70:77"},{"assignments":[48153],"declarations":[{"constant":false,"id":48153,"mutability":"mutable","name":"data","nameLocation":"1358:4:77","nodeType":"VariableDeclaration","scope":48195,"src":"1345:17:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48152,"name":"bytes","nodeType":"ElementaryTypeName","src":"1345:5:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":48160,"initialValue":{"arguments":[{"id":48156,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48123,"src":"1376:8:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48157,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48125,"src":"1386:8:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48158,"name":"deltaLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48127,"src":"1396:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48154,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1365:3:77","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48155,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1369:6:77","memberName":"encode","nodeType":"MemberAccess","src":"1365:10:77","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":48159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1365:46:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1345:66:77"},{"expression":{"arguments":[{"id":48164,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"1437:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48165,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48153,"src":"1446:4:77","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48161,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1421:4:77","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":48163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1426:10:77","memberName":"deallocate","nodeType":"MemberAccess","referencedDeclaration":28288,"src":"1421:15:77","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256,uint256,uint256)"}},"id":48166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1421:30:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"id":48167,"nodeType":"ExpressionStatement","src":"1421:30:77"},{"assignments":[null,null,48169],"declarations":[null,null,{"constant":false,"id":48169,"mutability":"mutable","name":"postTotalLiquidity","nameLocation":"1474:18:77","nodeType":"VariableDeclaration","scope":48195,"src":"1466:26:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48168,"name":"uint256","nodeType":"ElementaryTypeName","src":"1466:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48174,"initialValue":{"arguments":[{"id":48172,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"1525:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48170,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1496:4:77","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":48171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1501:23:77","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29012,"src":"1496:28:77","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":48173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1496:37:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1462:71:77"},{"assignments":[48176],"declarations":[{"constant":false,"id":48176,"mutability":"mutable","name":"deltaTotalLiquidity","nameLocation":"1551:19:77","nodeType":"VariableDeclaration","scope":48195,"src":"1543:27:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48175,"name":"uint256","nodeType":"ElementaryTypeName","src":"1543:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48180,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48177,"name":"preTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48146,"src":"1573:17:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":48178,"name":"postTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48169,"src":"1593:18:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1573:38:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1543:68:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48182,"name":"preLiquidityBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48135,"src":"1643:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":48183,"name":"deltaTotalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48176,"src":"1665:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1643:41:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":48189,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1723:4:77","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalDeallocateTest_$48197","typeString":"contract LogNormalDeallocateTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormalDeallocateTest_$48197","typeString":"contract LogNormalDeallocateTest"}],"id":48188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1715:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48187,"name":"address","nodeType":"ElementaryTypeName","src":"1715:7:77","typeDescriptions":{}}},"id":48190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1715:13:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48191,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"1730:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48185,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1698:4:77","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":48186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1703:11:77","memberName":"liquidityOf","nodeType":"MemberAccess","referencedDeclaration":29061,"src":"1698:16:77","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":48192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1698:40:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48181,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"1621:8:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":48193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1621:127:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48194,"nodeType":"ExpressionStatement","src":"1621:127:77"}]},"functionSelector":"68302300","implemented":true,"kind":"function","modifiers":[{"id":48116,"kind":"modifierInvocation","modifierName":{"id":48115,"name":"init","nameLocations":["1004:4:77"],"nodeType":"IdentifierPath","referencedDeclaration":48514,"src":"1004:4:77"},"nodeType":"ModifierInvocation","src":"1004:4:77"}],"name":"test_LogNormal_deallocate_GivenY","nameLocation":"962:32:77","parameters":{"id":48114,"nodeType":"ParameterList","parameters":[],"src":"994:2:77"},"returnParameters":{"id":48117,"nodeType":"ParameterList","parameters":[],"src":"1009:0:77"},"scope":48197,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":48029,"name":"LogNormalSetUp","nameLocations":["124:14:77"],"nodeType":"IdentifierPath","referencedDeclaration":48576,"src":"124:14:77"},"id":48030,"nodeType":"InheritanceSpecifier","src":"124:14:77"}],"canonicalName":"LogNormalDeallocateTest","contractDependencies":[25560,29062,36460,38879,44392],"contractKind":"contract","fullyImplemented":true,"internalFunctionIDs":{"34224":1},"linearizedBaseContracts":[48197,48576,44852,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"LogNormalDeallocateTest","nameLocation":"97:23:77","scope":48198,"usedErrors":[26761,26763,26765,27736,30985,30992],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":77} \ No newline at end of file diff --git a/out/Deployment.s.sol/DeploymentScript.json b/out/Deployment.s.sol/DeploymentScript.json deleted file mode 100644 index ccb1c4a4..00000000 --- a/out/Deployment.s.sol/DeploymentScript.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_SCRIPT","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"run","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080806040523461002357600160ff19600c541617600c5561882190816100298239f35b600080fdfe60808060405260043610156200001457600080fd5b600090813560e01c908163c04062261462000061575063f8ccbf47146200003a57600080fd5b346200005e57806003193601126200005e57602060ff600c54166040519015158152f35b80fd5b82346200005e57806003193601126200005e5763c1978d1f60e01b825260249160206004820152601683820152754445504c4f594d454e545f505249564154455f4b455960501b6044820152602081606481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa9081156200064c57829162000720575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156200071c576040519063ce817d4760e01b825260048201528181848183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156200064c576200070a575b50906040516111768082019082821067ffffffffffffffff831117620006f757908291620018c68339039083f09081156200064c57604051612f218082019082821067ffffffffffffffff831117620006e457602091839162002a3c83396001600160a01b038616815203019084f0918215620006d9576040516112cb8082019082821067ffffffffffffffff831117620006c65760209183916200595d83396001600160a01b038716815203019085f0918215620006bb57604051611bc48082019082821067ffffffffffffffff8311176200069257602091839162006c2883396001600160a01b038816815203019086f0928315620006b05760405161106b810181811067ffffffffffffffff82111762000692578160e09161106b6200085b83396060815260096060820152682aa9a2102a37b5b2b760b91b608082015260a06020820152600460a0820152635553444360e01b60c08201526006604082015203019087f0938415620006a5576040518061106b81011067ffffffffffffffff61106b83011117620006925761106b6200085b8239606061106b8201818152600a918101919091526915195d1a195c881554d160b21b608082015260a060208201819052600490820152631554d11560e21b60c08201526006604082015281900360e0019088f090811562000687576040518061106b81011067ffffffffffffffff61106b83011117620006745761106b6200085b8239606061106b8201818152600e918101919091526d2220a49029ba30b13632b1b7b4b760911b608082015260a0602082018190526003908201526244414960e81b60c08201526012604082015281900360e0019089f09384156200065757604051908161106b81011067ffffffffffffffff61106b8401111762000662575061106b6200085b8239606061106b8201818152600f918101919091526e2bb930b83832b2102134ba31b7b4b760891b608082015260a060208201819052600490820152635742544360e01b60c08201526012604082015281900360e0019089f095861562000657576200051f620005b196620004ee6200055094620004b8620005819862000488620005e29e60405190620004668262000783565b6005825264222326a69d60d91b60208301526001600160a01b031690620007c3565b60405190620004978262000783565b60048252632399a69d60e11b60208301526001600160a01b031690620007c3565b60405190620004c78262000783565b600a8252692637b3a737b936b0b61d60b11b60208301526001600160a01b031690620007c3565b60405190620004fd8262000783565b60058252642ba2aa241d60d91b60208301526001600160a01b031690620007c3565b604051906200052e8262000783565b60058252642aa9a2219d60d91b60208301526001600160a01b031690620007c3565b604051906200055f8262000783565b60058252642aa9a22a1d60d91b60208301526001600160a01b031690620007c3565b60405190620005908262000783565b60048252632220a49d60e11b60208301526001600160a01b031690620007c3565b60405190620005c08262000783565b60058252642ba12a219d60d91b60208301526001600160a01b031690620007c3565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156200005e57604051633b756e9b60e11b81528190818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156200064c57620006395750f35b620006449062000758565b6200005e5780f35b6040513d84823e3d90fd5b6040513d8a823e3d90fd5b634e487b7160e01b8a52604160045289fd5b634e487b7160e01b895260416004528489fd5b6040513d89823e3d90fd5b634e487b7160e01b885260416004528388fd5b6040513d88823e3d90fd5b6040513d87823e3d90fd5b6040513d86823e3d90fd5b634e487b7160e01b875260416004528487fd5b6040513d85823e3d90fd5b634e487b7160e01b865260416004528386fd5b634e487b7160e01b855260416004528385fd5b620007159062000758565b8262000133565b5080fd5b90506020813d6020116200074f575b816200073e60209383620007a0565b810103126200071c575183620000da565b3d91506200072f565b67ffffffffffffffff81116200076d57604052565b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176200076d57604052565b90601f8019910116810190811067ffffffffffffffff8211176200076d57604052565b60405190602092602083019363319af33360e01b85526040602485015282519283606486015260005b84811062000845575050509162000832608482846000979596888481998501015260018060a01b03166044830152601f80199101168101036064810184520182620007a0565b51906a636f6e736f6c652e6c6f675afa50565b818101830151868201608401528201620007ec56fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360e0604081815234620004285762000017826200042d565b600d825260206c2bb930b83832b21022ba3432b960991b8184015281519262000040846200042d565b60048452630ae8aa8960e31b8285015280516001600160401b03939084811162000412576000908062000074835462000449565b94601f95868111620003c1575b508690868311600114620003595784926200034d575b50508160011b916000199060031b1c19161781555b85518581116200033957600190620000c5825462000449565b858111620002f1575b50858582116001146200028c578394959697988293949262000280575b5050600019600383901b1c191690821b1781555b60126080524660a05282519382908354926200011b8462000449565b90818852888801948982821691826000146200026357505060011462000227575b505085601f1992030116840193808510878611176200021357848452519020938301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c083019483861090861117620001ff575083905251902060c052610cef908162000487823960805181610597015260a051816109fe015260c05181610a250152f35b634e487b7160e01b81526041600452602490fd5b634e487b7160e01b83526041600452602483fd5b90889293508580528286209186925b8284106200024d575050508601019038806200013c565b80548a85018601528a9490930192810162000236565b92509394505060ff19168452151560051b8601019038806200013c565b015190503880620000eb565b82845286842090601f198316855b818110620002db5750998385969798999a9b10620002c1575b505050811b018155620000ff565b015160001960f88460031b161c19169055388080620002b3565b8b8301518455928501929189019189016200029a565b8284528684208680840160051c8201928985106200032f575b0160051c019083905b82811062000323575050620000ce565b85815501839062000313565b925081926200030a565b634e487b7160e01b82526041600452602482fd5b01519050388062000097565b8480528785209250601f198416855b89828210620003aa57505090846001959493921062000390575b505050811b018155620000ac565b015160001960f88460031b161c1916905538808062000382565b600185968293968601518155019501930162000368565b9091508380528684208680850160051c82019289861062000408575b9085949392910160051c01905b818110620003f9575062000081565b858155849350600101620003ea565b92508192620003dd565b634e487b7160e01b600052604160045260246000fd5b600080fd5b604081019081106001600160401b038211176200041257604052565b90600182811c921680156200047b575b60208310146200046557565b634e487b7160e01b600052602260045260246000fd5b91607f16916200045956fe60806040526004361015610023575b361561001957600080fd5b610021610b96565b005b60003560e01c806306fdde0314610103578063095ea7b3146100fe57806318160ddd146100f957806323b872dd146100f45780632e1a7d4d146100ef578063313ce567146100ea5780633644e515146100e557806370a08231146100e05780637ecebe00146100db57806395d89b41146100d6578063a9059cbb146100d1578063d0e30db0146100cc578063d505accf146100c75763dd62ed3e0361000e5761097e565b610788565b610774565b6106f9565b610652565b610618565b6105de565b6105bb565b61057d565b6104af565b610384565b610366565b6102db565b6101c3565b90600182811c92168015610138575b602083101461012257565b634e487b7160e01b600052602260045260246000fd5b91607f1691610117565b90601f8019910116810190811067ffffffffffffffff82111761016457604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106101af57505060409293506000838284010152601f8019910116010190565b81810186015184820160400152850161018d565b346102aa576000806003193601126102a75760405190808054906101e682610108565b8085529160209160019182811690811561027a5750600114610223575b61021f8661021381880382610142565b6040519182918261017a565b0390f35b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610267575050505081016020016102138261021f38610203565b805486860184015293820193810161024a565b905086955061021f9693506020925061021394915060ff191682840152151560051b820101929338610203565b80fd5b600080fd5b600435906001600160a01b03821682036102aa57565b602435906001600160a01b03821682036102aa57565b346102aa5760403660031901126102aa576102f46102af565b60243590336000526004602052816103228260406000209060018060a01b0316600052602052604060002090565b556040519182526001600160a01b03169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3602060405160018152f35b346102aa5760003660031901126102aa576020600254604051908152f35b346102aa5760603660031901126102aa5761039d6102af565b6103a56102c5565b6001600160a01b038083166000818152600460209081526040808320338452909152902060443594919391929190546001810161044d575b50610409600080516020610c9a8339815191529360018060a01b03166000526003602052604060002090565b6104148682546109ec565b90556001600160a01b0381166000908152600360209081526040918290208054880190559051958652911693a360405160018152602090f35b8581039081116104aa57600080516020610c9a83398151915293610409916104a23361048b8460018060a01b03166000526004602052604060002090565b9060018060a01b0316600052602052604060002090565b5593506103dd565b6109d6565b346102aa5760203660031901126102aa576004356000903382526003602052604082209081548181039081116104aa57838080809481948755806002540360025581604051828152600080516020610c9a83398151915260203392a36040518181527f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6560203392a2335af1156105425780f35b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b346102aa5760003660031901126102aa57602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102aa5760003660031901126102aa5760206105d66109f9565b604051908152f35b346102aa5760203660031901126102aa576001600160a01b036105ff6102af565b1660005260036020526020604060002054604051908152f35b346102aa5760203660031901126102aa576001600160a01b036106396102af565b1660005260056020526020604060002054604051908152f35b346102aa576000806003193601126102a7576040519080600180549061067782610108565b808652926020926001811690811561027a57506001146106a15761021f8661021381880382610142565b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106106e6575050505081016020016102138261021f38610203565b80548686018401529382019381016106c9565b346102aa5760403660031901126102aa576107126102af565b6024359033600052600360205260406000208054908382039182116104aa575560018060a01b0316908160005260036020526040600020818154019055604051908152600080516020610c9a83398151915260203392a3602060405160018152f35b60003660031901126102aa57610021610b96565b346102aa5760e03660031901126102aa576107a16102af565b6107a96102c5565b90604435606435926084359360ff851685036102aa576108dd6020916107d142821015610c04565b6108a46108b06107df6109f9565b92886107fd8160018060a01b03166000526005602052604060002090565b805460018101909155604080517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a82019081526001600160a01b039485166020820152938b1691840191909152606083018b9052608083019190915260a08201929092528160c08201039161087b601f1993848101835282610142565b5190206040519384918883019687909160429261190160f01b8352600283015260228201520190565b03908101835282610142565b5190206040805191825260ff909716602082015260a4359681019690965260c43560608701526080860190565b856000968792838052039060015afa156109795783517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916001600160a01b0391849061095a90839061048b90610940878216801515908161096d575b50610c5c565b6001600160a01b0316600090815260046020526040902090565b556040519384528116931691602090a380f35b9050888c16143861093a565b610c50565b346102aa5760403660031901126102aa5760206109cd61099c6102af565b6109a46102c5565b6001600160a01b0391821660009081526004855260408082209290931681526020919091522090565b54604051908152f35b634e487b7160e01b600052601160045260246000fd5b919082039182116104aa57565b6000467f000000000000000000000000000000000000000000000000000000000000000003610a4757507f000000000000000000000000000000000000000000000000000000000000000090565b6040518154919081610a5884610108565b8083526020948584019460019187600182169182600014610b71575050600114610b19575b5050509181610a94610b1393610b05950382610142565b519020604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f95810195865260208601929092527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc69085015246606085015230608085015291829060a0850190565b03601f198101835282610142565b51902090565b91908693508280527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b828410610b5c5750505082010181610a94610b13610a7d565b80548685018601528794909301928101610b43565b60ff1916885293151560051b86019093019350849250610a949150610b139050610a7d565b6002543481018091116104aa5760025533600052600360205260406000203481540190556040513481526000600080516020610c9a83398151915260203393a36040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a2565b15610c0b57565b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b6040513d6000823e3d90fd5b15610c6357565b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e2c89f20a3186bd00a15b6a9db0c6517d9bd6f92df9703dd9ee286a75c8e0b6c64736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360a03461007f57601f6112cb38819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f57608052604051611230908161009b82396080518181816103b701528181610612015281816107c601526109240152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b610953565b61090e565b6107ad565b610773565b6105f6565b610331565b6102ae565b610221565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101c3565b838082518301019101610986565b9061010d6100ff600435610a7f565b8680825183010191016109a1565b92610b68565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761015057604052565b61011e565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101a1601f8201601f191660200184610155565b8294818452818301116101be578281602093846000960137010152565b600080fd5b9080601f830112156101be578160206101de93359101610177565b90565b919082519283825260005b84811061020d575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101ec565b346101be5760003660031901126101be57604051604081019080821067ffffffffffffffff8311176101505761027891604052600381526247334d60e81b60208201526040519182916020835260208301906101e1565b0390f35b9060405161028981610134565b6060600382948054845260018101546020850152600281015460408501520154910152565b346101be5760203660031901126101be57600435600052600060205260c060406000206102da8161027c565b90600481015490600560018060a01b03910154169060606040519380518552602081015160208601526040810151604086015201516060840152608083015260a0820152f35b6001600160a01b038116036101be57565b346101be5760603660031901126101be5761034d600435610320565b60243560443567ffffffffffffffff81116101be576103709036906004016101c3565b9061037a81610a7f565b90610390825192602080809583010191016109a1565b6040516333854efd60e21b8152600481018390529092906060816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa948515610596576000908192829761055d575b508084806103ff93518301019101610986565b949195909787878581116000146104c45793610454869461044e866104496104769b9761044461046198604061043b61046d9f6104679f610a08565b91015190610f48565b610f48565b610f74565b50610a7f565b80518101820191016109a1565b91610bb9565b83610a27565b93828685610b68565b93846013191292836104b9575b6102789394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b601486129350610483565b5050919290938089116000146104ff5761046161046d946104546104769761044e856104498f998f61044490604061043b866104679f610a08565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9096506103ff9250610587915060603d60601161058f575b61057f8183610155565b810190610986565b9690926103ec565b503d610575565b6109e6565b9060606003198301126101be576004356105b481610320565b916024359160443567ffffffffffffffff928382116101be57806023830112156101be5781600401359384116101be57602484830101116101be576024019190565b346101be576106043661059b565b9192506001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610761578160c091810103126101be5780359160208201359160408101359460608201359060a08301359261066984610320565b670de0b6b3a764000083101561074f5761070d946107059460806106f1936106f69661069f876000526000602052604060002090565b55013560046106b8866000526000602052604060002090565b01551660056106d1846000526000602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610a7f565b602080825183010191016109a1565b848385610b68565b9283601319129182610744575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b60148512925061071a565b60405163e8a38a6160e01b8152600490fd5b604051636853cba760e01b8152600490fd5b346101be5760606107833661059b565b818094509492940103126101be5780359061070d6107056106f66040602085013594013595610a7f565b346101be576107bb3661059b565b926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610761576108236108176005610809876000526000602052604060002090565b01546001600160a01b031690565b6001600160a01b031690565b9116036108fc5761083683820182610a4a565b61083f81610a5f565b60018103610878575061086261085d61087392600494953691610177565b610caa565b926000526000602052604060002090565b01555b005b61088181610a5f565b600281036108bd5750906108a56108a06108b893610876953691610177565b610c00565b9290916000526000602052604060002090565b610c28565b806108c9600392610a5f565b036108ea576106d16108626108e5600593610876963691610177565b610bd8565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101be5760003660031901126101be576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101be5760203660031901126101be57610278610972600435610a7f565b6040519182916020835260208301906101e1565b908160609103126101be578051916040602083015192015190565b908160809103126101be576060604051916109bb83610134565b80518352602081015160208401526040810151604084015201516109de81610320565b606082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610a1557565b6109f2565b91908201809211610a1557565b81810392916000138015828513169184121617610a1557565b600411156101be57565b908160209103126101be57356101de81610a40565b60041115610a6957565b634e487b7160e01b600052602160045260246000fd5b60408051610a8c81610134565b6000918282526020820193838552818301848152606084019085825282865285602052610ac2610abd85882061027c565b610cdf565b808652670de0b6b3a7640000908103908111610a1557846101de97610b1f95610b1294600594610b5a9c5281835282602052600484842001549052815280602052200160018060a01b0390541690565b6001600160a01b03169052565b5192839160208301919091606060808201938051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b03601f198101835282610155565b926020610b9184610b8b610b83610b9a9697610ba099610fa4565b855190610d88565b95610fa4565b91015190610d88565b90610f48565b670de0b6b3a763ffff198101908113600116610a155790565b6101de92916020610bcf610b9a93855190610d88565b93015190610d88565b6040818051810103126101be5780610bf560206040930151610a40565b015161081781610320565b6060818051810103126101be57610c1a6020820151610a40565b606060408201519101519091565b919042821115610c9857610c3e610abd8461027c565b9081845542600385015542830391838311610a1557610c5c91610a27565b428314610c8257600160ff1b8114600019831416610a1557600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101be5780610cc760206040930151610a40565b015190565b81810292918115918404141715610a1557565b6060810151906020810151808314610d5e57804211600014610d5657915b8203918211610a15576040810190815160008113600014610d3057506101de92610d2a9151925190610ccc565b90610a1a565b90519150600160ff1b8114610a15576101de92610d509160000390610ccc565b90610a08565b504291610cfd565b5090505190565b818102929160008212600160ff1b821416610a15578184051490151715610a1557565b610f356101de927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284610f4393610dbe60008213610fc6565b711340daa0d5f769dba1915cef59f0815a5506610dda82611188565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d610d65565b670de0b6b3a7640000900590565b610ffe565b8181029181830414901517600116156101be576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101be57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101be570490565b15610fcd57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131561118257680755bf798b4a1bf1e581121561114e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b611193811515610fc6565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c600110179056fea26469706673582212209815df372867dd1ba42d4263690c8e70d1f8dc34ff9f897579936267cb43316764736f6c6343000816003360803461007457601f611bc438819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051611b3490816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b6109e4565b6109bb565b610814565b6107da565b610674565b6103dc565b6102e1565b61023d565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101df565b838082518301019101610a17565b9061010d6100ff600435610b92565b868082518301019101610a32565b92610d8d565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761015057604052565b61011e565b60c0810190811067ffffffffffffffff82111761015057604052565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101bd601f8201601f191660200184610171565b8294818452818301116101da578281602093846000960137010152565b600080fd5b9080601f830112156101da578160206101fa93359101610193565b90565b919082519283825260005b848110610229575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610208565b346101da5760003660031901126101da57604051604081019080821067ffffffffffffffff8311176101505761029a916040526009815268131bd9d39bdc9b585b60ba1b60208201526040519182916020835260208301906101fd565b0390f35b906040516080810181811067ffffffffffffffff821117610150576040526060600382948054845260018101546020850152600281015460408501520154910152565b346101da5760203660031901126101da5760043560005260016020526101c0604060002061030e8161029e565b9061031b6004820161029e565b906103bd61032b6008830161029e565b610393600c84015493600d60018060a01b03910154169461036d6040518098606080918051845260208101516020850152604081015160408501520151910152565b80516080880152602081015160a0880152604081015160c08801526060015160e0870152565b80516101008601526020810151610120860152604081015161014086015260600151610160850152565b6101808301526101a0820152f35b6001600160a01b038116036101da57565b346101da576060806003193601126101da576103f96004356103cb565b6024356044359167ffffffffffffffff83116101da576104206104829336906004016101df565b8161043c61042d85610b92565b60208082518301019101610a32565b60005490949061046290610456906001600160a01b031681565b6001600160a01b031690565b60405180809881946333854efd60e21b8352600483019190602083019252565b03915afa801561061457600091829583926105d9575b50806020806104ac93518301019101610a17565b939194909682861160001461054c5750916104ed826104e8836104e36104fe976104d96104f5988c610aa3565b908c0151906112af565b6112af565b6112db565b505b83610afe565b93828685610d8d565b9384601319129283610541575b61029a9394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b60148612935061050b565b90929091508187111561057b57610575826104e8836104e36104fe976104d96104f5988e610aa3565b506104ef565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9095506104ac92506106019150833d851161060d575b6105f98183610171565b810190610a17565b95919290959190610498565b503d6105ef565b610a81565b9060606003198301126101da57600435610632816103cb565b916024359160443567ffffffffffffffff928382116101da57806023830112156101da5781600401359384116101da57602484830101116101da576024019190565b346101da5761068236610619565b600054929350916001600160a01b031633036107c85761078661077e61042d610779956106c0608095610743976106b7610b67565b50810190610e8c565b6020819b949a9399929b01516106e0866000526001602052604060002090565b55604081015160046106fc876000526001602052604060002090565b015580516008610716876000526001602052604060002090565b01556060810151600c610733876000526001602052604060002090565b015501516001600160a01b031690565b600d610759846000526001602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610b92565b848385610d8d565b92836013191291826107bd575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b601485129250610793565b604051636853cba760e01b8152600490fd5b346101da5760606107ea36610619565b818094509492940103126101da5780359061078661077e61042d6040602085013594013595610b92565b346101da5761082236610619565b6000549093906001600160a01b0390811633036107c857610863610456600d610855876000526001602052604060002090565b01546001600160a01b031690565b9116036109a95761087683820182610b32565b61087f81610b47565b600181036108b857506108a261089d6108b392600c94953691610193565b610fc3565b926000526001602052604060002090565b01555b005b6108c181610b47565b600381036108fd5750906108e56108e06108f8936108b6953691610193565b610f19565b9290916000526001602052604060002090565b610f41565b61090681610b47565b6004810361094057509060046109276108e061093a946108b6963691610193565b9390926000526001602052604060002090565b01610f41565b61094981610b47565b6002810361096a57509060086109276108e061093a946108b6963691610193565b80610976600592610b47565b03610997576107596108a2610992600d936108b6963691610193565b610ef1565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101da5760003660031901126101da576000546040516001600160a01b039091168152602090f35b346101da5760203660031901126101da5761029a610a03600435610b92565b6040519182916020835260208301906101fd565b908160609103126101da578051916040602083015192015190565b908160a09103126101da57608060405191610a4c83610134565b805183526020810151602084015260408101516040840152606081015160608401520151610a79816103cb565b608082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610ab057565b610a8d565b91908201809211610ab057565b90671bc16d674ec8000060008382039312818412811691841390151617610ab057565b9067119000ab100ffbff198201918213600116610ab057565b81810392916000138015828513169184121617610ab057565b600160ff1b8114610ab05760000390565b600611156101da57565b908160209103126101da57356101fa81610b28565b60061115610b5157565b634e487b7160e01b600052602160045260246000fd5b60405190610b7482610134565b60006080838281528260208201528260408201528260608201520152565b610b9a610b67565b816000526001602052610bb8610bb3604060002061029e565b610ff8565b9160208201928352806000526001602052610bdc610bb3600860406000200161029e565b8252600c610c1d610c05610bb36004610bff866000526001602052604060002090565b0161029e565b92604085019384526000526001602052604060002090565b015490606083019182526040519383516020860152516040850152516060840152516080830152608060018060a01b039101511660a082015260a081526101fa81610155565b9081672005fe4f268ea00001918212600116610ab057565b9081670dc5527f642c200001918212600116610ab057565b9081670de0b6b3a764000001918212600116610ab057565b9081670b68df18e471fbff190191821215600116610ab057565b90816714a8454c19e1ac0001918212600116610ab057565b9081670fc10e01578277ff190191821215600116610ab057565b90816703debd083b8c7c0001918212600116610ab057565b9081670295d400ea3257ff190191821215600116610ab057565b9081670157d8b2ecc7080001918212600116610ab057565b90816705310aa7d521300001918212600116610ab057565b9081670de0cc3d1561000001918212600116610ab057565b91909160008382019384129112908015821691151617610ab057565b909282821015610e47576101fa93610e0a9284670de0b6b3a76400009182610db5838361130b565b10610e3457506001600160ff1b039590505b835191610ddd610dd7838561132d565b8561130b565b10610e0f57506001600160ff1b0392610e04925090505b6040602082015191015190611286565b92610d71565b610d71565b610e0492610e23610e2992610e2e9461132d565b9061130b565b6110b3565b91610df4565b610e4191610e299161130b565b94610dc7565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b80910361010081126101da5781359260208301359260a0604082013593605f1901126101da5760e060405191610ec183610134565b606081013583526080810135602084015260a0810135604084015260c081013560608401520135610a79816103cb565b6040818051810103126101da5780610f0e60206040930151610b28565b0151610456816103cb565b6060818051810103126101da57610f336020820151610b28565b606060408201519101519091565b919042821115610fb157610f57610bb38461029e565b9081845542600385015542830391838311610ab057610f7591610afe565b428314610f9b57600160ff1b8114600019831416610ab057600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101da5780610fe060206040930151610b28565b015190565b81810292918115918404141715610ab057565b606081015160208201518082146110735780421160001461106b57905b8103908111610ab05760408201908151600081136000146110485750611042906101fa9351925190610fe5565b90610ab5565b9261105f9250611059905193610b17565b90610fe5565b8103908111610ab05790565b504290611015565b50505190565b90633b9aca0091828102928184051490151715610ab057565b60008190039190600160ff1b8114600116610ab057600019830503610ab057565b6706f05b59d3b20000811461128057670de0b6b3a76400008082121561122a57811561124b5760018260011b916002938305600203610ab05760008312801561126f575b61125d57821561122a57671bc16d674ec80000831461124b57821291821561123c57925b611124846118db565b801561122a5761119661115561115061114b61114661119b959997969961146f565b61199c565b611379565b611079565b61119161116961116483611906565b610c63565b61118b61118661118061117b86611931565b610c7b565b85611a13565b610c93565b9061197a565b610afe565b6119c4565b936000925b8184106111d257505050506101fa916111bf916000146111c4576118b4565b610b17565b6111cd90610b17565b6118b4565b90916112208661121a6111ea8561119186999b611610565b61118b61120a6112056112006111bf8780611a13565b611730565b6119ec565b6112148386611a13565b90610afe565b90610d71565b95019291906111a0565b6040516307a0212760e01b8152600490fd5b61124590610ac2565b9261111b565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec8000083136110f7565b50600090565b9061129090611379565b633b9aca0090818102918183041490151715610ab0576101fa9161132d565b8181029181830414901517600116156101da576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101da57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101da570490565b8181029181830414901517600116156101da57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517600116156101da57671bc16d674ec80000900490565b60b581600160881b811015611420575b80690100000000000000000062010000921015611413575b65010000000000811015611406575b63010000008110156113f9575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916113bd565b60201c9160101b916113b0565b60401c9160201b916113a1565b5068b500000000000000009050608082901c611389565b1561143e57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642849061149b60008213611437565b711340daa0d5f769dba1915cef59f0815a55066114b782611a5f565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b801561172357675698eef06670000081121561128057675698eef0666fffff1981131561171657600061170661164583611ad1565b6116ce61120061165f61165a6111868561134e565b61195b565b92610e0a6117016116fc6116f56116ef6116ea6116e46116df6116d96116d48d6116ce6116c96116c36116be6111806116b96116b36116ae6116a86116a38a611a34565b610cab565b89611a13565b610cc5565b87611a13565b610cdd565b610cf7565b83611a13565b610d0f565b90611a13565b610d29565b8c611a13565b610d41565b8a611a13565b610d59565b88611a13565b9380611a13565b611092565b610ae5565b9112156101fa576101fa90610ac2565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b680248ce36a70cb26b3e1981131561128057680755bf798b4a1bf1e5811215611880576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be889080820291820514600116156101da57670de0b6b3a7640000900590565b670de0b6b3a7640000908181029181830514901517600116156101da57671bc16d674ec80000900590565b6703c1665c7aab2000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b669f32752462a000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b600181151516156101da576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a764000090818102918183051490151782151516156101da570590565b671bc16d674ec7ffff198181029160019183051416156101da57670de0b6b3a7640000900590565b6709d028cc6f205fff198181029160019183051416156101da57670de0b6b3a7640000900590565b670fa8cedfc2adddfa9080820291820514600116156101da57670de0b6b3a7640000900590565b8181029181830514901517600116156101da57670de0b6b3a7640000900590565b67025f0fe105a31400908181029181830514901517600116156101da57670de0b6b3a7640000900590565b611a6a811515611437565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b600160ff1b8114611aec5760008112156101fa571960010190565b604051634d2d75b160e01b8152600490fdfea2646970667358221220b596d744fe988e0f66eb3212b01d8a9e660acea43730ff108a9b5edd5f05d2b364736f6c63430008160033a2646970667358221220646bba7481486dcb43b5827bcade1f12c2a46f6be2a40918d4eccd87fed35d2364736f6c63430008160033","sourceMap":"289:1040:32:-:0;;;;;;;782:4:2;289:1040:32;;782:4:2;289:1040:32;;;782:4:2;289:1040:32;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60808060405260043610156200001457600080fd5b600090813560e01c908163c04062261462000061575063f8ccbf47146200003a57600080fd5b346200005e57806003193601126200005e57602060ff600c54166040519015158152f35b80fd5b82346200005e57806003193601126200005e5763c1978d1f60e01b825260249160206004820152601683820152754445504c4f594d454e545f505249564154455f4b455960501b6044820152602081606481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa9081156200064c57829162000720575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156200071c576040519063ce817d4760e01b825260048201528181848183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156200064c576200070a575b50906040516111768082019082821067ffffffffffffffff831117620006f757908291620018c68339039083f09081156200064c57604051612f218082019082821067ffffffffffffffff831117620006e457602091839162002a3c83396001600160a01b038616815203019084f0918215620006d9576040516112cb8082019082821067ffffffffffffffff831117620006c65760209183916200595d83396001600160a01b038716815203019085f0918215620006bb57604051611bc48082019082821067ffffffffffffffff8311176200069257602091839162006c2883396001600160a01b038816815203019086f0928315620006b05760405161106b810181811067ffffffffffffffff82111762000692578160e09161106b6200085b83396060815260096060820152682aa9a2102a37b5b2b760b91b608082015260a06020820152600460a0820152635553444360e01b60c08201526006604082015203019087f0938415620006a5576040518061106b81011067ffffffffffffffff61106b83011117620006925761106b6200085b8239606061106b8201818152600a918101919091526915195d1a195c881554d160b21b608082015260a060208201819052600490820152631554d11560e21b60c08201526006604082015281900360e0019088f090811562000687576040518061106b81011067ffffffffffffffff61106b83011117620006745761106b6200085b8239606061106b8201818152600e918101919091526d2220a49029ba30b13632b1b7b4b760911b608082015260a0602082018190526003908201526244414960e81b60c08201526012604082015281900360e0019089f09384156200065757604051908161106b81011067ffffffffffffffff61106b8401111762000662575061106b6200085b8239606061106b8201818152600f918101919091526e2bb930b83832b2102134ba31b7b4b760891b608082015260a060208201819052600490820152635742544360e01b60c08201526012604082015281900360e0019089f095861562000657576200051f620005b196620004ee6200055094620004b8620005819862000488620005e29e60405190620004668262000783565b6005825264222326a69d60d91b60208301526001600160a01b031690620007c3565b60405190620004978262000783565b60048252632399a69d60e11b60208301526001600160a01b031690620007c3565b60405190620004c78262000783565b600a8252692637b3a737b936b0b61d60b11b60208301526001600160a01b031690620007c3565b60405190620004fd8262000783565b60058252642ba2aa241d60d91b60208301526001600160a01b031690620007c3565b604051906200052e8262000783565b60058252642aa9a2219d60d91b60208301526001600160a01b031690620007c3565b604051906200055f8262000783565b60058252642aa9a22a1d60d91b60208301526001600160a01b031690620007c3565b60405190620005908262000783565b60048252632220a49d60e11b60208301526001600160a01b031690620007c3565b60405190620005c08262000783565b60058252642ba12a219d60d91b60208301526001600160a01b031690620007c3565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156200005e57604051633b756e9b60e11b81528190818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156200064c57620006395750f35b620006449062000758565b6200005e5780f35b6040513d84823e3d90fd5b6040513d8a823e3d90fd5b634e487b7160e01b8a52604160045289fd5b634e487b7160e01b895260416004528489fd5b6040513d89823e3d90fd5b634e487b7160e01b885260416004528388fd5b6040513d88823e3d90fd5b6040513d87823e3d90fd5b6040513d86823e3d90fd5b634e487b7160e01b875260416004528487fd5b6040513d85823e3d90fd5b634e487b7160e01b865260416004528386fd5b634e487b7160e01b855260416004528385fd5b620007159062000758565b8262000133565b5080fd5b90506020813d6020116200074f575b816200073e60209383620007a0565b810103126200071c575183620000da565b3d91506200072f565b67ffffffffffffffff81116200076d57604052565b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176200076d57604052565b90601f8019910116810190811067ffffffffffffffff8211176200076d57604052565b60405190602092602083019363319af33360e01b85526040602485015282519283606486015260005b84811062000845575050509162000832608482846000979596888481998501015260018060a01b03166044830152601f80199101168101036064810184520182620007a0565b51906a636f6e736f6c652e6c6f675afa50565b818101830151868201608401528201620007ec56fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360e0604081815234620004285762000017826200042d565b600d825260206c2bb930b83832b21022ba3432b960991b8184015281519262000040846200042d565b60048452630ae8aa8960e31b8285015280516001600160401b03939084811162000412576000908062000074835462000449565b94601f95868111620003c1575b508690868311600114620003595784926200034d575b50508160011b916000199060031b1c19161781555b85518581116200033957600190620000c5825462000449565b858111620002f1575b50858582116001146200028c578394959697988293949262000280575b5050600019600383901b1c191690821b1781555b60126080524660a05282519382908354926200011b8462000449565b90818852888801948982821691826000146200026357505060011462000227575b505085601f1992030116840193808510878611176200021357848452519020938301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c083019483861090861117620001ff575083905251902060c052610cef908162000487823960805181610597015260a051816109fe015260c05181610a250152f35b634e487b7160e01b81526041600452602490fd5b634e487b7160e01b83526041600452602483fd5b90889293508580528286209186925b8284106200024d575050508601019038806200013c565b80548a85018601528a9490930192810162000236565b92509394505060ff19168452151560051b8601019038806200013c565b015190503880620000eb565b82845286842090601f198316855b818110620002db5750998385969798999a9b10620002c1575b505050811b018155620000ff565b015160001960f88460031b161c19169055388080620002b3565b8b8301518455928501929189019189016200029a565b8284528684208680840160051c8201928985106200032f575b0160051c019083905b82811062000323575050620000ce565b85815501839062000313565b925081926200030a565b634e487b7160e01b82526041600452602482fd5b01519050388062000097565b8480528785209250601f198416855b89828210620003aa57505090846001959493921062000390575b505050811b018155620000ac565b015160001960f88460031b161c1916905538808062000382565b600185968293968601518155019501930162000368565b9091508380528684208680850160051c82019289861062000408575b9085949392910160051c01905b818110620003f9575062000081565b858155849350600101620003ea565b92508192620003dd565b634e487b7160e01b600052604160045260246000fd5b600080fd5b604081019081106001600160401b038211176200041257604052565b90600182811c921680156200047b575b60208310146200046557565b634e487b7160e01b600052602260045260246000fd5b91607f16916200045956fe60806040526004361015610023575b361561001957600080fd5b610021610b96565b005b60003560e01c806306fdde0314610103578063095ea7b3146100fe57806318160ddd146100f957806323b872dd146100f45780632e1a7d4d146100ef578063313ce567146100ea5780633644e515146100e557806370a08231146100e05780637ecebe00146100db57806395d89b41146100d6578063a9059cbb146100d1578063d0e30db0146100cc578063d505accf146100c75763dd62ed3e0361000e5761097e565b610788565b610774565b6106f9565b610652565b610618565b6105de565b6105bb565b61057d565b6104af565b610384565b610366565b6102db565b6101c3565b90600182811c92168015610138575b602083101461012257565b634e487b7160e01b600052602260045260246000fd5b91607f1691610117565b90601f8019910116810190811067ffffffffffffffff82111761016457604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106101af57505060409293506000838284010152601f8019910116010190565b81810186015184820160400152850161018d565b346102aa576000806003193601126102a75760405190808054906101e682610108565b8085529160209160019182811690811561027a5750600114610223575b61021f8661021381880382610142565b6040519182918261017a565b0390f35b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610267575050505081016020016102138261021f38610203565b805486860184015293820193810161024a565b905086955061021f9693506020925061021394915060ff191682840152151560051b820101929338610203565b80fd5b600080fd5b600435906001600160a01b03821682036102aa57565b602435906001600160a01b03821682036102aa57565b346102aa5760403660031901126102aa576102f46102af565b60243590336000526004602052816103228260406000209060018060a01b0316600052602052604060002090565b556040519182526001600160a01b03169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3602060405160018152f35b346102aa5760003660031901126102aa576020600254604051908152f35b346102aa5760603660031901126102aa5761039d6102af565b6103a56102c5565b6001600160a01b038083166000818152600460209081526040808320338452909152902060443594919391929190546001810161044d575b50610409600080516020610c9a8339815191529360018060a01b03166000526003602052604060002090565b6104148682546109ec565b90556001600160a01b0381166000908152600360209081526040918290208054880190559051958652911693a360405160018152602090f35b8581039081116104aa57600080516020610c9a83398151915293610409916104a23361048b8460018060a01b03166000526004602052604060002090565b9060018060a01b0316600052602052604060002090565b5593506103dd565b6109d6565b346102aa5760203660031901126102aa576004356000903382526003602052604082209081548181039081116104aa57838080809481948755806002540360025581604051828152600080516020610c9a83398151915260203392a36040518181527f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6560203392a2335af1156105425780f35b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b346102aa5760003660031901126102aa57602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102aa5760003660031901126102aa5760206105d66109f9565b604051908152f35b346102aa5760203660031901126102aa576001600160a01b036105ff6102af565b1660005260036020526020604060002054604051908152f35b346102aa5760203660031901126102aa576001600160a01b036106396102af565b1660005260056020526020604060002054604051908152f35b346102aa576000806003193601126102a7576040519080600180549061067782610108565b808652926020926001811690811561027a57506001146106a15761021f8661021381880382610142565b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106106e6575050505081016020016102138261021f38610203565b80548686018401529382019381016106c9565b346102aa5760403660031901126102aa576107126102af565b6024359033600052600360205260406000208054908382039182116104aa575560018060a01b0316908160005260036020526040600020818154019055604051908152600080516020610c9a83398151915260203392a3602060405160018152f35b60003660031901126102aa57610021610b96565b346102aa5760e03660031901126102aa576107a16102af565b6107a96102c5565b90604435606435926084359360ff851685036102aa576108dd6020916107d142821015610c04565b6108a46108b06107df6109f9565b92886107fd8160018060a01b03166000526005602052604060002090565b805460018101909155604080517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a82019081526001600160a01b039485166020820152938b1691840191909152606083018b9052608083019190915260a08201929092528160c08201039161087b601f1993848101835282610142565b5190206040519384918883019687909160429261190160f01b8352600283015260228201520190565b03908101835282610142565b5190206040805191825260ff909716602082015260a4359681019690965260c43560608701526080860190565b856000968792838052039060015afa156109795783517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916001600160a01b0391849061095a90839061048b90610940878216801515908161096d575b50610c5c565b6001600160a01b0316600090815260046020526040902090565b556040519384528116931691602090a380f35b9050888c16143861093a565b610c50565b346102aa5760403660031901126102aa5760206109cd61099c6102af565b6109a46102c5565b6001600160a01b0391821660009081526004855260408082209290931681526020919091522090565b54604051908152f35b634e487b7160e01b600052601160045260246000fd5b919082039182116104aa57565b6000467f000000000000000000000000000000000000000000000000000000000000000003610a4757507f000000000000000000000000000000000000000000000000000000000000000090565b6040518154919081610a5884610108565b8083526020948584019460019187600182169182600014610b71575050600114610b19575b5050509181610a94610b1393610b05950382610142565b519020604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f95810195865260208601929092527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc69085015246606085015230608085015291829060a0850190565b03601f198101835282610142565b51902090565b91908693508280527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b828410610b5c5750505082010181610a94610b13610a7d565b80548685018601528794909301928101610b43565b60ff1916885293151560051b86019093019350849250610a949150610b139050610a7d565b6002543481018091116104aa5760025533600052600360205260406000203481540190556040513481526000600080516020610c9a83398151915260203393a36040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a2565b15610c0b57565b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b6040513d6000823e3d90fd5b15610c6357565b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e2c89f20a3186bd00a15b6a9db0c6517d9bd6f92df9703dd9ee286a75c8e0b6c64736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360a03461007f57601f6112cb38819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f57608052604051611230908161009b82396080518181816103b701528181610612015281816107c601526109240152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b610953565b61090e565b6107ad565b610773565b6105f6565b610331565b6102ae565b610221565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101c3565b838082518301019101610986565b9061010d6100ff600435610a7f565b8680825183010191016109a1565b92610b68565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761015057604052565b61011e565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101a1601f8201601f191660200184610155565b8294818452818301116101be578281602093846000960137010152565b600080fd5b9080601f830112156101be578160206101de93359101610177565b90565b919082519283825260005b84811061020d575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101ec565b346101be5760003660031901126101be57604051604081019080821067ffffffffffffffff8311176101505761027891604052600381526247334d60e81b60208201526040519182916020835260208301906101e1565b0390f35b9060405161028981610134565b6060600382948054845260018101546020850152600281015460408501520154910152565b346101be5760203660031901126101be57600435600052600060205260c060406000206102da8161027c565b90600481015490600560018060a01b03910154169060606040519380518552602081015160208601526040810151604086015201516060840152608083015260a0820152f35b6001600160a01b038116036101be57565b346101be5760603660031901126101be5761034d600435610320565b60243560443567ffffffffffffffff81116101be576103709036906004016101c3565b9061037a81610a7f565b90610390825192602080809583010191016109a1565b6040516333854efd60e21b8152600481018390529092906060816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa948515610596576000908192829761055d575b508084806103ff93518301019101610986565b949195909787878581116000146104c45793610454869461044e866104496104769b9761044461046198604061043b61046d9f6104679f610a08565b91015190610f48565b610f48565b610f74565b50610a7f565b80518101820191016109a1565b91610bb9565b83610a27565b93828685610b68565b93846013191292836104b9575b6102789394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b601486129350610483565b5050919290938089116000146104ff5761046161046d946104546104769761044e856104498f998f61044490604061043b866104679f610a08565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9096506103ff9250610587915060603d60601161058f575b61057f8183610155565b810190610986565b9690926103ec565b503d610575565b6109e6565b9060606003198301126101be576004356105b481610320565b916024359160443567ffffffffffffffff928382116101be57806023830112156101be5781600401359384116101be57602484830101116101be576024019190565b346101be576106043661059b565b9192506001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610761578160c091810103126101be5780359160208201359160408101359460608201359060a08301359261066984610320565b670de0b6b3a764000083101561074f5761070d946107059460806106f1936106f69661069f876000526000602052604060002090565b55013560046106b8866000526000602052604060002090565b01551660056106d1846000526000602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610a7f565b602080825183010191016109a1565b848385610b68565b9283601319129182610744575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b60148512925061071a565b60405163e8a38a6160e01b8152600490fd5b604051636853cba760e01b8152600490fd5b346101be5760606107833661059b565b818094509492940103126101be5780359061070d6107056106f66040602085013594013595610a7f565b346101be576107bb3661059b565b926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610761576108236108176005610809876000526000602052604060002090565b01546001600160a01b031690565b6001600160a01b031690565b9116036108fc5761083683820182610a4a565b61083f81610a5f565b60018103610878575061086261085d61087392600494953691610177565b610caa565b926000526000602052604060002090565b01555b005b61088181610a5f565b600281036108bd5750906108a56108a06108b893610876953691610177565b610c00565b9290916000526000602052604060002090565b610c28565b806108c9600392610a5f565b036108ea576106d16108626108e5600593610876963691610177565b610bd8565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101be5760003660031901126101be576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101be5760203660031901126101be57610278610972600435610a7f565b6040519182916020835260208301906101e1565b908160609103126101be578051916040602083015192015190565b908160809103126101be576060604051916109bb83610134565b80518352602081015160208401526040810151604084015201516109de81610320565b606082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610a1557565b6109f2565b91908201809211610a1557565b81810392916000138015828513169184121617610a1557565b600411156101be57565b908160209103126101be57356101de81610a40565b60041115610a6957565b634e487b7160e01b600052602160045260246000fd5b60408051610a8c81610134565b6000918282526020820193838552818301848152606084019085825282865285602052610ac2610abd85882061027c565b610cdf565b808652670de0b6b3a7640000908103908111610a1557846101de97610b1f95610b1294600594610b5a9c5281835282602052600484842001549052815280602052200160018060a01b0390541690565b6001600160a01b03169052565b5192839160208301919091606060808201938051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b03601f198101835282610155565b926020610b9184610b8b610b83610b9a9697610ba099610fa4565b855190610d88565b95610fa4565b91015190610d88565b90610f48565b670de0b6b3a763ffff198101908113600116610a155790565b6101de92916020610bcf610b9a93855190610d88565b93015190610d88565b6040818051810103126101be5780610bf560206040930151610a40565b015161081781610320565b6060818051810103126101be57610c1a6020820151610a40565b606060408201519101519091565b919042821115610c9857610c3e610abd8461027c565b9081845542600385015542830391838311610a1557610c5c91610a27565b428314610c8257600160ff1b8114600019831416610a1557600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101be5780610cc760206040930151610a40565b015190565b81810292918115918404141715610a1557565b6060810151906020810151808314610d5e57804211600014610d5657915b8203918211610a15576040810190815160008113600014610d3057506101de92610d2a9151925190610ccc565b90610a1a565b90519150600160ff1b8114610a15576101de92610d509160000390610ccc565b90610a08565b504291610cfd565b5090505190565b818102929160008212600160ff1b821416610a15578184051490151715610a1557565b610f356101de927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284610f4393610dbe60008213610fc6565b711340daa0d5f769dba1915cef59f0815a5506610dda82611188565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d610d65565b670de0b6b3a7640000900590565b610ffe565b8181029181830414901517600116156101be576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101be57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101be570490565b15610fcd57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131561118257680755bf798b4a1bf1e581121561114e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b611193811515610fc6565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c600110179056fea26469706673582212209815df372867dd1ba42d4263690c8e70d1f8dc34ff9f897579936267cb43316764736f6c6343000816003360803461007457601f611bc438819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051611b3490816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b6109e4565b6109bb565b610814565b6107da565b610674565b6103dc565b6102e1565b61023d565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101df565b838082518301019101610a17565b9061010d6100ff600435610b92565b868082518301019101610a32565b92610d8d565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761015057604052565b61011e565b60c0810190811067ffffffffffffffff82111761015057604052565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101bd601f8201601f191660200184610171565b8294818452818301116101da578281602093846000960137010152565b600080fd5b9080601f830112156101da578160206101fa93359101610193565b90565b919082519283825260005b848110610229575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610208565b346101da5760003660031901126101da57604051604081019080821067ffffffffffffffff8311176101505761029a916040526009815268131bd9d39bdc9b585b60ba1b60208201526040519182916020835260208301906101fd565b0390f35b906040516080810181811067ffffffffffffffff821117610150576040526060600382948054845260018101546020850152600281015460408501520154910152565b346101da5760203660031901126101da5760043560005260016020526101c0604060002061030e8161029e565b9061031b6004820161029e565b906103bd61032b6008830161029e565b610393600c84015493600d60018060a01b03910154169461036d6040518098606080918051845260208101516020850152604081015160408501520151910152565b80516080880152602081015160a0880152604081015160c08801526060015160e0870152565b80516101008601526020810151610120860152604081015161014086015260600151610160850152565b6101808301526101a0820152f35b6001600160a01b038116036101da57565b346101da576060806003193601126101da576103f96004356103cb565b6024356044359167ffffffffffffffff83116101da576104206104829336906004016101df565b8161043c61042d85610b92565b60208082518301019101610a32565b60005490949061046290610456906001600160a01b031681565b6001600160a01b031690565b60405180809881946333854efd60e21b8352600483019190602083019252565b03915afa801561061457600091829583926105d9575b50806020806104ac93518301019101610a17565b939194909682861160001461054c5750916104ed826104e8836104e36104fe976104d96104f5988c610aa3565b908c0151906112af565b6112af565b6112db565b505b83610afe565b93828685610d8d565b9384601319129283610541575b61029a9394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b60148612935061050b565b90929091508187111561057b57610575826104e8836104e36104fe976104d96104f5988e610aa3565b506104ef565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9095506104ac92506106019150833d851161060d575b6105f98183610171565b810190610a17565b95919290959190610498565b503d6105ef565b610a81565b9060606003198301126101da57600435610632816103cb565b916024359160443567ffffffffffffffff928382116101da57806023830112156101da5781600401359384116101da57602484830101116101da576024019190565b346101da5761068236610619565b600054929350916001600160a01b031633036107c85761078661077e61042d610779956106c0608095610743976106b7610b67565b50810190610e8c565b6020819b949a9399929b01516106e0866000526001602052604060002090565b55604081015160046106fc876000526001602052604060002090565b015580516008610716876000526001602052604060002090565b01556060810151600c610733876000526001602052604060002090565b015501516001600160a01b031690565b600d610759846000526001602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610b92565b848385610d8d565b92836013191291826107bd575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b601485129250610793565b604051636853cba760e01b8152600490fd5b346101da5760606107ea36610619565b818094509492940103126101da5780359061078661077e61042d6040602085013594013595610b92565b346101da5761082236610619565b6000549093906001600160a01b0390811633036107c857610863610456600d610855876000526001602052604060002090565b01546001600160a01b031690565b9116036109a95761087683820182610b32565b61087f81610b47565b600181036108b857506108a261089d6108b392600c94953691610193565b610fc3565b926000526001602052604060002090565b01555b005b6108c181610b47565b600381036108fd5750906108e56108e06108f8936108b6953691610193565b610f19565b9290916000526001602052604060002090565b610f41565b61090681610b47565b6004810361094057509060046109276108e061093a946108b6963691610193565b9390926000526001602052604060002090565b01610f41565b61094981610b47565b6002810361096a57509060086109276108e061093a946108b6963691610193565b80610976600592610b47565b03610997576107596108a2610992600d936108b6963691610193565b610ef1565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101da5760003660031901126101da576000546040516001600160a01b039091168152602090f35b346101da5760203660031901126101da5761029a610a03600435610b92565b6040519182916020835260208301906101fd565b908160609103126101da578051916040602083015192015190565b908160a09103126101da57608060405191610a4c83610134565b805183526020810151602084015260408101516040840152606081015160608401520151610a79816103cb565b608082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610ab057565b610a8d565b91908201809211610ab057565b90671bc16d674ec8000060008382039312818412811691841390151617610ab057565b9067119000ab100ffbff198201918213600116610ab057565b81810392916000138015828513169184121617610ab057565b600160ff1b8114610ab05760000390565b600611156101da57565b908160209103126101da57356101fa81610b28565b60061115610b5157565b634e487b7160e01b600052602160045260246000fd5b60405190610b7482610134565b60006080838281528260208201528260408201528260608201520152565b610b9a610b67565b816000526001602052610bb8610bb3604060002061029e565b610ff8565b9160208201928352806000526001602052610bdc610bb3600860406000200161029e565b8252600c610c1d610c05610bb36004610bff866000526001602052604060002090565b0161029e565b92604085019384526000526001602052604060002090565b015490606083019182526040519383516020860152516040850152516060840152516080830152608060018060a01b039101511660a082015260a081526101fa81610155565b9081672005fe4f268ea00001918212600116610ab057565b9081670dc5527f642c200001918212600116610ab057565b9081670de0b6b3a764000001918212600116610ab057565b9081670b68df18e471fbff190191821215600116610ab057565b90816714a8454c19e1ac0001918212600116610ab057565b9081670fc10e01578277ff190191821215600116610ab057565b90816703debd083b8c7c0001918212600116610ab057565b9081670295d400ea3257ff190191821215600116610ab057565b9081670157d8b2ecc7080001918212600116610ab057565b90816705310aa7d521300001918212600116610ab057565b9081670de0cc3d1561000001918212600116610ab057565b91909160008382019384129112908015821691151617610ab057565b909282821015610e47576101fa93610e0a9284670de0b6b3a76400009182610db5838361130b565b10610e3457506001600160ff1b039590505b835191610ddd610dd7838561132d565b8561130b565b10610e0f57506001600160ff1b0392610e04925090505b6040602082015191015190611286565b92610d71565b610d71565b610e0492610e23610e2992610e2e9461132d565b9061130b565b6110b3565b91610df4565b610e4191610e299161130b565b94610dc7565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b80910361010081126101da5781359260208301359260a0604082013593605f1901126101da5760e060405191610ec183610134565b606081013583526080810135602084015260a0810135604084015260c081013560608401520135610a79816103cb565b6040818051810103126101da5780610f0e60206040930151610b28565b0151610456816103cb565b6060818051810103126101da57610f336020820151610b28565b606060408201519101519091565b919042821115610fb157610f57610bb38461029e565b9081845542600385015542830391838311610ab057610f7591610afe565b428314610f9b57600160ff1b8114600019831416610ab057600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101da5780610fe060206040930151610b28565b015190565b81810292918115918404141715610ab057565b606081015160208201518082146110735780421160001461106b57905b8103908111610ab05760408201908151600081136000146110485750611042906101fa9351925190610fe5565b90610ab5565b9261105f9250611059905193610b17565b90610fe5565b8103908111610ab05790565b504290611015565b50505190565b90633b9aca0091828102928184051490151715610ab057565b60008190039190600160ff1b8114600116610ab057600019830503610ab057565b6706f05b59d3b20000811461128057670de0b6b3a76400008082121561122a57811561124b5760018260011b916002938305600203610ab05760008312801561126f575b61125d57821561122a57671bc16d674ec80000831461124b57821291821561123c57925b611124846118db565b801561122a5761119661115561115061114b61114661119b959997969961146f565b61199c565b611379565b611079565b61119161116961116483611906565b610c63565b61118b61118661118061117b86611931565b610c7b565b85611a13565b610c93565b9061197a565b610afe565b6119c4565b936000925b8184106111d257505050506101fa916111bf916000146111c4576118b4565b610b17565b6111cd90610b17565b6118b4565b90916112208661121a6111ea8561119186999b611610565b61118b61120a6112056112006111bf8780611a13565b611730565b6119ec565b6112148386611a13565b90610afe565b90610d71565b95019291906111a0565b6040516307a0212760e01b8152600490fd5b61124590610ac2565b9261111b565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec8000083136110f7565b50600090565b9061129090611379565b633b9aca0090818102918183041490151715610ab0576101fa9161132d565b8181029181830414901517600116156101da576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101da57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101da570490565b8181029181830414901517600116156101da57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517600116156101da57671bc16d674ec80000900490565b60b581600160881b811015611420575b80690100000000000000000062010000921015611413575b65010000000000811015611406575b63010000008110156113f9575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916113bd565b60201c9160101b916113b0565b60401c9160201b916113a1565b5068b500000000000000009050608082901c611389565b1561143e57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642849061149b60008213611437565b711340daa0d5f769dba1915cef59f0815a55066114b782611a5f565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b801561172357675698eef06670000081121561128057675698eef0666fffff1981131561171657600061170661164583611ad1565b6116ce61120061165f61165a6111868561134e565b61195b565b92610e0a6117016116fc6116f56116ef6116ea6116e46116df6116d96116d48d6116ce6116c96116c36116be6111806116b96116b36116ae6116a86116a38a611a34565b610cab565b89611a13565b610cc5565b87611a13565b610cdd565b610cf7565b83611a13565b610d0f565b90611a13565b610d29565b8c611a13565b610d41565b8a611a13565b610d59565b88611a13565b9380611a13565b611092565b610ae5565b9112156101fa576101fa90610ac2565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b680248ce36a70cb26b3e1981131561128057680755bf798b4a1bf1e5811215611880576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be889080820291820514600116156101da57670de0b6b3a7640000900590565b670de0b6b3a7640000908181029181830514901517600116156101da57671bc16d674ec80000900590565b6703c1665c7aab2000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b669f32752462a000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b600181151516156101da576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a764000090818102918183051490151782151516156101da570590565b671bc16d674ec7ffff198181029160019183051416156101da57670de0b6b3a7640000900590565b6709d028cc6f205fff198181029160019183051416156101da57670de0b6b3a7640000900590565b670fa8cedfc2adddfa9080820291820514600116156101da57670de0b6b3a7640000900590565b8181029181830514901517600116156101da57670de0b6b3a7640000900590565b67025f0fe105a31400908181029181830514901517600116156101da57670de0b6b3a7640000900590565b611a6a811515611437565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b600160ff1b8114611aec5760008112156101fa571960010190565b604051634d2d75b160e01b8152600490fdfea2646970667358221220b596d744fe988e0f66eb3212b01d8a9e660acea43730ff108a9b5edd5f05d2b364736f6c63430008160033a2646970667358221220646bba7481486dcb43b5827bcade1f12c2a46f6be2a40918d4eccd87fed35d2364736f6c63430008160033","sourceMap":"289:1040:32:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;758:28:2;289:1040:32;;;;;;;;;;;;;;;;;;;;;;;;;;1057:14:1;;;392:36:32;;1057:14:1;392:36:32;;289:1040;392:36;;1057:14:1;;;;;;-1:-1:-1;;;1057:14:1;;;;392:36:32;;1057:14:1;392:36:32;289:1040;392:36;;;;;;;;;;;289:1040;438:37;289:1040;438:37;;;;289:1040;;1057:14:1;;;;438:37:32;;289:1040;438:37;;1057:14:1;438:37:32;;;;;289:1040;438:37;;;;;;;;289:1040;;;;;498:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;289:1040;;530:23;;;;;;;;498:10;530:23;;;;;392:36;530:23;;;;;;-1:-1:-1;;;;;289:1040:32;;1057:14:1;;530:23:32;;;;;;;;;;289:1040;;573:22;;;;;;;;498:10;573:22;;;;;392:36;573:22;;;;;;-1:-1:-1;;;;;289:1040:32;;1057:14:1;;573:22:32;;;;;;;;;;289:1040;;627:28;;;;;;;;498:10;627:28;;;;;392:36;627:28;;;;;;-1:-1:-1;;;;;289:1040:32;;1057:14:1;;627:28:32;;;;;;;;;;289:1040;;683:37;;;;;;498:10;683:37;;;;;;289:1040;683:37;;;;;1057:14:1;;;;;;;;-1:-1:-1;;;1057:14:1;;;;;392:36:32;1057:14:1;;;289:1040:32;1057:14:1;;;;-1:-1:-1;;;1057:14:1;;;;718:1:32;289:1040;1057:14:1;;;683:37:32;;;;;;;;;;289:1040;;683:37;;747:38;;;498:10;683:37;747:38;;;;;;683:37;;747:38;;1057:14:1;683:37:32;747:38;;1057:14:1;;;;;;;;;;;-1:-1:-1;;;1057:14:1;;;;;392:36:32;1057:14:1;;;;;289:1040:32;1057:14:1;;;;-1:-1:-1;;;1057:14:1;;;;718:1:32;-1:-1:-1;1057:14:1;;;747:38:32;;;289:1040;747:38;;;;;;;;;289:1040;;683:37;;811:42;;;498:10;683:37;811:42;;;;;;683:37;;811:42;;1057:14:1;683:37:32;811:42;;1057:14:1;;;;;;;;;;;-1:-1:-1;;;1057:14:1;;;;;392:36:32;1057:14:1;;;;;;;;;;-1:-1:-1;;;1057:14:1;;;;850:2:32;-1:-1:-1;1057:14:1;;;811:42:32;;;289:1040;811:42;;;;;;;;;289:1040;;683:37;;;880:44;;;498:10;683:37;880:44;;;;;;683:37;;;880:44;;1057:14:1;683:37:32;880:44;;1057:14:1;;;;;;;;;;;-1:-1:-1;;;1057:14:1;;;;;392:36:32;1057:14:1;;;;;289:1040:32;1057:14:1;;;;-1:-1:-1;;;1057:14:1;;;;850:2:32;-1:-1:-1;1057:14:1;;;880:44:32;;;289:1040;880:44;;;;;;;;;1078:35;1213:33;289:1040;1023:45;1123:35;289:1040;980:33;1168:35;289:1040;935:35;1256;289:1040;;;1057:14:1;;;;:::i;:::-;;;;-1:-1:-1;;;392:36:32;1057:14:1;;;-1:-1:-1;;;;;289:1040:32;;935:35;:::i;:::-;289:1040;;1057:14:1;;;;:::i;:::-;289:1040:32;1057:14:1;;-1:-1:-1;;;392:36:32;1057:14:1;;;-1:-1:-1;;;;;289:1040:32;;980:33;:::i;:::-;289:1040;;1057:14:1;;;;:::i;:::-;;;;-1:-1:-1;;;392:36:32;1057:14:1;;;-1:-1:-1;;;;;289:1040:32;;1023:45;:::i;:::-;289:1040;;1057:14:1;;;;:::i;:::-;;;;-1:-1:-1;;;392:36:32;1057:14:1;;;-1:-1:-1;;;;;289:1040:32;;1078:35;:::i;:::-;289:1040;;1057:14:1;;;;:::i;:::-;;;;-1:-1:-1;;;392:36:32;1057:14:1;;;-1:-1:-1;;;;;289:1040:32;;1123:35;:::i;:::-;289:1040;;1057:14:1;;;;:::i;:::-;;;;-1:-1:-1;;;392:36:32;1057:14:1;;;-1:-1:-1;;;;;289:1040:32;;1168:35;:::i;:::-;289:1040;;1057:14:1;;;;:::i;:::-;289:1040:32;1057:14:1;;-1:-1:-1;;;392:36:32;1057:14:1;;;-1:-1:-1;;;;;289:1040:32;;1213:33;:::i;:::-;289:1040;;1057:14:1;;;;:::i;:::-;;;;-1:-1:-1;;;392:36:32;1057:14:1;;;-1:-1:-1;;;;;289:1040:32;;1256:35;:::i;:::-;289:1040;1302:18;;;;289:1040;;-1:-1:-1;;;1302:18:32;;289:1040;;;;;;;;1302:18;;;;;;;;289:1040;;1302:18;;;;:::i;:::-;289:1040;;1302:18;289:1040;1302:18;289:1040;;1057:14:1;289:1040:32;;1057:14:1;;;;880:44:32;289:1040;;1057:14:1;289:1040:32;;1057:14:1;;;;880:44:32;-1:-1:-1;;;1057:14:1;;;289:1040:32;1057:14:1;;;811:42:32;-1:-1:-1;;;1057:14:1;;;289:1040:32;1057:14:1;;;;747:38:32;289:1040;;1057:14:1;289:1040:32;;1057:14:1;;;;747:38:32;-1:-1:-1;;;1057:14:1;;;289:1040:32;1057:14:1;;;;683:37:32;289:1040;;1057:14:1;289:1040:32;;1057:14:1;;;;627:28:32;289:1040;;1057:14:1;289:1040:32;;1057:14:1;;;;573:22:32;289:1040;;1057:14:1;289:1040:32;;1057:14:1;;;;573:22:32;-1:-1:-1;;;1057:14:1;;;289:1040:32;1057:14:1;;;;530:23:32;289:1040;;1057:14:1;289:1040:32;;1057:14:1;;;;530:23:32;-1:-1:-1;;;1057:14:1;;;289:1040:32;1057:14:1;;;;498:10:32;-1:-1:-1;;;1057:14:1;;;289:1040:32;1057:14:1;;;;438:37:32;;;;:::i;:::-;;;;;289:1040;;;392:36;;;;;;;;;;;;;;;;;:::i;:::-;;;1057:14:1;;;;;392:36:32;;;;;;-1:-1:-1;392:36:32;;1057:14:1;;;;;;;;:::o;:::-;;;;;;;;;;;;;289:1040:32;1057:14:1;;;;;;;;;;;289:1040:32;1057:14:1;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;6994:145:13:-;289:1040:32;;7077:54:13;;;;;;;;;;;;289:1040:32;7077:54:13;;;289:1040:32;;;;;;;;1057:14:1;-1:-1:-1;289:1040:32;;;;;;;;;;7077:54:13;1057:14:1;289:1040:32;;-1:-1:-1;289:1040:32;;;;;;;;;;;498:10;289:1040;;;;;;;;1057:14:1;;;;;;;289:1040:32;;7077:54:13;289:1040:32;7077:54:13;;;;;;;:::i;:::-;289:1040:32;392:159:13;131:42;392:159;;;6994:145::o;289:1040:32:-;;;;;;;;;;1057:14:1;289:1040:32;;;;;","linkReferences":{}},"methodIdentifiers":{"IS_SCRIPT()":"f8ccbf47","run()":"c0406226"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"IS_SCRIPT\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"run\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/script/Deployment.s.sol\":\"DeploymentScript\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/Script.sol\":{\"keccak256\":\"0xd566affaba92598bcd059dcb3714a968aeedb365ec0d666815e8b38519e0f433\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2fb5f7a97d2a7a06e10c198b60f05e64176eb4ef306b72800c168e7a7ec51693\",\"dweb:/ipfs/Qmcep4r7YEU3BwFJNTTxZsdCVzBYdtcVp8oDtmwLoZGRzP\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/script/Deployment.s.sol\":{\"keccak256\":\"0x7804c9f09bc415b60a11ee8d7a64b3aa09bdb4c22893e317b107d0bbd4c80641\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fe7395c7e327d63219a0bfc1bf5257dfdeb687cd2609e5ec6e16c85871d3ff13\",\"dweb:/ipfs/QmcezB22WGfs6MVn2ysdzozSPsrdFcnU3So2eDpSo44uau\"]},\"src/strategies/G3M/G3M.sol\":{\"keccak256\":\"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c\",\"dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE\"]},\"src/strategies/G3M/G3MLib.sol\":{\"keccak256\":\"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70\",\"dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m\"]},\"src/strategies/LogNormal/LogNormal.sol\":{\"keccak256\":\"0xce0e14a6180d989eff4223bd173904717c745f93c7d02e972dce9d4f5a414d15\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0fe700ac552153eb030453532afdf52d7ae1b7f8ca53b0f050ab9a9e0b1f0ee9\",\"dweb:/ipfs/QmPQW7F1wUqLKs2qPmvJq5EiBfUmPGGsW4y9dUmMtDkfnt\"]},\"src/strategies/LogNormal/LogNormalLib.sol\":{\"keccak256\":\"0x208f8cd3b02d7305d4c54cf02c07f443ddfed1c6c719e752888be208c3ad3645\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://850b799c647dfbece76c7c1daad3ac375243f66daa0eb8206eeeee783982429c\",\"dweb:/ipfs/QmUrixVb4EAxccZxvZCoAJjF8YRqnMbX6cpGCwPfjZvgQk\"]},\"src/strategies/LogNormal/LogNormalMath.sol\":{\"keccak256\":\"0x5d97983f91cf766e1e87ef244a39c6ec6961de38c4c8817030b32edd72a1e65f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://df6121bf8157bad9b659d484fdcc8ebf0cd41179b323d06225d1cf6bff266663\",\"dweb:/ipfs/QmRGN6MwWZb9f6X4Xqv7f3VpUFWXFb36jDKcyEQVaFUhhz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"IS_SCRIPT","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"run"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/script/Deployment.s.sol":"DeploymentScript"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Script.sol":{"keccak256":"0xd566affaba92598bcd059dcb3714a968aeedb365ec0d666815e8b38519e0f433","urls":["bzz-raw://2fb5f7a97d2a7a06e10c198b60f05e64176eb4ef306b72800c168e7a7ec51693","dweb:/ipfs/Qmcep4r7YEU3BwFJNTTxZsdCVzBYdtcVp8oDtmwLoZGRzP"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/script/Deployment.s.sol":{"keccak256":"0x7804c9f09bc415b60a11ee8d7a64b3aa09bdb4c22893e317b107d0bbd4c80641","urls":["bzz-raw://fe7395c7e327d63219a0bfc1bf5257dfdeb687cd2609e5ec6e16c85871d3ff13","dweb:/ipfs/QmcezB22WGfs6MVn2ysdzozSPsrdFcnU3So2eDpSo44uau"],"license":"UNLICENSED"},"src/strategies/G3M/G3M.sol":{"keccak256":"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034","urls":["bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c","dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3MLib.sol":{"keccak256":"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4","urls":["bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70","dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormal.sol":{"keccak256":"0xce0e14a6180d989eff4223bd173904717c745f93c7d02e972dce9d4f5a414d15","urls":["bzz-raw://0fe700ac552153eb030453532afdf52d7ae1b7f8ca53b0f050ab9a9e0b1f0ee9","dweb:/ipfs/QmPQW7F1wUqLKs2qPmvJq5EiBfUmPGGsW4y9dUmMtDkfnt"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormalLib.sol":{"keccak256":"0x208f8cd3b02d7305d4c54cf02c07f443ddfed1c6c719e752888be208c3ad3645","urls":["bzz-raw://850b799c647dfbece76c7c1daad3ac375243f66daa0eb8206eeeee783982429c","dweb:/ipfs/QmUrixVb4EAxccZxvZCoAJjF8YRqnMbX6cpGCwPfjZvgQk"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormalMath.sol":{"keccak256":"0x5d97983f91cf766e1e87ef244a39c6ec6961de38c4c8817030b32edd72a1e65f","urls":["bzz-raw://df6121bf8157bad9b659d484fdcc8ebf0cd41179b323d06225d1cf6bff266663","dweb:/ipfs/QmRGN6MwWZb9f6X4Xqv7f3VpUFWXFb36jDKcyEQVaFUhhz"],"license":"GPL-3.0-or-later"}},"version":1},"ast":{"absolutePath":"src/script/Deployment.s.sol","id":30977,"exportedSymbols":{"DFMM":[29062],"DeploymentScript":[30976],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"G3M":[37911],"G3MLib":[38158],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"LPToken":[29516],"LibString":[26659],"LogNormal":[38879],"LogNormalLib":[39517],"Min":[27736],"MockERC20":[25560],"ONE":[30639],"SQRT_WAD":[30630],"SafeTransferLib":[26744],"Script":[1892],"ScriptBase":[1855],"StdChains":[3244],"StdCheatsSafe":[4792],"StdStorage":[6088],"StdUtils":[8153],"TWO":[30633],"VmSafe":[9027],"WETH":[26027],"ZERO":[30649],"abs":[27763],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeHalfSigmaTauSquared":[39613],"computeLnSDivK":[39549],"computeScalingFactor":[30048],"computeSigmaSqrtTau":[39577],"console":[17416],"console2":[25512],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"muli":[27777],"muliWad":[27795],"mulidiv":[39703],"mulidivUp":[39659],"stdJson":[5914],"stdMath":[6056],"stdStorageSafe":[6981],"upscale":[30064]},"nodeType":"SourceUnit","src":"39:1291:32","nodes":[{"id":30777,"nodeType":"PragmaDirective","src":"39:24:32","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":30778,"nodeType":"ImportDirective","src":"65:30:32","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Script.sol","file":"forge-std/Script.sol","nameLocation":"-1:-1:-1","scope":30977,"sourceUnit":1893,"symbolAliases":[],"unitAlias":""},{"id":30779,"nodeType":"ImportDirective","src":"96:22:32","nodes":[],"absolutePath":"src/DFMM.sol","file":"src/DFMM.sol","nameLocation":"-1:-1:-1","scope":30977,"sourceUnit":29063,"symbolAliases":[],"unitAlias":""},{"id":30780,"nodeType":"ImportDirective","src":"119:36:32","nodes":[],"absolutePath":"src/strategies/G3M/G3M.sol","file":"src/strategies/G3M/G3M.sol","nameLocation":"-1:-1:-1","scope":30977,"sourceUnit":37912,"symbolAliases":[],"unitAlias":""},{"id":30781,"nodeType":"ImportDirective","src":"156:48:32","nodes":[],"absolutePath":"src/strategies/LogNormal/LogNormal.sol","file":"src/strategies/LogNormal/LogNormal.sol","nameLocation":"-1:-1:-1","scope":30977,"sourceUnit":38880,"symbolAliases":[],"unitAlias":""},{"id":30782,"nodeType":"ImportDirective","src":"205:33:32","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/tokens/WETH.sol","file":"solmate/tokens/WETH.sol","nameLocation":"-1:-1:-1","scope":30977,"sourceUnit":26028,"symbolAliases":[],"unitAlias":""},{"id":30783,"nodeType":"ImportDirective","src":"239:48:32","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol","file":"solmate/test/utils/mocks/MockERC20.sol","nameLocation":"-1:-1:-1","scope":30977,"sourceUnit":25561,"symbolAliases":[],"unitAlias":""},{"id":30976,"nodeType":"ContractDefinition","src":"289:1040:32","nodes":[{"id":30975,"nodeType":"FunctionDefinition","src":"331:996:32","nodes":[],"body":{"id":30974,"nodeType":"Block","src":"353:974:32","nodes":[],"statements":[{"assignments":[30789],"declarations":[{"constant":false,"id":30789,"mutability":"mutable","name":"deployerPrivateKey","nameLocation":"371:18:32","nodeType":"VariableDeclaration","scope":30974,"src":"363:26:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30788,"name":"uint256","nodeType":"ElementaryTypeName","src":"363:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30794,"initialValue":{"arguments":[{"hexValue":"4445504c4f594d454e545f505249564154455f4b4559","id":30792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"403:24:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_89d4d37ae898393ba8fc466eca95ef723ebad7af3eb42a289ff01255e3c316e4","typeString":"literal_string \"DEPLOYMENT_PRIVATE_KEY\""},"value":"DEPLOYMENT_PRIVATE_KEY"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_89d4d37ae898393ba8fc466eca95ef723ebad7af3eb42a289ff01255e3c316e4","typeString":"literal_string \"DEPLOYMENT_PRIVATE_KEY\""}],"expression":{"id":30790,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"392:2:32","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":30791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"395:7:32","memberName":"envUint","nodeType":"MemberAccess","referencedDeclaration":8291,"src":"392:10:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (string memory) view external returns (uint256)"}},"id":30793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"392:36:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"363:65:32"},{"expression":{"arguments":[{"id":30798,"name":"deployerPrivateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30789,"src":"456:18:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30795,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"438:2:32","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":30797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"441:14:32","memberName":"startBroadcast","nodeType":"MemberAccess","referencedDeclaration":8611,"src":"438:17:32","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":30799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"438:37:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30800,"nodeType":"ExpressionStatement","src":"438:37:32"},{"assignments":[30803],"declarations":[{"constant":false,"id":30803,"mutability":"mutable","name":"weth","nameLocation":"491:4:32","nodeType":"VariableDeclaration","scope":30974,"src":"486:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_WETH_$26027","typeString":"contract WETH"},"typeName":{"id":30802,"nodeType":"UserDefinedTypeName","pathNode":{"id":30801,"name":"WETH","nameLocations":["486:4:32"],"nodeType":"IdentifierPath","referencedDeclaration":26027,"src":"486:4:32"},"referencedDeclaration":26027,"src":"486:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_WETH_$26027","typeString":"contract WETH"}},"visibility":"internal"}],"id":30808,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":30806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"498:8:32","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_WETH_$26027_$","typeString":"function () returns (contract WETH)"},"typeName":{"id":30805,"nodeType":"UserDefinedTypeName","pathNode":{"id":30804,"name":"WETH","nameLocations":["502:4:32"],"nodeType":"IdentifierPath","referencedDeclaration":26027,"src":"502:4:32"},"referencedDeclaration":26027,"src":"502:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_WETH_$26027","typeString":"contract WETH"}}},"id":30807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"498:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_WETH_$26027","typeString":"contract WETH"}},"nodeType":"VariableDeclarationStatement","src":"486:22:32"},{"assignments":[30811],"declarations":[{"constant":false,"id":30811,"mutability":"mutable","name":"dfmm","nameLocation":"523:4:32","nodeType":"VariableDeclaration","scope":30974,"src":"518:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"},"typeName":{"id":30810,"nodeType":"UserDefinedTypeName","pathNode":{"id":30809,"name":"DFMM","nameLocations":["518:4:32"],"nodeType":"IdentifierPath","referencedDeclaration":29062,"src":"518:4:32"},"referencedDeclaration":29062,"src":"518:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"visibility":"internal"}],"id":30820,"initialValue":{"arguments":[{"arguments":[{"id":30817,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30803,"src":"547:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_WETH_$26027","typeString":"contract WETH"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_WETH_$26027","typeString":"contract WETH"}],"id":30816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"539:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":30815,"name":"address","nodeType":"ElementaryTypeName","src":"539:7:32","typeDescriptions":{}}},"id":30818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"539:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":30814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"530:8:32","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_DFMM_$29062_$","typeString":"function (address) returns (contract DFMM)"},"typeName":{"id":30813,"nodeType":"UserDefinedTypeName","pathNode":{"id":30812,"name":"DFMM","nameLocations":["534:4:32"],"nodeType":"IdentifierPath","referencedDeclaration":29062,"src":"534:4:32"},"referencedDeclaration":29062,"src":"534:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}},"id":30819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"530:23:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"nodeType":"VariableDeclarationStatement","src":"518:35:32"},{"assignments":[30823],"declarations":[{"constant":false,"id":30823,"mutability":"mutable","name":"g3m","nameLocation":"567:3:32","nodeType":"VariableDeclaration","scope":30974,"src":"563:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"},"typeName":{"id":30822,"nodeType":"UserDefinedTypeName","pathNode":{"id":30821,"name":"G3M","nameLocations":["563:3:32"],"nodeType":"IdentifierPath","referencedDeclaration":37911,"src":"563:3:32"},"referencedDeclaration":37911,"src":"563:3:32","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"visibility":"internal"}],"id":30832,"initialValue":{"arguments":[{"arguments":[{"id":30829,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30811,"src":"589:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":30828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"581:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":30827,"name":"address","nodeType":"ElementaryTypeName","src":"581:7:32","typeDescriptions":{}}},"id":30830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"581:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":30826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"573:7:32","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_G3M_$37911_$","typeString":"function (address) returns (contract G3M)"},"typeName":{"id":30825,"nodeType":"UserDefinedTypeName","pathNode":{"id":30824,"name":"G3M","nameLocations":["577:3:32"],"nodeType":"IdentifierPath","referencedDeclaration":37911,"src":"577:3:32"},"referencedDeclaration":37911,"src":"577:3:32","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}}},"id":30831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"573:22:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"nodeType":"VariableDeclarationStatement","src":"563:32:32"},{"assignments":[30835],"declarations":[{"constant":false,"id":30835,"mutability":"mutable","name":"logNormal","nameLocation":"615:9:32","nodeType":"VariableDeclaration","scope":30974,"src":"605:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"},"typeName":{"id":30834,"nodeType":"UserDefinedTypeName","pathNode":{"id":30833,"name":"LogNormal","nameLocations":["605:9:32"],"nodeType":"IdentifierPath","referencedDeclaration":38879,"src":"605:9:32"},"referencedDeclaration":38879,"src":"605:9:32","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}},"visibility":"internal"}],"id":30844,"initialValue":{"arguments":[{"arguments":[{"id":30841,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30811,"src":"649:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":30840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"641:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":30839,"name":"address","nodeType":"ElementaryTypeName","src":"641:7:32","typeDescriptions":{}}},"id":30842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"641:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":30838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"627:13:32","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_LogNormal_$38879_$","typeString":"function (address) returns (contract LogNormal)"},"typeName":{"id":30837,"nodeType":"UserDefinedTypeName","pathNode":{"id":30836,"name":"LogNormal","nameLocations":["631:9:32"],"nodeType":"IdentifierPath","referencedDeclaration":38879,"src":"631:9:32"},"referencedDeclaration":38879,"src":"631:9:32","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}}},"id":30843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"627:28:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}},"nodeType":"VariableDeclarationStatement","src":"605:50:32"},{"assignments":[30847],"declarations":[{"constant":false,"id":30847,"mutability":"mutable","name":"usdc","nameLocation":"676:4:32","nodeType":"VariableDeclaration","scope":30974,"src":"666:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"},"typeName":{"id":30846,"nodeType":"UserDefinedTypeName","pathNode":{"id":30845,"name":"MockERC20","nameLocations":["666:9:32"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"666:9:32"},"referencedDeclaration":25560,"src":"666:9:32","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"visibility":"internal"}],"id":30855,"initialValue":{"arguments":[{"hexValue":"55534420546f6b656e","id":30851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"697:11:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba13ba42f34ff3072160401556bc40be8144e0a7d44277dd5cae16196b6d7b80","typeString":"literal_string \"USD Token\""},"value":"USD Token"},{"hexValue":"55534443","id":30852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"710:6:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6aca1be9729c13d677335161321649cccae6a591554772516700f986f942eaa","typeString":"literal_string \"USDC\""},"value":"USDC"},{"hexValue":"36","id":30853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"718:1:32","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ba13ba42f34ff3072160401556bc40be8144e0a7d44277dd5cae16196b6d7b80","typeString":"literal_string \"USD Token\""},{"typeIdentifier":"t_stringliteral_d6aca1be9729c13d677335161321649cccae6a591554772516700f986f942eaa","typeString":"literal_string \"USDC\""},{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"}],"id":30850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"683:13:32","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":30849,"nodeType":"UserDefinedTypeName","pathNode":{"id":30848,"name":"MockERC20","nameLocations":["687:9:32"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"687:9:32"},"referencedDeclaration":25560,"src":"687:9:32","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":30854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"683:37:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"nodeType":"VariableDeclarationStatement","src":"666:54:32"},{"assignments":[30858],"declarations":[{"constant":false,"id":30858,"mutability":"mutable","name":"usdt","nameLocation":"740:4:32","nodeType":"VariableDeclaration","scope":30974,"src":"730:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"},"typeName":{"id":30857,"nodeType":"UserDefinedTypeName","pathNode":{"id":30856,"name":"MockERC20","nameLocations":["730:9:32"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"730:9:32"},"referencedDeclaration":25560,"src":"730:9:32","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"visibility":"internal"}],"id":30866,"initialValue":{"arguments":[{"hexValue":"54657468657220555344","id":30862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"761:12:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a1ae89798edf3b90847f79f5a01a6aed1a89918d89ec92ed49335597a2f17c1","typeString":"literal_string \"Tether USD\""},"value":"Tether USD"},{"hexValue":"55534454","id":30863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"775:6:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b1a1d9c2b109e527c9134b25b1a1833b16b6594f92daa9f6d9b7a6024bce9d0","typeString":"literal_string \"USDT\""},"value":"USDT"},{"hexValue":"36","id":30864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"783:1:32","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9a1ae89798edf3b90847f79f5a01a6aed1a89918d89ec92ed49335597a2f17c1","typeString":"literal_string \"Tether USD\""},{"typeIdentifier":"t_stringliteral_8b1a1d9c2b109e527c9134b25b1a1833b16b6594f92daa9f6d9b7a6024bce9d0","typeString":"literal_string \"USDT\""},{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"}],"id":30861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"747:13:32","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":30860,"nodeType":"UserDefinedTypeName","pathNode":{"id":30859,"name":"MockERC20","nameLocations":["751:9:32"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"751:9:32"},"referencedDeclaration":25560,"src":"751:9:32","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":30865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"747:38:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"nodeType":"VariableDeclarationStatement","src":"730:55:32"},{"assignments":[30869],"declarations":[{"constant":false,"id":30869,"mutability":"mutable","name":"dai","nameLocation":"805:3:32","nodeType":"VariableDeclaration","scope":30974,"src":"795:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"},"typeName":{"id":30868,"nodeType":"UserDefinedTypeName","pathNode":{"id":30867,"name":"MockERC20","nameLocations":["795:9:32"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"795:9:32"},"referencedDeclaration":25560,"src":"795:9:32","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"visibility":"internal"}],"id":30877,"initialValue":{"arguments":[{"hexValue":"44414920537461626c65636f696e","id":30873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"825:16:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_1f8713b97e0460553de5fcc6f773d9e3320266b4f2fac2eff64d6098e6162e2a","typeString":"literal_string \"DAI Stablecoin\""},"value":"DAI Stablecoin"},{"hexValue":"444149","id":30874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"843:5:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5e92f3efb6826155f1f728e162af9d7cda33a574a1153b58f03ea01cc37e568","typeString":"literal_string \"DAI\""},"value":"DAI"},{"hexValue":"3138","id":30875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"850:2:32","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1f8713b97e0460553de5fcc6f773d9e3320266b4f2fac2eff64d6098e6162e2a","typeString":"literal_string \"DAI Stablecoin\""},{"typeIdentifier":"t_stringliteral_a5e92f3efb6826155f1f728e162af9d7cda33a574a1153b58f03ea01cc37e568","typeString":"literal_string \"DAI\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":30872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"811:13:32","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":30871,"nodeType":"UserDefinedTypeName","pathNode":{"id":30870,"name":"MockERC20","nameLocations":["815:9:32"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"815:9:32"},"referencedDeclaration":25560,"src":"815:9:32","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":30876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"811:42:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"nodeType":"VariableDeclarationStatement","src":"795:58:32"},{"assignments":[30880],"declarations":[{"constant":false,"id":30880,"mutability":"mutable","name":"wbtc","nameLocation":"873:4:32","nodeType":"VariableDeclaration","scope":30974,"src":"863:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"},"typeName":{"id":30879,"nodeType":"UserDefinedTypeName","pathNode":{"id":30878,"name":"MockERC20","nameLocations":["863:9:32"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"863:9:32"},"referencedDeclaration":25560,"src":"863:9:32","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"visibility":"internal"}],"id":30888,"initialValue":{"arguments":[{"hexValue":"5772617070656420426974636f696e","id":30884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"894:17:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f1e4474000cd69613941d4adf7b3a8451de72af6dbbf57fe39ee5ca6b72deab","typeString":"literal_string \"Wrapped Bitcoin\""},"value":"Wrapped Bitcoin"},{"hexValue":"57425443","id":30885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"913:6:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_98da2c5e4c6b1db946694570273b859a6e4083ccc8faa155edfc4c54eb3cfd73","typeString":"literal_string \"WBTC\""},"value":"WBTC"},{"hexValue":"3138","id":30886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"921:2:32","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f1e4474000cd69613941d4adf7b3a8451de72af6dbbf57fe39ee5ca6b72deab","typeString":"literal_string \"Wrapped Bitcoin\""},{"typeIdentifier":"t_stringliteral_98da2c5e4c6b1db946694570273b859a6e4083ccc8faa155edfc4c54eb3cfd73","typeString":"literal_string \"WBTC\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":30883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"880:13:32","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":30882,"nodeType":"UserDefinedTypeName","pathNode":{"id":30881,"name":"MockERC20","nameLocations":["884:9:32"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"884:9:32"},"referencedDeclaration":25560,"src":"884:9:32","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":30887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"880:44:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"nodeType":"VariableDeclarationStatement","src":"863:61:32"},{"expression":{"arguments":[{"hexValue":"44464d4d3a","id":30892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"947:7:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_254e8150444f9ef9015f01f668d821a36966fe15475a4c0e30849643d024b47d","typeString":"literal_string \"DFMM:\""},"value":"DFMM:"},{"arguments":[{"id":30895,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30811,"src":"964:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":30894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"956:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":30893,"name":"address","nodeType":"ElementaryTypeName","src":"956:7:32","typeDescriptions":{}}},"id":30896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"956:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_254e8150444f9ef9015f01f668d821a36966fe15475a4c0e30849643d024b47d","typeString":"literal_string \"DFMM:\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":30889,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17416,"src":"935:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$17416_$","typeString":"type(library console)"}},"id":30891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"943:3:32","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":10111,"src":"935:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":30897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"935:35:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30898,"nodeType":"ExpressionStatement","src":"935:35:32"},{"expression":{"arguments":[{"hexValue":"47334d3a","id":30902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"992:6:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_825dd57e20b6d6c06e74c878aa86f5610ed54333ab9a405b96c72fa41d6911a9","typeString":"literal_string \"G3M:\""},"value":"G3M:"},{"arguments":[{"id":30905,"name":"g3m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30823,"src":"1008:3:32","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}],"id":30904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1000:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":30903,"name":"address","nodeType":"ElementaryTypeName","src":"1000:7:32","typeDescriptions":{}}},"id":30906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1000:12:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_825dd57e20b6d6c06e74c878aa86f5610ed54333ab9a405b96c72fa41d6911a9","typeString":"literal_string \"G3M:\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":30899,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17416,"src":"980:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$17416_$","typeString":"type(library console)"}},"id":30901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"988:3:32","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":10111,"src":"980:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":30907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"980:33:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30908,"nodeType":"ExpressionStatement","src":"980:33:32"},{"expression":{"arguments":[{"hexValue":"4c6f674e6f726d616c3a","id":30912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1035:12:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_f47d270a9b8d5a63efaf4696045b5a7f16a9fb759eb923dac76616d6f8b0a5f2","typeString":"literal_string \"LogNormal:\""},"value":"LogNormal:"},{"arguments":[{"id":30915,"name":"logNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30835,"src":"1057:9:32","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}],"id":30914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1049:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":30913,"name":"address","nodeType":"ElementaryTypeName","src":"1049:7:32","typeDescriptions":{}}},"id":30916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1049:18:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f47d270a9b8d5a63efaf4696045b5a7f16a9fb759eb923dac76616d6f8b0a5f2","typeString":"literal_string \"LogNormal:\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":30909,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17416,"src":"1023:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$17416_$","typeString":"type(library console)"}},"id":30911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1031:3:32","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":10111,"src":"1023:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":30917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1023:45:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30918,"nodeType":"ExpressionStatement","src":"1023:45:32"},{"expression":{"arguments":[{"hexValue":"574554483a","id":30922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1090:7:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_40eee91c36c768a1d27849649c581fae39775241f1b194d062ca4b1c533b5831","typeString":"literal_string \"WETH:\""},"value":"WETH:"},{"arguments":[{"id":30925,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30803,"src":"1107:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_WETH_$26027","typeString":"contract WETH"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_WETH_$26027","typeString":"contract WETH"}],"id":30924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1099:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":30923,"name":"address","nodeType":"ElementaryTypeName","src":"1099:7:32","typeDescriptions":{}}},"id":30926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1099:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_40eee91c36c768a1d27849649c581fae39775241f1b194d062ca4b1c533b5831","typeString":"literal_string \"WETH:\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":30919,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17416,"src":"1078:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$17416_$","typeString":"type(library console)"}},"id":30921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1086:3:32","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":10111,"src":"1078:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":30927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1078:35:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30928,"nodeType":"ExpressionStatement","src":"1078:35:32"},{"expression":{"arguments":[{"hexValue":"555344433a","id":30932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1135:7:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_8be00c4f3967553732a66429ead65318d37138aeb85d55147ef4d857b1fd297d","typeString":"literal_string \"USDC:\""},"value":"USDC:"},{"arguments":[{"id":30935,"name":"usdc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30847,"src":"1152:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":30934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1144:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":30933,"name":"address","nodeType":"ElementaryTypeName","src":"1144:7:32","typeDescriptions":{}}},"id":30936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1144:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8be00c4f3967553732a66429ead65318d37138aeb85d55147ef4d857b1fd297d","typeString":"literal_string \"USDC:\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":30929,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17416,"src":"1123:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$17416_$","typeString":"type(library console)"}},"id":30931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1131:3:32","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":10111,"src":"1123:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":30937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1123:35:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30938,"nodeType":"ExpressionStatement","src":"1123:35:32"},{"expression":{"arguments":[{"hexValue":"555344543a","id":30942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1180:7:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_f3d53d084733c26296511fc68c69cc2a492aad247e301bc3854fb647d33a928a","typeString":"literal_string \"USDT:\""},"value":"USDT:"},{"arguments":[{"id":30945,"name":"usdt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30858,"src":"1197:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":30944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1189:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":30943,"name":"address","nodeType":"ElementaryTypeName","src":"1189:7:32","typeDescriptions":{}}},"id":30946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1189:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f3d53d084733c26296511fc68c69cc2a492aad247e301bc3854fb647d33a928a","typeString":"literal_string \"USDT:\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":30939,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17416,"src":"1168:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$17416_$","typeString":"type(library console)"}},"id":30941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1176:3:32","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":10111,"src":"1168:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":30947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1168:35:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30948,"nodeType":"ExpressionStatement","src":"1168:35:32"},{"expression":{"arguments":[{"hexValue":"4441493a","id":30952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1225:6:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_96333a8dfe43ef3b8e5dca22a89810a30e7c74e4d147a447243528cab65f4fd9","typeString":"literal_string \"DAI:\""},"value":"DAI:"},{"arguments":[{"id":30955,"name":"dai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30869,"src":"1241:3:32","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":30954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1233:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":30953,"name":"address","nodeType":"ElementaryTypeName","src":"1233:7:32","typeDescriptions":{}}},"id":30956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1233:12:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_96333a8dfe43ef3b8e5dca22a89810a30e7c74e4d147a447243528cab65f4fd9","typeString":"literal_string \"DAI:\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":30949,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17416,"src":"1213:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$17416_$","typeString":"type(library console)"}},"id":30951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1221:3:32","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":10111,"src":"1213:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":30957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1213:33:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30958,"nodeType":"ExpressionStatement","src":"1213:33:32"},{"expression":{"arguments":[{"hexValue":"574254433a","id":30962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1268:7:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_d1d9771b8959f0d2c2be9adef92b9521e022a27456b89552e9082c5c87e81dc7","typeString":"literal_string \"WBTC:\""},"value":"WBTC:"},{"arguments":[{"id":30965,"name":"wbtc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30880,"src":"1285:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":30964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1277:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":30963,"name":"address","nodeType":"ElementaryTypeName","src":"1277:7:32","typeDescriptions":{}}},"id":30966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1277:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d1d9771b8959f0d2c2be9adef92b9521e022a27456b89552e9082c5c87e81dc7","typeString":"literal_string \"WBTC:\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":30959,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17416,"src":"1256:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$17416_$","typeString":"type(library console)"}},"id":30961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1264:3:32","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":10111,"src":"1256:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":30967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1256:35:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30968,"nodeType":"ExpressionStatement","src":"1256:35:32"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":30969,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"1302:2:32","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":30971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1305:13:32","memberName":"stopBroadcast","nodeType":"MemberAccess","referencedDeclaration":8614,"src":"1302:16:32","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":30972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1302:18:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30973,"nodeType":"ExpressionStatement","src":"1302:18:32"}]},"functionSelector":"c0406226","implemented":true,"kind":"function","modifiers":[],"name":"run","nameLocation":"340:3:32","parameters":{"id":30786,"nodeType":"ParameterList","parameters":[],"src":"343:2:32"},"returnParameters":{"id":30787,"nodeType":"ParameterList","parameters":[],"src":"353:0:32"},"scope":30976,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":30784,"name":"Script","nameLocations":["318:6:32"],"nodeType":"IdentifierPath","referencedDeclaration":1892,"src":"318:6:32"},"id":30785,"nodeType":"InheritanceSpecifier","src":"318:6:32"}],"canonicalName":"DeploymentScript","contractDependencies":[25560,26027,29062,37911,38879],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[30976,1892,1855,1840,8153,4792,3244],"name":"DeploymentScript","nameLocation":"298:16:32","scope":30977,"usedErrors":[],"usedEvents":[]}],"license":"UNLICENSED"},"id":32} \ No newline at end of file diff --git a/out/DynamicParamLib.sol/DynamicParamLib.json b/out/DynamicParamLib.sol/DynamicParamLib.json deleted file mode 100644 index 65bcaa1b..00000000 --- a/out/DynamicParamLib.sol/DynamicParamLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"InvalidUpdateEnd","inputs":[]}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220e459755d9a910d10c30cfa2e3b060d55da97bc17a3255dcd724bb501983c0d7864736f6c63430008160033","sourceMap":"251:1443:28:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220e459755d9a910d10c30cfa2e3b060d55da97bc17a3255dcd724bb501983c0d7864736f6c63430008160033","sourceMap":"251:1443:28:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidUpdateEnd\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/DynamicParamLib.sol\":\"DynamicParamLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidUpdateEnd"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/DynamicParamLib.sol":"DynamicParamLib"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"}},"version":1},"ast":{"absolutePath":"src/lib/DynamicParamLib.sol","id":30013,"exportedSymbols":{"DynamicParam":[29851],"DynamicParamLib":[30012],"FixedPointMathLib":[26640]},"nodeType":"SourceUnit","src":"45:1650:28","nodes":[{"id":29841,"nodeType":"PragmaDirective","src":"45:24:28","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":29842,"nodeType":"ImportDirective","src":"71:45:28","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol","file":"solmate/utils/FixedPointMathLib.sol","nameLocation":"-1:-1:-1","scope":30013,"sourceUnit":26641,"symbolAliases":[],"unitAlias":""},{"id":29851,"nodeType":"StructDefinition","src":"118:131:28","nodes":[],"canonicalName":"DynamicParam","members":[{"constant":false,"id":29844,"mutability":"mutable","name":"lastComputedValue","nameLocation":"152:17:28","nodeType":"VariableDeclaration","scope":29851,"src":"144:25:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29843,"name":"uint256","nodeType":"ElementaryTypeName","src":"144:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29846,"mutability":"mutable","name":"updateEnd","nameLocation":"183:9:28","nodeType":"VariableDeclaration","scope":29851,"src":"175:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29845,"name":"uint256","nodeType":"ElementaryTypeName","src":"175:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29848,"mutability":"mutable","name":"updatePerSecond","nameLocation":"205:15:28","nodeType":"VariableDeclaration","scope":29851,"src":"198:22:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":29847,"name":"int256","nodeType":"ElementaryTypeName","src":"198:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":29850,"mutability":"mutable","name":"lastUpdateAt","nameLocation":"234:12:28","nodeType":"VariableDeclaration","scope":29851,"src":"226:20:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29849,"name":"uint256","nodeType":"ElementaryTypeName","src":"226:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"DynamicParam","nameLocation":"125:12:28","scope":30013,"visibility":"public"},{"id":30012,"nodeType":"ContractDefinition","src":"251:1443:28","nodes":[{"id":29854,"nodeType":"UsingForDirective","src":"281:36:28","nodes":[],"global":false,"libraryName":{"id":29852,"name":"FixedPointMathLib","nameLocations":["287:17:28"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"287:17:28"},"typeName":{"id":29853,"name":"uint256","nodeType":"ElementaryTypeName","src":"309:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":29856,"nodeType":"ErrorDefinition","src":"323:25:28","nodes":[],"errorSelector":"cde205da","name":"InvalidUpdateEnd","nameLocation":"329:16:28","parameters":{"id":29855,"nodeType":"ParameterList","parameters":[],"src":"345:2:28"}},{"id":29925,"nodeType":"FunctionDefinition","src":"354:683:28","nodes":[],"body":{"id":29924,"nodeType":"Block","src":"461:576:28","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":29864,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29859,"src":"475:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"id":29865,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"481:12:28","memberName":"lastUpdateAt","nodeType":"MemberAccess","referencedDeclaration":29850,"src":"475:18:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":29866,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29859,"src":"497:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"id":29867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"503:9:28","memberName":"updateEnd","nodeType":"MemberAccess","referencedDeclaration":29846,"src":"497:15:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"475:37:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29873,"nodeType":"IfStatement","src":"471:98:28","trueBody":{"id":29872,"nodeType":"Block","src":"514:55:28","statements":[{"expression":{"expression":{"id":29869,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29859,"src":"535:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"id":29870,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"541:17:28","memberName":"lastComputedValue","nodeType":"MemberAccess","referencedDeclaration":29844,"src":"535:23:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":29863,"id":29871,"nodeType":"Return","src":"528:30:28"}]}},{"assignments":[29875],"declarations":[{"constant":false,"id":29875,"mutability":"mutable","name":"updateTo","nameLocation":"587:8:28","nodeType":"VariableDeclaration","scope":29924,"src":"579:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29874,"name":"uint256","nodeType":"ElementaryTypeName","src":"579:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29886,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":29876,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"598:5:28","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":29877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"604:9:28","memberName":"timestamp","nodeType":"MemberAccess","src":"598:15:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":29878,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29859,"src":"616:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"id":29879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"622:9:28","memberName":"updateEnd","nodeType":"MemberAccess","referencedDeclaration":29846,"src":"616:15:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"598:33:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":29883,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"676:5:28","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":29884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"682:9:28","memberName":"timestamp","nodeType":"MemberAccess","src":"676:15:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"598:93:28","trueExpression":{"expression":{"id":29881,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29859,"src":"646:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"id":29882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"652:9:28","memberName":"updateEnd","nodeType":"MemberAccess","referencedDeclaration":29846,"src":"646:15:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"579:112:28"},{"assignments":[29888],"declarations":[{"constant":false,"id":29888,"mutability":"mutable","name":"deltaTime","nameLocation":"709:9:28","nodeType":"VariableDeclaration","scope":29924,"src":"701:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29887,"name":"uint256","nodeType":"ElementaryTypeName","src":"701:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29893,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29889,"name":"updateTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29875,"src":"721:8:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":29890,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29859,"src":"732:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"id":29891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"738:12:28","memberName":"lastUpdateAt","nodeType":"MemberAccess","referencedDeclaration":29850,"src":"732:18:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"721:29:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"701:49:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":29897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":29894,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29859,"src":"765:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"id":29895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"771:15:28","memberName":"updatePerSecond","nodeType":"MemberAccess","referencedDeclaration":29848,"src":"765:21:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":29896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"789:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"765:25:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":29922,"nodeType":"Block","src":"914:117:28","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":29910,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29859,"src":"935:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"id":29911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"941:17:28","memberName":"lastComputedValue","nodeType":"MemberAccess","referencedDeclaration":29844,"src":"935:23:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29912,"name":"deltaTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29888,"src":"977:9:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":29917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"997:22:28","subExpression":{"expression":{"id":29915,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29859,"src":"998:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"id":29916,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1004:15:28","memberName":"updatePerSecond","nodeType":"MemberAccess","referencedDeclaration":29848,"src":"998:21:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":29914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"989:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":29913,"name":"uint256","nodeType":"ElementaryTypeName","src":"989:7:28","typeDescriptions":{}}},"id":29918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"989:31:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"977:43:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"935:85:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":29863,"id":29921,"nodeType":"Return","src":"928:92:28"}]},"id":29923,"nodeType":"IfStatement","src":"761:270:28","trueBody":{"id":29909,"nodeType":"Block","src":"792:116:28","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":29898,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29859,"src":"813:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"id":29899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"819:17:28","memberName":"lastComputedValue","nodeType":"MemberAccess","referencedDeclaration":29844,"src":"813:23:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29900,"name":"deltaTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29888,"src":"855:9:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"expression":{"id":29903,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29859,"src":"875:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"id":29904,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"881:15:28","memberName":"updatePerSecond","nodeType":"MemberAccess","referencedDeclaration":29848,"src":"875:21:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":29902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"867:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":29901,"name":"uint256","nodeType":"ElementaryTypeName","src":"867:7:28","typeDescriptions":{}}},"id":29905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"867:30:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"855:42:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"813:84:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":29863,"id":29908,"nodeType":"Return","src":"806:91:28"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"actualized","nameLocation":"363:10:28","parameters":{"id":29860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29859,"mutability":"mutable","name":"param","nameLocation":"394:5:28","nodeType":"VariableDeclaration","scope":29925,"src":"374:25:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam"},"typeName":{"id":29858,"nodeType":"UserDefinedTypeName","pathNode":{"id":29857,"name":"DynamicParam","nameLocations":["374:12:28"],"nodeType":"IdentifierPath","referencedDeclaration":29851,"src":"374:12:28"},"referencedDeclaration":29851,"src":"374:12:28","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"}},"visibility":"internal"}],"src":"373:27:28"},"returnParameters":{"id":29863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29862,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29925,"src":"448:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29861,"name":"uint256","nodeType":"ElementaryTypeName","src":"448:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"447:9:28"},"scope":30012,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":29947,"nodeType":"FunctionDefinition","src":"1043:157:28","nodes":[],"body":{"id":29946,"nodeType":"Block","src":"1094:106:28","nodes":[],"statements":[{"expression":{"id":29937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":29931,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29928,"src":"1104:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam storage pointer"}},"id":29933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1110:17:28","memberName":"lastComputedValue","nodeType":"MemberAccess","referencedDeclaration":29844,"src":"1104:23:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":29935,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29928,"src":"1141:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam storage pointer"}],"id":29934,"name":"actualized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29925,"src":"1130:10:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_DynamicParam_$29851_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct DynamicParam memory) view returns (uint256)"}},"id":29936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1130:17:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1104:43:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29938,"nodeType":"ExpressionStatement","src":"1104:43:28"},{"expression":{"id":29944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":29939,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29928,"src":"1157:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam storage pointer"}},"id":29941,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1163:12:28","memberName":"lastUpdateAt","nodeType":"MemberAccess","referencedDeclaration":29850,"src":"1157:18:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":29942,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1178:5:28","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":29943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1184:9:28","memberName":"timestamp","nodeType":"MemberAccess","src":"1178:15:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1157:36:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29945,"nodeType":"ExpressionStatement","src":"1157:36:28"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sync","nameLocation":"1052:4:28","parameters":{"id":29929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29928,"mutability":"mutable","name":"param","nameLocation":"1078:5:28","nodeType":"VariableDeclaration","scope":29947,"src":"1057:26:28","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"},"typeName":{"id":29927,"nodeType":"UserDefinedTypeName","pathNode":{"id":29926,"name":"DynamicParam","nameLocations":["1057:12:28"],"nodeType":"IdentifierPath","referencedDeclaration":29851,"src":"1057:12:28"},"referencedDeclaration":29851,"src":"1057:12:28","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"}},"visibility":"internal"}],"src":"1056:28:28"},"returnParameters":{"id":29930,"nodeType":"ParameterList","parameters":[],"src":"1094:0:28"},"scope":30012,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":30011,"nodeType":"FunctionDefinition","src":"1206:486:28","nodes":[],"body":{"id":30010,"nodeType":"Block","src":"1321:371:28","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29957,"name":"updateEnd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29954,"src":"1335:9:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":29958,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1348:5:28","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":29959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1354:9:28","memberName":"timestamp","nodeType":"MemberAccess","src":"1348:15:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1335:28:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29964,"nodeType":"IfStatement","src":"1331:59:28","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":29961,"name":"InvalidUpdateEnd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29856,"src":"1372:16:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":29962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1372:18:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29963,"nodeType":"RevertStatement","src":"1365:25:28"}},{"expression":{"arguments":[{"id":29966,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29950,"src":"1405:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam storage pointer"}],"id":29965,"name":"sync","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29947,"src":"1400:4:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_DynamicParam_$29851_storage_ptr_$returns$__$","typeString":"function (struct DynamicParam storage pointer)"}},"id":29967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1400:11:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29968,"nodeType":"ExpressionStatement","src":"1400:11:28"},{"assignments":[29970],"declarations":[{"constant":false,"id":29970,"mutability":"mutable","name":"timeDelta","nameLocation":"1429:9:28","nodeType":"VariableDeclaration","scope":30010,"src":"1421:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29969,"name":"uint256","nodeType":"ElementaryTypeName","src":"1421:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29975,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29971,"name":"updateEnd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29954,"src":"1441:9:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":29972,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1453:5:28","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":29973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1459:9:28","memberName":"timestamp","nodeType":"MemberAccess","src":"1453:15:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1441:27:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1421:47:28"},{"assignments":[29977],"declarations":[{"constant":false,"id":29977,"mutability":"mutable","name":"delta","nameLocation":"1485:5:28","nodeType":"VariableDeclaration","scope":30010,"src":"1478:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":29976,"name":"int256","nodeType":"ElementaryTypeName","src":"1478:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":29988,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":29987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":29980,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29952,"src":"1500:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1493:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":29978,"name":"int256","nodeType":"ElementaryTypeName","src":"1493:6:28","typeDescriptions":{}}},"id":29981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1493:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"expression":{"id":29984,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29950,"src":"1517:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam storage pointer"}},"id":29985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1523:17:28","memberName":"lastComputedValue","nodeType":"MemberAccess","referencedDeclaration":29844,"src":"1517:23:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29983,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1510:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":29982,"name":"int256","nodeType":"ElementaryTypeName","src":"1510:6:28","typeDescriptions":{}}},"id":29986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1510:31:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1493:48:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"1478:63:28"},{"assignments":[29990],"declarations":[{"constant":false,"id":29990,"mutability":"mutable","name":"deltaPerSecond","nameLocation":"1558:14:28","nodeType":"VariableDeclaration","scope":30010,"src":"1551:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":29989,"name":"int256","nodeType":"ElementaryTypeName","src":"1551:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":29997,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":29996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29991,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29977,"src":"1575:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"arguments":[{"id":29994,"name":"timeDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29970,"src":"1590:9:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1583:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":29992,"name":"int256","nodeType":"ElementaryTypeName","src":"1583:6:28","typeDescriptions":{}}},"id":29995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1583:17:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1575:25:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"1551:49:28"},{"expression":{"id":30002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":29998,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29950,"src":"1610:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam storage pointer"}},"id":30000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1616:9:28","memberName":"updateEnd","nodeType":"MemberAccess","referencedDeclaration":29846,"src":"1610:15:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":30001,"name":"updateEnd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29954,"src":"1628:9:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1610:27:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30003,"nodeType":"ExpressionStatement","src":"1610:27:28"},{"expression":{"id":30008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":30004,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29950,"src":"1647:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam storage pointer"}},"id":30006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1653:15:28","memberName":"updatePerSecond","nodeType":"MemberAccess","referencedDeclaration":29848,"src":"1647:21:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":30007,"name":"deltaPerSecond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29990,"src":"1671:14:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1647:38:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30009,"nodeType":"ExpressionStatement","src":"1647:38:28"}]},"implemented":true,"kind":"function","modifiers":[],"name":"set","nameLocation":"1215:3:28","parameters":{"id":29955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29950,"mutability":"mutable","name":"param","nameLocation":"1249:5:28","nodeType":"VariableDeclaration","scope":30011,"src":"1228:26:28","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"},"typeName":{"id":29949,"nodeType":"UserDefinedTypeName","pathNode":{"id":29948,"name":"DynamicParam","nameLocations":["1228:12:28"],"nodeType":"IdentifierPath","referencedDeclaration":29851,"src":"1228:12:28"},"referencedDeclaration":29851,"src":"1228:12:28","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"}},"visibility":"internal"},{"constant":false,"id":29952,"mutability":"mutable","name":"target","nameLocation":"1272:6:28","nodeType":"VariableDeclaration","scope":30011,"src":"1264:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29951,"name":"uint256","nodeType":"ElementaryTypeName","src":"1264:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29954,"mutability":"mutable","name":"updateEnd","nameLocation":"1296:9:28","nodeType":"VariableDeclaration","scope":30011,"src":"1288:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29953,"name":"uint256","nodeType":"ElementaryTypeName","src":"1288:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1218:93:28"},"returnParameters":{"id":29956,"nodeType":"ParameterList","parameters":[],"src":"1321:0:28"},"scope":30012,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"DynamicParamLib","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[30012],"name":"DynamicParamLib","nameLocation":"259:15:28","scope":30013,"usedErrors":[29856],"usedEvents":[]}],"license":"GPL-3.0-or-later"},"id":28} \ No newline at end of file diff --git a/out/DynamicParamLib.t.sol/DynamicParamLibTest.json b/out/DynamicParamLib.t.sol/DynamicParamLibTest.json deleted file mode 100644 index a5296fe8..00000000 --- a/out/DynamicParamLib.t.sol/DynamicParamLibTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"test_DynamicParamLib_actualized_SameValueWhenEmptyStruct","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_DynamicParamLib_actualized_ValueDecreasesOverTime","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_DynamicParamLib_actualized_ValueDecreasesUntilEnd","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_DynamicParamLib_actualized_ValueIncreasesOverTime","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_DynamicParamLib_actualized_ValueIncreasesUntilEnd","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_DynamicParamLib_set_RevertsWhenUpdateEndIsPast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_DynamicParamLib_set_SetsValueDecrease","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_DynamicParamLib_set_SetsValueIncrease","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_DynamicParamLib_sync_SyncsValue","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"InvalidUpdateEnd","inputs":[]}],"bytecode":{"object":"0x608034610075576000805460ff1916600117815590608081016001600160401b03811182821017610061578291606091604052828152826020820152826040820152015280601355806014558060155560165560405161121b908161007b8239f35b634e487b7160e01b83526041600452602483fd5b600080fdfe608060408181526004918236101561001657600080fd5b600092833560e01c918263052befe414610ac157508163174f3073146109ee578382632370457c1461093e575081635035b9c6146108195781635649a5ec146106f45781637bea45611461049657838263ac3324da146103ba57508163ba414fa614610394578163e78cb7541461020e578163f6a9b7b7146100c6575063fa7626d4146100a257600080fd5b346100c257816003193601126100c25760ff602092541690519015158152f35b5080fd5b905034610200578260031936011261020057828251916100e583610bbc565b600a8352600a602084015260001984840152816060840152737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b156102005760146024849283885195869485936372eb5f8160e11b85528401525af18015610204576101ec575b505061014d90610d82565b9081610157578280f35b8060008051602061118683398151915260806101d5935160208152602260208201526000805160206111a68339815191528482015261745d60f01b6060820152a18051928184526101a9828501610e09565b60006020860152846000805160206111c68339815191529586920390a181519282849384528301610e26565b9060208301520390a16101e66110b9565b38808280f35b6101f590610b92565b610200578238610142565b8280fd5b84513d84823e3d90fd5b905034610200578260031936011261020057600a806013556014918483558460165584601555428211156103865761024461107f565b4282039082821161035c576013549283850391600085128684128116908785139015161761035c5742821461037157600160ff1b831460001985141661035c575084550560155561029f919061029990610f6a565b54610f6a565b6102ab42601654610ff4565b60155490600182036102bb578280f35b8060008051602061118683398151915260806101d5935160208152602160208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b696e7484820152605d60f81b6060820152a180519281845261031e828501610e09565b60016020860152847f2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f1689586920390a181519282849384528301610e26565b601190634e487b7160e01b6000525260246000fd5b601290634e487b7160e01b6000525260246000fd5b83516366f102ed60e11b8152fd5b5050346100c257816003193601126100c2576020906103b1610c3a565b90519015158152f35b9150346100c257816003193601126100c257600a601355600a60145581601655600019601555737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b156102005760056024849283875195869485936372eb5f8160e11b85528401525af1801561048957610475575b5061046761045a8380519061043982610bbc565b60135482526014546020830152601554908201526016546060820152610d82565b8060135542601655610ee0565b610472601654610ee0565b80f35b61047e90610b92565b6100c2578138610425565b50505051903d90823e3d90fd5b8383346100c257816003193601126100c257601490816013558282558260165582601555600a91428311156106e4576104cd61107f565b4283038381116106cf576013549081850360008312868212811690878313901516176106ba574286146106a55760001995600160ff1b8214838814166106905761052a95969798508455056015558181036105fd575b5054610f6a565b61053642601654610ff4565b60155490828203610545578380f35b6105e5916000805160206111868339815191526080835160208152602160208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b696e7485820152605d60f81b6060820152a18151938285526105a8838601610e09565b906020860152847f2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f1689586920390a181519282849384528301610e26565b9060208301520390a16105f66110b9565b8180808380f35b6000805160206111868339815191526080855160208152602260208201526000805160206111a68339815191528782015261745d60f01b6060820152a183519084825261064b858301610e09565b836020840152826000805160206111c68339815191529384920390a184518091868252610679878301610e26565b9060208301520390a161068a6110b9565b85610523565b601189634e487b7160e01b6000525260246000fd5b601288634e487b7160e01b6000525260246000fd5b601188634e487b7160e01b6000525260246000fd5b601186634e487b7160e01b6000525260246000fd5b81516366f102ed60e11b81528590fd5b9050346102005782600319360112610200578282519161071383610bbc565b60018352600a6020840152600184840152816060840152737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b156102005760146024849283885195869485936372eb5f8160e11b85528401525af1801561020457610805575b505061077a90610d82565b90600b8203610787578280f35b8060008051602061118683398151915260806101d5935160208152602260208201526000805160206111a68339815191528482015261745d60f01b6060820152a18051928184526107d9828501610e09565b600b6020860152846000805160206111c68339815191529586920390a181519282849384528301610e26565b61080e90610b92565b61020057823861076f565b9050346102005782600319360112610200578282519161083883610bbc565b60018352600a6020840152600184840152816060840152737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b156102005760056024849283885195869485936372eb5f8160e11b85528401525af180156102045761092a575b505061089f90610d82565b90600682036108ac578280f35b8060008051602061118683398151915260806101d5935160208152602260208201526000805160206111a68339815191528482015261745d60f01b6060820152a18051928184526108fe828501610e09565b60066020860152846000805160206111c68339815191529586920390a181519282849384528301610e26565b61093390610b92565b610200578238610894565b9150346100c257816003193601126100c25782519261095c84610bbc565b600a8452600a602085015260001981850152826060850152737109709ecfa91a80626ff3989d68f67f5b1dd12d91823b156109ea5760056024859283855196879485936372eb5f8160e11b85528401525af19081156109e157506109cd575b506104726109c883610d82565b610ee0565b6109d690610b92565b6100c25781386109bb565b513d84823e3d90fd5b8380fd5b8383346100c257816003193601126100c257805190610a0c82610bbc565b606482528260208301528281830152826060830152610a32610a2d83610d82565b610e43565b62015180420190814211610aae5790839185737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b15610aaa576024859283855196879485936372eb5f8160e11b85528401525af19081156109e15750610a96575b50610472610a2d83610d82565b610a9f90610b92565b6100c2578183610a89565b8480fd5b634e487b7160e01b845260118552602484fd5b838534610b765780600319360112610b7657600a601355806014558060165580601555737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b156100c2576372eb5f8160e11b8152848101829052818160248183885af18015610b7957610b83575b50823b15610b76578151630618f58760e51b81528181602481836366f102ed60e11b98898b8401525af18015610b7957610b62575b505051908152fd5b610b6c8291610b92565b610b765780610b5a565b80fd5b83513d84823e3d90fd5b610b8c90610b92565b84610b25565b67ffffffffffffffff8111610ba657604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff821117610ba657604052565b90601f8019910116810190811067ffffffffffffffff821117610ba657604052565b3d15610c35573d9067ffffffffffffffff8211610ba65760405191610c29601f8201601f191660200184610bd8565b82523d6000602084013e565b606090565b6000805460081c60ff1615610c53575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610c7457505090565b9091506040516020908260208201526519985a5b195960d21b604082015260408152606081019080821067ffffffffffffffff831117610d38579290918285936040526080850191630667f9d760e41b8352855190855b828110610d2157505090610cf5602487879894889501856084820152036004810184520182610bd8565b51925af150610d02610bfa565b6020818051810103126100c25760200151908115158203610b76575090565b808801808301516084909101528896508101610ccb565b634e487b7160e01b85526041600452602485fd5b91908203918211610d5957565b634e487b7160e01b600052601160045260246000fd5b81810292918115918404141715610d5957565b6060810151602082015190818114610e0357610da791804211600014610dfc57610d4c565b6040820191825160008113600014610dd25750519151610dc691610d6f565b8101809111610d595790565b9051919250600160ff1b8114610d5957610df992610df39160000390610d6f565b90610d4c565b90565b5042610d4c565b50505190565b600a8152690808115e1c1958dd195960b21b602082015260400190565b600a815269080808081058dd1d585b60b21b602082015260400190565b60648103610e4e5750565b610ecd60406000805160206111868339815191526080825160208152602260208201526000805160206111a68339815191528482015261745d60f01b6060820152a1805192818452610ea1828501610e09565b60646020860152846000805160206111c68339815191529586920390a181519282849384528301610e26565b9060208301520390a1610ede6110b9565b565b60058103610eeb5750565b610ecd60406000805160206111868339815191526080825160208152602260208201526000805160206111a68339815191528482015261745d60f01b6060820152a1805192818452610f3e828501610e09565b60056020860152846000805160206111c68339815191529586920390a181519282849384528301610e26565b600a8103610f755750565b610ecd60406000805160206111868339815191526080825160208152602260208201526000805160206111a68339815191528482015261745d60f01b6060820152a1805192818452610fc8828501610e09565b600a6020860152846000805160206111c68339815191529586920390a181519282849384528301610e26565b818103610fff575050565b610ecd906040906000805160206111868339815191526080835160208152602260208201526000805160206111a68339815191528582015261745d60f01b6060820152a1815193828552611054838601610e09565b906020860152846000805160206111c68339815191529586920390a181519282849384528301610e26565b6110b060405161108e81610bbc565b6013548152601454602082015260155460408201526016546060820152610d82565b60135542601655565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6110e7575b5061010061ff00196000541617600055565b6040516020908260208201526519985a5b195960d21b6040820152600160608201526060815261111681610bbc565b6040519060208201926370ca10bb60e01b845281519160005b838110611171575050509160008261115d602482849896978598018583820152036004810184520182610bd8565b51925af15061116a610bfa565b50386110d5565b81810183015185820160240152820161112f56fe41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f504572726f723a2061203d3d2062206e6f7420736174697366696564205b75696eb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8a2646970667358221220c612c42722c15c61f815a2f0ce6bf5dea081b765357f146f7fd79cd51d0f848364736f6c63430008160033","sourceMap":"133:3581:67:-:0;;;;1594:4:0;133:3581:67;;-1:-1:-1;;133:3581:67;1594:4:0;133:3581:67;;;1594:4:0;133:3581:67;;;-1:-1:-1;;;;;133:3581:67;;;;;;;;;;248:125;133:3581;;;;;;248:125;;;;133:3581;248:125;133:3581;248:125;;133:3581;248:125;133:3581;;248:125;133:3581;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;133:3581:67;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060408181526004918236101561001657600080fd5b600092833560e01c918263052befe414610ac157508163174f3073146109ee578382632370457c1461093e575081635035b9c6146108195781635649a5ec146106f45781637bea45611461049657838263ac3324da146103ba57508163ba414fa614610394578163e78cb7541461020e578163f6a9b7b7146100c6575063fa7626d4146100a257600080fd5b346100c257816003193601126100c25760ff602092541690519015158152f35b5080fd5b905034610200578260031936011261020057828251916100e583610bbc565b600a8352600a602084015260001984840152816060840152737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b156102005760146024849283885195869485936372eb5f8160e11b85528401525af18015610204576101ec575b505061014d90610d82565b9081610157578280f35b8060008051602061118683398151915260806101d5935160208152602260208201526000805160206111a68339815191528482015261745d60f01b6060820152a18051928184526101a9828501610e09565b60006020860152846000805160206111c68339815191529586920390a181519282849384528301610e26565b9060208301520390a16101e66110b9565b38808280f35b6101f590610b92565b610200578238610142565b8280fd5b84513d84823e3d90fd5b905034610200578260031936011261020057600a806013556014918483558460165584601555428211156103865761024461107f565b4282039082821161035c576013549283850391600085128684128116908785139015161761035c5742821461037157600160ff1b831460001985141661035c575084550560155561029f919061029990610f6a565b54610f6a565b6102ab42601654610ff4565b60155490600182036102bb578280f35b8060008051602061118683398151915260806101d5935160208152602160208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b696e7484820152605d60f81b6060820152a180519281845261031e828501610e09565b60016020860152847f2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f1689586920390a181519282849384528301610e26565b601190634e487b7160e01b6000525260246000fd5b601290634e487b7160e01b6000525260246000fd5b83516366f102ed60e11b8152fd5b5050346100c257816003193601126100c2576020906103b1610c3a565b90519015158152f35b9150346100c257816003193601126100c257600a601355600a60145581601655600019601555737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b156102005760056024849283875195869485936372eb5f8160e11b85528401525af1801561048957610475575b5061046761045a8380519061043982610bbc565b60135482526014546020830152601554908201526016546060820152610d82565b8060135542601655610ee0565b610472601654610ee0565b80f35b61047e90610b92565b6100c2578138610425565b50505051903d90823e3d90fd5b8383346100c257816003193601126100c257601490816013558282558260165582601555600a91428311156106e4576104cd61107f565b4283038381116106cf576013549081850360008312868212811690878313901516176106ba574286146106a55760001995600160ff1b8214838814166106905761052a95969798508455056015558181036105fd575b5054610f6a565b61053642601654610ff4565b60155490828203610545578380f35b6105e5916000805160206111868339815191526080835160208152602160208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b696e7485820152605d60f81b6060820152a18151938285526105a8838601610e09565b906020860152847f2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f1689586920390a181519282849384528301610e26565b9060208301520390a16105f66110b9565b8180808380f35b6000805160206111868339815191526080855160208152602260208201526000805160206111a68339815191528782015261745d60f01b6060820152a183519084825261064b858301610e09565b836020840152826000805160206111c68339815191529384920390a184518091868252610679878301610e26565b9060208301520390a161068a6110b9565b85610523565b601189634e487b7160e01b6000525260246000fd5b601288634e487b7160e01b6000525260246000fd5b601188634e487b7160e01b6000525260246000fd5b601186634e487b7160e01b6000525260246000fd5b81516366f102ed60e11b81528590fd5b9050346102005782600319360112610200578282519161071383610bbc565b60018352600a6020840152600184840152816060840152737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b156102005760146024849283885195869485936372eb5f8160e11b85528401525af1801561020457610805575b505061077a90610d82565b90600b8203610787578280f35b8060008051602061118683398151915260806101d5935160208152602260208201526000805160206111a68339815191528482015261745d60f01b6060820152a18051928184526107d9828501610e09565b600b6020860152846000805160206111c68339815191529586920390a181519282849384528301610e26565b61080e90610b92565b61020057823861076f565b9050346102005782600319360112610200578282519161083883610bbc565b60018352600a6020840152600184840152816060840152737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b156102005760056024849283885195869485936372eb5f8160e11b85528401525af180156102045761092a575b505061089f90610d82565b90600682036108ac578280f35b8060008051602061118683398151915260806101d5935160208152602260208201526000805160206111a68339815191528482015261745d60f01b6060820152a18051928184526108fe828501610e09565b60066020860152846000805160206111c68339815191529586920390a181519282849384528301610e26565b61093390610b92565b610200578238610894565b9150346100c257816003193601126100c25782519261095c84610bbc565b600a8452600a602085015260001981850152826060850152737109709ecfa91a80626ff3989d68f67f5b1dd12d91823b156109ea5760056024859283855196879485936372eb5f8160e11b85528401525af19081156109e157506109cd575b506104726109c883610d82565b610ee0565b6109d690610b92565b6100c25781386109bb565b513d84823e3d90fd5b8380fd5b8383346100c257816003193601126100c257805190610a0c82610bbc565b606482528260208301528281830152826060830152610a32610a2d83610d82565b610e43565b62015180420190814211610aae5790839185737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b15610aaa576024859283855196879485936372eb5f8160e11b85528401525af19081156109e15750610a96575b50610472610a2d83610d82565b610a9f90610b92565b6100c2578183610a89565b8480fd5b634e487b7160e01b845260118552602484fd5b838534610b765780600319360112610b7657600a601355806014558060165580601555737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b156100c2576372eb5f8160e11b8152848101829052818160248183885af18015610b7957610b83575b50823b15610b76578151630618f58760e51b81528181602481836366f102ed60e11b98898b8401525af18015610b7957610b62575b505051908152fd5b610b6c8291610b92565b610b765780610b5a565b80fd5b83513d84823e3d90fd5b610b8c90610b92565b84610b25565b67ffffffffffffffff8111610ba657604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff821117610ba657604052565b90601f8019910116810190811067ffffffffffffffff821117610ba657604052565b3d15610c35573d9067ffffffffffffffff8211610ba65760405191610c29601f8201601f191660200184610bd8565b82523d6000602084013e565b606090565b6000805460081c60ff1615610c53575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610c7457505090565b9091506040516020908260208201526519985a5b195960d21b604082015260408152606081019080821067ffffffffffffffff831117610d38579290918285936040526080850191630667f9d760e41b8352855190855b828110610d2157505090610cf5602487879894889501856084820152036004810184520182610bd8565b51925af150610d02610bfa565b6020818051810103126100c25760200151908115158203610b76575090565b808801808301516084909101528896508101610ccb565b634e487b7160e01b85526041600452602485fd5b91908203918211610d5957565b634e487b7160e01b600052601160045260246000fd5b81810292918115918404141715610d5957565b6060810151602082015190818114610e0357610da791804211600014610dfc57610d4c565b6040820191825160008113600014610dd25750519151610dc691610d6f565b8101809111610d595790565b9051919250600160ff1b8114610d5957610df992610df39160000390610d6f565b90610d4c565b90565b5042610d4c565b50505190565b600a8152690808115e1c1958dd195960b21b602082015260400190565b600a815269080808081058dd1d585b60b21b602082015260400190565b60648103610e4e5750565b610ecd60406000805160206111868339815191526080825160208152602260208201526000805160206111a68339815191528482015261745d60f01b6060820152a1805192818452610ea1828501610e09565b60646020860152846000805160206111c68339815191529586920390a181519282849384528301610e26565b9060208301520390a1610ede6110b9565b565b60058103610eeb5750565b610ecd60406000805160206111868339815191526080825160208152602260208201526000805160206111a68339815191528482015261745d60f01b6060820152a1805192818452610f3e828501610e09565b60056020860152846000805160206111c68339815191529586920390a181519282849384528301610e26565b600a8103610f755750565b610ecd60406000805160206111868339815191526080825160208152602260208201526000805160206111a68339815191528482015261745d60f01b6060820152a1805192818452610fc8828501610e09565b600a6020860152846000805160206111c68339815191529586920390a181519282849384528301610e26565b818103610fff575050565b610ecd906040906000805160206111868339815191526080835160208152602260208201526000805160206111a68339815191528582015261745d60f01b6060820152a1815193828552611054838601610e09565b906020860152846000805160206111c68339815191529586920390a181519282849384528301610e26565b6110b060405161108e81610bbc565b6013548152601454602082015260155460408201526016546060820152610d82565b60135542601655565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6110e7575b5061010061ff00196000541617600055565b6040516020908260208201526519985a5b195960d21b6040820152600160608201526060815261111681610bbc565b6040519060208201926370ca10bb60e01b845281519160005b838110611171575050509160008261115d602482849896978598018583820152036004810184520182610bd8565b51925af15061116a610bfa565b50386110d5565b81810183015185820160240152820161112f56fe41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f504572726f723a2061203d3d2062206e6f7420736174697366696564205b75696eb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8a2646970667358221220c612c42722c15c61f815a2f0ce6bf5dea081b765357f146f7fd79cd51d0f848364736f6c63430008160033","sourceMap":"133:3581:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2335:2;133:3581;;2335:2;2289:148;;;133:3581;2090:2;;2289:148;;;133:3581;2289:148;;;;133:3581;;2448:11;;;;;;2456:2;133:3581;;;;;;1057:14:1;;;;;;;;2448:11:67;;;;1057:14:1;2448:11:67;;;;;;;;133:3581;2478:18;;;;;:::i;:::-;5259:6:0;;5255:203;;133:3581:67;;;5255:203:0;133:3581:67;-1:-1:-1;;;;;;;;;;;133:3581:67;;;;2289:148;133:3581;;;2289:148;133:3581;;;-1:-1:-1;;;;;;;;;;;133:3581:67;;;;-1:-1:-1;;;2289:148:67;133:3581;;;5286:41:0;133:3581:67;;;;;;;;;;;:::i;:::-;;2289:148;133:3581;;1057:14:1;5346:31:0;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;;;133:3581:67;;;;;;;;;;;:::i;:::-;;2289:148;133:3581;;1057:14:1;5396:31:0;;;;;:::i;:::-;5255:203;;133:3581:67;;;2448:11;;;;:::i;:::-;133:3581;;2448:11;;;;133:3581;;;;2448:11;133:3581;;1057:14:1;133:3581:67;;1057:14:1;;;;133:3581:67;;;;;;;;;;;;;;2855:2;133:3581;554:11;133:3581;613:21;133:3581;;;;;656:24;133:3581;;705:27;133:3581;1348:15:28;1335:28;;;1331:59;;1405:5;;:::i;:::-;1348:15;133:3581:67;;;;;;;;554:11;133:3581;;;;;;;;;;;;;;;;;;;;;;;;1348:15:28;133:3581:67;;;;-1:-1:-1;;;133:3581:67;;-1:-1:-1;;133:3581:67;;;;;-1:-1:-1;133:3581:67;;;705:27;133:3581;2963:35;;133:3581;2910:43;;;:::i;:::-;133:3581;2963:35;:::i;:::-;3043:15;1348::28;656:24:67;133:3581;3043:15;:::i;:::-;705:27;133:3581;4814:6:0;2972:21:67;4814:6:0;;4810:200;;133:3581:67;;;4810:200:0;133:3581:67;-1:-1:-1;;;;;;;;;;;133:3581:67;;;;;;;;;;;;;;;;;-1:-1:-1;;;133:3581:67;;;;4841:40:0;133:3581:67;;;;;;;;;;;:::i;:::-;2972:21;133:3581;;;1057:14:1;4900:30:0;;;;;;;;133:3581:67;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;1331:59:28;133:3581:67;;-1:-1:-1;;;1372:18:28;;;133:3581:67;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2594:2;554:11;133:3581;2594:2;613:21;133:3581;;656:24;133:3581;2090:2;;705:27;133:3581;;2618:10;;;;;;2626:1;133:3581;;;;;;1057:14:1;;;;;;;;2618:10:67;;;;1057:14:1;2618:10:67;;;;;;;;133:3581;;2666:42;1130:17:28;133:3581:67;;;;;;;:::i;:::-;554:11;133:3581;;;613:21;133:3581;;;;;705:27;133:3581;;;;;656:24;133:3581;;;;;1130:17:28;:::i;:::-;133:3581:67;554:11;133:3581;1178:15:28;656:24:67;133:3581;2666:42;:::i;:::-;2718:37;656:24;133:3581;2718:37;:::i;:::-;133:3581;;2618:10;;;;:::i;:::-;133:3581;;2618:10;;;;;133:3581;;;;1057:14:1;;;;;;;;133:3581:67;;;;;;;;;;;;;;3209:2;133:3581;;554:11;133:3581;;;;;656:24;133:3581;;705:27;133:3581;3247:2;1348:15:28;;1335:28;;;1331:59;;1405:5;;:::i;:::-;1348:15;133:3581:67;;;;;;;554:11;133:3581;;;;;;;;;;;;;;;;;;;;;;;1348:15:28;133:3581:67;;;;-1:-1:-1;;2090:2:67;-1:-1:-1;;;133:3581:67;;;;;;;;3317:35;133:3581;;;;;;;;705:27;133:3581;5259:6:0;;;5255:203;;133:3581:67;;;3317:35;:::i;:::-;3397:15;1348::28;656:24:67;133:3581;3397:15;:::i;:::-;705:27;133:3581;4814:6:0;;;;4810:200;;133:3581:67;;;4810:200:0;133:3581:67;;-1:-1:-1;;;;;;;;;;;133:3581:67;;;;;;;;;;;;;;;;-1:-1:-1;;;133:3581:67;;;;4841:40:0;133:3581:67;;;;;;;;;;;:::i;:::-;;;;;1057:14:1;4900:30:0;;;;;;;;133:3581:67;;;;;;;;;;;:::i;:::-;;;;;1057:14:1;4949:30:0;;;;;:::i;:::-;4810:200;;;133:3581:67;;;5255:203:0;-1:-1:-1;;;;;;;;;;;133:3581:67;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;133:3581:67;;;;-1:-1:-1;;;133:3581:67;;;;5286:41:0;133:3581:67;;;;;;;;;;;:::i;:::-;;;;;1057:14:1;5346:31:0;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;;;133:3581:67;;;;;;;;;;;;:::i;:::-;;;;;1057:14:1;5396:31:0;;;;;:::i;:::-;5255:203;;;133:3581:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1331:59:28;133:3581:67;;-1:-1:-1;;;1372:18:28;;133:3581:67;;1372:18:28;133:3581:67;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1667:1;133:3581;;1693:2;1621:146;;;133:3581;1667:1;1621:146;;;133:3581;1621:146;;;;133:3581;;1778:11;;;;;;1786:2;133:3581;;;;;;1057:14:1;;;;;;;;1778:11:67;;;;1057:14:1;1778:11:67;;;;;;;;133:3581;1808:18;;;;;:::i;:::-;5259:6:0;1828:2:67;5259:6:0;;5255:203;;133:3581:67;;;5255:203:0;133:3581:67;-1:-1:-1;;;;;;;;;;;133:3581:67;;;;1621:146;133:3581;;;1621:146;133:3581;;;-1:-1:-1;;;;;;;;;;;133:3581:67;;;;-1:-1:-1;;;1621:146:67;133:3581;;;5286:41:0;133:3581:67;;;;;;;;;;;:::i;:::-;1828:2;1621:146;133:3581;;1057:14:1;5346:31:0;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;;;133:3581:67;;;;;;;;;;;:::i;1778:11::-;;;;:::i;:::-;133:3581;;1778:11;;;;133:3581;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1335:1;133:3581;;1361:2;1289:146;;;133:3581;1335:1;1289:146;;;133:3581;1289:146;;;;133:3581;;1446:10;;;;;;1454:1;133:3581;;;;;;1057:14:1;;;;;;;;1446:10:67;;;;1057:14:1;1446:10:67;;;;;;;;133:3581;1475:18;;;;;:::i;:::-;5259:6:0;1495:1:67;5259:6:0;;5255:203;;133:3581:67;;;5255:203:0;133:3581:67;-1:-1:-1;;;;;;;;;;;133:3581:67;;;;1289:146;133:3581;;;1289:146;133:3581;;;-1:-1:-1;;;;;;;;;;;133:3581:67;;;;-1:-1:-1;;;1289:146:67;133:3581;;;5286:41:0;133:3581:67;;;;;;;;;;;:::i;:::-;1495:1;1289:146;133:3581;;1057:14:1;5346:31:0;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;;;133:3581:67;;;;;;;;;;;:::i;1446:10::-;;;;:::i;:::-;133:3581;;1446:10;;;;133:3581;;;;;;;;;;;;;;;;;;;;:::i;:::-;2001:2;133:3581;;2001:2;1955:148;;;133:3581;2090:2;;1955:148;;;133:3581;1955:148;;;;133:3581;;2114:10;;;;;;2122:1;133:3581;;;;;;1057:14:1;;;;;;;;2114:10:67;;;;1057:14:1;2114:10:67;;;;;;;;;;133:3581;2143:18;2134:31;2143:18;;;:::i;:::-;2134:31;:::i;2114:10::-;;;;:::i;:::-;133:3581;;2114:10;;;;;133:3581;1057:14:1;133:3581:67;;1057:14:1;;;;2114:10:67;133:3581;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;934:3;133:3581;;888:147;;;;133:3581;888:147;;;;133:3581;888:147;;;;133:3581;1046:33;1055:18;;;:::i;:::-;1046:33;:::i;:::-;1115:6;1097:15;133:3581;1097:15;;;133:3581;;;;;;;;1089:33;;;;;;133:3581;;;;;;1057:14:1;;;;;;;;1089:33:67;;;;1057:14:1;1089:33:67;;;;;;;;;;133:3581;1141:18;1132:33;1141:18;;;:::i;1089:33::-;;;;:::i;:::-;133:3581;;1089:33;;;;;133:3581;;;;-1:-1:-1;;;133:3581:67;;;;;;;;;;;;;;;;;;;;;;3573:2;554:11;133:3581;;613:21;133:3581;;656:24;133:3581;;705:27;133:3581;;3595:10;;;;;;-1:-1:-1;;;3595:10:67;;;;;1057:14:1;;;3595:10:67;;1057:14:1;3595:10:67;;;;;;;;;;;133:3581;3615:58;;;;;;133:3581;;1057:14:1;;;3615:58:67;;3631:41;;1057:14:1;3631:41:67;;;;;3615:58;;;;;1057:14:1;3615:58:67;;;;;;;;133:3581;;;;1372:18:28;;;;3615:58:67;;;;;:::i;:::-;133:3581;;3615:58;;;133:3581;;;3615:58;133:3581;;1057:14:1;133:3581:67;;1057:14:1;;;;3595:10:67;;;;:::i;:::-;;;;1057:14:1;;;;;;;;:::o;:::-;133:3581:67;;;1057:14:1;;;;;;;;;133:3581:67;1057:14:1;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;1671:64:0:-;;;;;;;;;;;;133:3581:67;;;;1057:14:1;;;-1:-1:-1;;1057:14:1;1671:64:0;;133:3581:67;;:::i;:::-;1671:64:0;;;-1:-1:-1;1671:64:0;;;;:::o;:::-;;;:::o;1819:584::-;1873:7;133:3581:67;;;;;;;;;;;;;;;1896:14:0:o;1869:528::-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;133:3581:67;;;;;2196:43:0;;;;;;1671:64;;;;133:3581:67;1671:64:0;;1057:14:1;133:3581:67;2196:43:0;;133:3581:67;1057:14:1;;;;;;;;;;;;;;;;;;133:3581:67;1057:14:1;2086:175:0;;;1057:14:1;;;;;;1671:64:0;;;;;;;;;;;;;2086:175;;1671:64;;;;;;;;;;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;;;;:::i;:::-;2196:43;1671:64;;;2312:27;;1671:64;;;;2196:43;2312:27;1671:64;133:3581:67;;;;1671:64:0;;;;2297:42;2367:19;:::o;1671:64::-;;;;;;;;;;;;;;;-1:-1:-1;1671:64:0;;;;1057:14:1;-1:-1:-1;;;1057:14:1;;;;;;133:3581:67;1057:14:1;133:3581:67;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;354:683:28:-;475:18;;;133:3581:67;497:15:28;;;133:3581:67;475:37:28;;;;471:98;;721:29;598:93;:15;;:33;:93;:33;;;721:29;:::i;:::-;765:21;;;133:3581:67;;;-1:-1:-1;765:25:28;;761:270;-1:-1:-1;;;;133:3581:67;;;855:42:28;;;:::i;:::-;133:3581:67;;;;;;;806:91:28;:::o;761:270::-;133:3581:67;;;;-1:-1:-1;;;;133:3581:67;;;;935:85:28;133:3581:67;977:43:28;133:3581:67;-1:-1:-1;133:3581:67;977:43:28;;:::i;:::-;935:85;;:::i;:::-;928:92;:::o;598:93::-;:15;;721:29;:::i;471:98::-;133:3581:67;;;528:30:28;:::o;133:3581:67:-;;;;-1:-1:-1;;;133:3581:67;;;;;;;:::o;:::-;;;;-1:-1:-1;;;133:3581:67;;;;;;;:::o;5202:262:0:-;934:3:67;5259:6:0;;5255:203;;5202:262;:::o;5255:203::-;133:3581:67;;-1:-1:-1;;;;;;;;;;;133:3581:67;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;133:3581:67;;;;-1:-1:-1;;;133:3581:67;;;;5286:41:0;133:3581:67;;;;;;;;;;;:::i;:::-;934:3;133:3581;;;1057:14:1;5346:31:0;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;;;133:3581:67;;;;;;;;;;;:::i;:::-;;;;;1057:14:1;5396:31:0;;;;;:::i;:::-;5202:262::o;:::-;2122:1:67;5259:6:0;;5255:203;;5202:262;:::o;5255:203::-;133:3581:67;;-1:-1:-1;;;;;;;;;;;133:3581:67;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;133:3581:67;;;;-1:-1:-1;;;133:3581:67;;;;5286:41:0;133:3581:67;;;;;;;;;;;:::i;:::-;2122:1;133:3581;;;1057:14:1;5346:31:0;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;;;133:3581:67;;;;;;;;;;;:::i;5202:262:0:-;3247:2:67;5259:6:0;;5255:203;;5202:262;:::o;5255:203::-;133:3581:67;;-1:-1:-1;;;;;;;;;;;133:3581:67;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;133:3581:67;;;;-1:-1:-1;;;133:3581:67;;;;5286:41:0;133:3581:67;;;;;;;;;;;:::i;:::-;3247:2;133:3581;;;1057:14:1;5346:31:0;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;;;133:3581:67;;;;;;;;;;;:::i;5202:262:0:-;5259:6;;;5255:203;;5202:262;;:::o;5255:203::-;133:3581:67;;;;-1:-1:-1;;;;;;;;;;;133:3581:67;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;133:3581:67;;;;-1:-1:-1;;;133:3581:67;;;;5286:41:0;133:3581:67;;;;;;;;;;;:::i;:::-;;;;;1057:14:1;5346:31:0;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;;;133:3581:67;;;;;;;;;;;:::i;1043:157:28:-;1130:17;133:3581:67;;;;;:::i;:::-;554:11;133:3581;;;;;;;;;;;;;;;;;;;;;1130:17:28;:::i;:::-;554:11:67;133:3581;1178:15:28;133:3581:67;;1043:157:28:o;2410:424:0:-;2939:104;;;2445:359;;2410:424;133:3581:67;;;;2928:1:0;133:3581:67;;;2928:1:0;133:3581:67;2410:424:0:o;2445:359::-;133:3581:67;;2645:67:0;;;;;;1671:64;;;;133:3581:67;;;1057:14:1;2705:4:0;133:3581:67;;;1057:14:1;133:3581:67;2645:67:0;;;;;:::i;:::-;133:3581:67;;2534:196:0;2645:67;2534:196;;1057:14:1;;;;;;1671:64:0;;;-1:-1:-1;1671:64:0;;;;;;;;;;-1:-1:-1;1671:64:0;2534:196;1671:64;;;;;;;;;;;;;;2534:196;1671:64;2534:196;;;;;;;:::i;:::-;2499:245;;;;;;;:::i;:::-;;2445:359;;;1671:64;;;;;;;;;;;;;;;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","failed()":"ba414fa6","test_DynamicParamLib_actualized_SameValueWhenEmptyStruct()":"174f3073","test_DynamicParamLib_actualized_ValueDecreasesOverTime()":"2370457c","test_DynamicParamLib_actualized_ValueDecreasesUntilEnd()":"f6a9b7b7","test_DynamicParamLib_actualized_ValueIncreasesOverTime()":"5035b9c6","test_DynamicParamLib_actualized_ValueIncreasesUntilEnd()":"5649a5ec","test_DynamicParamLib_set_RevertsWhenUpdateEndIsPast()":"052befe4","test_DynamicParamLib_set_SetsValueDecrease()":"7bea4561","test_DynamicParamLib_set_SetsValueIncrease()":"e78cb754","test_DynamicParamLib_sync_SyncsValue()":"ac3324da"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidUpdateEnd\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_DynamicParamLib_actualized_SameValueWhenEmptyStruct\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_DynamicParamLib_actualized_ValueDecreasesOverTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_DynamicParamLib_actualized_ValueDecreasesUntilEnd\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_DynamicParamLib_actualized_ValueIncreasesOverTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_DynamicParamLib_actualized_ValueIncreasesUntilEnd\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_DynamicParamLib_set_RevertsWhenUpdateEndIsPast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_DynamicParamLib_set_SetsValueDecrease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_DynamicParamLib_set_SetsValueIncrease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_DynamicParamLib_sync_SyncsValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/unit/lib/DynamicParamLib.t.sol\":\"DynamicParamLibTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/test/unit/lib/DynamicParamLib.t.sol\":{\"keccak256\":\"0xef08e6b9f326e6c1a8aade6ab7646c01617fc3a25c3b6eb4fde451ac90d29f58\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ef5945695ebbb2bdd9d1c9d32a3d8b0991cc92ccad3c15cff07c0628495dac88\",\"dweb:/ipfs/QmZA49FX93kodWyR8HX1AJbEddAR29uEt14rzppVcZ3PEd\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidUpdateEnd"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_DynamicParamLib_actualized_SameValueWhenEmptyStruct"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_DynamicParamLib_actualized_ValueDecreasesOverTime"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_DynamicParamLib_actualized_ValueDecreasesUntilEnd"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_DynamicParamLib_actualized_ValueIncreasesOverTime"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_DynamicParamLib_actualized_ValueIncreasesUntilEnd"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_DynamicParamLib_set_RevertsWhenUpdateEndIsPast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_DynamicParamLib_set_SetsValueDecrease"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_DynamicParamLib_set_SetsValueIncrease"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_DynamicParamLib_sync_SyncsValue"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/unit/lib/DynamicParamLib.t.sol":"DynamicParamLibTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/test/unit/lib/DynamicParamLib.t.sol":{"keccak256":"0xef08e6b9f326e6c1a8aade6ab7646c01617fc3a25c3b6eb4fde451ac90d29f58","urls":["bzz-raw://ef5945695ebbb2bdd9d1c9d32a3d8b0991cc92ccad3c15cff07c0628495dac88","dweb:/ipfs/QmZA49FX93kodWyR8HX1AJbEddAR29uEt14rzppVcZ3PEd"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/unit/lib/DynamicParamLib.t.sol","id":46220,"exportedSymbols":{"DSTest":[1786],"DynamicParam":[29851],"DynamicParamLib":[30012],"DynamicParamLibTest":[46219],"FixedPointMathLib":[26640],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"Test":[8195],"TestBase":[1843],"Vm":[9352],"console":[17416],"console2":[25512],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522]},"nodeType":"SourceUnit","src":"39:3676:67","nodes":[{"id":45864,"nodeType":"PragmaDirective","src":"39:24:67","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":45865,"nodeType":"ImportDirective","src":"65:28:67","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":46220,"sourceUnit":8196,"symbolAliases":[],"unitAlias":""},{"id":45866,"nodeType":"ImportDirective","src":"94:37:67","nodes":[],"absolutePath":"src/lib/DynamicParamLib.sol","file":"src/lib/DynamicParamLib.sol","nameLocation":"-1:-1:-1","scope":46220,"sourceUnit":30013,"symbolAliases":[],"unitAlias":""},{"id":46219,"nodeType":"ContractDefinition","src":"133:3581:67","nodes":[{"id":45872,"nodeType":"UsingForDirective","src":"176:39:67","nodes":[],"global":false,"libraryName":{"id":45869,"name":"DynamicParamLib","nameLocations":["182:15:67"],"nodeType":"IdentifierPath","referencedDeclaration":30012,"src":"182:15:67"},"typeName":{"id":45871,"nodeType":"UserDefinedTypeName","pathNode":{"id":45870,"name":"DynamicParam","nameLocations":["202:12:67"],"nodeType":"IdentifierPath","referencedDeclaration":29851,"src":"202:12:67"},"referencedDeclaration":29851,"src":"202:12:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"}}},{"id":45881,"nodeType":"VariableDeclaration","src":"221:152:67","nodes":[],"constant":false,"mutability":"mutable","name":"storedParam","nameLocation":"234:11:67","scope":46219,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam"},"typeName":{"id":45874,"nodeType":"UserDefinedTypeName","pathNode":{"id":45873,"name":"DynamicParam","nameLocations":["221:12:67"],"nodeType":"IdentifierPath","referencedDeclaration":29851,"src":"221:12:67"},"referencedDeclaration":29851,"src":"221:12:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"}},"value":{"arguments":[{"hexValue":"30","id":45876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"290:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":45877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"312:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":45878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"337:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":45879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"365:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":45875,"name":"DynamicParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29851,"src":"248:12:67","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DynamicParam_$29851_storage_ptr_$","typeString":"type(struct DynamicParam storage pointer)"}},"id":45880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["271:17:67","301:9:67","323:12:67","348:15:67"],"names":["lastComputedValue","updateEnd","lastUpdateAt","updatePerSecond"],"nodeType":"FunctionCall","src":"248:125:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"visibility":"internal"},{"id":45917,"nodeType":"FunctionDefinition","src":"380:377:67","nodes":[],"body":{"id":45916,"nodeType":"Block","src":"544:213:67","nodes":[],"statements":[{"expression":{"id":45896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":45892,"name":"storedParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45881,"src":"554:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":45894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"566:17:67","memberName":"lastComputedValue","nodeType":"MemberAccess","referencedDeclaration":29844,"src":"554:29:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":45895,"name":"lastComputedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45883,"src":"586:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"554:49:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45897,"nodeType":"ExpressionStatement","src":"554:49:67"},{"expression":{"id":45902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":45898,"name":"storedParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45881,"src":"613:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":45900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"625:9:67","memberName":"updateEnd","nodeType":"MemberAccess","referencedDeclaration":29846,"src":"613:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":45901,"name":"updateEnd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45885,"src":"637:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"613:33:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45903,"nodeType":"ExpressionStatement","src":"613:33:67"},{"expression":{"id":45908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":45904,"name":"storedParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45881,"src":"656:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":45906,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"668:12:67","memberName":"lastUpdateAt","nodeType":"MemberAccess","referencedDeclaration":29850,"src":"656:24:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":45907,"name":"lastUpdateAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45887,"src":"683:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"656:39:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45909,"nodeType":"ExpressionStatement","src":"656:39:67"},{"expression":{"id":45914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":45910,"name":"storedParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45881,"src":"705:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":45912,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"717:15:67","memberName":"updatePerSecond","nodeType":"MemberAccess","referencedDeclaration":29848,"src":"705:27:67","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":45913,"name":"updatePerSecond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"735:15:67","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"705:45:67","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":45915,"nodeType":"ExpressionStatement","src":"705:45:67"}]},"implemented":true,"kind":"function","modifiers":[],"name":"initStoredParam","nameLocation":"389:15:67","parameters":{"id":45890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45883,"mutability":"mutable","name":"lastComputedValue","nameLocation":"422:17:67","nodeType":"VariableDeclaration","scope":45917,"src":"414:25:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45882,"name":"uint256","nodeType":"ElementaryTypeName","src":"414:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45885,"mutability":"mutable","name":"updateEnd","nameLocation":"457:9:67","nodeType":"VariableDeclaration","scope":45917,"src":"449:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45884,"name":"uint256","nodeType":"ElementaryTypeName","src":"449:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45887,"mutability":"mutable","name":"lastUpdateAt","nameLocation":"484:12:67","nodeType":"VariableDeclaration","scope":45917,"src":"476:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45886,"name":"uint256","nodeType":"ElementaryTypeName","src":"476:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45889,"mutability":"mutable","name":"updatePerSecond","nameLocation":"513:15:67","nodeType":"VariableDeclaration","scope":45917,"src":"506:22:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":45888,"name":"int256","nodeType":"ElementaryTypeName","src":"506:6:67","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"404:130:67"},"returnParameters":{"id":45891,"nodeType":"ParameterList","parameters":[],"src":"544:0:67"},"scope":46219,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45954,"nodeType":"FunctionDefinition","src":"763:409:67","nodes":[],"body":{"id":45953,"nodeType":"Block","src":"850:322:67","nodes":[],"statements":[{"assignments":[45922],"declarations":[{"constant":false,"id":45922,"mutability":"mutable","name":"param","nameLocation":"880:5:67","nodeType":"VariableDeclaration","scope":45953,"src":"860:25:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam"},"typeName":{"id":45921,"nodeType":"UserDefinedTypeName","pathNode":{"id":45920,"name":"DynamicParam","nameLocations":["860:12:67"],"nodeType":"IdentifierPath","referencedDeclaration":29851,"src":"860:12:67"},"referencedDeclaration":29851,"src":"860:12:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"}},"visibility":"internal"}],"id":45929,"initialValue":{"arguments":[{"hexValue":"313030","id":45924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"934:3:67","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},{"hexValue":"30","id":45925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"962:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":45926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"991:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":45927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1023:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":45923,"name":"DynamicParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29851,"src":"888:12:67","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DynamicParam_$29851_storage_ptr_$","typeString":"type(struct DynamicParam storage pointer)"}},"id":45928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["915:17:67","951:9:67","977:12:67","1006:15:67"],"names":["lastComputedValue","updateEnd","lastUpdateAt","updatePerSecond"],"nodeType":"FunctionCall","src":"888:147:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"nodeType":"VariableDeclarationStatement","src":"860:175:67"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45931,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45922,"src":"1055:5:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"id":45932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1061:10:67","memberName":"actualized","nodeType":"MemberAccess","referencedDeclaration":29925,"src":"1055:16:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_DynamicParam_$29851_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_DynamicParam_$29851_memory_ptr_$","typeString":"function (struct DynamicParam memory) view returns (uint256)"}},"id":45933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1055:18:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313030","id":45934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1075:3:67","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":45930,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"1046:8:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":45935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1046:33:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45936,"nodeType":"ExpressionStatement","src":"1046:33:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45940,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1097:5:67","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":45941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1103:9:67","memberName":"timestamp","nodeType":"MemberAccess","src":"1097:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":45942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1115:6:67","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"src":"1097:24:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":45937,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"1089:2:67","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":45939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1092:4:67","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":9034,"src":"1089:7:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1089:33:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45945,"nodeType":"ExpressionStatement","src":"1089:33:67"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45947,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45922,"src":"1141:5:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"id":45948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1147:10:67","memberName":"actualized","nodeType":"MemberAccess","referencedDeclaration":29925,"src":"1141:16:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_DynamicParam_$29851_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_DynamicParam_$29851_memory_ptr_$","typeString":"function (struct DynamicParam memory) view returns (uint256)"}},"id":45949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1141:18:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313030","id":45950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1161:3:67","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":45946,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"1132:8:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":45951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1132:33:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45952,"nodeType":"ExpressionStatement","src":"1132:33:67"}]},"functionSelector":"174f3073","implemented":true,"kind":"function","modifiers":[],"name":"test_DynamicParamLib_actualized_SameValueWhenEmptyStruct","nameLocation":"772:56:67","parameters":{"id":45918,"nodeType":"ParameterList","parameters":[],"src":"828:2:67"},"returnParameters":{"id":45919,"nodeType":"ParameterList","parameters":[],"src":"850:0:67"},"scope":46219,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":45981,"nodeType":"FunctionDefinition","src":"1178:326:67","nodes":[],"body":{"id":45980,"nodeType":"Block","src":"1251:253:67","nodes":[],"statements":[{"assignments":[45959],"declarations":[{"constant":false,"id":45959,"mutability":"mutable","name":"param","nameLocation":"1281:5:67","nodeType":"VariableDeclaration","scope":45980,"src":"1261:25:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam"},"typeName":{"id":45958,"nodeType":"UserDefinedTypeName","pathNode":{"id":45957,"name":"DynamicParam","nameLocations":["1261:12:67"],"nodeType":"IdentifierPath","referencedDeclaration":29851,"src":"1261:12:67"},"referencedDeclaration":29851,"src":"1261:12:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"}},"visibility":"internal"}],"id":45966,"initialValue":{"arguments":[{"hexValue":"31","id":45961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1335:1:67","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"3130","id":45962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1361:2:67","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},{"hexValue":"30","id":45963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1391:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"31","id":45964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1423:1:67","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":45960,"name":"DynamicParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29851,"src":"1289:12:67","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DynamicParam_$29851_storage_ptr_$","typeString":"type(struct DynamicParam storage pointer)"}},"id":45965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1316:17:67","1350:9:67","1377:12:67","1406:15:67"],"names":["lastComputedValue","updateEnd","lastUpdateAt","updatePerSecond"],"nodeType":"FunctionCall","src":"1289:146:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"nodeType":"VariableDeclarationStatement","src":"1261:174:67"},{"expression":{"arguments":[{"hexValue":"35","id":45970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1454:1:67","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"expression":{"id":45967,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"1446:2:67","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":45969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1449:4:67","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":9034,"src":"1446:7:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1446:10:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45972,"nodeType":"ExpressionStatement","src":"1446:10:67"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45974,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45959,"src":"1475:5:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"id":45975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1481:10:67","memberName":"actualized","nodeType":"MemberAccess","referencedDeclaration":29925,"src":"1475:16:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_DynamicParam_$29851_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_DynamicParam_$29851_memory_ptr_$","typeString":"function (struct DynamicParam memory) view returns (uint256)"}},"id":45976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1475:18:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"36","id":45977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1495:1:67","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"}],"id":45973,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"1466:8:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":45978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1466:31:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45979,"nodeType":"ExpressionStatement","src":"1466:31:67"}]},"functionSelector":"5035b9c6","implemented":true,"kind":"function","modifiers":[],"name":"test_DynamicParamLib_actualized_ValueIncreasesOverTime","nameLocation":"1187:54:67","parameters":{"id":45955,"nodeType":"ParameterList","parameters":[],"src":"1241:2:67"},"returnParameters":{"id":45956,"nodeType":"ParameterList","parameters":[],"src":"1251:0:67"},"scope":46219,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":46008,"nodeType":"FunctionDefinition","src":"1510:328:67","nodes":[],"body":{"id":46007,"nodeType":"Block","src":"1583:255:67","nodes":[],"statements":[{"assignments":[45986],"declarations":[{"constant":false,"id":45986,"mutability":"mutable","name":"param","nameLocation":"1613:5:67","nodeType":"VariableDeclaration","scope":46007,"src":"1593:25:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam"},"typeName":{"id":45985,"nodeType":"UserDefinedTypeName","pathNode":{"id":45984,"name":"DynamicParam","nameLocations":["1593:12:67"],"nodeType":"IdentifierPath","referencedDeclaration":29851,"src":"1593:12:67"},"referencedDeclaration":29851,"src":"1593:12:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"}},"visibility":"internal"}],"id":45993,"initialValue":{"arguments":[{"hexValue":"31","id":45988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1667:1:67","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"3130","id":45989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1693:2:67","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},{"hexValue":"30","id":45990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1723:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"31","id":45991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1755:1:67","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":45987,"name":"DynamicParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29851,"src":"1621:12:67","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DynamicParam_$29851_storage_ptr_$","typeString":"type(struct DynamicParam storage pointer)"}},"id":45992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1648:17:67","1682:9:67","1709:12:67","1738:15:67"],"names":["lastComputedValue","updateEnd","lastUpdateAt","updatePerSecond"],"nodeType":"FunctionCall","src":"1621:146:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"nodeType":"VariableDeclarationStatement","src":"1593:174:67"},{"expression":{"arguments":[{"hexValue":"3230","id":45997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1786:2:67","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"expression":{"id":45994,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"1778:2:67","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":45996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1781:4:67","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":9034,"src":"1778:7:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1778:11:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45999,"nodeType":"ExpressionStatement","src":"1778:11:67"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46001,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45986,"src":"1808:5:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"id":46002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1814:10:67","memberName":"actualized","nodeType":"MemberAccess","referencedDeclaration":29925,"src":"1808:16:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_DynamicParam_$29851_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_DynamicParam_$29851_memory_ptr_$","typeString":"function (struct DynamicParam memory) view returns (uint256)"}},"id":46003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1808:18:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3131","id":46004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1828:2:67","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"}],"id":46000,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"1799:8:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1799:32:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46006,"nodeType":"ExpressionStatement","src":"1799:32:67"}]},"functionSelector":"5649a5ec","implemented":true,"kind":"function","modifiers":[],"name":"test_DynamicParamLib_actualized_ValueIncreasesUntilEnd","nameLocation":"1519:54:67","parameters":{"id":45982,"nodeType":"ParameterList","parameters":[],"src":"1573:2:67"},"returnParameters":{"id":45983,"nodeType":"ParameterList","parameters":[],"src":"1583:0:67"},"scope":46219,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":46036,"nodeType":"FunctionDefinition","src":"1844:328:67","nodes":[],"body":{"id":46035,"nodeType":"Block","src":"1917:255:67","nodes":[],"statements":[{"assignments":[46013],"declarations":[{"constant":false,"id":46013,"mutability":"mutable","name":"param","nameLocation":"1947:5:67","nodeType":"VariableDeclaration","scope":46035,"src":"1927:25:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam"},"typeName":{"id":46012,"nodeType":"UserDefinedTypeName","pathNode":{"id":46011,"name":"DynamicParam","nameLocations":["1927:12:67"],"nodeType":"IdentifierPath","referencedDeclaration":29851,"src":"1927:12:67"},"referencedDeclaration":29851,"src":"1927:12:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"}},"visibility":"internal"}],"id":46021,"initialValue":{"arguments":[{"hexValue":"3130","id":46015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2001:2:67","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},{"hexValue":"3130","id":46016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2028:2:67","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},{"hexValue":"30","id":46017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2058:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":46019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2090:2:67","subExpression":{"hexValue":"31","id":46018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2091:1:67","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":46014,"name":"DynamicParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29851,"src":"1955:12:67","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DynamicParam_$29851_storage_ptr_$","typeString":"type(struct DynamicParam storage pointer)"}},"id":46020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1982:17:67","2017:9:67","2044:12:67","2073:15:67"],"names":["lastComputedValue","updateEnd","lastUpdateAt","updatePerSecond"],"nodeType":"FunctionCall","src":"1955:148:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"nodeType":"VariableDeclarationStatement","src":"1927:176:67"},{"expression":{"arguments":[{"hexValue":"35","id":46025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2122:1:67","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"expression":{"id":46022,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"2114:2:67","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":46024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2117:4:67","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":9034,"src":"2114:7:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":46026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2114:10:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46027,"nodeType":"ExpressionStatement","src":"2114:10:67"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46029,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46013,"src":"2143:5:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"id":46030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2149:10:67","memberName":"actualized","nodeType":"MemberAccess","referencedDeclaration":29925,"src":"2143:16:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_DynamicParam_$29851_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_DynamicParam_$29851_memory_ptr_$","typeString":"function (struct DynamicParam memory) view returns (uint256)"}},"id":46031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2143:18:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"35","id":46032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2163:1:67","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"id":46028,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2134:8:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2134:31:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46034,"nodeType":"ExpressionStatement","src":"2134:31:67"}]},"functionSelector":"2370457c","implemented":true,"kind":"function","modifiers":[],"name":"test_DynamicParamLib_actualized_ValueDecreasesOverTime","nameLocation":"1853:54:67","parameters":{"id":46009,"nodeType":"ParameterList","parameters":[],"src":"1907:2:67"},"returnParameters":{"id":46010,"nodeType":"ParameterList","parameters":[],"src":"1917:0:67"},"scope":46219,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":46064,"nodeType":"FunctionDefinition","src":"2178:329:67","nodes":[],"body":{"id":46063,"nodeType":"Block","src":"2251:256:67","nodes":[],"statements":[{"assignments":[46041],"declarations":[{"constant":false,"id":46041,"mutability":"mutable","name":"param","nameLocation":"2281:5:67","nodeType":"VariableDeclaration","scope":46063,"src":"2261:25:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam"},"typeName":{"id":46040,"nodeType":"UserDefinedTypeName","pathNode":{"id":46039,"name":"DynamicParam","nameLocations":["2261:12:67"],"nodeType":"IdentifierPath","referencedDeclaration":29851,"src":"2261:12:67"},"referencedDeclaration":29851,"src":"2261:12:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"}},"visibility":"internal"}],"id":46049,"initialValue":{"arguments":[{"hexValue":"3130","id":46043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2335:2:67","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},{"hexValue":"3130","id":46044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2362:2:67","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},{"hexValue":"30","id":46045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2392:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":46047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2424:2:67","subExpression":{"hexValue":"31","id":46046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2425:1:67","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":46042,"name":"DynamicParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29851,"src":"2289:12:67","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DynamicParam_$29851_storage_ptr_$","typeString":"type(struct DynamicParam storage pointer)"}},"id":46048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2316:17:67","2351:9:67","2378:12:67","2407:15:67"],"names":["lastComputedValue","updateEnd","lastUpdateAt","updatePerSecond"],"nodeType":"FunctionCall","src":"2289:148:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"nodeType":"VariableDeclarationStatement","src":"2261:176:67"},{"expression":{"arguments":[{"hexValue":"3230","id":46053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2456:2:67","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"expression":{"id":46050,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"2448:2:67","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":46052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2451:4:67","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":9034,"src":"2448:7:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":46054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2448:11:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46055,"nodeType":"ExpressionStatement","src":"2448:11:67"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46057,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46041,"src":"2478:5:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"id":46058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2484:10:67","memberName":"actualized","nodeType":"MemberAccess","referencedDeclaration":29925,"src":"2478:16:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_DynamicParam_$29851_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_DynamicParam_$29851_memory_ptr_$","typeString":"function (struct DynamicParam memory) view returns (uint256)"}},"id":46059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2478:18:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":46060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2498:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":46056,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2469:8:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2469:31:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46062,"nodeType":"ExpressionStatement","src":"2469:31:67"}]},"functionSelector":"f6a9b7b7","implemented":true,"kind":"function","modifiers":[],"name":"test_DynamicParamLib_actualized_ValueDecreasesUntilEnd","nameLocation":"2187:54:67","parameters":{"id":46037,"nodeType":"ParameterList","parameters":[],"src":"2241:2:67"},"returnParameters":{"id":46038,"nodeType":"ParameterList","parameters":[],"src":"2251:0:67"},"scope":46219,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":46099,"nodeType":"FunctionDefinition","src":"2513:249:67","nodes":[],"body":{"id":46098,"nodeType":"Block","src":"2568:194:67","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"3130","id":46068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2594:2:67","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},{"hexValue":"3130","id":46069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2598:2:67","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},{"hexValue":"30","id":46070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2602:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":46072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2605:2:67","subExpression":{"hexValue":"31","id":46071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2606:1:67","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":46067,"name":"initStoredParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45917,"src":"2578:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_int256_$returns$__$","typeString":"function (uint256,uint256,uint256,int256)"}},"id":46073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2578:30:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46074,"nodeType":"ExpressionStatement","src":"2578:30:67"},{"expression":{"arguments":[{"hexValue":"35","id":46078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2626:1:67","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"expression":{"id":46075,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"2618:2:67","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":46077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2621:4:67","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":9034,"src":"2618:7:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":46079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2618:10:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46080,"nodeType":"ExpressionStatement","src":"2618:10:67"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46081,"name":"storedParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45881,"src":"2638:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":46083,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2650:4:67","memberName":"sync","nodeType":"MemberAccess","referencedDeclaration":29947,"src":"2638:16:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_DynamicParam_$29851_storage_ptr_$returns$__$attached_to$_t_struct$_DynamicParam_$29851_storage_ptr_$","typeString":"function (struct DynamicParam storage pointer)"}},"id":46084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2638:18:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46085,"nodeType":"ExpressionStatement","src":"2638:18:67"},{"expression":{"arguments":[{"expression":{"id":46087,"name":"storedParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45881,"src":"2675:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":46088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2687:17:67","memberName":"lastComputedValue","nodeType":"MemberAccess","referencedDeclaration":29844,"src":"2675:29:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"35","id":46089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2706:1:67","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"id":46086,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2666:8:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2666:42:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46091,"nodeType":"ExpressionStatement","src":"2666:42:67"},{"expression":{"arguments":[{"expression":{"id":46093,"name":"storedParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45881,"src":"2727:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":46094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2739:12:67","memberName":"lastUpdateAt","nodeType":"MemberAccess","referencedDeclaration":29850,"src":"2727:24:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"35","id":46095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2753:1:67","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"id":46092,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2718:8:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2718:37:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46097,"nodeType":"ExpressionStatement","src":"2718:37:67"}]},"functionSelector":"ac3324da","implemented":true,"kind":"function","modifiers":[],"name":"test_DynamicParamLib_sync_SyncsValue","nameLocation":"2522:36:67","parameters":{"id":46065,"nodeType":"ParameterList","parameters":[],"src":"2558:2:67"},"returnParameters":{"id":46066,"nodeType":"ParameterList","parameters":[],"src":"2568:0:67"},"scope":46219,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":46142,"nodeType":"FunctionDefinition","src":"2768:348:67","nodes":[],"body":{"id":46141,"nodeType":"Block","src":"2829:287:67","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"3130","id":46103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2855:2:67","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},{"hexValue":"30","id":46104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2859:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":46105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2862:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":46106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2865:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":46102,"name":"initStoredParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45917,"src":"2839:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_int256_$returns$__$","typeString":"function (uint256,uint256,uint256,int256)"}},"id":46107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2839:28:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46108,"nodeType":"ExpressionStatement","src":"2839:28:67"},{"expression":{"arguments":[{"hexValue":"3230","id":46112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2893:2:67","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},{"hexValue":"3130","id":46113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2897:2:67","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"expression":{"id":46109,"name":"storedParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45881,"src":"2877:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":46111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2889:3:67","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":30011,"src":"2877:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_DynamicParam_$29851_storage_ptr_$_t_uint256_$_t_uint256_$returns$__$attached_to$_t_struct$_DynamicParam_$29851_storage_ptr_$","typeString":"function (struct DynamicParam storage pointer,uint256,uint256)"}},"id":46114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2877:23:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46115,"nodeType":"ExpressionStatement","src":"2877:23:67"},{"expression":{"arguments":[{"expression":{"id":46117,"name":"storedParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45881,"src":"2919:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":46118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2931:17:67","memberName":"lastComputedValue","nodeType":"MemberAccess","referencedDeclaration":29844,"src":"2919:29:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3130","id":46119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2950:2:67","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":46116,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2910:8:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2910:43:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46121,"nodeType":"ExpressionStatement","src":"2910:43:67"},{"expression":{"arguments":[{"expression":{"id":46123,"name":"storedParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45881,"src":"2972:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":46124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2984:9:67","memberName":"updateEnd","nodeType":"MemberAccess","referencedDeclaration":29846,"src":"2972:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3130","id":46125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2995:2:67","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":46122,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2963:8:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2963:35:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46127,"nodeType":"ExpressionStatement","src":"2963:35:67"},{"expression":{"arguments":[{"expression":{"id":46129,"name":"storedParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45881,"src":"3017:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":46130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3029:12:67","memberName":"lastUpdateAt","nodeType":"MemberAccess","referencedDeclaration":29850,"src":"3017:24:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":46131,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3043:5:67","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":46132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3049:9:67","memberName":"timestamp","nodeType":"MemberAccess","src":"3043:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46128,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"3008:8:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3008:51:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46134,"nodeType":"ExpressionStatement","src":"3008:51:67"},{"expression":{"arguments":[{"expression":{"id":46136,"name":"storedParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45881,"src":"3078:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":46137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3090:15:67","memberName":"updatePerSecond","nodeType":"MemberAccess","referencedDeclaration":29848,"src":"3078:27:67","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"hexValue":"31","id":46138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3107:1:67","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":46135,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":459,"src":"3069:8:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$returns$__$","typeString":"function (int256,int256)"}},"id":46139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3069:40:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46140,"nodeType":"ExpressionStatement","src":"3069:40:67"}]},"functionSelector":"e78cb754","implemented":true,"kind":"function","modifiers":[],"name":"test_DynamicParamLib_set_SetsValueIncrease","nameLocation":"2777:42:67","parameters":{"id":46100,"nodeType":"ParameterList","parameters":[],"src":"2819:2:67"},"returnParameters":{"id":46101,"nodeType":"ParameterList","parameters":[],"src":"2829:0:67"},"scope":46219,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":46186,"nodeType":"FunctionDefinition","src":"3122:349:67","nodes":[],"body":{"id":46185,"nodeType":"Block","src":"3183:288:67","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"3230","id":46146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3209:2:67","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},{"hexValue":"30","id":46147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3213:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":46148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3216:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":46149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3219:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":46145,"name":"initStoredParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45917,"src":"3193:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_int256_$returns$__$","typeString":"function (uint256,uint256,uint256,int256)"}},"id":46150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3193:28:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46151,"nodeType":"ExpressionStatement","src":"3193:28:67"},{"expression":{"arguments":[{"hexValue":"3130","id":46155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3247:2:67","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},{"hexValue":"3130","id":46156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3251:2:67","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"expression":{"id":46152,"name":"storedParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45881,"src":"3231:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":46154,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3243:3:67","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":30011,"src":"3231:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_DynamicParam_$29851_storage_ptr_$_t_uint256_$_t_uint256_$returns$__$attached_to$_t_struct$_DynamicParam_$29851_storage_ptr_$","typeString":"function (struct DynamicParam storage pointer,uint256,uint256)"}},"id":46157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3231:23:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46158,"nodeType":"ExpressionStatement","src":"3231:23:67"},{"expression":{"arguments":[{"expression":{"id":46160,"name":"storedParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45881,"src":"3273:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":46161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3285:17:67","memberName":"lastComputedValue","nodeType":"MemberAccess","referencedDeclaration":29844,"src":"3273:29:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3230","id":46162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3304:2:67","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"id":46159,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"3264:8:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3264:43:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46164,"nodeType":"ExpressionStatement","src":"3264:43:67"},{"expression":{"arguments":[{"expression":{"id":46166,"name":"storedParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45881,"src":"3326:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":46167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3338:9:67","memberName":"updateEnd","nodeType":"MemberAccess","referencedDeclaration":29846,"src":"3326:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3130","id":46168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3349:2:67","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":46165,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"3317:8:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3317:35:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46170,"nodeType":"ExpressionStatement","src":"3317:35:67"},{"expression":{"arguments":[{"expression":{"id":46172,"name":"storedParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45881,"src":"3371:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":46173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3383:12:67","memberName":"lastUpdateAt","nodeType":"MemberAccess","referencedDeclaration":29850,"src":"3371:24:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":46174,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3397:5:67","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":46175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3403:9:67","memberName":"timestamp","nodeType":"MemberAccess","src":"3397:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46171,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"3362:8:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3362:51:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46177,"nodeType":"ExpressionStatement","src":"3362:51:67"},{"expression":{"arguments":[{"expression":{"id":46179,"name":"storedParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45881,"src":"3432:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":46180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3444:15:67","memberName":"updatePerSecond","nodeType":"MemberAccess","referencedDeclaration":29848,"src":"3432:27:67","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":46182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"3461:2:67","subExpression":{"hexValue":"31","id":46181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3462:1:67","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":46178,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":459,"src":"3423:8:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$returns$__$","typeString":"function (int256,int256)"}},"id":46183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3423:41:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46184,"nodeType":"ExpressionStatement","src":"3423:41:67"}]},"functionSelector":"7bea4561","implemented":true,"kind":"function","modifiers":[],"name":"test_DynamicParamLib_set_SetsValueDecrease","nameLocation":"3131:42:67","parameters":{"id":46143,"nodeType":"ParameterList","parameters":[],"src":"3173:2:67"},"returnParameters":{"id":46144,"nodeType":"ParameterList","parameters":[],"src":"3183:0:67"},"scope":46219,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":46218,"nodeType":"FunctionDefinition","src":"3477:235:67","nodes":[],"body":{"id":46217,"nodeType":"Block","src":"3547:165:67","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"3130","id":46190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3573:2:67","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},{"hexValue":"30","id":46191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3577:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":46192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3580:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":46193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3583:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":46189,"name":"initStoredParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45917,"src":"3557:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_int256_$returns$__$","typeString":"function (uint256,uint256,uint256,int256)"}},"id":46194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3557:28:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46195,"nodeType":"ExpressionStatement","src":"3557:28:67"},{"expression":{"arguments":[{"hexValue":"30","id":46199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3603:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":46196,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"3595:2:67","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":46198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3598:4:67","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":9034,"src":"3595:7:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":46200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3595:10:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46201,"nodeType":"ExpressionStatement","src":"3595:10:67"},{"expression":{"arguments":[{"expression":{"expression":{"id":46205,"name":"DynamicParamLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30012,"src":"3631:15:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DynamicParamLib_$30012_$","typeString":"type(library DynamicParamLib)"}},"id":46206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3647:16:67","memberName":"InvalidUpdateEnd","nodeType":"MemberAccess","referencedDeclaration":29856,"src":"3631:32:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3664:8:67","memberName":"selector","nodeType":"MemberAccess","src":"3631:41:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":46202,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"3615:2:67","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":46204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3618:12:67","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":9121,"src":"3615:15:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes4_$returns$__$","typeString":"function (bytes4) external"}},"id":46208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3615:58:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46209,"nodeType":"ExpressionStatement","src":"3615:58:67"},{"expression":{"arguments":[{"hexValue":"3230","id":46213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3699:2:67","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},{"hexValue":"30","id":46214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3703:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":46210,"name":"storedParam","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45881,"src":"3683:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":46212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3695:3:67","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":30011,"src":"3683:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_DynamicParam_$29851_storage_ptr_$_t_uint256_$_t_uint256_$returns$__$attached_to$_t_struct$_DynamicParam_$29851_storage_ptr_$","typeString":"function (struct DynamicParam storage pointer,uint256,uint256)"}},"id":46215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3683:22:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46216,"nodeType":"ExpressionStatement","src":"3683:22:67"}]},"functionSelector":"052befe4","implemented":true,"kind":"function","modifiers":[],"name":"test_DynamicParamLib_set_RevertsWhenUpdateEndIsPast","nameLocation":"3486:51:67","parameters":{"id":46187,"nodeType":"ParameterList","parameters":[],"src":"3537:2:67"},"returnParameters":{"id":46188,"nodeType":"ParameterList","parameters":[],"src":"3547:0:67"},"scope":46219,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":45867,"name":"Test","nameLocations":["165:4:67"],"nodeType":"IdentifierPath","referencedDeclaration":8195,"src":"165:4:67"},"id":45868,"nodeType":"InheritanceSpecifier","src":"165:4:67"}],"canonicalName":"DynamicParamLibTest","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[46219,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"DynamicParamLibTest","nameLocation":"142:19:67","scope":46220,"usedErrors":[29856],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":67} \ No newline at end of file diff --git a/out/ERC20.sol/ERC20.json b/out/ERC20.sol/ERC20.json deleted file mode 100644 index da7e3a8d..00000000 --- a/out/ERC20.sol/ERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC20.sol)Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)\",\"details\":\"Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Modern and gas efficient ERC20 + EIP-2612 implementation.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/solmate/src/tokens/ERC20.sol":"ERC20"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/solmate/src/tokens/ERC20.sol","id":25949,"exportedSymbols":{"ERC20":[25948]},"nodeType":"SourceUnit","src":"32:6767:16","nodes":[{"id":25562,"nodeType":"PragmaDirective","src":"32:24:16","nodes":[],"literals":["solidity",">=","0.8",".0"]},{"id":25948,"nodeType":"ContractDefinition","src":"461:6337:16","nodes":[{"id":25571,"nodeType":"EventDefinition","src":"670:73:16","nodes":[],"anonymous":false,"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","name":"Transfer","nameLocation":"676:8:16","parameters":{"id":25570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25565,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"701:4:16","nodeType":"VariableDeclaration","scope":25571,"src":"685:20:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25564,"name":"address","nodeType":"ElementaryTypeName","src":"685:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25567,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"723:2:16","nodeType":"VariableDeclaration","scope":25571,"src":"707:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25566,"name":"address","nodeType":"ElementaryTypeName","src":"707:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25569,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"735:6:16","nodeType":"VariableDeclaration","scope":25571,"src":"727:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25568,"name":"uint256","nodeType":"ElementaryTypeName","src":"727:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"684:58:16"}},{"id":25579,"nodeType":"EventDefinition","src":"749:79:16","nodes":[],"anonymous":false,"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","name":"Approval","nameLocation":"755:8:16","parameters":{"id":25578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25573,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"780:5:16","nodeType":"VariableDeclaration","scope":25579,"src":"764:21:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25572,"name":"address","nodeType":"ElementaryTypeName","src":"764:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25575,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"803:7:16","nodeType":"VariableDeclaration","scope":25579,"src":"787:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25574,"name":"address","nodeType":"ElementaryTypeName","src":"787:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25577,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"820:6:16","nodeType":"VariableDeclaration","scope":25579,"src":"812:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25576,"name":"uint256","nodeType":"ElementaryTypeName","src":"812:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"763:64:16"}},{"id":25581,"nodeType":"VariableDeclaration","src":"1018:18:16","nodes":[],"constant":false,"functionSelector":"06fdde03","mutability":"mutable","name":"name","nameLocation":"1032:4:16","scope":25948,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":25580,"name":"string","nodeType":"ElementaryTypeName","src":"1018:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":25583,"nodeType":"VariableDeclaration","src":"1043:20:16","nodes":[],"constant":false,"functionSelector":"95d89b41","mutability":"mutable","name":"symbol","nameLocation":"1057:6:16","scope":25948,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":25582,"name":"string","nodeType":"ElementaryTypeName","src":"1043:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":25585,"nodeType":"VariableDeclaration","src":"1070:31:16","nodes":[],"constant":false,"functionSelector":"313ce567","mutability":"immutable","name":"decimals","nameLocation":"1093:8:16","scope":25948,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":25584,"name":"uint8","nodeType":"ElementaryTypeName","src":"1070:5:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"public"},{"id":25587,"nodeType":"VariableDeclaration","src":"1291:26:16","nodes":[],"constant":false,"functionSelector":"18160ddd","mutability":"mutable","name":"totalSupply","nameLocation":"1306:11:16","scope":25948,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25586,"name":"uint256","nodeType":"ElementaryTypeName","src":"1291:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":25591,"nodeType":"VariableDeclaration","src":"1324:44:16","nodes":[],"constant":false,"functionSelector":"70a08231","mutability":"mutable","name":"balanceOf","nameLocation":"1359:9:16","scope":25948,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":25590,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":25588,"name":"address","nodeType":"ElementaryTypeName","src":"1332:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1324:27:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":25589,"name":"uint256","nodeType":"ElementaryTypeName","src":"1343:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":25597,"nodeType":"VariableDeclaration","src":"1375:64:16","nodes":[],"constant":false,"functionSelector":"dd62ed3e","mutability":"mutable","name":"allowance","nameLocation":"1430:9:16","scope":25948,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":25596,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":25592,"name":"address","nodeType":"ElementaryTypeName","src":"1383:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1375:47:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":25595,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":25593,"name":"address","nodeType":"ElementaryTypeName","src":"1402:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1394:27:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":25594,"name":"uint256","nodeType":"ElementaryTypeName","src":"1413:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"id":25599,"nodeType":"VariableDeclaration","src":"1630:43:16","nodes":[],"constant":false,"mutability":"immutable","name":"INITIAL_CHAIN_ID","nameLocation":"1657:16:16","scope":25948,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25598,"name":"uint256","nodeType":"ElementaryTypeName","src":"1630:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":25601,"nodeType":"VariableDeclaration","src":"1680:51:16","nodes":[],"constant":false,"mutability":"immutable","name":"INITIAL_DOMAIN_SEPARATOR","nameLocation":"1707:24:16","scope":25948,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25600,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1680:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":25605,"nodeType":"VariableDeclaration","src":"1738:41:16","nodes":[],"constant":false,"functionSelector":"7ecebe00","mutability":"mutable","name":"nonces","nameLocation":"1773:6:16","scope":25948,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":25604,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":25602,"name":"address","nodeType":"ElementaryTypeName","src":"1746:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1738:27:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":25603,"name":"uint256","nodeType":"ElementaryTypeName","src":"1757:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":25637,"nodeType":"FunctionDefinition","src":"1968:292:16","nodes":[],"body":{"id":25636,"nodeType":"Block","src":"2071:189:16","nodes":[],"statements":[{"expression":{"id":25616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25614,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25581,"src":"2081:4:16","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25615,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25607,"src":"2088:5:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2081:12:16","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":25617,"nodeType":"ExpressionStatement","src":"2081:12:16"},{"expression":{"id":25620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25618,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25583,"src":"2103:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25619,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25609,"src":"2112:7:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2103:16:16","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":25621,"nodeType":"ExpressionStatement","src":"2103:16:16"},{"expression":{"id":25624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25622,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25585,"src":"2129:8:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25623,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25611,"src":"2140:9:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2129:20:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":25625,"nodeType":"ExpressionStatement","src":"2129:20:16"},{"expression":{"id":25629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25626,"name":"INITIAL_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25599,"src":"2160:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":25627,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2179:5:16","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":25628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2185:7:16","memberName":"chainid","nodeType":"MemberAccess","src":"2179:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2160:32:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25630,"nodeType":"ExpressionStatement","src":"2160:32:16"},{"expression":{"id":25634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25631,"name":"INITIAL_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25601,"src":"2202:24:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":25632,"name":"computeDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25891,"src":"2229:22:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":25633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2229:24:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2202:51:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":25635,"nodeType":"ExpressionStatement","src":"2202:51:16"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":25612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25607,"mutability":"mutable","name":"_name","nameLocation":"2003:5:16","nodeType":"VariableDeclaration","scope":25637,"src":"1989:19:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25606,"name":"string","nodeType":"ElementaryTypeName","src":"1989:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25609,"mutability":"mutable","name":"_symbol","nameLocation":"2032:7:16","nodeType":"VariableDeclaration","scope":25637,"src":"2018:21:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25608,"name":"string","nodeType":"ElementaryTypeName","src":"2018:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25611,"mutability":"mutable","name":"_decimals","nameLocation":"2055:9:16","nodeType":"VariableDeclaration","scope":25637,"src":"2049:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":25610,"name":"uint8","nodeType":"ElementaryTypeName","src":"2049:5:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1979:91:16"},"returnParameters":{"id":25613,"nodeType":"ParameterList","parameters":[],"src":"2071:0:16"},"scope":25948,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":25665,"nodeType":"FunctionDefinition","src":"2448:211:16","nodes":[],"body":{"id":25664,"nodeType":"Block","src":"2528:131:16","nodes":[],"statements":[{"expression":{"id":25653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":25646,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25597,"src":"2538:9:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":25650,"indexExpression":{"expression":{"id":25647,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2548:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":25648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2552:6:16","memberName":"sender","nodeType":"MemberAccess","src":"2548:10:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2538:21:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":25651,"indexExpression":{"id":25649,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25639,"src":"2560:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2538:30:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25652,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25641,"src":"2571:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2538:39:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25654,"nodeType":"ExpressionStatement","src":"2538:39:16"},{"eventCall":{"arguments":[{"expression":{"id":25656,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2602:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":25657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2606:6:16","memberName":"sender","nodeType":"MemberAccess","src":"2602:10:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25658,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25639,"src":"2614:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25659,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25641,"src":"2623:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25655,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25579,"src":"2593:8:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":25660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2593:37:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25661,"nodeType":"EmitStatement","src":"2588:42:16"},{"expression":{"hexValue":"74727565","id":25662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2648:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":25645,"id":25663,"nodeType":"Return","src":"2641:11:16"}]},"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2457:7:16","parameters":{"id":25642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25639,"mutability":"mutable","name":"spender","nameLocation":"2473:7:16","nodeType":"VariableDeclaration","scope":25665,"src":"2465:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25638,"name":"address","nodeType":"ElementaryTypeName","src":"2465:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25641,"mutability":"mutable","name":"amount","nameLocation":"2490:6:16","nodeType":"VariableDeclaration","scope":25665,"src":"2482:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25640,"name":"uint256","nodeType":"ElementaryTypeName","src":"2482:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2464:33:16"},"returnParameters":{"id":25645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25644,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25665,"src":"2522:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25643,"name":"bool","nodeType":"ElementaryTypeName","src":"2522:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2521:6:16"},"scope":25948,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":25698,"nodeType":"FunctionDefinition","src":"2665:373:16","nodes":[],"body":{"id":25697,"nodeType":"Block","src":"2741:297:16","nodes":[],"statements":[{"expression":{"id":25679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":25674,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25591,"src":"2751:9:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":25677,"indexExpression":{"expression":{"id":25675,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2761:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":25676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2765:6:16","memberName":"sender","nodeType":"MemberAccess","src":"2761:10:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2751:21:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":25678,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25669,"src":"2776:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2751:31:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25680,"nodeType":"ExpressionStatement","src":"2751:31:16"},{"id":25687,"nodeType":"UncheckedBlock","src":"2904:58:16","statements":[{"expression":{"id":25685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":25681,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25591,"src":"2928:9:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":25683,"indexExpression":{"id":25682,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25667,"src":"2938:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2928:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":25684,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25669,"src":"2945:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2928:23:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25686,"nodeType":"ExpressionStatement","src":"2928:23:16"}]},{"eventCall":{"arguments":[{"expression":{"id":25689,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2986:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":25690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2990:6:16","memberName":"sender","nodeType":"MemberAccess","src":"2986:10:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25691,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25667,"src":"2998:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25692,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25669,"src":"3002:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25688,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25571,"src":"2977:8:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":25693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2977:32:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25694,"nodeType":"EmitStatement","src":"2972:37:16"},{"expression":{"hexValue":"74727565","id":25695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3027:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":25673,"id":25696,"nodeType":"Return","src":"3020:11:16"}]},"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"2674:8:16","parameters":{"id":25670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25667,"mutability":"mutable","name":"to","nameLocation":"2691:2:16","nodeType":"VariableDeclaration","scope":25698,"src":"2683:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25666,"name":"address","nodeType":"ElementaryTypeName","src":"2683:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25669,"mutability":"mutable","name":"amount","nameLocation":"2703:6:16","nodeType":"VariableDeclaration","scope":25698,"src":"2695:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25668,"name":"uint256","nodeType":"ElementaryTypeName","src":"2695:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2682:28:16"},"returnParameters":{"id":25673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25672,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25698,"src":"2735:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25671,"name":"bool","nodeType":"ElementaryTypeName","src":"2735:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2734:6:16"},"scope":25948,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":25759,"nodeType":"FunctionDefinition","src":"3044:592:16","nodes":[],"body":{"id":25758,"nodeType":"Block","src":"3168:468:16","nodes":[],"statements":[{"assignments":[25710],"declarations":[{"constant":false,"id":25710,"mutability":"mutable","name":"allowed","nameLocation":"3186:7:16","nodeType":"VariableDeclaration","scope":25758,"src":"3178:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25709,"name":"uint256","nodeType":"ElementaryTypeName","src":"3178:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25717,"initialValue":{"baseExpression":{"baseExpression":{"id":25711,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25597,"src":"3196:9:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":25713,"indexExpression":{"id":25712,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25700,"src":"3206:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3196:15:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":25716,"indexExpression":{"expression":{"id":25714,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3212:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":25715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3216:6:16","memberName":"sender","nodeType":"MemberAccess","src":"3212:10:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3196:27:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3178:45:16"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25718,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25710,"src":"3274:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":25721,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3290:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":25720,"name":"uint256","nodeType":"ElementaryTypeName","src":"3290:7:16","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":25719,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3285:4:16","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":25722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3285:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":25723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3299:3:16","memberName":"max","nodeType":"MemberAccess","src":"3285:17:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3274:28:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25736,"nodeType":"IfStatement","src":"3270:80:16","trueBody":{"expression":{"id":25734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":25725,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25597,"src":"3304:9:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":25729,"indexExpression":{"id":25726,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25700,"src":"3314:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3304:15:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":25730,"indexExpression":{"expression":{"id":25727,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3320:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":25728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3324:6:16","memberName":"sender","nodeType":"MemberAccess","src":"3320:10:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3304:27:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25731,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25710,"src":"3334:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":25732,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25704,"src":"3344:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3334:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3304:46:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25735,"nodeType":"ExpressionStatement","src":"3304:46:16"}},{"expression":{"id":25741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":25737,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25591,"src":"3361:9:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":25739,"indexExpression":{"id":25738,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25700,"src":"3371:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3361:15:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":25740,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25704,"src":"3380:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3361:25:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25742,"nodeType":"ExpressionStatement","src":"3361:25:16"},{"id":25749,"nodeType":"UncheckedBlock","src":"3508:58:16","statements":[{"expression":{"id":25747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":25743,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25591,"src":"3532:9:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":25745,"indexExpression":{"id":25744,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25702,"src":"3542:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3532:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":25746,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25704,"src":"3549:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3532:23:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25748,"nodeType":"ExpressionStatement","src":"3532:23:16"}]},{"eventCall":{"arguments":[{"id":25751,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25700,"src":"3590:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25752,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25702,"src":"3596:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25753,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25704,"src":"3600:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25750,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25571,"src":"3581:8:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":25754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3581:26:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25755,"nodeType":"EmitStatement","src":"3576:31:16"},{"expression":{"hexValue":"74727565","id":25756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3625:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":25708,"id":25757,"nodeType":"Return","src":"3618:11:16"}]},"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3053:12:16","parameters":{"id":25705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25700,"mutability":"mutable","name":"from","nameLocation":"3083:4:16","nodeType":"VariableDeclaration","scope":25759,"src":"3075:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25699,"name":"address","nodeType":"ElementaryTypeName","src":"3075:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25702,"mutability":"mutable","name":"to","nameLocation":"3105:2:16","nodeType":"VariableDeclaration","scope":25759,"src":"3097:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25701,"name":"address","nodeType":"ElementaryTypeName","src":"3097:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25704,"mutability":"mutable","name":"amount","nameLocation":"3125:6:16","nodeType":"VariableDeclaration","scope":25759,"src":"3117:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25703,"name":"uint256","nodeType":"ElementaryTypeName","src":"3117:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3065:72:16"},"returnParameters":{"id":25708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25707,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25759,"src":"3162:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25706,"name":"bool","nodeType":"ElementaryTypeName","src":"3162:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3161:6:16"},"scope":25948,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":25846,"nodeType":"FunctionDefinition","src":"3825:1483:16","nodes":[],"body":{"id":25845,"nodeType":"Block","src":"4014:1294:16","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25777,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25767,"src":"4032:8:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":25778,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4044:5:16","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":25779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4050:9:16","memberName":"timestamp","nodeType":"MemberAccess","src":"4044:15:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4032:27:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5045524d49545f444541444c494e455f45585049524544","id":25781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4061:25:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_dd18cfd81b4c1281b56302a044e7f751a261543590362c41d86af048f8ed4b3e","typeString":"literal_string \"PERMIT_DEADLINE_EXPIRED\""},"value":"PERMIT_DEADLINE_EXPIRED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dd18cfd81b4c1281b56302a044e7f751a261543590362c41d86af048f8ed4b3e","typeString":"literal_string \"PERMIT_DEADLINE_EXPIRED\""}],"id":25776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4024:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4024:63:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25783,"nodeType":"ExpressionStatement","src":"4024:63:16"},{"id":25838,"nodeType":"UncheckedBlock","src":"4228:1027:16","statements":[{"assignments":[25785],"declarations":[{"constant":false,"id":25785,"mutability":"mutable","name":"recoveredAddress","nameLocation":"4260:16:16","nodeType":"VariableDeclaration","scope":25838,"src":"4252:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25784,"name":"address","nodeType":"ElementaryTypeName","src":"4252:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":25815,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"1901","id":25790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4379:10:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"arguments":[],"expression":{"argumentTypes":[],"id":25791,"name":"DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25861,"src":"4415:16:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":25792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4415:18:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"arguments":[{"hexValue":"5065726d69742861646472657373206f776e65722c61646472657373207370656e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63652c75696e7432353620646561646c696e6529","id":25797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4589:84:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9","typeString":"literal_string \"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\""},"value":"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9","typeString":"literal_string \"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\""}],"id":25796,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4542:9:16","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":25798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4542:165:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":25799,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25761,"src":"4741:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25800,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25763,"src":"4780:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25801,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25765,"src":"4821:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4860:15:16","subExpression":{"baseExpression":{"id":25802,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25605,"src":"4860:6:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":25804,"indexExpression":{"id":25803,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25761,"src":"4867:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4860:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25806,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25767,"src":"4909:8:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25794,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4498:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4502:6:16","memberName":"encode","nodeType":"MemberAccess","src":"4498:10:16","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":25807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4498:449:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25793,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4459:9:16","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":25808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4459:514:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":25788,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4337:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4341:12:16","memberName":"encodePacked","nodeType":"MemberAccess","src":"4337:16:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":25809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4337:658:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25787,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4306:9:16","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":25810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4306:707:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":25811,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25769,"src":"5031:1:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":25812,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25771,"src":"5050:1:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":25813,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25773,"src":"5069:1:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":25786,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"4279:9:16","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":25814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4279:805:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4252:832:16"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":25826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":25822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25817,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25785,"src":"5107:16:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":25820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5135:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":25819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5127:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":25818,"name":"address","nodeType":"ElementaryTypeName","src":"5127:7:16","typeDescriptions":{}}},"id":25821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5127:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5107:30:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":25825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25823,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25785,"src":"5141:16:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":25824,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25761,"src":"5161:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5141:25:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5107:59:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f5349474e4552","id":25827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5168:16:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba2319f5fa9f0c8e55f0d6899910b7354e6f643d1d349de47190066d85e68a1c","typeString":"literal_string \"INVALID_SIGNER\""},"value":"INVALID_SIGNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ba2319f5fa9f0c8e55f0d6899910b7354e6f643d1d349de47190066d85e68a1c","typeString":"literal_string \"INVALID_SIGNER\""}],"id":25816,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5099:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5099:86:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25829,"nodeType":"ExpressionStatement","src":"5099:86:16"},{"expression":{"id":25836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":25830,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25597,"src":"5200:9:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":25833,"indexExpression":{"id":25831,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25785,"src":"5210:16:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5200:27:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":25834,"indexExpression":{"id":25832,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25763,"src":"5228:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5200:36:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25835,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25765,"src":"5239:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5200:44:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25837,"nodeType":"ExpressionStatement","src":"5200:44:16"}]},{"eventCall":{"arguments":[{"id":25840,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25761,"src":"5279:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25841,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25763,"src":"5286:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25842,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25765,"src":"5295:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25839,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25579,"src":"5270:8:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":25843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5270:31:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25844,"nodeType":"EmitStatement","src":"5265:36:16"}]},"functionSelector":"d505accf","implemented":true,"kind":"function","modifiers":[],"name":"permit","nameLocation":"3834:6:16","parameters":{"id":25774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25761,"mutability":"mutable","name":"owner","nameLocation":"3858:5:16","nodeType":"VariableDeclaration","scope":25846,"src":"3850:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25760,"name":"address","nodeType":"ElementaryTypeName","src":"3850:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25763,"mutability":"mutable","name":"spender","nameLocation":"3881:7:16","nodeType":"VariableDeclaration","scope":25846,"src":"3873:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25762,"name":"address","nodeType":"ElementaryTypeName","src":"3873:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25765,"mutability":"mutable","name":"value","nameLocation":"3906:5:16","nodeType":"VariableDeclaration","scope":25846,"src":"3898:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25764,"name":"uint256","nodeType":"ElementaryTypeName","src":"3898:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25767,"mutability":"mutable","name":"deadline","nameLocation":"3929:8:16","nodeType":"VariableDeclaration","scope":25846,"src":"3921:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25766,"name":"uint256","nodeType":"ElementaryTypeName","src":"3921:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25769,"mutability":"mutable","name":"v","nameLocation":"3953:1:16","nodeType":"VariableDeclaration","scope":25846,"src":"3947:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":25768,"name":"uint8","nodeType":"ElementaryTypeName","src":"3947:5:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":25771,"mutability":"mutable","name":"r","nameLocation":"3972:1:16","nodeType":"VariableDeclaration","scope":25846,"src":"3964:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25770,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3964:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":25773,"mutability":"mutable","name":"s","nameLocation":"3991:1:16","nodeType":"VariableDeclaration","scope":25846,"src":"3983:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25772,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3983:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3840:158:16"},"returnParameters":{"id":25775,"nodeType":"ParameterList","parameters":[],"src":"4014:0:16"},"scope":25948,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":25861,"nodeType":"FunctionDefinition","src":"5314:177:16","nodes":[],"body":{"id":25860,"nodeType":"Block","src":"5380:111:16","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25851,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5397:5:16","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":25852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5403:7:16","memberName":"chainid","nodeType":"MemberAccess","src":"5397:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":25853,"name":"INITIAL_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25599,"src":"5414:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5397:33:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":25856,"name":"computeDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25891,"src":"5460:22:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":25857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5460:24:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":25858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5397:87:16","trueExpression":{"id":25855,"name":"INITIAL_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25601,"src":"5433:24:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":25850,"id":25859,"nodeType":"Return","src":"5390:94:16"}]},"functionSelector":"3644e515","implemented":true,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"5323:16:16","parameters":{"id":25847,"nodeType":"ParameterList","parameters":[],"src":"5339:2:16"},"returnParameters":{"id":25850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25849,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25861,"src":"5371:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25848,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5371:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5370:9:16"},"scope":25948,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":25891,"nodeType":"FunctionDefinition","src":"5497:446:16","nodes":[],"body":{"id":25890,"nodeType":"Block","src":"5571:372:16","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":25870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5669:84:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":25869,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5659:9:16","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":25871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5659:95:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":25875,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25581,"src":"5792:4:16","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":25874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5786:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":25873,"name":"bytes","nodeType":"ElementaryTypeName","src":"5786:5:16","typeDescriptions":{}}},"id":25876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5786:11:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}],"id":25872,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5776:9:16","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":25877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5776:22:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"31","id":25879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5830:3:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""}],"id":25878,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5820:9:16","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":25880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5820:14:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":25881,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5856:5:16","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":25882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5862:7:16","memberName":"chainid","nodeType":"MemberAccess","src":"5856:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":25885,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5899:4:16","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}],"id":25884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5891:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":25883,"name":"address","nodeType":"ElementaryTypeName","src":"5891:7:16","typeDescriptions":{}}},"id":25886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5891:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25867,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5627:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5631:6:16","memberName":"encode","nodeType":"MemberAccess","src":"5627:10:16","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":25887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5627:295:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25866,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5600:9:16","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":25888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5600:336:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":25865,"id":25889,"nodeType":"Return","src":"5581:355:16"}]},"implemented":true,"kind":"function","modifiers":[],"name":"computeDomainSeparator","nameLocation":"5506:22:16","parameters":{"id":25862,"nodeType":"ParameterList","parameters":[],"src":"5528:2:16"},"returnParameters":{"id":25865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25864,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25891,"src":"5562:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25863,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5562:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5561:9:16"},"scope":25948,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":25919,"nodeType":"FunctionDefinition","src":"6137:325:16","nodes":[],"body":{"id":25918,"nodeType":"Block","src":"6197:265:16","nodes":[],"statements":[{"expression":{"id":25900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25898,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25587,"src":"6207:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":25899,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25895,"src":"6222:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6207:21:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25901,"nodeType":"ExpressionStatement","src":"6207:21:16"},{"id":25908,"nodeType":"UncheckedBlock","src":"6350:58:16","statements":[{"expression":{"id":25906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":25902,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25591,"src":"6374:9:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":25904,"indexExpression":{"id":25903,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25893,"src":"6384:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6374:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":25905,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25895,"src":"6391:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6374:23:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25907,"nodeType":"ExpressionStatement","src":"6374:23:16"}]},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":25912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6440:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":25911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6432:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":25910,"name":"address","nodeType":"ElementaryTypeName","src":"6432:7:16","typeDescriptions":{}}},"id":25913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6432:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25914,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25893,"src":"6444:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25915,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25895,"src":"6448:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25909,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25571,"src":"6423:8:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":25916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6423:32:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25917,"nodeType":"EmitStatement","src":"6418:37:16"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"6146:5:16","parameters":{"id":25896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25893,"mutability":"mutable","name":"to","nameLocation":"6160:2:16","nodeType":"VariableDeclaration","scope":25919,"src":"6152:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25892,"name":"address","nodeType":"ElementaryTypeName","src":"6152:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25895,"mutability":"mutable","name":"amount","nameLocation":"6172:6:16","nodeType":"VariableDeclaration","scope":25919,"src":"6164:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25894,"name":"uint256","nodeType":"ElementaryTypeName","src":"6164:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6151:28:16"},"returnParameters":{"id":25897,"nodeType":"ParameterList","parameters":[],"src":"6197:0:16"},"scope":25948,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":25947,"nodeType":"FunctionDefinition","src":"6468:328:16","nodes":[],"body":{"id":25946,"nodeType":"Block","src":"6530:266:16","nodes":[],"statements":[{"expression":{"id":25930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":25926,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25591,"src":"6540:9:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":25928,"indexExpression":{"id":25927,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25921,"src":"6550:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6540:15:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":25929,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25923,"src":"6559:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6540:25:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25931,"nodeType":"ExpressionStatement","src":"6540:25:16"},{"id":25936,"nodeType":"UncheckedBlock","src":"6684:56:16","statements":[{"expression":{"id":25934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25932,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25587,"src":"6708:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":25933,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25923,"src":"6723:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6708:21:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25935,"nodeType":"ExpressionStatement","src":"6708:21:16"}]},{"eventCall":{"arguments":[{"id":25938,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25921,"src":"6764:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":25941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6778:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":25940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6770:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":25939,"name":"address","nodeType":"ElementaryTypeName","src":"6770:7:16","typeDescriptions":{}}},"id":25942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6770:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25943,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25923,"src":"6782:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25937,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25571,"src":"6755:8:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":25944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6755:34:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25945,"nodeType":"EmitStatement","src":"6750:39:16"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"6477:5:16","parameters":{"id":25924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25921,"mutability":"mutable","name":"from","nameLocation":"6491:4:16","nodeType":"VariableDeclaration","scope":25947,"src":"6483:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25920,"name":"address","nodeType":"ElementaryTypeName","src":"6483:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25923,"mutability":"mutable","name":"amount","nameLocation":"6505:6:16","nodeType":"VariableDeclaration","scope":25947,"src":"6497:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25922,"name":"uint256","nodeType":"ElementaryTypeName","src":"6497:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6482:30:16"},"returnParameters":{"id":25925,"nodeType":"ParameterList","parameters":[],"src":"6530:0:16"},"scope":25948,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":25563,"nodeType":"StructuredDocumentation","src":"58:403:16","text":"@notice Modern and gas efficient ERC20 + EIP-2612 implementation.\n @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC20.sol)\n @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)\n @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it."},"fullyImplemented":true,"linearizedBaseContracts":[25948],"name":"ERC20","nameLocation":"479:5:16","scope":25949,"usedErrors":[],"usedEvents":[25571,25579]}],"license":"MIT"},"id":16} \ No newline at end of file diff --git a/out/FixedPointMathLib.sol/FixedPointMathLib.json b/out/FixedPointMathLib.sol/FixedPointMathLib.json deleted file mode 100644 index efedd8c0..00000000 --- a/out/FixedPointMathLib.sol/FixedPointMathLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220c853626ffcdbae257beaef5cab9f0a260ee595a417d1b366fca49fc228501e7e64736f6c63430008160033","sourceMap":"234:16398:18:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220c853626ffcdbae257beaef5cab9f0a260ee595a417d1b366fca49fc228501e7e64736f6c63430008160033","sourceMap":"234:16398:18:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/FixedPointMathLib.sol)\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Arithmetic library with operations for fixed-point numbers.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":\"FixedPointMathLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":"FixedPointMathLib"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol","id":26641,"exportedSymbols":{"FixedPointMathLib":[26640]},"nodeType":"SourceUnit","src":"32:16601:18","nodes":[{"id":26029,"nodeType":"PragmaDirective","src":"32:24:18","nodes":[],"literals":["solidity",">=","0.8",".0"]},{"id":26640,"nodeType":"ContractDefinition","src":"234:16398:18","nodes":[{"id":26033,"nodeType":"VariableDeclaration","src":"459:36:18","nodes":[],"constant":true,"mutability":"constant","name":"WAD","nameLocation":"485:3:18","scope":26640,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26031,"name":"uint256","nodeType":"ElementaryTypeName","src":"459:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31653138","id":26032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"491:4:18","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"visibility":"internal"},{"id":26049,"nodeType":"FunctionDefinition","src":"540:164:18","nodes":[],"body":{"id":26048,"nodeType":"Block","src":"614:90:18","nodes":[],"statements":[{"expression":{"arguments":[{"id":26043,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26035,"src":"642:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26044,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26037,"src":"645:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26045,"name":"WAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26033,"src":"648:3:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26042,"name":"mulDivDown","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26554,"src":"631:10:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":26046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"631:21:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":26041,"id":26047,"nodeType":"Return","src":"624:28:18"}]},"implemented":true,"kind":"function","modifiers":[],"name":"mulWadDown","nameLocation":"549:10:18","parameters":{"id":26038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26035,"mutability":"mutable","name":"x","nameLocation":"568:1:18","nodeType":"VariableDeclaration","scope":26049,"src":"560:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26034,"name":"uint256","nodeType":"ElementaryTypeName","src":"560:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26037,"mutability":"mutable","name":"y","nameLocation":"579:1:18","nodeType":"VariableDeclaration","scope":26049,"src":"571:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26036,"name":"uint256","nodeType":"ElementaryTypeName","src":"571:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"559:22:18"},"returnParameters":{"id":26041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":26049,"src":"605:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26039,"name":"uint256","nodeType":"ElementaryTypeName","src":"605:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"604:9:18"},"scope":26640,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26065,"nodeType":"FunctionDefinition","src":"710:158:18","nodes":[],"body":{"id":26064,"nodeType":"Block","src":"782:86:18","nodes":[],"statements":[{"expression":{"arguments":[{"id":26059,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26051,"src":"808:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26060,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26053,"src":"811:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26061,"name":"WAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26033,"src":"814:3:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26058,"name":"mulDivUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26567,"src":"799:8:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":26062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"799:19:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":26057,"id":26063,"nodeType":"Return","src":"792:26:18"}]},"implemented":true,"kind":"function","modifiers":[],"name":"mulWadUp","nameLocation":"719:8:18","parameters":{"id":26054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26051,"mutability":"mutable","name":"x","nameLocation":"736:1:18","nodeType":"VariableDeclaration","scope":26065,"src":"728:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26050,"name":"uint256","nodeType":"ElementaryTypeName","src":"728:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26053,"mutability":"mutable","name":"y","nameLocation":"747:1:18","nodeType":"VariableDeclaration","scope":26065,"src":"739:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26052,"name":"uint256","nodeType":"ElementaryTypeName","src":"739:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"727:22:18"},"returnParameters":{"id":26057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26056,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":26065,"src":"773:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26055,"name":"uint256","nodeType":"ElementaryTypeName","src":"773:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"772:9:18"},"scope":26640,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26081,"nodeType":"FunctionDefinition","src":"874:164:18","nodes":[],"body":{"id":26080,"nodeType":"Block","src":"948:90:18","nodes":[],"statements":[{"expression":{"arguments":[{"id":26075,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26067,"src":"976:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26076,"name":"WAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26033,"src":"979:3:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26077,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26069,"src":"984:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26074,"name":"mulDivDown","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26554,"src":"965:10:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":26078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"965:21:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":26073,"id":26079,"nodeType":"Return","src":"958:28:18"}]},"implemented":true,"kind":"function","modifiers":[],"name":"divWadDown","nameLocation":"883:10:18","parameters":{"id":26070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26067,"mutability":"mutable","name":"x","nameLocation":"902:1:18","nodeType":"VariableDeclaration","scope":26081,"src":"894:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26066,"name":"uint256","nodeType":"ElementaryTypeName","src":"894:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26069,"mutability":"mutable","name":"y","nameLocation":"913:1:18","nodeType":"VariableDeclaration","scope":26081,"src":"905:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26068,"name":"uint256","nodeType":"ElementaryTypeName","src":"905:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"893:22:18"},"returnParameters":{"id":26073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26072,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":26081,"src":"939:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26071,"name":"uint256","nodeType":"ElementaryTypeName","src":"939:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"938:9:18"},"scope":26640,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26097,"nodeType":"FunctionDefinition","src":"1044:158:18","nodes":[],"body":{"id":26096,"nodeType":"Block","src":"1116:86:18","nodes":[],"statements":[{"expression":{"arguments":[{"id":26091,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26083,"src":"1142:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26092,"name":"WAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26033,"src":"1145:3:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26093,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26085,"src":"1150:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26090,"name":"mulDivUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26567,"src":"1133:8:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":26094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1133:19:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":26089,"id":26095,"nodeType":"Return","src":"1126:26:18"}]},"implemented":true,"kind":"function","modifiers":[],"name":"divWadUp","nameLocation":"1053:8:18","parameters":{"id":26086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26083,"mutability":"mutable","name":"x","nameLocation":"1070:1:18","nodeType":"VariableDeclaration","scope":26097,"src":"1062:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26082,"name":"uint256","nodeType":"ElementaryTypeName","src":"1062:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26085,"mutability":"mutable","name":"y","nameLocation":"1081:1:18","nodeType":"VariableDeclaration","scope":26097,"src":"1073:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26084,"name":"uint256","nodeType":"ElementaryTypeName","src":"1073:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1061:22:18"},"returnParameters":{"id":26089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26088,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":26097,"src":"1107:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26087,"name":"uint256","nodeType":"ElementaryTypeName","src":"1107:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1106:9:18"},"scope":26640,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26121,"nodeType":"FunctionDefinition","src":"1208:273:18","nodes":[],"body":{"id":26120,"nodeType":"Block","src":"1275:206:18","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":26108,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26099,"src":"1405:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":26107,"name":"lnWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26541,"src":"1399:5:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":26109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1399:8:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":26110,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26101,"src":"1410:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1399:12:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26112,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1398:14:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"arguments":[{"id":26115,"name":"WAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26033,"src":"1422:3:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1415:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":26113,"name":"int256","nodeType":"ElementaryTypeName","src":"1415:6:18","typeDescriptions":{}}},"id":26116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1415:11:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1398:28:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":26106,"name":"expWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26316,"src":"1391:6:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":26118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1391:36:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":26105,"id":26119,"nodeType":"Return","src":"1384:43:18"}]},"implemented":true,"kind":"function","modifiers":[],"name":"powWad","nameLocation":"1217:6:18","parameters":{"id":26102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26099,"mutability":"mutable","name":"x","nameLocation":"1231:1:18","nodeType":"VariableDeclaration","scope":26121,"src":"1224:8:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26098,"name":"int256","nodeType":"ElementaryTypeName","src":"1224:6:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":26101,"mutability":"mutable","name":"y","nameLocation":"1241:1:18","nodeType":"VariableDeclaration","scope":26121,"src":"1234:8:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26100,"name":"int256","nodeType":"ElementaryTypeName","src":"1234:6:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1223:20:18"},"returnParameters":{"id":26105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26104,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":26121,"src":"1267:6:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26103,"name":"int256","nodeType":"ElementaryTypeName","src":"1267:6:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1266:8:18"},"scope":26640,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26316,"nodeType":"FunctionDefinition","src":"1487:3103:18","nodes":[],"body":{"id":26315,"nodeType":"Block","src":"1546:3044:18","nodes":[],"statements":[{"id":26314,"nodeType":"UncheckedBlock","src":"1556:3028:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26128,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26123,"src":"1713:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":26130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1718:21:18","subExpression":{"hexValue":"3432313339363738383534343532373637353531","id":26129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1719:20:18","typeDescriptions":{"typeIdentifier":"t_rational_42139678854452767551_by_1","typeString":"int_const 42139678854452767551"},"value":"42139678854452767551"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_42139678854452767551_by_1","typeString":"int_const -42139678854452767551"}},"src":"1713:26:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26134,"nodeType":"IfStatement","src":"1709:40:18","trueBody":{"expression":{"hexValue":"30","id":26132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1748:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":26127,"id":26133,"nodeType":"Return","src":"1741:8:18"}},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26135,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26123,"src":"1943:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"313335333035393939333638383933323331353839","id":26136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1948:21:18","typeDescriptions":{"typeIdentifier":"t_rational_135305999368893231589_by_1","typeString":"int_const 135305999368893231589"},"value":"135305999368893231589"},"src":"1943:26:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26142,"nodeType":"IfStatement","src":"1939:54:18","trueBody":{"expression":{"arguments":[{"hexValue":"4558505f4f564552464c4f57","id":26139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1978:14:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_f364785e6e651288224d2623ec5f083c58c85325644496b3d02635790697d3c7","typeString":"literal_string \"EXP_OVERFLOW\""},"value":"EXP_OVERFLOW"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f364785e6e651288224d2623ec5f083c58c85325644496b3d02635790697d3c7","typeString":"literal_string \"EXP_OVERFLOW\""}],"id":26138,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1971:6:18","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":26140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1971:22:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26141,"nodeType":"ExpressionStatement","src":"1971:22:18"}},{"expression":{"id":26152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26143,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26123,"src":"2250:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26144,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26123,"src":"2255:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3738","id":26145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2260:2:18","typeDescriptions":{"typeIdentifier":"t_rational_78_by_1","typeString":"int_const 78"},"value":"78"},"src":"2255:7:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26147,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2254:9:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"commonType":{"typeIdentifier":"t_rational_3814697265625_by_1","typeString":"int_const 3814697265625"},"id":26150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"35","id":26148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2266:1:18","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":26149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2269:2:18","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"2266:5:18","typeDescriptions":{"typeIdentifier":"t_rational_3814697265625_by_1","typeString":"int_const 3814697265625"}},"src":"2254:17:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2250:21:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26153,"nodeType":"ExpressionStatement","src":"2250:21:18"},{"assignments":[26155],"declarations":[{"constant":false,"id":26155,"mutability":"mutable","name":"k","nameLocation":"2542:1:18","nodeType":"VariableDeclaration","scope":26314,"src":"2535:8:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26154,"name":"int256","nodeType":"ElementaryTypeName","src":"2535:6:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":26169,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26156,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26123,"src":"2548:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3936","id":26157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2553:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"2548:7:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26159,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2547:9:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3534393136373737343637373037343733333531313431343731313238","id":26160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2559:29:18","typeDescriptions":{"typeIdentifier":"t_rational_54916777467707473351141471128_by_1","typeString":"int_const 54916777467707473351141471128"},"value":"54916777467707473351141471128"},"src":"2547:41:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_rational_39614081257132168796771975168_by_1","typeString":"int_const 39614081257132168796771975168"},"id":26164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":26162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2591:1:18","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3935","id":26163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2594:2:18","typeDescriptions":{"typeIdentifier":"t_rational_95_by_1","typeString":"int_const 95"},"value":"95"},"src":"2591:5:18","typeDescriptions":{"typeIdentifier":"t_rational_39614081257132168796771975168_by_1","typeString":"int_const 39614081257132168796771975168"}},"src":"2547:49:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26166,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2546:51:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":26167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2601:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"2546:57:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"2535:68:18"},{"expression":{"id":26176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26170,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26123,"src":"2617:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26171,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26123,"src":"2621:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26172,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26155,"src":"2625:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3534393136373737343637373037343733333531313431343731313238","id":26173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2629:29:18","typeDescriptions":{"typeIdentifier":"t_rational_54916777467707473351141471128_by_1","typeString":"int_const 54916777467707473351141471128"},"value":"54916777467707473351141471128"},"src":"2625:33:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2621:37:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2617:41:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26177,"nodeType":"ExpressionStatement","src":"2617:41:18"},{"assignments":[26179],"declarations":[{"constant":false,"id":26179,"mutability":"mutable","name":"y","nameLocation":"2866:1:18","nodeType":"VariableDeclaration","scope":26314,"src":"2859:8:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26178,"name":"int256","nodeType":"ElementaryTypeName","src":"2859:6:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":26183,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26180,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26123,"src":"2870:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31333436333836363136353435373936343738393230393530373733333238","id":26181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2874:31:18","typeDescriptions":{"typeIdentifier":"t_rational_1346386616545796478920950773328_by_1","typeString":"int_const 1346386616545796478920950773328"},"value":"1346386616545796478920950773328"},"src":"2870:35:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"2859:46:18"},{"expression":{"id":26194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26184,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26179,"src":"2919:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26185,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26179,"src":"2925:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":26186,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26123,"src":"2929:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2925:5:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26188,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2924:7:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":26189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2935:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"2924:13:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26191,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2923:15:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3537313535343231323237353532333531303832323234333039373538343432","id":26192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2941:32:18","typeDescriptions":{"typeIdentifier":"t_rational_57155421227552351082224309758442_by_1","typeString":"int_const 57155421227552351082224309758442"},"value":"57155421227552351082224309758442"},"src":"2923:50:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2919:54:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26195,"nodeType":"ExpressionStatement","src":"2919:54:18"},{"assignments":[26197],"declarations":[{"constant":false,"id":26197,"mutability":"mutable","name":"p","nameLocation":"2994:1:18","nodeType":"VariableDeclaration","scope":26314,"src":"2987:8:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26196,"name":"int256","nodeType":"ElementaryTypeName","src":"2987:6:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":26203,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26198,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26179,"src":"2998:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":26199,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26123,"src":"3002:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2998:5:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3934323031353439313934353530343932323534333536303432353034383132","id":26201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3006:32:18","typeDescriptions":{"typeIdentifier":"t_rational_94201549194550492254356042504812_by_1","typeString":"int_const 94201549194550492254356042504812"},"value":"94201549194550492254356042504812"},"src":"2998:40:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"2987:51:18"},{"expression":{"id":26214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26204,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26197,"src":"3052:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26205,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26197,"src":"3058:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":26206,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26179,"src":"3062:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3058:5:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26208,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3057:7:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":26209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3068:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"3057:13:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26211,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3056:15:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3238373139303231363434303239373236313533393536393434363830343132323430","id":26212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3074:35:18","typeDescriptions":{"typeIdentifier":"t_rational_28719021644029726153956944680412240_by_1","typeString":"int_const 2871...(27 digits omitted)...2240"},"value":"28719021644029726153956944680412240"},"src":"3056:53:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3052:57:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26215,"nodeType":"ExpressionStatement","src":"3052:57:18"},{"expression":{"id":26225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26216,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26197,"src":"3123:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26217,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26197,"src":"3127:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":26218,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26123,"src":"3131:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3127:5:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_347437083999162433888837515002539729507623920905942392673140736_by_1","typeString":"int_const 3474...(55 digits omitted)...0736"},"id":26222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"34333835323732353231343534383437393034363539303736393835363933323736","id":26220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3136:34:18","typeDescriptions":{"typeIdentifier":"t_rational_4385272521454847904659076985693276_by_1","typeString":"int_const 4385...(26 digits omitted)...3276"},"value":"4385272521454847904659076985693276"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3936","id":26221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3174:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"3136:40:18","typeDescriptions":{"typeIdentifier":"t_rational_347437083999162433888837515002539729507623920905942392673140736_by_1","typeString":"int_const 3474...(55 digits omitted)...0736"}}],"id":26223,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3135:42:18","typeDescriptions":{"typeIdentifier":"t_rational_347437083999162433888837515002539729507623920905942392673140736_by_1","typeString":"int_const 3474...(55 digits omitted)...0736"}},"src":"3127:50:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3123:54:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26226,"nodeType":"ExpressionStatement","src":"3123:54:18"},{"assignments":[26228],"declarations":[{"constant":false,"id":26228,"mutability":"mutable","name":"q","nameLocation":"3296:1:18","nodeType":"VariableDeclaration","scope":26314,"src":"3289:8:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26227,"name":"int256","nodeType":"ElementaryTypeName","src":"3289:6:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":26232,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26229,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26123,"src":"3300:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"32383535393839333934393037323233323633393336343834303539393030","id":26230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3304:31:18","typeDescriptions":{"typeIdentifier":"t_rational_2855989394907223263936484059900_by_1","typeString":"int_const 2855989394907223263936484059900"},"value":"2855989394907223263936484059900"},"src":"3300:35:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"3289:46:18"},{"expression":{"id":26243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26233,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26228,"src":"3349:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26234,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26228,"src":"3355:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":26235,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26123,"src":"3359:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3355:5:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26237,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3354:7:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":26238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3365:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"3354:13:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26240,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3353:15:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3530303230363033363532353335373833303139393631383331383831393435","id":26241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3371:32:18","typeDescriptions":{"typeIdentifier":"t_rational_50020603652535783019961831881945_by_1","typeString":"int_const 50020603652535783019961831881945"},"value":"50020603652535783019961831881945"},"src":"3353:50:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3349:54:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26244,"nodeType":"ExpressionStatement","src":"3349:54:18"},{"expression":{"id":26255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26245,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26228,"src":"3417:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26246,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26228,"src":"3423:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":26247,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26123,"src":"3427:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3423:5:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26249,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3422:7:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":26250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3433:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"3422:13:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26252,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3421:15:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"353333383435303333353833343236373033323833363333343333373235333830","id":26253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3439:33:18","typeDescriptions":{"typeIdentifier":"t_rational_533845033583426703283633433725380_by_1","typeString":"int_const 5338...(25 digits omitted)...5380"},"value":"533845033583426703283633433725380"},"src":"3421:51:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3417:55:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26256,"nodeType":"ExpressionStatement","src":"3417:55:18"},{"expression":{"id":26267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26257,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26228,"src":"3486:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26258,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26228,"src":"3492:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":26259,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26123,"src":"3496:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3492:5:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26261,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3491:7:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":26262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3502:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"3491:13:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26264,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3490:15:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"33363034383537323536393330363935343237303733363531393138303931343239","id":26265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3508:34:18","typeDescriptions":{"typeIdentifier":"t_rational_3604857256930695427073651918091429_by_1","typeString":"int_const 3604...(26 digits omitted)...1429"},"value":"3604857256930695427073651918091429"},"src":"3490:52:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3486:56:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26268,"nodeType":"ExpressionStatement","src":"3486:56:18"},{"expression":{"id":26279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26269,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26228,"src":"3556:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26270,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26228,"src":"3562:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":26271,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26123,"src":"3566:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3562:5:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26273,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3561:7:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":26274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3572:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"3561:13:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26276,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3560:15:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3134343233363038353637333530343633313830383837333732393632383037353733","id":26277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3578:35:18","typeDescriptions":{"typeIdentifier":"t_rational_14423608567350463180887372962807573_by_1","typeString":"int_const 1442...(27 digits omitted)...7573"},"value":"14423608567350463180887372962807573"},"src":"3560:53:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3556:57:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26280,"nodeType":"ExpressionStatement","src":"3556:57:18"},{"expression":{"id":26291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26281,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26228,"src":"3627:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26282,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26228,"src":"3633:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":26283,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26123,"src":"3637:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3633:5:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26285,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3632:7:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":26286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3643:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"3632:13:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26288,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3631:15:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3236343439313838343938333535353838333339393334383033373233393736303233","id":26289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3649:35:18","typeDescriptions":{"typeIdentifier":"t_rational_26449188498355588339934803723976023_by_1","typeString":"int_const 2644...(27 digits omitted)...6023"},"value":"26449188498355588339934803723976023"},"src":"3631:53:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3627:57:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26292,"nodeType":"ExpressionStatement","src":"3627:57:18"},{"AST":{"nativeSrc":"3708:318:18","nodeType":"YulBlock","src":"3708:318:18","statements":[{"nativeSrc":"3997:15:18","nodeType":"YulAssignment","src":"3997:15:18","value":{"arguments":[{"name":"p","nativeSrc":"4007:1:18","nodeType":"YulIdentifier","src":"4007:1:18"},{"name":"q","nativeSrc":"4010:1:18","nodeType":"YulIdentifier","src":"4010:1:18"}],"functionName":{"name":"sdiv","nativeSrc":"4002:4:18","nodeType":"YulIdentifier","src":"4002:4:18"},"nativeSrc":"4002:10:18","nodeType":"YulFunctionCall","src":"4002:10:18"},"variableNames":[{"name":"r","nativeSrc":"3997:1:18","nodeType":"YulIdentifier","src":"3997:1:18"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":26197,"isOffset":false,"isSlot":false,"src":"4007:1:18","valueSize":1},{"declaration":26228,"isOffset":false,"isSlot":false,"src":"4010:1:18","valueSize":1},{"declaration":26126,"isOffset":false,"isSlot":false,"src":"3997:1:18","valueSize":1}],"id":26293,"nodeType":"InlineAssembly","src":"3699:327:18"},{"expression":{"id":26312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26294,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26126,"src":"4477:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":26299,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26126,"src":"4497:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":26298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4489:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":26297,"name":"uint256","nodeType":"ElementaryTypeName","src":"4489:7:18","typeDescriptions":{}}},"id":26300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4489:10:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"33383232383333303734393633323336343533303432373338323538393032313538303033313535343136363135363637","id":26301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4502:49:18","typeDescriptions":{"typeIdentifier":"t_rational_3822833074963236453042738258902158003155416615667_by_1","typeString":"int_const 3822...(41 digits omitted)...5667"},"value":"3822833074963236453042738258902158003155416615667"},"src":"4489:62:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":26303,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4488:64:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"313935","id":26306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4564:3:18","typeDescriptions":{"typeIdentifier":"t_rational_195_by_1","typeString":"int_const 195"},"value":"195"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":26307,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26155,"src":"4570:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4564:7:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":26305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4556:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":26304,"name":"uint256","nodeType":"ElementaryTypeName","src":"4556:7:18","typeDescriptions":{}}},"id":26309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4556:16:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4488:84:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4481:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":26295,"name":"int256","nodeType":"ElementaryTypeName","src":"4481:6:18","typeDescriptions":{}}},"id":26311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4481:92:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4477:96:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26313,"nodeType":"ExpressionStatement","src":"4477:96:18"}]}]},"implemented":true,"kind":"function","modifiers":[],"name":"expWad","nameLocation":"1496:6:18","parameters":{"id":26124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26123,"mutability":"mutable","name":"x","nameLocation":"1510:1:18","nodeType":"VariableDeclaration","scope":26316,"src":"1503:8:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26122,"name":"int256","nodeType":"ElementaryTypeName","src":"1503:6:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1502:10:18"},"returnParameters":{"id":26127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26126,"mutability":"mutable","name":"r","nameLocation":"1543:1:18","nodeType":"VariableDeclaration","scope":26316,"src":"1536:8:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26125,"name":"int256","nodeType":"ElementaryTypeName","src":"1536:6:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1535:10:18"},"scope":26640,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26541,"nodeType":"FunctionDefinition","src":"4596:2947:18","nodes":[],"body":{"id":26540,"nodeType":"Block","src":"4654:2889:18","nodes":[],"statements":[{"id":26539,"nodeType":"UncheckedBlock","src":"4664:2873:18","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26324,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26318,"src":"4696:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":26325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4700:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4696:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554e444546494e4544","id":26327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4703:11:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_b70f99725f613142a957aa77c3aedce39bd858a4e6387f20e61acd49274b091c","typeString":"literal_string \"UNDEFINED\""},"value":"UNDEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b70f99725f613142a957aa77c3aedce39bd858a4e6387f20e61acd49274b091c","typeString":"literal_string \"UNDEFINED\""}],"id":26323,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4688:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4688:27:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26329,"nodeType":"ExpressionStatement","src":"4688:27:18"},{"assignments":[26331],"declarations":[{"constant":false,"id":26331,"mutability":"mutable","name":"k","nameLocation":"5114:1:18","nodeType":"VariableDeclaration","scope":26539,"src":"5107:8:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26330,"name":"int256","nodeType":"ElementaryTypeName","src":"5107:6:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":26343,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":26337,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26318,"src":"5138:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":26336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5130:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":26335,"name":"uint256","nodeType":"ElementaryTypeName","src":"5130:7:18","typeDescriptions":{}}},"id":26338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5130:10:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26334,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26605,"src":"5125:4:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":26339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5125:16:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5118:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":26332,"name":"int256","nodeType":"ElementaryTypeName","src":"5118:6:18","typeDescriptions":{}}},"id":26340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5118:24:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3936","id":26341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5145:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"5118:29:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"5107:40:18"},{"expression":{"id":26351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26344,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26318,"src":"5161:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"313539","id":26347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5175:3:18","typeDescriptions":{"typeIdentifier":"t_rational_159_by_1","typeString":"int_const 159"},"value":"159"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":26348,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26331,"src":"5181:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5175:7:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":26346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5167:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":26345,"name":"uint256","nodeType":"ElementaryTypeName","src":"5167:7:18","typeDescriptions":{}}},"id":26350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5167:16:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5161:22:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26352,"nodeType":"ExpressionStatement","src":"5161:22:18"},{"expression":{"id":26363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26353,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26318,"src":"5197:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":26358,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26318,"src":"5216:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":26357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5208:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":26356,"name":"uint256","nodeType":"ElementaryTypeName","src":"5208:7:18","typeDescriptions":{}}},"id":26359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5208:10:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313539","id":26360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5222:3:18","typeDescriptions":{"typeIdentifier":"t_rational_159_by_1","typeString":"int_const 159"},"value":"159"},"src":"5208:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5201:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":26354,"name":"int256","nodeType":"ElementaryTypeName","src":"5201:6:18","typeDescriptions":{}}},"id":26362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5201:25:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5197:29:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26364,"nodeType":"ExpressionStatement","src":"5197:29:18"},{"assignments":[26366],"declarations":[{"constant":false,"id":26366,"mutability":"mutable","name":"p","nameLocation":"5390:1:18","nodeType":"VariableDeclaration","scope":26539,"src":"5383:8:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26365,"name":"int256","nodeType":"ElementaryTypeName","src":"5383:6:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":26370,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26367,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26318,"src":"5394:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"33323733323835343539363338353233383438363332323534303636323936","id":26368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5398:31:18","typeDescriptions":{"typeIdentifier":"t_rational_3273285459638523848632254066296_by_1","typeString":"int_const 3273285459638523848632254066296"},"value":"3273285459638523848632254066296"},"src":"5394:35:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"5383:46:18"},{"expression":{"id":26381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26371,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26366,"src":"5443:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26372,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26366,"src":"5449:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":26373,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26318,"src":"5453:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5449:5:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26375,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5448:7:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":26376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5459:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"5448:13:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26378,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5447:15:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3234383238313537303831383333313633383932363538303839343435353234","id":26379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5465:32:18","typeDescriptions":{"typeIdentifier":"t_rational_24828157081833163892658089445524_by_1","typeString":"int_const 24828157081833163892658089445524"},"value":"24828157081833163892658089445524"},"src":"5447:50:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5443:54:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26382,"nodeType":"ExpressionStatement","src":"5443:54:18"},{"expression":{"id":26393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26383,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26366,"src":"5511:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26384,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26366,"src":"5517:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":26385,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26318,"src":"5521:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5517:5:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26387,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5516:7:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":26388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5527:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"5516:13:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26390,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5515:15:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3433343536343835373235373339303337393538373430333735373433333933","id":26391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5533:32:18","typeDescriptions":{"typeIdentifier":"t_rational_43456485725739037958740375743393_by_1","typeString":"int_const 43456485725739037958740375743393"},"value":"43456485725739037958740375743393"},"src":"5515:50:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5511:54:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26394,"nodeType":"ExpressionStatement","src":"5511:54:18"},{"expression":{"id":26405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26395,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26366,"src":"5579:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26396,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26366,"src":"5585:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":26397,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26318,"src":"5589:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5585:5:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26399,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5584:7:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":26400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5595:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"5584:13:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26402,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5583:15:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3131313131353039313039343430393637303532303233383535353236393637","id":26403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5601:32:18","typeDescriptions":{"typeIdentifier":"t_rational_11111509109440967052023855526967_by_1","typeString":"int_const 11111509109440967052023855526967"},"value":"11111509109440967052023855526967"},"src":"5583:50:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5579:54:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26406,"nodeType":"ExpressionStatement","src":"5579:54:18"},{"expression":{"id":26417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26407,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26366,"src":"5647:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26408,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26366,"src":"5653:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":26409,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26318,"src":"5657:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5653:5:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26411,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5652:7:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":26412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5663:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"5652:13:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26414,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5651:15:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3435303233373039363637323534303633373633333336353334353135383537","id":26415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5669:32:18","typeDescriptions":{"typeIdentifier":"t_rational_45023709667254063763336534515857_by_1","typeString":"int_const 45023709667254063763336534515857"},"value":"45023709667254063763336534515857"},"src":"5651:50:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5647:54:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26418,"nodeType":"ExpressionStatement","src":"5647:54:18"},{"expression":{"id":26429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26419,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26366,"src":"5715:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26420,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26366,"src":"5721:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":26421,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26318,"src":"5725:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5721:5:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26423,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5720:7:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":26424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5731:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"5720:13:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26426,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5719:15:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3134373036373733343137333738363038373836373034363336313834353236","id":26427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5737:32:18","typeDescriptions":{"typeIdentifier":"t_rational_14706773417378608786704636184526_by_1","typeString":"int_const 14706773417378608786704636184526"},"value":"14706773417378608786704636184526"},"src":"5719:50:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5715:54:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26430,"nodeType":"ExpressionStatement","src":"5715:54:18"},{"expression":{"id":26440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26431,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26366,"src":"5783:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26432,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26366,"src":"5787:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":26433,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26318,"src":"5791:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5787:5:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_62999401287715976015676079709131874438408901006995465699328_by_1","typeString":"int_const 6299...(51 digits omitted)...9328"},"id":26437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"373935313634323335363531333530343236323538323439373837343938","id":26435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5796:30:18","typeDescriptions":{"typeIdentifier":"t_rational_795164235651350426258249787498_by_1","typeString":"int_const 795164235651350426258249787498"},"value":"795164235651350426258249787498"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3936","id":26436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5830:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"5796:36:18","typeDescriptions":{"typeIdentifier":"t_rational_62999401287715976015676079709131874438408901006995465699328_by_1","typeString":"int_const 6299...(51 digits omitted)...9328"}}],"id":26438,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5795:38:18","typeDescriptions":{"typeIdentifier":"t_rational_62999401287715976015676079709131874438408901006995465699328_by_1","typeString":"int_const 6299...(51 digits omitted)...9328"}},"src":"5787:46:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5783:50:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26441,"nodeType":"ExpressionStatement","src":"5783:50:18"},{"assignments":[26443],"declarations":[{"constant":false,"id":26443,"mutability":"mutable","name":"q","nameLocation":"5993:1:18","nodeType":"VariableDeclaration","scope":26539,"src":"5986:8:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26442,"name":"int256","nodeType":"ElementaryTypeName","src":"5986:6:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":26447,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26444,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26318,"src":"5997:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"35353733303335323333343430363733343636333030343531383133393336","id":26445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6001:31:18","typeDescriptions":{"typeIdentifier":"t_rational_5573035233440673466300451813936_by_1","typeString":"int_const 5573035233440673466300451813936"},"value":"5573035233440673466300451813936"},"src":"5997:35:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"5986:46:18"},{"expression":{"id":26458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26448,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26443,"src":"6046:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26449,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26443,"src":"6052:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":26450,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26318,"src":"6056:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6052:5:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26452,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6051:7:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":26453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6062:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"6051:13:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26455,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6050:15:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3731363934383734373939333137383833373634303930353631343534393538","id":26456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6068:32:18","typeDescriptions":{"typeIdentifier":"t_rational_71694874799317883764090561454958_by_1","typeString":"int_const 71694874799317883764090561454958"},"value":"71694874799317883764090561454958"},"src":"6050:50:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6046:54:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26459,"nodeType":"ExpressionStatement","src":"6046:54:18"},{"expression":{"id":26470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26460,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26443,"src":"6114:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26461,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26443,"src":"6120:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":26462,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26318,"src":"6124:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6120:5:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26464,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6119:7:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":26465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6130:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"6119:13:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26467,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6118:15:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"323833343437303336313732393234353735373237313936343531333036393536","id":26468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6136:33:18","typeDescriptions":{"typeIdentifier":"t_rational_283447036172924575727196451306956_by_1","typeString":"int_const 2834...(25 digits omitted)...6956"},"value":"283447036172924575727196451306956"},"src":"6118:51:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6114:55:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26471,"nodeType":"ExpressionStatement","src":"6114:55:18"},{"expression":{"id":26482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26472,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26443,"src":"6183:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26473,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26443,"src":"6189:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":26474,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26318,"src":"6193:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6189:5:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26476,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6188:7:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":26477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6199:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"6188:13:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26479,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6187:15:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"343031363836363930333934303237363633363531363234323038373639353533","id":26480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6205:33:18","typeDescriptions":{"typeIdentifier":"t_rational_401686690394027663651624208769553_by_1","typeString":"int_const 4016...(25 digits omitted)...9553"},"value":"401686690394027663651624208769553"},"src":"6187:51:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6183:55:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26483,"nodeType":"ExpressionStatement","src":"6183:55:18"},{"expression":{"id":26494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26484,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26443,"src":"6252:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26485,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26443,"src":"6258:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":26486,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26318,"src":"6262:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6258:5:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26488,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6257:7:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":26489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6268:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"6257:13:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26491,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6256:15:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"323034303438343537353930333932303132333632343835303631383136363232","id":26492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6274:33:18","typeDescriptions":{"typeIdentifier":"t_rational_204048457590392012362485061816622_by_1","typeString":"int_const 2040...(25 digits omitted)...6622"},"value":"204048457590392012362485061816622"},"src":"6256:51:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6252:55:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26495,"nodeType":"ExpressionStatement","src":"6252:55:18"},{"expression":{"id":26506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26496,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26443,"src":"6321:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26497,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26443,"src":"6327:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":26498,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26318,"src":"6331:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6327:5:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26500,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6326:7:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":26501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6337:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"6326:13:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26503,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6325:15:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3331383533383939363938353031353731343032363533333539343237313338","id":26504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6343:32:18","typeDescriptions":{"typeIdentifier":"t_rational_31853899698501571402653359427138_by_1","typeString":"int_const 31853899698501571402653359427138"},"value":"31853899698501571402653359427138"},"src":"6325:50:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6321:54:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26507,"nodeType":"ExpressionStatement","src":"6321:54:18"},{"expression":{"id":26518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26508,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26443,"src":"6389:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26509,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26443,"src":"6395:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":26510,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26318,"src":"6399:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6395:5:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26512,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6394:7:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":26513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6405:2:18","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"6394:13:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26515,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6393:15:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"393039343239393731323434333837333030323737333736353538333735","id":26516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6411:30:18","typeDescriptions":{"typeIdentifier":"t_rational_909429971244387300277376558375_by_1","typeString":"int_const 909429971244387300277376558375"},"value":"909429971244387300277376558375"},"src":"6393:48:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6389:52:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26519,"nodeType":"ExpressionStatement","src":"6389:52:18"},{"AST":{"nativeSrc":"6464:295:18","nodeType":"YulBlock","src":"6464:295:18","statements":[{"nativeSrc":"6730:15:18","nodeType":"YulAssignment","src":"6730:15:18","value":{"arguments":[{"name":"p","nativeSrc":"6740:1:18","nodeType":"YulIdentifier","src":"6740:1:18"},{"name":"q","nativeSrc":"6743:1:18","nodeType":"YulIdentifier","src":"6743:1:18"}],"functionName":{"name":"sdiv","nativeSrc":"6735:4:18","nodeType":"YulIdentifier","src":"6735:4:18"},"nativeSrc":"6735:10:18","nodeType":"YulFunctionCall","src":"6735:10:18"},"variableNames":[{"name":"r","nativeSrc":"6730:1:18","nodeType":"YulIdentifier","src":"6730:1:18"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":26366,"isOffset":false,"isSlot":false,"src":"6740:1:18","valueSize":1},{"declaration":26443,"isOffset":false,"isSlot":false,"src":"6743:1:18","valueSize":1},{"declaration":26321,"isOffset":false,"isSlot":false,"src":"6730:1:18","valueSize":1}],"id":26520,"nodeType":"InlineAssembly","src":"6455:304:18"},{"expression":{"id":26523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26521,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26321,"src":"7120:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"hexValue":"31363737323032313130393936373138353838333432383230393637303637343433393633353136313636","id":26522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7125:43:18","typeDescriptions":{"typeIdentifier":"t_rational_1677202110996718588342820967067443963516166_by_1","typeString":"int_const 1677...(35 digits omitted)...6166"},"value":"1677202110996718588342820967067443963516166"},"src":"7120:48:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26524,"nodeType":"ExpressionStatement","src":"7120:48:18"},{"expression":{"id":26529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26525,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26321,"src":"7227:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3136353937353737353532363835363134323231343837323835393538313933393437343639313933383230353539323139383738313737393038303933343939323038333731","id":26526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7232:71:18","typeDescriptions":{"typeIdentifier":"t_rational_16597577552685614221487285958193947469193820559219878177908093499208371_by_1","typeString":"int_const 1659...(63 digits omitted)...8371"},"value":"16597577552685614221487285958193947469193820559219878177908093499208371"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":26527,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26331,"src":"7306:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7232:75:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7227:80:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26530,"nodeType":"ExpressionStatement","src":"7227:80:18"},{"expression":{"id":26533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26531,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26321,"src":"7375:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"363030393230313739383239373331383631373336373032373739333231363231343539353935343732323538303439303734313031353637333737383833303230303138333038","id":26532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7380:72:18","typeDescriptions":{"typeIdentifier":"t_rational_600920179829731861736702779321621459595472258049074101567377883020018308_by_1","typeString":"int_const 6009...(64 digits omitted)...8308"},"value":"600920179829731861736702779321621459595472258049074101567377883020018308"},"src":"7375:77:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26534,"nodeType":"ExpressionStatement","src":"7375:77:18"},{"expression":{"id":26537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26535,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26321,"src":"7517:1:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313734","id":26536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7523:3:18","typeDescriptions":{"typeIdentifier":"t_rational_174_by_1","typeString":"int_const 174"},"value":"174"},"src":"7517:9:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26538,"nodeType":"ExpressionStatement","src":"7517:9:18"}]}]},"implemented":true,"kind":"function","modifiers":[],"name":"lnWad","nameLocation":"4605:5:18","parameters":{"id":26319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26318,"mutability":"mutable","name":"x","nameLocation":"4618:1:18","nodeType":"VariableDeclaration","scope":26541,"src":"4611:8:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26317,"name":"int256","nodeType":"ElementaryTypeName","src":"4611:6:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4610:10:18"},"returnParameters":{"id":26322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26321,"mutability":"mutable","name":"r","nameLocation":"4651:1:18","nodeType":"VariableDeclaration","scope":26541,"src":"4644:8:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26320,"name":"int256","nodeType":"ElementaryTypeName","src":"4644:6:18","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4643:10:18"},"scope":26640,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26554,"nodeType":"FunctionDefinition","src":"7741:535:18","nodes":[],"body":{"id":26553,"nodeType":"Block","src":"7868:408:18","nodes":[],"statements":[{"AST":{"nativeSrc":"7887:383:18","nodeType":"YulBlock","src":"7887:383:18","statements":[{"nativeSrc":"7942:14:18","nodeType":"YulAssignment","src":"7942:14:18","value":{"arguments":[{"name":"x","nativeSrc":"7951:1:18","nodeType":"YulIdentifier","src":"7951:1:18"},{"name":"y","nativeSrc":"7954:1:18","nodeType":"YulIdentifier","src":"7954:1:18"}],"functionName":{"name":"mul","nativeSrc":"7947:3:18","nodeType":"YulIdentifier","src":"7947:3:18"},"nativeSrc":"7947:9:18","nodeType":"YulFunctionCall","src":"7947:9:18"},"variableNames":[{"name":"z","nativeSrc":"7942:1:18","nodeType":"YulIdentifier","src":"7942:1:18"}]},{"body":{"nativeSrc":"8134:44:18","nodeType":"YulBlock","src":"8134:44:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8159:1:18","nodeType":"YulLiteral","src":"8159:1:18","type":"","value":"0"},{"kind":"number","nativeSrc":"8162:1:18","nodeType":"YulLiteral","src":"8162:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8152:6:18","nodeType":"YulIdentifier","src":"8152:6:18"},"nativeSrc":"8152:12:18","nodeType":"YulFunctionCall","src":"8152:12:18"},"nativeSrc":"8152:12:18","nodeType":"YulExpressionStatement","src":"8152:12:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"denominator","nativeSrc":"8085:11:18","nodeType":"YulIdentifier","src":"8085:11:18"}],"functionName":{"name":"iszero","nativeSrc":"8078:6:18","nodeType":"YulIdentifier","src":"8078:6:18"},"nativeSrc":"8078:19:18","nodeType":"YulFunctionCall","src":"8078:19:18"}],"functionName":{"name":"iszero","nativeSrc":"8071:6:18","nodeType":"YulIdentifier","src":"8071:6:18"},"nativeSrc":"8071:27:18","nodeType":"YulFunctionCall","src":"8071:27:18"},{"arguments":[{"arguments":[{"name":"x","nativeSrc":"8110:1:18","nodeType":"YulIdentifier","src":"8110:1:18"}],"functionName":{"name":"iszero","nativeSrc":"8103:6:18","nodeType":"YulIdentifier","src":"8103:6:18"},"nativeSrc":"8103:9:18","nodeType":"YulFunctionCall","src":"8103:9:18"},{"arguments":[{"arguments":[{"name":"z","nativeSrc":"8121:1:18","nodeType":"YulIdentifier","src":"8121:1:18"},{"name":"x","nativeSrc":"8124:1:18","nodeType":"YulIdentifier","src":"8124:1:18"}],"functionName":{"name":"div","nativeSrc":"8117:3:18","nodeType":"YulIdentifier","src":"8117:3:18"},"nativeSrc":"8117:9:18","nodeType":"YulFunctionCall","src":"8117:9:18"},{"name":"y","nativeSrc":"8128:1:18","nodeType":"YulIdentifier","src":"8128:1:18"}],"functionName":{"name":"eq","nativeSrc":"8114:2:18","nodeType":"YulIdentifier","src":"8114:2:18"},"nativeSrc":"8114:16:18","nodeType":"YulFunctionCall","src":"8114:16:18"}],"functionName":{"name":"or","nativeSrc":"8100:2:18","nodeType":"YulIdentifier","src":"8100:2:18"},"nativeSrc":"8100:31:18","nodeType":"YulFunctionCall","src":"8100:31:18"}],"functionName":{"name":"and","nativeSrc":"8067:3:18","nodeType":"YulIdentifier","src":"8067:3:18"},"nativeSrc":"8067:65:18","nodeType":"YulFunctionCall","src":"8067:65:18"}],"functionName":{"name":"iszero","nativeSrc":"8060:6:18","nodeType":"YulIdentifier","src":"8060:6:18"},"nativeSrc":"8060:73:18","nodeType":"YulFunctionCall","src":"8060:73:18"},"nativeSrc":"8057:121:18","nodeType":"YulIf","src":"8057:121:18"},{"nativeSrc":"8236:24:18","nodeType":"YulAssignment","src":"8236:24:18","value":{"arguments":[{"name":"z","nativeSrc":"8245:1:18","nodeType":"YulIdentifier","src":"8245:1:18"},{"name":"denominator","nativeSrc":"8248:11:18","nodeType":"YulIdentifier","src":"8248:11:18"}],"functionName":{"name":"div","nativeSrc":"8241:3:18","nodeType":"YulIdentifier","src":"8241:3:18"},"nativeSrc":"8241:19:18","nodeType":"YulFunctionCall","src":"8241:19:18"},"variableNames":[{"name":"z","nativeSrc":"8236:1:18","nodeType":"YulIdentifier","src":"8236:1:18"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":26547,"isOffset":false,"isSlot":false,"src":"8085:11:18","valueSize":1},{"declaration":26547,"isOffset":false,"isSlot":false,"src":"8248:11:18","valueSize":1},{"declaration":26543,"isOffset":false,"isSlot":false,"src":"7951:1:18","valueSize":1},{"declaration":26543,"isOffset":false,"isSlot":false,"src":"8110:1:18","valueSize":1},{"declaration":26543,"isOffset":false,"isSlot":false,"src":"8124:1:18","valueSize":1},{"declaration":26545,"isOffset":false,"isSlot":false,"src":"7954:1:18","valueSize":1},{"declaration":26545,"isOffset":false,"isSlot":false,"src":"8128:1:18","valueSize":1},{"declaration":26550,"isOffset":false,"isSlot":false,"src":"7942:1:18","valueSize":1},{"declaration":26550,"isOffset":false,"isSlot":false,"src":"8121:1:18","valueSize":1},{"declaration":26550,"isOffset":false,"isSlot":false,"src":"8236:1:18","valueSize":1},{"declaration":26550,"isOffset":false,"isSlot":false,"src":"8245:1:18","valueSize":1}],"id":26552,"nodeType":"InlineAssembly","src":"7878:392:18"}]},"implemented":true,"kind":"function","modifiers":[],"name":"mulDivDown","nameLocation":"7750:10:18","parameters":{"id":26548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26543,"mutability":"mutable","name":"x","nameLocation":"7778:1:18","nodeType":"VariableDeclaration","scope":26554,"src":"7770:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26542,"name":"uint256","nodeType":"ElementaryTypeName","src":"7770:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26545,"mutability":"mutable","name":"y","nameLocation":"7797:1:18","nodeType":"VariableDeclaration","scope":26554,"src":"7789:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26544,"name":"uint256","nodeType":"ElementaryTypeName","src":"7789:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26547,"mutability":"mutable","name":"denominator","nameLocation":"7816:11:18","nodeType":"VariableDeclaration","scope":26554,"src":"7808:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26546,"name":"uint256","nodeType":"ElementaryTypeName","src":"7808:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7760:73:18"},"returnParameters":{"id":26551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26550,"mutability":"mutable","name":"z","nameLocation":"7865:1:18","nodeType":"VariableDeclaration","scope":26554,"src":"7857:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26549,"name":"uint256","nodeType":"ElementaryTypeName","src":"7857:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7856:11:18"},"scope":26640,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26567,"nodeType":"FunctionDefinition","src":"8282:752:18","nodes":[],"body":{"id":26566,"nodeType":"Block","src":"8407:627:18","nodes":[],"statements":[{"AST":{"nativeSrc":"8426:602:18","nodeType":"YulBlock","src":"8426:602:18","statements":[{"nativeSrc":"8481:14:18","nodeType":"YulAssignment","src":"8481:14:18","value":{"arguments":[{"name":"x","nativeSrc":"8490:1:18","nodeType":"YulIdentifier","src":"8490:1:18"},{"name":"y","nativeSrc":"8493:1:18","nodeType":"YulIdentifier","src":"8493:1:18"}],"functionName":{"name":"mul","nativeSrc":"8486:3:18","nodeType":"YulIdentifier","src":"8486:3:18"},"nativeSrc":"8486:9:18","nodeType":"YulFunctionCall","src":"8486:9:18"},"variableNames":[{"name":"z","nativeSrc":"8481:1:18","nodeType":"YulIdentifier","src":"8481:1:18"}]},{"body":{"nativeSrc":"8673:44:18","nodeType":"YulBlock","src":"8673:44:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8698:1:18","nodeType":"YulLiteral","src":"8698:1:18","type":"","value":"0"},{"kind":"number","nativeSrc":"8701:1:18","nodeType":"YulLiteral","src":"8701:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8691:6:18","nodeType":"YulIdentifier","src":"8691:6:18"},"nativeSrc":"8691:12:18","nodeType":"YulFunctionCall","src":"8691:12:18"},"nativeSrc":"8691:12:18","nodeType":"YulExpressionStatement","src":"8691:12:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"denominator","nativeSrc":"8624:11:18","nodeType":"YulIdentifier","src":"8624:11:18"}],"functionName":{"name":"iszero","nativeSrc":"8617:6:18","nodeType":"YulIdentifier","src":"8617:6:18"},"nativeSrc":"8617:19:18","nodeType":"YulFunctionCall","src":"8617:19:18"}],"functionName":{"name":"iszero","nativeSrc":"8610:6:18","nodeType":"YulIdentifier","src":"8610:6:18"},"nativeSrc":"8610:27:18","nodeType":"YulFunctionCall","src":"8610:27:18"},{"arguments":[{"arguments":[{"name":"x","nativeSrc":"8649:1:18","nodeType":"YulIdentifier","src":"8649:1:18"}],"functionName":{"name":"iszero","nativeSrc":"8642:6:18","nodeType":"YulIdentifier","src":"8642:6:18"},"nativeSrc":"8642:9:18","nodeType":"YulFunctionCall","src":"8642:9:18"},{"arguments":[{"arguments":[{"name":"z","nativeSrc":"8660:1:18","nodeType":"YulIdentifier","src":"8660:1:18"},{"name":"x","nativeSrc":"8663:1:18","nodeType":"YulIdentifier","src":"8663:1:18"}],"functionName":{"name":"div","nativeSrc":"8656:3:18","nodeType":"YulIdentifier","src":"8656:3:18"},"nativeSrc":"8656:9:18","nodeType":"YulFunctionCall","src":"8656:9:18"},{"name":"y","nativeSrc":"8667:1:18","nodeType":"YulIdentifier","src":"8667:1:18"}],"functionName":{"name":"eq","nativeSrc":"8653:2:18","nodeType":"YulIdentifier","src":"8653:2:18"},"nativeSrc":"8653:16:18","nodeType":"YulFunctionCall","src":"8653:16:18"}],"functionName":{"name":"or","nativeSrc":"8639:2:18","nodeType":"YulIdentifier","src":"8639:2:18"},"nativeSrc":"8639:31:18","nodeType":"YulFunctionCall","src":"8639:31:18"}],"functionName":{"name":"and","nativeSrc":"8606:3:18","nodeType":"YulIdentifier","src":"8606:3:18"},"nativeSrc":"8606:65:18","nodeType":"YulFunctionCall","src":"8606:65:18"}],"functionName":{"name":"iszero","nativeSrc":"8599:6:18","nodeType":"YulIdentifier","src":"8599:6:18"},"nativeSrc":"8599:73:18","nodeType":"YulFunctionCall","src":"8599:73:18"},"nativeSrc":"8596:121:18","nodeType":"YulIf","src":"8596:121:18"},{"nativeSrc":"8954:64:18","nodeType":"YulAssignment","src":"8954:64:18","value":{"arguments":[{"arguments":[{"arguments":[{"name":"z","nativeSrc":"8977:1:18","nodeType":"YulIdentifier","src":"8977:1:18"}],"functionName":{"name":"iszero","nativeSrc":"8970:6:18","nodeType":"YulIdentifier","src":"8970:6:18"},"nativeSrc":"8970:9:18","nodeType":"YulFunctionCall","src":"8970:9:18"}],"functionName":{"name":"iszero","nativeSrc":"8963:6:18","nodeType":"YulIdentifier","src":"8963:6:18"},"nativeSrc":"8963:17:18","nodeType":"YulFunctionCall","src":"8963:17:18"},{"arguments":[{"arguments":[{"arguments":[{"name":"z","nativeSrc":"8994:1:18","nodeType":"YulIdentifier","src":"8994:1:18"},{"kind":"number","nativeSrc":"8997:1:18","nodeType":"YulLiteral","src":"8997:1:18","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"8990:3:18","nodeType":"YulIdentifier","src":"8990:3:18"},"nativeSrc":"8990:9:18","nodeType":"YulFunctionCall","src":"8990:9:18"},{"name":"denominator","nativeSrc":"9001:11:18","nodeType":"YulIdentifier","src":"9001:11:18"}],"functionName":{"name":"div","nativeSrc":"8986:3:18","nodeType":"YulIdentifier","src":"8986:3:18"},"nativeSrc":"8986:27:18","nodeType":"YulFunctionCall","src":"8986:27:18"},{"kind":"number","nativeSrc":"9015:1:18","nodeType":"YulLiteral","src":"9015:1:18","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8982:3:18","nodeType":"YulIdentifier","src":"8982:3:18"},"nativeSrc":"8982:35:18","nodeType":"YulFunctionCall","src":"8982:35:18"}],"functionName":{"name":"mul","nativeSrc":"8959:3:18","nodeType":"YulIdentifier","src":"8959:3:18"},"nativeSrc":"8959:59:18","nodeType":"YulFunctionCall","src":"8959:59:18"},"variableNames":[{"name":"z","nativeSrc":"8954:1:18","nodeType":"YulIdentifier","src":"8954:1:18"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":26560,"isOffset":false,"isSlot":false,"src":"8624:11:18","valueSize":1},{"declaration":26560,"isOffset":false,"isSlot":false,"src":"9001:11:18","valueSize":1},{"declaration":26556,"isOffset":false,"isSlot":false,"src":"8490:1:18","valueSize":1},{"declaration":26556,"isOffset":false,"isSlot":false,"src":"8649:1:18","valueSize":1},{"declaration":26556,"isOffset":false,"isSlot":false,"src":"8663:1:18","valueSize":1},{"declaration":26558,"isOffset":false,"isSlot":false,"src":"8493:1:18","valueSize":1},{"declaration":26558,"isOffset":false,"isSlot":false,"src":"8667:1:18","valueSize":1},{"declaration":26563,"isOffset":false,"isSlot":false,"src":"8481:1:18","valueSize":1},{"declaration":26563,"isOffset":false,"isSlot":false,"src":"8660:1:18","valueSize":1},{"declaration":26563,"isOffset":false,"isSlot":false,"src":"8954:1:18","valueSize":1},{"declaration":26563,"isOffset":false,"isSlot":false,"src":"8977:1:18","valueSize":1},{"declaration":26563,"isOffset":false,"isSlot":false,"src":"8994:1:18","valueSize":1}],"id":26565,"nodeType":"InlineAssembly","src":"8417:611:18"}]},"implemented":true,"kind":"function","modifiers":[],"name":"mulDivUp","nameLocation":"8291:8:18","parameters":{"id":26561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26556,"mutability":"mutable","name":"x","nameLocation":"8317:1:18","nodeType":"VariableDeclaration","scope":26567,"src":"8309:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26555,"name":"uint256","nodeType":"ElementaryTypeName","src":"8309:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26558,"mutability":"mutable","name":"y","nameLocation":"8336:1:18","nodeType":"VariableDeclaration","scope":26567,"src":"8328:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26557,"name":"uint256","nodeType":"ElementaryTypeName","src":"8328:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26560,"mutability":"mutable","name":"denominator","nameLocation":"8355:11:18","nodeType":"VariableDeclaration","scope":26567,"src":"8347:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26559,"name":"uint256","nodeType":"ElementaryTypeName","src":"8347:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8299:73:18"},"returnParameters":{"id":26564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26563,"mutability":"mutable","name":"z","nameLocation":"8404:1:18","nodeType":"VariableDeclaration","scope":26567,"src":"8396:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26562,"name":"uint256","nodeType":"ElementaryTypeName","src":"8396:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8395:11:18"},"scope":26640,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26580,"nodeType":"FunctionDefinition","src":"9040:2735:18","nodes":[],"body":{"id":26579,"nodeType":"Block","src":"9156:2619:18","nodes":[],"statements":[{"AST":{"nativeSrc":"9175:2594:18","nodeType":"YulBlock","src":"9175:2594:18","statements":[{"cases":[{"body":{"nativeSrc":"9217:254:18","nodeType":"YulBlock","src":"9217:254:18","statements":[{"cases":[{"body":{"nativeSrc":"9267:85:18","nodeType":"YulBlock","src":"9267:85:18","statements":[{"nativeSrc":"9323:11:18","nodeType":"YulAssignment","src":"9323:11:18","value":{"name":"scalar","nativeSrc":"9328:6:18","nodeType":"YulIdentifier","src":"9328:6:18"},"variableNames":[{"name":"z","nativeSrc":"9323:1:18","nodeType":"YulIdentifier","src":"9323:1:18"}]}]},"nativeSrc":"9260:92:18","nodeType":"YulCase","src":"9260:92:18","value":{"kind":"number","nativeSrc":"9265:1:18","nodeType":"YulLiteral","src":"9265:1:18","type":"","value":"0"}},{"body":{"nativeSrc":"9377:80:18","nodeType":"YulBlock","src":"9377:80:18","statements":[{"nativeSrc":"9433:6:18","nodeType":"YulAssignment","src":"9433:6:18","value":{"kind":"number","nativeSrc":"9438:1:18","nodeType":"YulLiteral","src":"9438:1:18","type":"","value":"0"},"variableNames":[{"name":"z","nativeSrc":"9433:1:18","nodeType":"YulIdentifier","src":"9433:1:18"}]}]},"nativeSrc":"9369:88:18","nodeType":"YulCase","src":"9369:88:18","value":"default"}],"expression":{"name":"n","nativeSrc":"9242:1:18","nodeType":"YulIdentifier","src":"9242:1:18"},"nativeSrc":"9235:222:18","nodeType":"YulSwitch","src":"9235:222:18"}]},"nativeSrc":"9210:261:18","nodeType":"YulCase","src":"9210:261:18","value":{"kind":"number","nativeSrc":"9215:1:18","nodeType":"YulLiteral","src":"9215:1:18","type":"","value":"0"}},{"body":{"nativeSrc":"9492:2267:18","nodeType":"YulBlock","src":"9492:2267:18","statements":[{"cases":[{"body":{"nativeSrc":"9550:115:18","nodeType":"YulBlock","src":"9550:115:18","statements":[{"nativeSrc":"9636:11:18","nodeType":"YulAssignment","src":"9636:11:18","value":{"name":"scalar","nativeSrc":"9641:6:18","nodeType":"YulIdentifier","src":"9641:6:18"},"variableNames":[{"name":"z","nativeSrc":"9636:1:18","nodeType":"YulIdentifier","src":"9636:1:18"}]}]},"nativeSrc":"9543:122:18","nodeType":"YulCase","src":"9543:122:18","value":{"kind":"number","nativeSrc":"9548:1:18","nodeType":"YulLiteral","src":"9548:1:18","type":"","value":"0"}},{"body":{"nativeSrc":"9690:104:18","nodeType":"YulBlock","src":"9690:104:18","statements":[{"nativeSrc":"9770:6:18","nodeType":"YulAssignment","src":"9770:6:18","value":{"name":"x","nativeSrc":"9775:1:18","nodeType":"YulIdentifier","src":"9775:1:18"},"variableNames":[{"name":"z","nativeSrc":"9770:1:18","nodeType":"YulIdentifier","src":"9770:1:18"}]}]},"nativeSrc":"9682:112:18","nodeType":"YulCase","src":"9682:112:18","value":"default"}],"expression":{"arguments":[{"name":"n","nativeSrc":"9521:1:18","nodeType":"YulIdentifier","src":"9521:1:18"},{"kind":"number","nativeSrc":"9524:1:18","nodeType":"YulLiteral","src":"9524:1:18","type":"","value":"2"}],"functionName":{"name":"mod","nativeSrc":"9517:3:18","nodeType":"YulIdentifier","src":"9517:3:18"},"nativeSrc":"9517:9:18","nodeType":"YulFunctionCall","src":"9517:9:18"},"nativeSrc":"9510:284:18","nodeType":"YulSwitch","src":"9510:284:18"},{"nativeSrc":"9874:26:18","nodeType":"YulVariableDeclaration","src":"9874:26:18","value":{"arguments":[{"kind":"number","nativeSrc":"9890:1:18","nodeType":"YulLiteral","src":"9890:1:18","type":"","value":"1"},{"name":"scalar","nativeSrc":"9893:6:18","nodeType":"YulIdentifier","src":"9893:6:18"}],"functionName":{"name":"shr","nativeSrc":"9886:3:18","nodeType":"YulIdentifier","src":"9886:3:18"},"nativeSrc":"9886:14:18","nodeType":"YulFunctionCall","src":"9886:14:18"},"variables":[{"name":"half","nativeSrc":"9878:4:18","nodeType":"YulTypedName","src":"9878:4:18","type":""}]},{"body":{"nativeSrc":"10174:1571:18","nodeType":"YulBlock","src":"10174:1571:18","statements":[{"body":{"nativeSrc":"10348:60:18","nodeType":"YulBlock","src":"10348:60:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10381:1:18","nodeType":"YulLiteral","src":"10381:1:18","type":"","value":"0"},{"kind":"number","nativeSrc":"10384:1:18","nodeType":"YulLiteral","src":"10384:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10374:6:18","nodeType":"YulIdentifier","src":"10374:6:18"},"nativeSrc":"10374:12:18","nodeType":"YulFunctionCall","src":"10374:12:18"},"nativeSrc":"10374:12:18","nodeType":"YulExpressionStatement","src":"10374:12:18"}]},"condition":{"arguments":[{"kind":"number","nativeSrc":"10340:3:18","nodeType":"YulLiteral","src":"10340:3:18","type":"","value":"128"},{"name":"x","nativeSrc":"10345:1:18","nodeType":"YulIdentifier","src":"10345:1:18"}],"functionName":{"name":"shr","nativeSrc":"10336:3:18","nodeType":"YulIdentifier","src":"10336:3:18"},"nativeSrc":"10336:11:18","nodeType":"YulFunctionCall","src":"10336:11:18"},"nativeSrc":"10333:75:18","nodeType":"YulIf","src":"10333:75:18"},{"nativeSrc":"10470:19:18","nodeType":"YulVariableDeclaration","src":"10470:19:18","value":{"arguments":[{"name":"x","nativeSrc":"10484:1:18","nodeType":"YulIdentifier","src":"10484:1:18"},{"name":"x","nativeSrc":"10487:1:18","nodeType":"YulIdentifier","src":"10487:1:18"}],"functionName":{"name":"mul","nativeSrc":"10480:3:18","nodeType":"YulIdentifier","src":"10480:3:18"},"nativeSrc":"10480:9:18","nodeType":"YulFunctionCall","src":"10480:9:18"},"variables":[{"name":"xx","nativeSrc":"10474:2:18","nodeType":"YulTypedName","src":"10474:2:18","type":""}]},{"nativeSrc":"10563:28:18","nodeType":"YulVariableDeclaration","src":"10563:28:18","value":{"arguments":[{"name":"xx","nativeSrc":"10582:2:18","nodeType":"YulIdentifier","src":"10582:2:18"},{"name":"half","nativeSrc":"10586:4:18","nodeType":"YulIdentifier","src":"10586:4:18"}],"functionName":{"name":"add","nativeSrc":"10578:3:18","nodeType":"YulIdentifier","src":"10578:3:18"},"nativeSrc":"10578:13:18","nodeType":"YulFunctionCall","src":"10578:13:18"},"variables":[{"name":"xxRound","nativeSrc":"10567:7:18","nodeType":"YulTypedName","src":"10567:7:18","type":""}]},{"body":{"nativeSrc":"10687:60:18","nodeType":"YulBlock","src":"10687:60:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10720:1:18","nodeType":"YulLiteral","src":"10720:1:18","type":"","value":"0"},{"kind":"number","nativeSrc":"10723:1:18","nodeType":"YulLiteral","src":"10723:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10713:6:18","nodeType":"YulIdentifier","src":"10713:6:18"},"nativeSrc":"10713:12:18","nodeType":"YulFunctionCall","src":"10713:12:18"},"nativeSrc":"10713:12:18","nodeType":"YulExpressionStatement","src":"10713:12:18"}]},"condition":{"arguments":[{"name":"xxRound","nativeSrc":"10674:7:18","nodeType":"YulIdentifier","src":"10674:7:18"},{"name":"xx","nativeSrc":"10683:2:18","nodeType":"YulIdentifier","src":"10683:2:18"}],"functionName":{"name":"lt","nativeSrc":"10671:2:18","nodeType":"YulIdentifier","src":"10671:2:18"},"nativeSrc":"10671:15:18","nodeType":"YulFunctionCall","src":"10671:15:18"},"nativeSrc":"10668:79:18","nodeType":"YulIf","src":"10668:79:18"},{"nativeSrc":"10817:25:18","nodeType":"YulAssignment","src":"10817:25:18","value":{"arguments":[{"name":"xxRound","nativeSrc":"10826:7:18","nodeType":"YulIdentifier","src":"10826:7:18"},{"name":"scalar","nativeSrc":"10835:6:18","nodeType":"YulIdentifier","src":"10835:6:18"}],"functionName":{"name":"div","nativeSrc":"10822:3:18","nodeType":"YulIdentifier","src":"10822:3:18"},"nativeSrc":"10822:20:18","nodeType":"YulFunctionCall","src":"10822:20:18"},"variableNames":[{"name":"x","nativeSrc":"10817:1:18","nodeType":"YulIdentifier","src":"10817:1:18"}]},{"body":{"nativeSrc":"10914:813:18","nodeType":"YulBlock","src":"10914:813:18","statements":[{"nativeSrc":"10982:19:18","nodeType":"YulVariableDeclaration","src":"10982:19:18","value":{"arguments":[{"name":"z","nativeSrc":"10996:1:18","nodeType":"YulIdentifier","src":"10996:1:18"},{"name":"x","nativeSrc":"10999:1:18","nodeType":"YulIdentifier","src":"10999:1:18"}],"functionName":{"name":"mul","nativeSrc":"10992:3:18","nodeType":"YulIdentifier","src":"10992:3:18"},"nativeSrc":"10992:9:18","nodeType":"YulFunctionCall","src":"10992:9:18"},"variables":[{"name":"zx","nativeSrc":"10986:2:18","nodeType":"YulTypedName","src":"10986:2:18","type":""}]},{"body":{"nativeSrc":"11104:209:18","nodeType":"YulBlock","src":"11104:209:18","statements":[{"body":{"nativeSrc":"11211:76:18","nodeType":"YulBlock","src":"11211:76:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11252:1:18","nodeType":"YulLiteral","src":"11252:1:18","type":"","value":"0"},{"kind":"number","nativeSrc":"11255:1:18","nodeType":"YulLiteral","src":"11255:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11245:6:18","nodeType":"YulIdentifier","src":"11245:6:18"},"nativeSrc":"11245:12:18","nodeType":"YulFunctionCall","src":"11245:12:18"},"nativeSrc":"11245:12:18","nodeType":"YulExpressionStatement","src":"11245:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"11207:1:18","nodeType":"YulIdentifier","src":"11207:1:18"}],"functionName":{"name":"iszero","nativeSrc":"11200:6:18","nodeType":"YulIdentifier","src":"11200:6:18"},"nativeSrc":"11200:9:18","nodeType":"YulFunctionCall","src":"11200:9:18"}],"functionName":{"name":"iszero","nativeSrc":"11193:6:18","nodeType":"YulIdentifier","src":"11193:6:18"},"nativeSrc":"11193:17:18","nodeType":"YulFunctionCall","src":"11193:17:18"},"nativeSrc":"11190:97:18","nodeType":"YulIf","src":"11190:97:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"zx","nativeSrc":"11092:2:18","nodeType":"YulIdentifier","src":"11092:2:18"},{"name":"x","nativeSrc":"11096:1:18","nodeType":"YulIdentifier","src":"11096:1:18"}],"functionName":{"name":"div","nativeSrc":"11088:3:18","nodeType":"YulIdentifier","src":"11088:3:18"},"nativeSrc":"11088:10:18","nodeType":"YulFunctionCall","src":"11088:10:18"},{"name":"z","nativeSrc":"11100:1:18","nodeType":"YulIdentifier","src":"11100:1:18"}],"functionName":{"name":"eq","nativeSrc":"11085:2:18","nodeType":"YulIdentifier","src":"11085:2:18"},"nativeSrc":"11085:17:18","nodeType":"YulFunctionCall","src":"11085:17:18"}],"functionName":{"name":"iszero","nativeSrc":"11078:6:18","nodeType":"YulIdentifier","src":"11078:6:18"},"nativeSrc":"11078:25:18","nodeType":"YulFunctionCall","src":"11078:25:18"},"nativeSrc":"11075:238:18","nodeType":"YulIf","src":"11075:238:18"},{"nativeSrc":"11395:28:18","nodeType":"YulVariableDeclaration","src":"11395:28:18","value":{"arguments":[{"name":"zx","nativeSrc":"11414:2:18","nodeType":"YulIdentifier","src":"11414:2:18"},{"name":"half","nativeSrc":"11418:4:18","nodeType":"YulIdentifier","src":"11418:4:18"}],"functionName":{"name":"add","nativeSrc":"11410:3:18","nodeType":"YulIdentifier","src":"11410:3:18"},"nativeSrc":"11410:13:18","nodeType":"YulFunctionCall","src":"11410:13:18"},"variables":[{"name":"zxRound","nativeSrc":"11399:7:18","nodeType":"YulTypedName","src":"11399:7:18","type":""}]},{"body":{"nativeSrc":"11527:68:18","nodeType":"YulBlock","src":"11527:68:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11564:1:18","nodeType":"YulLiteral","src":"11564:1:18","type":"","value":"0"},{"kind":"number","nativeSrc":"11567:1:18","nodeType":"YulLiteral","src":"11567:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11557:6:18","nodeType":"YulIdentifier","src":"11557:6:18"},"nativeSrc":"11557:12:18","nodeType":"YulFunctionCall","src":"11557:12:18"},"nativeSrc":"11557:12:18","nodeType":"YulExpressionStatement","src":"11557:12:18"}]},"condition":{"arguments":[{"name":"zxRound","nativeSrc":"11514:7:18","nodeType":"YulIdentifier","src":"11514:7:18"},{"name":"zx","nativeSrc":"11523:2:18","nodeType":"YulIdentifier","src":"11523:2:18"}],"functionName":{"name":"lt","nativeSrc":"11511:2:18","nodeType":"YulIdentifier","src":"11511:2:18"},"nativeSrc":"11511:15:18","nodeType":"YulFunctionCall","src":"11511:15:18"},"nativeSrc":"11508:87:18","nodeType":"YulIf","src":"11508:87:18"},{"nativeSrc":"11680:25:18","nodeType":"YulAssignment","src":"11680:25:18","value":{"arguments":[{"name":"zxRound","nativeSrc":"11689:7:18","nodeType":"YulIdentifier","src":"11689:7:18"},{"name":"scalar","nativeSrc":"11698:6:18","nodeType":"YulIdentifier","src":"11698:6:18"}],"functionName":{"name":"div","nativeSrc":"11685:3:18","nodeType":"YulIdentifier","src":"11685:3:18"},"nativeSrc":"11685:20:18","nodeType":"YulFunctionCall","src":"11685:20:18"},"variableNames":[{"name":"z","nativeSrc":"11680:1:18","nodeType":"YulIdentifier","src":"11680:1:18"}]}]},"condition":{"arguments":[{"name":"n","nativeSrc":"10908:1:18","nodeType":"YulIdentifier","src":"10908:1:18"},{"kind":"number","nativeSrc":"10911:1:18","nodeType":"YulLiteral","src":"10911:1:18","type":"","value":"2"}],"functionName":{"name":"mod","nativeSrc":"10904:3:18","nodeType":"YulIdentifier","src":"10904:3:18"},"nativeSrc":"10904:9:18","nodeType":"YulFunctionCall","src":"10904:9:18"},"nativeSrc":"10901:826:18","nodeType":"YulIf","src":"10901:826:18"}]},"condition":{"name":"n","nativeSrc":"10047:1:18","nodeType":"YulIdentifier","src":"10047:1:18"},"nativeSrc":"9918:1827:18","nodeType":"YulForLoop","post":{"nativeSrc":"10049:124:18","nodeType":"YulBlock","src":"10049:124:18","statements":[{"nativeSrc":"10141:14:18","nodeType":"YulAssignment","src":"10141:14:18","value":{"arguments":[{"kind":"number","nativeSrc":"10150:1:18","nodeType":"YulLiteral","src":"10150:1:18","type":"","value":"1"},{"name":"n","nativeSrc":"10153:1:18","nodeType":"YulIdentifier","src":"10153:1:18"}],"functionName":{"name":"shr","nativeSrc":"10146:3:18","nodeType":"YulIdentifier","src":"10146:3:18"},"nativeSrc":"10146:9:18","nodeType":"YulFunctionCall","src":"10146:9:18"},"variableNames":[{"name":"n","nativeSrc":"10141:1:18","nodeType":"YulIdentifier","src":"10141:1:18"}]}]},"pre":{"nativeSrc":"9922:124:18","nodeType":"YulBlock","src":"9922:124:18","statements":[{"nativeSrc":"10014:14:18","nodeType":"YulAssignment","src":"10014:14:18","value":{"arguments":[{"kind":"number","nativeSrc":"10023:1:18","nodeType":"YulLiteral","src":"10023:1:18","type":"","value":"1"},{"name":"n","nativeSrc":"10026:1:18","nodeType":"YulIdentifier","src":"10026:1:18"}],"functionName":{"name":"shr","nativeSrc":"10019:3:18","nodeType":"YulIdentifier","src":"10019:3:18"},"nativeSrc":"10019:9:18","nodeType":"YulFunctionCall","src":"10019:9:18"},"variableNames":[{"name":"n","nativeSrc":"10014:1:18","nodeType":"YulIdentifier","src":"10014:1:18"}]}]},"src":"9918:1827:18"}]},"nativeSrc":"9484:2275:18","nodeType":"YulCase","src":"9484:2275:18","value":"default"}],"expression":{"name":"x","nativeSrc":"9196:1:18","nodeType":"YulIdentifier","src":"9196:1:18"},"nativeSrc":"9189:2570:18","nodeType":"YulSwitch","src":"9189:2570:18"}]},"evmVersion":"paris","externalReferences":[{"declaration":26571,"isOffset":false,"isSlot":false,"src":"10014:1:18","valueSize":1},{"declaration":26571,"isOffset":false,"isSlot":false,"src":"10026:1:18","valueSize":1},{"declaration":26571,"isOffset":false,"isSlot":false,"src":"10047:1:18","valueSize":1},{"declaration":26571,"isOffset":false,"isSlot":false,"src":"10141:1:18","valueSize":1},{"declaration":26571,"isOffset":false,"isSlot":false,"src":"10153:1:18","valueSize":1},{"declaration":26571,"isOffset":false,"isSlot":false,"src":"10908:1:18","valueSize":1},{"declaration":26571,"isOffset":false,"isSlot":false,"src":"9242:1:18","valueSize":1},{"declaration":26571,"isOffset":false,"isSlot":false,"src":"9521:1:18","valueSize":1},{"declaration":26573,"isOffset":false,"isSlot":false,"src":"10835:6:18","valueSize":1},{"declaration":26573,"isOffset":false,"isSlot":false,"src":"11698:6:18","valueSize":1},{"declaration":26573,"isOffset":false,"isSlot":false,"src":"9328:6:18","valueSize":1},{"declaration":26573,"isOffset":false,"isSlot":false,"src":"9641:6:18","valueSize":1},{"declaration":26573,"isOffset":false,"isSlot":false,"src":"9893:6:18","valueSize":1},{"declaration":26569,"isOffset":false,"isSlot":false,"src":"10345:1:18","valueSize":1},{"declaration":26569,"isOffset":false,"isSlot":false,"src":"10484:1:18","valueSize":1},{"declaration":26569,"isOffset":false,"isSlot":false,"src":"10487:1:18","valueSize":1},{"declaration":26569,"isOffset":false,"isSlot":false,"src":"10817:1:18","valueSize":1},{"declaration":26569,"isOffset":false,"isSlot":false,"src":"10999:1:18","valueSize":1},{"declaration":26569,"isOffset":false,"isSlot":false,"src":"11096:1:18","valueSize":1},{"declaration":26569,"isOffset":false,"isSlot":false,"src":"11207:1:18","valueSize":1},{"declaration":26569,"isOffset":false,"isSlot":false,"src":"9196:1:18","valueSize":1},{"declaration":26569,"isOffset":false,"isSlot":false,"src":"9775:1:18","valueSize":1},{"declaration":26576,"isOffset":false,"isSlot":false,"src":"10996:1:18","valueSize":1},{"declaration":26576,"isOffset":false,"isSlot":false,"src":"11100:1:18","valueSize":1},{"declaration":26576,"isOffset":false,"isSlot":false,"src":"11680:1:18","valueSize":1},{"declaration":26576,"isOffset":false,"isSlot":false,"src":"9323:1:18","valueSize":1},{"declaration":26576,"isOffset":false,"isSlot":false,"src":"9433:1:18","valueSize":1},{"declaration":26576,"isOffset":false,"isSlot":false,"src":"9636:1:18","valueSize":1},{"declaration":26576,"isOffset":false,"isSlot":false,"src":"9770:1:18","valueSize":1}],"id":26578,"nodeType":"InlineAssembly","src":"9166:2603:18"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rpow","nameLocation":"9049:4:18","parameters":{"id":26574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26569,"mutability":"mutable","name":"x","nameLocation":"9071:1:18","nodeType":"VariableDeclaration","scope":26580,"src":"9063:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26568,"name":"uint256","nodeType":"ElementaryTypeName","src":"9063:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26571,"mutability":"mutable","name":"n","nameLocation":"9090:1:18","nodeType":"VariableDeclaration","scope":26580,"src":"9082:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26570,"name":"uint256","nodeType":"ElementaryTypeName","src":"9082:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26573,"mutability":"mutable","name":"scalar","nameLocation":"9109:6:18","nodeType":"VariableDeclaration","scope":26580,"src":"9101:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26572,"name":"uint256","nodeType":"ElementaryTypeName","src":"9101:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9053:68:18"},"returnParameters":{"id":26577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26576,"mutability":"mutable","name":"z","nameLocation":"9153:1:18","nodeType":"VariableDeclaration","scope":26580,"src":"9145:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26575,"name":"uint256","nodeType":"ElementaryTypeName","src":"9145:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9144:11:18"},"scope":26640,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26589,"nodeType":"FunctionDefinition","src":"11969:3353:18","nodes":[],"body":{"id":26588,"nodeType":"Block","src":"12028:3294:18","nodes":[],"statements":[{"AST":{"nativeSrc":"12047:3269:18","nodeType":"YulBlock","src":"12047:3269:18","statements":[{"nativeSrc":"12061:10:18","nodeType":"YulVariableDeclaration","src":"12061:10:18","value":{"name":"x","nativeSrc":"12070:1:18","nodeType":"YulIdentifier","src":"12070:1:18"},"variables":[{"name":"y","nativeSrc":"12065:1:18","nodeType":"YulTypedName","src":"12065:1:18","type":""}]},{"nativeSrc":"12151:8:18","nodeType":"YulAssignment","src":"12151:8:18","value":{"kind":"number","nativeSrc":"12156:3:18","nodeType":"YulLiteral","src":"12156:3:18","type":"","value":"181"},"variableNames":[{"name":"z","nativeSrc":"12151:1:18","nodeType":"YulIdentifier","src":"12151:1:18"}]},{"body":{"nativeSrc":"12645:80:18","nodeType":"YulBlock","src":"12645:80:18","statements":[{"nativeSrc":"12663:16:18","nodeType":"YulAssignment","src":"12663:16:18","value":{"arguments":[{"kind":"number","nativeSrc":"12672:3:18","nodeType":"YulLiteral","src":"12672:3:18","type":"","value":"128"},{"name":"y","nativeSrc":"12677:1:18","nodeType":"YulIdentifier","src":"12677:1:18"}],"functionName":{"name":"shr","nativeSrc":"12668:3:18","nodeType":"YulIdentifier","src":"12668:3:18"},"nativeSrc":"12668:11:18","nodeType":"YulFunctionCall","src":"12668:11:18"},"variableNames":[{"name":"y","nativeSrc":"12663:1:18","nodeType":"YulIdentifier","src":"12663:1:18"}]},{"nativeSrc":"12696:15:18","nodeType":"YulAssignment","src":"12696:15:18","value":{"arguments":[{"kind":"number","nativeSrc":"12705:2:18","nodeType":"YulLiteral","src":"12705:2:18","type":"","value":"64"},{"name":"z","nativeSrc":"12709:1:18","nodeType":"YulIdentifier","src":"12709:1:18"}],"functionName":{"name":"shl","nativeSrc":"12701:3:18","nodeType":"YulIdentifier","src":"12701:3:18"},"nativeSrc":"12701:10:18","nodeType":"YulFunctionCall","src":"12701:10:18"},"variableNames":[{"name":"z","nativeSrc":"12696:1:18","nodeType":"YulIdentifier","src":"12696:1:18"}]}]},"condition":{"arguments":[{"arguments":[{"name":"y","nativeSrc":"12602:1:18","nodeType":"YulIdentifier","src":"12602:1:18"},{"kind":"number","nativeSrc":"12605:37:18","nodeType":"YulLiteral","src":"12605:37:18","type":"","value":"0x10000000000000000000000000000000000"}],"functionName":{"name":"lt","nativeSrc":"12599:2:18","nodeType":"YulIdentifier","src":"12599:2:18"},"nativeSrc":"12599:44:18","nodeType":"YulFunctionCall","src":"12599:44:18"}],"functionName":{"name":"iszero","nativeSrc":"12592:6:18","nodeType":"YulIdentifier","src":"12592:6:18"},"nativeSrc":"12592:52:18","nodeType":"YulFunctionCall","src":"12592:52:18"},"nativeSrc":"12589:136:18","nodeType":"YulIf","src":"12589:136:18"},{"body":{"nativeSrc":"12778:79:18","nodeType":"YulBlock","src":"12778:79:18","statements":[{"nativeSrc":"12796:15:18","nodeType":"YulAssignment","src":"12796:15:18","value":{"arguments":[{"kind":"number","nativeSrc":"12805:2:18","nodeType":"YulLiteral","src":"12805:2:18","type":"","value":"64"},{"name":"y","nativeSrc":"12809:1:18","nodeType":"YulIdentifier","src":"12809:1:18"}],"functionName":{"name":"shr","nativeSrc":"12801:3:18","nodeType":"YulIdentifier","src":"12801:3:18"},"nativeSrc":"12801:10:18","nodeType":"YulFunctionCall","src":"12801:10:18"},"variableNames":[{"name":"y","nativeSrc":"12796:1:18","nodeType":"YulIdentifier","src":"12796:1:18"}]},{"nativeSrc":"12828:15:18","nodeType":"YulAssignment","src":"12828:15:18","value":{"arguments":[{"kind":"number","nativeSrc":"12837:2:18","nodeType":"YulLiteral","src":"12837:2:18","type":"","value":"32"},{"name":"z","nativeSrc":"12841:1:18","nodeType":"YulIdentifier","src":"12841:1:18"}],"functionName":{"name":"shl","nativeSrc":"12833:3:18","nodeType":"YulIdentifier","src":"12833:3:18"},"nativeSrc":"12833:10:18","nodeType":"YulFunctionCall","src":"12833:10:18"},"variableNames":[{"name":"z","nativeSrc":"12828:1:18","nodeType":"YulIdentifier","src":"12828:1:18"}]}]},"condition":{"arguments":[{"arguments":[{"name":"y","nativeSrc":"12751:1:18","nodeType":"YulIdentifier","src":"12751:1:18"},{"kind":"number","nativeSrc":"12754:21:18","nodeType":"YulLiteral","src":"12754:21:18","type":"","value":"0x1000000000000000000"}],"functionName":{"name":"lt","nativeSrc":"12748:2:18","nodeType":"YulIdentifier","src":"12748:2:18"},"nativeSrc":"12748:28:18","nodeType":"YulFunctionCall","src":"12748:28:18"}],"functionName":{"name":"iszero","nativeSrc":"12741:6:18","nodeType":"YulIdentifier","src":"12741:6:18"},"nativeSrc":"12741:36:18","nodeType":"YulFunctionCall","src":"12741:36:18"},"nativeSrc":"12738:119:18","nodeType":"YulIf","src":"12738:119:18"},{"body":{"nativeSrc":"12902:79:18","nodeType":"YulBlock","src":"12902:79:18","statements":[{"nativeSrc":"12920:15:18","nodeType":"YulAssignment","src":"12920:15:18","value":{"arguments":[{"kind":"number","nativeSrc":"12929:2:18","nodeType":"YulLiteral","src":"12929:2:18","type":"","value":"32"},{"name":"y","nativeSrc":"12933:1:18","nodeType":"YulIdentifier","src":"12933:1:18"}],"functionName":{"name":"shr","nativeSrc":"12925:3:18","nodeType":"YulIdentifier","src":"12925:3:18"},"nativeSrc":"12925:10:18","nodeType":"YulFunctionCall","src":"12925:10:18"},"variableNames":[{"name":"y","nativeSrc":"12920:1:18","nodeType":"YulIdentifier","src":"12920:1:18"}]},{"nativeSrc":"12952:15:18","nodeType":"YulAssignment","src":"12952:15:18","value":{"arguments":[{"kind":"number","nativeSrc":"12961:2:18","nodeType":"YulLiteral","src":"12961:2:18","type":"","value":"16"},{"name":"z","nativeSrc":"12965:1:18","nodeType":"YulIdentifier","src":"12965:1:18"}],"functionName":{"name":"shl","nativeSrc":"12957:3:18","nodeType":"YulIdentifier","src":"12957:3:18"},"nativeSrc":"12957:10:18","nodeType":"YulFunctionCall","src":"12957:10:18"},"variableNames":[{"name":"z","nativeSrc":"12952:1:18","nodeType":"YulIdentifier","src":"12952:1:18"}]}]},"condition":{"arguments":[{"arguments":[{"name":"y","nativeSrc":"12883:1:18","nodeType":"YulIdentifier","src":"12883:1:18"},{"kind":"number","nativeSrc":"12886:13:18","nodeType":"YulLiteral","src":"12886:13:18","type":"","value":"0x10000000000"}],"functionName":{"name":"lt","nativeSrc":"12880:2:18","nodeType":"YulIdentifier","src":"12880:2:18"},"nativeSrc":"12880:20:18","nodeType":"YulFunctionCall","src":"12880:20:18"}],"functionName":{"name":"iszero","nativeSrc":"12873:6:18","nodeType":"YulIdentifier","src":"12873:6:18"},"nativeSrc":"12873:28:18","nodeType":"YulFunctionCall","src":"12873:28:18"},"nativeSrc":"12870:111:18","nodeType":"YulIf","src":"12870:111:18"},{"body":{"nativeSrc":"13022:78:18","nodeType":"YulBlock","src":"13022:78:18","statements":[{"nativeSrc":"13040:15:18","nodeType":"YulAssignment","src":"13040:15:18","value":{"arguments":[{"kind":"number","nativeSrc":"13049:2:18","nodeType":"YulLiteral","src":"13049:2:18","type":"","value":"16"},{"name":"y","nativeSrc":"13053:1:18","nodeType":"YulIdentifier","src":"13053:1:18"}],"functionName":{"name":"shr","nativeSrc":"13045:3:18","nodeType":"YulIdentifier","src":"13045:3:18"},"nativeSrc":"13045:10:18","nodeType":"YulFunctionCall","src":"13045:10:18"},"variableNames":[{"name":"y","nativeSrc":"13040:1:18","nodeType":"YulIdentifier","src":"13040:1:18"}]},{"nativeSrc":"13072:14:18","nodeType":"YulAssignment","src":"13072:14:18","value":{"arguments":[{"kind":"number","nativeSrc":"13081:1:18","nodeType":"YulLiteral","src":"13081:1:18","type":"","value":"8"},{"name":"z","nativeSrc":"13084:1:18","nodeType":"YulIdentifier","src":"13084:1:18"}],"functionName":{"name":"shl","nativeSrc":"13077:3:18","nodeType":"YulIdentifier","src":"13077:3:18"},"nativeSrc":"13077:9:18","nodeType":"YulFunctionCall","src":"13077:9:18"},"variableNames":[{"name":"z","nativeSrc":"13072:1:18","nodeType":"YulIdentifier","src":"13072:1:18"}]}]},"condition":{"arguments":[{"arguments":[{"name":"y","nativeSrc":"13007:1:18","nodeType":"YulIdentifier","src":"13007:1:18"},{"kind":"number","nativeSrc":"13010:9:18","nodeType":"YulLiteral","src":"13010:9:18","type":"","value":"0x1000000"}],"functionName":{"name":"lt","nativeSrc":"13004:2:18","nodeType":"YulIdentifier","src":"13004:2:18"},"nativeSrc":"13004:16:18","nodeType":"YulFunctionCall","src":"13004:16:18"}],"functionName":{"name":"iszero","nativeSrc":"12997:6:18","nodeType":"YulIdentifier","src":"12997:6:18"},"nativeSrc":"12997:24:18","nodeType":"YulFunctionCall","src":"12997:24:18"},"nativeSrc":"12994:106:18","nodeType":"YulIf","src":"12994:106:18"},{"nativeSrc":"14290:35:18","nodeType":"YulAssignment","src":"14290:35:18","value":{"arguments":[{"kind":"number","nativeSrc":"14299:2:18","nodeType":"YulLiteral","src":"14299:2:18","type":"","value":"18"},{"arguments":[{"name":"z","nativeSrc":"14307:1:18","nodeType":"YulIdentifier","src":"14307:1:18"},{"arguments":[{"name":"y","nativeSrc":"14314:1:18","nodeType":"YulIdentifier","src":"14314:1:18"},{"kind":"number","nativeSrc":"14317:5:18","nodeType":"YulLiteral","src":"14317:5:18","type":"","value":"65536"}],"functionName":{"name":"add","nativeSrc":"14310:3:18","nodeType":"YulIdentifier","src":"14310:3:18"},"nativeSrc":"14310:13:18","nodeType":"YulFunctionCall","src":"14310:13:18"}],"functionName":{"name":"mul","nativeSrc":"14303:3:18","nodeType":"YulIdentifier","src":"14303:3:18"},"nativeSrc":"14303:21:18","nodeType":"YulFunctionCall","src":"14303:21:18"}],"functionName":{"name":"shr","nativeSrc":"14295:3:18","nodeType":"YulIdentifier","src":"14295:3:18"},"nativeSrc":"14295:30:18","nodeType":"YulFunctionCall","src":"14295:30:18"},"variableNames":[{"name":"z","nativeSrc":"14290:1:18","nodeType":"YulIdentifier","src":"14290:1:18"}]},{"nativeSrc":"14486:30:18","nodeType":"YulAssignment","src":"14486:30:18","value":{"arguments":[{"kind":"number","nativeSrc":"14495:1:18","nodeType":"YulLiteral","src":"14495:1:18","type":"","value":"1"},{"arguments":[{"name":"z","nativeSrc":"14502:1:18","nodeType":"YulIdentifier","src":"14502:1:18"},{"arguments":[{"name":"x","nativeSrc":"14509:1:18","nodeType":"YulIdentifier","src":"14509:1:18"},{"name":"z","nativeSrc":"14512:1:18","nodeType":"YulIdentifier","src":"14512:1:18"}],"functionName":{"name":"div","nativeSrc":"14505:3:18","nodeType":"YulIdentifier","src":"14505:3:18"},"nativeSrc":"14505:9:18","nodeType":"YulFunctionCall","src":"14505:9:18"}],"functionName":{"name":"add","nativeSrc":"14498:3:18","nodeType":"YulIdentifier","src":"14498:3:18"},"nativeSrc":"14498:17:18","nodeType":"YulFunctionCall","src":"14498:17:18"}],"functionName":{"name":"shr","nativeSrc":"14491:3:18","nodeType":"YulIdentifier","src":"14491:3:18"},"nativeSrc":"14491:25:18","nodeType":"YulFunctionCall","src":"14491:25:18"},"variableNames":[{"name":"z","nativeSrc":"14486:1:18","nodeType":"YulIdentifier","src":"14486:1:18"}]},{"nativeSrc":"14529:30:18","nodeType":"YulAssignment","src":"14529:30:18","value":{"arguments":[{"kind":"number","nativeSrc":"14538:1:18","nodeType":"YulLiteral","src":"14538:1:18","type":"","value":"1"},{"arguments":[{"name":"z","nativeSrc":"14545:1:18","nodeType":"YulIdentifier","src":"14545:1:18"},{"arguments":[{"name":"x","nativeSrc":"14552:1:18","nodeType":"YulIdentifier","src":"14552:1:18"},{"name":"z","nativeSrc":"14555:1:18","nodeType":"YulIdentifier","src":"14555:1:18"}],"functionName":{"name":"div","nativeSrc":"14548:3:18","nodeType":"YulIdentifier","src":"14548:3:18"},"nativeSrc":"14548:9:18","nodeType":"YulFunctionCall","src":"14548:9:18"}],"functionName":{"name":"add","nativeSrc":"14541:3:18","nodeType":"YulIdentifier","src":"14541:3:18"},"nativeSrc":"14541:17:18","nodeType":"YulFunctionCall","src":"14541:17:18"}],"functionName":{"name":"shr","nativeSrc":"14534:3:18","nodeType":"YulIdentifier","src":"14534:3:18"},"nativeSrc":"14534:25:18","nodeType":"YulFunctionCall","src":"14534:25:18"},"variableNames":[{"name":"z","nativeSrc":"14529:1:18","nodeType":"YulIdentifier","src":"14529:1:18"}]},{"nativeSrc":"14572:30:18","nodeType":"YulAssignment","src":"14572:30:18","value":{"arguments":[{"kind":"number","nativeSrc":"14581:1:18","nodeType":"YulLiteral","src":"14581:1:18","type":"","value":"1"},{"arguments":[{"name":"z","nativeSrc":"14588:1:18","nodeType":"YulIdentifier","src":"14588:1:18"},{"arguments":[{"name":"x","nativeSrc":"14595:1:18","nodeType":"YulIdentifier","src":"14595:1:18"},{"name":"z","nativeSrc":"14598:1:18","nodeType":"YulIdentifier","src":"14598:1:18"}],"functionName":{"name":"div","nativeSrc":"14591:3:18","nodeType":"YulIdentifier","src":"14591:3:18"},"nativeSrc":"14591:9:18","nodeType":"YulFunctionCall","src":"14591:9:18"}],"functionName":{"name":"add","nativeSrc":"14584:3:18","nodeType":"YulIdentifier","src":"14584:3:18"},"nativeSrc":"14584:17:18","nodeType":"YulFunctionCall","src":"14584:17:18"}],"functionName":{"name":"shr","nativeSrc":"14577:3:18","nodeType":"YulIdentifier","src":"14577:3:18"},"nativeSrc":"14577:25:18","nodeType":"YulFunctionCall","src":"14577:25:18"},"variableNames":[{"name":"z","nativeSrc":"14572:1:18","nodeType":"YulIdentifier","src":"14572:1:18"}]},{"nativeSrc":"14615:30:18","nodeType":"YulAssignment","src":"14615:30:18","value":{"arguments":[{"kind":"number","nativeSrc":"14624:1:18","nodeType":"YulLiteral","src":"14624:1:18","type":"","value":"1"},{"arguments":[{"name":"z","nativeSrc":"14631:1:18","nodeType":"YulIdentifier","src":"14631:1:18"},{"arguments":[{"name":"x","nativeSrc":"14638:1:18","nodeType":"YulIdentifier","src":"14638:1:18"},{"name":"z","nativeSrc":"14641:1:18","nodeType":"YulIdentifier","src":"14641:1:18"}],"functionName":{"name":"div","nativeSrc":"14634:3:18","nodeType":"YulIdentifier","src":"14634:3:18"},"nativeSrc":"14634:9:18","nodeType":"YulFunctionCall","src":"14634:9:18"}],"functionName":{"name":"add","nativeSrc":"14627:3:18","nodeType":"YulIdentifier","src":"14627:3:18"},"nativeSrc":"14627:17:18","nodeType":"YulFunctionCall","src":"14627:17:18"}],"functionName":{"name":"shr","nativeSrc":"14620:3:18","nodeType":"YulIdentifier","src":"14620:3:18"},"nativeSrc":"14620:25:18","nodeType":"YulFunctionCall","src":"14620:25:18"},"variableNames":[{"name":"z","nativeSrc":"14615:1:18","nodeType":"YulIdentifier","src":"14615:1:18"}]},{"nativeSrc":"14658:30:18","nodeType":"YulAssignment","src":"14658:30:18","value":{"arguments":[{"kind":"number","nativeSrc":"14667:1:18","nodeType":"YulLiteral","src":"14667:1:18","type":"","value":"1"},{"arguments":[{"name":"z","nativeSrc":"14674:1:18","nodeType":"YulIdentifier","src":"14674:1:18"},{"arguments":[{"name":"x","nativeSrc":"14681:1:18","nodeType":"YulIdentifier","src":"14681:1:18"},{"name":"z","nativeSrc":"14684:1:18","nodeType":"YulIdentifier","src":"14684:1:18"}],"functionName":{"name":"div","nativeSrc":"14677:3:18","nodeType":"YulIdentifier","src":"14677:3:18"},"nativeSrc":"14677:9:18","nodeType":"YulFunctionCall","src":"14677:9:18"}],"functionName":{"name":"add","nativeSrc":"14670:3:18","nodeType":"YulIdentifier","src":"14670:3:18"},"nativeSrc":"14670:17:18","nodeType":"YulFunctionCall","src":"14670:17:18"}],"functionName":{"name":"shr","nativeSrc":"14663:3:18","nodeType":"YulIdentifier","src":"14663:3:18"},"nativeSrc":"14663:25:18","nodeType":"YulFunctionCall","src":"14663:25:18"},"variableNames":[{"name":"z","nativeSrc":"14658:1:18","nodeType":"YulIdentifier","src":"14658:1:18"}]},{"nativeSrc":"14701:30:18","nodeType":"YulAssignment","src":"14701:30:18","value":{"arguments":[{"kind":"number","nativeSrc":"14710:1:18","nodeType":"YulLiteral","src":"14710:1:18","type":"","value":"1"},{"arguments":[{"name":"z","nativeSrc":"14717:1:18","nodeType":"YulIdentifier","src":"14717:1:18"},{"arguments":[{"name":"x","nativeSrc":"14724:1:18","nodeType":"YulIdentifier","src":"14724:1:18"},{"name":"z","nativeSrc":"14727:1:18","nodeType":"YulIdentifier","src":"14727:1:18"}],"functionName":{"name":"div","nativeSrc":"14720:3:18","nodeType":"YulIdentifier","src":"14720:3:18"},"nativeSrc":"14720:9:18","nodeType":"YulFunctionCall","src":"14720:9:18"}],"functionName":{"name":"add","nativeSrc":"14713:3:18","nodeType":"YulIdentifier","src":"14713:3:18"},"nativeSrc":"14713:17:18","nodeType":"YulFunctionCall","src":"14713:17:18"}],"functionName":{"name":"shr","nativeSrc":"14706:3:18","nodeType":"YulIdentifier","src":"14706:3:18"},"nativeSrc":"14706:25:18","nodeType":"YulFunctionCall","src":"14706:25:18"},"variableNames":[{"name":"z","nativeSrc":"14701:1:18","nodeType":"YulIdentifier","src":"14701:1:18"}]},{"nativeSrc":"14744:30:18","nodeType":"YulAssignment","src":"14744:30:18","value":{"arguments":[{"kind":"number","nativeSrc":"14753:1:18","nodeType":"YulLiteral","src":"14753:1:18","type":"","value":"1"},{"arguments":[{"name":"z","nativeSrc":"14760:1:18","nodeType":"YulIdentifier","src":"14760:1:18"},{"arguments":[{"name":"x","nativeSrc":"14767:1:18","nodeType":"YulIdentifier","src":"14767:1:18"},{"name":"z","nativeSrc":"14770:1:18","nodeType":"YulIdentifier","src":"14770:1:18"}],"functionName":{"name":"div","nativeSrc":"14763:3:18","nodeType":"YulIdentifier","src":"14763:3:18"},"nativeSrc":"14763:9:18","nodeType":"YulFunctionCall","src":"14763:9:18"}],"functionName":{"name":"add","nativeSrc":"14756:3:18","nodeType":"YulIdentifier","src":"14756:3:18"},"nativeSrc":"14756:17:18","nodeType":"YulFunctionCall","src":"14756:17:18"}],"functionName":{"name":"shr","nativeSrc":"14749:3:18","nodeType":"YulIdentifier","src":"14749:3:18"},"nativeSrc":"14749:25:18","nodeType":"YulFunctionCall","src":"14749:25:18"},"variableNames":[{"name":"z","nativeSrc":"14744:1:18","nodeType":"YulIdentifier","src":"14744:1:18"}]},{"nativeSrc":"15277:29:18","nodeType":"YulAssignment","src":"15277:29:18","value":{"arguments":[{"name":"z","nativeSrc":"15286:1:18","nodeType":"YulIdentifier","src":"15286:1:18"},{"arguments":[{"arguments":[{"name":"x","nativeSrc":"15296:1:18","nodeType":"YulIdentifier","src":"15296:1:18"},{"name":"z","nativeSrc":"15299:1:18","nodeType":"YulIdentifier","src":"15299:1:18"}],"functionName":{"name":"div","nativeSrc":"15292:3:18","nodeType":"YulIdentifier","src":"15292:3:18"},"nativeSrc":"15292:9:18","nodeType":"YulFunctionCall","src":"15292:9:18"},{"name":"z","nativeSrc":"15303:1:18","nodeType":"YulIdentifier","src":"15303:1:18"}],"functionName":{"name":"lt","nativeSrc":"15289:2:18","nodeType":"YulIdentifier","src":"15289:2:18"},"nativeSrc":"15289:16:18","nodeType":"YulFunctionCall","src":"15289:16:18"}],"functionName":{"name":"sub","nativeSrc":"15282:3:18","nodeType":"YulIdentifier","src":"15282:3:18"},"nativeSrc":"15282:24:18","nodeType":"YulFunctionCall","src":"15282:24:18"},"variableNames":[{"name":"z","nativeSrc":"15277:1:18","nodeType":"YulIdentifier","src":"15277:1:18"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":26582,"isOffset":false,"isSlot":false,"src":"12070:1:18","valueSize":1},{"declaration":26582,"isOffset":false,"isSlot":false,"src":"14509:1:18","valueSize":1},{"declaration":26582,"isOffset":false,"isSlot":false,"src":"14552:1:18","valueSize":1},{"declaration":26582,"isOffset":false,"isSlot":false,"src":"14595:1:18","valueSize":1},{"declaration":26582,"isOffset":false,"isSlot":false,"src":"14638:1:18","valueSize":1},{"declaration":26582,"isOffset":false,"isSlot":false,"src":"14681:1:18","valueSize":1},{"declaration":26582,"isOffset":false,"isSlot":false,"src":"14724:1:18","valueSize":1},{"declaration":26582,"isOffset":false,"isSlot":false,"src":"14767:1:18","valueSize":1},{"declaration":26582,"isOffset":false,"isSlot":false,"src":"15296:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"12151:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"12696:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"12709:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"12828:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"12841:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"12952:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"12965:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"13072:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"13084:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14290:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14307:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14486:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14502:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14512:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14529:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14545:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14555:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14572:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14588:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14598:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14615:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14631:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14641:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14658:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14674:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14684:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14701:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14717:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14727:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14744:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14760:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"14770:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"15277:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"15286:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"15299:1:18","valueSize":1},{"declaration":26585,"isOffset":false,"isSlot":false,"src":"15303:1:18","valueSize":1}],"id":26587,"nodeType":"InlineAssembly","src":"12038:3278:18"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"11978:4:18","parameters":{"id":26583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26582,"mutability":"mutable","name":"x","nameLocation":"11991:1:18","nodeType":"VariableDeclaration","scope":26589,"src":"11983:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26581,"name":"uint256","nodeType":"ElementaryTypeName","src":"11983:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11982:11:18"},"returnParameters":{"id":26586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26585,"mutability":"mutable","name":"z","nameLocation":"12025:1:18","nodeType":"VariableDeclaration","scope":26589,"src":"12017:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26584,"name":"uint256","nodeType":"ElementaryTypeName","src":"12017:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12016:11:18"},"scope":26640,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26605,"nodeType":"FunctionDefinition","src":"15328:575:18","nodes":[],"body":{"id":26604,"nodeType":"Block","src":"15387:516:18","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26597,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26591,"src":"15405:1:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":26598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15409:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15405:5:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554e444546494e4544","id":26600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15412:11:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_b70f99725f613142a957aa77c3aedce39bd858a4e6387f20e61acd49274b091c","typeString":"literal_string \"UNDEFINED\""},"value":"UNDEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b70f99725f613142a957aa77c3aedce39bd858a4e6387f20e61acd49274b091c","typeString":"literal_string \"UNDEFINED\""}],"id":26596,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15397:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15397:27:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26602,"nodeType":"ExpressionStatement","src":"15397:27:18"},{"AST":{"nativeSrc":"15444:453:18","nodeType":"YulBlock","src":"15444:453:18","statements":[{"nativeSrc":"15458:54:18","nodeType":"YulAssignment","src":"15458:54:18","value":{"arguments":[{"kind":"number","nativeSrc":"15467:1:18","nodeType":"YulLiteral","src":"15467:1:18","type":"","value":"7"},{"arguments":[{"kind":"number","nativeSrc":"15473:34:18","nodeType":"YulLiteral","src":"15473:34:18","type":"","value":"0xffffffffffffffffffffffffffffffff"},{"name":"x","nativeSrc":"15509:1:18","nodeType":"YulIdentifier","src":"15509:1:18"}],"functionName":{"name":"lt","nativeSrc":"15470:2:18","nodeType":"YulIdentifier","src":"15470:2:18"},"nativeSrc":"15470:41:18","nodeType":"YulFunctionCall","src":"15470:41:18"}],"functionName":{"name":"shl","nativeSrc":"15463:3:18","nodeType":"YulIdentifier","src":"15463:3:18"},"nativeSrc":"15463:49:18","nodeType":"YulFunctionCall","src":"15463:49:18"},"variableNames":[{"name":"r","nativeSrc":"15458:1:18","nodeType":"YulIdentifier","src":"15458:1:18"}]},{"nativeSrc":"15525:53:18","nodeType":"YulAssignment","src":"15525:53:18","value":{"arguments":[{"name":"r","nativeSrc":"15533:1:18","nodeType":"YulIdentifier","src":"15533:1:18"},{"arguments":[{"kind":"number","nativeSrc":"15540:1:18","nodeType":"YulLiteral","src":"15540:1:18","type":"","value":"6"},{"arguments":[{"kind":"number","nativeSrc":"15546:18:18","nodeType":"YulLiteral","src":"15546:18:18","type":"","value":"0xffffffffffffffff"},{"arguments":[{"name":"r","nativeSrc":"15570:1:18","nodeType":"YulIdentifier","src":"15570:1:18"},{"name":"x","nativeSrc":"15573:1:18","nodeType":"YulIdentifier","src":"15573:1:18"}],"functionName":{"name":"shr","nativeSrc":"15566:3:18","nodeType":"YulIdentifier","src":"15566:3:18"},"nativeSrc":"15566:9:18","nodeType":"YulFunctionCall","src":"15566:9:18"}],"functionName":{"name":"lt","nativeSrc":"15543:2:18","nodeType":"YulIdentifier","src":"15543:2:18"},"nativeSrc":"15543:33:18","nodeType":"YulFunctionCall","src":"15543:33:18"}],"functionName":{"name":"shl","nativeSrc":"15536:3:18","nodeType":"YulIdentifier","src":"15536:3:18"},"nativeSrc":"15536:41:18","nodeType":"YulFunctionCall","src":"15536:41:18"}],"functionName":{"name":"or","nativeSrc":"15530:2:18","nodeType":"YulIdentifier","src":"15530:2:18"},"nativeSrc":"15530:48:18","nodeType":"YulFunctionCall","src":"15530:48:18"},"variableNames":[{"name":"r","nativeSrc":"15525:1:18","nodeType":"YulIdentifier","src":"15525:1:18"}]},{"nativeSrc":"15591:45:18","nodeType":"YulAssignment","src":"15591:45:18","value":{"arguments":[{"name":"r","nativeSrc":"15599:1:18","nodeType":"YulIdentifier","src":"15599:1:18"},{"arguments":[{"kind":"number","nativeSrc":"15606:1:18","nodeType":"YulLiteral","src":"15606:1:18","type":"","value":"5"},{"arguments":[{"kind":"number","nativeSrc":"15612:10:18","nodeType":"YulLiteral","src":"15612:10:18","type":"","value":"0xffffffff"},{"arguments":[{"name":"r","nativeSrc":"15628:1:18","nodeType":"YulIdentifier","src":"15628:1:18"},{"name":"x","nativeSrc":"15631:1:18","nodeType":"YulIdentifier","src":"15631:1:18"}],"functionName":{"name":"shr","nativeSrc":"15624:3:18","nodeType":"YulIdentifier","src":"15624:3:18"},"nativeSrc":"15624:9:18","nodeType":"YulFunctionCall","src":"15624:9:18"}],"functionName":{"name":"lt","nativeSrc":"15609:2:18","nodeType":"YulIdentifier","src":"15609:2:18"},"nativeSrc":"15609:25:18","nodeType":"YulFunctionCall","src":"15609:25:18"}],"functionName":{"name":"shl","nativeSrc":"15602:3:18","nodeType":"YulIdentifier","src":"15602:3:18"},"nativeSrc":"15602:33:18","nodeType":"YulFunctionCall","src":"15602:33:18"}],"functionName":{"name":"or","nativeSrc":"15596:2:18","nodeType":"YulIdentifier","src":"15596:2:18"},"nativeSrc":"15596:40:18","nodeType":"YulFunctionCall","src":"15596:40:18"},"variableNames":[{"name":"r","nativeSrc":"15591:1:18","nodeType":"YulIdentifier","src":"15591:1:18"}]},{"nativeSrc":"15649:41:18","nodeType":"YulAssignment","src":"15649:41:18","value":{"arguments":[{"name":"r","nativeSrc":"15657:1:18","nodeType":"YulIdentifier","src":"15657:1:18"},{"arguments":[{"kind":"number","nativeSrc":"15664:1:18","nodeType":"YulLiteral","src":"15664:1:18","type":"","value":"4"},{"arguments":[{"kind":"number","nativeSrc":"15670:6:18","nodeType":"YulLiteral","src":"15670:6:18","type":"","value":"0xffff"},{"arguments":[{"name":"r","nativeSrc":"15682:1:18","nodeType":"YulIdentifier","src":"15682:1:18"},{"name":"x","nativeSrc":"15685:1:18","nodeType":"YulIdentifier","src":"15685:1:18"}],"functionName":{"name":"shr","nativeSrc":"15678:3:18","nodeType":"YulIdentifier","src":"15678:3:18"},"nativeSrc":"15678:9:18","nodeType":"YulFunctionCall","src":"15678:9:18"}],"functionName":{"name":"lt","nativeSrc":"15667:2:18","nodeType":"YulIdentifier","src":"15667:2:18"},"nativeSrc":"15667:21:18","nodeType":"YulFunctionCall","src":"15667:21:18"}],"functionName":{"name":"shl","nativeSrc":"15660:3:18","nodeType":"YulIdentifier","src":"15660:3:18"},"nativeSrc":"15660:29:18","nodeType":"YulFunctionCall","src":"15660:29:18"}],"functionName":{"name":"or","nativeSrc":"15654:2:18","nodeType":"YulIdentifier","src":"15654:2:18"},"nativeSrc":"15654:36:18","nodeType":"YulFunctionCall","src":"15654:36:18"},"variableNames":[{"name":"r","nativeSrc":"15649:1:18","nodeType":"YulIdentifier","src":"15649:1:18"}]},{"nativeSrc":"15703:39:18","nodeType":"YulAssignment","src":"15703:39:18","value":{"arguments":[{"name":"r","nativeSrc":"15711:1:18","nodeType":"YulIdentifier","src":"15711:1:18"},{"arguments":[{"kind":"number","nativeSrc":"15718:1:18","nodeType":"YulLiteral","src":"15718:1:18","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"15724:4:18","nodeType":"YulLiteral","src":"15724:4:18","type":"","value":"0xff"},{"arguments":[{"name":"r","nativeSrc":"15734:1:18","nodeType":"YulIdentifier","src":"15734:1:18"},{"name":"x","nativeSrc":"15737:1:18","nodeType":"YulIdentifier","src":"15737:1:18"}],"functionName":{"name":"shr","nativeSrc":"15730:3:18","nodeType":"YulIdentifier","src":"15730:3:18"},"nativeSrc":"15730:9:18","nodeType":"YulFunctionCall","src":"15730:9:18"}],"functionName":{"name":"lt","nativeSrc":"15721:2:18","nodeType":"YulIdentifier","src":"15721:2:18"},"nativeSrc":"15721:19:18","nodeType":"YulFunctionCall","src":"15721:19:18"}],"functionName":{"name":"shl","nativeSrc":"15714:3:18","nodeType":"YulIdentifier","src":"15714:3:18"},"nativeSrc":"15714:27:18","nodeType":"YulFunctionCall","src":"15714:27:18"}],"functionName":{"name":"or","nativeSrc":"15708:2:18","nodeType":"YulIdentifier","src":"15708:2:18"},"nativeSrc":"15708:34:18","nodeType":"YulFunctionCall","src":"15708:34:18"},"variableNames":[{"name":"r","nativeSrc":"15703:1:18","nodeType":"YulIdentifier","src":"15703:1:18"}]},{"nativeSrc":"15755:38:18","nodeType":"YulAssignment","src":"15755:38:18","value":{"arguments":[{"name":"r","nativeSrc":"15763:1:18","nodeType":"YulIdentifier","src":"15763:1:18"},{"arguments":[{"kind":"number","nativeSrc":"15770:1:18","nodeType":"YulLiteral","src":"15770:1:18","type":"","value":"2"},{"arguments":[{"kind":"number","nativeSrc":"15776:3:18","nodeType":"YulLiteral","src":"15776:3:18","type":"","value":"0xf"},{"arguments":[{"name":"r","nativeSrc":"15785:1:18","nodeType":"YulIdentifier","src":"15785:1:18"},{"name":"x","nativeSrc":"15788:1:18","nodeType":"YulIdentifier","src":"15788:1:18"}],"functionName":{"name":"shr","nativeSrc":"15781:3:18","nodeType":"YulIdentifier","src":"15781:3:18"},"nativeSrc":"15781:9:18","nodeType":"YulFunctionCall","src":"15781:9:18"}],"functionName":{"name":"lt","nativeSrc":"15773:2:18","nodeType":"YulIdentifier","src":"15773:2:18"},"nativeSrc":"15773:18:18","nodeType":"YulFunctionCall","src":"15773:18:18"}],"functionName":{"name":"shl","nativeSrc":"15766:3:18","nodeType":"YulIdentifier","src":"15766:3:18"},"nativeSrc":"15766:26:18","nodeType":"YulFunctionCall","src":"15766:26:18"}],"functionName":{"name":"or","nativeSrc":"15760:2:18","nodeType":"YulIdentifier","src":"15760:2:18"},"nativeSrc":"15760:33:18","nodeType":"YulFunctionCall","src":"15760:33:18"},"variableNames":[{"name":"r","nativeSrc":"15755:1:18","nodeType":"YulIdentifier","src":"15755:1:18"}]},{"nativeSrc":"15806:38:18","nodeType":"YulAssignment","src":"15806:38:18","value":{"arguments":[{"name":"r","nativeSrc":"15814:1:18","nodeType":"YulIdentifier","src":"15814:1:18"},{"arguments":[{"kind":"number","nativeSrc":"15821:1:18","nodeType":"YulLiteral","src":"15821:1:18","type":"","value":"1"},{"arguments":[{"kind":"number","nativeSrc":"15827:3:18","nodeType":"YulLiteral","src":"15827:3:18","type":"","value":"0x3"},{"arguments":[{"name":"r","nativeSrc":"15836:1:18","nodeType":"YulIdentifier","src":"15836:1:18"},{"name":"x","nativeSrc":"15839:1:18","nodeType":"YulIdentifier","src":"15839:1:18"}],"functionName":{"name":"shr","nativeSrc":"15832:3:18","nodeType":"YulIdentifier","src":"15832:3:18"},"nativeSrc":"15832:9:18","nodeType":"YulFunctionCall","src":"15832:9:18"}],"functionName":{"name":"lt","nativeSrc":"15824:2:18","nodeType":"YulIdentifier","src":"15824:2:18"},"nativeSrc":"15824:18:18","nodeType":"YulFunctionCall","src":"15824:18:18"}],"functionName":{"name":"shl","nativeSrc":"15817:3:18","nodeType":"YulIdentifier","src":"15817:3:18"},"nativeSrc":"15817:26:18","nodeType":"YulFunctionCall","src":"15817:26:18"}],"functionName":{"name":"or","nativeSrc":"15811:2:18","nodeType":"YulIdentifier","src":"15811:2:18"},"nativeSrc":"15811:33:18","nodeType":"YulFunctionCall","src":"15811:33:18"},"variableNames":[{"name":"r","nativeSrc":"15806:1:18","nodeType":"YulIdentifier","src":"15806:1:18"}]},{"nativeSrc":"15857:30:18","nodeType":"YulAssignment","src":"15857:30:18","value":{"arguments":[{"name":"r","nativeSrc":"15865:1:18","nodeType":"YulIdentifier","src":"15865:1:18"},{"arguments":[{"kind":"number","nativeSrc":"15871:3:18","nodeType":"YulLiteral","src":"15871:3:18","type":"","value":"0x1"},{"arguments":[{"name":"r","nativeSrc":"15880:1:18","nodeType":"YulIdentifier","src":"15880:1:18"},{"name":"x","nativeSrc":"15883:1:18","nodeType":"YulIdentifier","src":"15883:1:18"}],"functionName":{"name":"shr","nativeSrc":"15876:3:18","nodeType":"YulIdentifier","src":"15876:3:18"},"nativeSrc":"15876:9:18","nodeType":"YulFunctionCall","src":"15876:9:18"}],"functionName":{"name":"lt","nativeSrc":"15868:2:18","nodeType":"YulIdentifier","src":"15868:2:18"},"nativeSrc":"15868:18:18","nodeType":"YulFunctionCall","src":"15868:18:18"}],"functionName":{"name":"or","nativeSrc":"15862:2:18","nodeType":"YulIdentifier","src":"15862:2:18"},"nativeSrc":"15862:25:18","nodeType":"YulFunctionCall","src":"15862:25:18"},"variableNames":[{"name":"r","nativeSrc":"15857:1:18","nodeType":"YulIdentifier","src":"15857:1:18"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":26594,"isOffset":false,"isSlot":false,"src":"15458:1:18","valueSize":1},{"declaration":26594,"isOffset":false,"isSlot":false,"src":"15525:1:18","valueSize":1},{"declaration":26594,"isOffset":false,"isSlot":false,"src":"15533:1:18","valueSize":1},{"declaration":26594,"isOffset":false,"isSlot":false,"src":"15570:1:18","valueSize":1},{"declaration":26594,"isOffset":false,"isSlot":false,"src":"15591:1:18","valueSize":1},{"declaration":26594,"isOffset":false,"isSlot":false,"src":"15599:1:18","valueSize":1},{"declaration":26594,"isOffset":false,"isSlot":false,"src":"15628:1:18","valueSize":1},{"declaration":26594,"isOffset":false,"isSlot":false,"src":"15649:1:18","valueSize":1},{"declaration":26594,"isOffset":false,"isSlot":false,"src":"15657:1:18","valueSize":1},{"declaration":26594,"isOffset":false,"isSlot":false,"src":"15682:1:18","valueSize":1},{"declaration":26594,"isOffset":false,"isSlot":false,"src":"15703:1:18","valueSize":1},{"declaration":26594,"isOffset":false,"isSlot":false,"src":"15711:1:18","valueSize":1},{"declaration":26594,"isOffset":false,"isSlot":false,"src":"15734:1:18","valueSize":1},{"declaration":26594,"isOffset":false,"isSlot":false,"src":"15755:1:18","valueSize":1},{"declaration":26594,"isOffset":false,"isSlot":false,"src":"15763:1:18","valueSize":1},{"declaration":26594,"isOffset":false,"isSlot":false,"src":"15785:1:18","valueSize":1},{"declaration":26594,"isOffset":false,"isSlot":false,"src":"15806:1:18","valueSize":1},{"declaration":26594,"isOffset":false,"isSlot":false,"src":"15814:1:18","valueSize":1},{"declaration":26594,"isOffset":false,"isSlot":false,"src":"15836:1:18","valueSize":1},{"declaration":26594,"isOffset":false,"isSlot":false,"src":"15857:1:18","valueSize":1},{"declaration":26594,"isOffset":false,"isSlot":false,"src":"15865:1:18","valueSize":1},{"declaration":26594,"isOffset":false,"isSlot":false,"src":"15880:1:18","valueSize":1},{"declaration":26591,"isOffset":false,"isSlot":false,"src":"15509:1:18","valueSize":1},{"declaration":26591,"isOffset":false,"isSlot":false,"src":"15573:1:18","valueSize":1},{"declaration":26591,"isOffset":false,"isSlot":false,"src":"15631:1:18","valueSize":1},{"declaration":26591,"isOffset":false,"isSlot":false,"src":"15685:1:18","valueSize":1},{"declaration":26591,"isOffset":false,"isSlot":false,"src":"15737:1:18","valueSize":1},{"declaration":26591,"isOffset":false,"isSlot":false,"src":"15788:1:18","valueSize":1},{"declaration":26591,"isOffset":false,"isSlot":false,"src":"15839:1:18","valueSize":1},{"declaration":26591,"isOffset":false,"isSlot":false,"src":"15883:1:18","valueSize":1}],"id":26603,"nodeType":"InlineAssembly","src":"15435:462:18"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"15337:4:18","parameters":{"id":26592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26591,"mutability":"mutable","name":"x","nameLocation":"15350:1:18","nodeType":"VariableDeclaration","scope":26605,"src":"15342:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26590,"name":"uint256","nodeType":"ElementaryTypeName","src":"15342:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15341:11:18"},"returnParameters":{"id":26595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26594,"mutability":"mutable","name":"r","nameLocation":"15384:1:18","nodeType":"VariableDeclaration","scope":26605,"src":"15376:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26593,"name":"uint256","nodeType":"ElementaryTypeName","src":"15376:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15375:11:18"},"scope":26640,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26616,"nodeType":"FunctionDefinition","src":"15909:220:18","nodes":[],"body":{"id":26615,"nodeType":"Block","src":"15984:145:18","nodes":[],"statements":[{"AST":{"nativeSrc":"16003:120:18","nodeType":"YulBlock","src":"16003:120:18","statements":[{"nativeSrc":"16099:14:18","nodeType":"YulAssignment","src":"16099:14:18","value":{"arguments":[{"name":"x","nativeSrc":"16108:1:18","nodeType":"YulIdentifier","src":"16108:1:18"},{"name":"y","nativeSrc":"16111:1:18","nodeType":"YulIdentifier","src":"16111:1:18"}],"functionName":{"name":"mod","nativeSrc":"16104:3:18","nodeType":"YulIdentifier","src":"16104:3:18"},"nativeSrc":"16104:9:18","nodeType":"YulFunctionCall","src":"16104:9:18"},"variableNames":[{"name":"z","nativeSrc":"16099:1:18","nodeType":"YulIdentifier","src":"16099:1:18"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":26607,"isOffset":false,"isSlot":false,"src":"16108:1:18","valueSize":1},{"declaration":26609,"isOffset":false,"isSlot":false,"src":"16111:1:18","valueSize":1},{"declaration":26612,"isOffset":false,"isSlot":false,"src":"16099:1:18","valueSize":1}],"id":26614,"nodeType":"InlineAssembly","src":"15994:129:18"}]},"implemented":true,"kind":"function","modifiers":[],"name":"unsafeMod","nameLocation":"15918:9:18","parameters":{"id":26610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26607,"mutability":"mutable","name":"x","nameLocation":"15936:1:18","nodeType":"VariableDeclaration","scope":26616,"src":"15928:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26606,"name":"uint256","nodeType":"ElementaryTypeName","src":"15928:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26609,"mutability":"mutable","name":"y","nameLocation":"15947:1:18","nodeType":"VariableDeclaration","scope":26616,"src":"15939:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26608,"name":"uint256","nodeType":"ElementaryTypeName","src":"15939:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15927:22:18"},"returnParameters":{"id":26613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26612,"mutability":"mutable","name":"z","nameLocation":"15981:1:18","nodeType":"VariableDeclaration","scope":26616,"src":"15973:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26611,"name":"uint256","nodeType":"ElementaryTypeName","src":"15973:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15972:11:18"},"scope":26640,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26627,"nodeType":"FunctionDefinition","src":"16135:220:18","nodes":[],"body":{"id":26626,"nodeType":"Block","src":"16210:145:18","nodes":[],"statements":[{"AST":{"nativeSrc":"16229:120:18","nodeType":"YulBlock","src":"16229:120:18","statements":[{"nativeSrc":"16325:14:18","nodeType":"YulAssignment","src":"16325:14:18","value":{"arguments":[{"name":"x","nativeSrc":"16334:1:18","nodeType":"YulIdentifier","src":"16334:1:18"},{"name":"y","nativeSrc":"16337:1:18","nodeType":"YulIdentifier","src":"16337:1:18"}],"functionName":{"name":"div","nativeSrc":"16330:3:18","nodeType":"YulIdentifier","src":"16330:3:18"},"nativeSrc":"16330:9:18","nodeType":"YulFunctionCall","src":"16330:9:18"},"variableNames":[{"name":"z","nativeSrc":"16325:1:18","nodeType":"YulIdentifier","src":"16325:1:18"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":26618,"isOffset":false,"isSlot":false,"src":"16334:1:18","valueSize":1},{"declaration":26620,"isOffset":false,"isSlot":false,"src":"16337:1:18","valueSize":1},{"declaration":26623,"isOffset":false,"isSlot":false,"src":"16325:1:18","valueSize":1}],"id":26625,"nodeType":"InlineAssembly","src":"16220:129:18"}]},"implemented":true,"kind":"function","modifiers":[],"name":"unsafeDiv","nameLocation":"16144:9:18","parameters":{"id":26621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26618,"mutability":"mutable","name":"x","nameLocation":"16162:1:18","nodeType":"VariableDeclaration","scope":26627,"src":"16154:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26617,"name":"uint256","nodeType":"ElementaryTypeName","src":"16154:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26620,"mutability":"mutable","name":"y","nameLocation":"16173:1:18","nodeType":"VariableDeclaration","scope":26627,"src":"16165:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26619,"name":"uint256","nodeType":"ElementaryTypeName","src":"16165:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16153:22:18"},"returnParameters":{"id":26624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26623,"mutability":"mutable","name":"z","nameLocation":"16207:1:18","nodeType":"VariableDeclaration","scope":26627,"src":"16199:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26622,"name":"uint256","nodeType":"ElementaryTypeName","src":"16199:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16198:11:18"},"scope":26640,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26639,"nodeType":"FunctionDefinition","src":"16423:207:18","nodes":[],"body":{"id":26638,"nodeType":"Block","src":"16500:130:18","nodes":[],"statements":[{"AST":{"nativeSrc":"16519:105:18","nodeType":"YulBlock","src":"16519:105:18","statements":[{"nativeSrc":"16577:37:18","nodeType":"YulAssignment","src":"16577:37:18","value":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"16593:1:18","nodeType":"YulIdentifier","src":"16593:1:18"},{"name":"y","nativeSrc":"16596:1:18","nodeType":"YulIdentifier","src":"16596:1:18"}],"functionName":{"name":"mod","nativeSrc":"16589:3:18","nodeType":"YulIdentifier","src":"16589:3:18"},"nativeSrc":"16589:9:18","nodeType":"YulFunctionCall","src":"16589:9:18"},{"kind":"number","nativeSrc":"16600:1:18","nodeType":"YulLiteral","src":"16600:1:18","type":"","value":"0"}],"functionName":{"name":"gt","nativeSrc":"16586:2:18","nodeType":"YulIdentifier","src":"16586:2:18"},"nativeSrc":"16586:16:18","nodeType":"YulFunctionCall","src":"16586:16:18"},{"arguments":[{"name":"x","nativeSrc":"16608:1:18","nodeType":"YulIdentifier","src":"16608:1:18"},{"name":"y","nativeSrc":"16611:1:18","nodeType":"YulIdentifier","src":"16611:1:18"}],"functionName":{"name":"div","nativeSrc":"16604:3:18","nodeType":"YulIdentifier","src":"16604:3:18"},"nativeSrc":"16604:9:18","nodeType":"YulFunctionCall","src":"16604:9:18"}],"functionName":{"name":"add","nativeSrc":"16582:3:18","nodeType":"YulIdentifier","src":"16582:3:18"},"nativeSrc":"16582:32:18","nodeType":"YulFunctionCall","src":"16582:32:18"},"variableNames":[{"name":"z","nativeSrc":"16577:1:18","nodeType":"YulIdentifier","src":"16577:1:18"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":26630,"isOffset":false,"isSlot":false,"src":"16593:1:18","valueSize":1},{"declaration":26630,"isOffset":false,"isSlot":false,"src":"16608:1:18","valueSize":1},{"declaration":26632,"isOffset":false,"isSlot":false,"src":"16596:1:18","valueSize":1},{"declaration":26632,"isOffset":false,"isSlot":false,"src":"16611:1:18","valueSize":1},{"declaration":26635,"isOffset":false,"isSlot":false,"src":"16577:1:18","valueSize":1}],"id":26637,"nodeType":"InlineAssembly","src":"16510:114:18"}]},"documentation":{"id":26628,"nodeType":"StructuredDocumentation","src":"16361:57:18","text":"@dev Will return 0 instead of reverting if y is zero."},"implemented":true,"kind":"function","modifiers":[],"name":"unsafeDivUp","nameLocation":"16432:11:18","parameters":{"id":26633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26630,"mutability":"mutable","name":"x","nameLocation":"16452:1:18","nodeType":"VariableDeclaration","scope":26639,"src":"16444:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26629,"name":"uint256","nodeType":"ElementaryTypeName","src":"16444:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26632,"mutability":"mutable","name":"y","nameLocation":"16463:1:18","nodeType":"VariableDeclaration","scope":26639,"src":"16455:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26631,"name":"uint256","nodeType":"ElementaryTypeName","src":"16455:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16443:22:18"},"returnParameters":{"id":26636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26635,"mutability":"mutable","name":"z","nameLocation":"16497:1:18","nodeType":"VariableDeclaration","scope":26639,"src":"16489:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26634,"name":"uint256","nodeType":"ElementaryTypeName","src":"16489:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16488:11:18"},"scope":26640,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"FixedPointMathLib","contractDependencies":[],"contractKind":"library","documentation":{"id":26030,"nodeType":"StructuredDocumentation","src":"58:176:18","text":"@notice Arithmetic library with operations for fixed-point numbers.\n @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/FixedPointMathLib.sol)"},"fullyImplemented":true,"linearizedBaseContracts":[26640],"name":"FixedPointMathLib","nameLocation":"242:17:18","scope":26641,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":18} \ No newline at end of file diff --git a/out/G3M.sol/G3M.json b/out/G3M.sol/G3M.json deleted file mode 100644 index 32ebcadf..00000000 --- a/out/G3M.sol/G3M.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"dfmm_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"computeSwapConstant","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"dfmm","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getPoolParams","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"init","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"},{"name":"invariant","type":"int256","internalType":"int256"},{"name":"reserveX","type":"uint256","internalType":"uint256"},{"name":"reserveY","type":"uint256","internalType":"uint256"},{"name":"totalLiquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"internalParams","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"wX","type":"tuple","internalType":"struct DynamicParam","components":[{"name":"lastComputedValue","type":"uint256","internalType":"uint256"},{"name":"updateEnd","type":"uint256","internalType":"uint256"},{"name":"updatePerSecond","type":"int256","internalType":"int256"},{"name":"lastUpdateAt","type":"uint256","internalType":"uint256"}]},{"name":"swapFee","type":"uint256","internalType":"uint256"},{"name":"controller","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"update","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateAllocateOrDeallocate","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"},{"name":"invariant","type":"int256","internalType":"int256"},{"name":"reserveX","type":"uint256","internalType":"uint256"},{"name":"reserveY","type":"uint256","internalType":"uint256"},{"name":"totalLiquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validateSwap","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"},{"name":"invariant","type":"int256","internalType":"int256"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"nextRx","type":"uint256","internalType":"uint256"},{"name":"nextRy","type":"uint256","internalType":"uint256"},{"name":"nextL","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"error","name":"InvalidSender","inputs":[]},{"type":"error","name":"InvalidUpdateCode","inputs":[]},{"type":"error","name":"InvalidUpdateEnd","inputs":[]},{"type":"error","name":"InvalidWeightX","inputs":[]},{"type":"error","name":"NotDFMM","inputs":[]}],"bytecode":{"object":"0x60a03461007f57601f6112cb38819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f57608052604051611230908161009b82396080518181816103b701528181610612015281816107c601526109240152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b610953565b61090e565b6107ad565b610773565b6105f6565b610331565b6102ae565b610221565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101c3565b838082518301019101610986565b9061010d6100ff600435610a7f565b8680825183010191016109a1565b92610b68565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761015057604052565b61011e565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101a1601f8201601f191660200184610155565b8294818452818301116101be578281602093846000960137010152565b600080fd5b9080601f830112156101be578160206101de93359101610177565b90565b919082519283825260005b84811061020d575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101ec565b346101be5760003660031901126101be57604051604081019080821067ffffffffffffffff8311176101505761027891604052600381526247334d60e81b60208201526040519182916020835260208301906101e1565b0390f35b9060405161028981610134565b6060600382948054845260018101546020850152600281015460408501520154910152565b346101be5760203660031901126101be57600435600052600060205260c060406000206102da8161027c565b90600481015490600560018060a01b03910154169060606040519380518552602081015160208601526040810151604086015201516060840152608083015260a0820152f35b6001600160a01b038116036101be57565b346101be5760603660031901126101be5761034d600435610320565b60243560443567ffffffffffffffff81116101be576103709036906004016101c3565b9061037a81610a7f565b90610390825192602080809583010191016109a1565b6040516333854efd60e21b8152600481018390529092906060816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa948515610596576000908192829761055d575b508084806103ff93518301019101610986565b949195909787878581116000146104c45793610454869461044e866104496104769b9761044461046198604061043b61046d9f6104679f610a08565b91015190610f48565b610f48565b610f74565b50610a7f565b80518101820191016109a1565b91610bb9565b83610a27565b93828685610b68565b93846013191292836104b9575b6102789394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b601486129350610483565b5050919290938089116000146104ff5761046161046d946104546104769761044e856104498f998f61044490604061043b866104679f610a08565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9096506103ff9250610587915060603d60601161058f575b61057f8183610155565b810190610986565b9690926103ec565b503d610575565b6109e6565b9060606003198301126101be576004356105b481610320565b916024359160443567ffffffffffffffff928382116101be57806023830112156101be5781600401359384116101be57602484830101116101be576024019190565b346101be576106043661059b565b9192506001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610761578160c091810103126101be5780359160208201359160408101359460608201359060a08301359261066984610320565b670de0b6b3a764000083101561074f5761070d946107059460806106f1936106f69661069f876000526000602052604060002090565b55013560046106b8866000526000602052604060002090565b01551660056106d1846000526000602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610a7f565b602080825183010191016109a1565b848385610b68565b9283601319129182610744575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b60148512925061071a565b60405163e8a38a6160e01b8152600490fd5b604051636853cba760e01b8152600490fd5b346101be5760606107833661059b565b818094509492940103126101be5780359061070d6107056106f66040602085013594013595610a7f565b346101be576107bb3661059b565b926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610761576108236108176005610809876000526000602052604060002090565b01546001600160a01b031690565b6001600160a01b031690565b9116036108fc5761083683820182610a4a565b61083f81610a5f565b60018103610878575061086261085d61087392600494953691610177565b610caa565b926000526000602052604060002090565b01555b005b61088181610a5f565b600281036108bd5750906108a56108a06108b893610876953691610177565b610c00565b9290916000526000602052604060002090565b610c28565b806108c9600392610a5f565b036108ea576106d16108626108e5600593610876963691610177565b610bd8565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101be5760003660031901126101be576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101be5760203660031901126101be57610278610972600435610a7f565b6040519182916020835260208301906101e1565b908160609103126101be578051916040602083015192015190565b908160809103126101be576060604051916109bb83610134565b80518352602081015160208401526040810151604084015201516109de81610320565b606082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610a1557565b6109f2565b91908201809211610a1557565b81810392916000138015828513169184121617610a1557565b600411156101be57565b908160209103126101be57356101de81610a40565b60041115610a6957565b634e487b7160e01b600052602160045260246000fd5b60408051610a8c81610134565b6000918282526020820193838552818301848152606084019085825282865285602052610ac2610abd85882061027c565b610cdf565b808652670de0b6b3a7640000908103908111610a1557846101de97610b1f95610b1294600594610b5a9c5281835282602052600484842001549052815280602052200160018060a01b0390541690565b6001600160a01b03169052565b5192839160208301919091606060808201938051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b03601f198101835282610155565b926020610b9184610b8b610b83610b9a9697610ba099610fa4565b855190610d88565b95610fa4565b91015190610d88565b90610f48565b670de0b6b3a763ffff198101908113600116610a155790565b6101de92916020610bcf610b9a93855190610d88565b93015190610d88565b6040818051810103126101be5780610bf560206040930151610a40565b015161081781610320565b6060818051810103126101be57610c1a6020820151610a40565b606060408201519101519091565b919042821115610c9857610c3e610abd8461027c565b9081845542600385015542830391838311610a1557610c5c91610a27565b428314610c8257600160ff1b8114600019831416610a1557600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101be5780610cc760206040930151610a40565b015190565b81810292918115918404141715610a1557565b6060810151906020810151808314610d5e57804211600014610d5657915b8203918211610a15576040810190815160008113600014610d3057506101de92610d2a9151925190610ccc565b90610a1a565b90519150600160ff1b8114610a15576101de92610d509160000390610ccc565b90610a08565b504291610cfd565b5090505190565b818102929160008212600160ff1b821416610a15578184051490151715610a1557565b610f356101de927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284610f4393610dbe60008213610fc6565b711340daa0d5f769dba1915cef59f0815a5506610dda82611188565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d610d65565b670de0b6b3a7640000900590565b610ffe565b8181029181830414901517600116156101be576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101be57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101be570490565b15610fcd57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131561118257680755bf798b4a1bf1e581121561114e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b611193811515610fc6565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c600110179056fea26469706673582212209815df372867dd1ba42d4263690c8e70d1f8dc34ff9f897579936267cb43316764736f6c63430008160033","sourceMap":"255:6663:41:-:0;;;;;;;;;;;;;-1:-1:-1;;255:6663:41;;;;-1:-1:-1;;;;;255:6663:41;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;255:6663:41;;;;;;986:12;;255:6663;;;;;;;;986:12;255:6663;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;255:6663:41;;;;;;-1:-1:-1;255:6663:41;;;;;-1:-1:-1;255:6663:41","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b610953565b61090e565b6107ad565b610773565b6105f6565b610331565b6102ae565b610221565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101c3565b838082518301019101610986565b9061010d6100ff600435610a7f565b8680825183010191016109a1565b92610b68565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761015057604052565b61011e565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101a1601f8201601f191660200184610155565b8294818452818301116101be578281602093846000960137010152565b600080fd5b9080601f830112156101be578160206101de93359101610177565b90565b919082519283825260005b84811061020d575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101ec565b346101be5760003660031901126101be57604051604081019080821067ffffffffffffffff8311176101505761027891604052600381526247334d60e81b60208201526040519182916020835260208301906101e1565b0390f35b9060405161028981610134565b6060600382948054845260018101546020850152600281015460408501520154910152565b346101be5760203660031901126101be57600435600052600060205260c060406000206102da8161027c565b90600481015490600560018060a01b03910154169060606040519380518552602081015160208601526040810151604086015201516060840152608083015260a0820152f35b6001600160a01b038116036101be57565b346101be5760603660031901126101be5761034d600435610320565b60243560443567ffffffffffffffff81116101be576103709036906004016101c3565b9061037a81610a7f565b90610390825192602080809583010191016109a1565b6040516333854efd60e21b8152600481018390529092906060816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa948515610596576000908192829761055d575b508084806103ff93518301019101610986565b949195909787878581116000146104c45793610454869461044e866104496104769b9761044461046198604061043b61046d9f6104679f610a08565b91015190610f48565b610f48565b610f74565b50610a7f565b80518101820191016109a1565b91610bb9565b83610a27565b93828685610b68565b93846013191292836104b9575b6102789394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b601486129350610483565b5050919290938089116000146104ff5761046161046d946104546104769761044e856104498f998f61044490604061043b866104679f610a08565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9096506103ff9250610587915060603d60601161058f575b61057f8183610155565b810190610986565b9690926103ec565b503d610575565b6109e6565b9060606003198301126101be576004356105b481610320565b916024359160443567ffffffffffffffff928382116101be57806023830112156101be5781600401359384116101be57602484830101116101be576024019190565b346101be576106043661059b565b9192506001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610761578160c091810103126101be5780359160208201359160408101359460608201359060a08301359261066984610320565b670de0b6b3a764000083101561074f5761070d946107059460806106f1936106f69661069f876000526000602052604060002090565b55013560046106b8866000526000602052604060002090565b01551660056106d1846000526000602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610a7f565b602080825183010191016109a1565b848385610b68565b9283601319129182610744575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b60148512925061071a565b60405163e8a38a6160e01b8152600490fd5b604051636853cba760e01b8152600490fd5b346101be5760606107833661059b565b818094509492940103126101be5780359061070d6107056106f66040602085013594013595610a7f565b346101be576107bb3661059b565b926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610761576108236108176005610809876000526000602052604060002090565b01546001600160a01b031690565b6001600160a01b031690565b9116036108fc5761083683820182610a4a565b61083f81610a5f565b60018103610878575061086261085d61087392600494953691610177565b610caa565b926000526000602052604060002090565b01555b005b61088181610a5f565b600281036108bd5750906108a56108a06108b893610876953691610177565b610c00565b9290916000526000602052604060002090565b610c28565b806108c9600392610a5f565b036108ea576106d16108626108e5600593610876963691610177565b610bd8565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101be5760003660031901126101be576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101be5760203660031901126101be57610278610972600435610a7f565b6040519182916020835260208301906101e1565b908160609103126101be578051916040602083015192015190565b908160809103126101be576060604051916109bb83610134565b80518352602081015160208401526040810151604084015201516109de81610320565b606082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610a1557565b6109f2565b91908201809211610a1557565b81810392916000138015828513169184121617610a1557565b600411156101be57565b908160209103126101be57356101de81610a40565b60041115610a6957565b634e487b7160e01b600052602160045260246000fd5b60408051610a8c81610134565b6000918282526020820193838552818301848152606084019085825282865285602052610ac2610abd85882061027c565b610cdf565b808652670de0b6b3a7640000908103908111610a1557846101de97610b1f95610b1294600594610b5a9c5281835282602052600484842001549052815280602052200160018060a01b0390541690565b6001600160a01b03169052565b5192839160208301919091606060808201938051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b03601f198101835282610155565b926020610b9184610b8b610b83610b9a9697610ba099610fa4565b855190610d88565b95610fa4565b91015190610d88565b90610f48565b670de0b6b3a763ffff198101908113600116610a155790565b6101de92916020610bcf610b9a93855190610d88565b93015190610d88565b6040818051810103126101be5780610bf560206040930151610a40565b015161081781610320565b6060818051810103126101be57610c1a6020820151610a40565b606060408201519101519091565b919042821115610c9857610c3e610abd8461027c565b9081845542600385015542830391838311610a1557610c5c91610a27565b428314610c8257600160ff1b8114600019831416610a1557600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101be5780610cc760206040930151610a40565b015190565b81810292918115918404141715610a1557565b6060810151906020810151808314610d5e57804211600014610d5657915b8203918211610a15576040810190815160008113600014610d3057506101de92610d2a9151925190610ccc565b90610a1a565b90519150600160ff1b8114610a15576101de92610d509160000390610ccc565b90610a08565b504291610cfd565b5090505190565b818102929160008212600160ff1b821416610a15578184051490151715610a1557565b610f356101de927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284610f4393610dbe60008213610fc6565b711340daa0d5f769dba1915cef59f0815a5506610dda82611188565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d610d65565b670de0b6b3a7640000900590565b610ffe565b8181029181830414901517600116156101be576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101be57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101be570490565b15610fcd57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131561118257680755bf798b4a1bf1e581121561114e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b611193811515610fc6565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c600110179056fea26469706673582212209815df372867dd1ba42d4263690c8e70d1f8dc34ff9f897579936267cb43316764736f6c63430008160033","sourceMap":"255:6663:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;255:6663:41;;;;;;;;;;;;;6806:103;6744:45;255:6663;;;;;;:::i;:::-;;;;;6744:45;;;;;;:::i;:::-;255:6663;6853:46;6864:21;255:6663;;6864:21;:::i;:::-;255:6663;;;;6853:46;;;;;;:::i;:::-;6806:103;;:::i;:::-;255:6663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;255:6663:41;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;255:6663:41;;;;;;:::o;:::-;-1:-1:-1;255:6663:41;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;255:6663:41;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;255:6663:41;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;255:6663:41;;;;;;-1:-1:-1;255:6663:41;-1:-1:-1;255:6663:41;;;;-1:-1:-1;255:6663:41;835:56;;;:::i;:::-;;255:6663;835:56;;255:6663;;835:56;255:6663;;;;;835:56;;255:6663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;255:6663:41;;;;;:::o;:::-;;;;;;-1:-1:-1;;255:6663:41;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;3933:21;;;;:::i;:::-;255:6663;3922:46;255:6663;;;;3922:46;;;;;;;;;:::i;:::-;255:6663;;-1:-1:-1;;;4044:43:41;;255:6663;4044:43;;255:6663;;;;;;;;;;-1:-1:-1;;;;;4050:4:41;255:6663;4044:43;;;;;;;-1:-1:-1;;;;;4044:43:41;;;255:6663;;;;;4124:45;255:6663;;4124:45;;;;;;:::i;:::-;4268:16;;;;;;;;;;4264:499;4268:16;;;4311;4954:21;4311:16;;1133:19:18;4311:16:41;799:19:18;5044:53:41;4311:16;;799:19:18;4943:46:41;4311:16;255:6663;4311:16;4824:197;4311:16;4876:131;4311:16;;:::i;:::-;4366:14;;255:6663;799:19:18;;:::i;:::-;;:::i;:::-;1133;:::i;:::-;;4954:21:41;:::i;:::-;255:6663;;4943:46;;;;;;;:::i;:::-;4876:131;;:::i;:::-;4824:197;;:::i;:::-;5044:53;;;;;:::i;:::-;653:2:31;;;;5115:22:41;:45;;;;4264:499;255:6663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5115:45;653:2:31;5141:19:41;;;-1:-1:-1;5115:45:41;;4264:499;4476:16;;;;;;;;;4472:291;4476:16;;;4943:46;4824:197;4519:16;4954:21;5044:53;4519:16;1133:19:18;4519:16:41;799:19:18;4519:16:41;;;799:19:18;4519:16:41;255:6663;4519:16;;4876:131;4519:16;;:::i;4472:291::-;255:6663;;-1:-1:-1;;;4694:58:41;;255:6663;;4694:58;;255:6663;;;;;;;;;;;-1:-1:-1;;;255:6663:41;;;;;;4694:58;4044:43;;;;4124:45;4044:43;;;;;255:6663;4044:43;255:6663;4044:43;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;:::i;255:6663::-;;;-1:-1:-1;;255:6663:41;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;255:6663:41;1201:4;255:6663;;1179:10;:27;1175:49;;2139:85;255:6663;2139:85;;;255:6663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;378:4:31;2239:9:41;;;2235:63;;2485:164;2308:22;2593:46;2308:22;255:6663;2416:46;2308:22;2604:21;2308:22;;;-1:-1:-1;255:6663:41;-1:-1:-1;255:6663:41;;;-1:-1:-1;255:6663:41;;;2308:22;255:6663;;;;2366:22;;-1:-1:-1;255:6663:41;-1:-1:-1;255:6663:41;;;-1:-1:-1;255:6663:41;;;2366:22;:30;255:6663;;2416:33;:22;;-1:-1:-1;255:6663:41;-1:-1:-1;255:6663:41;;;-1:-1:-1;255:6663:41;;;2416:22;:33;255:6663;;-1:-1:-1;;;;;;255:6663:41;-1:-1:-1;;;;;255:6663:41;;;;;;;;;;2416:46;2604:21;:::i;:::-;255:6663;;;;2593:46;;;;;;:::i;:::-;2485:164;;;;:::i;:::-;653:2:31;;;;2744:22:41;:45;;;;255:6663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2744:45;653:2:31;2770:19:41;;;-1:-1:-1;2744:45:41;;2235:63;255:6663;;-1:-1:-1;;;2271:16:41;;255:6663;;2271:16;1175:49;255:6663;;-1:-1:-1;;;1215:9:41;;255:6663;;1215:9;255:6663;;;;;;;;:::i;:::-;3218:45;;;;;;;;255:6663;;;;;;;3286:164;3394:46;3405:21;255:6663;;;;;;;;3405:21;;:::i;255:6663::-;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1201:4:41;255:6663;;1179:10;:27;1175:49;;5334:43;5344:33;;:22;;-1:-1:-1;255:6663:41;-1:-1:-1;255:6663:41;;;-1:-1:-1;255:6663:41;;;5344:22;:33;255:6663;-1:-1:-1;;;;;255:6663:41;;;5344:33;-1:-1:-1;;;;;255:6663:41;;;5334:43;255:6663;;5334:43;5330:71;;5457:40;;;;;;:::i;:::-;255:6663;;;:::i;:::-;5526:28;5512:42;;5526:28;;255:6663;5603:28;255:6663;5570:22;255:6663;;;;;;;:::i;:::-;5603:28;:::i;:::-;5570:22;-1:-1:-1;255:6663:41;-1:-1:-1;255:6663:41;;;-1:-1:-1;255:6663:41;;;5570:22;:30;255:6663;5508:613;255:6663;5508:613;255:6663;;;:::i;:::-;5666:28;5652:42;;5666:28;;255:6663;;5777:32;255:6663;5823:22;255:6663;5868:15;255:6663;;;;:::i;:::-;5777:32;:::i;:::-;5823:22;;;-1:-1:-1;255:6663:41;-1:-1:-1;255:6663:41;;;-1:-1:-1;255:6663:41;;;5823:22;5868:15;:::i;5648:473::-;255:6663;;5919:31;255:6663;;:::i;:::-;5905:45;5919:31;;5966:22;6018:35;255:6663;5344:33;255:6663;5966:87;255:6663;;;;:::i;:::-;6018:35;:::i;5901:220::-;255:6663;;-1:-1:-1;;;6091:19:41;;255:6663;;6091:19;5330:71;255:6663;;-1:-1:-1;;;5386:15:41;;255:6663;;5386:15;255:6663;;;;;;-1:-1:-1;;255:6663:41;;;;;;727:29;-1:-1:-1;;;;;255:6663:41;;;;;;;;;;;;-1:-1:-1;;255:6663:41;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;255:6663:41;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;255:6663:41;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;255:6663:41;;;:::o;:::-;;;;;;;;;;;;6163:368;255:6663;;;;;;:::i;:::-;-1:-1:-1;255:6663:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6293:38;255:6663;;;;;:::i;:::-;6293:38;:::i;:::-;255:6663;;;378:4:31;255:6663:41;;;;;;;;;6506:18;255:6663;6435:53;255:6663;6455:33;255:6663;6455:33;255:6663;6506:18;255:6663;;;;;;;;6395:30;255:6663;;;6395:30;255:6663;;;;;;;;;6455:33;255:6663;;;;;;;;;;6455:33;-1:-1:-1;;;;;255:6663:41;378:4:31;;;6435:53:41;255:6663;6506:18;;;255:6663;6506:18;;378:4:31;;;;;;;;;;255:6663:41;;378:4:31;;;;;;;255:6663:41;378:4:31;;;;;;;255:6663:41;;;;;;;378:4:31;;;255:6663:41;378:4:31;;255:6663:41;378:4:31;6506:18:41;;255:6663;;6506:18;;;;;;:::i;1692:384:42:-;;2000:9;965:21:18;1692:384:42;1880:50;965:21:18;1961:50:42;1692:384;;799:19:18;1692:384:42;965:21:18;:::i;:::-;255:6663:41;;1880:50:42;;:::i;:::-;965:21:18;;:::i;:::-;2000:9:42;;255:6663:41;1961:50:42;;:::i;:::-;799:19:18;;:::i;:::-;255:6663:41;;;;;;;;;;;1692:384:42;:::o;2172:294::-;799:19:18;2172:294:42;;2437:9;2344:36;2412;2172:294;255:6663:41;;2344:36:42;;:::i;:::-;2437:9;;255:6663:41;2412:36:42;;:::i;1488:198::-;255:6663:41;;;;1637:42:42;;255:6663:41;;;;1637:42:42;255:6663:41;1637:42:42;255:6663:41;1637:42:42;;255:6663:41;;:::i;:::-;;;;;;:::i;1018:264:42:-;255:6663:41;;;;1224:51:42;;255:6663:41;;;;;1224:51:42;;;255:6663:41;;:::i;:::-;;;;;;;;;1175:100:42;1018:264;:::o;1206:486:28:-;;;1348:15;1335:28;;;1331:59;;1130:17;255:6663:41;;;:::i;1130:17:28:-;255:6663:41;;;;1348:15:28;1157:18;;;255:6663:41;1348:15:28;255:6663:41;;;;;;;;1493:48:28;;;:::i;:::-;1348:15;255:6663:41;;;;-1:-1:-1;;;255:6663:41;;-1:-1:-1;;255:6663:41;;;;;1647:21:28;1610:15;;;;255:6663:41;;1647:21:28;;255:6663:41;1206:486:28:o;255:6663:41:-;;;;-1:-1:-1;255:6663:41;;;;;-1:-1:-1;255:6663:41;1331:59:28;255:6663:41;;-1:-1:-1;;;1372:18:28;;;;;567:209:42;255:6663:41;;;;703:42:42;;255:6663:41;;;;703:42:42;255:6663:41;703:42:42;255:6663:41;703:42:42;;255:6663:41;;:::i;:::-;;;567:209:42;:::o;255:6663:41:-;;;;;;;;;;;;;;;;:::o;354:683:28:-;475:18;;;255:6663:41;497:15:28;;;;255:6663:41;475:37:28;;;471:98;;598:15;;:33;:93;:33;;;:93;;255:6663:41;;;;;;;765:21:28;;;255:6663:41;;;-1:-1:-1;765:25:28;;761:270;-1:-1:-1;;;255:6663:41;813:84:28;255:6663:41;855:42:28;255:6663:41;;;;855:42:28;;:::i;:::-;813:84;;:::i;761:270::-;255:6663:41;;;-1:-1:-1;;;;653:2:31;;;;935:85:28;653:2:31;977:43:28;653:2:31;-1:-1:-1;653:2:31;977:43:28;;:::i;:::-;935:85;;:::i;598:93::-;:15;;:93;;;471:98;255:6663:41;;;;528:30:28;:::o;255:6663:41:-;;;;;;;;;-1:-1:-1;;;255:6663:41;;;;;;;;;;;;;;;:::o;1208:273:18:-;1399:12;1391:36;1208:273;7380:72;1398:28;1208:273;4688:27;-1:-1:-1;4696:5:18;;4688:27;:::i;:::-;7125:43;5125:16;;;:::i;:::-;5145:2;255:6663:41;;;5175:3:18;255:6663:41;;;5175:3:18;255:6663:41;;;;;7232:71:18;255:6663:41;;6411:30:18;255:6663:41;6343:32:18;255:6663:41;6274:33:18;255:6663:41;6205:33:18;255:6663:41;6136:33:18;255:6663:41;6068:32:18;255:6663:41;6001:31:18;255:6663:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5533:32:18;255:6663:41;5465:32:18;255:6663:41;5398:31:18;255:6663:41;;;;;;;;;;;;;;;;;;;;;;;;6455:304:18;255:6663:41;;;;;1399:12:18;:::i;:::-;378:4:31;255:6663:41;;;;1398:28:18;1391:36;:::i;8282:752::-;8417:611;;;;;;;;;;;;;;;;;378:4:31;255:6663:41;;8417:611:18;;;;;;;;8282:752;:::o;:::-;;378:4:31;8417:611:18;;;;;;;;;;;;;;;;;;;;255:6663:41;;;8417:611:18;;;;;;;;8282:752;:::o;7741:535::-;378:4:31;7878:392:18;;;;;;;;;;;;;;;;;;;;7741:535;:::o;255:6663:41:-;;;;:::o;:::-;;;-1:-1:-1;;;255:6663:41;;;;;;;;;;;;-1:-1:-1;;;255:6663:41;;;;;;;1487:3103:18;-1:-1:-1;;1713:26:18;;;1709:40;;1948:21;1943:26;;;1939:54;;2266:5;255:6663:41;;;;4502:49:18;2559:29;255:6663:41;;2591:5:18;255:6663:41;2591:5:18;;255:6663:41;;;;;;;;;;;;;;2874:31:18;255:6663:41;;;;;;3074:35:18;3649;255:6663:41;;;;3508:34:18;255:6663:41;;;;3371:32:18;255:6663:41;;;;;;;;;;;;;;;;;;;;;;;;;3136:40:18;;;;255:6663:41;2941:32:18;255:6663:41;;;;;;;;;;;;;;;3699:327:18;255:6663:41;;4564:3:18;255:6663:41;;1487:3103:18;:::o;1939:54::-;255:6663:41;;-1:-1:-1;;;1971:22:18;;255:6663:41;1971:22:18;;;255:6663:41;;;;;;-1:-1:-1;;;255:6663:41;;;;;;4694:58;1709:40:18;1741:8;1748:1;1741:8;:::o;15328:575::-;15397:27;15405:5;;;15397:27;:::i;:::-;15435:462;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:575;:::o","linkReferences":{},"immutableReferences":{"37275":[{"start":951,"length":32},{"start":1554,"length":32},{"start":1990,"length":32},{"start":2340,"length":32}]}},"methodIdentifiers":{"computeSwapConstant(uint256,bytes)":"002e524b","dfmm()":"afba13c4","getPoolParams(uint256)":"dc178355","init(address,uint256,bytes)":"73cb2d03","internalParams(uint256)":"1edb71e5","name()":"06fdde03","update(address,uint256,bytes)":"acad2989","validateAllocateOrDeallocate(address,uint256,bytes)":"8a04bdd5","validateSwap(address,uint256,bytes)":"68bd3e38"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dfmm_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidSender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidUpdateCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidUpdateEnd\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidWeightX\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDFMM\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"computeSwapConstant\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dfmm\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolParams\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"init\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalLiquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"internalParams\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"lastComputedValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updateEnd\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"updatePerSecond\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"lastUpdateAt\",\"type\":\"uint256\"}],\"internalType\":\"struct DynamicParam\",\"name\":\"wX\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"update\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"validateAllocateOrDeallocate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalLiquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"validateSwap\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"nextRx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nextRy\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nextL\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidSender()\":[{\"details\":\"Thrown when the sender is authorized.\"}],\"InvalidUpdateCode()\":[{\"details\":\"Thrown when the update code is invalid.\"}],\"NotDFMM()\":[{\"details\":\"Thrown when the sender is not the DFMM contract.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"dfmm_\":\"Address of the DFMM contract.\"}},\"init(address,uint256,bytes)\":{\"params\":{\"data\":\"Pool parameters encoded as bytes.\",\"poolId\":\"Id of the pool to initialize.\",\"sender\":\"Address that called the DFMM contract.\"},\"returns\":{\"invariant\":\"Initial swap growth.\",\"reserveX\":\"Initial reserve of token X.\",\"reserveY\":\"Initial reserve of token Y.\",\"totalLiquidity\":\"Initial liquidity of the pool.\",\"valid\":\"True if the initialization is valid.\"}}},\"stateVariables\":{\"name\":{\"details\":\"The name of the strategy is included in the name of the liquidity token.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"init(address,uint256,bytes)\":{\"notice\":\"Intializes a new pool.\"},\"name()\":{\"notice\":\"Returns the name of the strategy.\"}},\"notice\":\"Geometric Mean Market Maker.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/strategies/G3M/G3M.sol\":\"G3M\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/strategies/G3M/G3M.sol\":{\"keccak256\":\"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c\",\"dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE\"]},\"src/strategies/G3M/G3MLib.sol\":{\"keccak256\":\"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70\",\"dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"dfmm_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InvalidSender"},{"inputs":[],"type":"error","name":"InvalidUpdateCode"},{"inputs":[],"type":"error","name":"InvalidUpdateEnd"},{"inputs":[],"type":"error","name":"InvalidWeightX"},{"inputs":[],"type":"error","name":"NotDFMM"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"computeSwapConstant","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"dfmm","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolParams","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"init","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"int256","name":"invariant","type":"int256"},{"internalType":"uint256","name":"reserveX","type":"uint256"},{"internalType":"uint256","name":"reserveY","type":"uint256"},{"internalType":"uint256","name":"totalLiquidity","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"internalParams","outputs":[{"internalType":"struct DynamicParam","name":"wX","type":"tuple","components":[{"internalType":"uint256","name":"lastComputedValue","type":"uint256"},{"internalType":"uint256","name":"updateEnd","type":"uint256"},{"internalType":"int256","name":"updatePerSecond","type":"int256"},{"internalType":"uint256","name":"lastUpdateAt","type":"uint256"}]},{"internalType":"uint256","name":"swapFee","type":"uint256"},{"internalType":"address","name":"controller","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"update"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"validateAllocateOrDeallocate","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"int256","name":"invariant","type":"int256"},{"internalType":"uint256","name":"reserveX","type":"uint256"},{"internalType":"uint256","name":"reserveY","type":"uint256"},{"internalType":"uint256","name":"totalLiquidity","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"validateSwap","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"int256","name":"invariant","type":"int256"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"uint256","name":"nextRx","type":"uint256"},{"internalType":"uint256","name":"nextRy","type":"uint256"},{"internalType":"uint256","name":"nextL","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"dfmm_":"Address of the DFMM contract."}},"init(address,uint256,bytes)":{"params":{"data":"Pool parameters encoded as bytes.","poolId":"Id of the pool to initialize.","sender":"Address that called the DFMM contract."},"returns":{"invariant":"Initial swap growth.","reserveX":"Initial reserve of token X.","reserveY":"Initial reserve of token Y.","totalLiquidity":"Initial liquidity of the pool.","valid":"True if the initialization is valid."}}},"version":1},"userdoc":{"kind":"user","methods":{"init(address,uint256,bytes)":{"notice":"Intializes a new pool."},"name()":{"notice":"Returns the name of the strategy."}},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/strategies/G3M/G3M.sol":"G3M"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3M.sol":{"keccak256":"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034","urls":["bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c","dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3MLib.sol":{"keccak256":"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4","urls":["bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70","dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m"],"license":"GPL-3.0-or-later"}},"version":1},"ast":{"absolutePath":"src/strategies/G3M/G3M.sol","id":37912,"exportedSymbols":{"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"FixedPointMathLib":[26640],"G3M":[37911],"G3MLib":[38158],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"Min":[27736],"ONE":[30639],"SQRT_WAD":[30630],"TWO":[30633],"ZERO":[30649],"abs":[27763],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"diviWad":[27813],"muli":[27777],"muliWad":[27795]},"nodeType":"SourceUnit","src":"45:6874:41","nodes":[{"id":37237,"nodeType":"PragmaDirective","src":"45:24:41","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":37238,"nodeType":"ImportDirective","src":"71:34:41","nodes":[],"absolutePath":"src/interfaces/IDFMM.sol","file":"src/interfaces/IDFMM.sol","nameLocation":"-1:-1:-1","scope":37912,"sourceUnit":29731,"symbolAliases":[],"unitAlias":""},{"id":37239,"nodeType":"ImportDirective","src":"106:38:41","nodes":[],"absolutePath":"src/interfaces/IStrategy.sol","file":"src/interfaces/IStrategy.sol","nameLocation":"-1:-1:-1","scope":37912,"sourceUnit":29840,"symbolAliases":[],"unitAlias":""},{"id":37240,"nodeType":"ImportDirective","src":"145:37:41","nodes":[],"absolutePath":"src/lib/DynamicParamLib.sol","file":"src/lib/DynamicParamLib.sol","nameLocation":"-1:-1:-1","scope":37912,"sourceUnit":30013,"symbolAliases":[],"unitAlias":""},{"id":37241,"nodeType":"ImportDirective","src":"183:22:41","nodes":[],"absolutePath":"src/strategies/G3M/G3MLib.sol","file":"./G3MLib.sol","nameLocation":"-1:-1:-1","scope":37912,"sourceUnit":38159,"symbolAliases":[],"unitAlias":""},{"id":37911,"nodeType":"ContractDefinition","src":"255:6663:41","nodes":[{"id":37247,"nodeType":"UsingForDirective","src":"287:36:41","nodes":[],"global":false,"libraryName":{"id":37245,"name":"FixedPointMathLib","nameLocations":["293:17:41"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"293:17:41"},"typeName":{"id":37246,"name":"uint256","nodeType":"ElementaryTypeName","src":"315:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":37250,"nodeType":"UsingForDirective","src":"328:35:41","nodes":[],"global":false,"libraryName":{"id":37248,"name":"FixedPointMathLib","nameLocations":["334:17:41"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"334:17:41"},"typeName":{"id":37249,"name":"int256","nodeType":"ElementaryTypeName","src":"356:6:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":37254,"nodeType":"UsingForDirective","src":"368:39:41","nodes":[],"global":false,"libraryName":{"id":37251,"name":"DynamicParamLib","nameLocations":["374:15:41"],"nodeType":"IdentifierPath","referencedDeclaration":30012,"src":"374:15:41"},"typeName":{"id":37253,"nodeType":"UserDefinedTypeName","pathNode":{"id":37252,"name":"DynamicParam","nameLocations":["394:12:41"],"nodeType":"IdentifierPath","referencedDeclaration":29851,"src":"394:12:41"},"referencedDeclaration":29851,"src":"394:12:41","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"}}},{"id":37262,"nodeType":"StructDefinition","src":"413:107:41","nodes":[],"canonicalName":"G3M.InternalParams","members":[{"constant":false,"id":37257,"mutability":"mutable","name":"wX","nameLocation":"458:2:41","nodeType":"VariableDeclaration","scope":37262,"src":"445:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"},"typeName":{"id":37256,"nodeType":"UserDefinedTypeName","pathNode":{"id":37255,"name":"DynamicParam","nameLocations":["445:12:41"],"nodeType":"IdentifierPath","referencedDeclaration":29851,"src":"445:12:41"},"referencedDeclaration":29851,"src":"445:12:41","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"}},"visibility":"internal"},{"constant":false,"id":37259,"mutability":"mutable","name":"swapFee","nameLocation":"478:7:41","nodeType":"VariableDeclaration","scope":37262,"src":"470:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37258,"name":"uint256","nodeType":"ElementaryTypeName","src":"470:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37261,"mutability":"mutable","name":"controller","nameLocation":"503:10:41","nodeType":"VariableDeclaration","scope":37262,"src":"495:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37260,"name":"address","nodeType":"ElementaryTypeName","src":"495:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"InternalParams","nameLocation":"420:14:41","scope":37911,"visibility":"public"},{"id":37272,"nodeType":"StructDefinition","src":"574:117:41","nodes":[],"canonicalName":"G3M.G3MParams","documentation":{"id":37263,"nodeType":"StructuredDocumentation","src":"526:43:41","text":"@dev Parameterization of the G3M curve."},"members":[{"constant":false,"id":37265,"mutability":"mutable","name":"wX","nameLocation":"609:2:41","nodeType":"VariableDeclaration","scope":37272,"src":"601:10:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37264,"name":"uint256","nodeType":"ElementaryTypeName","src":"601:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37267,"mutability":"mutable","name":"wY","nameLocation":"629:2:41","nodeType":"VariableDeclaration","scope":37272,"src":"621:10:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37266,"name":"uint256","nodeType":"ElementaryTypeName","src":"621:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37269,"mutability":"mutable","name":"swapFee","nameLocation":"649:7:41","nodeType":"VariableDeclaration","scope":37272,"src":"641:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37268,"name":"uint256","nodeType":"ElementaryTypeName","src":"641:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37271,"mutability":"mutable","name":"controller","nameLocation":"674:10:41","nodeType":"VariableDeclaration","scope":37272,"src":"666:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37270,"name":"address","nodeType":"ElementaryTypeName","src":"666:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"G3MParams","nameLocation":"581:9:41","scope":37911,"visibility":"public"},{"id":37275,"nodeType":"VariableDeclaration","src":"727:29:41","nodes":[],"baseFunctions":[29831],"constant":false,"documentation":{"id":37273,"nodeType":"StructuredDocumentation","src":"697:25:41","text":"@inheritdoc IStrategy"},"functionSelector":"afba13c4","mutability":"immutable","name":"dfmm","nameLocation":"752:4:41","scope":37911,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37274,"name":"address","nodeType":"ElementaryTypeName","src":"727:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":37279,"nodeType":"VariableDeclaration","src":"793:35:41","nodes":[],"baseFunctions":[29768],"constant":true,"documentation":{"id":37276,"nodeType":"StructuredDocumentation","src":"763:25:41","text":"@inheritdoc IStrategy"},"functionSelector":"06fdde03","mutability":"constant","name":"name","nameLocation":"816:4:41","scope":37911,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":37277,"name":"string","nodeType":"ElementaryTypeName","src":"793:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"47334d","id":37278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"823:5:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_6dbe608c8a241b95f5964d4b3d5c7186fb3cee6594c060cf3013df6905fb0282","typeString":"literal_string \"G3M\""},"value":"G3M"},"visibility":"public"},{"id":37284,"nodeType":"VariableDeclaration","src":"835:56:41","nodes":[],"constant":false,"functionSelector":"1edb71e5","mutability":"mutable","name":"internalParams","nameLocation":"877:14:41","scope":37911,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$37262_storage_$","typeString":"mapping(uint256 => struct G3M.InternalParams)"},"typeName":{"id":37283,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":37280,"name":"uint256","nodeType":"ElementaryTypeName","src":"843:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"835:34:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$37262_storage_$","typeString":"mapping(uint256 => struct G3M.InternalParams)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":37282,"nodeType":"UserDefinedTypeName","pathNode":{"id":37281,"name":"InternalParams","nameLocations":["854:14:41"],"nodeType":"IdentifierPath","referencedDeclaration":37262,"src":"854:14:41"},"referencedDeclaration":37262,"src":"854:14:41","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$37262_storage_ptr","typeString":"struct G3M.InternalParams"}}},"visibility":"public"},{"id":37295,"nodeType":"FunctionDefinition","src":"949:56:41","nodes":[],"body":{"id":37294,"nodeType":"Block","src":"976:29:41","nodes":[],"statements":[{"expression":{"id":37292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37290,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37275,"src":"986:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37291,"name":"dfmm_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37287,"src":"993:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"986:12:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37293,"nodeType":"ExpressionStatement","src":"986:12:41"}]},"documentation":{"id":37285,"nodeType":"StructuredDocumentation","src":"898:46:41","text":"@param dfmm_ Address of the DFMM contract."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":37288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37287,"mutability":"mutable","name":"dfmm_","nameLocation":"969:5:41","nodeType":"VariableDeclaration","scope":37295,"src":"961:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37286,"name":"address","nodeType":"ElementaryTypeName","src":"961:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"960:15:41"},"returnParameters":{"id":37289,"nodeType":"ParameterList","parameters":[],"src":"976:0:41"},"scope":37911,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":37297,"nodeType":"ErrorDefinition","src":"1060:23:41","nodes":[],"errorSelector":"e8a38a61","name":"InvalidWeightX","nameLocation":"1066:14:41","parameters":{"id":37296,"nodeType":"ParameterList","parameters":[],"src":"1080:2:41"}},{"id":37313,"nodeType":"ModifierDefinition","src":"1145:97:41","nodes":[],"body":{"id":37312,"nodeType":"Block","src":"1165:77:41","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":37306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":37300,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1179:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":37301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1183:6:41","memberName":"sender","nodeType":"MemberAccess","src":"1179:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":37304,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37275,"src":"1201:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":37303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1193:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":37302,"name":"address","nodeType":"ElementaryTypeName","src":"1193:7:41","typeDescriptions":{}}},"id":37305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1193:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1179:27:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37310,"nodeType":"IfStatement","src":"1175:49:41","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":37307,"name":"NotDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29739,"src":"1215:7:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":37308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1215:9:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37309,"nodeType":"RevertStatement","src":"1208:16:41"}},{"id":37311,"nodeType":"PlaceholderStatement","src":"1234:1:41"}]},"documentation":{"id":37298,"nodeType":"StructuredDocumentation","src":"1089:51:41","text":"@dev Restricts the caller to the DFMM contract."},"name":"onlyDFMM","nameLocation":"1154:8:41","parameters":{"id":37299,"nodeType":"ParameterList","parameters":[],"src":"1162:2:41"},"virtual":false,"visibility":"internal"},{"id":37348,"nodeType":"FunctionDefinition","src":"1278:419:41","nodes":[],"body":{"id":37347,"nodeType":"Block","src":"1583:114:41","nodes":[],"statements":[{"expression":{"id":37345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":37335,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37325,"src":"1594:5:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":37336,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37327,"src":"1601:9:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":37337,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37329,"src":"1612:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37338,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37331,"src":"1622:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37339,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37333,"src":"1632:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},null,null,null],"id":37340,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1593:57:41","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$__$__$__$","typeString":"tuple(bool,int256,uint256,uint256,uint256,,,)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37342,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37318,"src":"1677:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37343,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37320,"src":"1685:4:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":37341,"name":"_decodeInit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37457,"src":"1665:11:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bool_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$","typeString":"function (uint256,bytes calldata) returns (bool,int256,uint256,uint256,uint256,uint256,uint256,address)"}},"id":37344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1665:25:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$","typeString":"tuple(bool,int256,uint256,uint256,uint256,uint256,uint256,address)"}},"src":"1593:97:41","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37346,"nodeType":"ExpressionStatement","src":"1593:97:41"}]},"baseFunctions":[29762],"documentation":{"id":37314,"nodeType":"StructuredDocumentation","src":"1248:25:41","text":"@inheritdoc IStrategy"},"functionSelector":"73cb2d03","implemented":true,"kind":"function","modifiers":[{"id":37323,"kind":"modifierInvocation","modifierName":{"id":37322,"name":"onlyDFMM","nameLocations":["1393:8:41"],"nodeType":"IdentifierPath","referencedDeclaration":37313,"src":"1393:8:41"},"nodeType":"ModifierInvocation","src":"1393:8:41"}],"name":"init","nameLocation":"1287:4:41","parameters":{"id":37321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37348,"src":"1301:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37315,"name":"address","nodeType":"ElementaryTypeName","src":"1301:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37318,"mutability":"mutable","name":"poolId","nameLocation":"1326:6:41","nodeType":"VariableDeclaration","scope":37348,"src":"1318:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37317,"name":"uint256","nodeType":"ElementaryTypeName","src":"1318:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37320,"mutability":"mutable","name":"data","nameLocation":"1357:4:41","nodeType":"VariableDeclaration","scope":37348,"src":"1342:19:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":37319,"name":"bytes","nodeType":"ElementaryTypeName","src":"1342:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1291:76:41"},"returnParameters":{"id":37334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37325,"mutability":"mutable","name":"valid","nameLocation":"1437:5:41","nodeType":"VariableDeclaration","scope":37348,"src":"1432:10:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37324,"name":"bool","nodeType":"ElementaryTypeName","src":"1432:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37327,"mutability":"mutable","name":"invariant","nameLocation":"1463:9:41","nodeType":"VariableDeclaration","scope":37348,"src":"1456:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":37326,"name":"int256","nodeType":"ElementaryTypeName","src":"1456:6:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":37329,"mutability":"mutable","name":"reserveX","nameLocation":"1494:8:41","nodeType":"VariableDeclaration","scope":37348,"src":"1486:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37328,"name":"uint256","nodeType":"ElementaryTypeName","src":"1486:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37331,"mutability":"mutable","name":"reserveY","nameLocation":"1524:8:41","nodeType":"VariableDeclaration","scope":37348,"src":"1516:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37330,"name":"uint256","nodeType":"ElementaryTypeName","src":"1516:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37333,"mutability":"mutable","name":"totalLiquidity","nameLocation":"1554:14:41","nodeType":"VariableDeclaration","scope":37348,"src":"1546:22:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37332,"name":"uint256","nodeType":"ElementaryTypeName","src":"1546:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1418:160:41"},"scope":37911,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":37457,"nodeType":"FunctionDefinition","src":"1703:1093:41","nodes":[],"body":{"id":37456,"nodeType":"Block","src":"2065:731:41","nodes":[],"statements":[{"expression":{"id":37395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":37371,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"2076:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37372,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37361,"src":"2086:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37373,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37363,"src":"2096:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37374,"name":"wX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37365,"src":"2112:2:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37375,"name":"swapFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37367,"src":"2116:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37376,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37369,"src":"2125:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":37377,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2075:61:41","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$","typeString":"tuple(uint256,uint256,uint256,uint256,uint256,address)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37380,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37352,"src":"2163:4:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":37382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2170:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":37381,"name":"uint256","nodeType":"ElementaryTypeName","src":"2170:7:41","typeDescriptions":{}}},{"id":37384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2179:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":37383,"name":"uint256","nodeType":"ElementaryTypeName","src":"2179:7:41","typeDescriptions":{}}},{"id":37386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2188:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":37385,"name":"uint256","nodeType":"ElementaryTypeName","src":"2188:7:41","typeDescriptions":{}}},{"id":37388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2197:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":37387,"name":"uint256","nodeType":"ElementaryTypeName","src":"2197:7:41","typeDescriptions":{}}},{"id":37390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2206:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":37389,"name":"uint256","nodeType":"ElementaryTypeName","src":"2206:7:41","typeDescriptions":{}}},{"id":37392,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2215:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":37391,"name":"address","nodeType":"ElementaryTypeName","src":"2215:7:41","typeDescriptions":{}}}],"id":37393,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2169:54:41","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_address_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256),type(uint256),type(uint256),type(address))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_address_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256),type(uint256),type(uint256),type(address))"}],"expression":{"id":37378,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2139:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2156:6:41","memberName":"decode","nodeType":"MemberAccess","src":"2139:23:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":37394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2139:85:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_payable_$","typeString":"tuple(uint256,uint256,uint256,uint256,uint256,address payable)"}},"src":"2075:149:41","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37396,"nodeType":"ExpressionStatement","src":"2075:149:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37397,"name":"wX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37365,"src":"2239:2:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":37398,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"2245:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2239:9:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37404,"nodeType":"IfStatement","src":"2235:63:41","trueBody":{"id":37403,"nodeType":"Block","src":"2250:48:41","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":37400,"name":"InvalidWeightX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37297,"src":"2271:14:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":37401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2271:16:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37402,"nodeType":"RevertStatement","src":"2264:23:41"}]}},{"expression":{"id":37411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"baseExpression":{"id":37405,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37284,"src":"2308:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$37262_storage_$","typeString":"mapping(uint256 => struct G3M.InternalParams storage ref)"}},"id":37407,"indexExpression":{"id":37406,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37350,"src":"2323:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2308:22:41","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$37262_storage","typeString":"struct G3M.InternalParams storage ref"}},"id":37408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2331:2:41","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37257,"src":"2308:25:41","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":37409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2334:17:41","memberName":"lastComputedValue","nodeType":"MemberAccess","referencedDeclaration":29844,"src":"2308:43:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37410,"name":"wX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37365,"src":"2354:2:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2308:48:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37412,"nodeType":"ExpressionStatement","src":"2308:48:41"},{"expression":{"id":37418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":37413,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37284,"src":"2366:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$37262_storage_$","typeString":"mapping(uint256 => struct G3M.InternalParams storage ref)"}},"id":37415,"indexExpression":{"id":37414,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37350,"src":"2381:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2366:22:41","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$37262_storage","typeString":"struct G3M.InternalParams storage ref"}},"id":37416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2389:7:41","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":37259,"src":"2366:30:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37417,"name":"swapFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37367,"src":"2399:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2366:40:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37419,"nodeType":"ExpressionStatement","src":"2366:40:41"},{"expression":{"id":37425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":37420,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37284,"src":"2416:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$37262_storage_$","typeString":"mapping(uint256 => struct G3M.InternalParams storage ref)"}},"id":37422,"indexExpression":{"id":37421,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37350,"src":"2431:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2416:22:41","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$37262_storage","typeString":"struct G3M.InternalParams storage ref"}},"id":37423,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2439:10:41","memberName":"controller","nodeType":"MemberAccess","referencedDeclaration":37261,"src":"2416:33:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37424,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37369,"src":"2452:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2416:46:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37426,"nodeType":"ExpressionStatement","src":"2416:46:41"},{"expression":{"id":37442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37427,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37357,"src":"2473:9:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37430,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"2521:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37431,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37361,"src":"2543:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37432,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37363,"src":"2565:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":37436,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37350,"src":"2618:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37435,"name":"getPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37866,"src":"2604:13:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) view returns (bytes memory)"}},"id":37437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2604:21:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":37438,"name":"G3MParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37272,"src":"2628:9:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}}],"id":37439,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2627:11:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}],"expression":{"id":37433,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2593:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2597:6:41","memberName":"decode","nodeType":"MemberAccess","src":"2593:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":37440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2593:46:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"expression":{"id":37428,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"2485:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":37429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2492:15:41","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":38112,"src":"2485:22:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct G3M.G3MParams memory) pure returns (int256)"}},"id":37441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2485:164:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2473:176:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":37443,"nodeType":"ExpressionStatement","src":"2473:176:41"},{"expression":{"id":37454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37444,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2736:5:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":37453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":37449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2744:10:41","subExpression":{"components":[{"id":37445,"name":"EPSILON","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30665,"src":"2746:7:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":37446,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2745:9:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37448,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37357,"src":"2757:9:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2744:22:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":37452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37450,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37357,"src":"2770:9:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37451,"name":"EPSILON","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30665,"src":"2782:7:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2770:19:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2744:45:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2736:53:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37455,"nodeType":"ExpressionStatement","src":"2736:53:41"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_decodeInit","nameLocation":"1712:11:41","parameters":{"id":37353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37350,"mutability":"mutable","name":"poolId","nameLocation":"1741:6:41","nodeType":"VariableDeclaration","scope":37457,"src":"1733:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37349,"name":"uint256","nodeType":"ElementaryTypeName","src":"1733:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37352,"mutability":"mutable","name":"data","nameLocation":"1772:4:41","nodeType":"VariableDeclaration","scope":37457,"src":"1757:19:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":37351,"name":"bytes","nodeType":"ElementaryTypeName","src":"1757:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1723:59:41"},"returnParameters":{"id":37370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37355,"mutability":"mutable","name":"valid","nameLocation":"1834:5:41","nodeType":"VariableDeclaration","scope":37457,"src":"1829:10:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37354,"name":"bool","nodeType":"ElementaryTypeName","src":"1829:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37357,"mutability":"mutable","name":"invariant","nameLocation":"1860:9:41","nodeType":"VariableDeclaration","scope":37457,"src":"1853:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":37356,"name":"int256","nodeType":"ElementaryTypeName","src":"1853:6:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":37359,"mutability":"mutable","name":"reserveX","nameLocation":"1891:8:41","nodeType":"VariableDeclaration","scope":37457,"src":"1883:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37358,"name":"uint256","nodeType":"ElementaryTypeName","src":"1883:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37361,"mutability":"mutable","name":"reserveY","nameLocation":"1921:8:41","nodeType":"VariableDeclaration","scope":37457,"src":"1913:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37360,"name":"uint256","nodeType":"ElementaryTypeName","src":"1913:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37363,"mutability":"mutable","name":"totalLiquidity","nameLocation":"1951:14:41","nodeType":"VariableDeclaration","scope":37457,"src":"1943:22:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37362,"name":"uint256","nodeType":"ElementaryTypeName","src":"1943:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37365,"mutability":"mutable","name":"wX","nameLocation":"1987:2:41","nodeType":"VariableDeclaration","scope":37457,"src":"1979:10:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37364,"name":"uint256","nodeType":"ElementaryTypeName","src":"1979:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37367,"mutability":"mutable","name":"swapFee","nameLocation":"2011:7:41","nodeType":"VariableDeclaration","scope":37457,"src":"2003:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37366,"name":"uint256","nodeType":"ElementaryTypeName","src":"2003:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37369,"mutability":"mutable","name":"controller","nameLocation":"2040:10:41","nodeType":"VariableDeclaration","scope":37457,"src":"2032:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37368,"name":"address","nodeType":"ElementaryTypeName","src":"2032:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1815:245:41"},"scope":37911,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":37524,"nodeType":"FunctionDefinition","src":"2832:689:41","nodes":[],"body":{"id":37523,"nodeType":"Block","src":"3157:364:41","nodes":[],"statements":[{"expression":{"id":37492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":37477,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37471,"src":"3168:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37478,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37473,"src":"3178:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37479,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37475,"src":"3188:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":37480,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"3167:36:41","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37483,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37464,"src":"3229:4:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":37485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3236:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":37484,"name":"uint256","nodeType":"ElementaryTypeName","src":"3236:7:41","typeDescriptions":{}}},{"id":37487,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3245:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":37486,"name":"uint256","nodeType":"ElementaryTypeName","src":"3245:7:41","typeDescriptions":{}}},{"id":37489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3254:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":37488,"name":"uint256","nodeType":"ElementaryTypeName","src":"3254:7:41","typeDescriptions":{}}}],"id":37490,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3235:27:41","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}],"expression":{"id":37481,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3218:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3222:6:41","memberName":"decode","nodeType":"MemberAccess","src":"3218:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":37491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3218:45:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"src":"3167:96:41","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37493,"nodeType":"ExpressionStatement","src":"3167:96:41"},{"expression":{"id":37509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37494,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37469,"src":"3274:9:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37497,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37471,"src":"3322:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37498,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37473,"src":"3344:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37499,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37475,"src":"3366:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":37503,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37462,"src":"3419:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37502,"name":"getPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37866,"src":"3405:13:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) view returns (bytes memory)"}},"id":37504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3405:21:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":37505,"name":"G3MParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37272,"src":"3429:9:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}}],"id":37506,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3428:11:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}],"expression":{"id":37500,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3394:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3398:6:41","memberName":"decode","nodeType":"MemberAccess","src":"3394:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":37507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3394:46:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"expression":{"id":37495,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"3286:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":37496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3293:15:41","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":38112,"src":"3286:22:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct G3M.G3MParams memory) pure returns (int256)"}},"id":37508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3286:164:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3274:176:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":37510,"nodeType":"ExpressionStatement","src":"3274:176:41"},{"expression":{"id":37521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37511,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37467,"src":"3461:5:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":37520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":37516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"3469:10:41","subExpression":{"components":[{"id":37512,"name":"EPSILON","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30665,"src":"3471:7:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":37513,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3470:9:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37515,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37469,"src":"3482:9:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3469:22:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":37519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37517,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37469,"src":"3495:9:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37518,"name":"EPSILON","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30665,"src":"3507:7:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3495:19:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3469:45:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3461:53:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37522,"nodeType":"ExpressionStatement","src":"3461:53:41"}]},"baseFunctions":[29787],"documentation":{"id":37458,"nodeType":"StructuredDocumentation","src":"2802:25:41","text":"@inheritdoc IStrategy"},"functionSelector":"8a04bdd5","implemented":true,"kind":"function","modifiers":[],"name":"validateAllocateOrDeallocate","nameLocation":"2841:28:41","parameters":{"id":37465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37460,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37524,"src":"2879:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37459,"name":"address","nodeType":"ElementaryTypeName","src":"2879:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37462,"mutability":"mutable","name":"poolId","nameLocation":"2904:6:41","nodeType":"VariableDeclaration","scope":37524,"src":"2896:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37461,"name":"uint256","nodeType":"ElementaryTypeName","src":"2896:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37464,"mutability":"mutable","name":"data","nameLocation":"2935:4:41","nodeType":"VariableDeclaration","scope":37524,"src":"2920:19:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":37463,"name":"bytes","nodeType":"ElementaryTypeName","src":"2920:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2869:76:41"},"returnParameters":{"id":37476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37467,"mutability":"mutable","name":"valid","nameLocation":"3011:5:41","nodeType":"VariableDeclaration","scope":37524,"src":"3006:10:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37466,"name":"bool","nodeType":"ElementaryTypeName","src":"3006:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37469,"mutability":"mutable","name":"invariant","nameLocation":"3037:9:41","nodeType":"VariableDeclaration","scope":37524,"src":"3030:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":37468,"name":"int256","nodeType":"ElementaryTypeName","src":"3030:6:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":37471,"mutability":"mutable","name":"reserveX","nameLocation":"3068:8:41","nodeType":"VariableDeclaration","scope":37524,"src":"3060:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37470,"name":"uint256","nodeType":"ElementaryTypeName","src":"3060:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37473,"mutability":"mutable","name":"reserveY","nameLocation":"3098:8:41","nodeType":"VariableDeclaration","scope":37524,"src":"3090:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37472,"name":"uint256","nodeType":"ElementaryTypeName","src":"3090:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37475,"mutability":"mutable","name":"totalLiquidity","nameLocation":"3128:14:41","nodeType":"VariableDeclaration","scope":37524,"src":"3120:22:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37474,"name":"uint256","nodeType":"ElementaryTypeName","src":"3120:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2992:160:41"},"scope":37911,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37711,"nodeType":"FunctionDefinition","src":"3557:1610:41","nodes":[],"body":{"id":37710,"nodeType":"Block","src":"3886:1281:41","nodes":[],"statements":[{"assignments":[37548],"declarations":[{"constant":false,"id":37548,"mutability":"mutable","name":"params","nameLocation":"3913:6:41","nodeType":"VariableDeclaration","scope":37710,"src":"3896:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":37547,"nodeType":"UserDefinedTypeName","pathNode":{"id":37546,"name":"G3MParams","nameLocations":["3896:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"3896:9:41"},"referencedDeclaration":37272,"src":"3896:9:41","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"id":37557,"initialValue":{"arguments":[{"arguments":[{"id":37552,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37529,"src":"3947:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37551,"name":"getPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37866,"src":"3933:13:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) view returns (bytes memory)"}},"id":37553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3933:21:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":37554,"name":"G3MParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37272,"src":"3957:9:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}}],"id":37555,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3956:11:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}],"expression":{"id":37549,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3922:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3926:6:41","memberName":"decode","nodeType":"MemberAccess","src":"3922:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":37556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3922:46:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"nodeType":"VariableDeclarationStatement","src":"3896:72:41"},{"assignments":[37559,37561,37563],"declarations":[{"constant":false,"id":37559,"mutability":"mutable","name":"startRx","nameLocation":"3988:7:41","nodeType":"VariableDeclaration","scope":37710,"src":"3980:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37558,"name":"uint256","nodeType":"ElementaryTypeName","src":"3980:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37561,"mutability":"mutable","name":"startRy","nameLocation":"4005:7:41","nodeType":"VariableDeclaration","scope":37710,"src":"3997:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37560,"name":"uint256","nodeType":"ElementaryTypeName","src":"3997:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37563,"mutability":"mutable","name":"startL","nameLocation":"4022:6:41","nodeType":"VariableDeclaration","scope":37710,"src":"4014:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37562,"name":"uint256","nodeType":"ElementaryTypeName","src":"4014:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37570,"initialValue":{"arguments":[{"id":37568,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37529,"src":"4080:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":37565,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37275,"src":"4050:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":37564,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"4044:5:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":37566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4044:11:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDFMM_$29730","typeString":"contract IDFMM"}},"id":37567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4056:23:41","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29710,"src":"4044:35:41","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":37569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4044:43:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"3979:108:41"},{"expression":{"id":37586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":37571,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37540,"src":"4099:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37572,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37542,"src":"4107:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37573,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37544,"src":"4115:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":37574,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"4098:23:41","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37577,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37531,"src":"4135:4:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":37579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4142:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":37578,"name":"uint256","nodeType":"ElementaryTypeName","src":"4142:7:41","typeDescriptions":{}}},{"id":37581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4151:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":37580,"name":"uint256","nodeType":"ElementaryTypeName","src":"4151:7:41","typeDescriptions":{}}},{"id":37583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4160:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":37582,"name":"uint256","nodeType":"ElementaryTypeName","src":"4160:7:41","typeDescriptions":{}}}],"id":37584,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4141:27:41","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}],"expression":{"id":37575,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4124:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4128:6:41","memberName":"decode","nodeType":"MemberAccess","src":"4124:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":37585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4124:45:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"src":"4098:71:41","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37587,"nodeType":"ExpressionStatement","src":"4098:71:41"},{"assignments":[37589],"declarations":[{"constant":false,"id":37589,"mutability":"mutable","name":"amountIn","nameLocation":"4188:8:41","nodeType":"VariableDeclaration","scope":37710,"src":"4180:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37588,"name":"uint256","nodeType":"ElementaryTypeName","src":"4180:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37590,"nodeType":"VariableDeclarationStatement","src":"4180:16:41"},{"assignments":[37592],"declarations":[{"constant":false,"id":37592,"mutability":"mutable","name":"fees","nameLocation":"4214:4:41","nodeType":"VariableDeclaration","scope":37710,"src":"4206:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37591,"name":"uint256","nodeType":"ElementaryTypeName","src":"4206:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37593,"nodeType":"VariableDeclarationStatement","src":"4206:12:41"},{"assignments":[37595],"declarations":[{"constant":false,"id":37595,"mutability":"mutable","name":"minLiquidityDelta","nameLocation":"4236:17:41","nodeType":"VariableDeclaration","scope":37710,"src":"4228:25:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37594,"name":"uint256","nodeType":"ElementaryTypeName","src":"4228:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37596,"nodeType":"VariableDeclarationStatement","src":"4228:25:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37597,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37540,"src":"4268:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":37598,"name":"startRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37559,"src":"4277:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4268:16:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37625,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37542,"src":"4476:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":37626,"name":"startRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37561,"src":"4485:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4476:16:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":37657,"nodeType":"Block","src":"4680:83:41","statements":[{"expression":{"arguments":[{"hexValue":"696e76616c696420737761703a20696e70757473207820616e6420792068617665207468652073616d65207369676e21","id":37654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4701:50:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c54ddfd1f745104b0bff565f04a31914e6f8f946d592485aea78017952f8de3","typeString":"literal_string \"invalid swap: inputs x and y have the same sign!\""},"value":"invalid swap: inputs x and y have the same sign!"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6c54ddfd1f745104b0bff565f04a31914e6f8f946d592485aea78017952f8de3","typeString":"literal_string \"invalid swap: inputs x and y have the same sign!\""}],"id":37653,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4694:6:41","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":37655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4694:58:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37656,"nodeType":"ExpressionStatement","src":"4694:58:41"}]},"id":37658,"nodeType":"IfStatement","src":"4472:291:41","trueBody":{"id":37652,"nodeType":"Block","src":"4494:180:41","statements":[{"expression":{"id":37632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37628,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37589,"src":"4508:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37629,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37542,"src":"4519:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":37630,"name":"startRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37561,"src":"4528:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4519:16:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4508:27:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37633,"nodeType":"ExpressionStatement","src":"4508:27:41"},{"expression":{"id":37640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37634,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37592,"src":"4549:4:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":37637,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37548,"src":"4574:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":37638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4581:7:41","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":37269,"src":"4574:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37635,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37589,"src":"4556:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4565:8:41","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"4556:17:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":37639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4556:33:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4549:40:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37641,"nodeType":"ExpressionStatement","src":"4549:40:41"},{"expression":{"id":37650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37642,"name":"minLiquidityDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37595,"src":"4603:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":37648,"name":"startRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37561,"src":"4655:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":37645,"name":"startL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37563,"src":"4638:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37643,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37592,"src":"4624:4:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4629:8:41","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"4624:13:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":37646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4624:21:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4646:8:41","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"4624:30:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":37649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4624:39:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4603:60:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37651,"nodeType":"ExpressionStatement","src":"4603:60:41"}]}},"id":37659,"nodeType":"IfStatement","src":"4264:499:41","trueBody":{"id":37624,"nodeType":"Block","src":"4286:180:41","statements":[{"expression":{"id":37604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37600,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37589,"src":"4300:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37601,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37540,"src":"4311:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":37602,"name":"startRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37559,"src":"4320:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4311:16:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4300:27:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37605,"nodeType":"ExpressionStatement","src":"4300:27:41"},{"expression":{"id":37612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37606,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37592,"src":"4341:4:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":37609,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37548,"src":"4366:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":37610,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4373:7:41","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":37269,"src":"4366:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37607,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37589,"src":"4348:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4357:8:41","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"4348:17:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":37611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4348:33:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4341:40:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37613,"nodeType":"ExpressionStatement","src":"4341:40:41"},{"expression":{"id":37622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37614,"name":"minLiquidityDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37595,"src":"4395:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":37620,"name":"startRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37559,"src":"4447:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":37617,"name":"startL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37563,"src":"4430:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37615,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37592,"src":"4416:4:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4421:8:41","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"4416:13:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":37618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4416:21:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4438:8:41","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"4416:30:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":37621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4416:39:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4395:60:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37623,"nodeType":"ExpressionStatement","src":"4395:60:41"}]}},{"assignments":[37661],"declarations":[{"constant":false,"id":37661,"mutability":"mutable","name":"poolId","nameLocation":"4781:6:41","nodeType":"VariableDeclaration","scope":37710,"src":"4773:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37660,"name":"uint256","nodeType":"ElementaryTypeName","src":"4773:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37663,"initialValue":{"id":37662,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37529,"src":"4790:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4773:23:41"},{"expression":{"id":37686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37664,"name":"liquidityDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37538,"src":"4807:14:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":37685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":37667,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37544,"src":"4831:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4824:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":37665,"name":"int256","nodeType":"ElementaryTypeName","src":"4824:6:41","typeDescriptions":{}}},"id":37668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4824:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"arguments":[{"id":37673,"name":"startRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37559,"src":"4925:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37674,"name":"startRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37561,"src":"4934:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":37678,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37661,"src":"4968:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37677,"name":"getPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37866,"src":"4954:13:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) view returns (bytes memory)"}},"id":37679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4954:21:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":37680,"name":"G3MParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37272,"src":"4978:9:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}}],"id":37681,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4977:11:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}],"expression":{"id":37675,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4943:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4947:6:41","memberName":"decode","nodeType":"MemberAccess","src":"4943:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":37682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4943:46:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"expression":{"id":37671,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"4876:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":37672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4883:20:41","memberName":"computeNextLiquidity","nodeType":"MemberAccess","referencedDeclaration":38157,"src":"4876:27:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,struct G3M.G3MParams memory) pure returns (uint256)"}},"id":37683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4876:131:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4852:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":37669,"name":"int256","nodeType":"ElementaryTypeName","src":"4852:6:41","typeDescriptions":{}}},"id":37684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4852:169:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4824:197:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4807:214:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":37687,"nodeType":"ExpressionStatement","src":"4807:214:41"},{"expression":{"id":37696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37688,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37536,"src":"5032:9:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37691,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37540,"src":"5067:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37692,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37542,"src":"5075:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37693,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37544,"src":"5083:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37694,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37548,"src":"5090:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"expression":{"id":37689,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"5044:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":37690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5051:15:41","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":38112,"src":"5044:22:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct G3M.G3MParams memory) pure returns (int256)"}},"id":37695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5044:53:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5032:65:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":37697,"nodeType":"ExpressionStatement","src":"5032:65:41"},{"expression":{"id":37708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37698,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37534,"src":"5107:5:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":37707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":37703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"5115:10:41","subExpression":{"components":[{"id":37699,"name":"EPSILON","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30665,"src":"5117:7:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":37700,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5116:9:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37702,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37536,"src":"5128:9:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5115:22:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":37706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37704,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37536,"src":"5141:9:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37705,"name":"EPSILON","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30665,"src":"5153:7:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5141:19:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5115:45:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5107:53:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37709,"nodeType":"ExpressionStatement","src":"5107:53:41"}]},"baseFunctions":[29808],"documentation":{"id":37525,"nodeType":"StructuredDocumentation","src":"3527:25:41","text":"@inheritdoc IStrategy"},"functionSelector":"68bd3e38","implemented":true,"kind":"function","modifiers":[],"name":"validateSwap","nameLocation":"3566:12:41","parameters":{"id":37532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37527,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37711,"src":"3588:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37526,"name":"address","nodeType":"ElementaryTypeName","src":"3588:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37529,"mutability":"mutable","name":"poolId","nameLocation":"3613:6:41","nodeType":"VariableDeclaration","scope":37711,"src":"3605:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37528,"name":"uint256","nodeType":"ElementaryTypeName","src":"3605:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37531,"mutability":"mutable","name":"data","nameLocation":"3642:4:41","nodeType":"VariableDeclaration","scope":37711,"src":"3629:17:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37530,"name":"bytes","nodeType":"ElementaryTypeName","src":"3629:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3578:74:41"},"returnParameters":{"id":37545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37534,"mutability":"mutable","name":"valid","nameLocation":"3718:5:41","nodeType":"VariableDeclaration","scope":37711,"src":"3713:10:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37533,"name":"bool","nodeType":"ElementaryTypeName","src":"3713:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37536,"mutability":"mutable","name":"invariant","nameLocation":"3744:9:41","nodeType":"VariableDeclaration","scope":37711,"src":"3737:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":37535,"name":"int256","nodeType":"ElementaryTypeName","src":"3737:6:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":37538,"mutability":"mutable","name":"liquidityDelta","nameLocation":"3774:14:41","nodeType":"VariableDeclaration","scope":37711,"src":"3767:21:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":37537,"name":"int256","nodeType":"ElementaryTypeName","src":"3767:6:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":37540,"mutability":"mutable","name":"nextRx","nameLocation":"3810:6:41","nodeType":"VariableDeclaration","scope":37711,"src":"3802:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37539,"name":"uint256","nodeType":"ElementaryTypeName","src":"3802:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37542,"mutability":"mutable","name":"nextRy","nameLocation":"3838:6:41","nodeType":"VariableDeclaration","scope":37711,"src":"3830:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37541,"name":"uint256","nodeType":"ElementaryTypeName","src":"3830:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37544,"mutability":"mutable","name":"nextL","nameLocation":"3866:5:41","nodeType":"VariableDeclaration","scope":37711,"src":"3858:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37543,"name":"uint256","nodeType":"ElementaryTypeName","src":"3858:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3699:182:41"},"scope":37911,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37810,"nodeType":"FunctionDefinition","src":"5203:924:41","nodes":[],"body":{"id":37809,"nodeType":"Block","src":"5320:807:41","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":37728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37723,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37714,"src":"5334:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"baseExpression":{"id":37724,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37284,"src":"5344:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$37262_storage_$","typeString":"mapping(uint256 => struct G3M.InternalParams storage ref)"}},"id":37726,"indexExpression":{"id":37725,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37716,"src":"5359:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5344:22:41","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$37262_storage","typeString":"struct G3M.InternalParams storage ref"}},"id":37727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5367:10:41","memberName":"controller","nodeType":"MemberAccess","referencedDeclaration":37261,"src":"5344:33:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5334:43:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37732,"nodeType":"IfStatement","src":"5330:71:41","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":37729,"name":"InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29742,"src":"5386:13:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":37730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5386:15:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37731,"nodeType":"RevertStatement","src":"5379:22:41"}},{"assignments":[37737],"declarations":[{"constant":false,"id":37737,"mutability":"mutable","name":"updateCode","nameLocation":"5432:10:41","nodeType":"VariableDeclaration","scope":37809,"src":"5411:31:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_G3MUpdateCode_$37927","typeString":"enum G3MLib.G3MUpdateCode"},"typeName":{"id":37736,"nodeType":"UserDefinedTypeName","pathNode":{"id":37735,"name":"G3MLib.G3MUpdateCode","nameLocations":["5411:6:41","5418:13:41"],"nodeType":"IdentifierPath","referencedDeclaration":37927,"src":"5411:20:41"},"referencedDeclaration":37927,"src":"5411:20:41","typeDescriptions":{"typeIdentifier":"t_enum$_G3MUpdateCode_$37927","typeString":"enum G3MLib.G3MUpdateCode"}},"visibility":"internal"}],"id":37745,"initialValue":{"arguments":[{"id":37740,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37718,"src":"5468:4:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"expression":{"id":37741,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"5475:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":37742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5482:13:41","memberName":"G3MUpdateCode","nodeType":"MemberAccess","referencedDeclaration":37927,"src":"5475:20:41","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_G3MUpdateCode_$37927_$","typeString":"type(enum G3MLib.G3MUpdateCode)"}}],"id":37743,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5474:22:41","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_G3MUpdateCode_$37927_$","typeString":"type(enum G3MLib.G3MUpdateCode)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_enum$_G3MUpdateCode_$37927_$","typeString":"type(enum G3MLib.G3MUpdateCode)"}],"expression":{"id":37738,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5457:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5461:6:41","memberName":"decode","nodeType":"MemberAccess","src":"5457:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":37744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5457:40:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_G3MUpdateCode_$37927","typeString":"enum G3MLib.G3MUpdateCode"}},"nodeType":"VariableDeclarationStatement","src":"5411:86:41"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_G3MUpdateCode_$37927","typeString":"enum G3MLib.G3MUpdateCode"},"id":37750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37746,"name":"updateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37737,"src":"5512:10:41","typeDescriptions":{"typeIdentifier":"t_enum$_G3MUpdateCode_$37927","typeString":"enum G3MLib.G3MUpdateCode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":37747,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"5526:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":37748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5533:13:41","memberName":"G3MUpdateCode","nodeType":"MemberAccess","referencedDeclaration":37927,"src":"5526:20:41","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_G3MUpdateCode_$37927_$","typeString":"type(enum G3MLib.G3MUpdateCode)"}},"id":37749,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5547:7:41","memberName":"SwapFee","nodeType":"MemberAccess","referencedDeclaration":37924,"src":"5526:28:41","typeDescriptions":{"typeIdentifier":"t_enum$_G3MUpdateCode_$37927","typeString":"enum G3MLib.G3MUpdateCode"}},"src":"5512:42:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_G3MUpdateCode_$37927","typeString":"enum G3MLib.G3MUpdateCode"},"id":37766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37762,"name":"updateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37737,"src":"5652:10:41","typeDescriptions":{"typeIdentifier":"t_enum$_G3MUpdateCode_$37927","typeString":"enum G3MLib.G3MUpdateCode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":37763,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"5666:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":37764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5673:13:41","memberName":"G3MUpdateCode","nodeType":"MemberAccess","referencedDeclaration":37927,"src":"5666:20:41","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_G3MUpdateCode_$37927_$","typeString":"type(enum G3MLib.G3MUpdateCode)"}},"id":37765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5687:7:41","memberName":"WeightX","nodeType":"MemberAccess","referencedDeclaration":37925,"src":"5666:28:41","typeDescriptions":{"typeIdentifier":"t_enum$_G3MUpdateCode_$37927","typeString":"enum G3MLib.G3MUpdateCode"}},"src":"5652:42:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_G3MUpdateCode_$37927","typeString":"enum G3MLib.G3MUpdateCode"},"id":37790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37786,"name":"updateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37737,"src":"5905:10:41","typeDescriptions":{"typeIdentifier":"t_enum$_G3MUpdateCode_$37927","typeString":"enum G3MLib.G3MUpdateCode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":37787,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"5919:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":37788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5926:13:41","memberName":"G3MUpdateCode","nodeType":"MemberAccess","referencedDeclaration":37927,"src":"5919:20:41","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_G3MUpdateCode_$37927_$","typeString":"type(enum G3MLib.G3MUpdateCode)"}},"id":37789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5940:10:41","memberName":"Controller","nodeType":"MemberAccess","referencedDeclaration":37926,"src":"5919:31:41","typeDescriptions":{"typeIdentifier":"t_enum$_G3MUpdateCode_$37927","typeString":"enum G3MLib.G3MUpdateCode"}},"src":"5905:45:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":37805,"nodeType":"Block","src":"6070:51:41","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":37802,"name":"InvalidUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29736,"src":"6091:17:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":37803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6091:19:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37804,"nodeType":"RevertStatement","src":"6084:26:41"}]},"id":37806,"nodeType":"IfStatement","src":"5901:220:41","trueBody":{"id":37801,"nodeType":"Block","src":"5952:112:41","statements":[{"expression":{"id":37799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":37791,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37284,"src":"5966:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$37262_storage_$","typeString":"mapping(uint256 => struct G3M.InternalParams storage ref)"}},"id":37793,"indexExpression":{"id":37792,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37716,"src":"5981:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5966:22:41","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$37262_storage","typeString":"struct G3M.InternalParams storage ref"}},"id":37794,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5989:10:41","memberName":"controller","nodeType":"MemberAccess","referencedDeclaration":37261,"src":"5966:33:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37797,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37718,"src":"6048:4:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":37795,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"6018:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":37796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6025:22:41","memberName":"decodeControllerUpdate","nodeType":"MemberAccess","referencedDeclaration":38044,"src":"6018:29:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) pure returns (address)"}},"id":37798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6018:35:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5966:87:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37800,"nodeType":"ExpressionStatement","src":"5966:87:41"}]}},"id":37807,"nodeType":"IfStatement","src":"5648:473:41","trueBody":{"id":37785,"nodeType":"Block","src":"5696:199:41","statements":[{"assignments":[37768,37770],"declarations":[{"constant":false,"id":37768,"mutability":"mutable","name":"targetWeightX","nameLocation":"5719:13:41","nodeType":"VariableDeclaration","scope":37785,"src":"5711:21:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37767,"name":"uint256","nodeType":"ElementaryTypeName","src":"5711:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37770,"mutability":"mutable","name":"targetTimestamp","nameLocation":"5742:15:41","nodeType":"VariableDeclaration","scope":37785,"src":"5734:23:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37769,"name":"uint256","nodeType":"ElementaryTypeName","src":"5734:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37775,"initialValue":{"arguments":[{"id":37773,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37718,"src":"5804:4:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":37771,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"5777:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":37772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5784:19:41","memberName":"decodeWeightXUpdate","nodeType":"MemberAccess","referencedDeclaration":38009,"src":"5777:26:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256,uint256)"}},"id":37774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5777:32:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5710:99:41"},{"expression":{"arguments":[{"id":37781,"name":"targetWeightX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37768,"src":"5853:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37782,"name":"targetTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37770,"src":"5868:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"id":37776,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37284,"src":"5823:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$37262_storage_$","typeString":"mapping(uint256 => struct G3M.InternalParams storage ref)"}},"id":37778,"indexExpression":{"id":37777,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37716,"src":"5838:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5823:22:41","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$37262_storage","typeString":"struct G3M.InternalParams storage ref"}},"id":37779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5846:2:41","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37257,"src":"5823:25:41","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":37780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5849:3:41","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":30011,"src":"5823:29:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_DynamicParam_$29851_storage_ptr_$_t_uint256_$_t_uint256_$returns$__$attached_to$_t_struct$_DynamicParam_$29851_storage_ptr_$","typeString":"function (struct DynamicParam storage pointer,uint256,uint256)"}},"id":37783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5823:61:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37784,"nodeType":"ExpressionStatement","src":"5823:61:41"}]}},"id":37808,"nodeType":"IfStatement","src":"5508:613:41","trueBody":{"id":37761,"nodeType":"Block","src":"5556:86:41","statements":[{"expression":{"id":37759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":37751,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37284,"src":"5570:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$37262_storage_$","typeString":"mapping(uint256 => struct G3M.InternalParams storage ref)"}},"id":37753,"indexExpression":{"id":37752,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37716,"src":"5585:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5570:22:41","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$37262_storage","typeString":"struct G3M.InternalParams storage ref"}},"id":37754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5593:7:41","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":37259,"src":"5570:30:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37757,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37718,"src":"5626:4:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":37755,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"5603:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":37756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5610:15:41","memberName":"decodeFeeUpdate","nodeType":"MemberAccess","referencedDeclaration":37966,"src":"5603:22:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":37758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5603:28:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5570:61:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37760,"nodeType":"ExpressionStatement","src":"5570:61:41"}]}}]},"baseFunctions":[29817],"documentation":{"id":37712,"nodeType":"StructuredDocumentation","src":"5173:25:41","text":"@inheritdoc IStrategy"},"functionSelector":"acad2989","implemented":true,"kind":"function","modifiers":[{"id":37721,"kind":"modifierInvocation","modifierName":{"id":37720,"name":"onlyDFMM","nameLocations":["5311:8:41"],"nodeType":"IdentifierPath","referencedDeclaration":37313,"src":"5311:8:41"},"nodeType":"ModifierInvocation","src":"5311:8:41"}],"name":"update","nameLocation":"5212:6:41","parameters":{"id":37719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37714,"mutability":"mutable","name":"sender","nameLocation":"5236:6:41","nodeType":"VariableDeclaration","scope":37810,"src":"5228:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37713,"name":"address","nodeType":"ElementaryTypeName","src":"5228:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37716,"mutability":"mutable","name":"poolId","nameLocation":"5260:6:41","nodeType":"VariableDeclaration","scope":37810,"src":"5252:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37715,"name":"uint256","nodeType":"ElementaryTypeName","src":"5252:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37718,"mutability":"mutable","name":"data","nameLocation":"5291:4:41","nodeType":"VariableDeclaration","scope":37810,"src":"5276:19:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":37717,"name":"bytes","nodeType":"ElementaryTypeName","src":"5276:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5218:83:41"},"returnParameters":{"id":37722,"nodeType":"ParameterList","parameters":[],"src":"5320:0:41"},"scope":37911,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":37866,"nodeType":"FunctionDefinition","src":"6163:368:41","nodes":[],"body":{"id":37865,"nodeType":"Block","src":"6237:294:41","nodes":[],"statements":[{"assignments":[37820],"declarations":[{"constant":false,"id":37820,"mutability":"mutable","name":"params","nameLocation":"6264:6:41","nodeType":"VariableDeclaration","scope":37865,"src":"6247:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":37819,"nodeType":"UserDefinedTypeName","pathNode":{"id":37818,"name":"G3MParams","nameLocations":["6247:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"6247:9:41"},"referencedDeclaration":37272,"src":"6247:9:41","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"id":37821,"nodeType":"VariableDeclarationStatement","src":"6247:23:41"},{"expression":{"id":37831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":37822,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37820,"src":"6281:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":37824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6288:2:41","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"6281:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"baseExpression":{"id":37825,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37284,"src":"6293:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$37262_storage_$","typeString":"mapping(uint256 => struct G3M.InternalParams storage ref)"}},"id":37827,"indexExpression":{"id":37826,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37813,"src":"6308:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6293:22:41","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$37262_storage","typeString":"struct G3M.InternalParams storage ref"}},"id":37828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6316:2:41","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37257,"src":"6293:25:41","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":37829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6319:10:41","memberName":"actualized","nodeType":"MemberAccess","referencedDeclaration":29925,"src":"6293:36:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_DynamicParam_$29851_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_DynamicParam_$29851_memory_ptr_$","typeString":"function (struct DynamicParam memory) view returns (uint256)"}},"id":37830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6293:38:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6281:50:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37832,"nodeType":"ExpressionStatement","src":"6281:50:41"},{"expression":{"id":37840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":37833,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37820,"src":"6341:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":37835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6348:2:41","memberName":"wY","nodeType":"MemberAccess","referencedDeclaration":37267,"src":"6341:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37836,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"6353:3:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":37837,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37820,"src":"6359:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":37838,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6366:2:41","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"6359:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6353:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6341:27:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37841,"nodeType":"ExpressionStatement","src":"6341:27:41"},{"expression":{"id":37849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":37842,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37820,"src":"6378:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":37844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6385:7:41","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":37269,"src":"6378:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":37845,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37284,"src":"6395:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$37262_storage_$","typeString":"mapping(uint256 => struct G3M.InternalParams storage ref)"}},"id":37847,"indexExpression":{"id":37846,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37813,"src":"6410:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6395:22:41","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$37262_storage","typeString":"struct G3M.InternalParams storage ref"}},"id":37848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6418:7:41","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":37259,"src":"6395:30:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6378:47:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37850,"nodeType":"ExpressionStatement","src":"6378:47:41"},{"expression":{"id":37858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":37851,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37820,"src":"6435:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":37853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6442:10:41","memberName":"controller","nodeType":"MemberAccess","referencedDeclaration":37271,"src":"6435:17:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":37854,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37284,"src":"6455:14:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$37262_storage_$","typeString":"mapping(uint256 => struct G3M.InternalParams storage ref)"}},"id":37856,"indexExpression":{"id":37855,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37813,"src":"6470:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6455:22:41","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$37262_storage","typeString":"struct G3M.InternalParams storage ref"}},"id":37857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6478:10:41","memberName":"controller","nodeType":"MemberAccess","referencedDeclaration":37261,"src":"6455:33:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6435:53:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37859,"nodeType":"ExpressionStatement","src":"6435:53:41"},{"expression":{"arguments":[{"id":37862,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37820,"src":"6517:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"expression":{"id":37860,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6506:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37861,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6510:6:41","memberName":"encode","nodeType":"MemberAccess","src":"6506:10:41","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":37863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6506:18:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":37817,"id":37864,"nodeType":"Return","src":"6499:25:41"}]},"baseFunctions":[29838],"documentation":{"id":37811,"nodeType":"StructuredDocumentation","src":"6133:25:41","text":"@inheritdoc IStrategy"},"functionSelector":"dc178355","implemented":true,"kind":"function","modifiers":[],"name":"getPoolParams","nameLocation":"6172:13:41","parameters":{"id":37814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37813,"mutability":"mutable","name":"poolId","nameLocation":"6194:6:41","nodeType":"VariableDeclaration","scope":37866,"src":"6186:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37812,"name":"uint256","nodeType":"ElementaryTypeName","src":"6186:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6185:16:41"},"returnParameters":{"id":37817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37816,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37866,"src":"6223:12:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37815,"name":"bytes","nodeType":"ElementaryTypeName","src":"6223:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6222:14:41"},"scope":37911,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":37910,"nodeType":"FunctionDefinition","src":"6567:349:41","nodes":[],"body":{"id":37909,"nodeType":"Block","src":"6684:232:41","nodes":[],"statements":[{"assignments":[37877,37879,37881],"declarations":[{"constant":false,"id":37877,"mutability":"mutable","name":"rx","nameLocation":"6703:2:41","nodeType":"VariableDeclaration","scope":37909,"src":"6695:10:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37876,"name":"uint256","nodeType":"ElementaryTypeName","src":"6695:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37879,"mutability":"mutable","name":"ry","nameLocation":"6715:2:41","nodeType":"VariableDeclaration","scope":37909,"src":"6707:10:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37878,"name":"uint256","nodeType":"ElementaryTypeName","src":"6707:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37881,"mutability":"mutable","name":"L","nameLocation":"6727:1:41","nodeType":"VariableDeclaration","scope":37909,"src":"6719:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37880,"name":"uint256","nodeType":"ElementaryTypeName","src":"6719:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37893,"initialValue":{"arguments":[{"id":37884,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37871,"src":"6755:4:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":37886,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6762:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":37885,"name":"uint256","nodeType":"ElementaryTypeName","src":"6762:7:41","typeDescriptions":{}}},{"id":37888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6771:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":37887,"name":"uint256","nodeType":"ElementaryTypeName","src":"6771:7:41","typeDescriptions":{}}},{"id":37890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6780:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":37889,"name":"uint256","nodeType":"ElementaryTypeName","src":"6780:7:41","typeDescriptions":{}}}],"id":37891,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6761:27:41","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}],"expression":{"id":37882,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6744:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6748:6:41","memberName":"decode","nodeType":"MemberAccess","src":"6744:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":37892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6744:45:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"6694:95:41"},{"expression":{"arguments":[{"id":37896,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37877,"src":"6842:2:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37897,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37879,"src":"6846:2:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37898,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37881,"src":"6850:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":37902,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37869,"src":"6878:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37901,"name":"getPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37866,"src":"6864:13:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) view returns (bytes memory)"}},"id":37903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6864:21:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":37904,"name":"G3MParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37272,"src":"6888:9:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}}],"id":37905,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6887:11:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}],"expression":{"id":37899,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6853:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6857:6:41","memberName":"decode","nodeType":"MemberAccess","src":"6853:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":37906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6853:46:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"expression":{"id":37894,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"6806:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":37895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6813:15:41","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":38112,"src":"6806:22:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct G3M.G3MParams memory) pure returns (int256)"}},"id":37907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6806:103:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":37875,"id":37908,"nodeType":"Return","src":"6799:110:41"}]},"baseFunctions":[29826],"documentation":{"id":37867,"nodeType":"StructuredDocumentation","src":"6537:25:41","text":"@inheritdoc IStrategy"},"functionSelector":"002e524b","implemented":true,"kind":"function","modifiers":[],"name":"computeSwapConstant","nameLocation":"6576:19:41","parameters":{"id":37872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37869,"mutability":"mutable","name":"poolId","nameLocation":"6613:6:41","nodeType":"VariableDeclaration","scope":37910,"src":"6605:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37868,"name":"uint256","nodeType":"ElementaryTypeName","src":"6605:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37871,"mutability":"mutable","name":"data","nameLocation":"6642:4:41","nodeType":"VariableDeclaration","scope":37910,"src":"6629:17:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37870,"name":"bytes","nodeType":"ElementaryTypeName","src":"6629:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6595:57:41"},"returnParameters":{"id":37875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37874,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37910,"src":"6676:6:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":37873,"name":"int256","nodeType":"ElementaryTypeName","src":"6676:6:41","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"6675:8:41"},"scope":37911,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":37243,"name":"IStrategy","nameLocations":["271:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":29839,"src":"271:9:41"},"id":37244,"nodeType":"InheritanceSpecifier","src":"271:9:41"}],"canonicalName":"G3M","contractDependencies":[],"contractKind":"contract","documentation":{"id":37242,"nodeType":"StructuredDocumentation","src":"207:47:41","text":" @notice Geometric Mean Market Maker."},"fullyImplemented":true,"linearizedBaseContracts":[37911,29839],"name":"G3M","nameLocation":"264:3:41","scope":37912,"usedErrors":[29736,29739,29742,29856,37297],"usedEvents":[]}],"license":"GPL-3.0-or-later"},"id":41} \ No newline at end of file diff --git a/out/G3M.t.sol/G3MAttackTest.json b/out/G3M.t.sol/G3MAttackTest.json deleted file mode 100644 index 06cf7833..00000000 --- a/out/G3M.t.sol/G3MAttackTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_G3M_attack","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"BisectionLib_InvalidBounds","inputs":[{"name":"lower","type":"uint256","internalType":"uint256"},{"name":"upper","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BisectionLib_RootOutsideBounds","inputs":[{"name":"lowerResult","type":"int256","internalType":"int256"},{"name":"upperResult","type":"int256","internalType":"int256"}]}],"bytecode":{"object":"0x6080806040523461002357600160ff196000541617600055616bb990816100298239f35b600080fdfe60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e414620000645750508063ba414fa6146200005e578063c8cc11d114620000585763fa7626d4146200005257600080fd5b620007fe565b620004e8565b620004bf565b346200048f57816003193601126200048f5761106b8060800167ffffffffffffffff9160808210838311176200046b576200192d918183608039620000e7607f1991906060825260076060830152660a8ded6cadc40b60cb1b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b01608086f080156200044357601480546001600160a01b0319166001600160a01b03909216919091179055835191818301838110858211176200046b5783926200016e92843990606082526007606083015266546f6b656e205960c81b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b039084f080156200044357601580546001600160a01b0319166001600160a01b03928316179055601454620001ab91165b6001600160a01b031690565b803b15620004aa5782516340c10f1960e01b80825230600483015269152d02c7e14af680000060248301529185908290604490829084905af18015620004435762000493575b5060155484906200020b906001600160a01b03166200019f565b91823b156200048f57845190815230600482015269152d02c7e14af68000006024820152918290604490829084905af18015620004435762000471575b508151612f2180820190828210848311176200046b57829162000275916200299884396000815260200190565b039084f080156200044357601380546001600160a01b0319166001600160a01b03929092169182179055620002aa906200019f565b8251916112cb8084019290918311848410176200046b578392620002e192620058b985396001600160a01b03909116815260200190565b039083f0908115620004435762000318620003849260018060a01b03166bffffffffffffffffffffffff60a01b6016541617601655565b6014546200032f906001600160a01b03166200019f565b60135462000346906001600160a01b03166200019f565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200044357620003fc93859362000449575b50601554620003b5906001600160a01b03166200019f565b6013549091908790620003d1906001600160a01b03166200019f565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af18015620004435762000410578280f35b816200043492903d106200043b575b6200042b818362000894565b810190620008b7565b5081808280f35b503d6200041f565b62000839565b6200046390843d86116200043b576200042b818362000894565b50866200039d565b62000823565b8062000481620004889262000845565b80620004ae565b8362000248565b5080fd5b8062000481620004a39262000845565b84620001f1565b8380fd5b6000910312620004ba57565b600080fd5b34620004ba576000366003190112620004ba576020620004de62000973565b6040519015158152f35b34620004ba57600080600319360112620007fb578060806200064c62000582620005116200091e565b6706f05b59d3b20000808252602082015260408101859052306060820152620005686200055e82620005438162000c81565b62000558816200055262000a4e565b62000d34565b62000d7c565b6200055262000a76565b6200057c6200057662000a9d565b62000cdd565b62000da4565b60165462000599906001600160a01b03166200019f565b6014549091906200061290620005b8906001600160a01b03166200019f565b6015546200060290620005d4906001600160a01b03166200019f565b91620005f2620005e36200091e565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b03166040840152565b60608201526013546200062e906001600160a01b03166200019f565b906040519485809481936305157c7f60e21b83526004830162000b0e565b03925af180156200044357620006d19160e09184908586908792620007ae575b6200069b939450906200068762000691926200055262000b51565b6200055262000b79565b6200055262000ba1565b601354620006b2906001600160a01b03166200019f565b604051808095819463068bcd8d871b8352600483019190602083019252565b03915afa90811562000443576200019f60c062000704936200019f93869162000778575b5001516001600160a01b031690565b6040516370a0823160e01b815230600482015290602090829060249082905afa801562000443576200073f91839162000742575b5062000f5f565b80f35b62000769915060203d60201162000770575b62000760818362000894565b81019062000c71565b3862000738565b503d62000754565b6200079f915060e03d60e011620007a6575b62000796818362000894565b81019062000bde565b38620006f5565b503d6200078a565b505050506200069b62000687620007e4620006919360803d608011620007f3575b620007db818362000894565b81019062000ac4565b9295508594509192506200066c565b503d620007cf565b80fd5b34620004ba576000366003190112620004ba57602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b6040513d6000823e3d90fd5b67ffffffffffffffff81116200046b57604052565b6080810190811067ffffffffffffffff8211176200046b57604052565b6040810190811067ffffffffffffffff8211176200046b57604052565b90601f8019910116810190811067ffffffffffffffff8211176200046b57604052565b90816020910312620004ba57518015158103620004ba5790565b60005b838110620008e55750506000910152565b8181015183820152602001620008d4565b90600491630667f9d760e41b8152620009198251809360208685019101620008d1565b010190565b604051906200092d826200085a565b565b3d156200096e573d9067ffffffffffffffff82116200046b576040519162000962601f8201601f19166020018462000894565b82523d6000602084013e565b606090565b6000805460081c60ff161562000990575460081c60ff1690565b90565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620009b257505090565b8192506040518281620009f060208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b0362000a05601f199182810185528462000894565b62000a2b604051918262000a1e602082019687620008f6565b0390810183528262000894565b51925af1506200098d62000a3e6200092f565b60208082518301019101620008b7565b6040519062000a5d8262000877565b600a8252692634b8bab4b234ba3c9d60b11b6020830152565b6040519062000a858262000877565b600982526852657365727665205960b81b6020830152565b6040519062000aac8262000877565b60098252680a4cae6cae4ecca40b60bb1b6020830152565b9190826080910312620004ba578151916020810151916060604083015192015190565b9060209162000b0281518092818552858086019101620008d1565b601f01601f1916010190565b60a060606200098d9360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062000ae7565b6040519062000b608262000877565b600a82526944656c7461583a20257360b01b6020830152565b6040519062000b888262000877565b600a82526944656c7461593a20257360b01b6020830152565b6040519062000bb08262000877565b600a82526944656c74614c3a20257360b01b6020830152565b51906001600160a01b0382168203620004ba57565b908160e0910312620004ba576040519060e0820182811067ffffffffffffffff8211176200046b5762000c699160c09160405262000c1c8162000bc9565b845262000c2c6020820162000bc9565b602085015262000c3f6040820162000bc9565b6040850152606081015160608501526080810151608085015260a081015160a08501520162000bc9565b60c082015290565b90816020910312620004ba575190565b62000ca89062000ca262000c9c6020830151925183620013b6565b620013e7565b6200117e565b69043c33c1937564800000908082029182041460011615620004ba576001670de0b6b3a7640000600019830104019015150290565b62000d0f62000d2e6200092d926040519283916309710a9d60e41b602084015260406024840152606483019062000ae7565b69043c33c1937564800000604483015203601f19810183528262000894565b62001333565b62000d2e62000d67916200092d936040519384926309710a9d60e41b602085015260406024850152606484019062000ae7565b90604483015203601f19810183528262000894565b9062000d9d62000d956200098d93602084015162001416565b9151620013e7565b90620013b6565b6020810162000df081519162000de962000de062000dd962000dd362000dcd8851809862001633565b62001656565b62001679565b9462000fe1565b9151846200117e565b9062001416565b62000dfd8382846200134e565b819060008082121562000f135790859392915b80821262000eec57506200098d949262000a1e9262000e98925b6040805169043c33c19375648000006020808301919091528183018990526060808301949094528951608083015289015160a08201529088015160c08201529601516001600160a01b031660e0808801919091528652601f199562000e926101008262000894565b620016e3565b8551604080880151606098890151825169043c33c193756480000060208201529283019690965297810192909252608082015260a08101959095526001600160a01b0390911660c0850152839060e0820190565b9293505062000efb90620016a7565b9062000f098583866200134e565b8593929162000e10565b90859392915b80821362000f3857506200098d949262000a1e9262000e989262000e2a565b9350509062000f479062001443565b9162000f558584866200134e565b8593929162000f19565b6040519063f5b1bba960e01b6020830152602482015260248152606081019080821067ffffffffffffffff8311176200046b576200092d9160405262001333565b634e487b7160e01b600052601160045260246000fd5b818102929160008212600160ff1b82141662000fdb57818405149015171562000fdb57565b62000fa0565b6200098d9062001178906200116a90784b991cf7e49654a360a5b8b7638f1d7f29f9f6000000000000606090811d6d0388eaa27412d5aca026815d636e016c010f0cf064dd59200000000000908102821d6d0df99ac502031bf953eff472fdcc018102821d6d13cdffb29d51d99322bdff5f2211018102821d6d0a0f742023def783a307a986912e018102821d6d01920d8043ca89b5239253284e42018102821d6c0b7a86d7375468fac667a0a52701782cdd5993acde935885e872458f093b2fd8fd87000000000000831d6d0139601a2efabe717e604cbb4894018202831d6d02247f7a7b6594320649aa03aba1018202831d6c8c3f38e95a6b1ff2ab1c3b343619018202831d6d02384773bdf1ac5676facced60901901820290921d6cb9a025d814b29c212b8b1a07cd190102780a09507084cc699bb0e71ea869ffffffffffffffffffffffff190105711340daa0d5f769dba1915cef59f0815a5506027d222952fdecaf0276234900feab9d0fa404373709e42e57b18dd7e8d767220160ae1d62000fb6565b670de0b6b3a7640000900590565b620014a7565b6200116a6200098d927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642846200117893620011b9600082136200146e565b711340daa0d5f769dba1915cef59f0815a5506620011d78262001821565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d62000fb6565b600080916020815191016a636f6e736f6c652e6c6f675afa50565b9060018115151615620004ba578260206200139262000de9936200138b6200139c975182703ac653e386b9497f5773eac20000000000046200117e565b9562001633565b910151906200117e565b670de0b6b3a763ffff19810190811360011662000fdb5790565b90670de0b6b3a76400009182810292818404149015178115151615620004ba57600190600019830104019015150290565b670de0b6b3a764000080820291818184041490151760011615620004ba57600190600019830104019015150290565b818102918183041490151760011615620004ba576001670de0b6b3a7640000600019830104019015150290565b6103e990818102918183041490151760011615620004ba5760016103e8600019830104019015150290565b156200147657565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e198113156200162d57680755bf798b4a1bf1e5811215620015f9576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b670de0b6b3a76400009081810291818304149015178215151615620004ba570490565b670de0b6b3a76400009081810290828183041490151760011615620004ba570490565b69043c33c193756480000090818102918183041490151760011615620004ba57670de0b6b3a7640000900490565b6103e790818102918183041490151760011615620004ba576103e8900490565b9190820391821162000fdb57565b9190820180921162000fdb57565b600093929184918382116200180157620016fe828262001895565b6200170a858362001895565b600062001718828462000fb6565b13620017e257506200172d83869796620016c7565b60019460009186805b62001748575b50505050505050509050565b15620017b8575b50859697985080916200176d620017678b88620016d5565b60011c90565b996200177a8b8762001895565b908362001788878462000fb6565b13620017ab57505089925b87620017a08886620016c7565b920193999862001736565b8b97509094509262001793565b861080620017d6575b15620017ce57886200174f565b80806200173c565b506101008210620017c1565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b6200182e8115156200146e565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b908180518101039060e08212620004ba576020830151926080604082015193605f190112620004ba5762001923826200191c6200139c9662000ca262000de99660405192620018e4846200085a565b60808801519384815260606200191360e060a08c01519b602085019c8d5260c081015160408601520162000bc9565b91015262001633565b9462001633565b9051906200117e56fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360a03461007f57601f6112cb38819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f57608052604051611230908161009b82396080518181816103b701528181610612015281816107c601526109240152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b610953565b61090e565b6107ad565b610773565b6105f6565b610331565b6102ae565b610221565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101c3565b838082518301019101610986565b9061010d6100ff600435610a7f565b8680825183010191016109a1565b92610b68565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761015057604052565b61011e565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101a1601f8201601f191660200184610155565b8294818452818301116101be578281602093846000960137010152565b600080fd5b9080601f830112156101be578160206101de93359101610177565b90565b919082519283825260005b84811061020d575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101ec565b346101be5760003660031901126101be57604051604081019080821067ffffffffffffffff8311176101505761027891604052600381526247334d60e81b60208201526040519182916020835260208301906101e1565b0390f35b9060405161028981610134565b6060600382948054845260018101546020850152600281015460408501520154910152565b346101be5760203660031901126101be57600435600052600060205260c060406000206102da8161027c565b90600481015490600560018060a01b03910154169060606040519380518552602081015160208601526040810151604086015201516060840152608083015260a0820152f35b6001600160a01b038116036101be57565b346101be5760603660031901126101be5761034d600435610320565b60243560443567ffffffffffffffff81116101be576103709036906004016101c3565b9061037a81610a7f565b90610390825192602080809583010191016109a1565b6040516333854efd60e21b8152600481018390529092906060816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa948515610596576000908192829761055d575b508084806103ff93518301019101610986565b949195909787878581116000146104c45793610454869461044e866104496104769b9761044461046198604061043b61046d9f6104679f610a08565b91015190610f48565b610f48565b610f74565b50610a7f565b80518101820191016109a1565b91610bb9565b83610a27565b93828685610b68565b93846013191292836104b9575b6102789394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b601486129350610483565b5050919290938089116000146104ff5761046161046d946104546104769761044e856104498f998f61044490604061043b866104679f610a08565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9096506103ff9250610587915060603d60601161058f575b61057f8183610155565b810190610986565b9690926103ec565b503d610575565b6109e6565b9060606003198301126101be576004356105b481610320565b916024359160443567ffffffffffffffff928382116101be57806023830112156101be5781600401359384116101be57602484830101116101be576024019190565b346101be576106043661059b565b9192506001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610761578160c091810103126101be5780359160208201359160408101359460608201359060a08301359261066984610320565b670de0b6b3a764000083101561074f5761070d946107059460806106f1936106f69661069f876000526000602052604060002090565b55013560046106b8866000526000602052604060002090565b01551660056106d1846000526000602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610a7f565b602080825183010191016109a1565b848385610b68565b9283601319129182610744575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b60148512925061071a565b60405163e8a38a6160e01b8152600490fd5b604051636853cba760e01b8152600490fd5b346101be5760606107833661059b565b818094509492940103126101be5780359061070d6107056106f66040602085013594013595610a7f565b346101be576107bb3661059b565b926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610761576108236108176005610809876000526000602052604060002090565b01546001600160a01b031690565b6001600160a01b031690565b9116036108fc5761083683820182610a4a565b61083f81610a5f565b60018103610878575061086261085d61087392600494953691610177565b610caa565b926000526000602052604060002090565b01555b005b61088181610a5f565b600281036108bd5750906108a56108a06108b893610876953691610177565b610c00565b9290916000526000602052604060002090565b610c28565b806108c9600392610a5f565b036108ea576106d16108626108e5600593610876963691610177565b610bd8565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101be5760003660031901126101be576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101be5760203660031901126101be57610278610972600435610a7f565b6040519182916020835260208301906101e1565b908160609103126101be578051916040602083015192015190565b908160809103126101be576060604051916109bb83610134565b80518352602081015160208401526040810151604084015201516109de81610320565b606082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610a1557565b6109f2565b91908201809211610a1557565b81810392916000138015828513169184121617610a1557565b600411156101be57565b908160209103126101be57356101de81610a40565b60041115610a6957565b634e487b7160e01b600052602160045260246000fd5b60408051610a8c81610134565b6000918282526020820193838552818301848152606084019085825282865285602052610ac2610abd85882061027c565b610cdf565b808652670de0b6b3a7640000908103908111610a1557846101de97610b1f95610b1294600594610b5a9c5281835282602052600484842001549052815280602052200160018060a01b0390541690565b6001600160a01b03169052565b5192839160208301919091606060808201938051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b03601f198101835282610155565b926020610b9184610b8b610b83610b9a9697610ba099610fa4565b855190610d88565b95610fa4565b91015190610d88565b90610f48565b670de0b6b3a763ffff198101908113600116610a155790565b6101de92916020610bcf610b9a93855190610d88565b93015190610d88565b6040818051810103126101be5780610bf560206040930151610a40565b015161081781610320565b6060818051810103126101be57610c1a6020820151610a40565b606060408201519101519091565b919042821115610c9857610c3e610abd8461027c565b9081845542600385015542830391838311610a1557610c5c91610a27565b428314610c8257600160ff1b8114600019831416610a1557600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101be5780610cc760206040930151610a40565b015190565b81810292918115918404141715610a1557565b6060810151906020810151808314610d5e57804211600014610d5657915b8203918211610a15576040810190815160008113600014610d3057506101de92610d2a9151925190610ccc565b90610a1a565b90519150600160ff1b8114610a15576101de92610d509160000390610ccc565b90610a08565b504291610cfd565b5090505190565b818102929160008212600160ff1b821416610a15578184051490151715610a1557565b610f356101de927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284610f4393610dbe60008213610fc6565b711340daa0d5f769dba1915cef59f0815a5506610dda82611188565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d610d65565b670de0b6b3a7640000900590565b610ffe565b8181029181830414901517600116156101be576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101be57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101be570490565b15610fcd57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131561118257680755bf798b4a1bf1e581121561114e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b611193811515610fc6565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c600110179056fea26469706673582212209815df372867dd1ba42d4263690c8e70d1f8dc34ff9f897579936267cb43316764736f6c63430008160033a26469706673582212201204d62cebdabbe61a324834a1c5e2872e6a7c644609f64bef105ca38621e82b64736f6c63430008160033","sourceMap":"250:1789:49:-:0;;;;;;;1594:4:0;250:1789:49;;1594:4:0;250:1789:49;;;1594:4:0;250:1789:49;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e414620000645750508063ba414fa6146200005e578063c8cc11d114620000585763fa7626d4146200005257600080fd5b620007fe565b620004e8565b620004bf565b346200048f57816003193601126200048f5761106b8060800167ffffffffffffffff9160808210838311176200046b576200192d918183608039620000e7607f1991906060825260076060830152660a8ded6cadc40b60cb1b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b01608086f080156200044357601480546001600160a01b0319166001600160a01b03909216919091179055835191818301838110858211176200046b5783926200016e92843990606082526007606083015266546f6b656e205960c81b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b039084f080156200044357601580546001600160a01b0319166001600160a01b03928316179055601454620001ab91165b6001600160a01b031690565b803b15620004aa5782516340c10f1960e01b80825230600483015269152d02c7e14af680000060248301529185908290604490829084905af18015620004435762000493575b5060155484906200020b906001600160a01b03166200019f565b91823b156200048f57845190815230600482015269152d02c7e14af68000006024820152918290604490829084905af18015620004435762000471575b508151612f2180820190828210848311176200046b57829162000275916200299884396000815260200190565b039084f080156200044357601380546001600160a01b0319166001600160a01b03929092169182179055620002aa906200019f565b8251916112cb8084019290918311848410176200046b578392620002e192620058b985396001600160a01b03909116815260200190565b039083f0908115620004435762000318620003849260018060a01b03166bffffffffffffffffffffffff60a01b6016541617601655565b6014546200032f906001600160a01b03166200019f565b60135462000346906001600160a01b03166200019f565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200044357620003fc93859362000449575b50601554620003b5906001600160a01b03166200019f565b6013549091908790620003d1906001600160a01b03166200019f565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af18015620004435762000410578280f35b816200043492903d106200043b575b6200042b818362000894565b810190620008b7565b5081808280f35b503d6200041f565b62000839565b6200046390843d86116200043b576200042b818362000894565b50866200039d565b62000823565b8062000481620004889262000845565b80620004ae565b8362000248565b5080fd5b8062000481620004a39262000845565b84620001f1565b8380fd5b6000910312620004ba57565b600080fd5b34620004ba576000366003190112620004ba576020620004de62000973565b6040519015158152f35b34620004ba57600080600319360112620007fb578060806200064c62000582620005116200091e565b6706f05b59d3b20000808252602082015260408101859052306060820152620005686200055e82620005438162000c81565b62000558816200055262000a4e565b62000d34565b62000d7c565b6200055262000a76565b6200057c6200057662000a9d565b62000cdd565b62000da4565b60165462000599906001600160a01b03166200019f565b6014549091906200061290620005b8906001600160a01b03166200019f565b6015546200060290620005d4906001600160a01b03166200019f565b91620005f2620005e36200091e565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b03166040840152565b60608201526013546200062e906001600160a01b03166200019f565b906040519485809481936305157c7f60e21b83526004830162000b0e565b03925af180156200044357620006d19160e09184908586908792620007ae575b6200069b939450906200068762000691926200055262000b51565b6200055262000b79565b6200055262000ba1565b601354620006b2906001600160a01b03166200019f565b604051808095819463068bcd8d871b8352600483019190602083019252565b03915afa90811562000443576200019f60c062000704936200019f93869162000778575b5001516001600160a01b031690565b6040516370a0823160e01b815230600482015290602090829060249082905afa801562000443576200073f91839162000742575b5062000f5f565b80f35b62000769915060203d60201162000770575b62000760818362000894565b81019062000c71565b3862000738565b503d62000754565b6200079f915060e03d60e011620007a6575b62000796818362000894565b81019062000bde565b38620006f5565b503d6200078a565b505050506200069b62000687620007e4620006919360803d608011620007f3575b620007db818362000894565b81019062000ac4565b9295508594509192506200066c565b503d620007cf565b80fd5b34620004ba576000366003190112620004ba57602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b6040513d6000823e3d90fd5b67ffffffffffffffff81116200046b57604052565b6080810190811067ffffffffffffffff8211176200046b57604052565b6040810190811067ffffffffffffffff8211176200046b57604052565b90601f8019910116810190811067ffffffffffffffff8211176200046b57604052565b90816020910312620004ba57518015158103620004ba5790565b60005b838110620008e55750506000910152565b8181015183820152602001620008d4565b90600491630667f9d760e41b8152620009198251809360208685019101620008d1565b010190565b604051906200092d826200085a565b565b3d156200096e573d9067ffffffffffffffff82116200046b576040519162000962601f8201601f19166020018462000894565b82523d6000602084013e565b606090565b6000805460081c60ff161562000990575460081c60ff1690565b90565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620009b257505090565b8192506040518281620009f060208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b0362000a05601f199182810185528462000894565b62000a2b604051918262000a1e602082019687620008f6565b0390810183528262000894565b51925af1506200098d62000a3e6200092f565b60208082518301019101620008b7565b6040519062000a5d8262000877565b600a8252692634b8bab4b234ba3c9d60b11b6020830152565b6040519062000a858262000877565b600982526852657365727665205960b81b6020830152565b6040519062000aac8262000877565b60098252680a4cae6cae4ecca40b60bb1b6020830152565b9190826080910312620004ba578151916020810151916060604083015192015190565b9060209162000b0281518092818552858086019101620008d1565b601f01601f1916010190565b60a060606200098d9360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062000ae7565b6040519062000b608262000877565b600a82526944656c7461583a20257360b01b6020830152565b6040519062000b888262000877565b600a82526944656c7461593a20257360b01b6020830152565b6040519062000bb08262000877565b600a82526944656c74614c3a20257360b01b6020830152565b51906001600160a01b0382168203620004ba57565b908160e0910312620004ba576040519060e0820182811067ffffffffffffffff8211176200046b5762000c699160c09160405262000c1c8162000bc9565b845262000c2c6020820162000bc9565b602085015262000c3f6040820162000bc9565b6040850152606081015160608501526080810151608085015260a081015160a08501520162000bc9565b60c082015290565b90816020910312620004ba575190565b62000ca89062000ca262000c9c6020830151925183620013b6565b620013e7565b6200117e565b69043c33c1937564800000908082029182041460011615620004ba576001670de0b6b3a7640000600019830104019015150290565b62000d0f62000d2e6200092d926040519283916309710a9d60e41b602084015260406024840152606483019062000ae7565b69043c33c1937564800000604483015203601f19810183528262000894565b62001333565b62000d2e62000d67916200092d936040519384926309710a9d60e41b602085015260406024850152606484019062000ae7565b90604483015203601f19810183528262000894565b9062000d9d62000d956200098d93602084015162001416565b9151620013e7565b90620013b6565b6020810162000df081519162000de962000de062000dd962000dd362000dcd8851809862001633565b62001656565b62001679565b9462000fe1565b9151846200117e565b9062001416565b62000dfd8382846200134e565b819060008082121562000f135790859392915b80821262000eec57506200098d949262000a1e9262000e98925b6040805169043c33c19375648000006020808301919091528183018990526060808301949094528951608083015289015160a08201529088015160c08201529601516001600160a01b031660e0808801919091528652601f199562000e926101008262000894565b620016e3565b8551604080880151606098890151825169043c33c193756480000060208201529283019690965297810192909252608082015260a08101959095526001600160a01b0390911660c0850152839060e0820190565b9293505062000efb90620016a7565b9062000f098583866200134e565b8593929162000e10565b90859392915b80821362000f3857506200098d949262000a1e9262000e989262000e2a565b9350509062000f479062001443565b9162000f558584866200134e565b8593929162000f19565b6040519063f5b1bba960e01b6020830152602482015260248152606081019080821067ffffffffffffffff8311176200046b576200092d9160405262001333565b634e487b7160e01b600052601160045260246000fd5b818102929160008212600160ff1b82141662000fdb57818405149015171562000fdb57565b62000fa0565b6200098d9062001178906200116a90784b991cf7e49654a360a5b8b7638f1d7f29f9f6000000000000606090811d6d0388eaa27412d5aca026815d636e016c010f0cf064dd59200000000000908102821d6d0df99ac502031bf953eff472fdcc018102821d6d13cdffb29d51d99322bdff5f2211018102821d6d0a0f742023def783a307a986912e018102821d6d01920d8043ca89b5239253284e42018102821d6c0b7a86d7375468fac667a0a52701782cdd5993acde935885e872458f093b2fd8fd87000000000000831d6d0139601a2efabe717e604cbb4894018202831d6d02247f7a7b6594320649aa03aba1018202831d6c8c3f38e95a6b1ff2ab1c3b343619018202831d6d02384773bdf1ac5676facced60901901820290921d6cb9a025d814b29c212b8b1a07cd190102780a09507084cc699bb0e71ea869ffffffffffffffffffffffff190105711340daa0d5f769dba1915cef59f0815a5506027d222952fdecaf0276234900feab9d0fa404373709e42e57b18dd7e8d767220160ae1d62000fb6565b670de0b6b3a7640000900590565b620014a7565b6200116a6200098d927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642846200117893620011b9600082136200146e565b711340daa0d5f769dba1915cef59f0815a5506620011d78262001821565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d62000fb6565b600080916020815191016a636f6e736f6c652e6c6f675afa50565b9060018115151615620004ba578260206200139262000de9936200138b6200139c975182703ac653e386b9497f5773eac20000000000046200117e565b9562001633565b910151906200117e565b670de0b6b3a763ffff19810190811360011662000fdb5790565b90670de0b6b3a76400009182810292818404149015178115151615620004ba57600190600019830104019015150290565b670de0b6b3a764000080820291818184041490151760011615620004ba57600190600019830104019015150290565b818102918183041490151760011615620004ba576001670de0b6b3a7640000600019830104019015150290565b6103e990818102918183041490151760011615620004ba5760016103e8600019830104019015150290565b156200147657565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e198113156200162d57680755bf798b4a1bf1e5811215620015f9576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b670de0b6b3a76400009081810291818304149015178215151615620004ba570490565b670de0b6b3a76400009081810290828183041490151760011615620004ba570490565b69043c33c193756480000090818102918183041490151760011615620004ba57670de0b6b3a7640000900490565b6103e790818102918183041490151760011615620004ba576103e8900490565b9190820391821162000fdb57565b9190820180921162000fdb57565b600093929184918382116200180157620016fe828262001895565b6200170a858362001895565b600062001718828462000fb6565b13620017e257506200172d83869796620016c7565b60019460009186805b62001748575b50505050505050509050565b15620017b8575b50859697985080916200176d620017678b88620016d5565b60011c90565b996200177a8b8762001895565b908362001788878462000fb6565b13620017ab57505089925b87620017a08886620016c7565b920193999862001736565b8b97509094509262001793565b861080620017d6575b15620017ce57886200174f565b80806200173c565b506101008210620017c1565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b6200182e8115156200146e565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b908180518101039060e08212620004ba576020830151926080604082015193605f190112620004ba5762001923826200191c6200139c9662000ca262000de99660405192620018e4846200085a565b60808801519384815260606200191360e060a08c01519b602085019c8d5260c081015160408601520162000bc9565b91015262001633565b9462001633565b9051906200117e56fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360a03461007f57601f6112cb38819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f57608052604051611230908161009b82396080518181816103b701528181610612015281816107c601526109240152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b610953565b61090e565b6107ad565b610773565b6105f6565b610331565b6102ae565b610221565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101c3565b838082518301019101610986565b9061010d6100ff600435610a7f565b8680825183010191016109a1565b92610b68565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761015057604052565b61011e565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101a1601f8201601f191660200184610155565b8294818452818301116101be578281602093846000960137010152565b600080fd5b9080601f830112156101be578160206101de93359101610177565b90565b919082519283825260005b84811061020d575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101ec565b346101be5760003660031901126101be57604051604081019080821067ffffffffffffffff8311176101505761027891604052600381526247334d60e81b60208201526040519182916020835260208301906101e1565b0390f35b9060405161028981610134565b6060600382948054845260018101546020850152600281015460408501520154910152565b346101be5760203660031901126101be57600435600052600060205260c060406000206102da8161027c565b90600481015490600560018060a01b03910154169060606040519380518552602081015160208601526040810151604086015201516060840152608083015260a0820152f35b6001600160a01b038116036101be57565b346101be5760603660031901126101be5761034d600435610320565b60243560443567ffffffffffffffff81116101be576103709036906004016101c3565b9061037a81610a7f565b90610390825192602080809583010191016109a1565b6040516333854efd60e21b8152600481018390529092906060816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa948515610596576000908192829761055d575b508084806103ff93518301019101610986565b949195909787878581116000146104c45793610454869461044e866104496104769b9761044461046198604061043b61046d9f6104679f610a08565b91015190610f48565b610f48565b610f74565b50610a7f565b80518101820191016109a1565b91610bb9565b83610a27565b93828685610b68565b93846013191292836104b9575b6102789394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b601486129350610483565b5050919290938089116000146104ff5761046161046d946104546104769761044e856104498f998f61044490604061043b866104679f610a08565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9096506103ff9250610587915060603d60601161058f575b61057f8183610155565b810190610986565b9690926103ec565b503d610575565b6109e6565b9060606003198301126101be576004356105b481610320565b916024359160443567ffffffffffffffff928382116101be57806023830112156101be5781600401359384116101be57602484830101116101be576024019190565b346101be576106043661059b565b9192506001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610761578160c091810103126101be5780359160208201359160408101359460608201359060a08301359261066984610320565b670de0b6b3a764000083101561074f5761070d946107059460806106f1936106f69661069f876000526000602052604060002090565b55013560046106b8866000526000602052604060002090565b01551660056106d1846000526000602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610a7f565b602080825183010191016109a1565b848385610b68565b9283601319129182610744575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b60148512925061071a565b60405163e8a38a6160e01b8152600490fd5b604051636853cba760e01b8152600490fd5b346101be5760606107833661059b565b818094509492940103126101be5780359061070d6107056106f66040602085013594013595610a7f565b346101be576107bb3661059b565b926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610761576108236108176005610809876000526000602052604060002090565b01546001600160a01b031690565b6001600160a01b031690565b9116036108fc5761083683820182610a4a565b61083f81610a5f565b60018103610878575061086261085d61087392600494953691610177565b610caa565b926000526000602052604060002090565b01555b005b61088181610a5f565b600281036108bd5750906108a56108a06108b893610876953691610177565b610c00565b9290916000526000602052604060002090565b610c28565b806108c9600392610a5f565b036108ea576106d16108626108e5600593610876963691610177565b610bd8565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101be5760003660031901126101be576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101be5760203660031901126101be57610278610972600435610a7f565b6040519182916020835260208301906101e1565b908160609103126101be578051916040602083015192015190565b908160809103126101be576060604051916109bb83610134565b80518352602081015160208401526040810151604084015201516109de81610320565b606082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610a1557565b6109f2565b91908201809211610a1557565b81810392916000138015828513169184121617610a1557565b600411156101be57565b908160209103126101be57356101de81610a40565b60041115610a6957565b634e487b7160e01b600052602160045260246000fd5b60408051610a8c81610134565b6000918282526020820193838552818301848152606084019085825282865285602052610ac2610abd85882061027c565b610cdf565b808652670de0b6b3a7640000908103908111610a1557846101de97610b1f95610b1294600594610b5a9c5281835282602052600484842001549052815280602052200160018060a01b0390541690565b6001600160a01b03169052565b5192839160208301919091606060808201938051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b03601f198101835282610155565b926020610b9184610b8b610b83610b9a9697610ba099610fa4565b855190610d88565b95610fa4565b91015190610d88565b90610f48565b670de0b6b3a763ffff198101908113600116610a155790565b6101de92916020610bcf610b9a93855190610d88565b93015190610d88565b6040818051810103126101be5780610bf560206040930151610a40565b015161081781610320565b6060818051810103126101be57610c1a6020820151610a40565b606060408201519101519091565b919042821115610c9857610c3e610abd8461027c565b9081845542600385015542830391838311610a1557610c5c91610a27565b428314610c8257600160ff1b8114600019831416610a1557600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101be5780610cc760206040930151610a40565b015190565b81810292918115918404141715610a1557565b6060810151906020810151808314610d5e57804211600014610d5657915b8203918211610a15576040810190815160008113600014610d3057506101de92610d2a9151925190610ccc565b90610a1a565b90519150600160ff1b8114610a15576101de92610d509160000390610ccc565b90610a08565b504291610cfd565b5090505190565b818102929160008212600160ff1b821416610a15578184051490151715610a1557565b610f356101de927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284610f4393610dbe60008213610fc6565b711340daa0d5f769dba1915cef59f0815a5506610dda82611188565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d610d65565b670de0b6b3a7640000900590565b610ffe565b8181029181830414901517600116156101be576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101be57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101be570490565b15610fcd57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131561118257680755bf798b4a1bf1e581121561114e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b611193811515610fc6565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c600110179056fea26469706673582212209815df372867dd1ba42d4263690c8e70d1f8dc34ff9f897579936267cb43316764736f6c63430008160033a26469706673582212201204d62cebdabbe61a324834a1c5e2872e6a7c644609f64bef105ca38621e82b64736f6c63430008160033","sourceMap":"250:1789:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;403:33;;250:1789;403:33;;;250:1789;403:33;;;;;;;;;;;;250:1789;403:33;;;;;250:1789;;;;;;;;;-1:-1:-1;;;250:1789:49;;;;;;;;;;;;;;-1:-1:-1;;;250:1789:49;;;;433:2;250:1789;;;;;;;;403:33;;250:1789;403:33;;;;;;394:42;250:1789;;-1:-1:-1;;;;;;250:1789:49;-1:-1:-1;;;;;250:1789:49;;;;;;;;;;;455:33;;;;;;;;;;;;;;;;;;;250:1789;;;;;;;;;-1:-1:-1;;;250:1789:49;;;;;;;;;;;;;;-1:-1:-1;;;250:1789:49;;;;433:2;250:1789;;;;;;;;455:33;;;;;;;;;446:42;250:1789;;-1:-1:-1;;;;;;250:1789:49;-1:-1:-1;;;;;250:1789:49;;;;;;394:42;250:1789;498:11;;250:1789;;-1:-1:-1;;;;;250:1789:49;;;498:11;:41;;;;;250:1789;;-1:-1:-1;;;498:41:49;;;518:4;250:1789;498:41;;250:1789;525:13;250:1789;;;;;;;;;;;;;;;498:41;;;;;;;;250:1789;-1:-1:-1;446:42:49;250:1789;;;549:11;;-1:-1:-1;;;;;250:1789:49;;;549:11;:41;;;;;;250:1789;;549:41;;;518:4;250:1789;549:41;;250:1789;525:13;250:1789;;;;;;;;;;;518:4;;549:41;;;;;;;;250:1789;;;;608:20;;;;;;;;;;;;;;;;;;;;;250:1789;;;;;;;608:20;;;;;;;;;601:27;250:1789;;-1:-1:-1;;;;;;250:1789:49;-1:-1:-1;;;;;250:1789:49;;;;;;;;;652:13;;250:1789;;652:13;250:1789;;;644:22;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;250:1789:49;;;;;;;;;644:22;;;;;;;;;;638:28;677:48;638:28;403:33;250:1789;;;;;;;;638:28;250:1789;;;638:28;250:1789;;638:28;394:42;250:1789;677:14;;-1:-1:-1;;;;;250:1789:49;;;677:14;601:27;250:1789;692:13;;-1:-1:-1;;;;;250:1789:49;;;692:13;250:1789;;-1:-1:-1;;;677:48:49;;;-1:-1:-1;;;;;250:1789:49;;;;677:48;;250:1789;-1:-1:-1;;250:1789:49;;;;677:48;;250:1789;;;;677:48;;250:1789;;677:48;250:1789;;677:48;;250:1789;;;;;;;677:48;;;;;;;;;;735;677;;;;;250:1789;-1:-1:-1;446:42:49;250:1789;735:14;;-1:-1:-1;;;;;250:1789:49;;;735:14;601:27;250:1789;;;;;;750:13;;-1:-1:-1;;;;;250:1789:49;;;750:13;250:1789;;735:48;;;-1:-1:-1;;;;;250:1789:49;;;;735:48;;250:1789;-1:-1:-1;;250:1789:49;;;;;;;;;;;;;;;;735:48;;;;;;;;;;;250:1789;;;735:48;;;;;;-1:-1:-1;735:48:49;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;250:1789;;;735:48;;;;;;;:::i;677:::-;;;;;;;;;;;;;:::i;:::-;;;;;644:22;;:::i;549:41::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;250:1789;;;498:41;;;;;;:::i;:::-;;;;;250:1789;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;250:1789:49;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;1714:21;1367:47;250:1789;;:::i;:::-;977:9;250:1789;;;945:142;;;250:1789;945:142;;;250:1789;;;1071:4;945:142;;;250:1789;1258:34;1216:32;1110:39;;;;:::i;:::-;1159:28;250:1789;;;:::i;:::-;1159:28;:::i;:::-;1216:32;:::i;:::-;250:1789;;:::i;1258:34::-;1302;250:1789;;:::i;:::-;1302:34;:::i;:::-;1367:47;:::i;:::-;1511:3;250:1789;1503:12;;-1:-1:-1;;;;;250:1789:49;;;1503:12;1545:6;250:1789;;;;1462:162;;1537:15;;-1:-1:-1;;;;;250:1789:49;;;1537:15;1582:6;250:1789;1462:162;;1574:15;;-1:-1:-1;;;;;250:1789:49;;;1574:15;250:1789;1462:162;250:1789;;:::i;:::-;-1:-1:-1;;;;;250:1789:49;;;;;;1462:162;-1:-1:-1;;;;;250:1789:49;945:142;1462:162;;250:1789;;1462:162;-1:-1:-1;;;;;250:1789:49;945:142;1462:162;;250:1789;;1462:162;945:142;1462:162;;250:1789;1714:4;250:1789;1714:9;;-1:-1:-1;;;;;250:1789:49;;;1714:9;250:1789;945:142;250:1789;;;;;;;;;;1714:21;;250:1789;1714:21;;;:::i;:::-;;;;;;;;;1901:20;1714:21;250:1789;1714:21;;250:1789;;;;;1714:21;;;250:1789;1832:33;250:1789;;;;1746:33;1789;250:1789;;;:::i;1746:33::-;250:1789;;:::i;1789:33::-;250:1789;;:::i;1832:33::-;1714:4;250:1789;1901:12;;-1:-1:-1;;;;;250:1789:49;;;1901:12;945:142;250:1789;;;;;;;;;1901:20;;250:1789;1901:20;;250:1789;;;;;;;;1901:20;;;;;;;;;;250:1789;1955:19;1949:36;1901:20;1949:26;1901:20;;;;;250:1789;-1:-1:-1;1955:19:49;250:1789;-1:-1:-1;;;;;250:1789:49;;;1949:36;945:142;250:1789;-1:-1:-1;;;1949:51:49;;1071:4;250:1789;1949:51;;250:1789;;945:142;;250:1789;;;;;;1949:51;;;;;;2022:7;1949:51;;;;;250:1789;2022:7;;:::i;:::-;250:1789;;1949:51;;;;945:142;1949:51;945:142;1949:51;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1901:20;;;;250:1789;1901:20;250:1789;1901:20;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1714:21;;;;;1832:33;1746;1714:21;1789:33;1714:21;250:1789;1714:21;250:1789;1714:21;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;-1:-1:-1;1714:21:49;;-1:-1:-1;1714:21:49;;-1:-1:-1;1714:21:49;;;;;;;250:1789;;;;;;;;;-1:-1:-1;;250:1789:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;1671:64:0;250:1789:49;;;;;;;;;;;1671:64:0;250:1789:49;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;1671:64:0:-;;;;;;;;-1:-1:-1;;1671:64:0;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;250:1789:49;;1671:64:0;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;250:1789:49;;;1671:64:0;250:1789:49;;;-1:-1:-1;;250:1789:49;1671:64:0;;250:1789:49;1671:64:0;:::i;:::-;;;;-1:-1:-1;1671:64:0;;;;:::o;:::-;;;:::o;1819:584::-;1873:7;250:1789:49;;;;;;1873:7:0;;;250:1789:49;;;;;1896:14:0;:::o;250:1789:49:-;1896:14:0;:::o;1869:528::-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;250:1789:49;;;;;2196:43:0;;;;;;1671:64;;;;250:1789:49;;;;1671:64:0;;;;;;250:1789:49;1671:64:0;2196:43;;;250:1789:49;;2196:43:0;;;;;;;;:::i;:::-;2086:175;250:1789:49;;2086:175:0;;;2196:43;2086:175;;;;;:::i;:::-;;;;;;;;;:::i;:::-;2047:232;;;;;2312:27;2047:232;;:::i;:::-;2196:43;1671:64;;;2312:27;;;;;;:::i;250:1789:49:-;1671:64:0;250:1789:49;1671:64:0;;;;:::i;:::-;250:1789:49;1671:64:0;;-1:-1:-1;;;250:1789:49;;;;:::o;:::-;1671:64:0;250:1789:49;1671:64:0;;;;:::i;:::-;250:1789:49;1671:64:0;;-1:-1:-1;;;250:1789:49;;;;:::o;:::-;1671:64:0;250:1789:49;1671:64:0;;;;:::i;:::-;250:1789:49;1671:64:0;;-1:-1:-1;;;250:1789:49;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;1671:64:0;;250:1789:49;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;250:1789:49;;;;:::o;:::-;;;;;;;;403:33;250:1789;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1671:64:0;250:1789:49;1671:64:0;;;;:::i;:::-;250:1789:49;1671:64:0;;-1:-1:-1;;;250:1789:49;;;;:::o;:::-;1671:64:0;250:1789:49;1671:64:0;;;;:::i;:::-;250:1789:49;1671:64:0;;-1:-1:-1;;;250:1789:49;;;;:::o;:::-;1671:64:0;250:1789:49;1671:64:0;;;;:::i;:::-;250:1789:49;1671:64:0;;-1:-1:-1;;;250:1789:49;;;;:::o;:::-;;;-1:-1:-1;;;;;250:1789:49;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;:::o;419:260:35:-;614:27;419:260;799:19:18;1133;555:9:35;;;250:1789:49;;;1133:19:18;;:::i;:::-;799;:::i;:::-;614:27:35;:::i;:::-;859:12:49;8417:611:18;;;;;;;;;;;;;;491:4;707:17:49;;8417:611:18;;;;;;;;419:260:35;:::o;6548:139:13:-;250:1789:49;6628:51:13;;6548:139;250:1789:49;;6628:51:13;;;;;;;;;;250:1789:49;6628:51:13;;;250:1789:49;;;;;;:::i;:::-;859:12;250:1789;;;;6628:51:13;250:1789:49;;6628:51:13;;;;;;:::i;:::-;;:::i;6548:139::-;6628:51;250:1789:49;6548:139:13;6628:51;6548:139;250:1789:49;;6628:51:13;;;;;;;;;;250:1789:49;6628:51:13;;;250:1789:49;;;;;;:::i;:::-;;;;;;6628:51:13;250:1789:49;;6628:51:13;;;;;;:::i;1047:181:35:-;;799:19:18;;1133;1047:181:35;1172:9;;;250:1789:49;799:19:18;:::i;:::-;250:1789:49;;799:19:18;:::i;:::-;1133;;:::i;1858:513:35:-;1349:9;;;799:19:18;250:1789:49;;;1790:35:35;1728;631:21:18;;965;250:1789:49;;965:21:18;;;:::i;:::-;631;:::i;:::-;;:::i;:::-;1728:35:35;;:::i;:::-;250:1789:49;;1790:35:35;;:::i;:::-;799:19:18;;:::i;:::-;2139:69:35;;;;;:::i;:::-;8798:29;;-1:-1:-1;8914:21:35;;;-1:-1:-1;;;8947:268:35;;;;;8954:21;;;;;;8910:600;2296:72;8910:600;;2296:72;8910:600;9519:160;8910:600;;250:1789:49;;;859:12;1349:9:35;9538:45;;;250:1789:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;250:1789:49;;;;;;;;;9538:45:35;;-1:-1:-1;;;9538:45:35;250:1789:49;;9538:45:35;:::i;:::-;9519:160;:::i;:::-;250:1789:49;;;2334:14:35;;;250:1789:49;2350:17:35;;;;250:1789:49;;;859:12;1349:9:35;2296:72;;250:1789:49;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;250:1789:49;;;;;;;;;;;;;;8947:268:35;8999:27;;;;;;;:::i;:::-;9060:144;;;;;;:::i;:::-;8947:268;;;;;;8910:600;9237:267;;;;;9244:21;;;;;;8910:600;2296:72;8910:600;;2296:72;8910:600;9519:160;8910:600;;;9237:267;9289:26;;;;;;;:::i;:::-;9349:144;;;;;;:::i;:::-;9237:267;;;;;;5514:110:13;250:1789:49;;5576:40:13;;;;;;;;;;;250:1789:49;5576:40:13;;;250:1789:49;;;;;;;;;;;;;5576:40:13;250:1789:49;;;5576:40:13;:::i;250:1789:49:-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;250:1789:49;;;;;;;;;;;;;;;:::o;:::-;;:::i;1208:273:18:-;1391:36;;1398:28;;1399:12;;250:1789:49;5145:2:18;250:1789:49;;;6068:32:18;250:1789:49;;;;;;;6136:33:18;250:1789:49;;;;;6205:33:18;250:1789:49;;;;;6274:33:18;250:1789:49;;;;;6343:32:18;250:1789:49;;;;;6411:30:18;250:1789:49;;;;5465:32:18;250:1789:49;;;;;5533:32:18;250:1789:49;;;;;-1:-1:-1;;250:1789:49;;;;;-1:-1:-1;;250:1789:49;;;;;;-1:-1:-1;;250:1789:49;;-1:-1:-1;;250:1789:49;6455:304:18;7125:43;250:1789:49;;;;;1399:12:18;:::i;:::-;491:4;250:1789:49;;;;1398:28:18;1391:36;:::i;1208:273::-;1399:12;1391:36;1208:273;7380:72;1398:28;1208:273;4688:27;-1:-1:-1;4696:5:18;;4688:27;:::i;:::-;7125:43;5125:16;;;:::i;:::-;5145:2;250:1789:49;;;5175:3:18;250:1789:49;;;5175:3:18;250:1789:49;;;;;7232:71:18;250:1789:49;;6411:30:18;250:1789:49;6343:32:18;250:1789:49;6274:33:18;250:1789:49;6205:33:18;250:1789:49;6136:33:18;250:1789:49;6068:32:18;250:1789:49;6001:31:18;250:1789:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5533:32:18;250:1789:49;5465:32:18;250:1789:49;5398:31:18;250:1789:49;;;;;;;;;;;;;;;;;;;;;;;;6455:304:18;250:1789:49;;;;;1399:12:18;:::i;181:376:13:-;392:159;181:376;;392:159;1671:64:0;;392:159:13;;131:42;392:159;;;181:376::o;1692:384:42:-;;7878:392:18;;;;;;;;250:1789:49;2000:9:42;965:21:18;1961:50:42;250:1789:49;1880:50:42;799:19:18;250:1789:49;;7878:392:18;;;1880:50:42;:::i;:::-;965:21:18;;:::i;:::-;2000:9:42;;250:1789:49;1961:50:42;;:::i;799:19:18:-;250:1789:49;;;;;;;7878:392:18;250:1789:49;;;1692:384:42;:::o;8282:752:18:-;;491:4;8417:611;;;;;;;;;;;;;;;;;;;;707:17:49;;;8417:611:18;;;;;;;;8282:752;:::o;:::-;897:7:49;8417:611:18;;;;;;;;;;;;;;;;;;707:17:49;;;8417:611:18;;;;;;;;8282:752;:::o;:::-;8417:611;;;;;;;;;;;;;;;;;491:4;707:17:49;;8417:611:18;;;;;;;;8282:752;:::o;:::-;9304:4:35;8417:611:18;;;;;;;;;;;;;;;;;;9310:4:35;707:17:49;;8417:611:18;;;;;;;;8282:752;:::o;250:1789:49:-;;;;:::o;:::-;;;-1:-1:-1;;;250:1789:49;;;;;;;;;;;;-1:-1:-1;;;250:1789:49;;;;;;;1487:3103:18;-1:-1:-1;;1713:26:18;;;1709:40;;1948:21;1943:26;;;1939:54;;2266:5;250:1789:49;;;;4502:49:18;2559:29;250:1789:49;;2591:5:18;403:33:49;2591:5:18;;250:1789:49;;;;;;;;;;;;;;2874:31:18;250:1789:49;;;;;;3074:35:18;3649;250:1789:49;;;;3508:34:18;250:1789:49;;;;3371:32:18;250:1789:49;;;;;;;;;;;;;;;;;;;;;;;;;3136:40:18;;;;250:1789:49;2941:32:18;250:1789:49;;;;;;;;;;;;;;;3699:327:18;250:1789:49;;4564:3:18;250:1789:49;;1487:3103:18;:::o;1939:54::-;250:1789:49;;-1:-1:-1;;;1971:22:18;;250:1789:49;1971:22:18;;;250:1789:49;;;;;;-1:-1:-1;;;250:1789:49;;;;;;1971:22:18;1709:40;1741:8;1748:1;1741:8;:::o;7741:535::-;491:4;7878:392;;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;897:7:49;7878:392:18;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;859:12:49;7878:392:18;;;;;;;;;;;;;;;;;491:4;7878:392;;7741:535;:::o;:::-;9016:3:35;7878:392:18;;;;;;;;;;;;;;;;;9021:4:35;7878:392:18;;7741:535;:::o;250:1789:49:-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;1009:1952:33:-;250:1789:49;;1009:1952:33;;250:1789:49;;1239:13:33;;;1235:66;;1632:15;;;;:::i;:::-;1674;;;;:::i;:::-;250:1789:49;1699:25:33;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;;:::i;:::-;9631:1:35;;250:1789:49;;9631:1:35;;;;;1978:981:33;1009:1952;;;;;;;;;;:::o;1978:981::-;;;;;2909:48;;;;;;;2123:13;2122:19;2123:13;;;;:::i;:::-;250:1789:49;;;;2122:19:33;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;250:1789:49;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;250:1789:49;;1978:981:33;;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;2909:18;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;;;;;;2931:26;9643:3:35;2931:26:33;;2909:48;;1695:115;250:1789:49;;-1:-1:-1;;;1747:56:33;;;;;250:1789:49;;;;;;;;;;1971:22:18;1235:66:33;250:1789:49;;-1:-1:-1;;;1261:40:33;;;;;250:1789:49;;;;;;;;;;;1971:22:18;15328:575;15397:27;15405:5;;;15397:27;:::i;:::-;15435:462;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:575;:::o;250:1789:49:-;;1671:64:0;;;3862:59:35;;250:1789:49;;;;;;;3862:59:35;;;250:1789:49;;;;;;;;;;;;;;965:21:18;250:1789:49;1880:50:42;799:19:18;250:1789:49;965:21:18;1961:50:42;250:1789:49;;;1671:64:0;;;;:::i;:::-;250:1789:49;;;;;;;;;;;;;;;;3862:59:35;250:1789:49;;;;;;;;;;;;;;;:::i;:::-;;;;965:21:18;:::i;1880:50:42:-;965:21:18;;:::i;:::-;250:1789:49;;1961:50:42;;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","failed()":"ba414fa6","setUp()":"0a9254e4","test_G3M_attack()":"c8cc11d1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"upper\",\"type\":\"uint256\"}],\"name\":\"BisectionLib_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"lowerResult\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"upperResult\",\"type\":\"int256\"}],\"name\":\"BisectionLib_RootOutsideBounds\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_G3M_attack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"BisectionLib_InvalidBounds(uint256,uint256)\":[{\"details\":\"Thrown when the lower bound is greater than the upper bound.\"}],\"BisectionLib_RootOutsideBounds(int256,int256)\":[{\"details\":\"Thrown when the result of the function `fx` for each input, `upper` and `lower`, is the same sign.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/attack/G3M.t.sol\":\"G3MAttackTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/lib/SignedWadMath.sol\":{\"keccak256\":\"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a\",\"dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/solvers/G3M/G3MExtendedLib.sol\":{\"keccak256\":\"0xa7e4eb7172ca81b319ccb5ac248c302fb549be3eb6badda424800f73edfbc448\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2d53a62a983c65dd0b892f30d30b603fc5cf7ebb4895dbdcb0a05a9eae1a431f\",\"dweb:/ipfs/QmNXKi6XUWswwKuzaE6SorZhRvd7Nz6dxYmLmii8bVcRhK\"]},\"src/strategies/G3M/G3M.sol\":{\"keccak256\":\"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c\",\"dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE\"]},\"src/strategies/G3M/G3MLib.sol\":{\"keccak256\":\"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70\",\"dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m\"]},\"src/test/attack/G3M.t.sol\":{\"keccak256\":\"0x45b22307beff9fd3968efaf115cb55cc4a1c8a45963c97b3131f597ebf65a623\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a98905c9c1191b48773345188c3f5ef2d79039bf4ee9f7680b96bbe30158c01c\",\"dweb:/ipfs/QmNWYyWmxRKvBBNXWKNxDvC38eyAP7a7haQoqoJoHXoSYc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"lower","type":"uint256"},{"internalType":"uint256","name":"upper","type":"uint256"}],"type":"error","name":"BisectionLib_InvalidBounds"},{"inputs":[{"internalType":"int256","name":"lowerResult","type":"int256"},{"internalType":"int256","name":"upperResult","type":"int256"}],"type":"error","name":"BisectionLib_RootOutsideBounds"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_G3M_attack"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/attack/G3M.t.sol":"G3MAttackTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/lib/SignedWadMath.sol":{"keccak256":"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630","urls":["bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a","dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN"],"license":"MIT"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/solvers/G3M/G3MExtendedLib.sol":{"keccak256":"0xa7e4eb7172ca81b319ccb5ac248c302fb549be3eb6badda424800f73edfbc448","urls":["bzz-raw://2d53a62a983c65dd0b892f30d30b603fc5cf7ebb4895dbdcb0a05a9eae1a431f","dweb:/ipfs/QmNXKi6XUWswwKuzaE6SorZhRvd7Nz6dxYmLmii8bVcRhK"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3M.sol":{"keccak256":"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034","urls":["bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c","dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3MLib.sol":{"keccak256":"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4","urls":["bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70","dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m"],"license":"GPL-3.0-or-later"},"src/test/attack/G3M.t.sol":{"keccak256":"0x45b22307beff9fd3968efaf115cb55cc4a1c8a45963c97b3131f597ebf65a623","urls":["bzz-raw://a98905c9c1191b48773345188c3f5ef2d79039bf4ee9f7680b96bbe30158c01c","dweb:/ipfs/QmNWYyWmxRKvBBNXWKNxDvC38eyAP7a7haQoqoJoHXoSYc"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/attack/G3M.t.sol","id":42624,"exportedSymbols":{"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"DFMM":[29062],"DSTest":[1786],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"G3M":[37911],"G3MAttackTest":[42623],"G3MLib":[38158],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"LPToken":[29516],"LibString":[26659],"Min":[27736],"MockERC20":[25560],"ONE":[30639],"SQRT_WAD":[30630],"SafeTransferLib":[26744],"SignedWadMathLib":[30623],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"TWO":[30633],"Test":[8195],"TestBase":[1843],"Vm":[9352],"WETH":[26027],"ZERO":[30649],"abs":[27763],"bisection":[31118],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeInitialPoolData":[31906],"computeL":[31844],"computeLGivenX":[31662],"computeLGivenY":[31688],"computeNextLiquidity":[32899],"computeNextRx":[32006],"computeNextRy":[31956],"computeOptimalLower":[32732],"computeOptimalRaise":[32798],"computePrice":[32043],"computeScalingFactor":[30048],"computeX":[31792],"computeXGivenL":[31714],"computeY":[31766],"computeYGivenL":[31740],"console":[17416],"console2":[25512],"diffLower":[32419],"diffRaise":[32666],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"findRootLiquidity":[32083],"findRootLower":[32129],"findRootRaise":[32175],"muli":[27777],"muliWad":[27795],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"40:2000:49","nodes":[{"id":42351,"nodeType":"PragmaDirective","src":"40:24:49","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":42352,"nodeType":"ImportDirective","src":"66:28:49","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":42624,"sourceUnit":8196,"symbolAliases":[],"unitAlias":""},{"id":42353,"nodeType":"ImportDirective","src":"95:48:49","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol","file":"solmate/test/utils/mocks/MockERC20.sol","nameLocation":"-1:-1:-1","scope":42624,"sourceUnit":25561,"symbolAliases":[],"unitAlias":""},{"id":42354,"nodeType":"ImportDirective","src":"144:22:49","nodes":[],"absolutePath":"src/DFMM.sol","file":"src/DFMM.sol","nameLocation":"-1:-1:-1","scope":42624,"sourceUnit":29063,"symbolAliases":[],"unitAlias":""},{"id":42355,"nodeType":"ImportDirective","src":"167:36:49","nodes":[],"absolutePath":"src/strategies/G3M/G3M.sol","file":"src/strategies/G3M/G3M.sol","nameLocation":"-1:-1:-1","scope":42624,"sourceUnit":37912,"symbolAliases":[],"unitAlias":""},{"id":42356,"nodeType":"ImportDirective","src":"204:44:49","nodes":[],"absolutePath":"src/solvers/G3M/G3MExtendedLib.sol","file":"src/solvers/G3M/G3MExtendedLib.sol","nameLocation":"-1:-1:-1","scope":42624,"sourceUnit":32900,"symbolAliases":[],"unitAlias":""},{"id":42623,"nodeType":"ContractDefinition","src":"250:1789:49","nodes":[{"id":42361,"nodeType":"VariableDeclaration","src":"287:9:49","nodes":[],"constant":false,"mutability":"mutable","name":"dfmm","nameLocation":"292:4:49","scope":42623,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"},"typeName":{"id":42360,"nodeType":"UserDefinedTypeName","pathNode":{"id":42359,"name":"DFMM","nameLocations":["287:4:49"],"nodeType":"IdentifierPath","referencedDeclaration":29062,"src":"287:4:49"},"referencedDeclaration":29062,"src":"287:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"visibility":"internal"},{"id":42364,"nodeType":"VariableDeclaration","src":"302:16:49","nodes":[],"constant":false,"mutability":"mutable","name":"tokenX","nameLocation":"312:6:49","scope":42623,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"},"typeName":{"id":42363,"nodeType":"UserDefinedTypeName","pathNode":{"id":42362,"name":"MockERC20","nameLocations":["302:9:49"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"302:9:49"},"referencedDeclaration":25560,"src":"302:9:49","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"visibility":"internal"},{"id":42367,"nodeType":"VariableDeclaration","src":"324:16:49","nodes":[],"constant":false,"mutability":"mutable","name":"tokenY","nameLocation":"334:6:49","scope":42623,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"},"typeName":{"id":42366,"nodeType":"UserDefinedTypeName","pathNode":{"id":42365,"name":"MockERC20","nameLocations":["324:9:49"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"324:9:49"},"referencedDeclaration":25560,"src":"324:9:49","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"visibility":"internal"},{"id":42370,"nodeType":"VariableDeclaration","src":"346:7:49","nodes":[],"constant":false,"mutability":"mutable","name":"g3m","nameLocation":"350:3:49","scope":42623,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"},"typeName":{"id":42369,"nodeType":"UserDefinedTypeName","pathNode":{"id":42368,"name":"G3M","nameLocations":["346:3:49"],"nodeType":"IdentifierPath","referencedDeclaration":37911,"src":"346:3:49"},"referencedDeclaration":37911,"src":"346:3:49","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"visibility":"internal"},{"id":42464,"nodeType":"FunctionDefinition","src":"360:430:49","nodes":[],"body":{"id":42463,"nodeType":"Block","src":"384:406:49","nodes":[],"statements":[{"expression":{"id":42381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42373,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42364,"src":"394:6:49","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"546f6b656e2058","id":42377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"417:9:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_844609f830293788b83c84f34963c352895b060619ee313c6b42b429e1680bd8","typeString":"literal_string \"Token X\""},"value":"Token X"},{"hexValue":"58","id":42378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"428:3:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_550c64a15031c3064454c19adc6243a6122c138a242eaa098da50bb114fc8d56","typeString":"literal_string \"X\""},"value":"X"},{"hexValue":"3138","id":42379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"433:2:49","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_844609f830293788b83c84f34963c352895b060619ee313c6b42b429e1680bd8","typeString":"literal_string \"Token X\""},{"typeIdentifier":"t_stringliteral_550c64a15031c3064454c19adc6243a6122c138a242eaa098da50bb114fc8d56","typeString":"literal_string \"X\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":42376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"403:13:49","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":42375,"nodeType":"UserDefinedTypeName","pathNode":{"id":42374,"name":"MockERC20","nameLocations":["407:9:49"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"407:9:49"},"referencedDeclaration":25560,"src":"407:9:49","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":42380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"403:33:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"src":"394:42:49","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":42382,"nodeType":"ExpressionStatement","src":"394:42:49"},{"expression":{"id":42391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42383,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42367,"src":"446:6:49","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"546f6b656e2059","id":42387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"469:9:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d38969fe94928f9fa61b9719d903efad46ea44597ddeea40fcfc0b2e9f9b4ef","typeString":"literal_string \"Token Y\""},"value":"Token Y"},{"hexValue":"59","id":42388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"480:3:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a2c5f9025f1f0333863704310875ae81a574171bed5b047cfc0f50e347f630e","typeString":"literal_string \"Y\""},"value":"Y"},{"hexValue":"3138","id":42389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"485:2:49","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7d38969fe94928f9fa61b9719d903efad46ea44597ddeea40fcfc0b2e9f9b4ef","typeString":"literal_string \"Token Y\""},{"typeIdentifier":"t_stringliteral_9a2c5f9025f1f0333863704310875ae81a574171bed5b047cfc0f50e347f630e","typeString":"literal_string \"Y\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":42386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"455:13:49","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":42385,"nodeType":"UserDefinedTypeName","pathNode":{"id":42384,"name":"MockERC20","nameLocations":["459:9:49"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"459:9:49"},"referencedDeclaration":25560,"src":"459:9:49","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":42390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"455:33:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"src":"446:42:49","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":42392,"nodeType":"ExpressionStatement","src":"446:42:49"},{"expression":{"arguments":[{"arguments":[{"id":42398,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"518:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_G3MAttackTest_$42623","typeString":"contract G3MAttackTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MAttackTest_$42623","typeString":"contract G3MAttackTest"}],"id":42397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"510:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42396,"name":"address","nodeType":"ElementaryTypeName","src":"510:7:49","typeDescriptions":{}}},"id":42399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"510:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3130305f303030","id":42400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"525:13:49","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000_by_1","typeString":"int_const 100000000000000000000000"},"value":"100_000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000000_by_1","typeString":"int_const 100000000000000000000000"}],"expression":{"id":42393,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42364,"src":"498:6:49","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":42395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"505:4:49","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":25546,"src":"498:11:49","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":42401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"498:41:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42402,"nodeType":"ExpressionStatement","src":"498:41:49"},{"expression":{"arguments":[{"arguments":[{"id":42408,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"569:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_G3MAttackTest_$42623","typeString":"contract G3MAttackTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MAttackTest_$42623","typeString":"contract G3MAttackTest"}],"id":42407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"561:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42406,"name":"address","nodeType":"ElementaryTypeName","src":"561:7:49","typeDescriptions":{}}},"id":42409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"561:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3130305f303030","id":42410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"576:13:49","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000_by_1","typeString":"int_const 100000000000000000000000"},"value":"100_000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000000_by_1","typeString":"int_const 100000000000000000000000"}],"expression":{"id":42403,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42367,"src":"549:6:49","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":42405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"556:4:49","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":25546,"src":"549:11:49","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":42411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"549:41:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42412,"nodeType":"ExpressionStatement","src":"549:41:49"},{"expression":{"id":42422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42413,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42361,"src":"601:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30","id":42419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"625:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":42418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"617:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42417,"name":"address","nodeType":"ElementaryTypeName","src":"617:7:49","typeDescriptions":{}}},"id":42420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"617:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"608:8:49","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_DFMM_$29062_$","typeString":"function (address) returns (contract DFMM)"},"typeName":{"id":42415,"nodeType":"UserDefinedTypeName","pathNode":{"id":42414,"name":"DFMM","nameLocations":["612:4:49"],"nodeType":"IdentifierPath","referencedDeclaration":29062,"src":"612:4:49"},"referencedDeclaration":29062,"src":"612:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}},"id":42421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"608:20:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"src":"601:27:49","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":42423,"nodeType":"ExpressionStatement","src":"601:27:49"},{"expression":{"id":42433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42424,"name":"g3m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42370,"src":"638:3:49","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":42430,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42361,"src":"660:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":42429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"652:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42428,"name":"address","nodeType":"ElementaryTypeName","src":"652:7:49","typeDescriptions":{}}},"id":42431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"652:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"644:7:49","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_G3M_$37911_$","typeString":"function (address) returns (contract G3M)"},"typeName":{"id":42426,"nodeType":"UserDefinedTypeName","pathNode":{"id":42425,"name":"G3M","nameLocations":["648:3:49"],"nodeType":"IdentifierPath","referencedDeclaration":37911,"src":"648:3:49"},"referencedDeclaration":37911,"src":"648:3:49","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}}},"id":42432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"644:22:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"src":"638:28:49","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"id":42434,"nodeType":"ExpressionStatement","src":"638:28:49"},{"expression":{"arguments":[{"arguments":[{"id":42440,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42361,"src":"700:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":42439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"692:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42438,"name":"address","nodeType":"ElementaryTypeName","src":"692:7:49","typeDescriptions":{}}},"id":42441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"692:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":42444,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"712:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":42443,"name":"uint256","nodeType":"ElementaryTypeName","src":"712:7:49","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":42442,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"707:4:49","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":42445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"707:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":42446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"721:3:49","memberName":"max","nodeType":"MemberAccess","src":"707:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42435,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42364,"src":"677:6:49","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":42437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"684:7:49","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":25665,"src":"677:14:49","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":42447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"677:48:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42448,"nodeType":"ExpressionStatement","src":"677:48:49"},{"expression":{"arguments":[{"arguments":[{"id":42454,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42361,"src":"758:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":42453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"750:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42452,"name":"address","nodeType":"ElementaryTypeName","src":"750:7:49","typeDescriptions":{}}},"id":42455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"750:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":42458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"770:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":42457,"name":"uint256","nodeType":"ElementaryTypeName","src":"770:7:49","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":42456,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"765:4:49","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":42459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"765:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":42460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"779:3:49","memberName":"max","nodeType":"MemberAccess","src":"765:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42449,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42367,"src":"735:6:49","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":42451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"742:7:49","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":25665,"src":"735:14:49","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":42461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"735:48:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42462,"nodeType":"ExpressionStatement","src":"735:48:49"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"369:5:49","parameters":{"id":42371,"nodeType":"ParameterList","parameters":[],"src":"374:2:49"},"returnParameters":{"id":42372,"nodeType":"ParameterList","parameters":[],"src":"384:0:49"},"scope":42623,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":42622,"nodeType":"FunctionDefinition","src":"796:1241:49","nodes":[],"body":{"id":42621,"nodeType":"Block","src":"830:1207:49","nodes":[],"statements":[{"assignments":[42468],"declarations":[{"constant":false,"id":42468,"mutability":"mutable","name":"reserveX","nameLocation":"848:8:49","nodeType":"VariableDeclaration","scope":42621,"src":"840:16:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42467,"name":"uint256","nodeType":"ElementaryTypeName","src":"840:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42470,"initialValue":{"hexValue":"32305f303030","id":42469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"859:12:49","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_20000000000000000000000_by_1","typeString":"int_const 20000000000000000000000"},"value":"20_000"},"nodeType":"VariableDeclarationStatement","src":"840:31:49"},{"assignments":[42472],"declarations":[{"constant":false,"id":42472,"mutability":"mutable","name":"price","nameLocation":"889:5:49","nodeType":"VariableDeclaration","scope":42621,"src":"881:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42471,"name":"uint256","nodeType":"ElementaryTypeName","src":"881:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42474,"initialValue":{"hexValue":"31","id":42473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"897:7:49","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"881:23:49"},{"assignments":[42479],"declarations":[{"constant":false,"id":42479,"mutability":"mutable","name":"params","nameLocation":"936:6:49","nodeType":"VariableDeclaration","scope":42621,"src":"915:27:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":42478,"nodeType":"UserDefinedTypeName","pathNode":{"id":42477,"name":"G3M.G3MParams","nameLocations":["915:3:49","919:9:49"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"915:13:49"},"referencedDeclaration":37272,"src":"915:13:49","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"id":42490,"initialValue":{"arguments":[{"hexValue":"302e35","id":42482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"977:9:49","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"value":"0.5"},{"hexValue":"302e35","id":42483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1004:9:49","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"value":"0.5"},{"hexValue":"30","id":42484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1036:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"id":42487,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1071:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_G3MAttackTest_$42623","typeString":"contract G3MAttackTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MAttackTest_$42623","typeString":"contract G3MAttackTest"}],"id":42486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1063:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42485,"name":"address","nodeType":"ElementaryTypeName","src":"1063:7:49","typeDescriptions":{}}},"id":42488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1063:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42480,"name":"G3M","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37911,"src":"945:3:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3M_$37911_$","typeString":"type(contract G3M)"}},"id":42481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"949:9:49","memberName":"G3MParams","nodeType":"MemberAccess","referencedDeclaration":37272,"src":"945:13:49","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}},"id":42489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["973:2:49","1000:2:49","1027:7:49","1051:10:49"],"names":["wX","wY","swapFee","controller"],"nodeType":"FunctionCall","src":"945:142:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"nodeType":"VariableDeclarationStatement","src":"915:172:49"},{"assignments":[42492],"declarations":[{"constant":false,"id":42492,"mutability":"mutable","name":"L","nameLocation":"1106:1:49","nodeType":"VariableDeclaration","scope":42621,"src":"1098:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42491,"name":"uint256","nodeType":"ElementaryTypeName","src":"1098:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42498,"initialValue":{"arguments":[{"id":42494,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42468,"src":"1125:8:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42495,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42472,"src":"1135:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42496,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42479,"src":"1142:6:49","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":42493,"name":"computeLGivenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31662,"src":"1110:14:49","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,struct G3M.G3MParams memory) pure returns (uint256)"}},"id":42497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1110:39:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1098:51:49"},{"expression":{"arguments":[{"hexValue":"4c69717569646974793a","id":42502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1171:12:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_cad8fcca8c569c903ffa7ca842eae2b4aaf80c3698526aa425c9d07f8b716cee","typeString":"literal_string \"Liquidity:\""},"value":"Liquidity:"},{"id":42503,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42492,"src":"1185:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cad8fcca8c569c903ffa7ca842eae2b4aaf80c3698526aa425c9d07f8b716cee","typeString":"literal_string \"Liquidity:\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42499,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17416,"src":"1159:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$17416_$","typeString":"type(library console)"}},"id":42501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1167:3:49","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":10060,"src":"1159:11:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":42504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1159:28:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42505,"nodeType":"ExpressionStatement","src":"1159:28:49"},{"assignments":[42507],"declarations":[{"constant":false,"id":42507,"mutability":"mutable","name":"reserveY","nameLocation":"1205:8:49","nodeType":"VariableDeclaration","scope":42621,"src":"1197:16:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42506,"name":"uint256","nodeType":"ElementaryTypeName","src":"1197:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42513,"initialValue":{"arguments":[{"id":42509,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42492,"src":"1231:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42510,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42472,"src":"1234:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42511,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42479,"src":"1241:6:49","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":42508,"name":"computeYGivenL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31740,"src":"1216:14:49","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,struct G3M.G3MParams memory) pure returns (uint256)"}},"id":42512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1216:32:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1197:51:49"},{"expression":{"arguments":[{"hexValue":"526573657276652059","id":42517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1270:11:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_740313f74086dcbf74fdde64ed33805db009177e1280872ead97ff0cdb899cac","typeString":"literal_string \"Reserve Y\""},"value":"Reserve Y"},{"id":42518,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42507,"src":"1283:8:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_740313f74086dcbf74fdde64ed33805db009177e1280872ead97ff0cdb899cac","typeString":"literal_string \"Reserve Y\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42514,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17416,"src":"1258:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$17416_$","typeString":"type(library console)"}},"id":42516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1266:3:49","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":10060,"src":"1258:11:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":42519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1258:34:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42520,"nodeType":"ExpressionStatement","src":"1258:34:49"},{"expression":{"arguments":[{"hexValue":"526573657276652058","id":42524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1314:11:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_ccbdfa61cf5469c57996401157a4126b7015fe58e368bfcce324b57b3e74cab6","typeString":"literal_string \"Reserve X\""},"value":"Reserve X"},{"id":42525,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42468,"src":"1327:8:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ccbdfa61cf5469c57996401157a4126b7015fe58e368bfcce324b57b3e74cab6","typeString":"literal_string \"Reserve X\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42521,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17416,"src":"1302:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$17416_$","typeString":"type(library console)"}},"id":42523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1310:3:49","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":10060,"src":"1302:11:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":42526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1302:34:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42527,"nodeType":"ExpressionStatement","src":"1302:34:49"},{"assignments":[42529],"declarations":[{"constant":false,"id":42529,"mutability":"mutable","name":"data","nameLocation":"1360:4:49","nodeType":"VariableDeclaration","scope":42621,"src":"1347:17:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":42528,"name":"bytes","nodeType":"ElementaryTypeName","src":"1347:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":42535,"initialValue":{"arguments":[{"id":42531,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42468,"src":"1390:8:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42532,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42472,"src":"1400:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42533,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42479,"src":"1407:6:49","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":42530,"name":"computeInitialPoolData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31906,"src":"1367:22:49","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256,struct G3M.G3MParams memory) pure returns (bytes memory)"}},"id":42534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1367:47:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1347:67:49"},{"assignments":[42540],"declarations":[{"constant":false,"id":42540,"mutability":"mutable","name":"initParams","nameLocation":"1449:10:49","nodeType":"VariableDeclaration","scope":42621,"src":"1425:34:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":42539,"nodeType":"UserDefinedTypeName","pathNode":{"id":42538,"name":"IDFMM.InitParams","nameLocations":["1425:5:49","1431:10:49"],"nodeType":"IdentifierPath","referencedDeclaration":29543,"src":"1425:16:49"},"referencedDeclaration":29543,"src":"1425:16:49","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"id":42557,"initialValue":{"arguments":[{"arguments":[{"id":42545,"name":"g3m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42370,"src":"1511:3:49","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}],"id":42544,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1503:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42543,"name":"address","nodeType":"ElementaryTypeName","src":"1503:7:49","typeDescriptions":{}}},"id":42546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1503:12:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":42549,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42364,"src":"1545:6:49","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":42548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1537:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42547,"name":"address","nodeType":"ElementaryTypeName","src":"1537:7:49","typeDescriptions":{}}},"id":42550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1537:15:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":42553,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42367,"src":"1582:6:49","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":42552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1574:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42551,"name":"address","nodeType":"ElementaryTypeName","src":"1574:7:49","typeDescriptions":{}}},"id":42554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1574:15:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42555,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42529,"src":"1609:4:49","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":42541,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"1462:5:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":42542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1468:10:49","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":29543,"src":"1462:16:49","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$29543_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":42556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1493:8:49","1529:6:49","1566:6:49","1603:4:49"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"1462:162:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}},"nodeType":"VariableDeclarationStatement","src":"1425:199:49"},{"assignments":[42559,42561,42563,42565],"declarations":[{"constant":false,"id":42559,"mutability":"mutable","name":"poolId","nameLocation":"1644:6:49","nodeType":"VariableDeclaration","scope":42621,"src":"1636:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42558,"name":"uint256","nodeType":"ElementaryTypeName","src":"1636:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42561,"mutability":"mutable","name":"deltaX","nameLocation":"1660:6:49","nodeType":"VariableDeclaration","scope":42621,"src":"1652:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42560,"name":"uint256","nodeType":"ElementaryTypeName","src":"1652:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42563,"mutability":"mutable","name":"deltaY","nameLocation":"1676:6:49","nodeType":"VariableDeclaration","scope":42621,"src":"1668:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42562,"name":"uint256","nodeType":"ElementaryTypeName","src":"1668:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42565,"mutability":"mutable","name":"deltaL","nameLocation":"1692:6:49","nodeType":"VariableDeclaration","scope":42621,"src":"1684:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42564,"name":"uint256","nodeType":"ElementaryTypeName","src":"1684:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42570,"initialValue":{"arguments":[{"id":42568,"name":"initParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42540,"src":"1724:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":42566,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42361,"src":"1714:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":42567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1719:4:49","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":28091,"src":"1714:9:49","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$29543_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":42569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1714:21:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1635:100:49"},{"expression":{"arguments":[{"hexValue":"44656c7461583a202573","id":42574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1758:12:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b780db2b5e88c5504d0db3290472bdbeff700f1ac3e898c510f415798aff470","typeString":"literal_string \"DeltaX: %s\""},"value":"DeltaX: %s"},{"id":42575,"name":"deltaX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42561,"src":"1772:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b780db2b5e88c5504d0db3290472bdbeff700f1ac3e898c510f415798aff470","typeString":"literal_string \"DeltaX: %s\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42571,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17416,"src":"1746:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$17416_$","typeString":"type(library console)"}},"id":42573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1754:3:49","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":10060,"src":"1746:11:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":42576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1746:33:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42577,"nodeType":"ExpressionStatement","src":"1746:33:49"},{"expression":{"arguments":[{"hexValue":"44656c7461593a202573","id":42581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1801:12:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_7463f709cf620d2323b1f6e9116f6f358b56e4fbf9e6ad5ef7c0799fc0a4a0f6","typeString":"literal_string \"DeltaY: %s\""},"value":"DeltaY: %s"},{"id":42582,"name":"deltaY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42563,"src":"1815:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7463f709cf620d2323b1f6e9116f6f358b56e4fbf9e6ad5ef7c0799fc0a4a0f6","typeString":"literal_string \"DeltaY: %s\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42578,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17416,"src":"1789:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$17416_$","typeString":"type(library console)"}},"id":42580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1797:3:49","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":10060,"src":"1789:11:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":42583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1789:33:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42584,"nodeType":"ExpressionStatement","src":"1789:33:49"},{"expression":{"arguments":[{"hexValue":"44656c74614c3a202573","id":42588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1844:12:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_f83ca20e5e22a69c4b4bbadc640218b6cdcdaf1d46611c60d3640297bae26aa3","typeString":"literal_string \"DeltaL: %s\""},"value":"DeltaL: %s"},{"id":42589,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42565,"src":"1858:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f83ca20e5e22a69c4b4bbadc640218b6cdcdaf1d46611c60d3640297bae26aa3","typeString":"literal_string \"DeltaL: %s\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42585,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17416,"src":"1832:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$17416_$","typeString":"type(library console)"}},"id":42587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1840:3:49","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":10060,"src":"1832:11:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":42590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1832:33:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42591,"nodeType":"ExpressionStatement","src":"1832:33:49"},{"assignments":[42596],"declarations":[{"constant":false,"id":42596,"mutability":"mutable","name":"pool","nameLocation":"1894:4:49","nodeType":"VariableDeclaration","scope":42621,"src":"1876:22:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_memory_ptr","typeString":"struct IDFMM.Pool"},"typeName":{"id":42595,"nodeType":"UserDefinedTypeName","pathNode":{"id":42594,"name":"IDFMM.Pool","nameLocations":["1876:5:49","1882:4:49"],"nodeType":"IdentifierPath","referencedDeclaration":29534,"src":"1876:10:49"},"referencedDeclaration":29534,"src":"1876:10:49","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage_ptr","typeString":"struct IDFMM.Pool"}},"visibility":"internal"}],"id":42601,"initialValue":{"arguments":[{"id":42599,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42559,"src":"1914:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42597,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42361,"src":"1901:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":42598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1906:7:49","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":28985,"src":"1901:12:49","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$29534_memory_ptr_$","typeString":"function (uint256) view external returns (struct IDFMM.Pool memory)"}},"id":42600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1901:20:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_memory_ptr","typeString":"struct IDFMM.Pool memory"}},"nodeType":"VariableDeclarationStatement","src":"1876:45:49"},{"assignments":[42603],"declarations":[{"constant":false,"id":42603,"mutability":"mutable","name":"balance","nameLocation":"1939:7:49","nodeType":"VariableDeclaration","scope":42621,"src":"1931:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42602,"name":"uint256","nodeType":"ElementaryTypeName","src":"1931:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42614,"initialValue":{"arguments":[{"arguments":[{"id":42611,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1994:4:49","typeDescriptions":{"typeIdentifier":"t_contract$_G3MAttackTest_$42623","typeString":"contract G3MAttackTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MAttackTest_$42623","typeString":"contract G3MAttackTest"}],"id":42610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1986:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42609,"name":"address","nodeType":"ElementaryTypeName","src":"1986:7:49","typeDescriptions":{}}},"id":42612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1986:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"id":42605,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42596,"src":"1955:4:49","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_memory_ptr","typeString":"struct IDFMM.Pool memory"}},"id":42606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1960:14:49","memberName":"liquidityToken","nodeType":"MemberAccess","referencedDeclaration":29533,"src":"1955:19:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42604,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25948,"src":"1949:5:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$25948_$","typeString":"type(contract ERC20)"}},"id":42607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1949:26:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1976:9:49","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"1949:36:49","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":42613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1949:51:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1931:69:49"},{"expression":{"arguments":[{"id":42618,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42603,"src":"2022:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42615,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17416,"src":"2010:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$17416_$","typeString":"type(library console)"}},"id":42617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2018:3:49","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":9933,"src":"2010:11:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":42619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2010:20:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42620,"nodeType":"ExpressionStatement","src":"2010:20:49"}]},"functionSelector":"c8cc11d1","implemented":true,"kind":"function","modifiers":[],"name":"test_G3M_attack","nameLocation":"805:15:49","parameters":{"id":42465,"nodeType":"ParameterList","parameters":[],"src":"820:2:49"},"returnParameters":{"id":42466,"nodeType":"ParameterList","parameters":[],"src":"830:0:49"},"scope":42623,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":42357,"name":"Test","nameLocations":["276:4:49"],"nodeType":"IdentifierPath","referencedDeclaration":8195,"src":"276:4:49"},"id":42358,"nodeType":"InheritanceSpecifier","src":"276:4:49"}],"canonicalName":"G3MAttackTest","contractDependencies":[25560,29062,37911],"contractKind":"contract","fullyImplemented":true,"internalFunctionIDs":{"32083":1},"linearizedBaseContracts":[42623,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"G3MAttackTest","nameLocation":"259:13:49","scope":42624,"usedErrors":[30985,30992],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":49} \ No newline at end of file diff --git a/out/G3M.t.sol/G3MTestFork.json b/out/G3M.t.sol/G3MTestFork.json deleted file mode 100644 index 800f874b..00000000 --- a/out/G3M.t.sol/G3MTestFork.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testFork_G3M_init_DAIWETHPool","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testFork_G3M_init_USDCWETHPool","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"BisectionLib_InvalidBounds","inputs":[{"name":"lower","type":"uint256","internalType":"uint256"},{"name":"upper","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BisectionLib_RootOutsideBounds","inputs":[{"name":"lowerResult","type":"int256","internalType":"int256"},{"name":"upperResult","type":"int256","internalType":"int256"}]}],"bytecode":{"object":"0x6080806040523461002357600160ff19600054161760005561767a90816100298239f35b600080fdfe60806040818152600491823610156200001757600080fd5b600091823560e01c9384630a9254e4146200007c575050505080631c3059791462000076578063aff1f96c1462000070578063ba414fa6146200006a5763fa7626d4146200006457600080fd5b62000fcf565b62000fa6565b62000bcd565b62000689565b34620006745783600319360112620006745763f877cb1960e01b83526020608452600f60a4526e1350525393915517d49410d7d55493608a1b60c452600080516020620076258339815191528484606481845afa80156200053857620001029486916200064f575b5083519063261a000d60e21b825281806020978893878301620011a7565b038189865af1801562000538576200061b575b50601480546001600160a01b03191673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48179055601580546001600160a01b03191673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2179055601680546001600160a01b031916736b175474e89094c44da98b954eedeac495271d0f17905582516335d99f3560e01b815273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489185828581865afa8015620005385787928391620005e7575b50813b15620005e357855163ca669fa760e01b81526001600160a01b03909116858201908152909291839182908490829060200103925af180156200053857620005cc575b5082516327226cab60e11b8152308382019081526000196020820152859082908190604001038189865af180156200053857620005aa575b50803b15620005a65782516340c10f1960e01b815230838201908152637735940060208201529091869183919082908490829060400103925af18015620005385762000588575b50601554620002b2903090620002ac906001600160a01b03165b6001600160a01b031690565b620017b9565b601654620002d6903090620002d0906001600160a01b0316620002a0565b62001b2c565b8151612f219081810167ffffffffffffffff9282821084831117620005825782916200030c916200343984396000815260200190565b039086f080156200053857601380546001600160a01b0319166001600160a01b039290921691821790556200034190620002a0565b8351916112cb8084019290918311848410176200058257839262000378926200635a85396001600160a01b03909116815260200190565b039085f080156200053857601780546001600160a01b0319166001600160a01b03928316179055601454620003ae9116620002a0565b601354909290620003c8906001600160a01b0316620002a0565b815163095ea7b360e01b8082526001600160a01b0390921684820190815260001960208201529094869186919082908a90829060400103925af19384156200053857869462000560575b506015548590620004769062000431906001600160a01b0316620002a0565b60135462000448906001600160a01b0316620002a0565b85518581526001600160a01b0390911687820190815260001960208201529097889384928391604090910190565b03925af19283156200053857620004f19486946200053e575b506016548790620004a9906001600160a01b0316620002a0565b601354909390620004c3906001600160a01b0316620002a0565b94519081526001600160a01b0390941691840191825260001960208301529294859384929091839160400190565b03925af18015620005385762000505578280f35b816200052992903d1062000530575b6200052081836200107d565b810190620011e6565b5081808280f35b503d62000514565b62001164565b6200055890853d871162000530576200052081836200107d565b50876200048f565b6200057a90863d881162000530576200052081836200107d565b508662000412565b62000ff4565b80620005986200059f926200102e565b8062000678565b8462000286565b8480fd5b620005c490853d871162000530576200052081836200107d565b50856200023f565b8062000598620005dc926200102e565b8562000207565b8280fd5b6200060c9150873d891162000613575b6200060381836200107d565b810190620011cf565b88620001c2565b503d620005f7565b6200063f90853d871162000647575b6200063681836200107d565b81019062001170565b508562000115565b503d6200062a565b6200066d91503d908188823e62000666826200100a565b01620010f3565b86620000e4565b8380fd5b60009103126200068457565b600080fd5b34620006845760008060031936011262000bca57620006a7620010a0565b6706f05b59d3b200008082526020808301919091526040808301849052306060840152909190601554620006e4906001600160a01b0316620002a0565b81516370a0823160e01b808252306004808401919091529294919391928685602481895afa9485156200053857889562000ba6575b5060165462000731906001600160a01b0316620002a0565b83518381523083820190815290979196919089908990819060200103818a5afa97881562000538578a9862000b82575b5060135462000779906001600160a01b0316620002a0565b85518581526001600160a01b0382168582019081529097908b90899081906020010381865afa97881562000538578c9862000b5e575b5086518681526001600160a01b0383168682019081528c908290819060200103818d5afa998a1562000538578d948d92869c62000b20575b50916200085a6200087a94926200084b608097956200081c62000815620002a060175460018060a01b031690565b966200146e565b946200083a6200082b620010a0565b6001600160a01b039098168852565b6001600160a01b0390911690860152565b6001600160a01b0316838c0152565b606082015288519485809481936305157c7f60e21b83528a830162001223565b03925af18015620005385762000ae9575b50601554620008a3906001600160a01b0316620002a0565b8451848152308482019081529092918a918491908290819060200103915afa9081156200053857620008ea928b9262000ac0575b50620008e3906200127c565b9062001625565b60165462000901906001600160a01b0316620002a0565b835183815230838201908152909189918391908290819060200103915afa80156200053857620009999762000944928b9262000a97575b50620008e39062001299565b60155487906200095d906001600160a01b0316620002a0565b60135462000974906001600160a01b0316620002a0565b85518581526001600160a01b0390911684820190815290988992918391829160200190565b03915afa958615620005385762000a1a968895620009c5928b9262000a6e575b50620008e390620012d2565b601654620009dc906001600160a01b0316620002a0565b601354909290620009f6906001600160a01b0316620002a0565b93519081526001600160a01b03909316908301908152919485928391829160200190565b03915afa918215620005385762000a4093859362000a43575b5050620008e390620012e8565b80f35b620008e3929350908162000a6592903d1062000647576200063681836200107d565b91903862000a33565b620008e391925062000a8f90883d8a1162000647576200063681836200107d565b9190620009b9565b620008e391925062000ab8908b3d8d1162000647576200063681836200107d565b919062000938565b620008e391925062000ae1908b3d8d1162000647576200063681836200107d565b9190620008d7565b62000b0f9060803d60801162000b18575b62000b0681836200107d565b81019062001200565b5050506200088b565b503d62000afa565b83919c506200087a94926200084b62000b4f6200085a93608099973d871162000647576200063681836200107d565b9e9395975050929450620007e7565b62000b7a9198508b3d8d1162000647576200063681836200107d565b9638620007af565b62000b9e919850893d8b1162000647576200063681836200107d565b963862000761565b62000bc2919550873d891162000647576200063681836200107d565b933862000719565b80fd5b34620006845760008060031936011262000bca5762000beb620010a0565b6706f05b59d3b20000808252602080830191909152604080830184905230606084015290919060155462000c28906001600160a01b0316620002a0565b81516370a0823160e01b808252306004808401919091529294919391928685602481895afa9485156200053857889562000f82575b5060145462000c75906001600160a01b0316620002a0565b83518381523083820190815290979196919089908990819060200103818a5afa97881562000538578a9862000f5e575b5060135462000cbd906001600160a01b0316620002a0565b85518581526001600160a01b0382168582019081529097908b90899081906020010381865afa97881562000538578c9862000f3a575b5086518681526001600160a01b0383168682019081528c908290819060200103818d5afa998a1562000538578d948d92869c62000efc575b50916200085a62000d5994926200084b608097956200081c62000815620002a060175460018060a01b031690565b03925af18015620005385762000ed7575b5060155462000d82906001600160a01b0316620002a0565b8451848152308482019081529092918a918491908290819060200103915afa908115620005385762000dc1928b9262000ac05750620008e3906200127c565b60145462000dd8906001600160a01b0316620002a0565b835183815230838201908152909189918391908290819060200103915afa8015620005385762000e1b9762000944928b9262000eae575b50620008e390620012b1565b03915afa958615620005385762000e5d96889562000e46928b9262000a6e5750620008e390620012d2565b601454620009dc906001600160a01b0316620002a0565b03915afa918215620005385762000a4093859362000e83575b5050620008e390620012ff565b620008e3929350908162000ea592903d1062000647576200063681836200107d565b91903862000e76565b620008e391925062000ecf908b3d8d1162000647576200063681836200107d565b919062000e0f565b62000ef39060803d60801162000b185762000b0681836200107d565b50505062000d6a565b83919c5062000d5994926200084b62000f2b6200085a93608099973d871162000647576200063681836200107d565b9e939597505092945062000d2b565b62000f569198508b3d8d1162000647576200063681836200107d565b963862000cf3565b62000f7a919850893d8b1162000647576200063681836200107d565b963862000ca5565b62000f9e919550873d891162000647576200063681836200107d565b933862000c5d565b34620006845760003660031901126200068457602062000fc5620013a0565b6040519015158152f35b34620006845760003660031901126200068457602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b601f80199101166080016080811067ffffffffffffffff8211176200058257604052565b67ffffffffffffffff81116200058257604052565b6080810190811067ffffffffffffffff8211176200058257604052565b6060810190811067ffffffffffffffff8211176200058257604052565b90601f8019910116810190811067ffffffffffffffff8211176200058257604052565b60405190620010af8262001043565b565b67ffffffffffffffff81116200058257601f01601f191660200190565b60005b838110620010e25750506000910152565b8181015183820152602001620010d1565b6020607f19820112620006845760805167ffffffffffffffff8111620006845781609f82011215620006845780608001516200112f81620010b1565b926200113f60405194856200107d565b81845260a082840101116200068457620011619160a0602085019101620010ce565b90565b6040513d6000823e3d90fd5b9081602091031262000684575190565b906020916200119b81518092818552858086019101620010ce565b601f01601f1916010190565b9060206200116192818152019062001180565b51906001600160a01b03821682036200068457565b9081602091031262000684576200116190620011ba565b908160209103126200068457518015158103620006845790565b919082608091031262000684578151916020810151916060604083015192015190565b60a06060620011619360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062001180565b634e487b7160e01b600052601160045260246000fd5b670de0b6b3a763ffff198101919082116200129357565b62001266565b686c6b935b8bbd3fffff198101919082116200129357565b63773593ff198101919082116200129357565b919082039182116200129357565b90670de0b6b3a764000082018092116200129357565b90686c6b935b8bbd40000082018092116200129357565b90637735940082018092116200129357565b919082018092116200129357565b90600491630667f9d760e41b8152620013428251809360208685019101620010ce565b010190565b6004929163ffffffff60e01b168152620013428251809360208685019101620010ce565b3d156200139b573d906200137f82620010b1565b916200138f60405193846200107d565b82523d6000602084013e565b606090565b6000805460081c60ff1615620013ba575460081c60ff1690565b8060008051602062007625833981519152803b620013d757505090565b8192506040518281620014106020820190604082019160008051602062007625833981519152815260206519985a5b195960d21b910152565b0362001425601f19918281018552846200107d565b6200144b60405191826200143e6020820196876200131f565b039081018352826200107d565b51925af150620011616200145e6200136b565b60208082518301019101620011e6565b60208101620014ba815191620014b3620014aa620014a36200149d6200149788518098620021ef565b62002212565b6200223f565b9462001e43565b91518462001fe2565b9062002197565b620014c783828462001db8565b8190600080821215620015d95790859392915b808212620015b257506200116194926200143e9262001560925b60408051670de0b6b3a76400006020808301919091528183018990526060808301949094528951608083015289015160a08201529088015160c08201529601516001600160a01b031660e0808801919091528652601f19956200155a610100826200107d565b62002282565b85516040808801516060988901518251670de0b6b3a764000060208201529283019690965297810192909252608082015260a08101959095526001600160a01b0390911660c0850152839060e0820190565b92935050620015c19062002262565b90620015cf85838662001db8565b85939291620014da565b90859392915b808213620015fe57506200116194926200143e926200156092620014f4565b935050906200160d90620021c4565b916200161b85848662001db8565b85939291620015df565b9080820362001632575050565b6080806040938451937f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50836020968781526022888201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8982015261745d60f01b6060820152a1855190868252600a87830152690808115e1c1958dd195960b21b6060830152858201527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8938491a1845190858252600a8683015269080808081058dd1d585b60b21b606083015284820152a160008051602062007625833981519152803b62001732575b50505061010061ff00196000541617600055565b8260006200178f620017a0602483979684975195818701908882526519985a5b195960d21b818901526001606089015260608852620017718862001043565b519485928301976370ca10bb60e01b895251809285850190620010ce565b81010360048101845201826200107d565b51925af150620017af6200136b565b503880806200171e565b604090815192602091828501946370a0823160e01b8652600160a01b600190038316602482015260248152620017ef8162001060565b600080968192519082855af150620018066200136b565b838082518301019101906200181b9162001170565b50600a80546001600160a01b0319166001600160a01b03909216919091179055600560038101805463ffffffff19166370a08231179055906200185e91620023d6565b6005810180549092906001600160a01b03169160038101918254620018839060e01b90565b93600483019687549560028501968a806200189e8a6200241c565b9786620018ab8a6200278d565b9187519a868c8c810195620018c2908b8862001347565b03928d601f19948581018252620018d9916200107d565b6001600160a01b038516600090815260018201602090815260408083206001600160e01b03198e16845290915290208b51808f0190806200191c86888562002471565b0387810182526200192e90826200107d565b519020620019459190600052602052604060002090565b5460ff1615620019e09a6200197e620019bc97620019ab94620019969462001b09579060018060a01b0316600052602052604060002090565b9063ffffffff60e01b16600052602052604060002090565b938d6200143e8d519485928301968762002471565b519020600052602052604060002090565b54985190875afa50620019d9620019d26200136b565b91620024a8565b906200280f565b8151630667f9d760e41b81526001600160a01b038416600482015260248101869052600080516020620076258339815191529491908281604481895afa92831562000538578c9362001ae5575b50500362001adf57823b1562001adb57516370ca10bb60e01b81526001600160a01b0390911660048201526024810192909252670de0b6b3a7640000604483015290919086908390818381606481015b03925af18015620005385762001ac19462001abb9362001aae9262001ac4575b5080546001600160a01b0319169055565b805463ffffffff19169055565b6200256a565b55565b806200059862001ad4926200102e565b3862001a9d565b8880fd5b620024c1565b62001b00929350803d1062000647576200063681836200107d565b90388062001a2d565b62001b148162002a92565b509060018060a01b0316600052602052604060002090565b604090815192602091828501946370a0823160e01b8652600160a01b60019003831660248201526024815262001b628162001060565b600080968192519082855af15062001b796200136b565b8380825183010191019062001b8e9162001170565b50600a80546001600160a01b0319166001600160a01b03909216919091179055600560038101805463ffffffff19166370a082311790559062001bd191620023d6565b6005810180549092906001600160a01b0316916003810191825462001bf69060e01b90565b93600483019687549560028501968a8062001c118a6200241c565b978662001c1e8a6200278d565b9187519a868c8c81019562001c35908b8862001347565b03928d601f1994858101825262001c4c916200107d565b6001600160a01b038516600090815260018201602090815260408083206001600160e01b03198e16845290915290208b51808f01908062001c8f86888562002471565b03878101825262001ca190826200107d565b51902062001cb89190600052602052604060002090565b5460ff161562001cf19a6200197e620019bc97620019ab94620019969462001b09579060018060a01b0316600052602052604060002090565b8151630667f9d760e41b81526001600160a01b038416600482015260248101869052600080516020620076258339815191529491908281604481895afa92831562000538578c9362001d94575b50500362001adf57823b1562001adb57516370ca10bb60e01b81526001600160a01b0390911660048201526024810192909252686c6b935b8bbd4000006044830152909190869083908183816064810162001a7d565b62001daf929350803d1062000647576200063681836200107d565b90388062001d3e565b9060018115151615620006845782602062001dfa620014b39362001df362001e049751826ec097ce7bc90715b34b9f10000000000462001fe2565b95620021ef565b9101519062001fe2565b670de0b6b3a763ffff198101908113600116620012935790565b818102929160008212600160ff1b821416620012935781840514901517156200129357565b620011619062001fdc9062001fce90787d08509902966378cdc65fee42d5fffea15800000000000000606090811d6d0388eaa27412d5aca026815d636e016c01bc16d674ec80000000000000908102821d6d0df99ac502031bf953eff472fdcc018102821d6d13cdffb29d51d99322bdff5f2211018102821d6d0a0f742023def783a307a986912e018102821d6d01920d8043ca89b5239253284e42018102821d6c0b7a86d7375468fac667a0a52701784aadc582f1d8bc491e7bc949e15040342ddc00000000000000831d6d0139601a2efabe717e604cbb4894018202831d6d02247f7a7b6594320649aa03aba1018202831d6c8c3f38e95a6b1ff2ab1c3b343619018202831d6d02384773bdf1ac5676facced60901901820290921d6cb9a025d814b29c212b8b1a07cd190102780a09507084cc699bb0e71ea869ffffffffffffffffffffffff190105711340daa0d5f769dba1915cef59f0815a5506027ffffffe16bfa92fe97c97d2be09a7c830246e68b9533ecff8af7a549ce6e02ea50160ae1d62001e1e565b670de0b6b3a7640000900590565b620025de565b62001fce62001161927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b886428462001fdc936200201d60008213620025a5565b711340daa0d5f769dba1915cef59f0815a55066200203b8262002896565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d62001e1e565b81810291818304149015176001161562000684576001670de0b6b3a7640000600019830104019015150290565b6103e990818102918183041490151760011615620006845760016103e8600019830104019015150290565b670de0b6b3a7640000908181029181830414901517821515161562000684570490565b686c6b935b8bbd400000908181029181830414901517600116156200068457670de0b6b3a7640000900490565b670de0b6b3a7640000908181029082818304149015176001161562000684570490565b6103e79081810291818304149015176001161562000684576103e8900490565b60009392918491838211620023a0576200229d82826200339b565b620022a985836200339b565b6000620022b7828462001e1e565b13620023815750620022cc83869796620012c4565b60019460009186805b620022e7575b50505050505050509050565b1562002357575b50859697985080916200230c620023068b8862001311565b60011c90565b99620023198b876200339b565b908362002327878462001e1e565b136200234a57505089925b876200233f8886620012c4565b9201939998620022d5565b8b97509094509262002332565b86108062002375575b156200236d5788620022ee565b8080620022db565b50610100821062002360565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b634e487b7160e01b600052603260045260246000fd5b90600282019081549168010000000000000000831015620005825760018301808255831015620024165760005260018060a01b0316906020600020015590565b620023c0565b90604051918281549182825260209260208301916000526020600020936000905b8282106200245657505050620010af925003836200107d565b8554845260019586019588955093810193909101906200243d565b9091825160208094019360005b82811062002493575050506020925081520190565b8551855294810194938101936001016200247e565b600581901b91906001600160fb1b038116036200129357565b60405162461bcd60e51b815260206004820152606f60248201527f73746453746f726167652066696e642853746453746f72616765293a2050616360448201527f6b656420736c6f742e205468697320776f756c642063617573652064616e676560648201527f726f7573206f76657277726974696e6720616e642063757272656e746c79206960848201526e39b713ba1039bab83837b93a32b21760891b60a482015260c490fd5b80549060009060008155826200257f57505050565b6000526020600020918201915b8281106200259957505050565b8181556001016200258c565b15620025ad57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e198113156200276457680755bf798b4a1bf1e581121562002730576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b805115620024165760200190565b8051821015620024165760209160051b010190565b9081516005908060051b602091808204602014901517156200129357620027b481620010b1565b90620027c460405192836200107d565b808252620027d5601f1991620010b1565b0136602083013760005b8551811015620028085780620027f86001928862002778565b518482871b8501015201620027df565b5093505050565b906000918051602090602081116000146200288e5750602091905b6000935b8385106200283e57505050505090565b90919293948582018083116200129357845181101562002416578401830151600387901b91906001600160f81b0319168715600889850414171562001293576001921c179501939291906200282e565b91906200282a565b620028a3811515620025a5565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b81601f82011215620006845780519160209167ffffffffffffffff841162000582578360051b906040519462002943858401876200107d565b8552838086019282010192831162000684578301905b82821062002968575050505090565b8151815290830190830162002959565b919091604081840312620006845780519267ffffffffffffffff93848111620006845781620029a99184016200290a565b93602083015190811162000684576200116192016200290a565b608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b1562002a3557565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b60058101546001600160a01b0316600382015460e01b9160048101549162002abd600283016200241c565b9162002b1b62002b1462002aeb876200197e86600187019060018060a01b0316600052602052604060002090565b6040516020810190620019ab8162002b058b8b8662002471565b03601f1981018352826200107d565b5460ff1690565b6200336d579062002b469162002b5562002b35856200278d565b604051948591896020840162001347565b03601f1981018552846200107d565b600080516020620076258339815191523b15620006845760405163266cf10960e01b815260008160048183600080516020620076258339815191525af18015620005385762003356575b50600080845160208601855afa5062002bc662002bbb6200136b565b620019d987620024a8565b6040516365bc948160e01b81526001600160a01b03841660048201529360008560248183600080516020620076258339815191525af194851562000538576000956200332b575b5084516001810362002ece57505062002c5e90602062002c2d866200276a565b51604051630667f9d760e41b81526001600160a01b0387166004820152602481019190915292839081906044820190565b0381600080516020620076258339815191525afa918215620005385760009262002ea8575b50811562002e4d575b0362001adf5762002e49956200197e620019ab9362002d619362002d3062002b05977f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed8a62002b0562002ceb8e60405192839160208301958662002471565b51902062002cf9836200276a565b51604080516001600160a01b03891681526001600160e01b03198b166020820152908101929092526060820152608090a16200276a565b5162002d748a8a62002b05620019ab62002d618a6200197e8a8a9060018060a01b0316600052602052604060002090565b9360405192839160208301958662002471565b5562002db962002dac8a8a62002b05620019ab62002d618a6200197e8a60018b019060018060a01b0316600052602052604060002090565b805460ff19166001179055565b62002dfa62002df462002b148b8b62002b05620019ab62002d618b6200197e8b60018c019060018060a01b0316600052602052604060002090565b62002a2d565b6005810180546001600160a01b031916905560038101805463ffffffff1916905562002e29600282016200256a565b6000600482018190556001600160a01b0390921682526020526040902090565b5490565b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a562002e9f62002e7d876200276a565b51604080516001600160a01b0389168152602081019290925290918291820190565b0390a162002c8c565b62002ec691925060203d60201162000647576200063681836200107d565b903862002c83565b60019198949793999596925011600014620033255760005b8551811015620033015780602062002f0362002f34938962002778565b51604051630667f9d760e41b81526001600160a01b038b166004820152602481019190915292839081906044820190565b0381600080516020620076258339815191525afa9182156200053857600092620032db575b5081156200327f575b62002f6e818862002778565b51600080516020620076258339815191523b1562000684576040516370ca10bb60e01b81526001600160a01b038a166004820152602481019190915261133760f01b604482015260008160648183600080516020620076258339815191525af18015620005385762003268575b506000808a5160208c018b5afa62002ff662002bbb6200136b565b8162003258575b506200309c576200300f818862002778565b51600080516020620076258339815191523b1562000684576040516370ca10bb60e01b81526001600160a01b038a1660048201526024810191909152604481019290925260008260648183600080516020620076258339815191525af1918215620005385760019262003085575b500162002ee6565b806200059862003095926200102e565b386200307d565b9092969498939750620031b791957f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed6040516020810190620030e58162002b058d8d8662002471565b5190208a62003133620030f9868662002778565b51604080516001600160a01b038d1681526001600160e01b0319909416602085015283019390935260608201929092529081906080820190565b0390a162003142828262002778565b5162003183620031698b6200197e8a8a9060018060a01b0316600052602052604060002090565b6040516020810190620019ab8162002b058f8f8662002471565b55620031b162002dac620031698b6200197e8a60018b019060018060a01b0316600052602052604060002090565b62002778565b51600080516020620076258339815191523b1562000684576040516370ca10bb60e01b81526001600160a01b03851660048201526024810191909152604481019190915260008160648183600080516020620076258339815191525af195861562000538576200197e62002b0594620019ab9462002d619462002e499a62003241575b5062002db9565b806200059862003251926200102e565b386200323a565b61133760f01b1490503862002ffd565b806200059862003278926200102e565b3862002fdb565b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5620032d2620032b0838a62002778565b51604080516001600160a01b038d168152602081019290925290918291820190565b0390a162002f62565b620032f991925060203d60201162000647576200063681836200107d565b903862002f59565b5093509362002e499550620019ab916200197e62002d619262002b05959962002db9565b620029c3565b6200334d9195503d806000833e6200334481836200107d565b81019062002978565b50933862002c0d565b806200059862003366926200102e565b3862002b9f565b62002d6162002e49956200197e62002b0594620019ab949060018060a01b0316600052602052604060002090565b908180518101039060e0821262000684576020830151926080604082015193605f19011262000684576200342f826200342862001e049662003422620014b39660405192620033ea8462001043565b60808801519384815260606200341960e060a08c01519b602085019c8d5260c0810151604086015201620011ba565b910152620021ef565b62001fe2565b94620021ef565b90519062001fe256fe60c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360a03461007f57601f6112cb38819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f57608052604051611230908161009b82396080518181816103b701528181610612015281816107c601526109240152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b610953565b61090e565b6107ad565b610773565b6105f6565b610331565b6102ae565b610221565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101c3565b838082518301019101610986565b9061010d6100ff600435610a7f565b8680825183010191016109a1565b92610b68565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761015057604052565b61011e565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101a1601f8201601f191660200184610155565b8294818452818301116101be578281602093846000960137010152565b600080fd5b9080601f830112156101be578160206101de93359101610177565b90565b919082519283825260005b84811061020d575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101ec565b346101be5760003660031901126101be57604051604081019080821067ffffffffffffffff8311176101505761027891604052600381526247334d60e81b60208201526040519182916020835260208301906101e1565b0390f35b9060405161028981610134565b6060600382948054845260018101546020850152600281015460408501520154910152565b346101be5760203660031901126101be57600435600052600060205260c060406000206102da8161027c565b90600481015490600560018060a01b03910154169060606040519380518552602081015160208601526040810151604086015201516060840152608083015260a0820152f35b6001600160a01b038116036101be57565b346101be5760603660031901126101be5761034d600435610320565b60243560443567ffffffffffffffff81116101be576103709036906004016101c3565b9061037a81610a7f565b90610390825192602080809583010191016109a1565b6040516333854efd60e21b8152600481018390529092906060816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa948515610596576000908192829761055d575b508084806103ff93518301019101610986565b949195909787878581116000146104c45793610454869461044e866104496104769b9761044461046198604061043b61046d9f6104679f610a08565b91015190610f48565b610f48565b610f74565b50610a7f565b80518101820191016109a1565b91610bb9565b83610a27565b93828685610b68565b93846013191292836104b9575b6102789394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b601486129350610483565b5050919290938089116000146104ff5761046161046d946104546104769761044e856104498f998f61044490604061043b866104679f610a08565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9096506103ff9250610587915060603d60601161058f575b61057f8183610155565b810190610986565b9690926103ec565b503d610575565b6109e6565b9060606003198301126101be576004356105b481610320565b916024359160443567ffffffffffffffff928382116101be57806023830112156101be5781600401359384116101be57602484830101116101be576024019190565b346101be576106043661059b565b9192506001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610761578160c091810103126101be5780359160208201359160408101359460608201359060a08301359261066984610320565b670de0b6b3a764000083101561074f5761070d946107059460806106f1936106f69661069f876000526000602052604060002090565b55013560046106b8866000526000602052604060002090565b01551660056106d1846000526000602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610a7f565b602080825183010191016109a1565b848385610b68565b9283601319129182610744575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b60148512925061071a565b60405163e8a38a6160e01b8152600490fd5b604051636853cba760e01b8152600490fd5b346101be5760606107833661059b565b818094509492940103126101be5780359061070d6107056106f66040602085013594013595610a7f565b346101be576107bb3661059b565b926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610761576108236108176005610809876000526000602052604060002090565b01546001600160a01b031690565b6001600160a01b031690565b9116036108fc5761083683820182610a4a565b61083f81610a5f565b60018103610878575061086261085d61087392600494953691610177565b610caa565b926000526000602052604060002090565b01555b005b61088181610a5f565b600281036108bd5750906108a56108a06108b893610876953691610177565b610c00565b9290916000526000602052604060002090565b610c28565b806108c9600392610a5f565b036108ea576106d16108626108e5600593610876963691610177565b610bd8565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101be5760003660031901126101be576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101be5760203660031901126101be57610278610972600435610a7f565b6040519182916020835260208301906101e1565b908160609103126101be578051916040602083015192015190565b908160809103126101be576060604051916109bb83610134565b80518352602081015160208401526040810151604084015201516109de81610320565b606082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610a1557565b6109f2565b91908201809211610a1557565b81810392916000138015828513169184121617610a1557565b600411156101be57565b908160209103126101be57356101de81610a40565b60041115610a6957565b634e487b7160e01b600052602160045260246000fd5b60408051610a8c81610134565b6000918282526020820193838552818301848152606084019085825282865285602052610ac2610abd85882061027c565b610cdf565b808652670de0b6b3a7640000908103908111610a1557846101de97610b1f95610b1294600594610b5a9c5281835282602052600484842001549052815280602052200160018060a01b0390541690565b6001600160a01b03169052565b5192839160208301919091606060808201938051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b03601f198101835282610155565b926020610b9184610b8b610b83610b9a9697610ba099610fa4565b855190610d88565b95610fa4565b91015190610d88565b90610f48565b670de0b6b3a763ffff198101908113600116610a155790565b6101de92916020610bcf610b9a93855190610d88565b93015190610d88565b6040818051810103126101be5780610bf560206040930151610a40565b015161081781610320565b6060818051810103126101be57610c1a6020820151610a40565b606060408201519101519091565b919042821115610c9857610c3e610abd8461027c565b9081845542600385015542830391838311610a1557610c5c91610a27565b428314610c8257600160ff1b8114600019831416610a1557600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101be5780610cc760206040930151610a40565b015190565b81810292918115918404141715610a1557565b6060810151906020810151808314610d5e57804211600014610d5657915b8203918211610a15576040810190815160008113600014610d3057506101de92610d2a9151925190610ccc565b90610a1a565b90519150600160ff1b8114610a15576101de92610d509160000390610ccc565b90610a08565b504291610cfd565b5090505190565b818102929160008212600160ff1b821416610a15578184051490151715610a1557565b610f356101de927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284610f4393610dbe60008213610fc6565b711340daa0d5f769dba1915cef59f0815a5506610dda82611188565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d610d65565b670de0b6b3a7640000900590565b610ffe565b8181029181830414901517600116156101be576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101be57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101be570490565b15610fcd57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131561118257680755bf798b4a1bf1e581121561114e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b611193811515610fc6565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c600110179056fea26469706673582212209815df372867dd1ba42d4263690c8e70d1f8dc34ff9f897579936267cb43316764736f6c634300081600330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da2646970667358221220e0350e4cc7ad5b4b508c38b3d4d77cef8a61fd0657fb761618664ad6aff3b1c864736f6c63430008160033","sourceMap":"508:3412:50:-:0;;;;;;;1594:4:0;508:3412:50;;1594:4:0;508:3412:50;;;1594:4:0;508:3412:50;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600491823610156200001757600080fd5b600091823560e01c9384630a9254e4146200007c575050505080631c3059791462000076578063aff1f96c1462000070578063ba414fa6146200006a5763fa7626d4146200006457600080fd5b62000fcf565b62000fa6565b62000bcd565b62000689565b34620006745783600319360112620006745763f877cb1960e01b83526020608452600f60a4526e1350525393915517d49410d7d55493608a1b60c452600080516020620076258339815191528484606481845afa80156200053857620001029486916200064f575b5083519063261a000d60e21b825281806020978893878301620011a7565b038189865af1801562000538576200061b575b50601480546001600160a01b03191673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48179055601580546001600160a01b03191673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2179055601680546001600160a01b031916736b175474e89094c44da98b954eedeac495271d0f17905582516335d99f3560e01b815273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489185828581865afa8015620005385787928391620005e7575b50813b15620005e357855163ca669fa760e01b81526001600160a01b03909116858201908152909291839182908490829060200103925af180156200053857620005cc575b5082516327226cab60e11b8152308382019081526000196020820152859082908190604001038189865af180156200053857620005aa575b50803b15620005a65782516340c10f1960e01b815230838201908152637735940060208201529091869183919082908490829060400103925af18015620005385762000588575b50601554620002b2903090620002ac906001600160a01b03165b6001600160a01b031690565b620017b9565b601654620002d6903090620002d0906001600160a01b0316620002a0565b62001b2c565b8151612f219081810167ffffffffffffffff9282821084831117620005825782916200030c916200343984396000815260200190565b039086f080156200053857601380546001600160a01b0319166001600160a01b039290921691821790556200034190620002a0565b8351916112cb8084019290918311848410176200058257839262000378926200635a85396001600160a01b03909116815260200190565b039085f080156200053857601780546001600160a01b0319166001600160a01b03928316179055601454620003ae9116620002a0565b601354909290620003c8906001600160a01b0316620002a0565b815163095ea7b360e01b8082526001600160a01b0390921684820190815260001960208201529094869186919082908a90829060400103925af19384156200053857869462000560575b506015548590620004769062000431906001600160a01b0316620002a0565b60135462000448906001600160a01b0316620002a0565b85518581526001600160a01b0390911687820190815260001960208201529097889384928391604090910190565b03925af19283156200053857620004f19486946200053e575b506016548790620004a9906001600160a01b0316620002a0565b601354909390620004c3906001600160a01b0316620002a0565b94519081526001600160a01b0390941691840191825260001960208301529294859384929091839160400190565b03925af18015620005385762000505578280f35b816200052992903d1062000530575b6200052081836200107d565b810190620011e6565b5081808280f35b503d62000514565b62001164565b6200055890853d871162000530576200052081836200107d565b50876200048f565b6200057a90863d881162000530576200052081836200107d565b508662000412565b62000ff4565b80620005986200059f926200102e565b8062000678565b8462000286565b8480fd5b620005c490853d871162000530576200052081836200107d565b50856200023f565b8062000598620005dc926200102e565b8562000207565b8280fd5b6200060c9150873d891162000613575b6200060381836200107d565b810190620011cf565b88620001c2565b503d620005f7565b6200063f90853d871162000647575b6200063681836200107d565b81019062001170565b508562000115565b503d6200062a565b6200066d91503d908188823e62000666826200100a565b01620010f3565b86620000e4565b8380fd5b60009103126200068457565b600080fd5b34620006845760008060031936011262000bca57620006a7620010a0565b6706f05b59d3b200008082526020808301919091526040808301849052306060840152909190601554620006e4906001600160a01b0316620002a0565b81516370a0823160e01b808252306004808401919091529294919391928685602481895afa9485156200053857889562000ba6575b5060165462000731906001600160a01b0316620002a0565b83518381523083820190815290979196919089908990819060200103818a5afa97881562000538578a9862000b82575b5060135462000779906001600160a01b0316620002a0565b85518581526001600160a01b0382168582019081529097908b90899081906020010381865afa97881562000538578c9862000b5e575b5086518681526001600160a01b0383168682019081528c908290819060200103818d5afa998a1562000538578d948d92869c62000b20575b50916200085a6200087a94926200084b608097956200081c62000815620002a060175460018060a01b031690565b966200146e565b946200083a6200082b620010a0565b6001600160a01b039098168852565b6001600160a01b0390911690860152565b6001600160a01b0316838c0152565b606082015288519485809481936305157c7f60e21b83528a830162001223565b03925af18015620005385762000ae9575b50601554620008a3906001600160a01b0316620002a0565b8451848152308482019081529092918a918491908290819060200103915afa9081156200053857620008ea928b9262000ac0575b50620008e3906200127c565b9062001625565b60165462000901906001600160a01b0316620002a0565b835183815230838201908152909189918391908290819060200103915afa80156200053857620009999762000944928b9262000a97575b50620008e39062001299565b60155487906200095d906001600160a01b0316620002a0565b60135462000974906001600160a01b0316620002a0565b85518581526001600160a01b0390911684820190815290988992918391829160200190565b03915afa958615620005385762000a1a968895620009c5928b9262000a6e575b50620008e390620012d2565b601654620009dc906001600160a01b0316620002a0565b601354909290620009f6906001600160a01b0316620002a0565b93519081526001600160a01b03909316908301908152919485928391829160200190565b03915afa918215620005385762000a4093859362000a43575b5050620008e390620012e8565b80f35b620008e3929350908162000a6592903d1062000647576200063681836200107d565b91903862000a33565b620008e391925062000a8f90883d8a1162000647576200063681836200107d565b9190620009b9565b620008e391925062000ab8908b3d8d1162000647576200063681836200107d565b919062000938565b620008e391925062000ae1908b3d8d1162000647576200063681836200107d565b9190620008d7565b62000b0f9060803d60801162000b18575b62000b0681836200107d565b81019062001200565b5050506200088b565b503d62000afa565b83919c506200087a94926200084b62000b4f6200085a93608099973d871162000647576200063681836200107d565b9e9395975050929450620007e7565b62000b7a9198508b3d8d1162000647576200063681836200107d565b9638620007af565b62000b9e919850893d8b1162000647576200063681836200107d565b963862000761565b62000bc2919550873d891162000647576200063681836200107d565b933862000719565b80fd5b34620006845760008060031936011262000bca5762000beb620010a0565b6706f05b59d3b20000808252602080830191909152604080830184905230606084015290919060155462000c28906001600160a01b0316620002a0565b81516370a0823160e01b808252306004808401919091529294919391928685602481895afa9485156200053857889562000f82575b5060145462000c75906001600160a01b0316620002a0565b83518381523083820190815290979196919089908990819060200103818a5afa97881562000538578a9862000f5e575b5060135462000cbd906001600160a01b0316620002a0565b85518581526001600160a01b0382168582019081529097908b90899081906020010381865afa97881562000538578c9862000f3a575b5086518681526001600160a01b0383168682019081528c908290819060200103818d5afa998a1562000538578d948d92869c62000efc575b50916200085a62000d5994926200084b608097956200081c62000815620002a060175460018060a01b031690565b03925af18015620005385762000ed7575b5060155462000d82906001600160a01b0316620002a0565b8451848152308482019081529092918a918491908290819060200103915afa908115620005385762000dc1928b9262000ac05750620008e3906200127c565b60145462000dd8906001600160a01b0316620002a0565b835183815230838201908152909189918391908290819060200103915afa8015620005385762000e1b9762000944928b9262000eae575b50620008e390620012b1565b03915afa958615620005385762000e5d96889562000e46928b9262000a6e5750620008e390620012d2565b601454620009dc906001600160a01b0316620002a0565b03915afa918215620005385762000a4093859362000e83575b5050620008e390620012ff565b620008e3929350908162000ea592903d1062000647576200063681836200107d565b91903862000e76565b620008e391925062000ecf908b3d8d1162000647576200063681836200107d565b919062000e0f565b62000ef39060803d60801162000b185762000b0681836200107d565b50505062000d6a565b83919c5062000d5994926200084b62000f2b6200085a93608099973d871162000647576200063681836200107d565b9e939597505092945062000d2b565b62000f569198508b3d8d1162000647576200063681836200107d565b963862000cf3565b62000f7a919850893d8b1162000647576200063681836200107d565b963862000ca5565b62000f9e919550873d891162000647576200063681836200107d565b933862000c5d565b34620006845760003660031901126200068457602062000fc5620013a0565b6040519015158152f35b34620006845760003660031901126200068457602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b601f80199101166080016080811067ffffffffffffffff8211176200058257604052565b67ffffffffffffffff81116200058257604052565b6080810190811067ffffffffffffffff8211176200058257604052565b6060810190811067ffffffffffffffff8211176200058257604052565b90601f8019910116810190811067ffffffffffffffff8211176200058257604052565b60405190620010af8262001043565b565b67ffffffffffffffff81116200058257601f01601f191660200190565b60005b838110620010e25750506000910152565b8181015183820152602001620010d1565b6020607f19820112620006845760805167ffffffffffffffff8111620006845781609f82011215620006845780608001516200112f81620010b1565b926200113f60405194856200107d565b81845260a082840101116200068457620011619160a0602085019101620010ce565b90565b6040513d6000823e3d90fd5b9081602091031262000684575190565b906020916200119b81518092818552858086019101620010ce565b601f01601f1916010190565b9060206200116192818152019062001180565b51906001600160a01b03821682036200068457565b9081602091031262000684576200116190620011ba565b908160209103126200068457518015158103620006845790565b919082608091031262000684578151916020810151916060604083015192015190565b60a06060620011619360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062001180565b634e487b7160e01b600052601160045260246000fd5b670de0b6b3a763ffff198101919082116200129357565b62001266565b686c6b935b8bbd3fffff198101919082116200129357565b63773593ff198101919082116200129357565b919082039182116200129357565b90670de0b6b3a764000082018092116200129357565b90686c6b935b8bbd40000082018092116200129357565b90637735940082018092116200129357565b919082018092116200129357565b90600491630667f9d760e41b8152620013428251809360208685019101620010ce565b010190565b6004929163ffffffff60e01b168152620013428251809360208685019101620010ce565b3d156200139b573d906200137f82620010b1565b916200138f60405193846200107d565b82523d6000602084013e565b606090565b6000805460081c60ff1615620013ba575460081c60ff1690565b8060008051602062007625833981519152803b620013d757505090565b8192506040518281620014106020820190604082019160008051602062007625833981519152815260206519985a5b195960d21b910152565b0362001425601f19918281018552846200107d565b6200144b60405191826200143e6020820196876200131f565b039081018352826200107d565b51925af150620011616200145e6200136b565b60208082518301019101620011e6565b60208101620014ba815191620014b3620014aa620014a36200149d6200149788518098620021ef565b62002212565b6200223f565b9462001e43565b91518462001fe2565b9062002197565b620014c783828462001db8565b8190600080821215620015d95790859392915b808212620015b257506200116194926200143e9262001560925b60408051670de0b6b3a76400006020808301919091528183018990526060808301949094528951608083015289015160a08201529088015160c08201529601516001600160a01b031660e0808801919091528652601f19956200155a610100826200107d565b62002282565b85516040808801516060988901518251670de0b6b3a764000060208201529283019690965297810192909252608082015260a08101959095526001600160a01b0390911660c0850152839060e0820190565b92935050620015c19062002262565b90620015cf85838662001db8565b85939291620014da565b90859392915b808213620015fe57506200116194926200143e926200156092620014f4565b935050906200160d90620021c4565b916200161b85848662001db8565b85939291620015df565b9080820362001632575050565b6080806040938451937f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50836020968781526022888201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8982015261745d60f01b6060820152a1855190868252600a87830152690808115e1c1958dd195960b21b6060830152858201527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8938491a1845190858252600a8683015269080808081058dd1d585b60b21b606083015284820152a160008051602062007625833981519152803b62001732575b50505061010061ff00196000541617600055565b8260006200178f620017a0602483979684975195818701908882526519985a5b195960d21b818901526001606089015260608852620017718862001043565b519485928301976370ca10bb60e01b895251809285850190620010ce565b81010360048101845201826200107d565b51925af150620017af6200136b565b503880806200171e565b604090815192602091828501946370a0823160e01b8652600160a01b600190038316602482015260248152620017ef8162001060565b600080968192519082855af150620018066200136b565b838082518301019101906200181b9162001170565b50600a80546001600160a01b0319166001600160a01b03909216919091179055600560038101805463ffffffff19166370a08231179055906200185e91620023d6565b6005810180549092906001600160a01b03169160038101918254620018839060e01b90565b93600483019687549560028501968a806200189e8a6200241c565b9786620018ab8a6200278d565b9187519a868c8c810195620018c2908b8862001347565b03928d601f19948581018252620018d9916200107d565b6001600160a01b038516600090815260018201602090815260408083206001600160e01b03198e16845290915290208b51808f0190806200191c86888562002471565b0387810182526200192e90826200107d565b519020620019459190600052602052604060002090565b5460ff1615620019e09a6200197e620019bc97620019ab94620019969462001b09579060018060a01b0316600052602052604060002090565b9063ffffffff60e01b16600052602052604060002090565b938d6200143e8d519485928301968762002471565b519020600052602052604060002090565b54985190875afa50620019d9620019d26200136b565b91620024a8565b906200280f565b8151630667f9d760e41b81526001600160a01b038416600482015260248101869052600080516020620076258339815191529491908281604481895afa92831562000538578c9362001ae5575b50500362001adf57823b1562001adb57516370ca10bb60e01b81526001600160a01b0390911660048201526024810192909252670de0b6b3a7640000604483015290919086908390818381606481015b03925af18015620005385762001ac19462001abb9362001aae9262001ac4575b5080546001600160a01b0319169055565b805463ffffffff19169055565b6200256a565b55565b806200059862001ad4926200102e565b3862001a9d565b8880fd5b620024c1565b62001b00929350803d1062000647576200063681836200107d565b90388062001a2d565b62001b148162002a92565b509060018060a01b0316600052602052604060002090565b604090815192602091828501946370a0823160e01b8652600160a01b60019003831660248201526024815262001b628162001060565b600080968192519082855af15062001b796200136b565b8380825183010191019062001b8e9162001170565b50600a80546001600160a01b0319166001600160a01b03909216919091179055600560038101805463ffffffff19166370a082311790559062001bd191620023d6565b6005810180549092906001600160a01b0316916003810191825462001bf69060e01b90565b93600483019687549560028501968a8062001c118a6200241c565b978662001c1e8a6200278d565b9187519a868c8c81019562001c35908b8862001347565b03928d601f1994858101825262001c4c916200107d565b6001600160a01b038516600090815260018201602090815260408083206001600160e01b03198e16845290915290208b51808f01908062001c8f86888562002471565b03878101825262001ca190826200107d565b51902062001cb89190600052602052604060002090565b5460ff161562001cf19a6200197e620019bc97620019ab94620019969462001b09579060018060a01b0316600052602052604060002090565b8151630667f9d760e41b81526001600160a01b038416600482015260248101869052600080516020620076258339815191529491908281604481895afa92831562000538578c9362001d94575b50500362001adf57823b1562001adb57516370ca10bb60e01b81526001600160a01b0390911660048201526024810192909252686c6b935b8bbd4000006044830152909190869083908183816064810162001a7d565b62001daf929350803d1062000647576200063681836200107d565b90388062001d3e565b9060018115151615620006845782602062001dfa620014b39362001df362001e049751826ec097ce7bc90715b34b9f10000000000462001fe2565b95620021ef565b9101519062001fe2565b670de0b6b3a763ffff198101908113600116620012935790565b818102929160008212600160ff1b821416620012935781840514901517156200129357565b620011619062001fdc9062001fce90787d08509902966378cdc65fee42d5fffea15800000000000000606090811d6d0388eaa27412d5aca026815d636e016c01bc16d674ec80000000000000908102821d6d0df99ac502031bf953eff472fdcc018102821d6d13cdffb29d51d99322bdff5f2211018102821d6d0a0f742023def783a307a986912e018102821d6d01920d8043ca89b5239253284e42018102821d6c0b7a86d7375468fac667a0a52701784aadc582f1d8bc491e7bc949e15040342ddc00000000000000831d6d0139601a2efabe717e604cbb4894018202831d6d02247f7a7b6594320649aa03aba1018202831d6c8c3f38e95a6b1ff2ab1c3b343619018202831d6d02384773bdf1ac5676facced60901901820290921d6cb9a025d814b29c212b8b1a07cd190102780a09507084cc699bb0e71ea869ffffffffffffffffffffffff190105711340daa0d5f769dba1915cef59f0815a5506027ffffffe16bfa92fe97c97d2be09a7c830246e68b9533ecff8af7a549ce6e02ea50160ae1d62001e1e565b670de0b6b3a7640000900590565b620025de565b62001fce62001161927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b886428462001fdc936200201d60008213620025a5565b711340daa0d5f769dba1915cef59f0815a55066200203b8262002896565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d62001e1e565b81810291818304149015176001161562000684576001670de0b6b3a7640000600019830104019015150290565b6103e990818102918183041490151760011615620006845760016103e8600019830104019015150290565b670de0b6b3a7640000908181029181830414901517821515161562000684570490565b686c6b935b8bbd400000908181029181830414901517600116156200068457670de0b6b3a7640000900490565b670de0b6b3a7640000908181029082818304149015176001161562000684570490565b6103e79081810291818304149015176001161562000684576103e8900490565b60009392918491838211620023a0576200229d82826200339b565b620022a985836200339b565b6000620022b7828462001e1e565b13620023815750620022cc83869796620012c4565b60019460009186805b620022e7575b50505050505050509050565b1562002357575b50859697985080916200230c620023068b8862001311565b60011c90565b99620023198b876200339b565b908362002327878462001e1e565b136200234a57505089925b876200233f8886620012c4565b9201939998620022d5565b8b97509094509262002332565b86108062002375575b156200236d5788620022ee565b8080620022db565b50610100821062002360565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b634e487b7160e01b600052603260045260246000fd5b90600282019081549168010000000000000000831015620005825760018301808255831015620024165760005260018060a01b0316906020600020015590565b620023c0565b90604051918281549182825260209260208301916000526020600020936000905b8282106200245657505050620010af925003836200107d565b8554845260019586019588955093810193909101906200243d565b9091825160208094019360005b82811062002493575050506020925081520190565b8551855294810194938101936001016200247e565b600581901b91906001600160fb1b038116036200129357565b60405162461bcd60e51b815260206004820152606f60248201527f73746453746f726167652066696e642853746453746f72616765293a2050616360448201527f6b656420736c6f742e205468697320776f756c642063617573652064616e676560648201527f726f7573206f76657277726974696e6720616e642063757272656e746c79206960848201526e39b713ba1039bab83837b93a32b21760891b60a482015260c490fd5b80549060009060008155826200257f57505050565b6000526020600020918201915b8281106200259957505050565b8181556001016200258c565b15620025ad57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e198113156200276457680755bf798b4a1bf1e581121562002730576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b805115620024165760200190565b8051821015620024165760209160051b010190565b9081516005908060051b602091808204602014901517156200129357620027b481620010b1565b90620027c460405192836200107d565b808252620027d5601f1991620010b1565b0136602083013760005b8551811015620028085780620027f86001928862002778565b518482871b8501015201620027df565b5093505050565b906000918051602090602081116000146200288e5750602091905b6000935b8385106200283e57505050505090565b90919293948582018083116200129357845181101562002416578401830151600387901b91906001600160f81b0319168715600889850414171562001293576001921c179501939291906200282e565b91906200282a565b620028a3811515620025a5565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b81601f82011215620006845780519160209167ffffffffffffffff841162000582578360051b906040519462002943858401876200107d565b8552838086019282010192831162000684578301905b82821062002968575050505090565b8151815290830190830162002959565b919091604081840312620006845780519267ffffffffffffffff93848111620006845781620029a99184016200290a565b93602083015190811162000684576200116192016200290a565b608460405162461bcd60e51b815260206004820152604060248201527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e6064820152fd5b1562002a3557565b60405162461bcd60e51b815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201526e3a143994903737ba103337bab7321760891b6064820152608490fd5b60058101546001600160a01b0316600382015460e01b9160048101549162002abd600283016200241c565b9162002b1b62002b1462002aeb876200197e86600187019060018060a01b0316600052602052604060002090565b6040516020810190620019ab8162002b058b8b8662002471565b03601f1981018352826200107d565b5460ff1690565b6200336d579062002b469162002b5562002b35856200278d565b604051948591896020840162001347565b03601f1981018552846200107d565b600080516020620076258339815191523b15620006845760405163266cf10960e01b815260008160048183600080516020620076258339815191525af18015620005385762003356575b50600080845160208601855afa5062002bc662002bbb6200136b565b620019d987620024a8565b6040516365bc948160e01b81526001600160a01b03841660048201529360008560248183600080516020620076258339815191525af194851562000538576000956200332b575b5084516001810362002ece57505062002c5e90602062002c2d866200276a565b51604051630667f9d760e41b81526001600160a01b0387166004820152602481019190915292839081906044820190565b0381600080516020620076258339815191525afa918215620005385760009262002ea8575b50811562002e4d575b0362001adf5762002e49956200197e620019ab9362002d619362002d3062002b05977f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed8a62002b0562002ceb8e60405192839160208301958662002471565b51902062002cf9836200276a565b51604080516001600160a01b03891681526001600160e01b03198b166020820152908101929092526060820152608090a16200276a565b5162002d748a8a62002b05620019ab62002d618a6200197e8a8a9060018060a01b0316600052602052604060002090565b9360405192839160208301958662002471565b5562002db962002dac8a8a62002b05620019ab62002d618a6200197e8a60018b019060018060a01b0316600052602052604060002090565b805460ff19166001179055565b62002dfa62002df462002b148b8b62002b05620019ab62002d618b6200197e8b60018c019060018060a01b0316600052602052604060002090565b62002a2d565b6005810180546001600160a01b031916905560038101805463ffffffff1916905562002e29600282016200256a565b6000600482018190556001600160a01b0390921682526020526040902090565b5490565b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a562002e9f62002e7d876200276a565b51604080516001600160a01b0389168152602081019290925290918291820190565b0390a162002c8c565b62002ec691925060203d60201162000647576200063681836200107d565b903862002c83565b60019198949793999596925011600014620033255760005b8551811015620033015780602062002f0362002f34938962002778565b51604051630667f9d760e41b81526001600160a01b038b166004820152602481019190915292839081906044820190565b0381600080516020620076258339815191525afa9182156200053857600092620032db575b5081156200327f575b62002f6e818862002778565b51600080516020620076258339815191523b1562000684576040516370ca10bb60e01b81526001600160a01b038a166004820152602481019190915261133760f01b604482015260008160648183600080516020620076258339815191525af18015620005385762003268575b506000808a5160208c018b5afa62002ff662002bbb6200136b565b8162003258575b506200309c576200300f818862002778565b51600080516020620076258339815191523b1562000684576040516370ca10bb60e01b81526001600160a01b038a1660048201526024810191909152604481019290925260008260648183600080516020620076258339815191525af1918215620005385760019262003085575b500162002ee6565b806200059862003095926200102e565b386200307d565b9092969498939750620031b791957f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed6040516020810190620030e58162002b058d8d8662002471565b5190208a62003133620030f9868662002778565b51604080516001600160a01b038d1681526001600160e01b0319909416602085015283019390935260608201929092529081906080820190565b0390a162003142828262002778565b5162003183620031698b6200197e8a8a9060018060a01b0316600052602052604060002090565b6040516020810190620019ab8162002b058f8f8662002471565b55620031b162002dac620031698b6200197e8a60018b019060018060a01b0316600052602052604060002090565b62002778565b51600080516020620076258339815191523b1562000684576040516370ca10bb60e01b81526001600160a01b03851660048201526024810191909152604481019190915260008160648183600080516020620076258339815191525af195861562000538576200197e62002b0594620019ab9462002d619462002e499a62003241575b5062002db9565b806200059862003251926200102e565b386200323a565b61133760f01b1490503862002ffd565b806200059862003278926200102e565b3862002fdb565b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5620032d2620032b0838a62002778565b51604080516001600160a01b038d168152602081019290925290918291820190565b0390a162002f62565b620032f991925060203d60201162000647576200063681836200107d565b903862002f59565b5093509362002e499550620019ab916200197e62002d619262002b05959962002db9565b620029c3565b6200334d9195503d806000833e6200334481836200107d565b81019062002978565b50933862002c0d565b806200059862003366926200102e565b3862002b9f565b62002d6162002e49956200197e62002b0594620019ab949060018060a01b0316600052602052604060002090565b908180518101039060e0821262000684576020830151926080604082015193605f19011262000684576200342f826200342862001e049662003422620014b39660405192620033ea8462001043565b60808801519384815260606200341960e060a08c01519b602085019c8d5260c0810151604086015201620011ba565b910152620021ef565b62001fe2565b94620021ef565b90519062001fe256fe60c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360a03461007f57601f6112cb38819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f57608052604051611230908161009b82396080518181816103b701528181610612015281816107c601526109240152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b610953565b61090e565b6107ad565b610773565b6105f6565b610331565b6102ae565b610221565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101c3565b838082518301019101610986565b9061010d6100ff600435610a7f565b8680825183010191016109a1565b92610b68565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761015057604052565b61011e565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101a1601f8201601f191660200184610155565b8294818452818301116101be578281602093846000960137010152565b600080fd5b9080601f830112156101be578160206101de93359101610177565b90565b919082519283825260005b84811061020d575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101ec565b346101be5760003660031901126101be57604051604081019080821067ffffffffffffffff8311176101505761027891604052600381526247334d60e81b60208201526040519182916020835260208301906101e1565b0390f35b9060405161028981610134565b6060600382948054845260018101546020850152600281015460408501520154910152565b346101be5760203660031901126101be57600435600052600060205260c060406000206102da8161027c565b90600481015490600560018060a01b03910154169060606040519380518552602081015160208601526040810151604086015201516060840152608083015260a0820152f35b6001600160a01b038116036101be57565b346101be5760603660031901126101be5761034d600435610320565b60243560443567ffffffffffffffff81116101be576103709036906004016101c3565b9061037a81610a7f565b90610390825192602080809583010191016109a1565b6040516333854efd60e21b8152600481018390529092906060816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa948515610596576000908192829761055d575b508084806103ff93518301019101610986565b949195909787878581116000146104c45793610454869461044e866104496104769b9761044461046198604061043b61046d9f6104679f610a08565b91015190610f48565b610f48565b610f74565b50610a7f565b80518101820191016109a1565b91610bb9565b83610a27565b93828685610b68565b93846013191292836104b9575b6102789394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b601486129350610483565b5050919290938089116000146104ff5761046161046d946104546104769761044e856104498f998f61044490604061043b866104679f610a08565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9096506103ff9250610587915060603d60601161058f575b61057f8183610155565b810190610986565b9690926103ec565b503d610575565b6109e6565b9060606003198301126101be576004356105b481610320565b916024359160443567ffffffffffffffff928382116101be57806023830112156101be5781600401359384116101be57602484830101116101be576024019190565b346101be576106043661059b565b9192506001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610761578160c091810103126101be5780359160208201359160408101359460608201359060a08301359261066984610320565b670de0b6b3a764000083101561074f5761070d946107059460806106f1936106f69661069f876000526000602052604060002090565b55013560046106b8866000526000602052604060002090565b01551660056106d1846000526000602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610a7f565b602080825183010191016109a1565b848385610b68565b9283601319129182610744575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b60148512925061071a565b60405163e8a38a6160e01b8152600490fd5b604051636853cba760e01b8152600490fd5b346101be5760606107833661059b565b818094509492940103126101be5780359061070d6107056106f66040602085013594013595610a7f565b346101be576107bb3661059b565b926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610761576108236108176005610809876000526000602052604060002090565b01546001600160a01b031690565b6001600160a01b031690565b9116036108fc5761083683820182610a4a565b61083f81610a5f565b60018103610878575061086261085d61087392600494953691610177565b610caa565b926000526000602052604060002090565b01555b005b61088181610a5f565b600281036108bd5750906108a56108a06108b893610876953691610177565b610c00565b9290916000526000602052604060002090565b610c28565b806108c9600392610a5f565b036108ea576106d16108626108e5600593610876963691610177565b610bd8565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101be5760003660031901126101be576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101be5760203660031901126101be57610278610972600435610a7f565b6040519182916020835260208301906101e1565b908160609103126101be578051916040602083015192015190565b908160809103126101be576060604051916109bb83610134565b80518352602081015160208401526040810151604084015201516109de81610320565b606082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610a1557565b6109f2565b91908201809211610a1557565b81810392916000138015828513169184121617610a1557565b600411156101be57565b908160209103126101be57356101de81610a40565b60041115610a6957565b634e487b7160e01b600052602160045260246000fd5b60408051610a8c81610134565b6000918282526020820193838552818301848152606084019085825282865285602052610ac2610abd85882061027c565b610cdf565b808652670de0b6b3a7640000908103908111610a1557846101de97610b1f95610b1294600594610b5a9c5281835282602052600484842001549052815280602052200160018060a01b0390541690565b6001600160a01b03169052565b5192839160208301919091606060808201938051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b03601f198101835282610155565b926020610b9184610b8b610b83610b9a9697610ba099610fa4565b855190610d88565b95610fa4565b91015190610d88565b90610f48565b670de0b6b3a763ffff198101908113600116610a155790565b6101de92916020610bcf610b9a93855190610d88565b93015190610d88565b6040818051810103126101be5780610bf560206040930151610a40565b015161081781610320565b6060818051810103126101be57610c1a6020820151610a40565b606060408201519101519091565b919042821115610c9857610c3e610abd8461027c565b9081845542600385015542830391838311610a1557610c5c91610a27565b428314610c8257600160ff1b8114600019831416610a1557600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101be5780610cc760206040930151610a40565b015190565b81810292918115918404141715610a1557565b6060810151906020810151808314610d5e57804211600014610d5657915b8203918211610a15576040810190815160008113600014610d3057506101de92610d2a9151925190610ccc565b90610a1a565b90519150600160ff1b8114610a15576101de92610d509160000390610ccc565b90610a08565b504291610cfd565b5090505190565b818102929160008212600160ff1b821416610a15578184051490151715610a1557565b610f356101de927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284610f4393610dbe60008213610fc6565b711340daa0d5f769dba1915cef59f0815a5506610dda82611188565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d610d65565b670de0b6b3a7640000900590565b610ffe565b8181029181830414901517600116156101be576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101be57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101be570490565b15610fcd57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131561118257680755bf798b4a1bf1e581121561114e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b611193811515610fc6565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c600110179056fea26469706673582212209815df372867dd1ba42d4263690c8e70d1f8dc34ff9f897579936267cb43316764736f6c634300081600330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da2646970667358221220e0350e4cc7ad5b4b508c38b3d4d77cef8a61fd0657fb761618664ad6aff3b1c864736f6c63430008160033","sourceMap":"508:3412:50:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;673:31:50;;1057:14:1;673:31:50;1057:14:1;;;;-1:-1:-1;;;1057:14:1;;-1:-1:-1;;;;;;;;;;;508:3412:50;673:31;;;508:3412;673:31;;;;;;653:52;673:31;;;;;508:3412;;;;1057:14:1;;;;653:52:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;508:3412;-1:-1:-1;716:56:50;1057:14:1;;-1:-1:-1;;;;;;1057:14:1;508:3412:50;1057:14:1;;;782:56:50;1057:14:1;;-1:-1:-1;;;;;;1057:14:1;508:3412:50;1057:14:1;;;848:55:50;1057:14:1;;-1:-1:-1;;;;;;1057:14:1;508:3412:50;1057:14:1;;;508:3412:50;;-1:-1:-1;;;936:63:50;;729:42;;936:63;508:3412;936:63;508:3412;729:42;936:63;;;;;;;;;;;;508:3412;914:95;;;;;;508:3412;;-1:-1:-1;;;914:95:50;;-1:-1:-1;;;;;508:3412:50;;;914:95;;;1057:14:1;;;508:3412:50;;;;;;;;;;;1057:14:1;;914:95:50;;;;;;;;;;508:3412;-1:-1:-1;508:3412:50;;-1:-1:-1;;;1019:120:50;;1105:4;1019:120;;;1057:14:1;;;-1:-1:-1;;1057:14:1;;;;1105:4:50;;508:3412;;;;1057:14:1;;1019:120:50;;;;;;;;;;;;508:3412;1149:106;;;;;;508:3412;;-1:-1:-1;;;1149:106:50;;1105:4;1149:106;;;1057:14:1;;;1231::50;1057::1;;;;508:3412:50;;;;;;1057:14:1;508:3412:50;;;;;;1057:14:1;;1149:106:50;;;;;;;;;;508:3412;-1:-1:-1;782:56:50;1057:14:1;19547:5:5;;1105:4:50;;1270:13;;-1:-1:-1;;;;;508:3412:50;1057:14:1;-1:-1:-1;;;;;508:3412:50;;1057:14:1;1270:13:50;19547:5:5;:::i;:::-;848:55:50;1057:14:1;19547:5:5;;1105:4:50;;1323:12;;-1:-1:-1;;;;;508:3412:50;1057:14:1;;1323:12:50;19547:5:5;:::i;:::-;508:3412:50;;1381:20;;;;;;;;;;;;;;;;;;;;;;;508:3412;1057:14:1;;;;;;1381:20:50;;;;;;;;;1374:27;1057:14:1;;-1:-1:-1;;;;;;1057:14:1;-1:-1:-1;;;;;508:3412:50;;;;1057:14:1;;;;;1425:13:50;;1057:14:1;;1425:13:50;508:3412;;;1417:22;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;508:3412:50;;;1057:14:1;;;;;;1417:22:50;;;;;;;;;1411:28;1057:14:1;;-1:-1:-1;;;;;;1057:14:1;-1:-1:-1;;;;;508:3412:50;;;1057:14:1;;;716:56:50;1057:14:1;1450:12:50;;508:3412;1057:14:1;;1450:12:50;1374:27;1057:14:1;;;;1463:13:50;;-1:-1:-1;;;;;508:3412:50;1057:14:1;;1463:13:50;508:3412;;-1:-1:-1;;;1450:46:50;;;-1:-1:-1;;;;;508:3412:50;;;1450:46;;;1057:14:1;;;-1:-1:-1;;1057:14:1;;;;508:3412:50;;;;;;1057:14:1;508:3412:50;;1057:14:1;;508:3412:50;;1057:14:1;;1450:46:50;;;;;;;;;;;;;508:3412;-1:-1:-1;782:56:50;1057:14:1;;;1506:46:50;;:12;;-1:-1:-1;;;;;508:3412:50;1057:14:1;;1506:12:50;1374:27;1057:14:1;1519:13:50;;-1:-1:-1;;;;;508:3412:50;1057:14:1;;1519:13:50;508:3412;;1506:46;;;-1:-1:-1;;;;;508:3412:50;;;1506:46;;;1057:14:1;;;-1:-1:-1;;1057:14:1;;;;508:3412:50;;;;;;;;1057:14:1;;;;;;1506:46:50;;;;;;;;;;1562:45;1506:46;;;;;508:3412;-1:-1:-1;848:55:50;1057:14:1;;;1562:11:50;;-1:-1:-1;;;;;508:3412:50;1057:14:1;;1562:11:50;1374:27;1057:14:1;;;;1574:13:50;;-1:-1:-1;;;;;508:3412:50;1057:14:1;;1574:13:50;508:3412;;1562:45;;;-1:-1:-1;;;;;508:3412:50;;;1562:45;;;1057:14:1;;;-1:-1:-1;;1057:14:1;;;;508:3412:50;;;;;;-1:-1:-1;;508:3412:50;;1057:14:1;;;;1562:45:50;;;;;;;;;;;508:3412;;;1562:45;;;;;;-1:-1:-1;1562:45:50;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;508:3412;;;1562:45;;;;;;;:::i;1506:46::-;;;;;;;;;;;;;:::i;:::-;;;;;1450;;;;;;;;;;;;;:::i;:::-;;;;;1417:22;;:::i;1149:106::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;508:3412;;;1019:120;;;;;;;;;;;;;:::i;:::-;;;;;914:95;;;;;;:::i;:::-;;;;;508:3412;;;936:63;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;653:52;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;673:31;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;508:3412;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;2993:9;508:3412;;;2961:142;;;;508:3412;;;;2961:142;;;;508:3412;;;3087:4;2961:142;;;508:3412;2961:142;;508:3412;3136:4;1057:14:1;3136::50;;-1:-1:-1;;;;;508:3412:50;1057:14:1;;3136::50;508:3412;;-1:-1:-1;;;3136:29:50;;;3087:4;508:3412;3136:29;;;1057:14:1;;;;508:3412:50;;;;;;3087:4;508:3412;1057:14:1;508:3412:50;;3136:29;;;;;;;;;;;508:3412;-1:-1:-1;3197:3:50;1057:14:1;3197:13:50;;-1:-1:-1;;;;;508:3412:50;1057:14:1;;3197:13:50;508:3412;;3197:28;;;3087:4;3197:28;;;1057:14:1;;;508:3412:50;;;;;3197:28;3087:4;;508:3412;;;;1057:14:1;;3197:28:50;;;;;;;;;;;;;;508:3412;-1:-1:-1;3284:4:50;1057:14:1;3276:13:50;;-1:-1:-1;;;;;508:3412:50;1057:14:1;;3276:13:50;508:3412;;3261:29;;;-1:-1:-1;;;;;508:3412:50;;3261:29;;;1057:14:1;;;508:3412:50;;3261:29;;;508:3412;;;;1057:14:1;;3261:29:50;;;;;;;;;;;;;;508:3412;-1:-1:-1;508:3412:50;;3326:28;;;-1:-1:-1;;;;;508:3412:50;;3326:28;;;1057:14:1;;;3326:28:50;;508:3412;;;;1057:14:1;;3326:28:50;;;;;;;;;;;;;;;;;;508:3412;;;3388:220;3365:253;508:3412;;3388:220;508:3412;;;3546:47;3433:12;508:3412;3441:3;508:3412;1381:20;508:3412;;;;;1057:14:1;;3433:12:50;3546:47;;:::i;:::-;508:3412;3388:220;508:3412;;:::i;:::-;-1:-1:-1;;;;;508:3412:50;;;;;;3388:220;-1:-1:-1;;;;;508:3412:50;;;3388:220;;;508:3412;;3388:220;-1:-1:-1;;;;;508:3412:50;3388:220;;;508:3412;;3388:220;2961:142;3388:220;;508:3412;;;1057:14:1;;;;;;;;;3365:253:50;;;;;;:::i;:::-;;;;;;;;;;;508:3412;-1:-1:-1;3136:4:50;1057:14:1;3638::50;;-1:-1:-1;;;;;508:3412:50;1057:14:1;;3638::50;508:3412;;3638:29;;;3087:4;3638:29;;;1057:14:1;;;508:3412:50;;;;;;;;;;;;1057:14:1;;3638:29:50;;;;;;;;;3669:22;3638:29;;;;;508:3412;3669:22;;;;:::i;:::-;;;:::i;:::-;3197:3;1057:14:1;3711:13:50;;-1:-1:-1;;;;;508:3412:50;1057:14:1;;3711:13:50;508:3412;;3711:28;;;3087:4;3711:28;;;1057:14:1;;;508:3412:50;;;;;;3711:28;508:3412;;;;1057:14:1;;3711:28:50;;;;;;;;3780:29;3711:28;3741:19;3711:28;;;;;508:3412;3741:19;;;;:::i;:::-;3136:4;1057:14:1;;;3780::50;;-1:-1:-1;;;;;508:3412:50;1057:14:1;;3780::50;3284:4;1057:14:1;3795:13:50;;-1:-1:-1;;;;;508:3412:50;1057:14:1;;3795:13:50;508:3412;;3780:29;;;-1:-1:-1;;;;;508:3412:50;;;3780:29;;;1057:14:1;;;508:3412:50;;;;;;;;;1057:14:1;;;;3780:29:50;;;;;;;;;;3857:28;3780:29;;;3811:26;3780:29;;;;;508:3412;3811:26;;;;:::i;:::-;3197:3;1057:14:1;3857:13:50;;-1:-1:-1;;;;;508:3412:50;1057:14:1;;3857:13:50;3284:4;1057:14:1;;;;3871:13:50;;-1:-1:-1;;;;;508:3412:50;1057:14:1;;3871:13:50;508:3412;;3857:28;;;-1:-1:-1;;;;;508:3412:50;;;3857:28;;;1057:14:1;;;508:3412:50;;;;;;;;1057:14:1;;;;3857:28:50;;;;;;;;;;3887:23;3857:28;;;;;508:3412;3887:23;;;;;:::i;:::-;508:3412;;3857:28;3887:23;3857:28;;;;;;;;;-1:-1:-1;3857:28:50;;;;;;:::i;:::-;;;;;;3780:29;3811:26;3780:29;;;;;;;;;;;;;;;:::i;:::-;;;;;3711:28;3741:19;3711:28;;;;;;;;;;;;;;;:::i;:::-;;;;;3638:29;3669:22;3638:29;;;;;;;;;;;;;;;:::i;:::-;;;;;3365:253;;;508:3412;3365:253;508:3412;3365:253;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;3326:28;;;;;3365:253;3326:28;;3388:220;3326:28;3388:220;3326:28;508:3412;3326:28;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;3261:29;;;;;;;;;;;;;;;:::i;:::-;;;;;3197:28;;;;;;;;;;;;;;;:::i;:::-;;;;;3136:29;;;;;;;;;;;;;;;:::i;:::-;;;;;508:3412;;;;;;;;;;;;;;;;;;:::i;:::-;1819:9;508:3412;;;1787:142;;;;508:3412;;;;1787:142;;;;508:3412;;;1913:4;1787:142;;;508:3412;1787:142;;508:3412;1962:4;1057:14:1;1962::50;;-1:-1:-1;;;;;508:3412:50;1057:14:1;;1962::50;508:3412;;-1:-1:-1;;;1962:29:50;;;1913:4;508:3412;1962:29;;;1057:14:1;;;;508:3412:50;;;;;;1913:4;508:3412;1057:14:1;508:3412:50;;1962:29;;;;;;;;;;;508:3412;-1:-1:-1;2023:4:50;1057:14:1;2023::50;;-1:-1:-1;;;;;508:3412:50;1057:14:1;;2023::50;508:3412;;2023:29;;;1913:4;2023:29;;;1057:14:1;;;508:3412:50;;;;;2023:29;1913:4;;508:3412;;;;1057:14:1;;2023:29:50;;;;;;;;;;;;;;508:3412;-1:-1:-1;2111:4:50;1057:14:1;2103:13:50;;-1:-1:-1;;;;;508:3412:50;1057:14:1;;2103:13:50;508:3412;;2088:29;;;-1:-1:-1;;;;;508:3412:50;;2088:29;;;1057:14:1;;;508:3412:50;;2088:29;;;508:3412;;;;1057:14:1;;2088:29:50;;;;;;;;;;;;;;508:3412;-1:-1:-1;508:3412:50;;2153:29;;;-1:-1:-1;;;;;508:3412:50;;2153:29;;;1057:14:1;;;2153:29:50;;508:3412;;;;1057:14:1;;2153:29:50;;;;;;;;;;;;;;;;;;508:3412;;;2216:221;2193:254;508:3412;;2216:221;508:3412;;;2375:47;2261:12;508:3412;2269:3;508:3412;1381:20;508:3412;;;;;1057:14:1;;2193:254:50;;;;;;;;;;;508:3412;-1:-1:-1;1962:4:50;1057:14:1;2467::50;;-1:-1:-1;;;;;508:3412:50;1057:14:1;;2467::50;508:3412;;2467:29;;;1913:4;2467:29;;;1057:14:1;;;508:3412:50;;;;;;;;;;;;1057:14:1;;2467:29:50;;;;;;;;;2498:22;2467:29;;;;;2498:22;;;;:::i;:::-;2023:4;1057:14:1;2540::50;;-1:-1:-1;;;;;508:3412:50;1057:14:1;;2540::50;508:3412;;2540:29;;;1913:4;2540:29;;;1057:14:1;;;508:3412:50;;;;;;2540:29;508:3412;;;;1057:14:1;;2540:29:50;;;;;;;;2619;2540;2571:28;2540:29;;;;;508:3412;2571:28;;;;:::i;2619:29::-;;;;;;;;;;2709;2619;;;2650:26;2619:29;;;;;2650:26;;;;:::i;:::-;2023:4;1057:14:1;2709::50;;-1:-1:-1;;;;;508:3412:50;1057:14:1;;2709:29:50;;;;;;;;;;2740:32;2709:29;;;;;508:3412;2740:32;;;;;:::i;2709:29::-;2740:32;2709:29;;;;;;;;;-1:-1:-1;2709:29:50;;;;;;:::i;:::-;;;;;;2540;2571:28;2540:29;;;;;;;;;;;;;;;:::i;:::-;;;;;2193:254;;;508:3412;2193:254;508:3412;2193:254;;;;;;;:::i;:::-;;;;;;2153:29;;;;;2193:254;2153:29;;2216:221;2153:29;2216:221;2153:29;508:3412;2153:29;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2088;;;;;;;;;;;;;;;:::i;:::-;;;;;2023;;;;;;;;;;;;;;;:::i;:::-;;;;;1962;;;;;;;;;;;;;;;:::i;:::-;;;;;508:3412;;;;;;-1:-1:-1;;508:3412:50;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;508:3412:50;;;;;;;;;;;;;;;;;1057:14:1;;;;;;;;;;;;;;;;;;;508:3412:50;1057:14:1;508:3412:50;1057:14:1;;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;508:3412:50;1057:14:1;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;508:3412:50;;1057:14:1;;;;:::i;:::-;:::o;:::-;;;;;;;;-1:-1:-1;;1057:14:1;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1057:14:1;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;;1057:14:1;;;;;508:3412:50;1057:14:1;;;;;;;;;;;;;;;508:3412:50;1057:14:1;;;;;:::i;:::-;508:3412:50;1057:14:1;508:3412:50;;1057:14:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;508:3412:50;;1057:14:1;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1057:14:1;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;508:3412:50;;1057:14:1;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;508:3412:50;;;1057:14:1;;;;;:::o;508:3412:50:-;;;;;;;;;;1057:14:1;;508:3412:50;;;;1057:14:1;508:3412:50;;;;;1057:14:1;508:3412:50;;1057:14:1;508:3412:50;:::o;:::-;;;;;;;;1381:20;508:3412;;;;;;;;;;;1057:14:1;508:3412:50;;;;;;;;;1057:14:1;508:3412:50;;;;;;;;1057:14:1;508:3412:50;;;;;;;;;;;:::i;:::-;1057:14:1;;;508:3412:50;;;;;;;;;-1:-1:-1;;508:3412:50;;;;;;;;:::o;:::-;;:::i;:::-;-1:-1:-1;;508:3412:50;;;;;;;;:::o;:::-;-1:-1:-1;;508:3412:50;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;2872:7;508:3412;;;;;;;:::o;:::-;;2905:15;508:3412;;;;;;;:::o;:::-;;2585:14;508:3412;;;;;;;:::o;:::-;;;;;;;;;;:::o;1671:64:0:-;;;;;;;;;;1057:14:1;;1671:64:0;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;1057:14:1;;1671:64:0;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;508:3412:50;1057:14:1;508:3412:50;;1057:14:1;;;:::i;:::-;1671:64:0;;;-1:-1:-1;1671:64:0;;;;:::o;:::-;;;:::o;1819:584::-;1873:7;508:3412:50;;;;;;1873:7:0;;;508:3412:50;;;;;1057:14:1;:::o;1869:528:0:-;1941:25;-1:-1:-1;;;;;;;;;;;2939:104:0;;1980:374;;2367:19;;;:::o;1980:374::-;508:3412:50;;;;;2196:43:0;;;;;;1671:64;;;;1057:14:1;-1:-1:-1;;;;;;;;;;;1057:14:1;;1671:64:0;;;;;;1057:14:1;1671:64:0;2196:43;;;1057:14:1;;2196:43:0;;;;;;;;:::i;:::-;2086:175;508:3412:50;;2086:175:0;;;2196:43;2086:175;;;;;:::i;:::-;;;;;;;;;:::i;:::-;2047:232;;;;;2312:27;2047:232;;:::i;:::-;2196:43;1057:14:1;;;2312:27:0;;;;;;:::i;1858:513:35:-;1349:9;;;799:19:18;508:3412:50;;;1790:35:35;1728;631:21:18;;965;508:3412:50;;965:21:18;;;:::i;:::-;631;:::i;:::-;;:::i;:::-;1728:35:35;;:::i;:::-;508:3412:50;;1790:35:35;;:::i;:::-;799:19:18;;:::i;:::-;2139:69:35;;;;;:::i;:::-;8798:29;;-1:-1:-1;8914:21:35;;;-1:-1:-1;;;8947:268:35;;;;;8954:21;;;;;;8910:600;2296:72;8910:600;;2296:72;8910:600;9519:160;8910:600;;508:3412:50;;;2872:7;1349:9:35;9538:45;;;1057:14:1;;;;508:3412:50;;;1057:14:1;;;508:3412:50;;;;1057:14:1;;;;508:3412:50;;;;;1057:14:1;508:3412:50;;;;;;1057:14:1;508:3412:50;;;;;;;1057:14:1;508:3412:50;;;-1:-1:-1;;;;;508:3412:50;;;;;1057:14:1;;;;9538:45:35;;-1:-1:-1;;;9538:45:35;508:3412:50;;9538:45:35;:::i;:::-;9519:160;:::i;:::-;508:3412:50;;;2334:14:35;;;508:3412:50;2350:17:35;;;;508:3412:50;;;2872:7;1349:9:35;2296:72;;1057:14:1;508:3412:50;;;1057:14:1;;;;508:3412:50;;;1057:14:1;;;;508:3412:50;;;1057:14:1;508:3412:50;;;1057:14:1;;;;-1:-1:-1;;;;;508:3412:50;;;;;;1057:14:1;508:3412:50;;;;;;;8947:268:35;8999:27;;;;;;;:::i;:::-;9060:144;;;;;;:::i;:::-;8947:268;;;;;;8910:600;9237:267;;;;;9244:21;;;;;;8910:600;2296:72;8910:600;;2296:72;8910:600;9519:160;8910:600;;;9237:267;9289:26;;;;;;;:::i;:::-;9349:144;;;;;;:::i;:::-;9237:267;;;;;;5202:262:0;;5259:6;;;5255:203;;5202:262;;:::o;5255:203::-;508:3412:50;;;;;;;5286:41:0;508:3412:50;;;;;;;;;;1057:14:1;508:3412:50;1057:14:1;;;508:3412:50;-1:-1:-1;;;508:3412:50;;;;5286:41:0;508:3412:50;;;;;;;;;;1057:14:1;-1:-1:-1;;;508:3412:50;1057:14:1;;508:3412:50;;;;1057:14:1;5346:31:0;;;;;508:3412:50;;;;;;;;;;1057:14:1;-1:-1:-1;;;508:3412:50;1057:14:1;;508:3412:50;;;;1057:14:1;5396:31:0;-1:-1:-1;;;;;;;;;;;2939:104:0;;2445:359;;5255:203;508:3412:50;;;;;;2928:1:0;508:3412:50;;;2928:1:0;508:3412:50;5202:262:0:o;2445:359::-;508:3412:50;-1:-1:-1;1671:64:0;2534:196;1671:64;508:3412:50;;;;;;2645:67:0;;;;1057:14:1;;;;1671:64:0;;;508:3412:50;;;1057:14:1;2705:4:0;508:3412:50;;;1057:14:1;508:3412:50;2645:67:0;;;;;:::i;:::-;508:3412:50;2534:196:0;;;;;1671:64;;;;;;1057:14:1;1671:64:0;;;;;;;:::i;:::-;;;2534:196;1671:64;2534:196;;;;;;;:::i;:::-;2499:245;;;;;;;:::i;:::-;;2445:359;;;;;19566:825:5;508:3412:50;;;;19730:38:5;;;;;;1057:14:1;;;;19730:38:5;;1381:20:50;508:3412;;1381:20;508:3412;;;;19730:38:5;;;1057:14:1;19730:38:5;;;;;;:::i;:::-;-1:-1:-1;19719:50:5;;;;;;;;;;;;;:::i;:::-;1057:14:1;;;;19797:30:5;;;;;;;;;:::i;:::-;-1:-1:-1;4581:12:9;1057:14:1;;-1:-1:-1;;;;;;1057:14:1;-1:-1:-1;;;;;508:3412:50;;;1057:14:1;;;;;;19864:8:5;4736:9:9;;;508:3412:50;;-1:-1:-1;;508:3412:50;;;;;8286:34:9;;;;:::i;:::-;9399:12;;;508:3412:50;;9399:12:9;;508:3412:50;-1:-1:-1;;;;;508:3412:50;9435:9:9;;;;508:3412:50;;;;;1057:14:1;;508:3412:50;;;9476:11:9;;;;508:3412:50;;;9520:10:9;;;;508:3412:50;;;;;;:::i;:::-;9584:12:9;;;;;:::i;:::-;508:3412:50;;;9561:36:9;;;;;;;;;;;;:::i;:::-;;1057:14:1;;;;9561:36:9;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;508:3412:50;;;;;;9612:10:9;;;508:3412:50;;;;;;;;-1:-1:-1;;;;;;1671:64:0;;508:3412:50;;;;;;;;;9644:34:9;;;;508:3412:50;9644:34:9;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;1057:14:1;9634:45:9;;9612:68;;508:3412:50;;;;;;;;;;9612:68:9;508:3412:50;;;9611:69:9;9930:38;9607:110;9749:15;:68;9607:110;9781:34;9607:110;9749:21;9607:110;;;508:3412:50;1381:20;508:3412;;;;;;;;;;;;;;9749:15:9;508:3412:50;1671:64:0;;;;508:3412:50;;;;;;;;;9749:21:9;508:3412:50;;9781:34:9;508:3412:50;;9781:34:9;;;;;;;;:::i;:::-;1057:14:1;9771:45:9;;508:3412:50;;;;;;;;;9749:68:9;508:3412:50;9889:20:9;;;;;;;9951:16;9889:20;;:::i;:::-;9951:16;;:::i;:::-;9930:38;;:::i;:::-;508:3412:50;;-1:-1:-1;;;10003:18:9;;-1:-1:-1;;;;;508:3412:50;;9476:11:9;10003:18;;1057:14:1;;;;;;;-1:-1:-1;;;;;;;;;;;508:3412:50;;;;;1057:14:1;508:3412:50;;10003:18:9;;;;;;;;;;;19566:825:5;10036:12:9;;;10032:218;;10259:24;;;;;508:3412:50;-1:-1:-1;;;10259:24:9;;-1:-1:-1;;;;;508:3412:50;;;9476:11:9;10259:24;;1057:14:1;508:3412:50;;;1057:14:1;;;;1300:7:50;508:3412;;;1057:14:1;508:3412:50;;;;;;;;;;;;;10259:24:9;;;;;;;;;10348:17;10259:24;7397:59;10259:24;7397:59;10259:24;;;19566:825:5;-1:-1:-1;7397:59:9;;-1:-1:-1;;;;;;7397:59:9;;;;;;;-1:-1:-1;;7397:59:9;;;;;10348:17;:::i;:::-;508:3412:50;19566:825:5:o;10259:24:9:-;;;;;;:::i;:::-;;;;;508:3412:50;;;10032:218:9;10064:175;:::i;10003:18::-;;;;;;;-1:-1:-1;10003:18:9;;;;;;:::i;:::-;;;;;;9607:110;7670:25;;;:::i;:::-;;508:3412:50;1381:20;508:3412;;;;;;;;;;;;;;19566:825:5;508:3412:50;;;;19730:38:5;;;;;;1057:14:1;;;;19730:38:5;;1381:20:50;508:3412;;1381:20;508:3412;;;;19730:38:5;;;1057:14:1;19730:38:5;;;;;;:::i;:::-;-1:-1:-1;19719:50:5;;;;;;;;;;;;;:::i;:::-;1057:14:1;;;;19797:30:5;;;;;;;;;:::i;:::-;-1:-1:-1;4581:12:9;1057:14:1;;-1:-1:-1;;;;;;1057:14:1;-1:-1:-1;;;;;508:3412:50;;;1057:14:1;;;;;;19864:8:5;4736:9:9;;;508:3412:50;;-1:-1:-1;;508:3412:50;;;;;8286:34:9;;;;:::i;:::-;9399:12;;;508:3412:50;;9399:12:9;;508:3412:50;-1:-1:-1;;;;;508:3412:50;9435:9:9;;;;508:3412:50;;;;;1057:14:1;;508:3412:50;;;9476:11:9;;;;508:3412:50;;;9520:10:9;;;;508:3412:50;;;;;;:::i;:::-;9584:12:9;;;;;:::i;:::-;508:3412:50;;;9561:36:9;;;;;;;;;;;;:::i;:::-;;1057:14:1;;;;9561:36:9;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;508:3412:50;;;;;;9612:10:9;;;508:3412:50;;;;;;;;-1:-1:-1;;;;;;1671:64:0;;508:3412:50;;;;;;;;;9644:34:9;;;;508:3412:50;9644:34:9;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;1057:14:1;9634:45:9;;9612:68;;508:3412:50;;;;;;;;;;9612:68:9;508:3412:50;;;9611:69:9;9930:38;9607:110;9749:15;:68;9607:110;9781:34;9607:110;9749:21;9607:110;;;508:3412:50;1381:20;508:3412;;;;;;;;;;;;;;9930:38:9;508:3412:50;;-1:-1:-1;;;10003:18:9;;-1:-1:-1;;;;;508:3412:50;;9476:11:9;10003:18;;1057:14:1;;;;;;;-1:-1:-1;;;;;;;;;;;508:3412:50;;;;;1057:14:1;508:3412:50;;10003:18:9;;;;;;;;;;;19566:825:5;10036:12:9;;;10032:218;;10259:24;;;;;508:3412:50;-1:-1:-1;;;10259:24:9;;-1:-1:-1;;;;;508:3412:50;;;9476:11:9;10259:24;;1057:14:1;508:3412:50;;;1057:14:1;;;;1352:10:50;508:3412;;;1057:14:1;508:3412:50;;;;;;;;;;;;;10259:24:9;508:3412:50;10003:18:9;;;;;;;-1:-1:-1;10003:18:9;;;;;;:::i;:::-;;;;;;1692:384:42;;7878:392:18;;;;;;;;508:3412:50;2000:9:42;965:21:18;1961:50:42;508:3412:50;1880:50:42;799:19:18;508:3412:50;;7878:392:18;;;1880:50:42;:::i;:::-;965:21:18;;:::i;:::-;2000:9:42;;508:3412:50;1961:50:42;;:::i;799:19:18:-;508:3412:50;;;;;;;7878:392:18;508:3412:50;;;1692:384:42;:::o;508:3412:50:-;;;;;;;;;-1:-1:-1;;;508:3412:50;;;;;;;;;;;;;;;:::o;1208:273:18:-;1391:36;;1398:28;;1399:12;;508:3412:50;5145:2:18;508:3412:50;;;6068:32:18;508:3412:50;;;;;;;6136:33:18;508:3412:50;;;;;6205:33:18;508:3412:50;;;;;6274:33:18;508:3412:50;;;;;6343:32:18;508:3412:50;;;;;6411:30:18;508:3412:50;;;;5465:32:18;508:3412:50;;;;;5533:32:18;508:3412:50;;;;;-1:-1:-1;;508:3412:50;;;;;-1:-1:-1;;508:3412:50;;;;;;-1:-1:-1;;508:3412:50;;-1:-1:-1;;508:3412:50;6455:304:18;7125:43;508:3412:50;;;;;1399:12:18;:::i;:::-;491:4;508:3412:50;;;;1398:28:18;1391:36;:::i;1208:273::-;1399:12;1391:36;1208:273;7380:72;1398:28;1208:273;4688:27;-1:-1:-1;4696:5:18;;4688:27;:::i;:::-;7125:43;5125:16;;;:::i;:::-;5145:2;508:3412:50;;;5175:3:18;508:3412:50;;;5175:3:18;508:3412:50;;;;;7232:71:18;508:3412:50;;6411:30:18;508:3412:50;6343:32:18;508:3412:50;6274:33:18;508:3412:50;6205:33:18;508:3412:50;6136:33:18;508:3412:50;6068:32:18;508:3412:50;6001:31:18;508:3412:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5533:32:18;508:3412:50;5465:32:18;508:3412:50;5398:31:18;508:3412:50;;;;;;;;;;;;;;;;;;;;;;;;6455:304:18;508:3412:50;;;;;1399:12:18;:::i;8282:752::-;8417:611;;;;;;;;;;;;;;;;;491:4;1112:17:50;;8417:611:18;;;;;;;;8282:752;:::o;:::-;9304:4:35;8417:611:18;;;;;;;;;;;;;;;;;;9310:4:35;1112:17:50;;8417:611:18;;;;;;;;8282:752;:::o;7741:535::-;491:4;7878:392;;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;2905:15:50;7878:392:18;;;;;;;;;;;;;;;;;491:4;7878:392;;7741:535;:::o;:::-;2872:7:50;7878:392:18;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;9016:3:35;7878:392:18;;;;;;;;;;;;;;;;;9021:4:35;7878:392:18;;7741:535;:::o;1009:1952:33:-;508:3412:50;;1009:1952:33;;508:3412:50;;1239:13:33;;;1235:66;;1632:15;;;;:::i;:::-;1674;;;;:::i;:::-;508:3412:50;1699:25:33;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;;:::i;:::-;9631:1:35;;508:3412:50;;9631:1:35;;;;;1978:981:33;1009:1952;;;;;;;;;;:::o;1978:981::-;;;;;2909:48;;;;;;;2123:13;2122:19;2123:13;;;;:::i;:::-;508:3412:50;;;;2122:19:33;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;508:3412:50;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;508:3412:50;;1978:981:33;;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;2909:18;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;;;;;;2931:26;9643:3:35;2931:26:33;;2909:48;;1695:115;508:3412:50;;-1:-1:-1;;;1747:56:33;;;;;1057:14:1;;;;508:3412:50;;;1057:14:1;508:3412:50;;1747:56:33;1235:66;508:3412:50;;-1:-1:-1;;;1261:40:33;;;;;1057:14:1;;;508:3412:50;;;1057:14:1;;;508:3412:50;;1747:56:33;508:3412:50;1057:14:1;;;508:3412:50;;;;;;;;4948:179:9;;5052:10;;;508:3412:50;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;508:3412:50;1381:20;508:3412;;;;;;;-1:-1:-1;508:3412:50;;;4948:179:9;:::o;508:3412:50:-;;:::i;:::-;;;;;;;;1057:14:1;;;;;;;;;508:3412:50;-1:-1:-1;508:3412:50;1057:14:1;-1:-1:-1;508:3412:50;;-1:-1:-1;508:3412:50;;;;;;;;;;;;;;;;:::i;:::-;;;1057:14:1;;508:3412:50;;;;;;;-1:-1:-1;508:3412:50;;;;;;;;;;;;;1057:14:1;;508:3412:50;;;;;-1:-1:-1;508:3412:50;;;;;;1057:14:1;;;508:3412:50;1057:14:1;;;;508:3412:50;;:::o;:::-;;;1057:14:1;;508:3412:50;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;508:3412:50;;;;;:::o;7397:59:9:-;508:3412:50;;-1:-1:-1;;;7397:59:9;;;;;;;;;;;1057:14:1;7397:59:9;1057:14:1;;;7397:59:9;;;;;;;;;;;-1:-1:-1;;;7397:59:9;;;;;;;;508:3412:50;;9749:10:9;;7397:59;9749:10;7397:59;;;;;;;;:::o;:::-;9749:10;508:3412:50;;9749:10:9;508:3412:50;7397:59:9;;;;;;;;;;;;;:::o;:::-;508:3412:50;;;7397:59:9;;;;508:3412:50;;;;:::o;:::-;;;-1:-1:-1;;;508:3412:50;;;;;;;;;;;1057:14:1;-1:-1:-1;;;1057:14:1;;;508:3412:50;;;;1487:3103:18;-1:-1:-1;;1713:26:18;;;1709:40;;1948:21;1943:26;;;1939:54;;2266:5;508:3412:50;;;;4502:49:18;2559:29;508:3412:50;;2591:5:18;1381:20:50;2591:5:18;;508:3412:50;;;;;;;;;;;;;;2874:31:18;508:3412:50;;;;;;3074:35:18;3649;508:3412:50;;;;3508:34:18;508:3412:50;;;;3371:32:18;508:3412:50;;;;;;;;;;;;;;;;;;;;;;;;;3136:40:18;;;;508:3412:50;2941:32:18;508:3412:50;;;;;;;;;;;;;;;3699:327:18;508:3412:50;;4564:3:18;508:3412:50;;1487:3103:18;:::o;1939:54::-;508:3412:50;;-1:-1:-1;;;1971:22:18;;508:3412:50;1971:22:18;;;508:3412:50;;;;;1057:14:1;-1:-1:-1;;;1057:14:1;;;508:3412:50;;;1747:56:33;1709:40:18;1741:8;1748:1;1741:8;:::o;508:3412:50:-;1057:14:1;;508:3412:50;;;;;;:::o;:::-;1057:14:1;;508:3412:50;;;;;;;;;;;;:::o;11479:393:9:-;;1057:14:1;;508:3412:50;;;;;11605:2:9;508:3412:50;;;;11605:2:9;508:3412:50;;;;;;;1671:64:0;;;:::i;:::-;508:3412:50;1057:14:1;508:3412:50;;1057:14:1;;;:::i;:::-;1671:64:0;;;508:3412:50;1057:14:1;;508:3412:50;;:::i;:::-;;;11605:2:9;508:3412:50;;;-1:-1:-1;11652:3:9;1057:14:1;;11638:12:9;;;;;11683:4;;508:3412:50;11683:4:9;;;:::i;:::-;508:3412:50;11748:84:9;;;;;;;;508:3412:50;11623:13:9;;11638:12;-1:-1:-1;11638:12:9;-1:-1:-1;;;11479:393:9:o;11118:304::-;;508:3412:50;1057:14:1;;;11262:2:9;11251:29;11262:2;11251:13;;:29;11262:2;;;11251:29;11262:2;11251:29;;;508:3412:50;11290:106:9;11310:7;;;;;;11405:10;;;;;11118:304;:::o;11319:3::-;508:3412:50;;;;;;;;;;;;;1057:14:1;;508:3412:50;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;508:3412:50;;;11383:1:9;508:3412:50;;;;;;;;;;;11338:47:9;11319:3;508:3412:50;11295:13:9;;;;;;11251:29;;;;;15328:575:18;15397:27;15405:5;;;15397:27;:::i;:::-;15435:462;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:575;:::o;561:59:9:-;;;;;;;;;;;;;;;;;;;;;;508:3412:50;;;561:59:9;1057:14:1;561:59:9;;;1057:14:1;;:::i;:::-;561:59:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;7397;;561;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;508:3412:50;;7397:59:9;;;561;;;;;;;508:3412:50;561:59:9;;;1057:14:1;561:59:9;1057:14:1;;;561:59:9;;;;;;;;;;;:::o;:::-;508:3412:50;;-1:-1:-1;;;561:59:9;;;;;;;;;;;1057:14:1;561:59:9;1057:14:1;;;561:59:9;-1:-1:-1;;;561:59:9;;;;;;;1264:3205;1354:12;;;508:3412:50;-1:-1:-1;;;;;508:3412:50;1390:9:9;;;508:3412:50;1057:14:1;;1431:11:9;;;;508:3412:50;1475:10:9;508:3412:50;1475:10:9;;;508:3412:50;:::i;:::-;1536:10:9;:68;;:21;:10;:15;:10;;;;508:3412:50;1381:20;508:3412;;;;;;;;;;;;;;1536:21:9;508:3412:50;;1568:34:9;;;;;;;;;;;:::i;:::-;;1057:14:1;;1568:34:9;;;;;;:::i;1536:68::-;508:3412:50;;;;;1536:68:9;1532:174;;1758:12;1735:36;1758:12;1735:36;1758:12;;;:::i;:::-;508:3412:50;;1735:36:9;;;;1568:34;1735:36;;;:::i;:::-;;1057:14:1;;1735:36:9;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1781:11:9;;;;508:3412:50;;-1:-1:-1;;;1781:11:9;;-1:-1:-1;508:3412:50;1431:11:9;508:3412:50;-1:-1:-1;;;;;;;;;;;;1781:11:9;;;;;;;;1264:3205;1862:20;-1:-1:-1;1862:20:9;;;1568:34;1735:36;;1862:20;;;;1903:38;1862:20;;:::i;:::-;1924:16;;;:::i;1903:38::-;508:3412:50;;-1:-1:-1;;;1990:25:9;;-1:-1:-1;;;;;508:3412:50;;1431:11:9;1990:25;;1057:14:1;508:3412:50;-1:-1:-1;508:3412:50;1057:14:1;508:3412:50;-1:-1:-1;;;;;;;;;;;;1990:25:9;;;;;;;-1:-1:-1;1990:25:9;;;1264:3205;-1:-1:-1;1057:14:1;;1536:10:9;2029:17;;1536:10;;2090:8;;2077:22;2090:8;1568:34;2090:8;;;:::i;:::-;508:3412:50;;;-1:-1:-1;;;2077:22:9;;-1:-1:-1;;;;;508:3412:50;;1431:11:9;2077:22;;1057:14:1;;;;;;;;508:3412:50;;;;;1057:14:1;;;;;2077:22:9;;;-1:-1:-1;;;;;;;;;;;2077:22:9;;;;;;;-1:-1:-1;2077:22:9;;;2025:2068;2117:18;;;2113:106;;2025:2068;2236:12;2232:238;;4394:68;508:3412:50;4394:15:9;4426:34;508:3412:50;4394:21:9;508:3412:50;2667:8:9;4426:34;508:3412:50;2488:86:9;508:3412:50;2519:34:9;;508:3412:50;;;2519:34:9;;;1568;2519;;;;;:::i;:::-;1057:14:1;2509:45:9;;2564:8;;;:::i;:::-;508:3412:50;;;;-1:-1:-1;;;;;508:3412:50;;1057:14:1;;-1:-1:-1;;;;;;1671:64:0;;561:59:9;;;1671:64:0;561:59:9;;;1057:14:1;;;;561:59:9;;;1057:14:1;561:59:9;;2488:86;2667:8;:::i;:::-;508:3412:50;2588:68:9;:15;;2620:34;;2588:21;:15;;;;508:3412:50;1381:20;508:3412;;;;;;;;;;;;;;2588:21:9;508:3412:50;;;2620:34:9;;;1568;2620;;;;;:::i;2588:68::-;561:59;2690:75;:68;1536:10;;2722:34;;2690:21;1536:10;2690:15;1536:10;;;;508:3412:50;1381:20;508:3412;;;;;;;;;;;;;;2690:68:9;561:59;;-1:-1:-1;;561:59:9;1536:10;561:59;;;;2690:75;4103:162;4124:68;;1536:10;;4156:34;;4124:21;1536:10;4124:15;1536:10;;;;508:3412:50;1381:20;508:3412;;;;;;;;;;;;;;4124:68:9;4103:162;:::i;:::-;1354:12;;;7397:59;;-1:-1:-1;;;;;;7397:59:9;;;1390:9;;;7397:59;;-1:-1:-1;;7397:59:9;;;4331:17;1475:10;;;4331:17;:::i;:::-;-1:-1:-1;1431:11:9;;;508:3412:50;;;-1:-1:-1;;;;;508:3412:50;;;;;;;;;;;;4394:68:9;508:3412:50;1264:3205:9;:::o;2113:106::-;2160:44;;2194:8;;;:::i;:::-;508:3412:50;;;;-1:-1:-1;;;;;508:3412:50;;1057:14:1;;;;;;;;;508:3412:50;;;;1057:14:1;;;;2160:44:9;;;;2113:106;;2077:22;;;;;1568:34;2077:22;1568:34;2077:22;;;;;;;:::i;:::-;;;;;2025:2068;1536:10;2786:16;;;;;;;;;;;2782:1311;1536:10;;;-1:-1:-1;2856:3:9;1057:14:1;;2838:16:9;;;;;2907:8;1568:34;2907:8;2894:22;2907:8;;;:::i;:::-;508:3412:50;;;-1:-1:-1;;;2894:22:9;;-1:-1:-1;;;;;508:3412:50;;1431:11:9;2894:22;;1057:14:1;;;;;;;;508:3412:50;;;;;1057:14:1;;;;;2894:22:9;;;-1:-1:-1;;;;;;;;;;;2894:22:9;;;;;;;-1:-1:-1;2894:22:9;;;2856:3;2938:18;;;2934:114;;2856:3;3104:8;;;;:::i;:::-;508:3412:50;-1:-1:-1;;;;;;;;;;;3090:43:9;;;;508:3412:50;;-1:-1:-1;;;3090:43:9;;-1:-1:-1;;;;;508:3412:50;;1431:11:9;3090:43;;1057:14:1;508:3412:50;;;1057:14:1;;;;-1:-1:-1;;;508:3412:50;;;1057:14:1;-1:-1:-1;508:3412:50;;;-1:-1:-1;;;;;;;;;;;;3090:43:9;;;;;;;;2856:3;3256:20;-1:-1:-1;3256:20:9;;;1568:34;1735:36;;3256:20;;;3305:38;3256:20;;:::i;3305:38::-;3384:37;;;2856:3;3380:529;;;3940:8;;;;:::i;:::-;508:3412:50;-1:-1:-1;;;;;;;;;;;3926:29:9;;;;508:3412:50;;-1:-1:-1;;;3926:29:9;;-1:-1:-1;;;;;508:3412:50;;1431:11:9;3926:29;;1057:14:1;508:3412:50;;;1057:14:1;;;;508:3412:50;;;1057:14:1;;;;-1:-1:-1;508:3412:50;;;-1:-1:-1;;;;;;;;;;;;3926:29:9;;;;;;;1536:10;3926:29;;;2856:3;;508:3412:50;2823:13:9;;3926:29;;;;;;:::i;:::-;;;;3380:529;508:3412:50;;;;;;;;3848:8:9;508:3412:50;;3519:86:9;508:3412:50;;1568:34:9;3550;;;;;;;;;;:::i;:::-;1057:14:1;3540:45:9;;3595:8;3519:86;3595:8;;;;:::i;:::-;508:3412:50;;;;-1:-1:-1;;;;;508:3412:50;;1057:14:1;;-1:-1:-1;;;;;;1671:64:0;;;561:59:9;;;1671:64:0;561:59:9;;1057:14:1;;;;561:59:9;;;1057:14:1;;;;508:3412:50;;;561:59:9;;;;;3519:86;;;;3706:8;;;;:::i;:::-;508:3412:50;3627:68:9;:21;:15;;;;508:3412:50;1381:20;508:3412;;;;;;;;;;;;;;3627:21:9;508:3412:50;;1568:34:9;3659;;;;508:3412:50;3659:34:9;508:3412:50;;3659:34:9;;:::i;3627:68::-;561:59;3737:75;:68;:21;1536:10;3737:15;1536:10;;;;508:3412:50;1381:20;508:3412;;;;;;;;;;;;;;3737:75:9;3848:8;:::i;:::-;508:3412:50;-1:-1:-1;;;;;;;;;;;3834:29:9;;;;508:3412:50;;-1:-1:-1;;;3834:29:9;;-1:-1:-1;;;;;508:3412:50;;1431:11:9;3834:29;;1057:14:1;508:3412:50;;;1057:14:1;;;;508:3412:50;;;1057:14:1;;;;-1:-1:-1;508:3412:50;;;-1:-1:-1;;;;;;;;;;;;3834:29:9;;;;;;;4394:15;4426:34;3834:29;4426:34;3834:29;4394:21;3834:29;4394:68;3834:29;;;3380:529;3885:5;2025:2068;;3834:29;;;;;;:::i;:::-;;;;3384:37;-1:-1:-1;;;3395:26:9;;-1:-1:-1;3384:37:9;;;3090:43;;;;;;:::i;:::-;;;;2934:114;2985:44;;3019:8;;;;:::i;:::-;508:3412:50;;;;-1:-1:-1;;;;;508:3412:50;;1057:14:1;;;;;;;;;508:3412:50;;;;1057:14:1;;;;2985:44:9;;;;2934:114;;2894:22;;;;;1568:34;2894:22;1568:34;2894:22;;;;;;;:::i;:::-;;;;;2838:16;;;;;4394:68;2838:16;;4426:34;2838:16;4394:15;:21;2838:16;4426:34;2838:16;;2025:2068;;2782:1311;4000:82;:::i;1990:25::-;;;;;;;-1:-1:-1;1990:25:9;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;1781:11;;;;;;:::i;:::-;;;;1532:174;1627:21;:68;:15;;1659:34;1627:15;1659:34;1627:15;508:3412:50;1381:20;508:3412;;;;;;;;;;;;;;;;1057:14:1;;;3862:59:35;;508:3412:50;;;;;;;3862:59:35;;;1057:14:1;508:3412:50;;;;;1057:14:1;508:3412:50;;;;;;;965:21:18;508:3412:50;1880:50:42;799:19:18;508:3412:50;965:21:18;1961:50:42;508:3412:50;;;1057:14:1;;;;:::i;:::-;508:3412:50;;;1057:14:1;508:3412:50;;;;;1057:14:1;508:3412:50;;;;1057:14:1;508:3412:50;3862:59:35;508:3412:50;;;;;;;;1057:14:1;508:3412:50;;;;;1057:14:1;:::i;:::-;508:3412:50;;;965:21:18;:::i;:::-;1880:50:42;:::i;:::-;965:21:18;;:::i;:::-;508:3412:50;;1961:50:42;;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","failed()":"ba414fa6","setUp()":"0a9254e4","testFork_G3M_init_DAIWETHPool()":"1c305979","testFork_G3M_init_USDCWETHPool()":"aff1f96c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"upper\",\"type\":\"uint256\"}],\"name\":\"BisectionLib_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"lowerResult\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"upperResult\",\"type\":\"int256\"}],\"name\":\"BisectionLib_RootOutsideBounds\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testFork_G3M_init_DAIWETHPool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testFork_G3M_init_USDCWETHPool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"BisectionLib_InvalidBounds(uint256,uint256)\":[{\"details\":\"Thrown when the lower bound is greater than the upper bound.\"}],\"BisectionLib_RootOutsideBounds(int256,int256)\":[{\"details\":\"Thrown when the result of the function `fx` for each input, `upper` and `lower`, is the same sign.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/fork/G3M.t.sol\":\"G3MTestFork\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/lib/SignedWadMath.sol\":{\"keccak256\":\"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a\",\"dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/solvers/G3M/G3MExtendedLib.sol\":{\"keccak256\":\"0xa7e4eb7172ca81b319ccb5ac248c302fb549be3eb6badda424800f73edfbc448\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2d53a62a983c65dd0b892f30d30b603fc5cf7ebb4895dbdcb0a05a9eae1a431f\",\"dweb:/ipfs/QmNXKi6XUWswwKuzaE6SorZhRvd7Nz6dxYmLmii8bVcRhK\"]},\"src/strategies/G3M/G3M.sol\":{\"keccak256\":\"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c\",\"dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE\"]},\"src/strategies/G3M/G3MLib.sol\":{\"keccak256\":\"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70\",\"dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m\"]},\"src/test/fork/G3M.t.sol\":{\"keccak256\":\"0xf3d30115490ff65791eb846e753bceb5833d73c6ce2dd05765cf087a8a59b02a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bafd393bb8fe5f259159ded0d0e24bd3700d6f5e6b94c7005410eda6c4a0487b\",\"dweb:/ipfs/QmSFGfpRh51EyrjbxdcxoV5G6jn1ADAtKUp7k7SVP77QRH\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"lower","type":"uint256"},{"internalType":"uint256","name":"upper","type":"uint256"}],"type":"error","name":"BisectionLib_InvalidBounds"},{"inputs":[{"internalType":"int256","name":"lowerResult","type":"int256"},{"internalType":"int256","name":"upperResult","type":"int256"}],"type":"error","name":"BisectionLib_RootOutsideBounds"},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testFork_G3M_init_DAIWETHPool"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testFork_G3M_init_USDCWETHPool"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/fork/G3M.t.sol":"G3MTestFork"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/lib/SignedWadMath.sol":{"keccak256":"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630","urls":["bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a","dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN"],"license":"MIT"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/solvers/G3M/G3MExtendedLib.sol":{"keccak256":"0xa7e4eb7172ca81b319ccb5ac248c302fb549be3eb6badda424800f73edfbc448","urls":["bzz-raw://2d53a62a983c65dd0b892f30d30b603fc5cf7ebb4895dbdcb0a05a9eae1a431f","dweb:/ipfs/QmNXKi6XUWswwKuzaE6SorZhRvd7Nz6dxYmLmii8bVcRhK"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3M.sol":{"keccak256":"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034","urls":["bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c","dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3MLib.sol":{"keccak256":"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4","urls":["bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70","dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m"],"license":"GPL-3.0-or-later"},"src/test/fork/G3M.t.sol":{"keccak256":"0xf3d30115490ff65791eb846e753bceb5833d73c6ce2dd05765cf087a8a59b02a","urls":["bzz-raw://bafd393bb8fe5f259159ded0d0e24bd3700d6f5e6b94c7005410eda6c4a0487b","dweb:/ipfs/QmSFGfpRh51EyrjbxdcxoV5G6jn1ADAtKUp7k7SVP77QRH"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/fork/G3M.t.sol","id":43136,"exportedSymbols":{"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"DFMM":[29062],"DSTest":[1786],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"G3M":[37911],"G3MLib":[38158],"G3MTestFork":[43135],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"LPToken":[29516],"LibString":[26659],"Min":[27736],"MockERC20":[25560],"ONE":[30639],"SQRT_WAD":[30630],"SafeTransferLib":[26744],"SignedWadMathLib":[30623],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"TWO":[30633],"Test":[8195],"TestBase":[1843],"USDC":[42652],"Vm":[9352],"WETH":[26027],"ZERO":[30649],"abs":[27763],"bisection":[31118],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeInitialPoolData":[31906],"computeL":[31844],"computeLGivenX":[31662],"computeLGivenY":[31688],"computeNextLiquidity":[32899],"computeNextRx":[32006],"computeNextRy":[31956],"computeOptimalLower":[32732],"computeOptimalRaise":[32798],"computePrice":[32043],"computeScalingFactor":[30048],"computeX":[31792],"computeXGivenL":[31714],"computeY":[31766],"computeYGivenL":[31740],"console":[17416],"console2":[25512],"diffLower":[32419],"diffRaise":[32666],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"findRootLiquidity":[32083],"findRootLower":[32129],"findRootRaise":[32175],"muli":[27777],"muliWad":[27795],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"40:3881:50","nodes":[{"id":42625,"nodeType":"PragmaDirective","src":"40:24:50","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":42626,"nodeType":"ImportDirective","src":"66:28:50","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":43136,"sourceUnit":8196,"symbolAliases":[],"unitAlias":""},{"id":42627,"nodeType":"ImportDirective","src":"95:48:50","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol","file":"solmate/test/utils/mocks/MockERC20.sol","nameLocation":"-1:-1:-1","scope":43136,"sourceUnit":25561,"symbolAliases":[],"unitAlias":""},{"id":42628,"nodeType":"ImportDirective","src":"144:22:50","nodes":[],"absolutePath":"src/DFMM.sol","file":"src/DFMM.sol","nameLocation":"-1:-1:-1","scope":43136,"sourceUnit":29063,"symbolAliases":[],"unitAlias":""},{"id":42629,"nodeType":"ImportDirective","src":"167:36:50","nodes":[],"absolutePath":"src/strategies/G3M/G3M.sol","file":"src/strategies/G3M/G3M.sol","nameLocation":"-1:-1:-1","scope":43136,"sourceUnit":37912,"symbolAliases":[],"unitAlias":""},{"id":42630,"nodeType":"ImportDirective","src":"204:44:50","nodes":[],"absolutePath":"src/solvers/G3M/G3MExtendedLib.sol","file":"src/solvers/G3M/G3MExtendedLib.sol","nameLocation":"-1:-1:-1","scope":43136,"sourceUnit":32900,"symbolAliases":[],"unitAlias":""},{"id":42652,"nodeType":"ContractDefinition","src":"250:256:50","nodes":[{"id":42635,"nodeType":"FunctionDefinition","src":"271:56:50","nodes":[],"functionSelector":"35d99f35","implemented":false,"kind":"function","modifiers":[],"name":"masterMinter","nameLocation":"280:12:50","parameters":{"id":42631,"nodeType":"ParameterList","parameters":[],"src":"292:2:50"},"returnParameters":{"id":42634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42633,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":42635,"src":"318:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42632,"name":"address","nodeType":"ElementaryTypeName","src":"318:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"317:9:50"},"scope":42652,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":42642,"nodeType":"FunctionDefinition","src":"332:51:50","nodes":[],"functionSelector":"40c10f19","implemented":false,"kind":"function","modifiers":[],"name":"mint","nameLocation":"341:4:50","parameters":{"id":42640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42637,"mutability":"mutable","name":"to","nameLocation":"354:2:50","nodeType":"VariableDeclaration","scope":42642,"src":"346:10:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42636,"name":"address","nodeType":"ElementaryTypeName","src":"346:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42639,"mutability":"mutable","name":"amount","nameLocation":"366:6:50","nodeType":"VariableDeclaration","scope":42642,"src":"358:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42638,"name":"uint256","nodeType":"ElementaryTypeName","src":"358:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"345:28:50"},"returnParameters":{"id":42641,"nodeType":"ParameterList","parameters":[],"src":"382:0:50"},"scope":42652,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":42651,"nodeType":"FunctionDefinition","src":"388:116:50","nodes":[],"functionSelector":"4e44d956","implemented":false,"kind":"function","modifiers":[],"name":"configureMinter","nameLocation":"397:15:50","parameters":{"id":42647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42644,"mutability":"mutable","name":"minter","nameLocation":"430:6:50","nodeType":"VariableDeclaration","scope":42651,"src":"422:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42643,"name":"address","nodeType":"ElementaryTypeName","src":"422:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42646,"mutability":"mutable","name":"minterAllowedAmount","nameLocation":"454:19:50","nodeType":"VariableDeclaration","scope":42651,"src":"446:27:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42645,"name":"uint256","nodeType":"ElementaryTypeName","src":"446:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"412:67:50"},"returnParameters":{"id":42650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42649,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":42651,"src":"498:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42648,"name":"bool","nodeType":"ElementaryTypeName","src":"498:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"497:6:50"},"scope":42652,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"USDC","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[42652],"name":"USDC","nameLocation":"260:4:50","scope":43136,"usedErrors":[],"usedEvents":[]},{"id":43135,"nodeType":"ContractDefinition","src":"508:3412:50","nodes":[{"id":42657,"nodeType":"VariableDeclaration","src":"543:9:50","nodes":[],"constant":false,"mutability":"mutable","name":"dfmm","nameLocation":"548:4:50","scope":43135,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"},"typeName":{"id":42656,"nodeType":"UserDefinedTypeName","pathNode":{"id":42655,"name":"DFMM","nameLocations":["543:4:50"],"nodeType":"IdentifierPath","referencedDeclaration":29062,"src":"543:4:50"},"referencedDeclaration":29062,"src":"543:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"visibility":"internal"},{"id":42660,"nodeType":"VariableDeclaration","src":"558:10:50","nodes":[],"constant":false,"mutability":"mutable","name":"usdc","nameLocation":"564:4:50","scope":43135,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"},"typeName":{"id":42659,"nodeType":"UserDefinedTypeName","pathNode":{"id":42658,"name":"ERC20","nameLocations":["558:5:50"],"nodeType":"IdentifierPath","referencedDeclaration":25948,"src":"558:5:50"},"referencedDeclaration":25948,"src":"558:5:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"visibility":"internal"},{"id":42663,"nodeType":"VariableDeclaration","src":"574:10:50","nodes":[],"constant":false,"mutability":"mutable","name":"weth","nameLocation":"580:4:50","scope":43135,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"},"typeName":{"id":42662,"nodeType":"UserDefinedTypeName","pathNode":{"id":42661,"name":"ERC20","nameLocations":["574:5:50"],"nodeType":"IdentifierPath","referencedDeclaration":25948,"src":"574:5:50"},"referencedDeclaration":25948,"src":"574:5:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"visibility":"internal"},{"id":42666,"nodeType":"VariableDeclaration","src":"590:9:50","nodes":[],"constant":false,"mutability":"mutable","name":"dai","nameLocation":"596:3:50","scope":43135,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"},"typeName":{"id":42665,"nodeType":"UserDefinedTypeName","pathNode":{"id":42664,"name":"ERC20","nameLocations":["590:5:50"],"nodeType":"IdentifierPath","referencedDeclaration":25948,"src":"590:5:50"},"referencedDeclaration":25948,"src":"590:5:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"visibility":"internal"},{"id":42669,"nodeType":"VariableDeclaration","src":"605:7:50","nodes":[],"constant":false,"mutability":"mutable","name":"g3m","nameLocation":"609:3:50","scope":43135,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"},"typeName":{"id":42668,"nodeType":"UserDefinedTypeName","pathNode":{"id":42667,"name":"G3M","nameLocations":["605:3:50"],"nodeType":"IdentifierPath","referencedDeclaration":37911,"src":"605:3:50"},"referencedDeclaration":37911,"src":"605:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"visibility":"internal"},{"id":42828,"nodeType":"FunctionDefinition","src":"619:995:50","nodes":[],"body":{"id":42827,"nodeType":"Block","src":"643:971:50","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"4d41494e4e45545f5250435f55524c","id":42677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"686:17:50","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9247e87c7ce28f49f1da055e6c014066579f6788d13d999021b3f077553a64f","typeString":"literal_string \"MAINNET_RPC_URL\""},"value":"MAINNET_RPC_URL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e9247e87c7ce28f49f1da055e6c014066579f6788d13d999021b3f077553a64f","typeString":"literal_string \"MAINNET_RPC_URL\""}],"expression":{"id":42675,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"673:2:50","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":42676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"676:9:50","memberName":"envString","nodeType":"MemberAccess","referencedDeclaration":8319,"src":"673:12:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":42678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"673:31:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":42672,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"653:2:50","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":42674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"656:16:50","memberName":"createSelectFork","nodeType":"MemberAccess","referencedDeclaration":9254,"src":"653:19:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (string memory) external returns (uint256)"}},"id":42679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"653:52:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42680,"nodeType":"ExpressionStatement","src":"653:52:50"},{"expression":{"id":42685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42681,"name":"usdc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42660,"src":"716:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"307841306238363939316336323138623336633164313944346132653945623063453336303665423438","id":42683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"729:42:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42682,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25948,"src":"723:5:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$25948_$","typeString":"type(contract ERC20)"}},"id":42684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"723:49:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"src":"716:56:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42686,"nodeType":"ExpressionStatement","src":"716:56:50"},{"expression":{"id":42691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42687,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"782:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"307843303261614133396232323346453844304130653543344632376541443930383343373536436332","id":42689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"795:42:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42688,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25948,"src":"789:5:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$25948_$","typeString":"type(contract ERC20)"}},"id":42690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"789:49:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"src":"782:56:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42692,"nodeType":"ExpressionStatement","src":"782:56:50"},{"expression":{"id":42697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42693,"name":"dai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42666,"src":"848:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"307836423137353437344538393039344334344461393862393534456564654143343935323731643046","id":42695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"860:42:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x6B175474E89094C44Da98b954EedeAC495271d0F"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42694,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25948,"src":"854:5:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$25948_$","typeString":"type(contract ERC20)"}},"id":42696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"854:49:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"src":"848:55:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42698,"nodeType":"ExpressionStatement","src":"848:55:50"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"hexValue":"307841306238363939316336323138623336633164313944346132653945623063453336303665423438","id":42703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"941:42:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42702,"name":"USDC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42652,"src":"936:4:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_USDC_$42652_$","typeString":"type(contract USDC)"}},"id":42704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"936:48:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_USDC_$42652","typeString":"contract USDC"}},"id":42705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"985:12:50","memberName":"masterMinter","nodeType":"MemberAccess","referencedDeclaration":42635,"src":"936:61:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":42706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"936:63:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42699,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"914:2:50","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":42701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"917:5:50","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":9075,"src":"914:8:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":42707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"914:95:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42708,"nodeType":"ExpressionStatement","src":"914:95:50"},{"expression":{"arguments":[{"arguments":[{"id":42715,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1105:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":42714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1097:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42713,"name":"address","nodeType":"ElementaryTypeName","src":"1097:7:50","typeDescriptions":{}}},"id":42716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1097:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":42719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1117:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":42718,"name":"uint256","nodeType":"ElementaryTypeName","src":"1117:7:50","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":42717,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1112:4:50","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":42720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1112:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":42721,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1126:3:50","memberName":"max","nodeType":"MemberAccess","src":"1112:17:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"hexValue":"307841306238363939316336323138623336633164313944346132653945623063453336303665423438","id":42710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1024:42:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42709,"name":"USDC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42652,"src":"1019:4:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_USDC_$42652_$","typeString":"type(contract USDC)"}},"id":42711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1019:48:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_USDC_$42652","typeString":"contract USDC"}},"id":42712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1068:15:50","memberName":"configureMinter","nodeType":"MemberAccess","referencedDeclaration":42651,"src":"1019:64:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":42722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1019:120:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42723,"nodeType":"ExpressionStatement","src":"1019:120:50"},{"expression":{"arguments":[{"arguments":[{"id":42730,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1224:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":42729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1216:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42728,"name":"address","nodeType":"ElementaryTypeName","src":"1216:7:50","typeDescriptions":{}}},"id":42731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1216:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_rational_2000000000_by_1","typeString":"int_const 2000000000"},"id":42736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32303030","id":42732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1231:4:50","typeDescriptions":{"typeIdentifier":"t_rational_2000_by_1","typeString":"int_const 2000"},"value":"2000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"id":42735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":42733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1238:2:50","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"36","id":42734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1244:1:50","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"1238:7:50","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"}},"src":"1231:14:50","typeDescriptions":{"typeIdentifier":"t_rational_2000000000_by_1","typeString":"int_const 2000000000"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_2000000000_by_1","typeString":"int_const 2000000000"}],"expression":{"arguments":[{"hexValue":"307841306238363939316336323138623336633164313944346132653945623063453336303665423438","id":42725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1154:42:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42724,"name":"USDC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42652,"src":"1149:4:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_USDC_$42652_$","typeString":"type(contract USDC)"}},"id":42726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1149:48:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_USDC_$42652","typeString":"contract USDC"}},"id":42727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1198:4:50","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":42642,"src":"1149:53:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":42737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1149:106:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42738,"nodeType":"ExpressionStatement","src":"1149:106:50"},{"expression":{"arguments":[{"arguments":[{"id":42742,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"1278:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}],"id":42741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1270:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42740,"name":"address","nodeType":"ElementaryTypeName","src":"1270:7:50","typeDescriptions":{}}},"id":42743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1270:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":42746,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1293:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":42745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1285:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42744,"name":"address","nodeType":"ElementaryTypeName","src":"1285:7:50","typeDescriptions":{}}},"id":42747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1285:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":42748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1300:7:50","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}],"id":42739,"name":"deal","nodeType":"Identifier","overloadedDeclarations":[5060,5077,5180],"referencedDeclaration":5077,"src":"1265:4:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":42749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1265:43:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42750,"nodeType":"ExpressionStatement","src":"1265:43:50"},{"expression":{"arguments":[{"arguments":[{"id":42754,"name":"dai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42666,"src":"1331:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}],"id":42753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1323:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42752,"name":"address","nodeType":"ElementaryTypeName","src":"1323:7:50","typeDescriptions":{}}},"id":42755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1323:12:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":42758,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1345:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":42757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1337:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42756,"name":"address","nodeType":"ElementaryTypeName","src":"1337:7:50","typeDescriptions":{}}},"id":42759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1337:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"32303030","id":42760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1352:10:50","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_2000000000000000000000_by_1","typeString":"int_const 2000000000000000000000"},"value":"2000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_2000000000000000000000_by_1","typeString":"int_const 2000000000000000000000"}],"id":42751,"name":"deal","nodeType":"Identifier","overloadedDeclarations":[5060,5077,5180],"referencedDeclaration":5077,"src":"1318:4:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":42761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1318:45:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42762,"nodeType":"ExpressionStatement","src":"1318:45:50"},{"expression":{"id":42772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42763,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"1374:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30","id":42769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1398:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":42768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1390:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42767,"name":"address","nodeType":"ElementaryTypeName","src":"1390:7:50","typeDescriptions":{}}},"id":42770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1390:10:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1381:8:50","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_DFMM_$29062_$","typeString":"function (address) returns (contract DFMM)"},"typeName":{"id":42765,"nodeType":"UserDefinedTypeName","pathNode":{"id":42764,"name":"DFMM","nameLocations":["1385:4:50"],"nodeType":"IdentifierPath","referencedDeclaration":29062,"src":"1385:4:50"},"referencedDeclaration":29062,"src":"1385:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}},"id":42771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1381:20:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"src":"1374:27:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":42773,"nodeType":"ExpressionStatement","src":"1374:27:50"},{"expression":{"id":42783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42774,"name":"g3m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42669,"src":"1411:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":42780,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"1433:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":42779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1425:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42778,"name":"address","nodeType":"ElementaryTypeName","src":"1425:7:50","typeDescriptions":{}}},"id":42781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1425:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1417:7:50","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_G3M_$37911_$","typeString":"function (address) returns (contract G3M)"},"typeName":{"id":42776,"nodeType":"UserDefinedTypeName","pathNode":{"id":42775,"name":"G3M","nameLocations":["1421:3:50"],"nodeType":"IdentifierPath","referencedDeclaration":37911,"src":"1421:3:50"},"referencedDeclaration":37911,"src":"1421:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}}},"id":42782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1417:22:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"src":"1411:28:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"id":42784,"nodeType":"ExpressionStatement","src":"1411:28:50"},{"expression":{"arguments":[{"arguments":[{"id":42790,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"1471:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":42789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1463:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42788,"name":"address","nodeType":"ElementaryTypeName","src":"1463:7:50","typeDescriptions":{}}},"id":42791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1463:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":42794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1483:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":42793,"name":"uint256","nodeType":"ElementaryTypeName","src":"1483:7:50","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":42792,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1478:4:50","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":42795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1478:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":42796,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1492:3:50","memberName":"max","nodeType":"MemberAccess","src":"1478:17:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42785,"name":"usdc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42660,"src":"1450:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1455:7:50","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":25665,"src":"1450:12:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":42797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1450:46:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42798,"nodeType":"ExpressionStatement","src":"1450:46:50"},{"expression":{"arguments":[{"arguments":[{"id":42804,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"1527:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":42803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1519:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42802,"name":"address","nodeType":"ElementaryTypeName","src":"1519:7:50","typeDescriptions":{}}},"id":42805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1519:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":42808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1539:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":42807,"name":"uint256","nodeType":"ElementaryTypeName","src":"1539:7:50","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":42806,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1534:4:50","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":42809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1534:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":42810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1548:3:50","memberName":"max","nodeType":"MemberAccess","src":"1534:17:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42799,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"1506:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1511:7:50","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":25665,"src":"1506:12:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":42811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1506:46:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42812,"nodeType":"ExpressionStatement","src":"1506:46:50"},{"expression":{"arguments":[{"arguments":[{"id":42818,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"1582:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":42817,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1574:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42816,"name":"address","nodeType":"ElementaryTypeName","src":"1574:7:50","typeDescriptions":{}}},"id":42819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1574:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":42822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1594:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":42821,"name":"uint256","nodeType":"ElementaryTypeName","src":"1594:7:50","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":42820,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1589:4:50","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":42823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1589:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":42824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1603:3:50","memberName":"max","nodeType":"MemberAccess","src":"1589:17:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42813,"name":"dai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42666,"src":"1562:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1566:7:50","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":25665,"src":"1562:11:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":42825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1562:45:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42826,"nodeType":"ExpressionStatement","src":"1562:45:50"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"628:5:50","parameters":{"id":42670,"nodeType":"ParameterList","parameters":[],"src":"633:2:50"},"returnParameters":{"id":42671,"nodeType":"ParameterList","parameters":[],"src":"643:0:50"},"scope":43135,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":42985,"nodeType":"FunctionDefinition","src":"1620:1169:50","nodes":[],"body":{"id":42984,"nodeType":"Block","src":"1669:1120:50","nodes":[],"statements":[{"assignments":[42832],"declarations":[{"constant":false,"id":42832,"mutability":"mutable","name":"reserveX","nameLocation":"1687:8:50","nodeType":"VariableDeclaration","scope":42984,"src":"1679:16:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42831,"name":"uint256","nodeType":"ElementaryTypeName","src":"1679:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42834,"initialValue":{"hexValue":"31","id":42833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1698:7:50","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"1679:26:50"},{"assignments":[42836],"declarations":[{"constant":false,"id":42836,"mutability":"mutable","name":"price","nameLocation":"1723:5:50","nodeType":"VariableDeclaration","scope":42984,"src":"1715:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42835,"name":"uint256","nodeType":"ElementaryTypeName","src":"1715:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42842,"initialValue":{"commonType":{"typeIdentifier":"t_rational_2000000000000000000000_by_1","typeString":"int_const 2000000000000000000000"},"id":42841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32303030","id":42837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1731:4:50","typeDescriptions":{"typeIdentifier":"t_rational_2000_by_1","typeString":"int_const 2000"},"value":"2000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":42840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":42838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1738:2:50","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":42839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1744:2:50","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"1738:8:50","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"1731:15:50","typeDescriptions":{"typeIdentifier":"t_rational_2000000000000000000000_by_1","typeString":"int_const 2000000000000000000000"}},"nodeType":"VariableDeclarationStatement","src":"1715:31:50"},{"assignments":[42847],"declarations":[{"constant":false,"id":42847,"mutability":"mutable","name":"params","nameLocation":"1778:6:50","nodeType":"VariableDeclaration","scope":42984,"src":"1757:27:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":42846,"nodeType":"UserDefinedTypeName","pathNode":{"id":42845,"name":"G3M.G3MParams","nameLocations":["1757:3:50","1761:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"1757:13:50"},"referencedDeclaration":37272,"src":"1757:13:50","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"id":42858,"initialValue":{"arguments":[{"hexValue":"302e35","id":42850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1819:9:50","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"value":"0.5"},{"hexValue":"302e35","id":42851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1846:9:50","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"value":"0.5"},{"hexValue":"30","id":42852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1878:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"id":42855,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1913:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":42854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1905:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42853,"name":"address","nodeType":"ElementaryTypeName","src":"1905:7:50","typeDescriptions":{}}},"id":42856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1905:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42848,"name":"G3M","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37911,"src":"1787:3:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3M_$37911_$","typeString":"type(contract G3M)"}},"id":42849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1791:9:50","memberName":"G3MParams","nodeType":"MemberAccess","referencedDeclaration":37272,"src":"1787:13:50","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}},"id":42857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1815:2:50","1842:2:50","1869:7:50","1893:10:50"],"names":["wX","wY","swapFee","controller"],"nodeType":"FunctionCall","src":"1787:142:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"nodeType":"VariableDeclarationStatement","src":"1757:172:50"},{"assignments":[42860],"declarations":[{"constant":false,"id":42860,"mutability":"mutable","name":"preBalanceX","nameLocation":"1948:11:50","nodeType":"VariableDeclaration","scope":42984,"src":"1940:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42859,"name":"uint256","nodeType":"ElementaryTypeName","src":"1940:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42868,"initialValue":{"arguments":[{"arguments":[{"id":42865,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1985:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":42864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1977:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42863,"name":"address","nodeType":"ElementaryTypeName","src":"1977:7:50","typeDescriptions":{}}},"id":42866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1977:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42861,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"1962:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1967:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"1962:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":42867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1962:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1940:51:50"},{"assignments":[42870],"declarations":[{"constant":false,"id":42870,"mutability":"mutable","name":"preBalanceY","nameLocation":"2009:11:50","nodeType":"VariableDeclaration","scope":42984,"src":"2001:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42869,"name":"uint256","nodeType":"ElementaryTypeName","src":"2001:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42878,"initialValue":{"arguments":[{"arguments":[{"id":42875,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2046:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":42874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2038:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42873,"name":"address","nodeType":"ElementaryTypeName","src":"2038:7:50","typeDescriptions":{}}},"id":42876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2038:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42871,"name":"usdc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42660,"src":"2023:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2028:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"2023:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":42877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2023:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2001:51:50"},{"assignments":[42880],"declarations":[{"constant":false,"id":42880,"mutability":"mutable","name":"preBalanceXDFMM","nameLocation":"2070:15:50","nodeType":"VariableDeclaration","scope":42984,"src":"2062:23:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42879,"name":"uint256","nodeType":"ElementaryTypeName","src":"2062:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42888,"initialValue":{"arguments":[{"arguments":[{"id":42885,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"2111:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":42884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2103:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42883,"name":"address","nodeType":"ElementaryTypeName","src":"2103:7:50","typeDescriptions":{}}},"id":42886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2103:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42881,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"2088:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2093:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"2088:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":42887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2088:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2062:55:50"},{"assignments":[42890],"declarations":[{"constant":false,"id":42890,"mutability":"mutable","name":"preBalanceYDFMM","nameLocation":"2135:15:50","nodeType":"VariableDeclaration","scope":42984,"src":"2127:23:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42889,"name":"uint256","nodeType":"ElementaryTypeName","src":"2127:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42898,"initialValue":{"arguments":[{"arguments":[{"id":42895,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"2176:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":42894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2168:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42893,"name":"address","nodeType":"ElementaryTypeName","src":"2168:7:50","typeDescriptions":{}}},"id":42896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2168:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42891,"name":"usdc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42660,"src":"2153:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2158:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"2153:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":42897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2153:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2127:55:50"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":42906,"name":"g3m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42669,"src":"2269:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}],"id":42905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2261:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42904,"name":"address","nodeType":"ElementaryTypeName","src":"2261:7:50","typeDescriptions":{}}},"id":42907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2261:12:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":42910,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"2307:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}],"id":42909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2299:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42908,"name":"address","nodeType":"ElementaryTypeName","src":"2299:7:50","typeDescriptions":{}}},"id":42911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2299:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":42914,"name":"usdc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42660,"src":"2346:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}],"id":42913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2338:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42912,"name":"address","nodeType":"ElementaryTypeName","src":"2338:7:50","typeDescriptions":{}}},"id":42915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2338:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":42917,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42832,"src":"2398:8:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42918,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42836,"src":"2408:5:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42919,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42847,"src":"2415:6:50","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":42916,"name":"computeInitialPoolData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31906,"src":"2375:22:50","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256,struct G3M.G3MParams memory) pure returns (bytes memory)"}},"id":42920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2375:47:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":42902,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"2216:5:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":42903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2222:10:50","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":29543,"src":"2216:16:50","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$29543_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":42921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2251:8:50","2291:6:50","2330:6:50","2369:4:50"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"2216:221:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":42899,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"2193:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":42901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2198:4:50","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":28091,"src":"2193:9:50","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$29543_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":42922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2193:254:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"id":42923,"nodeType":"ExpressionStatement","src":"2193:254:50"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":42929,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2490:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":42928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2482:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42927,"name":"address","nodeType":"ElementaryTypeName","src":"2482:7:50","typeDescriptions":{}}},"id":42930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2482:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42925,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"2467:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2472:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"2467:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":42931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2467:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42932,"name":"preBalanceX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42860,"src":"2498:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":42933,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42832,"src":"2512:8:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2498:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42924,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2458:8:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":42935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2458:63:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42936,"nodeType":"ExpressionStatement","src":"2458:63:50"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":42942,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2563:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":42941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2555:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42940,"name":"address","nodeType":"ElementaryTypeName","src":"2555:7:50","typeDescriptions":{}}},"id":42943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2555:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42938,"name":"usdc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42660,"src":"2540:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2545:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"2540:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":42944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2540:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42945,"name":"preBalanceY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42870,"src":"2571:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_rational_2000000000_by_1","typeString":"int_const 2000000000"},"id":42950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32303030","id":42946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2585:4:50","typeDescriptions":{"typeIdentifier":"t_rational_2000_by_1","typeString":"int_const 2000"},"value":"2000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"id":42949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":42947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2592:2:50","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"36","id":42948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2598:1:50","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"2592:7:50","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"}},"src":"2585:14:50","typeDescriptions":{"typeIdentifier":"t_rational_2000000000_by_1","typeString":"int_const 2000000000"}},"src":"2571:28:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42937,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2531:8:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":42952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2531:69:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42953,"nodeType":"ExpressionStatement","src":"2531:69:50"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":42959,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"2642:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":42958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2634:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42957,"name":"address","nodeType":"ElementaryTypeName","src":"2634:7:50","typeDescriptions":{}}},"id":42960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2634:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42955,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"2619:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2624:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"2619:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":42961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2619:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42962,"name":"preBalanceXDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42880,"src":"2650:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":42963,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42832,"src":"2668:8:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2650:26:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42954,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2610:8:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":42965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2610:67:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42966,"nodeType":"ExpressionStatement","src":"2610:67:50"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":42972,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"2732:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":42971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2724:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42970,"name":"address","nodeType":"ElementaryTypeName","src":"2724:7:50","typeDescriptions":{}}},"id":42973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2724:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42968,"name":"usdc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42660,"src":"2709:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2714:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"2709:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":42974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2709:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42975,"name":"preBalanceYDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42890,"src":"2740:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_rational_2000000000_by_1","typeString":"int_const 2000000000"},"id":42980,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32303030","id":42976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2758:4:50","typeDescriptions":{"typeIdentifier":"t_rational_2000_by_1","typeString":"int_const 2000"},"value":"2000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"id":42979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":42977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2765:2:50","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"36","id":42978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2771:1:50","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"2765:7:50","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"}},"src":"2758:14:50","typeDescriptions":{"typeIdentifier":"t_rational_2000000000_by_1","typeString":"int_const 2000000000"}},"src":"2740:32:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42967,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2687:8:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":42982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2687:95:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42983,"nodeType":"ExpressionStatement","src":"2687:95:50"}]},"functionSelector":"aff1f96c","implemented":true,"kind":"function","modifiers":[],"name":"testFork_G3M_init_USDCWETHPool","nameLocation":"1629:30:50","parameters":{"id":42829,"nodeType":"ParameterList","parameters":[],"src":"1659:2:50"},"returnParameters":{"id":42830,"nodeType":"ParameterList","parameters":[],"src":"1669:0:50"},"scope":43135,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":43134,"nodeType":"FunctionDefinition","src":"2795:1123:50","nodes":[],"body":{"id":43133,"nodeType":"Block","src":"2843:1075:50","nodes":[],"statements":[{"assignments":[42989],"declarations":[{"constant":false,"id":42989,"mutability":"mutable","name":"reserveX","nameLocation":"2861:8:50","nodeType":"VariableDeclaration","scope":43133,"src":"2853:16:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42988,"name":"uint256","nodeType":"ElementaryTypeName","src":"2853:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42991,"initialValue":{"hexValue":"31","id":42990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2872:7:50","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"2853:26:50"},{"assignments":[42993],"declarations":[{"constant":false,"id":42993,"mutability":"mutable","name":"price","nameLocation":"2897:5:50","nodeType":"VariableDeclaration","scope":43133,"src":"2889:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42992,"name":"uint256","nodeType":"ElementaryTypeName","src":"2889:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42999,"initialValue":{"commonType":{"typeIdentifier":"t_rational_2000000000000000000000_by_1","typeString":"int_const 2000000000000000000000"},"id":42998,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32303030","id":42994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2905:4:50","typeDescriptions":{"typeIdentifier":"t_rational_2000_by_1","typeString":"int_const 2000"},"value":"2000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":42997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":42995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2912:2:50","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":42996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2918:2:50","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"2912:8:50","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"2905:15:50","typeDescriptions":{"typeIdentifier":"t_rational_2000000000000000000000_by_1","typeString":"int_const 2000000000000000000000"}},"nodeType":"VariableDeclarationStatement","src":"2889:31:50"},{"assignments":[43004],"declarations":[{"constant":false,"id":43004,"mutability":"mutable","name":"params","nameLocation":"2952:6:50","nodeType":"VariableDeclaration","scope":43133,"src":"2931:27:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":43003,"nodeType":"UserDefinedTypeName","pathNode":{"id":43002,"name":"G3M.G3MParams","nameLocations":["2931:3:50","2935:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"2931:13:50"},"referencedDeclaration":37272,"src":"2931:13:50","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"id":43015,"initialValue":{"arguments":[{"hexValue":"302e35","id":43007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2993:9:50","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"value":"0.5"},{"hexValue":"302e35","id":43008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3020:9:50","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"value":"0.5"},{"hexValue":"30","id":43009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3052:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"id":43012,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3087:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":43011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3079:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43010,"name":"address","nodeType":"ElementaryTypeName","src":"3079:7:50","typeDescriptions":{}}},"id":43013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3079:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43005,"name":"G3M","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37911,"src":"2961:3:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3M_$37911_$","typeString":"type(contract G3M)"}},"id":43006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2965:9:50","memberName":"G3MParams","nodeType":"MemberAccess","referencedDeclaration":37272,"src":"2961:13:50","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}},"id":43014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2989:2:50","3016:2:50","3043:7:50","3067:10:50"],"names":["wX","wY","swapFee","controller"],"nodeType":"FunctionCall","src":"2961:142:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"nodeType":"VariableDeclarationStatement","src":"2931:172:50"},{"assignments":[43017],"declarations":[{"constant":false,"id":43017,"mutability":"mutable","name":"preBalanceX","nameLocation":"3122:11:50","nodeType":"VariableDeclaration","scope":43133,"src":"3114:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43016,"name":"uint256","nodeType":"ElementaryTypeName","src":"3114:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43025,"initialValue":{"arguments":[{"arguments":[{"id":43022,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3159:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":43021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3151:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43020,"name":"address","nodeType":"ElementaryTypeName","src":"3151:7:50","typeDescriptions":{}}},"id":43023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3151:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43018,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"3136:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":43019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3141:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"3136:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3136:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3114:51:50"},{"assignments":[43027],"declarations":[{"constant":false,"id":43027,"mutability":"mutable","name":"preBalanceY","nameLocation":"3183:11:50","nodeType":"VariableDeclaration","scope":43133,"src":"3175:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43026,"name":"uint256","nodeType":"ElementaryTypeName","src":"3175:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43035,"initialValue":{"arguments":[{"arguments":[{"id":43032,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3219:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":43031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3211:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43030,"name":"address","nodeType":"ElementaryTypeName","src":"3211:7:50","typeDescriptions":{}}},"id":43033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3211:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43028,"name":"dai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42666,"src":"3197:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":43029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3201:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"3197:13:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3197:28:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3175:50:50"},{"assignments":[43037],"declarations":[{"constant":false,"id":43037,"mutability":"mutable","name":"preBalanceXDFMM","nameLocation":"3243:15:50","nodeType":"VariableDeclaration","scope":43133,"src":"3235:23:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43036,"name":"uint256","nodeType":"ElementaryTypeName","src":"3235:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43045,"initialValue":{"arguments":[{"arguments":[{"id":43042,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"3284:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":43041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3276:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43040,"name":"address","nodeType":"ElementaryTypeName","src":"3276:7:50","typeDescriptions":{}}},"id":43043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3276:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43038,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"3261:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":43039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3266:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"3261:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3261:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3235:55:50"},{"assignments":[43047],"declarations":[{"constant":false,"id":43047,"mutability":"mutable","name":"preBalanceYDFMM","nameLocation":"3308:15:50","nodeType":"VariableDeclaration","scope":43133,"src":"3300:23:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43046,"name":"uint256","nodeType":"ElementaryTypeName","src":"3300:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43055,"initialValue":{"arguments":[{"arguments":[{"id":43052,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"3348:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":43051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3340:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43050,"name":"address","nodeType":"ElementaryTypeName","src":"3340:7:50","typeDescriptions":{}}},"id":43053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3340:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43048,"name":"dai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42666,"src":"3326:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":43049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3330:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"3326:13:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3326:28:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3300:54:50"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":43063,"name":"g3m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42669,"src":"3441:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}],"id":43062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3433:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43061,"name":"address","nodeType":"ElementaryTypeName","src":"3433:7:50","typeDescriptions":{}}},"id":43064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3433:12:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":43067,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"3479:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}],"id":43066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3471:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43065,"name":"address","nodeType":"ElementaryTypeName","src":"3471:7:50","typeDescriptions":{}}},"id":43068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3471:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":43071,"name":"dai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42666,"src":"3518:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}],"id":43070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3510:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43069,"name":"address","nodeType":"ElementaryTypeName","src":"3510:7:50","typeDescriptions":{}}},"id":43072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3510:12:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":43074,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42989,"src":"3569:8:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43075,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42993,"src":"3579:5:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43076,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43004,"src":"3586:6:50","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":43073,"name":"computeInitialPoolData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31906,"src":"3546:22:50","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256,struct G3M.G3MParams memory) pure returns (bytes memory)"}},"id":43077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3546:47:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":43059,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"3388:5:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":43060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3394:10:50","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":29543,"src":"3388:16:50","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$29543_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":43078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3423:8:50","3463:6:50","3502:6:50","3540:4:50"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"3388:220:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":43056,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"3365:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":43058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3370:4:50","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":28091,"src":"3365:9:50","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$29543_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":43079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3365:253:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"id":43080,"nodeType":"ExpressionStatement","src":"3365:253:50"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":43086,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3661:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":43085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3653:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43084,"name":"address","nodeType":"ElementaryTypeName","src":"3653:7:50","typeDescriptions":{}}},"id":43087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3653:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43082,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"3638:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":43083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3643:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"3638:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3638:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43089,"name":"preBalanceX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43017,"src":"3669:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":43090,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42989,"src":"3683:8:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3669:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43081,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"3629:8:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":43092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3629:63:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43093,"nodeType":"ExpressionStatement","src":"3629:63:50"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":43099,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3733:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":43098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3725:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43097,"name":"address","nodeType":"ElementaryTypeName","src":"3725:7:50","typeDescriptions":{}}},"id":43100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3725:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43095,"name":"dai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42666,"src":"3711:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":43096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3715:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"3711:13:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3711:28:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43102,"name":"preBalanceY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43027,"src":"3741:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":43103,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42993,"src":"3755:5:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3741:19:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43094,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"3702:8:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":43105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3702:59:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43106,"nodeType":"ExpressionStatement","src":"3702:59:50"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":43112,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"3803:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":43111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3795:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43110,"name":"address","nodeType":"ElementaryTypeName","src":"3795:7:50","typeDescriptions":{}}},"id":43113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3795:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43108,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"3780:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":43109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3785:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"3780:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3780:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43115,"name":"preBalanceXDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43037,"src":"3811:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":43116,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42989,"src":"3829:8:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3811:26:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43107,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"3771:8:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":43118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3771:67:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43119,"nodeType":"ExpressionStatement","src":"3771:67:50"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":43125,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"3879:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":43124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3871:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43123,"name":"address","nodeType":"ElementaryTypeName","src":"3871:7:50","typeDescriptions":{}}},"id":43126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3871:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43121,"name":"dai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42666,"src":"3857:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":43122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3861:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"3857:13:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3857:28:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43128,"name":"preBalanceYDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43047,"src":"3887:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":43129,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42993,"src":"3905:5:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3887:23:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43120,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"3848:8:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":43131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3848:63:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43132,"nodeType":"ExpressionStatement","src":"3848:63:50"}]},"functionSelector":"1c305979","implemented":true,"kind":"function","modifiers":[],"name":"testFork_G3M_init_DAIWETHPool","nameLocation":"2804:29:50","parameters":{"id":42986,"nodeType":"ParameterList","parameters":[],"src":"2833:2:50"},"returnParameters":{"id":42987,"nodeType":"ParameterList","parameters":[],"src":"2843:0:50"},"scope":43135,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":42653,"name":"Test","nameLocations":["532:4:50"],"nodeType":"IdentifierPath","referencedDeclaration":8195,"src":"532:4:50"},"id":42654,"nodeType":"InheritanceSpecifier","src":"532:4:50"}],"canonicalName":"G3MTestFork","contractDependencies":[29062,37911],"contractKind":"contract","fullyImplemented":true,"internalFunctionIDs":{"32083":1},"linearizedBaseContracts":[43135,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"G3MTestFork","nameLocation":"517:11:50","scope":43136,"usedErrors":[30985,30992],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936,6098,6104]}],"license":"UNLICENSED"},"id":50} \ No newline at end of file diff --git a/out/G3M.t.sol/USDC.json b/out/G3M.t.sol/USDC.json deleted file mode 100644 index 08dcbfba..00000000 --- a/out/G3M.t.sol/USDC.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"configureMinter","inputs":[{"name":"minter","type":"address","internalType":"address"},{"name":"minterAllowedAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"masterMinter","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"configureMinter(address,uint256)":"4e44d956","masterMinter()":"35d99f35","mint(address,uint256)":"40c10f19"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minterAllowedAmount\",\"type\":\"uint256\"}],\"name\":\"configureMinter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"masterMinter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/fork/G3M.t.sol\":\"USDC\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/lib/SignedWadMath.sol\":{\"keccak256\":\"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a\",\"dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/solvers/G3M/G3MExtendedLib.sol\":{\"keccak256\":\"0xa7e4eb7172ca81b319ccb5ac248c302fb549be3eb6badda424800f73edfbc448\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2d53a62a983c65dd0b892f30d30b603fc5cf7ebb4895dbdcb0a05a9eae1a431f\",\"dweb:/ipfs/QmNXKi6XUWswwKuzaE6SorZhRvd7Nz6dxYmLmii8bVcRhK\"]},\"src/strategies/G3M/G3M.sol\":{\"keccak256\":\"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c\",\"dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE\"]},\"src/strategies/G3M/G3MLib.sol\":{\"keccak256\":\"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70\",\"dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m\"]},\"src/test/fork/G3M.t.sol\":{\"keccak256\":\"0xf3d30115490ff65791eb846e753bceb5833d73c6ce2dd05765cf087a8a59b02a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bafd393bb8fe5f259159ded0d0e24bd3700d6f5e6b94c7005410eda6c4a0487b\",\"dweb:/ipfs/QmSFGfpRh51EyrjbxdcxoV5G6jn1ADAtKUp7k7SVP77QRH\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"minter","type":"address"},{"internalType":"uint256","name":"minterAllowedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"configureMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"masterMinter","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/fork/G3M.t.sol":"USDC"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/lib/SignedWadMath.sol":{"keccak256":"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630","urls":["bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a","dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN"],"license":"MIT"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/solvers/G3M/G3MExtendedLib.sol":{"keccak256":"0xa7e4eb7172ca81b319ccb5ac248c302fb549be3eb6badda424800f73edfbc448","urls":["bzz-raw://2d53a62a983c65dd0b892f30d30b603fc5cf7ebb4895dbdcb0a05a9eae1a431f","dweb:/ipfs/QmNXKi6XUWswwKuzaE6SorZhRvd7Nz6dxYmLmii8bVcRhK"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3M.sol":{"keccak256":"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034","urls":["bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c","dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3MLib.sol":{"keccak256":"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4","urls":["bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70","dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m"],"license":"GPL-3.0-or-later"},"src/test/fork/G3M.t.sol":{"keccak256":"0xf3d30115490ff65791eb846e753bceb5833d73c6ce2dd05765cf087a8a59b02a","urls":["bzz-raw://bafd393bb8fe5f259159ded0d0e24bd3700d6f5e6b94c7005410eda6c4a0487b","dweb:/ipfs/QmSFGfpRh51EyrjbxdcxoV5G6jn1ADAtKUp7k7SVP77QRH"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/fork/G3M.t.sol","id":43136,"exportedSymbols":{"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"DFMM":[29062],"DSTest":[1786],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"G3M":[37911],"G3MLib":[38158],"G3MTestFork":[43135],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"LPToken":[29516],"LibString":[26659],"Min":[27736],"MockERC20":[25560],"ONE":[30639],"SQRT_WAD":[30630],"SafeTransferLib":[26744],"SignedWadMathLib":[30623],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"TWO":[30633],"Test":[8195],"TestBase":[1843],"USDC":[42652],"Vm":[9352],"WETH":[26027],"ZERO":[30649],"abs":[27763],"bisection":[31118],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeInitialPoolData":[31906],"computeL":[31844],"computeLGivenX":[31662],"computeLGivenY":[31688],"computeNextLiquidity":[32899],"computeNextRx":[32006],"computeNextRy":[31956],"computeOptimalLower":[32732],"computeOptimalRaise":[32798],"computePrice":[32043],"computeScalingFactor":[30048],"computeX":[31792],"computeXGivenL":[31714],"computeY":[31766],"computeYGivenL":[31740],"console":[17416],"console2":[25512],"diffLower":[32419],"diffRaise":[32666],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"findRootLiquidity":[32083],"findRootLower":[32129],"findRootRaise":[32175],"muli":[27777],"muliWad":[27795],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"40:3881:50","nodes":[{"id":42625,"nodeType":"PragmaDirective","src":"40:24:50","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":42626,"nodeType":"ImportDirective","src":"66:28:50","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":43136,"sourceUnit":8196,"symbolAliases":[],"unitAlias":""},{"id":42627,"nodeType":"ImportDirective","src":"95:48:50","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol","file":"solmate/test/utils/mocks/MockERC20.sol","nameLocation":"-1:-1:-1","scope":43136,"sourceUnit":25561,"symbolAliases":[],"unitAlias":""},{"id":42628,"nodeType":"ImportDirective","src":"144:22:50","nodes":[],"absolutePath":"src/DFMM.sol","file":"src/DFMM.sol","nameLocation":"-1:-1:-1","scope":43136,"sourceUnit":29063,"symbolAliases":[],"unitAlias":""},{"id":42629,"nodeType":"ImportDirective","src":"167:36:50","nodes":[],"absolutePath":"src/strategies/G3M/G3M.sol","file":"src/strategies/G3M/G3M.sol","nameLocation":"-1:-1:-1","scope":43136,"sourceUnit":37912,"symbolAliases":[],"unitAlias":""},{"id":42630,"nodeType":"ImportDirective","src":"204:44:50","nodes":[],"absolutePath":"src/solvers/G3M/G3MExtendedLib.sol","file":"src/solvers/G3M/G3MExtendedLib.sol","nameLocation":"-1:-1:-1","scope":43136,"sourceUnit":32900,"symbolAliases":[],"unitAlias":""},{"id":42652,"nodeType":"ContractDefinition","src":"250:256:50","nodes":[{"id":42635,"nodeType":"FunctionDefinition","src":"271:56:50","nodes":[],"functionSelector":"35d99f35","implemented":false,"kind":"function","modifiers":[],"name":"masterMinter","nameLocation":"280:12:50","parameters":{"id":42631,"nodeType":"ParameterList","parameters":[],"src":"292:2:50"},"returnParameters":{"id":42634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42633,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":42635,"src":"318:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42632,"name":"address","nodeType":"ElementaryTypeName","src":"318:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"317:9:50"},"scope":42652,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":42642,"nodeType":"FunctionDefinition","src":"332:51:50","nodes":[],"functionSelector":"40c10f19","implemented":false,"kind":"function","modifiers":[],"name":"mint","nameLocation":"341:4:50","parameters":{"id":42640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42637,"mutability":"mutable","name":"to","nameLocation":"354:2:50","nodeType":"VariableDeclaration","scope":42642,"src":"346:10:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42636,"name":"address","nodeType":"ElementaryTypeName","src":"346:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42639,"mutability":"mutable","name":"amount","nameLocation":"366:6:50","nodeType":"VariableDeclaration","scope":42642,"src":"358:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42638,"name":"uint256","nodeType":"ElementaryTypeName","src":"358:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"345:28:50"},"returnParameters":{"id":42641,"nodeType":"ParameterList","parameters":[],"src":"382:0:50"},"scope":42652,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":42651,"nodeType":"FunctionDefinition","src":"388:116:50","nodes":[],"functionSelector":"4e44d956","implemented":false,"kind":"function","modifiers":[],"name":"configureMinter","nameLocation":"397:15:50","parameters":{"id":42647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42644,"mutability":"mutable","name":"minter","nameLocation":"430:6:50","nodeType":"VariableDeclaration","scope":42651,"src":"422:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42643,"name":"address","nodeType":"ElementaryTypeName","src":"422:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42646,"mutability":"mutable","name":"minterAllowedAmount","nameLocation":"454:19:50","nodeType":"VariableDeclaration","scope":42651,"src":"446:27:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42645,"name":"uint256","nodeType":"ElementaryTypeName","src":"446:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"412:67:50"},"returnParameters":{"id":42650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42649,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":42651,"src":"498:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42648,"name":"bool","nodeType":"ElementaryTypeName","src":"498:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"497:6:50"},"scope":42652,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"USDC","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[42652],"name":"USDC","nameLocation":"260:4:50","scope":43136,"usedErrors":[],"usedEvents":[]},{"id":43135,"nodeType":"ContractDefinition","src":"508:3412:50","nodes":[{"id":42657,"nodeType":"VariableDeclaration","src":"543:9:50","nodes":[],"constant":false,"mutability":"mutable","name":"dfmm","nameLocation":"548:4:50","scope":43135,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"},"typeName":{"id":42656,"nodeType":"UserDefinedTypeName","pathNode":{"id":42655,"name":"DFMM","nameLocations":["543:4:50"],"nodeType":"IdentifierPath","referencedDeclaration":29062,"src":"543:4:50"},"referencedDeclaration":29062,"src":"543:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"visibility":"internal"},{"id":42660,"nodeType":"VariableDeclaration","src":"558:10:50","nodes":[],"constant":false,"mutability":"mutable","name":"usdc","nameLocation":"564:4:50","scope":43135,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"},"typeName":{"id":42659,"nodeType":"UserDefinedTypeName","pathNode":{"id":42658,"name":"ERC20","nameLocations":["558:5:50"],"nodeType":"IdentifierPath","referencedDeclaration":25948,"src":"558:5:50"},"referencedDeclaration":25948,"src":"558:5:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"visibility":"internal"},{"id":42663,"nodeType":"VariableDeclaration","src":"574:10:50","nodes":[],"constant":false,"mutability":"mutable","name":"weth","nameLocation":"580:4:50","scope":43135,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"},"typeName":{"id":42662,"nodeType":"UserDefinedTypeName","pathNode":{"id":42661,"name":"ERC20","nameLocations":["574:5:50"],"nodeType":"IdentifierPath","referencedDeclaration":25948,"src":"574:5:50"},"referencedDeclaration":25948,"src":"574:5:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"visibility":"internal"},{"id":42666,"nodeType":"VariableDeclaration","src":"590:9:50","nodes":[],"constant":false,"mutability":"mutable","name":"dai","nameLocation":"596:3:50","scope":43135,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"},"typeName":{"id":42665,"nodeType":"UserDefinedTypeName","pathNode":{"id":42664,"name":"ERC20","nameLocations":["590:5:50"],"nodeType":"IdentifierPath","referencedDeclaration":25948,"src":"590:5:50"},"referencedDeclaration":25948,"src":"590:5:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"visibility":"internal"},{"id":42669,"nodeType":"VariableDeclaration","src":"605:7:50","nodes":[],"constant":false,"mutability":"mutable","name":"g3m","nameLocation":"609:3:50","scope":43135,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"},"typeName":{"id":42668,"nodeType":"UserDefinedTypeName","pathNode":{"id":42667,"name":"G3M","nameLocations":["605:3:50"],"nodeType":"IdentifierPath","referencedDeclaration":37911,"src":"605:3:50"},"referencedDeclaration":37911,"src":"605:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"visibility":"internal"},{"id":42828,"nodeType":"FunctionDefinition","src":"619:995:50","nodes":[],"body":{"id":42827,"nodeType":"Block","src":"643:971:50","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"4d41494e4e45545f5250435f55524c","id":42677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"686:17:50","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9247e87c7ce28f49f1da055e6c014066579f6788d13d999021b3f077553a64f","typeString":"literal_string \"MAINNET_RPC_URL\""},"value":"MAINNET_RPC_URL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e9247e87c7ce28f49f1da055e6c014066579f6788d13d999021b3f077553a64f","typeString":"literal_string \"MAINNET_RPC_URL\""}],"expression":{"id":42675,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"673:2:50","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":42676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"676:9:50","memberName":"envString","nodeType":"MemberAccess","referencedDeclaration":8319,"src":"673:12:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":42678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"673:31:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":42672,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"653:2:50","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":42674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"656:16:50","memberName":"createSelectFork","nodeType":"MemberAccess","referencedDeclaration":9254,"src":"653:19:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (string memory) external returns (uint256)"}},"id":42679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"653:52:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42680,"nodeType":"ExpressionStatement","src":"653:52:50"},{"expression":{"id":42685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42681,"name":"usdc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42660,"src":"716:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"307841306238363939316336323138623336633164313944346132653945623063453336303665423438","id":42683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"729:42:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42682,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25948,"src":"723:5:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$25948_$","typeString":"type(contract ERC20)"}},"id":42684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"723:49:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"src":"716:56:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42686,"nodeType":"ExpressionStatement","src":"716:56:50"},{"expression":{"id":42691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42687,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"782:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"307843303261614133396232323346453844304130653543344632376541443930383343373536436332","id":42689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"795:42:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42688,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25948,"src":"789:5:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$25948_$","typeString":"type(contract ERC20)"}},"id":42690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"789:49:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"src":"782:56:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42692,"nodeType":"ExpressionStatement","src":"782:56:50"},{"expression":{"id":42697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42693,"name":"dai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42666,"src":"848:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"307836423137353437344538393039344334344461393862393534456564654143343935323731643046","id":42695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"860:42:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x6B175474E89094C44Da98b954EedeAC495271d0F"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42694,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25948,"src":"854:5:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$25948_$","typeString":"type(contract ERC20)"}},"id":42696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"854:49:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"src":"848:55:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42698,"nodeType":"ExpressionStatement","src":"848:55:50"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"hexValue":"307841306238363939316336323138623336633164313944346132653945623063453336303665423438","id":42703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"941:42:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42702,"name":"USDC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42652,"src":"936:4:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_USDC_$42652_$","typeString":"type(contract USDC)"}},"id":42704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"936:48:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_USDC_$42652","typeString":"contract USDC"}},"id":42705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"985:12:50","memberName":"masterMinter","nodeType":"MemberAccess","referencedDeclaration":42635,"src":"936:61:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":42706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"936:63:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42699,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"914:2:50","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":42701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"917:5:50","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":9075,"src":"914:8:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":42707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"914:95:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42708,"nodeType":"ExpressionStatement","src":"914:95:50"},{"expression":{"arguments":[{"arguments":[{"id":42715,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1105:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":42714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1097:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42713,"name":"address","nodeType":"ElementaryTypeName","src":"1097:7:50","typeDescriptions":{}}},"id":42716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1097:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":42719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1117:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":42718,"name":"uint256","nodeType":"ElementaryTypeName","src":"1117:7:50","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":42717,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1112:4:50","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":42720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1112:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":42721,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1126:3:50","memberName":"max","nodeType":"MemberAccess","src":"1112:17:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"hexValue":"307841306238363939316336323138623336633164313944346132653945623063453336303665423438","id":42710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1024:42:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42709,"name":"USDC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42652,"src":"1019:4:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_USDC_$42652_$","typeString":"type(contract USDC)"}},"id":42711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1019:48:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_USDC_$42652","typeString":"contract USDC"}},"id":42712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1068:15:50","memberName":"configureMinter","nodeType":"MemberAccess","referencedDeclaration":42651,"src":"1019:64:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":42722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1019:120:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42723,"nodeType":"ExpressionStatement","src":"1019:120:50"},{"expression":{"arguments":[{"arguments":[{"id":42730,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1224:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":42729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1216:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42728,"name":"address","nodeType":"ElementaryTypeName","src":"1216:7:50","typeDescriptions":{}}},"id":42731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1216:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_rational_2000000000_by_1","typeString":"int_const 2000000000"},"id":42736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32303030","id":42732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1231:4:50","typeDescriptions":{"typeIdentifier":"t_rational_2000_by_1","typeString":"int_const 2000"},"value":"2000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"id":42735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":42733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1238:2:50","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"36","id":42734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1244:1:50","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"1238:7:50","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"}},"src":"1231:14:50","typeDescriptions":{"typeIdentifier":"t_rational_2000000000_by_1","typeString":"int_const 2000000000"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_2000000000_by_1","typeString":"int_const 2000000000"}],"expression":{"arguments":[{"hexValue":"307841306238363939316336323138623336633164313944346132653945623063453336303665423438","id":42725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1154:42:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42724,"name":"USDC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42652,"src":"1149:4:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_USDC_$42652_$","typeString":"type(contract USDC)"}},"id":42726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1149:48:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_USDC_$42652","typeString":"contract USDC"}},"id":42727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1198:4:50","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":42642,"src":"1149:53:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":42737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1149:106:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42738,"nodeType":"ExpressionStatement","src":"1149:106:50"},{"expression":{"arguments":[{"arguments":[{"id":42742,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"1278:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}],"id":42741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1270:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42740,"name":"address","nodeType":"ElementaryTypeName","src":"1270:7:50","typeDescriptions":{}}},"id":42743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1270:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":42746,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1293:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":42745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1285:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42744,"name":"address","nodeType":"ElementaryTypeName","src":"1285:7:50","typeDescriptions":{}}},"id":42747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1285:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":42748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1300:7:50","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}],"id":42739,"name":"deal","nodeType":"Identifier","overloadedDeclarations":[5060,5077,5180],"referencedDeclaration":5077,"src":"1265:4:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":42749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1265:43:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42750,"nodeType":"ExpressionStatement","src":"1265:43:50"},{"expression":{"arguments":[{"arguments":[{"id":42754,"name":"dai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42666,"src":"1331:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}],"id":42753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1323:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42752,"name":"address","nodeType":"ElementaryTypeName","src":"1323:7:50","typeDescriptions":{}}},"id":42755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1323:12:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":42758,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1345:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":42757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1337:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42756,"name":"address","nodeType":"ElementaryTypeName","src":"1337:7:50","typeDescriptions":{}}},"id":42759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1337:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"32303030","id":42760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1352:10:50","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_2000000000000000000000_by_1","typeString":"int_const 2000000000000000000000"},"value":"2000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_2000000000000000000000_by_1","typeString":"int_const 2000000000000000000000"}],"id":42751,"name":"deal","nodeType":"Identifier","overloadedDeclarations":[5060,5077,5180],"referencedDeclaration":5077,"src":"1318:4:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":42761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1318:45:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42762,"nodeType":"ExpressionStatement","src":"1318:45:50"},{"expression":{"id":42772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42763,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"1374:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30","id":42769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1398:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":42768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1390:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42767,"name":"address","nodeType":"ElementaryTypeName","src":"1390:7:50","typeDescriptions":{}}},"id":42770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1390:10:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1381:8:50","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_DFMM_$29062_$","typeString":"function (address) returns (contract DFMM)"},"typeName":{"id":42765,"nodeType":"UserDefinedTypeName","pathNode":{"id":42764,"name":"DFMM","nameLocations":["1385:4:50"],"nodeType":"IdentifierPath","referencedDeclaration":29062,"src":"1385:4:50"},"referencedDeclaration":29062,"src":"1385:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}},"id":42771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1381:20:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"src":"1374:27:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":42773,"nodeType":"ExpressionStatement","src":"1374:27:50"},{"expression":{"id":42783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42774,"name":"g3m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42669,"src":"1411:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":42780,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"1433:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":42779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1425:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42778,"name":"address","nodeType":"ElementaryTypeName","src":"1425:7:50","typeDescriptions":{}}},"id":42781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1425:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1417:7:50","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_G3M_$37911_$","typeString":"function (address) returns (contract G3M)"},"typeName":{"id":42776,"nodeType":"UserDefinedTypeName","pathNode":{"id":42775,"name":"G3M","nameLocations":["1421:3:50"],"nodeType":"IdentifierPath","referencedDeclaration":37911,"src":"1421:3:50"},"referencedDeclaration":37911,"src":"1421:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}}},"id":42782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1417:22:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"src":"1411:28:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"id":42784,"nodeType":"ExpressionStatement","src":"1411:28:50"},{"expression":{"arguments":[{"arguments":[{"id":42790,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"1471:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":42789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1463:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42788,"name":"address","nodeType":"ElementaryTypeName","src":"1463:7:50","typeDescriptions":{}}},"id":42791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1463:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":42794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1483:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":42793,"name":"uint256","nodeType":"ElementaryTypeName","src":"1483:7:50","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":42792,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1478:4:50","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":42795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1478:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":42796,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1492:3:50","memberName":"max","nodeType":"MemberAccess","src":"1478:17:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42785,"name":"usdc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42660,"src":"1450:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1455:7:50","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":25665,"src":"1450:12:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":42797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1450:46:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42798,"nodeType":"ExpressionStatement","src":"1450:46:50"},{"expression":{"arguments":[{"arguments":[{"id":42804,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"1527:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":42803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1519:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42802,"name":"address","nodeType":"ElementaryTypeName","src":"1519:7:50","typeDescriptions":{}}},"id":42805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1519:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":42808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1539:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":42807,"name":"uint256","nodeType":"ElementaryTypeName","src":"1539:7:50","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":42806,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1534:4:50","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":42809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1534:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":42810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1548:3:50","memberName":"max","nodeType":"MemberAccess","src":"1534:17:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42799,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"1506:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1511:7:50","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":25665,"src":"1506:12:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":42811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1506:46:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42812,"nodeType":"ExpressionStatement","src":"1506:46:50"},{"expression":{"arguments":[{"arguments":[{"id":42818,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"1582:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":42817,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1574:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42816,"name":"address","nodeType":"ElementaryTypeName","src":"1574:7:50","typeDescriptions":{}}},"id":42819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1574:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":42822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1594:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":42821,"name":"uint256","nodeType":"ElementaryTypeName","src":"1594:7:50","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":42820,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1589:4:50","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":42823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1589:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":42824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1603:3:50","memberName":"max","nodeType":"MemberAccess","src":"1589:17:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42813,"name":"dai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42666,"src":"1562:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1566:7:50","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":25665,"src":"1562:11:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":42825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1562:45:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42826,"nodeType":"ExpressionStatement","src":"1562:45:50"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"628:5:50","parameters":{"id":42670,"nodeType":"ParameterList","parameters":[],"src":"633:2:50"},"returnParameters":{"id":42671,"nodeType":"ParameterList","parameters":[],"src":"643:0:50"},"scope":43135,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":42985,"nodeType":"FunctionDefinition","src":"1620:1169:50","nodes":[],"body":{"id":42984,"nodeType":"Block","src":"1669:1120:50","nodes":[],"statements":[{"assignments":[42832],"declarations":[{"constant":false,"id":42832,"mutability":"mutable","name":"reserveX","nameLocation":"1687:8:50","nodeType":"VariableDeclaration","scope":42984,"src":"1679:16:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42831,"name":"uint256","nodeType":"ElementaryTypeName","src":"1679:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42834,"initialValue":{"hexValue":"31","id":42833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1698:7:50","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"1679:26:50"},{"assignments":[42836],"declarations":[{"constant":false,"id":42836,"mutability":"mutable","name":"price","nameLocation":"1723:5:50","nodeType":"VariableDeclaration","scope":42984,"src":"1715:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42835,"name":"uint256","nodeType":"ElementaryTypeName","src":"1715:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42842,"initialValue":{"commonType":{"typeIdentifier":"t_rational_2000000000000000000000_by_1","typeString":"int_const 2000000000000000000000"},"id":42841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32303030","id":42837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1731:4:50","typeDescriptions":{"typeIdentifier":"t_rational_2000_by_1","typeString":"int_const 2000"},"value":"2000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":42840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":42838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1738:2:50","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":42839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1744:2:50","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"1738:8:50","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"1731:15:50","typeDescriptions":{"typeIdentifier":"t_rational_2000000000000000000000_by_1","typeString":"int_const 2000000000000000000000"}},"nodeType":"VariableDeclarationStatement","src":"1715:31:50"},{"assignments":[42847],"declarations":[{"constant":false,"id":42847,"mutability":"mutable","name":"params","nameLocation":"1778:6:50","nodeType":"VariableDeclaration","scope":42984,"src":"1757:27:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":42846,"nodeType":"UserDefinedTypeName","pathNode":{"id":42845,"name":"G3M.G3MParams","nameLocations":["1757:3:50","1761:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"1757:13:50"},"referencedDeclaration":37272,"src":"1757:13:50","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"id":42858,"initialValue":{"arguments":[{"hexValue":"302e35","id":42850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1819:9:50","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"value":"0.5"},{"hexValue":"302e35","id":42851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1846:9:50","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"value":"0.5"},{"hexValue":"30","id":42852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1878:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"id":42855,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1913:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":42854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1905:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42853,"name":"address","nodeType":"ElementaryTypeName","src":"1905:7:50","typeDescriptions":{}}},"id":42856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1905:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42848,"name":"G3M","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37911,"src":"1787:3:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3M_$37911_$","typeString":"type(contract G3M)"}},"id":42849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1791:9:50","memberName":"G3MParams","nodeType":"MemberAccess","referencedDeclaration":37272,"src":"1787:13:50","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}},"id":42857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1815:2:50","1842:2:50","1869:7:50","1893:10:50"],"names":["wX","wY","swapFee","controller"],"nodeType":"FunctionCall","src":"1787:142:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"nodeType":"VariableDeclarationStatement","src":"1757:172:50"},{"assignments":[42860],"declarations":[{"constant":false,"id":42860,"mutability":"mutable","name":"preBalanceX","nameLocation":"1948:11:50","nodeType":"VariableDeclaration","scope":42984,"src":"1940:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42859,"name":"uint256","nodeType":"ElementaryTypeName","src":"1940:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42868,"initialValue":{"arguments":[{"arguments":[{"id":42865,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1985:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":42864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1977:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42863,"name":"address","nodeType":"ElementaryTypeName","src":"1977:7:50","typeDescriptions":{}}},"id":42866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1977:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42861,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"1962:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1967:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"1962:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":42867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1962:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1940:51:50"},{"assignments":[42870],"declarations":[{"constant":false,"id":42870,"mutability":"mutable","name":"preBalanceY","nameLocation":"2009:11:50","nodeType":"VariableDeclaration","scope":42984,"src":"2001:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42869,"name":"uint256","nodeType":"ElementaryTypeName","src":"2001:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42878,"initialValue":{"arguments":[{"arguments":[{"id":42875,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2046:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":42874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2038:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42873,"name":"address","nodeType":"ElementaryTypeName","src":"2038:7:50","typeDescriptions":{}}},"id":42876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2038:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42871,"name":"usdc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42660,"src":"2023:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2028:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"2023:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":42877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2023:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2001:51:50"},{"assignments":[42880],"declarations":[{"constant":false,"id":42880,"mutability":"mutable","name":"preBalanceXDFMM","nameLocation":"2070:15:50","nodeType":"VariableDeclaration","scope":42984,"src":"2062:23:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42879,"name":"uint256","nodeType":"ElementaryTypeName","src":"2062:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42888,"initialValue":{"arguments":[{"arguments":[{"id":42885,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"2111:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":42884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2103:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42883,"name":"address","nodeType":"ElementaryTypeName","src":"2103:7:50","typeDescriptions":{}}},"id":42886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2103:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42881,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"2088:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2093:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"2088:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":42887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2088:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2062:55:50"},{"assignments":[42890],"declarations":[{"constant":false,"id":42890,"mutability":"mutable","name":"preBalanceYDFMM","nameLocation":"2135:15:50","nodeType":"VariableDeclaration","scope":42984,"src":"2127:23:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42889,"name":"uint256","nodeType":"ElementaryTypeName","src":"2127:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42898,"initialValue":{"arguments":[{"arguments":[{"id":42895,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"2176:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":42894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2168:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42893,"name":"address","nodeType":"ElementaryTypeName","src":"2168:7:50","typeDescriptions":{}}},"id":42896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2168:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42891,"name":"usdc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42660,"src":"2153:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2158:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"2153:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":42897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2153:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2127:55:50"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":42906,"name":"g3m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42669,"src":"2269:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}],"id":42905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2261:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42904,"name":"address","nodeType":"ElementaryTypeName","src":"2261:7:50","typeDescriptions":{}}},"id":42907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2261:12:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":42910,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"2307:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}],"id":42909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2299:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42908,"name":"address","nodeType":"ElementaryTypeName","src":"2299:7:50","typeDescriptions":{}}},"id":42911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2299:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":42914,"name":"usdc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42660,"src":"2346:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}],"id":42913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2338:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42912,"name":"address","nodeType":"ElementaryTypeName","src":"2338:7:50","typeDescriptions":{}}},"id":42915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2338:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":42917,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42832,"src":"2398:8:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42918,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42836,"src":"2408:5:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42919,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42847,"src":"2415:6:50","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":42916,"name":"computeInitialPoolData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31906,"src":"2375:22:50","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256,struct G3M.G3MParams memory) pure returns (bytes memory)"}},"id":42920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2375:47:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":42902,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"2216:5:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":42903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2222:10:50","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":29543,"src":"2216:16:50","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$29543_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":42921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2251:8:50","2291:6:50","2330:6:50","2369:4:50"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"2216:221:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":42899,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"2193:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":42901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2198:4:50","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":28091,"src":"2193:9:50","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$29543_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":42922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2193:254:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"id":42923,"nodeType":"ExpressionStatement","src":"2193:254:50"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":42929,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2490:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":42928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2482:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42927,"name":"address","nodeType":"ElementaryTypeName","src":"2482:7:50","typeDescriptions":{}}},"id":42930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2482:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42925,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"2467:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2472:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"2467:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":42931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2467:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42932,"name":"preBalanceX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42860,"src":"2498:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":42933,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42832,"src":"2512:8:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2498:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42924,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2458:8:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":42935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2458:63:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42936,"nodeType":"ExpressionStatement","src":"2458:63:50"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":42942,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2563:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":42941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2555:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42940,"name":"address","nodeType":"ElementaryTypeName","src":"2555:7:50","typeDescriptions":{}}},"id":42943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2555:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42938,"name":"usdc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42660,"src":"2540:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2545:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"2540:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":42944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2540:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42945,"name":"preBalanceY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42870,"src":"2571:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_rational_2000000000_by_1","typeString":"int_const 2000000000"},"id":42950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32303030","id":42946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2585:4:50","typeDescriptions":{"typeIdentifier":"t_rational_2000_by_1","typeString":"int_const 2000"},"value":"2000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"id":42949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":42947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2592:2:50","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"36","id":42948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2598:1:50","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"2592:7:50","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"}},"src":"2585:14:50","typeDescriptions":{"typeIdentifier":"t_rational_2000000000_by_1","typeString":"int_const 2000000000"}},"src":"2571:28:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42937,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2531:8:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":42952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2531:69:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42953,"nodeType":"ExpressionStatement","src":"2531:69:50"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":42959,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"2642:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":42958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2634:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42957,"name":"address","nodeType":"ElementaryTypeName","src":"2634:7:50","typeDescriptions":{}}},"id":42960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2634:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42955,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"2619:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2624:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"2619:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":42961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2619:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42962,"name":"preBalanceXDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42880,"src":"2650:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":42963,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42832,"src":"2668:8:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2650:26:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42954,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2610:8:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":42965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2610:67:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42966,"nodeType":"ExpressionStatement","src":"2610:67:50"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":42972,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"2732:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":42971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2724:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42970,"name":"address","nodeType":"ElementaryTypeName","src":"2724:7:50","typeDescriptions":{}}},"id":42973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2724:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42968,"name":"usdc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42660,"src":"2709:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":42969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2714:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"2709:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":42974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2709:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42975,"name":"preBalanceYDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42890,"src":"2740:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_rational_2000000000_by_1","typeString":"int_const 2000000000"},"id":42980,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32303030","id":42976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2758:4:50","typeDescriptions":{"typeIdentifier":"t_rational_2000_by_1","typeString":"int_const 2000"},"value":"2000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"id":42979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":42977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2765:2:50","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"36","id":42978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2771:1:50","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"2765:7:50","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"}},"src":"2758:14:50","typeDescriptions":{"typeIdentifier":"t_rational_2000000000_by_1","typeString":"int_const 2000000000"}},"src":"2740:32:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42967,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2687:8:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":42982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2687:95:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42983,"nodeType":"ExpressionStatement","src":"2687:95:50"}]},"functionSelector":"aff1f96c","implemented":true,"kind":"function","modifiers":[],"name":"testFork_G3M_init_USDCWETHPool","nameLocation":"1629:30:50","parameters":{"id":42829,"nodeType":"ParameterList","parameters":[],"src":"1659:2:50"},"returnParameters":{"id":42830,"nodeType":"ParameterList","parameters":[],"src":"1669:0:50"},"scope":43135,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":43134,"nodeType":"FunctionDefinition","src":"2795:1123:50","nodes":[],"body":{"id":43133,"nodeType":"Block","src":"2843:1075:50","nodes":[],"statements":[{"assignments":[42989],"declarations":[{"constant":false,"id":42989,"mutability":"mutable","name":"reserveX","nameLocation":"2861:8:50","nodeType":"VariableDeclaration","scope":43133,"src":"2853:16:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42988,"name":"uint256","nodeType":"ElementaryTypeName","src":"2853:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42991,"initialValue":{"hexValue":"31","id":42990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2872:7:50","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"2853:26:50"},{"assignments":[42993],"declarations":[{"constant":false,"id":42993,"mutability":"mutable","name":"price","nameLocation":"2897:5:50","nodeType":"VariableDeclaration","scope":43133,"src":"2889:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42992,"name":"uint256","nodeType":"ElementaryTypeName","src":"2889:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42999,"initialValue":{"commonType":{"typeIdentifier":"t_rational_2000000000000000000000_by_1","typeString":"int_const 2000000000000000000000"},"id":42998,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32303030","id":42994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2905:4:50","typeDescriptions":{"typeIdentifier":"t_rational_2000_by_1","typeString":"int_const 2000"},"value":"2000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":42997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":42995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2912:2:50","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":42996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2918:2:50","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"2912:8:50","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"2905:15:50","typeDescriptions":{"typeIdentifier":"t_rational_2000000000000000000000_by_1","typeString":"int_const 2000000000000000000000"}},"nodeType":"VariableDeclarationStatement","src":"2889:31:50"},{"assignments":[43004],"declarations":[{"constant":false,"id":43004,"mutability":"mutable","name":"params","nameLocation":"2952:6:50","nodeType":"VariableDeclaration","scope":43133,"src":"2931:27:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":43003,"nodeType":"UserDefinedTypeName","pathNode":{"id":43002,"name":"G3M.G3MParams","nameLocations":["2931:3:50","2935:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"2931:13:50"},"referencedDeclaration":37272,"src":"2931:13:50","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"id":43015,"initialValue":{"arguments":[{"hexValue":"302e35","id":43007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2993:9:50","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"value":"0.5"},{"hexValue":"302e35","id":43008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3020:9:50","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"value":"0.5"},{"hexValue":"30","id":43009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3052:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"id":43012,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3087:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":43011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3079:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43010,"name":"address","nodeType":"ElementaryTypeName","src":"3079:7:50","typeDescriptions":{}}},"id":43013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3079:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43005,"name":"G3M","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37911,"src":"2961:3:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3M_$37911_$","typeString":"type(contract G3M)"}},"id":43006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2965:9:50","memberName":"G3MParams","nodeType":"MemberAccess","referencedDeclaration":37272,"src":"2961:13:50","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}},"id":43014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2989:2:50","3016:2:50","3043:7:50","3067:10:50"],"names":["wX","wY","swapFee","controller"],"nodeType":"FunctionCall","src":"2961:142:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"nodeType":"VariableDeclarationStatement","src":"2931:172:50"},{"assignments":[43017],"declarations":[{"constant":false,"id":43017,"mutability":"mutable","name":"preBalanceX","nameLocation":"3122:11:50","nodeType":"VariableDeclaration","scope":43133,"src":"3114:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43016,"name":"uint256","nodeType":"ElementaryTypeName","src":"3114:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43025,"initialValue":{"arguments":[{"arguments":[{"id":43022,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3159:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":43021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3151:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43020,"name":"address","nodeType":"ElementaryTypeName","src":"3151:7:50","typeDescriptions":{}}},"id":43023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3151:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43018,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"3136:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":43019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3141:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"3136:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3136:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3114:51:50"},{"assignments":[43027],"declarations":[{"constant":false,"id":43027,"mutability":"mutable","name":"preBalanceY","nameLocation":"3183:11:50","nodeType":"VariableDeclaration","scope":43133,"src":"3175:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43026,"name":"uint256","nodeType":"ElementaryTypeName","src":"3175:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43035,"initialValue":{"arguments":[{"arguments":[{"id":43032,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3219:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":43031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3211:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43030,"name":"address","nodeType":"ElementaryTypeName","src":"3211:7:50","typeDescriptions":{}}},"id":43033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3211:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43028,"name":"dai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42666,"src":"3197:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":43029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3201:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"3197:13:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3197:28:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3175:50:50"},{"assignments":[43037],"declarations":[{"constant":false,"id":43037,"mutability":"mutable","name":"preBalanceXDFMM","nameLocation":"3243:15:50","nodeType":"VariableDeclaration","scope":43133,"src":"3235:23:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43036,"name":"uint256","nodeType":"ElementaryTypeName","src":"3235:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43045,"initialValue":{"arguments":[{"arguments":[{"id":43042,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"3284:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":43041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3276:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43040,"name":"address","nodeType":"ElementaryTypeName","src":"3276:7:50","typeDescriptions":{}}},"id":43043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3276:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43038,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"3261:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":43039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3266:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"3261:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3261:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3235:55:50"},{"assignments":[43047],"declarations":[{"constant":false,"id":43047,"mutability":"mutable","name":"preBalanceYDFMM","nameLocation":"3308:15:50","nodeType":"VariableDeclaration","scope":43133,"src":"3300:23:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43046,"name":"uint256","nodeType":"ElementaryTypeName","src":"3300:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43055,"initialValue":{"arguments":[{"arguments":[{"id":43052,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"3348:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":43051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3340:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43050,"name":"address","nodeType":"ElementaryTypeName","src":"3340:7:50","typeDescriptions":{}}},"id":43053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3340:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43048,"name":"dai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42666,"src":"3326:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":43049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3330:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"3326:13:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3326:28:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3300:54:50"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":43063,"name":"g3m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42669,"src":"3441:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}],"id":43062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3433:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43061,"name":"address","nodeType":"ElementaryTypeName","src":"3433:7:50","typeDescriptions":{}}},"id":43064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3433:12:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":43067,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"3479:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}],"id":43066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3471:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43065,"name":"address","nodeType":"ElementaryTypeName","src":"3471:7:50","typeDescriptions":{}}},"id":43068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3471:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":43071,"name":"dai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42666,"src":"3518:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}],"id":43070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3510:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43069,"name":"address","nodeType":"ElementaryTypeName","src":"3510:7:50","typeDescriptions":{}}},"id":43072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3510:12:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":43074,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42989,"src":"3569:8:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43075,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42993,"src":"3579:5:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43076,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43004,"src":"3586:6:50","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":43073,"name":"computeInitialPoolData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31906,"src":"3546:22:50","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256,struct G3M.G3MParams memory) pure returns (bytes memory)"}},"id":43077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3546:47:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":43059,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"3388:5:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":43060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3394:10:50","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":29543,"src":"3388:16:50","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$29543_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":43078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3423:8:50","3463:6:50","3502:6:50","3540:4:50"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"3388:220:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":43056,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"3365:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":43058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3370:4:50","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":28091,"src":"3365:9:50","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$29543_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":43079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3365:253:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"id":43080,"nodeType":"ExpressionStatement","src":"3365:253:50"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":43086,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3661:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":43085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3653:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43084,"name":"address","nodeType":"ElementaryTypeName","src":"3653:7:50","typeDescriptions":{}}},"id":43087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3653:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43082,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"3638:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":43083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3643:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"3638:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3638:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43089,"name":"preBalanceX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43017,"src":"3669:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":43090,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42989,"src":"3683:8:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3669:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43081,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"3629:8:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":43092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3629:63:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43093,"nodeType":"ExpressionStatement","src":"3629:63:50"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":43099,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3733:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTestFork_$43135","typeString":"contract G3MTestFork"}],"id":43098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3725:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43097,"name":"address","nodeType":"ElementaryTypeName","src":"3725:7:50","typeDescriptions":{}}},"id":43100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3725:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43095,"name":"dai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42666,"src":"3711:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":43096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3715:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"3711:13:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3711:28:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43102,"name":"preBalanceY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43027,"src":"3741:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":43103,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42993,"src":"3755:5:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3741:19:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43094,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"3702:8:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":43105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3702:59:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43106,"nodeType":"ExpressionStatement","src":"3702:59:50"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":43112,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"3803:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":43111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3795:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43110,"name":"address","nodeType":"ElementaryTypeName","src":"3795:7:50","typeDescriptions":{}}},"id":43113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3795:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43108,"name":"weth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42663,"src":"3780:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":43109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3785:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"3780:14:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3780:29:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43115,"name":"preBalanceXDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43037,"src":"3811:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":43116,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42989,"src":"3829:8:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3811:26:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43107,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"3771:8:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":43118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3771:67:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43119,"nodeType":"ExpressionStatement","src":"3771:67:50"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":43125,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42657,"src":"3879:4:50","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":43124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3871:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":43123,"name":"address","nodeType":"ElementaryTypeName","src":"3871:7:50","typeDescriptions":{}}},"id":43126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3871:13:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":43121,"name":"dai","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42666,"src":"3857:3:50","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":43122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3861:9:50","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"3857:13:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":43127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3857:28:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43128,"name":"preBalanceYDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43047,"src":"3887:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":43129,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42993,"src":"3905:5:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3887:23:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43120,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"3848:8:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":43131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3848:63:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43132,"nodeType":"ExpressionStatement","src":"3848:63:50"}]},"functionSelector":"1c305979","implemented":true,"kind":"function","modifiers":[],"name":"testFork_G3M_init_DAIWETHPool","nameLocation":"2804:29:50","parameters":{"id":42986,"nodeType":"ParameterList","parameters":[],"src":"2833:2:50"},"returnParameters":{"id":42987,"nodeType":"ParameterList","parameters":[],"src":"2843:0:50"},"scope":43135,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":42653,"name":"Test","nameLocations":["532:4:50"],"nodeType":"IdentifierPath","referencedDeclaration":8195,"src":"532:4:50"},"id":42654,"nodeType":"InheritanceSpecifier","src":"532:4:50"}],"canonicalName":"G3MTestFork","contractDependencies":[29062,37911],"contractKind":"contract","fullyImplemented":true,"internalFunctionIDs":{"32083":1},"linearizedBaseContracts":[43135,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"G3MTestFork","nameLocation":"517:11:50","scope":43136,"usedErrors":[30985,30992],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936,6098,6104]}],"license":"UNLICENSED"},"id":50} \ No newline at end of file diff --git a/out/G3MExtendedLib.sol/G3MExtendedLib.json b/out/G3MExtendedLib.sol/G3MExtendedLib.json deleted file mode 100644 index bad60952..00000000 --- a/out/G3MExtendedLib.sol/G3MExtendedLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/solvers/G3M/G3MExtendedLib.sol","id":32900,"exportedSymbols":{"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"G3M":[37911],"G3MLib":[38158],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"Min":[27736],"ONE":[30639],"SQRT_WAD":[30630],"SignedWadMathLib":[30623],"TWO":[30633],"ZERO":[30649],"abs":[27763],"bisection":[31118],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeInitialPoolData":[31906],"computeL":[31844],"computeLGivenX":[31662],"computeLGivenY":[31688],"computeNextLiquidity":[32899],"computeNextRx":[32006],"computeNextRy":[31956],"computeOptimalLower":[32732],"computeOptimalRaise":[32798],"computePrice":[32043],"computeX":[31792],"computeXGivenL":[31714],"computeY":[31766],"computeYGivenL":[31740],"console2":[25512],"diffLower":[32419],"diffRaise":[32666],"diviWad":[27813],"findRootLiquidity":[32083],"findRootLower":[32129],"findRootRaise":[32175],"muli":[27777],"muliWad":[27795]},"nodeType":"SourceUnit","src":"45:9638:35","nodes":[{"id":31601,"nodeType":"PragmaDirective","src":"45:24:35","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":31602,"nodeType":"ImportDirective","src":"71:34:35","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/tokens/ERC20.sol","file":"solmate/tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":32900,"sourceUnit":25949,"symbolAliases":[],"unitAlias":""},{"id":31603,"nodeType":"ImportDirective","src":"106:36:35","nodes":[],"absolutePath":"src/strategies/G3M/G3M.sol","file":"src/strategies/G3M/G3M.sol","nameLocation":"-1:-1:-1","scope":32900,"sourceUnit":37912,"symbolAliases":[],"unitAlias":""},{"id":31604,"nodeType":"ImportDirective","src":"143:32:35","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/console2.sol","file":"forge-std/console2.sol","nameLocation":"-1:-1:-1","scope":32900,"sourceUnit":25513,"symbolAliases":[],"unitAlias":""},{"id":31605,"nodeType":"ImportDirective","src":"176:29:35","nodes":[],"absolutePath":"src/solvers/BisectionLib.sol","file":"../BisectionLib.sol","nameLocation":"-1:-1:-1","scope":32900,"sourceUnit":31119,"symbolAliases":[],"unitAlias":""},{"id":31606,"nodeType":"ImportDirective","src":"206:37:35","nodes":[],"absolutePath":"src/lib/SignedWadMath.sol","file":"../../lib/SignedWadMath.sol","nameLocation":"-1:-1:-1","scope":32900,"sourceUnit":30624,"symbolAliases":[],"unitAlias":""},{"id":31609,"nodeType":"UsingForDirective","src":"310:36:35","nodes":[],"global":false,"libraryName":{"id":31607,"name":"FixedPointMathLib","nameLocations":["316:17:35"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"316:17:35"},"typeName":{"id":31608,"name":"uint256","nodeType":"ElementaryTypeName","src":"338:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":31612,"nodeType":"UsingForDirective","src":"347:35:35","nodes":[],"global":false,"libraryName":{"id":31610,"name":"FixedPointMathLib","nameLocations":["353:17:35"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"353:17:35"},"typeName":{"id":31611,"name":"int256","nodeType":"ElementaryTypeName","src":"375:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":31615,"nodeType":"UsingForDirective","src":"383:34:35","nodes":[],"global":false,"libraryName":{"id":31613,"name":"SignedWadMathLib","nameLocations":["389:16:35"],"nodeType":"IdentifierPath","referencedDeclaration":30623,"src":"389:16:35"},"typeName":{"id":31614,"name":"int256","nodeType":"ElementaryTypeName","src":"410:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":31662,"nodeType":"FunctionDefinition","src":"419:260:35","nodes":[],"body":{"id":31661,"nodeType":"Block","src":"531:148:35","nodes":[],"statements":[{"assignments":[31628],"declarations":[{"constant":false,"id":31628,"mutability":"mutable","name":"a","nameLocation":"544:1:35","nodeType":"VariableDeclaration","scope":31661,"src":"537:8:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":31627,"name":"int256","nodeType":"ElementaryTypeName","src":"537:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":31641,"initialValue":{"arguments":[{"arguments":[{"id":31638,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31619,"src":"594:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":31634,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31622,"src":"574:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":31635,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"581:2:35","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"574:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":31631,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31622,"src":"555:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":31632,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"562:2:35","memberName":"wY","nodeType":"MemberAccess","referencedDeclaration":37267,"src":"555:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"565:8:35","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"555:18:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"555:29:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"585:8:35","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"555:38:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"555:41:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"548:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":31629,"name":"int256","nodeType":"ElementaryTypeName","src":"548:6:35","typeDescriptions":{}}},"id":31640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"548:49:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"537:60:35"},{"assignments":[31643],"declarations":[{"constant":false,"id":31643,"mutability":"mutable","name":"b","nameLocation":"610:1:35","nodeType":"VariableDeclaration","scope":31661,"src":"603:8:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":31642,"name":"int256","nodeType":"ElementaryTypeName","src":"603:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":31652,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":31648,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31622,"src":"630:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":31649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"637:2:35","memberName":"wY","nodeType":"MemberAccess","referencedDeclaration":37267,"src":"630:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31647,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"623:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":31646,"name":"int256","nodeType":"ElementaryTypeName","src":"623:6:35","typeDescriptions":{}}},"id":31650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"623:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":31644,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31628,"src":"614:1:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":31645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"616:6:35","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"614:8:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":31651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"614:27:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"603:38:35"},{"expression":{"arguments":[{"arguments":[{"id":31657,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31643,"src":"673:1:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":31656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"665:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":31655,"name":"uint256","nodeType":"ElementaryTypeName","src":"665:7:35","typeDescriptions":{}}},"id":31658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"665:10:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31653,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31617,"src":"654:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"656:8:35","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"654:10:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"654:22:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":31626,"id":31660,"nodeType":"Return","src":"647:29:35"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeLGivenX","nameLocation":"428:14:35","parameters":{"id":31623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31617,"mutability":"mutable","name":"x","nameLocation":"456:1:35","nodeType":"VariableDeclaration","scope":31662,"src":"448:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31616,"name":"uint256","nodeType":"ElementaryTypeName","src":"448:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31619,"mutability":"mutable","name":"S","nameLocation":"471:1:35","nodeType":"VariableDeclaration","scope":31662,"src":"463:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31618,"name":"uint256","nodeType":"ElementaryTypeName","src":"463:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31622,"mutability":"mutable","name":"params","nameLocation":"499:6:35","nodeType":"VariableDeclaration","scope":31662,"src":"478:27:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":31621,"nodeType":"UserDefinedTypeName","pathNode":{"id":31620,"name":"G3M.G3MParams","nameLocations":["478:3:35","482:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"478:13:35"},"referencedDeclaration":37272,"src":"478:13:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"src":"442:65:35"},"returnParameters":{"id":31626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31625,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31662,"src":"522:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31624,"name":"uint256","nodeType":"ElementaryTypeName","src":"522:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"521:9:35"},"scope":32900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31688,"nodeType":"FunctionDefinition","src":"681:181:35","nodes":[],"body":{"id":31687,"nodeType":"Block","src":"793:69:35","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":31683,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31666,"src":"856:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":31680,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31669,"src":"837:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":31681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"844:2:35","memberName":"wY","nodeType":"MemberAccess","referencedDeclaration":37267,"src":"837:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"847:8:35","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"837:18:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"837:21:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":31676,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31669,"src":"817:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":31677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"824:2:35","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"817:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31674,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31664,"src":"806:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"808:8:35","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"806:10:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"806:21:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"828:8:35","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"806:30:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"806:53:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":31673,"id":31686,"nodeType":"Return","src":"799:60:35"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeLGivenY","nameLocation":"690:14:35","parameters":{"id":31670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31664,"mutability":"mutable","name":"y","nameLocation":"718:1:35","nodeType":"VariableDeclaration","scope":31688,"src":"710:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31663,"name":"uint256","nodeType":"ElementaryTypeName","src":"710:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31666,"mutability":"mutable","name":"S","nameLocation":"733:1:35","nodeType":"VariableDeclaration","scope":31688,"src":"725:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31665,"name":"uint256","nodeType":"ElementaryTypeName","src":"725:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31669,"mutability":"mutable","name":"params","nameLocation":"761:6:35","nodeType":"VariableDeclaration","scope":31688,"src":"740:27:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":31668,"nodeType":"UserDefinedTypeName","pathNode":{"id":31667,"name":"G3M.G3MParams","nameLocations":["740:3:35","744:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"740:13:35"},"referencedDeclaration":37272,"src":"740:13:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"src":"704:65:35"},"returnParameters":{"id":31673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31672,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31688,"src":"784:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31671,"name":"uint256","nodeType":"ElementaryTypeName","src":"784:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"783:9:35"},"scope":32900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31714,"nodeType":"FunctionDefinition","src":"864:181:35","nodes":[],"body":{"id":31713,"nodeType":"Block","src":"976:69:35","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":31709,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31692,"src":"1039:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":31706,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31695,"src":"1020:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":31707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1027:2:35","memberName":"wY","nodeType":"MemberAccess","referencedDeclaration":37267,"src":"1020:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1030:8:35","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"1020:18:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1020:21:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":31703,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31690,"src":"1008:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":31700,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31695,"src":"989:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":31701,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"996:2:35","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"989:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"999:8:35","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"989:18:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"989:21:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1011:8:35","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"989:30:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"989:53:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":31699,"id":31712,"nodeType":"Return","src":"982:60:35"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeXGivenL","nameLocation":"873:14:35","parameters":{"id":31696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31690,"mutability":"mutable","name":"L","nameLocation":"901:1:35","nodeType":"VariableDeclaration","scope":31714,"src":"893:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31689,"name":"uint256","nodeType":"ElementaryTypeName","src":"893:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31692,"mutability":"mutable","name":"S","nameLocation":"916:1:35","nodeType":"VariableDeclaration","scope":31714,"src":"908:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31691,"name":"uint256","nodeType":"ElementaryTypeName","src":"908:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31695,"mutability":"mutable","name":"params","nameLocation":"944:6:35","nodeType":"VariableDeclaration","scope":31714,"src":"923:27:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":31694,"nodeType":"UserDefinedTypeName","pathNode":{"id":31693,"name":"G3M.G3MParams","nameLocations":["923:3:35","927:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"923:13:35"},"referencedDeclaration":37272,"src":"923:13:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"src":"887:65:35"},"returnParameters":{"id":31699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31698,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31714,"src":"967:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31697,"name":"uint256","nodeType":"ElementaryTypeName","src":"967:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"966:9:35"},"scope":32900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31740,"nodeType":"FunctionDefinition","src":"1047:181:35","nodes":[],"body":{"id":31739,"nodeType":"Block","src":"1159:69:35","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":31735,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31718,"src":"1222:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":31732,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31721,"src":"1203:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":31733,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1210:2:35","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"1203:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1213:8:35","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"1203:18:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1203:21:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":31729,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31716,"src":"1191:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":31726,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31721,"src":"1172:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":31727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1179:2:35","memberName":"wY","nodeType":"MemberAccess","referencedDeclaration":37267,"src":"1172:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1182:8:35","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"1172:18:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1172:21:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1194:8:35","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"1172:30:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1172:53:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":31725,"id":31738,"nodeType":"Return","src":"1165:60:35"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeYGivenL","nameLocation":"1056:14:35","parameters":{"id":31722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31716,"mutability":"mutable","name":"L","nameLocation":"1084:1:35","nodeType":"VariableDeclaration","scope":31740,"src":"1076:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31715,"name":"uint256","nodeType":"ElementaryTypeName","src":"1076:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31718,"mutability":"mutable","name":"S","nameLocation":"1099:1:35","nodeType":"VariableDeclaration","scope":31740,"src":"1091:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31717,"name":"uint256","nodeType":"ElementaryTypeName","src":"1091:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31721,"mutability":"mutable","name":"params","nameLocation":"1127:6:35","nodeType":"VariableDeclaration","scope":31740,"src":"1106:27:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":31720,"nodeType":"UserDefinedTypeName","pathNode":{"id":31719,"name":"G3M.G3MParams","nameLocations":["1106:3:35","1110:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"1106:13:35"},"referencedDeclaration":37272,"src":"1106:13:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"src":"1070:65:35"},"returnParameters":{"id":31725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31724,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31740,"src":"1150:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31723,"name":"uint256","nodeType":"ElementaryTypeName","src":"1150:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1149:9:35"},"scope":32900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31766,"nodeType":"FunctionDefinition","src":"1230:181:35","nodes":[],"body":{"id":31765,"nodeType":"Block","src":"1336:75:35","nodes":[],"statements":[{"expression":{"arguments":[{"id":31762,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31742,"src":"1406:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":31759,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31744,"src":"1392:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":31755,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31747,"src":"1370:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":31756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1377:2:35","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"1370:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":31752,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31747,"src":"1349:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":31753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1356:2:35","memberName":"wY","nodeType":"MemberAccess","referencedDeclaration":37267,"src":"1349:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1359:10:35","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"1349:20:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1349:31:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1381:10:35","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"1349:42:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1349:45:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1395:10:35","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"1349:56:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1349:59:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":31751,"id":31764,"nodeType":"Return","src":"1342:66:35"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeY","nameLocation":"1239:8:35","parameters":{"id":31748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31742,"mutability":"mutable","name":"x","nameLocation":"1261:1:35","nodeType":"VariableDeclaration","scope":31766,"src":"1253:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31741,"name":"uint256","nodeType":"ElementaryTypeName","src":"1253:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31744,"mutability":"mutable","name":"S","nameLocation":"1276:1:35","nodeType":"VariableDeclaration","scope":31766,"src":"1268:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31743,"name":"uint256","nodeType":"ElementaryTypeName","src":"1268:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31747,"mutability":"mutable","name":"params","nameLocation":"1304:6:35","nodeType":"VariableDeclaration","scope":31766,"src":"1283:27:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":31746,"nodeType":"UserDefinedTypeName","pathNode":{"id":31745,"name":"G3M.G3MParams","nameLocations":["1283:3:35","1287:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"1283:13:35"},"referencedDeclaration":37272,"src":"1283:13:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"src":"1247:65:35"},"returnParameters":{"id":31751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31750,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31766,"src":"1327:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31749,"name":"uint256","nodeType":"ElementaryTypeName","src":"1327:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1326:9:35"},"scope":32900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31792,"nodeType":"FunctionDefinition","src":"1413:181:35","nodes":[],"body":{"id":31791,"nodeType":"Block","src":"1519:75:35","nodes":[],"statements":[{"expression":{"arguments":[{"id":31788,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31768,"src":"1589:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[{"id":31784,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31770,"src":"1574:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":31781,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31773,"src":"1553:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":31782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1560:2:35","memberName":"wY","nodeType":"MemberAccess","referencedDeclaration":37267,"src":"1553:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1563:10:35","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"1553:20:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1553:23:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":31778,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31773,"src":"1532:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":31779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1539:2:35","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"1532:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1542:10:35","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"1532:20:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1532:45:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1578:10:35","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"1532:56:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1532:59:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":31777,"id":31790,"nodeType":"Return","src":"1525:66:35"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeX","nameLocation":"1422:8:35","parameters":{"id":31774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31768,"mutability":"mutable","name":"y","nameLocation":"1444:1:35","nodeType":"VariableDeclaration","scope":31792,"src":"1436:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31767,"name":"uint256","nodeType":"ElementaryTypeName","src":"1436:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31770,"mutability":"mutable","name":"S","nameLocation":"1459:1:35","nodeType":"VariableDeclaration","scope":31792,"src":"1451:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31769,"name":"uint256","nodeType":"ElementaryTypeName","src":"1451:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31773,"mutability":"mutable","name":"params","nameLocation":"1487:6:35","nodeType":"VariableDeclaration","scope":31792,"src":"1466:27:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":31772,"nodeType":"UserDefinedTypeName","pathNode":{"id":31771,"name":"G3M.G3MParams","nameLocations":["1466:3:35","1470:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"1466:13:35"},"referencedDeclaration":37272,"src":"1466:13:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"src":"1430:65:35"},"returnParameters":{"id":31777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31776,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31792,"src":"1510:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31775,"name":"uint256","nodeType":"ElementaryTypeName","src":"1510:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1509:9:35"},"scope":32900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31844,"nodeType":"FunctionDefinition","src":"1596:260:35","nodes":[],"body":{"id":31843,"nodeType":"Block","src":"1702:154:35","nodes":[],"statements":[{"assignments":[31805],"declarations":[{"constant":false,"id":31805,"mutability":"mutable","name":"a","nameLocation":"1716:1:35","nodeType":"VariableDeclaration","scope":31843,"src":"1708:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31804,"name":"uint256","nodeType":"ElementaryTypeName","src":"1708:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31820,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":31815,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31799,"src":"1752:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":31816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1759:2:35","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"1752:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1745:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":31813,"name":"int256","nodeType":"ElementaryTypeName","src":"1745:6:35","typeDescriptions":{}}},"id":31817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1745:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":31810,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31794,"src":"1735:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1728:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":31808,"name":"int256","nodeType":"ElementaryTypeName","src":"1728:6:35","typeDescriptions":{}}},"id":31811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1728:9:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":31812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1738:6:35","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"1728:16:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":31818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1728:35:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":31807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1720:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":31806,"name":"uint256","nodeType":"ElementaryTypeName","src":"1720:7:35","typeDescriptions":{}}},"id":31819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1720:44:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1708:56:35"},{"assignments":[31822],"declarations":[{"constant":false,"id":31822,"mutability":"mutable","name":"b","nameLocation":"1778:1:35","nodeType":"VariableDeclaration","scope":31843,"src":"1770:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31821,"name":"uint256","nodeType":"ElementaryTypeName","src":"1770:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31837,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":31832,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31799,"src":"1814:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":31833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1821:2:35","memberName":"wY","nodeType":"MemberAccess","referencedDeclaration":37267,"src":"1814:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1807:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":31830,"name":"int256","nodeType":"ElementaryTypeName","src":"1807:6:35","typeDescriptions":{}}},"id":31834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1807:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":31827,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31796,"src":"1797:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1790:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":31825,"name":"int256","nodeType":"ElementaryTypeName","src":"1790:6:35","typeDescriptions":{}}},"id":31828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1790:9:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":31829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1800:6:35","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"1790:16:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":31835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1790:35:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":31824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1782:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":31823,"name":"uint256","nodeType":"ElementaryTypeName","src":"1782:7:35","typeDescriptions":{}}},"id":31836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1782:44:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1770:56:35"},{"expression":{"arguments":[{"id":31840,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31822,"src":"1851:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31838,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31805,"src":"1840:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1842:8:35","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"1840:10:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1840:13:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":31803,"id":31842,"nodeType":"Return","src":"1833:20:35"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeL","nameLocation":"1605:8:35","parameters":{"id":31800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31794,"mutability":"mutable","name":"x","nameLocation":"1627:1:35","nodeType":"VariableDeclaration","scope":31844,"src":"1619:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31793,"name":"uint256","nodeType":"ElementaryTypeName","src":"1619:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31796,"mutability":"mutable","name":"y","nameLocation":"1642:1:35","nodeType":"VariableDeclaration","scope":31844,"src":"1634:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31795,"name":"uint256","nodeType":"ElementaryTypeName","src":"1634:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31799,"mutability":"mutable","name":"params","nameLocation":"1670:6:35","nodeType":"VariableDeclaration","scope":31844,"src":"1649:27:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":31798,"nodeType":"UserDefinedTypeName","pathNode":{"id":31797,"name":"G3M.G3MParams","nameLocations":["1649:3:35","1653:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"1649:13:35"},"referencedDeclaration":37272,"src":"1649:13:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"src":"1613:65:35"},"returnParameters":{"id":31803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31802,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31844,"src":"1693:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31801,"name":"uint256","nodeType":"ElementaryTypeName","src":"1693:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1692:9:35"},"scope":32900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31906,"nodeType":"FunctionDefinition","src":"1858:513:35","nodes":[],"body":{"id":31905,"nodeType":"Block","src":"2000:371:35","nodes":[],"statements":[{"assignments":[31857],"declarations":[{"constant":false,"id":31857,"mutability":"mutable","name":"rY","nameLocation":"2014:2:35","nodeType":"VariableDeclaration","scope":31905,"src":"2006:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31856,"name":"uint256","nodeType":"ElementaryTypeName","src":"2006:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31863,"initialValue":{"arguments":[{"id":31859,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31846,"src":"2028:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31860,"name":"initialPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31848,"src":"2037:12:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31861,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31851,"src":"2051:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":31858,"name":"computeY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31766,"src":"2019:8:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,struct G3M.G3MParams memory) pure returns (uint256)"}},"id":31862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2019:39:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2006:52:35"},{"assignments":[31865],"declarations":[{"constant":false,"id":31865,"mutability":"mutable","name":"L","nameLocation":"2072:1:35","nodeType":"VariableDeclaration","scope":31905,"src":"2064:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31864,"name":"uint256","nodeType":"ElementaryTypeName","src":"2064:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31871,"initialValue":{"arguments":[{"id":31867,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31846,"src":"2085:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31868,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31857,"src":"2094:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31869,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31851,"src":"2098:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":31866,"name":"computeL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31844,"src":"2076:8:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,struct G3M.G3MParams memory) pure returns (uint256)"}},"id":31870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2076:29:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2064:41:35"},{"assignments":[31873],"declarations":[{"constant":false,"id":31873,"mutability":"mutable","name":"invariant","nameLocation":"2119:9:35","nodeType":"VariableDeclaration","scope":31905,"src":"2112:16:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":31872,"name":"int256","nodeType":"ElementaryTypeName","src":"2112:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":31881,"initialValue":{"arguments":[{"id":31876,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31846,"src":"2168:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31877,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31857,"src":"2181:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31878,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31865,"src":"2188:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31879,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31851,"src":"2199:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"expression":{"id":31874,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"2139:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":31875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2146:15:35","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":38112,"src":"2139:22:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct G3M.G3MParams memory) pure returns (int256)"}},"id":31880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2164:2:35","2177:2:35","2185:1:35","2191:6:35"],"names":["rX","rY","L","params"],"nodeType":"FunctionCall","src":"2139:69:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"2112:96:35"},{"expression":{"id":31890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31882,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31865,"src":"2215:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":31884,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31846,"src":"2240:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31885,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31857,"src":"2249:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31886,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31873,"src":"2253:9:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":31887,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31865,"src":"2264:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31888,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31851,"src":"2267:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":31883,"name":"computeNextLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32899,"src":"2219:20:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_int256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,int256,uint256,struct G3M.G3MParams memory) pure returns (uint256)"}},"id":31889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2219:55:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2215:59:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31891,"nodeType":"ExpressionStatement","src":"2215:59:35"},{"expression":{"arguments":[{"id":31894,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31846,"src":"2307:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31895,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31857,"src":"2316:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31896,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31865,"src":"2320:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":31897,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31851,"src":"2323:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":31898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2330:2:35","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"2323:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":31899,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31851,"src":"2334:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":31900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2341:7:35","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":37269,"src":"2334:14:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":31901,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31851,"src":"2350:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":31902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2357:10:35","memberName":"controller","nodeType":"MemberAccess","referencedDeclaration":37271,"src":"2350:17:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":31892,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2296:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2300:6:35","memberName":"encode","nodeType":"MemberAccess","src":"2296:10:35","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":31903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2296:72:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":31855,"id":31904,"nodeType":"Return","src":"2281:87:35"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeInitialPoolData","nameLocation":"1867:22:35","parameters":{"id":31852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31846,"mutability":"mutable","name":"amountX","nameLocation":"1903:7:35","nodeType":"VariableDeclaration","scope":31906,"src":"1895:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31845,"name":"uint256","nodeType":"ElementaryTypeName","src":"1895:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31848,"mutability":"mutable","name":"initialPrice","nameLocation":"1924:12:35","nodeType":"VariableDeclaration","scope":31906,"src":"1916:20:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31847,"name":"uint256","nodeType":"ElementaryTypeName","src":"1916:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31851,"mutability":"mutable","name":"params","nameLocation":"1963:6:35","nodeType":"VariableDeclaration","scope":31906,"src":"1942:27:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":31850,"nodeType":"UserDefinedTypeName","pathNode":{"id":31849,"name":"G3M.G3MParams","nameLocations":["1942:3:35","1946:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"1942:13:35"},"referencedDeclaration":37272,"src":"1942:13:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"src":"1889:82:35"},"returnParameters":{"id":31855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31854,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31906,"src":"1986:12:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":31853,"name":"bytes","nodeType":"ElementaryTypeName","src":"1986:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1985:14:35"},"scope":32900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31956,"nodeType":"FunctionDefinition","src":"2452:295:35","nodes":[],"body":{"id":31955,"nodeType":"Block","src":"2575:172:35","nodes":[],"statements":[{"expression":{"id":31953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31919,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31917,"src":"2581:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":31947,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31914,"src":"2726:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":31948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2733:2:35","memberName":"wY","nodeType":"MemberAccess","referencedDeclaration":37267,"src":"2726:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31945,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"2713:3:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2717:8:35","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"2713:12:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2713:23:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2706:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":31943,"name":"int256","nodeType":"ElementaryTypeName","src":"2706:6:35","typeDescriptions":{}}},"id":31950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2706:31:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":31935,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31914,"src":"2675:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":31936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2682:2:35","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"2675:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2668:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":31933,"name":"int256","nodeType":"ElementaryTypeName","src":"2668:6:35","typeDescriptions":{}}},"id":31937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2668:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":31930,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31909,"src":"2657:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2650:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":31928,"name":"int256","nodeType":"ElementaryTypeName","src":"2650:6:35","typeDescriptions":{}}},"id":31931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2650:10:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":31932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2661:6:35","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"2650:17:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":31938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2650:36:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":31927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2642:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":31926,"name":"uint256","nodeType":"ElementaryTypeName","src":"2642:7:35","typeDescriptions":{}}},"id":31939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2642:45:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31924,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31911,"src":"2623:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2633:8:35","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"2623:18:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2623:65:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2603:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":31922,"name":"int256","nodeType":"ElementaryTypeName","src":"2603:6:35","typeDescriptions":{}}},"id":31941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2603:95:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":31942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2699:6:35","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"2603:102:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":31951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2603:135:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":31921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2586:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":31920,"name":"uint256","nodeType":"ElementaryTypeName","src":"2586:7:35","typeDescriptions":{}}},"id":31952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2586:158:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2581:163:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31954,"nodeType":"ExpressionStatement","src":"2581:163:35"}]},"documentation":{"id":31907,"nodeType":"StructuredDocumentation","src":"2373:79:35","text":"@dev Finds the root of the swapConstant given the independent variable rX."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeNextRy","nameLocation":"2461:13:35","parameters":{"id":31915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31909,"mutability":"mutable","name":"rX","nameLocation":"2488:2:35","nodeType":"VariableDeclaration","scope":31956,"src":"2480:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31908,"name":"uint256","nodeType":"ElementaryTypeName","src":"2480:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31911,"mutability":"mutable","name":"liquidity","nameLocation":"2504:9:35","nodeType":"VariableDeclaration","scope":31956,"src":"2496:17:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31910,"name":"uint256","nodeType":"ElementaryTypeName","src":"2496:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31914,"mutability":"mutable","name":"params","nameLocation":"2540:6:35","nodeType":"VariableDeclaration","scope":31956,"src":"2519:27:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":31913,"nodeType":"UserDefinedTypeName","pathNode":{"id":31912,"name":"G3M.G3MParams","nameLocations":["2519:3:35","2523:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"2519:13:35"},"referencedDeclaration":37272,"src":"2519:13:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"src":"2474:74:35"},"returnParameters":{"id":31918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31917,"mutability":"mutable","name":"rY","nameLocation":"2571:2:35","nodeType":"VariableDeclaration","scope":31956,"src":"2563:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31916,"name":"uint256","nodeType":"ElementaryTypeName","src":"2563:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2562:12:35"},"scope":32900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32006,"nodeType":"FunctionDefinition","src":"2828:295:35","nodes":[],"body":{"id":32005,"nodeType":"Block","src":"2951:172:35","nodes":[],"statements":[{"expression":{"id":32003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31969,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31967,"src":"2957:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":31997,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31964,"src":"3102:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":31998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3109:2:35","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"3102:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31995,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"3089:3:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3093:8:35","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"3089:12:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3089:23:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3082:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":31993,"name":"int256","nodeType":"ElementaryTypeName","src":"3082:6:35","typeDescriptions":{}}},"id":32000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3082:31:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":31985,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31964,"src":"3051:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":31986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3058:2:35","memberName":"wY","nodeType":"MemberAccess","referencedDeclaration":37267,"src":"3051:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3044:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":31983,"name":"int256","nodeType":"ElementaryTypeName","src":"3044:6:35","typeDescriptions":{}}},"id":31987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3044:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":31980,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31959,"src":"3033:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3026:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":31978,"name":"int256","nodeType":"ElementaryTypeName","src":"3026:6:35","typeDescriptions":{}}},"id":31981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3026:10:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":31982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3037:6:35","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"3026:17:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":31988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3026:36:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":31977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3018:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":31976,"name":"uint256","nodeType":"ElementaryTypeName","src":"3018:7:35","typeDescriptions":{}}},"id":31989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3018:45:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31974,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31961,"src":"2999:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3009:8:35","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"2999:18:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":31990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2999:65:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2979:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":31972,"name":"int256","nodeType":"ElementaryTypeName","src":"2979:6:35","typeDescriptions":{}}},"id":31991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2979:95:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":31992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3075:6:35","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"2979:102:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2979:135:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":31971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2962:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":31970,"name":"uint256","nodeType":"ElementaryTypeName","src":"2962:7:35","typeDescriptions":{}}},"id":32002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2962:158:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2957:163:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32004,"nodeType":"ExpressionStatement","src":"2957:163:35"}]},"documentation":{"id":31957,"nodeType":"StructuredDocumentation","src":"2749:79:35","text":"@dev Finds the root of the swapConstant given the independent variable rY."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeNextRx","nameLocation":"2837:13:35","parameters":{"id":31965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31959,"mutability":"mutable","name":"rY","nameLocation":"2864:2:35","nodeType":"VariableDeclaration","scope":32006,"src":"2856:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31958,"name":"uint256","nodeType":"ElementaryTypeName","src":"2856:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31961,"mutability":"mutable","name":"liquidity","nameLocation":"2880:9:35","nodeType":"VariableDeclaration","scope":32006,"src":"2872:17:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31960,"name":"uint256","nodeType":"ElementaryTypeName","src":"2872:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31964,"mutability":"mutable","name":"params","nameLocation":"2916:6:35","nodeType":"VariableDeclaration","scope":32006,"src":"2895:27:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":31963,"nodeType":"UserDefinedTypeName","pathNode":{"id":31962,"name":"G3M.G3MParams","nameLocations":["2895:3:35","2899:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"2895:13:35"},"referencedDeclaration":37272,"src":"2895:13:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"src":"2850:74:35"},"returnParameters":{"id":31968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31967,"mutability":"mutable","name":"rX","nameLocation":"2947:2:35","nodeType":"VariableDeclaration","scope":32006,"src":"2939:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31966,"name":"uint256","nodeType":"ElementaryTypeName","src":"2939:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2938:12:35"},"scope":32900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32043,"nodeType":"FunctionDefinition","src":"3209:234:35","nodes":[],"body":{"id":32042,"nodeType":"Block","src":"3327:116:35","nodes":[],"statements":[{"assignments":[32020],"declarations":[{"constant":false,"id":32020,"mutability":"mutable","name":"n","nameLocation":"3341:1:35","nodeType":"VariableDeclaration","scope":32042,"src":"3333:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32019,"name":"uint256","nodeType":"ElementaryTypeName","src":"3333:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32026,"initialValue":{"arguments":[{"expression":{"id":32023,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32014,"src":"3359:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":32024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3366:2:35","memberName":"wY","nodeType":"MemberAccess","referencedDeclaration":37267,"src":"3359:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32021,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32011,"src":"3345:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3348:10:35","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"3345:13:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3345:24:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3333:36:35"},{"assignments":[32028],"declarations":[{"constant":false,"id":32028,"mutability":"mutable","name":"d","nameLocation":"3383:1:35","nodeType":"VariableDeclaration","scope":32042,"src":"3375:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32027,"name":"uint256","nodeType":"ElementaryTypeName","src":"3375:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32034,"initialValue":{"arguments":[{"expression":{"id":32031,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32014,"src":"3401:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":32032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3408:2:35","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"3401:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32029,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32009,"src":"3387:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3390:10:35","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"3387:13:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3387:24:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3375:36:35"},{"expression":{"id":32040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32035,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32017,"src":"3417:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":32038,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32028,"src":"3438:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32036,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32020,"src":"3425:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3427:10:35","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"3425:12:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3425:15:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3417:23:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32041,"nodeType":"ExpressionStatement","src":"3417:23:35"}]},"documentation":{"id":32007,"nodeType":"StructuredDocumentation","src":"3125:84:35","text":"@dev Computes the approximated spot price given current reserves and liquidity."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computePrice","nameLocation":"3218:12:35","parameters":{"id":32015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32009,"mutability":"mutable","name":"rX","nameLocation":"3244:2:35","nodeType":"VariableDeclaration","scope":32043,"src":"3236:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32008,"name":"uint256","nodeType":"ElementaryTypeName","src":"3236:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32011,"mutability":"mutable","name":"rY","nameLocation":"3260:2:35","nodeType":"VariableDeclaration","scope":32043,"src":"3252:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32010,"name":"uint256","nodeType":"ElementaryTypeName","src":"3252:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32014,"mutability":"mutable","name":"params","nameLocation":"3289:6:35","nodeType":"VariableDeclaration","scope":32043,"src":"3268:27:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":32013,"nodeType":"UserDefinedTypeName","pathNode":{"id":32012,"name":"G3M.G3MParams","nameLocations":["3268:3:35","3272:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"3268:13:35"},"referencedDeclaration":37272,"src":"3268:13:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"src":"3230:67:35"},"returnParameters":{"id":32018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32017,"mutability":"mutable","name":"price","nameLocation":"3320:5:35","nodeType":"VariableDeclaration","scope":32043,"src":"3312:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32016,"name":"uint256","nodeType":"ElementaryTypeName","src":"3312:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3311:15:35"},"scope":32900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32083,"nodeType":"FunctionDefinition","src":"3702:299:35","nodes":[],"body":{"id":32082,"nodeType":"Block","src":"3791:210:35","nodes":[],"statements":[{"assignments":[32054,32056,null,32059],"declarations":[{"constant":false,"id":32054,"mutability":"mutable","name":"rX","nameLocation":"3806:2:35","nodeType":"VariableDeclaration","scope":32082,"src":"3798:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32053,"name":"uint256","nodeType":"ElementaryTypeName","src":"3798:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32056,"mutability":"mutable","name":"rY","nameLocation":"3818:2:35","nodeType":"VariableDeclaration","scope":32082,"src":"3810:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32055,"name":"uint256","nodeType":"ElementaryTypeName","src":"3810:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":32059,"mutability":"mutable","name":"params","nameLocation":"3844:6:35","nodeType":"VariableDeclaration","scope":32082,"src":"3823:27:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":32058,"nodeType":"UserDefinedTypeName","pathNode":{"id":32057,"name":"G3M.G3MParams","nameLocations":["3823:3:35","3827:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"3823:13:35"},"referencedDeclaration":37272,"src":"3823:13:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"id":32073,"initialValue":{"arguments":[{"id":32062,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32046,"src":"3873:4:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":32064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3880:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32063,"name":"uint256","nodeType":"ElementaryTypeName","src":"3880:7:35","typeDescriptions":{}}},{"id":32066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3889:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32065,"name":"uint256","nodeType":"ElementaryTypeName","src":"3889:7:35","typeDescriptions":{}}},{"id":32068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3898:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":32067,"name":"int256","nodeType":"ElementaryTypeName","src":"3898:6:35","typeDescriptions":{}}},{"expression":{"id":32069,"name":"G3M","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37911,"src":"3906:3:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3M_$37911_$","typeString":"type(contract G3M)"}},"id":32070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3910:9:35","memberName":"G3MParams","nodeType":"MemberAccess","referencedDeclaration":37272,"src":"3906:13:35","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}}],"id":32071,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3879:41:35","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_int256_$_$_t_type$_t_struct$_G3MParams_$37272_storage_ptr_$_$","typeString":"tuple(type(uint256),type(uint256),type(int256),type(struct G3M.G3MParams storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_int256_$_$_t_type$_t_struct$_G3MParams_$37272_storage_ptr_$_$","typeString":"tuple(type(uint256),type(uint256),type(int256),type(struct G3M.G3MParams storage pointer))"}],"expression":{"id":32060,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3862:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":32061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3866:6:35","memberName":"decode","nodeType":"MemberAccess","src":"3862:10:35","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":32072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3862:59:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_int256_$_t_struct$_G3MParams_$37272_memory_ptr_$","typeString":"tuple(uint256,uint256,int256,struct G3M.G3MParams memory)"}},"nodeType":"VariableDeclarationStatement","src":"3797:124:35"},{"expression":{"arguments":[{"id":32076,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32054,"src":"3963:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32077,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32056,"src":"3971:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32078,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32048,"src":"3978:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32079,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32059,"src":"3989:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"expression":{"id":32074,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"3934:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":32075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3941:15:35","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":38112,"src":"3934:22:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct G3M.G3MParams memory) pure returns (int256)"}},"id":32080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3959:2:35","3967:2:35","3975:1:35","3981:6:35"],"names":["rX","rY","L","params"],"nodeType":"FunctionCall","src":"3934:64:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":32052,"id":32081,"nodeType":"Return","src":"3927:71:35"}]},"documentation":{"id":32044,"nodeType":"StructuredDocumentation","src":"3444:257:35","text":"@dev This is a pure anonymous function defined at the file level, which allows\n it to be passed as an argument to another function. BisectionLib.sol takes this\n function as an argument to find the root of the trading function given the liquidity."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"findRootLiquidity","nameLocation":"3711:17:35","parameters":{"id":32049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32046,"mutability":"mutable","name":"data","nameLocation":"3747:4:35","nodeType":"VariableDeclaration","scope":32083,"src":"3734:17:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32045,"name":"bytes","nodeType":"ElementaryTypeName","src":"3734:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":32048,"mutability":"mutable","name":"L","nameLocation":"3765:1:35","nodeType":"VariableDeclaration","scope":32083,"src":"3757:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32047,"name":"uint256","nodeType":"ElementaryTypeName","src":"3757:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3728:40:35"},"returnParameters":{"id":32052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32083,"src":"3783:6:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32050,"name":"int256","nodeType":"ElementaryTypeName","src":"3783:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3782:8:35"},"scope":32900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32129,"nodeType":"FunctionDefinition","src":"4003:311:35","nodes":[],"body":{"id":32128,"nodeType":"Block","src":"4078:236:35","nodes":[],"statements":[{"assignments":[32093,32095,32097,32099,32102],"declarations":[{"constant":false,"id":32093,"mutability":"mutable","name":"S","nameLocation":"4093:1:35","nodeType":"VariableDeclaration","scope":32128,"src":"4085:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32092,"name":"uint256","nodeType":"ElementaryTypeName","src":"4085:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32095,"mutability":"mutable","name":"rX","nameLocation":"4104:2:35","nodeType":"VariableDeclaration","scope":32128,"src":"4096:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32094,"name":"uint256","nodeType":"ElementaryTypeName","src":"4096:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32097,"mutability":"mutable","name":"rY","nameLocation":"4116:2:35","nodeType":"VariableDeclaration","scope":32128,"src":"4108:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32096,"name":"uint256","nodeType":"ElementaryTypeName","src":"4108:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32099,"mutability":"mutable","name":"L","nameLocation":"4128:1:35","nodeType":"VariableDeclaration","scope":32128,"src":"4120:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32098,"name":"uint256","nodeType":"ElementaryTypeName","src":"4120:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32102,"mutability":"mutable","name":"params","nameLocation":"4152:6:35","nodeType":"VariableDeclaration","scope":32128,"src":"4131:27:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":32101,"nodeType":"UserDefinedTypeName","pathNode":{"id":32100,"name":"G3M.G3MParams","nameLocations":["4131:3:35","4135:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"4131:13:35"},"referencedDeclaration":37272,"src":"4131:13:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"id":32118,"initialValue":{"arguments":[{"id":32105,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32085,"src":"4177:4:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":32107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4184:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32106,"name":"uint256","nodeType":"ElementaryTypeName","src":"4184:7:35","typeDescriptions":{}}},{"id":32109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4193:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32108,"name":"uint256","nodeType":"ElementaryTypeName","src":"4193:7:35","typeDescriptions":{}}},{"id":32111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4202:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32110,"name":"uint256","nodeType":"ElementaryTypeName","src":"4202:7:35","typeDescriptions":{}}},{"id":32113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4211:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32112,"name":"uint256","nodeType":"ElementaryTypeName","src":"4211:7:35","typeDescriptions":{}}},{"expression":{"id":32114,"name":"G3M","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37911,"src":"4220:3:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3M_$37911_$","typeString":"type(contract G3M)"}},"id":32115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4224:9:35","memberName":"G3MParams","nodeType":"MemberAccess","referencedDeclaration":37272,"src":"4220:13:35","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}}],"id":32116,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4183:51:35","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_struct$_G3MParams_$37272_storage_ptr_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256),type(uint256),type(struct G3M.G3MParams storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_struct$_G3MParams_$37272_storage_ptr_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256),type(uint256),type(struct G3M.G3MParams storage pointer))"}],"expression":{"id":32103,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4166:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":32104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4170:6:35","memberName":"decode","nodeType":"MemberAccess","src":"4166:10:35","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":32117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4166:69:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$","typeString":"tuple(uint256,uint256,uint256,uint256,struct G3M.G3MParams memory)"}},"nodeType":"VariableDeclarationStatement","src":"4084:151:35"},{"expression":{"arguments":[{"id":32120,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32093,"src":"4263:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32121,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32095,"src":"4270:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32122,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32097,"src":"4278:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32123,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32099,"src":"4285:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32124,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32087,"src":"4291:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32125,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32102,"src":"4302:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":32119,"name":"diffLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32419,"src":"4248:9:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256,struct G3M.G3MParams memory) pure returns (int256)"}},"id":32126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["4260:1:35","4266:2:35","4274:2:35","4282:1:35","4288:1:35","4294:6:35"],"names":["S","rX","rY","L","v","params"],"nodeType":"FunctionCall","src":"4248:63:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":32091,"id":32127,"nodeType":"Return","src":"4241:70:35"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"findRootLower","nameLocation":"4012:13:35","parameters":{"id":32088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32085,"mutability":"mutable","name":"data","nameLocation":"4039:4:35","nodeType":"VariableDeclaration","scope":32129,"src":"4026:17:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32084,"name":"bytes","nodeType":"ElementaryTypeName","src":"4026:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":32087,"mutability":"mutable","name":"v","nameLocation":"4053:1:35","nodeType":"VariableDeclaration","scope":32129,"src":"4045:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32086,"name":"uint256","nodeType":"ElementaryTypeName","src":"4045:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4025:30:35"},"returnParameters":{"id":32091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32090,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32129,"src":"4070:6:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32089,"name":"int256","nodeType":"ElementaryTypeName","src":"4070:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4069:8:35"},"scope":32900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32175,"nodeType":"FunctionDefinition","src":"4316:311:35","nodes":[],"body":{"id":32174,"nodeType":"Block","src":"4391:236:35","nodes":[],"statements":[{"assignments":[32139,32141,32143,32145,32148],"declarations":[{"constant":false,"id":32139,"mutability":"mutable","name":"S","nameLocation":"4406:1:35","nodeType":"VariableDeclaration","scope":32174,"src":"4398:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32138,"name":"uint256","nodeType":"ElementaryTypeName","src":"4398:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32141,"mutability":"mutable","name":"rX","nameLocation":"4417:2:35","nodeType":"VariableDeclaration","scope":32174,"src":"4409:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32140,"name":"uint256","nodeType":"ElementaryTypeName","src":"4409:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32143,"mutability":"mutable","name":"rY","nameLocation":"4429:2:35","nodeType":"VariableDeclaration","scope":32174,"src":"4421:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32142,"name":"uint256","nodeType":"ElementaryTypeName","src":"4421:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32145,"mutability":"mutable","name":"L","nameLocation":"4441:1:35","nodeType":"VariableDeclaration","scope":32174,"src":"4433:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32144,"name":"uint256","nodeType":"ElementaryTypeName","src":"4433:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32148,"mutability":"mutable","name":"params","nameLocation":"4465:6:35","nodeType":"VariableDeclaration","scope":32174,"src":"4444:27:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":32147,"nodeType":"UserDefinedTypeName","pathNode":{"id":32146,"name":"G3M.G3MParams","nameLocations":["4444:3:35","4448:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"4444:13:35"},"referencedDeclaration":37272,"src":"4444:13:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"id":32164,"initialValue":{"arguments":[{"id":32151,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32131,"src":"4490:4:35","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":32153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4497:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32152,"name":"uint256","nodeType":"ElementaryTypeName","src":"4497:7:35","typeDescriptions":{}}},{"id":32155,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4506:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32154,"name":"uint256","nodeType":"ElementaryTypeName","src":"4506:7:35","typeDescriptions":{}}},{"id":32157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4515:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32156,"name":"uint256","nodeType":"ElementaryTypeName","src":"4515:7:35","typeDescriptions":{}}},{"id":32159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4524:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32158,"name":"uint256","nodeType":"ElementaryTypeName","src":"4524:7:35","typeDescriptions":{}}},{"expression":{"id":32160,"name":"G3M","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37911,"src":"4533:3:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3M_$37911_$","typeString":"type(contract G3M)"}},"id":32161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4537:9:35","memberName":"G3MParams","nodeType":"MemberAccess","referencedDeclaration":37272,"src":"4533:13:35","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}}],"id":32162,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4496:51:35","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_struct$_G3MParams_$37272_storage_ptr_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256),type(uint256),type(struct G3M.G3MParams storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_struct$_G3MParams_$37272_storage_ptr_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256),type(uint256),type(struct G3M.G3MParams storage pointer))"}],"expression":{"id":32149,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4479:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":32150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4483:6:35","memberName":"decode","nodeType":"MemberAccess","src":"4479:10:35","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":32163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4479:69:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$","typeString":"tuple(uint256,uint256,uint256,uint256,struct G3M.G3MParams memory)"}},"nodeType":"VariableDeclarationStatement","src":"4397:151:35"},{"expression":{"arguments":[{"id":32166,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32139,"src":"4576:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32167,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32141,"src":"4583:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32168,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32143,"src":"4591:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32169,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32145,"src":"4598:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32170,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32133,"src":"4604:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32171,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32148,"src":"4615:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":32165,"name":"diffRaise","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32666,"src":"4561:9:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256,struct G3M.G3MParams memory) pure returns (int256)"}},"id":32172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["4573:1:35","4579:2:35","4587:2:35","4595:1:35","4601:1:35","4607:6:35"],"names":["S","rX","rY","L","v","params"],"nodeType":"FunctionCall","src":"4561:63:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":32137,"id":32173,"nodeType":"Return","src":"4554:70:35"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"findRootRaise","nameLocation":"4325:13:35","parameters":{"id":32134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32131,"mutability":"mutable","name":"data","nameLocation":"4352:4:35","nodeType":"VariableDeclaration","scope":32175,"src":"4339:17:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32130,"name":"bytes","nodeType":"ElementaryTypeName","src":"4339:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":32133,"mutability":"mutable","name":"v","nameLocation":"4366:1:35","nodeType":"VariableDeclaration","scope":32175,"src":"4358:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32132,"name":"uint256","nodeType":"ElementaryTypeName","src":"4358:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4338:30:35"},"returnParameters":{"id":32137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32136,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32175,"src":"4383:6:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32135,"name":"int256","nodeType":"ElementaryTypeName","src":"4383:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4382:8:35"},"scope":32900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32419,"nodeType":"FunctionDefinition","src":"4677:1475:35","nodes":[],"body":{"id":32418,"nodeType":"Block","src":"4830:1322:35","nodes":[],"statements":[{"assignments":[32194,32196],"declarations":[{"constant":false,"id":32194,"mutability":"mutable","name":"wx","nameLocation":"4844:2:35","nodeType":"VariableDeclaration","scope":32418,"src":"4837:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32193,"name":"int256","nodeType":"ElementaryTypeName","src":"4837:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":32196,"mutability":"mutable","name":"wy","nameLocation":"4855:2:35","nodeType":"VariableDeclaration","scope":32418,"src":"4848:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32195,"name":"int256","nodeType":"ElementaryTypeName","src":"4848:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32208,"initialValue":{"components":[{"arguments":[{"expression":{"id":32199,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32188,"src":"4869:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":32200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4876:2:35","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"4869:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4862:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":32197,"name":"int256","nodeType":"ElementaryTypeName","src":"4862:6:35","typeDescriptions":{}}},"id":32201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4862:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"arguments":[{"expression":{"id":32204,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32188,"src":"4888:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":32205,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4895:2:35","memberName":"wY","nodeType":"MemberAccess","referencedDeclaration":37267,"src":"4888:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4881:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":32202,"name":"int256","nodeType":"ElementaryTypeName","src":"4881:6:35","typeDescriptions":{}}},"id":32206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4881:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":32207,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4861:38:35","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_int256_$","typeString":"tuple(int256,int256)"}},"nodeType":"VariableDeclarationStatement","src":"4836:63:35"},{"assignments":[32210],"declarations":[{"constant":false,"id":32210,"mutability":"mutable","name":"gamma","nameLocation":"4913:5:35","nodeType":"VariableDeclaration","scope":32418,"src":"4905:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32209,"name":"uint256","nodeType":"ElementaryTypeName","src":"4905:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32215,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32211,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"4921:3:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":32212,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32188,"src":"4927:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":32213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4934:7:35","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":37269,"src":"4927:14:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4921:20:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4905:36:35"},{"assignments":[32217],"declarations":[{"constant":false,"id":32217,"mutability":"mutable","name":"yOverX","nameLocation":"4954:6:35","nodeType":"VariableDeclaration","scope":32418,"src":"4947:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32216,"name":"int256","nodeType":"ElementaryTypeName","src":"4947:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32225,"initialValue":{"arguments":[{"arguments":[{"id":32222,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32179,"src":"4984:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32220,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32181,"src":"4970:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4973:10:35","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"4970:13:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4970:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4963:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":32218,"name":"int256","nodeType":"ElementaryTypeName","src":"4963:6:35","typeDescriptions":{}}},"id":32224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4963:25:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"4947:41:35"},{"assignments":[32227],"declarations":[{"constant":false,"id":32227,"mutability":"mutable","name":"yOverXPowWx","nameLocation":"5002:11:35","nodeType":"VariableDeclaration","scope":32418,"src":"4994:19:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32226,"name":"uint256","nodeType":"ElementaryTypeName","src":"4994:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32235,"initialValue":{"arguments":[{"arguments":[{"id":32232,"name":"wx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32194,"src":"5038:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":32230,"name":"yOverX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32217,"src":"5024:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5031:6:35","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"5024:13:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5024:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":32229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5016:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32228,"name":"uint256","nodeType":"ElementaryTypeName","src":"5016:7:35","typeDescriptions":{}}},"id":32234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5016:26:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4994:48:35"},{"assignments":[32237],"declarations":[{"constant":false,"id":32237,"mutability":"mutable","name":"yOverXPowWy","nameLocation":"5056:11:35","nodeType":"VariableDeclaration","scope":32418,"src":"5048:19:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32236,"name":"uint256","nodeType":"ElementaryTypeName","src":"5048:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32245,"initialValue":{"arguments":[{"arguments":[{"id":32242,"name":"wy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32196,"src":"5092:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":32240,"name":"yOverX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32217,"src":"5078:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5085:6:35","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"5078:13:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5078:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":32239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5070:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32238,"name":"uint256","nodeType":"ElementaryTypeName","src":"5070:7:35","typeDescriptions":{}}},"id":32244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5070:26:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5048:48:35"},{"assignments":[32247],"declarations":[{"constant":false,"id":32247,"mutability":"mutable","name":"numerator","nameLocation":"5111:9:35","nodeType":"VariableDeclaration","scope":32418,"src":"5103:17:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32246,"name":"uint256","nodeType":"ElementaryTypeName","src":"5103:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32248,"nodeType":"VariableDeclarationStatement","src":"5103:17:35"},{"id":32345,"nodeType":"Block","src":"5126:591:35","statements":[{"assignments":[32250],"declarations":[{"constant":false,"id":32250,"mutability":"mutable","name":"first","nameLocation":"5144:5:35","nodeType":"VariableDeclaration","scope":32345,"src":"5136:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32249,"name":"uint256","nodeType":"ElementaryTypeName","src":"5136:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32262,"initialValue":{"arguments":[{"id":32260,"name":"yOverXPowWx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32227,"src":"5214:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":32257,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32179,"src":"5199:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":32253,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32188,"src":"5177:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":32254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5184:2:35","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"5177:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32251,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32183,"src":"5164:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5166:10:35","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"5164:12:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5164:23:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5188:10:35","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"5164:34:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5164:38:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5203:10:35","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"5164:49:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5164:62:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5136:90:35"},{"assignments":[32264],"declarations":[{"constant":false,"id":32264,"mutability":"mutable","name":"second","nameLocation":"5244:6:35","nodeType":"VariableDeclaration","scope":32345,"src":"5236:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32263,"name":"uint256","nodeType":"ElementaryTypeName","src":"5236:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32283,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32279,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"5327:3:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":32280,"name":"gamma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32210,"src":"5333:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5327:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":32276,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32181,"src":"5299:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32265,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32185,"src":"5254:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"expression":{"id":32268,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32188,"src":"5271:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":32269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5278:2:35","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"5271:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32266,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32185,"src":"5258:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5260:10:35","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"5258:12:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5258:23:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5254:27:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":32272,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32179,"src":"5284:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5254:32:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":32274,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5253:34:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5288:10:35","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"5253:45:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5253:49:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5316:10:35","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"5253:73:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5253:86:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5236:103:35"},{"assignments":[32285],"declarations":[{"constant":false,"id":32285,"mutability":"mutable","name":"third","nameLocation":"5357:5:35","nodeType":"VariableDeclaration","scope":32345,"src":"5349:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32284,"name":"uint256","nodeType":"ElementaryTypeName","src":"5349:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32299,"initialValue":{"arguments":[{"arguments":[{"id":32296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"5395:3:35","subExpression":{"id":32295,"name":"wx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32194,"src":"5396:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32290,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32185,"src":"5380:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":32291,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32179,"src":"5384:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5380:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5373:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":32288,"name":"int256","nodeType":"ElementaryTypeName","src":"5373:6:35","typeDescriptions":{}}},"id":32293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5373:14:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5388:6:35","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"5373:21:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5373:26:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":32287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5365:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32286,"name":"uint256","nodeType":"ElementaryTypeName","src":"5365:7:35","typeDescriptions":{}}},"id":32298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5365:35:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5349:51:35"},{"assignments":[32301],"declarations":[{"constant":false,"id":32301,"mutability":"mutable","name":"fourth","nameLocation":"5418:6:35","nodeType":"VariableDeclaration","scope":32345,"src":"5410:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32300,"name":"uint256","nodeType":"ElementaryTypeName","src":"5410:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32313,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32302,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32183,"src":"5427:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32308,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"5468:3:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":32309,"name":"gamma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32210,"src":"5474:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5468:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":32305,"name":"yOverXPowWy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32237,"src":"5444:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32303,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32185,"src":"5431:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5433:10:35","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"5431:12:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5431:25:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5457:10:35","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"5431:36:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5431:49:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5427:53:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5410:70:35"},{"expression":{"id":32343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32314,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32247,"src":"5490:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32334,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"5651:3:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":32335,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32188,"src":"5657:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":32336,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5664:2:35","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"5657:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5651:15:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32332,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"5636:3:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5640:10:35","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"5636:14:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5636:31:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5629:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":32330,"name":"int256","nodeType":"ElementaryTypeName","src":"5629:6:35","typeDescriptions":{}}},"id":32339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5629:39:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"arguments":[{"id":32326,"name":"fourth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32301,"src":"5592:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32324,"name":"third","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32285,"src":"5575:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5581:10:35","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"5575:16:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5575:24:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5568:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":32322,"name":"int256","nodeType":"ElementaryTypeName","src":"5568:6:35","typeDescriptions":{}}},"id":32328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5568:32:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5601:6:35","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"5568:39:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5568:118:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":32321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5543:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32320,"name":"uint256","nodeType":"ElementaryTypeName","src":"5543:7:35","typeDescriptions":{}}},"id":32341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5543:157:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32315,"name":"first","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32250,"src":"5503:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":32316,"name":"second","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32264,"src":"5511:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5503:14:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":32318,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5502:16:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5519:10:35","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"5502:27:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5502:208:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5490:220:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32344,"nodeType":"ExpressionStatement","src":"5490:220:35"}]},{"assignments":[32347],"declarations":[{"constant":false,"id":32347,"mutability":"mutable","name":"denominator","nameLocation":"5731:11:35","nodeType":"VariableDeclaration","scope":32418,"src":"5723:19:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32346,"name":"uint256","nodeType":"ElementaryTypeName","src":"5723:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32348,"nodeType":"VariableDeclarationStatement","src":"5723:19:35"},{"id":32399,"nodeType":"Block","src":"5748:306:35","statements":[{"assignments":[32350],"declarations":[{"constant":false,"id":32350,"mutability":"mutable","name":"dFirst","nameLocation":"5766:6:35","nodeType":"VariableDeclaration","scope":32399,"src":"5758:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32349,"name":"uint256","nodeType":"ElementaryTypeName","src":"5758:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32355,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32351,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"5775:3:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":32352,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32188,"src":"5781:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":32353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5788:2:35","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"5781:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5775:15:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5758:32:35"},{"assignments":[32357],"declarations":[{"constant":false,"id":32357,"mutability":"mutable","name":"dSecond","nameLocation":"5808:7:35","nodeType":"VariableDeclaration","scope":32399,"src":"5800:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32356,"name":"uint256","nodeType":"ElementaryTypeName","src":"5800:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32361,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32358,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32185,"src":"5818:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":32359,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32179,"src":"5822:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5818:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5800:24:35"},{"assignments":[32363],"declarations":[{"constant":false,"id":32363,"mutability":"mutable","name":"dThird","nameLocation":"5842:6:35","nodeType":"VariableDeclaration","scope":32399,"src":"5834:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32362,"name":"uint256","nodeType":"ElementaryTypeName","src":"5834:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32374,"initialValue":{"arguments":[{"arguments":[{"id":32371,"name":"yOverXPowWx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32227,"src":"5887:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5879:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32369,"name":"uint256","nodeType":"ElementaryTypeName","src":"5879:7:35","typeDescriptions":{}}},"id":32372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5879:20:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":32366,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32179,"src":"5864:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32364,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32183,"src":"5851:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5853:10:35","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"5851:12:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5851:16:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5868:10:35","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"5851:27:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5851:49:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5834:66:35"},{"assignments":[32376],"declarations":[{"constant":false,"id":32376,"mutability":"mutable","name":"dFourth","nameLocation":"5918:7:35","nodeType":"VariableDeclaration","scope":32399,"src":"5910:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32375,"name":"uint256","nodeType":"ElementaryTypeName","src":"5910:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32386,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32382,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"5956:3:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":32383,"name":"gamma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32210,"src":"5962:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5956:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":32379,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32181,"src":"5941:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32377,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32185,"src":"5928:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5930:10:35","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"5928:12:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5928:16:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5945:10:35","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"5928:27:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5928:40:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5910:58:35"},{"expression":{"id":32397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32387,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32347,"src":"5978:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32393,"name":"dThird","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32363,"src":"6030:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":32394,"name":"dFourth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32376,"src":"6039:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6030:16:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":32390,"name":"dSecond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32357,"src":"6010:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32388,"name":"dFirst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32350,"src":"5992:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5999:10:35","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"5992:17:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5992:26:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6019:10:35","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"5992:37:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5992:55:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5978:69:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32398,"nodeType":"ExpressionStatement","src":"5978:69:35"}]},{"assignments":[32401],"declarations":[{"constant":false,"id":32401,"mutability":"mutable","name":"result","nameLocation":"6067:6:35","nodeType":"VariableDeclaration","scope":32418,"src":"6060:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32400,"name":"int256","nodeType":"ElementaryTypeName","src":"6060:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32415,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":32414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"6076:10:35","subExpression":{"arguments":[{"id":32404,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32177,"src":"6084:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6077:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":32402,"name":"int256","nodeType":"ElementaryTypeName","src":"6077:6:35","typeDescriptions":{}}},"id":32405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6077:9:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"arguments":[{"id":32411,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32347,"src":"6117:11:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32409,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32247,"src":"6096:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6106:10:35","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"6096:20:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6096:33:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6089:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":32407,"name":"int256","nodeType":"ElementaryTypeName","src":"6089:6:35","typeDescriptions":{}}},"id":32413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6089:41:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6076:54:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6060:70:35"},{"expression":{"id":32416,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32401,"src":"6143:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":32192,"id":32417,"nodeType":"Return","src":"6136:13:35"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"diffLower","nameLocation":"4686:9:35","parameters":{"id":32189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32177,"mutability":"mutable","name":"S","nameLocation":"4709:1:35","nodeType":"VariableDeclaration","scope":32419,"src":"4701:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32176,"name":"uint256","nodeType":"ElementaryTypeName","src":"4701:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32179,"mutability":"mutable","name":"rX","nameLocation":"4724:2:35","nodeType":"VariableDeclaration","scope":32419,"src":"4716:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32178,"name":"uint256","nodeType":"ElementaryTypeName","src":"4716:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32181,"mutability":"mutable","name":"rY","nameLocation":"4740:2:35","nodeType":"VariableDeclaration","scope":32419,"src":"4732:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32180,"name":"uint256","nodeType":"ElementaryTypeName","src":"4732:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32183,"mutability":"mutable","name":"L","nameLocation":"4756:1:35","nodeType":"VariableDeclaration","scope":32419,"src":"4748:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32182,"name":"uint256","nodeType":"ElementaryTypeName","src":"4748:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32185,"mutability":"mutable","name":"v","nameLocation":"4771:1:35","nodeType":"VariableDeclaration","scope":32419,"src":"4763:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32184,"name":"uint256","nodeType":"ElementaryTypeName","src":"4763:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32188,"mutability":"mutable","name":"params","nameLocation":"4799:6:35","nodeType":"VariableDeclaration","scope":32419,"src":"4778:27:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":32187,"nodeType":"UserDefinedTypeName","pathNode":{"id":32186,"name":"G3M.G3MParams","nameLocations":["4778:3:35","4782:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"4778:13:35"},"referencedDeclaration":37272,"src":"4778:13:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"src":"4695:112:35"},"returnParameters":{"id":32192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32191,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32419,"src":"4822:6:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32190,"name":"int256","nodeType":"ElementaryTypeName","src":"4822:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4821:8:35"},"scope":32900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32666,"nodeType":"FunctionDefinition","src":"6154:1447:35","nodes":[],"body":{"id":32665,"nodeType":"Block","src":"6307:1294:35","nodes":[],"statements":[{"assignments":[32438,32440,32442],"declarations":[{"constant":false,"id":32438,"mutability":"mutable","name":"wx","nameLocation":"6321:2:35","nodeType":"VariableDeclaration","scope":32665,"src":"6314:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32437,"name":"int256","nodeType":"ElementaryTypeName","src":"6314:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":32440,"mutability":"mutable","name":"wy","nameLocation":"6332:2:35","nodeType":"VariableDeclaration","scope":32665,"src":"6325:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32439,"name":"int256","nodeType":"ElementaryTypeName","src":"6325:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":32442,"mutability":"mutable","name":"swapFee","nameLocation":"6343:7:35","nodeType":"VariableDeclaration","scope":32665,"src":"6336:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32441,"name":"int256","nodeType":"ElementaryTypeName","src":"6336:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32459,"initialValue":{"components":[{"arguments":[{"expression":{"id":32445,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32432,"src":"6370:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":32446,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6377:2:35","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"6370:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32444,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6363:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":32443,"name":"int256","nodeType":"ElementaryTypeName","src":"6363:6:35","typeDescriptions":{}}},"id":32447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6363:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"arguments":[{"expression":{"id":32450,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32432,"src":"6389:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":32451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6396:2:35","memberName":"wY","nodeType":"MemberAccess","referencedDeclaration":37267,"src":"6389:9:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32449,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6382:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":32448,"name":"int256","nodeType":"ElementaryTypeName","src":"6382:6:35","typeDescriptions":{}}},"id":32452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6382:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"arguments":[{"expression":{"id":32455,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32432,"src":"6408:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":32456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6415:7:35","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":37269,"src":"6408:14:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32454,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6401:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":32453,"name":"int256","nodeType":"ElementaryTypeName","src":"6401:6:35","typeDescriptions":{}}},"id":32457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6401:22:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":32458,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6362:62:35","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_int256_$_t_int256_$","typeString":"tuple(int256,int256,int256)"}},"nodeType":"VariableDeclarationStatement","src":"6313:111:35"},{"assignments":[32461],"declarations":[{"constant":false,"id":32461,"mutability":"mutable","name":"I_ONE","nameLocation":"6437:5:35","nodeType":"VariableDeclaration","scope":32665,"src":"6430:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32460,"name":"int256","nodeType":"ElementaryTypeName","src":"6430:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32466,"initialValue":{"arguments":[{"id":32464,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"6452:3:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6445:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":32462,"name":"int256","nodeType":"ElementaryTypeName","src":"6445:6:35","typeDescriptions":{}}},"id":32465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6445:11:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6430:26:35"},{"assignments":[32468],"declarations":[{"constant":false,"id":32468,"mutability":"mutable","name":"iS","nameLocation":"6469:2:35","nodeType":"VariableDeclaration","scope":32665,"src":"6462:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32467,"name":"int256","nodeType":"ElementaryTypeName","src":"6462:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32473,"initialValue":{"arguments":[{"id":32471,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32421,"src":"6481:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6474:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":32469,"name":"int256","nodeType":"ElementaryTypeName","src":"6474:6:35","typeDescriptions":{}}},"id":32472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6474:9:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6462:21:35"},{"assignments":[32475],"declarations":[{"constant":false,"id":32475,"mutability":"mutable","name":"iX","nameLocation":"6496:2:35","nodeType":"VariableDeclaration","scope":32665,"src":"6489:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32474,"name":"int256","nodeType":"ElementaryTypeName","src":"6489:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32480,"initialValue":{"arguments":[{"id":32478,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32423,"src":"6508:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6501:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":32476,"name":"int256","nodeType":"ElementaryTypeName","src":"6501:6:35","typeDescriptions":{}}},"id":32479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6501:10:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6489:22:35"},{"assignments":[32482],"declarations":[{"constant":false,"id":32482,"mutability":"mutable","name":"iY","nameLocation":"6524:2:35","nodeType":"VariableDeclaration","scope":32665,"src":"6517:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32481,"name":"int256","nodeType":"ElementaryTypeName","src":"6517:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32487,"initialValue":{"arguments":[{"id":32485,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32425,"src":"6536:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6529:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":32483,"name":"int256","nodeType":"ElementaryTypeName","src":"6529:6:35","typeDescriptions":{}}},"id":32486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6529:10:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6517:22:35"},{"assignments":[32489],"declarations":[{"constant":false,"id":32489,"mutability":"mutable","name":"iL","nameLocation":"6552:2:35","nodeType":"VariableDeclaration","scope":32665,"src":"6545:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32488,"name":"int256","nodeType":"ElementaryTypeName","src":"6545:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32494,"initialValue":{"arguments":[{"id":32492,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32427,"src":"6564:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6557:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":32490,"name":"int256","nodeType":"ElementaryTypeName","src":"6557:6:35","typeDescriptions":{}}},"id":32493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6557:9:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6545:21:35"},{"assignments":[32496],"declarations":[{"constant":false,"id":32496,"mutability":"mutable","name":"iV","nameLocation":"6579:2:35","nodeType":"VariableDeclaration","scope":32665,"src":"6572:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32495,"name":"int256","nodeType":"ElementaryTypeName","src":"6572:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32501,"initialValue":{"arguments":[{"id":32499,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32429,"src":"6591:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6584:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":32497,"name":"int256","nodeType":"ElementaryTypeName","src":"6584:6:35","typeDescriptions":{}}},"id":32500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6584:9:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6572:21:35"},{"assignments":[32503],"declarations":[{"constant":false,"id":32503,"mutability":"mutable","name":"gamma","nameLocation":"6606:5:35","nodeType":"VariableDeclaration","scope":32665,"src":"6599:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32502,"name":"int256","nodeType":"ElementaryTypeName","src":"6599:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32507,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":32506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32504,"name":"I_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32461,"src":"6614:5:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":32505,"name":"swapFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32442,"src":"6622:7:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6614:15:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6599:30:35"},{"assignments":[32509],"declarations":[{"constant":false,"id":32509,"mutability":"mutable","name":"vPlusYPow","nameLocation":"6643:9:35","nodeType":"VariableDeclaration","scope":32665,"src":"6636:16:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32508,"name":"int256","nodeType":"ElementaryTypeName","src":"6636:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32520,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":32518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"6672:6:35","subExpression":{"id":32515,"name":"I_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32461,"src":"6673:5:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":32517,"name":"wx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32438,"src":"6681:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6672:11:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":32512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32510,"name":"iV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32496,"src":"6656:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":32511,"name":"iY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32482,"src":"6661:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6656:7:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":32513,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6655:9:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6665:6:35","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"6655:16:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6655:29:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6636:48:35"},{"assignments":[32522],"declarations":[{"constant":false,"id":32522,"mutability":"mutable","name":"xOverYPowWx","nameLocation":"6698:11:35","nodeType":"VariableDeclaration","scope":32665,"src":"6691:18:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32521,"name":"int256","nodeType":"ElementaryTypeName","src":"6691:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32531,"initialValue":{"arguments":[{"id":32529,"name":"wx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32438,"src":"6735:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"components":[{"arguments":[{"id":32525,"name":"iY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32482,"src":"6723:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":32523,"name":"iX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32475,"src":"6713:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6716:6:35","memberName":"wadDiv","nodeType":"MemberAccess","referencedDeclaration":30175,"src":"6713:9:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6713:13:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":32527,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6712:15:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6728:6:35","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"6712:22:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6712:26:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6691:47:35"},{"assignments":[32533],"declarations":[{"constant":false,"id":32533,"mutability":"mutable","name":"vTimesXOverYPowWx","nameLocation":"6751:17:35","nodeType":"VariableDeclaration","scope":32665,"src":"6744:24:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32532,"name":"int256","nodeType":"ElementaryTypeName","src":"6744:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32538,"initialValue":{"arguments":[{"id":32536,"name":"xOverYPowWx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32522,"src":"6781:11:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":32534,"name":"iV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32496,"src":"6771:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6774:6:35","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"6771:9:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6771:22:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6744:49:35"},{"assignments":[32540],"declarations":[{"constant":false,"id":32540,"mutability":"mutable","name":"lMinusVTimesXOverYPowWx","nameLocation":"6806:23:35","nodeType":"VariableDeclaration","scope":32665,"src":"6799:30:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32539,"name":"int256","nodeType":"ElementaryTypeName","src":"6799:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32550,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":32549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32541,"name":"iL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32489,"src":"6840:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":32547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"6870:6:35","subExpression":{"id":32544,"name":"I_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32461,"src":"6871:5:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":32546,"name":"gamma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32503,"src":"6879:5:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6870:14:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":32542,"name":"vTimesXOverYPowWx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32533,"src":"6845:17:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6863:6:35","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"6845:24:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6845:40:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6840:45:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6799:86:35"},{"assignments":[32552],"declarations":[{"constant":false,"id":32552,"mutability":"mutable","name":"numerator","nameLocation":"6899:9:35","nodeType":"VariableDeclaration","scope":32665,"src":"6892:16:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32551,"name":"int256","nodeType":"ElementaryTypeName","src":"6892:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32553,"nodeType":"VariableDeclarationStatement","src":"6892:16:35"},{"id":32626,"nodeType":"Block","src":"6914:446:35","statements":[{"assignments":[32555],"declarations":[{"constant":false,"id":32555,"mutability":"mutable","name":"first","nameLocation":"6931:5:35","nodeType":"VariableDeclaration","scope":32626,"src":"6924:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32554,"name":"int256","nodeType":"ElementaryTypeName","src":"6924:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32562,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":32560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32558,"name":"iV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32496,"src":"6949:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":32559,"name":"iY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32482,"src":"6954:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6949:7:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":32556,"name":"wx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32438,"src":"6939:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6942:6:35","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"6939:9:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6939:18:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6924:33:35"},{"assignments":[32564],"declarations":[{"constant":false,"id":32564,"mutability":"mutable","name":"second","nameLocation":"6974:6:35","nodeType":"VariableDeclaration","scope":32626,"src":"6967:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32563,"name":"int256","nodeType":"ElementaryTypeName","src":"6967:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32566,"initialValue":{"id":32565,"name":"lMinusVTimesXOverYPowWx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32540,"src":"6983:23:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6967:39:35"},{"assignments":[32568],"declarations":[{"constant":false,"id":32568,"mutability":"mutable","name":"third","nameLocation":"7023:5:35","nodeType":"VariableDeclaration","scope":32626,"src":"7016:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32567,"name":"int256","nodeType":"ElementaryTypeName","src":"7016:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32580,"initialValue":{"arguments":[{"arguments":[{"id":32577,"name":"wx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32438,"src":"7107:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":32575,"name":"I_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32461,"src":"7094:5:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7100:6:35","memberName":"wadDiv","nodeType":"MemberAccess","referencedDeclaration":30175,"src":"7094:12:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7094:16:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"components":[{"arguments":[{"id":32571,"name":"lMinusVTimesXOverYPowWx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32540,"src":"7061:23:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":32569,"name":"vPlusYPow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32509,"src":"7044:9:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7054:6:35","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"7044:16:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7044:41:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":32573,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7043:43:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7087:6:35","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"7043:50:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7043:68:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"7016:95:35"},{"assignments":[32582],"declarations":[{"constant":false,"id":32582,"mutability":"mutable","name":"fourth","nameLocation":"7128:6:35","nodeType":"VariableDeclaration","scope":32626,"src":"7121:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32581,"name":"int256","nodeType":"ElementaryTypeName","src":"7121:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32590,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":32588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"7147:6:35","subExpression":{"id":32585,"name":"I_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32461,"src":"7148:5:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":32587,"name":"wx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32438,"src":"7156:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7147:11:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":32583,"name":"iL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32489,"src":"7137:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7140:6:35","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"7137:9:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7137:22:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"7121:38:35"},{"assignments":[32592],"declarations":[{"constant":false,"id":32592,"mutability":"mutable","name":"fifth","nameLocation":"7176:5:35","nodeType":"VariableDeclaration","scope":32626,"src":"7169:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32591,"name":"int256","nodeType":"ElementaryTypeName","src":"7169:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32608,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":32606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"7242:6:35","subExpression":{"id":32603,"name":"I_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32461,"src":"7243:5:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":32605,"name":"gamma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32503,"src":"7251:5:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7242:14:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":32600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":32597,"name":"wx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32438,"src":"7225:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":32595,"name":"iV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32496,"src":"7215:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7218:6:35","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"7215:9:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7215:13:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":32599,"name":"iY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32482,"src":"7231:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7215:18:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":32593,"name":"xOverYPowWx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32522,"src":"7196:11:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7208:6:35","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"7196:18:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7196:38:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7235:6:35","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"7196:45:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7196:61:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"7169:88:35"},{"expression":{"id":32624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32609,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32552,"src":"7267:9:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":32623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":32612,"name":"second","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32564,"src":"7304:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":32610,"name":"first","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32555,"src":"7291:5:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7297:6:35","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"7291:12:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7291:20:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":32621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32619,"name":"fourth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32582,"src":"7338:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":32620,"name":"fifth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32592,"src":"7347:5:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7338:14:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":32616,"name":"third","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32568,"src":"7324:5:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":32614,"name":"iS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32468,"src":"7314:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7317:6:35","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"7314:9:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7314:16:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7331:6:35","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"7314:23:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7314:39:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7291:62:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7267:86:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32625,"nodeType":"ExpressionStatement","src":"7267:86:35"}]},{"assignments":[32628],"declarations":[{"constant":false,"id":32628,"mutability":"mutable","name":"denominator","nameLocation":"7373:11:35","nodeType":"VariableDeclaration","scope":32665,"src":"7366:18:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32627,"name":"int256","nodeType":"ElementaryTypeName","src":"7366:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32629,"nodeType":"VariableDeclarationStatement","src":"7366:18:35"},{"id":32659,"nodeType":"Block","src":"7390:166:35","statements":[{"assignments":[32631],"declarations":[{"constant":false,"id":32631,"mutability":"mutable","name":"first","nameLocation":"7407:5:35","nodeType":"VariableDeclaration","scope":32659,"src":"7400:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32630,"name":"int256","nodeType":"ElementaryTypeName","src":"7400:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32638,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":32636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32634,"name":"iV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32496,"src":"7425:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":32635,"name":"iY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32482,"src":"7430:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7425:7:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":32632,"name":"wx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32438,"src":"7415:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7418:6:35","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"7415:9:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7415:18:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"7400:33:35"},{"assignments":[32640],"declarations":[{"constant":false,"id":32640,"mutability":"mutable","name":"second","nameLocation":"7450:6:35","nodeType":"VariableDeclaration","scope":32659,"src":"7443:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32639,"name":"int256","nodeType":"ElementaryTypeName","src":"7443:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32651,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":32650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"7459:3:35","subExpression":{"id":32641,"name":"iL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32489,"src":"7460:2:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":32648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"7490:6:35","subExpression":{"id":32645,"name":"I_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32461,"src":"7491:5:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":32647,"name":"gamma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32503,"src":"7499:5:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7490:14:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":32643,"name":"vTimesXOverYPowWx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32533,"src":"7465:17:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7483:6:35","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"7465:24:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7465:40:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7459:46:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"7443:62:35"},{"expression":{"id":32657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32652,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32628,"src":"7515:11:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":32655,"name":"second","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32640,"src":"7542:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":32653,"name":"first","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32631,"src":"7529:5:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7535:6:35","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"7529:12:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7529:20:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7515:34:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32658,"nodeType":"ExpressionStatement","src":"7515:34:35"}]},{"expression":{"arguments":[{"id":32662,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32628,"src":"7586:11:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":32660,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32552,"src":"7569:9:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7579:6:35","memberName":"wadDiv","nodeType":"MemberAccess","referencedDeclaration":30175,"src":"7569:16:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":32663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7569:29:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":32436,"id":32664,"nodeType":"Return","src":"7562:36:35"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"diffRaise","nameLocation":"6163:9:35","parameters":{"id":32433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32421,"mutability":"mutable","name":"S","nameLocation":"6186:1:35","nodeType":"VariableDeclaration","scope":32666,"src":"6178:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32420,"name":"uint256","nodeType":"ElementaryTypeName","src":"6178:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32423,"mutability":"mutable","name":"rX","nameLocation":"6201:2:35","nodeType":"VariableDeclaration","scope":32666,"src":"6193:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32422,"name":"uint256","nodeType":"ElementaryTypeName","src":"6193:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32425,"mutability":"mutable","name":"rY","nameLocation":"6217:2:35","nodeType":"VariableDeclaration","scope":32666,"src":"6209:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32424,"name":"uint256","nodeType":"ElementaryTypeName","src":"6209:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32427,"mutability":"mutable","name":"L","nameLocation":"6233:1:35","nodeType":"VariableDeclaration","scope":32666,"src":"6225:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32426,"name":"uint256","nodeType":"ElementaryTypeName","src":"6225:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32429,"mutability":"mutable","name":"v","nameLocation":"6248:1:35","nodeType":"VariableDeclaration","scope":32666,"src":"6240:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32428,"name":"uint256","nodeType":"ElementaryTypeName","src":"6240:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32432,"mutability":"mutable","name":"params","nameLocation":"6276:6:35","nodeType":"VariableDeclaration","scope":32666,"src":"6255:27:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":32431,"nodeType":"UserDefinedTypeName","pathNode":{"id":32430,"name":"G3M.G3MParams","nameLocations":["6255:3:35","6259:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"6255:13:35"},"referencedDeclaration":37272,"src":"6255:13:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"src":"6172:112:35"},"returnParameters":{"id":32436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32435,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32666,"src":"6299:6:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32434,"name":"int256","nodeType":"ElementaryTypeName","src":"6299:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"6298:8:35"},"scope":32900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32732,"nodeType":"FunctionDefinition","src":"7603:507:35","nodes":[],"body":{"id":32731,"nodeType":"Block","src":"7774:336:35","nodes":[],"statements":[{"assignments":[32685],"declarations":[{"constant":false,"id":32685,"mutability":"mutable","name":"upper","nameLocation":"7788:5:35","nodeType":"VariableDeclaration","scope":32731,"src":"7780:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32684,"name":"uint256","nodeType":"ElementaryTypeName","src":"7780:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32687,"initialValue":{"id":32686,"name":"vUpper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32676,"src":"7796:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7780:22:35"},{"assignments":[32689],"declarations":[{"constant":false,"id":32689,"mutability":"mutable","name":"lower","nameLocation":"7816:5:35","nodeType":"VariableDeclaration","scope":32731,"src":"7808:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32688,"name":"uint256","nodeType":"ElementaryTypeName","src":"7808:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32691,"initialValue":{"hexValue":"31303030","id":32690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7824:4:35","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"nodeType":"VariableDeclarationStatement","src":"7808:20:35"},{"assignments":[32693],"declarations":[{"constant":false,"id":32693,"mutability":"mutable","name":"lowerBoundOutput","nameLocation":"7841:16:35","nodeType":"VariableDeclaration","scope":32731,"src":"7834:23:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32692,"name":"int256","nodeType":"ElementaryTypeName","src":"7834:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32702,"initialValue":{"arguments":[{"id":32695,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32668,"src":"7870:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32696,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32670,"src":"7873:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32697,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32672,"src":"7877:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32698,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32674,"src":"7881:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32699,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32689,"src":"7884:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32700,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32679,"src":"7891:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":32694,"name":"diffLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32419,"src":"7860:9:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256,struct G3M.G3MParams memory) pure returns (int256)"}},"id":32701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7860:38:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"7834:64:35"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":32705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32703,"name":"lowerBoundOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32693,"src":"7908:16:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":32704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7927:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7908:20:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32709,"nodeType":"IfStatement","src":"7904:51:35","trueBody":{"id":32708,"nodeType":"Block","src":"7930:25:35","statements":[{"expression":{"hexValue":"30","id":32706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7947:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":32683,"id":32707,"nodeType":"Return","src":"7940:8:35"}]}},{"expression":{"id":32729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32710,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32682,"src":"7960:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":32714,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32668,"src":"7994:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32715,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32670,"src":"7997:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32716,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32672,"src":"8001:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32717,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32674,"src":"8005:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32718,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32679,"src":"8008:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"expression":{"id":32712,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7983:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":32713,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7987:6:35","memberName":"encode","nodeType":"MemberAccess","src":"7983:10:35","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":32719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7983:32:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":32720,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32689,"src":"8025:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32721,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32685,"src":"8040:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"31","id":32724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8063:1:35","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":32723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8055:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32722,"name":"uint256","nodeType":"ElementaryTypeName","src":"8055:7:35","typeDescriptions":{}}},"id":32725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8055:10:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"323536","id":32726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8075:3:35","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},{"id":32727,"name":"findRootLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32129,"src":"8088:13:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$","typeString":"function (bytes memory,uint256) pure returns (int256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$","typeString":"function (bytes memory,uint256) pure returns (int256)"}],"id":32711,"name":"bisection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31118,"src":"7964:9:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$_$returns$_t_uint256_$","typeString":"function (bytes memory,uint256,uint256,uint256,uint256,function (bytes memory,uint256) pure returns (int256)) pure returns (uint256)"}},"id":32728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7964:143:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7960:147:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32730,"nodeType":"ExpressionStatement","src":"7960:147:35"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeOptimalLower","nameLocation":"7612:19:35","parameters":{"id":32680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32668,"mutability":"mutable","name":"S","nameLocation":"7645:1:35","nodeType":"VariableDeclaration","scope":32732,"src":"7637:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32667,"name":"uint256","nodeType":"ElementaryTypeName","src":"7637:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32670,"mutability":"mutable","name":"rX","nameLocation":"7660:2:35","nodeType":"VariableDeclaration","scope":32732,"src":"7652:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32669,"name":"uint256","nodeType":"ElementaryTypeName","src":"7652:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32672,"mutability":"mutable","name":"rY","nameLocation":"7676:2:35","nodeType":"VariableDeclaration","scope":32732,"src":"7668:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32671,"name":"uint256","nodeType":"ElementaryTypeName","src":"7668:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32674,"mutability":"mutable","name":"L","nameLocation":"7692:1:35","nodeType":"VariableDeclaration","scope":32732,"src":"7684:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32673,"name":"uint256","nodeType":"ElementaryTypeName","src":"7684:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32676,"mutability":"mutable","name":"vUpper","nameLocation":"7707:6:35","nodeType":"VariableDeclaration","scope":32732,"src":"7699:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32675,"name":"uint256","nodeType":"ElementaryTypeName","src":"7699:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32679,"mutability":"mutable","name":"params","nameLocation":"7740:6:35","nodeType":"VariableDeclaration","scope":32732,"src":"7719:27:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":32678,"nodeType":"UserDefinedTypeName","pathNode":{"id":32677,"name":"G3M.G3MParams","nameLocations":["7719:3:35","7723:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"7719:13:35"},"referencedDeclaration":37272,"src":"7719:13:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"src":"7631:117:35"},"returnParameters":{"id":32683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32682,"mutability":"mutable","name":"v","nameLocation":"7771:1:35","nodeType":"VariableDeclaration","scope":32732,"src":"7763:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32681,"name":"uint256","nodeType":"ElementaryTypeName","src":"7763:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7762:11:35"},"scope":32900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32798,"nodeType":"FunctionDefinition","src":"8112:507:35","nodes":[],"body":{"id":32797,"nodeType":"Block","src":"8283:336:35","nodes":[],"statements":[{"assignments":[32751],"declarations":[{"constant":false,"id":32751,"mutability":"mutable","name":"upper","nameLocation":"8297:5:35","nodeType":"VariableDeclaration","scope":32797,"src":"8289:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32750,"name":"uint256","nodeType":"ElementaryTypeName","src":"8289:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32753,"initialValue":{"id":32752,"name":"vUpper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32742,"src":"8305:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8289:22:35"},{"assignments":[32755],"declarations":[{"constant":false,"id":32755,"mutability":"mutable","name":"lower","nameLocation":"8325:5:35","nodeType":"VariableDeclaration","scope":32797,"src":"8317:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32754,"name":"uint256","nodeType":"ElementaryTypeName","src":"8317:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32757,"initialValue":{"hexValue":"31303030","id":32756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8333:4:35","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"nodeType":"VariableDeclarationStatement","src":"8317:20:35"},{"assignments":[32759],"declarations":[{"constant":false,"id":32759,"mutability":"mutable","name":"lowerBoundOutput","nameLocation":"8350:16:35","nodeType":"VariableDeclaration","scope":32797,"src":"8343:23:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32758,"name":"int256","nodeType":"ElementaryTypeName","src":"8343:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32768,"initialValue":{"arguments":[{"id":32761,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32734,"src":"8379:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32762,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32736,"src":"8382:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32763,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32738,"src":"8386:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32764,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32740,"src":"8390:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32765,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32755,"src":"8393:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32766,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32745,"src":"8400:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":32760,"name":"diffRaise","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32666,"src":"8369:9:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256,struct G3M.G3MParams memory) pure returns (int256)"}},"id":32767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8369:38:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"8343:64:35"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":32771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32769,"name":"lowerBoundOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32759,"src":"8417:16:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":32770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8436:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8417:20:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32775,"nodeType":"IfStatement","src":"8413:51:35","trueBody":{"id":32774,"nodeType":"Block","src":"8439:25:35","statements":[{"expression":{"hexValue":"30","id":32772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8456:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":32749,"id":32773,"nodeType":"Return","src":"8449:8:35"}]}},{"expression":{"id":32795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32776,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32748,"src":"8469:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":32780,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32734,"src":"8503:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32781,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32736,"src":"8506:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32782,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32738,"src":"8510:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32783,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32740,"src":"8514:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32784,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32745,"src":"8517:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"expression":{"id":32778,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8492:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":32779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8496:6:35","memberName":"encode","nodeType":"MemberAccess","src":"8492:10:35","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":32785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8492:32:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":32786,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32755,"src":"8534:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32787,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32751,"src":"8549:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"31","id":32790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8572:1:35","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":32789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8564:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32788,"name":"uint256","nodeType":"ElementaryTypeName","src":"8564:7:35","typeDescriptions":{}}},"id":32791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8564:10:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"323536","id":32792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8584:3:35","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},{"id":32793,"name":"findRootRaise","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32175,"src":"8597:13:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$","typeString":"function (bytes memory,uint256) pure returns (int256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$","typeString":"function (bytes memory,uint256) pure returns (int256)"}],"id":32777,"name":"bisection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31118,"src":"8473:9:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$_$returns$_t_uint256_$","typeString":"function (bytes memory,uint256,uint256,uint256,uint256,function (bytes memory,uint256) pure returns (int256)) pure returns (uint256)"}},"id":32794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8473:143:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8469:147:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32796,"nodeType":"ExpressionStatement","src":"8469:147:35"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeOptimalRaise","nameLocation":"8121:19:35","parameters":{"id":32746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32734,"mutability":"mutable","name":"S","nameLocation":"8154:1:35","nodeType":"VariableDeclaration","scope":32798,"src":"8146:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32733,"name":"uint256","nodeType":"ElementaryTypeName","src":"8146:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32736,"mutability":"mutable","name":"rX","nameLocation":"8169:2:35","nodeType":"VariableDeclaration","scope":32798,"src":"8161:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32735,"name":"uint256","nodeType":"ElementaryTypeName","src":"8161:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32738,"mutability":"mutable","name":"rY","nameLocation":"8185:2:35","nodeType":"VariableDeclaration","scope":32798,"src":"8177:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32737,"name":"uint256","nodeType":"ElementaryTypeName","src":"8177:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32740,"mutability":"mutable","name":"L","nameLocation":"8201:1:35","nodeType":"VariableDeclaration","scope":32798,"src":"8193:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32739,"name":"uint256","nodeType":"ElementaryTypeName","src":"8193:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32742,"mutability":"mutable","name":"vUpper","nameLocation":"8216:6:35","nodeType":"VariableDeclaration","scope":32798,"src":"8208:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32741,"name":"uint256","nodeType":"ElementaryTypeName","src":"8208:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32745,"mutability":"mutable","name":"params","nameLocation":"8249:6:35","nodeType":"VariableDeclaration","scope":32798,"src":"8228:27:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":32744,"nodeType":"UserDefinedTypeName","pathNode":{"id":32743,"name":"G3M.G3MParams","nameLocations":["8228:3:35","8232:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"8228:13:35"},"referencedDeclaration":37272,"src":"8228:13:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"src":"8140:117:35"},"returnParameters":{"id":32749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32748,"mutability":"mutable","name":"v","nameLocation":"8280:1:35","nodeType":"VariableDeclaration","scope":32798,"src":"8272:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32747,"name":"uint256","nodeType":"ElementaryTypeName","src":"8272:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8271:11:35"},"scope":32900,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32899,"nodeType":"FunctionDefinition","src":"8621:1061:35","nodes":[],"body":{"id":32898,"nodeType":"Block","src":"8792:890:35","nodes":[],"statements":[{"assignments":[32815],"declarations":[{"constant":false,"id":32815,"mutability":"mutable","name":"upper","nameLocation":"8806:5:35","nodeType":"VariableDeclaration","scope":32898,"src":"8798:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32814,"name":"uint256","nodeType":"ElementaryTypeName","src":"8798:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32817,"initialValue":{"id":32816,"name":"approximatedL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32806,"src":"8814:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8798:29:35"},{"assignments":[32819],"declarations":[{"constant":false,"id":32819,"mutability":"mutable","name":"lower","nameLocation":"8841:5:35","nodeType":"VariableDeclaration","scope":32898,"src":"8833:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32818,"name":"uint256","nodeType":"ElementaryTypeName","src":"8833:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32821,"initialValue":{"id":32820,"name":"approximatedL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32806,"src":"8849:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8833:29:35"},{"assignments":[32823],"declarations":[{"constant":false,"id":32823,"mutability":"mutable","name":"computedInvariant","nameLocation":"8875:17:35","nodeType":"VariableDeclaration","scope":32898,"src":"8868:24:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32822,"name":"int256","nodeType":"ElementaryTypeName","src":"8868:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":32825,"initialValue":{"id":32824,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32804,"src":"8895:9:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"8868:36:35"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":32828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32826,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32823,"src":"8914:17:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":32827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8934:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8914:21:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":32876,"nodeType":"Block","src":"9227:283:35","statements":[{"body":{"id":32874,"nodeType":"Block","src":"9267:237:35","statements":[{"expression":{"id":32862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32856,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32815,"src":"9281:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31303031","id":32859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9304:4:35","typeDescriptions":{"typeIdentifier":"t_rational_1001_by_1","typeString":"int_const 1001"},"value":"1001"},{"hexValue":"31303030","id":32860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9310:4:35","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1001_by_1","typeString":"int_const 1001"},{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"expression":{"id":32857,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32815,"src":"9289:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9295:8:35","memberName":"mulDivUp","nodeType":"MemberAccess","referencedDeclaration":26567,"src":"9289:14:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":32861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9289:26:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9281:34:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32863,"nodeType":"ExpressionStatement","src":"9281:34:35"},{"expression":{"id":32872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32864,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32823,"src":"9329:17:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":32867,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32800,"src":"9394:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32868,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32802,"src":"9418:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32869,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32815,"src":"9441:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32870,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32809,"src":"9472:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"expression":{"id":32865,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"9349:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":32866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9356:15:35","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":38112,"src":"9349:22:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct G3M.G3MParams memory) pure returns (int256)"}},"id":32871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9390:2:35","9414:2:35","9438:1:35","9464:6:35"],"names":["rX","rY","L","params"],"nodeType":"FunctionCall","src":"9349:144:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9329:164:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32873,"nodeType":"ExpressionStatement","src":"9329:164:35"}]},"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":32855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32853,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32823,"src":"9244:17:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":32854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9264:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9244:21:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32875,"nodeType":"WhileStatement","src":"9237:267:35"}]},"id":32877,"nodeType":"IfStatement","src":"8910:600:35","trueBody":{"id":32852,"nodeType":"Block","src":"8937:284:35","statements":[{"body":{"id":32850,"nodeType":"Block","src":"8977:238:35","statements":[{"expression":{"id":32838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32832,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32819,"src":"8991:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"393939","id":32835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9016:3:35","typeDescriptions":{"typeIdentifier":"t_rational_999_by_1","typeString":"int_const 999"},"value":"999"},{"hexValue":"31303030","id":32836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9021:4:35","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_999_by_1","typeString":"int_const 999"},{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"expression":{"id":32833,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32819,"src":"8999:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9005:10:35","memberName":"mulDivDown","nodeType":"MemberAccess","referencedDeclaration":26554,"src":"8999:16:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":32837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8999:27:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8991:35:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32839,"nodeType":"ExpressionStatement","src":"8991:35:35"},{"expression":{"id":32848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32840,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32823,"src":"9040:17:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":32843,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32800,"src":"9105:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32844,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32802,"src":"9129:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32845,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32819,"src":"9152:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32846,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32809,"src":"9183:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"expression":{"id":32841,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"9060:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":32842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9067:15:35","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":38112,"src":"9060:22:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct G3M.G3MParams memory) pure returns (int256)"}},"id":32847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9101:2:35","9125:2:35","9149:1:35","9175:6:35"],"names":["rX","rY","L","params"],"nodeType":"FunctionCall","src":"9060:144:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9040:164:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":32849,"nodeType":"ExpressionStatement","src":"9040:164:35"}]},"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":32831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32829,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32823,"src":"8954:17:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":32830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8974:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8954:21:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32851,"nodeType":"WhileStatement","src":"8947:268:35"}]}},{"expression":{"id":32896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32878,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32812,"src":"9515:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":32882,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32800,"src":"9549:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32883,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32802,"src":"9553:2:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32884,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32823,"src":"9557:17:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":32885,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32809,"src":"9576:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"expression":{"id":32880,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9538:3:35","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":32881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9542:6:35","memberName":"encode","nodeType":"MemberAccess","src":"9538:10:35","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":32886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9538:45:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":32887,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32819,"src":"9593:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32888,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32815,"src":"9608:5:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"31","id":32891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9631:1:35","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":32890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9623:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32889,"name":"uint256","nodeType":"ElementaryTypeName","src":"9623:7:35","typeDescriptions":{}}},"id":32892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9623:10:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"323536","id":32893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9643:3:35","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},{"id":32894,"name":"findRootLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32083,"src":"9656:17:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$","typeString":"function (bytes memory,uint256) pure returns (int256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$","typeString":"function (bytes memory,uint256) pure returns (int256)"}],"id":32879,"name":"bisection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31118,"src":"9519:9:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$_$returns$_t_uint256_$","typeString":"function (bytes memory,uint256,uint256,uint256,uint256,function (bytes memory,uint256) pure returns (int256)) pure returns (uint256)"}},"id":32895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9519:160:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9515:164:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32897,"nodeType":"ExpressionStatement","src":"9515:164:35"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeNextLiquidity","nameLocation":"8630:20:35","parameters":{"id":32810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32800,"mutability":"mutable","name":"rX","nameLocation":"8664:2:35","nodeType":"VariableDeclaration","scope":32899,"src":"8656:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32799,"name":"uint256","nodeType":"ElementaryTypeName","src":"8656:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32802,"mutability":"mutable","name":"rY","nameLocation":"8680:2:35","nodeType":"VariableDeclaration","scope":32899,"src":"8672:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32801,"name":"uint256","nodeType":"ElementaryTypeName","src":"8672:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32804,"mutability":"mutable","name":"invariant","nameLocation":"8695:9:35","nodeType":"VariableDeclaration","scope":32899,"src":"8688:16:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32803,"name":"int256","nodeType":"ElementaryTypeName","src":"8688:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":32806,"mutability":"mutable","name":"approximatedL","nameLocation":"8718:13:35","nodeType":"VariableDeclaration","scope":32899,"src":"8710:21:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32805,"name":"uint256","nodeType":"ElementaryTypeName","src":"8710:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32809,"mutability":"mutable","name":"params","nameLocation":"8758:6:35","nodeType":"VariableDeclaration","scope":32899,"src":"8737:27:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":32808,"nodeType":"UserDefinedTypeName","pathNode":{"id":32807,"name":"G3M.G3MParams","nameLocations":["8737:3:35","8741:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"8737:13:35"},"referencedDeclaration":37272,"src":"8737:13:35","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"src":"8650:116:35"},"returnParameters":{"id":32813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32812,"mutability":"mutable","name":"L","nameLocation":"8789:1:35","nodeType":"VariableDeclaration","scope":32899,"src":"8781:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32811,"name":"uint256","nodeType":"ElementaryTypeName","src":"8781:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8780:11:35"},"scope":32900,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"license":"GPL-3.0-or-later"},"id":35} \ No newline at end of file diff --git a/out/G3MLib.sol/G3MLib.json b/out/G3MLib.sol/G3MLib.json deleted file mode 100644 index 59efea45..00000000 --- a/out/G3MLib.sol/G3MLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212208b60e37c041b2b43c4c0b225839e51c7e16c54730d9c6251a3c82996a251a91564736f6c63430008160033","sourceMap":"174:2294:42:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212208b60e37c041b2b43c4c0b225839e51c7e16c54730d9c6251a3c82996a251a91564736f6c63430008160033","sourceMap":"174:2294:42:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/strategies/G3M/G3MLib.sol\":\"G3MLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/strategies/G3M/G3M.sol\":{\"keccak256\":\"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c\",\"dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE\"]},\"src/strategies/G3M/G3MLib.sol\":{\"keccak256\":\"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70\",\"dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/strategies/G3M/G3MLib.sol":"G3MLib"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3M.sol":{"keccak256":"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034","urls":["bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c","dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3MLib.sol":{"keccak256":"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4","urls":["bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70","dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m"],"license":"GPL-3.0-or-later"}},"version":1},"ast":{"absolutePath":"src/strategies/G3M/G3MLib.sol","id":38159,"exportedSymbols":{"EPSILON":[30665],"FixedPointMathLib":[26640],"G3M":[37911],"G3MLib":[38158],"Gaussian":[27374],"HALF":[30636],"INFINITY_IS_NOT_REAL":[30646],"I_ONE":[30655],"I_TWO":[30661],"Min":[27736],"ONE":[30639],"SQRT_WAD":[30630],"TWO":[30633],"ZERO":[30649],"abs":[27763],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"diviWad":[27813],"muli":[27777],"muliWad":[27795]},"nodeType":"SourceUnit","src":"45:2424:42","nodes":[{"id":37913,"nodeType":"PragmaDirective","src":"45:24:42","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":37914,"nodeType":"ImportDirective","src":"71:45:42","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol","file":"solmate/utils/FixedPointMathLib.sol","nameLocation":"-1:-1:-1","scope":38159,"sourceUnit":26641,"symbolAliases":[],"unitAlias":""},{"id":37915,"nodeType":"ImportDirective","src":"117:35:42","nodes":[],"absolutePath":"src/lib/StrategyLib.sol","file":"../../lib/StrategyLib.sol","nameLocation":"-1:-1:-1","scope":38159,"sourceUnit":30776,"symbolAliases":[],"unitAlias":""},{"id":37916,"nodeType":"ImportDirective","src":"153:19:42","nodes":[],"absolutePath":"src/strategies/G3M/G3M.sol","file":"./G3M.sol","nameLocation":"-1:-1:-1","scope":38159,"sourceUnit":37912,"symbolAliases":[],"unitAlias":""},{"id":38158,"nodeType":"ContractDefinition","src":"174:2294:42","nodes":[{"id":37919,"nodeType":"UsingForDirective","src":"195:36:42","nodes":[],"global":false,"libraryName":{"id":37917,"name":"FixedPointMathLib","nameLocations":["201:17:42"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"201:17:42"},"typeName":{"id":37918,"name":"uint256","nodeType":"ElementaryTypeName","src":"223:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":37922,"nodeType":"UsingForDirective","src":"236:35:42","nodes":[],"global":false,"libraryName":{"id":37920,"name":"FixedPointMathLib","nameLocations":["242:17:42"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"242:17:42"},"typeName":{"id":37921,"name":"int256","nodeType":"ElementaryTypeName","src":"264:6:42","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":37927,"nodeType":"EnumDefinition","src":"277:96:42","nodes":[],"canonicalName":"G3MLib.G3MUpdateCode","members":[{"id":37923,"name":"Invalid","nameLocation":"306:7:42","nodeType":"EnumValue","src":"306:7:42"},{"id":37924,"name":"SwapFee","nameLocation":"323:7:42","nodeType":"EnumValue","src":"323:7:42"},{"id":37925,"name":"WeightX","nameLocation":"340:7:42","nodeType":"EnumValue","src":"340:7:42"},{"id":37926,"name":"Controller","nameLocation":"357:10:42","nodeType":"EnumValue","src":"357:10:42"}],"name":"G3MUpdateCode","nameLocation":"282:13:42"},{"id":37945,"nodeType":"FunctionDefinition","src":"379:182:42","nodes":[],"body":{"id":37944,"nodeType":"Block","src":"486:75:42","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":37936,"name":"G3MUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37927,"src":"514:13:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_G3MUpdateCode_$37927_$","typeString":"type(enum G3MLib.G3MUpdateCode)"}},"id":37937,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"528:7:42","memberName":"SwapFee","nodeType":"MemberAccess","referencedDeclaration":37924,"src":"514:21:42","typeDescriptions":{"typeIdentifier":"t_enum$_G3MUpdateCode_$37927","typeString":"enum G3MLib.G3MUpdateCode"}},{"arguments":[{"id":37940,"name":"swapFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37929,"src":"545:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"537:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":37938,"name":"uint256","nodeType":"ElementaryTypeName","src":"537:7:42","typeDescriptions":{}}},"id":37941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"537:16:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_G3MUpdateCode_$37927","typeString":"enum G3MLib.G3MUpdateCode"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37934,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"503:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"507:6:42","memberName":"encode","nodeType":"MemberAccess","src":"503:10:42","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":37942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"503:51:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":37933,"id":37943,"nodeType":"Return","src":"496:58:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"encodeFeeUpdate","nameLocation":"388:15:42","parameters":{"id":37930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37929,"mutability":"mutable","name":"swapFee","nameLocation":"412:7:42","nodeType":"VariableDeclaration","scope":37945,"src":"404:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37928,"name":"uint256","nodeType":"ElementaryTypeName","src":"404:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"403:17:42"},"returnParameters":{"id":37933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37932,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37945,"src":"468:12:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37931,"name":"bytes","nodeType":"ElementaryTypeName","src":"468:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"467:14:42"},"scope":38158,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37966,"nodeType":"FunctionDefinition","src":"567:209:42","nodes":[],"body":{"id":37965,"nodeType":"Block","src":"671:105:42","nodes":[],"statements":[{"assignments":[null,37953],"declarations":[null,{"constant":false,"id":37953,"mutability":"mutable","name":"swapFee","nameLocation":"692:7:42","nodeType":"VariableDeclaration","scope":37965,"src":"684:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37952,"name":"uint256","nodeType":"ElementaryTypeName","src":"684:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37962,"initialValue":{"arguments":[{"id":37956,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37947,"src":"714:4:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":37957,"name":"G3MUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37927,"src":"721:13:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_G3MUpdateCode_$37927_$","typeString":"type(enum G3MLib.G3MUpdateCode)"}},{"id":37959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"736:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":37958,"name":"uint256","nodeType":"ElementaryTypeName","src":"736:7:42","typeDescriptions":{}}}],"id":37960,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"720:24:42","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_enum$_G3MUpdateCode_$37927_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(enum G3MLib.G3MUpdateCode),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_enum$_G3MUpdateCode_$37927_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(enum G3MLib.G3MUpdateCode),type(uint256))"}],"expression":{"id":37954,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"703:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"707:6:42","memberName":"decode","nodeType":"MemberAccess","src":"703:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":37961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"703:42:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_G3MUpdateCode_$37927_$_t_uint256_$","typeString":"tuple(enum G3MLib.G3MUpdateCode,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"681:64:42"},{"expression":{"id":37963,"name":"swapFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37953,"src":"762:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37951,"id":37964,"nodeType":"Return","src":"755:14:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decodeFeeUpdate","nameLocation":"576:15:42","parameters":{"id":37948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37947,"mutability":"mutable","name":"data","nameLocation":"605:4:42","nodeType":"VariableDeclaration","scope":37966,"src":"592:17:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37946,"name":"bytes","nodeType":"ElementaryTypeName","src":"592:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"591:19:42"},"returnParameters":{"id":37951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37950,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37966,"src":"658:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37949,"name":"uint256","nodeType":"ElementaryTypeName","src":"658:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"657:9:42"},"scope":38158,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37984,"nodeType":"FunctionDefinition","src":"782:230:42","nodes":[],"body":{"id":37983,"nodeType":"Block","src":"923:89:42","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":37977,"name":"G3MUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37927,"src":"951:13:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_G3MUpdateCode_$37927_$","typeString":"type(enum G3MLib.G3MUpdateCode)"}},"id":37978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"965:7:42","memberName":"WeightX","nodeType":"MemberAccess","referencedDeclaration":37925,"src":"951:21:42","typeDescriptions":{"typeIdentifier":"t_enum$_G3MUpdateCode_$37927","typeString":"enum G3MLib.G3MUpdateCode"}},{"id":37979,"name":"targetWeightX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37968,"src":"974:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37980,"name":"targetTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37970,"src":"989:15:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_G3MUpdateCode_$37927","typeString":"enum G3MLib.G3MUpdateCode"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37975,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"940:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"944:6:42","memberName":"encode","nodeType":"MemberAccess","src":"940:10:42","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":37981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"940:65:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":37974,"id":37982,"nodeType":"Return","src":"933:72:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"encodeWeightXUpdate","nameLocation":"791:19:42","parameters":{"id":37971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37968,"mutability":"mutable","name":"targetWeightX","nameLocation":"828:13:42","nodeType":"VariableDeclaration","scope":37984,"src":"820:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37967,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37970,"mutability":"mutable","name":"targetTimestamp","nameLocation":"859:15:42","nodeType":"VariableDeclaration","scope":37984,"src":"851:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37969,"name":"uint256","nodeType":"ElementaryTypeName","src":"851:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"810:70:42"},"returnParameters":{"id":37974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37973,"mutability":"mutable","name":"data","nameLocation":"917:4:42","nodeType":"VariableDeclaration","scope":37984,"src":"904:17:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37972,"name":"bytes","nodeType":"ElementaryTypeName","src":"904:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"903:19:42"},"scope":38158,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38009,"nodeType":"FunctionDefinition","src":"1018:264:42","nodes":[],"body":{"id":38008,"nodeType":"Block","src":"1165:117:42","nodes":[],"statements":[{"expression":{"id":38006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[null,{"id":37993,"name":"targetWeightX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37989,"src":"1178:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37994,"name":"targetTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37991,"src":"1193:15:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":37995,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1175:34:42","typeDescriptions":{"typeIdentifier":"t_tuple$__$_t_uint256_$_t_uint256_$","typeString":"tuple(,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37998,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37986,"src":"1235:4:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":37999,"name":"G3MUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37927,"src":"1242:13:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_G3MUpdateCode_$37927_$","typeString":"type(enum G3MLib.G3MUpdateCode)"}},{"id":38001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1257:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38000,"name":"uint256","nodeType":"ElementaryTypeName","src":"1257:7:42","typeDescriptions":{}}},{"id":38003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1266:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38002,"name":"uint256","nodeType":"ElementaryTypeName","src":"1266:7:42","typeDescriptions":{}}}],"id":38004,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1241:33:42","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_enum$_G3MUpdateCode_$37927_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(enum G3MLib.G3MUpdateCode),type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_enum$_G3MUpdateCode_$37927_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(enum G3MLib.G3MUpdateCode),type(uint256),type(uint256))"}],"expression":{"id":37996,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1224:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":37997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1228:6:42","memberName":"decode","nodeType":"MemberAccess","src":"1224:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":38005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1224:51:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_G3MUpdateCode_$37927_$_t_uint256_$_t_uint256_$","typeString":"tuple(enum G3MLib.G3MUpdateCode,uint256,uint256)"}},"src":"1175:100:42","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38007,"nodeType":"ExpressionStatement","src":"1175:100:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decodeWeightXUpdate","nameLocation":"1027:19:42","parameters":{"id":37987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37986,"mutability":"mutable","name":"data","nameLocation":"1060:4:42","nodeType":"VariableDeclaration","scope":38009,"src":"1047:17:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":37985,"name":"bytes","nodeType":"ElementaryTypeName","src":"1047:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1046:19:42"},"returnParameters":{"id":37992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37989,"mutability":"mutable","name":"targetWeightX","nameLocation":"1121:13:42","nodeType":"VariableDeclaration","scope":38009,"src":"1113:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37988,"name":"uint256","nodeType":"ElementaryTypeName","src":"1113:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37991,"mutability":"mutable","name":"targetTimestamp","nameLocation":"1144:15:42","nodeType":"VariableDeclaration","scope":38009,"src":"1136:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37990,"name":"uint256","nodeType":"ElementaryTypeName","src":"1136:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1112:48:42"},"scope":38158,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38024,"nodeType":"FunctionDefinition","src":"1288:194:42","nodes":[],"body":{"id":38023,"nodeType":"Block","src":"1410:72:42","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":38018,"name":"G3MUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37927,"src":"1438:13:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_G3MUpdateCode_$37927_$","typeString":"type(enum G3MLib.G3MUpdateCode)"}},"id":38019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1452:10:42","memberName":"Controller","nodeType":"MemberAccess","referencedDeclaration":37926,"src":"1438:24:42","typeDescriptions":{"typeIdentifier":"t_enum$_G3MUpdateCode_$37927","typeString":"enum G3MLib.G3MUpdateCode"}},{"id":38020,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38011,"src":"1464:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_G3MUpdateCode_$37927","typeString":"enum G3MLib.G3MUpdateCode"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":38016,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1427:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38017,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1431:6:42","memberName":"encode","nodeType":"MemberAccess","src":"1427:10:42","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":38021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1427:48:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":38015,"id":38022,"nodeType":"Return","src":"1420:55:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"encodeControllerUpdate","nameLocation":"1297:22:42","parameters":{"id":38012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38011,"mutability":"mutable","name":"controller","nameLocation":"1328:10:42","nodeType":"VariableDeclaration","scope":38024,"src":"1320:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38010,"name":"address","nodeType":"ElementaryTypeName","src":"1320:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1319:20:42"},"returnParameters":{"id":38015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38014,"mutability":"mutable","name":"data","nameLocation":"1400:4:42","nodeType":"VariableDeclaration","scope":38024,"src":"1387:17:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":38013,"name":"bytes","nodeType":"ElementaryTypeName","src":"1387:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1386:19:42"},"scope":38158,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38044,"nodeType":"FunctionDefinition","src":"1488:198:42","nodes":[],"body":{"id":38043,"nodeType":"Block","src":"1610:76:42","nodes":[],"statements":[{"expression":{"id":38041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[null,{"id":38031,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38029,"src":"1623:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":38032,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1620:14:42","typeDescriptions":{"typeIdentifier":"t_tuple$__$_t_address_$","typeString":"tuple(,address)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":38035,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38026,"src":"1648:4:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":38036,"name":"G3MUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37927,"src":"1655:13:42","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_G3MUpdateCode_$37927_$","typeString":"type(enum G3MLib.G3MUpdateCode)"}},{"id":38038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1670:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":38037,"name":"address","nodeType":"ElementaryTypeName","src":"1670:7:42","typeDescriptions":{}}}],"id":38039,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1654:24:42","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_enum$_G3MUpdateCode_$37927_$_$_t_type$_t_address_$_$","typeString":"tuple(type(enum G3MLib.G3MUpdateCode),type(address))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_enum$_G3MUpdateCode_$37927_$_$_t_type$_t_address_$_$","typeString":"tuple(type(enum G3MLib.G3MUpdateCode),type(address))"}],"expression":{"id":38033,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1637:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1641:6:42","memberName":"decode","nodeType":"MemberAccess","src":"1637:10:42","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":38040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1637:42:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_G3MUpdateCode_$37927_$_t_address_payable_$","typeString":"tuple(enum G3MLib.G3MUpdateCode,address payable)"}},"src":"1620:59:42","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38042,"nodeType":"ExpressionStatement","src":"1620:59:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decodeControllerUpdate","nameLocation":"1497:22:42","parameters":{"id":38027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38026,"mutability":"mutable","name":"data","nameLocation":"1533:4:42","nodeType":"VariableDeclaration","scope":38044,"src":"1520:17:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":38025,"name":"bytes","nodeType":"ElementaryTypeName","src":"1520:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1519:19:42"},"returnParameters":{"id":38030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38029,"mutability":"mutable","name":"controller","nameLocation":"1594:10:42","nodeType":"VariableDeclaration","scope":38044,"src":"1586:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38028,"name":"address","nodeType":"ElementaryTypeName","src":"1586:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1585:20:42"},"scope":38158,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38112,"nodeType":"FunctionDefinition","src":"1692:384:42","nodes":[],"body":{"id":38111,"nodeType":"Block","src":"1850:226:42","nodes":[],"statements":[{"assignments":[38059],"declarations":[{"constant":false,"id":38059,"mutability":"mutable","name":"a","nameLocation":"1868:1:42","nodeType":"VariableDeclaration","scope":38111,"src":"1860:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38058,"name":"uint256","nodeType":"ElementaryTypeName","src":"1860:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38077,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":38072,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38053,"src":"1919:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":38073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1926:2:42","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"1919:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38071,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1912:6:42","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":38070,"name":"int256","nodeType":"ElementaryTypeName","src":"1912:6:42","typeDescriptions":{}}},"id":38074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1912:17:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"arguments":[{"id":38066,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38050,"src":"1901:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":38064,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38046,"src":"1887:2:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1890:10:42","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"1887:13:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1887:16:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1880:6:42","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":38062,"name":"int256","nodeType":"ElementaryTypeName","src":"1880:6:42","typeDescriptions":{}}},"id":38068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1880:24:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":38069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1905:6:42","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"1880:31:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":38075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1880:50:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":38061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1872:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38060,"name":"uint256","nodeType":"ElementaryTypeName","src":"1872:7:42","typeDescriptions":{}}},"id":38076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1872:59:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1860:71:42"},{"assignments":[38079],"declarations":[{"constant":false,"id":38079,"mutability":"mutable","name":"b","nameLocation":"1949:1:42","nodeType":"VariableDeclaration","scope":38111,"src":"1941:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38078,"name":"uint256","nodeType":"ElementaryTypeName","src":"1941:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38097,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":38092,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38053,"src":"2000:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":38093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2007:2:42","memberName":"wY","nodeType":"MemberAccess","referencedDeclaration":37267,"src":"2000:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1993:6:42","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":38090,"name":"int256","nodeType":"ElementaryTypeName","src":"1993:6:42","typeDescriptions":{}}},"id":38094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1993:17:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"arguments":[{"id":38086,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38050,"src":"1982:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":38084,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38048,"src":"1968:2:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1971:10:42","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"1968:13:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1968:16:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38083,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1961:6:42","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":38082,"name":"int256","nodeType":"ElementaryTypeName","src":"1961:6:42","typeDescriptions":{}}},"id":38088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1961:24:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":38089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1986:6:42","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"1961:31:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":38095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1961:50:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":38081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1953:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38080,"name":"uint256","nodeType":"ElementaryTypeName","src":"1953:7:42","typeDescriptions":{}}},"id":38096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1953:59:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1941:71:42"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":38109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":38102,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38079,"src":"2048:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":38100,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38059,"src":"2037:1:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2039:8:42","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"2037:10:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2037:13:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38099,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2030:6:42","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":38098,"name":"int256","nodeType":"ElementaryTypeName","src":"2030:6:42","typeDescriptions":{}}},"id":38104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2030:21:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"hexValue":"31","id":38107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2061:7:42","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}],"id":38106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2054:6:42","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":38105,"name":"int256","nodeType":"ElementaryTypeName","src":"2054:6:42","typeDescriptions":{}}},"id":38108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2054:15:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2030:39:42","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":38057,"id":38110,"nodeType":"Return","src":"2023:46:42"}]},"implemented":true,"kind":"function","modifiers":[],"name":"tradingFunction","nameLocation":"1701:15:42","parameters":{"id":38054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38046,"mutability":"mutable","name":"rX","nameLocation":"1734:2:42","nodeType":"VariableDeclaration","scope":38112,"src":"1726:10:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38045,"name":"uint256","nodeType":"ElementaryTypeName","src":"1726:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38048,"mutability":"mutable","name":"rY","nameLocation":"1754:2:42","nodeType":"VariableDeclaration","scope":38112,"src":"1746:10:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38047,"name":"uint256","nodeType":"ElementaryTypeName","src":"1746:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38050,"mutability":"mutable","name":"L","nameLocation":"1774:1:42","nodeType":"VariableDeclaration","scope":38112,"src":"1766:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38049,"name":"uint256","nodeType":"ElementaryTypeName","src":"1766:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38053,"mutability":"mutable","name":"params","nameLocation":"1806:6:42","nodeType":"VariableDeclaration","scope":38112,"src":"1785:27:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":38052,"nodeType":"UserDefinedTypeName","pathNode":{"id":38051,"name":"G3M.G3MParams","nameLocations":["1785:3:42","1789:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"1785:13:42"},"referencedDeclaration":37272,"src":"1785:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"src":"1716:102:42"},"returnParameters":{"id":38057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38056,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38112,"src":"1842:6:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":38055,"name":"int256","nodeType":"ElementaryTypeName","src":"1842:6:42","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1841:8:42"},"scope":38158,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38157,"nodeType":"FunctionDefinition","src":"2172:294:42","nodes":[],"body":{"id":38156,"nodeType":"Block","src":"2319:147:42","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":38149,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38120,"src":"2437:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":38150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2444:2:42","memberName":"wY","nodeType":"MemberAccess","referencedDeclaration":37267,"src":"2437:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2430:6:42","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":38147,"name":"int256","nodeType":"ElementaryTypeName","src":"2430:6:42","typeDescriptions":{}}},"id":38151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2430:17:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":38144,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38117,"src":"2419:2:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2412:6:42","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":38142,"name":"int256","nodeType":"ElementaryTypeName","src":"2412:6:42","typeDescriptions":{}}},"id":38145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2412:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":38146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2423:6:42","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"2412:17:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":38152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2412:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":38141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2404:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38140,"name":"uint256","nodeType":"ElementaryTypeName","src":"2404:7:42","typeDescriptions":{}}},"id":38153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2404:45:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":38134,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38120,"src":"2369:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":38135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2376:2:42","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"2369:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38133,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2362:6:42","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":38132,"name":"int256","nodeType":"ElementaryTypeName","src":"2362:6:42","typeDescriptions":{}}},"id":38136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2362:17:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":38129,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38115,"src":"2351:2:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2344:6:42","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":38127,"name":"int256","nodeType":"ElementaryTypeName","src":"2344:6:42","typeDescriptions":{}}},"id":38130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2344:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":38131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2355:6:42","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"2344:17:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":38137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2344:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":38126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2336:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38125,"name":"uint256","nodeType":"ElementaryTypeName","src":"2336:7:42","typeDescriptions":{}}},"id":38138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2336:45:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2382:8:42","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"2336:54:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2336:123:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":38124,"id":38155,"nodeType":"Return","src":"2329:130:42"}]},"documentation":{"id":38113,"nodeType":"StructuredDocumentation","src":"2082:85:42","text":"@dev Finds the root of the swapConstant given the independent variable liquidity."},"implemented":true,"kind":"function","modifiers":[],"name":"computeNextLiquidity","nameLocation":"2181:20:42","parameters":{"id":38121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38115,"mutability":"mutable","name":"rX","nameLocation":"2219:2:42","nodeType":"VariableDeclaration","scope":38157,"src":"2211:10:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38114,"name":"uint256","nodeType":"ElementaryTypeName","src":"2211:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38117,"mutability":"mutable","name":"rY","nameLocation":"2239:2:42","nodeType":"VariableDeclaration","scope":38157,"src":"2231:10:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38116,"name":"uint256","nodeType":"ElementaryTypeName","src":"2231:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38120,"mutability":"mutable","name":"params","nameLocation":"2272:6:42","nodeType":"VariableDeclaration","scope":38157,"src":"2251:27:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":38119,"nodeType":"UserDefinedTypeName","pathNode":{"id":38118,"name":"G3M.G3MParams","nameLocations":["2251:3:42","2255:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"2251:13:42"},"referencedDeclaration":37272,"src":"2251:13:42","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"src":"2201:83:42"},"returnParameters":{"id":38124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38123,"mutability":"mutable","name":"L","nameLocation":"2316:1:42","nodeType":"VariableDeclaration","scope":38157,"src":"2308:9:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38122,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2307:11:42"},"scope":38158,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"G3MLib","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[38158],"name":"G3MLib","nameLocation":"182:6:42","scope":38159,"usedErrors":[],"usedEvents":[]}],"license":"GPL-3.0-or-later"},"id":42} \ No newline at end of file diff --git a/out/G3MLib.t.sol/G3MLibTest.json b/out/G3MLib.t.sol/G3MLibTest.json deleted file mode 100644 index 3e61116d..00000000 --- a/out/G3MLib.t.sol/G3MLibTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"testFuzz_G3MLib_encodeControllerUpdate","inputs":[{"name":"controller","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testFuzz_G3MLib_encodeFeeUpdate","inputs":[{"name":"swapFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testFuzz_G3MLib_encodeWeightXUpdate","inputs":[{"name":"targetWeightX","type":"uint256","internalType":"uint256"},{"name":"targetTimestamp","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_G3MLib_computeLiquidity","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_G3MLib_tradingFunction","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523461002357600160ff1960005416176000556106ba90816100298239f35b600080fdfe608060408181526004918236101561001657600080fd5b600092833560e01c918263587e998b1461018857508163592c88621461011c5781636c578df5146100c057508063aec7b50114610096578063ba414fa61461009b578063f121f706146100965763fa7626d41461007257600080fd5b3461009257816003193601126100925760ff602092541690519015158152f35b5080fd5b6102ff565b50346100925781600319360112610092576020906100b76103c7565b90519015158152f35b90503461011457602036600319011261011457803590825192602084019060018252808501948486528181526100f581610317565b80518101031261011857511015610114576101119151906104b2565b80f35b8280fd5b8480fd5b919050346101145780600319360112610114578135906024359080519360208501916002835285019184835260608087019685885281815261015d81610349565b80518101031261018457511015610118576101119361017f91519051936104b2565b6104b2565b8680fd5b915091346102fb57602080600319360112610118576001600160a01b03938035858116949190859003610184578282016003815284808401938785528181526101d081610317565b8051810103126102f7575110156102f35751938416809403610118578383036101f7578480f35b6102dc927f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50608084518481526025858201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b6164648682015264726573735d60d81b6060820152a1825194838652610287848701604090600a8152690808115e1c1958dd195960b21b60208201520190565b9083870152857f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f9687920390a182519383859485528401604090600a815269080808081058dd1d585b60b21b60208201520190565b918301520390a16102eb6105b8565b388080808480f35b8580fd5b8780fd5b8380fd5b3461031257600036600319011261031257005b600080fd5b6060810190811067ffffffffffffffff82111761033357604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761033357604052565b90601f8019910116810190811067ffffffffffffffff82111761033357604052565b3d156103c2573d9067ffffffffffffffff821161033357604051916103b6601f8201601f191660200184610365565b82523d6000602084013e565b606090565b6000805460081c60ff16156103e0575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b61040157505090565b9091506040518260209280848401526519985a5b195960d21b60408401526040835261042c83610317565b60405184810190630667f9d760e41b8252845184955b878288106104995750508495509061046d602482879481018583820152036004810184520182610365565b51925af15061047a610387565b8181805181010312610114570151908115158203610496575090565b80fd5b8782018101516024858a01015290960195889550610442565b8181036104bd575050565b6105a5906040907f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506080835160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8582015261745d60f01b6060820152a181519382855261054f838601604090600a8152690808115e1c1958dd195960b21b60208201520190565b906020860152847fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89586920390a181519282849384528301604090600a815269080808081058dd1d585b60b21b60208201520190565b9060208301520390a16105b66105b8565b565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6105e6575b5061010061ff00196000541617600055565b6040516020908260208201526519985a5b195960d21b6040820152600160608201526060815261061581610349565b6040519060208201926370ca10bb60e01b845281519160005b838110610670575050509160008261065c602482849896978598018583820152036004810184520182610365565b51925af150610669610387565b50386105d4565b81810183015185820160240152820161062e56fea2646970667358221220d10b382da61e12a2ad362b366ab53e859c843c807b98ba4ce45a6decee9f370264736f6c63430008160033","sourceMap":"135:1144:71:-:0;;;;;;;1594:4:0;135:1144:71;;1594:4:0;135:1144:71;;;1594:4:0;135:1144:71;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060408181526004918236101561001657600080fd5b600092833560e01c918263587e998b1461018857508163592c88621461011c5781636c578df5146100c057508063aec7b50114610096578063ba414fa61461009b578063f121f706146100965763fa7626d41461007257600080fd5b3461009257816003193601126100925760ff602092541690519015158152f35b5080fd5b6102ff565b50346100925781600319360112610092576020906100b76103c7565b90519015158152f35b90503461011457602036600319011261011457803590825192602084019060018252808501948486528181526100f581610317565b80518101031261011857511015610114576101119151906104b2565b80f35b8280fd5b8480fd5b919050346101145780600319360112610114578135906024359080519360208501916002835285019184835260608087019685885281815261015d81610349565b80518101031261018457511015610118576101119361017f91519051936104b2565b6104b2565b8680fd5b915091346102fb57602080600319360112610118576001600160a01b03938035858116949190859003610184578282016003815284808401938785528181526101d081610317565b8051810103126102f7575110156102f35751938416809403610118578383036101f7578480f35b6102dc927f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50608084518481526025858201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b6164648682015264726573735d60d81b6060820152a1825194838652610287848701604090600a8152690808115e1c1958dd195960b21b60208201520190565b9083870152857f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f9687920390a182519383859485528401604090600a815269080808081058dd1d585b60b21b60208201520190565b918301520390a16102eb6105b8565b388080808480f35b8580fd5b8780fd5b8380fd5b3461031257600036600319011261031257005b600080fd5b6060810190811067ffffffffffffffff82111761033357604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761033357604052565b90601f8019910116810190811067ffffffffffffffff82111761033357604052565b3d156103c2573d9067ffffffffffffffff821161033357604051916103b6601f8201601f191660200184610365565b82523d6000602084013e565b606090565b6000805460081c60ff16156103e0575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b61040157505090565b9091506040518260209280848401526519985a5b195960d21b60408401526040835261042c83610317565b60405184810190630667f9d760e41b8252845184955b878288106104995750508495509061046d602482879481018583820152036004810184520182610365565b51925af15061047a610387565b8181805181010312610114570151908115158203610496575090565b80fd5b8782018101516024858a01015290960195889550610442565b8181036104bd575050565b6105a5906040907f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506080835160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8582015261745d60f01b6060820152a181519382855261054f838601604090600a8152690808115e1c1958dd195960b21b60208201520190565b906020860152847fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89586920390a181519282849384528301604090600a815269080808081058dd1d585b60b21b60208201520190565b9060208301520390a16105b66105b8565b565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6105e6575b5061010061ff00196000541617600055565b6040516020908260208201526519985a5b195960d21b6040820152600160608201526060815261061581610349565b6040519060208201926370ca10bb60e01b845281519160005b838110610670575050509160008261065c602482849896978598018583820152036004810184520182610365565b51925af150610669610387565b50386105d4565b81810183015185820160240152820161062e56fea2646970667358221220d10b382da61e12a2ad362b366ab53e859c843c807b98ba4ce45a6decee9f370264736f6c63430008160033","sourceMap":"135:1144:71:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;135:1144:71;;;;;;;;;503:51:42;135:1144:71;503:51:42;;135:1144:71;514:21:42;135:1144:71;;;;;1671:64:0;;;;503:51:42;;;;;;:::i;:::-;1671:64:0;;703:42:42;;135:1144:71;;;;;;;;;323:28;135:1144;;323:28;;:::i;:::-;135:1144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;940:65:42;135:1144:71;940:65:42;;135:1144:71;951:21:42;135:1144:71;;;;1671:64:0;;;;135:1144:71;;;;1671:64:0;;;;940:65:42;;;;;;:::i;:::-;1671:64:0;;1224:51:42;;135:1144:71;;;;;;;;;798:22;135:1144;741:20;135:1144;;;;741:20;;:::i;:::-;798:22;:::i;135:1144::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;135:1144:71;;;;;;;;;;;;;;1427:48:42;;;1438:24;135:1144:71;;;;;;1671:64:0;;;;1427:48:42;;;;;;:::i;:::-;1671:64:0;;1637:42:42;;135:1144:71;;;;;;;;;;;;;;;;;;3678:6:0;;;3674:212;;135:1144:71;;;3674:212:0;135:1144:71;;3705:44:0;135:1144:71;;;;;;;;;;;;;;;;-1:-1:-1;;;135:1144:71;;;;3705:44:0;135:1144:71;;;;;;;;;;;;;;;-1:-1:-1;;;135:1144:71;;;;;;;;;;;;1671:64:0;3768:34;;;;;;;;135:1144:71;;;;;;;;;;;;;;;-1:-1:-1;;;135:1144:71;;;;;;;;;;;1671:64:0;3821:34;;;;;:::i;:::-;3674:212;;;;135:1144:71;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;135:1144:71;;;;;;;;;1671:64:0;135:1144:71;1671:64:0;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;135:1144:71;1671:64:0;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;135:1144:71;;;1671:64:0;;;;-1:-1:-1;;1671:64:0;;;135:1144:71;1671:64:0;:::i;:::-;;;;-1:-1:-1;1671:64:0;;;;:::o;:::-;;;:::o;1819:584::-;1873:7;135:1144:71;;;;;;;;;;;;;;;1896:14:0:o;1869:528::-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;135:1144:71;;;;;2196:43:0;;;;;;;1671:64;;;;135:1144:71;1671:64:0;;;135:1144:71;2196:43:0;;;;;:::i;:::-;135:1144:71;;2086:175:0;;;1671:64;;;;;;;;;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;;;;;2086:175;1671:64;2086:175;;;;;;;:::i;:::-;2047:232;;;;;;;:::i;:::-;1671:64;;;;2312:27;;1671:64;;;;2312:27;1671:64;135:1144:71;;;;1671:64:0;;;;2297:42;2367:19;:::o;1671:64::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1671:64:0;;5202:262;5259:6;;;5255:203;;5202:262;;:::o;5255:203::-;135:1144:71;;;;5286:41:0;135:1144:71;;;;;;;;;;;;;;;;-1:-1:-1;;;135:1144:71;;;;5286:41:0;135:1144:71;;;;;;;;;;;;;;;-1:-1:-1;;;135:1144:71;;;;;;;;;;;;1671:64:0;5346:31;;;;;;;;135:1144:71;;;;;;;;;;;;;;;-1:-1:-1;;;135:1144:71;;;;;;;;;;;;1671:64:0;5396:31;;;;;:::i;:::-;5202:262::o;2410:424::-;2939:104;;;2445:359;;2410:424;135:1144:71;;;;2928:1:0;135:1144:71;;;2928:1:0;135:1144:71;2410:424:0:o;2445:359::-;135:1144:71;;2645:67:0;;;;;;1671:64;;;;135:1144:71;;;1671:64:0;2705:4;135:1144:71;;;1671:64:0;135:1144:71;2645:67:0;;;;;:::i;:::-;135:1144:71;;2534:196:0;2645:67;2534:196;;1671:64;;;;;;;;;-1:-1:-1;1671:64:0;;;;;;;;;;-1:-1:-1;1671:64:0;2534:196;1671:64;;;;;;;;;;;;;;2534:196;1671:64;2534:196;;;;;;;:::i;:::-;2499:245;;;;;;;:::i;:::-;;2445:359;;;1671:64;;;;;;;;;;;;;;;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","failed()":"ba414fa6","testFuzz_G3MLib_encodeControllerUpdate(address)":"587e998b","testFuzz_G3MLib_encodeFeeUpdate(uint256)":"6c578df5","testFuzz_G3MLib_encodeWeightXUpdate(uint256,uint256)":"592c8862","test_G3MLib_computeLiquidity()":"f121f706","test_G3MLib_tradingFunction()":"aec7b501"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"name\":\"testFuzz_G3MLib_encodeControllerUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"}],\"name\":\"testFuzz_G3MLib_encodeFeeUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"targetWeightX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"targetTimestamp\",\"type\":\"uint256\"}],\"name\":\"testFuzz_G3MLib_encodeWeightXUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_G3MLib_computeLiquidity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_G3MLib_tradingFunction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/unit/strategies/G3M/G3MLib.t.sol\":\"G3MLibTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/strategies/G3M/G3M.sol\":{\"keccak256\":\"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c\",\"dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE\"]},\"src/strategies/G3M/G3MLib.sol\":{\"keccak256\":\"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70\",\"dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m\"]},\"src/test/unit/strategies/G3M/G3MLib.t.sol\":{\"keccak256\":\"0xb3cb2bc30e671543cdf14b9e6deef720d2918725c14dff8fffc229f30120307b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f46404322443d90220815bdef677a10cfb562624895581acb42c3d326f3ce62f\",\"dweb:/ipfs/QmXUHxRL6Ws93YkQAaUnAkyAS8zoJa31riEaxWd7qPxxs3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"controller","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"testFuzz_G3MLib_encodeControllerUpdate"},{"inputs":[{"internalType":"uint256","name":"swapFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testFuzz_G3MLib_encodeFeeUpdate"},{"inputs":[{"internalType":"uint256","name":"targetWeightX","type":"uint256"},{"internalType":"uint256","name":"targetTimestamp","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testFuzz_G3MLib_encodeWeightXUpdate"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_G3MLib_computeLiquidity"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_G3MLib_tradingFunction"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/unit/strategies/G3M/G3MLib.t.sol":"G3MLibTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3M.sol":{"keccak256":"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034","urls":["bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c","dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3MLib.sol":{"keccak256":"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4","urls":["bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70","dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m"],"license":"GPL-3.0-or-later"},"src/test/unit/strategies/G3M/G3MLib.t.sol":{"keccak256":"0xb3cb2bc30e671543cdf14b9e6deef720d2918725c14dff8fffc229f30120307b","urls":["bzz-raw://f46404322443d90220815bdef677a10cfb562624895581acb42c3d326f3ce62f","dweb:/ipfs/QmXUHxRL6Ws93YkQAaUnAkyAS8zoJa31riEaxWd7qPxxs3"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/unit/strategies/G3M/G3MLib.t.sol","id":47178,"exportedSymbols":{"DSTest":[1786],"EPSILON":[30665],"FixedPointMathLib":[26640],"G3M":[37911],"G3MLib":[38158],"G3MLibTest":[47177],"Gaussian":[27374],"HALF":[30636],"INFINITY_IS_NOT_REAL":[30646],"I_ONE":[30655],"I_TWO":[30661],"Min":[27736],"ONE":[30639],"SQRT_WAD":[30630],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"TWO":[30633],"Test":[8195],"TestBase":[1843],"Vm":[9352],"ZERO":[30649],"abs":[27763],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"console":[17416],"console2":[25512],"diviWad":[27813],"muli":[27777],"muliWad":[27795],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522]},"nodeType":"SourceUnit","src":"39:1241:71","nodes":[{"id":47087,"nodeType":"PragmaDirective","src":"39:24:71","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":47088,"nodeType":"ImportDirective","src":"65:28:71","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":47178,"sourceUnit":8196,"symbolAliases":[],"unitAlias":""},{"id":47089,"nodeType":"ImportDirective","src":"94:39:71","nodes":[],"absolutePath":"src/strategies/G3M/G3MLib.sol","file":"src/strategies/G3M/G3MLib.sol","nameLocation":"-1:-1:-1","scope":47178,"sourceUnit":38159,"symbolAliases":[],"unitAlias":""},{"id":47177,"nodeType":"ContractDefinition","src":"135:1144:71","nodes":[{"id":47112,"nodeType":"FunctionDefinition","src":"169:190:71","nodes":[],"body":{"id":47111,"nodeType":"Block","src":"234:125:71","nodes":[],"statements":[{"assignments":[47097],"declarations":[{"constant":false,"id":47097,"mutability":"mutable","name":"data","nameLocation":"257:4:71","nodeType":"VariableDeclaration","scope":47111,"src":"244:17:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47096,"name":"bytes","nodeType":"ElementaryTypeName","src":"244:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":47102,"initialValue":{"arguments":[{"id":47100,"name":"swapFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47093,"src":"287:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47098,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"264:6:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":47099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"271:15:71","memberName":"encodeFeeUpdate","nodeType":"MemberAccess","referencedDeclaration":37945,"src":"264:22:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":47101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"264:31:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"244:51:71"},{"expression":{"arguments":[{"id":47104,"name":"swapFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47093,"src":"314:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":47107,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47097,"src":"346:4:71","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":47105,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"323:6:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":47106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"330:15:71","memberName":"decodeFeeUpdate","nodeType":"MemberAccess","referencedDeclaration":37966,"src":"323:22:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":47108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"323:28:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47103,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"305:8:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":47109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"305:47:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47110,"nodeType":"ExpressionStatement","src":"305:47:71"}]},"functionSelector":"6c578df5","implemented":true,"kind":"function","modifiers":[],"name":"testFuzz_G3MLib_encodeFeeUpdate","nameLocation":"178:31:71","parameters":{"id":47094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47093,"mutability":"mutable","name":"swapFee","nameLocation":"218:7:71","nodeType":"VariableDeclaration","scope":47112,"src":"210:15:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47092,"name":"uint256","nodeType":"ElementaryTypeName","src":"210:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"209:17:71"},"returnParameters":{"id":47095,"nodeType":"ParameterList","parameters":[],"src":"234:0:71"},"scope":47177,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":47147,"nodeType":"FunctionDefinition","src":"365:463:71","nodes":[],"body":{"id":47146,"nodeType":"Block","src":"487:341:71","nodes":[],"statements":[{"assignments":[47120],"declarations":[{"constant":false,"id":47120,"mutability":"mutable","name":"data","nameLocation":"510:4:71","nodeType":"VariableDeclaration","scope":47146,"src":"497:17:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47119,"name":"bytes","nodeType":"ElementaryTypeName","src":"497:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":47126,"initialValue":{"arguments":[{"id":47123,"name":"targetWeightX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47114,"src":"556:13:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47124,"name":"targetTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47116,"src":"571:15:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47121,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"529:6:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":47122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"536:19:71","memberName":"encodeWeightXUpdate","nodeType":"MemberAccess","referencedDeclaration":37984,"src":"529:26:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (bytes memory)"}},"id":47125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"529:58:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"497:90:71"},{"assignments":[47128,47130],"declarations":[{"constant":false,"id":47128,"mutability":"mutable","name":"decodedTargetWeightX","nameLocation":"607:20:71","nodeType":"VariableDeclaration","scope":47146,"src":"599:28:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47127,"name":"uint256","nodeType":"ElementaryTypeName","src":"599:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47130,"mutability":"mutable","name":"decodedTargetTimestamp","nameLocation":"637:22:71","nodeType":"VariableDeclaration","scope":47146,"src":"629:30:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47129,"name":"uint256","nodeType":"ElementaryTypeName","src":"629:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47135,"initialValue":{"arguments":[{"id":47133,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47120,"src":"702:4:71","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":47131,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"675:6:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":47132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"682:19:71","memberName":"decodeWeightXUpdate","nodeType":"MemberAccess","referencedDeclaration":38009,"src":"675:26:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256,uint256)"}},"id":47134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"675:32:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"598:109:71"},{"expression":{"arguments":[{"id":47137,"name":"targetWeightX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47114,"src":"726:13:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47138,"name":"decodedTargetWeightX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47128,"src":"741:20:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47136,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"717:8:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":47139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"717:45:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47140,"nodeType":"ExpressionStatement","src":"717:45:71"},{"expression":{"arguments":[{"id":47142,"name":"targetTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47116,"src":"781:15:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47143,"name":"decodedTargetTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47130,"src":"798:22:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47141,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"772:8:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":47144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"772:49:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47145,"nodeType":"ExpressionStatement","src":"772:49:71"}]},"functionSelector":"592c8862","implemented":true,"kind":"function","modifiers":[],"name":"testFuzz_G3MLib_encodeWeightXUpdate","nameLocation":"374:35:71","parameters":{"id":47117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47114,"mutability":"mutable","name":"targetWeightX","nameLocation":"427:13:71","nodeType":"VariableDeclaration","scope":47147,"src":"419:21:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47113,"name":"uint256","nodeType":"ElementaryTypeName","src":"419:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47116,"mutability":"mutable","name":"targetTimestamp","nameLocation":"458:15:71","nodeType":"VariableDeclaration","scope":47147,"src":"450:23:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47115,"name":"uint256","nodeType":"ElementaryTypeName","src":"450:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"409:70:71"},"returnParameters":{"id":47118,"nodeType":"ParameterList","parameters":[],"src":"487:0:71"},"scope":47177,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":47168,"nodeType":"FunctionDefinition","src":"834:232:71","nodes":[],"body":{"id":47167,"nodeType":"Block","src":"921:145:71","nodes":[],"statements":[{"assignments":[47153],"declarations":[{"constant":false,"id":47153,"mutability":"mutable","name":"data","nameLocation":"944:4:71","nodeType":"VariableDeclaration","scope":47167,"src":"931:17:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47152,"name":"bytes","nodeType":"ElementaryTypeName","src":"931:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":47158,"initialValue":{"arguments":[{"id":47156,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47149,"src":"981:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47154,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"951:6:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":47155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"958:22:71","memberName":"encodeControllerUpdate","nodeType":"MemberAccess","referencedDeclaration":38024,"src":"951:29:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) pure returns (bytes memory)"}},"id":47157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"951:41:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"931:61:71"},{"expression":{"arguments":[{"id":47160,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47149,"src":"1011:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":47163,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47153,"src":"1053:4:71","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":47161,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"1023:6:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":47162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1030:22:71","memberName":"decodeControllerUpdate","nodeType":"MemberAccess","referencedDeclaration":38044,"src":"1023:29:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) pure returns (address)"}},"id":47164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1023:35:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":47159,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":320,"src":"1002:8:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":47165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1002:57:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47166,"nodeType":"ExpressionStatement","src":"1002:57:71"}]},"functionSelector":"587e998b","implemented":true,"kind":"function","modifiers":[],"name":"testFuzz_G3MLib_encodeControllerUpdate","nameLocation":"843:38:71","parameters":{"id":47150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47149,"mutability":"mutable","name":"controller","nameLocation":"890:10:71","nodeType":"VariableDeclaration","scope":47168,"src":"882:18:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47148,"name":"address","nodeType":"ElementaryTypeName","src":"882:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"881:20:71"},"returnParameters":{"id":47151,"nodeType":"ParameterList","parameters":[],"src":"921:0:71"},"scope":47177,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":47172,"nodeType":"FunctionDefinition","src":"1072:99:71","nodes":[],"body":{"id":47171,"nodeType":"Block","src":"1118:53:71","nodes":[],"statements":[]},"functionSelector":"aec7b501","implemented":true,"kind":"function","modifiers":[],"name":"test_G3MLib_tradingFunction","nameLocation":"1081:27:71","parameters":{"id":47169,"nodeType":"ParameterList","parameters":[],"src":"1108:2:71"},"returnParameters":{"id":47170,"nodeType":"ParameterList","parameters":[],"src":"1118:0:71"},"scope":47177,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":47176,"nodeType":"FunctionDefinition","src":"1177:100:71","nodes":[],"body":{"id":47175,"nodeType":"Block","src":"1224:53:71","nodes":[],"statements":[]},"functionSelector":"f121f706","implemented":true,"kind":"function","modifiers":[],"name":"test_G3MLib_computeLiquidity","nameLocation":"1186:28:71","parameters":{"id":47173,"nodeType":"ParameterList","parameters":[],"src":"1214:2:71"},"returnParameters":{"id":47174,"nodeType":"ParameterList","parameters":[],"src":"1224:0:71"},"scope":47177,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":47090,"name":"Test","nameLocations":["158:4:71"],"nodeType":"IdentifierPath","referencedDeclaration":8195,"src":"158:4:71"},"id":47091,"nodeType":"InheritanceSpecifier","src":"158:4:71"}],"canonicalName":"G3MLibTest","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[47177,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"G3MLibTest","nameLocation":"144:10:71","scope":47178,"usedErrors":[],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":71} \ No newline at end of file diff --git a/out/G3MSolver.sol/G3MSolver.json b/out/G3MSolver.sol/G3MSolver.json deleted file mode 100644 index edfa899b..00000000 --- a/out/G3MSolver.sol/G3MSolver.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"allocateGivenX","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"amountX","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"allocateGivenY","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"amountY","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"calculateDiffLower","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"S","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"calculateDiffRaise","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"S","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"checkSwapConstant","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"computeOptimalArbLowerPrice","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"S","type":"uint256","internalType":"uint256"},{"name":"vUpper","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"computeOptimalArbRaisePrice","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"S","type":"uint256","internalType":"uint256"},{"name":"vUpper","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deallocateGivenX","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"amountX","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deallocateGivenY","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"amountY","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"fetchPoolParams","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct G3M.G3MParams","components":[{"name":"wX","type":"uint256","internalType":"uint256"},{"name":"wY","type":"uint256","internalType":"uint256"},{"name":"swapFee","type":"uint256","internalType":"uint256"},{"name":"controller","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getInitialPoolData","inputs":[{"name":"rx","type":"uint256","internalType":"uint256"},{"name":"S","type":"uint256","internalType":"uint256"},{"name":"params","type":"tuple","internalType":"struct G3M.G3MParams","components":[{"name":"wX","type":"uint256","internalType":"uint256"},{"name":"wY","type":"uint256","internalType":"uint256"},{"name":"swapFee","type":"uint256","internalType":"uint256"},{"name":"controller","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"getNextLiquidity","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"rx","type":"uint256","internalType":"uint256"},{"name":"ry","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getNextReserveX","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"ry","type":"uint256","internalType":"uint256"},{"name":"L","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getNextReserveY","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"rx","type":"uint256","internalType":"uint256"},{"name":"L","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReservesAndLiquidity","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"internalPrice","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"price","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"prepareControllerUpdate","inputs":[{"name":"controller","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"prepareFeeUpdate","inputs":[{"name":"swapFee","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"prepareWeightXUpdate","inputs":[{"name":"targetWeightX","type":"uint256","internalType":"uint256"},{"name":"targetTimestamp","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"simulateSwap","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"swapXIn","type":"bool","internalType":"bool"},{"name":"amountIn","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"strategy","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"error","name":"BisectionLib_InvalidBounds","inputs":[{"name":"lower","type":"uint256","internalType":"uint256"},{"name":"upper","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BisectionLib_RootOutsideBounds","inputs":[{"name":"lowerResult","type":"int256","internalType":"int256"},{"name":"upperResult","type":"int256","internalType":"int256"}]}],"bytecode":{"object":"0x60803461007457601f61255c38819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b0319169190911790556040516124cc90816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630f4166b814610167578063250968d914610162578063306db46b1461015d578063332266f3146101585780633928ff97146101535780633b4d10301461014e5780634fd67c58146101495780635a93b8ce146101445780636237569f1461013f5780637f17409c1461013a57806381b5fac214610135578063902ecaa214610130578063a8c62e761461012b578063b09d04e514610126578063cb1f553214610121578063ce153bf41461011c578063def15f9214610117578063ec29d8e614610112578063ee3e8cfb1461010d578063f2de7a7b146101085763f30d37f21461010357600080fd5b6109b2565b610996565b610962565b61094c565b6108e0565b61082f565b6107ea565b6107a6565b61077d565b610754565b610700565b6106a0565b61063f565b61061a565b6105f1565b6105bf565b61032e565b6102d6565b61029f565b610236565b346101d55760403660031901126101d55767ffffffffffffffff6024358181116101d557366023820112156101d55780600401359182116101d55736602483830101116101d5576101d19160246101c192016004356109e5565b6040519081529081906020820190565b0390f35b600080fd5b60005b8381106101ed5750506000910152565b81810151838201526020016101dd565b90602091610216815180928185528580860191016101da565b601f01601f1916010190565b9060206102339281815201906101fd565b90565b346101d55760403660031901126101d5576101d160405160026020820152600435604082015260243560608201526060815261027181610881565b6040519182916020835260208301906101fd565b60609060031901126101d557600435906024359060443590565b346101d55760206102ce6102b236610285565b906102c56102bf84610c45565b93610d72565b92919091610f1e565b604051908152f35b346101d55760206102ce6102e936610285565b906102f66102bf84610c45565b92919091611149565b801515036101d557565b90926080926102339594151583526020830152604082015281606082015201906101fd565b346101d55760603660031901126101d55760043560243561034e816102ff565b6104c46044359161035d610a11565b6103ad610368610a11565b9461037287610d72565b9491959092602096878401946040978886015285528352868a878b61039683610c45565b9889938851906103a78b5191610c45565b916112e2565b951561053b575061040c936103fe6103f96104409998956103f3866103dc610405976104199c99015187611d20565b926103ea8d518b5190611d4c565b91015190611324565b90611d20565b610a57565b9351610a7a565b8b52610a7a565b80868a015288518a610e65565b9061043761042c878a0193808552610a57565b808452825111610b21565b51905190610b14565b955b60c0865185880192610484845197610476888c015189519a8b96879485016040919493926060820195825260208201520152565b03601f1981018452836108be565b6000546104a79061049b906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610baf565b03915afa948515610536576000956104f6575b50906104eb916101d19596519051906114e4565b905194859485610309565b6101d19550906105216104eb939260c03d60c01161052f575b61051981836108be565b810190610b78565b5050505050955090916104d7565b503d61050f565b610bd3565b91966105b09561059d946105866105a59761057f6103f98c6103f36105b99f61057761056d6105909c83015188611d20565b93518b5190611d4c565b905190611324565b9451610a7a565b9401938452610a7a565b9081898d0152518c610bdf565b808a52610a57565b808952825111610a87565b51865190610b14565b95610442565b346101d55760203660031901126101d55760206102ce6004356105ea6105e482610c45565b91610d72565b50906114e4565b346101d55760206102ce61060436610285565b906106116102bf84610c45565b92919091611509565b346101d55760206102ce61063961063036610285565b91929092610c45565b916116a4565b346101d55760403660031901126101d55761067b6004356101d161068261067361066884610d72565b9190506024356116d1565b949093610c45565b84846119e2565b92604051938493846040919493926060820195825260208201520152565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36106c985610d72565b91506024356116fe565b939094610c45565b83856116a4565b91604051938493846040919493926060820195825260208201520152565b346101d55760203660031901126101d557608061071e600435610c45565b61075260405180926060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565bf35b346101d55760206102ce61076736610285565b906107746102bf84610c45565b92919091611725565b346101d55760003660031901126101d5576000546040516001600160a01b039091168152602090f35b346101d55760203660031901126101d5576101d160405160016020820152600435604082015260408152610271816108a2565b6001600160a01b038116036101d557565b346101d55760203660031901126101d5576101d160043561080a816107d9565b60408051600360208201526001600160a01b03909216828201528152610271816108a2565b346101d55760203660031901126101d5576101d161084e600435610d72565b604080519384526020840192909252908201529081906060820190565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761089d57604052565b61086b565b6060810190811067ffffffffffffffff82111761089d57604052565b90601f8019910116810190811067ffffffffffffffff82111761089d57604052565b346101d55760c03660031901126101d55760803660431901126101d5576101d161094060405161090f81610881565b60443581526064356020820152608435604082015260a435610930816107d9565b60608201526024356004356118a2565b60405191829182610222565b346101d55760206102ce6103a761063036610285565b346101d55760403660031901126101d55761067b6004356101d161068261067361098b84610d72565b9190506024356116fe565b346101d55760206102ce6109ac61063036610285565b916119e2565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36109db85610d72565b91506024356116d1565b9181606091810103126101d5576109fe61023392610c45565b9060408101359060208101359035610e8b565b604051906060820182811067ffffffffffffffff82111761089d5760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610a6557565b610a41565b906103e8918201809211610a6557565b91908201809211610a6557565b15610a8e57565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b90670de0b6b3a7640000918203918211610a6557565b906103e8918203918211610a6557565b6103e719810191908211610a6557565b91908203918211610a6557565b15610b2857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c09103126101d5578151610b8f816102ff565b9160208101519160408201519160608101519160a0608083015192015190565b610233939260609260018060a01b03168252602082015281604082015201906101fd565b6040513d6000823e3d90fd5b9161063961023393610c45565b91908260809103126101d557604051610c0481610881565b6060808294805184526020810151602085015260408101516040850152015191610c2d836107d9565b0152565b906080828203126101d55761023391610bec565b90604051610c5281610881565b600090818152816060602092828482015282604082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610536578092610cb3575b506102339293508082518301019101610c31565b9091503d8082863e610cc581866108be565b8401908285830312610d3b57845167ffffffffffffffff95868211610d3e57019082601f83011215610d3b57815195861161089d5760405192610d11601f8801601f19168601856108be565b868452848784010111610d3b57506102339394610d33918480850191016101da565b908392610c9f565b80fd5b8280fd5b908160209103126101d55751610233816107d9565b908160609103126101d5578051916040602083015192015190565b9060046020610d8e61049b61049b60005460018060a01b031690565b604051632bee84f160e21b815292839182905afa92831561053657610dd993606092600091610e36575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156105365760008093600093610dff575b50929190565b91935050610e25915060603d606011610e2f575b610e1d81836108be565b810190610d57565b9290929138610df9565b503d610e13565b610e58915060203d602011610e5e575b610e5081836108be565b810190610d42565b38610db8565b503d610e46565b916109ac61023393610c45565b81810392916000138015828513169184121617610a6557565b9260206103ea84610eae610ea66103f39697610eb499612087565b855190611324565b95612087565b670de0b6b3a763ffff198101908113600116610a655790565b908152602080820192909252604080820193909352606080820194909452845160808201529084015160a08201529083015160c08201529101516001600160a01b031660e08201526101000190565b565b909291855160208701516040880151610f3690610ade565b91610f418785612087565b610f4b8282611324565b92610f5591611324565b895185898581610f65858d6120ca565b90610f6f916120ca565b90610f79916120ca565b92610f83906120a9565b610f8c90610af4565b90610f9691610a7a565b90610fa0916120ca565b610fa986610ade565b610fb2916120ca565b92610fbc8a610a6a565b90610fc6906110f0565b610fcf91611324565b91610fd9906120a9565b610fe286610ade565b610feb916120ca565b610ff59089610a7a565b92610fff91610b14565b91611009916120ca565b895161101490610ade565b61101d90612068565b61102691611324565b61102f916120ca565b91885161103b90610ade565b61104488610a6a565b9261104f89896120ca565b90611059916120ca565b91611063866120a9565b9061106d90610ade565b611076916120ca565b92611080916120ca565b9161108a91610a7a565b611093916120ca565b9061109d846110f0565b916110a791612087565b6110b09161112d565b6000136110e557610233956110e0936110d29260405196879560208701610ecd565b03601f1981018352826108be565b611a30565b505050505050600090565b600160ff1b8114610a655760000390565b90816103e801918212600116610a6557565b9081670de0b6b3a763ffff190191821215600116610a6557565b91909160008382019384129112908015821691151617610a6557565b94939290928451906020860151604087015161116490610ade565b9261116f8787612087565b6111798282611324565b9261118391611324565b885187898581611193858c6120ca565b9061119d916120ca565b906111a7916120ca565b926111b290886120ca565b6111bc9088610b14565b906111c691610a7a565b906111d0916120ca565b6111d987610ade565b6111e2916120ca565b926111ed8a87610a7a565b906111f7906110f0565b61120091611324565b9161120b90866120ca565b61121487610ade565b61121d916120ca565b6112279088610a7a565b9261123191610b14565b9161123b916120ca565b885161124690610ade565b61124f90612068565b61125891611324565b611261916120ca565b965161126c90610ade565b936112778784610a7a565b96611281916120ca565b9061128b916120ca565b93611295916120ca565b9061129f90610ade565b6112a8916120ca565b926112b2916120ca565b916112bc91610a7a565b6112c5916120ca565b916112cf906110f0565b916112d991612087565b6102339161112d565b610233929160206112f86103f393855190611324565b93015190611324565b818102929160008212600160ff1b821416610a65578184051490151715610a6557565b6114d1610233927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642846114df9361135a60008213611dc8565b711340daa0d5f769dba1915cef59f0815a55066113768261210a565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d611301565b670de0b6b3a7640000900590565b611e00565b611503906114fb6102339493602085015190612087565b925190612087565b90612087565b90929185516040870151670de0b6b3a764000060008282039212818312811691831390151617610a655761153c83611101565b61154583611113565b61154e91611324565b908261155a8589611fa9565b9061156491611324565b61156d81611fc7565b9261157783611113565b6115819085611ff0565b61158b9089610e72565b91829161159788611101565b6115a19088611ff0565b936115ab91611ff0565b6115b487611f8a565b6115bd91611324565b926115c787611113565b6115d1908b611ff0565b91886115dc89611fc7565b906115e69161112d565b6115ef91611ff0565b6115f886611113565b61160191611ff0565b9261160b91611ff0565b926116169089611ff0565b9161162091610e72565b61162991611ff0565b6116329161112d565b9261163c85611101565b61164591611ff0565b9161164f876110f0565b9161165990611113565b61166291611ff0565b61166b9161112d565b61167491611ff0565b61167d91611fa9565b6000136110e5576102339561169f936110d29260405196879560208701610ecd565b611b55565b6116c461023393926116be6116cb93602086015190611324565b90611d4c565b9151611d7c565b90611324565b9291906116e76116e18284611d4c565b85611d20565b938103908111610a6557928103908111610a655790565b92919061170e6116e18284611d4c565b938101809111610a6557928101809111610a655790565b9293949091946040825192015193670de0b6b3a764000060008682039612818712811691871390151617610a6557828794611760868561112d565b61176983611113565b61177291611324565b9561177c91611fa9565b9061178691611324565b936117918584611ff0565b9461179b87611113565b6117a59087611ff0565b6117af9089610e72565b9283926117bc8b8761112d565b6117c69088611ff0565b946117d091611ff0565b6117d987611f8a565b6117e291611324565b936117ec87611113565b6117f6908b611ff0565b928b6118028989611ff0565b9061180c9161112d565b61181591611ff0565b61181e8a611113565b61182791611ff0565b9361183191611ff0565b9361183b91611ff0565b9161184591610e72565b61184e91611ff0565b6118579161112d565b956118619161112d565b61186a91611ff0565b92611874906110f0565b9161187e90611113565b61188791611ff0565b6118909161112d565b61189991611ff0565b61023391611fa9565b929190836118bd6118c2926118bd6020860151865190612087565b6120ca565b906118ce8183866112e2565b936118db82868584610e8b565b85906000808212156119a4575b808212611986575061192d61197a9261023396979886935b6119146040519889928c8a6020860161201f565b0396611928601f19988981018352826108be565b611c2c565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b039081018352826108be565b9661199191506120eb565b9561199e84888786610e8b565b906118e8565b9691965b8082136119c4575061192d61023395969761197a938693611900565b966119cf9150611d9e565b956119dc84888786610e8b565b906119a8565b60206119fb61023394936116be6116cb94865190611324565b920151611d7c565b9190610100838203126101d557825192602081015192610233604083015193608060608501519401610bec565b91906103e892600093600091838211611b3457611a4c8161217c565b611a5685836122d5565b6000611a628284611301565b13611b155750611a73859695610b04565b60019460009186805b611a8d575b50505050505050509050565b15611af0575b5085969798508091611aae611aa88b88610a7a565b60011c90565b99611ab98b876122d5565b9083611ac58784611301565b13611ae457505089925b87611ada8886610b14565b9201939998611a7c565b8b975090945092611acf565b861080611b0a575b15611b035788611a93565b8080611a81565b506101008210611af8565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e892600093600091838211611b3457611b71816122f6565b611b7b8583612441565b6000611b878284611301565b13611b155750611b98859695610b04565b60019460009186805b611bb15750505050505050509050565b15611c0e575b5085969798508091611bcc611aa88b88610a7a565b99611bd78b87612441565b9083611be38784611301565b13611c0257505089925b87611bf88886610b14565b9201939998611ba1565b8b975090945092611bed565b861080611c21575b15611b035788611bb7565b506101008210611c16565b60009392918491838211611d0057611c448282612462565b611c4e8583612462565b6000611c5a8284611301565b13611b155750611c6c83869796610b14565b60019460009186805b611c855750505050505050509050565b15611ce2575b5085969798508091611ca0611aa88b88610a7a565b99611cab8b87612462565b9083611cb78784611301565b13611cd657505089925b87611ccc8886610b14565b9201939998611c75565b8b975090945092611cc1565b861080611cf5575b15611b035788611c8b565b506101008210611cea565b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b8181029181830414901517600116156101d5576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101d557600190600019830104019015150290565b600181151516156101d5576ec097ce7bc90715b34b9f0fffffffff0460010190565b6103e9908181029181830414901517600116156101d55760016103e8600019830104019015150290565b15611dcf57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e19811315611f8457680755bf798b4a1bf1e5811215611f50576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029182051482151516156101d5570590565b6103e881810291600160ff1b81136001179183051416156101d557670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b9091131716156101d557670de0b6b3a7640000900590565b610f1c9360609296959360e083019783526020830152604082015201906060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000490565b670de0b6b3a764000090818102918183041490151782151516156101d5570490565b6103e89080820291820414600116156101d557670de0b6b3a7640000900490565b8181029181830414901517600116156101d557670de0b6b3a7640000900490565b6103e7908181029181830414901517600116156101d5576103e8900490565b612115811515611dc8565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b80518101602001906020019061219191611a03565b9291908351602085015160408601516121a990610ade565b916121b48686612087565b6121be8282611324565b926121c891611324565b8751868885816121d8858b6120ca565b906121e2916120ca565b906121ec916120ca565b926121f6906120a9565b6121ff90610af4565b9061220991610a7a565b90612213916120ca565b61221c86610ade565b612225916120ca565b9261222f89610a6a565b90612239906110f0565b61224291611324565b9161224c906120a9565b61225586610ade565b61225e916120ca565b6122689087610a7a565b9261227291610b14565b9161227c916120ca565b875161228790610ade565b61229090612068565b61229991611324565b6122a2916120ca565b95516122ad90610ade565b926122b786610a6a565b956122c1916120ca565b906122cb916120ca565b92611295906120a9565b906122ec6102339260208082518301019101611a03565b9493929092611149565b6123099060208082518301019101611a03565b6040819593959492945191015192670de0b6b3a764000060008582039512818612811691861390151617610a655781869361234385611101565b61234c83611113565b61235591611324565b9461235f91611fa9565b9061236991611324565b9261237384611fc7565b9361237d86611113565b6123879086611ff0565b6123919088610e72565b92839261239d8a611101565b6123a79087611ff0565b946123b191611ff0565b6123ba86611f8a565b6123c391611324565b936123cd86611113565b6123d7908a611ff0565b928a6123e288611fc7565b906123ec9161112d565b6123f591611ff0565b6123fe89611113565b61240791611ff0565b9361241191611ff0565b9361241b91611ff0565b9161242591610e72565b61242e91611ff0565b6124379161112d565b9461186190611101565b906124586102339260208082518301019101611a03565b9493929092611725565b805181019160e0828403126101d5576102339261249060208401519360806020604083015194019101610bec565b92610e8b56fea2646970667358221220ddef7f48a463f4812492c0cc35c784e857fab14e0a29d203d7aa233c67d9fa2964736f6c63430008160033","sourceMap":"226:8885:36:-:0;;;;;;;;;;;;;-1:-1:-1;;226:8885:36;;;;-1:-1:-1;;;;;226:8885:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;226:8885:36;;;;;;;;-1:-1:-1;226:8885:36;;-1:-1:-1;;;;;;226:8885:36;;;;;;;;;;;;;;;;;-1:-1:-1;226:8885:36;;;;;;-1:-1:-1;226:8885:36;;;;;-1:-1:-1;226:8885:36","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c80630f4166b814610167578063250968d914610162578063306db46b1461015d578063332266f3146101585780633928ff97146101535780633b4d10301461014e5780634fd67c58146101495780635a93b8ce146101445780636237569f1461013f5780637f17409c1461013a57806381b5fac214610135578063902ecaa214610130578063a8c62e761461012b578063b09d04e514610126578063cb1f553214610121578063ce153bf41461011c578063def15f9214610117578063ec29d8e614610112578063ee3e8cfb1461010d578063f2de7a7b146101085763f30d37f21461010357600080fd5b6109b2565b610996565b610962565b61094c565b6108e0565b61082f565b6107ea565b6107a6565b61077d565b610754565b610700565b6106a0565b61063f565b61061a565b6105f1565b6105bf565b61032e565b6102d6565b61029f565b610236565b346101d55760403660031901126101d55767ffffffffffffffff6024358181116101d557366023820112156101d55780600401359182116101d55736602483830101116101d5576101d19160246101c192016004356109e5565b6040519081529081906020820190565b0390f35b600080fd5b60005b8381106101ed5750506000910152565b81810151838201526020016101dd565b90602091610216815180928185528580860191016101da565b601f01601f1916010190565b9060206102339281815201906101fd565b90565b346101d55760403660031901126101d5576101d160405160026020820152600435604082015260243560608201526060815261027181610881565b6040519182916020835260208301906101fd565b60609060031901126101d557600435906024359060443590565b346101d55760206102ce6102b236610285565b906102c56102bf84610c45565b93610d72565b92919091610f1e565b604051908152f35b346101d55760206102ce6102e936610285565b906102f66102bf84610c45565b92919091611149565b801515036101d557565b90926080926102339594151583526020830152604082015281606082015201906101fd565b346101d55760603660031901126101d55760043560243561034e816102ff565b6104c46044359161035d610a11565b6103ad610368610a11565b9461037287610d72565b9491959092602096878401946040978886015285528352868a878b61039683610c45565b9889938851906103a78b5191610c45565b916112e2565b951561053b575061040c936103fe6103f96104409998956103f3866103dc610405976104199c99015187611d20565b926103ea8d518b5190611d4c565b91015190611324565b90611d20565b610a57565b9351610a7a565b8b52610a7a565b80868a015288518a610e65565b9061043761042c878a0193808552610a57565b808452825111610b21565b51905190610b14565b955b60c0865185880192610484845197610476888c015189519a8b96879485016040919493926060820195825260208201520152565b03601f1981018452836108be565b6000546104a79061049b906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610baf565b03915afa948515610536576000956104f6575b50906104eb916101d19596519051906114e4565b905194859485610309565b6101d19550906105216104eb939260c03d60c01161052f575b61051981836108be565b810190610b78565b5050505050955090916104d7565b503d61050f565b610bd3565b91966105b09561059d946105866105a59761057f6103f98c6103f36105b99f61057761056d6105909c83015188611d20565b93518b5190611d4c565b905190611324565b9451610a7a565b9401938452610a7a565b9081898d0152518c610bdf565b808a52610a57565b808952825111610a87565b51865190610b14565b95610442565b346101d55760203660031901126101d55760206102ce6004356105ea6105e482610c45565b91610d72565b50906114e4565b346101d55760206102ce61060436610285565b906106116102bf84610c45565b92919091611509565b346101d55760206102ce61063961063036610285565b91929092610c45565b916116a4565b346101d55760403660031901126101d55761067b6004356101d161068261067361066884610d72565b9190506024356116d1565b949093610c45565b84846119e2565b92604051938493846040919493926060820195825260208201520152565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36106c985610d72565b91506024356116fe565b939094610c45565b83856116a4565b91604051938493846040919493926060820195825260208201520152565b346101d55760203660031901126101d557608061071e600435610c45565b61075260405180926060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565bf35b346101d55760206102ce61076736610285565b906107746102bf84610c45565b92919091611725565b346101d55760003660031901126101d5576000546040516001600160a01b039091168152602090f35b346101d55760203660031901126101d5576101d160405160016020820152600435604082015260408152610271816108a2565b6001600160a01b038116036101d557565b346101d55760203660031901126101d5576101d160043561080a816107d9565b60408051600360208201526001600160a01b03909216828201528152610271816108a2565b346101d55760203660031901126101d5576101d161084e600435610d72565b604080519384526020840192909252908201529081906060820190565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761089d57604052565b61086b565b6060810190811067ffffffffffffffff82111761089d57604052565b90601f8019910116810190811067ffffffffffffffff82111761089d57604052565b346101d55760c03660031901126101d55760803660431901126101d5576101d161094060405161090f81610881565b60443581526064356020820152608435604082015260a435610930816107d9565b60608201526024356004356118a2565b60405191829182610222565b346101d55760206102ce6103a761063036610285565b346101d55760403660031901126101d55761067b6004356101d161068261067361098b84610d72565b9190506024356116fe565b346101d55760206102ce6109ac61063036610285565b916119e2565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36109db85610d72565b91506024356116d1565b9181606091810103126101d5576109fe61023392610c45565b9060408101359060208101359035610e8b565b604051906060820182811067ffffffffffffffff82111761089d5760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610a6557565b610a41565b906103e8918201809211610a6557565b91908201809211610a6557565b15610a8e57565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b90670de0b6b3a7640000918203918211610a6557565b906103e8918203918211610a6557565b6103e719810191908211610a6557565b91908203918211610a6557565b15610b2857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c09103126101d5578151610b8f816102ff565b9160208101519160408201519160608101519160a0608083015192015190565b610233939260609260018060a01b03168252602082015281604082015201906101fd565b6040513d6000823e3d90fd5b9161063961023393610c45565b91908260809103126101d557604051610c0481610881565b6060808294805184526020810151602085015260408101516040850152015191610c2d836107d9565b0152565b906080828203126101d55761023391610bec565b90604051610c5281610881565b600090818152816060602092828482015282604082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610536578092610cb3575b506102339293508082518301019101610c31565b9091503d8082863e610cc581866108be565b8401908285830312610d3b57845167ffffffffffffffff95868211610d3e57019082601f83011215610d3b57815195861161089d5760405192610d11601f8801601f19168601856108be565b868452848784010111610d3b57506102339394610d33918480850191016101da565b908392610c9f565b80fd5b8280fd5b908160209103126101d55751610233816107d9565b908160609103126101d5578051916040602083015192015190565b9060046020610d8e61049b61049b60005460018060a01b031690565b604051632bee84f160e21b815292839182905afa92831561053657610dd993606092600091610e36575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156105365760008093600093610dff575b50929190565b91935050610e25915060603d606011610e2f575b610e1d81836108be565b810190610d57565b9290929138610df9565b503d610e13565b610e58915060203d602011610e5e575b610e5081836108be565b810190610d42565b38610db8565b503d610e46565b916109ac61023393610c45565b81810392916000138015828513169184121617610a6557565b9260206103ea84610eae610ea66103f39697610eb499612087565b855190611324565b95612087565b670de0b6b3a763ffff198101908113600116610a655790565b908152602080820192909252604080820193909352606080820194909452845160808201529084015160a08201529083015160c08201529101516001600160a01b031660e08201526101000190565b565b909291855160208701516040880151610f3690610ade565b91610f418785612087565b610f4b8282611324565b92610f5591611324565b895185898581610f65858d6120ca565b90610f6f916120ca565b90610f79916120ca565b92610f83906120a9565b610f8c90610af4565b90610f9691610a7a565b90610fa0916120ca565b610fa986610ade565b610fb2916120ca565b92610fbc8a610a6a565b90610fc6906110f0565b610fcf91611324565b91610fd9906120a9565b610fe286610ade565b610feb916120ca565b610ff59089610a7a565b92610fff91610b14565b91611009916120ca565b895161101490610ade565b61101d90612068565b61102691611324565b61102f916120ca565b91885161103b90610ade565b61104488610a6a565b9261104f89896120ca565b90611059916120ca565b91611063866120a9565b9061106d90610ade565b611076916120ca565b92611080916120ca565b9161108a91610a7a565b611093916120ca565b9061109d846110f0565b916110a791612087565b6110b09161112d565b6000136110e557610233956110e0936110d29260405196879560208701610ecd565b03601f1981018352826108be565b611a30565b505050505050600090565b600160ff1b8114610a655760000390565b90816103e801918212600116610a6557565b9081670de0b6b3a763ffff190191821215600116610a6557565b91909160008382019384129112908015821691151617610a6557565b94939290928451906020860151604087015161116490610ade565b9261116f8787612087565b6111798282611324565b9261118391611324565b885187898581611193858c6120ca565b9061119d916120ca565b906111a7916120ca565b926111b290886120ca565b6111bc9088610b14565b906111c691610a7a565b906111d0916120ca565b6111d987610ade565b6111e2916120ca565b926111ed8a87610a7a565b906111f7906110f0565b61120091611324565b9161120b90866120ca565b61121487610ade565b61121d916120ca565b6112279088610a7a565b9261123191610b14565b9161123b916120ca565b885161124690610ade565b61124f90612068565b61125891611324565b611261916120ca565b965161126c90610ade565b936112778784610a7a565b96611281916120ca565b9061128b916120ca565b93611295916120ca565b9061129f90610ade565b6112a8916120ca565b926112b2916120ca565b916112bc91610a7a565b6112c5916120ca565b916112cf906110f0565b916112d991612087565b6102339161112d565b610233929160206112f86103f393855190611324565b93015190611324565b818102929160008212600160ff1b821416610a65578184051490151715610a6557565b6114d1610233927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642846114df9361135a60008213611dc8565b711340daa0d5f769dba1915cef59f0815a55066113768261210a565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d611301565b670de0b6b3a7640000900590565b611e00565b611503906114fb6102339493602085015190612087565b925190612087565b90612087565b90929185516040870151670de0b6b3a764000060008282039212818312811691831390151617610a655761153c83611101565b61154583611113565b61154e91611324565b908261155a8589611fa9565b9061156491611324565b61156d81611fc7565b9261157783611113565b6115819085611ff0565b61158b9089610e72565b91829161159788611101565b6115a19088611ff0565b936115ab91611ff0565b6115b487611f8a565b6115bd91611324565b926115c787611113565b6115d1908b611ff0565b91886115dc89611fc7565b906115e69161112d565b6115ef91611ff0565b6115f886611113565b61160191611ff0565b9261160b91611ff0565b926116169089611ff0565b9161162091610e72565b61162991611ff0565b6116329161112d565b9261163c85611101565b61164591611ff0565b9161164f876110f0565b9161165990611113565b61166291611ff0565b61166b9161112d565b61167491611ff0565b61167d91611fa9565b6000136110e5576102339561169f936110d29260405196879560208701610ecd565b611b55565b6116c461023393926116be6116cb93602086015190611324565b90611d4c565b9151611d7c565b90611324565b9291906116e76116e18284611d4c565b85611d20565b938103908111610a6557928103908111610a655790565b92919061170e6116e18284611d4c565b938101809111610a6557928101809111610a655790565b9293949091946040825192015193670de0b6b3a764000060008682039612818712811691871390151617610a6557828794611760868561112d565b61176983611113565b61177291611324565b9561177c91611fa9565b9061178691611324565b936117918584611ff0565b9461179b87611113565b6117a59087611ff0565b6117af9089610e72565b9283926117bc8b8761112d565b6117c69088611ff0565b946117d091611ff0565b6117d987611f8a565b6117e291611324565b936117ec87611113565b6117f6908b611ff0565b928b6118028989611ff0565b9061180c9161112d565b61181591611ff0565b61181e8a611113565b61182791611ff0565b9361183191611ff0565b9361183b91611ff0565b9161184591610e72565b61184e91611ff0565b6118579161112d565b956118619161112d565b61186a91611ff0565b92611874906110f0565b9161187e90611113565b61188791611ff0565b6118909161112d565b61189991611ff0565b61023391611fa9565b929190836118bd6118c2926118bd6020860151865190612087565b6120ca565b906118ce8183866112e2565b936118db82868584610e8b565b85906000808212156119a4575b808212611986575061192d61197a9261023396979886935b6119146040519889928c8a6020860161201f565b0396611928601f19988981018352826108be565b611c2c565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b039081018352826108be565b9661199191506120eb565b9561199e84888786610e8b565b906118e8565b9691965b8082136119c4575061192d61023395969761197a938693611900565b966119cf9150611d9e565b956119dc84888786610e8b565b906119a8565b60206119fb61023394936116be6116cb94865190611324565b920151611d7c565b9190610100838203126101d557825192602081015192610233604083015193608060608501519401610bec565b91906103e892600093600091838211611b3457611a4c8161217c565b611a5685836122d5565b6000611a628284611301565b13611b155750611a73859695610b04565b60019460009186805b611a8d575b50505050505050509050565b15611af0575b5085969798508091611aae611aa88b88610a7a565b60011c90565b99611ab98b876122d5565b9083611ac58784611301565b13611ae457505089925b87611ada8886610b14565b9201939998611a7c565b8b975090945092611acf565b861080611b0a575b15611b035788611a93565b8080611a81565b506101008210611af8565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e892600093600091838211611b3457611b71816122f6565b611b7b8583612441565b6000611b878284611301565b13611b155750611b98859695610b04565b60019460009186805b611bb15750505050505050509050565b15611c0e575b5085969798508091611bcc611aa88b88610a7a565b99611bd78b87612441565b9083611be38784611301565b13611c0257505089925b87611bf88886610b14565b9201939998611ba1565b8b975090945092611bed565b861080611c21575b15611b035788611bb7565b506101008210611c16565b60009392918491838211611d0057611c448282612462565b611c4e8583612462565b6000611c5a8284611301565b13611b155750611c6c83869796610b14565b60019460009186805b611c855750505050505050509050565b15611ce2575b5085969798508091611ca0611aa88b88610a7a565b99611cab8b87612462565b9083611cb78784611301565b13611cd657505089925b87611ccc8886610b14565b9201939998611c75565b8b975090945092611cc1565b861080611cf5575b15611b035788611c8b565b506101008210611cea565b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b8181029181830414901517600116156101d5576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101d557600190600019830104019015150290565b600181151516156101d5576ec097ce7bc90715b34b9f0fffffffff0460010190565b6103e9908181029181830414901517600116156101d55760016103e8600019830104019015150290565b15611dcf57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e19811315611f8457680755bf798b4a1bf1e5811215611f50576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029182051482151516156101d5570590565b6103e881810291600160ff1b81136001179183051416156101d557670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b9091131716156101d557670de0b6b3a7640000900590565b610f1c9360609296959360e083019783526020830152604082015201906060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000490565b670de0b6b3a764000090818102918183041490151782151516156101d5570490565b6103e89080820291820414600116156101d557670de0b6b3a7640000900490565b8181029181830414901517600116156101d557670de0b6b3a7640000900490565b6103e7908181029181830414901517600116156101d5576103e8900490565b612115811515611dc8565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b80518101602001906020019061219191611a03565b9291908351602085015160408601516121a990610ade565b916121b48686612087565b6121be8282611324565b926121c891611324565b8751868885816121d8858b6120ca565b906121e2916120ca565b906121ec916120ca565b926121f6906120a9565b6121ff90610af4565b9061220991610a7a565b90612213916120ca565b61221c86610ade565b612225916120ca565b9261222f89610a6a565b90612239906110f0565b61224291611324565b9161224c906120a9565b61225586610ade565b61225e916120ca565b6122689087610a7a565b9261227291610b14565b9161227c916120ca565b875161228790610ade565b61229090612068565b61229991611324565b6122a2916120ca565b95516122ad90610ade565b926122b786610a6a565b956122c1916120ca565b906122cb916120ca565b92611295906120a9565b906122ec6102339260208082518301019101611a03565b9493929092611149565b6123099060208082518301019101611a03565b6040819593959492945191015192670de0b6b3a764000060008582039512818612811691861390151617610a655781869361234385611101565b61234c83611113565b61235591611324565b9461235f91611fa9565b9061236991611324565b9261237384611fc7565b9361237d86611113565b6123879086611ff0565b6123919088610e72565b92839261239d8a611101565b6123a79087611ff0565b946123b191611ff0565b6123ba86611f8a565b6123c391611324565b936123cd86611113565b6123d7908a611ff0565b928a6123e288611fc7565b906123ec9161112d565b6123f591611ff0565b6123fe89611113565b61240791611ff0565b9361241191611ff0565b9361241b91611ff0565b9161242591610e72565b61242e91611ff0565b6124379161112d565b9461186190611101565b906124586102339260208082518301019101611a03565b9493929092611725565b805181019160e0828403126101d5576102339261249060208401519360806020604083015194019101610bec565b92610e8b56fea2646970667358221220ddef7f48a463f4812492c0cc35c784e857fab14e0a29d203d7aa233c67d9fa2964736f6c63430008160033","sourceMap":"226:8885:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;226:8885:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;226:8885:36;;;;;;;;;;-1:-1:-1;;226:8885:36;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;226:8885:36;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;226:8885:36;;;;;;;951:21:42;226:8885:36;940:65:42;;226:8885:36;;;;;;;;;;;;;;940:65:42;;;;;:::i;:::-;226:8885:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;7301:49;226:8885;;;:::i;:::-;7182:23;7253:31;7182:23;;;:::i;:::-;7253:31;;:::i;:::-;7301:49;;;;;:::i;:::-;226:8885;;;;;;;;;;;8008:34;226:8885;;;:::i;:::-;7889:23;7960:31;7889:23;;;:::i;7960:31::-;8008:34;;;;;:::i;226:8885::-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;226:8885:36;;;;;;;;;;;:::i;:::-;6763:65;226:8885;;;;;:::i;:::-;4660:110;226:8885;;:::i;:::-;4498:31;;;;:::i;:::-;226:8885;;;;;;4449:16;;;;226:8885;;4467:15;;;;226:8885;;;;;4573:23;;;;;;;:::i;:::-;4607:17;;;226:8885;;;4737:23;226:8885;;4737:23;;:::i;:::-;4660:110;;:::i;:::-;4795:1779;;;;4859:18;5283:23;4859:18;5175:11;799:19:18;5640:33:36;4859:18;;;4949:127;4859:18;799:19:18;5222:27:36;4859:18;5362:54;4859:18;;;226:8885;799:19:18;;:::i;:::-;226:8885:36;1133:19:18;226:8885:36;;;;1133:19:18;;:::i;:::-;5040:13:36;;226:8885;4949:127;;:::i;:::-;799:19:18;;:::i;:::-;5175:11:36;:::i;:::-;226:8885;;5222:27;:::i;:::-;226:8885;;5283:23;:::i;:::-;5267:13;;;;226:8885;;;5362:54;;:::i;:::-;5325:14;5472:138;5434:19;5325:14;;;226:8885;;;;5434:19;:::i;:::-;226:8885;;;;;-1:-1:-1;5472:138:36;:::i;:::-;226:8885;;;5640:33;;:::i;:::-;4795:1779;;6763:65;226:8885;;6657:14;;;226:8885;6630:57;226:8885;;6673:13;6630:57;6673:13;;;226:8885;;;6630:57;;;;;;;226:8885;;;;;;;;;;;;;;;;;;6630:57;;226:8885;;6630:57;;;;;;:::i;:::-;-1:-1:-1;226:8885:36;6763:32;;:19;;-1:-1:-1;;;;;226:8885:36;6763:19;226:8885;;-1:-1:-1;;;;;226:8885:36;;;6763:32;226:8885;;;;;;;;;;;;6763:65;;6804:4;226:8885;6763:65;;;:::i;:::-;;;;;;;;;;-1:-1:-1;6763:65:36;;;4795:1779;226:8885;;6901:56;226:8885;;;;;;;6901:56;;:::i;:::-;226:8885;;;;;;;:::i;6763:65::-;226:8885;6763:65;;;;6901:56;6763:65;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;4795:1779::-;5745:18;;6358:138;5745:18;6248:54;5745:18;6108:27;6320:19;5745:18;6061:11;799:19:18;5745:18:36;5835:127;6526:33;5745:18;1133:19:18;799;6169:23:36;5745:18;;;226:8885;799:19:18;;:::i;:::-;226:8885:36;;;;1133:19:18;;:::i;:::-;226:8885:36;;5835:127;;:::i;6061:11::-;226:8885;;6108:27;:::i;:::-;6091:14;;226:8885;;;6169:23;:::i;:::-;6153:13;;;;;226:8885;;6248:54;;:::i;:::-;226:8885;;;6320:19;:::i;:::-;226:8885;;;;;-1:-1:-1;6358:138:36;:::i;:::-;226:8885;;;6526:33;;:::i;:::-;4795:1779;;;226:8885;;;;;;-1:-1:-1;;226:8885:36;;;;;8720:28;226:8885;;8671:31;8610:23;;;:::i;:::-;8671:31;;:::i;:::-;8720:28;;;:::i;226:8885::-;;;;;7662:49;226:8885;;;:::i;:::-;7543:23;7614:31;7543:23;;;:::i;7614:31::-;7662:49;;;;;:::i;226:8885::-;;;;;3845:45;3866:23;226:8885;;;:::i;:::-;3866:23;;;;;:::i;:::-;3845:45;;:::i;226:8885::-;;;;;;-1:-1:-1;;226:8885:36;;;;4065:23;226:8885;;;4044:45;2906:46;2819:31;;;:::i;:::-;226:8885;;;;;2906:46;:::i;:::-;4065:23;;;;:::i;:::-;4044:45;;;:::i;:::-;226:8885;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;226:8885:36;;;;;;3866:23;226:8885;3845:45;2490;2403:31;;;:::i;:::-;226:8885;;;;2490:45;:::i;:::-;3866:23;;;;:::i;:::-;3845:45;;;:::i;:::-;226:8885;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;226:8885:36;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8339:34;226:8885;;;:::i;:::-;8220:23;8291:31;8220:23;;;:::i;8291:31::-;8339:34;;;;;:::i;226:8885::-;;;;;;-1:-1:-1;;226:8885:36;;;;;;;;-1:-1:-1;;;;;226:8885:36;;;;;;;;;;;;;;-1:-1:-1;;226:8885:36;;;;;;;514:21:42;226:8885:36;503:51:42;;226:8885:36;;;;;;;;503:51:42;;;;;:::i;226:8885:36:-;-1:-1:-1;;;;;226:8885:36;;;;;:::o;:::-;;;;;;-1:-1:-1;;226:8885:36;;;;;;;;;;:::i;:::-;;;;1438:24:42;226:8885:36;1427:48:42;;226:8885:36;-1:-1:-1;;;;;226:8885:36;;;;;;;1427:48:42;;;226:8885:36;1427:48:42;:::i;226:8885:36:-;;;;;;-1:-1:-1;;226:8885:36;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;226:8885:36;;;;;;-1:-1:-1;;226:8885:36;;;;;1774:37;226:8885;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1774:37;:::i;:::-;226:8885;;;;;;;:::i;:::-;;;;;3631:60;3667:23;226:8885;;;:::i;:::-;;;;;;-1:-1:-1;;226:8885:36;;;;4065:23;226:8885;;;4044:45;2075;1988:31;;;:::i;:::-;226:8885;;;;;2075:45;:::i;226:8885::-;;;;;4044:45;4065:23;226:8885;;;:::i;4065:23::-;4044:45;;:::i;226:8885::-;;;;;;-1:-1:-1;;226:8885:36;;;;;;3866:23;226:8885;3845:45;3324:46;3237:31;;;:::i;:::-;226:8885;;;;3324:46;:::i;8761:348::-;;;226:8885;8761:348;8936:45;;226:8885;;;;9021:23;9061:41;9021:23;;:::i;:::-;226:8885;;;;;;;;;;;;9061:41;:::i;226:8885::-;;;;;;;;;;;;;;;;;;-1:-1:-1;226:8885:36;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;6071:1;226:8885;;;;;;;:::o;:::-;;:::i;:::-;;7824:4:35;226:8885:36;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;226:8885:36;;;;;;;;;;;;;;;;;-1:-1:-1;;;226:8885:36;;;;;;;;;378:4:31;226:8885:36;;;;;;;;:::o;:::-;;7824:4:35;226:8885:36;;;;;;;;:::o;:::-;-1:-1:-1;;226:8885:36;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;226:8885:36;;;;;;;;;;;;;;;;;-1:-1:-1;;;226:8885:36;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3704:193;;3866:23;3845:45;3704:193;3866:23;:::i;226:8885::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;:::i;1158:228::-;;226:8885;;;;;:::i;:::-;-1:-1:-1;226:8885:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1311:41;;;;;226:8885;1311:41;;;;;;;;;;;1158:228;226:8885;1287:92;226:8885;;;;;;1287:92;;;;;;:::i;1311:41::-;;;;;;;;;;;;;:::i;:::-;;;226:8885;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;226:8885:36;;;;;:::i;:::-;;;;;;;;;;;;;1287:92;226:8885;;;;;;;;;;;:::i;:::-;1311:41;;;;;226:8885;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;1392:214::-;;1540:26;;:24;:19;226:8885;1550:8;226:8885;;;;;;;;;1540:24;226:8885;;-1:-1:-1;;;1540:26:36;;226:8885;;;;;1540:26;;;;;;;1534:65;1540:26;1534:65;1540:26;1550:8;1540:26;;;1392:214;226:8885;;;;;;;;;;;1534:65;;1540:26;1534:65;;226:8885;;;;;;;;1534:65;;;-1:-1:-1;;;;;226:8885:36;1534:65;;;;;;;1550:8;;;;1534:65;;;1392:214;1527:72;;;1392:214;:::o;1534:65::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;1540:26;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;3903:193;;4065:23;4044:45;3903:193;4065:23;:::i;226:8885::-;;;;;;;-1:-1:-1;226:8885:36;;;;;;;;;;;;;:::o;1692:384:42:-;;2000:9;965:21:18;1692:384:42;1880:50;965:21:18;1961:50:42;1692:384;;799:19:18;1692:384:42;965:21:18;:::i;:::-;226:8885:36;;1880:50:42;;:::i;:::-;965:21:18;;:::i;799:19::-;226:8885:36;;;;;;;;;;;1692:384:42;:::o;226:8885:36:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;226:8885:36;;;;;;;;:::o;:::-;:::o;7603:507:35:-;;;;226:8885:36;;4888:9:35;;;226:8885:36;4927:14:35;;;226:8885:36;4921:20:35;;;:::i;:::-;965:21:18;;;;;:::i;:::-;5024:17:35;;;;:::i;:::-;5078;;;;:::i;:::-;226:8885:36;;631:21:18;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;:::i;:::-;;;;;:::i;:::-;5254:27:35;;;:::i;:::-;:32;;;;:::i;:::-;631:21:18;;;;:::i;:::-;5327:11:35;;;:::i;:::-;631:21:18;;;:::i;:::-;5380:6:35;;;;:::i;:::-;5395:3;;;;:::i;:::-;5373:26;;;:::i;:::-;631:21:18;;;;:::i;:::-;5468:11:35;;;:::i;:::-;631:21:18;;;:::i;:::-;5427:53:35;;;;:::i;:::-;5503:14;;;;:::i;:::-;631:21:18;;;;:::i;:::-;226:8885:36;;5651:15:35;;;:::i;:::-;965:21:18;;;:::i;:::-;5568:118:35;;;:::i;:::-;631:21:18;;;:::i;:::-;226:8885:36;;;5775:15:35;;;:::i;:::-;5818:6;;;:::i;:::-;631:21:18;;;;;:::i;:::-;;;;;:::i;:::-;;;;;:::i;:::-;5956:11:35;;;;:::i;:::-;631:21:18;;;:::i;:::-;;;;;:::i;:::-;6030:16:35;;;;:::i;:::-;631:21:18;;;:::i;:::-;6076:10:35;;;;:::i;:::-;965:21:18;;;;:::i;:::-;6076:54:35;;;:::i;:::-;-1:-1:-1;;7904:51:35;;7964:143;226:8885:36;7983:32:35;226:8885:36;7983:32:35;226:8885:36;4927:14:35;226:8885:36;7983:32:35;;;4888:9;7983:32;;;:::i;:::-;;226:8885:36;;7983:32:35;;;;;;:::i;:::-;7964:143;:::i;7904:51::-;7940:8;;;;;;-1:-1:-1;7940:8:35;:::o;378:4:31:-;-1:-1:-1;;;378:4:31;;;;;;;:::o;:::-;;;8333::35;378::31;;;;;;;;:::o;:::-;;226:8885:36;;;378:4:31;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;4677:1475:35:-;;;;;;226:8885:36;;4888:9:35;;;;226:8885:36;4927:14:35;;;226:8885:36;4921:20:35;;;:::i;:::-;965:21:18;;;;;:::i;:::-;5024:17:35;;;;:::i;:::-;5078;;;;:::i;:::-;226:8885:36;;631:21:18;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;:::-;5254:27:35;;;;:::i;:::-;:32;;;;:::i;:::-;631:21:18;;;;:::i;:::-;5327:11:35;;;:::i;:::-;631:21:18;;;:::i;:::-;5380:6:35;;;;;:::i;:::-;5395:3;;;;:::i;:::-;5373:26;;;:::i;:::-;631:21:18;;;;;:::i;:::-;5468:11:35;;;:::i;:::-;631:21:18;;;:::i;:::-;5427:53:35;;;;:::i;:::-;5503:14;;;;:::i;:::-;631:21:18;;;;:::i;:::-;226:8885:36;;5651:15:35;;;:::i;:::-;965:21:18;;;:::i;:::-;5568:118:35;;;:::i;:::-;631:21:18;;;:::i;:::-;226:8885:36;;5775:15:35;;;:::i;:::-;5818:6;;;;;:::i;:::-;631:21:18;;;;:::i;:::-;;;;;:::i;:::-;;;;;:::i;:::-;5956:11:35;;;;:::i;:::-;631:21:18;;;:::i;:::-;;;;;:::i;:::-;6030:16:35;;;;:::i;:::-;631:21:18;;;:::i;:::-;6076:10:35;;;;:::i;:::-;965:21:18;;;;:::i;:::-;6076:54:35;;;:::i;2172:294:42:-;799:19:18;2172:294:42;;2437:9;2344:36;2412;2172:294;226:8885:36;;2344:36:42;;:::i;:::-;2437:9;;226:8885:36;2412:36:42;;:::i;226:8885:36:-;;;;;;;;;-1:-1:-1;;;226:8885:36;;;;;;;;;;;;;;;:::o;1208:273:18:-;1399:12;1391:36;1208:273;7380:72;1398:28;1208:273;4688:27;-1:-1:-1;4696:5:18;;4688:27;:::i;:::-;7125:43;5125:16;;;:::i;:::-;5145:2;226:8885:36;;;5175:3:18;226:8885:36;;;5175:3:18;226:8885:36;;;;;7232:71:18;226:8885:36;;6411:30:18;226:8885:36;6343:32:18;226:8885:36;6274:33:18;226:8885:36;6205:33:18;226:8885:36;6136:33:18;226:8885:36;6068:32:18;226:8885:36;6001:31:18;226:8885:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5533:32:18;226:8885:36;5465:32:18;226:8885:36;5398:31:18;226:8885:36;;;;;;;;;;;;;;;;;;;;;;;;6455:304:18;226:8885:36;;;;;1399:12:18;:::i;:::-;378:4:31;226:8885:36;;;;1398:28:18;1391:36;:::i;3209:234:35:-;965:21:18;3209:234:35;965:21:18;;3209:234:35;;3359:9;;;226:8885:36;965:21:18;;:::i;:::-;226:8885:36;;965:21:18;;:::i;:::-;;;:::i;8112:507:35:-;;;;226:8885:36;;6408:14:35;;;226:8885:36;378:4:31;8436:1:35;226:8885:36;;;;;;;;;;;;;;;;;;;6656:7:35;;;:::i;:::-;6672:11;;;:::i;:::-;6655:29;;;:::i;:::-;6713:13;;;;;;:::i;:::-;6712:26;;;;:::i;:::-;6771:22;;;:::i;:::-;6870:14;;;;:::i;:::-;6845:40;;;;:::i;:::-;6840:45;;;;:::i;:::-;6949:7;;;;;;:::i;:::-;6939:18;;;;:::i;:::-;7044:41;;;;:::i;:::-;7094:16;;;:::i;:::-;7043:68;;;:::i;:::-;7147:11;;;;:::i;:::-;7137:22;;;;:::i;:::-;7215:13;;;;;:::i;:::-;:18;;;;:::i;:::-;7196:38;;;:::i;:::-;7242:14;;;:::i;:::-;7196:61;;;:::i;:::-;7291:20;;;;:::i;:::-;7314:16;;;;;:::i;:::-;7338:14;;;;:::i;:::-;7314:39;;;:::i;:::-;7291:62;;;:::i;:::-;7425:7;;;;:::i;:::-;7415:18;;;:::i;:::-;7459:3;;;;:::i;:::-;7490:14;;;;:::i;:::-;7465:40;;;:::i;:::-;7459:46;;;:::i;:::-;7529:20;;;:::i;:::-;7569:29;;;:::i;:::-;8436:1;-1:-1:-1;8413:51:35;;8473:143;226:8885:36;8492:32:35;226:8885:36;8492:32:35;226:8885:36;6408:14:35;226:8885:36;8492:32:35;;;;;;;:::i;:::-;8473:143;:::i;2828:295::-;1133:19:18;2979:135:35;2828:295;;3026:36;1133:19:18;2828:295:35;3051:9;;;226:8885:36;3026:36:35;;:::i;:::-;1133:19:18;;:::i;:::-;226:8885:36;;1133:19:18;:::i;:::-;2979:135:35;;:::i;732:340:31:-;;;;799:19:18;1133;;;;:::i;:::-;799;;:::i;:::-;226:8885:36;;;;;;;;;;;;;;;;732:340:31;:::o;:::-;;;;799:19:18;1133;;;;:::i;799:::-;226:8885:36;;;;;;;;;;;;;;;;732:340:31;:::o;6154:1447:35:-;;;;;;;6408:14;226:8885:36;;6408:14:35;;226:8885:36;378:4:31;;-1:-1:-1;226:8885:36;;;;;;;;;;;;;;;;;;;6656:7:35;;;;;;;:::i;:::-;6672:11;;;:::i;:::-;6655:29;;;:::i;:::-;6713:13;;;;:::i;:::-;6712:26;;;;:::i;:::-;6771:22;;;;;:::i;:::-;6870:14;;;;:::i;:::-;6845:40;;;;:::i;:::-;6840:45;;;;:::i;:::-;6949:7;;;;;;;:::i;:::-;6939:18;;;;:::i;:::-;7044:41;;;;:::i;:::-;7094:16;;;:::i;:::-;7043:68;;;:::i;:::-;7147:11;;;;:::i;:::-;7137:22;;;;:::i;:::-;7215:13;;;;;;:::i;:::-;:18;;;;:::i;:::-;7196:38;;;:::i;:::-;7242:14;;;:::i;:::-;7196:61;;;:::i;:::-;7291:20;;;;:::i;:::-;7314:16;;;;:::i;:::-;7338:14;;;;:::i;:::-;7314:39;;;:::i;:::-;7291:62;;;:::i;:::-;7425:7;;;;:::i;:::-;7415:18;;;:::i;:::-;7459:3;;;;:::i;:::-;7490:14;;;;:::i;:::-;7465:40;;;:::i;:::-;7459:46;;;:::i;:::-;7529:20;;;:::i;:::-;7569:29;;;:::i;1858:513::-;;;;;631:21:18;;1858:513:35;965:21:18;1349:9:35;;;226:8885:36;;;965:21:18;;:::i;:::-;631;:::i;:::-;2076:29:35;;;;;;:::i;:::-;2139:69;;;;;;;:::i;:::-;8798:29;;-1:-1:-1;8914:21:35;;;-1:-1:-1;;;8954:21:35;;;;;;8910:600;9519:160;2296:72;8910:600;2296:72;8910:600;;;;;;9538:45;226:8885:36;;9538:45:35;;;;;1349:9;9538:45;;;:::i;:::-;;226:8885:36;9538:45:35;226:8885:36;;9538:45:35;;;;;;;;:::i;:::-;9519:160;:::i;:::-;226:8885:36;;;2334:14:35;;;226:8885:36;2350:17:35;;;;226:8885:36;;;1349:9:35;2296:72;;226:8885:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;226:8885:36;;;;;;;;;;;;;;;2296:72:35;;;;;;;;;:::i;8947:268::-;8999:27;;;;;:::i;:::-;9060:144;;;;;;;:::i;:::-;8947:268;;;8910:600;9237:267;;;9244:21;;;;;;8910:600;9519:160;2296:72;8910:600;;;2296:72;8910:600;;;;;9237:267;9289:26;;;;;:::i;:::-;9349:144;;;;;;;:::i;:::-;9237:267;;;2452:295;2726:9;1133:19:18;2603:135:35;2452:295;;2650:36;1133:19:18;2452:295:35;226:8885:36;;2650:36:35;;:::i;1133:19:18:-;2726:9:35;;226:8885:36;1133:19:18;:::i;226:8885:36:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1009:1952:33:-;;;7824:4:35;1215:12:33;226:8885:36;1215:12:33;226:8885:36;1239:13:33;;;;1235:66;;1632:15;;;:::i;:::-;1674;;;;:::i;:::-;226:8885:36;1699:25:33;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;:::i;:::-;8063:1:35;;226:8885:36;;8063:1:35;;;;;1978:981:33;1009:1952;;;;;;;;;;:::o;1978:981::-;;;;;2909:48;;;;;;;2123:13;2122:19;2123:13;;;;:::i;:::-;226:8885:36;;;;2122:19:33;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;226:8885:36;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;226:8885:36;;1978:981:33;;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;2909:18;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;;;;;;2931:26;8075:3:35;2931:26:33;;2909:48;;1695:115;226:8885:36;;-1:-1:-1;;;1747:56:33;;;;;226:8885:36;;;;;;;;;;1747:56:33;1235:66;226:8885:36;;-1:-1:-1;;;1261:40:33;;7824:4:35;1261:40:33;;;226:8885:36;;;;;;;;;1747:56:33;1009:1952;;;8333:4:35;1215:12:33;226:8885:36;1215:12:33;226:8885:36;1239:13:33;;;;1235:66;;1632:15;;;:::i;:::-;1674;;;;:::i;:::-;226:8885:36;1699:25:33;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;:::i;:::-;8572:1:35;;226:8885:36;;8572:1:35;;;;;1009:1952:33;;;;;;;;;;:::o;1978:981::-;;;;;2909:48;;;;;;;2123:13;2122:19;2123:13;;;;:::i;2122:19::-;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;226:8885:36;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;226:8885:36;;1978:981:33;;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;2909:18;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;2931:26;8584:3:35;2931:26:33;;2909:48;;1009:1952;226:8885:36;;1009:1952:33;;226:8885:36;;1239:13:33;;;1235:66;;1632:15;;;;:::i;:::-;1674;;;;:::i;:::-;226:8885:36;1699:25:33;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;;:::i;:::-;9631:1:35;;226:8885:36;;9631:1:35;;;;;1009:1952:33;;;;;;;;;;:::o;1978:981::-;;;;;2909:48;;;;;;;2123:13;2122:19;2123:13;;;;:::i;2122:19::-;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;226:8885:36;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;226:8885:36;;1978:981:33;;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;2909:18;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;2931:26;9643:3:35;2931:26:33;;2909:48;;1235:66;226:8885:36;;-1:-1:-1;;;1261:40:33;;;;;226:8885:36;;;;;;;;;;;1747:56:33;8282:752:18;8417:611;;;;;;;;;;;;;;;;;378:4:31;8417:611:18;;;;;;;;;;8282:752;:::o;:::-;;378:4:31;8417:611:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8282:752;:::o;:::-;8417:611;;;;;;;;;;;;;8282:752::o;:::-;9304:4:35;8417:611:18;;;;;;;;;;;;;;;;;;9310:4:35;8417:611:18;;;;;;;;;;8282:752;:::o;226:8885:36:-;;;;:::o;:::-;;;-1:-1:-1;;;226:8885:36;;;;;;;;;;;;-1:-1:-1;;;226:8885:36;;;;;;;1487:3103:18;-1:-1:-1;;1713:26:18;;;1709:40;;1948:21;1943:26;;;1939:54;;2266:5;226:8885:36;;;;4502:49:18;2559:29;226:8885:36;;2591:5:18;226:8885:36;2591:5:18;;226:8885:36;;;;;;;;;;;;;;2874:31:18;226:8885:36;;;;;;3074:35:18;3649;226:8885:36;;;;3508:34:18;226:8885:36;;;;3371:32:18;226:8885:36;;;;;;;;;;;;;;;;;;;;;;;;;3136:40:18;;;;226:8885:36;2941:32:18;226:8885:36;;;;;;;;;;;;;;;3699:327:18;226:8885:36;;4564:3:18;226:8885:36;;1487:3103:18;:::o;1939:54::-;226:8885:36;;-1:-1:-1;;;1971:22:18;;226:8885:36;1971:22:18;;;226:8885:36;;;;;;-1:-1:-1;;;226:8885:36;;;;;;1747:56:33;1709:40:18;1741:8;1748:1;1741:8;:::o;3730:500:30:-;3852:372;;;;;;;;;;3730:500;:::o;:::-;3852:372;;;;;;;;;;;;;;;;;3730:500;:::o;2508:1216::-;8333:4:35;2630:1088:30;;;378:4:31;226:8885:36;378:4:31;;2630:1088:30;;;;;;;;;;;;;;;2508:1216;:::o;:::-;2630:1088;;;;;;;;;;;;-1:-1:-1;;2630:1088:30;;;-1:-1:-1;;;2630:1088:30;;;;;;;;;;;2508:1216;:::o;226:8885:36:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7741:535:18;7878:392;;;;;;;;;;7741:535;:::o;:::-;378:4:31;7878:392:18;;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;7824:4:35;7878:392:18;;;;;;;;;;;;;378:4:31;7878:392:18;;7741:535;:::o;:::-;7878:392;;;;;;;;;;;;;;;;378:4:31;7878:392:18;;7741:535;:::o;:::-;9016:3:35;7878:392:18;;;;;;;;;;;;;;;;;9021:4:35;7878:392:18;;7741:535;:::o;15328:575::-;15397:27;15405:5;;;15397:27;:::i;:::-;15435:462;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:575;:::o;226:8885:36:-;;;4166:69:35;;;;;;;;;;;:::i;:::-;226:8885:36;;;;;4166:69:35;4888:9;;226:8885:36;4927:14:35;;;226:8885:36;4921:20:35;;;:::i;:::-;965:21:18;;;;;:::i;:::-;5024:17:35;;;;:::i;:::-;5078;;;;:::i;:::-;226:8885:36;;631:21:18;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;:::i;:::-;;;;;:::i;:::-;5254:27:35;;;:::i;:::-;:32;;;;:::i;:::-;631:21:18;;;;:::i;:::-;5327:11:35;;;:::i;:::-;631:21:18;;;:::i;:::-;5380:6:35;;;;:::i;:::-;5395:3;;;;:::i;:::-;5373:26;;;:::i;:::-;631:21:18;;;;:::i;:::-;5468:11:35;;;:::i;:::-;631:21:18;;;:::i;:::-;5427:53:35;;;;:::i;:::-;5503:14;;;;:::i;:::-;631:21:18;;;;:::i;:::-;226:8885:36;;5651:15:35;;;:::i;:::-;965:21:18;;;:::i;:::-;5568:118:35;;;:::i;:::-;631:21:18;;;:::i;:::-;226:8885:36;;5775:15:35;;;:::i;:::-;5818:6;;;;:::i;:::-;631:21:18;;;;:::i;:::-;;;;;:::i;:::-;;;;;:::i;226:8885:36:-;;4166:69:35;4248:63;226:8885:36;4166:69:35;226:8885:36;;;4166:69:35;;;;;;:::i;:::-;4248:63;;;;;;:::i;226:8885:36:-;4479:69:35;226:8885:36;4479:69:35;226:8885:36;;;4479:69:35;;;;;;:::i;:::-;6408:14;226:8885:36;;;;;;;;6408:14:35;;226:8885:36;378:4:31;;-1:-1:-1;226:8885:36;;;;;;;;;;;;;;;;;;;6656:7:35;;;;;;:::i;:::-;6672:11;;;:::i;:::-;6655:29;;;:::i;:::-;6713:13;;;;:::i;:::-;6712:26;;;;:::i;:::-;6771:22;;;;:::i;:::-;6870:14;;;;:::i;:::-;6845:40;;;;:::i;:::-;6840:45;;;;:::i;:::-;6949:7;;;;;;:::i;:::-;6939:18;;;;:::i;:::-;7044:41;;;;:::i;:::-;7094:16;;;:::i;:::-;7043:68;;;:::i;:::-;7147:11;;;;:::i;:::-;7137:22;;;;:::i;:::-;7215:13;;;;;:::i;:::-;:18;;;;:::i;:::-;7196:38;;;:::i;:::-;7242:14;;;:::i;:::-;7196:61;;;:::i;:::-;7291:20;;;;:::i;:::-;7314:16;;;;:::i;:::-;7338:14;;;;:::i;:::-;7314:39;;;:::i;:::-;7291:62;;;:::i;:::-;7425:7;;;;:::i;226:8885:36:-;;4479:69:35;4561:63;226:8885:36;4479:69:35;226:8885:36;;;4479:69:35;;;;;;:::i;:::-;4561:63;;;;;;:::i;226:8885:36:-;;;3862:59:35;;226:8885:36;;;;;;;;3934:64:35;3862:59;226:8885:36;3862:59:35;;;226:8885:36;;;3862:59:35;226:8885:36;;;;3862:59:35;;226:8885:36;;;:::i;:::-;3934:64:35;;:::i","linkReferences":{}},"methodIdentifiers":{"allocateGivenX(uint256,uint256)":"ee3e8cfb","allocateGivenY(uint256,uint256)":"7f17409c","calculateDiffLower(uint256,uint256,uint256)":"332266f3","calculateDiffRaise(uint256,uint256,uint256)":"902ecaa2","checkSwapConstant(uint256,bytes)":"0f4166b8","computeOptimalArbLowerPrice(uint256,uint256,uint256)":"306db46b","computeOptimalArbRaisePrice(uint256,uint256,uint256)":"4fd67c58","deallocateGivenX(uint256,uint256)":"6237569f","deallocateGivenY(uint256,uint256)":"f30d37f2","fetchPoolParams(uint256)":"81b5fac2","getInitialPoolData(uint256,uint256,(uint256,uint256,uint256,address))":"def15f92","getNextLiquidity(uint256,uint256,uint256)":"ec29d8e6","getNextReserveX(uint256,uint256,uint256)":"5a93b8ce","getNextReserveY(uint256,uint256,uint256)":"f2de7a7b","getReservesAndLiquidity(uint256)":"ce153bf4","internalPrice(uint256)":"3b4d1030","prepareControllerUpdate(address)":"cb1f5532","prepareFeeUpdate(uint256)":"b09d04e5","prepareWeightXUpdate(uint256,uint256)":"250968d9","simulateSwap(uint256,bool,uint256)":"3928ff97","strategy()":"a8c62e76"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"upper\",\"type\":\"uint256\"}],\"name\":\"BisectionLib_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"lowerResult\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"upperResult\",\"type\":\"int256\"}],\"name\":\"BisectionLib_RootOutsideBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountX\",\"type\":\"uint256\"}],\"name\":\"allocateGivenX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountY\",\"type\":\"uint256\"}],\"name\":\"allocateGivenY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"S\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"v\",\"type\":\"uint256\"}],\"name\":\"calculateDiffLower\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"S\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"v\",\"type\":\"uint256\"}],\"name\":\"calculateDiffRaise\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"checkSwapConstant\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"S\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"vUpper\",\"type\":\"uint256\"}],\"name\":\"computeOptimalArbLowerPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"S\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"vUpper\",\"type\":\"uint256\"}],\"name\":\"computeOptimalArbRaisePrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountX\",\"type\":\"uint256\"}],\"name\":\"deallocateGivenX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountY\",\"type\":\"uint256\"}],\"name\":\"deallocateGivenY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"fetchPoolParams\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"wX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"wY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"internalType\":\"struct G3M.G3MParams\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"rx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"S\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"wX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"wY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"internalType\":\"struct G3M.G3MParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"getInitialPoolData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ry\",\"type\":\"uint256\"}],\"name\":\"getNextLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ry\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"L\",\"type\":\"uint256\"}],\"name\":\"getNextReserveX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"L\",\"type\":\"uint256\"}],\"name\":\"getNextReserveY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getReservesAndLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"internalPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"name\":\"prepareControllerUpdate\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"}],\"name\":\"prepareFeeUpdate\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"targetWeightX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"targetTimestamp\",\"type\":\"uint256\"}],\"name\":\"prepareWeightXUpdate\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"swapXIn\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"name\":\"simulateSwap\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"BisectionLib_InvalidBounds(uint256,uint256)\":[{\"details\":\"Thrown when the lower bound is greater than the upper bound.\"}],\"BisectionLib_RootOutsideBounds(int256,int256)\":[{\"details\":\"Thrown when the result of the function `fx` for each input, `upper` and `lower`, is the same sign.\"}]},\"kind\":\"dev\",\"methods\":{\"internalPrice(uint256)\":{\"details\":\"Computes the internal price using this strategie's slot parameters.\"},\"simulateSwap(uint256,bool,uint256)\":{\"details\":\"Estimates a swap's reserves and adjustments and returns its validity.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/solvers/G3M/G3MSolver.sol\":\"G3MSolver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/SignedWadMath.sol\":{\"keccak256\":\"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a\",\"dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/solvers/G3M/G3MExtendedLib.sol\":{\"keccak256\":\"0xa7e4eb7172ca81b319ccb5ac248c302fb549be3eb6badda424800f73edfbc448\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2d53a62a983c65dd0b892f30d30b603fc5cf7ebb4895dbdcb0a05a9eae1a431f\",\"dweb:/ipfs/QmNXKi6XUWswwKuzaE6SorZhRvd7Nz6dxYmLmii8bVcRhK\"]},\"src/solvers/G3M/G3MSolver.sol\":{\"keccak256\":\"0x78a3ae3db50beba513113d6a79c1d29282ccc46852563237fc3852eb1390376e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://146cfcc48b6a2fd6cd392f8508232b201add90f0f4352b141bc8d25b821884da\",\"dweb:/ipfs/QmXB3vg58RwUEEMCqgvdEGfwZjTzvE9PXDEZ8XFYsmiK1s\"]},\"src/strategies/G3M/G3M.sol\":{\"keccak256\":\"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c\",\"dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE\"]},\"src/strategies/G3M/G3MLib.sol\":{\"keccak256\":\"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70\",\"dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"lower","type":"uint256"},{"internalType":"uint256","name":"upper","type":"uint256"}],"type":"error","name":"BisectionLib_InvalidBounds"},{"inputs":[{"internalType":"int256","name":"lowerResult","type":"int256"},{"internalType":"int256","name":"upperResult","type":"int256"}],"type":"error","name":"BisectionLib_RootOutsideBounds"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"amountX","type":"uint256"}],"stateMutability":"view","type":"function","name":"allocateGivenX","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"amountY","type":"uint256"}],"stateMutability":"view","type":"function","name":"allocateGivenY","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"S","type":"uint256"},{"internalType":"uint256","name":"v","type":"uint256"}],"stateMutability":"view","type":"function","name":"calculateDiffLower","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"S","type":"uint256"},{"internalType":"uint256","name":"v","type":"uint256"}],"stateMutability":"view","type":"function","name":"calculateDiffRaise","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"checkSwapConstant","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"S","type":"uint256"},{"internalType":"uint256","name":"vUpper","type":"uint256"}],"stateMutability":"view","type":"function","name":"computeOptimalArbLowerPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"S","type":"uint256"},{"internalType":"uint256","name":"vUpper","type":"uint256"}],"stateMutability":"view","type":"function","name":"computeOptimalArbRaisePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"amountX","type":"uint256"}],"stateMutability":"view","type":"function","name":"deallocateGivenX","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"amountY","type":"uint256"}],"stateMutability":"view","type":"function","name":"deallocateGivenY","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"fetchPoolParams","outputs":[{"internalType":"struct G3M.G3MParams","name":"","type":"tuple","components":[{"internalType":"uint256","name":"wX","type":"uint256"},{"internalType":"uint256","name":"wY","type":"uint256"},{"internalType":"uint256","name":"swapFee","type":"uint256"},{"internalType":"address","name":"controller","type":"address"}]}]},{"inputs":[{"internalType":"uint256","name":"rx","type":"uint256"},{"internalType":"uint256","name":"S","type":"uint256"},{"internalType":"struct G3M.G3MParams","name":"params","type":"tuple","components":[{"internalType":"uint256","name":"wX","type":"uint256"},{"internalType":"uint256","name":"wY","type":"uint256"},{"internalType":"uint256","name":"swapFee","type":"uint256"},{"internalType":"address","name":"controller","type":"address"}]}],"stateMutability":"pure","type":"function","name":"getInitialPoolData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"rx","type":"uint256"},{"internalType":"uint256","name":"ry","type":"uint256"}],"stateMutability":"view","type":"function","name":"getNextLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"ry","type":"uint256"},{"internalType":"uint256","name":"L","type":"uint256"}],"stateMutability":"view","type":"function","name":"getNextReserveX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"rx","type":"uint256"},{"internalType":"uint256","name":"L","type":"uint256"}],"stateMutability":"view","type":"function","name":"getNextReserveY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getReservesAndLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"internalPrice","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"controller","type":"address"}],"stateMutability":"pure","type":"function","name":"prepareControllerUpdate","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"swapFee","type":"uint256"}],"stateMutability":"pure","type":"function","name":"prepareFeeUpdate","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"targetWeightX","type":"uint256"},{"internalType":"uint256","name":"targetTimestamp","type":"uint256"}],"stateMutability":"pure","type":"function","name":"prepareWeightXUpdate","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bool","name":"swapXIn","type":"bool"},{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"view","type":"function","name":"simulateSwap","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"strategy","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"internalPrice(uint256)":{"details":"Computes the internal price using this strategie's slot parameters."},"simulateSwap(uint256,bool,uint256)":{"details":"Estimates a swap's reserves and adjustments and returns its validity."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/solvers/G3M/G3MSolver.sol":"G3MSolver"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/SignedWadMath.sol":{"keccak256":"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630","urls":["bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a","dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN"],"license":"MIT"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/solvers/G3M/G3MExtendedLib.sol":{"keccak256":"0xa7e4eb7172ca81b319ccb5ac248c302fb549be3eb6badda424800f73edfbc448","urls":["bzz-raw://2d53a62a983c65dd0b892f30d30b603fc5cf7ebb4895dbdcb0a05a9eae1a431f","dweb:/ipfs/QmNXKi6XUWswwKuzaE6SorZhRvd7Nz6dxYmLmii8bVcRhK"],"license":"GPL-3.0-or-later"},"src/solvers/G3M/G3MSolver.sol":{"keccak256":"0x78a3ae3db50beba513113d6a79c1d29282ccc46852563237fc3852eb1390376e","urls":["bzz-raw://146cfcc48b6a2fd6cd392f8508232b201add90f0f4352b141bc8d25b821884da","dweb:/ipfs/QmXB3vg58RwUEEMCqgvdEGfwZjTzvE9PXDEZ8XFYsmiK1s"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3M.sol":{"keccak256":"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034","urls":["bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c","dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3MLib.sol":{"keccak256":"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4","urls":["bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70","dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m"],"license":"GPL-3.0-or-later"}},"version":1},"ast":{"absolutePath":"src/solvers/G3M/G3MSolver.sol","id":33821,"exportedSymbols":{"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"G3M":[37911],"G3MLib":[38158],"G3MSolver":[33820],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"Min":[27736],"ONE":[30639],"SQRT_WAD":[30630],"SignedWadMathLib":[30623],"TWO":[30633],"ZERO":[30649],"abs":[27763],"bisection":[31118],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeInitialPoolData":[31906],"computeL":[31844],"computeLGivenX":[31662],"computeLGivenY":[31688],"computeNextLiquidity":[32899],"computeNextRx":[32006],"computeNextRy":[31956],"computeOptimalLower":[32732],"computeOptimalRaise":[32798],"computePrice":[32043],"computeX":[31792],"computeXGivenL":[31714],"computeY":[31766],"computeYGivenL":[31740],"console2":[25512],"diffLower":[32419],"diffRaise":[32666],"diviWad":[27813],"findRootLiquidity":[32083],"findRootLower":[32129],"findRootRaise":[32175],"muli":[27777],"muliWad":[27795]},"nodeType":"SourceUnit","src":"45:9067:36","nodes":[{"id":32901,"nodeType":"PragmaDirective","src":"45:24:36","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":32902,"nodeType":"ImportDirective","src":"71:34:36","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/tokens/ERC20.sol","file":"solmate/tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":33821,"sourceUnit":25949,"symbolAliases":[],"unitAlias":""},{"id":32903,"nodeType":"ImportDirective","src":"106:38:36","nodes":[],"absolutePath":"src/interfaces/IStrategy.sol","file":"src/interfaces/IStrategy.sol","nameLocation":"-1:-1:-1","scope":33821,"sourceUnit":29840,"symbolAliases":[],"unitAlias":""},{"id":32904,"nodeType":"ImportDirective","src":"145:34:36","nodes":[],"absolutePath":"src/interfaces/IDFMM.sol","file":"src/interfaces/IDFMM.sol","nameLocation":"-1:-1:-1","scope":33821,"sourceUnit":29731,"symbolAliases":[],"unitAlias":""},{"id":32905,"nodeType":"ImportDirective","src":"180:44:36","nodes":[],"absolutePath":"src/solvers/G3M/G3MExtendedLib.sol","file":"src/solvers/G3M/G3MExtendedLib.sol","nameLocation":"-1:-1:-1","scope":33821,"sourceUnit":32900,"symbolAliases":[],"unitAlias":""},{"id":33820,"nodeType":"ContractDefinition","src":"226:8885:36","nodes":[{"id":32908,"nodeType":"UsingForDirective","src":"251:36:36","nodes":[],"global":false,"libraryName":{"id":32906,"name":"FixedPointMathLib","nameLocations":["257:17:36"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"257:17:36"},"typeName":{"id":32907,"name":"uint256","nodeType":"ElementaryTypeName","src":"279:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":32911,"nodeType":"UsingForDirective","src":"292:35:36","nodes":[],"global":false,"libraryName":{"id":32909,"name":"FixedPointMathLib","nameLocations":["298:17:36"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"298:17:36"},"typeName":{"id":32910,"name":"int256","nodeType":"ElementaryTypeName","src":"320:6:36","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":32919,"nodeType":"StructDefinition","src":"384:82:36","nodes":[],"canonicalName":"G3MSolver.Reserves","documentation":{"id":32912,"nodeType":"StructuredDocumentation","src":"333:46:36","text":"@dev Structure to hold reserve information"},"members":[{"constant":false,"id":32914,"mutability":"mutable","name":"rx","nameLocation":"418:2:36","nodeType":"VariableDeclaration","scope":32919,"src":"410:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32913,"name":"uint256","nodeType":"ElementaryTypeName","src":"410:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32916,"mutability":"mutable","name":"ry","nameLocation":"438:2:36","nodeType":"VariableDeclaration","scope":32919,"src":"430:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32915,"name":"uint256","nodeType":"ElementaryTypeName","src":"430:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32918,"mutability":"mutable","name":"L","nameLocation":"458:1:36","nodeType":"VariableDeclaration","scope":32919,"src":"450:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32917,"name":"uint256","nodeType":"ElementaryTypeName","src":"450:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Reserves","nameLocation":"391:8:36","scope":33820,"visibility":"public"},{"id":32921,"nodeType":"VariableDeclaration","src":"472:23:36","nodes":[],"constant":false,"functionSelector":"a8c62e76","mutability":"mutable","name":"strategy","nameLocation":"487:8:36","scope":33820,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32920,"name":"address","nodeType":"ElementaryTypeName","src":"472:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":32931,"nodeType":"FunctionDefinition","src":"502:68:36","nodes":[],"body":{"id":32930,"nodeType":"Block","src":"533:37:36","nodes":[],"statements":[{"expression":{"id":32928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32926,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32921,"src":"543:8:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":32927,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32923,"src":"554:9:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"543:20:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":32929,"nodeType":"ExpressionStatement","src":"543:20:36"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":32924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32923,"mutability":"mutable","name":"_strategy","nameLocation":"522:9:36","nodeType":"VariableDeclaration","scope":32931,"src":"514:17:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32922,"name":"address","nodeType":"ElementaryTypeName","src":"514:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"513:19:36"},"returnParameters":{"id":32925,"nodeType":"ParameterList","parameters":[],"src":"533:0:36"},"scope":33820,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":32944,"nodeType":"FunctionDefinition","src":"576:166:36","nodes":[],"body":{"id":32943,"nodeType":"Block","src":"687:55:36","nodes":[],"statements":[{"expression":{"arguments":[{"id":32940,"name":"swapFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32933,"src":"727:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32938,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"704:6:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":32939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"711:15:36","memberName":"encodeFeeUpdate","nodeType":"MemberAccess","referencedDeclaration":37945,"src":"704:22:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":32941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"704:31:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32937,"id":32942,"nodeType":"Return","src":"697:38:36"}]},"functionSelector":"b09d04e5","implemented":true,"kind":"function","modifiers":[],"name":"prepareFeeUpdate","nameLocation":"585:16:36","parameters":{"id":32934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32933,"mutability":"mutable","name":"swapFee","nameLocation":"610:7:36","nodeType":"VariableDeclaration","scope":32944,"src":"602:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32932,"name":"uint256","nodeType":"ElementaryTypeName","src":"602:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"601:17:36"},"returnParameters":{"id":32937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32936,"mutability":"mutable","name":"data","nameLocation":"677:4:36","nodeType":"VariableDeclaration","scope":32944,"src":"664:17:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32935,"name":"bytes","nodeType":"ElementaryTypeName","src":"664:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"663:19:36"},"scope":33820,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":32960,"nodeType":"FunctionDefinition","src":"748:217:36","nodes":[],"body":{"id":32959,"nodeType":"Block","src":"883:82:36","nodes":[],"statements":[{"expression":{"arguments":[{"id":32955,"name":"targetWeightX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32946,"src":"927:13:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32956,"name":"targetTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32948,"src":"942:15:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32953,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"900:6:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":32954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"907:19:36","memberName":"encodeWeightXUpdate","nodeType":"MemberAccess","referencedDeclaration":37984,"src":"900:26:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (bytes memory)"}},"id":32957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"900:58:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32952,"id":32958,"nodeType":"Return","src":"893:65:36"}]},"functionSelector":"250968d9","implemented":true,"kind":"function","modifiers":[],"name":"prepareWeightXUpdate","nameLocation":"757:20:36","parameters":{"id":32949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32946,"mutability":"mutable","name":"targetWeightX","nameLocation":"795:13:36","nodeType":"VariableDeclaration","scope":32960,"src":"787:21:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32945,"name":"uint256","nodeType":"ElementaryTypeName","src":"787:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32948,"mutability":"mutable","name":"targetTimestamp","nameLocation":"826:15:36","nodeType":"VariableDeclaration","scope":32960,"src":"818:23:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32947,"name":"uint256","nodeType":"ElementaryTypeName","src":"818:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"777:70:36"},"returnParameters":{"id":32952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32951,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32960,"src":"869:12:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32950,"name":"bytes","nodeType":"ElementaryTypeName","src":"869:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"868:14:36"},"scope":33820,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":32973,"nodeType":"FunctionDefinition","src":"971:181:36","nodes":[],"body":{"id":32972,"nodeType":"Block","src":"1087:65:36","nodes":[],"statements":[{"expression":{"arguments":[{"id":32969,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32962,"src":"1134:10:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":32967,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"1104:6:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":32968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1111:22:36","memberName":"encodeControllerUpdate","nodeType":"MemberAccess","referencedDeclaration":38024,"src":"1104:29:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) pure returns (bytes memory)"}},"id":32970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1104:41:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32966,"id":32971,"nodeType":"Return","src":"1097:48:36"}]},"functionSelector":"cb1f5532","implemented":true,"kind":"function","modifiers":[],"name":"prepareControllerUpdate","nameLocation":"980:23:36","parameters":{"id":32963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32962,"mutability":"mutable","name":"controller","nameLocation":"1012:10:36","nodeType":"VariableDeclaration","scope":32973,"src":"1004:18:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32961,"name":"address","nodeType":"ElementaryTypeName","src":"1004:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1003:20:36"},"returnParameters":{"id":32966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32965,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32973,"src":"1069:12:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32964,"name":"bytes","nodeType":"ElementaryTypeName","src":"1069:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1068:14:36"},"scope":33820,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":32995,"nodeType":"FunctionDefinition","src":"1158:228:36","nodes":[],"body":{"id":32994,"nodeType":"Block","src":"1270:116:36","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":32987,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32975,"src":"1345:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":32984,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32921,"src":"1321:8:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":32983,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"1311:9:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$29839_$","typeString":"type(contract IStrategy)"}},"id":32985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1311:19:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$29839","typeString":"contract IStrategy"}},"id":32986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1331:13:36","memberName":"getPoolParams","nodeType":"MemberAccess","referencedDeclaration":29838,"src":"1311:33:36","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) view external returns (bytes memory)"}},"id":32988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1311:41:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":32989,"name":"G3M","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37911,"src":"1355:3:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3M_$37911_$","typeString":"type(contract G3M)"}},"id":32990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1359:9:36","memberName":"G3MParams","nodeType":"MemberAccess","referencedDeclaration":37272,"src":"1355:13:36","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}}],"id":32991,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1354:15:36","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}],"expression":{"id":32981,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1287:3:36","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":32982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1291:6:36","memberName":"decode","nodeType":"MemberAccess","src":"1287:10:36","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":32992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1287:92:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"functionReturnParameters":32980,"id":32993,"nodeType":"Return","src":"1280:99:36"}]},"functionSelector":"81b5fac2","implemented":true,"kind":"function","modifiers":[],"name":"fetchPoolParams","nameLocation":"1167:15:36","parameters":{"id":32976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32975,"mutability":"mutable","name":"poolId","nameLocation":"1191:6:36","nodeType":"VariableDeclaration","scope":32995,"src":"1183:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32974,"name":"uint256","nodeType":"ElementaryTypeName","src":"1183:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1182:16:36"},"returnParameters":{"id":32980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32979,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32995,"src":"1244:20:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":32978,"nodeType":"UserDefinedTypeName","pathNode":{"id":32977,"name":"G3M.G3MParams","nameLocations":["1244:3:36","1248:9:36"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"1244:13:36"},"referencedDeclaration":37272,"src":"1244:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"src":"1243:22:36"},"scope":33820,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":33018,"nodeType":"FunctionDefinition","src":"1392:214:36","nodes":[],"body":{"id":33017,"nodeType":"Block","src":"1517:89:36","nodes":[],"statements":[{"expression":{"arguments":[{"id":33014,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32997,"src":"1592:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":33008,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32921,"src":"1550:8:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33007,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"1540:9:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$29839_$","typeString":"type(contract IStrategy)"}},"id":33009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1540:19:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$29839","typeString":"contract IStrategy"}},"id":33010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1560:4:36","memberName":"dfmm","nodeType":"MemberAccess","referencedDeclaration":29831,"src":"1540:24:36","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":33011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1540:26:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33006,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"1534:5:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":33012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1534:33:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDFMM_$29730","typeString":"contract IDFMM"}},"id":33013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1568:23:36","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29710,"src":"1534:57:36","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":33015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1534:65:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"functionReturnParameters":33005,"id":33016,"nodeType":"Return","src":"1527:72:36"}]},"functionSelector":"ce153bf4","implemented":true,"kind":"function","modifiers":[],"name":"getReservesAndLiquidity","nameLocation":"1401:23:36","parameters":{"id":32998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32997,"mutability":"mutable","name":"poolId","nameLocation":"1433:6:36","nodeType":"VariableDeclaration","scope":33018,"src":"1425:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32996,"name":"uint256","nodeType":"ElementaryTypeName","src":"1425:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1424:16:36"},"returnParameters":{"id":33005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33000,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33018,"src":"1486:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32999,"name":"uint256","nodeType":"ElementaryTypeName","src":"1486:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33002,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33018,"src":"1495:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33001,"name":"uint256","nodeType":"ElementaryTypeName","src":"1495:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33004,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33018,"src":"1504:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33003,"name":"uint256","nodeType":"ElementaryTypeName","src":"1504:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1485:27:36"},"scope":33820,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":33037,"nodeType":"FunctionDefinition","src":"1612:206:36","nodes":[],"body":{"id":33036,"nodeType":"Block","src":"1757:61:36","nodes":[],"statements":[{"expression":{"arguments":[{"id":33031,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33020,"src":"1797:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33032,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33022,"src":"1801:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33033,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33025,"src":"1804:6:36","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":33030,"name":"computeInitialPoolData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31906,"src":"1774:22:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256,struct G3M.G3MParams memory) pure returns (bytes memory)"}},"id":33034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1774:37:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":33029,"id":33035,"nodeType":"Return","src":"1767:44:36"}]},"functionSelector":"def15f92","implemented":true,"kind":"function","modifiers":[],"name":"getInitialPoolData","nameLocation":"1621:18:36","parameters":{"id":33026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33020,"mutability":"mutable","name":"rx","nameLocation":"1657:2:36","nodeType":"VariableDeclaration","scope":33037,"src":"1649:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33019,"name":"uint256","nodeType":"ElementaryTypeName","src":"1649:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33022,"mutability":"mutable","name":"S","nameLocation":"1677:1:36","nodeType":"VariableDeclaration","scope":33037,"src":"1669:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33021,"name":"uint256","nodeType":"ElementaryTypeName","src":"1669:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33025,"mutability":"mutable","name":"params","nameLocation":"1709:6:36","nodeType":"VariableDeclaration","scope":33037,"src":"1688:27:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":33024,"nodeType":"UserDefinedTypeName","pathNode":{"id":33023,"name":"G3M.G3MParams","nameLocations":["1688:3:36","1692:9:36"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"1688:13:36"},"referencedDeclaration":37272,"src":"1688:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"src":"1639:82:36"},"returnParameters":{"id":33029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33028,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33037,"src":"1743:12:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":33027,"name":"bytes","nodeType":"ElementaryTypeName","src":"1743:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1742:14:36"},"scope":33820,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":33083,"nodeType":"FunctionDefinition","src":"1824:408:36","nodes":[],"body":{"id":33082,"nodeType":"Block","src":"1951:281:36","nodes":[],"statements":[{"assignments":[33051,null,33053],"declarations":[{"constant":false,"id":33051,"mutability":"mutable","name":"rx","nameLocation":"1970:2:36","nodeType":"VariableDeclaration","scope":33082,"src":"1962:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33050,"name":"uint256","nodeType":"ElementaryTypeName","src":"1962:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":33053,"mutability":"mutable","name":"L","nameLocation":"1983:1:36","nodeType":"VariableDeclaration","scope":33082,"src":"1975:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33052,"name":"uint256","nodeType":"ElementaryTypeName","src":"1975:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33057,"initialValue":{"arguments":[{"id":33055,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33039,"src":"2012:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33054,"name":"getReservesAndLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33018,"src":"1988:23:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256,uint256)"}},"id":33056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1988:31:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1961:58:36"},{"assignments":[33059,33061],"declarations":[{"constant":false,"id":33059,"mutability":"mutable","name":"nextRx","nameLocation":"2038:6:36","nodeType":"VariableDeclaration","scope":33082,"src":"2030:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33058,"name":"uint256","nodeType":"ElementaryTypeName","src":"2030:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33061,"mutability":"mutable","name":"nextL","nameLocation":"2054:5:36","nodeType":"VariableDeclaration","scope":33082,"src":"2046:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33060,"name":"uint256","nodeType":"ElementaryTypeName","src":"2046:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33068,"initialValue":{"arguments":[{"hexValue":"74727565","id":33063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2099:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":33064,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33041,"src":"2105:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33065,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33051,"src":"2114:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33066,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33053,"src":"2118:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33062,"name":"computeAllocationGivenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30723,"src":"2075:23:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bool,uint256,uint256,uint256) pure returns (uint256,uint256)"}},"id":33067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2075:45:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"2029:91:36"},{"assignments":[33070],"declarations":[{"constant":false,"id":33070,"mutability":"mutable","name":"nextRy","nameLocation":"2138:6:36","nodeType":"VariableDeclaration","scope":33082,"src":"2130:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33069,"name":"uint256","nodeType":"ElementaryTypeName","src":"2130:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33076,"initialValue":{"arguments":[{"id":33072,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33039,"src":"2163:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33073,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33059,"src":"2171:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33074,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33061,"src":"2179:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33071,"name":"getNextReserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33282,"src":"2147:15:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":33075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2147:38:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2130:55:36"},{"expression":{"components":[{"id":33077,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33059,"src":"2203:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33078,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33070,"src":"2211:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33079,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33061,"src":"2219:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":33080,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2202:23:36","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"functionReturnParameters":33049,"id":33081,"nodeType":"Return","src":"2195:30:36"}]},"functionSelector":"ee3e8cfb","implemented":true,"kind":"function","modifiers":[],"name":"allocateGivenX","nameLocation":"1833:14:36","parameters":{"id":33042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33039,"mutability":"mutable","name":"poolId","nameLocation":"1865:6:36","nodeType":"VariableDeclaration","scope":33083,"src":"1857:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33038,"name":"uint256","nodeType":"ElementaryTypeName","src":"1857:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33041,"mutability":"mutable","name":"amountX","nameLocation":"1889:7:36","nodeType":"VariableDeclaration","scope":33083,"src":"1881:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33040,"name":"uint256","nodeType":"ElementaryTypeName","src":"1881:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1847:55:36"},"returnParameters":{"id":33049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33044,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33083,"src":"1924:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33043,"name":"uint256","nodeType":"ElementaryTypeName","src":"1924:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33083,"src":"1933:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33045,"name":"uint256","nodeType":"ElementaryTypeName","src":"1933:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33048,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33083,"src":"1942:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33047,"name":"uint256","nodeType":"ElementaryTypeName","src":"1942:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1923:27:36"},"scope":33820,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":33129,"nodeType":"FunctionDefinition","src":"2238:409:36","nodes":[],"body":{"id":33128,"nodeType":"Block","src":"2365:282:36","nodes":[],"statements":[{"assignments":[null,33097,33099],"declarations":[null,{"constant":false,"id":33097,"mutability":"mutable","name":"ry","nameLocation":"2386:2:36","nodeType":"VariableDeclaration","scope":33128,"src":"2378:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33096,"name":"uint256","nodeType":"ElementaryTypeName","src":"2378:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33099,"mutability":"mutable","name":"L","nameLocation":"2398:1:36","nodeType":"VariableDeclaration","scope":33128,"src":"2390:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33098,"name":"uint256","nodeType":"ElementaryTypeName","src":"2390:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33103,"initialValue":{"arguments":[{"id":33101,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33085,"src":"2427:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33100,"name":"getReservesAndLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33018,"src":"2403:23:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256,uint256)"}},"id":33102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2403:31:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"2375:59:36"},{"assignments":[33105,33107],"declarations":[{"constant":false,"id":33105,"mutability":"mutable","name":"nextRy","nameLocation":"2453:6:36","nodeType":"VariableDeclaration","scope":33128,"src":"2445:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33104,"name":"uint256","nodeType":"ElementaryTypeName","src":"2445:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33107,"mutability":"mutable","name":"nextL","nameLocation":"2469:5:36","nodeType":"VariableDeclaration","scope":33128,"src":"2461:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33106,"name":"uint256","nodeType":"ElementaryTypeName","src":"2461:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33114,"initialValue":{"arguments":[{"hexValue":"74727565","id":33109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2514:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":33110,"name":"amountY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33087,"src":"2520:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33111,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33097,"src":"2529:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33112,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33099,"src":"2533:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33108,"name":"computeAllocationGivenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30723,"src":"2490:23:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bool,uint256,uint256,uint256) pure returns (uint256,uint256)"}},"id":33113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2490:45:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"2444:91:36"},{"assignments":[33116],"declarations":[{"constant":false,"id":33116,"mutability":"mutable","name":"nextRx","nameLocation":"2553:6:36","nodeType":"VariableDeclaration","scope":33128,"src":"2545:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33115,"name":"uint256","nodeType":"ElementaryTypeName","src":"2545:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33122,"initialValue":{"arguments":[{"id":33118,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33085,"src":"2578:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33119,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33105,"src":"2586:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33120,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33107,"src":"2594:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33117,"name":"getNextReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33262,"src":"2562:15:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":33121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2562:38:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2545:55:36"},{"expression":{"components":[{"id":33123,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33116,"src":"2618:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33124,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33105,"src":"2626:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33125,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33107,"src":"2634:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":33126,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2617:23:36","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"functionReturnParameters":33095,"id":33127,"nodeType":"Return","src":"2610:30:36"}]},"functionSelector":"7f17409c","implemented":true,"kind":"function","modifiers":[],"name":"allocateGivenY","nameLocation":"2247:14:36","parameters":{"id":33088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33085,"mutability":"mutable","name":"poolId","nameLocation":"2279:6:36","nodeType":"VariableDeclaration","scope":33129,"src":"2271:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33084,"name":"uint256","nodeType":"ElementaryTypeName","src":"2271:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33087,"mutability":"mutable","name":"amountY","nameLocation":"2303:7:36","nodeType":"VariableDeclaration","scope":33129,"src":"2295:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33086,"name":"uint256","nodeType":"ElementaryTypeName","src":"2295:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2261:55:36"},"returnParameters":{"id":33095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33090,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33129,"src":"2338:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33089,"name":"uint256","nodeType":"ElementaryTypeName","src":"2338:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33092,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33129,"src":"2347:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33091,"name":"uint256","nodeType":"ElementaryTypeName","src":"2347:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33094,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33129,"src":"2356:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33093,"name":"uint256","nodeType":"ElementaryTypeName","src":"2356:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2337:27:36"},"scope":33820,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":33175,"nodeType":"FunctionDefinition","src":"2653:411:36","nodes":[],"body":{"id":33174,"nodeType":"Block","src":"2782:282:36","nodes":[],"statements":[{"assignments":[33143,null,33145],"declarations":[{"constant":false,"id":33143,"mutability":"mutable","name":"rx","nameLocation":"2801:2:36","nodeType":"VariableDeclaration","scope":33174,"src":"2793:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33142,"name":"uint256","nodeType":"ElementaryTypeName","src":"2793:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":33145,"mutability":"mutable","name":"L","nameLocation":"2814:1:36","nodeType":"VariableDeclaration","scope":33174,"src":"2806:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33144,"name":"uint256","nodeType":"ElementaryTypeName","src":"2806:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33149,"initialValue":{"arguments":[{"id":33147,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33131,"src":"2843:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33146,"name":"getReservesAndLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33018,"src":"2819:23:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256,uint256)"}},"id":33148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2819:31:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"2792:58:36"},{"assignments":[33151,33153],"declarations":[{"constant":false,"id":33151,"mutability":"mutable","name":"nextRx","nameLocation":"2869:6:36","nodeType":"VariableDeclaration","scope":33174,"src":"2861:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33150,"name":"uint256","nodeType":"ElementaryTypeName","src":"2861:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33153,"mutability":"mutable","name":"nextL","nameLocation":"2885:5:36","nodeType":"VariableDeclaration","scope":33174,"src":"2877:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33152,"name":"uint256","nodeType":"ElementaryTypeName","src":"2877:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33160,"initialValue":{"arguments":[{"hexValue":"66616c7365","id":33155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2930:5:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":33156,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33133,"src":"2937:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33157,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33143,"src":"2946:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33158,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33145,"src":"2950:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33154,"name":"computeAllocationGivenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30723,"src":"2906:23:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bool,uint256,uint256,uint256) pure returns (uint256,uint256)"}},"id":33159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2906:46:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"2860:92:36"},{"assignments":[33162],"declarations":[{"constant":false,"id":33162,"mutability":"mutable","name":"nextRy","nameLocation":"2970:6:36","nodeType":"VariableDeclaration","scope":33174,"src":"2962:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33161,"name":"uint256","nodeType":"ElementaryTypeName","src":"2962:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33168,"initialValue":{"arguments":[{"id":33164,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33131,"src":"2995:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33165,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33151,"src":"3003:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33166,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33153,"src":"3011:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33163,"name":"getNextReserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33282,"src":"2979:15:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":33167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2979:38:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2962:55:36"},{"expression":{"components":[{"id":33169,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33151,"src":"3035:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33170,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33162,"src":"3043:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33171,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33153,"src":"3051:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":33172,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3034:23:36","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"functionReturnParameters":33141,"id":33173,"nodeType":"Return","src":"3027:30:36"}]},"functionSelector":"6237569f","implemented":true,"kind":"function","modifiers":[],"name":"deallocateGivenX","nameLocation":"2662:16:36","parameters":{"id":33134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33131,"mutability":"mutable","name":"poolId","nameLocation":"2696:6:36","nodeType":"VariableDeclaration","scope":33175,"src":"2688:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33130,"name":"uint256","nodeType":"ElementaryTypeName","src":"2688:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33133,"mutability":"mutable","name":"amountX","nameLocation":"2720:7:36","nodeType":"VariableDeclaration","scope":33175,"src":"2712:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33132,"name":"uint256","nodeType":"ElementaryTypeName","src":"2712:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2678:55:36"},"returnParameters":{"id":33141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33136,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33175,"src":"2755:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33135,"name":"uint256","nodeType":"ElementaryTypeName","src":"2755:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33138,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33175,"src":"2764:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33137,"name":"uint256","nodeType":"ElementaryTypeName","src":"2764:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33140,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33175,"src":"2773:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33139,"name":"uint256","nodeType":"ElementaryTypeName","src":"2773:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2754:27:36"},"scope":33820,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":33221,"nodeType":"FunctionDefinition","src":"3070:412:36","nodes":[],"body":{"id":33220,"nodeType":"Block","src":"3199:283:36","nodes":[],"statements":[{"assignments":[null,33189,33191],"declarations":[null,{"constant":false,"id":33189,"mutability":"mutable","name":"ry","nameLocation":"3220:2:36","nodeType":"VariableDeclaration","scope":33220,"src":"3212:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33188,"name":"uint256","nodeType":"ElementaryTypeName","src":"3212:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33191,"mutability":"mutable","name":"L","nameLocation":"3232:1:36","nodeType":"VariableDeclaration","scope":33220,"src":"3224:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33190,"name":"uint256","nodeType":"ElementaryTypeName","src":"3224:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33195,"initialValue":{"arguments":[{"id":33193,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33177,"src":"3261:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33192,"name":"getReservesAndLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33018,"src":"3237:23:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256,uint256)"}},"id":33194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3237:31:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"3209:59:36"},{"assignments":[33197,33199],"declarations":[{"constant":false,"id":33197,"mutability":"mutable","name":"nextRy","nameLocation":"3287:6:36","nodeType":"VariableDeclaration","scope":33220,"src":"3279:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33196,"name":"uint256","nodeType":"ElementaryTypeName","src":"3279:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33199,"mutability":"mutable","name":"nextL","nameLocation":"3303:5:36","nodeType":"VariableDeclaration","scope":33220,"src":"3295:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33198,"name":"uint256","nodeType":"ElementaryTypeName","src":"3295:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33206,"initialValue":{"arguments":[{"hexValue":"66616c7365","id":33201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3348:5:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":33202,"name":"amountY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33179,"src":"3355:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33203,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33189,"src":"3364:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33204,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33191,"src":"3368:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33200,"name":"computeAllocationGivenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30723,"src":"3324:23:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bool,uint256,uint256,uint256) pure returns (uint256,uint256)"}},"id":33205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3324:46:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"3278:92:36"},{"assignments":[33208],"declarations":[{"constant":false,"id":33208,"mutability":"mutable","name":"nextRx","nameLocation":"3388:6:36","nodeType":"VariableDeclaration","scope":33220,"src":"3380:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33207,"name":"uint256","nodeType":"ElementaryTypeName","src":"3380:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33214,"initialValue":{"arguments":[{"id":33210,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33177,"src":"3413:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33211,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33197,"src":"3421:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33212,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33199,"src":"3429:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33209,"name":"getNextReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33262,"src":"3397:15:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":33213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3397:38:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3380:55:36"},{"expression":{"components":[{"id":33215,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33208,"src":"3453:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33216,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33197,"src":"3461:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33217,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33199,"src":"3469:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":33218,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3452:23:36","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"functionReturnParameters":33187,"id":33219,"nodeType":"Return","src":"3445:30:36"}]},"functionSelector":"f30d37f2","implemented":true,"kind":"function","modifiers":[],"name":"deallocateGivenY","nameLocation":"3079:16:36","parameters":{"id":33180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33177,"mutability":"mutable","name":"poolId","nameLocation":"3113:6:36","nodeType":"VariableDeclaration","scope":33221,"src":"3105:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33176,"name":"uint256","nodeType":"ElementaryTypeName","src":"3105:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33179,"mutability":"mutable","name":"amountY","nameLocation":"3137:7:36","nodeType":"VariableDeclaration","scope":33221,"src":"3129:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33178,"name":"uint256","nodeType":"ElementaryTypeName","src":"3129:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3095:55:36"},"returnParameters":{"id":33187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33182,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33221,"src":"3172:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33181,"name":"uint256","nodeType":"ElementaryTypeName","src":"3172:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33184,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33221,"src":"3181:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33183,"name":"uint256","nodeType":"ElementaryTypeName","src":"3181:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33186,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33221,"src":"3190:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33185,"name":"uint256","nodeType":"ElementaryTypeName","src":"3190:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3171:27:36"},"scope":33820,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":33242,"nodeType":"FunctionDefinition","src":"3488:210:36","nodes":[],"body":{"id":33241,"nodeType":"Block","src":"3614:84:36","nodes":[],"statements":[{"expression":{"arguments":[{"id":33234,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33225,"src":"3659:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33235,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33227,"src":"3663:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":33237,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33223,"src":"3683:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33236,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32995,"src":"3667:15:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_G3MParams_$37272_memory_ptr_$","typeString":"function (uint256) view returns (struct G3M.G3MParams memory)"}},"id":33238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3667:23:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"expression":{"id":33232,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"3631:6:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":33233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3638:20:36","memberName":"computeNextLiquidity","nodeType":"MemberAccess","referencedDeclaration":38157,"src":"3631:27:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,struct G3M.G3MParams memory) pure returns (uint256)"}},"id":33239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3631:60:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":33231,"id":33240,"nodeType":"Return","src":"3624:67:36"}]},"functionSelector":"ec29d8e6","implemented":true,"kind":"function","modifiers":[],"name":"getNextLiquidity","nameLocation":"3497:16:36","parameters":{"id":33228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33223,"mutability":"mutable","name":"poolId","nameLocation":"3531:6:36","nodeType":"VariableDeclaration","scope":33242,"src":"3523:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33222,"name":"uint256","nodeType":"ElementaryTypeName","src":"3523:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33225,"mutability":"mutable","name":"rx","nameLocation":"3555:2:36","nodeType":"VariableDeclaration","scope":33242,"src":"3547:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33224,"name":"uint256","nodeType":"ElementaryTypeName","src":"3547:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33227,"mutability":"mutable","name":"ry","nameLocation":"3575:2:36","nodeType":"VariableDeclaration","scope":33242,"src":"3567:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33226,"name":"uint256","nodeType":"ElementaryTypeName","src":"3567:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3513:70:36"},"returnParameters":{"id":33231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33230,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33242,"src":"3605:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33229,"name":"uint256","nodeType":"ElementaryTypeName","src":"3605:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3604:9:36"},"scope":33820,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":33262,"nodeType":"FunctionDefinition","src":"3704:193:36","nodes":[],"body":{"id":33261,"nodeType":"Block","src":"3828:69:36","nodes":[],"statements":[{"expression":{"arguments":[{"id":33254,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33246,"src":"3859:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33255,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33248,"src":"3863:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":33257,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33244,"src":"3882:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33256,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32995,"src":"3866:15:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_G3MParams_$37272_memory_ptr_$","typeString":"function (uint256) view returns (struct G3M.G3MParams memory)"}},"id":33258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3866:23:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":33253,"name":"computeNextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32006,"src":"3845:13:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,struct G3M.G3MParams memory) pure returns (uint256)"}},"id":33259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3845:45:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":33252,"id":33260,"nodeType":"Return","src":"3838:52:36"}]},"functionSelector":"5a93b8ce","implemented":true,"kind":"function","modifiers":[],"name":"getNextReserveX","nameLocation":"3713:15:36","parameters":{"id":33249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33244,"mutability":"mutable","name":"poolId","nameLocation":"3746:6:36","nodeType":"VariableDeclaration","scope":33262,"src":"3738:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33243,"name":"uint256","nodeType":"ElementaryTypeName","src":"3738:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33246,"mutability":"mutable","name":"ry","nameLocation":"3770:2:36","nodeType":"VariableDeclaration","scope":33262,"src":"3762:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33245,"name":"uint256","nodeType":"ElementaryTypeName","src":"3762:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33248,"mutability":"mutable","name":"L","nameLocation":"3790:1:36","nodeType":"VariableDeclaration","scope":33262,"src":"3782:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33247,"name":"uint256","nodeType":"ElementaryTypeName","src":"3782:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3728:69:36"},"returnParameters":{"id":33252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33251,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33262,"src":"3819:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33250,"name":"uint256","nodeType":"ElementaryTypeName","src":"3819:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3818:9:36"},"scope":33820,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":33282,"nodeType":"FunctionDefinition","src":"3903:193:36","nodes":[],"body":{"id":33281,"nodeType":"Block","src":"4027:69:36","nodes":[],"statements":[{"expression":{"arguments":[{"id":33274,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33266,"src":"4058:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33275,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33268,"src":"4062:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":33277,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33264,"src":"4081:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33276,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32995,"src":"4065:15:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_G3MParams_$37272_memory_ptr_$","typeString":"function (uint256) view returns (struct G3M.G3MParams memory)"}},"id":33278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4065:23:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":33273,"name":"computeNextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31956,"src":"4044:13:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,struct G3M.G3MParams memory) pure returns (uint256)"}},"id":33279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4044:45:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":33272,"id":33280,"nodeType":"Return","src":"4037:52:36"}]},"functionSelector":"f2de7a7b","implemented":true,"kind":"function","modifiers":[],"name":"getNextReserveY","nameLocation":"3912:15:36","parameters":{"id":33269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33264,"mutability":"mutable","name":"poolId","nameLocation":"3945:6:36","nodeType":"VariableDeclaration","scope":33282,"src":"3937:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33263,"name":"uint256","nodeType":"ElementaryTypeName","src":"3937:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33266,"mutability":"mutable","name":"rx","nameLocation":"3969:2:36","nodeType":"VariableDeclaration","scope":33282,"src":"3961:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33265,"name":"uint256","nodeType":"ElementaryTypeName","src":"3961:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33268,"mutability":"mutable","name":"L","nameLocation":"3989:1:36","nodeType":"VariableDeclaration","scope":33282,"src":"3981:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33267,"name":"uint256","nodeType":"ElementaryTypeName","src":"3981:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3927:69:36"},"returnParameters":{"id":33272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33271,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33282,"src":"4018:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33270,"name":"uint256","nodeType":"ElementaryTypeName","src":"4018:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4017:9:36"},"scope":33820,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":33580,"nodeType":"FunctionDefinition","src":"4185:2811:36","nodes":[],"body":{"id":33579,"nodeType":"Block","src":"4344:2652:36","nodes":[],"statements":[{"assignments":[33302],"declarations":[{"constant":false,"id":33302,"mutability":"mutable","name":"startReserves","nameLocation":"4370:13:36","nodeType":"VariableDeclaration","scope":33579,"src":"4354:29:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves"},"typeName":{"id":33301,"nodeType":"UserDefinedTypeName","pathNode":{"id":33300,"name":"Reserves","nameLocations":["4354:8:36"],"nodeType":"IdentifierPath","referencedDeclaration":32919,"src":"4354:8:36"},"referencedDeclaration":32919,"src":"4354:8:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_storage_ptr","typeString":"struct G3MSolver.Reserves"}},"visibility":"internal"}],"id":33303,"nodeType":"VariableDeclarationStatement","src":"4354:29:36"},{"assignments":[33306],"declarations":[{"constant":false,"id":33306,"mutability":"mutable","name":"endReserves","nameLocation":"4409:11:36","nodeType":"VariableDeclaration","scope":33579,"src":"4393:27:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves"},"typeName":{"id":33305,"nodeType":"UserDefinedTypeName","pathNode":{"id":33304,"name":"Reserves","nameLocations":["4393:8:36"],"nodeType":"IdentifierPath","referencedDeclaration":32919,"src":"4393:8:36"},"referencedDeclaration":32919,"src":"4393:8:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_storage_ptr","typeString":"struct G3MSolver.Reserves"}},"visibility":"internal"}],"id":33307,"nodeType":"VariableDeclarationStatement","src":"4393:27:36"},{"expression":{"id":33319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"expression":{"id":33308,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33302,"src":"4431:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4445:2:36","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":32914,"src":"4431:16:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":33311,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33302,"src":"4449:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4463:2:36","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":32916,"src":"4449:16:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":33313,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33302,"src":"4467:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4481:1:36","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":32918,"src":"4467:15:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":33315,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"4430:53:36","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":33317,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33285,"src":"4522:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33316,"name":"getReservesAndLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33018,"src":"4498:23:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256,uint256)"}},"id":33318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4498:31:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"src":"4430:99:36","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33320,"nodeType":"ExpressionStatement","src":"4430:99:36"},{"assignments":[33325],"declarations":[{"constant":false,"id":33325,"mutability":"mutable","name":"poolParams","nameLocation":"4560:10:36","nodeType":"VariableDeclaration","scope":33579,"src":"4539:31:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":33324,"nodeType":"UserDefinedTypeName","pathNode":{"id":33323,"name":"G3M.G3MParams","nameLocations":["4539:3:36","4543:9:36"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"4539:13:36"},"referencedDeclaration":37272,"src":"4539:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"id":33329,"initialValue":{"arguments":[{"id":33327,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33285,"src":"4589:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33326,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32995,"src":"4573:15:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_G3MParams_$37272_memory_ptr_$","typeString":"function (uint256) view returns (struct G3M.G3MParams memory)"}},"id":33328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4573:23:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"nodeType":"VariableDeclarationStatement","src":"4539:57:36"},{"assignments":[33331],"declarations":[{"constant":false,"id":33331,"mutability":"mutable","name":"amountOut","nameLocation":"4615:9:36","nodeType":"VariableDeclaration","scope":33579,"src":"4607:17:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33330,"name":"uint256","nodeType":"ElementaryTypeName","src":"4607:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33332,"nodeType":"VariableDeclarationStatement","src":"4607:17:36"},{"assignments":[33334],"declarations":[{"constant":false,"id":33334,"mutability":"mutable","name":"startComputedL","nameLocation":"4643:14:36","nodeType":"VariableDeclaration","scope":33579,"src":"4635:22:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33333,"name":"uint256","nodeType":"ElementaryTypeName","src":"4635:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33345,"initialValue":{"arguments":[{"expression":{"id":33337,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33302,"src":"4701:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33338,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4715:2:36","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":32914,"src":"4701:16:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":33339,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33302,"src":"4719:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4733:2:36","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":32916,"src":"4719:16:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":33342,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33285,"src":"4753:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33341,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32995,"src":"4737:15:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_G3MParams_$37272_memory_ptr_$","typeString":"function (uint256) view returns (struct G3M.G3MParams memory)"}},"id":33343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4737:23:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"expression":{"id":33335,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"4660:6:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":33336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4667:20:36","memberName":"computeNextLiquidity","nodeType":"MemberAccess","referencedDeclaration":38157,"src":"4660:27:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,struct G3M.G3MParams memory) pure returns (uint256)"}},"id":33344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4660:110:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4635:135:36"},{"id":33536,"nodeType":"Block","src":"4781:1803:36","statements":[{"condition":{"id":33346,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33287,"src":"4799:7:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":33534,"nodeType":"Block","src":"5694:880:36","statements":[{"assignments":[33442],"declarations":[{"constant":false,"id":33442,"mutability":"mutable","name":"fees","nameLocation":"5720:4:36","nodeType":"VariableDeclaration","scope":33534,"src":"5712:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33441,"name":"uint256","nodeType":"ElementaryTypeName","src":"5712:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33448,"initialValue":{"arguments":[{"expression":{"id":33445,"name":"poolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33325,"src":"5745:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":33446,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5756:7:36","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":37269,"src":"5745:18:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":33443,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33289,"src":"5727:8:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5736:8:36","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"5727:17:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5727:37:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5712:52:36"},{"assignments":[33450],"declarations":[{"constant":false,"id":33450,"mutability":"mutable","name":"weightedPrice","nameLocation":"5790:13:36","nodeType":"VariableDeclaration","scope":33534,"src":"5782:21:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33449,"name":"uint256","nodeType":"ElementaryTypeName","src":"5782:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33470,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":33465,"name":"poolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33325,"src":"5926:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":33466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5937:2:36","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"5926:13:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5919:6:36","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":33463,"name":"int256","nodeType":"ElementaryTypeName","src":"5919:6:36","typeDescriptions":{}}},"id":33467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5919:21:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"arguments":[{"expression":{"id":33458,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33302,"src":"5868:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33459,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5882:2:36","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":32916,"src":"5868:16:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":33455,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33302,"src":"5842:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5856:2:36","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":32914,"src":"5842:16:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5859:8:36","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"5842:25:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5842:43:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33454,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5835:6:36","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":33453,"name":"int256","nodeType":"ElementaryTypeName","src":"5835:6:36","typeDescriptions":{}}},"id":33461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5835:51:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":33462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5887:6:36","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"5835:58:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":33468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5835:127:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":33452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5806:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":33451,"name":"uint256","nodeType":"ElementaryTypeName","src":"5806:7:36","typeDescriptions":{}}},"id":33469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5806:174:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5782:198:36"},{"assignments":[33472],"declarations":[{"constant":false,"id":33472,"mutability":"mutable","name":"deltaL","nameLocation":"6006:6:36","nodeType":"VariableDeclaration","scope":33534,"src":"5998:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33471,"name":"uint256","nodeType":"ElementaryTypeName","src":"5998:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33477,"initialValue":{"arguments":[{"id":33475,"name":"weightedPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33450,"src":"6029:13:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":33473,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33442,"src":"6015:4:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6020:8:36","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"6015:13:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6015:28:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5998:45:36"},{"expression":{"id":33480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33478,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33472,"src":"6061:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":33479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6071:1:36","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6061:11:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33481,"nodeType":"ExpressionStatement","src":"6061:11:36"},{"expression":{"id":33489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":33482,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33306,"src":"6091:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6103:2:36","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":32916,"src":"6091:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":33485,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33302,"src":"6108:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6122:2:36","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":32916,"src":"6108:16:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":33487,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33289,"src":"6127:8:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6108:27:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6091:44:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33490,"nodeType":"ExpressionStatement","src":"6091:44:36"},{"expression":{"id":33497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":33491,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33306,"src":"6153:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6165:1:36","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":32918,"src":"6153:13:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33494,"name":"startComputedL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33334,"src":"6169:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":33495,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33472,"src":"6186:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6169:23:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6153:39:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33498,"nodeType":"ExpressionStatement","src":"6153:39:36"},{"expression":{"id":33509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":33499,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33306,"src":"6211:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6223:2:36","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":32914,"src":"6211:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":33503,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33285,"src":"6264:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":33504,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33306,"src":"6272:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6284:2:36","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":32916,"src":"6272:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":33506,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33306,"src":"6288:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6300:1:36","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":32918,"src":"6288:13:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33502,"name":"getNextReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33262,"src":"6248:15:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":33508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6248:54:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6211:91:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33510,"nodeType":"ExpressionStatement","src":"6211:91:36"},{"expression":{"id":33515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":33511,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33306,"src":"6320:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33513,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6332:2:36","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":32914,"src":"6320:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":33514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6338:1:36","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6320:19:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33516,"nodeType":"ExpressionStatement","src":"6320:19:36"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":33518,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33306,"src":"6387:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33519,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6399:2:36","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":32914,"src":"6387:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":33520,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33302,"src":"6404:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33521,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6418:2:36","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":32914,"src":"6404:16:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6387:33:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420737761703a2078207265736572766520696e6372656173656421","id":33523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6442:36:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_514d494be6a9454d0a2a37289297e85676f782416fcaf712d469af65761b3dd2","typeString":"literal_string \"invalid swap: x reserve increased!\""},"value":"invalid swap: x reserve increased!"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_514d494be6a9454d0a2a37289297e85676f782416fcaf712d469af65761b3dd2","typeString":"literal_string \"invalid swap: x reserve increased!\""}],"id":33517,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6358:7:36","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6358:138:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33525,"nodeType":"ExpressionStatement","src":"6358:138:36"},{"expression":{"id":33532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33526,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33331,"src":"6514:9:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":33527,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33302,"src":"6526:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6540:2:36","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":32914,"src":"6526:16:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":33529,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33306,"src":"6545:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6557:2:36","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":32914,"src":"6545:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6526:33:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6514:45:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33533,"nodeType":"ExpressionStatement","src":"6514:45:36"}]},"id":33535,"nodeType":"IfStatement","src":"4795:1779:36","trueBody":{"id":33440,"nodeType":"Block","src":"4808:880:36","statements":[{"assignments":[33348],"declarations":[{"constant":false,"id":33348,"mutability":"mutable","name":"fees","nameLocation":"4834:4:36","nodeType":"VariableDeclaration","scope":33440,"src":"4826:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33347,"name":"uint256","nodeType":"ElementaryTypeName","src":"4826:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33354,"initialValue":{"arguments":[{"expression":{"id":33351,"name":"poolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33325,"src":"4859:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":33352,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4870:7:36","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":37269,"src":"4859:18:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":33349,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33289,"src":"4841:8:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4850:8:36","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"4841:17:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4841:37:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4826:52:36"},{"assignments":[33356],"declarations":[{"constant":false,"id":33356,"mutability":"mutable","name":"weightedPrice","nameLocation":"4904:13:36","nodeType":"VariableDeclaration","scope":33440,"src":"4896:21:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33355,"name":"uint256","nodeType":"ElementaryTypeName","src":"4896:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33376,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":33371,"name":"poolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33325,"src":"5040:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":33372,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5051:2:36","memberName":"wY","nodeType":"MemberAccess","referencedDeclaration":37267,"src":"5040:13:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5033:6:36","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":33369,"name":"int256","nodeType":"ElementaryTypeName","src":"5033:6:36","typeDescriptions":{}}},"id":33373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5033:21:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"arguments":[{"expression":{"id":33364,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33302,"src":"4982:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4996:2:36","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":32914,"src":"4982:16:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":33361,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33302,"src":"4956:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33362,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4970:2:36","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":32916,"src":"4956:16:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4973:8:36","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"4956:25:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4956:43:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33360,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4949:6:36","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":33359,"name":"int256","nodeType":"ElementaryTypeName","src":"4949:6:36","typeDescriptions":{}}},"id":33367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4949:51:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":33368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5001:6:36","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"4949:58:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":33374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4949:127:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":33358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4920:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":33357,"name":"uint256","nodeType":"ElementaryTypeName","src":"4920:7:36","typeDescriptions":{}}},"id":33375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4920:174:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4896:198:36"},{"assignments":[33378],"declarations":[{"constant":false,"id":33378,"mutability":"mutable","name":"deltaL","nameLocation":"5120:6:36","nodeType":"VariableDeclaration","scope":33440,"src":"5112:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33377,"name":"uint256","nodeType":"ElementaryTypeName","src":"5112:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33383,"initialValue":{"arguments":[{"id":33381,"name":"weightedPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33356,"src":"5143:13:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":33379,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33348,"src":"5129:4:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5134:8:36","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"5129:13:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5129:28:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5112:45:36"},{"expression":{"id":33386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33384,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33378,"src":"5175:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":33385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5185:1:36","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5175:11:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33387,"nodeType":"ExpressionStatement","src":"5175:11:36"},{"expression":{"id":33395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":33388,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33306,"src":"5205:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5217:2:36","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":32914,"src":"5205:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":33391,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33302,"src":"5222:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5236:2:36","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":32914,"src":"5222:16:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":33393,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33289,"src":"5241:8:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5222:27:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5205:44:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33396,"nodeType":"ExpressionStatement","src":"5205:44:36"},{"expression":{"id":33403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":33397,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33306,"src":"5267:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5279:1:36","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":32918,"src":"5267:13:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33400,"name":"startComputedL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33334,"src":"5283:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":33401,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33378,"src":"5300:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5283:23:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5267:39:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33404,"nodeType":"ExpressionStatement","src":"5267:39:36"},{"expression":{"id":33415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":33405,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33306,"src":"5325:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5337:2:36","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":32916,"src":"5325:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":33409,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33285,"src":"5378:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":33410,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33306,"src":"5386:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5398:2:36","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":32914,"src":"5386:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":33412,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33306,"src":"5402:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5414:1:36","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":32918,"src":"5402:13:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33408,"name":"getNextReserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33282,"src":"5362:15:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":33414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5362:54:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5325:91:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33416,"nodeType":"ExpressionStatement","src":"5325:91:36"},{"expression":{"id":33421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":33417,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33306,"src":"5434:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5446:2:36","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":32916,"src":"5434:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":33420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5452:1:36","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5434:19:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33422,"nodeType":"ExpressionStatement","src":"5434:19:36"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":33424,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33306,"src":"5501:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5513:2:36","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":32916,"src":"5501:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":33426,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33302,"src":"5518:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5532:2:36","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":32916,"src":"5518:16:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5501:33:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420737761703a2079207265736572766520696e6372656173656421","id":33429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5556:36:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_7b18f442edd1b5576f186ab3912f13c7dcc77837218a5f15acc8fa21e9acfdaf","typeString":"literal_string \"invalid swap: y reserve increased!\""},"value":"invalid swap: y reserve increased!"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7b18f442edd1b5576f186ab3912f13c7dcc77837218a5f15acc8fa21e9acfdaf","typeString":"literal_string \"invalid swap: y reserve increased!\""}],"id":33423,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5472:7:36","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5472:138:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33431,"nodeType":"ExpressionStatement","src":"5472:138:36"},{"expression":{"id":33438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33432,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33331,"src":"5628:9:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":33433,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33302,"src":"5640:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5654:2:36","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":32916,"src":"5640:16:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":33435,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33306,"src":"5659:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5671:2:36","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":32916,"src":"5659:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5640:33:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5628:45:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33439,"nodeType":"ExpressionStatement","src":"5628:45:36"}]}}]},{"assignments":[33538],"declarations":[{"constant":false,"id":33538,"mutability":"mutable","name":"swapData","nameLocation":"6607:8:36","nodeType":"VariableDeclaration","scope":33579,"src":"6594:21:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":33537,"name":"bytes","nodeType":"ElementaryTypeName","src":"6594:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":33548,"initialValue":{"arguments":[{"expression":{"id":33541,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33306,"src":"6641:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33542,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6653:2:36","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":32914,"src":"6641:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":33543,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33306,"src":"6657:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6669:2:36","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":32916,"src":"6657:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":33545,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33306,"src":"6673:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6685:1:36","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":32918,"src":"6673:13:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":33539,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6630:3:36","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":33540,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6634:6:36","memberName":"encode","nodeType":"MemberAccess","src":"6630:10:36","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":33547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6630:57:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6594:93:36"},{"assignments":[33550],"declarations":[{"constant":false,"id":33550,"mutability":"mutable","name":"poolId","nameLocation":"6706:6:36","nodeType":"VariableDeclaration","scope":33579,"src":"6698:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33549,"name":"uint256","nodeType":"ElementaryTypeName","src":"6698:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33552,"initialValue":{"id":33551,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33285,"src":"6715:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6698:23:36"},{"assignments":[33554,null,null,null,null,null],"declarations":[{"constant":false,"id":33554,"mutability":"mutable","name":"valid","nameLocation":"6737:5:36","nodeType":"VariableDeclaration","scope":33579,"src":"6732:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33553,"name":"bool","nodeType":"ElementaryTypeName","src":"6732:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null,null,null,null,null],"id":33566,"initialValue":{"arguments":[{"arguments":[{"id":33561,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6804:4:36","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}],"id":33560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6796:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33559,"name":"address","nodeType":"ElementaryTypeName","src":"6796:7:36","typeDescriptions":{}}},"id":33562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6796:13:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33563,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33550,"src":"6811:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33564,"name":"swapData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33538,"src":"6819:8:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":33556,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32921,"src":"6773:8:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33555,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"6763:9:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$29839_$","typeString":"type(contract IStrategy)"}},"id":33557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6763:19:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$29839","typeString":"contract IStrategy"}},"id":33558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6783:12:36","memberName":"validateSwap","nodeType":"MemberAccess","referencedDeclaration":29808,"src":"6763:32:36","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_int256_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256,bytes memory) view external returns (bool,int256,int256,uint256,uint256,uint256)"}},"id":33565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6763:65:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_int256_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,int256,int256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"6731:97:36"},{"expression":{"components":[{"id":33567,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33554,"src":"6859:5:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":33568,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33331,"src":"6878:9:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":33570,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33306,"src":"6914:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33571,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6926:2:36","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":32914,"src":"6914:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":33572,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33306,"src":"6930:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$32919_memory_ptr","typeString":"struct G3MSolver.Reserves memory"}},"id":33573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6942:2:36","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":32916,"src":"6930:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33574,"name":"poolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33325,"src":"6946:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":33569,"name":"computePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32043,"src":"6901:12:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,struct G3M.G3MParams memory) pure returns (uint256)"}},"id":33575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6901:56:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33576,"name":"swapData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33538,"src":"6971:8:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":33577,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6845:144:36","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"functionReturnParameters":33299,"id":33578,"nodeType":"Return","src":"6838:151:36"}]},"documentation":{"id":33283,"nodeType":"StructuredDocumentation","src":"4102:78:36","text":"@dev Estimates a swap's reserves and adjustments and returns its validity."},"functionSelector":"3928ff97","implemented":true,"kind":"function","modifiers":[],"name":"simulateSwap","nameLocation":"4194:12:36","parameters":{"id":33290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33285,"mutability":"mutable","name":"poolId","nameLocation":"4224:6:36","nodeType":"VariableDeclaration","scope":33580,"src":"4216:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33284,"name":"uint256","nodeType":"ElementaryTypeName","src":"4216:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33287,"mutability":"mutable","name":"swapXIn","nameLocation":"4245:7:36","nodeType":"VariableDeclaration","scope":33580,"src":"4240:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33286,"name":"bool","nodeType":"ElementaryTypeName","src":"4240:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":33289,"mutability":"mutable","name":"amountIn","nameLocation":"4270:8:36","nodeType":"VariableDeclaration","scope":33580,"src":"4262:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33288,"name":"uint256","nodeType":"ElementaryTypeName","src":"4262:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4206:78:36"},"returnParameters":{"id":33299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33580,"src":"4306:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33291,"name":"bool","nodeType":"ElementaryTypeName","src":"4306:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":33294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33580,"src":"4312:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33293,"name":"uint256","nodeType":"ElementaryTypeName","src":"4312:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33296,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33580,"src":"4321:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33295,"name":"uint256","nodeType":"ElementaryTypeName","src":"4321:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33298,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33580,"src":"4330:12:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":33297,"name":"bytes","nodeType":"ElementaryTypeName","src":"4330:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4305:38:36"},"scope":33820,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":33620,"nodeType":"FunctionDefinition","src":"7002:355:36","nodes":[],"body":{"id":33619,"nodeType":"Block","src":"7142:215:36","nodes":[],"statements":[{"assignments":[33595],"declarations":[{"constant":false,"id":33595,"mutability":"mutable","name":"params","nameLocation":"7173:6:36","nodeType":"VariableDeclaration","scope":33619,"src":"7152:27:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":33594,"nodeType":"UserDefinedTypeName","pathNode":{"id":33593,"name":"G3M.G3MParams","nameLocations":["7152:3:36","7156:9:36"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"7152:13:36"},"referencedDeclaration":37272,"src":"7152:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"id":33599,"initialValue":{"arguments":[{"id":33597,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33582,"src":"7198:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33596,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32995,"src":"7182:15:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_G3MParams_$37272_memory_ptr_$","typeString":"function (uint256) view returns (struct G3M.G3MParams memory)"}},"id":33598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7182:23:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7152:53:36"},{"assignments":[33601,33603,33605],"declarations":[{"constant":false,"id":33601,"mutability":"mutable","name":"rx","nameLocation":"7224:2:36","nodeType":"VariableDeclaration","scope":33619,"src":"7216:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33600,"name":"uint256","nodeType":"ElementaryTypeName","src":"7216:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33603,"mutability":"mutable","name":"ry","nameLocation":"7236:2:36","nodeType":"VariableDeclaration","scope":33619,"src":"7228:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33602,"name":"uint256","nodeType":"ElementaryTypeName","src":"7228:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33605,"mutability":"mutable","name":"L","nameLocation":"7248:1:36","nodeType":"VariableDeclaration","scope":33619,"src":"7240:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33604,"name":"uint256","nodeType":"ElementaryTypeName","src":"7240:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33609,"initialValue":{"arguments":[{"id":33607,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33582,"src":"7277:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33606,"name":"getReservesAndLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33018,"src":"7253:23:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256,uint256)"}},"id":33608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7253:31:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"7215:69:36"},{"expression":{"arguments":[{"id":33611,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33584,"src":"7321:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33612,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33601,"src":"7324:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33613,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33603,"src":"7328:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33614,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33605,"src":"7332:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33615,"name":"vUpper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33586,"src":"7335:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33616,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33595,"src":"7343:6:36","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":33610,"name":"computeOptimalLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32732,"src":"7301:19:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256,struct G3M.G3MParams memory) pure returns (uint256)"}},"id":33617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7301:49:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":33590,"id":33618,"nodeType":"Return","src":"7294:56:36"}]},"functionSelector":"306db46b","implemented":true,"kind":"function","modifiers":[],"name":"computeOptimalArbLowerPrice","nameLocation":"7011:27:36","parameters":{"id":33587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33582,"mutability":"mutable","name":"poolId","nameLocation":"7056:6:36","nodeType":"VariableDeclaration","scope":33620,"src":"7048:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33581,"name":"uint256","nodeType":"ElementaryTypeName","src":"7048:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33584,"mutability":"mutable","name":"S","nameLocation":"7080:1:36","nodeType":"VariableDeclaration","scope":33620,"src":"7072:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33583,"name":"uint256","nodeType":"ElementaryTypeName","src":"7072:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33586,"mutability":"mutable","name":"vUpper","nameLocation":"7099:6:36","nodeType":"VariableDeclaration","scope":33620,"src":"7091:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33585,"name":"uint256","nodeType":"ElementaryTypeName","src":"7091:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7038:73:36"},"returnParameters":{"id":33590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33589,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33620,"src":"7133:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33588,"name":"uint256","nodeType":"ElementaryTypeName","src":"7133:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7132:9:36"},"scope":33820,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":33660,"nodeType":"FunctionDefinition","src":"7363:355:36","nodes":[],"body":{"id":33659,"nodeType":"Block","src":"7503:215:36","nodes":[],"statements":[{"assignments":[33635],"declarations":[{"constant":false,"id":33635,"mutability":"mutable","name":"params","nameLocation":"7534:6:36","nodeType":"VariableDeclaration","scope":33659,"src":"7513:27:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":33634,"nodeType":"UserDefinedTypeName","pathNode":{"id":33633,"name":"G3M.G3MParams","nameLocations":["7513:3:36","7517:9:36"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"7513:13:36"},"referencedDeclaration":37272,"src":"7513:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"id":33639,"initialValue":{"arguments":[{"id":33637,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33622,"src":"7559:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33636,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32995,"src":"7543:15:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_G3MParams_$37272_memory_ptr_$","typeString":"function (uint256) view returns (struct G3M.G3MParams memory)"}},"id":33638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7543:23:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7513:53:36"},{"assignments":[33641,33643,33645],"declarations":[{"constant":false,"id":33641,"mutability":"mutable","name":"rx","nameLocation":"7585:2:36","nodeType":"VariableDeclaration","scope":33659,"src":"7577:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33640,"name":"uint256","nodeType":"ElementaryTypeName","src":"7577:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33643,"mutability":"mutable","name":"ry","nameLocation":"7597:2:36","nodeType":"VariableDeclaration","scope":33659,"src":"7589:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33642,"name":"uint256","nodeType":"ElementaryTypeName","src":"7589:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33645,"mutability":"mutable","name":"L","nameLocation":"7609:1:36","nodeType":"VariableDeclaration","scope":33659,"src":"7601:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33644,"name":"uint256","nodeType":"ElementaryTypeName","src":"7601:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33649,"initialValue":{"arguments":[{"id":33647,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33622,"src":"7638:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33646,"name":"getReservesAndLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33018,"src":"7614:23:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256,uint256)"}},"id":33648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7614:31:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"7576:69:36"},{"expression":{"arguments":[{"id":33651,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33624,"src":"7682:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33652,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33641,"src":"7685:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33653,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33643,"src":"7689:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33654,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33645,"src":"7693:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33655,"name":"vUpper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33626,"src":"7696:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33656,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33635,"src":"7704:6:36","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":33650,"name":"computeOptimalRaise","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32798,"src":"7662:19:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256,struct G3M.G3MParams memory) pure returns (uint256)"}},"id":33657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:49:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":33630,"id":33658,"nodeType":"Return","src":"7655:56:36"}]},"functionSelector":"4fd67c58","implemented":true,"kind":"function","modifiers":[],"name":"computeOptimalArbRaisePrice","nameLocation":"7372:27:36","parameters":{"id":33627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33622,"mutability":"mutable","name":"poolId","nameLocation":"7417:6:36","nodeType":"VariableDeclaration","scope":33660,"src":"7409:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33621,"name":"uint256","nodeType":"ElementaryTypeName","src":"7409:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33624,"mutability":"mutable","name":"S","nameLocation":"7441:1:36","nodeType":"VariableDeclaration","scope":33660,"src":"7433:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33623,"name":"uint256","nodeType":"ElementaryTypeName","src":"7433:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33626,"mutability":"mutable","name":"vUpper","nameLocation":"7460:6:36","nodeType":"VariableDeclaration","scope":33660,"src":"7452:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33625,"name":"uint256","nodeType":"ElementaryTypeName","src":"7452:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7399:73:36"},"returnParameters":{"id":33630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33629,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33660,"src":"7494:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33628,"name":"uint256","nodeType":"ElementaryTypeName","src":"7494:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7493:9:36"},"scope":33820,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":33700,"nodeType":"FunctionDefinition","src":"7724:325:36","nodes":[],"body":{"id":33699,"nodeType":"Block","src":"7849:200:36","nodes":[],"statements":[{"assignments":[33675],"declarations":[{"constant":false,"id":33675,"mutability":"mutable","name":"params","nameLocation":"7880:6:36","nodeType":"VariableDeclaration","scope":33699,"src":"7859:27:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":33674,"nodeType":"UserDefinedTypeName","pathNode":{"id":33673,"name":"G3M.G3MParams","nameLocations":["7859:3:36","7863:9:36"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"7859:13:36"},"referencedDeclaration":37272,"src":"7859:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"id":33679,"initialValue":{"arguments":[{"id":33677,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33662,"src":"7905:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33676,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32995,"src":"7889:15:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_G3MParams_$37272_memory_ptr_$","typeString":"function (uint256) view returns (struct G3M.G3MParams memory)"}},"id":33678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7889:23:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7859:53:36"},{"assignments":[33681,33683,33685],"declarations":[{"constant":false,"id":33681,"mutability":"mutable","name":"rx","nameLocation":"7931:2:36","nodeType":"VariableDeclaration","scope":33699,"src":"7923:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33680,"name":"uint256","nodeType":"ElementaryTypeName","src":"7923:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33683,"mutability":"mutable","name":"ry","nameLocation":"7943:2:36","nodeType":"VariableDeclaration","scope":33699,"src":"7935:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33682,"name":"uint256","nodeType":"ElementaryTypeName","src":"7935:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33685,"mutability":"mutable","name":"L","nameLocation":"7955:1:36","nodeType":"VariableDeclaration","scope":33699,"src":"7947:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33684,"name":"uint256","nodeType":"ElementaryTypeName","src":"7947:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33689,"initialValue":{"arguments":[{"id":33687,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33662,"src":"7984:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33686,"name":"getReservesAndLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33018,"src":"7960:23:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256,uint256)"}},"id":33688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7960:31:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"7922:69:36"},{"expression":{"arguments":[{"id":33691,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33664,"src":"8018:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33692,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33681,"src":"8021:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33693,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33683,"src":"8025:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33694,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33685,"src":"8029:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33695,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33666,"src":"8032:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33696,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33675,"src":"8035:6:36","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":33690,"name":"diffLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32419,"src":"8008:9:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256,struct G3M.G3MParams memory) pure returns (int256)"}},"id":33697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8008:34:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":33670,"id":33698,"nodeType":"Return","src":"8001:41:36"}]},"functionSelector":"332266f3","implemented":true,"kind":"function","modifiers":[],"name":"calculateDiffLower","nameLocation":"7733:18:36","parameters":{"id":33667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33662,"mutability":"mutable","name":"poolId","nameLocation":"7769:6:36","nodeType":"VariableDeclaration","scope":33700,"src":"7761:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33661,"name":"uint256","nodeType":"ElementaryTypeName","src":"7761:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33664,"mutability":"mutable","name":"S","nameLocation":"7793:1:36","nodeType":"VariableDeclaration","scope":33700,"src":"7785:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33663,"name":"uint256","nodeType":"ElementaryTypeName","src":"7785:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33666,"mutability":"mutable","name":"v","nameLocation":"7812:1:36","nodeType":"VariableDeclaration","scope":33700,"src":"7804:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33665,"name":"uint256","nodeType":"ElementaryTypeName","src":"7804:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7751:68:36"},"returnParameters":{"id":33670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33669,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33700,"src":"7841:6:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":33668,"name":"int256","nodeType":"ElementaryTypeName","src":"7841:6:36","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"7840:8:36"},"scope":33820,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":33740,"nodeType":"FunctionDefinition","src":"8055:325:36","nodes":[],"body":{"id":33739,"nodeType":"Block","src":"8180:200:36","nodes":[],"statements":[{"assignments":[33715],"declarations":[{"constant":false,"id":33715,"mutability":"mutable","name":"params","nameLocation":"8211:6:36","nodeType":"VariableDeclaration","scope":33739,"src":"8190:27:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":33714,"nodeType":"UserDefinedTypeName","pathNode":{"id":33713,"name":"G3M.G3MParams","nameLocations":["8190:3:36","8194:9:36"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"8190:13:36"},"referencedDeclaration":37272,"src":"8190:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"id":33719,"initialValue":{"arguments":[{"id":33717,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33702,"src":"8236:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33716,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32995,"src":"8220:15:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_G3MParams_$37272_memory_ptr_$","typeString":"function (uint256) view returns (struct G3M.G3MParams memory)"}},"id":33718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8220:23:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"nodeType":"VariableDeclarationStatement","src":"8190:53:36"},{"assignments":[33721,33723,33725],"declarations":[{"constant":false,"id":33721,"mutability":"mutable","name":"rx","nameLocation":"8262:2:36","nodeType":"VariableDeclaration","scope":33739,"src":"8254:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33720,"name":"uint256","nodeType":"ElementaryTypeName","src":"8254:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33723,"mutability":"mutable","name":"ry","nameLocation":"8274:2:36","nodeType":"VariableDeclaration","scope":33739,"src":"8266:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33722,"name":"uint256","nodeType":"ElementaryTypeName","src":"8266:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33725,"mutability":"mutable","name":"L","nameLocation":"8286:1:36","nodeType":"VariableDeclaration","scope":33739,"src":"8278:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33724,"name":"uint256","nodeType":"ElementaryTypeName","src":"8278:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33729,"initialValue":{"arguments":[{"id":33727,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33702,"src":"8315:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33726,"name":"getReservesAndLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33018,"src":"8291:23:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256,uint256)"}},"id":33728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8291:31:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"8253:69:36"},{"expression":{"arguments":[{"id":33731,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33704,"src":"8349:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33732,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33721,"src":"8352:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33733,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33723,"src":"8356:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33734,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33725,"src":"8360:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33735,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33706,"src":"8363:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33736,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33715,"src":"8366:6:36","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":33730,"name":"diffRaise","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32666,"src":"8339:9:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256,struct G3M.G3MParams memory) pure returns (int256)"}},"id":33737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8339:34:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":33710,"id":33738,"nodeType":"Return","src":"8332:41:36"}]},"functionSelector":"902ecaa2","implemented":true,"kind":"function","modifiers":[],"name":"calculateDiffRaise","nameLocation":"8064:18:36","parameters":{"id":33707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33702,"mutability":"mutable","name":"poolId","nameLocation":"8100:6:36","nodeType":"VariableDeclaration","scope":33740,"src":"8092:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33701,"name":"uint256","nodeType":"ElementaryTypeName","src":"8092:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33704,"mutability":"mutable","name":"S","nameLocation":"8124:1:36","nodeType":"VariableDeclaration","scope":33740,"src":"8116:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33703,"name":"uint256","nodeType":"ElementaryTypeName","src":"8116:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33706,"mutability":"mutable","name":"v","nameLocation":"8143:1:36","nodeType":"VariableDeclaration","scope":33740,"src":"8135:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33705,"name":"uint256","nodeType":"ElementaryTypeName","src":"8135:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8082:68:36"},"returnParameters":{"id":33710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33709,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33740,"src":"8172:6:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":33708,"name":"int256","nodeType":"ElementaryTypeName","src":"8172:6:36","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8171:8:36"},"scope":33820,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":33774,"nodeType":"FunctionDefinition","src":"8467:288:36","nodes":[],"body":{"id":33773,"nodeType":"Block","src":"8570:185:36","nodes":[],"statements":[{"assignments":[33752],"declarations":[{"constant":false,"id":33752,"mutability":"mutable","name":"params","nameLocation":"8601:6:36","nodeType":"VariableDeclaration","scope":33773,"src":"8580:27:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":33751,"nodeType":"UserDefinedTypeName","pathNode":{"id":33750,"name":"G3M.G3MParams","nameLocations":["8580:3:36","8584:9:36"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"8580:13:36"},"referencedDeclaration":37272,"src":"8580:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"id":33756,"initialValue":{"arguments":[{"id":33754,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33743,"src":"8626:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33753,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32995,"src":"8610:15:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_G3MParams_$37272_memory_ptr_$","typeString":"function (uint256) view returns (struct G3M.G3MParams memory)"}},"id":33755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8610:23:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"nodeType":"VariableDeclarationStatement","src":"8580:53:36"},{"assignments":[33758,33760,null],"declarations":[{"constant":false,"id":33758,"mutability":"mutable","name":"rx","nameLocation":"8652:2:36","nodeType":"VariableDeclaration","scope":33773,"src":"8644:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33757,"name":"uint256","nodeType":"ElementaryTypeName","src":"8644:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33760,"mutability":"mutable","name":"ry","nameLocation":"8664:2:36","nodeType":"VariableDeclaration","scope":33773,"src":"8656:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33759,"name":"uint256","nodeType":"ElementaryTypeName","src":"8656:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":33764,"initialValue":{"arguments":[{"id":33762,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33743,"src":"8695:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33761,"name":"getReservesAndLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33018,"src":"8671:23:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256,uint256)"}},"id":33763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8671:31:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"8643:59:36"},{"expression":{"id":33771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33765,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33746,"src":"8712:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":33767,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33758,"src":"8733:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33768,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33760,"src":"8737:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33769,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33752,"src":"8741:6:36","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":33766,"name":"computePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32043,"src":"8720:12:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,struct G3M.G3MParams memory) pure returns (uint256)"}},"id":33770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8720:28:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8712:36:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33772,"nodeType":"ExpressionStatement","src":"8712:36:36"}]},"documentation":{"id":33741,"nodeType":"StructuredDocumentation","src":"8386:76:36","text":"@dev Computes the internal price using this strategie's slot parameters."},"functionSelector":"3b4d1030","implemented":true,"kind":"function","modifiers":[],"name":"internalPrice","nameLocation":"8476:13:36","parameters":{"id":33744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33743,"mutability":"mutable","name":"poolId","nameLocation":"8498:6:36","nodeType":"VariableDeclaration","scope":33774,"src":"8490:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33742,"name":"uint256","nodeType":"ElementaryTypeName","src":"8490:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8489:16:36"},"returnParameters":{"id":33747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33746,"mutability":"mutable","name":"price","nameLocation":"8559:5:36","nodeType":"VariableDeclaration","scope":33774,"src":"8551:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33745,"name":"uint256","nodeType":"ElementaryTypeName","src":"8551:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8550:15:36"},"scope":33820,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":33819,"nodeType":"FunctionDefinition","src":"8761:348:36","nodes":[],"body":{"id":33818,"nodeType":"Block","src":"8876:233:36","nodes":[],"statements":[{"assignments":[33784,33786,33788],"declarations":[{"constant":false,"id":33784,"mutability":"mutable","name":"rx","nameLocation":"8895:2:36","nodeType":"VariableDeclaration","scope":33818,"src":"8887:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33783,"name":"uint256","nodeType":"ElementaryTypeName","src":"8887:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33786,"mutability":"mutable","name":"ry","nameLocation":"8907:2:36","nodeType":"VariableDeclaration","scope":33818,"src":"8899:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33785,"name":"uint256","nodeType":"ElementaryTypeName","src":"8899:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33788,"mutability":"mutable","name":"L","nameLocation":"8919:1:36","nodeType":"VariableDeclaration","scope":33818,"src":"8911:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33787,"name":"uint256","nodeType":"ElementaryTypeName","src":"8911:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33800,"initialValue":{"arguments":[{"id":33791,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33778,"src":"8947:4:36","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":33793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8954:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":33792,"name":"uint256","nodeType":"ElementaryTypeName","src":"8954:7:36","typeDescriptions":{}}},{"id":33795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8963:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":33794,"name":"uint256","nodeType":"ElementaryTypeName","src":"8963:7:36","typeDescriptions":{}}},{"id":33797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8972:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":33796,"name":"uint256","nodeType":"ElementaryTypeName","src":"8972:7:36","typeDescriptions":{}}}],"id":33798,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8953:27:36","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}],"expression":{"id":33789,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8936:3:36","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":33790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8940:6:36","memberName":"decode","nodeType":"MemberAccess","src":"8936:10:36","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":33799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8936:45:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"8886:95:36"},{"assignments":[33805],"declarations":[{"constant":false,"id":33805,"mutability":"mutable","name":"params","nameLocation":"9012:6:36","nodeType":"VariableDeclaration","scope":33818,"src":"8991:27:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":33804,"nodeType":"UserDefinedTypeName","pathNode":{"id":33803,"name":"G3M.G3MParams","nameLocations":["8991:3:36","8995:9:36"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"8991:13:36"},"referencedDeclaration":37272,"src":"8991:13:36","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"id":33809,"initialValue":{"arguments":[{"id":33807,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33776,"src":"9037:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33806,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32995,"src":"9021:15:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_G3MParams_$37272_memory_ptr_$","typeString":"function (uint256) view returns (struct G3M.G3MParams memory)"}},"id":33808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9021:23:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"nodeType":"VariableDeclarationStatement","src":"8991:53:36"},{"expression":{"arguments":[{"id":33812,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33784,"src":"9084:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33813,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33786,"src":"9088:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33814,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33788,"src":"9092:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33815,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33805,"src":"9095:6:36","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"expression":{"id":33810,"name":"G3MLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38158,"src":"9061:6:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3MLib_$38158_$","typeString":"type(library G3MLib)"}},"id":33811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9068:15:36","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":38112,"src":"9061:22:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct G3M.G3MParams memory) pure returns (int256)"}},"id":33816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9061:41:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":33782,"id":33817,"nodeType":"Return","src":"9054:48:36"}]},"functionSelector":"0f4166b8","implemented":true,"kind":"function","modifiers":[],"name":"checkSwapConstant","nameLocation":"8770:17:36","parameters":{"id":33779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33776,"mutability":"mutable","name":"poolId","nameLocation":"8805:6:36","nodeType":"VariableDeclaration","scope":33819,"src":"8797:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33775,"name":"uint256","nodeType":"ElementaryTypeName","src":"8797:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33778,"mutability":"mutable","name":"data","nameLocation":"8836:4:36","nodeType":"VariableDeclaration","scope":33819,"src":"8821:19:36","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":33777,"name":"bytes","nodeType":"ElementaryTypeName","src":"8821:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8787:59:36"},"returnParameters":{"id":33782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33781,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33819,"src":"8868:6:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":33780,"name":"int256","nodeType":"ElementaryTypeName","src":"8868:6:36","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8867:8:36"},"scope":33820,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"G3MSolver","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"internalFunctionIDs":{"32083":1,"32129":2,"32175":3},"linearizedBaseContracts":[33820],"name":"G3MSolver","nameLocation":"235:9:36","scope":33821,"usedErrors":[30985,30992],"usedEvents":[]}],"license":"GPL-3.0-or-later"},"id":36} \ No newline at end of file diff --git a/out/G3MTest.t.sol/G3MTest.json b/out/G3MTest.t.sol/G3MTest.json deleted file mode 100644 index e34ee1f2..00000000 --- a/out/G3MTest.t.sol/G3MTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"TEST_SWAP_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_G3M_init_18","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_diff_lower","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_diff_raise","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_g3m_swap","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_optimal_lower","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_optimal_lower_profit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_optimal_raise","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_optimal_raise_profit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"BisectionLib_InvalidBounds","inputs":[{"name":"lower","type":"uint256","internalType":"uint256"},{"name":"upper","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BisectionLib_RootOutsideBounds","inputs":[{"name":"lowerResult","type":"int256","internalType":"int256"},{"name":"upperResult","type":"int256","internalType":"int256"}]}],"bytecode":{"object":"0x6080806040523461002457600160ff19600054161760005561ab4490816200002a8239f35b600080fdfe608060405260043610156200001357600080fd5b60003560e01c806222a0ca14620000ee5780630a9254e414620000e85780633456d95514620000e25780635f3dc89b14620000dc5780635f4d62fb14620000d65780636162e16a14620000d0578063620a260714620000ca5780637a277e2c14620000c457806399a2848814620000be578063ba414fa614620000b8578063dd017e5214620000b25763fa7626d414620000ac57600080fd5b62000fc9565b62000ece565b62000ea5565b62000daa565b62000caf565b62000c8b565b62000b90565b62000a95565b6200098e565b62000893565b6200034d565b62000105565b60009103126200010057565b600080fd5b3462000100576000806003193601126200034a57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000346576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620002fb5762000328575b50620001d481620001756200109f565b6706f05b59d3b200008082526020820152660aa87bee538000604082015260608101829052601554620001b8906001600160a01b03165b6001600160a01b031690565b6040518080958194636f78afc960e11b83526004830162001169565b03915afa8015620002fb57620002a56080918493849162000301575b5060145462000208906001600160a01b0316620001ac565b6016549091906200026b906001600160a01b03166017546200025b906001600160a01b0316916200024b6200023c6200109f565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b03166040840152565b606082015260135462000287906001600160a01b0316620001ac565b906040519485809481936305157c7f60e21b83526004830162001200565b03925af18015620002fb57620002c4575b50620002c162001378565b80f35b620002ea9060803d608011620002f3575b620002e1818362001070565b810190620011b6565b505050620002b6565b503d620002d5565b62001093565b6200032191503d8086833e62000318818362001070565b8101906200113f565b38620001f0565b80620003386200033f9262001004565b80620000f4565b3862000165565b5080fd5b80fd5b3462000100576000806003193601126200034a576040805161106b80820167ffffffffffffffff92808210848311176200085b5780620003cf62002dc59385858439906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b039086f0918215620002fb57601680546001600160a01b0319166001600160a01b03948516179055845191818301838110868211176200085b5783926200045292843990606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b039085f0908115620002fb5762000486911660018060a01b03166bffffffffffffffffffffffff60a01b6017541617601755565b6016546200049f90620001ac906001600160a01b031681565b803b156200088f5782516340c10f1960e01b8082523060048301526a52b7d2dcc80cd2e400000060248301529185908290604490829084905af18015620002fb5762000878575b5060175484906200050290620001ac906001600160a01b031681565b91823b15620003465784519081523060048201526a52b7d2dcc80cd2e40000006024820152918290604490829084905af18015620002fb5762000861575b506016546001600160a01b03166017546001600160a01b0316908351916105979081840192848410868511176200085b578493620005a6936200a57886396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f08015620002fb57601880546001600160a01b0319166001600160a01b039092169190911790558151612f2180820190828210848311176200085b578291620005fc9162003e3084396000815260200190565b039084f08015620002fb57601380546001600160a01b0319166001600160a01b039290921691821790556200063190620001ac565b8251906112cb80830191838310858411176200085b5783926200066792620092ad85396001600160a01b03909116815260200190565b039084f08015620002fb57601480546001600160a01b0319166001600160a01b039290921691821790556200069c90620001ac565b82519161255c8084019290918311848410176200085b578392620006d39262006d5185396001600160a01b03909116815260200190565b039083f0908115620002fb576200070a620007789260018060a01b03166bffffffffffffffffffffffff60a01b6015541617601555565b6016546200072390620001ac906001600160a01b031681565b6013546200073a906001600160a01b0316620001ac565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af1918215620002fb57620007f293859362000839575b50601754620007ab90620001ac906001600160a01b031681565b6013549091908790620007c7906001600160a01b0316620001ac565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af18015620002fb5762000806578280f35b816200082a92903d1062000831575b62000821818362001070565b81019062001690565b5038808280f35b503d62000815565b6200085390843d8611620008315762000821818362001070565b503862000791565b62000fee565b8062000338620008719262001004565b3862000540565b8062000338620008889262001004565b38620004e6565b8380fd5b3462000100576000806003193601126200034a57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000346576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620002fb5762000977575b506200090381620001756200109f565b03915afa8015620002fb57620009366080918493849162000301575060145462000208906001600160a01b0316620001ac565b03925af18015620002fb5762000952575b50620002c1620016d9565b6200096e9060803d608011620002f357620002e1818362001070565b50505062000947565b8062000338620009879262001004565b38620008f3565b3462000100576000806003193601126200034a5780608062000a5e620009b36200109f565b6706f05b59d3b20000808252602082015260408101849052306060820152601354620009e8906001600160a01b0316620001ac565b60145490919062000a02906001600160a01b0316620001ac565b60165460175491926001600160a01b039182169262000a3c9216906200025b9062000a2d9062002274565b936200024b6200023c6200109f565b60608201526040519485809481936305157c7f60e21b83526004830162001200565b03925af18015620002fb5762000a72575080f35b62000a8e9060803d608011620002f357620002e1818362001070565b5050505080f35b3462000100576000806003193601126200034a57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000346576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620002fb5762000b79575b5062000b0581620001756200109f565b03915afa8015620002fb5762000b386080918493849162000301575060145462000208906001600160a01b0316620001ac565b03925af18015620002fb5762000b54575b50620002c16200197c565b62000b709060803d608011620002f357620002e1818362001070565b50505062000b49565b806200033862000b899262001004565b3862000af5565b3462000100576000806003193601126200034a57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000346576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620002fb5762000c74575b5062000c0081620001756200109f565b03915afa8015620002fb5762000c336080918493849162000301575060145462000208906001600160a01b0316620001ac565b03925af18015620002fb5762000c4f575b50620002c162001b9e565b62000c6b9060803d608011620002f357620002e1818362001070565b50505062000c44565b806200033862000c849262001004565b3862000bf0565b346200010057600036600319011262000100576020604051660aa87bee5380008152f35b3462000100576000806003193601126200034a57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000346576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620002fb5762000d93575b5062000d1f81620001756200109f565b03915afa8015620002fb5762000d526080918493849162000301575060145462000208906001600160a01b0316620001ac565b03925af18015620002fb5762000d6e575b50620002c162001c88565b62000d8a9060803d608011620002f357620002e1818362001070565b50505062000d63565b806200033862000da39262001004565b3862000d0f565b3462000100576000806003193601126200034a57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000346576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620002fb5762000e8e575b5062000e1a81620001756200109f565b03915afa8015620002fb5762000e4d6080918493849162000301575060145462000208906001600160a01b0316620001ac565b03925af18015620002fb5762000e69575b50620002c162001d72565b62000e859060803d608011620002f357620002e1818362001070565b50505062000e5e565b806200033862000e9e9262001004565b3862000e0a565b34620001005760003660031901126200010057602062000ec462001e75565b6040519015158152f35b3462000100576000806003193601126200034a57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000346576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620002fb5762000fb2575b5062000f3e81620001756200109f565b03915afa8015620002fb5762000f716080918493849162000301575060145462000208906001600160a01b0316620001ac565b03925af18015620002fb5762000f8d575b50620002c162001f4d565b62000fa99060803d608011620002f357620002e1818362001070565b50505062000f82565b806200033862000fc29262001004565b3862000f2e565b34620001005760003660031901126200010057602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200085b57604052565b6080810190811067ffffffffffffffff8211176200085b57604052565b6040810190811067ffffffffffffffff8211176200085b57604052565b6060810190811067ffffffffffffffff8211176200085b57604052565b90601f8019910116810190811067ffffffffffffffff8211176200085b57604052565b6040513d6000823e3d90fd5b60405190620010ae8262001019565b565b67ffffffffffffffff81116200085b57601f01601f191660200190565b60005b838110620010e15750506000910152565b8181015183820152602001620010d0565b81601f82011215620001005780516200110b81620010b0565b926200111b604051948562001070565b8184526020828401011162000100576200113c9160208085019101620010cd565b90565b906020828203126200010057815167ffffffffffffffff811162000100576200113c9201620010f2565b9190620010ae90604060c0850194670de0b6b3a7640000808252602082015201906060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b919082608091031262000100578151916020810151916060604083015192015190565b90602091620011f481518092818552858086019101620010cd565b601f01601f1916010190565b60a060606200113c9360208452600180841b03808251166020860152806020830151166040860152604082015116828501520151916080808201520190620011d9565b9081602091031262000100575190565b634e487b7160e01b600052601160045260246000fd5b6000198101919082116200127957565b62001253565b6305f5e0ff198101919082116200127957565b633b9ac9ff198101919082116200127957565b919082039182116200127957565b60405190620012c28262001036565b600382526236b4b760e91b6020830152565b60405190620012e38262001036565b60038252620dac2f60eb1b6020830152565b519081151582036200010057565b9060808282031262000100576200131a82620012f5565b92602083015192604081015192606082015167ffffffffffffffff811162000100576200113c9201620010f2565b919082604091031262000100576020825192015190565b6040906200113c939281528160208201520190620011d9565b6013546200138f906001600160a01b0316620001ac565b6040805163057ff68760e51b815290916004916020919082818581855afa8015620002fb57620013c9916000916200166e575b5062001269565b601554909190620013e3906001600160a01b0316620001ac565b928551634817655160e11b908181528281806200141f888b830160406103e891939293606081019481526710a741a46278000060208201520152565b0381895afa908115620002fb576000916200164c575b5087519182528682018581526710a741a462780000602082015267015316d0110d380060408201528390839081906060010381895afa908115620002fb57620014a19260009262001623575b50620014979062001491620012b3565b6200203a565b62001491620012d4565b85516309facf8b60e31b81528581018481526710a741a462780000602082015267015316d0110d380060408201529094908290869081906060010381845afa908115620002fb5762001528956000938493620015ed575b50508751633928ff9760e01b81528781018681526001602082015260408101939093529586928391829160600190565b03915afa918215620002fb5762001571948694600090600095620015b5575b50906200155660009262002088565b855163bd0625ab60e01b81529687958694859384016200135f565b03925af18015620002fb5762001585575050565b81620015a992903d10620015ad575b620015a0818362001070565b81019062001348565b5050565b503d62001594565b6200155695506000929150620015df903d8085833e620015d6818362001070565b81019062001303565b979291505091925062001547565b62001612929350803d106200161b575b62001609818362001070565b81019062001243565b903880620014f8565b503d620015fd565b620014979192506200164490853d87116200161b5762001609818362001070565b919062001481565b620016679150833d85116200161b5762001609818362001070565b3862001435565b620016899150843d86116200161b5762001609818362001070565b38620013c2565b9081602091031262000100576200113c90620012f5565b906305f5e10082018092116200127957565b90633b9aca0082018092116200127957565b919082018092116200127957565b601354620016f0906001600160a01b0316620001ac565b604051809163057ff68760e51b825281600460209485935afa8015620002fb57620017249160009162001961575062001269565b6015549091906200173e906001600160a01b0316620001ac565b60405163306db46b60e01b815260048101849052670d99a8cec7e200006024820152670341bac27805200060448201529092908281606481875afa928315620002fb576000936200193d575b5050604051633928ff9760e01b8082526004820183905260016024830152604482018490529290600081606481885afa8015620002fb57620017e2916000916200191a575b50620017db8362002435565b90620012a5565b91620017f9620017f283620016a7565b926200127f565b60405185815260048101839052600160248201526044810184905295909290600087606481845afa928315620002fb576200184b6000948694620018759a8792620018fd575b50620017db9062002435565b96604051988994859384938452600484016040909392919360608101948152600160208201520152565b03915afa938415620002fb57620010ae94620018cd92620018a492600092620018d35750620017db9062002435565b92620018b081620020b4565b620018bb83620020b4565b620018c684620020b4565b82620020de565b620020de565b620017db919250620018f1903d806000833e620015d6818362001070565b5050905091906200183f565b620017db919250620018f1903d808a833e620015d6818362001070565b6200193291503d806000833e620015d6818362001070565b5050905038620017cf565b62001958929350803d106200161b5762001609818362001070565b9038806200178a565b620016899150833d85116200161b5762001609818362001070565b60135462001993906001600160a01b0316620001ac565b604051809163057ff68760e51b825281600460209485935afa8015620002fb57620019c79160009162001961575062001269565b601554620019de906001600160a01b0316620001ac565b6040516309facf8b60e31b8152600481018390526710a741a462780000602482015267015316d0110d380060448201529092908181606481875afa918215620002fb5760009262001b7c575b5050604051633928ff9760e01b80825260048201849052600060248301819052604483018490529093919081606481885afa8015620002fb5762001a7e849162001a849360009162001b42575b5062002461565b620012a5565b9162001a9b62001a9482620016b9565b9162001292565b60405185815260048101849052600060248201819052604482018490529196909182606481845afa938415620002fb5762001aeb60009462001a7e62001b15978b96889162001b65575062002461565b96604051958694859384938452600484016040909392919360608101948152600060208201520152565b03915afa8015620002fb57620010ae9462001a7e620018a492620018cd9460009162001b42575062002461565b62001b5a91503d806000833e620015d6818362001070565b505090503862001a77565b62001b5a91503d808a833e620015d6818362001070565b62001b969250803d106200161b5762001609818362001070565b388062001a2a565b60135462001bb5906001600160a01b0316620001ac565b604051809163057ff68760e51b825281600460209485935afa8015620002fb5762001bef839162001c449360009162001961575062001269565b60155462001c06906001600160a01b0316620001ac565b604051808095819463306db46b60e01b83526004830160406701de754a1a7b20009193929360608101948152670b1a2bc2ec50000060208201520152565b03915afa908115620002fb57620010ae9260009262001c66575b5050620020b4565b62001c809250803d106200161b5762001609818362001070565b388062001c5e565b60135462001c9f906001600160a01b0316620001ac565b604051809163057ff68760e51b825281600460209485935afa8015620002fb5762001cd9839162001d2e9360009162001961575062001269565b60155462001cf0906001600160a01b0316620001ac565b6040518080958194634817655160e11b835260048301604067014764930585a80091939293606081019481526710a741a46278000060208201520152565b03915afa908115620002fb57620010ae9260009262001d50575b5050620023f0565b62001d6a9250803d106200161b5762001609818362001070565b388062001d48565b60135462001d89906001600160a01b0316620001ac565b604051809163057ff68760e51b825281600460209485935afa8015620002fb5762001dc3839162001d2e9360009162001961575062001269565b60155462001dda906001600160a01b0316620001ac565b604051808095819463332266f360e01b835260048301604067019767653af920009193929360608101948152670b1a2bc2ec50000060208201520152565b90600491630667f9d760e41b815262001e3b8251809360208685019101620010cd565b010190565b3d1562001e70573d9062001e5482620010b0565b9162001e64604051938462001070565b82523d6000602084013e565b606090565b6000805460081c60ff161562001e8f575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62001eb157505090565b819250604051828162001eef60208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b0362001f04601f199182810185528462001070565b62001f2a604051918262001f1d60208201968762001e18565b0390810183528262001070565b51925af1506200113c62001f3d62001e40565b6020808251830101910162001690565b60135460049060209062001f6a906001600160a01b0316620001ac565b60405163057ff68760e51b815292839182905afa8015620002fb5762001f9f60009162001fed9383916200201d575062001269565b60155462001fb6906001600160a01b0316620001ac565b6040518080958194633928ff9760e01b8352600483016040678ac7230489e800009193929360608101948152600160208201520152565b03915afa8015620002fb57620020005750565b62002017903d806000833e620015d6818362001070565b50505050565b62001689915060203d6020116200161b5762001609818362001070565b620020826200206d91620010ae93604051938492631e53134760e11b6020850152604060248501526064840190620011d9565b90604483015203601f19810183528262001070565b6200241a565b620010ae90604051906332458eed60e01b60208301521515602482015260248152620020828162001053565b620010ae906040519063f82c50f160e01b6020830152602482015260248152620020828162001053565b81811115620020eb575050565b6080806040938451937f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50836020968781526021888201527f4572726f723a2061203e2062206e6f7420736174697366696564205b75696e7489820152605d60f81b6060820152a185519086825260098783015268202056616c7565206160b81b6060830152858201527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8938491a18451908582526009868301526810102b30b63ab2903160b91b606083015284820152a1737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620021ed575b50505061010061ff00196000541617600055565b8260006200224a6200225b602483979684975195818701908882526519985a5b195960d21b8189015260016060890152606088526200222c8862001019565b519485928301976370ca10bb60e01b895251809285850190620010cd565b810103600481018452018262001070565b51925af1506200226a62001e40565b50388080620021d9565b60208101620022c0815191620022b9620022b0620022a9620022a36200229d885180986200248d565b620024b0565b620024dd565b9462002629565b915184620027c8565b906200297d565b620022cd83828462002520565b8190600080821215620023a45790859392915b8082126200237d57506200113c949262001f1d926200232b925b6200230f6040519788928860208501620025b0565b039562002325601f199788810183528262001070565b620029d5565b85516040808801516060988901518251670de0b6b3a764000060208201529283019690965297810192909252608082015260a08101959095526001600160a01b0390911660c0850152839060e0820190565b929350506200238c9062002500565b906200239a85838662002520565b85939291620022e0565b90859392915b808213620023c957506200113c949262001f1d926200232b92620022fa565b93505090620023d890620029aa565b91620023e685848662002520565b85939291620023aa565b620010ae9060405190632d5b6cb960e01b6020830152602482015260248152620020828162001053565b600080916020815191016a636f6e736f6c652e6c6f675afa50565b670d99a8cec7e20000908181029181830414901517600116156200010057670de0b6b3a7640000900490565b6710a741a462780000908181029181830414901517600116156200010057670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517821515161562000100570490565b686c6b935b8bbd400000908181029181830414901517600116156200010057670de0b6b3a7640000900490565b670de0b6b3a7640000908181029082818304149015176001161562000100570490565b6103e79081810291818304149015176001161562000100576103e8900490565b9060018115151615620001005782602062002562620022b9936200255b6200256c9751826ec097ce7bc90715b34b9f100000000004620027c8565b956200248d565b91015190620027c8565b670de0b6b3a763ffff198101908113600116620012795790565b92602062002562846200255b620025a7620022b996976200256c996200248d565b855190620027c8565b606090620010ae939594929560e0820196670de0b6b3a764000083526020830152604082015201906060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b818102929160008212600160ff1b821416620012795781840514901517156200127957565b6200113c90620027c290620027b490787d08509902966378cdc65fee42d5fffea15800000000000000606090811d6d0388eaa27412d5aca026815d636e016c01bc16d674ec80000000000000908102821d6d0df99ac502031bf953eff472fdcc018102821d6d13cdffb29d51d99322bdff5f2211018102821d6d0a0f742023def783a307a986912e018102821d6d01920d8043ca89b5239253284e42018102821d6c0b7a86d7375468fac667a0a52701784aadc582f1d8bc491e7bc949e15040342ddc00000000000000831d6d0139601a2efabe717e604cbb4894018202831d6d02247f7a7b6594320649aa03aba1018202831d6c8c3f38e95a6b1ff2ab1c3b343619018202831d6d02384773bdf1ac5676facced60901901820290921d6cb9a025d814b29c212b8b1a07cd190102780a09507084cc699bb0e71ea869ffffffffffffffffffffffff190105711340daa0d5f769dba1915cef59f0815a5506027ffffffe16bfa92fe97c97d2be09a7c830246e68b9533ecff8af7a549ce6e02ea50160ae1d62002604565b670de0b6b3a7640000900590565b62002b4c565b620027b46200113c927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284620027c293620028036000821362002b13565b711340daa0d5f769dba1915cef59f0815a5506620028218262002cd8565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d62002604565b81810291818304149015176001161562000100576001670de0b6b3a7640000600019830104019015150290565b6103e990818102918183041490151760011615620001005760016103e8600019830104019015150290565b6000939291849183821162002af357620029f0828262002d4c565b620029fc858362002d4c565b600062002a0a828462002604565b1362002ad4575062002a1f83869796620012a5565b60019460009186805b62002a3a575b50505050505050509050565b1562002aaa575b508596979850809162002a5f62002a598b88620016cb565b60011c90565b9962002a6c8b8762002d4c565b908362002a7a878462002604565b1362002a9d57505089925b8762002a928886620012a5565b920193999862002a28565b8b97509094509262002a85565b86108062002ac8575b1562002ac0578862002a41565b808062002a2e565b50610100821062002ab3565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b1562002b1b57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131562002cd257680755bf798b4a1bf1e581121562002c9e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b62002ce581151562002b13565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b8080518101039160e0831262000100576020820151926080604084015191605f190112620001005760e06040519362002d858562001019565b6080810151855260a0810151602086015260c081015160408601520151936001600160a01b038516850362000100576200113c9460608501526200258656fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461007457601f61255c38819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b0319169190911790556040516124cc90816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630f4166b814610167578063250968d914610162578063306db46b1461015d578063332266f3146101585780633928ff97146101535780633b4d10301461014e5780634fd67c58146101495780635a93b8ce146101445780636237569f1461013f5780637f17409c1461013a57806381b5fac214610135578063902ecaa214610130578063a8c62e761461012b578063b09d04e514610126578063cb1f553214610121578063ce153bf41461011c578063def15f9214610117578063ec29d8e614610112578063ee3e8cfb1461010d578063f2de7a7b146101085763f30d37f21461010357600080fd5b6109b2565b610996565b610962565b61094c565b6108e0565b61082f565b6107ea565b6107a6565b61077d565b610754565b610700565b6106a0565b61063f565b61061a565b6105f1565b6105bf565b61032e565b6102d6565b61029f565b610236565b346101d55760403660031901126101d55767ffffffffffffffff6024358181116101d557366023820112156101d55780600401359182116101d55736602483830101116101d5576101d19160246101c192016004356109e5565b6040519081529081906020820190565b0390f35b600080fd5b60005b8381106101ed5750506000910152565b81810151838201526020016101dd565b90602091610216815180928185528580860191016101da565b601f01601f1916010190565b9060206102339281815201906101fd565b90565b346101d55760403660031901126101d5576101d160405160026020820152600435604082015260243560608201526060815261027181610881565b6040519182916020835260208301906101fd565b60609060031901126101d557600435906024359060443590565b346101d55760206102ce6102b236610285565b906102c56102bf84610c45565b93610d72565b92919091610f1e565b604051908152f35b346101d55760206102ce6102e936610285565b906102f66102bf84610c45565b92919091611149565b801515036101d557565b90926080926102339594151583526020830152604082015281606082015201906101fd565b346101d55760603660031901126101d55760043560243561034e816102ff565b6104c46044359161035d610a11565b6103ad610368610a11565b9461037287610d72565b9491959092602096878401946040978886015285528352868a878b61039683610c45565b9889938851906103a78b5191610c45565b916112e2565b951561053b575061040c936103fe6103f96104409998956103f3866103dc610405976104199c99015187611d20565b926103ea8d518b5190611d4c565b91015190611324565b90611d20565b610a57565b9351610a7a565b8b52610a7a565b80868a015288518a610e65565b9061043761042c878a0193808552610a57565b808452825111610b21565b51905190610b14565b955b60c0865185880192610484845197610476888c015189519a8b96879485016040919493926060820195825260208201520152565b03601f1981018452836108be565b6000546104a79061049b906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610baf565b03915afa948515610536576000956104f6575b50906104eb916101d19596519051906114e4565b905194859485610309565b6101d19550906105216104eb939260c03d60c01161052f575b61051981836108be565b810190610b78565b5050505050955090916104d7565b503d61050f565b610bd3565b91966105b09561059d946105866105a59761057f6103f98c6103f36105b99f61057761056d6105909c83015188611d20565b93518b5190611d4c565b905190611324565b9451610a7a565b9401938452610a7a565b9081898d0152518c610bdf565b808a52610a57565b808952825111610a87565b51865190610b14565b95610442565b346101d55760203660031901126101d55760206102ce6004356105ea6105e482610c45565b91610d72565b50906114e4565b346101d55760206102ce61060436610285565b906106116102bf84610c45565b92919091611509565b346101d55760206102ce61063961063036610285565b91929092610c45565b916116a4565b346101d55760403660031901126101d55761067b6004356101d161068261067361066884610d72565b9190506024356116d1565b949093610c45565b84846119e2565b92604051938493846040919493926060820195825260208201520152565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36106c985610d72565b91506024356116fe565b939094610c45565b83856116a4565b91604051938493846040919493926060820195825260208201520152565b346101d55760203660031901126101d557608061071e600435610c45565b61075260405180926060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565bf35b346101d55760206102ce61076736610285565b906107746102bf84610c45565b92919091611725565b346101d55760003660031901126101d5576000546040516001600160a01b039091168152602090f35b346101d55760203660031901126101d5576101d160405160016020820152600435604082015260408152610271816108a2565b6001600160a01b038116036101d557565b346101d55760203660031901126101d5576101d160043561080a816107d9565b60408051600360208201526001600160a01b03909216828201528152610271816108a2565b346101d55760203660031901126101d5576101d161084e600435610d72565b604080519384526020840192909252908201529081906060820190565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761089d57604052565b61086b565b6060810190811067ffffffffffffffff82111761089d57604052565b90601f8019910116810190811067ffffffffffffffff82111761089d57604052565b346101d55760c03660031901126101d55760803660431901126101d5576101d161094060405161090f81610881565b60443581526064356020820152608435604082015260a435610930816107d9565b60608201526024356004356118a2565b60405191829182610222565b346101d55760206102ce6103a761063036610285565b346101d55760403660031901126101d55761067b6004356101d161068261067361098b84610d72565b9190506024356116fe565b346101d55760206102ce6109ac61063036610285565b916119e2565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36109db85610d72565b91506024356116d1565b9181606091810103126101d5576109fe61023392610c45565b9060408101359060208101359035610e8b565b604051906060820182811067ffffffffffffffff82111761089d5760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610a6557565b610a41565b906103e8918201809211610a6557565b91908201809211610a6557565b15610a8e57565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b90670de0b6b3a7640000918203918211610a6557565b906103e8918203918211610a6557565b6103e719810191908211610a6557565b91908203918211610a6557565b15610b2857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c09103126101d5578151610b8f816102ff565b9160208101519160408201519160608101519160a0608083015192015190565b610233939260609260018060a01b03168252602082015281604082015201906101fd565b6040513d6000823e3d90fd5b9161063961023393610c45565b91908260809103126101d557604051610c0481610881565b6060808294805184526020810151602085015260408101516040850152015191610c2d836107d9565b0152565b906080828203126101d55761023391610bec565b90604051610c5281610881565b600090818152816060602092828482015282604082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610536578092610cb3575b506102339293508082518301019101610c31565b9091503d8082863e610cc581866108be565b8401908285830312610d3b57845167ffffffffffffffff95868211610d3e57019082601f83011215610d3b57815195861161089d5760405192610d11601f8801601f19168601856108be565b868452848784010111610d3b57506102339394610d33918480850191016101da565b908392610c9f565b80fd5b8280fd5b908160209103126101d55751610233816107d9565b908160609103126101d5578051916040602083015192015190565b9060046020610d8e61049b61049b60005460018060a01b031690565b604051632bee84f160e21b815292839182905afa92831561053657610dd993606092600091610e36575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156105365760008093600093610dff575b50929190565b91935050610e25915060603d606011610e2f575b610e1d81836108be565b810190610d57565b9290929138610df9565b503d610e13565b610e58915060203d602011610e5e575b610e5081836108be565b810190610d42565b38610db8565b503d610e46565b916109ac61023393610c45565b81810392916000138015828513169184121617610a6557565b9260206103ea84610eae610ea66103f39697610eb499612087565b855190611324565b95612087565b670de0b6b3a763ffff198101908113600116610a655790565b908152602080820192909252604080820193909352606080820194909452845160808201529084015160a08201529083015160c08201529101516001600160a01b031660e08201526101000190565b565b909291855160208701516040880151610f3690610ade565b91610f418785612087565b610f4b8282611324565b92610f5591611324565b895185898581610f65858d6120ca565b90610f6f916120ca565b90610f79916120ca565b92610f83906120a9565b610f8c90610af4565b90610f9691610a7a565b90610fa0916120ca565b610fa986610ade565b610fb2916120ca565b92610fbc8a610a6a565b90610fc6906110f0565b610fcf91611324565b91610fd9906120a9565b610fe286610ade565b610feb916120ca565b610ff59089610a7a565b92610fff91610b14565b91611009916120ca565b895161101490610ade565b61101d90612068565b61102691611324565b61102f916120ca565b91885161103b90610ade565b61104488610a6a565b9261104f89896120ca565b90611059916120ca565b91611063866120a9565b9061106d90610ade565b611076916120ca565b92611080916120ca565b9161108a91610a7a565b611093916120ca565b9061109d846110f0565b916110a791612087565b6110b09161112d565b6000136110e557610233956110e0936110d29260405196879560208701610ecd565b03601f1981018352826108be565b611a30565b505050505050600090565b600160ff1b8114610a655760000390565b90816103e801918212600116610a6557565b9081670de0b6b3a763ffff190191821215600116610a6557565b91909160008382019384129112908015821691151617610a6557565b94939290928451906020860151604087015161116490610ade565b9261116f8787612087565b6111798282611324565b9261118391611324565b885187898581611193858c6120ca565b9061119d916120ca565b906111a7916120ca565b926111b290886120ca565b6111bc9088610b14565b906111c691610a7a565b906111d0916120ca565b6111d987610ade565b6111e2916120ca565b926111ed8a87610a7a565b906111f7906110f0565b61120091611324565b9161120b90866120ca565b61121487610ade565b61121d916120ca565b6112279088610a7a565b9261123191610b14565b9161123b916120ca565b885161124690610ade565b61124f90612068565b61125891611324565b611261916120ca565b965161126c90610ade565b936112778784610a7a565b96611281916120ca565b9061128b916120ca565b93611295916120ca565b9061129f90610ade565b6112a8916120ca565b926112b2916120ca565b916112bc91610a7a565b6112c5916120ca565b916112cf906110f0565b916112d991612087565b6102339161112d565b610233929160206112f86103f393855190611324565b93015190611324565b818102929160008212600160ff1b821416610a65578184051490151715610a6557565b6114d1610233927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642846114df9361135a60008213611dc8565b711340daa0d5f769dba1915cef59f0815a55066113768261210a565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d611301565b670de0b6b3a7640000900590565b611e00565b611503906114fb6102339493602085015190612087565b925190612087565b90612087565b90929185516040870151670de0b6b3a764000060008282039212818312811691831390151617610a655761153c83611101565b61154583611113565b61154e91611324565b908261155a8589611fa9565b9061156491611324565b61156d81611fc7565b9261157783611113565b6115819085611ff0565b61158b9089610e72565b91829161159788611101565b6115a19088611ff0565b936115ab91611ff0565b6115b487611f8a565b6115bd91611324565b926115c787611113565b6115d1908b611ff0565b91886115dc89611fc7565b906115e69161112d565b6115ef91611ff0565b6115f886611113565b61160191611ff0565b9261160b91611ff0565b926116169089611ff0565b9161162091610e72565b61162991611ff0565b6116329161112d565b9261163c85611101565b61164591611ff0565b9161164f876110f0565b9161165990611113565b61166291611ff0565b61166b9161112d565b61167491611ff0565b61167d91611fa9565b6000136110e5576102339561169f936110d29260405196879560208701610ecd565b611b55565b6116c461023393926116be6116cb93602086015190611324565b90611d4c565b9151611d7c565b90611324565b9291906116e76116e18284611d4c565b85611d20565b938103908111610a6557928103908111610a655790565b92919061170e6116e18284611d4c565b938101809111610a6557928101809111610a655790565b9293949091946040825192015193670de0b6b3a764000060008682039612818712811691871390151617610a6557828794611760868561112d565b61176983611113565b61177291611324565b9561177c91611fa9565b9061178691611324565b936117918584611ff0565b9461179b87611113565b6117a59087611ff0565b6117af9089610e72565b9283926117bc8b8761112d565b6117c69088611ff0565b946117d091611ff0565b6117d987611f8a565b6117e291611324565b936117ec87611113565b6117f6908b611ff0565b928b6118028989611ff0565b9061180c9161112d565b61181591611ff0565b61181e8a611113565b61182791611ff0565b9361183191611ff0565b9361183b91611ff0565b9161184591610e72565b61184e91611ff0565b6118579161112d565b956118619161112d565b61186a91611ff0565b92611874906110f0565b9161187e90611113565b61188791611ff0565b6118909161112d565b61189991611ff0565b61023391611fa9565b929190836118bd6118c2926118bd6020860151865190612087565b6120ca565b906118ce8183866112e2565b936118db82868584610e8b565b85906000808212156119a4575b808212611986575061192d61197a9261023396979886935b6119146040519889928c8a6020860161201f565b0396611928601f19988981018352826108be565b611c2c565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b039081018352826108be565b9661199191506120eb565b9561199e84888786610e8b565b906118e8565b9691965b8082136119c4575061192d61023395969761197a938693611900565b966119cf9150611d9e565b956119dc84888786610e8b565b906119a8565b60206119fb61023394936116be6116cb94865190611324565b920151611d7c565b9190610100838203126101d557825192602081015192610233604083015193608060608501519401610bec565b91906103e892600093600091838211611b3457611a4c8161217c565b611a5685836122d5565b6000611a628284611301565b13611b155750611a73859695610b04565b60019460009186805b611a8d575b50505050505050509050565b15611af0575b5085969798508091611aae611aa88b88610a7a565b60011c90565b99611ab98b876122d5565b9083611ac58784611301565b13611ae457505089925b87611ada8886610b14565b9201939998611a7c565b8b975090945092611acf565b861080611b0a575b15611b035788611a93565b8080611a81565b506101008210611af8565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e892600093600091838211611b3457611b71816122f6565b611b7b8583612441565b6000611b878284611301565b13611b155750611b98859695610b04565b60019460009186805b611bb15750505050505050509050565b15611c0e575b5085969798508091611bcc611aa88b88610a7a565b99611bd78b87612441565b9083611be38784611301565b13611c0257505089925b87611bf88886610b14565b9201939998611ba1565b8b975090945092611bed565b861080611c21575b15611b035788611bb7565b506101008210611c16565b60009392918491838211611d0057611c448282612462565b611c4e8583612462565b6000611c5a8284611301565b13611b155750611c6c83869796610b14565b60019460009186805b611c855750505050505050509050565b15611ce2575b5085969798508091611ca0611aa88b88610a7a565b99611cab8b87612462565b9083611cb78784611301565b13611cd657505089925b87611ccc8886610b14565b9201939998611c75565b8b975090945092611cc1565b861080611cf5575b15611b035788611c8b565b506101008210611cea565b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b8181029181830414901517600116156101d5576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101d557600190600019830104019015150290565b600181151516156101d5576ec097ce7bc90715b34b9f0fffffffff0460010190565b6103e9908181029181830414901517600116156101d55760016103e8600019830104019015150290565b15611dcf57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e19811315611f8457680755bf798b4a1bf1e5811215611f50576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029182051482151516156101d5570590565b6103e881810291600160ff1b81136001179183051416156101d557670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b9091131716156101d557670de0b6b3a7640000900590565b610f1c9360609296959360e083019783526020830152604082015201906060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000490565b670de0b6b3a764000090818102918183041490151782151516156101d5570490565b6103e89080820291820414600116156101d557670de0b6b3a7640000900490565b8181029181830414901517600116156101d557670de0b6b3a7640000900490565b6103e7908181029181830414901517600116156101d5576103e8900490565b612115811515611dc8565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b80518101602001906020019061219191611a03565b9291908351602085015160408601516121a990610ade565b916121b48686612087565b6121be8282611324565b926121c891611324565b8751868885816121d8858b6120ca565b906121e2916120ca565b906121ec916120ca565b926121f6906120a9565b6121ff90610af4565b9061220991610a7a565b90612213916120ca565b61221c86610ade565b612225916120ca565b9261222f89610a6a565b90612239906110f0565b61224291611324565b9161224c906120a9565b61225586610ade565b61225e916120ca565b6122689087610a7a565b9261227291610b14565b9161227c916120ca565b875161228790610ade565b61229090612068565b61229991611324565b6122a2916120ca565b95516122ad90610ade565b926122b786610a6a565b956122c1916120ca565b906122cb916120ca565b92611295906120a9565b906122ec6102339260208082518301019101611a03565b9493929092611149565b6123099060208082518301019101611a03565b6040819593959492945191015192670de0b6b3a764000060008582039512818612811691861390151617610a655781869361234385611101565b61234c83611113565b61235591611324565b9461235f91611fa9565b9061236991611324565b9261237384611fc7565b9361237d86611113565b6123879086611ff0565b6123919088610e72565b92839261239d8a611101565b6123a79087611ff0565b946123b191611ff0565b6123ba86611f8a565b6123c391611324565b936123cd86611113565b6123d7908a611ff0565b928a6123e288611fc7565b906123ec9161112d565b6123f591611ff0565b6123fe89611113565b61240791611ff0565b9361241191611ff0565b9361241b91611ff0565b9161242591610e72565b61242e91611ff0565b6124379161112d565b9461186190611101565b906124586102339260208082518301019101611a03565b9493929092611725565b805181019160e0828403126101d5576102339261249060208401519360806020604083015194019101610bec565b92610e8b56fea2646970667358221220ddef7f48a463f4812492c0cc35c784e857fab14e0a29d203d7aa233c67d9fa2964736f6c6343000816003360a03461007f57601f6112cb38819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f57608052604051611230908161009b82396080518181816103b701528181610612015281816107c601526109240152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b610953565b61090e565b6107ad565b610773565b6105f6565b610331565b6102ae565b610221565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101c3565b838082518301019101610986565b9061010d6100ff600435610a7f565b8680825183010191016109a1565b92610b68565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761015057604052565b61011e565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101a1601f8201601f191660200184610155565b8294818452818301116101be578281602093846000960137010152565b600080fd5b9080601f830112156101be578160206101de93359101610177565b90565b919082519283825260005b84811061020d575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101ec565b346101be5760003660031901126101be57604051604081019080821067ffffffffffffffff8311176101505761027891604052600381526247334d60e81b60208201526040519182916020835260208301906101e1565b0390f35b9060405161028981610134565b6060600382948054845260018101546020850152600281015460408501520154910152565b346101be5760203660031901126101be57600435600052600060205260c060406000206102da8161027c565b90600481015490600560018060a01b03910154169060606040519380518552602081015160208601526040810151604086015201516060840152608083015260a0820152f35b6001600160a01b038116036101be57565b346101be5760603660031901126101be5761034d600435610320565b60243560443567ffffffffffffffff81116101be576103709036906004016101c3565b9061037a81610a7f565b90610390825192602080809583010191016109a1565b6040516333854efd60e21b8152600481018390529092906060816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa948515610596576000908192829761055d575b508084806103ff93518301019101610986565b949195909787878581116000146104c45793610454869461044e866104496104769b9761044461046198604061043b61046d9f6104679f610a08565b91015190610f48565b610f48565b610f74565b50610a7f565b80518101820191016109a1565b91610bb9565b83610a27565b93828685610b68565b93846013191292836104b9575b6102789394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b601486129350610483565b5050919290938089116000146104ff5761046161046d946104546104769761044e856104498f998f61044490604061043b866104679f610a08565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9096506103ff9250610587915060603d60601161058f575b61057f8183610155565b810190610986565b9690926103ec565b503d610575565b6109e6565b9060606003198301126101be576004356105b481610320565b916024359160443567ffffffffffffffff928382116101be57806023830112156101be5781600401359384116101be57602484830101116101be576024019190565b346101be576106043661059b565b9192506001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610761578160c091810103126101be5780359160208201359160408101359460608201359060a08301359261066984610320565b670de0b6b3a764000083101561074f5761070d946107059460806106f1936106f69661069f876000526000602052604060002090565b55013560046106b8866000526000602052604060002090565b01551660056106d1846000526000602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610a7f565b602080825183010191016109a1565b848385610b68565b9283601319129182610744575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b60148512925061071a565b60405163e8a38a6160e01b8152600490fd5b604051636853cba760e01b8152600490fd5b346101be5760606107833661059b565b818094509492940103126101be5780359061070d6107056106f66040602085013594013595610a7f565b346101be576107bb3661059b565b926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610761576108236108176005610809876000526000602052604060002090565b01546001600160a01b031690565b6001600160a01b031690565b9116036108fc5761083683820182610a4a565b61083f81610a5f565b60018103610878575061086261085d61087392600494953691610177565b610caa565b926000526000602052604060002090565b01555b005b61088181610a5f565b600281036108bd5750906108a56108a06108b893610876953691610177565b610c00565b9290916000526000602052604060002090565b610c28565b806108c9600392610a5f565b036108ea576106d16108626108e5600593610876963691610177565b610bd8565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101be5760003660031901126101be576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101be5760203660031901126101be57610278610972600435610a7f565b6040519182916020835260208301906101e1565b908160609103126101be578051916040602083015192015190565b908160809103126101be576060604051916109bb83610134565b80518352602081015160208401526040810151604084015201516109de81610320565b606082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610a1557565b6109f2565b91908201809211610a1557565b81810392916000138015828513169184121617610a1557565b600411156101be57565b908160209103126101be57356101de81610a40565b60041115610a6957565b634e487b7160e01b600052602160045260246000fd5b60408051610a8c81610134565b6000918282526020820193838552818301848152606084019085825282865285602052610ac2610abd85882061027c565b610cdf565b808652670de0b6b3a7640000908103908111610a1557846101de97610b1f95610b1294600594610b5a9c5281835282602052600484842001549052815280602052200160018060a01b0390541690565b6001600160a01b03169052565b5192839160208301919091606060808201938051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b03601f198101835282610155565b926020610b9184610b8b610b83610b9a9697610ba099610fa4565b855190610d88565b95610fa4565b91015190610d88565b90610f48565b670de0b6b3a763ffff198101908113600116610a155790565b6101de92916020610bcf610b9a93855190610d88565b93015190610d88565b6040818051810103126101be5780610bf560206040930151610a40565b015161081781610320565b6060818051810103126101be57610c1a6020820151610a40565b606060408201519101519091565b919042821115610c9857610c3e610abd8461027c565b9081845542600385015542830391838311610a1557610c5c91610a27565b428314610c8257600160ff1b8114600019831416610a1557600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101be5780610cc760206040930151610a40565b015190565b81810292918115918404141715610a1557565b6060810151906020810151808314610d5e57804211600014610d5657915b8203918211610a15576040810190815160008113600014610d3057506101de92610d2a9151925190610ccc565b90610a1a565b90519150600160ff1b8114610a15576101de92610d509160000390610ccc565b90610a08565b504291610cfd565b5090505190565b818102929160008212600160ff1b821416610a15578184051490151715610a1557565b610f356101de927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284610f4393610dbe60008213610fc6565b711340daa0d5f769dba1915cef59f0815a5506610dda82611188565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d610d65565b670de0b6b3a7640000900590565b610ffe565b8181029181830414901517600116156101be576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101be57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101be570490565b15610fcd57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131561118257680755bf798b4a1bf1e581121561114e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b611193811515610fc6565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c600110179056fea26469706673582212209815df372867dd1ba42d4263690c8e70d1f8dc34ff9f897579936267cb43316764736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a2646970667358221220922a3f465c164726372e926e67681fcbc051f51d6969bb115f45faa5b7ded9bc64736f6c63430008160033","sourceMap":"313:6562:47:-:0;;;;;;;1594:4:0;313:6562:47;;1594:4:0;313:6562:47;;;1594:4:0;313:6562:47;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610156200001357600080fd5b60003560e01c806222a0ca14620000ee5780630a9254e414620000e85780633456d95514620000e25780635f3dc89b14620000dc5780635f4d62fb14620000d65780636162e16a14620000d0578063620a260714620000ca5780637a277e2c14620000c457806399a2848814620000be578063ba414fa614620000b8578063dd017e5214620000b25763fa7626d414620000ac57600080fd5b62000fc9565b62000ece565b62000ea5565b62000daa565b62000caf565b62000c8b565b62000b90565b62000a95565b6200098e565b62000893565b6200034d565b62000105565b60009103126200010057565b600080fd5b3462000100576000806003193601126200034a57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000346576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620002fb5762000328575b50620001d481620001756200109f565b6706f05b59d3b200008082526020820152660aa87bee538000604082015260608101829052601554620001b8906001600160a01b03165b6001600160a01b031690565b6040518080958194636f78afc960e11b83526004830162001169565b03915afa8015620002fb57620002a56080918493849162000301575b5060145462000208906001600160a01b0316620001ac565b6016549091906200026b906001600160a01b03166017546200025b906001600160a01b0316916200024b6200023c6200109f565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b03166040840152565b606082015260135462000287906001600160a01b0316620001ac565b906040519485809481936305157c7f60e21b83526004830162001200565b03925af18015620002fb57620002c4575b50620002c162001378565b80f35b620002ea9060803d608011620002f3575b620002e1818362001070565b810190620011b6565b505050620002b6565b503d620002d5565b62001093565b6200032191503d8086833e62000318818362001070565b8101906200113f565b38620001f0565b80620003386200033f9262001004565b80620000f4565b3862000165565b5080fd5b80fd5b3462000100576000806003193601126200034a576040805161106b80820167ffffffffffffffff92808210848311176200085b5780620003cf62002dc59385858439906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b039086f0918215620002fb57601680546001600160a01b0319166001600160a01b03948516179055845191818301838110868211176200085b5783926200045292843990606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b039085f0908115620002fb5762000486911660018060a01b03166bffffffffffffffffffffffff60a01b6017541617601755565b6016546200049f90620001ac906001600160a01b031681565b803b156200088f5782516340c10f1960e01b8082523060048301526a52b7d2dcc80cd2e400000060248301529185908290604490829084905af18015620002fb5762000878575b5060175484906200050290620001ac906001600160a01b031681565b91823b15620003465784519081523060048201526a52b7d2dcc80cd2e40000006024820152918290604490829084905af18015620002fb5762000861575b506016546001600160a01b03166017546001600160a01b0316908351916105979081840192848410868511176200085b578493620005a6936200a57886396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f08015620002fb57601880546001600160a01b0319166001600160a01b039092169190911790558151612f2180820190828210848311176200085b578291620005fc9162003e3084396000815260200190565b039084f08015620002fb57601380546001600160a01b0319166001600160a01b039290921691821790556200063190620001ac565b8251906112cb80830191838310858411176200085b5783926200066792620092ad85396001600160a01b03909116815260200190565b039084f08015620002fb57601480546001600160a01b0319166001600160a01b039290921691821790556200069c90620001ac565b82519161255c8084019290918311848410176200085b578392620006d39262006d5185396001600160a01b03909116815260200190565b039083f0908115620002fb576200070a620007789260018060a01b03166bffffffffffffffffffffffff60a01b6015541617601555565b6016546200072390620001ac906001600160a01b031681565b6013546200073a906001600160a01b0316620001ac565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af1918215620002fb57620007f293859362000839575b50601754620007ab90620001ac906001600160a01b031681565b6013549091908790620007c7906001600160a01b0316620001ac565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af18015620002fb5762000806578280f35b816200082a92903d1062000831575b62000821818362001070565b81019062001690565b5038808280f35b503d62000815565b6200085390843d8611620008315762000821818362001070565b503862000791565b62000fee565b8062000338620008719262001004565b3862000540565b8062000338620008889262001004565b38620004e6565b8380fd5b3462000100576000806003193601126200034a57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000346576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620002fb5762000977575b506200090381620001756200109f565b03915afa8015620002fb57620009366080918493849162000301575060145462000208906001600160a01b0316620001ac565b03925af18015620002fb5762000952575b50620002c1620016d9565b6200096e9060803d608011620002f357620002e1818362001070565b50505062000947565b8062000338620009879262001004565b38620008f3565b3462000100576000806003193601126200034a5780608062000a5e620009b36200109f565b6706f05b59d3b20000808252602082015260408101849052306060820152601354620009e8906001600160a01b0316620001ac565b60145490919062000a02906001600160a01b0316620001ac565b60165460175491926001600160a01b039182169262000a3c9216906200025b9062000a2d9062002274565b936200024b6200023c6200109f565b60608201526040519485809481936305157c7f60e21b83526004830162001200565b03925af18015620002fb5762000a72575080f35b62000a8e9060803d608011620002f357620002e1818362001070565b5050505080f35b3462000100576000806003193601126200034a57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000346576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620002fb5762000b79575b5062000b0581620001756200109f565b03915afa8015620002fb5762000b386080918493849162000301575060145462000208906001600160a01b0316620001ac565b03925af18015620002fb5762000b54575b50620002c16200197c565b62000b709060803d608011620002f357620002e1818362001070565b50505062000b49565b806200033862000b899262001004565b3862000af5565b3462000100576000806003193601126200034a57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000346576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620002fb5762000c74575b5062000c0081620001756200109f565b03915afa8015620002fb5762000c336080918493849162000301575060145462000208906001600160a01b0316620001ac565b03925af18015620002fb5762000c4f575b50620002c162001b9e565b62000c6b9060803d608011620002f357620002e1818362001070565b50505062000c44565b806200033862000c849262001004565b3862000bf0565b346200010057600036600319011262000100576020604051660aa87bee5380008152f35b3462000100576000806003193601126200034a57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000346576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620002fb5762000d93575b5062000d1f81620001756200109f565b03915afa8015620002fb5762000d526080918493849162000301575060145462000208906001600160a01b0316620001ac565b03925af18015620002fb5762000d6e575b50620002c162001c88565b62000d8a9060803d608011620002f357620002e1818362001070565b50505062000d63565b806200033862000da39262001004565b3862000d0f565b3462000100576000806003193601126200034a57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000346576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620002fb5762000e8e575b5062000e1a81620001756200109f565b03915afa8015620002fb5762000e4d6080918493849162000301575060145462000208906001600160a01b0316620001ac565b03925af18015620002fb5762000e69575b50620002c162001d72565b62000e859060803d608011620002f357620002e1818362001070565b50505062000e5e565b806200033862000e9e9262001004565b3862000e0a565b34620001005760003660031901126200010057602062000ec462001e75565b6040519015158152f35b3462000100576000806003193601126200034a57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000346576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620002fb5762000fb2575b5062000f3e81620001756200109f565b03915afa8015620002fb5762000f716080918493849162000301575060145462000208906001600160a01b0316620001ac565b03925af18015620002fb5762000f8d575b50620002c162001f4d565b62000fa99060803d608011620002f357620002e1818362001070565b50505062000f82565b806200033862000fc29262001004565b3862000f2e565b34620001005760003660031901126200010057602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200085b57604052565b6080810190811067ffffffffffffffff8211176200085b57604052565b6040810190811067ffffffffffffffff8211176200085b57604052565b6060810190811067ffffffffffffffff8211176200085b57604052565b90601f8019910116810190811067ffffffffffffffff8211176200085b57604052565b6040513d6000823e3d90fd5b60405190620010ae8262001019565b565b67ffffffffffffffff81116200085b57601f01601f191660200190565b60005b838110620010e15750506000910152565b8181015183820152602001620010d0565b81601f82011215620001005780516200110b81620010b0565b926200111b604051948562001070565b8184526020828401011162000100576200113c9160208085019101620010cd565b90565b906020828203126200010057815167ffffffffffffffff811162000100576200113c9201620010f2565b9190620010ae90604060c0850194670de0b6b3a7640000808252602082015201906060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b919082608091031262000100578151916020810151916060604083015192015190565b90602091620011f481518092818552858086019101620010cd565b601f01601f1916010190565b60a060606200113c9360208452600180841b03808251166020860152806020830151166040860152604082015116828501520151916080808201520190620011d9565b9081602091031262000100575190565b634e487b7160e01b600052601160045260246000fd5b6000198101919082116200127957565b62001253565b6305f5e0ff198101919082116200127957565b633b9ac9ff198101919082116200127957565b919082039182116200127957565b60405190620012c28262001036565b600382526236b4b760e91b6020830152565b60405190620012e38262001036565b60038252620dac2f60eb1b6020830152565b519081151582036200010057565b9060808282031262000100576200131a82620012f5565b92602083015192604081015192606082015167ffffffffffffffff811162000100576200113c9201620010f2565b919082604091031262000100576020825192015190565b6040906200113c939281528160208201520190620011d9565b6013546200138f906001600160a01b0316620001ac565b6040805163057ff68760e51b815290916004916020919082818581855afa8015620002fb57620013c9916000916200166e575b5062001269565b601554909190620013e3906001600160a01b0316620001ac565b928551634817655160e11b908181528281806200141f888b830160406103e891939293606081019481526710a741a46278000060208201520152565b0381895afa908115620002fb576000916200164c575b5087519182528682018581526710a741a462780000602082015267015316d0110d380060408201528390839081906060010381895afa908115620002fb57620014a19260009262001623575b50620014979062001491620012b3565b6200203a565b62001491620012d4565b85516309facf8b60e31b81528581018481526710a741a462780000602082015267015316d0110d380060408201529094908290869081906060010381845afa908115620002fb5762001528956000938493620015ed575b50508751633928ff9760e01b81528781018681526001602082015260408101939093529586928391829160600190565b03915afa918215620002fb5762001571948694600090600095620015b5575b50906200155660009262002088565b855163bd0625ab60e01b81529687958694859384016200135f565b03925af18015620002fb5762001585575050565b81620015a992903d10620015ad575b620015a0818362001070565b81019062001348565b5050565b503d62001594565b6200155695506000929150620015df903d8085833e620015d6818362001070565b81019062001303565b979291505091925062001547565b62001612929350803d106200161b575b62001609818362001070565b81019062001243565b903880620014f8565b503d620015fd565b620014979192506200164490853d87116200161b5762001609818362001070565b919062001481565b620016679150833d85116200161b5762001609818362001070565b3862001435565b620016899150843d86116200161b5762001609818362001070565b38620013c2565b9081602091031262000100576200113c90620012f5565b906305f5e10082018092116200127957565b90633b9aca0082018092116200127957565b919082018092116200127957565b601354620016f0906001600160a01b0316620001ac565b604051809163057ff68760e51b825281600460209485935afa8015620002fb57620017249160009162001961575062001269565b6015549091906200173e906001600160a01b0316620001ac565b60405163306db46b60e01b815260048101849052670d99a8cec7e200006024820152670341bac27805200060448201529092908281606481875afa928315620002fb576000936200193d575b5050604051633928ff9760e01b8082526004820183905260016024830152604482018490529290600081606481885afa8015620002fb57620017e2916000916200191a575b50620017db8362002435565b90620012a5565b91620017f9620017f283620016a7565b926200127f565b60405185815260048101839052600160248201526044810184905295909290600087606481845afa928315620002fb576200184b6000948694620018759a8792620018fd575b50620017db9062002435565b96604051988994859384938452600484016040909392919360608101948152600160208201520152565b03915afa938415620002fb57620010ae94620018cd92620018a492600092620018d35750620017db9062002435565b92620018b081620020b4565b620018bb83620020b4565b620018c684620020b4565b82620020de565b620020de565b620017db919250620018f1903d806000833e620015d6818362001070565b5050905091906200183f565b620017db919250620018f1903d808a833e620015d6818362001070565b6200193291503d806000833e620015d6818362001070565b5050905038620017cf565b62001958929350803d106200161b5762001609818362001070565b9038806200178a565b620016899150833d85116200161b5762001609818362001070565b60135462001993906001600160a01b0316620001ac565b604051809163057ff68760e51b825281600460209485935afa8015620002fb57620019c79160009162001961575062001269565b601554620019de906001600160a01b0316620001ac565b6040516309facf8b60e31b8152600481018390526710a741a462780000602482015267015316d0110d380060448201529092908181606481875afa918215620002fb5760009262001b7c575b5050604051633928ff9760e01b80825260048201849052600060248301819052604483018490529093919081606481885afa8015620002fb5762001a7e849162001a849360009162001b42575b5062002461565b620012a5565b9162001a9b62001a9482620016b9565b9162001292565b60405185815260048101849052600060248201819052604482018490529196909182606481845afa938415620002fb5762001aeb60009462001a7e62001b15978b96889162001b65575062002461565b96604051958694859384938452600484016040909392919360608101948152600060208201520152565b03915afa8015620002fb57620010ae9462001a7e620018a492620018cd9460009162001b42575062002461565b62001b5a91503d806000833e620015d6818362001070565b505090503862001a77565b62001b5a91503d808a833e620015d6818362001070565b62001b969250803d106200161b5762001609818362001070565b388062001a2a565b60135462001bb5906001600160a01b0316620001ac565b604051809163057ff68760e51b825281600460209485935afa8015620002fb5762001bef839162001c449360009162001961575062001269565b60155462001c06906001600160a01b0316620001ac565b604051808095819463306db46b60e01b83526004830160406701de754a1a7b20009193929360608101948152670b1a2bc2ec50000060208201520152565b03915afa908115620002fb57620010ae9260009262001c66575b5050620020b4565b62001c809250803d106200161b5762001609818362001070565b388062001c5e565b60135462001c9f906001600160a01b0316620001ac565b604051809163057ff68760e51b825281600460209485935afa8015620002fb5762001cd9839162001d2e9360009162001961575062001269565b60155462001cf0906001600160a01b0316620001ac565b6040518080958194634817655160e11b835260048301604067014764930585a80091939293606081019481526710a741a46278000060208201520152565b03915afa908115620002fb57620010ae9260009262001d50575b5050620023f0565b62001d6a9250803d106200161b5762001609818362001070565b388062001d48565b60135462001d89906001600160a01b0316620001ac565b604051809163057ff68760e51b825281600460209485935afa8015620002fb5762001dc3839162001d2e9360009162001961575062001269565b60155462001dda906001600160a01b0316620001ac565b604051808095819463332266f360e01b835260048301604067019767653af920009193929360608101948152670b1a2bc2ec50000060208201520152565b90600491630667f9d760e41b815262001e3b8251809360208685019101620010cd565b010190565b3d1562001e70573d9062001e5482620010b0565b9162001e64604051938462001070565b82523d6000602084013e565b606090565b6000805460081c60ff161562001e8f575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62001eb157505090565b819250604051828162001eef60208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b0362001f04601f199182810185528462001070565b62001f2a604051918262001f1d60208201968762001e18565b0390810183528262001070565b51925af1506200113c62001f3d62001e40565b6020808251830101910162001690565b60135460049060209062001f6a906001600160a01b0316620001ac565b60405163057ff68760e51b815292839182905afa8015620002fb5762001f9f60009162001fed9383916200201d575062001269565b60155462001fb6906001600160a01b0316620001ac565b6040518080958194633928ff9760e01b8352600483016040678ac7230489e800009193929360608101948152600160208201520152565b03915afa8015620002fb57620020005750565b62002017903d806000833e620015d6818362001070565b50505050565b62001689915060203d6020116200161b5762001609818362001070565b620020826200206d91620010ae93604051938492631e53134760e11b6020850152604060248501526064840190620011d9565b90604483015203601f19810183528262001070565b6200241a565b620010ae90604051906332458eed60e01b60208301521515602482015260248152620020828162001053565b620010ae906040519063f82c50f160e01b6020830152602482015260248152620020828162001053565b81811115620020eb575050565b6080806040938451937f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50836020968781526021888201527f4572726f723a2061203e2062206e6f7420736174697366696564205b75696e7489820152605d60f81b6060820152a185519086825260098783015268202056616c7565206160b81b6060830152858201527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8938491a18451908582526009868301526810102b30b63ab2903160b91b606083015284820152a1737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620021ed575b50505061010061ff00196000541617600055565b8260006200224a6200225b602483979684975195818701908882526519985a5b195960d21b8189015260016060890152606088526200222c8862001019565b519485928301976370ca10bb60e01b895251809285850190620010cd565b810103600481018452018262001070565b51925af1506200226a62001e40565b50388080620021d9565b60208101620022c0815191620022b9620022b0620022a9620022a36200229d885180986200248d565b620024b0565b620024dd565b9462002629565b915184620027c8565b906200297d565b620022cd83828462002520565b8190600080821215620023a45790859392915b8082126200237d57506200113c949262001f1d926200232b925b6200230f6040519788928860208501620025b0565b039562002325601f199788810183528262001070565b620029d5565b85516040808801516060988901518251670de0b6b3a764000060208201529283019690965297810192909252608082015260a08101959095526001600160a01b0390911660c0850152839060e0820190565b929350506200238c9062002500565b906200239a85838662002520565b85939291620022e0565b90859392915b808213620023c957506200113c949262001f1d926200232b92620022fa565b93505090620023d890620029aa565b91620023e685848662002520565b85939291620023aa565b620010ae9060405190632d5b6cb960e01b6020830152602482015260248152620020828162001053565b600080916020815191016a636f6e736f6c652e6c6f675afa50565b670d99a8cec7e20000908181029181830414901517600116156200010057670de0b6b3a7640000900490565b6710a741a462780000908181029181830414901517600116156200010057670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517821515161562000100570490565b686c6b935b8bbd400000908181029181830414901517600116156200010057670de0b6b3a7640000900490565b670de0b6b3a7640000908181029082818304149015176001161562000100570490565b6103e79081810291818304149015176001161562000100576103e8900490565b9060018115151615620001005782602062002562620022b9936200255b6200256c9751826ec097ce7bc90715b34b9f100000000004620027c8565b956200248d565b91015190620027c8565b670de0b6b3a763ffff198101908113600116620012795790565b92602062002562846200255b620025a7620022b996976200256c996200248d565b855190620027c8565b606090620010ae939594929560e0820196670de0b6b3a764000083526020830152604082015201906060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b818102929160008212600160ff1b821416620012795781840514901517156200127957565b6200113c90620027c290620027b490787d08509902966378cdc65fee42d5fffea15800000000000000606090811d6d0388eaa27412d5aca026815d636e016c01bc16d674ec80000000000000908102821d6d0df99ac502031bf953eff472fdcc018102821d6d13cdffb29d51d99322bdff5f2211018102821d6d0a0f742023def783a307a986912e018102821d6d01920d8043ca89b5239253284e42018102821d6c0b7a86d7375468fac667a0a52701784aadc582f1d8bc491e7bc949e15040342ddc00000000000000831d6d0139601a2efabe717e604cbb4894018202831d6d02247f7a7b6594320649aa03aba1018202831d6c8c3f38e95a6b1ff2ab1c3b343619018202831d6d02384773bdf1ac5676facced60901901820290921d6cb9a025d814b29c212b8b1a07cd190102780a09507084cc699bb0e71ea869ffffffffffffffffffffffff190105711340daa0d5f769dba1915cef59f0815a5506027ffffffe16bfa92fe97c97d2be09a7c830246e68b9533ecff8af7a549ce6e02ea50160ae1d62002604565b670de0b6b3a7640000900590565b62002b4c565b620027b46200113c927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284620027c293620028036000821362002b13565b711340daa0d5f769dba1915cef59f0815a5506620028218262002cd8565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d62002604565b81810291818304149015176001161562000100576001670de0b6b3a7640000600019830104019015150290565b6103e990818102918183041490151760011615620001005760016103e8600019830104019015150290565b6000939291849183821162002af357620029f0828262002d4c565b620029fc858362002d4c565b600062002a0a828462002604565b1362002ad4575062002a1f83869796620012a5565b60019460009186805b62002a3a575b50505050505050509050565b1562002aaa575b508596979850809162002a5f62002a598b88620016cb565b60011c90565b9962002a6c8b8762002d4c565b908362002a7a878462002604565b1362002a9d57505089925b8762002a928886620012a5565b920193999862002a28565b8b97509094509262002a85565b86108062002ac8575b1562002ac0578862002a41565b808062002a2e565b50610100821062002ab3565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b1562002b1b57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131562002cd257680755bf798b4a1bf1e581121562002c9e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b62002ce581151562002b13565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b8080518101039160e0831262000100576020820151926080604084015191605f190112620001005760e06040519362002d858562001019565b6080810151855260a0810151602086015260c081015160408601520151936001600160a01b038516850362000100576200113c9460608501526200258656fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461007457601f61255c38819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b0319169190911790556040516124cc90816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630f4166b814610167578063250968d914610162578063306db46b1461015d578063332266f3146101585780633928ff97146101535780633b4d10301461014e5780634fd67c58146101495780635a93b8ce146101445780636237569f1461013f5780637f17409c1461013a57806381b5fac214610135578063902ecaa214610130578063a8c62e761461012b578063b09d04e514610126578063cb1f553214610121578063ce153bf41461011c578063def15f9214610117578063ec29d8e614610112578063ee3e8cfb1461010d578063f2de7a7b146101085763f30d37f21461010357600080fd5b6109b2565b610996565b610962565b61094c565b6108e0565b61082f565b6107ea565b6107a6565b61077d565b610754565b610700565b6106a0565b61063f565b61061a565b6105f1565b6105bf565b61032e565b6102d6565b61029f565b610236565b346101d55760403660031901126101d55767ffffffffffffffff6024358181116101d557366023820112156101d55780600401359182116101d55736602483830101116101d5576101d19160246101c192016004356109e5565b6040519081529081906020820190565b0390f35b600080fd5b60005b8381106101ed5750506000910152565b81810151838201526020016101dd565b90602091610216815180928185528580860191016101da565b601f01601f1916010190565b9060206102339281815201906101fd565b90565b346101d55760403660031901126101d5576101d160405160026020820152600435604082015260243560608201526060815261027181610881565b6040519182916020835260208301906101fd565b60609060031901126101d557600435906024359060443590565b346101d55760206102ce6102b236610285565b906102c56102bf84610c45565b93610d72565b92919091610f1e565b604051908152f35b346101d55760206102ce6102e936610285565b906102f66102bf84610c45565b92919091611149565b801515036101d557565b90926080926102339594151583526020830152604082015281606082015201906101fd565b346101d55760603660031901126101d55760043560243561034e816102ff565b6104c46044359161035d610a11565b6103ad610368610a11565b9461037287610d72565b9491959092602096878401946040978886015285528352868a878b61039683610c45565b9889938851906103a78b5191610c45565b916112e2565b951561053b575061040c936103fe6103f96104409998956103f3866103dc610405976104199c99015187611d20565b926103ea8d518b5190611d4c565b91015190611324565b90611d20565b610a57565b9351610a7a565b8b52610a7a565b80868a015288518a610e65565b9061043761042c878a0193808552610a57565b808452825111610b21565b51905190610b14565b955b60c0865185880192610484845197610476888c015189519a8b96879485016040919493926060820195825260208201520152565b03601f1981018452836108be565b6000546104a79061049b906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610baf565b03915afa948515610536576000956104f6575b50906104eb916101d19596519051906114e4565b905194859485610309565b6101d19550906105216104eb939260c03d60c01161052f575b61051981836108be565b810190610b78565b5050505050955090916104d7565b503d61050f565b610bd3565b91966105b09561059d946105866105a59761057f6103f98c6103f36105b99f61057761056d6105909c83015188611d20565b93518b5190611d4c565b905190611324565b9451610a7a565b9401938452610a7a565b9081898d0152518c610bdf565b808a52610a57565b808952825111610a87565b51865190610b14565b95610442565b346101d55760203660031901126101d55760206102ce6004356105ea6105e482610c45565b91610d72565b50906114e4565b346101d55760206102ce61060436610285565b906106116102bf84610c45565b92919091611509565b346101d55760206102ce61063961063036610285565b91929092610c45565b916116a4565b346101d55760403660031901126101d55761067b6004356101d161068261067361066884610d72565b9190506024356116d1565b949093610c45565b84846119e2565b92604051938493846040919493926060820195825260208201520152565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36106c985610d72565b91506024356116fe565b939094610c45565b83856116a4565b91604051938493846040919493926060820195825260208201520152565b346101d55760203660031901126101d557608061071e600435610c45565b61075260405180926060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565bf35b346101d55760206102ce61076736610285565b906107746102bf84610c45565b92919091611725565b346101d55760003660031901126101d5576000546040516001600160a01b039091168152602090f35b346101d55760203660031901126101d5576101d160405160016020820152600435604082015260408152610271816108a2565b6001600160a01b038116036101d557565b346101d55760203660031901126101d5576101d160043561080a816107d9565b60408051600360208201526001600160a01b03909216828201528152610271816108a2565b346101d55760203660031901126101d5576101d161084e600435610d72565b604080519384526020840192909252908201529081906060820190565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761089d57604052565b61086b565b6060810190811067ffffffffffffffff82111761089d57604052565b90601f8019910116810190811067ffffffffffffffff82111761089d57604052565b346101d55760c03660031901126101d55760803660431901126101d5576101d161094060405161090f81610881565b60443581526064356020820152608435604082015260a435610930816107d9565b60608201526024356004356118a2565b60405191829182610222565b346101d55760206102ce6103a761063036610285565b346101d55760403660031901126101d55761067b6004356101d161068261067361098b84610d72565b9190506024356116fe565b346101d55760206102ce6109ac61063036610285565b916119e2565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36109db85610d72565b91506024356116d1565b9181606091810103126101d5576109fe61023392610c45565b9060408101359060208101359035610e8b565b604051906060820182811067ffffffffffffffff82111761089d5760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610a6557565b610a41565b906103e8918201809211610a6557565b91908201809211610a6557565b15610a8e57565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b90670de0b6b3a7640000918203918211610a6557565b906103e8918203918211610a6557565b6103e719810191908211610a6557565b91908203918211610a6557565b15610b2857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c09103126101d5578151610b8f816102ff565b9160208101519160408201519160608101519160a0608083015192015190565b610233939260609260018060a01b03168252602082015281604082015201906101fd565b6040513d6000823e3d90fd5b9161063961023393610c45565b91908260809103126101d557604051610c0481610881565b6060808294805184526020810151602085015260408101516040850152015191610c2d836107d9565b0152565b906080828203126101d55761023391610bec565b90604051610c5281610881565b600090818152816060602092828482015282604082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610536578092610cb3575b506102339293508082518301019101610c31565b9091503d8082863e610cc581866108be565b8401908285830312610d3b57845167ffffffffffffffff95868211610d3e57019082601f83011215610d3b57815195861161089d5760405192610d11601f8801601f19168601856108be565b868452848784010111610d3b57506102339394610d33918480850191016101da565b908392610c9f565b80fd5b8280fd5b908160209103126101d55751610233816107d9565b908160609103126101d5578051916040602083015192015190565b9060046020610d8e61049b61049b60005460018060a01b031690565b604051632bee84f160e21b815292839182905afa92831561053657610dd993606092600091610e36575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156105365760008093600093610dff575b50929190565b91935050610e25915060603d606011610e2f575b610e1d81836108be565b810190610d57565b9290929138610df9565b503d610e13565b610e58915060203d602011610e5e575b610e5081836108be565b810190610d42565b38610db8565b503d610e46565b916109ac61023393610c45565b81810392916000138015828513169184121617610a6557565b9260206103ea84610eae610ea66103f39697610eb499612087565b855190611324565b95612087565b670de0b6b3a763ffff198101908113600116610a655790565b908152602080820192909252604080820193909352606080820194909452845160808201529084015160a08201529083015160c08201529101516001600160a01b031660e08201526101000190565b565b909291855160208701516040880151610f3690610ade565b91610f418785612087565b610f4b8282611324565b92610f5591611324565b895185898581610f65858d6120ca565b90610f6f916120ca565b90610f79916120ca565b92610f83906120a9565b610f8c90610af4565b90610f9691610a7a565b90610fa0916120ca565b610fa986610ade565b610fb2916120ca565b92610fbc8a610a6a565b90610fc6906110f0565b610fcf91611324565b91610fd9906120a9565b610fe286610ade565b610feb916120ca565b610ff59089610a7a565b92610fff91610b14565b91611009916120ca565b895161101490610ade565b61101d90612068565b61102691611324565b61102f916120ca565b91885161103b90610ade565b61104488610a6a565b9261104f89896120ca565b90611059916120ca565b91611063866120a9565b9061106d90610ade565b611076916120ca565b92611080916120ca565b9161108a91610a7a565b611093916120ca565b9061109d846110f0565b916110a791612087565b6110b09161112d565b6000136110e557610233956110e0936110d29260405196879560208701610ecd565b03601f1981018352826108be565b611a30565b505050505050600090565b600160ff1b8114610a655760000390565b90816103e801918212600116610a6557565b9081670de0b6b3a763ffff190191821215600116610a6557565b91909160008382019384129112908015821691151617610a6557565b94939290928451906020860151604087015161116490610ade565b9261116f8787612087565b6111798282611324565b9261118391611324565b885187898581611193858c6120ca565b9061119d916120ca565b906111a7916120ca565b926111b290886120ca565b6111bc9088610b14565b906111c691610a7a565b906111d0916120ca565b6111d987610ade565b6111e2916120ca565b926111ed8a87610a7a565b906111f7906110f0565b61120091611324565b9161120b90866120ca565b61121487610ade565b61121d916120ca565b6112279088610a7a565b9261123191610b14565b9161123b916120ca565b885161124690610ade565b61124f90612068565b61125891611324565b611261916120ca565b965161126c90610ade565b936112778784610a7a565b96611281916120ca565b9061128b916120ca565b93611295916120ca565b9061129f90610ade565b6112a8916120ca565b926112b2916120ca565b916112bc91610a7a565b6112c5916120ca565b916112cf906110f0565b916112d991612087565b6102339161112d565b610233929160206112f86103f393855190611324565b93015190611324565b818102929160008212600160ff1b821416610a65578184051490151715610a6557565b6114d1610233927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642846114df9361135a60008213611dc8565b711340daa0d5f769dba1915cef59f0815a55066113768261210a565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d611301565b670de0b6b3a7640000900590565b611e00565b611503906114fb6102339493602085015190612087565b925190612087565b90612087565b90929185516040870151670de0b6b3a764000060008282039212818312811691831390151617610a655761153c83611101565b61154583611113565b61154e91611324565b908261155a8589611fa9565b9061156491611324565b61156d81611fc7565b9261157783611113565b6115819085611ff0565b61158b9089610e72565b91829161159788611101565b6115a19088611ff0565b936115ab91611ff0565b6115b487611f8a565b6115bd91611324565b926115c787611113565b6115d1908b611ff0565b91886115dc89611fc7565b906115e69161112d565b6115ef91611ff0565b6115f886611113565b61160191611ff0565b9261160b91611ff0565b926116169089611ff0565b9161162091610e72565b61162991611ff0565b6116329161112d565b9261163c85611101565b61164591611ff0565b9161164f876110f0565b9161165990611113565b61166291611ff0565b61166b9161112d565b61167491611ff0565b61167d91611fa9565b6000136110e5576102339561169f936110d29260405196879560208701610ecd565b611b55565b6116c461023393926116be6116cb93602086015190611324565b90611d4c565b9151611d7c565b90611324565b9291906116e76116e18284611d4c565b85611d20565b938103908111610a6557928103908111610a655790565b92919061170e6116e18284611d4c565b938101809111610a6557928101809111610a655790565b9293949091946040825192015193670de0b6b3a764000060008682039612818712811691871390151617610a6557828794611760868561112d565b61176983611113565b61177291611324565b9561177c91611fa9565b9061178691611324565b936117918584611ff0565b9461179b87611113565b6117a59087611ff0565b6117af9089610e72565b9283926117bc8b8761112d565b6117c69088611ff0565b946117d091611ff0565b6117d987611f8a565b6117e291611324565b936117ec87611113565b6117f6908b611ff0565b928b6118028989611ff0565b9061180c9161112d565b61181591611ff0565b61181e8a611113565b61182791611ff0565b9361183191611ff0565b9361183b91611ff0565b9161184591610e72565b61184e91611ff0565b6118579161112d565b956118619161112d565b61186a91611ff0565b92611874906110f0565b9161187e90611113565b61188791611ff0565b6118909161112d565b61189991611ff0565b61023391611fa9565b929190836118bd6118c2926118bd6020860151865190612087565b6120ca565b906118ce8183866112e2565b936118db82868584610e8b565b85906000808212156119a4575b808212611986575061192d61197a9261023396979886935b6119146040519889928c8a6020860161201f565b0396611928601f19988981018352826108be565b611c2c565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b039081018352826108be565b9661199191506120eb565b9561199e84888786610e8b565b906118e8565b9691965b8082136119c4575061192d61023395969761197a938693611900565b966119cf9150611d9e565b956119dc84888786610e8b565b906119a8565b60206119fb61023394936116be6116cb94865190611324565b920151611d7c565b9190610100838203126101d557825192602081015192610233604083015193608060608501519401610bec565b91906103e892600093600091838211611b3457611a4c8161217c565b611a5685836122d5565b6000611a628284611301565b13611b155750611a73859695610b04565b60019460009186805b611a8d575b50505050505050509050565b15611af0575b5085969798508091611aae611aa88b88610a7a565b60011c90565b99611ab98b876122d5565b9083611ac58784611301565b13611ae457505089925b87611ada8886610b14565b9201939998611a7c565b8b975090945092611acf565b861080611b0a575b15611b035788611a93565b8080611a81565b506101008210611af8565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e892600093600091838211611b3457611b71816122f6565b611b7b8583612441565b6000611b878284611301565b13611b155750611b98859695610b04565b60019460009186805b611bb15750505050505050509050565b15611c0e575b5085969798508091611bcc611aa88b88610a7a565b99611bd78b87612441565b9083611be38784611301565b13611c0257505089925b87611bf88886610b14565b9201939998611ba1565b8b975090945092611bed565b861080611c21575b15611b035788611bb7565b506101008210611c16565b60009392918491838211611d0057611c448282612462565b611c4e8583612462565b6000611c5a8284611301565b13611b155750611c6c83869796610b14565b60019460009186805b611c855750505050505050509050565b15611ce2575b5085969798508091611ca0611aa88b88610a7a565b99611cab8b87612462565b9083611cb78784611301565b13611cd657505089925b87611ccc8886610b14565b9201939998611c75565b8b975090945092611cc1565b861080611cf5575b15611b035788611c8b565b506101008210611cea565b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b8181029181830414901517600116156101d5576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101d557600190600019830104019015150290565b600181151516156101d5576ec097ce7bc90715b34b9f0fffffffff0460010190565b6103e9908181029181830414901517600116156101d55760016103e8600019830104019015150290565b15611dcf57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e19811315611f8457680755bf798b4a1bf1e5811215611f50576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029182051482151516156101d5570590565b6103e881810291600160ff1b81136001179183051416156101d557670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b9091131716156101d557670de0b6b3a7640000900590565b610f1c9360609296959360e083019783526020830152604082015201906060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000490565b670de0b6b3a764000090818102918183041490151782151516156101d5570490565b6103e89080820291820414600116156101d557670de0b6b3a7640000900490565b8181029181830414901517600116156101d557670de0b6b3a7640000900490565b6103e7908181029181830414901517600116156101d5576103e8900490565b612115811515611dc8565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b80518101602001906020019061219191611a03565b9291908351602085015160408601516121a990610ade565b916121b48686612087565b6121be8282611324565b926121c891611324565b8751868885816121d8858b6120ca565b906121e2916120ca565b906121ec916120ca565b926121f6906120a9565b6121ff90610af4565b9061220991610a7a565b90612213916120ca565b61221c86610ade565b612225916120ca565b9261222f89610a6a565b90612239906110f0565b61224291611324565b9161224c906120a9565b61225586610ade565b61225e916120ca565b6122689087610a7a565b9261227291610b14565b9161227c916120ca565b875161228790610ade565b61229090612068565b61229991611324565b6122a2916120ca565b95516122ad90610ade565b926122b786610a6a565b956122c1916120ca565b906122cb916120ca565b92611295906120a9565b906122ec6102339260208082518301019101611a03565b9493929092611149565b6123099060208082518301019101611a03565b6040819593959492945191015192670de0b6b3a764000060008582039512818612811691861390151617610a655781869361234385611101565b61234c83611113565b61235591611324565b9461235f91611fa9565b9061236991611324565b9261237384611fc7565b9361237d86611113565b6123879086611ff0565b6123919088610e72565b92839261239d8a611101565b6123a79087611ff0565b946123b191611ff0565b6123ba86611f8a565b6123c391611324565b936123cd86611113565b6123d7908a611ff0565b928a6123e288611fc7565b906123ec9161112d565b6123f591611ff0565b6123fe89611113565b61240791611ff0565b9361241191611ff0565b9361241b91611ff0565b9161242591610e72565b61242e91611ff0565b6124379161112d565b9461186190611101565b906124586102339260208082518301019101611a03565b9493929092611725565b805181019160e0828403126101d5576102339261249060208401519360806020604083015194019101610bec565b92610e8b56fea2646970667358221220ddef7f48a463f4812492c0cc35c784e857fab14e0a29d203d7aa233c67d9fa2964736f6c6343000816003360a03461007f57601f6112cb38819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f57608052604051611230908161009b82396080518181816103b701528181610612015281816107c601526109240152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b610953565b61090e565b6107ad565b610773565b6105f6565b610331565b6102ae565b610221565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101c3565b838082518301019101610986565b9061010d6100ff600435610a7f565b8680825183010191016109a1565b92610b68565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761015057604052565b61011e565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101a1601f8201601f191660200184610155565b8294818452818301116101be578281602093846000960137010152565b600080fd5b9080601f830112156101be578160206101de93359101610177565b90565b919082519283825260005b84811061020d575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101ec565b346101be5760003660031901126101be57604051604081019080821067ffffffffffffffff8311176101505761027891604052600381526247334d60e81b60208201526040519182916020835260208301906101e1565b0390f35b9060405161028981610134565b6060600382948054845260018101546020850152600281015460408501520154910152565b346101be5760203660031901126101be57600435600052600060205260c060406000206102da8161027c565b90600481015490600560018060a01b03910154169060606040519380518552602081015160208601526040810151604086015201516060840152608083015260a0820152f35b6001600160a01b038116036101be57565b346101be5760603660031901126101be5761034d600435610320565b60243560443567ffffffffffffffff81116101be576103709036906004016101c3565b9061037a81610a7f565b90610390825192602080809583010191016109a1565b6040516333854efd60e21b8152600481018390529092906060816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa948515610596576000908192829761055d575b508084806103ff93518301019101610986565b949195909787878581116000146104c45793610454869461044e866104496104769b9761044461046198604061043b61046d9f6104679f610a08565b91015190610f48565b610f48565b610f74565b50610a7f565b80518101820191016109a1565b91610bb9565b83610a27565b93828685610b68565b93846013191292836104b9575b6102789394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b601486129350610483565b5050919290938089116000146104ff5761046161046d946104546104769761044e856104498f998f61044490604061043b866104679f610a08565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9096506103ff9250610587915060603d60601161058f575b61057f8183610155565b810190610986565b9690926103ec565b503d610575565b6109e6565b9060606003198301126101be576004356105b481610320565b916024359160443567ffffffffffffffff928382116101be57806023830112156101be5781600401359384116101be57602484830101116101be576024019190565b346101be576106043661059b565b9192506001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610761578160c091810103126101be5780359160208201359160408101359460608201359060a08301359261066984610320565b670de0b6b3a764000083101561074f5761070d946107059460806106f1936106f69661069f876000526000602052604060002090565b55013560046106b8866000526000602052604060002090565b01551660056106d1846000526000602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610a7f565b602080825183010191016109a1565b848385610b68565b9283601319129182610744575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b60148512925061071a565b60405163e8a38a6160e01b8152600490fd5b604051636853cba760e01b8152600490fd5b346101be5760606107833661059b565b818094509492940103126101be5780359061070d6107056106f66040602085013594013595610a7f565b346101be576107bb3661059b565b926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610761576108236108176005610809876000526000602052604060002090565b01546001600160a01b031690565b6001600160a01b031690565b9116036108fc5761083683820182610a4a565b61083f81610a5f565b60018103610878575061086261085d61087392600494953691610177565b610caa565b926000526000602052604060002090565b01555b005b61088181610a5f565b600281036108bd5750906108a56108a06108b893610876953691610177565b610c00565b9290916000526000602052604060002090565b610c28565b806108c9600392610a5f565b036108ea576106d16108626108e5600593610876963691610177565b610bd8565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101be5760003660031901126101be576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101be5760203660031901126101be57610278610972600435610a7f565b6040519182916020835260208301906101e1565b908160609103126101be578051916040602083015192015190565b908160809103126101be576060604051916109bb83610134565b80518352602081015160208401526040810151604084015201516109de81610320565b606082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610a1557565b6109f2565b91908201809211610a1557565b81810392916000138015828513169184121617610a1557565b600411156101be57565b908160209103126101be57356101de81610a40565b60041115610a6957565b634e487b7160e01b600052602160045260246000fd5b60408051610a8c81610134565b6000918282526020820193838552818301848152606084019085825282865285602052610ac2610abd85882061027c565b610cdf565b808652670de0b6b3a7640000908103908111610a1557846101de97610b1f95610b1294600594610b5a9c5281835282602052600484842001549052815280602052200160018060a01b0390541690565b6001600160a01b03169052565b5192839160208301919091606060808201938051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b03601f198101835282610155565b926020610b9184610b8b610b83610b9a9697610ba099610fa4565b855190610d88565b95610fa4565b91015190610d88565b90610f48565b670de0b6b3a763ffff198101908113600116610a155790565b6101de92916020610bcf610b9a93855190610d88565b93015190610d88565b6040818051810103126101be5780610bf560206040930151610a40565b015161081781610320565b6060818051810103126101be57610c1a6020820151610a40565b606060408201519101519091565b919042821115610c9857610c3e610abd8461027c565b9081845542600385015542830391838311610a1557610c5c91610a27565b428314610c8257600160ff1b8114600019831416610a1557600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101be5780610cc760206040930151610a40565b015190565b81810292918115918404141715610a1557565b6060810151906020810151808314610d5e57804211600014610d5657915b8203918211610a15576040810190815160008113600014610d3057506101de92610d2a9151925190610ccc565b90610a1a565b90519150600160ff1b8114610a15576101de92610d509160000390610ccc565b90610a08565b504291610cfd565b5090505190565b818102929160008212600160ff1b821416610a15578184051490151715610a1557565b610f356101de927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284610f4393610dbe60008213610fc6565b711340daa0d5f769dba1915cef59f0815a5506610dda82611188565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d610d65565b670de0b6b3a7640000900590565b610ffe565b8181029181830414901517600116156101be576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101be57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101be570490565b15610fcd57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131561118257680755bf798b4a1bf1e581121561114e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b611193811515610fc6565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c600110179056fea26469706673582212209815df372867dd1ba42d4263690c8e70d1f8dc34ff9f897579936267cb43316764736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a2646970667358221220922a3f465c164726372e926e67681fcbc051f51d6969bb115f45faa5b7ded9bc64736f6c63430008160033","sourceMap":"313:6562:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;1806:10;;;;;313:6562;;-1:-1:-1;;;1806:10:47;;313:6562;;1806:10;;313:6562;;;;;;1057:14:1;;313:6562:47;;;;1806:10;;;;;;;;313:6562;1057:14:1;2121:49:47;1057:14:1;;;:::i;:::-;1888:9:47;1057:14:1;;;1856:151:47;;;1057:14:1;567:11:47;313:6562;1856:151;;1057:14:1;1856:151:47;;;1057:14:1;;;2121:6:47;1057:14:1;2121:25:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;-1:-1:-1;;;;;313:6562:47;;1057:14:1;2121:25:47;313:6562;;1057:14:1;;;;;;;;2121:49:47;;313:6562;2121:49;;;:::i;:::-;;;;;;;;;2377:21;1057:14:1;2121:49:47;;;;;;;313:6562;-1:-1:-1;2267:3:47;1057:14:1;2259:12:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;2259:12:47;2293:6;1057:14:1;;;;2218:148:47;;-1:-1:-1;;;;;313:6562:47;2321:6;1057:14:1;2218:148:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;2218:148:47;1057:14:1;;:::i;:::-;-1:-1:-1;;;;;313:6562:47;;;1057:14:1;;;2218:148:47;-1:-1:-1;;;;;313:6562:47;1856:151;2218:148;;1057:14:1;;2218:148:47;-1:-1:-1;;;;;313:6562:47;;2218:148;;1057:14:1;;2218:148:47;1856:151;2218:148;;1057:14:1;2377:4:47;1057:14:1;2377:9:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;2377:9:47;313:6562;;;1057:14:1;;;;;;;;;2377:21:47;;313:6562;2377:21;;;:::i;:::-;;;;;;;;;;;313:6562;2408:1;;;:::i;:::-;313:6562;;2377:21;;;1057:14:1;2377:21:47;1057:14:1;2377:21:47;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;:::i;2121:49::-;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;1806:10;;;;;;:::i;:::-;;;:::i;:::-;;;;;313:6562;;;;;;;;;;;;;;;;;;;;;;636:32;;;;;;;;;;;;;;;;;;;;;;;313:6562;;;;;;;;1057:14:1;-1:-1:-1;;;1057:14:1;;;313:6562:47;;1057:14:1;313:6562:47;;;;;;;1057:14:1;-1:-1:-1;;;1057:14:1;;;313:6562:47;665:2;313:6562;;;;;;;;636:32;;;;;;;;;;619:50;313:6562;;-1:-1:-1;;;;;;313:6562:47;-1:-1:-1;;;;;313:6562:47;;;;;;;;696:32;;;;;;;;;;;;;;;;;;;313:6562;;;;;;;;1057:14:1;-1:-1:-1;;;1057:14:1;;;313:6562:47;;1057:14:1;313:6562:47;;;;;;;1057:14:1;-1:-1:-1;;;1057:14:1;;;313:6562:47;665:2;313:6562;;;;;;;;696:32;;;;;;;;;;679:50;313:6562;;636:32;313:6562;;;;;;;;679:50;313:6562;;;679:50;313:6562;;679:50;619;1057:14:1;739:22:47;;:17;;-1:-1:-1;;;;;313:6562:47;739:17;1057:14:1;739:22:47;:53;;;;;313:6562;;-1:-1:-1;;;739:53:47;;;770:4;313:6562;739:53;;1057:14:1;777::47;313:6562;;;;1057:14:1;;;313:6562:47;;;;;;1057:14:1;;739:53:47;;;;;;;;313:6562;-1:-1:-1;679:50:47;1057:14:1;;;802:22:47;;:17;;-1:-1:-1;;;;;313:6562:47;802:17;1057:14:1;802:22:47;:53;;;;;;313:6562;;802:53;;;770:4;313:6562;802:53;;1057:14:1;777::47;313:6562;;;;;;;;;;;770:4;;802:53;;;;;;;;313:6562;-1:-1:-1;619:50:47;1057:14:1;-1:-1:-1;;;;;313:6562:47;679:50;1057:14:1;-1:-1:-1;;;;;313:6562:47;;;;872:28;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;313:6562:47;;;1057:14:1;;313:6562:47;;378:4:31;;;1057:14:1;378:4:31;;;;313:6562:47;378:4:31;;;;872:28:47;;;;;;;;;866:34;313:6562;;-1:-1:-1;;;;;;313:6562:47;-1:-1:-1;;;;;313:6562:47;;;;;;;;;;;917:20;;;;;;;;;;;;;;;;;;;;;313:6562;;;1057:14:1;;;;917:20:47;;;;;;;;;910:27;313:6562;;-1:-1:-1;;;;;;313:6562:47;-1:-1:-1;;;;;313:6562:47;;;;;;;;;961:13;;1057:14:1;;961:13:47;313:6562;;953:22;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;313:6562:47;;;1057:14:1;;378:4:31;;;;953:22:47;;;;;;;;;947:28;313:6562;;-1:-1:-1;;;;;;313:6562:47;-1:-1:-1;;;;;313:6562:47;;;;;;;;;1008:12;;1057:14:1;;1008:12:47;313:6562;;;994:27;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;313:6562:47;;;1057:14:1;;378:4:31;;;;994:27:47;;;;;;;;;;985:36;1032:59;985:36;636:32;313:6562;;;;;;;;985:36;313:6562;;;985:36;313:6562;;985:36;619:50;1057:14:1;1032:25:47;;:17;;-1:-1:-1;;;;;313:6562:47;1032:17;1057:14:1;1032:25:47;910:27;1057:14:1;1058:13:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;1058:13:47;313:6562;;-1:-1:-1;;;1032:59:47;;;-1:-1:-1;;;;;313:6562:47;;;;1032:59;;1057:14:1;-1:-1:-1;;378:4:31;;;313:6562:47;1032:59;;313:6562;;1057:14:1;;1032:59:47;;313:6562;;1032:59;313:6562;;1032:59;;313:6562;;378:4:31;;;;;1032:59:47;;;;;;;;;;1101;1032;;;;;313:6562;-1:-1:-1;679:50:47;1057:14:1;1101:25:47;;:17;;-1:-1:-1;;;;;313:6562:47;1101:17;1057:14:1;1101:25:47;910:27;1057:14:1;;;;;;1127:13:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;1127:13:47;313:6562;;1101:59;;;-1:-1:-1;;;;;313:6562:47;;;;1101:59;;1057:14:1;-1:-1:-1;;378:4:31;;;313:6562:47;;;;;;;;378:4:31;;;;;1101:59:47;;;;;;;;;;;313:6562;;;1101:59;;;;;;-1:-1:-1;1101:59:47;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;313:6562;;;1101:59;;;;;1032;;;;;;;;;;;;;:::i;:::-;;;;;994:27;;:::i;802:53::-;;;;;;:::i;:::-;;;;739;;;;;;:::i;:::-;;;;;313:6562;;;;;;;;;;;;;;;;;1806:10;;;;;313:6562;;-1:-1:-1;;;1806:10:47;;313:6562;;1806:10;;313:6562;;;;;;1057:14:1;;313:6562:47;;;;1806:10;;;;;;;;313:6562;1057:14:1;2121:49:47;1057:14:1;;;:::i;2121:49:47:-;;;;;;;;;2377:21;1057:14:1;2121:49:47;;;;;;;-1:-1:-1;2267:3:47;1057:14:1;2259:12:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;2377:21:47;;;;;;;;;;;313:6562;2408:1;;;:::i;2377:21::-;;;1057:14:1;2377:21:47;1057:14:1;2377:21:47;;;;;;;:::i;:::-;;;;;;1806:10;;;;;;:::i;:::-;;;;313:6562;;;;;;;;;;;;;1057:14:1;;1479:240:47;1057:14:1;;:::i;:::-;1358:9:47;1057:14:1;;;1326:142:47;;;1057:14:1;1326:142:47;;;1057:14:1;;;1452:4:47;1326:142;;;1057:14:1;1479:4:47;1057:14:1;1479:9:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;1479:9:47;1555:3;1057:14:1;;;;1547:12:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;1547:12:47;1585:6;1057:14:1;1617:6:47;1057:14:1;;;-1:-1:-1;;;;;313:6562:47;;;;1502:207;;313:6562;;1502:207;;1647:47;;;:::i;:::-;1057:14:1;1502:207:47;1057:14:1;;:::i;1502:207:47:-;1326:142;1502:207;;1057:14:1;1326:142:47;313:6562;1057:14:1;;;;;;;;;1479:240:47;;313:6562;1479:240;;;:::i;:::-;;;;;;;;;;;313:6562;;;1479:240;;;1057:14:1;1479:240:47;1057:14:1;1479:240:47;;;;;;;:::i;:::-;;;;313:6562;;;;;;;;;;;;;;;;;1806:10;;;;;313:6562;;-1:-1:-1;;;1806:10:47;;313:6562;;1806:10;;313:6562;;;;;;1057:14:1;;313:6562:47;;;;1806:10;;;;;;;;313:6562;1057:14:1;2121:49:47;1057:14:1;;;:::i;2121:49:47:-;;;;;;;;;2377:21;1057:14:1;2121:49:47;;;;;;;-1:-1:-1;2267:3:47;1057:14:1;2259:12:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;2377:21:47;;;;;;;;;;;313:6562;2408:1;;;:::i;2377:21::-;;;1057:14:1;2377:21:47;1057:14:1;2377:21:47;;;;;;;:::i;:::-;;;;;;1806:10;;;;;;:::i;:::-;;;;313:6562;;;;;;;;;;;;;;1806:10;;;;;313:6562;;-1:-1:-1;;;1806:10:47;;313:6562;;1806:10;;313:6562;;;;;;1057:14:1;;313:6562:47;;;;1806:10;;;;;;;;313:6562;1057:14:1;2121:49:47;1057:14:1;;;:::i;2121:49:47:-;;;;;;;;;2377:21;1057:14:1;2121:49:47;;;;;;;-1:-1:-1;2267:3:47;1057:14:1;2259:12:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;2377:21:47;;;;;;;;;;;313:6562;2408:1;;;:::i;2377:21::-;;;1057:14:1;2377:21:47;1057:14:1;2377:21:47;;;;;;;:::i;:::-;;;;;;1806:10;;;;;;:::i;:::-;;;;313:6562;;;;;;-1:-1:-1;;313:6562:47;;;;;;;567:11;313:6562;;;;;;;;;;;;;;;;;1806:10;;;;;313:6562;;-1:-1:-1;;;1806:10:47;;313:6562;;1806:10;;313:6562;;;;;;1057:14:1;;313:6562:47;;;;1806:10;;;;;;;;313:6562;1057:14:1;2121:49:47;1057:14:1;;;:::i;2121:49:47:-;;;;;;;;;2377:21;1057:14:1;2121:49:47;;;;;;;-1:-1:-1;2267:3:47;1057:14:1;2259:12:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;2377:21:47;;;;;;;;;;;313:6562;2408:1;;;:::i;2377:21::-;;;1057:14:1;2377:21:47;1057:14:1;2377:21:47;;;;;;;:::i;:::-;;;;;;1806:10;;;;;;:::i;:::-;;;;313:6562;;;;;;;;;;;;;;1806:10;;;;;313:6562;;-1:-1:-1;;;1806:10:47;;313:6562;;1806:10;;313:6562;;;;;;1057:14:1;;313:6562:47;;;;1806:10;;;;;;;;313:6562;1057:14:1;2121:49:47;1057:14:1;;;:::i;2121:49:47:-;;;;;;;;;2377:21;1057:14:1;2121:49:47;;;;;;;-1:-1:-1;2267:3:47;1057:14:1;2259:12:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;2377:21:47;;;;;;;;;;;313:6562;2408:1;;;:::i;2377:21::-;;;1057:14:1;2377:21:47;1057:14:1;2377:21:47;;;;;;;:::i;:::-;;;;;;1806:10;;;;;;:::i;:::-;;;;313:6562;;;;;;-1:-1:-1;;313:6562:47;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1806:10;;;;;313:6562;;-1:-1:-1;;;1806:10:47;;313:6562;;1806:10;;313:6562;;;;;;1057:14:1;;313:6562:47;;;;1806:10;;;;;;;;313:6562;1057:14:1;2121:49:47;1057:14:1;;;:::i;2121:49:47:-;;;;;;;;;2377:21;1057:14:1;2121:49:47;;;;;;;-1:-1:-1;2267:3:47;1057:14:1;2259:12:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;2377:21:47;;;;;;;;;;;313:6562;2408:1;;;:::i;2377:21::-;;;1057:14:1;2377:21:47;1057:14:1;2377:21:47;;;;;;;:::i;:::-;;;;;;1806:10;;;;;;:::i;:::-;;;;313:6562;;;;;;-1:-1:-1;;313:6562:47;;;;;;;;;;;;;;;;;1057:14:1;;;;;;;;;;;;;;;;;;;;:::o;:::-;313:6562:47;1057:14:1;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;313:6562:47;;1057:14:1;;;;;;;;313:6562:47;;1057:14:1;;;;:::i;:::-;:::o;:::-;;;;;;;;-1:-1:-1;;1057:14:1;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1057:14:1;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;313:6562:47;1057:14:1;313:6562:47;;1057:14:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;2034:7:47;;313:6562;;;1057:14:1;;;313:6562:47;1057:14:1;;;;;;313:6562:47;;1057:14:1;;;;;;;313:6562:47;1057:14:1;;;;;;;313:6562:47;;636:32;313:6562;;;;1057:14:1;;;313:6562:47;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1057:14:1;;;;:::o;:::-;;;;;;;;636:32:47;313:6562;;;;1057:14:1;;;313:6562:47;1057:14:1;;;;;;;;;313:6562:47;1057:14:1;;;;;;;;313:6562:47;1057:14:1;;;;;;;;;;;;;;;:::i;313:6562:47:-;;;;;;;;;1057:14:1;313:6562:47;:::o;:::-;1057:14:1;;;313:6562:47;;;;;;;;;-1:-1:-1;;313:6562:47;;;;;;;;:::o;:::-;;:::i;:::-;-1:-1:-1;;313:6562:47;;;;;;;;:::o;:::-;-1:-1:-1;;313:6562:47;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;1057:14:1;313:6562:47;1057:14:1;;;;:::i;:::-;313:6562:47;;;-1:-1:-1;;;313:6562:47;;;;:::o;:::-;1057:14:1;313:6562:47;1057:14:1;;;;:::i;:::-;313:6562:47;;;-1:-1:-1;;;313:6562:47;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;1057:14:1;313:6562:47;;;;1057:14:1;313:6562:47;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;1057:14:1;;313:6562:47;;1057:14:1;313:6562:47;:::o;:::-;;;;;;;;;;;;;;;;:::i;3159:684::-;3229:4;1057:14:1;3229:10:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;3229:10:47;313:6562;;;-1:-1:-1;;;3229:12:47;;313:6562;;3229:12;;;;313:6562;3229:12;313:6562;3229:12;313:6562;;3229:12;;;;;;:16;:12;;;;;3159:684;3229:16;;:::i;:::-;3273:6;1057:14:1;;;;3273:25:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;3273:25:47;313:6562;;;1057:14:1;;;3273:50:47;;;;;;;;;;;;313:6562;3318:4;313:6562;;;;;;;;;;3307:9;313:6562;;;;;;;3273:50;;;;;;;;;;;3229:12;3273:50;;;3159:684;-1:-1:-1;313:6562:47;;3363:61;;;;;;313:6562;;;3307:9;313:6562;;;;3408:15;313:6562;;;;3363:61;;313:6562;;;;;;3363:61;;;;;;;;;;3473:29;3363:61;3229:12;3363:61;;;3159:684;313:6562;3434:29;313:6562;;;:::i;:::-;3434:29;:::i;:::-;313:6562;;:::i;3473:29::-;313:6562;;-1:-1:-1;;;3535:92:47;;;;;313:6562;;;3307:9;313:6562;;;;3408:15;313:6562;;;;;;1057:14:1;3535:92:47;;313:6562;;;;;;3535:92;;;;;;;;;;3722:47;3535:92;3229:12;3535:92;;;;;3159:684;-1:-1:-1;;313:6562:47;;-1:-1:-1;;;3722:47:47;;;;;313:6562;;;3244:1;313:6562;;;;;;;;;;;;;;;;;;;;;;3722:47;;;;;;;;;;3809:27;3722:47;;;3229:12;;;3722:47;;;3159:684;3793:5;;;3229:12;3793:5;;:::i;:::-;313:6562;;-1:-1:-1;;;3809:27:47;;313:6562;;;;;;;3809:27;;;:::i;:::-;;;;;;;;;;;3159:684;;:::o;3809:27::-;;;;;;-1:-1:-1;3809:27:47;;;;;;;:::i;:::-;;;;;:::i;:::-;3159:684;;:::o;3809:27::-;;;;;3722:47;3793:5;3722:47;;3229:12;3722:47;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;3535:92;;;;;;;-1:-1:-1;3535:92:47;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;3363:61;3434:29;3363:61;;;;;;;;;;;;;;;:::i;:::-;;;;;3273:50;;;;;;;;;;;;;;:::i;:::-;;;;3229:12;;;;;;;;;;;;;;:::i;:::-;;;;378:4:31;;;;;;;;;313:6562:47;;;:::i;:::-;;4623:11;313:6562;;;;;;;:::o;:::-;;6006:13;313:6562;;;;;;;:::o;:::-;;;;;;;;;;:::o;4109:1377::-;4186:4;1057:14:1;4186:10:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;4186:10:47;313:6562;;1057:14:1;;;;;4186:12:47;;;;;;;;;;;;;;:16;:12;;;;;:16;;:::i;:::-;4235:6;1057:14:1;;;;4235:34:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;4235:34:47;313:6562;;-1:-1:-1;;;4235:92:47;;4186:12;4235:92;;313:6562;;;4291:10;313:6562;;;;4303:14;313:6562;;;;;;;4235:92;313:6562;;;;4235:92;;;;;;;4186:12;4235:92;;;4109:1377;-1:-1:-1;;313:6562:47;;-1:-1:-1;;;4376:47:47;;;4186:12;4376:47;;313:6562;;;3244:1;313:6562;;;;;;;;;;1057:14:1;313:6562:47;-1:-1:-1;313:6562:47;;;4376:47;;;;;;;4552:18;4376:47;4186:12;4376:47;;;4109:1377;631:21:18;;;;:::i;:::-;4552:18:47;;:::i;:::-;4608:26;4671;4608;;;:::i;:::-;4671;;:::i;:::-;313:6562;;4748:51;;;4186:12;4748:51;;313:6562;;;3244:1;313:6562;;;;;;;;;;;;;;-1:-1:-1;313:6562:47;;;;4748:51;;;;;;;4958:34;4186:12;4748:51;;;5043;4748;;;;;4109:1377;631:21:18;;;;:::i;4958:34:47:-;313:6562;;;5043:51;;;;;;;;;4186:12;5043:51;;313:6562;;;;;;;;;;;;3244:1;313:6562;;;;;;;5043:51;;;;;;;;;;5464:14;5043:51;5422:14;5043:51;5253:34;5043:51;4186:12;5043:51;;;631:21:18;;;;:::i;5253:34:47:-;5311:14;;;;:::i;:::-;5349:6;;;:::i;:::-;5379:14;;;:::i;:::-;5422;;:::i;:::-;5464;:::i;5043:51::-;631:21:18;5043:51:47;;;;;;;4186:12;5043:51;;;;;;:::i;:::-;;;;;;;;;4748;631:21:18;4748:51:47;;;;;;;;;;;;;;:::i;4376:47::-;;;;;;4186:12;4376:47;;;;;;:::i;:::-;;;;;;;;4235:92;;;;;;;-1:-1:-1;4235:92:47;;;;;;:::i;:::-;;;;;;4186:12;;;;;;;;;;;;;;:::i;5492:1381::-;5569:4;1057:14:1;5569:10:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;5569:10:47;313:6562;;1057:14:1;;;;;5569:12:47;;;;;;;;;;;;;;:16;:12;;;;;:16;;:::i;:::-;5618:6;1057:14:1;5618:34:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;5618:34:47;313:6562;;-1:-1:-1;;;5618:92:47;;5569:12;5618:92;;313:6562;;;3307:9;313:6562;;;;3408:15;313:6562;;;;;;;;;;;;5618:92;;;;;;;5569:12;5618:92;;;5492:1381;-1:-1:-1;;313:6562:47;;-1:-1:-1;;;5759:48:47;;;5569:12;5759:48;;313:6562;;;-1:-1:-1;313:6562:47;;;;;;;;;;;;1057:14:1;;313:6562:47;;;;;5759:48;;;;;;;631:21:18;5759:48:47;;5935:18;5759:48;5569:12;5759:48;;;5492:1381;631:21:18;;:::i;:::-;5935:18:47;:::i;:::-;5991:28;6056;5991;;;:::i;:::-;6056;;:::i;:::-;313:6562;;6135:52;;;5569:12;6135:52;;313:6562;;;-1:-1:-1;313:6562:47;;;;;;;;;;;;;;;;;;;;6135:52;;;;;;;6345:34;5569:12;6135:52;631:21:18;6430:52:47;6135;;;;;;;631:21:18;;:::i;6345:34:47:-;313:6562;;;6430:52;;;;;;;;;5569:12;6430:52;;313:6562;;;;;;;;;;;;-1:-1:-1;313:6562:47;;;;;;;6430:52;;;;;;;;;6851:14;6430:52;631:21:18;6640:34:47;6430:52;6809:14;6430:52;5569:12;6430:52;;;631:21:18;;:::i;6430:52:47:-;;;;;;5569:12;6430:52;;;;;;:::i;:::-;;;;;;;;6135;;;;;;;;;;;;;:::i;5618:92::-;;;;;;-1:-1:-1;5618:92:47;;;;;;:::i;:::-;;;;;3849:254;3919:4;1057:14:1;3919:10:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;3919:10:47;313:6562;;1057:14:1;;;;;3919:12:47;;;;;;;;;;;;;;:16;:12;;3968:91;3919:12;;;;;:16;;:::i;:::-;3968:6;1057:14:1;3968:34:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;3968:34:47;313:6562;;1057:14:1;;;;;;;;3968:91:47;;3919:12;3968:91;;313:6562;4035:14;313:6562;;;;;;;;;;4024:9;313:6562;;;;;;;3968:91;;;;;;;;;;4083:12;3968:91;3919:12;3968:91;;;3849:254;4083:12;;;:::i;3968:91::-;;;;;;-1:-1:-1;3968:91:47;;;;;;:::i;:::-;;;;;2925:228;2992:4;1057:14:1;2992:10:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;2992:10:47;313:6562;;1057:14:1;;;;;2992:12:47;;;;;;;;;;;;;;:16;:12;;3050:61;2992:12;;;;;:16;;:::i;:::-;3050:6;1057:14:1;3050:25:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;3050:25:47;313:6562;;1057:14:1;;;;;;;;3050:61:47;;2992:12;3050:61;;313:6562;3095:15;313:6562;;;;;;;;;;3084:9;313:6562;;;;;;;3050:61;;;;;;;;;;3135:10;3050:61;2992:12;3050:61;;;2925:228;3135:10;;;:::i;3050:61::-;;;;;;-1:-1:-1;3050:61:47;;;;;;:::i;:::-;;;;;2690:229;2757:4;1057:14:1;2757:10:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;2757:10:47;313:6562;;1057:14:1;;;;;2757:12:47;;;;;;;;;;;;;;:16;:12;;2816:60;2757:12;;;;;:16;;:::i;:::-;2816:6;1057:14:1;2816:25:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;2816:25:47;313:6562;;1057:14:1;;;;;;;;2816:60:47;;2757:12;2816:60;;313:6562;2861:14;313:6562;;;;;;;;;;2850:9;313:6562;;;;;;;1671:64:0;;;;;;;;;;1057:14:1;;1671:64:0;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;313:6562:47;;;;:::i;:::-;;1057:14:1;313:6562:47;;1057:14:1;;;:::i;:::-;313:6562:47;;1671:64:0;-1:-1:-1;1671:64:0;;;;:::o;:::-;;;:::o;1819:584::-;1873:7;313:6562:47;;;;;;1873:7:0;;;313:6562:47;;;;;1057:14:1;:::o;1869:528:0:-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;313:6562:47;;;;;2196:43:0;;;;;;1671:64;;;;1057:14:1;313:6562:47;1057:14:1;;1671:64:0;;;;;;313:6562:47;1671:64:0;2196:43;;;1057:14:1;;2196:43:0;;;;;;;;:::i;:::-;2086:175;313:6562:47;;2086:175:0;;;2196:43;2086:175;;;;;:::i;:::-;;;;;;;;;:::i;:::-;2047:232;;;;;2312:27;2047:232;;:::i;:::-;2196:43;1057:14:1;;;2312:27:0;;;;;;:::i;2422:262:47:-;2524:4;1057:14:1;2524:12:47;;;;:10;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;2524:10:47;313:6562;;-1:-1:-1;;;2524:12:47;;313:6562;;;;;2524:12;;;;;;:16;:12;;2634:43;2524:12;;;;;:16;;:::i;:::-;2634:6;1057:14:1;2634:19:47;;-1:-1:-1;;;;;313:6562:47;1057:14:1;;2634:19:47;313:6562;;1057:14:1;;;;;;;;2634:43:47;;2524:12;2634:43;;313:6562;2489:8;313:6562;;;;;;;;;;2539:1;313:6562;;;;;;;2634:43;;;;;;;;;;;2422:262;:::o;2634:43::-;;;;;2524:12;2634:43;;;;;;:::i;:::-;;;;2422:262;:::o;2524:12::-;;;;;;;;;;;;;;:::i;7327:143:14:-;7409:53;313:6562:47;7327:143:14;7409:53;7327:143;313:6562:47;;7409:53:14;;;;;;;;;;313:6562:47;7409:53:14;;;313:6562:47;;;;;;:::i;:::-;;;;;;7409:53:14;1057:14:1;;7409:53:14;;;;;;:::i;:::-;;:::i;6355:110::-;6417:40;6355:110;313:6562:47;;6417:40:14;;;;;;;;313:6562:47;;6417:40:14;;;313:6562:47;6417:40:14;;;;;;:::i;5986:116::-;6051:43;5986:116;313:6562:47;;6051:43:14;;;;;;;;;;;313:6562:47;6051:43:14;;;;;;:::i;6756:259:0:-;6813:6;;;;6809:200;;6756:259;;:::o;6809:200::-;313:6562:47;;;;;;;6840:40:0;313:6562:47;;;;;;;;;;1057:14:1;313:6562:47;1057:14:1;;;313:6562:47;-1:-1:-1;;;313:6562:47;;;;6840:40:0;313:6562:47;;;;;;;;;;1057:14:1;-1:-1:-1;;;313:6562:47;1057:14:1;;313:6562:47;;;;;6899:30:0;;;;;313:6562:47;;;;;;;;;;1057:14:1;-1:-1:-1;;;313:6562:47;1057:14:1;;313:6562:47;;;;;6948:30:0;2939:104;;;2445:359;;6809:200;313:6562:47;;;;;;2928:1:0;313:6562:47;;;2928:1:0;313:6562:47;6756:259:0:o;2445:359::-;313:6562:47;-1:-1:-1;1671:64:0;2534:196;1671:64;313:6562:47;;;;;;2645:67:0;;;;1057:14:1;;;;1671:64:0;;;313:6562:47;;;;2705:4:0;313:6562:47;;;;;2645:67:0;;;;;:::i;:::-;313:6562:47;2534:196:0;;;;;1671:64;;;;;;1057:14:1;1671:64:0;;;;;;;:::i;:::-;;;2534:196;1671:64;2534:196;;;;;;;:::i;:::-;2499:245;;;;;;;:::i;:::-;;2445:359;;;;;1858:513:35;1349:9;;;799:19:18;313:6562:47;;;1790:35:35;1728;631:21:18;;965;313:6562:47;;965:21:18;;;:::i;:::-;631;:::i;:::-;;:::i;:::-;1728:35:35;;:::i;:::-;313:6562:47;;1790:35:35;;:::i;:::-;799:19:18;;:::i;:::-;2139:69:35;;;;;:::i;:::-;8798:29;;-1:-1:-1;8914:21:35;;;-1:-1:-1;;;8947:268:35;;;;;8954:21;;;;;;8910:600;2296:72;8910:600;;2296:72;8910:600;9519:160;8910:600;;9538:45;313:6562:47;;9538:45:35;;;;1349:9;9538:45;;;:::i;:::-;;1057:14:1;9538:45:35;1057:14:1;;9538:45:35;;;;;;;;:::i;:::-;9519:160;:::i;:::-;313:6562:47;;;2334:14:35;;;313:6562:47;2350:17:35;;;;313:6562:47;;;1237:7;1349:9:35;2296:72;;313:6562:47;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;313:6562:47;;;;;;1057:14:1;313:6562:47;;;;;;;8947:268:35;8999:27;;;;;;;:::i;:::-;9060:144;;;;;;:::i;:::-;8947:268;;;;;;8910:600;9237:267;;;;;9244:21;;;;;;8910:600;2296:72;8910:600;;2296:72;8910:600;9519:160;8910:600;;;9237:267;9289:26;;;;;;;:::i;:::-;9349:144;;;;;;:::i;:::-;9237:267;;;;;;6108:114:14;6172:42;6108:114;313:6562:47;;6172:42:14;;;;;;;;;;;313:6562:47;6172:42:14;;;;;;:::i;641:376::-;852:159;641:376;;852:159;1057:14:1;;852:159:14;;591:42;852:159;;;641:376::o;7741:535:18:-;4291:10:47;7878:392:18;;;;;;;;;;;;;;;;;378:4:31;7878:392:18;;7741:535;:::o;:::-;5674:9:47;7878:392:18;;;;;;;;;;;;;;;;;378:4:31;7878:392:18;;7741:535;:::o;:::-;378:4:31;7878:392:18;;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;1270:15:47;7878:392:18;;;;;;;;;;;;;;;;;378:4:31;7878:392:18;;7741:535;:::o;:::-;1237:7:47;7878:392:18;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;9016:3:35;7878:392:18;;;;;;;;;;;;;;;;;9021:4:35;7878:392:18;;7741:535;:::o;1692:384:42:-;;7878:392:18;;;;;;;;313:6562:47;2000:9:42;965:21:18;1961:50:42;313:6562:47;1880:50:42;799:19:18;313:6562:47;;7878:392:18;;;1880:50:42;:::i;:::-;965:21:18;;:::i;:::-;2000:9:42;;313:6562:47;1961:50:42;;:::i;799:19:18:-;313:6562:47;;;;;;;7878:392:18;313:6562:47;;;1692:384:42;:::o;:::-;;2000:9;965:21:18;1692:384:42;1880:50;965:21:18;1961:50:42;1692:384;;799:19:18;1692:384:42;965:21:18;:::i;:::-;313:6562:47;;1880:50:42;;:::i;313:6562:47:-;;;;;;;;;;;;;1237:7;313:6562;;;;;;;;;;;;1057:14:1;;;;313:6562:47;;1057:14:1;;;;;;;313:6562:47;1057:14:1;;;;;;;313:6562:47;;636:32;313:6562;;;;1057:14:1;;;313:6562:47;1057:14:1;;;;313:6562:47;;;;;;;;;-1:-1:-1;;;313:6562:47;;;;;;;;;;;;;;;:::o;1208:273:18:-;1391:36;;1398:28;;1399:12;;313:6562:47;5145:2:18;313:6562:47;;;6068:32:18;313:6562:47;;;;;;;6136:33:18;313:6562:47;;;;;6205:33:18;313:6562:47;;;;;6274:33:18;313:6562:47;;;;;6343:32:18;313:6562:47;;;;;6411:30:18;313:6562:47;;;;5465:32:18;313:6562:47;;;;;5533:32:18;313:6562:47;;;;;-1:-1:-1;;313:6562:47;;;;;-1:-1:-1;;313:6562:47;;;;;;-1:-1:-1;;313:6562:47;;-1:-1:-1;;313:6562:47;6455:304:18;7125:43;313:6562:47;;;;;1399:12:18;:::i;:::-;378:4:31;313:6562:47;;;;1398:28:18;1391:36;:::i;1208:273::-;1399:12;1391:36;1208:273;7380:72;1398:28;1208:273;4688:27;-1:-1:-1;4696:5:18;;4688:27;:::i;:::-;7125:43;5125:16;;;:::i;:::-;5145:2;313:6562:47;;;5175:3:18;313:6562:47;;;5175:3:18;313:6562:47;;;;;7232:71:18;313:6562:47;;6411:30:18;313:6562:47;6343:32:18;313:6562:47;6274:33:18;313:6562:47;6205:33:18;313:6562:47;6136:33:18;313:6562:47;6068:32:18;313:6562:47;6001:31:18;313:6562:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5533:32:18;313:6562:47;5465:32:18;313:6562:47;5398:31:18;313:6562:47;;;;;;;;;;;;;;;;;;;;;;;;6455:304:18;313:6562:47;;;;;1399:12:18;:::i;8282:752::-;8417:611;;;;;;;;;;;;;;;;;378:4:31;313:6562:47;;8417:611:18;;;;;;;;8282:752;:::o;:::-;9304:4:35;8417:611:18;;;;;;;;;;;;;;;;;;9310:4:35;313:6562:47;;8417:611:18;;;;;;;;8282:752;:::o;1009:1952:33:-;313:6562:47;;1009:1952:33;;313:6562:47;;1239:13:33;;;1235:66;;1632:15;;;;:::i;:::-;1674;;;;:::i;:::-;313:6562:47;1699:25:33;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;;:::i;:::-;9631:1:35;;313:6562:47;;9631:1:35;;;;;1978:981:33;1009:1952;;;;;;;;;;:::o;1978:981::-;;;;;2909:48;;;;;;;2123:13;2122:19;2123:13;;;;:::i;:::-;313:6562:47;;;;2122:19:33;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;313:6562:47;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;313:6562:47;;1978:981:33;;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;2909:18;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;;;;;;2931:26;9643:3:35;2931:26:33;;2909:48;;1695:115;313:6562:47;;-1:-1:-1;;;1747:56:33;;;;;313:6562:47;;;;;;;;;;1747:56:33;1235:66;313:6562:47;;-1:-1:-1;;;1261:40:33;;;;;313:6562:47;;;;;;;;;;;1747:56:33;313:6562:47;;;;:::o;:::-;;;-1:-1:-1;;;313:6562:47;;;;;;;;;;;1057:14:1;-1:-1:-1;;;1057:14:1;;;313:6562:47;;;;1487:3103:18;-1:-1:-1;;1713:26:18;;;1709:40;;1948:21;1943:26;;;1939:54;;2266:5;313:6562:47;;;;4502:49:18;2559:29;313:6562:47;;2591:5:18;636:32:47;2591:5:18;;313:6562:47;;;;;;;;;;;;;;2874:31:18;313:6562:47;;;;;;3074:35:18;3649;313:6562:47;;;;3508:34:18;313:6562:47;;;;3371:32:18;313:6562:47;;;;;;;;;;;;;;;;;;;;;;;;;3136:40:18;;;;313:6562:47;2941:32:18;313:6562:47;;;;;;;;;;;;;;;3699:327:18;313:6562:47;;4564:3:18;313:6562:47;;1487:3103:18;:::o;1939:54::-;313:6562:47;;-1:-1:-1;;;1971:22:18;;313:6562:47;1971:22:18;;;313:6562:47;;;;;1057:14:1;-1:-1:-1;;;1057:14:1;;;313:6562:47;;;1747:56:33;1709:40:18;1741:8;1748:1;1741:8;:::o;15328:575::-;15397:27;15405:5;;;15397:27;:::i;:::-;15435:462;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:575;:::o;313:6562:47:-;1057:14:1;;;3862:59:35;;313:6562:47;;;;;;;3862:59:35;;;1057:14:1;313:6562:47;;;;;1057:14:1;313:6562:47;;;;;;;;;;1057:14:1;;;;:::i;:::-;313:6562:47;;;1057:14:1;313:6562:47;;;;;1057:14:1;3862:59:35;313:6562:47;;;;;;1057:14:1;313:6562:47;;;;;;;-1:-1:-1;;;;;313:6562:47;;;;;;3934:64:35;313:6562:47;;;;;3934:64:35;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","TEST_SWAP_FEE()":"620a2607","failed()":"ba414fa6","setUp()":"0a9254e4","test_G3M_init_18()":"5f3dc89b","test_diff_lower()":"99a28488","test_diff_raise()":"7a277e2c","test_g3m_swap()":"dd017e52","test_optimal_lower()":"6162e16a","test_optimal_lower_profit()":"3456d955","test_optimal_raise()":"0022a0ca","test_optimal_raise_profit()":"5f4d62fb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"upper\",\"type\":\"uint256\"}],\"name\":\"BisectionLib_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"lowerResult\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"upperResult\",\"type\":\"int256\"}],\"name\":\"BisectionLib_RootOutsideBounds\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_SWAP_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_G3M_init_18\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_diff_lower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_diff_raise\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_g3m_swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_optimal_lower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_optimal_lower_profit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_optimal_raise\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_optimal_raise_profit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"BisectionLib_InvalidBounds(uint256,uint256)\":[{\"details\":\"Thrown when the lower bound is greater than the upper bound.\"}],\"BisectionLib_RootOutsideBounds(int256,int256)\":[{\"details\":\"Thrown when the result of the function `fx` for each input, `upper` and `lower`, is the same sign.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/G3M/G3MTest.t.sol\":\"G3MTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/lib/SignedWadMath.sol\":{\"keccak256\":\"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a\",\"dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/solvers/G3M/G3MExtendedLib.sol\":{\"keccak256\":\"0xa7e4eb7172ca81b319ccb5ac248c302fb549be3eb6badda424800f73edfbc448\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2d53a62a983c65dd0b892f30d30b603fc5cf7ebb4895dbdcb0a05a9eae1a431f\",\"dweb:/ipfs/QmNXKi6XUWswwKuzaE6SorZhRvd7Nz6dxYmLmii8bVcRhK\"]},\"src/solvers/G3M/G3MSolver.sol\":{\"keccak256\":\"0x78a3ae3db50beba513113d6a79c1d29282ccc46852563237fc3852eb1390376e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://146cfcc48b6a2fd6cd392f8508232b201add90f0f4352b141bc8d25b821884da\",\"dweb:/ipfs/QmXB3vg58RwUEEMCqgvdEGfwZjTzvE9PXDEZ8XFYsmiK1s\"]},\"src/strategies/G3M/G3M.sol\":{\"keccak256\":\"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c\",\"dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE\"]},\"src/strategies/G3M/G3MLib.sol\":{\"keccak256\":\"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70\",\"dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m\"]},\"src/test/G3M/G3MTest.t.sol\":{\"keccak256\":\"0xd2042d66493e6c68591a68be2b0ccfb66a29713794447654fb2e2fefc08cadaa\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://32d40efe30241acfefa895754fe05dbb99f430efbc79954158f5a7b65735c96d\",\"dweb:/ipfs/QmNtBCbfqY1Rxz5wT4JeQAHLm3tHALFBQJyg9cvBpx1L2z\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"lower","type":"uint256"},{"internalType":"uint256","name":"upper","type":"uint256"}],"type":"error","name":"BisectionLib_InvalidBounds"},{"inputs":[{"internalType":"int256","name":"lowerResult","type":"int256"},{"internalType":"int256","name":"upperResult","type":"int256"}],"type":"error","name":"BisectionLib_RootOutsideBounds"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_SWAP_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_G3M_init_18"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_diff_lower"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_diff_raise"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_g3m_swap"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_optimal_lower"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_optimal_lower_profit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_optimal_raise"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_optimal_raise_profit"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/G3M/G3MTest.t.sol":"G3MTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/lib/SignedWadMath.sol":{"keccak256":"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630","urls":["bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a","dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN"],"license":"MIT"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/solvers/G3M/G3MExtendedLib.sol":{"keccak256":"0xa7e4eb7172ca81b319ccb5ac248c302fb549be3eb6badda424800f73edfbc448","urls":["bzz-raw://2d53a62a983c65dd0b892f30d30b603fc5cf7ebb4895dbdcb0a05a9eae1a431f","dweb:/ipfs/QmNXKi6XUWswwKuzaE6SorZhRvd7Nz6dxYmLmii8bVcRhK"],"license":"GPL-3.0-or-later"},"src/solvers/G3M/G3MSolver.sol":{"keccak256":"0x78a3ae3db50beba513113d6a79c1d29282ccc46852563237fc3852eb1390376e","urls":["bzz-raw://146cfcc48b6a2fd6cd392f8508232b201add90f0f4352b141bc8d25b821884da","dweb:/ipfs/QmXB3vg58RwUEEMCqgvdEGfwZjTzvE9PXDEZ8XFYsmiK1s"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3M.sol":{"keccak256":"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034","urls":["bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c","dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3MLib.sol":{"keccak256":"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4","urls":["bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70","dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m"],"license":"GPL-3.0-or-later"},"src/test/G3M/G3MTest.t.sol":{"keccak256":"0xd2042d66493e6c68591a68be2b0ccfb66a29713794447654fb2e2fefc08cadaa","urls":["bzz-raw://32d40efe30241acfefa895754fe05dbb99f430efbc79954158f5a7b65735c96d","dweb:/ipfs/QmNtBCbfqY1Rxz5wT4JeQAHLm3tHALFBQJyg9cvBpx1L2z"],"license":"UNLICENSED"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/G3M/G3MTest.t.sol","id":41745,"exportedSymbols":{"ArbiterToken":[43381],"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"DFMM":[29062],"DSTest":[1786],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"G3M":[37911],"G3MLib":[38158],"G3MSolver":[33820],"G3MTest":[41744],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"LPToken":[29516],"Lex":[44392],"LibString":[26659],"Min":[27736],"MockERC20":[25560],"ONE":[30639],"SQRT_WAD":[30630],"SafeTransferLib":[26744],"SignedWadMathLib":[30623],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"TWO":[30633],"Test":[8195],"TestBase":[1843],"Vm":[9352],"WETH":[26027],"ZERO":[30649],"abs":[27763],"bisection":[31118],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeInitialPoolData":[31906],"computeL":[31844],"computeLGivenX":[31662],"computeLGivenY":[31688],"computeNextLiquidity":[32899],"computeNextRx":[32006],"computeNextRy":[31956],"computeOptimalLower":[32732],"computeOptimalRaise":[32798],"computePrice":[32043],"computeScalingFactor":[30048],"computeX":[31792],"computeXGivenL":[31714],"computeY":[31766],"computeYGivenL":[31740],"console":[17416],"console2":[25512],"diffLower":[32419],"diffRaise":[32666],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"findRootLiquidity":[32083],"findRootLower":[32129],"findRootRaise":[32175],"muli":[27777],"muliWad":[27795],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"39:6837:47","nodes":[{"id":40981,"nodeType":"PragmaDirective","src":"39:24:47","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":40982,"nodeType":"ImportDirective","src":"65:28:47","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":41745,"sourceUnit":8196,"symbolAliases":[],"unitAlias":""},{"id":40983,"nodeType":"ImportDirective","src":"94:32:47","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/console2.sol","file":"forge-std/console2.sol","nameLocation":"-1:-1:-1","scope":41745,"sourceUnit":25513,"symbolAliases":[],"unitAlias":""},{"id":40984,"nodeType":"ImportDirective","src":"127:48:47","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol","file":"solmate/test/utils/mocks/MockERC20.sol","nameLocation":"-1:-1:-1","scope":41745,"sourceUnit":25561,"symbolAliases":[],"unitAlias":""},{"id":40985,"nodeType":"ImportDirective","src":"177:38:47","nodes":[],"absolutePath":"src/strategies/G3M/G3M.sol","file":"../../strategies/G3M/G3M.sol","nameLocation":"-1:-1:-1","scope":41745,"sourceUnit":37912,"symbolAliases":[],"unitAlias":""},{"id":40986,"nodeType":"ImportDirective","src":"216:41:47","nodes":[],"absolutePath":"src/solvers/G3M/G3MSolver.sol","file":"../../solvers/G3M/G3MSolver.sol","nameLocation":"-1:-1:-1","scope":41745,"sourceUnit":33821,"symbolAliases":[],"unitAlias":""},{"id":40987,"nodeType":"ImportDirective","src":"258:24:47","nodes":[],"absolutePath":"src/DFMM.sol","file":"../../DFMM.sol","nameLocation":"-1:-1:-1","scope":41745,"sourceUnit":29063,"symbolAliases":[],"unitAlias":""},{"id":40988,"nodeType":"ImportDirective","src":"283:28:47","nodes":[],"absolutePath":"src/test/helpers/Lex.sol","file":"../helpers/Lex.sol","nameLocation":"-1:-1:-1","scope":41745,"sourceUnit":44393,"symbolAliases":[],"unitAlias":""},{"id":41744,"nodeType":"ContractDefinition","src":"313:6562:47","nodes":[{"id":40994,"nodeType":"UsingForDirective","src":"344:32:47","nodes":[],"global":false,"libraryName":{"id":40991,"name":"stdStorage","nameLocations":["350:10:47"],"nodeType":"IdentifierPath","referencedDeclaration":7522,"src":"350:10:47"},"typeName":{"id":40993,"nodeType":"UserDefinedTypeName","pathNode":{"id":40992,"name":"StdStorage","nameLocations":["365:10:47"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"365:10:47"},"referencedDeclaration":6088,"src":"365:10:47","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}}},{"id":40997,"nodeType":"UsingForDirective","src":"381:36:47","nodes":[],"global":false,"libraryName":{"id":40995,"name":"FixedPointMathLib","nameLocations":["387:17:47"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"387:17:47"},"typeName":{"id":40996,"name":"uint256","nodeType":"ElementaryTypeName","src":"409:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":41000,"nodeType":"VariableDeclaration","src":"423:9:47","nodes":[],"constant":false,"mutability":"mutable","name":"dfmm","nameLocation":"428:4:47","scope":41744,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"},"typeName":{"id":40999,"nodeType":"UserDefinedTypeName","pathNode":{"id":40998,"name":"DFMM","nameLocations":["423:4:47"],"nodeType":"IdentifierPath","referencedDeclaration":29062,"src":"423:4:47"},"referencedDeclaration":29062,"src":"423:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"visibility":"internal"},{"id":41003,"nodeType":"VariableDeclaration","src":"438:7:47","nodes":[],"constant":false,"mutability":"mutable","name":"g3m","nameLocation":"442:3:47","scope":41744,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"},"typeName":{"id":41002,"nodeType":"UserDefinedTypeName","pathNode":{"id":41001,"name":"G3M","nameLocations":["438:3:47"],"nodeType":"IdentifierPath","referencedDeclaration":37911,"src":"438:3:47"},"referencedDeclaration":37911,"src":"438:3:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"visibility":"internal"},{"id":41006,"nodeType":"VariableDeclaration","src":"451:16:47","nodes":[],"constant":false,"mutability":"mutable","name":"solver","nameLocation":"461:6:47","scope":41744,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"},"typeName":{"id":41005,"nodeType":"UserDefinedTypeName","pathNode":{"id":41004,"name":"G3MSolver","nameLocations":["451:9:47"],"nodeType":"IdentifierPath","referencedDeclaration":33820,"src":"451:9:47"},"referencedDeclaration":33820,"src":"451:9:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"visibility":"internal"},{"id":41008,"nodeType":"VariableDeclaration","src":"473:14:47","nodes":[],"constant":false,"mutability":"mutable","name":"tokenX","nameLocation":"481:6:47","scope":41744,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41007,"name":"address","nodeType":"ElementaryTypeName","src":"473:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":41010,"nodeType":"VariableDeclaration","src":"493:14:47","nodes":[],"constant":false,"mutability":"mutable","name":"tokenY","nameLocation":"501:6:47","scope":41744,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41009,"name":"address","nodeType":"ElementaryTypeName","src":"493:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":41013,"nodeType":"VariableDeclaration","src":"513:7:47","nodes":[],"constant":false,"mutability":"mutable","name":"lex","nameLocation":"517:3:47","scope":41744,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"},"typeName":{"id":41012,"nodeType":"UserDefinedTypeName","pathNode":{"id":41011,"name":"Lex","nameLocations":["513:3:47"],"nodeType":"IdentifierPath","referencedDeclaration":44392,"src":"513:3:47"},"referencedDeclaration":44392,"src":"513:3:47","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}},"visibility":"internal"},{"id":41016,"nodeType":"VariableDeclaration","src":"527:51:47","nodes":[],"constant":true,"functionSelector":"620a2607","mutability":"constant","name":"TEST_SWAP_FEE","nameLocation":"551:13:47","scope":41744,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41014,"name":"uint256","nodeType":"ElementaryTypeName","src":"527:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"302e303033","id":41015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"567:11:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_3000000000000000_by_1","typeString":"int_const 3000000000000000"},"value":"0.003"},"visibility":"public"},{"id":41141,"nodeType":"FunctionDefinition","src":"585:582:47","nodes":[],"body":{"id":41140,"nodeType":"Block","src":"609:558:47","nodes":[],"statements":[{"expression":{"id":41030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41019,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41008,"src":"619:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"746f6b656e58","id":41025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"650:8:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_6076c392819008730df70238b1f1890b3147aecb6d122c8c4b4d5aa1b5f97482","typeString":"literal_string \"tokenX\""},"value":"tokenX"},{"hexValue":"58","id":41026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"660:3:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_550c64a15031c3064454c19adc6243a6122c138a242eaa098da50bb114fc8d56","typeString":"literal_string \"X\""},"value":"X"},{"hexValue":"3138","id":41027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"665:2:47","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6076c392819008730df70238b1f1890b3147aecb6d122c8c4b4d5aa1b5f97482","typeString":"literal_string \"tokenX\""},{"typeIdentifier":"t_stringliteral_550c64a15031c3064454c19adc6243a6122c138a242eaa098da50bb114fc8d56","typeString":"literal_string \"X\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":41024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"636:13:47","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":41023,"nodeType":"UserDefinedTypeName","pathNode":{"id":41022,"name":"MockERC20","nameLocations":["640:9:47"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"640:9:47"},"referencedDeclaration":25560,"src":"640:9:47","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":41028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"636:32:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":41021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"628:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41020,"name":"address","nodeType":"ElementaryTypeName","src":"628:7:47","typeDescriptions":{}}},"id":41029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"628:41:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"619:50:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":41031,"nodeType":"ExpressionStatement","src":"619:50:47"},{"expression":{"id":41043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41032,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41010,"src":"679:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"746f6b656e59","id":41038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"710:8:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_215291f8765d54708d051c35e3f18ebdc532df00c5f85fe5e7d65833297521e9","typeString":"literal_string \"tokenY\""},"value":"tokenY"},{"hexValue":"59","id":41039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"720:3:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a2c5f9025f1f0333863704310875ae81a574171bed5b047cfc0f50e347f630e","typeString":"literal_string \"Y\""},"value":"Y"},{"hexValue":"3138","id":41040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"725:2:47","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_215291f8765d54708d051c35e3f18ebdc532df00c5f85fe5e7d65833297521e9","typeString":"literal_string \"tokenY\""},{"typeIdentifier":"t_stringliteral_9a2c5f9025f1f0333863704310875ae81a574171bed5b047cfc0f50e347f630e","typeString":"literal_string \"Y\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":41037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"696:13:47","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":41036,"nodeType":"UserDefinedTypeName","pathNode":{"id":41035,"name":"MockERC20","nameLocations":["700:9:47"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"700:9:47"},"referencedDeclaration":25560,"src":"700:9:47","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":41041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"696:32:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":41034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"688:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41033,"name":"address","nodeType":"ElementaryTypeName","src":"688:7:47","typeDescriptions":{}}},"id":41042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"688:41:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"679:50:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":41044,"nodeType":"ExpressionStatement","src":"679:50:47"},{"expression":{"arguments":[{"arguments":[{"id":41051,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"770:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTest_$41744","typeString":"contract G3MTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTest_$41744","typeString":"contract G3MTest"}],"id":41050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"762:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41049,"name":"address","nodeType":"ElementaryTypeName","src":"762:7:47","typeDescriptions":{}}},"id":41052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"762:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3130305f3030305f303030653138","id":41053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"777:14:47","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000_by_1","typeString":"int_const 100000000000000000000000000"},"value":"100_000_000e18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000000000_by_1","typeString":"int_const 100000000000000000000000000"}],"expression":{"arguments":[{"id":41046,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41008,"src":"749:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41045,"name":"MockERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25560,"src":"739:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MockERC20_$25560_$","typeString":"type(contract MockERC20)"}},"id":41047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"739:17:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":41048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"757:4:47","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":25546,"src":"739:22:47","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":41054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"739:53:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41055,"nodeType":"ExpressionStatement","src":"739:53:47"},{"expression":{"arguments":[{"arguments":[{"id":41062,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"833:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTest_$41744","typeString":"contract G3MTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTest_$41744","typeString":"contract G3MTest"}],"id":41061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"825:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41060,"name":"address","nodeType":"ElementaryTypeName","src":"825:7:47","typeDescriptions":{}}},"id":41063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"825:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3130305f3030305f303030653138","id":41064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"840:14:47","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000_by_1","typeString":"int_const 100000000000000000000000000"},"value":"100_000_000e18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000000000_by_1","typeString":"int_const 100000000000000000000000000"}],"expression":{"arguments":[{"id":41057,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41010,"src":"812:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41056,"name":"MockERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25560,"src":"802:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MockERC20_$25560_$","typeString":"type(contract MockERC20)"}},"id":41058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"802:17:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":41059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"820:4:47","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":25546,"src":"802:22:47","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":41065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"802:53:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41066,"nodeType":"ExpressionStatement","src":"802:53:47"},{"expression":{"id":41075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41067,"name":"lex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41013,"src":"866:3:47","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":41071,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41008,"src":"880:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41072,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41010,"src":"888:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41073,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"896:3:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":41070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"872:7:47","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_contract$_Lex_$44392_$","typeString":"function (address,address,uint256) returns (contract Lex)"},"typeName":{"id":41069,"nodeType":"UserDefinedTypeName","pathNode":{"id":41068,"name":"Lex","nameLocations":["876:3:47"],"nodeType":"IdentifierPath","referencedDeclaration":44392,"src":"876:3:47"},"referencedDeclaration":44392,"src":"876:3:47","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}}},"id":41074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"872:28:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}},"src":"866:34:47","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}},"id":41076,"nodeType":"ExpressionStatement","src":"866:34:47"},{"expression":{"id":41086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41077,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41000,"src":"910:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30","id":41083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"934:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":41082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"926:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41081,"name":"address","nodeType":"ElementaryTypeName","src":"926:7:47","typeDescriptions":{}}},"id":41084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"926:10:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"917:8:47","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_DFMM_$29062_$","typeString":"function (address) returns (contract DFMM)"},"typeName":{"id":41079,"nodeType":"UserDefinedTypeName","pathNode":{"id":41078,"name":"DFMM","nameLocations":["921:4:47"],"nodeType":"IdentifierPath","referencedDeclaration":29062,"src":"921:4:47"},"referencedDeclaration":29062,"src":"921:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}},"id":41085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"917:20:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"src":"910:27:47","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":41087,"nodeType":"ExpressionStatement","src":"910:27:47"},{"expression":{"id":41097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41088,"name":"g3m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41003,"src":"947:3:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":41094,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41000,"src":"969:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":41093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"961:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41092,"name":"address","nodeType":"ElementaryTypeName","src":"961:7:47","typeDescriptions":{}}},"id":41095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"961:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"953:7:47","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_G3M_$37911_$","typeString":"function (address) returns (contract G3M)"},"typeName":{"id":41090,"nodeType":"UserDefinedTypeName","pathNode":{"id":41089,"name":"G3M","nameLocations":["957:3:47"],"nodeType":"IdentifierPath","referencedDeclaration":37911,"src":"957:3:47"},"referencedDeclaration":37911,"src":"957:3:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}}},"id":41096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"953:22:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"src":"947:28:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"id":41098,"nodeType":"ExpressionStatement","src":"947:28:47"},{"expression":{"id":41108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41099,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41006,"src":"985:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":41105,"name":"g3m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41003,"src":"1016:3:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}],"id":41104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1008:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41103,"name":"address","nodeType":"ElementaryTypeName","src":"1008:7:47","typeDescriptions":{}}},"id":41106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1008:12:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"994:13:47","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_G3MSolver_$33820_$","typeString":"function (address) returns (contract G3MSolver)"},"typeName":{"id":41101,"nodeType":"UserDefinedTypeName","pathNode":{"id":41100,"name":"G3MSolver","nameLocations":["998:9:47"],"nodeType":"IdentifierPath","referencedDeclaration":33820,"src":"998:9:47"},"referencedDeclaration":33820,"src":"998:9:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}}},"id":41107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"994:27:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"src":"985:36:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":41109,"nodeType":"ExpressionStatement","src":"985:36:47"},{"expression":{"arguments":[{"arguments":[{"id":41116,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41000,"src":"1066:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":41115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1058:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41114,"name":"address","nodeType":"ElementaryTypeName","src":"1058:7:47","typeDescriptions":{}}},"id":41117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1058:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":41120,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1078:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":41119,"name":"uint256","nodeType":"ElementaryTypeName","src":"1078:7:47","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":41118,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1073:4:47","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":41121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1073:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":41122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1087:3:47","memberName":"max","nodeType":"MemberAccess","src":"1073:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":41111,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41008,"src":"1042:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41110,"name":"MockERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25560,"src":"1032:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MockERC20_$25560_$","typeString":"type(contract MockERC20)"}},"id":41112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1032:17:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":41113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1050:7:47","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":25665,"src":"1032:25:47","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":41123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1032:59:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41124,"nodeType":"ExpressionStatement","src":"1032:59:47"},{"expression":{"arguments":[{"arguments":[{"id":41131,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41000,"src":"1135:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":41130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1127:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41129,"name":"address","nodeType":"ElementaryTypeName","src":"1127:7:47","typeDescriptions":{}}},"id":41132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1127:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":41135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1147:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":41134,"name":"uint256","nodeType":"ElementaryTypeName","src":"1147:7:47","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":41133,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1142:4:47","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":41136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1142:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":41137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1156:3:47","memberName":"max","nodeType":"MemberAccess","src":"1142:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":41126,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41010,"src":"1111:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41125,"name":"MockERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25560,"src":"1101:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MockERC20_$25560_$","typeString":"type(contract MockERC20)"}},"id":41127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1101:17:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":41128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1119:7:47","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":25665,"src":"1101:25:47","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":41138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1101:59:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41139,"nodeType":"ExpressionStatement","src":"1101:59:47"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"594:5:47","parameters":{"id":41017,"nodeType":"ParameterList","parameters":[],"src":"599:2:47"},"returnParameters":{"id":41018,"nodeType":"ParameterList","parameters":[],"src":"609:0:47"},"scope":41744,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":41192,"nodeType":"FunctionDefinition","src":"1173:553:47","nodes":[],"body":{"id":41191,"nodeType":"Block","src":"1208:518:47","nodes":[],"statements":[{"assignments":[41145],"declarations":[{"constant":false,"id":41145,"mutability":"mutable","name":"reserveX","nameLocation":"1226:8:47","nodeType":"VariableDeclaration","scope":41191,"src":"1218:16:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41144,"name":"uint256","nodeType":"ElementaryTypeName","src":"1218:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41147,"initialValue":{"hexValue":"31","id":41146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1237:7:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"1218:26:47"},{"assignments":[41149],"declarations":[{"constant":false,"id":41149,"mutability":"mutable","name":"price","nameLocation":"1262:5:47","nodeType":"VariableDeclaration","scope":41191,"src":"1254:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41148,"name":"uint256","nodeType":"ElementaryTypeName","src":"1254:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41155,"initialValue":{"commonType":{"typeIdentifier":"t_rational_2000000000000000000000_by_1","typeString":"int_const 2000000000000000000000"},"id":41154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32303030","id":41150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1270:4:47","typeDescriptions":{"typeIdentifier":"t_rational_2000_by_1","typeString":"int_const 2000"},"value":"2000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":41153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":41151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1277:2:47","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":41152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1283:2:47","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"1277:8:47","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"1270:15:47","typeDescriptions":{"typeIdentifier":"t_rational_2000000000000000000000_by_1","typeString":"int_const 2000000000000000000000"}},"nodeType":"VariableDeclarationStatement","src":"1254:31:47"},{"assignments":[41160],"declarations":[{"constant":false,"id":41160,"mutability":"mutable","name":"params","nameLocation":"1317:6:47","nodeType":"VariableDeclaration","scope":41191,"src":"1296:27:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":41159,"nodeType":"UserDefinedTypeName","pathNode":{"id":41158,"name":"G3M.G3MParams","nameLocations":["1296:3:47","1300:9:47"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"1296:13:47"},"referencedDeclaration":37272,"src":"1296:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"id":41171,"initialValue":{"arguments":[{"hexValue":"302e35","id":41163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1358:9:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"value":"0.5"},{"hexValue":"302e35","id":41164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1385:9:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"value":"0.5"},{"hexValue":"30","id":41165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1417:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"id":41168,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1452:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MTest_$41744","typeString":"contract G3MTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MTest_$41744","typeString":"contract G3MTest"}],"id":41167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1444:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41166,"name":"address","nodeType":"ElementaryTypeName","src":"1444:7:47","typeDescriptions":{}}},"id":41169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1444:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":41161,"name":"G3M","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37911,"src":"1326:3:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3M_$37911_$","typeString":"type(contract G3M)"}},"id":41162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1330:9:47","memberName":"G3MParams","nodeType":"MemberAccess","referencedDeclaration":37272,"src":"1326:13:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}},"id":41170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1354:2:47","1381:2:47","1408:7:47","1432:10:47"],"names":["wX","wY","swapFee","controller"],"nodeType":"FunctionCall","src":"1326:142:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"nodeType":"VariableDeclarationStatement","src":"1296:172:47"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":41179,"name":"g3m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41003,"src":"1555:3:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}],"id":41178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1547:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41177,"name":"address","nodeType":"ElementaryTypeName","src":"1547:7:47","typeDescriptions":{}}},"id":41180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1547:12:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41181,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41008,"src":"1585:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41182,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41010,"src":"1617:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":41184,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41145,"src":"1670:8:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41185,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41149,"src":"1680:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41186,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41160,"src":"1687:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":41183,"name":"computeInitialPoolData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31906,"src":"1647:22:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256,struct G3M.G3MParams memory) pure returns (bytes memory)"}},"id":41187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1647:47:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":41175,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"1502:5:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":41176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1508:10:47","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":29543,"src":"1502:16:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$29543_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":41188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1537:8:47","1577:6:47","1609:6:47","1641:4:47"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"1502:207:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":41172,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41000,"src":"1479:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":41174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1484:4:47","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":28091,"src":"1479:9:47","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$29543_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":41189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1479:240:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"id":41190,"nodeType":"ExpressionStatement","src":"1479:240:47"}]},"functionSelector":"5f3dc89b","implemented":true,"kind":"function","modifiers":[],"name":"test_G3M_init_18","nameLocation":"1182:16:47","parameters":{"id":41142,"nodeType":"ParameterList","parameters":[],"src":"1198:2:47"},"returnParameters":{"id":41143,"nodeType":"ParameterList","parameters":[],"src":"1208:0:47"},"scope":41744,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":41258,"nodeType":"ModifierDefinition","src":"1779:637:47","nodes":[],"body":{"id":41257,"nodeType":"Block","src":"1796:620:47","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"30","id":41198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1814:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":41195,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"1806:2:47","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":41197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1809:4:47","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":9034,"src":"1806:7:47","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":41199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1806:10:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41200,"nodeType":"ExpressionStatement","src":"1806:10:47"},{"assignments":[41205],"declarations":[{"constant":false,"id":41205,"mutability":"mutable","name":"params","nameLocation":"1847:6:47","nodeType":"VariableDeclaration","scope":41257,"src":"1826:27:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":41204,"nodeType":"UserDefinedTypeName","pathNode":{"id":41203,"name":"G3M.G3MParams","nameLocations":["1826:3:47","1830:9:47"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"1826:13:47"},"referencedDeclaration":37272,"src":"1826:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"id":41216,"initialValue":{"arguments":[{"hexValue":"302e35","id":41208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1888:9:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"value":"0.5"},{"hexValue":"302e35","id":41209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1915:9:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"value":"0.5"},{"id":41210,"name":"TEST_SWAP_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41016,"src":"1947:13:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":41213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1994:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":41212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1986:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41211,"name":"address","nodeType":"ElementaryTypeName","src":"1986:7:47","typeDescriptions":{}}},"id":41214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1986:10:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":41206,"name":"G3M","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37911,"src":"1856:3:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3M_$37911_$","typeString":"type(contract G3M)"}},"id":41207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1860:9:47","memberName":"G3MParams","nodeType":"MemberAccess","referencedDeclaration":37272,"src":"1856:13:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}},"id":41215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1884:2:47","1911:2:47","1938:7:47","1974:10:47"],"names":["wX","wY","swapFee","controller"],"nodeType":"FunctionCall","src":"1856:151:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"nodeType":"VariableDeclarationStatement","src":"1826:181:47"},{"assignments":[41218],"declarations":[{"constant":false,"id":41218,"mutability":"mutable","name":"init_p","nameLocation":"2025:6:47","nodeType":"VariableDeclaration","scope":41257,"src":"2017:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41217,"name":"uint256","nodeType":"ElementaryTypeName","src":"2017:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41220,"initialValue":{"hexValue":"31","id":41219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2034:7:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"2017:24:47"},{"assignments":[41222],"declarations":[{"constant":false,"id":41222,"mutability":"mutable","name":"init_x","nameLocation":"2059:6:47","nodeType":"VariableDeclaration","scope":41257,"src":"2051:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41221,"name":"uint256","nodeType":"ElementaryTypeName","src":"2051:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41224,"initialValue":{"hexValue":"31","id":41223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2068:7:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"2051:24:47"},{"assignments":[41226],"declarations":[{"constant":false,"id":41226,"mutability":"mutable","name":"initData","nameLocation":"2098:8:47","nodeType":"VariableDeclaration","scope":41257,"src":"2085:21:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41225,"name":"bytes","nodeType":"ElementaryTypeName","src":"2085:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":41233,"initialValue":{"arguments":[{"id":41229,"name":"init_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41222,"src":"2147:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41230,"name":"init_p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41218,"src":"2155:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41231,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41205,"src":"2163:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"expression":{"id":41227,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41006,"src":"2121:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":41228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2128:18:47","memberName":"getInitialPoolData","nodeType":"MemberAccess","referencedDeclaration":33037,"src":"2121:25:47","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256,struct G3M.G3MParams memory) pure external returns (bytes memory)"}},"id":41232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2121:49:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2085:85:47"},{"assignments":[41238],"declarations":[{"constant":false,"id":41238,"mutability":"mutable","name":"initParams","nameLocation":"2205:10:47","nodeType":"VariableDeclaration","scope":41257,"src":"2181:34:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":41237,"nodeType":"UserDefinedTypeName","pathNode":{"id":41236,"name":"IDFMM.InitParams","nameLocations":["2181:5:47","2187:10:47"],"nodeType":"IdentifierPath","referencedDeclaration":29543,"src":"2181:16:47"},"referencedDeclaration":29543,"src":"2181:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"id":41249,"initialValue":{"arguments":[{"arguments":[{"id":41243,"name":"g3m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41003,"src":"2267:3:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}],"id":41242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2259:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41241,"name":"address","nodeType":"ElementaryTypeName","src":"2259:7:47","typeDescriptions":{}}},"id":41244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2259:12:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41245,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41008,"src":"2293:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41246,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41010,"src":"2321:6:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41247,"name":"initData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41226,"src":"2347:8:47","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":41239,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"2218:5:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":41240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2224:10:47","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":29543,"src":"2218:16:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$29543_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":41248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2249:8:47","2285:6:47","2313:6:47","2341:4:47"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"2218:148:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}},"nodeType":"VariableDeclarationStatement","src":"2181:185:47"},{"expression":{"arguments":[{"id":41253,"name":"initParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41238,"src":"2387:10:47","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":41250,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41000,"src":"2377:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":41252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2382:4:47","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":28091,"src":"2377:9:47","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$29543_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":41254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2377:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"id":41255,"nodeType":"ExpressionStatement","src":"2377:21:47"},{"id":41256,"nodeType":"PlaceholderStatement","src":"2408:1:47"}]},"documentation":{"id":41193,"nodeType":"StructuredDocumentation","src":"1732:42:47","text":"@dev Initializes a basic pool in dfmm."},"name":"basic","nameLocation":"1788:5:47","parameters":{"id":41194,"nodeType":"ParameterList","parameters":[],"src":"1793:2:47"},"virtual":false,"visibility":"internal"},{"id":41291,"nodeType":"FunctionDefinition","src":"2422:262:47","nodes":[],"body":{"id":41290,"nodeType":"Block","src":"2460:224:47","nodes":[],"statements":[{"assignments":[41264],"declarations":[{"constant":false,"id":41264,"mutability":"mutable","name":"amountIn","nameLocation":"2478:8:47","nodeType":"VariableDeclaration","scope":41290,"src":"2470:16:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41263,"name":"uint256","nodeType":"ElementaryTypeName","src":"2470:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41266,"initialValue":{"hexValue":"3130","id":41265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2489:8:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},"value":"10"},"nodeType":"VariableDeclarationStatement","src":"2470:27:47"},{"assignments":[41268],"declarations":[{"constant":false,"id":41268,"mutability":"mutable","name":"poolId","nameLocation":"2515:6:47","nodeType":"VariableDeclaration","scope":41290,"src":"2507:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41267,"name":"uint256","nodeType":"ElementaryTypeName","src":"2507:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41274,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41269,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41000,"src":"2524:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":41270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2529:5:47","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"2524:10:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":41271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2524:12:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":41272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2539:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2524:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2507:33:47"},{"assignments":[41276,41278,41280,41282],"declarations":[{"constant":false,"id":41276,"mutability":"mutable","name":"valid","nameLocation":"2556:5:47","nodeType":"VariableDeclaration","scope":41290,"src":"2551:10:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41275,"name":"bool","nodeType":"ElementaryTypeName","src":"2551:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41278,"mutability":"mutable","name":"amountOut","nameLocation":"2571:9:47","nodeType":"VariableDeclaration","scope":41290,"src":"2563:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41277,"name":"uint256","nodeType":"ElementaryTypeName","src":"2563:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41280,"mutability":"mutable","name":"price","nameLocation":"2590:5:47","nodeType":"VariableDeclaration","scope":41290,"src":"2582:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41279,"name":"uint256","nodeType":"ElementaryTypeName","src":"2582:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41282,"mutability":"mutable","name":"swapData","nameLocation":"2610:8:47","nodeType":"VariableDeclaration","scope":41290,"src":"2597:21:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41281,"name":"bytes","nodeType":"ElementaryTypeName","src":"2597:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":41289,"initialValue":{"arguments":[{"id":41285,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41268,"src":"2654:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":41286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2662:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":41287,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41264,"src":"2668:8:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41283,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41006,"src":"2634:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":41284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2641:12:47","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":33580,"src":"2634:19:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,uint256,bytes memory)"}},"id":41288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2634:43:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2550:127:47"}]},"functionSelector":"dd017e52","implemented":true,"kind":"function","modifiers":[{"id":41261,"kind":"modifierInvocation","modifierName":{"id":41260,"name":"basic","nameLocations":["2454:5:47"],"nodeType":"IdentifierPath","referencedDeclaration":41258,"src":"2454:5:47"},"nodeType":"ModifierInvocation","src":"2454:5:47"}],"name":"test_g3m_swap","nameLocation":"2431:13:47","parameters":{"id":41259,"nodeType":"ParameterList","parameters":[],"src":"2444:2:47"},"returnParameters":{"id":41262,"nodeType":"ParameterList","parameters":[],"src":"2460:0:47"},"scope":41744,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":41320,"nodeType":"FunctionDefinition","src":"2690:229:47","nodes":[],"body":{"id":41319,"nodeType":"Block","src":"2730:189:47","nodes":[],"statements":[{"assignments":[41297],"declarations":[{"constant":false,"id":41297,"mutability":"mutable","name":"poolId","nameLocation":"2748:6:47","nodeType":"VariableDeclaration","scope":41319,"src":"2740:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41296,"name":"uint256","nodeType":"ElementaryTypeName","src":"2740:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41303,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41298,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41000,"src":"2757:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":41299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2762:5:47","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"2757:10:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":41300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2757:12:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":41301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2772:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2757:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2740:33:47"},{"assignments":[41305],"declarations":[{"constant":false,"id":41305,"mutability":"mutable","name":"diffLowered","nameLocation":"2790:11:47","nodeType":"VariableDeclaration","scope":41319,"src":"2783:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":41304,"name":"int256","nodeType":"ElementaryTypeName","src":"2783:6:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":41312,"initialValue":{"arguments":[{"id":41308,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41297,"src":"2842:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"302e38","id":41309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2850:9:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_800000000000000000_by_1","typeString":"int_const 800000000000000000"},"value":"0.8"},{"hexValue":"302e313134363734","id":41310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2861:14:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_114674000000000000_by_1","typeString":"int_const 114674000000000000"},"value":"0.114674"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_800000000000000000_by_1","typeString":"int_const 800000000000000000"},{"typeIdentifier":"t_rational_114674000000000000_by_1","typeString":"int_const 114674000000000000"}],"expression":{"id":41306,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41006,"src":"2816:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":41307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2823:18:47","memberName":"calculateDiffLower","nodeType":"MemberAccess","referencedDeclaration":33700,"src":"2816:25:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256) view external returns (int256)"}},"id":41311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2816:60:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"2783:93:47"},{"expression":{"arguments":[{"id":41316,"name":"diffLowered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41305,"src":"2900:11:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":41313,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"2887:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":41315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2896:3:47","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18012,"src":"2887:12:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_int256_$returns$__$","typeString":"function (int256) view"}},"id":41317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2887:25:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41318,"nodeType":"ExpressionStatement","src":"2887:25:47"}]},"functionSelector":"99a28488","implemented":true,"kind":"function","modifiers":[{"id":41294,"kind":"modifierInvocation","modifierName":{"id":41293,"name":"basic","nameLocations":["2724:5:47"],"nodeType":"IdentifierPath","referencedDeclaration":41258,"src":"2724:5:47"},"nodeType":"ModifierInvocation","src":"2724:5:47"}],"name":"test_diff_lower","nameLocation":"2699:15:47","parameters":{"id":41292,"nodeType":"ParameterList","parameters":[],"src":"2714:2:47"},"returnParameters":{"id":41295,"nodeType":"ParameterList","parameters":[],"src":"2730:0:47"},"scope":41744,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":41349,"nodeType":"FunctionDefinition","src":"2925:228:47","nodes":[],"body":{"id":41348,"nodeType":"Block","src":"2965:188:47","nodes":[],"statements":[{"assignments":[41326],"declarations":[{"constant":false,"id":41326,"mutability":"mutable","name":"poolId","nameLocation":"2983:6:47","nodeType":"VariableDeclaration","scope":41348,"src":"2975:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41325,"name":"uint256","nodeType":"ElementaryTypeName","src":"2975:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41332,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41327,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41000,"src":"2992:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":41328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2997:5:47","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"2992:10:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":41329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2992:12:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":41330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3007:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2992:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2975:33:47"},{"assignments":[41334],"declarations":[{"constant":false,"id":41334,"mutability":"mutable","name":"diffRaised","nameLocation":"3025:10:47","nodeType":"VariableDeclaration","scope":41348,"src":"3018:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":41333,"name":"int256","nodeType":"ElementaryTypeName","src":"3018:6:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":41341,"initialValue":{"arguments":[{"id":41337,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41326,"src":"3076:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"312e32","id":41338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3084:9:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1200000000000000000_by_1","typeString":"int_const 1200000000000000000"},"value":"1.2"},{"hexValue":"302e30393231353239","id":41339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3095:15:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_92152900000000000_by_1","typeString":"int_const 92152900000000000"},"value":"0.0921529"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1200000000000000000_by_1","typeString":"int_const 1200000000000000000"},{"typeIdentifier":"t_rational_92152900000000000_by_1","typeString":"int_const 92152900000000000"}],"expression":{"id":41335,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41006,"src":"3050:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":41336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3057:18:47","memberName":"calculateDiffRaise","nodeType":"MemberAccess","referencedDeclaration":33740,"src":"3050:25:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256) view external returns (int256)"}},"id":41340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3050:61:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"3018:93:47"},{"expression":{"arguments":[{"id":41345,"name":"diffRaised","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41334,"src":"3135:10:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":41342,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"3122:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":41344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3131:3:47","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18012,"src":"3122:12:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_int256_$returns$__$","typeString":"function (int256) view"}},"id":41346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3122:24:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41347,"nodeType":"ExpressionStatement","src":"3122:24:47"}]},"functionSelector":"7a277e2c","implemented":true,"kind":"function","modifiers":[{"id":41323,"kind":"modifierInvocation","modifierName":{"id":41322,"name":"basic","nameLocations":["2959:5:47"],"nodeType":"IdentifierPath","referencedDeclaration":41258,"src":"2959:5:47"},"nodeType":"ModifierInvocation","src":"2959:5:47"}],"name":"test_diff_raise","nameLocation":"2934:15:47","parameters":{"id":41321,"nodeType":"ParameterList","parameters":[],"src":"2949:2:47"},"returnParameters":{"id":41324,"nodeType":"ParameterList","parameters":[],"src":"2965:0:47"},"scope":41744,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":41432,"nodeType":"FunctionDefinition","src":"3159:684:47","nodes":[],"body":{"id":41431,"nodeType":"Block","src":"3202:641:47","nodes":[],"statements":[{"assignments":[41355],"declarations":[{"constant":false,"id":41355,"mutability":"mutable","name":"poolId","nameLocation":"3220:6:47","nodeType":"VariableDeclaration","scope":41431,"src":"3212:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41354,"name":"uint256","nodeType":"ElementaryTypeName","src":"3212:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41361,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41356,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41000,"src":"3229:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":41357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3234:5:47","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"3229:10:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":41358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3229:12:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":41359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3244:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3229:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3212:33:47"},{"assignments":[41363],"declarations":[{"constant":false,"id":41363,"mutability":"mutable","name":"diff_min","nameLocation":"3262:8:47","nodeType":"VariableDeclaration","scope":41431,"src":"3255:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":41362,"name":"int256","nodeType":"ElementaryTypeName","src":"3255:6:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":41370,"initialValue":{"arguments":[{"id":41366,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41355,"src":"3299:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"312e32","id":41367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3307:9:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1200000000000000000_by_1","typeString":"int_const 1200000000000000000"},"value":"1.2"},{"hexValue":"31303030","id":41368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3318:4:47","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1200000000000000000_by_1","typeString":"int_const 1200000000000000000"},{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"expression":{"id":41364,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41006,"src":"3273:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":41365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3280:18:47","memberName":"calculateDiffRaise","nodeType":"MemberAccess","referencedDeclaration":33740,"src":"3273:25:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256) view external returns (int256)"}},"id":41369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3273:50:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"3255:68:47"},{"assignments":[41372],"declarations":[{"constant":false,"id":41372,"mutability":"mutable","name":"diff_max","nameLocation":"3340:8:47","nodeType":"VariableDeclaration","scope":41431,"src":"3333:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":41371,"name":"int256","nodeType":"ElementaryTypeName","src":"3333:6:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":41379,"initialValue":{"arguments":[{"id":41375,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41355,"src":"3389:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"312e32","id":41376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3397:9:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1200000000000000000_by_1","typeString":"int_const 1200000000000000000"},"value":"1.2"},{"hexValue":"302e30393534343531","id":41377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3408:15:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_95445100000000000_by_1","typeString":"int_const 95445100000000000"},"value":"0.0954451"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1200000000000000000_by_1","typeString":"int_const 1200000000000000000"},{"typeIdentifier":"t_rational_95445100000000000_by_1","typeString":"int_const 95445100000000000"}],"expression":{"id":41373,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41006,"src":"3363:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":41374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3370:18:47","memberName":"calculateDiffRaise","nodeType":"MemberAccess","referencedDeclaration":33740,"src":"3363:25:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256) view external returns (int256)"}},"id":41378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3363:61:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"3333:91:47"},{"expression":{"arguments":[{"hexValue":"6d696e","id":41383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3447:5:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_d565eabc1e68b7b500ce4f775df0503c4b17849f65ea279cd25387628f1eebab","typeString":"literal_string \"min\""},"value":"min"},{"id":41384,"name":"diff_min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41363,"src":"3454:8:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d565eabc1e68b7b500ce4f775df0503c4b17849f65ea279cd25387628f1eebab","typeString":"literal_string \"min\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":41380,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"3434:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":41382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3443:3:47","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18156,"src":"3434:12:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_int256_$returns$__$","typeString":"function (string memory,int256) view"}},"id":41385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3434:29:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41386,"nodeType":"ExpressionStatement","src":"3434:29:47"},{"expression":{"arguments":[{"hexValue":"6d6178","id":41390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3486:5:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_b3e4a8b42cc6ca791003100de208bf7bf23de2da2db3cb17f74c4327c6fe24d9","typeString":"literal_string \"max\""},"value":"max"},{"id":41391,"name":"diff_max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41372,"src":"3493:8:47","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b3e4a8b42cc6ca791003100de208bf7bf23de2da2db3cb17f74c4327c6fe24d9","typeString":"literal_string \"max\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":41387,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"3473:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":41389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3482:3:47","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18156,"src":"3473:12:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_int256_$returns$__$","typeString":"function (string memory,int256) view"}},"id":41392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3473:29:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41393,"nodeType":"ExpressionStatement","src":"3473:29:47"},{"assignments":[41395],"declarations":[{"constant":false,"id":41395,"mutability":"mutable","name":"optimalRaise","nameLocation":"3520:12:47","nodeType":"VariableDeclaration","scope":41431,"src":"3512:20:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41394,"name":"uint256","nodeType":"ElementaryTypeName","src":"3512:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41402,"initialValue":{"arguments":[{"id":41398,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41355,"src":"3583:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"312e32","id":41399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3591:9:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1200000000000000000_by_1","typeString":"int_const 1200000000000000000"},"value":"1.2"},{"hexValue":"302e30393534343531","id":41400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3602:15:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_95445100000000000_by_1","typeString":"int_const 95445100000000000"},"value":"0.0954451"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1200000000000000000_by_1","typeString":"int_const 1200000000000000000"},{"typeIdentifier":"t_rational_95445100000000000_by_1","typeString":"int_const 95445100000000000"}],"expression":{"id":41396,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41006,"src":"3535:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":41397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3542:27:47","memberName":"computeOptimalArbRaisePrice","nodeType":"MemberAccess","referencedDeclaration":33660,"src":"3535:34:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view external returns (uint256)"}},"id":41401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3535:92:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3512:115:47"},{"assignments":[41404,41406,41408,41410],"declarations":[{"constant":false,"id":41404,"mutability":"mutable","name":"valid","nameLocation":"3644:5:47","nodeType":"VariableDeclaration","scope":41431,"src":"3639:10:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41403,"name":"bool","nodeType":"ElementaryTypeName","src":"3639:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41406,"mutability":"mutable","name":"amountOut","nameLocation":"3659:9:47","nodeType":"VariableDeclaration","scope":41431,"src":"3651:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41405,"name":"uint256","nodeType":"ElementaryTypeName","src":"3651:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41408,"mutability":"mutable","name":"price","nameLocation":"3678:5:47","nodeType":"VariableDeclaration","scope":41431,"src":"3670:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41407,"name":"uint256","nodeType":"ElementaryTypeName","src":"3670:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41410,"mutability":"mutable","name":"swapData","nameLocation":"3698:8:47","nodeType":"VariableDeclaration","scope":41431,"src":"3685:21:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41409,"name":"bytes","nodeType":"ElementaryTypeName","src":"3685:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":41417,"initialValue":{"arguments":[{"id":41413,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41355,"src":"3742:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":41414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3750:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":41415,"name":"optimalRaise","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41395,"src":"3756:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41411,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41006,"src":"3722:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":41412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3729:12:47","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":33580,"src":"3722:19:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,uint256,bytes memory)"}},"id":41416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3722:47:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3638:131:47"},{"expression":{"arguments":[{"id":41421,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41404,"src":"3793:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":41418,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"3780:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":41420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3789:3:47","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18040,"src":"3780:12:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bool_$returns$__$","typeString":"function (bool) view"}},"id":41422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3780:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41423,"nodeType":"ExpressionStatement","src":"3780:19:47"},{"expression":{"arguments":[{"id":41427,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41355,"src":"3819:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41428,"name":"swapData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41410,"src":"3827:8:47","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":41424,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41000,"src":"3809:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":41426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3814:4:47","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":28371,"src":"3809:9:47","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256,uint256)"}},"id":41429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3809:27:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":41430,"nodeType":"ExpressionStatement","src":"3809:27:47"}]},"functionSelector":"0022a0ca","implemented":true,"kind":"function","modifiers":[{"id":41352,"kind":"modifierInvocation","modifierName":{"id":41351,"name":"basic","nameLocations":["3196:5:47"],"nodeType":"IdentifierPath","referencedDeclaration":41258,"src":"3196:5:47"},"nodeType":"ModifierInvocation","src":"3196:5:47"}],"name":"test_optimal_raise","nameLocation":"3168:18:47","parameters":{"id":41350,"nodeType":"ParameterList","parameters":[],"src":"3186:2:47"},"returnParameters":{"id":41353,"nodeType":"ParameterList","parameters":[],"src":"3202:0:47"},"scope":41744,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":41461,"nodeType":"FunctionDefinition","src":"3849:254:47","nodes":[],"body":{"id":41460,"nodeType":"Block","src":"3892:211:47","nodes":[],"statements":[{"assignments":[41438],"declarations":[{"constant":false,"id":41438,"mutability":"mutable","name":"poolId","nameLocation":"3910:6:47","nodeType":"VariableDeclaration","scope":41460,"src":"3902:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41437,"name":"uint256","nodeType":"ElementaryTypeName","src":"3902:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41444,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41439,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41000,"src":"3919:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":41440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3924:5:47","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"3919:10:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":41441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3919:12:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":41442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3934:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3919:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3902:33:47"},{"assignments":[41446],"declarations":[{"constant":false,"id":41446,"mutability":"mutable","name":"optimalLower","nameLocation":"3953:12:47","nodeType":"VariableDeclaration","scope":41460,"src":"3945:20:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41445,"name":"uint256","nodeType":"ElementaryTypeName","src":"3945:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41453,"initialValue":{"arguments":[{"id":41449,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41438,"src":"4016:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"302e38","id":41450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4024:9:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_800000000000000000_by_1","typeString":"int_const 800000000000000000"},"value":"0.8"},{"hexValue":"302e313334363734","id":41451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4035:14:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_134674000000000000_by_1","typeString":"int_const 134674000000000000"},"value":"0.134674"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_800000000000000000_by_1","typeString":"int_const 800000000000000000"},{"typeIdentifier":"t_rational_134674000000000000_by_1","typeString":"int_const 134674000000000000"}],"expression":{"id":41447,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41006,"src":"3968:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":41448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3975:27:47","memberName":"computeOptimalArbLowerPrice","nodeType":"MemberAccess","referencedDeclaration":33620,"src":"3968:34:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view external returns (uint256)"}},"id":41452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3968:91:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3945:114:47"},{"expression":{"arguments":[{"id":41457,"name":"optimalLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41446,"src":"4083:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41454,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"4070:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":41456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4079:3:47","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":17998,"src":"4070:12:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":41458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4070:26:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41459,"nodeType":"ExpressionStatement","src":"4070:26:47"}]},"functionSelector":"6162e16a","implemented":true,"kind":"function","modifiers":[{"id":41435,"kind":"modifierInvocation","modifierName":{"id":41434,"name":"basic","nameLocations":["3886:5:47"],"nodeType":"IdentifierPath","referencedDeclaration":41258,"src":"3886:5:47"},"nodeType":"ModifierInvocation","src":"3886:5:47"}],"name":"test_optimal_lower","nameLocation":"3858:18:47","parameters":{"id":41433,"nodeType":"ParameterList","parameters":[],"src":"3876:2:47"},"returnParameters":{"id":41436,"nodeType":"ParameterList","parameters":[],"src":"3892:0:47"},"scope":41744,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":41602,"nodeType":"FunctionDefinition","src":"4109:1377:47","nodes":[],"body":{"id":41601,"nodeType":"Block","src":"4159:1327:47","nodes":[],"statements":[{"assignments":[41467],"declarations":[{"constant":false,"id":41467,"mutability":"mutable","name":"poolId","nameLocation":"4177:6:47","nodeType":"VariableDeclaration","scope":41601,"src":"4169:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41466,"name":"uint256","nodeType":"ElementaryTypeName","src":"4169:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41473,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41468,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41000,"src":"4186:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":41469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4191:5:47","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"4186:10:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":41470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4186:12:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":41471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4201:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4186:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4169:33:47"},{"assignments":[41475],"declarations":[{"constant":false,"id":41475,"mutability":"mutable","name":"optimalLower","nameLocation":"4220:12:47","nodeType":"VariableDeclaration","scope":41601,"src":"4212:20:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41474,"name":"uint256","nodeType":"ElementaryTypeName","src":"4212:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41482,"initialValue":{"arguments":[{"id":41478,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41467,"src":"4283:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"302e3938","id":41479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4291:10:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_980000000000000000_by_1","typeString":"int_const 980000000000000000"},"value":"0.98"},{"hexValue":"302e323334363734","id":41480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4303:14:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_234674000000000000_by_1","typeString":"int_const 234674000000000000"},"value":"0.234674"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_980000000000000000_by_1","typeString":"int_const 980000000000000000"},{"typeIdentifier":"t_rational_234674000000000000_by_1","typeString":"int_const 234674000000000000"}],"expression":{"id":41476,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41006,"src":"4235:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":41477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4242:27:47","memberName":"computeOptimalArbLowerPrice","nodeType":"MemberAccess","referencedDeclaration":33620,"src":"4235:34:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view external returns (uint256)"}},"id":41481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4235:92:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4212:115:47"},{"assignments":[null,41484,null,null],"declarations":[null,{"constant":false,"id":41484,"mutability":"mutable","name":"amountOut","nameLocation":"4349:9:47","nodeType":"VariableDeclaration","scope":41601,"src":"4341:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41483,"name":"uint256","nodeType":"ElementaryTypeName","src":"4341:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null],"id":41491,"initialValue":{"arguments":[{"id":41487,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41467,"src":"4396:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":41488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4404:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":41489,"name":"optimalLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41475,"src":"4410:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41485,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41006,"src":"4376:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":41486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4383:12:47","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":33580,"src":"4376:19:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,uint256,bytes memory)"}},"id":41490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4376:47:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4338:85:47"},{"assignments":[41493],"declarations":[{"constant":false,"id":41493,"mutability":"mutable","name":"valueIn","nameLocation":"4442:7:47","nodeType":"VariableDeclaration","scope":41601,"src":"4434:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41492,"name":"uint256","nodeType":"ElementaryTypeName","src":"4434:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41498,"initialValue":{"arguments":[{"hexValue":"302e3938","id":41496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4476:10:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_980000000000000000_by_1","typeString":"int_const 980000000000000000"},"value":"0.98"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_980000000000000000_by_1","typeString":"int_const 980000000000000000"}],"expression":{"id":41494,"name":"optimalLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41475,"src":"4452:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4465:10:47","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"4452:23:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":41497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4452:35:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4434:53:47"},{"assignments":[41500],"declarations":[{"constant":false,"id":41500,"mutability":"mutable","name":"valueOut","nameLocation":"4505:8:47","nodeType":"VariableDeclaration","scope":41601,"src":"4497:16:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41499,"name":"uint256","nodeType":"ElementaryTypeName","src":"4497:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41502,"initialValue":{"id":41501,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41484,"src":"4516:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4497:28:47"},{"assignments":[41504],"declarations":[{"constant":false,"id":41504,"mutability":"mutable","name":"profit","nameLocation":"4543:6:47","nodeType":"VariableDeclaration","scope":41601,"src":"4535:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41503,"name":"uint256","nodeType":"ElementaryTypeName","src":"4535:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41508,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41505,"name":"valueOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41500,"src":"4552:8:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":41506,"name":"valueIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41493,"src":"4563:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4552:18:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4535:35:47"},{"assignments":[41510],"declarations":[{"constant":false,"id":41510,"mutability":"mutable","name":"marginalIncrease","nameLocation":"4589:16:47","nodeType":"VariableDeclaration","scope":41601,"src":"4581:24:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41509,"name":"uint256","nodeType":"ElementaryTypeName","src":"4581:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41514,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41511,"name":"optimalLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41475,"src":"4608:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3130305f3030305f303030","id":41512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4623:11:47","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"value":"100_000_000"},"src":"4608:26:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4581:53:47"},{"assignments":[41516],"declarations":[{"constant":false,"id":41516,"mutability":"mutable","name":"marginalDecrease","nameLocation":"4652:16:47","nodeType":"VariableDeclaration","scope":41601,"src":"4644:24:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41515,"name":"uint256","nodeType":"ElementaryTypeName","src":"4644:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41520,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41517,"name":"optimalLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41475,"src":"4671:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3130305f3030305f303030","id":41518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4686:11:47","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"value":"100_000_000"},"src":"4671:26:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4644:53:47"},{"assignments":[null,41522,null,null],"declarations":[null,{"constant":false,"id":41522,"mutability":"mutable","name":"outIncrease","nameLocation":"4719:11:47","nodeType":"VariableDeclaration","scope":41601,"src":"4711:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41521,"name":"uint256","nodeType":"ElementaryTypeName","src":"4711:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null],"id":41529,"initialValue":{"arguments":[{"id":41525,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41467,"src":"4768:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":41526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4776:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":41527,"name":"marginalIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41510,"src":"4782:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41523,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41006,"src":"4748:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":41524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4755:12:47","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":33580,"src":"4748:19:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,uint256,bytes memory)"}},"id":41528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4748:51:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4708:91:47"},{"assignments":[41531],"declarations":[{"constant":false,"id":41531,"mutability":"mutable","name":"valueInIncrease","nameLocation":"4818:15:47","nodeType":"VariableDeclaration","scope":41601,"src":"4810:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41530,"name":"uint256","nodeType":"ElementaryTypeName","src":"4810:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41536,"initialValue":{"arguments":[{"hexValue":"302e3938","id":41534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4864:10:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_980000000000000000_by_1","typeString":"int_const 980000000000000000"},"value":"0.98"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_980000000000000000_by_1","typeString":"int_const 980000000000000000"}],"expression":{"id":41532,"name":"marginalIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41510,"src":"4836:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4853:10:47","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"4836:27:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":41535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4836:39:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4810:65:47"},{"assignments":[41538],"declarations":[{"constant":false,"id":41538,"mutability":"mutable","name":"valueOutIncrease","nameLocation":"4893:16:47","nodeType":"VariableDeclaration","scope":41601,"src":"4885:24:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41537,"name":"uint256","nodeType":"ElementaryTypeName","src":"4885:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41540,"initialValue":{"id":41539,"name":"outIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41522,"src":"4912:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4885:38:47"},{"assignments":[41542],"declarations":[{"constant":false,"id":41542,"mutability":"mutable","name":"profitIncrease","nameLocation":"4941:14:47","nodeType":"VariableDeclaration","scope":41601,"src":"4933:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41541,"name":"uint256","nodeType":"ElementaryTypeName","src":"4933:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41546,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41543,"name":"valueOutIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41538,"src":"4958:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":41544,"name":"valueInIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41531,"src":"4977:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4958:34:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4933:59:47"},{"assignments":[null,41548,null,null],"declarations":[null,{"constant":false,"id":41548,"mutability":"mutable","name":"outDecrease","nameLocation":"5014:11:47","nodeType":"VariableDeclaration","scope":41601,"src":"5006:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41547,"name":"uint256","nodeType":"ElementaryTypeName","src":"5006:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null],"id":41555,"initialValue":{"arguments":[{"id":41551,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41467,"src":"5063:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":41552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5071:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":41553,"name":"marginalDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41516,"src":"5077:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41549,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41006,"src":"5043:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":41550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5050:12:47","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":33580,"src":"5043:19:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,uint256,bytes memory)"}},"id":41554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5043:51:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5003:91:47"},{"assignments":[41557],"declarations":[{"constant":false,"id":41557,"mutability":"mutable","name":"valueInDecrease","nameLocation":"5113:15:47","nodeType":"VariableDeclaration","scope":41601,"src":"5105:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41556,"name":"uint256","nodeType":"ElementaryTypeName","src":"5105:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41562,"initialValue":{"arguments":[{"hexValue":"302e3938","id":41560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5159:10:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_980000000000000000_by_1","typeString":"int_const 980000000000000000"},"value":"0.98"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_980000000000000000_by_1","typeString":"int_const 980000000000000000"}],"expression":{"id":41558,"name":"marginalDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41516,"src":"5131:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5148:10:47","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"5131:27:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":41561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5131:39:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5105:65:47"},{"assignments":[41564],"declarations":[{"constant":false,"id":41564,"mutability":"mutable","name":"valueOutDecrease","nameLocation":"5188:16:47","nodeType":"VariableDeclaration","scope":41601,"src":"5180:24:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41563,"name":"uint256","nodeType":"ElementaryTypeName","src":"5180:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41566,"initialValue":{"id":41565,"name":"outDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41548,"src":"5207:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5180:38:47"},{"assignments":[41568],"declarations":[{"constant":false,"id":41568,"mutability":"mutable","name":"profitDecrease","nameLocation":"5236:14:47","nodeType":"VariableDeclaration","scope":41601,"src":"5228:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41567,"name":"uint256","nodeType":"ElementaryTypeName","src":"5228:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41572,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41569,"name":"valueOutDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41564,"src":"5253:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":41570,"name":"valueInDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41557,"src":"5272:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5253:34:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5228:59:47"},{"expression":{"arguments":[{"id":41576,"name":"profitIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41542,"src":"5311:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41573,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"5298:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":41575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5307:3:47","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":17998,"src":"5298:12:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":41577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5298:28:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41578,"nodeType":"ExpressionStatement","src":"5298:28:47"},{"expression":{"arguments":[{"id":41582,"name":"profit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41504,"src":"5349:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41579,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"5336:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":41581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5345:3:47","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":17998,"src":"5336:12:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":41583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5336:20:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41584,"nodeType":"ExpressionStatement","src":"5336:20:47"},{"expression":{"arguments":[{"id":41588,"name":"profitDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41568,"src":"5379:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41585,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"5366:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":41587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5375:3:47","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":17998,"src":"5366:12:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":41589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5366:28:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41590,"nodeType":"ExpressionStatement","src":"5366:28:47"},{"expression":{"arguments":[{"id":41592,"name":"profit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41504,"src":"5414:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41593,"name":"profitIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41542,"src":"5422:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":41591,"name":"assertGt","nodeType":"Identifier","overloadedDeclarations":[693,718,748,773],"referencedDeclaration":693,"src":"5405:8:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":41594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5405:32:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41595,"nodeType":"ExpressionStatement","src":"5405:32:47"},{"expression":{"arguments":[{"id":41597,"name":"profit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41504,"src":"5456:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41598,"name":"profitDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41568,"src":"5464:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":41596,"name":"assertGt","nodeType":"Identifier","overloadedDeclarations":[693,718,748,773],"referencedDeclaration":693,"src":"5447:8:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":41599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5447:32:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41600,"nodeType":"ExpressionStatement","src":"5447:32:47"}]},"functionSelector":"3456d955","implemented":true,"kind":"function","modifiers":[{"id":41464,"kind":"modifierInvocation","modifierName":{"id":41463,"name":"basic","nameLocations":["4153:5:47"],"nodeType":"IdentifierPath","referencedDeclaration":41258,"src":"4153:5:47"},"nodeType":"ModifierInvocation","src":"4153:5:47"}],"name":"test_optimal_lower_profit","nameLocation":"4118:25:47","parameters":{"id":41462,"nodeType":"ParameterList","parameters":[],"src":"4143:2:47"},"returnParameters":{"id":41465,"nodeType":"ParameterList","parameters":[],"src":"4159:0:47"},"scope":41744,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":41743,"nodeType":"FunctionDefinition","src":"5492:1381:47","nodes":[],"body":{"id":41742,"nodeType":"Block","src":"5542:1331:47","nodes":[],"statements":[{"assignments":[41608],"declarations":[{"constant":false,"id":41608,"mutability":"mutable","name":"poolId","nameLocation":"5560:6:47","nodeType":"VariableDeclaration","scope":41742,"src":"5552:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41607,"name":"uint256","nodeType":"ElementaryTypeName","src":"5552:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41614,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41609,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41000,"src":"5569:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":41610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5574:5:47","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"5569:10:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":41611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5569:12:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":41612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5584:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5569:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5552:33:47"},{"assignments":[41616],"declarations":[{"constant":false,"id":41616,"mutability":"mutable","name":"optimalRaise","nameLocation":"5603:12:47","nodeType":"VariableDeclaration","scope":41742,"src":"5595:20:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41615,"name":"uint256","nodeType":"ElementaryTypeName","src":"5595:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41623,"initialValue":{"arguments":[{"id":41619,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41608,"src":"5666:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"312e32","id":41620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5674:9:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1200000000000000000_by_1","typeString":"int_const 1200000000000000000"},"value":"1.2"},{"hexValue":"302e30393534343531","id":41621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5685:15:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_95445100000000000_by_1","typeString":"int_const 95445100000000000"},"value":"0.0954451"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1200000000000000000_by_1","typeString":"int_const 1200000000000000000"},{"typeIdentifier":"t_rational_95445100000000000_by_1","typeString":"int_const 95445100000000000"}],"expression":{"id":41617,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41006,"src":"5618:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":41618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5625:27:47","memberName":"computeOptimalArbRaisePrice","nodeType":"MemberAccess","referencedDeclaration":33660,"src":"5618:34:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view external returns (uint256)"}},"id":41622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5618:92:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5595:115:47"},{"assignments":[null,41625,null,null],"declarations":[null,{"constant":false,"id":41625,"mutability":"mutable","name":"amountOut","nameLocation":"5732:9:47","nodeType":"VariableDeclaration","scope":41742,"src":"5724:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41624,"name":"uint256","nodeType":"ElementaryTypeName","src":"5724:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null],"id":41632,"initialValue":{"arguments":[{"id":41628,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41608,"src":"5779:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":41629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5787:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":41630,"name":"optimalRaise","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41616,"src":"5794:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41626,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41006,"src":"5759:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":41627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5766:12:47","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":33580,"src":"5759:19:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,uint256,bytes memory)"}},"id":41631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5759:48:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5721:86:47"},{"assignments":[41634],"declarations":[{"constant":false,"id":41634,"mutability":"mutable","name":"valueIn","nameLocation":"5826:7:47","nodeType":"VariableDeclaration","scope":41742,"src":"5818:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41633,"name":"uint256","nodeType":"ElementaryTypeName","src":"5818:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41636,"initialValue":{"id":41635,"name":"optimalRaise","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41616,"src":"5836:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5818:30:47"},{"assignments":[41638],"declarations":[{"constant":false,"id":41638,"mutability":"mutable","name":"valueOut","nameLocation":"5866:8:47","nodeType":"VariableDeclaration","scope":41742,"src":"5858:16:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41637,"name":"uint256","nodeType":"ElementaryTypeName","src":"5858:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41643,"initialValue":{"arguments":[{"hexValue":"312e32","id":41641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5898:9:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1200000000000000000_by_1","typeString":"int_const 1200000000000000000"},"value":"1.2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1200000000000000000_by_1","typeString":"int_const 1200000000000000000"}],"expression":{"id":41639,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41625,"src":"5877:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5887:10:47","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"5877:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":41642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5877:31:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5858:50:47"},{"assignments":[41645],"declarations":[{"constant":false,"id":41645,"mutability":"mutable","name":"profit","nameLocation":"5926:6:47","nodeType":"VariableDeclaration","scope":41742,"src":"5918:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41644,"name":"uint256","nodeType":"ElementaryTypeName","src":"5918:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41649,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41646,"name":"valueOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41638,"src":"5935:8:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":41647,"name":"valueIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41634,"src":"5946:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5935:18:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5918:35:47"},{"assignments":[41651],"declarations":[{"constant":false,"id":41651,"mutability":"mutable","name":"marginalIncrease","nameLocation":"5972:16:47","nodeType":"VariableDeclaration","scope":41742,"src":"5964:24:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41650,"name":"uint256","nodeType":"ElementaryTypeName","src":"5964:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41655,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41652,"name":"optimalRaise","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41616,"src":"5991:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"315f3030305f3030305f303030","id":41653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6006:13:47","typeDescriptions":{"typeIdentifier":"t_rational_1000000000_by_1","typeString":"int_const 1000000000"},"value":"1_000_000_000"},"src":"5991:28:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5964:55:47"},{"assignments":[41657],"declarations":[{"constant":false,"id":41657,"mutability":"mutable","name":"marginalDecrease","nameLocation":"6037:16:47","nodeType":"VariableDeclaration","scope":41742,"src":"6029:24:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41656,"name":"uint256","nodeType":"ElementaryTypeName","src":"6029:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41661,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41658,"name":"optimalRaise","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41616,"src":"6056:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"315f3030305f3030305f303030","id":41659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6071:13:47","typeDescriptions":{"typeIdentifier":"t_rational_1000000000_by_1","typeString":"int_const 1000000000"},"value":"1_000_000_000"},"src":"6056:28:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6029:55:47"},{"assignments":[null,41663,null,null],"declarations":[null,{"constant":false,"id":41663,"mutability":"mutable","name":"outIncrease","nameLocation":"6106:11:47","nodeType":"VariableDeclaration","scope":41742,"src":"6098:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41662,"name":"uint256","nodeType":"ElementaryTypeName","src":"6098:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null],"id":41670,"initialValue":{"arguments":[{"id":41666,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41608,"src":"6155:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":41667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6163:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":41668,"name":"marginalIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41651,"src":"6170:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41664,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41006,"src":"6135:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":41665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6142:12:47","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":33580,"src":"6135:19:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,uint256,bytes memory)"}},"id":41669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6135:52:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6095:92:47"},{"assignments":[41672],"declarations":[{"constant":false,"id":41672,"mutability":"mutable","name":"valueInIncrease","nameLocation":"6206:15:47","nodeType":"VariableDeclaration","scope":41742,"src":"6198:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41671,"name":"uint256","nodeType":"ElementaryTypeName","src":"6198:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41674,"initialValue":{"id":41673,"name":"marginalIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41651,"src":"6224:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6198:42:47"},{"assignments":[41676],"declarations":[{"constant":false,"id":41676,"mutability":"mutable","name":"valueOutIncrease","nameLocation":"6258:16:47","nodeType":"VariableDeclaration","scope":41742,"src":"6250:24:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41675,"name":"uint256","nodeType":"ElementaryTypeName","src":"6250:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41681,"initialValue":{"arguments":[{"hexValue":"312e32","id":41679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6300:9:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1200000000000000000_by_1","typeString":"int_const 1200000000000000000"},"value":"1.2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1200000000000000000_by_1","typeString":"int_const 1200000000000000000"}],"expression":{"id":41677,"name":"outIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41663,"src":"6277:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6289:10:47","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"6277:22:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":41680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6277:33:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6250:60:47"},{"assignments":[41683],"declarations":[{"constant":false,"id":41683,"mutability":"mutable","name":"profitIncrease","nameLocation":"6328:14:47","nodeType":"VariableDeclaration","scope":41742,"src":"6320:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41682,"name":"uint256","nodeType":"ElementaryTypeName","src":"6320:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41687,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41684,"name":"valueOutIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41676,"src":"6345:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":41685,"name":"valueInIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41672,"src":"6364:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6345:34:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6320:59:47"},{"assignments":[null,41689,null,null],"declarations":[null,{"constant":false,"id":41689,"mutability":"mutable","name":"outDecrease","nameLocation":"6401:11:47","nodeType":"VariableDeclaration","scope":41742,"src":"6393:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41688,"name":"uint256","nodeType":"ElementaryTypeName","src":"6393:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null],"id":41696,"initialValue":{"arguments":[{"id":41692,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41608,"src":"6450:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":41693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6458:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":41694,"name":"marginalDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41657,"src":"6465:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41690,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41006,"src":"6430:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":41691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6437:12:47","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":33580,"src":"6430:19:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,uint256,bytes memory)"}},"id":41695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6430:52:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6390:92:47"},{"assignments":[41698],"declarations":[{"constant":false,"id":41698,"mutability":"mutable","name":"valueInDecrease","nameLocation":"6501:15:47","nodeType":"VariableDeclaration","scope":41742,"src":"6493:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41697,"name":"uint256","nodeType":"ElementaryTypeName","src":"6493:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41700,"initialValue":{"id":41699,"name":"marginalDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41657,"src":"6519:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6493:42:47"},{"assignments":[41702],"declarations":[{"constant":false,"id":41702,"mutability":"mutable","name":"valueOutDecrease","nameLocation":"6553:16:47","nodeType":"VariableDeclaration","scope":41742,"src":"6545:24:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41701,"name":"uint256","nodeType":"ElementaryTypeName","src":"6545:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41707,"initialValue":{"arguments":[{"hexValue":"312e32","id":41705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6595:9:47","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1200000000000000000_by_1","typeString":"int_const 1200000000000000000"},"value":"1.2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1200000000000000000_by_1","typeString":"int_const 1200000000000000000"}],"expression":{"id":41703,"name":"outDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41689,"src":"6572:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6584:10:47","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"6572:22:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":41706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6572:33:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6545:60:47"},{"assignments":[41709],"declarations":[{"constant":false,"id":41709,"mutability":"mutable","name":"profitDecrease","nameLocation":"6623:14:47","nodeType":"VariableDeclaration","scope":41742,"src":"6615:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41708,"name":"uint256","nodeType":"ElementaryTypeName","src":"6615:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41713,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41710,"name":"valueOutDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41702,"src":"6640:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":41711,"name":"valueInDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41698,"src":"6659:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6640:34:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6615:59:47"},{"expression":{"arguments":[{"id":41717,"name":"profitIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41683,"src":"6698:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41714,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"6685:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":41716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6694:3:47","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":17998,"src":"6685:12:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":41718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6685:28:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41719,"nodeType":"ExpressionStatement","src":"6685:28:47"},{"expression":{"arguments":[{"id":41723,"name":"profit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41645,"src":"6736:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41720,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"6723:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":41722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6732:3:47","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":17998,"src":"6723:12:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":41724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6723:20:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41725,"nodeType":"ExpressionStatement","src":"6723:20:47"},{"expression":{"arguments":[{"id":41729,"name":"profitDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41709,"src":"6766:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41726,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"6753:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":41728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6762:3:47","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":17998,"src":"6753:12:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":41730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6753:28:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41731,"nodeType":"ExpressionStatement","src":"6753:28:47"},{"expression":{"arguments":[{"id":41733,"name":"profit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41645,"src":"6801:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41734,"name":"profitIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41683,"src":"6809:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":41732,"name":"assertGt","nodeType":"Identifier","overloadedDeclarations":[693,718,748,773],"referencedDeclaration":693,"src":"6792:8:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":41735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6792:32:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41736,"nodeType":"ExpressionStatement","src":"6792:32:47"},{"expression":{"arguments":[{"id":41738,"name":"profit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41645,"src":"6843:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41739,"name":"profitDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41709,"src":"6851:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":41737,"name":"assertGt","nodeType":"Identifier","overloadedDeclarations":[693,718,748,773],"referencedDeclaration":693,"src":"6834:8:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":41740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6834:32:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41741,"nodeType":"ExpressionStatement","src":"6834:32:47"}]},"functionSelector":"5f4d62fb","implemented":true,"kind":"function","modifiers":[{"id":41605,"kind":"modifierInvocation","modifierName":{"id":41604,"name":"basic","nameLocations":["5536:5:47"],"nodeType":"IdentifierPath","referencedDeclaration":41258,"src":"5536:5:47"},"nodeType":"ModifierInvocation","src":"5536:5:47"}],"name":"test_optimal_raise_profit","nameLocation":"5501:25:47","parameters":{"id":41603,"nodeType":"ParameterList","parameters":[],"src":"5526:2:47"},"returnParameters":{"id":41606,"nodeType":"ParameterList","parameters":[],"src":"5542:0:47"},"scope":41744,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":40989,"name":"Test","nameLocations":["333:4:47"],"nodeType":"IdentifierPath","referencedDeclaration":8195,"src":"333:4:47"},"id":40990,"nodeType":"InheritanceSpecifier","src":"333:4:47"}],"canonicalName":"G3MTest","contractDependencies":[25560,29062,33820,37911,44392],"contractKind":"contract","fullyImplemented":true,"internalFunctionIDs":{"32083":1},"linearizedBaseContracts":[41744,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"G3MTest","nameLocation":"322:7:47","scope":41745,"usedErrors":[30985,30992],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":47} \ No newline at end of file diff --git a/out/Gaussian.sol/Gaussian.json b/out/Gaussian.sol/Gaussian.json deleted file mode 100644 index 0dc8a0b1..00000000 --- a/out/Gaussian.sol/Gaussian.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"Infinity","inputs":[]},{"type":"error","name":"NegativeInfinity","inputs":[]},{"type":"error","name":"OutOfBounds","inputs":[]}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220d2880e6ece11915e7de5f9ceaee382e8f164d5d233bf8d36cf2abddd47aeb57864736f6c63430008160033","sourceMap":"1022:8719:21:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220d2880e6ece11915e7de5f9ceaee382e8f164d5d233bf8d36cf2abddd47aeb57864736f6c63430008160033","sourceMap":"1022:8719:21:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Infinity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NegativeInfinity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfBounds\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"@alexangelj\",\"custom:coauthor\":\"@0xjepsen@autoparallel\",\"custom:source\":\"Handbook of Mathematical Functions https://personal.math.ubc.ca/~cbm/aands/abramowitz_and_stegun.pdf.Numerical Recipes https://e-maxx.ru/bookz/files/numerical_recipes.pdf.Inspired by https://github.com/errcw/gaussian.\",\"details\":\"Only implements a distribution with mean (\\u00b5) = 0 and variance (\\u03c3) = 1. Uses Numerical Recipes as a framework and reference C implemenation. Numerical Recipes cites the original textbook written by Abramowitz and Stegun, \\\"Handbook of Mathematical Functions\\\", which should be read to understand these special functions and the implications of their numerical approximations.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Gaussian Math Library.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Models the normal distribution using the special Complimentary Error Function.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/src/Gaussian.sol\":\"Gaussian\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"Infinity"},{"inputs":[],"type":"error","name":"NegativeInfinity"},{"inputs":[],"type":"error","name":"OutOfBounds"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/src/Gaussian.sol":"Gaussian"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/src/Gaussian.sol","id":27375,"exportedSymbols":{"FixedPointMathLib":[26640],"Gaussian":[27374],"Min":[27736],"abs":[27763],"diviWad":[27813],"muli":[27777],"muliWad":[27795]},"nodeType":"SourceUnit","src":"32:9710:21","nodes":[{"id":26746,"nodeType":"PragmaDirective","src":"32:23:21","nodes":[],"literals":["solidity","^","0.8",".4"]},{"id":26747,"nodeType":"ImportDirective","src":"57:45:21","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol","file":"solmate/utils/FixedPointMathLib.sol","nameLocation":"-1:-1:-1","scope":27375,"sourceUnit":26641,"symbolAliases":[],"unitAlias":""},{"id":26748,"nodeType":"ImportDirective","src":"103:21:21","nodes":[],"absolutePath":"lib/solstat/src/Units.sol","file":"./Units.sol","nameLocation":"-1:-1:-1","scope":27375,"sourceUnit":27814,"symbolAliases":[],"unitAlias":""},{"id":27374,"nodeType":"ContractDefinition","src":"1022:8719:21","nodes":[{"id":26753,"nodeType":"UsingForDirective","src":"1045:32:21","nodes":[],"functionList":[{"function":{"id":26750,"name":"abs","nameLocations":["1052:3:21"],"nodeType":"IdentifierPath","referencedDeclaration":27763,"src":"1052:3:21"}},{"function":{"id":26751,"name":"diviWad","nameLocations":["1057:7:21"],"nodeType":"IdentifierPath","referencedDeclaration":27813,"src":"1057:7:21"}}],"global":false,"typeName":{"id":26752,"name":"int256","nodeType":"ElementaryTypeName","src":"1070:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":26756,"nodeType":"UsingForDirective","src":"1082:35:21","nodes":[],"global":false,"libraryName":{"id":26754,"name":"FixedPointMathLib","nameLocations":["1088:17:21"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"1088:17:21"},"typeName":{"id":26755,"name":"int256","nodeType":"ElementaryTypeName","src":"1110:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":26759,"nodeType":"UsingForDirective","src":"1122:36:21","nodes":[],"global":false,"libraryName":{"id":26757,"name":"FixedPointMathLib","nameLocations":["1128:17:21"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"1128:17:21"},"typeName":{"id":26758,"name":"uint256","nodeType":"ElementaryTypeName","src":"1150:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":26761,"nodeType":"ErrorDefinition","src":"1164:17:21","nodes":[],"errorSelector":"07a02127","name":"Infinity","nameLocation":"1170:8:21","parameters":{"id":26760,"nodeType":"ParameterList","parameters":[],"src":"1178:2:21"}},{"id":26763,"nodeType":"ErrorDefinition","src":"1186:25:21","nodes":[],"errorSelector":"8bb56614","name":"NegativeInfinity","nameLocation":"1192:16:21","parameters":{"id":26762,"nodeType":"ParameterList","parameters":[],"src":"1208:2:21"}},{"id":26765,"nodeType":"ErrorDefinition","src":"1216:20:21","nodes":[],"errorSelector":"b4120f14","name":"OutOfBounds","nameLocation":"1222:11:21","parameters":{"id":26764,"nodeType":"ParameterList","parameters":[],"src":"1233:2:21"}},{"id":26768,"nodeType":"VariableDeclaration","src":"1242:39:21","nodes":[],"constant":true,"mutability":"constant","name":"WAD","nameLocation":"1268:3:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26766,"name":"uint256","nodeType":"ElementaryTypeName","src":"1242:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":26767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1274:7:21","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":26771,"nodeType":"VariableDeclaration","src":"1287:46:21","nodes":[],"constant":true,"mutability":"constant","name":"HALF_WAD","nameLocation":"1313:8:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26769,"name":"uint256","nodeType":"ElementaryTypeName","src":"1287:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"302e35","id":26770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1324:9:21","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"value":"0.5"},"visibility":"internal"},{"id":26774,"nodeType":"VariableDeclaration","src":"1339:46:21","nodes":[],"constant":true,"mutability":"constant","name":"DOUBLE_WAD","nameLocation":"1365:10:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26772,"name":"uint256","nodeType":"ElementaryTypeName","src":"1339:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":26773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1378:7:21","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_2000000000000000000_by_1","typeString":"int_const 2000000000000000000"},"value":"2"},"visibility":"internal"},{"id":26777,"nodeType":"VariableDeclaration","src":"1391:51:21","nodes":[],"constant":true,"mutability":"constant","name":"PI","nameLocation":"1417:2:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26775,"name":"uint256","nodeType":"ElementaryTypeName","src":"1391:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"335f313431353932363533353839373933323338","id":26776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1422:20:21","typeDescriptions":{"typeIdentifier":"t_rational_3141592653589793238_by_1","typeString":"int_const 3141592653589793238"},"value":"3_141592653589793238"},"visibility":"internal"},{"id":26783,"nodeType":"VariableDeclaration","src":"1448:63:21","nodes":[],"constant":true,"mutability":"constant","name":"ERFC_DOMAIN_UPPER","nameLocation":"1473:17:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26778,"name":"int256","nodeType":"ElementaryTypeName","src":"1448:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"arguments":[{"hexValue":"362e3234","id":26781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1500:10:21","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_6240000000000000000_by_1","typeString":"int_const 6240000000000000000"},"value":"6.24"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_6240000000000000000_by_1","typeString":"int_const 6240000000000000000"}],"id":26780,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1493:6:21","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":26779,"name":"int256","nodeType":"ElementaryTypeName","src":"1493:6:21","typeDescriptions":{}}},"id":26782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1493:18:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"id":26787,"nodeType":"VariableDeclaration","src":"1517:63:21","nodes":[],"constant":true,"mutability":"constant","name":"ERFC_DOMAIN_LOWER","nameLocation":"1542:17:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26784,"name":"int256","nodeType":"ElementaryTypeName","src":"1517:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"id":26786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1562:18:21","subExpression":{"id":26785,"name":"ERFC_DOMAIN_UPPER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26783,"src":"1563:17:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"id":26790,"nodeType":"VariableDeclaration","src":"1586:56:21","nodes":[],"constant":true,"mutability":"constant","name":"SQRT_2PI","nameLocation":"1611:8:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26788,"name":"int256","nodeType":"ElementaryTypeName","src":"1586:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"325f353036363238323734363331303030353032","id":26789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1622:20:21","typeDescriptions":{"typeIdentifier":"t_rational_2506628274631000502_by_1","typeString":"int_const 2506628274631000502"},"value":"2_506628274631000502"},"visibility":"internal"},{"id":26794,"nodeType":"VariableDeclaration","src":"1648:34:21","nodes":[],"constant":true,"mutability":"constant","name":"SIGN","nameLocation":"1673:4:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26791,"name":"int256","nodeType":"ElementaryTypeName","src":"1648:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"id":26793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1680:2:21","subExpression":{"hexValue":"31","id":26792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1681:1:21","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"visibility":"internal"},{"id":26797,"nodeType":"VariableDeclaration","src":"1688:41:21","nodes":[],"constant":true,"mutability":"constant","name":"SCALAR","nameLocation":"1713:6:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26795,"name":"int256","nodeType":"ElementaryTypeName","src":"1688:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"31","id":26796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1722:7:21","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":26800,"nodeType":"VariableDeclaration","src":"1735:42:21","nodes":[],"constant":true,"mutability":"constant","name":"HALF_SCALAR","nameLocation":"1760:11:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26798,"name":"int256","nodeType":"ElementaryTypeName","src":"1735:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"316539","id":26799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1774:3:21","typeDescriptions":{"typeIdentifier":"t_rational_1000000000_by_1","typeString":"int_const 1000000000"},"value":"1e9"},"visibility":"internal"},{"id":26803,"nodeType":"VariableDeclaration","src":"1783:43:21","nodes":[],"constant":true,"mutability":"constant","name":"SCALAR_SQRD","nameLocation":"1808:11:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26801,"name":"int256","nodeType":"ElementaryTypeName","src":"1783:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"31653336","id":26802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1822:4:21","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(29 digits omitted)...0000"},"value":"1e36"},"visibility":"internal"},{"id":26806,"nodeType":"VariableDeclaration","src":"1832:36:21","nodes":[],"constant":true,"mutability":"constant","name":"HALF","nameLocation":"1857:4:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26804,"name":"int256","nodeType":"ElementaryTypeName","src":"1832:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"35653137","id":26805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1864:4:21","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"value":"5e17"},"visibility":"internal"},{"id":26809,"nodeType":"VariableDeclaration","src":"1874:38:21","nodes":[],"constant":true,"mutability":"constant","name":"ONE","nameLocation":"1899:3:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26807,"name":"int256","nodeType":"ElementaryTypeName","src":"1874:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"31","id":26808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1905:7:21","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":26812,"nodeType":"VariableDeclaration","src":"1918:38:21","nodes":[],"constant":true,"mutability":"constant","name":"TWO","nameLocation":"1943:3:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26810,"name":"int256","nodeType":"ElementaryTypeName","src":"1918:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"32","id":26811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1949:7:21","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_2000000000000000000_by_1","typeString":"int_const 2000000000000000000"},"value":"2"},"visibility":"internal"},{"id":26816,"nodeType":"VariableDeclaration","src":"1962:45:21","nodes":[],"constant":true,"mutability":"constant","name":"NEGATIVE_TWO","nameLocation":"1987:12:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26813,"name":"int256","nodeType":"ElementaryTypeName","src":"1962:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"id":26815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2002:5:21","subExpression":{"hexValue":"32653138","id":26814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2003:4:21","typeDescriptions":{"typeIdentifier":"t_rational_2000000000000000000_by_1","typeString":"int_const 2000000000000000000"},"value":"2e18"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_2000000000000000000_by_1","typeString":"int_const -2000000000000000000"}},"visibility":"internal"},{"id":26819,"nodeType":"VariableDeclaration","src":"2013:53:21","nodes":[],"constant":true,"mutability":"constant","name":"SQRT2","nameLocation":"2038:5:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26817,"name":"int256","nodeType":"ElementaryTypeName","src":"2013:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"315f343134323133353632333733303935303438","id":26818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2046:20:21","typeDescriptions":{"typeIdentifier":"t_rational_1414213562373095048_by_1","typeString":"int_const 1414213562373095048"},"value":"1_414213562373095048"},"visibility":"internal"},{"id":26822,"nodeType":"VariableDeclaration","src":"2111:54:21","nodes":[],"constant":true,"mutability":"constant","name":"ERFC_A","nameLocation":"2136:6:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26820,"name":"int256","nodeType":"ElementaryTypeName","src":"2111:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"315f323635353132323330303030303030303030","id":26821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2145:20:21","typeDescriptions":{"typeIdentifier":"t_rational_1265512230000000000_by_1","typeString":"int_const 1265512230000000000"},"value":"1_265512230000000000"},"visibility":"internal"},{"id":26825,"nodeType":"VariableDeclaration","src":"2171:54:21","nodes":[],"constant":true,"mutability":"constant","name":"ERFC_B","nameLocation":"2196:6:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26823,"name":"int256","nodeType":"ElementaryTypeName","src":"2171:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"315f303030303233363830303030303030303030","id":26824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2205:20:21","typeDescriptions":{"typeIdentifier":"t_rational_1000023680000000000_by_1","typeString":"int_const 1000023680000000000"},"value":"1_000023680000000000"},"visibility":"internal"},{"id":26828,"nodeType":"VariableDeclaration","src":"2231:52:21","nodes":[],"constant":true,"mutability":"constant","name":"ERFC_C","nameLocation":"2256:6:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26826,"name":"int256","nodeType":"ElementaryTypeName","src":"2231:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"333734303931393630303030303030303030","id":26827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2265:18:21","typeDescriptions":{"typeIdentifier":"t_rational_374091960000000000_by_1","typeString":"int_const 374091960000000000"},"value":"374091960000000000"},"visibility":"internal"},{"id":26831,"nodeType":"VariableDeclaration","src":"2297:51:21","nodes":[],"constant":true,"mutability":"constant","name":"ERFC_D","nameLocation":"2322:6:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26829,"name":"int256","nodeType":"ElementaryTypeName","src":"2297:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"3936373834313830303030303030303030","id":26830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2331:17:21","typeDescriptions":{"typeIdentifier":"t_rational_96784180000000000_by_1","typeString":"int_const 96784180000000000"},"value":"96784180000000000"},"visibility":"internal"},{"id":26835,"nodeType":"VariableDeclaration","src":"2362:53:21","nodes":[],"constant":true,"mutability":"constant","name":"ERFC_E","nameLocation":"2387:6:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26832,"name":"int256","nodeType":"ElementaryTypeName","src":"2362:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"id":26834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2396:19:21","subExpression":{"hexValue":"313836323838303630303030303030303030","id":26833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2397:18:21","typeDescriptions":{"typeIdentifier":"t_rational_186288060000000000_by_1","typeString":"int_const 186288060000000000"},"value":"186288060000000000"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_186288060000000000_by_1","typeString":"int_const -186288060000000000"}},"visibility":"internal"},{"id":26838,"nodeType":"VariableDeclaration","src":"2429:52:21","nodes":[],"constant":true,"mutability":"constant","name":"ERFC_F","nameLocation":"2454:6:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26836,"name":"int256","nodeType":"ElementaryTypeName","src":"2429:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"323738383638303730303030303030303030","id":26837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2463:18:21","typeDescriptions":{"typeIdentifier":"t_rational_278868070000000000_by_1","typeString":"int_const 278868070000000000"},"value":"278868070000000000"},"visibility":"internal"},{"id":26842,"nodeType":"VariableDeclaration","src":"2495:55:21","nodes":[],"constant":true,"mutability":"constant","name":"ERFC_G","nameLocation":"2520:6:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26839,"name":"int256","nodeType":"ElementaryTypeName","src":"2495:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"id":26841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2529:21:21","subExpression":{"hexValue":"315f313335323033393830303030303030303030","id":26840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2530:20:21","typeDescriptions":{"typeIdentifier":"t_rational_1135203980000000000_by_1","typeString":"int_const 1135203980000000000"},"value":"1_135203980000000000"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1135203980000000000_by_1","typeString":"int_const -1135203980000000000"}},"visibility":"internal"},{"id":26845,"nodeType":"VariableDeclaration","src":"2556:54:21","nodes":[],"constant":true,"mutability":"constant","name":"ERFC_H","nameLocation":"2581:6:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26843,"name":"int256","nodeType":"ElementaryTypeName","src":"2556:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"315f343838353135383730303030303030303030","id":26844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2590:20:21","typeDescriptions":{"typeIdentifier":"t_rational_1488515870000000000_by_1","typeString":"int_const 1488515870000000000"},"value":"1_488515870000000000"},"visibility":"internal"},{"id":26849,"nodeType":"VariableDeclaration","src":"2616:53:21","nodes":[],"constant":true,"mutability":"constant","name":"ERFC_I","nameLocation":"2641:6:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26846,"name":"int256","nodeType":"ElementaryTypeName","src":"2616:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"id":26848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2650:19:21","subExpression":{"hexValue":"383232313532323330303030303030303030","id":26847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2651:18:21","typeDescriptions":{"typeIdentifier":"t_rational_822152230000000000_by_1","typeString":"int_const 822152230000000000"},"value":"822152230000000000"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_822152230000000000_by_1","typeString":"int_const -822152230000000000"}},"visibility":"internal"},{"id":26852,"nodeType":"VariableDeclaration","src":"2683:52:21","nodes":[],"constant":true,"mutability":"constant","name":"ERFC_J","nameLocation":"2708:6:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26850,"name":"int256","nodeType":"ElementaryTypeName","src":"2683:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"313730383732373730303030303030303030","id":26851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2717:18:21","typeDescriptions":{"typeIdentifier":"t_rational_170872770000000000_by_1","typeString":"int_const 170872770000000000"},"value":"170872770000000000"},"visibility":"internal"},{"id":26856,"nodeType":"VariableDeclaration","src":"2749:54:21","nodes":[],"constant":true,"mutability":"constant","name":"IERFC_A","nameLocation":"2774:7:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26853,"name":"int256","nodeType":"ElementaryTypeName","src":"2749:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"id":26855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2784:19:21","subExpression":{"hexValue":"373037313130303030303030303030303030","id":26854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2785:18:21","typeDescriptions":{"typeIdentifier":"t_rational_707110000000000000_by_1","typeString":"int_const 707110000000000000"},"value":"707110000000000000"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_707110000000000000_by_1","typeString":"int_const -707110000000000000"}},"visibility":"internal"},{"id":26859,"nodeType":"VariableDeclaration","src":"2817:55:21","nodes":[],"constant":true,"mutability":"constant","name":"IERFC_B","nameLocation":"2842:7:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26857,"name":"int256","nodeType":"ElementaryTypeName","src":"2817:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"325f333037353330303030303030303030303030","id":26858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2852:20:21","typeDescriptions":{"typeIdentifier":"t_rational_2307530000000000000_by_1","typeString":"int_const 2307530000000000000"},"value":"2_307530000000000000"},"visibility":"internal"},{"id":26862,"nodeType":"VariableDeclaration","src":"2878:53:21","nodes":[],"constant":true,"mutability":"constant","name":"IERFC_C","nameLocation":"2903:7:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26860,"name":"int256","nodeType":"ElementaryTypeName","src":"2878:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"323730363130303030303030303030303030","id":26861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2913:18:21","typeDescriptions":{"typeIdentifier":"t_rational_270610000000000000_by_1","typeString":"int_const 270610000000000000"},"value":"270610000000000000"},"visibility":"internal"},{"id":26865,"nodeType":"VariableDeclaration","src":"2945:53:21","nodes":[],"constant":true,"mutability":"constant","name":"IERFC_D","nameLocation":"2970:7:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26863,"name":"int256","nodeType":"ElementaryTypeName","src":"2945:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"393932323930303030303030303030303030","id":26864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2980:18:21","typeDescriptions":{"typeIdentifier":"t_rational_992290000000000000_by_1","typeString":"int_const 992290000000000000"},"value":"992290000000000000"},"visibility":"internal"},{"id":26868,"nodeType":"VariableDeclaration","src":"3012:52:21","nodes":[],"constant":true,"mutability":"constant","name":"IERFC_E","nameLocation":"3037:7:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26866,"name":"int256","nodeType":"ElementaryTypeName","src":"3012:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"3434383130303030303030303030303030","id":26867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3047:17:21","typeDescriptions":{"typeIdentifier":"t_rational_44810000000000000_by_1","typeString":"int_const 44810000000000000"},"value":"44810000000000000"},"visibility":"internal"},{"id":26871,"nodeType":"VariableDeclaration","src":"3078:55:21","nodes":[],"constant":true,"mutability":"constant","name":"IERFC_F","nameLocation":"3103:7:21","scope":27374,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26869,"name":"int256","nodeType":"ElementaryTypeName","src":"3078:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"315f313238333739313637303935353132353730","id":26870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3113:20:21","typeDescriptions":{"typeIdentifier":"t_rational_1128379167095512570_by_1","typeString":"int_const 1128379167095512570"},"value":"1_128379167095512570"},"visibility":"internal"},{"id":27044,"nodeType":"FunctionDefinition","src":"4268:1017:21","nodes":[],"body":{"id":27043,"nodeType":"Block","src":"4334:951:21","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26879,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26874,"src":"4348:5:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":26880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4357:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4348:10:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26884,"nodeType":"IfStatement","src":"4344:26:21","trueBody":{"expression":{"id":26882,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26809,"src":"4367:3:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":26878,"id":26883,"nodeType":"Return","src":"4360:10:21"}},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26885,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26874,"src":"4384:5:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":26886,"name":"ERFC_DOMAIN_UPPER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26783,"src":"4393:17:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4384:26:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26890,"nodeType":"IfStatement","src":"4380:40:21","trueBody":{"expression":{"hexValue":"30","id":26888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4419:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":26878,"id":26889,"nodeType":"Return","src":"4412:8:21"}},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26891,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26874,"src":"4434:5:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":26892,"name":"ERFC_DOMAIN_LOWER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26787,"src":"4443:17:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4434:26:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26896,"nodeType":"IfStatement","src":"4430:42:21","trueBody":{"expression":{"id":26894,"name":"TWO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26812,"src":"4469:3:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":26878,"id":26895,"nodeType":"Return","src":"4462:10:21"}},{"assignments":[26898],"declarations":[{"constant":false,"id":26898,"mutability":"mutable","name":"z","nameLocation":"4491:1:21","nodeType":"VariableDeclaration","scope":27043,"src":"4483:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26897,"name":"uint256","nodeType":"ElementaryTypeName","src":"4483:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26902,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":26899,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26874,"src":"4495:5:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4501:3:21","memberName":"abs","nodeType":"MemberAccess","referencedDeclaration":27763,"src":"4495:9:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$attached_to$_t_int256_$","typeString":"function (int256) pure returns (uint256)"}},"id":26901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4495:11:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4483:23:21"},{"assignments":[26904],"declarations":[{"constant":false,"id":26904,"mutability":"mutable","name":"t","nameLocation":"4530:1:21","nodeType":"VariableDeclaration","scope":27043,"src":"4523:8:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26903,"name":"int256","nodeType":"ElementaryTypeName","src":"4523:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":26918,"initialValue":{"arguments":[{"id":26906,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26809,"src":"4542:3:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26907,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26809,"src":"4548:3:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"arguments":[{"id":26912,"name":"DOUBLE_WAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26774,"src":"4574:10:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26910,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26898,"src":"4561:1:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4563:10:21","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"4561:12:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":26913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4561:24:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4554:6:21","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":26908,"name":"int256","nodeType":"ElementaryTypeName","src":"4554:6:21","typeDescriptions":{}}},"id":26914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4554:32:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4548:38:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26916,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4547:40:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":26905,"name":"diviWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27813,"src":"4534:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":26917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4534:54:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"4523:65:21"},{"assignments":[26920],"declarations":[{"constant":false,"id":26920,"mutability":"mutable","name":"k","nameLocation":"4625:1:21","nodeType":"VariableDeclaration","scope":27043,"src":"4618:8:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26919,"name":"int256","nodeType":"ElementaryTypeName","src":"4618:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":26921,"nodeType":"VariableDeclarationStatement","src":"4618:8:21"},{"assignments":[26923],"declarations":[{"constant":false,"id":26923,"mutability":"mutable","name":"step","nameLocation":"4643:4:21","nodeType":"VariableDeclaration","scope":27043,"src":"4636:11:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26922,"name":"int256","nodeType":"ElementaryTypeName","src":"4636:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":26924,"nodeType":"VariableDeclarationStatement","src":"4636:11:21"},{"id":26957,"nodeType":"Block","src":"4658:216:21","statements":[{"assignments":[26926],"declarations":[{"constant":false,"id":26926,"mutability":"mutable","name":"_t","nameLocation":"4717:2:21","nodeType":"VariableDeclaration","scope":26957,"src":"4710:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26925,"name":"int256","nodeType":"ElementaryTypeName","src":"4710:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":26928,"initialValue":{"id":26927,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26904,"src":"4722:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"4710:13:21"},{"expression":{"id":26955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26929,"name":"step","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26923,"src":"4738:4:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26930,"name":"ERFC_F","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26838,"src":"4762:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":26932,"name":"_t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26926,"src":"4779:2:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26933,"name":"ERFC_G","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26842,"src":"4784:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":26935,"name":"_t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26926,"src":"4801:2:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26936,"name":"ERFC_H","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26845,"src":"4806:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":26938,"name":"_t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26926,"src":"4823:2:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26939,"name":"ERFC_I","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26849,"src":"4828:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":26941,"name":"_t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26926,"src":"4845:2:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":26942,"name":"ERFC_J","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26852,"src":"4849:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":26940,"name":"muliWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27795,"src":"4837:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":26943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4837:19:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4828:28:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26945,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4827:30:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":26937,"name":"muliWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27795,"src":"4815:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":26946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4815:43:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4806:52:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26948,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4805:54:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":26934,"name":"muliWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27795,"src":"4793:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":26949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4793:67:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4784:76:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26951,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4783:78:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":26931,"name":"muliWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27795,"src":"4771:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":26952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4771:91:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4762:100:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26954,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4761:102:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4738:125:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26956,"nodeType":"ExpressionStatement","src":"4738:125:21"}]},{"id":27017,"nodeType":"Block","src":"4884:281:21","statements":[{"assignments":[26959],"declarations":[{"constant":false,"id":26959,"mutability":"mutable","name":"_t","nameLocation":"4905:2:21","nodeType":"VariableDeclaration","scope":27017,"src":"4898:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26958,"name":"int256","nodeType":"ElementaryTypeName","src":"4898:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":26961,"initialValue":{"id":26960,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26904,"src":"4910:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"4898:13:21"},{"expression":{"id":26991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26962,"name":"step","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26923,"src":"4925:4:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":26964,"name":"_t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26959,"src":"4957:2:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26965,"name":"ERFC_B","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26825,"src":"4962:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":26967,"name":"_t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26959,"src":"4979:2:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26968,"name":"ERFC_C","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26828,"src":"4984:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":26970,"name":"_t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26959,"src":"5001:2:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26971,"name":"ERFC_D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26831,"src":"5006:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":26973,"name":"_t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26959,"src":"5023:2:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":26979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26974,"name":"ERFC_E","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26835,"src":"5028:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":26976,"name":"_t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26959,"src":"5045:2:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":26977,"name":"step","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26923,"src":"5049:4:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":26975,"name":"muliWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27795,"src":"5037:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":26978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5037:17:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5028:26:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26980,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5027:28:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":26972,"name":"muliWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27795,"src":"5015:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":26981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5015:41:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5006:50:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26983,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5005:52:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":26969,"name":"muliWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27795,"src":"4993:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":26984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4993:65:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4984:74:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26986,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4983:76:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":26966,"name":"muliWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27795,"src":"4971:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":26987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4971:89:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4962:98:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":26989,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4961:100:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":26963,"name":"muliWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27795,"src":"4932:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":26990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4932:143:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4925:150:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":26992,"nodeType":"ExpressionStatement","src":"4925:150:21"},{"expression":{"id":27015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26993,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26920,"src":"5090:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":26997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"5102:2:21","subExpression":{"hexValue":"31","id":26996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5103:1:21","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":26995,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5095:6:21","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":26994,"name":"int256","nodeType":"ElementaryTypeName","src":"5095:6:21","typeDescriptions":{}}},"id":26998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5095:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"id":27002,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26898,"src":"5123:1:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5116:6:21","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":27000,"name":"int256","nodeType":"ElementaryTypeName","src":"5116:6:21","typeDescriptions":{}}},"id":27003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5116:9:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"arguments":[{"id":27006,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26898,"src":"5134:1:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27005,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5127:6:21","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":27004,"name":"int256","nodeType":"ElementaryTypeName","src":"5127:6:21","typeDescriptions":{}}},"id":27007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5127:9:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":26999,"name":"muliWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27795,"src":"5108:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":27008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5108:29:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5095:42:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":27010,"name":"ERFC_A","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26822,"src":"5140:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5095:51:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":27012,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5094:53:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":27013,"name":"step","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26923,"src":"5150:4:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5094:60:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5090:64:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27016,"nodeType":"ExpressionStatement","src":"5090:64:21"}]},{"assignments":[27019],"declarations":[{"constant":false,"id":27019,"mutability":"mutable","name":"exp","nameLocation":"5182:3:21","nodeType":"VariableDeclaration","scope":27043,"src":"5175:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27018,"name":"int256","nodeType":"ElementaryTypeName","src":"5175:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27023,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":27020,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26920,"src":"5188:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5190:6:21","memberName":"expWad","nodeType":"MemberAccess","referencedDeclaration":26316,"src":"5188:8:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":27022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5188:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"5175:23:21"},{"assignments":[27025],"declarations":[{"constant":false,"id":27025,"mutability":"mutable","name":"r","nameLocation":"5215:1:21","nodeType":"VariableDeclaration","scope":27043,"src":"5208:8:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27024,"name":"int256","nodeType":"ElementaryTypeName","src":"5208:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27030,"initialValue":{"arguments":[{"id":27027,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26904,"src":"5227:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":27028,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27019,"src":"5230:3:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27026,"name":"muliWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27795,"src":"5219:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":27029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5219:15:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"5208:26:21"},{"expression":{"id":27041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27031,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26877,"src":"5244:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27032,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26874,"src":"5254:5:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":27033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5262:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5254:9:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":27035,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5253:11:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":27039,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27025,"src":"5277:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5253:25:21","trueExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27036,"name":"TWO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26812,"src":"5267:3:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":27037,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27025,"src":"5273:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5267:7:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5244:34:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27042,"nodeType":"ExpressionStatement","src":"5244:34:21"}]},"documentation":{"id":26872,"nodeType":"StructuredDocumentation","src":"3140:1123:21","text":" @notice Approximation of the Complimentary Error Function.\n Related to the Error Function: `erfc(x) = 1 - erf(x)`.\n Both cumulative distribution and error functions are integrals\n which cannot be expressed in elementary terms. They are called special functions.\n The error and complimentary error functions have numerical approximations\n which is what is used in this library to compute the cumulative distribution function.\n @dev This is a special function with its own identities.\n As `input` approaches ∞ or -∞, `output` returns 0 or 2 wad respectively.\n Once `input` is ~6.24 wad, it returns these values because of only having 15 decimals of precision.\n Identity: `erfc(-x) = 2 - erfc(x)`.\n Special Values:\n erfc(-∞)\t=\t2\n erfc(0) =\t1\n erfc(∞)\t=\t0\n @custom:epsilon Fractional error less than 1.2e-7.\n @custom:error Maximum error of 1e-15 compared to Gaussian.js library.\n @custom:source Numerical Recipes in C 2e p221.\n @custom:source https://mathworld.wolfram.com/Erfc.html."},"implemented":true,"kind":"function","modifiers":[],"name":"erfc","nameLocation":"4277:4:21","parameters":{"id":26875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26874,"mutability":"mutable","name":"input","nameLocation":"4289:5:21","nodeType":"VariableDeclaration","scope":27044,"src":"4282:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26873,"name":"int256","nodeType":"ElementaryTypeName","src":"4282:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4281:14:21"},"returnParameters":{"id":26878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26877,"mutability":"mutable","name":"output","nameLocation":"4326:6:21","nodeType":"VariableDeclaration","scope":27044,"src":"4319:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":26876,"name":"int256","nodeType":"ElementaryTypeName","src":"4319:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4318:15:21"},"scope":27374,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27242,"nodeType":"FunctionDefinition","src":"5918:1163:21","nodes":[],"body":{"id":27241,"nodeType":"Block","src":"5976:1105:21","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":27058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27052,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27047,"src":"5990:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":27053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5994:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5990:5:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27055,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27047,"src":"5999:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"32","id":27056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6003:7:21","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_2000000000000000000_by_1","typeString":"int_const 2000000000000000000"},"value":"2"},"src":"5999:11:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5990:20:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27062,"nodeType":"IfStatement","src":"5986:46:21","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":27059,"name":"OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26765,"src":"6019:11:21","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":27060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6019:13:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27061,"nodeType":"RevertStatement","src":"6012:20:21"}},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27063,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27047,"src":"6046:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":27064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6051:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6046:6:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27069,"nodeType":"IfStatement","src":"6042:29:21","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":27066,"name":"Infinity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26761,"src":"6061:8:21","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":27067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6061:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27068,"nodeType":"RevertStatement","src":"6054:17:21"}},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27070,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27047,"src":"6085:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":27071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6090:7:21","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_2000000000000000000_by_1","typeString":"int_const 2000000000000000000"},"value":"2"},"src":"6085:12:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27076,"nodeType":"IfStatement","src":"6081:43:21","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":27073,"name":"NegativeInfinity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26763,"src":"6106:16:21","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":27074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6106:18:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27075,"nodeType":"RevertStatement","src":"6099:25:21"}},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27077,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27050,"src":"6138:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":27078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6143:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6138:6:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27082,"nodeType":"IfStatement","src":"6134:20:21","trueBody":{"expression":{"id":27080,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27050,"src":"6153:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":27051,"id":27081,"nodeType":"Return","src":"6146:8:21"}},{"assignments":[27084],"declarations":[{"constant":false,"id":27084,"mutability":"mutable","name":"xx","nameLocation":"6172:2:21","nodeType":"VariableDeclaration","scope":27241,"src":"6165:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27083,"name":"int256","nodeType":"ElementaryTypeName","src":"6165:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27094,"initialValue":{"condition":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27085,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27047,"src":"6178:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":27086,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26809,"src":"6182:3:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6178:7:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":27088,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6177:9:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27090,"name":"TWO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26812,"src":"6193:3:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":27091,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27047,"src":"6199:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6193:7:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6177:23:21","trueExpression":{"id":27089,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27047,"src":"6189:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6165:35:21"},{"assignments":[27096],"declarations":[{"constant":false,"id":27096,"mutability":"mutable","name":"logInput","nameLocation":"6217:8:21","nodeType":"VariableDeclaration","scope":27241,"src":"6210:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27095,"name":"int256","nodeType":"ElementaryTypeName","src":"6210:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27101,"initialValue":{"arguments":[{"id":27099,"name":"TWO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26812,"src":"6239:3:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":27097,"name":"xx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27084,"src":"6228:2:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6231:7:21","memberName":"diviWad","nodeType":"MemberAccess","referencedDeclaration":27813,"src":"6228:10:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":27100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6228:15:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6210:33:21"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27102,"name":"logInput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27096,"src":"6257:8:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":27103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6269:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6257:13:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27108,"nodeType":"IfStatement","src":"6253:36:21","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":27105,"name":"Infinity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26761,"src":"6279:8:21","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":27106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6279:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27107,"nodeType":"RevertStatement","src":"6272:17:21"}},{"assignments":[27110],"declarations":[{"constant":false,"id":27110,"mutability":"mutable","name":"ln","nameLocation":"6306:2:21","nodeType":"VariableDeclaration","scope":27241,"src":"6299:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27109,"name":"int256","nodeType":"ElementaryTypeName","src":"6299:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27114,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":27111,"name":"logInput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27096,"src":"6311:8:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6320:5:21","memberName":"lnWad","nodeType":"MemberAccess","referencedDeclaration":26541,"src":"6311:14:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":27113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6311:16:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6299:28:21"},{"assignments":[27116],"declarations":[{"constant":false,"id":27116,"mutability":"mutable","name":"t","nameLocation":"6359:1:21","nodeType":"VariableDeclaration","scope":27241,"src":"6352:8:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27115,"name":"int256","nodeType":"ElementaryTypeName","src":"6352:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27132,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":27123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"6386:4:21","subExpression":{"id":27122,"name":"TWO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26812,"src":"6387:3:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":27124,"name":"ln","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27110,"src":"6392:2:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27121,"name":"muliWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27795,"src":"6378:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":27125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6378:17:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27120,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6370:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":27119,"name":"uint256","nodeType":"ElementaryTypeName","src":"6370:7:21","typeDescriptions":{}}},"id":27126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6370:26:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6397:4:21","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":26589,"src":"6370:31:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":27128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6370:33:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6363:6:21","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":27117,"name":"int256","nodeType":"ElementaryTypeName","src":"6363:6:21","typeDescriptions":{}}},"id":27129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6363:41:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":27130,"name":"HALF_SCALAR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26800,"src":"6407:11:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6363:55:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6352:66:21"},{"assignments":[27134],"declarations":[{"constant":false,"id":27134,"mutability":"mutable","name":"r","nameLocation":"6436:1:21","nodeType":"VariableDeclaration","scope":27241,"src":"6429:8:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27133,"name":"int256","nodeType":"ElementaryTypeName","src":"6429:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27135,"nodeType":"VariableDeclarationStatement","src":"6429:8:21"},{"id":27174,"nodeType":"Block","src":"6447:232:21","statements":[{"assignments":[27137],"declarations":[{"constant":false,"id":27137,"mutability":"mutable","name":"numerator","nameLocation":"6468:9:21","nodeType":"VariableDeclaration","scope":27174,"src":"6461:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27136,"name":"int256","nodeType":"ElementaryTypeName","src":"6461:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27145,"initialValue":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27138,"name":"IERFC_B","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26859,"src":"6481:7:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":27140,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27116,"src":"6499:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":27141,"name":"IERFC_C","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26862,"src":"6502:7:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27139,"name":"muliWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27795,"src":"6491:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":27142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6491:19:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6481:29:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":27144,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6480:31:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6461:50:21"},{"assignments":[27147],"declarations":[{"constant":false,"id":27147,"mutability":"mutable","name":"denominator","nameLocation":"6532:11:21","nodeType":"VariableDeclaration","scope":27174,"src":"6525:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27146,"name":"int256","nodeType":"ElementaryTypeName","src":"6525:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27161,"initialValue":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27148,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26809,"src":"6547:3:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":27150,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27116,"src":"6561:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27151,"name":"IERFC_D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26865,"src":"6565:7:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":27153,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27116,"src":"6583:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":27154,"name":"IERFC_E","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26868,"src":"6586:7:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27152,"name":"muliWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27795,"src":"6575:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":27155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6575:19:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6565:29:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":27157,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6564:31:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27149,"name":"muliWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27795,"src":"6553:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":27158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6553:43:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6547:49:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":27160,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6546:51:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6525:72:21"},{"expression":{"id":27172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27162,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27134,"src":"6611:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27164,"name":"IERFC_A","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26856,"src":"6623:7:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":27166,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27137,"src":"6640:9:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":27167,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27147,"src":"6651:11:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27165,"name":"diviWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27813,"src":"6632:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":27168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6632:31:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":27169,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27116,"src":"6666:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6632:35:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27163,"name":"muliWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27795,"src":"6615:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":27171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6615:53:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6611:57:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27173,"nodeType":"ExpressionStatement","src":"6611:57:21"}]},{"assignments":[27176],"declarations":[{"constant":false,"id":27176,"mutability":"mutable","name":"i","nameLocation":"6697:1:21","nodeType":"VariableDeclaration","scope":27241,"src":"6689:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27175,"name":"uint256","nodeType":"ElementaryTypeName","src":"6689:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27177,"nodeType":"VariableDeclarationStatement","src":"6689:9:21"},{"body":{"id":27229,"nodeType":"Block","src":"6722:322:21","statements":[{"assignments":[27182],"declarations":[{"constant":false,"id":27182,"mutability":"mutable","name":"err","nameLocation":"6743:3:21","nodeType":"VariableDeclaration","scope":27229,"src":"6736:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27181,"name":"int256","nodeType":"ElementaryTypeName","src":"6736:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27188,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":27184,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27134,"src":"6754:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27183,"name":"erfc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27044,"src":"6749:4:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":27185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6749:7:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":27186,"name":"xx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27084,"src":"6759:2:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6749:12:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6736:25:21"},{"assignments":[27190],"declarations":[{"constant":false,"id":27190,"mutability":"mutable","name":"input","nameLocation":"6782:5:21","nodeType":"VariableDeclaration","scope":27229,"src":"6775:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27189,"name":"int256","nodeType":"ElementaryTypeName","src":"6775:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27197,"initialValue":{"id":27196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"6790:16:21","subExpression":{"components":[{"arguments":[{"id":27192,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27134,"src":"6800:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":27193,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27134,"src":"6803:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27191,"name":"muliWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27795,"src":"6792:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":27194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6792:13:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":27195,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6791:15:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6775:31:21"},{"assignments":[27199],"declarations":[{"constant":false,"id":27199,"mutability":"mutable","name":"expWad","nameLocation":"6839:6:21","nodeType":"VariableDeclaration","scope":27229,"src":"6832:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27198,"name":"int256","nodeType":"ElementaryTypeName","src":"6832:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27203,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":27200,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27190,"src":"6848:5:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6854:6:21","memberName":"expWad","nodeType":"MemberAccess","referencedDeclaration":26316,"src":"6848:12:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":27202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6848:14:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6832:30:21"},{"assignments":[27205],"declarations":[{"constant":false,"id":27205,"mutability":"mutable","name":"denom","nameLocation":"6883:5:21","nodeType":"VariableDeclaration","scope":27229,"src":"6876:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27204,"name":"int256","nodeType":"ElementaryTypeName","src":"6876:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27215,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":27207,"name":"IERFC_F","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26871,"src":"6899:7:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":27208,"name":"expWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27199,"src":"6908:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27206,"name":"muliWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27795,"src":"6891:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":27209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6891:24:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":27211,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27134,"src":"6926:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":27212,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27182,"src":"6929:3:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27210,"name":"muliWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27795,"src":"6918:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":27213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6918:15:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6891:42:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6876:57:21"},{"expression":{"id":27223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27216,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27134,"src":"6947:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27217,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27134,"src":"6951:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":27219,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27182,"src":"6963:3:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":27220,"name":"denom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27205,"src":"6968:5:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27218,"name":"diviWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27813,"src":"6955:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":27221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6955:19:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6951:23:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6947:27:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27224,"nodeType":"ExpressionStatement","src":"6947:27:21"},{"id":27228,"nodeType":"UncheckedBlock","src":"6988:46:21","statements":[{"expression":{"id":27226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7016:3:21","subExpression":{"id":27225,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27176,"src":"7018:1:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27227,"nodeType":"ExpressionStatement","src":"7016:3:21"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27178,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27176,"src":"6715:1:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"32","id":27179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6719:1:21","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6715:5:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27230,"nodeType":"WhileStatement","src":"6708:336:21"},{"expression":{"id":27239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27231,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27050,"src":"7054:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27232,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27047,"src":"7058:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":27233,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26809,"src":"7062:3:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7058:7:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":27237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"7072:2:21","subExpression":{"id":27236,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27134,"src":"7073:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"7058:16:21","trueExpression":{"id":27235,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27134,"src":"7068:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7054:20:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27240,"nodeType":"ExpressionStatement","src":"7054:20:21"}]},"documentation":{"id":27045,"nodeType":"StructuredDocumentation","src":"5291:622:21","text":" @notice Approximation of the Inverse Complimentary Error Function - erfc^(-1).\n @dev Equal to `ierfc(erfc(x)) = erfc(ierfc(x))` for 0 < x < 2.\n Related to the Inverse Error Function: `ierfc(1 - x) = ierf(x)`.\n This is a special function with its own identities.\n Domain: 0 < x < 2\n Special values:\n ierfc(0)\t=\t∞\n ierfc(1)\t=\t0\n ierfc(2)\t= -∞\n @custom:error Maximum error of 1e-15 compared to Gaussian.js library.\n @custom:source Numerical Recipes 3e p265.\n @custom:source https://mathworld.wolfram.com/InverseErfc.html."},"implemented":true,"kind":"function","modifiers":[],"name":"ierfc","nameLocation":"5927:5:21","parameters":{"id":27048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27047,"mutability":"mutable","name":"x","nameLocation":"5940:1:21","nodeType":"VariableDeclaration","scope":27242,"src":"5933:8:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27046,"name":"int256","nodeType":"ElementaryTypeName","src":"5933:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"5932:10:21"},"returnParameters":{"id":27051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27050,"mutability":"mutable","name":"z","nameLocation":"5973:1:21","nodeType":"VariableDeclaration","scope":27242,"src":"5966:8:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27049,"name":"int256","nodeType":"ElementaryTypeName","src":"5966:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"5965:10:21"},"scope":27374,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27280,"nodeType":"FunctionDefinition","src":"7612:209:21","nodes":[],"body":{"id":27279,"nodeType":"Block","src":"7668:153:21","nodes":[],"statements":[{"assignments":[27251],"declarations":[{"constant":false,"id":27251,"mutability":"mutable","name":"input","nameLocation":"7685:5:21","nodeType":"VariableDeclaration","scope":27279,"src":"7678:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27250,"name":"int256","nodeType":"ElementaryTypeName","src":"7678:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27258,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27252,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27245,"src":"7694:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":27253,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26809,"src":"7698:3:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7694:7:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":27255,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7693:9:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":27256,"name":"SQRT2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26819,"src":"7705:5:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7693:17:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"7678:32:21"},{"assignments":[27260],"declarations":[{"constant":false,"id":27260,"mutability":"mutable","name":"negated","nameLocation":"7727:7:21","nodeType":"VariableDeclaration","scope":27279,"src":"7720:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27259,"name":"int256","nodeType":"ElementaryTypeName","src":"7720:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27263,"initialValue":{"id":27262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"7737:6:21","subExpression":{"id":27261,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27251,"src":"7738:5:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"7720:23:21"},{"assignments":[27265],"declarations":[{"constant":false,"id":27265,"mutability":"mutable","name":"_erfc","nameLocation":"7760:5:21","nodeType":"VariableDeclaration","scope":27279,"src":"7753:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27264,"name":"int256","nodeType":"ElementaryTypeName","src":"7753:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27269,"initialValue":{"arguments":[{"id":27267,"name":"negated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27260,"src":"7773:7:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27266,"name":"erfc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27044,"src":"7768:4:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":27268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7768:13:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"7753:28:21"},{"expression":{"id":27277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27270,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27248,"src":"7791:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27271,"name":"_erfc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27265,"src":"7796:5:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":27272,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26809,"src":"7804:3:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7796:11:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":27274,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7795:13:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":27275,"name":"TWO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26812,"src":"7811:3:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7795:19:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7791:23:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27278,"nodeType":"ExpressionStatement","src":"7791:23:21"}]},"documentation":{"id":27243,"nodeType":"StructuredDocumentation","src":"7087:520:21","text":" @notice Approximation of the Cumulative Distribution Function.\n @dev Equal to `D(x) = 0.5[ 1 + erf((x - µ) / σ√2)]`.\n Only computes cdf of a distribution with µ = 0 and σ = 1.\n @custom:rounding Rounds down via truncation from division.\n @custom:error Maximum error of 1.2e-7 compared to theoretical cdf.\n @custom:error Maximum error of 1e-15 compared to Gaussian.js library.\n @custom:source https://mathworld.wolfram.com/NormalDistribution.html."},"implemented":true,"kind":"function","modifiers":[],"name":"cdf","nameLocation":"7621:3:21","parameters":{"id":27246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27245,"mutability":"mutable","name":"x","nameLocation":"7632:1:21","nodeType":"VariableDeclaration","scope":27280,"src":"7625:8:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27244,"name":"int256","nodeType":"ElementaryTypeName","src":"7625:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"7624:10:21"},"returnParameters":{"id":27249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27248,"mutability":"mutable","name":"z","nameLocation":"7665:1:21","nodeType":"VariableDeclaration","scope":27280,"src":"7658:8:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27247,"name":"int256","nodeType":"ElementaryTypeName","src":"7658:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"7657:10:21"},"scope":27374,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27314,"nodeType":"FunctionDefinition","src":"8365:156:21","nodes":[],"body":{"id":27313,"nodeType":"Block","src":"8421:100:21","nodes":[],"statements":[{"assignments":[27289],"declarations":[{"constant":false,"id":27289,"mutability":"mutable","name":"e","nameLocation":"8438:1:21","nodeType":"VariableDeclaration","scope":27313,"src":"8431:8:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27288,"name":"int256","nodeType":"ElementaryTypeName","src":"8431:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27297,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"8443:2:21","subExpression":{"id":27290,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27283,"src":"8444:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":27292,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27283,"src":"8448:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8443:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":27294,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8442:8:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":27295,"name":"TWO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26812,"src":"8453:3:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8442:14:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"8431:25:21"},{"expression":{"id":27302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27298,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27289,"src":"8466:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":27299,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27289,"src":"8470:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8472:6:21","memberName":"expWad","nodeType":"MemberAccess","referencedDeclaration":26316,"src":"8470:8:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":27301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8470:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8466:14:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27303,"nodeType":"ExpressionStatement","src":"8466:14:21"},{"expression":{"id":27311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27304,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27286,"src":"8490:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27305,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27289,"src":"8495:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":27306,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26809,"src":"8499:3:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8495:7:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":27308,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8494:9:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":27309,"name":"SQRT_2PI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26790,"src":"8506:8:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8494:20:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8490:24:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27312,"nodeType":"ExpressionStatement","src":"8490:24:21"}]},"documentation":{"id":27281,"nodeType":"StructuredDocumentation","src":"7827:533:21","text":" @notice Approximation of the Probability Density Function.\n @dev Equal to `Z(x) = (1 / σ√2π)e^( (-(x - µ)^2) / 2σ^2 )`.\n Only computes pdf of a distribution with µ = 0 and σ = 1.\n @custom:rounding Rounds down via truncation from division.\n @custom:error Maximum error of 1.2e-7 compared to theoretical pdf.\n @custom:error Maximum error of 1e-15 compared to Gaussian.js library.\n @custom:source https://mathworld.wolfram.com/ProbabilityDensityFunction.html."},"implemented":true,"kind":"function","modifiers":[],"name":"pdf","nameLocation":"8374:3:21","parameters":{"id":27284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27283,"mutability":"mutable","name":"x","nameLocation":"8385:1:21","nodeType":"VariableDeclaration","scope":27314,"src":"8378:8:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27282,"name":"int256","nodeType":"ElementaryTypeName","src":"8378:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8377:10:21"},"returnParameters":{"id":27287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27286,"mutability":"mutable","name":"z","nameLocation":"8418:1:21","nodeType":"VariableDeclaration","scope":27314,"src":"8411:8:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27285,"name":"int256","nodeType":"ElementaryTypeName","src":"8411:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8410:10:21"},"scope":27374,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27373,"nodeType":"FunctionDefinition","src":"9402:337:21","nodes":[],"body":{"id":27372,"nodeType":"Block","src":"9458:281:21","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27322,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27317,"src":"9472:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":27325,"name":"HALF_WAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26771,"src":"9484:8:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27324,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9477:6:21","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":27323,"name":"int256","nodeType":"ElementaryTypeName","src":"9477:6:21","typeDescriptions":{}}},"id":27326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9477:16:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9472:21:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27333,"nodeType":"IfStatement","src":"9468:43:21","trueBody":{"expression":{"arguments":[{"hexValue":"30","id":27330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9509:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":27329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9502:6:21","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":27328,"name":"int256","nodeType":"ElementaryTypeName","src":"9502:6:21","typeDescriptions":{}}},"id":27331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9502:9:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":27321,"id":27332,"nodeType":"Return","src":"9495:16:21"}},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27334,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27317,"src":"9525:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":27335,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26809,"src":"9530:3:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9525:8:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27340,"nodeType":"IfStatement","src":"9521:31:21","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":27337,"name":"Infinity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26761,"src":"9542:8:21","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":27338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9542:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27339,"nodeType":"RevertStatement","src":"9535:17:21"}},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27341,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27317,"src":"9566:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":27342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9571:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9566:6:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27347,"nodeType":"IfStatement","src":"9562:37:21","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":27344,"name":"NegativeInfinity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26763,"src":"9581:16:21","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":27345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9581:18:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27346,"nodeType":"RevertStatement","src":"9574:25:21"}},{"assignments":[27349],"declarations":[{"constant":false,"id":27349,"mutability":"mutable","name":"double","nameLocation":"9616:6:21","nodeType":"VariableDeclaration","scope":27372,"src":"9609:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27348,"name":"int256","nodeType":"ElementaryTypeName","src":"9609:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27353,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27350,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27317,"src":"9625:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":27351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9629:1:21","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9625:5:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"9609:21:21"},{"assignments":[27355],"declarations":[{"constant":false,"id":27355,"mutability":"mutable","name":"_ierfc","nameLocation":"9647:6:21","nodeType":"VariableDeclaration","scope":27372,"src":"9640:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27354,"name":"int256","nodeType":"ElementaryTypeName","src":"9640:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27359,"initialValue":{"arguments":[{"id":27357,"name":"double","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27349,"src":"9662:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27356,"name":"ierfc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27242,"src":"9656:5:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":27358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9656:13:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"9640:29:21"},{"assignments":[27361],"declarations":[{"constant":false,"id":27361,"mutability":"mutable","name":"res","nameLocation":"9686:3:21","nodeType":"VariableDeclaration","scope":27372,"src":"9679:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27360,"name":"int256","nodeType":"ElementaryTypeName","src":"9679:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27366,"initialValue":{"arguments":[{"id":27363,"name":"SQRT2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26819,"src":"9700:5:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":27364,"name":"_ierfc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27355,"src":"9707:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27362,"name":"muliWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27795,"src":"9692:7:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":27365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9692:22:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"9679:35:21"},{"expression":{"id":27370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27367,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27320,"src":"9724:1:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"9728:4:21","subExpression":{"id":27368,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27361,"src":"9729:3:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9724:8:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27371,"nodeType":"ExpressionStatement","src":"9724:8:21"}]},"documentation":{"id":27315,"nodeType":"StructuredDocumentation","src":"8527:870:21","text":" @notice Approximation of the Percent Point Function.\n @dev Equal to `D(x)^(-1) = µ - σ√2(ierfc(2x))`.\n Only computes ppf of a distribution with µ = 0 and σ = 1.\n @custom:error Maximum error of 1.2e-7 compared to theoretical ierfc.\n @custom:error Maximum error of 1e-14 in differential tests vs. javscript implementation.\n This error is for inputs near the upper bound >= 0.99 wad.\n JS uses 64bit floats naturally. 12 bits are assigned to the sign and exponent.\n This leaves 52bit to represent the decimal.\n Taking log_10(2^52) gives roughly 15.65.\n This means that we can really only get 15 digits of accuracy from JS itself.\n The error is in this conversion from fixed point to floating point.\n @custom:source https://mathworld.wolfram.com/NormalDistribution.html."},"implemented":true,"kind":"function","modifiers":[],"name":"ppf","nameLocation":"9411:3:21","parameters":{"id":27318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27317,"mutability":"mutable","name":"x","nameLocation":"9422:1:21","nodeType":"VariableDeclaration","scope":27373,"src":"9415:8:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27316,"name":"int256","nodeType":"ElementaryTypeName","src":"9415:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9414:10:21"},"returnParameters":{"id":27321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27320,"mutability":"mutable","name":"z","nameLocation":"9455:1:21","nodeType":"VariableDeclaration","scope":27373,"src":"9448:8:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27319,"name":"int256","nodeType":"ElementaryTypeName","src":"9448:6:21","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9447:10:21"},"scope":27374,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Gaussian","contractDependencies":[],"contractKind":"library","documentation":{"id":26749,"nodeType":"StructuredDocumentation","src":"126:895:21","text":" @title Gaussian Math Library.\n @author @alexangelj\n @custom:coauthor @0xjepsen\n @custom:coauthor @autoparallel\n @notice Models the normal distribution using the special Complimentary Error Function.\n @dev Only implements a distribution with mean (µ) = 0 and variance (σ) = 1.\n Uses Numerical Recipes as a framework and reference C implemenation.\n Numerical Recipes cites the original textbook written by Abramowitz and Stegun,\n \"Handbook of Mathematical Functions\", which should be read to understand these\n special functions and the implications of their numerical approximations.\n @custom:source Handbook of Mathematical Functions https://personal.math.ubc.ca/~cbm/aands/abramowitz_and_stegun.pdf.\n @custom:source Numerical Recipes https://e-maxx.ru/bookz/files/numerical_recipes.pdf.\n @custom:source Inspired by https://github.com/errcw/gaussian."},"fullyImplemented":true,"linearizedBaseContracts":[27374],"name":"Gaussian","nameLocation":"1030:8:21","scope":27375,"usedErrors":[26761,26763,26765],"usedEvents":[]}],"license":"MIT"},"id":21} \ No newline at end of file diff --git a/out/IDFMM.sol/IDFMM.json b/out/IDFMM.sol/IDFMM.json deleted file mode 100644 index c29dc319..00000000 --- a/out/IDFMM.sol/IDFMM.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"allocate","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"deltaX","type":"uint256","internalType":"uint256"},{"name":"deltaY","type":"uint256","internalType":"uint256"},{"name":"deltaL","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"deallocate","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"deltaX","type":"uint256","internalType":"uint256"},{"name":"deltaY","type":"uint256","internalType":"uint256"},{"name":"deltaL","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getReservesAndLiquidity","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"reserveXWad","type":"uint256","internalType":"uint256"},{"name":"reserveYWad","type":"uint256","internalType":"uint256"},{"name":"totalLiquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"init","inputs":[{"name":"params","type":"tuple","internalType":"struct IDFMM.InitParams","components":[{"name":"strategy","type":"address","internalType":"address"},{"name":"tokenX","type":"address","internalType":"address"},{"name":"tokenY","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"reserveX","type":"uint256","internalType":"uint256"},{"name":"reserveY","type":"uint256","internalType":"uint256"},{"name":"totalLiquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"lpTokenImplementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pools","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"strategy","type":"address","internalType":"address"},{"name":"tokenX","type":"address","internalType":"address"},{"name":"tokenY","type":"address","internalType":"address"},{"name":"reserveX","type":"uint256","internalType":"uint256"},{"name":"reserveY","type":"uint256","internalType":"uint256"},{"name":"totalLiquidity","type":"uint256","internalType":"uint256"},{"name":"liquidityToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"update","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Allocate","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"deltaX","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"deltaY","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"deltaL","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deallocate","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"deltaX","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"deltaY","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"deltaL","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Init","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"strategy","type":"address","indexed":false,"internalType":"address"},{"name":"lpToken","type":"address","indexed":false,"internalType":"address"},{"name":"tokenX","type":"address","indexed":true,"internalType":"address"},{"name":"tokenY","type":"address","indexed":true,"internalType":"address"},{"name":"poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"reserveX","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"reserveY","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"totalLiquidity","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Swap","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"isSwapXForY","type":"bool","indexed":false,"internalType":"bool"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ERC1167FailedCreateClone","inputs":[]},{"type":"error","name":"Invalid","inputs":[{"name":"negative","type":"bool","internalType":"bool"},{"name":"swapConstantGrowth","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidSwap","inputs":[]},{"type":"error","name":"InvalidSwapInputTransfer","inputs":[]},{"type":"error","name":"InvalidSwapOutputTransfer","inputs":[]},{"type":"error","name":"InvalidTokens","inputs":[]},{"type":"error","name":"Locked","inputs":[]},{"type":"error","name":"OnlyWETH","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allocate(uint256,bytes)":"2ec38188","deallocate(uint256,bytes)":"9d942f9a","getReservesAndLiquidity(uint256)":"ce153bf4","init((address,address,address,bytes))":"1455f1fc","lpTokenImplementation()":"b462cd25","pools(uint256)":"ac4afa38","swap(uint256,bytes)":"bd0625ab","update(uint256,bytes)":"0216b838"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ERC1167FailedCreateClone\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"negative\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"swapConstantGrowth\",\"type\":\"uint256\"}],\"name\":\"Invalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSwap\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSwapInputTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSwapOutputTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Locked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyWETH\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deltaX\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deltaY\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deltaL\",\"type\":\"uint256\"}],\"name\":\"Allocate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deltaX\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deltaY\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deltaL\",\"type\":\"uint256\"}],\"name\":\"Deallocate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"lpToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenX\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenY\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalLiquidity\",\"type\":\"uint256\"}],\"name\":\"Init\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSwapXForY\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"allocate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deltaY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deltaL\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"deallocate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deltaX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deltaY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deltaL\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getReservesAndLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveXWad\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveYWad\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalLiquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenX\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenY\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct IDFMM.InitParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"init\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalLiquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lpTokenImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"pools\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenX\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenY\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalLiquidity\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"liquidityToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"update\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Primitive\",\"errors\":{\"ERC1167FailedCreateClone()\":[{\"details\":\"Thrown when a clone contract could not be deployed.\"}],\"Invalid(bool,uint256)\":[{\"details\":\"Thrown when the invariant is invalid.\"}],\"InvalidSwap()\":[{\"details\":\"Thrown when the reserves are invalid after a swap.\"}],\"InvalidSwapInputTransfer()\":[{\"details\":\"Thrown when the transfer of the input amount is invalid.\"}],\"InvalidSwapOutputTransfer()\":[{\"details\":\"Thrown when the transfer of the output amount is invalid.\"}],\"InvalidTokens()\":[{\"details\":\"Thrown when pool tokens are identical.\"}],\"Locked()\":[{\"details\":\"Thrown when a new call is made during a locked state.\"}]},\"events\":{\"Allocate(address,uint256,uint256,uint256,uint256)\":{\"params\":{\"account\":\"Address allocating liquidity.\",\"deltaL\":\"Amount of liquidity received by the allocator.\",\"deltaX\":\"Amount of token X being allocated.\",\"deltaY\":\"Amount of token Y being allocated.\"}},\"Deallocate(address,uint256,uint256,uint256,uint256)\":{\"params\":{\"account\":\"Address deallocating liquidity.\",\"deltaL\":\"Amount of liquidity being deallocated.\",\"deltaX\":\"Amount of token X being deallocated.\",\"deltaY\":\"Amount of token Y being deallocated.\"}},\"Init(address,address,address,address,address,uint256,uint256,uint256,uint256)\":{\"params\":{\"account\":\"Address initializing the pool.\",\"reserveX\":\"Initial reserve of token X in the pool.\",\"reserveY\":\"Initial reserve of token Y in the pool.\",\"totalLiquidity\":\"Initial liquidity in the pool.\"}},\"Swap(address,uint256,bool,uint256,uint256)\":{\"params\":{\"account\":\"Address making the swap.\",\"inputAmount\":\"Amount of token sent by the swapper.\",\"isSwapXForY\":\"True if token X are being swapped for token Y.\",\"outputAmount\":\"Amount of token received by the swapper.\"}}},\"kind\":\"dev\",\"methods\":{\"allocate(uint256,bytes)\":{\"params\":{\"data\":\"An array of bytes used by the strategy contract.\",\"poolId\":\"Id of the pool to allocate liquidity into.\"},\"returns\":{\"deltaL\":\"Amount of liquidity received by the allocator.\",\"deltaX\":\"Amount of token X allocated into the pool.\",\"deltaY\":\"Amount of token Y allocated into the pool.\"}},\"deallocate(uint256,bytes)\":{\"params\":{\"data\":\"An array of bytes used by the strategy contract.\",\"poolId\":\"Id of the pool to deallocate liquidity from.\"},\"returns\":{\"deltaL\":\"Amount of liquidity being deallocated.\",\"deltaX\":\"Amount of token X deallocated from the pool.\",\"deltaY\":\"Amount of token Y deallocated from the pool.\"}},\"init((address,address,address,bytes))\":{\"params\":{\"params\":\"A struct containing the initialization parameters.\"},\"returns\":{\"poolId\":\"Id of the newly initialized pool.\",\"reserveX\":\"Initial amount of token X in the pool.\",\"reserveY\":\"Initial amount of token Y in the pool.\",\"totalLiquidity\":\"Initial amount of liquidity in the pool.\"}},\"swap(uint256,bytes)\":{\"params\":{\"data\":\"An array of bytes used by the strategy contract.\",\"poolId\":\"Id of the pool to swap tokens into.\"},\"returns\":{\"inputAmount\":\"Amount of tokens sent to the DFMM contract.\",\"outputAmount\":\"Amount of tokens received by the swapper.\"}},\"update(uint256,bytes)\":{\"params\":{\"data\":\"An array of bytes used by the strategy contract.\",\"poolId\":\"Id of the pool to update.\"}}},\"title\":\"DFMM Interface\",\"version\":1},\"userdoc\":{\"events\":{\"Allocate(address,uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when liquidity is allocated into the pool.\"},\"Deallocate(address,uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when liquidity is deallocated from the pool.\"},\"Init(address,address,address,address,address,uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when the pool is initialized.\"},\"Swap(address,uint256,bool,uint256,uint256)\":{\"notice\":\"Emitted when a swap is made.\"}},\"kind\":\"user\",\"methods\":{\"allocate(uint256,bytes)\":{\"notice\":\"Allocates liquidity into the pool `poolId`.\"},\"deallocate(uint256,bytes)\":{\"notice\":\"Deallocates liquidity from the pool `poolId`.\"},\"init((address,address,address,bytes))\":{\"notice\":\"Intializes a new pool.\"},\"lpTokenImplementation()\":{\"notice\":\"Address of the implementation of the LPToken contract.\"},\"swap(uint256,bytes)\":{\"notice\":\"Swaps tokens into pool `poolId`.\"},\"update(uint256,bytes)\":{\"notice\":\"Updates pool `poolId` by calling the associated strategy.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IDFMM.sol\":\"IDFMM\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ERC1167FailedCreateClone"},{"inputs":[{"internalType":"bool","name":"negative","type":"bool"},{"internalType":"uint256","name":"swapConstantGrowth","type":"uint256"}],"type":"error","name":"Invalid"},{"inputs":[],"type":"error","name":"InvalidSwap"},{"inputs":[],"type":"error","name":"InvalidSwapInputTransfer"},{"inputs":[],"type":"error","name":"InvalidSwapOutputTransfer"},{"inputs":[],"type":"error","name":"InvalidTokens"},{"inputs":[],"type":"error","name":"Locked"},{"inputs":[],"type":"error","name":"OnlyWETH"},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"poolId","type":"uint256","indexed":false},{"internalType":"uint256","name":"deltaX","type":"uint256","indexed":false},{"internalType":"uint256","name":"deltaY","type":"uint256","indexed":false},{"internalType":"uint256","name":"deltaL","type":"uint256","indexed":false}],"type":"event","name":"Allocate","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"poolId","type":"uint256","indexed":false},{"internalType":"uint256","name":"deltaX","type":"uint256","indexed":false},{"internalType":"uint256","name":"deltaY","type":"uint256","indexed":false},{"internalType":"uint256","name":"deltaL","type":"uint256","indexed":false}],"type":"event","name":"Deallocate","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"strategy","type":"address","indexed":false},{"internalType":"address","name":"lpToken","type":"address","indexed":false},{"internalType":"address","name":"tokenX","type":"address","indexed":true},{"internalType":"address","name":"tokenY","type":"address","indexed":true},{"internalType":"uint256","name":"poolId","type":"uint256","indexed":false},{"internalType":"uint256","name":"reserveX","type":"uint256","indexed":false},{"internalType":"uint256","name":"reserveY","type":"uint256","indexed":false},{"internalType":"uint256","name":"totalLiquidity","type":"uint256","indexed":false}],"type":"event","name":"Init","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"bool","name":"isSwapXForY","type":"bool","indexed":false},{"internalType":"uint256","name":"inputAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"outputAmount","type":"uint256","indexed":false}],"type":"event","name":"Swap","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"allocate","outputs":[{"internalType":"uint256","name":"deltaX","type":"uint256"},{"internalType":"uint256","name":"deltaY","type":"uint256"},{"internalType":"uint256","name":"deltaL","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"deallocate","outputs":[{"internalType":"uint256","name":"deltaX","type":"uint256"},{"internalType":"uint256","name":"deltaY","type":"uint256"},{"internalType":"uint256","name":"deltaL","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getReservesAndLiquidity","outputs":[{"internalType":"uint256","name":"reserveXWad","type":"uint256"},{"internalType":"uint256","name":"reserveYWad","type":"uint256"},{"internalType":"uint256","name":"totalLiquidity","type":"uint256"}]},{"inputs":[{"internalType":"struct IDFMM.InitParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"strategy","type":"address"},{"internalType":"address","name":"tokenX","type":"address"},{"internalType":"address","name":"tokenY","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"init","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"reserveX","type":"uint256"},{"internalType":"uint256","name":"reserveY","type":"uint256"},{"internalType":"uint256","name":"totalLiquidity","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lpTokenImplementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"pools","outputs":[{"internalType":"address","name":"strategy","type":"address"},{"internalType":"address","name":"tokenX","type":"address"},{"internalType":"address","name":"tokenY","type":"address"},{"internalType":"uint256","name":"reserveX","type":"uint256"},{"internalType":"uint256","name":"reserveY","type":"uint256"},{"internalType":"uint256","name":"totalLiquidity","type":"uint256"},{"internalType":"address","name":"liquidityToken","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"outputAmount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"update"}],"devdoc":{"kind":"dev","methods":{"allocate(uint256,bytes)":{"params":{"data":"An array of bytes used by the strategy contract.","poolId":"Id of the pool to allocate liquidity into."},"returns":{"deltaL":"Amount of liquidity received by the allocator.","deltaX":"Amount of token X allocated into the pool.","deltaY":"Amount of token Y allocated into the pool."}},"deallocate(uint256,bytes)":{"params":{"data":"An array of bytes used by the strategy contract.","poolId":"Id of the pool to deallocate liquidity from."},"returns":{"deltaL":"Amount of liquidity being deallocated.","deltaX":"Amount of token X deallocated from the pool.","deltaY":"Amount of token Y deallocated from the pool."}},"init((address,address,address,bytes))":{"params":{"params":"A struct containing the initialization parameters."},"returns":{"poolId":"Id of the newly initialized pool.","reserveX":"Initial amount of token X in the pool.","reserveY":"Initial amount of token Y in the pool.","totalLiquidity":"Initial amount of liquidity in the pool."}},"swap(uint256,bytes)":{"params":{"data":"An array of bytes used by the strategy contract.","poolId":"Id of the pool to swap tokens into."},"returns":{"inputAmount":"Amount of tokens sent to the DFMM contract.","outputAmount":"Amount of tokens received by the swapper."}},"update(uint256,bytes)":{"params":{"data":"An array of bytes used by the strategy contract.","poolId":"Id of the pool to update."}}},"version":1},"userdoc":{"kind":"user","methods":{"allocate(uint256,bytes)":{"notice":"Allocates liquidity into the pool `poolId`."},"deallocate(uint256,bytes)":{"notice":"Deallocates liquidity from the pool `poolId`."},"init((address,address,address,bytes))":{"notice":"Intializes a new pool."},"lpTokenImplementation()":{"notice":"Address of the implementation of the LPToken contract."},"swap(uint256,bytes)":{"notice":"Swaps tokens into pool `poolId`."},"update(uint256,bytes)":{"notice":"Updates pool `poolId` by calling the associated strategy."}},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IDFMM.sol":"IDFMM"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"}},"version":1},"ast":{"absolutePath":"src/interfaces/IDFMM.sol","id":29731,"exportedSymbols":{"IDFMM":[29730]},"nodeType":"SourceUnit","src":"45:6414:26","nodes":[{"id":29518,"nodeType":"PragmaDirective","src":"45:24:26","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":29730,"nodeType":"ContractDefinition","src":"125:6333:26","nodes":[{"id":29534,"nodeType":"StructDefinition","src":"163:209:26","nodes":[],"canonicalName":"IDFMM.Pool","members":[{"constant":false,"id":29521,"mutability":"mutable","name":"strategy","nameLocation":"193:8:26","nodeType":"VariableDeclaration","scope":29534,"src":"185:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29520,"name":"address","nodeType":"ElementaryTypeName","src":"185:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29523,"mutability":"mutable","name":"tokenX","nameLocation":"219:6:26","nodeType":"VariableDeclaration","scope":29534,"src":"211:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29522,"name":"address","nodeType":"ElementaryTypeName","src":"211:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29525,"mutability":"mutable","name":"tokenY","nameLocation":"243:6:26","nodeType":"VariableDeclaration","scope":29534,"src":"235:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29524,"name":"address","nodeType":"ElementaryTypeName","src":"235:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29527,"mutability":"mutable","name":"reserveX","nameLocation":"267:8:26","nodeType":"VariableDeclaration","scope":29534,"src":"259:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29526,"name":"uint256","nodeType":"ElementaryTypeName","src":"259:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29529,"mutability":"mutable","name":"reserveY","nameLocation":"293:8:26","nodeType":"VariableDeclaration","scope":29534,"src":"285:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29528,"name":"uint256","nodeType":"ElementaryTypeName","src":"285:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29531,"mutability":"mutable","name":"totalLiquidity","nameLocation":"319:14:26","nodeType":"VariableDeclaration","scope":29534,"src":"311:22:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29530,"name":"uint256","nodeType":"ElementaryTypeName","src":"311:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29533,"mutability":"mutable","name":"liquidityToken","nameLocation":"351:14:26","nodeType":"VariableDeclaration","scope":29534,"src":"343:22:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29532,"name":"address","nodeType":"ElementaryTypeName","src":"343:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Pool","nameLocation":"170:4:26","scope":29730,"visibility":"public"},{"id":29543,"nodeType":"StructDefinition","src":"378:119:26","nodes":[],"canonicalName":"IDFMM.InitParams","members":[{"constant":false,"id":29536,"mutability":"mutable","name":"strategy","nameLocation":"414:8:26","nodeType":"VariableDeclaration","scope":29543,"src":"406:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29535,"name":"address","nodeType":"ElementaryTypeName","src":"406:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29538,"mutability":"mutable","name":"tokenX","nameLocation":"440:6:26","nodeType":"VariableDeclaration","scope":29543,"src":"432:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29537,"name":"address","nodeType":"ElementaryTypeName","src":"432:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29540,"mutability":"mutable","name":"tokenY","nameLocation":"464:6:26","nodeType":"VariableDeclaration","scope":29543,"src":"456:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29539,"name":"address","nodeType":"ElementaryTypeName","src":"456:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29542,"mutability":"mutable","name":"data","nameLocation":"486:4:26","nodeType":"VariableDeclaration","scope":29543,"src":"480:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":29541,"name":"bytes","nodeType":"ElementaryTypeName","src":"480:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"InitParams","nameLocation":"385:10:26","scope":29730,"visibility":"public"},{"id":29545,"nodeType":"ErrorDefinition","src":"518:17:26","nodes":[],"errorSelector":"01f180c9","name":"OnlyWETH","nameLocation":"524:8:26","parameters":{"id":29544,"nodeType":"ParameterList","parameters":[],"src":"532:2:26"}},{"id":29552,"nodeType":"ErrorDefinition","src":"592:57:26","nodes":[],"documentation":{"id":29546,"nodeType":"StructuredDocumentation","src":"541:46:26","text":"@dev Thrown when the invariant is invalid."},"errorSelector":"eec0da52","name":"Invalid","nameLocation":"598:7:26","parameters":{"id":29551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29548,"mutability":"mutable","name":"negative","nameLocation":"611:8:26","nodeType":"VariableDeclaration","scope":29552,"src":"606:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29547,"name":"bool","nodeType":"ElementaryTypeName","src":"606:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29550,"mutability":"mutable","name":"swapConstantGrowth","nameLocation":"629:18:26","nodeType":"VariableDeclaration","scope":29552,"src":"621:26:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29549,"name":"uint256","nodeType":"ElementaryTypeName","src":"621:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"605:43:26"}},{"id":29555,"nodeType":"ErrorDefinition","src":"707:22:26","nodes":[],"documentation":{"id":29553,"nodeType":"StructuredDocumentation","src":"655:47:26","text":"@dev Thrown when pool tokens are identical."},"errorSelector":"672215de","name":"InvalidTokens","nameLocation":"713:13:26","parameters":{"id":29554,"nodeType":"ParameterList","parameters":[],"src":"726:2:26"}},{"id":29558,"nodeType":"ErrorDefinition","src":"802:15:26","nodes":[],"documentation":{"id":29556,"nodeType":"StructuredDocumentation","src":"735:62:26","text":"@dev Thrown when a new call is made during a locked state."},"errorSelector":"0f2e5b6c","name":"Locked","nameLocation":"808:6:26","parameters":{"id":29557,"nodeType":"ParameterList","parameters":[],"src":"814:2:26"}},{"id":29561,"nodeType":"ErrorDefinition","src":"887:20:26","nodes":[],"documentation":{"id":29559,"nodeType":"StructuredDocumentation","src":"823:59:26","text":"@dev Thrown when the reserves are invalid after a swap."},"errorSelector":"11157667","name":"InvalidSwap","nameLocation":"893:11:26","parameters":{"id":29560,"nodeType":"ParameterList","parameters":[],"src":"904:2:26"}},{"id":29564,"nodeType":"ErrorDefinition","src":"983:33:26","nodes":[],"documentation":{"id":29562,"nodeType":"StructuredDocumentation","src":"913:65:26","text":"@dev Thrown when the transfer of the input amount is invalid."},"errorSelector":"80f64074","name":"InvalidSwapInputTransfer","nameLocation":"989:24:26","parameters":{"id":29563,"nodeType":"ParameterList","parameters":[],"src":"1013:2:26"}},{"id":29567,"nodeType":"ErrorDefinition","src":"1093:34:26","nodes":[],"documentation":{"id":29565,"nodeType":"StructuredDocumentation","src":"1022:66:26","text":"@dev Thrown when the transfer of the output amount is invalid."},"errorSelector":"f3cbbc87","name":"InvalidSwapOutputTransfer","nameLocation":"1099:25:26","parameters":{"id":29566,"nodeType":"ParameterList","parameters":[],"src":"1124:2:26"}},{"id":29570,"nodeType":"ErrorDefinition","src":"1198:33:26","nodes":[],"documentation":{"id":29568,"nodeType":"StructuredDocumentation","src":"1133:60:26","text":"@dev Thrown when a clone contract could not be deployed."},"errorSelector":"c2f868f4","name":"ERC1167FailedCreateClone","nameLocation":"1204:24:26","parameters":{"id":29569,"nodeType":"ParameterList","parameters":[],"src":"1228:2:26"}},{"id":29591,"nodeType":"EventDefinition","src":"1560:273:26","nodes":[],"anonymous":false,"documentation":{"id":29571,"nodeType":"StructuredDocumentation","src":"1252:303:26","text":" @notice Emitted when the pool is initialized.\n @param account Address initializing the pool.\n @param reserveX Initial reserve of token X in the pool.\n @param reserveY Initial reserve of token Y in the pool.\n @param totalLiquidity Initial liquidity in the pool."},"eventSelector":"460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e","name":"Init","nameLocation":"1566:4:26","parameters":{"id":29590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29573,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1596:7:26","nodeType":"VariableDeclaration","scope":29591,"src":"1580:23:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29572,"name":"address","nodeType":"ElementaryTypeName","src":"1580:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29575,"indexed":false,"mutability":"mutable","name":"strategy","nameLocation":"1621:8:26","nodeType":"VariableDeclaration","scope":29591,"src":"1613:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29574,"name":"address","nodeType":"ElementaryTypeName","src":"1613:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29577,"indexed":false,"mutability":"mutable","name":"lpToken","nameLocation":"1647:7:26","nodeType":"VariableDeclaration","scope":29591,"src":"1639:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29576,"name":"address","nodeType":"ElementaryTypeName","src":"1639:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29579,"indexed":true,"mutability":"mutable","name":"tokenX","nameLocation":"1680:6:26","nodeType":"VariableDeclaration","scope":29591,"src":"1664:22:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29578,"name":"address","nodeType":"ElementaryTypeName","src":"1664:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29581,"indexed":true,"mutability":"mutable","name":"tokenY","nameLocation":"1712:6:26","nodeType":"VariableDeclaration","scope":29591,"src":"1696:22:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29580,"name":"address","nodeType":"ElementaryTypeName","src":"1696:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29583,"indexed":false,"mutability":"mutable","name":"poolId","nameLocation":"1736:6:26","nodeType":"VariableDeclaration","scope":29591,"src":"1728:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29582,"name":"uint256","nodeType":"ElementaryTypeName","src":"1728:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29585,"indexed":false,"mutability":"mutable","name":"reserveX","nameLocation":"1760:8:26","nodeType":"VariableDeclaration","scope":29591,"src":"1752:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29584,"name":"uint256","nodeType":"ElementaryTypeName","src":"1752:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29587,"indexed":false,"mutability":"mutable","name":"reserveY","nameLocation":"1786:8:26","nodeType":"VariableDeclaration","scope":29591,"src":"1778:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29586,"name":"uint256","nodeType":"ElementaryTypeName","src":"1778:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29589,"indexed":false,"mutability":"mutable","name":"totalLiquidity","nameLocation":"1812:14:26","nodeType":"VariableDeclaration","scope":29591,"src":"1804:22:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29588,"name":"uint256","nodeType":"ElementaryTypeName","src":"1804:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1570:262:26"}},{"id":29604,"nodeType":"EventDefinition","src":"2153:150:26","nodes":[],"anonymous":false,"documentation":{"id":29592,"nodeType":"StructuredDocumentation","src":"1839:309:26","text":" @notice Emitted when liquidity is allocated into the pool.\n @param account Address allocating liquidity.\n @param deltaX Amount of token X being allocated.\n @param deltaY Amount of token Y being allocated.\n @param deltaL Amount of liquidity received by the allocator."},"eventSelector":"9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f","name":"Allocate","nameLocation":"2159:8:26","parameters":{"id":29603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29594,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"2193:7:26","nodeType":"VariableDeclaration","scope":29604,"src":"2177:23:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29593,"name":"address","nodeType":"ElementaryTypeName","src":"2177:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29596,"indexed":false,"mutability":"mutable","name":"poolId","nameLocation":"2218:6:26","nodeType":"VariableDeclaration","scope":29604,"src":"2210:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29595,"name":"uint256","nodeType":"ElementaryTypeName","src":"2210:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29598,"indexed":false,"mutability":"mutable","name":"deltaX","nameLocation":"2242:6:26","nodeType":"VariableDeclaration","scope":29604,"src":"2234:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29597,"name":"uint256","nodeType":"ElementaryTypeName","src":"2234:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29600,"indexed":false,"mutability":"mutable","name":"deltaY","nameLocation":"2266:6:26","nodeType":"VariableDeclaration","scope":29604,"src":"2258:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29599,"name":"uint256","nodeType":"ElementaryTypeName","src":"2258:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29602,"indexed":false,"mutability":"mutable","name":"deltaL","nameLocation":"2290:6:26","nodeType":"VariableDeclaration","scope":29604,"src":"2282:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29601,"name":"uint256","nodeType":"ElementaryTypeName","src":"2282:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2167:135:26"}},{"id":29617,"nodeType":"EventDefinition","src":"2623:152:26","nodes":[],"anonymous":false,"documentation":{"id":29605,"nodeType":"StructuredDocumentation","src":"2309:309:26","text":" @notice Emitted when liquidity is deallocated from the pool.\n @param account Address deallocating liquidity.\n @param deltaX Amount of token X being deallocated.\n @param deltaY Amount of token Y being deallocated.\n @param deltaL Amount of liquidity being deallocated."},"eventSelector":"acbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e","name":"Deallocate","nameLocation":"2629:10:26","parameters":{"id":29616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29607,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"2665:7:26","nodeType":"VariableDeclaration","scope":29617,"src":"2649:23:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29606,"name":"address","nodeType":"ElementaryTypeName","src":"2649:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29609,"indexed":false,"mutability":"mutable","name":"poolId","nameLocation":"2690:6:26","nodeType":"VariableDeclaration","scope":29617,"src":"2682:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29608,"name":"uint256","nodeType":"ElementaryTypeName","src":"2682:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29611,"indexed":false,"mutability":"mutable","name":"deltaX","nameLocation":"2714:6:26","nodeType":"VariableDeclaration","scope":29617,"src":"2706:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29610,"name":"uint256","nodeType":"ElementaryTypeName","src":"2706:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29613,"indexed":false,"mutability":"mutable","name":"deltaY","nameLocation":"2738:6:26","nodeType":"VariableDeclaration","scope":29617,"src":"2730:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29612,"name":"uint256","nodeType":"ElementaryTypeName","src":"2730:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29615,"indexed":false,"mutability":"mutable","name":"deltaL","nameLocation":"2762:6:26","nodeType":"VariableDeclaration","scope":29617,"src":"2754:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29614,"name":"uint256","nodeType":"ElementaryTypeName","src":"2754:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2639:135:26"}},{"id":29630,"nodeType":"EventDefinition","src":"3092:167:26","nodes":[],"anonymous":false,"documentation":{"id":29618,"nodeType":"StructuredDocumentation","src":"2781:306:26","text":" @notice Emitted when a swap is made.\n @param account Address making the swap.\n @param isSwapXForY True if token X are being swapped for token Y.\n @param inputAmount Amount of token sent by the swapper.\n @param outputAmount Amount of token received by the swapper."},"eventSelector":"4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed","name":"Swap","nameLocation":"3098:4:26","parameters":{"id":29629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29620,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"3128:7:26","nodeType":"VariableDeclaration","scope":29630,"src":"3112:23:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29619,"name":"address","nodeType":"ElementaryTypeName","src":"3112:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29622,"indexed":true,"mutability":"mutable","name":"poolId","nameLocation":"3161:6:26","nodeType":"VariableDeclaration","scope":29630,"src":"3145:22:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29621,"name":"uint256","nodeType":"ElementaryTypeName","src":"3145:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29624,"indexed":false,"mutability":"mutable","name":"isSwapXForY","nameLocation":"3182:11:26","nodeType":"VariableDeclaration","scope":29630,"src":"3177:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29623,"name":"bool","nodeType":"ElementaryTypeName","src":"3177:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29626,"indexed":false,"mutability":"mutable","name":"inputAmount","nameLocation":"3211:11:26","nodeType":"VariableDeclaration","scope":29630,"src":"3203:19:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29625,"name":"uint256","nodeType":"ElementaryTypeName","src":"3203:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29628,"indexed":false,"mutability":"mutable","name":"outputAmount","nameLocation":"3240:12:26","nodeType":"VariableDeclaration","scope":29630,"src":"3232:20:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29627,"name":"uint256","nodeType":"ElementaryTypeName","src":"3232:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3102:156:26"}},{"id":29645,"nodeType":"FunctionDefinition","src":"3660:226:26","nodes":[],"documentation":{"id":29631,"nodeType":"StructuredDocumentation","src":"3281:374:26","text":" @notice Intializes a new pool.\n @param params A struct containing the initialization parameters.\n @return poolId Id of the newly initialized pool.\n @return reserveX Initial amount of token X in the pool.\n @return reserveY Initial amount of token Y in the pool.\n @return totalLiquidity Initial amount of liquidity in the pool."},"functionSelector":"1455f1fc","implemented":false,"kind":"function","modifiers":[],"name":"init","nameLocation":"3669:4:26","parameters":{"id":29635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29634,"mutability":"mutable","name":"params","nameLocation":"3694:6:26","nodeType":"VariableDeclaration","scope":29645,"src":"3674:26:26","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_calldata_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":29633,"nodeType":"UserDefinedTypeName","pathNode":{"id":29632,"name":"InitParams","nameLocations":["3674:10:26"],"nodeType":"IdentifierPath","referencedDeclaration":29543,"src":"3674:10:26"},"referencedDeclaration":29543,"src":"3674:10:26","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"src":"3673:28:26"},"returnParameters":{"id":29644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29637,"mutability":"mutable","name":"poolId","nameLocation":"3773:6:26","nodeType":"VariableDeclaration","scope":29645,"src":"3765:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29636,"name":"uint256","nodeType":"ElementaryTypeName","src":"3765:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29639,"mutability":"mutable","name":"reserveX","nameLocation":"3801:8:26","nodeType":"VariableDeclaration","scope":29645,"src":"3793:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29638,"name":"uint256","nodeType":"ElementaryTypeName","src":"3793:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29641,"mutability":"mutable","name":"reserveY","nameLocation":"3831:8:26","nodeType":"VariableDeclaration","scope":29645,"src":"3823:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29640,"name":"uint256","nodeType":"ElementaryTypeName","src":"3823:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29643,"mutability":"mutable","name":"totalLiquidity","nameLocation":"3861:14:26","nodeType":"VariableDeclaration","scope":29645,"src":"3853:22:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29642,"name":"uint256","nodeType":"ElementaryTypeName","src":"3853:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3751:134:26"},"scope":29730,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":29659,"nodeType":"FunctionDefinition","src":"4298:175:26","nodes":[],"documentation":{"id":29646,"nodeType":"StructuredDocumentation","src":"3892:401:26","text":" @notice Allocates liquidity into the pool `poolId`.\n @param poolId Id of the pool to allocate liquidity into.\n @param data An array of bytes used by the strategy contract.\n @return deltaX Amount of token X allocated into the pool.\n @return deltaY Amount of token Y allocated into the pool.\n @return deltaL Amount of liquidity received by the allocator."},"functionSelector":"2ec38188","implemented":false,"kind":"function","modifiers":[],"name":"allocate","nameLocation":"4307:8:26","parameters":{"id":29651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29648,"mutability":"mutable","name":"poolId","nameLocation":"4333:6:26","nodeType":"VariableDeclaration","scope":29659,"src":"4325:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29647,"name":"uint256","nodeType":"ElementaryTypeName","src":"4325:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29650,"mutability":"mutable","name":"data","nameLocation":"4364:4:26","nodeType":"VariableDeclaration","scope":29659,"src":"4349:19:26","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":29649,"name":"bytes","nodeType":"ElementaryTypeName","src":"4349:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4315:59:26"},"returnParameters":{"id":29658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29653,"mutability":"mutable","name":"deltaX","nameLocation":"4433:6:26","nodeType":"VariableDeclaration","scope":29659,"src":"4425:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29652,"name":"uint256","nodeType":"ElementaryTypeName","src":"4425:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29655,"mutability":"mutable","name":"deltaY","nameLocation":"4449:6:26","nodeType":"VariableDeclaration","scope":29659,"src":"4441:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29654,"name":"uint256","nodeType":"ElementaryTypeName","src":"4441:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29657,"mutability":"mutable","name":"deltaL","nameLocation":"4465:6:26","nodeType":"VariableDeclaration","scope":29659,"src":"4457:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29656,"name":"uint256","nodeType":"ElementaryTypeName","src":"4457:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4424:48:26"},"scope":29730,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":29673,"nodeType":"FunctionDefinition","src":"4885:145:26","nodes":[],"documentation":{"id":29660,"nodeType":"StructuredDocumentation","src":"4479:401:26","text":" @notice Deallocates liquidity from the pool `poolId`.\n @param poolId Id of the pool to deallocate liquidity from.\n @param data An array of bytes used by the strategy contract.\n @return deltaX Amount of token X deallocated from the pool.\n @return deltaY Amount of token Y deallocated from the pool.\n @return deltaL Amount of liquidity being deallocated."},"functionSelector":"9d942f9a","implemented":false,"kind":"function","modifiers":[],"name":"deallocate","nameLocation":"4894:10:26","parameters":{"id":29665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29662,"mutability":"mutable","name":"poolId","nameLocation":"4922:6:26","nodeType":"VariableDeclaration","scope":29673,"src":"4914:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29661,"name":"uint256","nodeType":"ElementaryTypeName","src":"4914:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29664,"mutability":"mutable","name":"data","nameLocation":"4953:4:26","nodeType":"VariableDeclaration","scope":29673,"src":"4938:19:26","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":29663,"name":"bytes","nodeType":"ElementaryTypeName","src":"4938:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4904:59:26"},"returnParameters":{"id":29672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29667,"mutability":"mutable","name":"deltaX","nameLocation":"4990:6:26","nodeType":"VariableDeclaration","scope":29673,"src":"4982:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29666,"name":"uint256","nodeType":"ElementaryTypeName","src":"4982:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29669,"mutability":"mutable","name":"deltaY","nameLocation":"5006:6:26","nodeType":"VariableDeclaration","scope":29673,"src":"4998:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29668,"name":"uint256","nodeType":"ElementaryTypeName","src":"4998:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29671,"mutability":"mutable","name":"deltaL","nameLocation":"5022:6:26","nodeType":"VariableDeclaration","scope":29673,"src":"5014:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29670,"name":"uint256","nodeType":"ElementaryTypeName","src":"5014:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4981:48:26"},"scope":29730,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":29685,"nodeType":"FunctionDefinition","src":"5366:134:26","nodes":[],"documentation":{"id":29674,"nodeType":"StructuredDocumentation","src":"5036:325:26","text":" @notice Swaps tokens into pool `poolId`.\n @param poolId Id of the pool to swap tokens into.\n @param data An array of bytes used by the strategy contract.\n @return inputAmount Amount of tokens sent to the DFMM contract.\n @return outputAmount Amount of tokens received by the swapper."},"functionSelector":"bd0625ab","implemented":false,"kind":"function","modifiers":[],"name":"swap","nameLocation":"5375:4:26","parameters":{"id":29679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29676,"mutability":"mutable","name":"poolId","nameLocation":"5397:6:26","nodeType":"VariableDeclaration","scope":29685,"src":"5389:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29675,"name":"uint256","nodeType":"ElementaryTypeName","src":"5389:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29678,"mutability":"mutable","name":"data","nameLocation":"5428:4:26","nodeType":"VariableDeclaration","scope":29685,"src":"5413:19:26","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":29677,"name":"bytes","nodeType":"ElementaryTypeName","src":"5413:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5379:59:26"},"returnParameters":{"id":29684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29681,"mutability":"mutable","name":"inputAmount","nameLocation":"5465:11:26","nodeType":"VariableDeclaration","scope":29685,"src":"5457:19:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29680,"name":"uint256","nodeType":"ElementaryTypeName","src":"5457:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29683,"mutability":"mutable","name":"outputAmount","nameLocation":"5486:12:26","nodeType":"VariableDeclaration","scope":29685,"src":"5478:20:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29682,"name":"uint256","nodeType":"ElementaryTypeName","src":"5478:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5456:43:26"},"scope":29730,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":29693,"nodeType":"FunctionDefinition","src":"5710:62:26","nodes":[],"documentation":{"id":29686,"nodeType":"StructuredDocumentation","src":"5506:199:26","text":" @notice Updates pool `poolId` by calling the associated strategy.\n @param poolId Id of the pool to update.\n @param data An array of bytes used by the strategy contract."},"functionSelector":"0216b838","implemented":false,"kind":"function","modifiers":[],"name":"update","nameLocation":"5719:6:26","parameters":{"id":29691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29688,"mutability":"mutable","name":"poolId","nameLocation":"5734:6:26","nodeType":"VariableDeclaration","scope":29693,"src":"5726:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29687,"name":"uint256","nodeType":"ElementaryTypeName","src":"5726:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29690,"mutability":"mutable","name":"data","nameLocation":"5757:4:26","nodeType":"VariableDeclaration","scope":29693,"src":"5742:19:26","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":29689,"name":"bytes","nodeType":"ElementaryTypeName","src":"5742:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5725:37:26"},"returnParameters":{"id":29692,"nodeType":"ParameterList","parameters":[],"src":"5771:0:26"},"scope":29730,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":29699,"nodeType":"FunctionDefinition","src":"5865:65:26","nodes":[],"documentation":{"id":29694,"nodeType":"StructuredDocumentation","src":"5794:66:26","text":"@notice Address of the implementation of the LPToken contract."},"functionSelector":"b462cd25","implemented":false,"kind":"function","modifiers":[],"name":"lpTokenImplementation","nameLocation":"5874:21:26","parameters":{"id":29695,"nodeType":"ParameterList","parameters":[],"src":"5895:2:26"},"returnParameters":{"id":29698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29697,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29699,"src":"5921:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29696,"name":"address","nodeType":"ElementaryTypeName","src":"5921:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5920:9:26"},"scope":29730,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":29710,"nodeType":"FunctionDefinition","src":"5936:208:26","nodes":[],"functionSelector":"ce153bf4","implemented":false,"kind":"function","modifiers":[],"name":"getReservesAndLiquidity","nameLocation":"5945:23:26","parameters":{"id":29702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29701,"mutability":"mutable","name":"poolId","nameLocation":"5977:6:26","nodeType":"VariableDeclaration","scope":29710,"src":"5969:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29700,"name":"uint256","nodeType":"ElementaryTypeName","src":"5969:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5968:16:26"},"returnParameters":{"id":29709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29704,"mutability":"mutable","name":"reserveXWad","nameLocation":"6053:11:26","nodeType":"VariableDeclaration","scope":29710,"src":"6045:19:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29703,"name":"uint256","nodeType":"ElementaryTypeName","src":"6045:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29706,"mutability":"mutable","name":"reserveYWad","nameLocation":"6086:11:26","nodeType":"VariableDeclaration","scope":29710,"src":"6078:19:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29705,"name":"uint256","nodeType":"ElementaryTypeName","src":"6078:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29708,"mutability":"mutable","name":"totalLiquidity","nameLocation":"6119:14:26","nodeType":"VariableDeclaration","scope":29710,"src":"6111:22:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29707,"name":"uint256","nodeType":"ElementaryTypeName","src":"6111:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6031:112:26"},"scope":29730,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":29729,"nodeType":"FunctionDefinition","src":"6150:306:26","nodes":[],"functionSelector":"ac4afa38","implemented":false,"kind":"function","modifiers":[],"name":"pools","nameLocation":"6159:5:26","parameters":{"id":29713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29712,"mutability":"mutable","name":"poolId","nameLocation":"6173:6:26","nodeType":"VariableDeclaration","scope":29729,"src":"6165:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29711,"name":"uint256","nodeType":"ElementaryTypeName","src":"6165:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6164:16:26"},"returnParameters":{"id":29728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29715,"mutability":"mutable","name":"strategy","nameLocation":"6249:8:26","nodeType":"VariableDeclaration","scope":29729,"src":"6241:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29714,"name":"address","nodeType":"ElementaryTypeName","src":"6241:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29717,"mutability":"mutable","name":"tokenX","nameLocation":"6279:6:26","nodeType":"VariableDeclaration","scope":29729,"src":"6271:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29716,"name":"address","nodeType":"ElementaryTypeName","src":"6271:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29719,"mutability":"mutable","name":"tokenY","nameLocation":"6307:6:26","nodeType":"VariableDeclaration","scope":29729,"src":"6299:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29718,"name":"address","nodeType":"ElementaryTypeName","src":"6299:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29721,"mutability":"mutable","name":"reserveX","nameLocation":"6335:8:26","nodeType":"VariableDeclaration","scope":29729,"src":"6327:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29720,"name":"uint256","nodeType":"ElementaryTypeName","src":"6327:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29723,"mutability":"mutable","name":"reserveY","nameLocation":"6365:8:26","nodeType":"VariableDeclaration","scope":29729,"src":"6357:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29722,"name":"uint256","nodeType":"ElementaryTypeName","src":"6357:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29725,"mutability":"mutable","name":"totalLiquidity","nameLocation":"6395:14:26","nodeType":"VariableDeclaration","scope":29729,"src":"6387:22:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29724,"name":"uint256","nodeType":"ElementaryTypeName","src":"6387:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29727,"mutability":"mutable","name":"liquidityToken","nameLocation":"6431:14:26","nodeType":"VariableDeclaration","scope":29729,"src":"6423:22:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29726,"name":"address","nodeType":"ElementaryTypeName","src":"6423:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6227:228:26"},"scope":29730,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IDFMM","contractDependencies":[],"contractKind":"interface","documentation":{"id":29519,"nodeType":"StructuredDocumentation","src":"71:53:26","text":" @title DFMM Interface\n @author Primitive"},"fullyImplemented":false,"linearizedBaseContracts":[29730],"name":"IDFMM","nameLocation":"135:5:26","scope":29731,"usedErrors":[29545,29552,29555,29558,29561,29564,29567,29570],"usedEvents":[29591,29604,29617,29630]}],"license":"GPL-3.0-or-later"},"id":26} \ No newline at end of file diff --git a/out/IStrategy.sol/IStrategy.json b/out/IStrategy.sol/IStrategy.json deleted file mode 100644 index 9050221a..00000000 --- a/out/IStrategy.sol/IStrategy.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"computeSwapConstant","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"dfmm","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getPoolParams","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"params","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"init","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"},{"name":"swapConstantGrowth","type":"int256","internalType":"int256"},{"name":"reserveX","type":"uint256","internalType":"uint256"},{"name":"reserveY","type":"uint256","internalType":"uint256"},{"name":"totalLiquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"update","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateAllocateOrDeallocate","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"},{"name":"invariant","type":"int256","internalType":"int256"},{"name":"reserveX","type":"uint256","internalType":"uint256"},{"name":"reserveY","type":"uint256","internalType":"uint256"},{"name":"totalLiquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validateSwap","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"},{"name":"swapConstantGrowth","type":"int256","internalType":"int256"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"reserveX","type":"uint256","internalType":"uint256"},{"name":"reserveY","type":"uint256","internalType":"uint256"},{"name":"totalLiquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"error","name":"InvalidSender","inputs":[]},{"type":"error","name":"InvalidUpdateCode","inputs":[]},{"type":"error","name":"NotDFMM","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"computeSwapConstant(uint256,bytes)":"002e524b","dfmm()":"afba13c4","getPoolParams(uint256)":"dc178355","init(address,uint256,bytes)":"73cb2d03","name()":"06fdde03","update(address,uint256,bytes)":"acad2989","validateAllocateOrDeallocate(address,uint256,bytes)":"8a04bdd5","validateSwap(address,uint256,bytes)":"68bd3e38"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidSender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidUpdateCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDFMM\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"computeSwapConstant\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dfmm\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolParams\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"init\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"swapConstantGrowth\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalLiquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"update\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"validateAllocateOrDeallocate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalLiquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"validateSwap\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"swapConstantGrowth\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalLiquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Primitive\",\"errors\":{\"InvalidSender()\":[{\"details\":\"Thrown when the sender is authorized.\"}],\"InvalidUpdateCode()\":[{\"details\":\"Thrown when the update code is invalid.\"}],\"NotDFMM()\":[{\"details\":\"Thrown when the sender is not the DFMM contract.\"}]},\"kind\":\"dev\",\"methods\":{\"init(address,uint256,bytes)\":{\"params\":{\"data\":\"Pool parameters encoded as bytes.\",\"poolId\":\"Id of the pool to initialize.\",\"sender\":\"Address that called the DFMM contract.\"},\"returns\":{\"reserveX\":\"Initial reserve of token X.\",\"reserveY\":\"Initial reserve of token Y.\",\"swapConstantGrowth\":\"Initial swap growth.\",\"totalLiquidity\":\"Initial liquidity of the pool.\",\"valid\":\"True if the initialization is valid.\"}},\"name()\":{\"details\":\"The name of the strategy is included in the name of the liquidity token.\"}},\"title\":\"Strategy Interface.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"init(address,uint256,bytes)\":{\"notice\":\"Intializes a new pool.\"},\"name()\":{\"notice\":\"Returns the name of the strategy.\"}},\"notice\":\"All the strategy contracts must implement this interface.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IStrategy.sol\":\"IStrategy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidSender"},{"inputs":[],"type":"error","name":"InvalidUpdateCode"},{"inputs":[],"type":"error","name":"NotDFMM"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"computeSwapConstant","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"dfmm","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolParams","outputs":[{"internalType":"bytes","name":"params","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"init","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"int256","name":"swapConstantGrowth","type":"int256"},{"internalType":"uint256","name":"reserveX","type":"uint256"},{"internalType":"uint256","name":"reserveY","type":"uint256"},{"internalType":"uint256","name":"totalLiquidity","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"update"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"validateAllocateOrDeallocate","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"int256","name":"invariant","type":"int256"},{"internalType":"uint256","name":"reserveX","type":"uint256"},{"internalType":"uint256","name":"reserveY","type":"uint256"},{"internalType":"uint256","name":"totalLiquidity","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"validateSwap","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"int256","name":"swapConstantGrowth","type":"int256"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"uint256","name":"reserveX","type":"uint256"},{"internalType":"uint256","name":"reserveY","type":"uint256"},{"internalType":"uint256","name":"totalLiquidity","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"init(address,uint256,bytes)":{"params":{"data":"Pool parameters encoded as bytes.","poolId":"Id of the pool to initialize.","sender":"Address that called the DFMM contract."},"returns":{"reserveX":"Initial reserve of token X.","reserveY":"Initial reserve of token Y.","swapConstantGrowth":"Initial swap growth.","totalLiquidity":"Initial liquidity of the pool.","valid":"True if the initialization is valid."}},"name()":{"details":"The name of the strategy is included in the name of the liquidity token."}},"version":1},"userdoc":{"kind":"user","methods":{"init(address,uint256,bytes)":{"notice":"Intializes a new pool."},"name()":{"notice":"Returns the name of the strategy."}},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IStrategy.sol":"IStrategy"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"}},"version":1},"ast":{"absolutePath":"src/interfaces/IStrategy.sol","id":29840,"exportedSymbols":{"IStrategy":[29839]},"nodeType":"SourceUnit","src":"45:2593:27","nodes":[{"id":29732,"nodeType":"PragmaDirective","src":"45:24:27","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":29839,"nodeType":"ContractDefinition","src":"199:2438:27","nodes":[{"id":29736,"nodeType":"ErrorDefinition","src":"293:26:27","nodes":[],"documentation":{"id":29734,"nodeType":"StructuredDocumentation","src":"240:48:27","text":"@dev Thrown when the update code is invalid."},"errorSelector":"235d2b3d","name":"InvalidUpdateCode","nameLocation":"299:17:27","parameters":{"id":29735,"nodeType":"ParameterList","parameters":[],"src":"316:2:27"}},{"id":29739,"nodeType":"ErrorDefinition","src":"387:16:27","nodes":[],"documentation":{"id":29737,"nodeType":"StructuredDocumentation","src":"325:57:27","text":"@dev Thrown when the sender is not the DFMM contract."},"errorSelector":"6853cba7","name":"NotDFMM","nameLocation":"393:7:27","parameters":{"id":29738,"nodeType":"ParameterList","parameters":[],"src":"400:2:27"}},{"id":29742,"nodeType":"ErrorDefinition","src":"460:22:27","nodes":[],"documentation":{"id":29740,"nodeType":"StructuredDocumentation","src":"409:46:27","text":"@dev Thrown when the sender is authorized."},"errorSelector":"ddb5de5e","name":"InvalidSender","nameLocation":"466:13:27","parameters":{"id":29741,"nodeType":"ParameterList","parameters":[],"src":"479:2:27"}},{"id":29762,"nodeType":"FunctionDefinition","src":"1000:300:27","nodes":[],"documentation":{"id":29743,"nodeType":"StructuredDocumentation","src":"504:491:27","text":" @notice Intializes a new pool.\n @param sender Address that called the DFMM contract.\n @param poolId Id of the pool to initialize.\n @param data Pool parameters encoded as bytes.\n @return valid True if the initialization is valid.\n @return swapConstantGrowth Initial swap growth.\n @return reserveX Initial reserve of token X.\n @return reserveY Initial reserve of token Y.\n @return totalLiquidity Initial liquidity of the pool."},"functionSelector":"73cb2d03","implemented":false,"kind":"function","modifiers":[],"name":"init","nameLocation":"1009:4:27","parameters":{"id":29750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29745,"mutability":"mutable","name":"sender","nameLocation":"1031:6:27","nodeType":"VariableDeclaration","scope":29762,"src":"1023:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29744,"name":"address","nodeType":"ElementaryTypeName","src":"1023:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29747,"mutability":"mutable","name":"poolId","nameLocation":"1055:6:27","nodeType":"VariableDeclaration","scope":29762,"src":"1047:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29746,"name":"uint256","nodeType":"ElementaryTypeName","src":"1047:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29749,"mutability":"mutable","name":"data","nameLocation":"1086:4:27","nodeType":"VariableDeclaration","scope":29762,"src":"1071:19:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":29748,"name":"bytes","nodeType":"ElementaryTypeName","src":"1071:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1013:83:27"},"returnParameters":{"id":29761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29752,"mutability":"mutable","name":"valid","nameLocation":"1149:5:27","nodeType":"VariableDeclaration","scope":29762,"src":"1144:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29751,"name":"bool","nodeType":"ElementaryTypeName","src":"1144:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29754,"mutability":"mutable","name":"swapConstantGrowth","nameLocation":"1175:18:27","nodeType":"VariableDeclaration","scope":29762,"src":"1168:25:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":29753,"name":"int256","nodeType":"ElementaryTypeName","src":"1168:6:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":29756,"mutability":"mutable","name":"reserveX","nameLocation":"1215:8:27","nodeType":"VariableDeclaration","scope":29762,"src":"1207:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29755,"name":"uint256","nodeType":"ElementaryTypeName","src":"1207:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29758,"mutability":"mutable","name":"reserveY","nameLocation":"1245:8:27","nodeType":"VariableDeclaration","scope":29762,"src":"1237:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29757,"name":"uint256","nodeType":"ElementaryTypeName","src":"1237:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29760,"mutability":"mutable","name":"totalLiquidity","nameLocation":"1275:14:27","nodeType":"VariableDeclaration","scope":29762,"src":"1267:22:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29759,"name":"uint256","nodeType":"ElementaryTypeName","src":"1267:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1130:169:27"},"scope":29839,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":29768,"nodeType":"FunctionDefinition","src":"1479:54:27","nodes":[],"documentation":{"id":29763,"nodeType":"StructuredDocumentation","src":"1322:152:27","text":" @notice Returns the name of the strategy.\n @dev The name of the strategy is included in the name of\n the liquidity token."},"functionSelector":"06fdde03","implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"1488:4:27","parameters":{"id":29764,"nodeType":"ParameterList","parameters":[],"src":"1492:2:27"},"returnParameters":{"id":29767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29766,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29768,"src":"1518:13:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29765,"name":"string","nodeType":"ElementaryTypeName","src":"1518:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1517:15:27"},"scope":29839,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":29787,"nodeType":"FunctionDefinition","src":"1539:328:27","nodes":[],"functionSelector":"8a04bdd5","implemented":false,"kind":"function","modifiers":[],"name":"validateAllocateOrDeallocate","nameLocation":"1548:28:27","parameters":{"id":29775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29770,"mutability":"mutable","name":"sender","nameLocation":"1594:6:27","nodeType":"VariableDeclaration","scope":29787,"src":"1586:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29769,"name":"address","nodeType":"ElementaryTypeName","src":"1586:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29772,"mutability":"mutable","name":"poolId","nameLocation":"1618:6:27","nodeType":"VariableDeclaration","scope":29787,"src":"1610:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29771,"name":"uint256","nodeType":"ElementaryTypeName","src":"1610:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29774,"mutability":"mutable","name":"data","nameLocation":"1649:4:27","nodeType":"VariableDeclaration","scope":29787,"src":"1634:19:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":29773,"name":"bytes","nodeType":"ElementaryTypeName","src":"1634:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1576:83:27"},"returnParameters":{"id":29786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29777,"mutability":"mutable","name":"valid","nameLocation":"1725:5:27","nodeType":"VariableDeclaration","scope":29787,"src":"1720:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29776,"name":"bool","nodeType":"ElementaryTypeName","src":"1720:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29779,"mutability":"mutable","name":"invariant","nameLocation":"1751:9:27","nodeType":"VariableDeclaration","scope":29787,"src":"1744:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":29778,"name":"int256","nodeType":"ElementaryTypeName","src":"1744:6:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":29781,"mutability":"mutable","name":"reserveX","nameLocation":"1782:8:27","nodeType":"VariableDeclaration","scope":29787,"src":"1774:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29780,"name":"uint256","nodeType":"ElementaryTypeName","src":"1774:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29783,"mutability":"mutable","name":"reserveY","nameLocation":"1812:8:27","nodeType":"VariableDeclaration","scope":29787,"src":"1804:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29782,"name":"uint256","nodeType":"ElementaryTypeName","src":"1804:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29785,"mutability":"mutable","name":"totalLiquidity","nameLocation":"1842:14:27","nodeType":"VariableDeclaration","scope":29787,"src":"1834:22:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29784,"name":"uint256","nodeType":"ElementaryTypeName","src":"1834:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1706:160:27"},"scope":29839,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":29808,"nodeType":"FunctionDefinition","src":"1873:356:27","nodes":[],"functionSelector":"68bd3e38","implemented":false,"kind":"function","modifiers":[],"name":"validateSwap","nameLocation":"1882:12:27","parameters":{"id":29794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29789,"mutability":"mutable","name":"sender","nameLocation":"1912:6:27","nodeType":"VariableDeclaration","scope":29808,"src":"1904:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29788,"name":"address","nodeType":"ElementaryTypeName","src":"1904:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29791,"mutability":"mutable","name":"poolId","nameLocation":"1936:6:27","nodeType":"VariableDeclaration","scope":29808,"src":"1928:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29790,"name":"uint256","nodeType":"ElementaryTypeName","src":"1928:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29793,"mutability":"mutable","name":"data","nameLocation":"1967:4:27","nodeType":"VariableDeclaration","scope":29808,"src":"1952:19:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":29792,"name":"bytes","nodeType":"ElementaryTypeName","src":"1952:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1894:83:27"},"returnParameters":{"id":29807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29796,"mutability":"mutable","name":"valid","nameLocation":"2043:5:27","nodeType":"VariableDeclaration","scope":29808,"src":"2038:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29795,"name":"bool","nodeType":"ElementaryTypeName","src":"2038:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29798,"mutability":"mutable","name":"swapConstantGrowth","nameLocation":"2069:18:27","nodeType":"VariableDeclaration","scope":29808,"src":"2062:25:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":29797,"name":"int256","nodeType":"ElementaryTypeName","src":"2062:6:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":29800,"mutability":"mutable","name":"liquidityDelta","nameLocation":"2108:14:27","nodeType":"VariableDeclaration","scope":29808,"src":"2101:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":29799,"name":"int256","nodeType":"ElementaryTypeName","src":"2101:6:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":29802,"mutability":"mutable","name":"reserveX","nameLocation":"2144:8:27","nodeType":"VariableDeclaration","scope":29808,"src":"2136:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29801,"name":"uint256","nodeType":"ElementaryTypeName","src":"2136:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29804,"mutability":"mutable","name":"reserveY","nameLocation":"2174:8:27","nodeType":"VariableDeclaration","scope":29808,"src":"2166:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29803,"name":"uint256","nodeType":"ElementaryTypeName","src":"2166:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29806,"mutability":"mutable","name":"totalLiquidity","nameLocation":"2204:14:27","nodeType":"VariableDeclaration","scope":29808,"src":"2196:22:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29805,"name":"uint256","nodeType":"ElementaryTypeName","src":"2196:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2024:204:27"},"scope":29839,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":29817,"nodeType":"FunctionDefinition","src":"2235:108:27","nodes":[],"functionSelector":"acad2989","implemented":false,"kind":"function","modifiers":[],"name":"update","nameLocation":"2244:6:27","parameters":{"id":29815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29810,"mutability":"mutable","name":"sender","nameLocation":"2268:6:27","nodeType":"VariableDeclaration","scope":29817,"src":"2260:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29809,"name":"address","nodeType":"ElementaryTypeName","src":"2260:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29812,"mutability":"mutable","name":"poolId","nameLocation":"2292:6:27","nodeType":"VariableDeclaration","scope":29817,"src":"2284:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29811,"name":"uint256","nodeType":"ElementaryTypeName","src":"2284:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29814,"mutability":"mutable","name":"data","nameLocation":"2323:4:27","nodeType":"VariableDeclaration","scope":29817,"src":"2308:19:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":29813,"name":"bytes","nodeType":"ElementaryTypeName","src":"2308:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2250:83:27"},"returnParameters":{"id":29816,"nodeType":"ParameterList","parameters":[],"src":"2342:0:27"},"scope":29839,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":29826,"nodeType":"FunctionDefinition","src":"2349:117:27","nodes":[],"functionSelector":"002e524b","implemented":false,"kind":"function","modifiers":[],"name":"computeSwapConstant","nameLocation":"2358:19:27","parameters":{"id":29822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29819,"mutability":"mutable","name":"poolId","nameLocation":"2395:6:27","nodeType":"VariableDeclaration","scope":29826,"src":"2387:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29818,"name":"uint256","nodeType":"ElementaryTypeName","src":"2387:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29821,"mutability":"mutable","name":"data","nameLocation":"2424:4:27","nodeType":"VariableDeclaration","scope":29826,"src":"2411:17:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":29820,"name":"bytes","nodeType":"ElementaryTypeName","src":"2411:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2377:57:27"},"returnParameters":{"id":29825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29824,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29826,"src":"2458:6:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":29823,"name":"int256","nodeType":"ElementaryTypeName","src":"2458:6:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2457:8:27"},"scope":29839,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":29831,"nodeType":"FunctionDefinition","src":"2472:48:27","nodes":[],"functionSelector":"afba13c4","implemented":false,"kind":"function","modifiers":[],"name":"dfmm","nameLocation":"2481:4:27","parameters":{"id":29827,"nodeType":"ParameterList","parameters":[],"src":"2485:2:27"},"returnParameters":{"id":29830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29829,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29831,"src":"2511:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29828,"name":"address","nodeType":"ElementaryTypeName","src":"2511:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2510:9:27"},"scope":29839,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":29838,"nodeType":"FunctionDefinition","src":"2526:109:27","nodes":[],"functionSelector":"dc178355","implemented":false,"kind":"function","modifiers":[],"name":"getPoolParams","nameLocation":"2535:13:27","parameters":{"id":29834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29833,"mutability":"mutable","name":"poolId","nameLocation":"2557:6:27","nodeType":"VariableDeclaration","scope":29838,"src":"2549:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29832,"name":"uint256","nodeType":"ElementaryTypeName","src":"2549:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2548:16:27"},"returnParameters":{"id":29837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29836,"mutability":"mutable","name":"params","nameLocation":"2627:6:27","nodeType":"VariableDeclaration","scope":29838,"src":"2612:21:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":29835,"name":"bytes","nodeType":"ElementaryTypeName","src":"2612:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2611:23:27"},"scope":29839,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IStrategy","contractDependencies":[],"contractKind":"interface","documentation":{"id":29733,"nodeType":"StructuredDocumentation","src":"71:127:27","text":" @title Strategy Interface.\n @author Primitive\n @notice All the strategy contracts must implement this interface."},"fullyImplemented":false,"linearizedBaseContracts":[29839],"name":"IStrategy","nameLocation":"209:9:27","scope":29840,"usedErrors":[29736,29739,29742],"usedEvents":[]}],"license":"GPL-3.0-or-later"},"id":27} \ No newline at end of file diff --git a/out/Init.t.sol/DFMMInit.json b/out/Init.t.sol/DFMMInit.json deleted file mode 100644 index ffc3a9c3..00000000 --- a/out/Init.t.sol/DFMMInit.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"POOL_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TEST_SWAP_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolLiquidityToken","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_DFMM_init_DeploysLPTokenClone","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_DFMM_init_IncrementsPoolId","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_DFMM_init_ReturnsStrategyInitialReserves","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_DFMM_init_RevertsWhenNotValid","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_DFMM_init_RevertsWhenSameTokens","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_DFMM_init_StoresStrategyInitialReserves","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_DFMM_init_TransfersInitialReserves","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_dfmm_init_emitsinitevent","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Init","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"strategy","type":"address","indexed":false,"internalType":"address"},{"name":"lpToken","type":"address","indexed":false,"internalType":"address"},{"name":"tokenX","type":"address","indexed":true,"internalType":"address"},{"name":"tokenY","type":"address","indexed":true,"internalType":"address"},{"name":"poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"reserveX","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"reserveY","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"totalLiquidity","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523461002357600160ff19600054161760005561686b90816100298239f35b600080fdfe60806040818152600491823610156200001757600080fd5b60009260e08435811c9283630a9254e41462001383575082630bbcc1a61462001273578263298f22ba14620010d2578263516d2a5f1462000fbe578263586be2f91462000dc9578263620a26071462000da45782637822aceb1462000bbd5782637f3a45da14620009fa5782638f094f6b14620004ce578263ba414fa614620004a3578263c840a39e146200025c578263e0d7d0e9146200023a578263e21485ad14620000f657505063fa7626d414620000d057600080fd5b34620000f25781600319360112620000f25760ff602092541690519015158152f35b5080fd5b90915034620002365760203660031901126200023657601354835163068bcd8d60e01b81528335818501526001600160a01b0393909183908390602490829088165afa9586156200022b5780966200015a575b6020868660c08a0151169051908152f35b90919280965083813d831162000223575b620001778183620017da565b8101031262000220575083519485019085821067ffffffffffffffff8311176200020b575093620001fe60c080936020978752620001b581620018b2565b8452620001c4888201620018b2565b88850152620001d5878201620018b2565b87850152606081015160608501526080810151608085015260a081015160a085015201620018b2565b8282015293388062000149565b604190634e487b7160e01b6000525260246000fd5b80fd5b503d6200016b565b8551903d90823e3d90fd5b8380fd5b50505034620000f25781600319360112620000f2576020906018549051908152f35b509050346200049f57826003193601126200049f5781620002ee92519160206001818501528084526200028f84620017bd565b6017546015546016548551926001600160a01b0392918316918316908316620002b885620017a0565b8452848401528583015260609586830152806013541691855180936305157c7f60e21b8252818b8160809c8d968b83016200186c565b03925af1918215620004955790869291899262000459575b506024906013541694865195869384926333854efd60e21b84528301525afa9182156200044f5786879188946200040c575b5090620003496200034f9262001b74565b62001c36565b673782dace9d90000080830362000364578680f35b859469080808081058dd1d585b60b21b91600080516020620067d6833981519152878751868152602287820152600080516020620067f68339815191528982015261745d60f01b85820152a1855190868252600a87830152690808115e1c1958dd195960b21b838301528482015260008051602062006816833981519152978891a1600a855195808752860152840152820152a16200040262001c58565b3880808080808680f35b6200034994506200034f92506200043d9150863d881162000447575b620004348183620017da565b810190620018c7565b9490925062000338565b503d62000428565b83513d88823e3d90fd5b60249192506200048290893d8b116200048d575b620004798183620017da565b81019062001849565b505050919062000306565b503d6200046d565b85513d8a823e3d90fd5b8280fd5b50505034620000f25781600319360112620000f257602090620004c562001973565b90519015158152f35b848285346200049f57826003193601126200049f5782815191602092600184820152838152620004fe81620017bd565b6017546015546016548451966001600160a01b039283169490939183169183166200052989620017a0565b885284848901528186890152606088015281601354169385516370a0823160e01b95868252808b83015260249986838c81875afa928315620009f057908c9695949392918b93620009b4575b50818a519d8e8b81520152878d8d81885afa9384156200096d578c9d8c9562000977575b5088908b519e8f80928d8252308c8301525afa9485156200096d578c9d8c9d9b9c9662000930575b5088908c519b8c80928d8252308c8301525afa998a1562000926578c9a620008e7575b506200060a8c93926080928d519e8f809481936305157c7f60e21b83528d83016200186c565b03925af19a8b15620008dd579082918d94939c620008b4575b50606086601354169c8d958d51809781936333854efd60e21b83528c8301525afa9b8c15620008aa578d8395849e62000878575b508c918a918c8a601554169451948593849283528d8301525afa9283156200086d5790859392919262000832575b506200069d926200069691620018e3565b9062001c4c565b8360165416908685601354168d8c51809581938d83528b8301525afa918d83156200082757918c918e97969594620007ea575b50620006e292916200069691620018e3565b8583601554168a519c8d80928b8252308a8301525afa918215620007e057869798999a9b8d93620007a2575b50620007209291620006969162001907565b601654169487519586938492835230908301525afa93841562000799575085936200075b575b50506200075892620006969162001907565b80f35b9080929350813d831162000791575b620007768183620017da565b810103126200078c575190826200069662000746565b600080fd5b503d6200076a565b513d87823e3d90fd5b878198929394503d8311620007d8575b620007be8183620017da565b810103126200078c5794518695909190620006966200070e565b503d620007b2565b89513d8e823e3d90fd5b92509550508681813d83116200081f575b620008078183620017da565b810103126200078c57518b948b9062000696620006d0565b503d620007fb565b8b51903d90823e3d90fd5b925090508782813d811162000865575b6200084e8183620017da565b810103126200078c57905183916200069d62000685565b503d62000842565b8c51903d90823e3d90fd5b8a919e508d9296506200089c9060603d6060116200044757620004348183620017da565b509690969e91509162000657565b8b513d84823e3d90fd5b620008d2919c5060803d6080116200048d57620004798183620017da565b5050509a8e62000623565b8a513d84823e3d90fd5b919b509850908682813d81116200091e575b620009058183620017da565b810103126200078c5790518c9a90986200060a620005e4565b503d620008f9565b8b513d8e823e3d90fd5b9a5094509a508689813d831162000965575b6200094e8183620017da565b810103126200078c578c9a878d9a519590620005c1565b503d62000942565b8a513d8d823e3d90fd5b9b5093509a50868a813d8311620009ac575b620009958183620017da565b810103126200078c578b9a878e9b51949062000599565b503d62000989565b9650915098508585813d8311620009e8575b620009d28183620017da565b810103126200078c578b988b9551918e62000575565b503d620009c6565b89513d8c823e3d90fd5b509050346200049f57826003193601126200049f5781519160209160018385015282845262000a2984620017bd565b60018060a01b03806017541694816015541682601654169085519762000a4f89620017a0565b8852868801528487015260608601526013541690825180926305157c7f60e21b825281888162000a8560809a8b9783016200186c565b03925af1801562000bb35785868791889362000b79575b62000ab99394509062000ab3620003499262001abf565b62001b74565b673782dace9d8ffc189283820362000acf578580f35b8493600080516020620067d6833981519152858551848152602285820152600080516020620067f68339815191528782015261745d60f01b6060820152a1835190848252600a85830152690808115e1c1958dd195960b21b60608301528282015260008051602062006816833981519152958691a1600a83519380855284015269080808081058dd1d585b60b21b6060840152820152a162000b7062001c58565b38808080808580f35b5050505062000ab96200034962000ba362000ab393873d89116200048d57620004798183620017da565b9295509193509091508362000a9c565b82513d87823e3d90fd5b848285346200049f57826003193601126200049f578051600160208201526020815262000bea81620017bd565b60018060a01b03806017541691816015541682601654169085519462000c1086620017a0565b85526020850152848401526060830152848160135416737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b156200049f57829160a48392885194859384926381bad6f360e01b845260018d85015260016024850152600160448501526001606485015260848401525af1801562000d9a5762000d7a575b50509062000d389382608093601754168160155416826016541691875190815273dd4c722d1614128933d6dc7efa50a6913e804e1260208201528988820152671bc16d674ec8000060608201526729a2241af62c000087820152673782dace9d90000060a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03092a460135416908685518097819582946305157c7f60e21b845283016200186c565b03925af190811562000d71575062000d4e575080f35b62000d6a9060803d6080116200048d57620004798183620017da565b5050505080f35b513d84823e3d90fd5b62000d889093929362001775565b62000d965790848662000c8a565b8480fd5b85513d84823e3d90fd5b50505034620000f25781600319360112620000f25760209051660aa87bee5380008152f35b848285346200049f57826003193601126200049f5780519060209160018382015282815262000df881620017bd565b60018060a01b0393846017541691856015541686601654169085519462000e1f86620017a0565b85528685015284840152606083015284601354169086845196876305157c7f60e21b948582526080998a9181868162000e5b8c8b83016200186c565b03925af190811562000fb4579162000e86849262000e9e9896948c98969162000f8f575b5062001abf565b6013541692875196879586948593845283016200186c565b03925af190811562000bb357859162000f6a575b506001810362000ec0578480f35b8392600080516020620067d6833981519152848451838152602284820152600080516020620067f68339815191528682015261745d60f01b6060820152a18251838152600a84820152690808115e1c1958dd195960b21b606082015260018282015260008051602062006816833981519152958691a1600a83519380855284015269080808081058dd1d585b60b21b6060840152820152a162000f6262001c58565b818080808480f35b62000f859150843d86116200048d57620004798183620017da565b5050508562000eb2565b62000faa9150883d8a116200048d57620004798183620017da565b5050508d62000e7f565b87513d85823e3d90fd5b848285346200049f57826003193601126200049f576017546015548251916001600160a01b0391821690821662000ff584620017a0565b83528060208401528383015282516020810181811067ffffffffffffffff821117620010bd578452858152606083015284737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620000f2578451630618f58760e51b81526333910aef60e11b878201529082908290602490829084905af1801562000d9a57620010a1575b50509062000d389360809260135416908685518097819582946305157c7f60e21b845283016200186c565b620010af9093929362001775565b62000d965790848662001076565b604186634e487b7160e01b6000525260246000fd5b92915034620002365783600319360112620002365760018060a01b03918460806200115d85601754168660155416876016541686519160026020840152602083526200111e83620017bd565b8751936200112c85620017a0565b8452602084015286830152606082015286601354169085519485809481936305157c7f60e21b83528a83016200186c565b03925af19081156200126957908591879162001242575b50806018556024856013541694845195869384926315895f4760e31b84528301525afa93841562001238578594620011c5575b856200075886620011bc878216151562001a64565b3b151562001a64565b9091809450813d831162001230575b620011e08183620017da565b8101031262000236576200122860c08462001220620011bc94620012086200075898620018b2565b506200121760208401620018b2565b508201620018b2565b5001620018b2565b9238620011a7565b503d620011d4565b81513d87823e3d90fd5b6200125f915060803d6080116200048d57620004798183620017da565b5050503862001174565b82513d88823e3d90fd5b848285346200049f57826003193601126200049f576017548151602080820186905281526001600160a01b039182169190620012af81620017bd565b835192620012bd84620017a0565b835261beef602084015261dead8484015260608301528483516377606d2960e11b602082015281602482015281604482015260448152620012fe81620017a0565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b156200049f57855163f28dceb360e01b815260208189015291839183918290849082906200134890602483019062001822565b03925af1801562000d9a57620010a15750509062000d389360809260135416908685518097819582946305157c7f60e21b845283016200186c565b8486933462000d96578460031936011262000d965761106b8084019067ffffffffffffffff9085831082841117620017625762001cfe95818782396060845260066060850152650e8ded6cadcb60d31b6080850152878160209560a087820152600160a0820152600b60fb1b60c082015260128982015203019089f0968715620004955760018060a01b0396876bffffffffffffffffffffffff60a01b991689601554161760155586519280840191848310868411176200174f57908492918339606081526006606082015265746f6b656e5960d01b608082015260a086820152600160a0820152605960f81b60c082015260128882015203019088f0801562001745578516866016541617601655846015541692833b156200171f5784516340c10f1960e01b808252308383015268056bc75e2d63100000918a816044818360249b888d8401525af18015620016d9576200172d575b50908991886016541691823b15620002365760448492838b5195869485938452308a8501528c8401525af18015620017235762001707575b50508560155416866016541690865191610597918284019284841087851117620016f5579160609391859362005c8a8539825287820152670de0b6b3a76400008982015203019089f08015620004955786168760145416176014558451612f218082019082821085831117620016e3578591839162002d6983398b815203019089f08015620004955786166013548189821617601355898589601554169360448a5184819593829463095ea7b360e01b9889855216178983015260001997888d8401525af18015620016d95790869291620016b7575b5060448960165416918c8b60135416938b5196879586948552898501528b8401525af18015620016ad5762001679575b508560135416908551946105b59182870194878610908611176200166857505090849291620062218439815203019085f09081156200165f57501690601754161760175580f35b513d85823e3d90fd5b634e487b7160e01b8b526041905289fd5b6200169d90843d8611620016a5575b620016948183620017da565b81019062001959565b508862001618565b503d62001688565b86513d8b823e3d90fd5b620016d190833d8511620016a557620016948183620017da565b508b620015e8565b88513d8d823e3d90fd5b634e487b7160e01b8b5260418452868bfd5b634e487b7160e01b8d5260418652888dfd5b620017129062001775565b6200171f57878962001512565b8780fd5b87513d84823e3d90fd5b6200173c909a91929a62001775565b98908a620014da565b84513d89823e3d90fd5b634e487b7160e01b8c526041885260248cfd5b634e487b7160e01b885260418452602488fd5b67ffffffffffffffff81116200178a57604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff8211176200178a57604052565b6040810190811067ffffffffffffffff8211176200178a57604052565b90601f8019910116810190811067ffffffffffffffff8211176200178a57604052565b60005b838110620018115750506000910152565b818101518382015260200162001800565b906020916200183d81518092818552858086019101620017fd565b601f01601f1916010190565b91908260809103126200078c578151916020810151916060604083015192015190565b60a06060620018af9360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062001822565b90565b51906001600160a01b03821682036200078c57565b908160609103126200078c578051916040602083015192015190565b91908201809211620018f157565b634e487b7160e01b600052601160045260246000fd5b91908203918211620018f157565b3d1562001954573d9067ffffffffffffffff82116200178a576040519162001948601f8201601f191660200184620017da565b82523d6000602084013e565b606090565b908160209103126200078c575180151581036200078c5790565b6000805460081c60ff16156200198d575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620019af57505090565b90915060405160208101908282526519985a5b195960d21b604082015260408152606081019080821067ffffffffffffffff83111762001a50578162001a2d6024879695949387946040526080810195630667f9d760e41b875262001a1c825180926084850190620017fd565b8101036004810184520182620017da565b51925af150620018af62001a4062001915565b6020808251830101910162001959565b634e487b7160e01b85526041600452602485fd5b1562001a6c57565b600080516020620067d6833981519152606060405160208152601760208201527f4572726f723a20417373657274696f6e204661696c65640000000000000000006040820152a162001abd62001c58565b565b8062001ac85750565b60808091604090600080516020620067d68339815191528383516020815260226020820152600080516020620067f68339815191528582015261745d60f01b6060820152a18151828152600a83820152690808115e1c1958dd195960b21b60608201526000602082015260008051602062006816833981519152948591a1600a82519280845283015269080808081058dd1d585b60b21b60608301526020820152a162001abd62001c58565b671bc16d674ec800009081810362001b8a575050565b6080918291604091600080516020620067d68339815191528484516020815260226020820152600080516020620067f68339815191528682015261745d60f01b6060820152a1825190838252600a84830152690808115e1c1958dd195960b21b6060830152602082015260008051602062006816833981519152948591a1600a82519280845283015269080808081058dd1d585b60b21b60608301526020820152a162001abd62001c58565b6729a2241af62c00009081810362001b8a575050565b81810362001b8a575050565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62001c87575b5061010061ff00196000541617600055565b6000809160405182602082018381526519985a5b195960d21b6040840152600160608401526060835262001cbb83620017a0565b62001ce66024604051809362001a1c60208301976370ca10bb60e01b895251809285850190620017fd565b51925af15062001cf562001915565b503862001c7556fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c6343000816003360a03461006957601f6105b538819003918201601f19168301916001600160401b0383118484101761006e5780849260209460405283398101031261006957516001600160a01b038116810361006957608052604051610530908161008582396080518160ef0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600436101561001457600080fd5b600091823560e01c9081622e524b146103f95750806306fdde031461035657806368bd3e381461031d57806373cb2d031461024e5780638a04bdd514610137578063acad29891461011e578063afba13c4146100db5763dc1783551461007957600080fd5b346100d7576020806003193601126100d3579181519283916020835260605191826020850152815b8381106100be575050828201840152601f01601f19168101030190f35b608081015187820187015286945081016100a1565b8280fd5b5080fd5b50346100d757816003193601126100d757517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b82346101345761012d36610493565b5050505080f35b80fd5b5090346101345761014736610493565b849350839250829182918290602090830183900312610134575035600181036101c45750505050505060016101c0670de0b6b3a7640000926802b5e3af16b188000080674563918244f40000925b51958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b0390f35b600981036102055750505050505060016101c0670de0b6b3a76400009268056bc75e2d6310000068068155a43676e0000090678ac7230489e8000092610195565b600814610218575b6101c0939495610195565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d63100000905068068155a43676e0000061020d565b5090346101345761025e36610493565b849350839250829182918290602090830183900312610134575035600181146102e8575b6002146102bb575b6101c093949551958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d6310000090508061028a565b670de0b6b3a7640000955060019450673782dace9d90000093506729a2241af62c00009250671bc16d674ec800009150610282565b50346100d75760c09161032f36610493565b505050508082519281845281602085015283015280606083015280608083015260a0820152f35b50346100d757816003193601126100d757805181810181811067ffffffffffffffff8211176103e5578252600c81526020906b4d6f636b537472617465677960a01b6020820152825193849260208452825192836020860152825b8481106103cf57505050828201840152601f01601f19168101030190f35b81810183015188820188015287955082016103b1565b634e487b7160e01b84526041600452602484fd5b8383346100d757806003193601126100d75767ffffffffffffffff9260243584811161047b573660238201121561047b5780600401359480861161047f57601f8601601f19908116603f011683019081118382101761047f578352848252366024868301011161047b5784849260209660248894018483013701015251908152f35b8380fd5b634e487b7160e01b85526041600452602485fd5b9060606003198301126104f5576004356001600160a01b03811681036104f557916024359160443567ffffffffffffffff928382116104f557806023830112156104f55781600401359384116104f557602484830101116104f5576024019190565b600080fdfea264697066735822122009a636832ec6847884e761e11e93e4c99c16c8767042c516d6f7d4bb27fb9bb064736f6c6343000816003341304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f504572726f723a2061203d3d2062206e6f7420736174697366696564205b75696eb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8a2646970667358221220d528359c2faf3f898b07a943d6b1ea9369cc54a53391a99c856ec9f16dbb000c64736f6c63430008160033","sourceMap":"88:4541:30:-:0;;;;;;;1594:4:0;88:4541:30;;1594:4:0;88:4541:30;;;1594:4:0;88:4541:30;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600491823610156200001757600080fd5b60009260e08435811c9283630a9254e41462001383575082630bbcc1a61462001273578263298f22ba14620010d2578263516d2a5f1462000fbe578263586be2f91462000dc9578263620a26071462000da45782637822aceb1462000bbd5782637f3a45da14620009fa5782638f094f6b14620004ce578263ba414fa614620004a3578263c840a39e146200025c578263e0d7d0e9146200023a578263e21485ad14620000f657505063fa7626d414620000d057600080fd5b34620000f25781600319360112620000f25760ff602092541690519015158152f35b5080fd5b90915034620002365760203660031901126200023657601354835163068bcd8d60e01b81528335818501526001600160a01b0393909183908390602490829088165afa9586156200022b5780966200015a575b6020868660c08a0151169051908152f35b90919280965083813d831162000223575b620001778183620017da565b8101031262000220575083519485019085821067ffffffffffffffff8311176200020b575093620001fe60c080936020978752620001b581620018b2565b8452620001c4888201620018b2565b88850152620001d5878201620018b2565b87850152606081015160608501526080810151608085015260a081015160a085015201620018b2565b8282015293388062000149565b604190634e487b7160e01b6000525260246000fd5b80fd5b503d6200016b565b8551903d90823e3d90fd5b8380fd5b50505034620000f25781600319360112620000f2576020906018549051908152f35b509050346200049f57826003193601126200049f5781620002ee92519160206001818501528084526200028f84620017bd565b6017546015546016548551926001600160a01b0392918316918316908316620002b885620017a0565b8452848401528583015260609586830152806013541691855180936305157c7f60e21b8252818b8160809c8d968b83016200186c565b03925af1918215620004955790869291899262000459575b506024906013541694865195869384926333854efd60e21b84528301525afa9182156200044f5786879188946200040c575b5090620003496200034f9262001b74565b62001c36565b673782dace9d90000080830362000364578680f35b859469080808081058dd1d585b60b21b91600080516020620067d6833981519152878751868152602287820152600080516020620067f68339815191528982015261745d60f01b85820152a1855190868252600a87830152690808115e1c1958dd195960b21b838301528482015260008051602062006816833981519152978891a1600a855195808752860152840152820152a16200040262001c58565b3880808080808680f35b6200034994506200034f92506200043d9150863d881162000447575b620004348183620017da565b810190620018c7565b9490925062000338565b503d62000428565b83513d88823e3d90fd5b60249192506200048290893d8b116200048d575b620004798183620017da565b81019062001849565b505050919062000306565b503d6200046d565b85513d8a823e3d90fd5b8280fd5b50505034620000f25781600319360112620000f257602090620004c562001973565b90519015158152f35b848285346200049f57826003193601126200049f5782815191602092600184820152838152620004fe81620017bd565b6017546015546016548451966001600160a01b039283169490939183169183166200052989620017a0565b885284848901528186890152606088015281601354169385516370a0823160e01b95868252808b83015260249986838c81875afa928315620009f057908c9695949392918b93620009b4575b50818a519d8e8b81520152878d8d81885afa9384156200096d578c9d8c9562000977575b5088908b519e8f80928d8252308c8301525afa9485156200096d578c9d8c9d9b9c9662000930575b5088908c519b8c80928d8252308c8301525afa998a1562000926578c9a620008e7575b506200060a8c93926080928d519e8f809481936305157c7f60e21b83528d83016200186c565b03925af19a8b15620008dd579082918d94939c620008b4575b50606086601354169c8d958d51809781936333854efd60e21b83528c8301525afa9b8c15620008aa578d8395849e62000878575b508c918a918c8a601554169451948593849283528d8301525afa9283156200086d5790859392919262000832575b506200069d926200069691620018e3565b9062001c4c565b8360165416908685601354168d8c51809581938d83528b8301525afa918d83156200082757918c918e97969594620007ea575b50620006e292916200069691620018e3565b8583601554168a519c8d80928b8252308a8301525afa918215620007e057869798999a9b8d93620007a2575b50620007209291620006969162001907565b601654169487519586938492835230908301525afa93841562000799575085936200075b575b50506200075892620006969162001907565b80f35b9080929350813d831162000791575b620007768183620017da565b810103126200078c575190826200069662000746565b600080fd5b503d6200076a565b513d87823e3d90fd5b878198929394503d8311620007d8575b620007be8183620017da565b810103126200078c5794518695909190620006966200070e565b503d620007b2565b89513d8e823e3d90fd5b92509550508681813d83116200081f575b620008078183620017da565b810103126200078c57518b948b9062000696620006d0565b503d620007fb565b8b51903d90823e3d90fd5b925090508782813d811162000865575b6200084e8183620017da565b810103126200078c57905183916200069d62000685565b503d62000842565b8c51903d90823e3d90fd5b8a919e508d9296506200089c9060603d6060116200044757620004348183620017da565b509690969e91509162000657565b8b513d84823e3d90fd5b620008d2919c5060803d6080116200048d57620004798183620017da565b5050509a8e62000623565b8a513d84823e3d90fd5b919b509850908682813d81116200091e575b620009058183620017da565b810103126200078c5790518c9a90986200060a620005e4565b503d620008f9565b8b513d8e823e3d90fd5b9a5094509a508689813d831162000965575b6200094e8183620017da565b810103126200078c578c9a878d9a519590620005c1565b503d62000942565b8a513d8d823e3d90fd5b9b5093509a50868a813d8311620009ac575b620009958183620017da565b810103126200078c578b9a878e9b51949062000599565b503d62000989565b9650915098508585813d8311620009e8575b620009d28183620017da565b810103126200078c578b988b9551918e62000575565b503d620009c6565b89513d8c823e3d90fd5b509050346200049f57826003193601126200049f5781519160209160018385015282845262000a2984620017bd565b60018060a01b03806017541694816015541682601654169085519762000a4f89620017a0565b8852868801528487015260608601526013541690825180926305157c7f60e21b825281888162000a8560809a8b9783016200186c565b03925af1801562000bb35785868791889362000b79575b62000ab99394509062000ab3620003499262001abf565b62001b74565b673782dace9d8ffc189283820362000acf578580f35b8493600080516020620067d6833981519152858551848152602285820152600080516020620067f68339815191528782015261745d60f01b6060820152a1835190848252600a85830152690808115e1c1958dd195960b21b60608301528282015260008051602062006816833981519152958691a1600a83519380855284015269080808081058dd1d585b60b21b6060840152820152a162000b7062001c58565b38808080808580f35b5050505062000ab96200034962000ba362000ab393873d89116200048d57620004798183620017da565b9295509193509091508362000a9c565b82513d87823e3d90fd5b848285346200049f57826003193601126200049f578051600160208201526020815262000bea81620017bd565b60018060a01b03806017541691816015541682601654169085519462000c1086620017a0565b85526020850152848401526060830152848160135416737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b156200049f57829160a48392885194859384926381bad6f360e01b845260018d85015260016024850152600160448501526001606485015260848401525af1801562000d9a5762000d7a575b50509062000d389382608093601754168160155416826016541691875190815273dd4c722d1614128933d6dc7efa50a6913e804e1260208201528988820152671bc16d674ec8000060608201526729a2241af62c000087820152673782dace9d90000060a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03092a460135416908685518097819582946305157c7f60e21b845283016200186c565b03925af190811562000d71575062000d4e575080f35b62000d6a9060803d6080116200048d57620004798183620017da565b5050505080f35b513d84823e3d90fd5b62000d889093929362001775565b62000d965790848662000c8a565b8480fd5b85513d84823e3d90fd5b50505034620000f25781600319360112620000f25760209051660aa87bee5380008152f35b848285346200049f57826003193601126200049f5780519060209160018382015282815262000df881620017bd565b60018060a01b0393846017541691856015541686601654169085519462000e1f86620017a0565b85528685015284840152606083015284601354169086845196876305157c7f60e21b948582526080998a9181868162000e5b8c8b83016200186c565b03925af190811562000fb4579162000e86849262000e9e9896948c98969162000f8f575b5062001abf565b6013541692875196879586948593845283016200186c565b03925af190811562000bb357859162000f6a575b506001810362000ec0578480f35b8392600080516020620067d6833981519152848451838152602284820152600080516020620067f68339815191528682015261745d60f01b6060820152a18251838152600a84820152690808115e1c1958dd195960b21b606082015260018282015260008051602062006816833981519152958691a1600a83519380855284015269080808081058dd1d585b60b21b6060840152820152a162000f6262001c58565b818080808480f35b62000f859150843d86116200048d57620004798183620017da565b5050508562000eb2565b62000faa9150883d8a116200048d57620004798183620017da565b5050508d62000e7f565b87513d85823e3d90fd5b848285346200049f57826003193601126200049f576017546015548251916001600160a01b0391821690821662000ff584620017a0565b83528060208401528383015282516020810181811067ffffffffffffffff821117620010bd578452858152606083015284737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620000f2578451630618f58760e51b81526333910aef60e11b878201529082908290602490829084905af1801562000d9a57620010a1575b50509062000d389360809260135416908685518097819582946305157c7f60e21b845283016200186c565b620010af9093929362001775565b62000d965790848662001076565b604186634e487b7160e01b6000525260246000fd5b92915034620002365783600319360112620002365760018060a01b03918460806200115d85601754168660155416876016541686519160026020840152602083526200111e83620017bd565b8751936200112c85620017a0565b8452602084015286830152606082015286601354169085519485809481936305157c7f60e21b83528a83016200186c565b03925af19081156200126957908591879162001242575b50806018556024856013541694845195869384926315895f4760e31b84528301525afa93841562001238578594620011c5575b856200075886620011bc878216151562001a64565b3b151562001a64565b9091809450813d831162001230575b620011e08183620017da565b8101031262000236576200122860c08462001220620011bc94620012086200075898620018b2565b506200121760208401620018b2565b508201620018b2565b5001620018b2565b9238620011a7565b503d620011d4565b81513d87823e3d90fd5b6200125f915060803d6080116200048d57620004798183620017da565b5050503862001174565b82513d88823e3d90fd5b848285346200049f57826003193601126200049f576017548151602080820186905281526001600160a01b039182169190620012af81620017bd565b835192620012bd84620017a0565b835261beef602084015261dead8484015260608301528483516377606d2960e11b602082015281602482015281604482015260448152620012fe81620017a0565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b156200049f57855163f28dceb360e01b815260208189015291839183918290849082906200134890602483019062001822565b03925af1801562000d9a57620010a15750509062000d389360809260135416908685518097819582946305157c7f60e21b845283016200186c565b8486933462000d96578460031936011262000d965761106b8084019067ffffffffffffffff9085831082841117620017625762001cfe95818782396060845260066060850152650e8ded6cadcb60d31b6080850152878160209560a087820152600160a0820152600b60fb1b60c082015260128982015203019089f0968715620004955760018060a01b0396876bffffffffffffffffffffffff60a01b991689601554161760155586519280840191848310868411176200174f57908492918339606081526006606082015265746f6b656e5960d01b608082015260a086820152600160a0820152605960f81b60c082015260128882015203019088f0801562001745578516866016541617601655846015541692833b156200171f5784516340c10f1960e01b808252308383015268056bc75e2d63100000918a816044818360249b888d8401525af18015620016d9576200172d575b50908991886016541691823b15620002365760448492838b5195869485938452308a8501528c8401525af18015620017235762001707575b50508560155416866016541690865191610597918284019284841087851117620016f5579160609391859362005c8a8539825287820152670de0b6b3a76400008982015203019089f08015620004955786168760145416176014558451612f218082019082821085831117620016e3578591839162002d6983398b815203019089f08015620004955786166013548189821617601355898589601554169360448a5184819593829463095ea7b360e01b9889855216178983015260001997888d8401525af18015620016d95790869291620016b7575b5060448960165416918c8b60135416938b5196879586948552898501528b8401525af18015620016ad5762001679575b508560135416908551946105b59182870194878610908611176200166857505090849291620062218439815203019085f09081156200165f57501690601754161760175580f35b513d85823e3d90fd5b634e487b7160e01b8b526041905289fd5b6200169d90843d8611620016a5575b620016948183620017da565b81019062001959565b508862001618565b503d62001688565b86513d8b823e3d90fd5b620016d190833d8511620016a557620016948183620017da565b508b620015e8565b88513d8d823e3d90fd5b634e487b7160e01b8b5260418452868bfd5b634e487b7160e01b8d5260418652888dfd5b620017129062001775565b6200171f57878962001512565b8780fd5b87513d84823e3d90fd5b6200173c909a91929a62001775565b98908a620014da565b84513d89823e3d90fd5b634e487b7160e01b8c526041885260248cfd5b634e487b7160e01b885260418452602488fd5b67ffffffffffffffff81116200178a57604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff8211176200178a57604052565b6040810190811067ffffffffffffffff8211176200178a57604052565b90601f8019910116810190811067ffffffffffffffff8211176200178a57604052565b60005b838110620018115750506000910152565b818101518382015260200162001800565b906020916200183d81518092818552858086019101620017fd565b601f01601f1916010190565b91908260809103126200078c578151916020810151916060604083015192015190565b60a06060620018af9360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062001822565b90565b51906001600160a01b03821682036200078c57565b908160609103126200078c578051916040602083015192015190565b91908201809211620018f157565b634e487b7160e01b600052601160045260246000fd5b91908203918211620018f157565b3d1562001954573d9067ffffffffffffffff82116200178a576040519162001948601f8201601f191660200184620017da565b82523d6000602084013e565b606090565b908160209103126200078c575180151581036200078c5790565b6000805460081c60ff16156200198d575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620019af57505090565b90915060405160208101908282526519985a5b195960d21b604082015260408152606081019080821067ffffffffffffffff83111762001a50578162001a2d6024879695949387946040526080810195630667f9d760e41b875262001a1c825180926084850190620017fd565b8101036004810184520182620017da565b51925af150620018af62001a4062001915565b6020808251830101910162001959565b634e487b7160e01b85526041600452602485fd5b1562001a6c57565b600080516020620067d6833981519152606060405160208152601760208201527f4572726f723a20417373657274696f6e204661696c65640000000000000000006040820152a162001abd62001c58565b565b8062001ac85750565b60808091604090600080516020620067d68339815191528383516020815260226020820152600080516020620067f68339815191528582015261745d60f01b6060820152a18151828152600a83820152690808115e1c1958dd195960b21b60608201526000602082015260008051602062006816833981519152948591a1600a82519280845283015269080808081058dd1d585b60b21b60608301526020820152a162001abd62001c58565b671bc16d674ec800009081810362001b8a575050565b6080918291604091600080516020620067d68339815191528484516020815260226020820152600080516020620067f68339815191528682015261745d60f01b6060820152a1825190838252600a84830152690808115e1c1958dd195960b21b6060830152602082015260008051602062006816833981519152948591a1600a82519280845283015269080808081058dd1d585b60b21b60608301526020820152a162001abd62001c58565b6729a2241af62c00009081810362001b8a575050565b81810362001b8a575050565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62001c87575b5061010061ff00196000541617600055565b6000809160405182602082018381526519985a5b195960d21b6040840152600160608401526060835262001cbb83620017a0565b62001ce66024604051809362001a1c60208301976370ca10bb60e01b895251809285850190620017fd565b51925af15062001cf562001915565b503862001c7556fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c6343000816003360a03461006957601f6105b538819003918201601f19168301916001600160401b0383118484101761006e5780849260209460405283398101031261006957516001600160a01b038116810361006957608052604051610530908161008582396080518160ef0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600436101561001457600080fd5b600091823560e01c9081622e524b146103f95750806306fdde031461035657806368bd3e381461031d57806373cb2d031461024e5780638a04bdd514610137578063acad29891461011e578063afba13c4146100db5763dc1783551461007957600080fd5b346100d7576020806003193601126100d3579181519283916020835260605191826020850152815b8381106100be575050828201840152601f01601f19168101030190f35b608081015187820187015286945081016100a1565b8280fd5b5080fd5b50346100d757816003193601126100d757517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b82346101345761012d36610493565b5050505080f35b80fd5b5090346101345761014736610493565b849350839250829182918290602090830183900312610134575035600181036101c45750505050505060016101c0670de0b6b3a7640000926802b5e3af16b188000080674563918244f40000925b51958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b0390f35b600981036102055750505050505060016101c0670de0b6b3a76400009268056bc75e2d6310000068068155a43676e0000090678ac7230489e8000092610195565b600814610218575b6101c0939495610195565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d63100000905068068155a43676e0000061020d565b5090346101345761025e36610493565b849350839250829182918290602090830183900312610134575035600181146102e8575b6002146102bb575b6101c093949551958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d6310000090508061028a565b670de0b6b3a7640000955060019450673782dace9d90000093506729a2241af62c00009250671bc16d674ec800009150610282565b50346100d75760c09161032f36610493565b505050508082519281845281602085015283015280606083015280608083015260a0820152f35b50346100d757816003193601126100d757805181810181811067ffffffffffffffff8211176103e5578252600c81526020906b4d6f636b537472617465677960a01b6020820152825193849260208452825192836020860152825b8481106103cf57505050828201840152601f01601f19168101030190f35b81810183015188820188015287955082016103b1565b634e487b7160e01b84526041600452602484fd5b8383346100d757806003193601126100d75767ffffffffffffffff9260243584811161047b573660238201121561047b5780600401359480861161047f57601f8601601f19908116603f011683019081118382101761047f578352848252366024868301011161047b5784849260209660248894018483013701015251908152f35b8380fd5b634e487b7160e01b85526041600452602485fd5b9060606003198301126104f5576004356001600160a01b03811681036104f557916024359160443567ffffffffffffffff928382116104f557806023830112156104f55781600401359384116104f557602484830101116104f5576024019190565b600080fdfea264697066735822122009a636832ec6847884e761e11e93e4c99c16c8767042c516d6f7d4bb27fb9bb064736f6c6343000816003341304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f504572726f723a2061203d3d2062206e6f7420736174697366696564205b75696eb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8a2646970667358221220d528359c2faf3f898b07a943d6b1ea9369cc54a53391a99c856ec9f16dbb000c64736f6c63430008160033","sourceMap":"88:4541:30:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;88:4541:30;;;;992:4:29;88:4541:30;;;-1:-1:-1;;;992:20:29;;88:4541:30;;992:20:29;;;88:4541:30;-1:-1:-1;;;;;88:4541:30;;;;;;;;;;;;;992:20:29;;;;;;;;;;;88:4541:30;;1029:19:29;;;;;88:4541:30;;;;;;;;992:20:29;;;;;;;;;;;;;;;;;;;:::i;:::-;;;88:4541:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;1057:14:1;88:4541:30;;;;;;;1057:14:1;88:4541:30;;;;;;;1057:14:1;88:4541:30;;;;;;:::i;:::-;;;;;992:20:29;;;;;88:4541:30;;;;;;;;;;;;;;;992:20:29;;;;;;88:4541:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;208:22:31;88:4541:30;;;;;;;;;;;;;;;;;;;;;;;484:17;88:4541;;218:22;;237:1;218:22;;;88:4541;218:22;;;;;;:::i;:::-;333:8;88:4541;372:6;88:4541;409:6;88:4541;;;;-1:-1:-1;;;;;88:4541:30;;;;;;;;;;;;;:::i;:::-;;;284:167;;;88:4541;284:167;;;88:4541;284:167;;;;;88:4541;;484:4;88:4541;;;;;1057:14:1;;;;;484:17:30;;88:4541;;;;484:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;88:4541;;;;484:4;88:4541;;;;;1057:14:1;;;;;;;;586:36:30;;;;88:4541;586:36;;;;;;;;;;;;;;88:4541;633:27;;;670;633;;:::i;:::-;670;:::i;:::-;732:7;5259:6:0;;;5255:203;;88:4541:30;;;5255:203:0;88:4541:30;;-1:-1:-1;;;88:4541:30;-1:-1:-1;;;;;;;;;;;88:4541:30;;;;;;;;;;1057:14:1;-1:-1:-1;;;;;;;;;;;1057:14:1;;;88:4541:30;-1:-1:-1;;;88:4541:30;;;;5286:41:0;88:4541:30;;;;;;;;;;1057:14:1;-1:-1:-1;;;1057:14:1;;;88:4541:30;;;;;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;88:4541:30;;;;;;;;;1057:14:1;;;88:4541:30;;;;5396:31:0;;;:::i;:::-;5255:203;;;;;;88:4541:30;;;586:36;633:27;586:36;;670:27;586:36;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;-1:-1:-1;586:36:30;;;;;;;;88:4541;;;;;;;;;484:17;88:4541;484:17;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;88:4541;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;1916:22;;;1935:1;1916:22;;;88:4541;1916:22;;;;;;:::i;:::-;2031:8;88:4541;2070:6;88:4541;2107:6;88:4541;;;;-1:-1:-1;;;;;88:4541:30;;;;;;;;;;;;;;;:::i;:::-;;;1982:167;;;;88:4541;1982:167;;;;88:4541;1982:167;;;88:4541;;2211:4;88:4541;;;;;1057:14:1;;;2186:31:30;;;;;;;;88:4541;;2186:31;;;;;;;;;;;;;;;;;;;;;;;;;88:4541;;;;;2253:31;;;;;;88:4541;2253:31;;;;;;;;;;;;;;;;;;88:4541;;;;;;2322:31;;;;;;;2347:4;2322:31;;;88:4541;2322:31;;;;;;;;;;;;;;;;88:4541;;;;;;2390:31;;;;;;;2347:4;2390:31;;;88:4541;2390:31;;;;;;;;;;;88:4541;;2454:17;88:4541;;;;;;;1057:14:1;;;;;;;;;2454:17:30;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;88:4541;;1982:167;88:4541;2211:4;88:4541;;;;;;;1057:14:1;;;;;;;2533:36:30;;;;;88:4541;2533:36;;;;;;;;;;;;;;88:4541;;;;;;;;2070:6;88:4541;;;;2589:31;;;;;;;;;;88:4541;2589:31;;;;;;;;;;;;;;;88:4541;2622:26;;;;;;:::i;:::-;;;:::i;:::-;88:4541;2107:6;88:4541;;;;;2211:4;88:4541;;;;;2668:31;;;;;;;;;;88:4541;2668:31;;;;;;;;;;;;;;;;;;88:4541;2701:26;;;;;;;:::i;:::-;88:4541;;2070:6;88:4541;;;;2748:31;;;;;;;2347:4;2748:31;;;88:4541;2748:31;;;;;;;;;;;;;;;;;88:4541;2781:27;;;;;;;:::i;:::-;2107:6;88:4541;;;;;2828:31;;;;;;;2347:4;2828:31;;;88:4541;2828:31;;;;;;;;;;;;88:4541;2861:27;;;;;;;:::i;:::-;88:4541;;2828:31;;;;;;;;;;;;;;;;;:::i;:::-;;;88:4541;;;;1057:14:1;;;2861:27:30;2828:31;;88:4541;;;;2828:31;;;;;;88:4541;;;;;;;;2748:31;;;;;;;;;;;;;;;;;;:::i;:::-;;;88:4541;;;;1057:14:1;;;;;;;2781:27:30;2748:31;;;;;;;;88:4541;;;;;;;;;2668:31;;;;;;;;;;;;;;;;;;;:::i;:::-;;;88:4541;;;;1057:14:1;;;;;2701:26:30;2668:31;;;;;;;;88:4541;;;;;;;;;;2589:31;;-1:-1:-1;2589:31:30;-1:-1:-1;2589:31:30;;;;;;;;;;;;;:::i;:::-;;;88:4541;;;;1057:14:1;;;;2622:26:30;2589:31;;;;;;;;88:4541;;;;;;;;;;2533:36;;;;;;;;;;;1982:167;2533:36;1982:167;2533:36;;;;;;;:::i;:::-;;;;;;;;;;;;88:4541;;;;;;;;;2454:17;;;;;88:4541;2454:17;88:4541;2454:17;;;;;;;:::i;:::-;;;;;;;;;88:4541;;;;;;;;;2390:31;;;-1:-1:-1;2390:31:30;-1:-1:-1;2390:31:30;;;;;;;;;;;;;;:::i;:::-;;;88:4541;;;;1057:14:1;;;;;;2454:17:30;2390:31;;;;;;;;88:4541;;;;;;;;;2322:31;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;88:4541;;;;1057:14:1;;;;;;2322:31:30;;;;;;;;;;88:4541;;;;;;;;;2253:31;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;88:4541;;;;1057:14:1;;;;;;2253:31:30;;;;;;;;;2186;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;88:4541;;;;1057:14:1;;;;;2186:31:30;;;;;;;;;;88:4541;;;;;;;;;;;;;;;;;;;;;;;;;;847:22;;;866:1;847:22;;;88:4541;847:22;;;;;;:::i;:::-;447:32:29;88:4541:30;;;;;962:8;88:4541;;;;1001:6;88:4541;;;1038:6;88:4541;;;;;;;;;:::i;:::-;;;913:167;;;88:4541;913:167;;;88:4541;913:167;;;88:4541;1173:4;88:4541;;;;;1057:14:1;;;;;1173:17:30;;88:4541;;;1173:17;88:4541;1173:17;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;88:4541;1267:27;1201:19;;;;;1230:27;1201:19;;:::i;:::-;1230:27;:::i;1267:::-;1324:14;5259:6:0;;;;5255:203;;88:4541:30;;;5255:203:0;88:4541:30;;-1:-1:-1;;;;;;;;;;;88:4541:30;;;;;;;;;;1057:14:1;-1:-1:-1;;;;;;;;;;;1057:14:1;;;88:4541:30;-1:-1:-1;;;913:167:30;88:4541;;;5286:41:0;88:4541:30;;;;;;;;;;1057:14:1;-1:-1:-1;;;913:167:30;1057:14:1;;88:4541:30;;;;;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;88:4541:30;;;;;;;;;1057:14:1;-1:-1:-1;;;913:167:30;1057:14:1;;88:4541:30;;;;5396:31:0;;;:::i;:::-;5255:203;;;;;88:4541:30;;;1173:17;;;;;1267:27;1230;1173:17;1201:19;1173:17;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;1173:17:30;;-1:-1:-1;1173:17:30;;-1:-1:-1;1173:17:30;;;;88:4541;;;;;;;;;;;;;;;;;;;;;;;;;;2999:1;2980:22;;;88:4541;2980:22;;;;;;:::i;:::-;447:32:29;88:4541:30;;;;;3095:8;88:4541;;;;3134:6;88:4541;;;3171:6;88:4541;;;;;;;;;:::i;:::-;;;2980:22;3046:167;;88:4541;3046:167;;;88:4541;3046:167;;;88:4541;;;3270:4;88:4541;;;3224:52;;;;;;88:4541;;;;;;;1057:14:1;;;;;;;;3224:52:30;;2999:1;3224:52;;;88:4541;2999:1;88:4541;;;;2999:1;88:4541;;;;2999:1;88:4541;;;;;;;;3224:52;;;;;;;;88:4541;;;;3581:17;88:4541;;;;3095:8;88:4541;;;3134:6;88:4541;;;3171:6;88:4541;;;;;;;;3381:42;2980:22;88:4541;;;;;;;;3511:7;3046:167;88:4541;;;3532:7;88:4541;;;;3553:7;88:4541;;;;3291:279;88:4541;3323:4;3291:279;;3270:4;88:4541;;;;;;1057:14:1;;;;;;;;;3581:17:30;;;;;:::i;:::-;;;;;;;;;;;;;88:4541;;;3581:17;;;88:4541;3581:17;88:4541;3581:17;;;;;;;:::i;:::-;;;;88:4541;;;3581:17;88:4541;;;;;;;;3224:52;;;;;;;:::i;:::-;88:4541;;3224:52;;;;;88:4541;;;;3224:52;88:4541;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:29;88:4541:30;;;;;;;;;;;;;;;;;;;;1432:22;;;1451:1;1432:22;;;88:4541;1432:22;;;;;;:::i;:::-;447:32:29;88:4541:30;;;;;;1547:8;88:4541;;;;1586:6;88:4541;;;1623:6;88:4541;;;;;;;;;:::i;:::-;;;1498:167;;;88:4541;1498:167;;;88:4541;1498:167;;;88:4541;;1698:4;88:4541;;;;;;1057:14:1;;;;;1698:17:30;;;;88:4541;1698:17;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;1725:19;1698:17;;1769;1698;;;;;;;;;88:4541;1725:19;;:::i;:::-;1698:4;88:4541;;;;;1769:17;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;88:4541;5259:6:0;1451:1:30;5259:6:0;;5255:203;;88:4541:30;;;5255:203:0;88:4541:30;;-1:-1:-1;;;;;;;;;;;88:4541:30;;;;;;;;;;1057:14:1;-1:-1:-1;;;;;;;;;;;1057:14:1;;;88:4541:30;-1:-1:-1;;;1498:167:30;88:4541;;;5286:41:0;88:4541:30;;;;;;;;;1057:14:1;-1:-1:-1;;;1498:167:30;1057:14:1;;88:4541:30;1451:1;88:4541;;;;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;88:4541:30;;;;;;;;;1057:14:1;-1:-1:-1;;;1498:167:30;1057:14:1;;88:4541:30;;;;5396:31:0;;;:::i;:::-;5255:203;;;;88:4541:30;;;1769:17;;;;;;;;;;;;;;:::i;:::-;;;;;;;1698;;;;;;;;;;;;;;:::i;:::-;;;;;;;;88:4541;;;;;;;;;;;;;;;;;;;;;;;;3994:8;88:4541;4033:6;88:4541;;;;-1:-1:-1;;;;;88:4541:30;;;;;;;;;:::i;:::-;;;3945:165;;;;88:4541;3945:165;;;88:4541;;;3945:165;88:4541;;;;;;;;;;;;;;;;3945:165;;;88:4541;;;4121:45;;;;;88:4541;;-1:-1:-1;;;4121:45:30;;-1:-1:-1;;;4121:45:30;;;88:4541;;;;;;;;;;;;4121:45;;;;;;;;88:4541;;;;4176:17;88:4541;;;4176:4;88:4541;;;;;;1057:14:1;;;;;;;;;4176:17:30;;;;;:::i;4121:45::-;;;;;;;:::i;:::-;88:4541;;4121:45;;;;;88:4541;;;;;;;;;;;;;;;;;;;;;;;;;;;447:32:29;88:4541:30;;;;;;;628:17:31;88:4541:30;466:8:31;88:4541:30;;;505:6:31;88:4541:30;;;542:6:31;88:4541:30;;;;569:22:31;588:1;569:22;;;88:4541:30;569:22:31;;;;;;:::i;:::-;88:4541:30;;;;;;:::i;:::-;;;569:22:31;417:185;;88:4541:30;417:185:31;;;88:4541:30;417:185:31;;;88:4541:30;;628:4:31;88:4541:30;;;;;1057:14:1;;;;;;;;;628:17:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;88:4541:30;;;613:32:31;88:4541:30;;;628:4:31;88:4541:30;;;;;1057:14:1;;;;;;;;3713:19:30;;;;88:4541;3713:19;;;;;;;88:4541;3713:19;;;88:4541;;3803:30;88:4541;3753:28;88:4541;;;3753:28;;;:::i;:::-;3803:26;:30;;;:::i;3713:19::-;;;;;;;;;;;;;;;;;:::i;:::-;;;88:4541;;;;;;;;3753:28;88:4541;;3803:30;88:4541;;:::i;:::-;;;569:22:31;88:4541:30;;;:::i;:::-;;;;;:::i;:::-;;;;:::i;:::-;3713:19;;;;;;;;;;88:4541;;;;;;;;;628:17:31;;;;88:4541:30;628:17:31;88:4541:30;628:17:31;;;;;;;:::i;:::-;;;;;;;;88:4541:30;;;;;;;;;;;;;;;;;;;;;;;;4351:8;88:4541;;;4454:22;;;;88:4541;;;4454:22;;-1:-1:-1;;;;;88:4541:30;;;;;4454:22;88:4541;4454:22;:::i;:::-;88:4541;;;;;;:::i;:::-;;;4390:6;4454:22;4302:185;;88:4541;4427:6;4302:185;;;88:4541;4302:185;;;88:4541;;;;4550:22;;;4454;4527:56;;;;;;;88:4541;1057:14:1;;;;;;4527:56:30;;;;;:::i;:::-;88:4541;4498:95;;;;;88:4541;;-1:-1:-1;;;4498:95:30;;4454:22;4498:95;;;1057:14:1;88:4541:30;;;;;;;;;;;1057:14:1;;4527:56:30;1057:14:1;;;;:::i;:::-;4498:95:30;;;;;;;;;;88:4541;;;4603:17;88:4541;;;4603:4;88:4541;;;;;;1057:14:1;;;;;;;;;4603:17:30;;;;;:::i;88:4541::-;;;;;;;;;;;;;;;447:32:29;;;;;;;;;;;;;;;;;;;;;;88:4541:30;;;;;;;1057:14:1;-1:-1:-1;;;1057:14:1;;;88:4541:30;1057:14:1;;;88:4541:30;;;;;;;;;;1057:14:1;-1:-1:-1;;;1057:14:1;;;88:4541:30;476:2:29;88:4541:30;;;1057:14:1;447:32:29;;;;;;;;;;;88:4541:30;;;;;;;;;;;;438:41:29;88:4541:30;;;438:41:29;88:4541:30;;;498:32:29;;;;;;;;;;;;;;;;;;;;88:4541:30;;;;;;;1057:14:1;-1:-1:-1;;;1057:14:1;;;88:4541:30;;;;;;;;;;1057:14:1;-1:-1:-1;;;1057:14:1;;;88:4541:30;476:2:29;88:4541:30;;;1057:14:1;498:32:29;;;;;;;;;88:4541:30;;;489:41:29;88:4541:30;;;489:41:29;88:4541:30;;438:41:29;88:4541:30;;540:34:29;;;;;;88:4541:30;;1057:14:1;;;540:34:29;;;560:4;540:34;;;88:4541:30;567:6:29;88:4541:30;;;;;;;;;;;;;540:34:29;;;;;;;;88:4541:30;;;;;;489:41:29;88:4541:30;;584:34:29;;;;;;88:4541:30;;;;;;584:34:29;;;;;;;560:4;584:34;;;88:4541:30;;;;;584:34:29;;;;;;;;88:4541:30;;;;438:41:29;88:4541:30;;;489:41:29;88:4541:30;;;;;635:50:29;;;;;;;;;;;;;;;;;88:4541:30;635:50:29;;;;;;;88:4541:30;;;;;;677:7:29;88:4541:30;;;;635:50:29;;;;;;;;;88:4541:30;;;629:56:29;88:4541:30;;;629:56:29;88:4541:30;;;702:20:29;;;;;;;;;;;;;;;;;;;;;88:4541:30;;;702:20:29;;;;;;;;;88:4541:30;;695:27:29;88:4541:30;;;;;;695:27:29;88:4541:30;;;;438:41:29;88:4541:30;;;;;;1057:14:1;;;;;;;;;733:48:29;;;;88:4541:30;;733:48:29;;;88:4541:30;763:17:29;;88:4541:30;;;;;;733:48:29;;;;;;;;;;;;88:4541:30;;;;489:41:29;88:4541:30;;;;;695:27:29;88:4541:30;;;;;791:48:29;;;;;;;;;;88:4541:30;;;;;791:48:29;;;;;;;;88:4541:30;;;695:27:29;88:4541:30;;;;;314:31:31;;;;;;;;;;;;;;;;;;;;;;;;;88:4541:30;;314:31:31;;;;;;;;;;88:4541:30;;;303:42:31;88:4541:30;;;303:42:31;88:4541:30;;;314:31:31;88:4541:30;;;;;;;;314:31:31;-1:-1:-1;;;88:4541:30;;;;;;;791:48:29;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;88:4541:30;;;;;;;;;733:48:29;;;;;;;;;;;;;:::i;:::-;;;;;;88:4541:30;;;;;;;;;702:20:29;-1:-1:-1;;;88:4541:30;;;;;;;;635:50:29;-1:-1:-1;;;88:4541:30;;;;;;;;584:34:29;;;;:::i;:::-;88:4541:30;;584:34:29;;;;88:4541:30;;;;584:34:29;88:4541:30;;;;;;;;;540:34:29;;;;;;;;:::i;:::-;;;;;;498:32;88:4541:30;;;;;;;;;498:32:29;-1:-1:-1;;;88:4541:30;;;;;;;;447:32:29;-1:-1:-1;;;88:4541:30;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;1057:14:1:-;;;;;;;;-1:-1:-1;;1057:14:1;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;88:4541:30;;-1:-1:-1;;88:4541:30;1057:14:1;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;447:32:29;88:4541:30;;;;1057:14:1;;;88:4541:30;1057:14:1;;;88:4541:30;1057:14:1;;;;;88:4541:30;1057:14:1;;;88:4541:30;1057:14:1;;;;88:4541:30;1057:14:1;;;88:4541:30;1057:14:1;;;;;;;;;;;:::i;:::-;;:::o;88:4541:30:-;;;-1:-1:-1;;;;;88:4541:30;;;;;;:::o;:::-;;;;;;;;;1057:14:1;;88:4541:30;;;;;1057:14:1;88:4541:30;;1057:14:1;88:4541:30;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;1671:64:0:-;;;;;;88:4541:30;;;;;;;;;;;;;-1:-1:-1;;88:4541:30;;;;;:::i;:::-;;;1671:64:0;-1:-1:-1;88:4541:30;1671:64:0;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;88:4541:30;;;1671:64:0;;;;;:::o;1819:584::-;1873:7;88:4541:30;;;;;;;;;;;;;;;1896:14:0:o;1869:528::-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;88:4541:30;;;;;2196:43:0;;;88:4541:30;;;;1671:64:0;;;88:4541:30;1671:64:0;;88:4541:30;;2196:43:0;;88:4541:30;;;;;;;;;;;;;;2086:175:0;;88:4541:30;;;;;;;;;2086:175:0;;;88:4541:30;;;;;;1671:64:0;1057:14:1;;1671:64:0;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;;2312:27;2047:232;;:::i;:::-;2196:43;1057:14:1;;;2312:27:0;;;;;;:::i;88:4541:30:-;-1:-1:-1;;;88:4541:30;;;;;;;;3255:157:0;3314:10;3310:96;;3255:157::o;3310:96::-;-1:-1:-1;;;;;;;;;;;88:4541:30;;;;;;;;;;1057:14:1;88:4541:30;;1057:14:1;;88:4541:30;3345:30:0;;;:::i;:::-;3255:157::o;5202:262::-;5259:6;5255:203;;5202:262;:::o;5255:203::-;88:4541:30;;;;;-1:-1:-1;;;;;;;;;;;88:4541:30;;;;;;;;;;1057:14:1;-1:-1:-1;;;;;;;;;;;1057:14:1;;;88:4541:30;-1:-1:-1;;;88:4541:30;;;;5286:41:0;88:4541:30;;;;;;;;;1057:14:1;-1:-1:-1;;;88:4541:30;1057:14:1;;88:4541:30;;;;;;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;88:4541:30;;;;;;;;;1057:14:1;-1:-1:-1;;;88:4541:30;1057:14:1;;88:4541:30;;;;;5396:31:0;;;:::i;5202:262::-;1249:7:30;5259:6:0;;;;5255:203;;5202:262;;:::o;5255:203::-;88:4541:30;;;;;;-1:-1:-1;;;;;;;;;;;88:4541:30;;;;;;;;;;1057:14:1;-1:-1:-1;;;;;;;;;;;1057:14:1;;;88:4541:30;-1:-1:-1;;;88:4541:30;;;;5286:41:0;88:4541:30;;;;;;;;;;1057:14:1;-1:-1:-1;;;88:4541:30;1057:14:1;;88:4541:30;;;;;-1:-1:-1;;;;;;;;;;;5346:31:0;;;;88:4541:30;;;;;;;;;1057:14:1;-1:-1:-1;;;88:4541:30;1057:14:1;;88:4541:30;;;;;5396:31:0;;;:::i;5202:262::-;1286:7:30;5259:6:0;;;;5255:203;;5202:262;;:::o;:::-;5259:6;;;5255:203;;5202:262;;:::o;2410:424::-;2939:104;;;2445:359;;2410:424;88:4541:30;;;;2928:1:0;88:4541:30;;;2928:1:0;88:4541:30;2410:424:0:o;2445:359::-;-1:-1:-1;88:4541:30;;;;2645:67:0;;;;88:4541:30;;;1671:64:0;;;88:4541:30;;;;2705:4:0;88:4541:30;;;;;2645:67:0;;;;;:::i;:::-;2534:196;1671:64;88:4541:30;;2534:196:0;;1671:64;2645:67;2534:196;;88:4541:30;;;;;;1057:14:1;1671:64:0;;;;;;;:::i;2534:196::-;2499:245;;;;;;;:::i;:::-;;2445:359;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","POOL_ID()":"e0d7d0e9","TEST_SWAP_FEE()":"620a2607","failed()":"ba414fa6","getPoolLiquidityToken(uint256)":"e21485ad","setUp()":"0a9254e4","test_DFMM_init_DeploysLPTokenClone()":"298f22ba","test_DFMM_init_IncrementsPoolId()":"586be2f9","test_DFMM_init_ReturnsStrategyInitialReserves()":"7f3a45da","test_DFMM_init_RevertsWhenNotValid()":"0bbcc1a6","test_DFMM_init_RevertsWhenSameTokens()":"516d2a5f","test_DFMM_init_StoresStrategyInitialReserves()":"c840a39e","test_DFMM_init_TransfersInitialReserves()":"8f094f6b","test_dfmm_init_emitsinitevent()":"7822aceb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"lpToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenX\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenY\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalLiquidity\",\"type\":\"uint256\"}],\"name\":\"Init\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POOL_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_SWAP_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolLiquidityToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_DFMM_init_DeploysLPTokenClone\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_DFMM_init_IncrementsPoolId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_DFMM_init_ReturnsStrategyInitialReserves\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_DFMM_init_RevertsWhenNotValid\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_DFMM_init_RevertsWhenSameTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_DFMM_init_StoresStrategyInitialReserves\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_DFMM_init_TransfersInitialReserves\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_dfmm_init_emitsinitevent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Init(address,address,address,address,address,uint256,uint256,uint256,uint256)\":{\"params\":{\"account\":\"Address initializing the pool.\",\"reserveX\":\"Initial reserve of token X in the pool.\",\"reserveY\":\"Initial reserve of token Y in the pool.\",\"totalLiquidity\":\"Initial liquidity in the pool.\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"events\":{\"Init(address,address,address,address,address,uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when the pool is initialized.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/unit/DFMM/Init.t.sol\":\"DFMMInit\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]},\"src/test/helpers/MockStrategy.sol\":{\"keccak256\":\"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5\",\"dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw\"]},\"src/test/helpers/SetUp.sol\":{\"keccak256\":\"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30\",\"dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14\"]},\"src/test/unit/DFMM/Init.t.sol\":{\"keccak256\":\"0x4d06350f4444383d16f8f3469471c109a2182f1d50145bd4fe776075bf13fbbc\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://245b298c61f09a2ba4c3e5a3426a11051027aa11df83ea08da9a22c9db98d171\",\"dweb:/ipfs/QmSNoH9L8UrKyC7HrDwGk3wGn4c2ZC2Wg1aHeLqxMeUAxP\"]},\"src/test/unit/DFMM/SetUp.sol\":{\"keccak256\":\"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4\",\"dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"strategy","type":"address","indexed":false},{"internalType":"address","name":"lpToken","type":"address","indexed":false},{"internalType":"address","name":"tokenX","type":"address","indexed":true},{"internalType":"address","name":"tokenY","type":"address","indexed":true},{"internalType":"uint256","name":"poolId","type":"uint256","indexed":false},{"internalType":"uint256","name":"reserveX","type":"uint256","indexed":false},{"internalType":"uint256","name":"reserveY","type":"uint256","indexed":false},{"internalType":"uint256","name":"totalLiquidity","type":"uint256","indexed":false}],"type":"event","name":"Init","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"POOL_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_SWAP_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolLiquidityToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_DFMM_init_DeploysLPTokenClone"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_DFMM_init_IncrementsPoolId"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_DFMM_init_ReturnsStrategyInitialReserves"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_DFMM_init_RevertsWhenNotValid"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_DFMM_init_RevertsWhenSameTokens"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_DFMM_init_StoresStrategyInitialReserves"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_DFMM_init_TransfersInitialReserves"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_dfmm_init_emitsinitevent"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/unit/DFMM/Init.t.sol":"DFMMInit"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"},"src/test/helpers/MockStrategy.sol":{"keccak256":"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a","urls":["bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5","dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw"],"license":"UNLICENSED"},"src/test/helpers/SetUp.sol":{"keccak256":"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb","urls":["bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30","dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14"],"license":"UNLICENSED"},"src/test/unit/DFMM/Init.t.sol":{"keccak256":"0x4d06350f4444383d16f8f3469471c109a2182f1d50145bd4fe776075bf13fbbc","urls":["bzz-raw://245b298c61f09a2ba4c3e5a3426a11051027aa11df83ea08da9a22c9db98d171","dweb:/ipfs/QmSNoH9L8UrKyC7HrDwGk3wGn4c2ZC2Wg1aHeLqxMeUAxP"],"license":"UNLICENSED"},"src/test/unit/DFMM/SetUp.sol":{"keccak256":"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a","urls":["bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4","dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/unit/DFMM/Init.t.sol","id":30107,"exportedSymbols":{"ArbiterToken":[28957],"DFMM":[28037],"DFMMInit":[30106],"DFMMSetUp":[30179],"DSTest":[1786],"ERC20":[25911],"FixedPointMathLib":[26603],"IDFMM":[28705],"IStrategy":[28814],"LPToken":[28491],"Lex":[29148],"LibString":[26622],"Min":[26711],"MockERC20":[25523],"MockStrategy":[29405],"SafeTransferLib":[26707],"SetUp":[29550],"StdAssertions":[2671],"StdChains":[3207],"StdCheats":[5144],"StdStorage":[6051],"StdUtils":[8116],"Test":[8158],"TestBase":[1843],"Vm":[9315],"WETH":[25990],"abs":[26738],"computeScalingFactor":[28850],"console":[17379],"console2":[25475],"diviWad":[26788],"downscaleDown":[28882],"downscaleUp":[28898],"muli":[26752],"muliWad":[26770],"stdError":[5210],"stdJson":[5877],"stdMath":[6019],"stdStorage":[7485],"upscale":[28866]},"nodeType":"SourceUnit","src":"39:4591:30","nodes":[{"id":29552,"nodeType":"PragmaDirective","src":"39:24:30","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":29553,"nodeType":"ImportDirective","src":"65:21:30","nodes":[],"absolutePath":"src/test/unit/DFMM/SetUp.sol","file":"./SetUp.sol","nameLocation":"-1:-1:-1","scope":30107,"sourceUnit":30180,"symbolAliases":[],"unitAlias":""},{"id":30106,"nodeType":"ContractDefinition","src":"88:4541:30","nodes":[{"id":29624,"nodeType":"FunctionDefinition","src":"125:622:30","nodes":[],"body":{"id":29623,"nodeType":"Block","src":"188:559:30","nodes":[],"statements":[{"assignments":[29559],"declarations":[{"constant":false,"id":29559,"mutability":"mutable","name":"data","nameLocation":"211:4:30","nodeType":"VariableDeclaration","scope":29623,"src":"198:17:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":29558,"name":"bytes","nodeType":"ElementaryTypeName","src":"198:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":29567,"initialValue":{"arguments":[{"arguments":[{"hexValue":"31","id":29564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"237:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":29563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"229:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":29562,"name":"uint256","nodeType":"ElementaryTypeName","src":"229:7:30","typeDescriptions":{}}},"id":29565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"229:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29560,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"218:3:30","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"222:6:30","memberName":"encode","nodeType":"MemberAccess","src":"218:10:30","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":29566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"218:22:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"198:42:30"},{"assignments":[29572],"declarations":[{"constant":false,"id":29572,"mutability":"mutable","name":"params","nameLocation":"275:6:30","nodeType":"VariableDeclaration","scope":29623,"src":"251:30:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":29571,"nodeType":"UserDefinedTypeName","pathNode":{"id":29570,"name":"IDFMM.InitParams","nameLocations":["251:5:30","257:10:30"],"nodeType":"IdentifierPath","referencedDeclaration":28518,"src":"251:16:30"},"referencedDeclaration":28518,"src":"251:16:30","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"id":29589,"initialValue":{"arguments":[{"arguments":[{"id":29577,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30115,"src":"333:8:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockStrategy_$29405","typeString":"contract MockStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockStrategy_$29405","typeString":"contract MockStrategy"}],"id":29576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"325:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29575,"name":"address","nodeType":"ElementaryTypeName","src":"325:7:30","typeDescriptions":{}}},"id":29578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"325:17:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":29581,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29423,"src":"372:6:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}],"id":29580,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"364:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29579,"name":"address","nodeType":"ElementaryTypeName","src":"364:7:30","typeDescriptions":{}}},"id":29582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"364:15:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":29585,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29426,"src":"409:6:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}],"id":29584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"401:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29583,"name":"address","nodeType":"ElementaryTypeName","src":"401:7:30","typeDescriptions":{}}},"id":29586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"401:15:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29587,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29559,"src":"436:4:30","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":29573,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28705,"src":"284:5:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$28705_$","typeString":"type(contract IDFMM)"}},"id":29574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"290:10:30","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":28518,"src":"284:16:30","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$28518_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":29588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["315:8:30","356:6:30","393:6:30","430:4:30"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"284:167:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}},"nodeType":"VariableDeclarationStatement","src":"251:200:30"},{"assignments":[29591,null,null,null],"declarations":[{"constant":false,"id":29591,"mutability":"mutable","name":"poolId","nameLocation":"471:6:30","nodeType":"VariableDeclaration","scope":29623,"src":"463:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29590,"name":"uint256","nodeType":"ElementaryTypeName","src":"463:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":29596,"initialValue":{"arguments":[{"id":29594,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29572,"src":"494:6:30","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":29592,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29417,"src":"484:4:30","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$28037","typeString":"contract DFMM"}},"id":29593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"489:4:30","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":27066,"src":"484:9:30","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$28518_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":29595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"484:17:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"462:39:30"},{"assignments":[29598,29600,29602],"declarations":[{"constant":false,"id":29598,"mutability":"mutable","name":"reserveX","nameLocation":"520:8:30","nodeType":"VariableDeclaration","scope":29623,"src":"512:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29597,"name":"uint256","nodeType":"ElementaryTypeName","src":"512:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29600,"mutability":"mutable","name":"reserveY","nameLocation":"538:8:30","nodeType":"VariableDeclaration","scope":29623,"src":"530:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29599,"name":"uint256","nodeType":"ElementaryTypeName","src":"530:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29602,"mutability":"mutable","name":"totalLiquidity","nameLocation":"556:14:30","nodeType":"VariableDeclaration","scope":29623,"src":"548:22:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29601,"name":"uint256","nodeType":"ElementaryTypeName","src":"548:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29607,"initialValue":{"arguments":[{"id":29605,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29591,"src":"615:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29603,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29417,"src":"586:4:30","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$28037","typeString":"contract DFMM"}},"id":29604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"591:23:30","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":27987,"src":"586:28:30","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":29606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"586:36:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"511:111:30"},{"expression":{"arguments":[{"id":29609,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29598,"src":"642:8:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"32","id":29610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"652:7:30","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_2000000000000000000_by_1","typeString":"int_const 2000000000000000000"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_2000000000000000000_by_1","typeString":"int_const 2000000000000000000"}],"id":29608,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[1974,1999,2012,2028,2070,2112,2154,2191,2228,2265,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"633:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":29611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"633:27:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29612,"nodeType":"ExpressionStatement","src":"633:27:30"},{"expression":{"arguments":[{"id":29614,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29600,"src":"679:8:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"33","id":29615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"689:7:30","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_3000000000000000000_by_1","typeString":"int_const 3000000000000000000"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_3000000000000000000_by_1","typeString":"int_const 3000000000000000000"}],"id":29613,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[1974,1999,2012,2028,2070,2112,2154,2191,2228,2265,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"670:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":29616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"670:27:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29617,"nodeType":"ExpressionStatement","src":"670:27:30"},{"expression":{"arguments":[{"id":29619,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29602,"src":"716:14:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"34","id":29620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"732:7:30","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_4000000000000000000_by_1","typeString":"int_const 4000000000000000000"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_4000000000000000000_by_1","typeString":"int_const 4000000000000000000"}],"id":29618,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[1974,1999,2012,2028,2070,2112,2154,2191,2228,2265,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"707:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":29621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"707:33:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29622,"nodeType":"ExpressionStatement","src":"707:33:30"}]},"functionSelector":"c840a39e","implemented":true,"kind":"function","modifiers":[],"name":"test_DFMM_init_StoresStrategyInitialReserves","nameLocation":"134:44:30","parameters":{"id":29556,"nodeType":"ParameterList","parameters":[],"src":"178:2:30"},"returnParameters":{"id":29557,"nodeType":"ParameterList","parameters":[],"src":"188:0:30"},"scope":30106,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":29695,"nodeType":"FunctionDefinition","src":"753:593:30","nodes":[],"body":{"id":29694,"nodeType":"Block","src":"817:529:30","nodes":[],"statements":[{"assignments":[29628],"declarations":[{"constant":false,"id":29628,"mutability":"mutable","name":"data","nameLocation":"840:4:30","nodeType":"VariableDeclaration","scope":29694,"src":"827:17:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":29627,"name":"bytes","nodeType":"ElementaryTypeName","src":"827:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":29636,"initialValue":{"arguments":[{"arguments":[{"hexValue":"31","id":29633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"866:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":29632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"858:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":29631,"name":"uint256","nodeType":"ElementaryTypeName","src":"858:7:30","typeDescriptions":{}}},"id":29634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"858:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29629,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"847:3:30","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"851:6:30","memberName":"encode","nodeType":"MemberAccess","src":"847:10:30","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":29635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"847:22:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"827:42:30"},{"assignments":[29641],"declarations":[{"constant":false,"id":29641,"mutability":"mutable","name":"params","nameLocation":"904:6:30","nodeType":"VariableDeclaration","scope":29694,"src":"880:30:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":29640,"nodeType":"UserDefinedTypeName","pathNode":{"id":29639,"name":"IDFMM.InitParams","nameLocations":["880:5:30","886:10:30"],"nodeType":"IdentifierPath","referencedDeclaration":28518,"src":"880:16:30"},"referencedDeclaration":28518,"src":"880:16:30","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"id":29658,"initialValue":{"arguments":[{"arguments":[{"id":29646,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30115,"src":"962:8:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockStrategy_$29405","typeString":"contract MockStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockStrategy_$29405","typeString":"contract MockStrategy"}],"id":29645,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"954:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29644,"name":"address","nodeType":"ElementaryTypeName","src":"954:7:30","typeDescriptions":{}}},"id":29647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"954:17:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":29650,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29423,"src":"1001:6:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}],"id":29649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"993:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29648,"name":"address","nodeType":"ElementaryTypeName","src":"993:7:30","typeDescriptions":{}}},"id":29651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"993:15:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":29654,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29426,"src":"1038:6:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}],"id":29653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1030:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29652,"name":"address","nodeType":"ElementaryTypeName","src":"1030:7:30","typeDescriptions":{}}},"id":29655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1030:15:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29656,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29628,"src":"1065:4:30","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":29642,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28705,"src":"913:5:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$28705_$","typeString":"type(contract IDFMM)"}},"id":29643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"919:10:30","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":28518,"src":"913:16:30","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$28518_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":29657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["944:8:30","985:6:30","1022:6:30","1059:4:30"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"913:167:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}},"nodeType":"VariableDeclarationStatement","src":"880:200:30"},{"assignments":[29660,29662,29664,29666],"declarations":[{"constant":false,"id":29660,"mutability":"mutable","name":"poolId","nameLocation":"1100:6:30","nodeType":"VariableDeclaration","scope":29694,"src":"1092:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29659,"name":"uint256","nodeType":"ElementaryTypeName","src":"1092:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29662,"mutability":"mutable","name":"reserveX","nameLocation":"1116:8:30","nodeType":"VariableDeclaration","scope":29694,"src":"1108:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29661,"name":"uint256","nodeType":"ElementaryTypeName","src":"1108:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29664,"mutability":"mutable","name":"reserveY","nameLocation":"1134:8:30","nodeType":"VariableDeclaration","scope":29694,"src":"1126:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29663,"name":"uint256","nodeType":"ElementaryTypeName","src":"1126:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29666,"mutability":"mutable","name":"liquidity","nameLocation":"1152:9:30","nodeType":"VariableDeclaration","scope":29694,"src":"1144:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29665,"name":"uint256","nodeType":"ElementaryTypeName","src":"1144:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29671,"initialValue":{"arguments":[{"id":29669,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29641,"src":"1183:6:30","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":29667,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29417,"src":"1173:4:30","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$28037","typeString":"contract DFMM"}},"id":29668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1178:4:30","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":27066,"src":"1173:9:30","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$28518_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":29670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1173:17:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1091:99:30"},{"expression":{"arguments":[{"id":29673,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29660,"src":"1210:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":29674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1218:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":29672,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[1974,1999,2012,2028,2070,2112,2154,2191,2228,2265,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"1201:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":29675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1201:19:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29676,"nodeType":"ExpressionStatement","src":"1201:19:30"},{"expression":{"arguments":[{"id":29678,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29662,"src":"1239:8:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"32","id":29679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1249:7:30","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_2000000000000000000_by_1","typeString":"int_const 2000000000000000000"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_2000000000000000000_by_1","typeString":"int_const 2000000000000000000"}],"id":29677,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[1974,1999,2012,2028,2070,2112,2154,2191,2228,2265,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"1230:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":29680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1230:27:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29681,"nodeType":"ExpressionStatement","src":"1230:27:30"},{"expression":{"arguments":[{"id":29683,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29664,"src":"1276:8:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"33","id":29684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1286:7:30","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_3000000000000000000_by_1","typeString":"int_const 3000000000000000000"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_3000000000000000000_by_1","typeString":"int_const 3000000000000000000"}],"id":29682,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[1974,1999,2012,2028,2070,2112,2154,2191,2228,2265,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"1267:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":29685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1267:27:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29686,"nodeType":"ExpressionStatement","src":"1267:27:30"},{"expression":{"arguments":[{"id":29688,"name":"liquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29666,"src":"1313:9:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_rational_3999999999999999000_by_1","typeString":"int_const 3999999999999999000"},"id":29691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"34","id":29689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1324:7:30","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_4000000000000000000_by_1","typeString":"int_const 4000000000000000000"},"value":"4"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31303030","id":29690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1334:4:30","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"src":"1324:14:30","typeDescriptions":{"typeIdentifier":"t_rational_3999999999999999000_by_1","typeString":"int_const 3999999999999999000"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_3999999999999999000_by_1","typeString":"int_const 3999999999999999000"}],"id":29687,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[1974,1999,2012,2028,2070,2112,2154,2191,2228,2265,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"1304:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":29692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1304:35:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29693,"nodeType":"ExpressionStatement","src":"1304:35:30"}]},"functionSelector":"7f3a45da","implemented":true,"kind":"function","modifiers":[],"name":"test_DFMM_init_ReturnsStrategyInitialReserves","nameLocation":"762:45:30","parameters":{"id":29625,"nodeType":"ParameterList","parameters":[],"src":"807:2:30"},"returnParameters":{"id":29626,"nodeType":"ParameterList","parameters":[],"src":"817:0:30"},"scope":30106,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":29756,"nodeType":"FunctionDefinition","src":"1352:470:30","nodes":[],"body":{"id":29755,"nodeType":"Block","src":"1402:420:30","nodes":[],"statements":[{"assignments":[29699],"declarations":[{"constant":false,"id":29699,"mutability":"mutable","name":"data","nameLocation":"1425:4:30","nodeType":"VariableDeclaration","scope":29755,"src":"1412:17:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":29698,"name":"bytes","nodeType":"ElementaryTypeName","src":"1412:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":29707,"initialValue":{"arguments":[{"arguments":[{"hexValue":"31","id":29704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1451:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":29703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1443:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":29702,"name":"uint256","nodeType":"ElementaryTypeName","src":"1443:7:30","typeDescriptions":{}}},"id":29705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1443:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29700,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1432:3:30","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1436:6:30","memberName":"encode","nodeType":"MemberAccess","src":"1432:10:30","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":29706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1432:22:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1412:42:30"},{"assignments":[29712],"declarations":[{"constant":false,"id":29712,"mutability":"mutable","name":"params","nameLocation":"1489:6:30","nodeType":"VariableDeclaration","scope":29755,"src":"1465:30:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":29711,"nodeType":"UserDefinedTypeName","pathNode":{"id":29710,"name":"IDFMM.InitParams","nameLocations":["1465:5:30","1471:10:30"],"nodeType":"IdentifierPath","referencedDeclaration":28518,"src":"1465:16:30"},"referencedDeclaration":28518,"src":"1465:16:30","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"id":29729,"initialValue":{"arguments":[{"arguments":[{"id":29717,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30115,"src":"1547:8:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockStrategy_$29405","typeString":"contract MockStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockStrategy_$29405","typeString":"contract MockStrategy"}],"id":29716,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1539:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29715,"name":"address","nodeType":"ElementaryTypeName","src":"1539:7:30","typeDescriptions":{}}},"id":29718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1539:17:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":29721,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29423,"src":"1586:6:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}],"id":29720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1578:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29719,"name":"address","nodeType":"ElementaryTypeName","src":"1578:7:30","typeDescriptions":{}}},"id":29722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1578:15:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":29725,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29426,"src":"1623:6:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}],"id":29724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1615:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29723,"name":"address","nodeType":"ElementaryTypeName","src":"1615:7:30","typeDescriptions":{}}},"id":29726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1615:15:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29727,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29699,"src":"1650:4:30","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":29713,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28705,"src":"1498:5:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$28705_$","typeString":"type(contract IDFMM)"}},"id":29714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1504:10:30","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":28518,"src":"1498:16:30","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$28518_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":29728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1529:8:30","1570:6:30","1607:6:30","1644:4:30"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"1498:167:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}},"nodeType":"VariableDeclarationStatement","src":"1465:200:30"},{"assignments":[29731,null,null,null],"declarations":[{"constant":false,"id":29731,"mutability":"mutable","name":"poolId","nameLocation":"1685:6:30","nodeType":"VariableDeclaration","scope":29755,"src":"1677:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29730,"name":"uint256","nodeType":"ElementaryTypeName","src":"1677:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":29736,"initialValue":{"arguments":[{"id":29734,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29712,"src":"1708:6:30","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":29732,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29417,"src":"1698:4:30","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$28037","typeString":"contract DFMM"}},"id":29733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1703:4:30","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":27066,"src":"1698:9:30","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$28518_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":29735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1698:17:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1676:39:30"},{"expression":{"arguments":[{"id":29738,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29731,"src":"1734:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":29739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1742:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":29737,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[1974,1999,2012,2028,2070,2112,2154,2191,2228,2265,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"1725:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":29740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1725:19:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29741,"nodeType":"ExpressionStatement","src":"1725:19:30"},{"expression":{"id":29748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":29742,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29731,"src":"1756:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},null,null,null],"id":29743,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1755:11:30","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$__$__$__$","typeString":"tuple(uint256,,,)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":29746,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29712,"src":"1779:6:30","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":29744,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29417,"src":"1769:4:30","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$28037","typeString":"contract DFMM"}},"id":29745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1774:4:30","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":27066,"src":"1769:9:30","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$28518_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":29747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1769:17:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"src":"1755:31:30","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29749,"nodeType":"ExpressionStatement","src":"1755:31:30"},{"expression":{"arguments":[{"id":29751,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29731,"src":"1805:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":29752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1813:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":29750,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[1974,1999,2012,2028,2070,2112,2154,2191,2228,2265,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"1796:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":29753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1796:19:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29754,"nodeType":"ExpressionStatement","src":"1796:19:30"}]},"functionSelector":"586be2f9","implemented":true,"kind":"function","modifiers":[],"name":"test_DFMM_init_IncrementsPoolId","nameLocation":"1361:31:30","parameters":{"id":29696,"nodeType":"ParameterList","parameters":[],"src":"1392:2:30"},"returnParameters":{"id":29697,"nodeType":"ParameterList","parameters":[],"src":"1402:0:30"},"scope":30106,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":29900,"nodeType":"FunctionDefinition","src":"1828:1068:30","nodes":[],"body":{"id":29899,"nodeType":"Block","src":"1886:1010:30","nodes":[],"statements":[{"assignments":[29760],"declarations":[{"constant":false,"id":29760,"mutability":"mutable","name":"data","nameLocation":"1909:4:30","nodeType":"VariableDeclaration","scope":29899,"src":"1896:17:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":29759,"name":"bytes","nodeType":"ElementaryTypeName","src":"1896:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":29768,"initialValue":{"arguments":[{"arguments":[{"hexValue":"31","id":29765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1935:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":29764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1927:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":29763,"name":"uint256","nodeType":"ElementaryTypeName","src":"1927:7:30","typeDescriptions":{}}},"id":29766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1927:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29761,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1916:3:30","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1920:6:30","memberName":"encode","nodeType":"MemberAccess","src":"1916:10:30","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":29767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1916:22:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1896:42:30"},{"assignments":[29773],"declarations":[{"constant":false,"id":29773,"mutability":"mutable","name":"params","nameLocation":"1973:6:30","nodeType":"VariableDeclaration","scope":29899,"src":"1949:30:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":29772,"nodeType":"UserDefinedTypeName","pathNode":{"id":29771,"name":"IDFMM.InitParams","nameLocations":["1949:5:30","1955:10:30"],"nodeType":"IdentifierPath","referencedDeclaration":28518,"src":"1949:16:30"},"referencedDeclaration":28518,"src":"1949:16:30","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"id":29790,"initialValue":{"arguments":[{"arguments":[{"id":29778,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30115,"src":"2031:8:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockStrategy_$29405","typeString":"contract MockStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockStrategy_$29405","typeString":"contract MockStrategy"}],"id":29777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2023:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29776,"name":"address","nodeType":"ElementaryTypeName","src":"2023:7:30","typeDescriptions":{}}},"id":29779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2023:17:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":29782,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29423,"src":"2070:6:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}],"id":29781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2062:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29780,"name":"address","nodeType":"ElementaryTypeName","src":"2062:7:30","typeDescriptions":{}}},"id":29783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2062:15:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":29786,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29426,"src":"2107:6:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}],"id":29785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2099:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29784,"name":"address","nodeType":"ElementaryTypeName","src":"2099:7:30","typeDescriptions":{}}},"id":29787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2099:15:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29788,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29760,"src":"2134:4:30","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":29774,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28705,"src":"1982:5:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$28705_$","typeString":"type(contract IDFMM)"}},"id":29775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1988:10:30","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":28518,"src":"1982:16:30","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$28518_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":29789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2013:8:30","2054:6:30","2091:6:30","2128:4:30"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"1982:167:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}},"nodeType":"VariableDeclarationStatement","src":"1949:200:30"},{"assignments":[29792],"declarations":[{"constant":false,"id":29792,"mutability":"mutable","name":"dfmmPreBalanceX","nameLocation":"2168:15:30","nodeType":"VariableDeclaration","scope":29899,"src":"2160:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29791,"name":"uint256","nodeType":"ElementaryTypeName","src":"2160:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29800,"initialValue":{"arguments":[{"arguments":[{"id":29797,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29417,"src":"2211:4:30","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$28037","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$28037","typeString":"contract DFMM"}],"id":29796,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2203:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29795,"name":"address","nodeType":"ElementaryTypeName","src":"2203:7:30","typeDescriptions":{}}},"id":29798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2203:13:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":29793,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29423,"src":"2186:6:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}},"id":29794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2193:9:30","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25554,"src":"2186:16:30","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":29799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2186:31:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2160:57:30"},{"assignments":[29802],"declarations":[{"constant":false,"id":29802,"mutability":"mutable","name":"dfmmPreBalanceY","nameLocation":"2235:15:30","nodeType":"VariableDeclaration","scope":29899,"src":"2227:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29801,"name":"uint256","nodeType":"ElementaryTypeName","src":"2227:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29810,"initialValue":{"arguments":[{"arguments":[{"id":29807,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29417,"src":"2278:4:30","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$28037","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$28037","typeString":"contract DFMM"}],"id":29806,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2270:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29805,"name":"address","nodeType":"ElementaryTypeName","src":"2270:7:30","typeDescriptions":{}}},"id":29808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2270:13:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":29803,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29426,"src":"2253:6:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}},"id":29804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2260:9:30","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25554,"src":"2253:16:30","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":29809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2253:31:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2227:57:30"},{"assignments":[29812],"declarations":[{"constant":false,"id":29812,"mutability":"mutable","name":"tokenXPreBalance","nameLocation":"2303:16:30","nodeType":"VariableDeclaration","scope":29899,"src":"2295:24:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29811,"name":"uint256","nodeType":"ElementaryTypeName","src":"2295:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29820,"initialValue":{"arguments":[{"arguments":[{"id":29817,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2347:4:30","typeDescriptions":{"typeIdentifier":"t_contract$_DFMMInit_$30106","typeString":"contract DFMMInit"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMMInit_$30106","typeString":"contract DFMMInit"}],"id":29816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2339:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29815,"name":"address","nodeType":"ElementaryTypeName","src":"2339:7:30","typeDescriptions":{}}},"id":29818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2339:13:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":29813,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29423,"src":"2322:6:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}},"id":29814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2329:9:30","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25554,"src":"2322:16:30","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":29819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2322:31:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2295:58:30"},{"assignments":[29822],"declarations":[{"constant":false,"id":29822,"mutability":"mutable","name":"tokenYPreBalance","nameLocation":"2371:16:30","nodeType":"VariableDeclaration","scope":29899,"src":"2363:24:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29821,"name":"uint256","nodeType":"ElementaryTypeName","src":"2363:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29830,"initialValue":{"arguments":[{"arguments":[{"id":29827,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2415:4:30","typeDescriptions":{"typeIdentifier":"t_contract$_DFMMInit_$30106","typeString":"contract DFMMInit"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMMInit_$30106","typeString":"contract DFMMInit"}],"id":29826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2407:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29825,"name":"address","nodeType":"ElementaryTypeName","src":"2407:7:30","typeDescriptions":{}}},"id":29828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2407:13:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":29823,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29426,"src":"2390:6:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}},"id":29824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2397:9:30","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25554,"src":"2390:16:30","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":29829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2390:31:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2363:58:30"},{"assignments":[29832,null,null,null],"declarations":[{"constant":false,"id":29832,"mutability":"mutable","name":"poolId","nameLocation":"2441:6:30","nodeType":"VariableDeclaration","scope":29899,"src":"2433:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29831,"name":"uint256","nodeType":"ElementaryTypeName","src":"2433:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":29837,"initialValue":{"arguments":[{"id":29835,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29773,"src":"2464:6:30","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":29833,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29417,"src":"2454:4:30","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$28037","typeString":"contract DFMM"}},"id":29834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2459:4:30","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":27066,"src":"2454:9:30","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$28518_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":29836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2454:17:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"2432:39:30"},{"assignments":[29839,29841,null],"declarations":[{"constant":false,"id":29839,"mutability":"mutable","name":"reserveX","nameLocation":"2490:8:30","nodeType":"VariableDeclaration","scope":29899,"src":"2482:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29838,"name":"uint256","nodeType":"ElementaryTypeName","src":"2482:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29841,"mutability":"mutable","name":"reserveY","nameLocation":"2508:8:30","nodeType":"VariableDeclaration","scope":29899,"src":"2500:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29840,"name":"uint256","nodeType":"ElementaryTypeName","src":"2500:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":29846,"initialValue":{"arguments":[{"id":29844,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29832,"src":"2562:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29842,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29417,"src":"2533:4:30","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$28037","typeString":"contract DFMM"}},"id":29843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2538:23:30","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":27987,"src":"2533:28:30","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":29845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2533:36:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"2481:88:30"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":29852,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29417,"src":"2614:4:30","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$28037","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$28037","typeString":"contract DFMM"}],"id":29851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2606:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29850,"name":"address","nodeType":"ElementaryTypeName","src":"2606:7:30","typeDescriptions":{}}},"id":29853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2606:13:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":29848,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29423,"src":"2589:6:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}},"id":29849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2596:9:30","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25554,"src":"2589:16:30","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":29854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2589:31:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29855,"name":"dfmmPreBalanceX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29792,"src":"2622:15:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":29856,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"2640:8:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2622:26:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29847,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[1974,1999,2012,2028,2070,2112,2154,2191,2228,2265,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2580:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":29858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2580:69:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29859,"nodeType":"ExpressionStatement","src":"2580:69:30"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":29865,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29417,"src":"2693:4:30","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$28037","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$28037","typeString":"contract DFMM"}],"id":29864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2685:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29863,"name":"address","nodeType":"ElementaryTypeName","src":"2685:7:30","typeDescriptions":{}}},"id":29866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2685:13:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":29861,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29426,"src":"2668:6:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}},"id":29862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2675:9:30","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25554,"src":"2668:16:30","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":29867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2668:31:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29868,"name":"dfmmPreBalanceY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29802,"src":"2701:15:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":29869,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29841,"src":"2719:8:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2701:26:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29860,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[1974,1999,2012,2028,2070,2112,2154,2191,2228,2265,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2659:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":29871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2659:69:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29872,"nodeType":"ExpressionStatement","src":"2659:69:30"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":29878,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2773:4:30","typeDescriptions":{"typeIdentifier":"t_contract$_DFMMInit_$30106","typeString":"contract DFMMInit"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMMInit_$30106","typeString":"contract DFMMInit"}],"id":29877,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2765:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29876,"name":"address","nodeType":"ElementaryTypeName","src":"2765:7:30","typeDescriptions":{}}},"id":29879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2765:13:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":29874,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29423,"src":"2748:6:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}},"id":29875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2755:9:30","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25554,"src":"2748:16:30","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":29880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2748:31:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29881,"name":"tokenXPreBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29812,"src":"2781:16:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":29882,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"2800:8:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2781:27:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29873,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[1974,1999,2012,2028,2070,2112,2154,2191,2228,2265,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2739:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":29884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2739:70:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29885,"nodeType":"ExpressionStatement","src":"2739:70:30"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":29891,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2853:4:30","typeDescriptions":{"typeIdentifier":"t_contract$_DFMMInit_$30106","typeString":"contract DFMMInit"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMMInit_$30106","typeString":"contract DFMMInit"}],"id":29890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2845:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29889,"name":"address","nodeType":"ElementaryTypeName","src":"2845:7:30","typeDescriptions":{}}},"id":29892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2845:13:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":29887,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29426,"src":"2828:6:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}},"id":29888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2835:9:30","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25554,"src":"2828:16:30","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":29893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2828:31:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29894,"name":"tokenYPreBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29822,"src":"2861:16:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":29895,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29841,"src":"2880:8:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2861:27:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29886,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[1974,1999,2012,2028,2070,2112,2154,2191,2228,2265,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2819:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":29897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2819:70:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29898,"nodeType":"ExpressionStatement","src":"2819:70:30"}]},"functionSelector":"8f094f6b","implemented":true,"kind":"function","modifiers":[],"name":"test_DFMM_init_TransfersInitialReserves","nameLocation":"1837:39:30","parameters":{"id":29757,"nodeType":"ParameterList","parameters":[],"src":"1876:2:30"},"returnParameters":{"id":29758,"nodeType":"ParameterList","parameters":[],"src":"1886:0:30"},"scope":30106,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":29984,"nodeType":"FunctionDefinition","src":"2902:703:30","nodes":[],"body":{"id":29983,"nodeType":"Block","src":"2950:655:30","nodes":[],"statements":[{"assignments":[29904],"declarations":[{"constant":false,"id":29904,"mutability":"mutable","name":"data","nameLocation":"2973:4:30","nodeType":"VariableDeclaration","scope":29983,"src":"2960:17:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":29903,"name":"bytes","nodeType":"ElementaryTypeName","src":"2960:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":29912,"initialValue":{"arguments":[{"arguments":[{"hexValue":"31","id":29909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2999:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":29908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2991:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":29907,"name":"uint256","nodeType":"ElementaryTypeName","src":"2991:7:30","typeDescriptions":{}}},"id":29910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2991:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29905,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2980:3:30","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2984:6:30","memberName":"encode","nodeType":"MemberAccess","src":"2980:10:30","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":29911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2980:22:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2960:42:30"},{"assignments":[29917],"declarations":[{"constant":false,"id":29917,"mutability":"mutable","name":"params","nameLocation":"3037:6:30","nodeType":"VariableDeclaration","scope":29983,"src":"3013:30:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":29916,"nodeType":"UserDefinedTypeName","pathNode":{"id":29915,"name":"IDFMM.InitParams","nameLocations":["3013:5:30","3019:10:30"],"nodeType":"IdentifierPath","referencedDeclaration":28518,"src":"3013:16:30"},"referencedDeclaration":28518,"src":"3013:16:30","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"id":29934,"initialValue":{"arguments":[{"arguments":[{"id":29922,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30115,"src":"3095:8:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockStrategy_$29405","typeString":"contract MockStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockStrategy_$29405","typeString":"contract MockStrategy"}],"id":29921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3087:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29920,"name":"address","nodeType":"ElementaryTypeName","src":"3087:7:30","typeDescriptions":{}}},"id":29923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3087:17:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":29926,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29423,"src":"3134:6:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}],"id":29925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3126:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29924,"name":"address","nodeType":"ElementaryTypeName","src":"3126:7:30","typeDescriptions":{}}},"id":29927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3126:15:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":29930,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29426,"src":"3171:6:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}],"id":29929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3163:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29928,"name":"address","nodeType":"ElementaryTypeName","src":"3163:7:30","typeDescriptions":{}}},"id":29931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3163:15:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29932,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29904,"src":"3198:4:30","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":29918,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28705,"src":"3046:5:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$28705_$","typeString":"type(contract IDFMM)"}},"id":29919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3052:10:30","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":28518,"src":"3046:16:30","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$28518_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":29933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3077:8:30","3118:6:30","3155:6:30","3192:4:30"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"3046:167:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}},"nodeType":"VariableDeclarationStatement","src":"3013:200:30"},{"expression":{"arguments":[{"hexValue":"74727565","id":29938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3238:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"74727565","id":29939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3244:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"74727565","id":29940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3250:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"74727565","id":29941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3256:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"arguments":[{"id":29944,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29417,"src":"3270:4:30","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$28037","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$28037","typeString":"contract DFMM"}],"id":29943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3262:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29942,"name":"address","nodeType":"ElementaryTypeName","src":"3262:7:30","typeDescriptions":{}}},"id":29945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3262:13:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":29935,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"3224:2:30","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9315","typeString":"contract Vm"}},"id":29937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3227:10:30","memberName":"expectEmit","nodeType":"MemberAccess","referencedDeclaration":9111,"src":"3224:13:30","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bool_$_t_bool_$_t_bool_$_t_bool_$_t_address_$returns$__$","typeString":"function (bool,bool,bool,bool,address) external"}},"id":29946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3224:52:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29947,"nodeType":"ExpressionStatement","src":"3224:52:30"},{"eventCall":{"arguments":[{"arguments":[{"id":29953,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3323:4:30","typeDescriptions":{"typeIdentifier":"t_contract$_DFMMInit_$30106","typeString":"contract DFMMInit"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMMInit_$30106","typeString":"contract DFMMInit"}],"id":29952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3315:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29951,"name":"address","nodeType":"ElementaryTypeName","src":"3315:7:30","typeDescriptions":{}}},"id":29954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3315:13:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":29957,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30115,"src":"3350:8:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockStrategy_$29405","typeString":"contract MockStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockStrategy_$29405","typeString":"contract MockStrategy"}],"id":29956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3342:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29955,"name":"address","nodeType":"ElementaryTypeName","src":"3342:7:30","typeDescriptions":{}}},"id":29958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3342:17:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"307844443463373232643136313431323839333364364443374546413530413639313365383034453132","id":29961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3381:42:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xDD4c722d1614128933d6DC7EFA50A6913e804E12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":29960,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3373:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29959,"name":"address","nodeType":"ElementaryTypeName","src":"3373:7:30","typeDescriptions":{}}},"id":29962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3373:51:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":29965,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29423,"src":"3446:6:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}],"id":29964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3438:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29963,"name":"address","nodeType":"ElementaryTypeName","src":"3438:7:30","typeDescriptions":{}}},"id":29966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3438:15:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":29969,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29426,"src":"3475:6:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}],"id":29968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3467:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29967,"name":"address","nodeType":"ElementaryTypeName","src":"3467:7:30","typeDescriptions":{}}},"id":29970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3467:15:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":29971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3496:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"32","id":29972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3511:7:30","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_2000000000000000000_by_1","typeString":"int_const 2000000000000000000"},"value":"2"},{"hexValue":"33","id":29973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3532:7:30","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_3000000000000000000_by_1","typeString":"int_const 3000000000000000000"},"value":"3"},{"hexValue":"34","id":29974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3553:7:30","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_4000000000000000000_by_1","typeString":"int_const 4000000000000000000"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_2000000000000000000_by_1","typeString":"int_const 2000000000000000000"},{"typeIdentifier":"t_rational_3000000000000000000_by_1","typeString":"int_const 3000000000000000000"},{"typeIdentifier":"t_rational_4000000000000000000_by_1","typeString":"int_const 4000000000000000000"}],"expression":{"id":29948,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28705,"src":"3291:5:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$28705_$","typeString":"type(contract IDFMM)"}},"id":29950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3297:4:30","memberName":"Init","nodeType":"MemberAccess","referencedDeclaration":28566,"src":"3291:10:30","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,address,address,address,uint256,uint256,uint256,uint256)"}},"id":29975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3291:279:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29976,"nodeType":"EmitStatement","src":"3286:284:30"},{"expression":{"arguments":[{"id":29980,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29917,"src":"3591:6:30","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":29977,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29417,"src":"3581:4:30","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$28037","typeString":"contract DFMM"}},"id":29979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3586:4:30","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":27066,"src":"3581:9:30","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$28518_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":29981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3581:17:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"id":29982,"nodeType":"ExpressionStatement","src":"3581:17:30"}]},"functionSelector":"7822aceb","implemented":true,"kind":"function","modifiers":[],"name":"test_dfmm_init_emitsinitevent","nameLocation":"2911:29:30","parameters":{"id":29901,"nodeType":"ParameterList","parameters":[],"src":"2940:2:30"},"returnParameters":{"id":29902,"nodeType":"ParameterList","parameters":[],"src":"2950:0:30"},"scope":30106,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":30014,"nodeType":"FunctionDefinition","src":"3611:230:30","nodes":[],"body":{"id":30013,"nodeType":"Block","src":"3669:172:30","nodes":[],"statements":[{"assignments":[null,null,null,null,null,null,29990],"declarations":[null,null,null,null,null,null,{"constant":false,"id":29990,"mutability":"mutable","name":"liquidityToken","nameLocation":"3695:14:30","nodeType":"VariableDeclaration","scope":30013,"src":"3687:22:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29989,"name":"address","nodeType":"ElementaryTypeName","src":"3687:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":29995,"initialValue":{"arguments":[{"id":29993,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30117,"src":"3724:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29991,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29417,"src":"3713:4:30","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$28037","typeString":"contract DFMM"}},"id":29992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3718:5:30","memberName":"pools","nodeType":"MemberAccess","referencedDeclaration":26812,"src":"3713:10:30","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$","typeString":"function (uint256) view external returns (address,address,address,uint256,uint256,uint256,address)"}},"id":29994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3713:19:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$","typeString":"tuple(address,address,address,uint256,uint256,uint256,address)"}},"nodeType":"VariableDeclarationStatement","src":"3679:53:30"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":30002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29997,"name":"liquidityToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29990,"src":"3753:14:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":30000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3779:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":29999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3771:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29998,"name":"address","nodeType":"ElementaryTypeName","src":"3771:7:30","typeDescriptions":{}}},"id":30001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3771:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3753:28:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":29996,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[269,290],"referencedDeclaration":269,"src":"3742:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$returns$__$","typeString":"function (bool)"}},"id":30003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3742:40:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30004,"nodeType":"ExpressionStatement","src":"3742:40:30"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":30006,"name":"liquidityToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29990,"src":"3803:14:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":30007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3818:4:30","memberName":"code","nodeType":"MemberAccess","src":"3803:19:30","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":30008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3823:6:30","memberName":"length","nodeType":"MemberAccess","src":"3803:26:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":30009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3832:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3803:30:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":30005,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[269,290],"referencedDeclaration":269,"src":"3792:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$returns$__$","typeString":"function (bool)"}},"id":30011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3792:42:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30012,"nodeType":"ExpressionStatement","src":"3792:42:30"}]},"functionSelector":"298f22ba","implemented":true,"kind":"function","modifiers":[{"id":29987,"kind":"modifierInvocation","modifierName":{"id":29986,"name":"init","nameLocations":["3664:4:30"],"nodeType":"IdentifierPath","referencedDeclaration":30178,"src":"3664:4:30"},"nodeType":"ModifierInvocation","src":"3664:4:30"}],"name":"test_DFMM_init_DeploysLPTokenClone","nameLocation":"3620:34:30","parameters":{"id":29985,"nodeType":"ParameterList","parameters":[],"src":"3654:2:30"},"returnParameters":{"id":29988,"nodeType":"ParameterList","parameters":[],"src":"3669:0:30"},"scope":30106,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":30054,"nodeType":"FunctionDefinition","src":"3847:353:30","nodes":[],"body":{"id":30053,"nodeType":"Block","src":"3902:298:30","nodes":[],"statements":[{"assignments":[30021],"declarations":[{"constant":false,"id":30021,"mutability":"mutable","name":"params","nameLocation":"3936:6:30","nodeType":"VariableDeclaration","scope":30053,"src":"3912:30:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":30020,"nodeType":"UserDefinedTypeName","pathNode":{"id":30019,"name":"IDFMM.InitParams","nameLocations":["3912:5:30","3918:10:30"],"nodeType":"IdentifierPath","referencedDeclaration":28518,"src":"3912:16:30"},"referencedDeclaration":28518,"src":"3912:16:30","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"id":30038,"initialValue":{"arguments":[{"arguments":[{"id":30026,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30115,"src":"3994:8:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockStrategy_$29405","typeString":"contract MockStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockStrategy_$29405","typeString":"contract MockStrategy"}],"id":30025,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3986:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":30024,"name":"address","nodeType":"ElementaryTypeName","src":"3986:7:30","typeDescriptions":{}}},"id":30027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3986:17:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":30030,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29423,"src":"4033:6:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}],"id":30029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4025:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":30028,"name":"address","nodeType":"ElementaryTypeName","src":"4025:7:30","typeDescriptions":{}}},"id":30031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4025:15:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":30034,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29423,"src":"4070:6:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25523","typeString":"contract MockERC20"}],"id":30033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4062:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":30032,"name":"address","nodeType":"ElementaryTypeName","src":"4062:7:30","typeDescriptions":{}}},"id":30035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4062:15:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"","id":30036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4097:2:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":30022,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28705,"src":"3945:5:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$28705_$","typeString":"type(contract IDFMM)"}},"id":30023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3951:10:30","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":28518,"src":"3945:16:30","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$28518_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":30037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3976:8:30","4017:6:30","4054:6:30","4091:4:30"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"3945:165:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}},"nodeType":"VariableDeclarationStatement","src":"3912:198:30"},{"expression":{"arguments":[{"expression":{"expression":{"id":30042,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28705,"src":"4137:5:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$28705_$","typeString":"type(contract IDFMM)"}},"id":30043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4143:13:30","memberName":"InvalidTokens","nodeType":"MemberAccess","referencedDeclaration":28530,"src":"4137:19:30","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":30044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4157:8:30","memberName":"selector","nodeType":"MemberAccess","src":"4137:28:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":30039,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"4121:2:30","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9315","typeString":"contract Vm"}},"id":30041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4124:12:30","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":9084,"src":"4121:15:30","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes4_$returns$__$","typeString":"function (bytes4) external"}},"id":30045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4121:45:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30046,"nodeType":"ExpressionStatement","src":"4121:45:30"},{"expression":{"arguments":[{"id":30050,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30021,"src":"4186:6:30","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":30047,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29417,"src":"4176:4:30","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$28037","typeString":"contract DFMM"}},"id":30049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4181:4:30","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":27066,"src":"4176:9:30","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$28518_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":30051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4176:17:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"id":30052,"nodeType":"ExpressionStatement","src":"4176:17:30"}]},"functionSelector":"516d2a5f","implemented":true,"kind":"function","modifiers":[],"name":"test_DFMM_init_RevertsWhenSameTokens","nameLocation":"3856:36:30","parameters":{"id":30015,"nodeType":"ParameterList","parameters":[],"src":"3892:2:30"},"returnParameters":{"id":30016,"nodeType":"ParameterList","parameters":[],"src":"3902:0:30"},"scope":30106,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":30105,"nodeType":"FunctionDefinition","src":"4206:421:30","nodes":[],"body":{"id":30104,"nodeType":"Block","src":"4259:368:30","nodes":[],"statements":[{"assignments":[30061],"declarations":[{"constant":false,"id":30061,"mutability":"mutable","name":"params","nameLocation":"4293:6:30","nodeType":"VariableDeclaration","scope":30104,"src":"4269:30:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":30060,"nodeType":"UserDefinedTypeName","pathNode":{"id":30059,"name":"IDFMM.InitParams","nameLocations":["4269:5:30","4275:10:30"],"nodeType":"IdentifierPath","referencedDeclaration":28518,"src":"4269:16:30"},"referencedDeclaration":28518,"src":"4269:16:30","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"id":30084,"initialValue":{"arguments":[{"arguments":[{"id":30066,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30115,"src":"4351:8:30","typeDescriptions":{"typeIdentifier":"t_contract$_MockStrategy_$29405","typeString":"contract MockStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockStrategy_$29405","typeString":"contract MockStrategy"}],"id":30065,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4343:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":30064,"name":"address","nodeType":"ElementaryTypeName","src":"4343:7:30","typeDescriptions":{}}},"id":30067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4343:17:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"307862656566","id":30070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4390:6:30","typeDescriptions":{"typeIdentifier":"t_rational_48879_by_1","typeString":"int_const 48879"},"value":"0xbeef"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_48879_by_1","typeString":"int_const 48879"}],"id":30069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4382:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":30068,"name":"address","nodeType":"ElementaryTypeName","src":"4382:7:30","typeDescriptions":{}}},"id":30071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4382:15:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"307864656164","id":30074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4427:6:30","typeDescriptions":{"typeIdentifier":"t_rational_57005_by_1","typeString":"int_const 57005"},"value":"0xdead"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_57005_by_1","typeString":"int_const 57005"}],"id":30073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4419:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":30072,"name":"address","nodeType":"ElementaryTypeName","src":"4419:7:30","typeDescriptions":{}}},"id":30075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4419:15:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"hexValue":"30","id":30080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4473:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":30079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4465:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":30078,"name":"uint256","nodeType":"ElementaryTypeName","src":"4465:7:30","typeDescriptions":{}}},"id":30081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4465:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30076,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4454:3:30","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4458:6:30","memberName":"encode","nodeType":"MemberAccess","src":"4454:10:30","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":30082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4454:22:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":30062,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28705,"src":"4302:5:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$28705_$","typeString":"type(contract IDFMM)"}},"id":30063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4308:10:30","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":28518,"src":"4302:16:30","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$28518_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":30083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4333:8:30","4374:6:30","4411:6:30","4448:4:30"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"4302:185:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}},"nodeType":"VariableDeclarationStatement","src":"4269:218:30"},{"expression":{"arguments":[{"arguments":[{"expression":{"expression":{"id":30090,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28705,"src":"4550:5:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$28705_$","typeString":"type(contract IDFMM)"}},"id":30091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4556:7:30","memberName":"Invalid","nodeType":"MemberAccess","referencedDeclaration":28527,"src":"4550:13:30","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bool_$_t_uint256_$returns$__$","typeString":"function (bool,uint256) pure"}},"id":30092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4564:8:30","memberName":"selector","nodeType":"MemberAccess","src":"4550:22:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"hexValue":"66616c7365","id":30093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4574:5:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":30094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4581:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":30088,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4527:3:30","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4531:18:30","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"4527:22:30","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":30095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4527:56:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":30085,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"4498:2:30","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9315","typeString":"contract Vm"}},"id":30087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4501:12:30","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":9079,"src":"4498:15:30","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":30096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4498:95:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30097,"nodeType":"ExpressionStatement","src":"4498:95:30"},{"expression":{"arguments":[{"id":30101,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30061,"src":"4613:6:30","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$28518_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":30098,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29417,"src":"4603:4:30","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$28037","typeString":"contract DFMM"}},"id":30100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4608:4:30","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":27066,"src":"4603:9:30","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$28518_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":30102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4603:17:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"id":30103,"nodeType":"ExpressionStatement","src":"4603:17:30"}]},"functionSelector":"0bbcc1a6","implemented":true,"kind":"function","modifiers":[],"name":"test_DFMM_init_RevertsWhenNotValid","nameLocation":"4215:34:30","parameters":{"id":30055,"nodeType":"ParameterList","parameters":[],"src":"4249:2:30"},"returnParameters":{"id":30056,"nodeType":"ParameterList","parameters":[],"src":"4259:0:30"},"scope":30106,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":29554,"name":"DFMMSetUp","nameLocations":["109:9:30"],"nodeType":"IdentifierPath","referencedDeclaration":30179,"src":"109:9:30"},"id":29555,"nodeType":"InheritanceSpecifier","src":"109:9:30"}],"canonicalName":"DFMMInit","contractDependencies":[25523,28037,29148,29405],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[30106,30179,29550,8158,1843,1840,8116,5144,4755,3207,2671,1786],"name":"DFMMInit","nameLocation":"97:8:30","scope":30107,"usedErrors":[],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1868,1873,1878,1885,1892,1899,28566]}],"license":"UNLICENSED"},"id":30} \ No newline at end of file diff --git a/out/Init.t.sol/G3MInitTest.json b/out/Init.t.sol/G3MInitTest.json deleted file mode 100644 index 95b37d00..00000000 --- a/out/Init.t.sol/G3MInitTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"POOL_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TEST_SWAP_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolLiquidityToken","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_G3M_init_RevertsWhenInvalidWeightX","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_G3M_init_RevertsWhenSenderNotDFMM","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_G3M_init_SetInternalParams","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"BisectionLib_InvalidBounds","inputs":[{"name":"lower","type":"uint256","internalType":"uint256"},{"name":"upper","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BisectionLib_RootOutsideBounds","inputs":[{"name":"lowerResult","type":"int256","internalType":"int256"},{"name":"upperResult","type":"int256","internalType":"int256"}]}],"bytecode":{"object":"0x34620000ae57600160ff1960005416176000556101006040526706f05b59d3b20000806080528060a052660aa87bee538000908160c0523060e05280601a55601b55601c553060018060a01b0319601d541617601d5562000067670de0b6b3a7640000601e55565b62000079670de0b6b3a7640000601f55565b6200009e62000098601e54601f54620000916200010f565b91620002d3565b620001de565b604051619f29908162000ba68239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b03821117620000e557604052565b620000b3565b601f909101601f19168101906001600160401b03821190821017620000e557604052565b604051906200011e82620000c9565b601a548252601b546020830152601c546040830152601d546001600160a01b03166060830152565b90600182811c9216801562000178575b60208310146200016257565b634e487b7160e01b600052602260045260246000fd5b91607f169162000156565b601f811162000190575050565b60009060206000526020600020906020601f850160051c83019410620001d3575b601f0160051c01915b828110620001c757505050565b818155600101620001ba565b9092508290620001b1565b80519091906001600160401b038111620000e5576020906200020c8162000206845462000146565b62000183565b81601f8211600114620002505781906200024093949560009262000244575b50508160011b916000199060031b1c19161790565b9055565b0151905038806200022b565b6020600052601f198216907fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb9160005b818110620002bb57509583600195969710620002a1575b505050811b019055565b015160001960f88460031b161c1916905538808062000297565b91928560018192868b01518155019401920162000280565b92916200031d60208201620003166200030d6200030588620002ff855198620002ff8951809b62000731565b62000754565b958862000516565b91518562000516565b90620006d9565b936200032c8286858462000496565b859060008082121562000438575b808212620004155750620003b862000405926200041296979886935b6040805160208082018a90528183018d90526060808301949094528a5160808301528a015160a08201529089015160c08201529701516001600160a01b031660e0808901919091528752601f1996620003b261010082620000eb565b620007b2565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b03908101835282620000eb565b90565b9662000422915062000776565b95620004318488878662000496565b906200033a565b9691965b8082136200045d5750620003b8620004129596976200040593869362000356565b966200046a915062000706565b95620004798488878662000496565b906200043c565b634e487b7160e01b600052601160045260246000fd5b926020620004c784620004c0620004b7620003169697620004d19962000731565b85519062000516565b9562000731565b9101519062000516565b670de0b6b3a763ffff198101908113600116620004eb5790565b62000480565b818102929160008212600160ff1b821416620004eb578184051490151715620004eb57565b620006c562000412927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284620006d3936200055160008213620008f0565b711340daa0d5f769dba1915cef59f0815a55066200056f8262000ac5565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d019160016c0504a838426634cdd8738f543560611b0319916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d620004f1565b670de0b6b3a7640000900590565b62000929565b818102918183041490151760011615620000ae576001670de0b6b3a7640000600019830104019015150290565b6103e990818102918183041490151760011615620000ae5760016103e8600019830104019015150290565b670de0b6b3a76400009081810291818304149015178215151615620000ae570490565b818102918183041490151760011615620000ae57670de0b6b3a7640000900490565b6103e790818102918183041490151760011615620000ae576103e8900490565b91908203918211620004eb57565b91908201809211620004eb57565b60009392918491838211620008d057620007cd828262000b2d565b620007d9858362000b2d565b6000620007e78284620004f1565b13620008b15750620007fc8386979662000796565b60019460009186805b62000817575b50505050505050509050565b1562000887575b50859697985080916200083c620008368b88620007a4565b60011c90565b99620008498b8762000b2d565b9083620008578784620004f1565b136200087a57505089925b876200086f888662000796565b920193999862000805565b8b97509094509262000862565b861080620008a5575b156200089d57886200081e565b80806200080b565b50610100821062000890565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b15620008f857565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131562000abf57680755bf798b4a1bf1e581121562000a8b576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b3989179d835ebba824c98fb31b83b2ca45c0000000000000000000000006060916b8000000000000000000000008582851b0501831d94850290036e0587f503bb6ea29d25fcb740196450816c10fe68e7fd37d0007b713f7650810102841d936e05180bb14799ab47a8a8cb2a527d57836e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028a1d0102881d0102861d0102841d0102821d01946d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b62000ad2811515620008f0565b8060018060801b031060071b81811c60018060401b031060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b8080518101039160e08312620000ae576020820151926080604084015191605f190112620000ae5760e06040519362000b6685620000c9565b6080810151855260a0810151602086015260c081015160408601520151936001600160a01b0385168503620000ae57620004129460608501526200049656fe60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e414620000be5750508063620a260714620000b8578063a99cc23914620000b2578063ba414fa614620000ac578063d25496bd14620000a6578063e0d7d0e914620000a0578063e21485ad146200009a578063fa7626d414620000945763fd09bac0146200008e57600080fd5b62000a6c565b62000a47565b6200090f565b620008ef565b62000709565b620006e0565b620005db565b620005b7565b346200058757816003193601126200058757620000da62001263565b805161106b8082019067ffffffffffffffff92808310848411176200056357806200010d620021aa948486843962000ca1565b039086f080156200053b57601580546001600160a01b0319166001600160a01b0390921691909117905583519181830183811085821117620005635783926200015892843962000ced565b039084f080156200053b57601680546001600160a01b0319166001600160a01b039283161790556015546200019591165b6001600160a01b031690565b803b15620005a25782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af180156200053b576200058b575b506016548490620001f4906001600160a01b031662000189565b91823b156200058757845190815230600482015268056bc75e2d631000006024820152918290604490829084905af180156200053b5762000569575b5060155462000248906001600160a01b031662000189565b6016546200025f906001600160a01b031662000189565b9083519161059790818401928484108685111762000563578493620002ac936200995d86396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200053b57601480546001600160a01b0319166001600160a01b039092169190911790558151612f2180820190828210848311176200056357829162000302916200321584396000815260200190565b039084f080156200053b57601380546001600160a01b0319166001600160a01b03929092169182179055620003379062000189565b8251906112cb8083019183831085841117620005635783926200036d926200869285396001600160a01b03909116815260200190565b039084f080156200053b57601780546001600160a01b0319166001600160a01b03929092169182179055620003a29062000189565b82519161255c80840192909183118484101762000563578392620003d9926200613685396001600160a01b03909116815260200190565b039083f09081156200053b57620004106200047c9260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b60155462000427906001600160a01b031662000189565b6013546200043e906001600160a01b031662000189565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200053b57620004f493859362000541575b50601654620004ad906001600160a01b031662000189565b6013549091908790620004c9906001600160a01b031662000189565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200053b5762000508578280f35b816200052c92903d1062000533575b62000523818362000c58565b81019062000d3b565b5081808280f35b503d62000517565b62000ce1565b6200055b90843d8611620005335762000523818362000c58565b508662000495565b62000bf3565b8062000579620005809262000c09565b80620005a6565b8362000230565b5080fd5b80620005796200059b9262000c09565b84620001da565b8380fd5b6000910312620005b257565b600080fd5b34620005b2576000366003190112620005b2576020604051660aa87bee5380008152f35b34620005b257600080600319360112620006dd57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b156200058757604051630618f58760e51b8152636853cba760e01b60048201529082908290602490829084905af180156200053b57620006c6575b5060175462000659906001600160a01b031662000189565b60a060405180926373cb2d0360e01b82528185816200067c306004830162000dab565b03925af180156200053b5762000690575080f35b620006b69060a03d60a011620006be575b620006ad818362000c58565b81019062000d55565b505050505080f35b503d620006a1565b8062000579620006d69262000c09565b3862000641565b80fd5b34620005b2576000366003190112620005b2576020620006ff62000e77565b6040519015158152f35b34620005b257600080600319360112620006dd57620007646200072b62000c7b565b670f43fc2c04ee000081526706f05b59d3b200006020820152660aa87bee5380006040820152306060820152601e54601f5490620015f9565b6017546200077b906001600160a01b031662000189565b601554909190620007f4906200079a906001600160a01b031662000189565b601654620007e490620007b6906001600160a01b031662000189565b91620007d4620007c562000c7b565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b03166040840152565b6060820152737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620008eb57604051630618f58760e51b815263e8a38a6160e01b60048201529083908290602490829084905af180156200053b5783926080926200088b92620008d4575b506013546200086d906001600160a01b031662000189565b906040519485809481936305157c7f60e21b83526004830162000f72565b03925af180156200053b576200089f575080f35b620008c59060803d608011620008cc575b620008bc818362000c58565b81019062000f4f565b5050505080f35b503d620008b0565b8062000579620008e49262000c09565b3862000855565b8280fd5b34620005b2576000366003190112620005b2576020601954604051908152f35b34620005b2576020366003190112620005b25760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa9081156200053b5760009162000993575b60c08201516200098f906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e01162000a3e575b81620009b160e0938362000c58565b81010312620005b2576200097560c06200098f9262000a318260405192620009d98462000c1e565b620009e48162000c8c565b8452620009f46020820162000c8c565b602085015262000a076040820162000c8c565b6040850152606081015160608501526080810151608085015260a081015160a08501520162000c8c565b8282015292505062000961565b3d9150620009a2565b34620005b2576000366003190112620005b257602060ff600054166040519015158152f35b34620005b257600080600319360112620006dd57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000587576040516372eb5f8160e11b8152600060048201529082908290602490829084905af180156200053b5762000bdc575b50601754819060809062000b8a9062000aee906001600160a01b031662000189565b60155462000b649062000b0a906001600160a01b031662000189565b60165462000b549062000b26906001600160a01b031662000189565b9162000b4462000b3562000c7b565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6001600160a01b03166040830152565b62000b6e62000fd0565b60608201526013546200086d906001600160a01b031662000189565b03925af180156200053b5762000ba891839162000bb5575b50601955565b62000bb2620010d2565b80f35b62000bd2915060803d608011620008cc57620008bc818362000c58565b5050503862000ba2565b806200057962000bec9262000c09565b3862000acc565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200056357604052565b60e0810190811067ffffffffffffffff8211176200056357604052565b6080810190811067ffffffffffffffff8211176200056357604052565b90601f8019910116810190811067ffffffffffffffff8211176200056357604052565b6040519062000c8a8262000c3b565b565b51906001600160a01b0382168203620005b257565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b6040513d6000823e3d90fd5b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b51908115158203620005b257565b90816020910312620005b25762000d529062000d2d565b90565b908160a0910312620005b25762000d6c8162000d2d565b916020820151916040810151916080606083015192015190565b60005b83811062000d9a5750506000910152565b818101518382015260200162000d89565b919060018060a01b03168252602091600060208201526060604082015260605180606083015260005b81811062000df6575060809293506000838284010152601f8019910116010190565b84906080818101519082860101520162000dd4565b90600491630667f9d760e41b815262000e2e825180936020868501910162000d86565b010190565b3d1562000e72573d9067ffffffffffffffff821162000563576040519162000e66601f8201601f19166020018462000c58565b82523d6000602084013e565b606090565b6000805460081c60ff161562000e91575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62000eb357505090565b819250604051828162000ef160208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b0362000f06601f199182810185528462000c58565b62000f2c604051918262000f1f60208201968762000e0b565b0390810183528262000c58565b51925af15062000d5262000f3f62000e33565b6020808251830101910162000d3b565b9190826080910312620005b2578151916020810151916060604083015192015190565b606060c0926020835260018060a01b0380825116602085015280602083015116604085015260408201511682840152015160808083015262000fc4815180928160a08601526020868601910162000d86565b601f01601f1916010190565b6040519060006020906020546001928160011c9360018316928315620010c7575b602086108414620010b3578588528794936020860193929181156200109257506001146200102b575b50505062000c8a9250038362000c58565b9250936200105b60206000527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb90565b946000935b8285106200107b5750505062000c8a9350013880806200101a565b865485850152958601958895509381019362001060565b9250505062000c8a9491925060ff19168252151560051b013880806200101a565b634e487b7160e01b85526022600452602485fd5b94607f169462000ff1565b60018060a01b036017541660c0601954602460405180948193631edb71e560e01b835260048301525afa80156200053b576000809281926200114f575b5062000c8a9262001132620011286200113c93620017bf565b601a549062001853565b601c549062001853565b601d546001600160a01b0316906200195c565b925090508160c03d60c011620011e3575b6200116c818362000c58565b81010360c081126200058757608013620006dd575062000c8a906200113c604051620011988162000c3b565b825181526020830151602082015260408301516040820152606083015160608201526200113262001128620011d560a06080870151960162000c8c565b94959293506200110f915050565b503d62001160565b634e487b7160e01b600052601160045260246000fd5b92602062001232846200122b620012226200123c9697620012439962001d06565b85519062001a87565b9562001d06565b9101519062001a87565b9062001f30565b670de0b6b3a763ffff1981019081136001166200125d5790565b620011eb565b6040805161106b80820167ffffffffffffffff918382108383111762000563578362001297620021aa938385843962000ca1565b0360009485f080156200053b57601580546001600160a01b0319166001600160a01b039092169190911790558451918183018381108582111762000563578392620012e492843962000ced565b039083f080156200053b57601680546001600160a01b0319166001600160a01b039283161790556015546200131a911662000189565b803b15620008eb5783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af180156200053b57620015e2575b5060165462001377906001600160a01b031662000189565b90813b15620005a257845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af180156200053b57620015cb575b50601554620013cd906001600160a01b031662000189565b601654620013e4906001600160a01b031662000189565b908451916105979081840192848410868511176200056357849362001431936200995d86396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200053b57601480546001600160a01b0319166001600160a01b03909216919091179055825190612f21808301918211838310176200056357829162001487916200321584396000815260200190565b039082f09182156200053b57620014be6200152d9360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b601554620014d5906001600160a01b031662000189565b601354909190620014ef906001600160a01b031662000189565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af19283156200053b5762001578948694620015a9575b506016546200155e906001600160a01b031662000189565b601354909290620004c9906001600160a01b031662000189565b03925af180156200053b576200158c575050565b81620015a692903d10620005335762000523818362000c58565b50565b620015c390853d8711620005335762000523818362000c58565b503862001546565b8062000579620015db9262000c09565b38620013b5565b8062000579620015f29262000c09565b386200135f565b92916200163c602082016200123c620016336200162b8862001625855198620016258951809b62001d06565b62001d29565b958862001a87565b91518562001a87565b936200164b8286858462001201565b859060008082121562001747575b808212620017245750620016d762000f1f9262000d5296979886935b6040805160208082018a90528183018d90526060808301949094528a5160808301528a015160a08201529089015160c08201529701516001600160a01b031660e0808901919091528752601f1996620016d16101008262000c58565b62001f88565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b9662001731915062001d4b565b95620017408488878662001201565b9062001659565b9691965b8082136200176c5750620016d762000d5295969762000f1f93869362001675565b9662001779915062001f5d565b95620017888488878662001201565b906200174b565b919082039182116200125d57565b818102929181159184041417156200125d57565b919082018092116200125d57565b60608101519060208101518083146200184c578042116000146200184357915b82039182116200125d57604081019081516000811360001462001818575062000d52926200181191519251906200179d565b90620017b1565b90519150600160ff1b81146200125d5762000d52926200183c91600003906200179d565b906200178f565b504291620017df565b5090505190565b8181036200185f575050565b62001949906040907f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506080835160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8582015261745d60f01b6060820152a1815193828552620018f3838601604090600a8152690808115e1c1958dd195960b21b60208201520190565b906020860152847fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89586920390a181519282849384528301604090600a815269080808081058dd1d585b60b21b60208201520190565b9060208301520390a162000c8a62001c50565b6001600160a01b03918216911681810362001975575050565b62001949906040907f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506080835160208152602560208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b6164648582015264726573735d60d81b6060820152a181519382855262001a0c838601604090600a8152690808115e1c1958dd195960b21b60208201520190565b906020860152847f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f9586920390a181519282849384528301604090600a815269080808081058dd1d585b60b21b60208201520190565b818102929160008212600160ff1b8214166200125d5781840514901517156200125d57565b62001c3c62000d52927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b886428462001c4a9362001ac26000821362001d6b565b711340daa0d5f769dba1915cef59f0815a550662001ae082620020c6565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d62001a62565b670de0b6b3a7640000900590565b62001da4565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62001c7f575b5061010061ff00196000541617600055565b6000809160405182602082018381526519985a5b195960d21b6040840152600160608401526060835262001cb38362000c3b565b62001cef6024604051809362001cde60208301976370ca10bb60e01b89525180928585019062000d86565b810103600481018452018262000c58565b51925af15062001cfe62000e33565b503862001c6d565b670de0b6b3a76400009081810291818304149015178215151615620005b2570490565b818102918183041490151760011615620005b257670de0b6b3a7640000900490565b6103e790818102918183041490151760011615620005b2576103e8900490565b1562001d7357565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131562001f2a57680755bf798b4a1bf1e581121562001ef6576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b818102918183041490151760011615620005b2576001670de0b6b3a7640000600019830104019015150290565b6103e990818102918183041490151760011615620005b25760016103e8600019830104019015150290565b60009392918491838211620020a65762001fa382826200213a565b62001faf85836200213a565b600062001fbd828462001a62565b1362002087575062001fd2838697966200178f565b60019460009186805b62001fed575b50505050505050509050565b156200205d575b5085969798508091620020126200200c8b88620017b1565b60011c90565b996200201f8b876200213a565b90836200202d878462001a62565b136200205057505089925b876200204588866200178f565b920193999862001fdb565b8b97509094509262002038565b8610806200207b575b1562002073578862001ff4565b808062001fe1565b50610100821062002066565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b620020d381151562001d6b565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b8080518101039160e08312620005b2576020820151926080604084015191605f190112620005b25762000d52936200219e60e0604051956200217c8762000c3b565b6080810151875260a0810151602088015260c081015160408801520162000c8c565b60608501526200120156fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461007457601f61255c38819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b0319169190911790556040516124cc90816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630f4166b814610167578063250968d914610162578063306db46b1461015d578063332266f3146101585780633928ff97146101535780633b4d10301461014e5780634fd67c58146101495780635a93b8ce146101445780636237569f1461013f5780637f17409c1461013a57806381b5fac214610135578063902ecaa214610130578063a8c62e761461012b578063b09d04e514610126578063cb1f553214610121578063ce153bf41461011c578063def15f9214610117578063ec29d8e614610112578063ee3e8cfb1461010d578063f2de7a7b146101085763f30d37f21461010357600080fd5b6109b2565b610996565b610962565b61094c565b6108e0565b61082f565b6107ea565b6107a6565b61077d565b610754565b610700565b6106a0565b61063f565b61061a565b6105f1565b6105bf565b61032e565b6102d6565b61029f565b610236565b346101d55760403660031901126101d55767ffffffffffffffff6024358181116101d557366023820112156101d55780600401359182116101d55736602483830101116101d5576101d19160246101c192016004356109e5565b6040519081529081906020820190565b0390f35b600080fd5b60005b8381106101ed5750506000910152565b81810151838201526020016101dd565b90602091610216815180928185528580860191016101da565b601f01601f1916010190565b9060206102339281815201906101fd565b90565b346101d55760403660031901126101d5576101d160405160026020820152600435604082015260243560608201526060815261027181610881565b6040519182916020835260208301906101fd565b60609060031901126101d557600435906024359060443590565b346101d55760206102ce6102b236610285565b906102c56102bf84610c45565b93610d72565b92919091610f1e565b604051908152f35b346101d55760206102ce6102e936610285565b906102f66102bf84610c45565b92919091611149565b801515036101d557565b90926080926102339594151583526020830152604082015281606082015201906101fd565b346101d55760603660031901126101d55760043560243561034e816102ff565b6104c46044359161035d610a11565b6103ad610368610a11565b9461037287610d72565b9491959092602096878401946040978886015285528352868a878b61039683610c45565b9889938851906103a78b5191610c45565b916112e2565b951561053b575061040c936103fe6103f96104409998956103f3866103dc610405976104199c99015187611d20565b926103ea8d518b5190611d4c565b91015190611324565b90611d20565b610a57565b9351610a7a565b8b52610a7a565b80868a015288518a610e65565b9061043761042c878a0193808552610a57565b808452825111610b21565b51905190610b14565b955b60c0865185880192610484845197610476888c015189519a8b96879485016040919493926060820195825260208201520152565b03601f1981018452836108be565b6000546104a79061049b906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610baf565b03915afa948515610536576000956104f6575b50906104eb916101d19596519051906114e4565b905194859485610309565b6101d19550906105216104eb939260c03d60c01161052f575b61051981836108be565b810190610b78565b5050505050955090916104d7565b503d61050f565b610bd3565b91966105b09561059d946105866105a59761057f6103f98c6103f36105b99f61057761056d6105909c83015188611d20565b93518b5190611d4c565b905190611324565b9451610a7a565b9401938452610a7a565b9081898d0152518c610bdf565b808a52610a57565b808952825111610a87565b51865190610b14565b95610442565b346101d55760203660031901126101d55760206102ce6004356105ea6105e482610c45565b91610d72565b50906114e4565b346101d55760206102ce61060436610285565b906106116102bf84610c45565b92919091611509565b346101d55760206102ce61063961063036610285565b91929092610c45565b916116a4565b346101d55760403660031901126101d55761067b6004356101d161068261067361066884610d72565b9190506024356116d1565b949093610c45565b84846119e2565b92604051938493846040919493926060820195825260208201520152565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36106c985610d72565b91506024356116fe565b939094610c45565b83856116a4565b91604051938493846040919493926060820195825260208201520152565b346101d55760203660031901126101d557608061071e600435610c45565b61075260405180926060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565bf35b346101d55760206102ce61076736610285565b906107746102bf84610c45565b92919091611725565b346101d55760003660031901126101d5576000546040516001600160a01b039091168152602090f35b346101d55760203660031901126101d5576101d160405160016020820152600435604082015260408152610271816108a2565b6001600160a01b038116036101d557565b346101d55760203660031901126101d5576101d160043561080a816107d9565b60408051600360208201526001600160a01b03909216828201528152610271816108a2565b346101d55760203660031901126101d5576101d161084e600435610d72565b604080519384526020840192909252908201529081906060820190565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761089d57604052565b61086b565b6060810190811067ffffffffffffffff82111761089d57604052565b90601f8019910116810190811067ffffffffffffffff82111761089d57604052565b346101d55760c03660031901126101d55760803660431901126101d5576101d161094060405161090f81610881565b60443581526064356020820152608435604082015260a435610930816107d9565b60608201526024356004356118a2565b60405191829182610222565b346101d55760206102ce6103a761063036610285565b346101d55760403660031901126101d55761067b6004356101d161068261067361098b84610d72565b9190506024356116fe565b346101d55760206102ce6109ac61063036610285565b916119e2565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36109db85610d72565b91506024356116d1565b9181606091810103126101d5576109fe61023392610c45565b9060408101359060208101359035610e8b565b604051906060820182811067ffffffffffffffff82111761089d5760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610a6557565b610a41565b906103e8918201809211610a6557565b91908201809211610a6557565b15610a8e57565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b90670de0b6b3a7640000918203918211610a6557565b906103e8918203918211610a6557565b6103e719810191908211610a6557565b91908203918211610a6557565b15610b2857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c09103126101d5578151610b8f816102ff565b9160208101519160408201519160608101519160a0608083015192015190565b610233939260609260018060a01b03168252602082015281604082015201906101fd565b6040513d6000823e3d90fd5b9161063961023393610c45565b91908260809103126101d557604051610c0481610881565b6060808294805184526020810151602085015260408101516040850152015191610c2d836107d9565b0152565b906080828203126101d55761023391610bec565b90604051610c5281610881565b600090818152816060602092828482015282604082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610536578092610cb3575b506102339293508082518301019101610c31565b9091503d8082863e610cc581866108be565b8401908285830312610d3b57845167ffffffffffffffff95868211610d3e57019082601f83011215610d3b57815195861161089d5760405192610d11601f8801601f19168601856108be565b868452848784010111610d3b57506102339394610d33918480850191016101da565b908392610c9f565b80fd5b8280fd5b908160209103126101d55751610233816107d9565b908160609103126101d5578051916040602083015192015190565b9060046020610d8e61049b61049b60005460018060a01b031690565b604051632bee84f160e21b815292839182905afa92831561053657610dd993606092600091610e36575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156105365760008093600093610dff575b50929190565b91935050610e25915060603d606011610e2f575b610e1d81836108be565b810190610d57565b9290929138610df9565b503d610e13565b610e58915060203d602011610e5e575b610e5081836108be565b810190610d42565b38610db8565b503d610e46565b916109ac61023393610c45565b81810392916000138015828513169184121617610a6557565b9260206103ea84610eae610ea66103f39697610eb499612087565b855190611324565b95612087565b670de0b6b3a763ffff198101908113600116610a655790565b908152602080820192909252604080820193909352606080820194909452845160808201529084015160a08201529083015160c08201529101516001600160a01b031660e08201526101000190565b565b909291855160208701516040880151610f3690610ade565b91610f418785612087565b610f4b8282611324565b92610f5591611324565b895185898581610f65858d6120ca565b90610f6f916120ca565b90610f79916120ca565b92610f83906120a9565b610f8c90610af4565b90610f9691610a7a565b90610fa0916120ca565b610fa986610ade565b610fb2916120ca565b92610fbc8a610a6a565b90610fc6906110f0565b610fcf91611324565b91610fd9906120a9565b610fe286610ade565b610feb916120ca565b610ff59089610a7a565b92610fff91610b14565b91611009916120ca565b895161101490610ade565b61101d90612068565b61102691611324565b61102f916120ca565b91885161103b90610ade565b61104488610a6a565b9261104f89896120ca565b90611059916120ca565b91611063866120a9565b9061106d90610ade565b611076916120ca565b92611080916120ca565b9161108a91610a7a565b611093916120ca565b9061109d846110f0565b916110a791612087565b6110b09161112d565b6000136110e557610233956110e0936110d29260405196879560208701610ecd565b03601f1981018352826108be565b611a30565b505050505050600090565b600160ff1b8114610a655760000390565b90816103e801918212600116610a6557565b9081670de0b6b3a763ffff190191821215600116610a6557565b91909160008382019384129112908015821691151617610a6557565b94939290928451906020860151604087015161116490610ade565b9261116f8787612087565b6111798282611324565b9261118391611324565b885187898581611193858c6120ca565b9061119d916120ca565b906111a7916120ca565b926111b290886120ca565b6111bc9088610b14565b906111c691610a7a565b906111d0916120ca565b6111d987610ade565b6111e2916120ca565b926111ed8a87610a7a565b906111f7906110f0565b61120091611324565b9161120b90866120ca565b61121487610ade565b61121d916120ca565b6112279088610a7a565b9261123191610b14565b9161123b916120ca565b885161124690610ade565b61124f90612068565b61125891611324565b611261916120ca565b965161126c90610ade565b936112778784610a7a565b96611281916120ca565b9061128b916120ca565b93611295916120ca565b9061129f90610ade565b6112a8916120ca565b926112b2916120ca565b916112bc91610a7a565b6112c5916120ca565b916112cf906110f0565b916112d991612087565b6102339161112d565b610233929160206112f86103f393855190611324565b93015190611324565b818102929160008212600160ff1b821416610a65578184051490151715610a6557565b6114d1610233927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642846114df9361135a60008213611dc8565b711340daa0d5f769dba1915cef59f0815a55066113768261210a565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d611301565b670de0b6b3a7640000900590565b611e00565b611503906114fb6102339493602085015190612087565b925190612087565b90612087565b90929185516040870151670de0b6b3a764000060008282039212818312811691831390151617610a655761153c83611101565b61154583611113565b61154e91611324565b908261155a8589611fa9565b9061156491611324565b61156d81611fc7565b9261157783611113565b6115819085611ff0565b61158b9089610e72565b91829161159788611101565b6115a19088611ff0565b936115ab91611ff0565b6115b487611f8a565b6115bd91611324565b926115c787611113565b6115d1908b611ff0565b91886115dc89611fc7565b906115e69161112d565b6115ef91611ff0565b6115f886611113565b61160191611ff0565b9261160b91611ff0565b926116169089611ff0565b9161162091610e72565b61162991611ff0565b6116329161112d565b9261163c85611101565b61164591611ff0565b9161164f876110f0565b9161165990611113565b61166291611ff0565b61166b9161112d565b61167491611ff0565b61167d91611fa9565b6000136110e5576102339561169f936110d29260405196879560208701610ecd565b611b55565b6116c461023393926116be6116cb93602086015190611324565b90611d4c565b9151611d7c565b90611324565b9291906116e76116e18284611d4c565b85611d20565b938103908111610a6557928103908111610a655790565b92919061170e6116e18284611d4c565b938101809111610a6557928101809111610a655790565b9293949091946040825192015193670de0b6b3a764000060008682039612818712811691871390151617610a6557828794611760868561112d565b61176983611113565b61177291611324565b9561177c91611fa9565b9061178691611324565b936117918584611ff0565b9461179b87611113565b6117a59087611ff0565b6117af9089610e72565b9283926117bc8b8761112d565b6117c69088611ff0565b946117d091611ff0565b6117d987611f8a565b6117e291611324565b936117ec87611113565b6117f6908b611ff0565b928b6118028989611ff0565b9061180c9161112d565b61181591611ff0565b61181e8a611113565b61182791611ff0565b9361183191611ff0565b9361183b91611ff0565b9161184591610e72565b61184e91611ff0565b6118579161112d565b956118619161112d565b61186a91611ff0565b92611874906110f0565b9161187e90611113565b61188791611ff0565b6118909161112d565b61189991611ff0565b61023391611fa9565b929190836118bd6118c2926118bd6020860151865190612087565b6120ca565b906118ce8183866112e2565b936118db82868584610e8b565b85906000808212156119a4575b808212611986575061192d61197a9261023396979886935b6119146040519889928c8a6020860161201f565b0396611928601f19988981018352826108be565b611c2c565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b039081018352826108be565b9661199191506120eb565b9561199e84888786610e8b565b906118e8565b9691965b8082136119c4575061192d61023395969761197a938693611900565b966119cf9150611d9e565b956119dc84888786610e8b565b906119a8565b60206119fb61023394936116be6116cb94865190611324565b920151611d7c565b9190610100838203126101d557825192602081015192610233604083015193608060608501519401610bec565b91906103e892600093600091838211611b3457611a4c8161217c565b611a5685836122d5565b6000611a628284611301565b13611b155750611a73859695610b04565b60019460009186805b611a8d575b50505050505050509050565b15611af0575b5085969798508091611aae611aa88b88610a7a565b60011c90565b99611ab98b876122d5565b9083611ac58784611301565b13611ae457505089925b87611ada8886610b14565b9201939998611a7c565b8b975090945092611acf565b861080611b0a575b15611b035788611a93565b8080611a81565b506101008210611af8565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e892600093600091838211611b3457611b71816122f6565b611b7b8583612441565b6000611b878284611301565b13611b155750611b98859695610b04565b60019460009186805b611bb15750505050505050509050565b15611c0e575b5085969798508091611bcc611aa88b88610a7a565b99611bd78b87612441565b9083611be38784611301565b13611c0257505089925b87611bf88886610b14565b9201939998611ba1565b8b975090945092611bed565b861080611c21575b15611b035788611bb7565b506101008210611c16565b60009392918491838211611d0057611c448282612462565b611c4e8583612462565b6000611c5a8284611301565b13611b155750611c6c83869796610b14565b60019460009186805b611c855750505050505050509050565b15611ce2575b5085969798508091611ca0611aa88b88610a7a565b99611cab8b87612462565b9083611cb78784611301565b13611cd657505089925b87611ccc8886610b14565b9201939998611c75565b8b975090945092611cc1565b861080611cf5575b15611b035788611c8b565b506101008210611cea565b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b8181029181830414901517600116156101d5576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101d557600190600019830104019015150290565b600181151516156101d5576ec097ce7bc90715b34b9f0fffffffff0460010190565b6103e9908181029181830414901517600116156101d55760016103e8600019830104019015150290565b15611dcf57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e19811315611f8457680755bf798b4a1bf1e5811215611f50576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029182051482151516156101d5570590565b6103e881810291600160ff1b81136001179183051416156101d557670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b9091131716156101d557670de0b6b3a7640000900590565b610f1c9360609296959360e083019783526020830152604082015201906060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000490565b670de0b6b3a764000090818102918183041490151782151516156101d5570490565b6103e89080820291820414600116156101d557670de0b6b3a7640000900490565b8181029181830414901517600116156101d557670de0b6b3a7640000900490565b6103e7908181029181830414901517600116156101d5576103e8900490565b612115811515611dc8565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b80518101602001906020019061219191611a03565b9291908351602085015160408601516121a990610ade565b916121b48686612087565b6121be8282611324565b926121c891611324565b8751868885816121d8858b6120ca565b906121e2916120ca565b906121ec916120ca565b926121f6906120a9565b6121ff90610af4565b9061220991610a7a565b90612213916120ca565b61221c86610ade565b612225916120ca565b9261222f89610a6a565b90612239906110f0565b61224291611324565b9161224c906120a9565b61225586610ade565b61225e916120ca565b6122689087610a7a565b9261227291610b14565b9161227c916120ca565b875161228790610ade565b61229090612068565b61229991611324565b6122a2916120ca565b95516122ad90610ade565b926122b786610a6a565b956122c1916120ca565b906122cb916120ca565b92611295906120a9565b906122ec6102339260208082518301019101611a03565b9493929092611149565b6123099060208082518301019101611a03565b6040819593959492945191015192670de0b6b3a764000060008582039512818612811691861390151617610a655781869361234385611101565b61234c83611113565b61235591611324565b9461235f91611fa9565b9061236991611324565b9261237384611fc7565b9361237d86611113565b6123879086611ff0565b6123919088610e72565b92839261239d8a611101565b6123a79087611ff0565b946123b191611ff0565b6123ba86611f8a565b6123c391611324565b936123cd86611113565b6123d7908a611ff0565b928a6123e288611fc7565b906123ec9161112d565b6123f591611ff0565b6123fe89611113565b61240791611ff0565b9361241191611ff0565b9361241b91611ff0565b9161242591610e72565b61242e91611ff0565b6124379161112d565b9461186190611101565b906124586102339260208082518301019101611a03565b9493929092611725565b805181019160e0828403126101d5576102339261249060208401519360806020604083015194019101610bec565b92610e8b56fea2646970667358221220ddef7f48a463f4812492c0cc35c784e857fab14e0a29d203d7aa233c67d9fa2964736f6c6343000816003360a03461007f57601f6112cb38819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f57608052604051611230908161009b82396080518181816103b701528181610612015281816107c601526109240152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b610953565b61090e565b6107ad565b610773565b6105f6565b610331565b6102ae565b610221565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101c3565b838082518301019101610986565b9061010d6100ff600435610a7f565b8680825183010191016109a1565b92610b68565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761015057604052565b61011e565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101a1601f8201601f191660200184610155565b8294818452818301116101be578281602093846000960137010152565b600080fd5b9080601f830112156101be578160206101de93359101610177565b90565b919082519283825260005b84811061020d575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101ec565b346101be5760003660031901126101be57604051604081019080821067ffffffffffffffff8311176101505761027891604052600381526247334d60e81b60208201526040519182916020835260208301906101e1565b0390f35b9060405161028981610134565b6060600382948054845260018101546020850152600281015460408501520154910152565b346101be5760203660031901126101be57600435600052600060205260c060406000206102da8161027c565b90600481015490600560018060a01b03910154169060606040519380518552602081015160208601526040810151604086015201516060840152608083015260a0820152f35b6001600160a01b038116036101be57565b346101be5760603660031901126101be5761034d600435610320565b60243560443567ffffffffffffffff81116101be576103709036906004016101c3565b9061037a81610a7f565b90610390825192602080809583010191016109a1565b6040516333854efd60e21b8152600481018390529092906060816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa948515610596576000908192829761055d575b508084806103ff93518301019101610986565b949195909787878581116000146104c45793610454869461044e866104496104769b9761044461046198604061043b61046d9f6104679f610a08565b91015190610f48565b610f48565b610f74565b50610a7f565b80518101820191016109a1565b91610bb9565b83610a27565b93828685610b68565b93846013191292836104b9575b6102789394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b601486129350610483565b5050919290938089116000146104ff5761046161046d946104546104769761044e856104498f998f61044490604061043b866104679f610a08565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9096506103ff9250610587915060603d60601161058f575b61057f8183610155565b810190610986565b9690926103ec565b503d610575565b6109e6565b9060606003198301126101be576004356105b481610320565b916024359160443567ffffffffffffffff928382116101be57806023830112156101be5781600401359384116101be57602484830101116101be576024019190565b346101be576106043661059b565b9192506001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610761578160c091810103126101be5780359160208201359160408101359460608201359060a08301359261066984610320565b670de0b6b3a764000083101561074f5761070d946107059460806106f1936106f69661069f876000526000602052604060002090565b55013560046106b8866000526000602052604060002090565b01551660056106d1846000526000602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610a7f565b602080825183010191016109a1565b848385610b68565b9283601319129182610744575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b60148512925061071a565b60405163e8a38a6160e01b8152600490fd5b604051636853cba760e01b8152600490fd5b346101be5760606107833661059b565b818094509492940103126101be5780359061070d6107056106f66040602085013594013595610a7f565b346101be576107bb3661059b565b926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610761576108236108176005610809876000526000602052604060002090565b01546001600160a01b031690565b6001600160a01b031690565b9116036108fc5761083683820182610a4a565b61083f81610a5f565b60018103610878575061086261085d61087392600494953691610177565b610caa565b926000526000602052604060002090565b01555b005b61088181610a5f565b600281036108bd5750906108a56108a06108b893610876953691610177565b610c00565b9290916000526000602052604060002090565b610c28565b806108c9600392610a5f565b036108ea576106d16108626108e5600593610876963691610177565b610bd8565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101be5760003660031901126101be576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101be5760203660031901126101be57610278610972600435610a7f565b6040519182916020835260208301906101e1565b908160609103126101be578051916040602083015192015190565b908160809103126101be576060604051916109bb83610134565b80518352602081015160208401526040810151604084015201516109de81610320565b606082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610a1557565b6109f2565b91908201809211610a1557565b81810392916000138015828513169184121617610a1557565b600411156101be57565b908160209103126101be57356101de81610a40565b60041115610a6957565b634e487b7160e01b600052602160045260246000fd5b60408051610a8c81610134565b6000918282526020820193838552818301848152606084019085825282865285602052610ac2610abd85882061027c565b610cdf565b808652670de0b6b3a7640000908103908111610a1557846101de97610b1f95610b1294600594610b5a9c5281835282602052600484842001549052815280602052200160018060a01b0390541690565b6001600160a01b03169052565b5192839160208301919091606060808201938051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b03601f198101835282610155565b926020610b9184610b8b610b83610b9a9697610ba099610fa4565b855190610d88565b95610fa4565b91015190610d88565b90610f48565b670de0b6b3a763ffff198101908113600116610a155790565b6101de92916020610bcf610b9a93855190610d88565b93015190610d88565b6040818051810103126101be5780610bf560206040930151610a40565b015161081781610320565b6060818051810103126101be57610c1a6020820151610a40565b606060408201519101519091565b919042821115610c9857610c3e610abd8461027c565b9081845542600385015542830391838311610a1557610c5c91610a27565b428314610c8257600160ff1b8114600019831416610a1557600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101be5780610cc760206040930151610a40565b015190565b81810292918115918404141715610a1557565b6060810151906020810151808314610d5e57804211600014610d5657915b8203918211610a15576040810190815160008113600014610d3057506101de92610d2a9151925190610ccc565b90610a1a565b90519150600160ff1b8114610a15576101de92610d509160000390610ccc565b90610a08565b504291610cfd565b5090505190565b818102929160008212600160ff1b821416610a15578184051490151715610a1557565b610f356101de927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284610f4393610dbe60008213610fc6565b711340daa0d5f769dba1915cef59f0815a5506610dda82611188565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d610d65565b670de0b6b3a7640000900590565b610ffe565b8181029181830414901517600116156101be576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101be57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101be570490565b15610fcd57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131561118257680755bf798b4a1bf1e581121561114e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b611193811515610fc6565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c600110179056fea26469706673582212209815df372867dd1ba42d4263690c8e70d1f8dc34ff9f897579936267cb43316764736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a264697066735822122029fc52ebc8c8810176faffff393def2aa729ae64d352efe8a176650eab391c8864736f6c63430008160033","sourceMap":"88:1322:72:-:0;;;1594:4:0;88:1322:72;;1594:4:0;88:1322:72;;;1594:4:0;88:1322:72;378:11:59;88:1322:72;378:11:59;330:9:73;378:11:59;88:1322:72;378:11:59;;302:134:73;378:11:59;;;;302:134:73;378:11:59;424:4:73;302:134;378:11:59;;302:134:73;378:11:59;;;;;424:4:73;378:11:59;;;;;;;;;;;;468:7:73;;;378:11:59;;468:7:73;510;468;510;378:11:59;;510:7:73;378:11:59;554:88:73;468:7;378:11:59;510:7:73;378:11:59;;;:::i;:::-;554:88:73;;:::i;:::-;378:11:59;:::i;:::-;88:1322:72;;;;;;;;;;;;;378:11:59;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;;;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;378:11:59;;;;-1:-1:-1;;;;;378:11:59;;;;;;;;;;:::o;:::-;88:1322:72;;378:11:59;;;;:::i;:::-;302:134:73;378:11:59;;;;;;;;;;;88:1322:72;378:11:59;;;;;-1:-1:-1;;;;;378:11:59;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;378:11:59;302:134:73;-1:-1:-1;378:11:59;302:134:73;-1:-1:-1;378:11:59;;302:134:73;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;378:11:59;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;302:134:73;378:11:59;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;378:11:59;;;;;302:134:73;378:11:59;;-1:-1:-1;;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1858:513:35;;;799:19:18;1349:9:35;;;1790:35;1728;631:21:18;378:11:59;631:21:18;378:11:59;;;965:21:18;378:11:59;;965:21:18;;;:::i;:::-;631;:::i;:::-;1728:35:35;;;:::i;:::-;378:11:59;;1790:35:35;;:::i;:::-;799:19:18;;:::i;:::-;2139:69:35;;;;;;;:::i;:::-;8798:29;;-1:-1:-1;8914:21:35;;;-1:-1:-1;;;8954:21:35;;;;;;8910:600;9519:160;2296:72;8910:600;2296:72;8910:600;;;;;;88:1322:72;;;1349:9:35;9538:45;;;88:1322:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;88:1322:72;;;;;;;;9538:45:35;;-1:-1:-1;;;9538:45:35;88:1322:72;;9538:45:35;:::i;:::-;9519:160;:::i;:::-;378:11:59;;88:1322:72;2334:14:35;;;378:11:59;2350:17:35;;;;378:11:59;88:1322:72;;1349:9:35;2296:72;;88:1322:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;88:1322:72;;;;;;;;;;;;2296:72:35;;;;;;;;;:::i;:::-;1858:513;:::o;8947:268::-;8999:27;;;;;:::i;:::-;9060:144;;;;;;;:::i;:::-;8947:268;;;8910:600;9237:267;;;9244:21;;;;;;8910:600;9519:160;2296:72;8910:600;;;2296:72;8910:600;;;;;9237:267;9289:26;;;;;:::i;:::-;9349:144;;;;;;;:::i;:::-;9237:267;;;88:1322:72;378:11:59;;;88:1322:72;;;;;;;;1692:384:42;;2000:9;965:21:18;1692:384:42;1880:50;965:21:18;1961:50:42;1692:384;;799:19:18;1692:384:42;965:21:18;:::i;:::-;378:11:59;;1880:50:42;;:::i;:::-;965:21:18;;:::i;:::-;2000:9:42;;378:11:59;1961:50:42;;:::i;799:19:18:-;88:1322:72;;;;;;;;;;;1692:384:42;:::o;88:1322:72:-;;:::i;:::-;;;;;;;;;-1:-1:-1;;;88:1322:72;;;;;;;;;;;;;;;:::o;1208:273:18:-;1399:12;1391:36;1208:273;7380:72;1398:28;1208:273;4688:27;-1:-1:-1;4696:5:18;;4688:27;:::i;:::-;7125:43;5125:16;;;:::i;:::-;5145:2;88:1322:72;;;5175:3:18;88:1322:72;;378:11:59;5175:3:18;378:11:59;88:1322:72;;;;7232:71:18;88:1322:72;;6411:30:18;88:1322:72;6343:32:18;88:1322:72;6274:33:18;88:1322:72;6205:33:18;88:1322:72;6136:33:18;88:1322:72;6068:32:18;88:1322:72;6001:31:18;88:1322:72;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;88:1322:72;;;;;;;;;;;;;;;;5533:32:18;88:1322:72;5465:32:18;88:1322:72;5398:31:18;88:1322:72;;;;;;;;;;;;;;;;;;;;;;;;6455:304:18;88:1322:72;;;;;1399:12:18;:::i;:::-;491:4;88:1322:72;;;;1398:28:18;1391:36;:::i;8282:752::-;8417:611;;;;;;;;;;;;;;;;;491:4;378:11:59;;8417:611:18;;;;;;;;8282:752;:::o;:::-;9304:4:35;8417:611:18;;;;;;;;;;;;;;;;;;9310:4:35;378:11:59;;8417:611:18;;;;;;;;8282:752;:::o;7741:535::-;491:4;7878:392;;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;7878:392;;;;;;;;;;;;;;;;491:4;7878:392;;7741:535;:::o;:::-;9016:3:35;7878:392:18;;;;;;;;;;;;;;;;;9021:4:35;7878:392:18;;7741:535;:::o;88:1322:72:-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;1009:1952:33:-;378:11:59;;1009:1952:33;;378:11:59;;1239:13:33;;;1235:66;;1632:15;;;;:::i;:::-;1674;;;;:::i;:::-;378:11:59;1699:25:33;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;;:::i;:::-;9631:1:35;;378:11:59;;9631:1:35;;;;;1978:981:33;1009:1952;;;;;;;;;;:::o;1978:981::-;;;;;2909:48;;;;;;;2123:13;2122:19;2123:13;;;;:::i;:::-;88:1322:72;;;;2122:19:33;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;378:11:59;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;88:1322:72;;1978:981:33;;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;2909:18;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;;;;;;2931:26;9643:3:35;2931:26:33;;2909:48;;1695:115;88:1322:72;;-1:-1:-1;;;1747:56:33;;;;;88:1322:72;;;;;;;;;;1747:56:33;1235:66;88:1322:72;;-1:-1:-1;;;1261:40:33;;;;;88:1322:72;;;;;;;;;;;1747:56:33;88:1322:72;;;;:::o;:::-;;;-1:-1:-1;;;88:1322:72;;;;;;;;;;;;-1:-1:-1;;;88:1322:72;;;;;;;1487:3103:18;-1:-1:-1;;1713:26:18;;;1709:40;;1948:21;1943:26;;;1939:54;;2266:5;378:11:59;88:1322:72;378:11:59;88:1322:72;4502:49:18;2559:29;88:1322:72;3136:40:18;88:1322:72;378:11:59;2591:5:18;378:11:59;;;;88:1322:72;;;;;;;;;3074:35:18;88:1322:72;2874:31:18;88:1322:72;;;;;;3649:35:18;88:1322:72;;;;3508:34:18;88:1322:72;;;;3371:32:18;88:1322:72;;;;;;;;;;;;;;;;;;;;;;;;;;2941:32:18;88:1322:72;;;;;;;;;;;;;;;3699:327:18;88:1322:72;;4564:3:18;88:1322:72;378:11:59;1487:3103:18;:::o;1939:54::-;88:1322:72;;-1:-1:-1;;;1971:22:18;;88:1322:72;1971:22:18;;;88:1322:72;;;;;;-1:-1:-1;;;88:1322:72;;;;;;1747:56:33;1709:40:18;1741:8;1748:1;1741:8;:::o;15328:575::-;15397:27;15405:5;;;15397:27;:::i;:::-;15435:462;378:11:59;15435:462:18;;;;;;;;;;378:11:59;;;;;15435:462:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:575;:::o;88:1322:72:-;378:11:59;;;3862:59:35;;88:1322:72;;;;;;;3862:59:35;;;88:1322:72;;;;;;;;;;;;;;;;;378:11:59;;;;:::i;:::-;88:1322:72;;;;;;;;;;3862:59:35;88:1322:72;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;88:1322:72;;;;3934:64:35;88:1322:72;;;;;3934:64:35;:::i","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e414620000be5750508063620a260714620000b8578063a99cc23914620000b2578063ba414fa614620000ac578063d25496bd14620000a6578063e0d7d0e914620000a0578063e21485ad146200009a578063fa7626d414620000945763fd09bac0146200008e57600080fd5b62000a6c565b62000a47565b6200090f565b620008ef565b62000709565b620006e0565b620005db565b620005b7565b346200058757816003193601126200058757620000da62001263565b805161106b8082019067ffffffffffffffff92808310848411176200056357806200010d620021aa948486843962000ca1565b039086f080156200053b57601580546001600160a01b0319166001600160a01b0390921691909117905583519181830183811085821117620005635783926200015892843962000ced565b039084f080156200053b57601680546001600160a01b0319166001600160a01b039283161790556015546200019591165b6001600160a01b031690565b803b15620005a25782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af180156200053b576200058b575b506016548490620001f4906001600160a01b031662000189565b91823b156200058757845190815230600482015268056bc75e2d631000006024820152918290604490829084905af180156200053b5762000569575b5060155462000248906001600160a01b031662000189565b6016546200025f906001600160a01b031662000189565b9083519161059790818401928484108685111762000563578493620002ac936200995d86396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200053b57601480546001600160a01b0319166001600160a01b039092169190911790558151612f2180820190828210848311176200056357829162000302916200321584396000815260200190565b039084f080156200053b57601380546001600160a01b0319166001600160a01b03929092169182179055620003379062000189565b8251906112cb8083019183831085841117620005635783926200036d926200869285396001600160a01b03909116815260200190565b039084f080156200053b57601780546001600160a01b0319166001600160a01b03929092169182179055620003a29062000189565b82519161255c80840192909183118484101762000563578392620003d9926200613685396001600160a01b03909116815260200190565b039083f09081156200053b57620004106200047c9260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b60155462000427906001600160a01b031662000189565b6013546200043e906001600160a01b031662000189565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200053b57620004f493859362000541575b50601654620004ad906001600160a01b031662000189565b6013549091908790620004c9906001600160a01b031662000189565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200053b5762000508578280f35b816200052c92903d1062000533575b62000523818362000c58565b81019062000d3b565b5081808280f35b503d62000517565b62000ce1565b6200055b90843d8611620005335762000523818362000c58565b508662000495565b62000bf3565b8062000579620005809262000c09565b80620005a6565b8362000230565b5080fd5b80620005796200059b9262000c09565b84620001da565b8380fd5b6000910312620005b257565b600080fd5b34620005b2576000366003190112620005b2576020604051660aa87bee5380008152f35b34620005b257600080600319360112620006dd57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b156200058757604051630618f58760e51b8152636853cba760e01b60048201529082908290602490829084905af180156200053b57620006c6575b5060175462000659906001600160a01b031662000189565b60a060405180926373cb2d0360e01b82528185816200067c306004830162000dab565b03925af180156200053b5762000690575080f35b620006b69060a03d60a011620006be575b620006ad818362000c58565b81019062000d55565b505050505080f35b503d620006a1565b8062000579620006d69262000c09565b3862000641565b80fd5b34620005b2576000366003190112620005b2576020620006ff62000e77565b6040519015158152f35b34620005b257600080600319360112620006dd57620007646200072b62000c7b565b670f43fc2c04ee000081526706f05b59d3b200006020820152660aa87bee5380006040820152306060820152601e54601f5490620015f9565b6017546200077b906001600160a01b031662000189565b601554909190620007f4906200079a906001600160a01b031662000189565b601654620007e490620007b6906001600160a01b031662000189565b91620007d4620007c562000c7b565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b03166040840152565b6060820152737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620008eb57604051630618f58760e51b815263e8a38a6160e01b60048201529083908290602490829084905af180156200053b5783926080926200088b92620008d4575b506013546200086d906001600160a01b031662000189565b906040519485809481936305157c7f60e21b83526004830162000f72565b03925af180156200053b576200089f575080f35b620008c59060803d608011620008cc575b620008bc818362000c58565b81019062000f4f565b5050505080f35b503d620008b0565b8062000579620008e49262000c09565b3862000855565b8280fd5b34620005b2576000366003190112620005b2576020601954604051908152f35b34620005b2576020366003190112620005b25760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa9081156200053b5760009162000993575b60c08201516200098f906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e01162000a3e575b81620009b160e0938362000c58565b81010312620005b2576200097560c06200098f9262000a318260405192620009d98462000c1e565b620009e48162000c8c565b8452620009f46020820162000c8c565b602085015262000a076040820162000c8c565b6040850152606081015160608501526080810151608085015260a081015160a08501520162000c8c565b8282015292505062000961565b3d9150620009a2565b34620005b2576000366003190112620005b257602060ff600054166040519015158152f35b34620005b257600080600319360112620006dd57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000587576040516372eb5f8160e11b8152600060048201529082908290602490829084905af180156200053b5762000bdc575b50601754819060809062000b8a9062000aee906001600160a01b031662000189565b60155462000b649062000b0a906001600160a01b031662000189565b60165462000b549062000b26906001600160a01b031662000189565b9162000b4462000b3562000c7b565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6001600160a01b03166040830152565b62000b6e62000fd0565b60608201526013546200086d906001600160a01b031662000189565b03925af180156200053b5762000ba891839162000bb5575b50601955565b62000bb2620010d2565b80f35b62000bd2915060803d608011620008cc57620008bc818362000c58565b5050503862000ba2565b806200057962000bec9262000c09565b3862000acc565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200056357604052565b60e0810190811067ffffffffffffffff8211176200056357604052565b6080810190811067ffffffffffffffff8211176200056357604052565b90601f8019910116810190811067ffffffffffffffff8211176200056357604052565b6040519062000c8a8262000c3b565b565b51906001600160a01b0382168203620005b257565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b6040513d6000823e3d90fd5b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b51908115158203620005b257565b90816020910312620005b25762000d529062000d2d565b90565b908160a0910312620005b25762000d6c8162000d2d565b916020820151916040810151916080606083015192015190565b60005b83811062000d9a5750506000910152565b818101518382015260200162000d89565b919060018060a01b03168252602091600060208201526060604082015260605180606083015260005b81811062000df6575060809293506000838284010152601f8019910116010190565b84906080818101519082860101520162000dd4565b90600491630667f9d760e41b815262000e2e825180936020868501910162000d86565b010190565b3d1562000e72573d9067ffffffffffffffff821162000563576040519162000e66601f8201601f19166020018462000c58565b82523d6000602084013e565b606090565b6000805460081c60ff161562000e91575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62000eb357505090565b819250604051828162000ef160208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b0362000f06601f199182810185528462000c58565b62000f2c604051918262000f1f60208201968762000e0b565b0390810183528262000c58565b51925af15062000d5262000f3f62000e33565b6020808251830101910162000d3b565b9190826080910312620005b2578151916020810151916060604083015192015190565b606060c0926020835260018060a01b0380825116602085015280602083015116604085015260408201511682840152015160808083015262000fc4815180928160a08601526020868601910162000d86565b601f01601f1916010190565b6040519060006020906020546001928160011c9360018316928315620010c7575b602086108414620010b3578588528794936020860193929181156200109257506001146200102b575b50505062000c8a9250038362000c58565b9250936200105b60206000527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb90565b946000935b8285106200107b5750505062000c8a9350013880806200101a565b865485850152958601958895509381019362001060565b9250505062000c8a9491925060ff19168252151560051b013880806200101a565b634e487b7160e01b85526022600452602485fd5b94607f169462000ff1565b60018060a01b036017541660c0601954602460405180948193631edb71e560e01b835260048301525afa80156200053b576000809281926200114f575b5062000c8a9262001132620011286200113c93620017bf565b601a549062001853565b601c549062001853565b601d546001600160a01b0316906200195c565b925090508160c03d60c011620011e3575b6200116c818362000c58565b81010360c081126200058757608013620006dd575062000c8a906200113c604051620011988162000c3b565b825181526020830151602082015260408301516040820152606083015160608201526200113262001128620011d560a06080870151960162000c8c565b94959293506200110f915050565b503d62001160565b634e487b7160e01b600052601160045260246000fd5b92602062001232846200122b620012226200123c9697620012439962001d06565b85519062001a87565b9562001d06565b9101519062001a87565b9062001f30565b670de0b6b3a763ffff1981019081136001166200125d5790565b620011eb565b6040805161106b80820167ffffffffffffffff918382108383111762000563578362001297620021aa938385843962000ca1565b0360009485f080156200053b57601580546001600160a01b0319166001600160a01b039092169190911790558451918183018381108582111762000563578392620012e492843962000ced565b039083f080156200053b57601680546001600160a01b0319166001600160a01b039283161790556015546200131a911662000189565b803b15620008eb5783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af180156200053b57620015e2575b5060165462001377906001600160a01b031662000189565b90813b15620005a257845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af180156200053b57620015cb575b50601554620013cd906001600160a01b031662000189565b601654620013e4906001600160a01b031662000189565b908451916105979081840192848410868511176200056357849362001431936200995d86396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200053b57601480546001600160a01b0319166001600160a01b03909216919091179055825190612f21808301918211838310176200056357829162001487916200321584396000815260200190565b039082f09182156200053b57620014be6200152d9360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b601554620014d5906001600160a01b031662000189565b601354909190620014ef906001600160a01b031662000189565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af19283156200053b5762001578948694620015a9575b506016546200155e906001600160a01b031662000189565b601354909290620004c9906001600160a01b031662000189565b03925af180156200053b576200158c575050565b81620015a692903d10620005335762000523818362000c58565b50565b620015c390853d8711620005335762000523818362000c58565b503862001546565b8062000579620015db9262000c09565b38620013b5565b8062000579620015f29262000c09565b386200135f565b92916200163c602082016200123c620016336200162b8862001625855198620016258951809b62001d06565b62001d29565b958862001a87565b91518562001a87565b936200164b8286858462001201565b859060008082121562001747575b808212620017245750620016d762000f1f9262000d5296979886935b6040805160208082018a90528183018d90526060808301949094528a5160808301528a015160a08201529089015160c08201529701516001600160a01b031660e0808901919091528752601f1996620016d16101008262000c58565b62001f88565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b9662001731915062001d4b565b95620017408488878662001201565b9062001659565b9691965b8082136200176c5750620016d762000d5295969762000f1f93869362001675565b9662001779915062001f5d565b95620017888488878662001201565b906200174b565b919082039182116200125d57565b818102929181159184041417156200125d57565b919082018092116200125d57565b60608101519060208101518083146200184c578042116000146200184357915b82039182116200125d57604081019081516000811360001462001818575062000d52926200181191519251906200179d565b90620017b1565b90519150600160ff1b81146200125d5762000d52926200183c91600003906200179d565b906200178f565b504291620017df565b5090505190565b8181036200185f575050565b62001949906040907f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506080835160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8582015261745d60f01b6060820152a1815193828552620018f3838601604090600a8152690808115e1c1958dd195960b21b60208201520190565b906020860152847fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89586920390a181519282849384528301604090600a815269080808081058dd1d585b60b21b60208201520190565b9060208301520390a162000c8a62001c50565b6001600160a01b03918216911681810362001975575050565b62001949906040907f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506080835160208152602560208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b6164648582015264726573735d60d81b6060820152a181519382855262001a0c838601604090600a8152690808115e1c1958dd195960b21b60208201520190565b906020860152847f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f9586920390a181519282849384528301604090600a815269080808081058dd1d585b60b21b60208201520190565b818102929160008212600160ff1b8214166200125d5781840514901517156200125d57565b62001c3c62000d52927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b886428462001c4a9362001ac26000821362001d6b565b711340daa0d5f769dba1915cef59f0815a550662001ae082620020c6565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d62001a62565b670de0b6b3a7640000900590565b62001da4565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62001c7f575b5061010061ff00196000541617600055565b6000809160405182602082018381526519985a5b195960d21b6040840152600160608401526060835262001cb38362000c3b565b62001cef6024604051809362001cde60208301976370ca10bb60e01b89525180928585019062000d86565b810103600481018452018262000c58565b51925af15062001cfe62000e33565b503862001c6d565b670de0b6b3a76400009081810291818304149015178215151615620005b2570490565b818102918183041490151760011615620005b257670de0b6b3a7640000900490565b6103e790818102918183041490151760011615620005b2576103e8900490565b1562001d7357565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131562001f2a57680755bf798b4a1bf1e581121562001ef6576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b818102918183041490151760011615620005b2576001670de0b6b3a7640000600019830104019015150290565b6103e990818102918183041490151760011615620005b25760016103e8600019830104019015150290565b60009392918491838211620020a65762001fa382826200213a565b62001faf85836200213a565b600062001fbd828462001a62565b1362002087575062001fd2838697966200178f565b60019460009186805b62001fed575b50505050505050509050565b156200205d575b5085969798508091620020126200200c8b88620017b1565b60011c90565b996200201f8b876200213a565b90836200202d878462001a62565b136200205057505089925b876200204588866200178f565b920193999862001fdb565b8b97509094509262002038565b8610806200207b575b1562002073578862001ff4565b808062001fe1565b50610100821062002066565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b620020d381151562001d6b565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b8080518101039160e08312620005b2576020820151926080604084015191605f190112620005b25762000d52936200219e60e0604051956200217c8762000c3b565b6080810151875260a0810151602088015260c081015160408801520162000c8c565b60608501526200120156fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461007457601f61255c38819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b0319169190911790556040516124cc90816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630f4166b814610167578063250968d914610162578063306db46b1461015d578063332266f3146101585780633928ff97146101535780633b4d10301461014e5780634fd67c58146101495780635a93b8ce146101445780636237569f1461013f5780637f17409c1461013a57806381b5fac214610135578063902ecaa214610130578063a8c62e761461012b578063b09d04e514610126578063cb1f553214610121578063ce153bf41461011c578063def15f9214610117578063ec29d8e614610112578063ee3e8cfb1461010d578063f2de7a7b146101085763f30d37f21461010357600080fd5b6109b2565b610996565b610962565b61094c565b6108e0565b61082f565b6107ea565b6107a6565b61077d565b610754565b610700565b6106a0565b61063f565b61061a565b6105f1565b6105bf565b61032e565b6102d6565b61029f565b610236565b346101d55760403660031901126101d55767ffffffffffffffff6024358181116101d557366023820112156101d55780600401359182116101d55736602483830101116101d5576101d19160246101c192016004356109e5565b6040519081529081906020820190565b0390f35b600080fd5b60005b8381106101ed5750506000910152565b81810151838201526020016101dd565b90602091610216815180928185528580860191016101da565b601f01601f1916010190565b9060206102339281815201906101fd565b90565b346101d55760403660031901126101d5576101d160405160026020820152600435604082015260243560608201526060815261027181610881565b6040519182916020835260208301906101fd565b60609060031901126101d557600435906024359060443590565b346101d55760206102ce6102b236610285565b906102c56102bf84610c45565b93610d72565b92919091610f1e565b604051908152f35b346101d55760206102ce6102e936610285565b906102f66102bf84610c45565b92919091611149565b801515036101d557565b90926080926102339594151583526020830152604082015281606082015201906101fd565b346101d55760603660031901126101d55760043560243561034e816102ff565b6104c46044359161035d610a11565b6103ad610368610a11565b9461037287610d72565b9491959092602096878401946040978886015285528352868a878b61039683610c45565b9889938851906103a78b5191610c45565b916112e2565b951561053b575061040c936103fe6103f96104409998956103f3866103dc610405976104199c99015187611d20565b926103ea8d518b5190611d4c565b91015190611324565b90611d20565b610a57565b9351610a7a565b8b52610a7a565b80868a015288518a610e65565b9061043761042c878a0193808552610a57565b808452825111610b21565b51905190610b14565b955b60c0865185880192610484845197610476888c015189519a8b96879485016040919493926060820195825260208201520152565b03601f1981018452836108be565b6000546104a79061049b906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610baf565b03915afa948515610536576000956104f6575b50906104eb916101d19596519051906114e4565b905194859485610309565b6101d19550906105216104eb939260c03d60c01161052f575b61051981836108be565b810190610b78565b5050505050955090916104d7565b503d61050f565b610bd3565b91966105b09561059d946105866105a59761057f6103f98c6103f36105b99f61057761056d6105909c83015188611d20565b93518b5190611d4c565b905190611324565b9451610a7a565b9401938452610a7a565b9081898d0152518c610bdf565b808a52610a57565b808952825111610a87565b51865190610b14565b95610442565b346101d55760203660031901126101d55760206102ce6004356105ea6105e482610c45565b91610d72565b50906114e4565b346101d55760206102ce61060436610285565b906106116102bf84610c45565b92919091611509565b346101d55760206102ce61063961063036610285565b91929092610c45565b916116a4565b346101d55760403660031901126101d55761067b6004356101d161068261067361066884610d72565b9190506024356116d1565b949093610c45565b84846119e2565b92604051938493846040919493926060820195825260208201520152565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36106c985610d72565b91506024356116fe565b939094610c45565b83856116a4565b91604051938493846040919493926060820195825260208201520152565b346101d55760203660031901126101d557608061071e600435610c45565b61075260405180926060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565bf35b346101d55760206102ce61076736610285565b906107746102bf84610c45565b92919091611725565b346101d55760003660031901126101d5576000546040516001600160a01b039091168152602090f35b346101d55760203660031901126101d5576101d160405160016020820152600435604082015260408152610271816108a2565b6001600160a01b038116036101d557565b346101d55760203660031901126101d5576101d160043561080a816107d9565b60408051600360208201526001600160a01b03909216828201528152610271816108a2565b346101d55760203660031901126101d5576101d161084e600435610d72565b604080519384526020840192909252908201529081906060820190565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761089d57604052565b61086b565b6060810190811067ffffffffffffffff82111761089d57604052565b90601f8019910116810190811067ffffffffffffffff82111761089d57604052565b346101d55760c03660031901126101d55760803660431901126101d5576101d161094060405161090f81610881565b60443581526064356020820152608435604082015260a435610930816107d9565b60608201526024356004356118a2565b60405191829182610222565b346101d55760206102ce6103a761063036610285565b346101d55760403660031901126101d55761067b6004356101d161068261067361098b84610d72565b9190506024356116fe565b346101d55760206102ce6109ac61063036610285565b916119e2565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36109db85610d72565b91506024356116d1565b9181606091810103126101d5576109fe61023392610c45565b9060408101359060208101359035610e8b565b604051906060820182811067ffffffffffffffff82111761089d5760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610a6557565b610a41565b906103e8918201809211610a6557565b91908201809211610a6557565b15610a8e57565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b90670de0b6b3a7640000918203918211610a6557565b906103e8918203918211610a6557565b6103e719810191908211610a6557565b91908203918211610a6557565b15610b2857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c09103126101d5578151610b8f816102ff565b9160208101519160408201519160608101519160a0608083015192015190565b610233939260609260018060a01b03168252602082015281604082015201906101fd565b6040513d6000823e3d90fd5b9161063961023393610c45565b91908260809103126101d557604051610c0481610881565b6060808294805184526020810151602085015260408101516040850152015191610c2d836107d9565b0152565b906080828203126101d55761023391610bec565b90604051610c5281610881565b600090818152816060602092828482015282604082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610536578092610cb3575b506102339293508082518301019101610c31565b9091503d8082863e610cc581866108be565b8401908285830312610d3b57845167ffffffffffffffff95868211610d3e57019082601f83011215610d3b57815195861161089d5760405192610d11601f8801601f19168601856108be565b868452848784010111610d3b57506102339394610d33918480850191016101da565b908392610c9f565b80fd5b8280fd5b908160209103126101d55751610233816107d9565b908160609103126101d5578051916040602083015192015190565b9060046020610d8e61049b61049b60005460018060a01b031690565b604051632bee84f160e21b815292839182905afa92831561053657610dd993606092600091610e36575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156105365760008093600093610dff575b50929190565b91935050610e25915060603d606011610e2f575b610e1d81836108be565b810190610d57565b9290929138610df9565b503d610e13565b610e58915060203d602011610e5e575b610e5081836108be565b810190610d42565b38610db8565b503d610e46565b916109ac61023393610c45565b81810392916000138015828513169184121617610a6557565b9260206103ea84610eae610ea66103f39697610eb499612087565b855190611324565b95612087565b670de0b6b3a763ffff198101908113600116610a655790565b908152602080820192909252604080820193909352606080820194909452845160808201529084015160a08201529083015160c08201529101516001600160a01b031660e08201526101000190565b565b909291855160208701516040880151610f3690610ade565b91610f418785612087565b610f4b8282611324565b92610f5591611324565b895185898581610f65858d6120ca565b90610f6f916120ca565b90610f79916120ca565b92610f83906120a9565b610f8c90610af4565b90610f9691610a7a565b90610fa0916120ca565b610fa986610ade565b610fb2916120ca565b92610fbc8a610a6a565b90610fc6906110f0565b610fcf91611324565b91610fd9906120a9565b610fe286610ade565b610feb916120ca565b610ff59089610a7a565b92610fff91610b14565b91611009916120ca565b895161101490610ade565b61101d90612068565b61102691611324565b61102f916120ca565b91885161103b90610ade565b61104488610a6a565b9261104f89896120ca565b90611059916120ca565b91611063866120a9565b9061106d90610ade565b611076916120ca565b92611080916120ca565b9161108a91610a7a565b611093916120ca565b9061109d846110f0565b916110a791612087565b6110b09161112d565b6000136110e557610233956110e0936110d29260405196879560208701610ecd565b03601f1981018352826108be565b611a30565b505050505050600090565b600160ff1b8114610a655760000390565b90816103e801918212600116610a6557565b9081670de0b6b3a763ffff190191821215600116610a6557565b91909160008382019384129112908015821691151617610a6557565b94939290928451906020860151604087015161116490610ade565b9261116f8787612087565b6111798282611324565b9261118391611324565b885187898581611193858c6120ca565b9061119d916120ca565b906111a7916120ca565b926111b290886120ca565b6111bc9088610b14565b906111c691610a7a565b906111d0916120ca565b6111d987610ade565b6111e2916120ca565b926111ed8a87610a7a565b906111f7906110f0565b61120091611324565b9161120b90866120ca565b61121487610ade565b61121d916120ca565b6112279088610a7a565b9261123191610b14565b9161123b916120ca565b885161124690610ade565b61124f90612068565b61125891611324565b611261916120ca565b965161126c90610ade565b936112778784610a7a565b96611281916120ca565b9061128b916120ca565b93611295916120ca565b9061129f90610ade565b6112a8916120ca565b926112b2916120ca565b916112bc91610a7a565b6112c5916120ca565b916112cf906110f0565b916112d991612087565b6102339161112d565b610233929160206112f86103f393855190611324565b93015190611324565b818102929160008212600160ff1b821416610a65578184051490151715610a6557565b6114d1610233927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642846114df9361135a60008213611dc8565b711340daa0d5f769dba1915cef59f0815a55066113768261210a565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d611301565b670de0b6b3a7640000900590565b611e00565b611503906114fb6102339493602085015190612087565b925190612087565b90612087565b90929185516040870151670de0b6b3a764000060008282039212818312811691831390151617610a655761153c83611101565b61154583611113565b61154e91611324565b908261155a8589611fa9565b9061156491611324565b61156d81611fc7565b9261157783611113565b6115819085611ff0565b61158b9089610e72565b91829161159788611101565b6115a19088611ff0565b936115ab91611ff0565b6115b487611f8a565b6115bd91611324565b926115c787611113565b6115d1908b611ff0565b91886115dc89611fc7565b906115e69161112d565b6115ef91611ff0565b6115f886611113565b61160191611ff0565b9261160b91611ff0565b926116169089611ff0565b9161162091610e72565b61162991611ff0565b6116329161112d565b9261163c85611101565b61164591611ff0565b9161164f876110f0565b9161165990611113565b61166291611ff0565b61166b9161112d565b61167491611ff0565b61167d91611fa9565b6000136110e5576102339561169f936110d29260405196879560208701610ecd565b611b55565b6116c461023393926116be6116cb93602086015190611324565b90611d4c565b9151611d7c565b90611324565b9291906116e76116e18284611d4c565b85611d20565b938103908111610a6557928103908111610a655790565b92919061170e6116e18284611d4c565b938101809111610a6557928101809111610a655790565b9293949091946040825192015193670de0b6b3a764000060008682039612818712811691871390151617610a6557828794611760868561112d565b61176983611113565b61177291611324565b9561177c91611fa9565b9061178691611324565b936117918584611ff0565b9461179b87611113565b6117a59087611ff0565b6117af9089610e72565b9283926117bc8b8761112d565b6117c69088611ff0565b946117d091611ff0565b6117d987611f8a565b6117e291611324565b936117ec87611113565b6117f6908b611ff0565b928b6118028989611ff0565b9061180c9161112d565b61181591611ff0565b61181e8a611113565b61182791611ff0565b9361183191611ff0565b9361183b91611ff0565b9161184591610e72565b61184e91611ff0565b6118579161112d565b956118619161112d565b61186a91611ff0565b92611874906110f0565b9161187e90611113565b61188791611ff0565b6118909161112d565b61189991611ff0565b61023391611fa9565b929190836118bd6118c2926118bd6020860151865190612087565b6120ca565b906118ce8183866112e2565b936118db82868584610e8b565b85906000808212156119a4575b808212611986575061192d61197a9261023396979886935b6119146040519889928c8a6020860161201f565b0396611928601f19988981018352826108be565b611c2c565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b039081018352826108be565b9661199191506120eb565b9561199e84888786610e8b565b906118e8565b9691965b8082136119c4575061192d61023395969761197a938693611900565b966119cf9150611d9e565b956119dc84888786610e8b565b906119a8565b60206119fb61023394936116be6116cb94865190611324565b920151611d7c565b9190610100838203126101d557825192602081015192610233604083015193608060608501519401610bec565b91906103e892600093600091838211611b3457611a4c8161217c565b611a5685836122d5565b6000611a628284611301565b13611b155750611a73859695610b04565b60019460009186805b611a8d575b50505050505050509050565b15611af0575b5085969798508091611aae611aa88b88610a7a565b60011c90565b99611ab98b876122d5565b9083611ac58784611301565b13611ae457505089925b87611ada8886610b14565b9201939998611a7c565b8b975090945092611acf565b861080611b0a575b15611b035788611a93565b8080611a81565b506101008210611af8565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e892600093600091838211611b3457611b71816122f6565b611b7b8583612441565b6000611b878284611301565b13611b155750611b98859695610b04565b60019460009186805b611bb15750505050505050509050565b15611c0e575b5085969798508091611bcc611aa88b88610a7a565b99611bd78b87612441565b9083611be38784611301565b13611c0257505089925b87611bf88886610b14565b9201939998611ba1565b8b975090945092611bed565b861080611c21575b15611b035788611bb7565b506101008210611c16565b60009392918491838211611d0057611c448282612462565b611c4e8583612462565b6000611c5a8284611301565b13611b155750611c6c83869796610b14565b60019460009186805b611c855750505050505050509050565b15611ce2575b5085969798508091611ca0611aa88b88610a7a565b99611cab8b87612462565b9083611cb78784611301565b13611cd657505089925b87611ccc8886610b14565b9201939998611c75565b8b975090945092611cc1565b861080611cf5575b15611b035788611c8b565b506101008210611cea565b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b8181029181830414901517600116156101d5576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101d557600190600019830104019015150290565b600181151516156101d5576ec097ce7bc90715b34b9f0fffffffff0460010190565b6103e9908181029181830414901517600116156101d55760016103e8600019830104019015150290565b15611dcf57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e19811315611f8457680755bf798b4a1bf1e5811215611f50576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029182051482151516156101d5570590565b6103e881810291600160ff1b81136001179183051416156101d557670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b9091131716156101d557670de0b6b3a7640000900590565b610f1c9360609296959360e083019783526020830152604082015201906060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000490565b670de0b6b3a764000090818102918183041490151782151516156101d5570490565b6103e89080820291820414600116156101d557670de0b6b3a7640000900490565b8181029181830414901517600116156101d557670de0b6b3a7640000900490565b6103e7908181029181830414901517600116156101d5576103e8900490565b612115811515611dc8565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b80518101602001906020019061219191611a03565b9291908351602085015160408601516121a990610ade565b916121b48686612087565b6121be8282611324565b926121c891611324565b8751868885816121d8858b6120ca565b906121e2916120ca565b906121ec916120ca565b926121f6906120a9565b6121ff90610af4565b9061220991610a7a565b90612213916120ca565b61221c86610ade565b612225916120ca565b9261222f89610a6a565b90612239906110f0565b61224291611324565b9161224c906120a9565b61225586610ade565b61225e916120ca565b6122689087610a7a565b9261227291610b14565b9161227c916120ca565b875161228790610ade565b61229090612068565b61229991611324565b6122a2916120ca565b95516122ad90610ade565b926122b786610a6a565b956122c1916120ca565b906122cb916120ca565b92611295906120a9565b906122ec6102339260208082518301019101611a03565b9493929092611149565b6123099060208082518301019101611a03565b6040819593959492945191015192670de0b6b3a764000060008582039512818612811691861390151617610a655781869361234385611101565b61234c83611113565b61235591611324565b9461235f91611fa9565b9061236991611324565b9261237384611fc7565b9361237d86611113565b6123879086611ff0565b6123919088610e72565b92839261239d8a611101565b6123a79087611ff0565b946123b191611ff0565b6123ba86611f8a565b6123c391611324565b936123cd86611113565b6123d7908a611ff0565b928a6123e288611fc7565b906123ec9161112d565b6123f591611ff0565b6123fe89611113565b61240791611ff0565b9361241191611ff0565b9361241b91611ff0565b9161242591610e72565b61242e91611ff0565b6124379161112d565b9461186190611101565b906124586102339260208082518301019101611a03565b9493929092611725565b805181019160e0828403126101d5576102339261249060208401519360806020604083015194019101610bec565b92610e8b56fea2646970667358221220ddef7f48a463f4812492c0cc35c784e857fab14e0a29d203d7aa233c67d9fa2964736f6c6343000816003360a03461007f57601f6112cb38819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f57608052604051611230908161009b82396080518181816103b701528181610612015281816107c601526109240152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b610953565b61090e565b6107ad565b610773565b6105f6565b610331565b6102ae565b610221565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101c3565b838082518301019101610986565b9061010d6100ff600435610a7f565b8680825183010191016109a1565b92610b68565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761015057604052565b61011e565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101a1601f8201601f191660200184610155565b8294818452818301116101be578281602093846000960137010152565b600080fd5b9080601f830112156101be578160206101de93359101610177565b90565b919082519283825260005b84811061020d575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101ec565b346101be5760003660031901126101be57604051604081019080821067ffffffffffffffff8311176101505761027891604052600381526247334d60e81b60208201526040519182916020835260208301906101e1565b0390f35b9060405161028981610134565b6060600382948054845260018101546020850152600281015460408501520154910152565b346101be5760203660031901126101be57600435600052600060205260c060406000206102da8161027c565b90600481015490600560018060a01b03910154169060606040519380518552602081015160208601526040810151604086015201516060840152608083015260a0820152f35b6001600160a01b038116036101be57565b346101be5760603660031901126101be5761034d600435610320565b60243560443567ffffffffffffffff81116101be576103709036906004016101c3565b9061037a81610a7f565b90610390825192602080809583010191016109a1565b6040516333854efd60e21b8152600481018390529092906060816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa948515610596576000908192829761055d575b508084806103ff93518301019101610986565b949195909787878581116000146104c45793610454869461044e866104496104769b9761044461046198604061043b61046d9f6104679f610a08565b91015190610f48565b610f48565b610f74565b50610a7f565b80518101820191016109a1565b91610bb9565b83610a27565b93828685610b68565b93846013191292836104b9575b6102789394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b601486129350610483565b5050919290938089116000146104ff5761046161046d946104546104769761044e856104498f998f61044490604061043b866104679f610a08565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9096506103ff9250610587915060603d60601161058f575b61057f8183610155565b810190610986565b9690926103ec565b503d610575565b6109e6565b9060606003198301126101be576004356105b481610320565b916024359160443567ffffffffffffffff928382116101be57806023830112156101be5781600401359384116101be57602484830101116101be576024019190565b346101be576106043661059b565b9192506001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610761578160c091810103126101be5780359160208201359160408101359460608201359060a08301359261066984610320565b670de0b6b3a764000083101561074f5761070d946107059460806106f1936106f69661069f876000526000602052604060002090565b55013560046106b8866000526000602052604060002090565b01551660056106d1846000526000602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610a7f565b602080825183010191016109a1565b848385610b68565b9283601319129182610744575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b60148512925061071a565b60405163e8a38a6160e01b8152600490fd5b604051636853cba760e01b8152600490fd5b346101be5760606107833661059b565b818094509492940103126101be5780359061070d6107056106f66040602085013594013595610a7f565b346101be576107bb3661059b565b926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610761576108236108176005610809876000526000602052604060002090565b01546001600160a01b031690565b6001600160a01b031690565b9116036108fc5761083683820182610a4a565b61083f81610a5f565b60018103610878575061086261085d61087392600494953691610177565b610caa565b926000526000602052604060002090565b01555b005b61088181610a5f565b600281036108bd5750906108a56108a06108b893610876953691610177565b610c00565b9290916000526000602052604060002090565b610c28565b806108c9600392610a5f565b036108ea576106d16108626108e5600593610876963691610177565b610bd8565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101be5760003660031901126101be576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101be5760203660031901126101be57610278610972600435610a7f565b6040519182916020835260208301906101e1565b908160609103126101be578051916040602083015192015190565b908160809103126101be576060604051916109bb83610134565b80518352602081015160208401526040810151604084015201516109de81610320565b606082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610a1557565b6109f2565b91908201809211610a1557565b81810392916000138015828513169184121617610a1557565b600411156101be57565b908160209103126101be57356101de81610a40565b60041115610a6957565b634e487b7160e01b600052602160045260246000fd5b60408051610a8c81610134565b6000918282526020820193838552818301848152606084019085825282865285602052610ac2610abd85882061027c565b610cdf565b808652670de0b6b3a7640000908103908111610a1557846101de97610b1f95610b1294600594610b5a9c5281835282602052600484842001549052815280602052200160018060a01b0390541690565b6001600160a01b03169052565b5192839160208301919091606060808201938051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b03601f198101835282610155565b926020610b9184610b8b610b83610b9a9697610ba099610fa4565b855190610d88565b95610fa4565b91015190610d88565b90610f48565b670de0b6b3a763ffff198101908113600116610a155790565b6101de92916020610bcf610b9a93855190610d88565b93015190610d88565b6040818051810103126101be5780610bf560206040930151610a40565b015161081781610320565b6060818051810103126101be57610c1a6020820151610a40565b606060408201519101519091565b919042821115610c9857610c3e610abd8461027c565b9081845542600385015542830391838311610a1557610c5c91610a27565b428314610c8257600160ff1b8114600019831416610a1557600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101be5780610cc760206040930151610a40565b015190565b81810292918115918404141715610a1557565b6060810151906020810151808314610d5e57804211600014610d5657915b8203918211610a15576040810190815160008113600014610d3057506101de92610d2a9151925190610ccc565b90610a1a565b90519150600160ff1b8114610a15576101de92610d509160000390610ccc565b90610a08565b504291610cfd565b5090505190565b818102929160008212600160ff1b821416610a15578184051490151715610a1557565b610f356101de927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284610f4393610dbe60008213610fc6565b711340daa0d5f769dba1915cef59f0815a5506610dda82611188565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d610d65565b670de0b6b3a7640000900590565b610ffe565b8181029181830414901517600116156101be576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101be57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101be570490565b15610fcd57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131561118257680755bf798b4a1bf1e581121561114e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b611193811515610fc6565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c600110179056fea26469706673582212209815df372867dd1ba42d4263690c8e70d1f8dc34ff9f897579936267cb43316764736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a264697066735822122029fc52ebc8c8810176faffff393def2aa729ae64d352efe8a176650eab391c8864736f6c63430008160033","sourceMap":"88:1322:72:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;649:554:73;;:::i;:::-;88:1322:72;;724:32:73;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;715:41;88:1322:72;;-1:-1:-1;;;;;;88:1322:72;-1:-1:-1;;;;;88:1322:72;;;;;;;;;;;775:32:73;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;766:41;88:1322:72;;-1:-1:-1;;;;;;88:1322:72;-1:-1:-1;;;;;88:1322:72;;;;;;715:41:73;88:1322:72;817:11:73;;88:1322:72;;-1:-1:-1;;;;;88:1322:72;;;817:11:73;:34;;;;;88:1322:72;;-1:-1:-1;;;817:34:73;;;837:4;88:1322:72;817:34:73;;88:1322:72;844:6:73;88:1322:72;;;;;;;;;;;;;;;817:34:73;;;;;;;;88:1322:72;-1:-1:-1;766:41:73;88:1322:72;;;861:11:73;;-1:-1:-1;;;;;88:1322:72;;;861:11:73;:34;;;;;;88:1322:72;;861:34:73;;;837:4;88:1322:72;861:34:73;;88:1322:72;844:6:73;88:1322:72;;;;;;;;;;;837:4:73;;861:34;;;;;;;;88:1322:72;-1:-1:-1;715:41:73;88:1322:72;920:15:73;;-1:-1:-1;;;;;88:1322:72;;;920:15:73;766:41;88:1322:72;937:15:73;;-1:-1:-1;;;;;88:1322:72;;;937:15:73;88:1322:72;;;912:46:73;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:1322:72;;;;;;;378:4:31;;;88:1322:72;378:4:31;;;;88:1322:72;378:4:31;;;;912:46:73;;;;;;;;;906:52;88:1322:72;;-1:-1:-1;;;;;;88:1322:72;-1:-1:-1;;;;;88:1322:72;;;;;;;;;;;975:20:73;;;;;;;;;;;;;;;;;;;;;88:1322:72;;;;;;;975:20:73;;;;;;;;;968:27;88:1322:72;;-1:-1:-1;;;;;;88:1322:72;-1:-1:-1;;;;;88:1322:72;;;;;;;;;1019:13:73;;378:4:31;88:1322:72;1019:13:73;88:1322:72;;1011:22:73;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:1322:72;;;;;;;;;1011:22:73;;;;;;;;;1005:28;88:1322:72;;-1:-1:-1;;;;;;88:1322:72;-1:-1:-1;;;;;88:1322:72;;;;;;;;;1066:12:73;;378:4:31;88:1322:72;1066:12:73;88:1322:72;;;1052:27:73;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:1322:72;;;;;;;;;1052:27:73;;;;;;;;;;1043:36;1090:48;1043:36;724:32;88:1322:72;;;;;;;;1043:36:73;88:1322:72;;;1043:36:73;88:1322:72;;1043:36:73;715:41;88:1322:72;1090:14:73;;-1:-1:-1;;;;;88:1322:72;;;1090:14:73;968:27;378:4:31;1105:13:73;;-1:-1:-1;;;;;88:1322:72;378:4:31;88:1322:72;1105:13:73;88:1322:72;;-1:-1:-1;;;1090:48:73;;;-1:-1:-1;;;;;88:1322:72;;;;1090:48:73;;88:1322:72;-1:-1:-1;;378:4:31;;;88:1322:72;1090:48:73;;88:1322:72;;;;1090:48:73;;88:1322:72;;1090:48:73;88:1322:72;;1090:48:73;;88:1322:72;;378:4:31;;;;;1090:48:73;;;;;;;;;;1148;1090;;;;;88:1322:72;-1:-1:-1;766:41:73;88:1322:72;1148:14:73;;-1:-1:-1;;;;;88:1322:72;;;1148:14:73;968:27;378:4:31;;;;;;1163:13:73;;-1:-1:-1;;;;;88:1322:72;378:4:31;88:1322:72;1163:13:73;88:1322:72;;1148:48:73;;;-1:-1:-1;;;;;88:1322:72;;;;1148:48:73;;88:1322:72;-1:-1:-1;;378:4:31;;;88:1322:72;;;;;;;;378:4:31;;;;;1148:48:73;;;;;;;;;;;88:1322:72;;;1148:48:73;;;;;;-1:-1:-1;1148:48:73;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;88:1322:72;;;1148:48:73;;;;;;;:::i;1090:::-;;;;;;;;;;;;;:::i;:::-;;;;;1052:27;;:::i;861:34::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;88:1322:72;;;817:34:73;;;;;;:::i;:::-;;;;;88:1322:72;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;88:1322:72;;;;;;;378:11:59;88:1322:72;;;;;;;;;;;;;;;;;1287:43;;;;;88:1322;;-1:-1:-1;;;1287:43:72;;-1:-1:-1;;;88:1322:72;1287:43;;1057:14:1;88:1322:72;;;;;1057:14:1;;88:1322:72;;;;1287:43;;;;;;;;88:1322;-1:-1:-1;1368:3:72;378:4:31;1368:8:72;;-1:-1:-1;;;;;88:1322:72;378:4:31;88:1322:72;1368:8;:33;88:1322;;;;;;;1368:33;;1385:4;;;1368:33;1385:4;88:1322;1368:33;;;:::i;:::-;;;;;;;;;;;88:1322;;;1368:33;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;88:1322;;;1368:33;;;;;1287:43;;;;;;:::i;:::-;;;;88:1322;;;;;;;;;-1:-1:-1;;88:1322:72;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;826:67;88:1322;;:::i;:::-;643:9;88:1322;;670:9;611:154;;;88:1322;378:11:59;611:154:72;;;88:1322;749:4;611:154;;;88:1322;849:15;88:1322;866:18;88:1322;826:67;;:::i;:::-;990:3;378:4:31;982:12:72;;-1:-1:-1;;;;;88:1322:72;378:4:31;88:1322:72;982:12;1024:6;88:1322;;;;941:180;;1016:15;;-1:-1:-1;;;;;88:1322:72;;;1016:15;1061:6;88:1322;941:180;;1053:15;;-1:-1:-1;;;;;88:1322:72;;;1053:15;88:1322;941:180;88:1322;;:::i;:::-;-1:-1:-1;;;;;88:1322:72;;;;;;941:180;-1:-1:-1;;;;;88:1322:72;611:154;941:180;;88:1322;;941:180;-1:-1:-1;;;;;88:1322:72;611:154;941:180;;88:1322;;941:180;611:154;941:180;;88:1322;;1132:44;;;;;611:154;88:1322;-1:-1:-1;;;1132:44:72;;-1:-1:-1;;;88:1322:72;1132:44;;1057:14:1;88:1322:72;;;;;1057:14:1;;88:1322:72;;;;1132:44;;;;;;;;88:1322;1132:44;1186:21;1132:44;;;88:1322;-1:-1:-1;1186:4:72;378::31;1186:9:72;;-1:-1:-1;;;;;88:1322:72;378:4:31;88:1322:72;1186:9;88:1322;611:154;88:1322;;;;;;;;;;1186:21;;88:1322;1186:21;;;:::i;:::-;;;;;;;;;;;88:1322;;;1186:21;;;88:1322;1186:21;88:1322;1186:21;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;88:1322;;;1186:21;;;;;1132:44;;;;;;:::i;:::-;;;;;88:1322;;;;;;;;;-1:-1:-1;;88:1322:72;;;;;243:22:73;88:1322:72;;;;;;;;;;;;;-1:-1:-1;;88:1322:72;;;;992:4:59;378::31;88:1322:72;;-1:-1:-1;;;992:20:59;;88:1322:72;;;992:20:59;;;88:1322:72;;;;;;;;;;-1:-1:-1;;;;;88:1322:72;992:20:59;;;;;;;-1:-1:-1;992:20:59;;;88:1322:72;1029:19:59;;;88:1322:72;;;-1:-1:-1;;;;;88:1322:72;;;;-1:-1:-1;;;;;88:1322:72;;;;;;;;;;;;;;;;;992:20:59;;;88:1322:72;992:20:59;;88:1322:72;992:20:59;;;;;;88:1322:72;992:20:59;;;:::i;:::-;;;88:1322:72;;;;;1029:19:59;88:1322:72;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;992:20:59;;;;;;;;-1:-1:-1;992:20:59;;88:1322:72;;;;;;-1:-1:-1;;88:1322:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1235:10:73;;;;;88:1322:72;;-1:-1:-1;;;1235:10:73;;88:1322:72;;1235:10:73;;88:1322:72;;;;;;;;;;;;1235:10:73;;;;;;;;88:1322:72;-1:-1:-1;1349:3:73;378:4:31;;;88:1322:72;;1506:28:73;;1341:12;;-1:-1:-1;;;;;88:1322:72;378:4:31;88:1322:72;1341:12:73;1383:6;88:1322:72;1300:180:73;;1375:15;;-1:-1:-1;;;;;88:1322:72;;;1375:15:73;1420:6;88:1322:72;1300:180:73;;1412:15;;-1:-1:-1;;;;;88:1322:72;;;1412:15:73;88:1322:72;1300:180:73;88:1322:72;;:::i;:::-;-1:-1:-1;;;;;88:1322:72;;;;;;1300:180:73;-1:-1:-1;;;;;88:1322:72;1447:22:73;1300:180;;88:1322:72;;1300:180:73;-1:-1:-1;;;;;88:1322:72;;1300:180:73;;88:1322:72;;1300:180:73;88:1322:72;;:::i;:::-;1300:180:73;;;88:1322:72;1506:4:73;378::31;1506:9:73;;-1:-1:-1;;;;;88:1322:72;378:4:31;88:1322:72;1506:28:73;;;;;;;;;1491:43;1506:28;;;;;88:1322:72;1491:43:73;;88:1322:72;;1491:43:73;1545:1;;:::i;:::-;88:1322:72;;1506:28:73;;;;88:1322:72;1506:28:73;88:1322:72;1506:28:73;;;;;;;:::i;:::-;;;;;;;1235:10;;;;;;:::i;:::-;;;;88:1322:72;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;;;;;88:1322:72;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;88:1322:72;;;;;;;;;;;;;;-1:-1:-1;;;88:1322:72;;;;753:2:73;88:1322:72;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;88:1322:72;;;;;;;;;;;;;;-1:-1:-1;;;88:1322:72;;;;753:2:73;88:1322:72;;;;;;;:::o;378:4:31:-;;88:1322:72;;;;378:4:31;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;:::o;1057:14:1:-;;;;;;;;;378:4:31;;;:::i;:::-;1057:14:1;;;;88:1322:72;1057:14:1;;;;88:1322:72;1057:14:1;;;;;88:1322:72;1057:14:1;;88:1322:72;1057:14:1;:::o;:::-;;;;;;;;-1:-1:-1;;1057:14:1;;;;:::o;:::-;;;;;;;;;;;;;;;;724:32:73;88:1322:72;;;;;;;1057:14:1;;88:1322:72;1057:14:1;;;88:1322:72;1057:14:1;;;;;;88:1322:72;1057:14:1;;;;88:1322:72;;1057:14:1;;;;;;;88:1322:72;1057:14:1;;;88:1322:72;1057:14:1;;;;;;88:1322:72;;;;;;1057:14:1;;;:::o;:::-;88:1322:72;;;1057:14:1;;;;;;;;;;;;;1671:64:0;;;;1057:14:1;;;;;1671:64:0;88:1322:72;;1671:64:0;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;88:1322:72;;;;;;;-1:-1:-1;;88:1322:72;1671:64:0;;88:1322:72;;:::i;:::-;1671:64:0;;;-1:-1:-1;1671:64:0;;;;:::o;:::-;1057:14:1;1671:64:0;:::o;1819:584::-;1873:7;88:1322:72;;;;;;1873:7:0;;;88:1322:72;;;;;378:4:31;:::o;1869:528:0:-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;88:1322:72;;;;;2196:43:0;;;;;;1671:64;;;;88:1322:72;;;;1671:64:0;;;;;;88:1322:72;1671:64:0;2196:43;;;88:1322:72;;2196:43:0;;;;;;;;:::i;:::-;2086:175;88:1322:72;;2086:175:0;;;2196:43;2086:175;;;;;:::i;:::-;;;;;;;;;:::i;:::-;2047:232;;;;;2312:27;2047:232;;:::i;:::-;2196:43;88:1322:72;;;2312:27:0;;;;;;:::i;88:1322:72:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;724:32:73;88:1322:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1057:14:1;88:1322:72;;;;;;;;;;;;;1057:14:1;;;:::i;:::-;88:1322:72;;-1:-1:-1;;88:1322:72;1057:14:1;;;88:1322:72:o;:::-;;;;-1:-1:-1;1447:22:73;88:1322:72;1447:22:73;88:1322:72;;;;;;;;;;;;;;;;1447:22:73;88:1322:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;1447:22:73;88:1322:72;;;;;;;-1:-1:-1;88:1322:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;88:1322:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;88:1322:72;;;;;;;;;;;;;;;172:335;724:32:73;88:1322:72;;;;313:3;378:4:31;88:1322:72;313:27;332:7;88:1322;;;;;;;;;;;313:27;;;;;88:1322;313:27;;;;;;-1:-1:-1;;;;313:27:72;;;172:335;360:15;475:24;360:15;377:16;360:15;422:21;360:15;;:::i;:::-;377:13;88:1322;377:16;;:::i;:::-;422:21;88:1322;422:21;;:::i;:::-;475:24;88:1322;-1:-1:-1;;;;;88:1322:72;475:24;;:::i;313:27::-;;;;;;;;;;;;;;;;;:::i;:::-;;;88:1322;313:27;88:1322;;;;;-1:-1:-1;88:1322:72;;;475:24;88:1322;422:21;88:1322;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;377:16;360:15;88:1322;;;;;;;;;:::i;:::-;313:27;;;;-1:-1:-1;313:27:72;;-1:-1:-1;;313:27:72;;;;;;88:1322;;;;;;;;;;;;1692:384:42;;2000:9;965:21:18;1692:384:42;1880:50;965:21:18;1961:50:42;1692:384;;799:19:18;1692:384:42;965:21:18;:::i;:::-;88:1322:72;;1880:50:42;;:::i;:::-;965:21:18;;:::i;:::-;2000:9:42;;88:1322:72;1961:50:42;;:::i;:::-;799:19:18;;:::i;:::-;88:1322:72;;;;;;;;;;;1692:384:42;:::o;88:1322:72:-;;:::i;396:450:59:-;88:1322:72;;;447:32:59;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;715:41:73;88:1322:72;;-1:-1:-1;;;;;;88:1322:72;-1:-1:-1;;;;;88:1322:72;;;;;;;;;;;498:32:59;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;766:41:73;88:1322:72;;-1:-1:-1;;;;;;88:1322:72;-1:-1:-1;;;;;88:1322:72;;;;;;438:41:59;88:1322:72;540:11:59;;88:1322:72;;;540:11:59;:34;;;;;88:1322:72;;-1:-1:-1;;;540:34:59;;;560:4;540:34;;;88:1322:72;844:6:73;88:1322:72;;;;;;;;;;;;;;;540:34:59;;;;;;;;396:450;-1:-1:-1;489:41:59;88:1322:72;584:11:59;;-1:-1:-1;;;;;88:1322:72;;;584:11:59;:34;;;;;;88:1322:72;;584:34:59;;;560:4;540:34;584;;88:1322:72;844:6:73;88:1322:72;;;;;;;;;;;;;;;584:34:59;;;;;;;;396:450;-1:-1:-1;438:41:59;88:1322:72;643:15:59;;-1:-1:-1;;;;;88:1322:72;;;643:15:59;489:41;88:1322:72;660:15:59;;-1:-1:-1;;;;;88:1322:72;;;660:15:59;88:1322:72;;;635:50:59;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:1322:72;;;;;;;378:4:31;;;88:1322:72;378:4:31;;;;88:1322:72;378:4:31;;;;635:50:59;;;;;;;;;906:52:73;88:1322:72;;-1:-1:-1;;;;;;88:1322:72;-1:-1:-1;;;;;88:1322:72;;;;;;;;;;;;702:20:59;;;;;;;;;;;;;;;;;;;;88:1322:72;;;;;;;702:20:59;;;;;;;;;;695:27;733:48;695:27;724:32:73;88:1322:72;;;;;;;;968:27:73;88:1322:72;;;968:27:73;88:1322:72;;695:27:59;438:41;88:1322:72;733:14:59;;-1:-1:-1;;;;;88:1322:72;;;733:14:59;695:27;378:4:31;;;;748:13:59;;-1:-1:-1;;;;;88:1322:72;378:4:31;88:1322:72;748:13:59;88:1322:72;;-1:-1:-1;;;733:48:59;;;-1:-1:-1;;;;;88:1322:72;;;540:34:59;733:48;;88:1322:72;-1:-1:-1;;378:4:31;;;88:1322:72;733:48:59;;88:1322:72;;;;733:48:59;;88:1322:72;;733:48:59;88:1322:72;;;;;;378:4:31;;;;;733:48:59;;;;;;;;;;791;733;;;;;396:450;-1:-1:-1;489:41:59;88:1322:72;791:14:59;;-1:-1:-1;;;;;88:1322:72;;;791:14:59;695:27;378:4:31;;;;806:13:59;;-1:-1:-1;;;;;88:1322:72;378:4:31;88:1322:72;791:48:59;;;;;;;;;;;396:450;;:::o;791:48::-;;;;;;-1:-1:-1;791:48:59;;;;;;:::i;:::-;;396:450::o;733:48::-;;;;;;;;;;;;;:::i;:::-;;;;;584:34;;;;;;:::i;:::-;;;;540;;;;;;:::i;:::-;;;;1858:513:35;;;799:19:18;1349:9:35;;;1790:35;1728;631:21:18;88:1322:72;631:21:18;88:1322:72;;;965:21:18;88:1322:72;;965:21:18;;;:::i;:::-;631;:::i;:::-;1728:35:35;;;:::i;:::-;88:1322:72;;1790:35:35;;:::i;799:19:18:-;2139:69:35;;;;;;;:::i;:::-;8798:29;;-1:-1:-1;8914:21:35;;;-1:-1:-1;;;8954:21:35;;;;;;8910:600;9519:160;2296:72;8910:600;2296:72;8910:600;;;;;;88:1322:72;;;1349:9:35;9538:45;;;88:1322:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:1322:72;;;;;;;;;9538:45:35;;-1:-1:-1;;;9538:45:35;88:1322:72;;9538:45:35;:::i;:::-;9519:160;:::i;:::-;88:1322:72;;;2334:14:35;;;88:1322:72;2350:17:35;;;;88:1322:72;;;1349:9:35;2296:72;;88:1322:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:1322:72;;;;;;;;;;;;;;;8947:268:35;8999:27;;;;;:::i;:::-;9060:144;;;;;;;:::i;:::-;8947:268;;;8910:600;9237:267;;;9244:21;;;;;;8910:600;9519:160;2296:72;8910:600;;;2296:72;8910:600;;;;;9237:267;9289:26;;;;;:::i;:::-;9349:144;;;;;;;:::i;:::-;9237:267;;;88:1322:72;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;354:683:28:-;475:18;;;88:1322:72;497:15:28;;;;88:1322:72;475:37:28;;;471:98;;598:15;;:33;:93;:33;;;:93;;88:1322:72;;;;;;;765:21:28;;;88:1322:72;;;-1:-1:-1;765:25:28;;761:270;-1:-1:-1;;;88:1322:72;813:84:28;88:1322:72;855:42:28;88:1322:72;;;;855:42:28;;:::i;:::-;813:84;;:::i;761:270::-;88:1322:72;;;-1:-1:-1;;;;88:1322:72;;;;935:85:28;88:1322:72;977:43:28;88:1322:72;-1:-1:-1;88:1322:72;977:43:28;;:::i;:::-;935:85;;:::i;598:93::-;:15;;:93;;;471:98;88:1322:72;;;;528:30:28;:::o;5202:262:0:-;5259:6;;;5255:203;;5202:262;;:::o;5255:203::-;88:1322:72;;;;5286:41:0;88:1322:72;;;;;;;;;;;;;;;;-1:-1:-1;;;88:1322:72;;;;5286:41:0;88:1322:72;;;;;;;;;;;;;;;-1:-1:-1;;;88:1322:72;;;;;;;;;;;;;5346:31:0;;;;;;;;88:1322:72;;;;;;;;;;;;;;;-1:-1:-1;;;88:1322:72;;;;;;;;;;;;;5396:31:0;;;;;:::i;3615:277::-;-1:-1:-1;;;;;88:1322:72;;;;;3678:6:0;;;3674:212;;3615:277;;:::o;3674:212::-;88:1322:72;;;;3705:44:0;88:1322:72;;;;;;;;;;;;;;;;-1:-1:-1;;;88:1322:72;;;;3705:44:0;88:1322:72;;;;;;;;;;;;;;;-1:-1:-1;;;88:1322:72;;;;;;;;;;;;;3768:34:0;;;;;;;;88:1322:72;;;;;;;;;;;;;;;-1:-1:-1;;;88:1322:72;;;;;;;;;;;;;;;;-1:-1:-1;;;88:1322:72;;;;;;;;;;;;;;;:::o;1208:273:18:-;1399:12;1391:36;1208:273;7380:72;1398:28;1208:273;4688:27;-1:-1:-1;4696:5:18;;4688:27;:::i;:::-;7125:43;5125:16;;;:::i;:::-;5145:2;88:1322:72;;;5175:3:18;88:1322:72;;;5175:3:18;88:1322:72;;;;;7232:71:18;88:1322:72;;6411:30:18;88:1322:72;6343:32:18;88:1322:72;6274:33:18;88:1322:72;6205:33:18;88:1322:72;6136:33:18;88:1322:72;6068:32:18;88:1322:72;6001:31:18;88:1322:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5533:32:18;88:1322:72;5465:32:18;88:1322:72;5398:31:18;88:1322:72;;;;;;;;;;;;;;;;;;;;;;;;6455:304:18;88:1322:72;;;;;1399:12:18;:::i;:::-;378:4:31;88:1322:72;;;;1398:28:18;1391:36;:::i;2410:424:0:-;2939:104;;;2445:359;;2410:424;88:1322:72;;;;2928:1:0;88:1322:72;;;2928:1:0;88:1322:72;2410:424:0:o;2445:359::-;-1:-1:-1;88:1322:72;;;;2645:67:0;;;;88:1322:72;;;1671:64:0;;;88:1322:72;;;;2705:4:0;88:1322:72;;;;;2645:67:0;;;;;:::i;:::-;2534:196;1671:64;88:1322:72;;2534:196:0;;1671:64;2645:67;2534:196;;1057:14:1;;;;;;88:1322:72;1671:64:0;;;;;;;:::i;:::-;;;2534:196;1671:64;2534:196;;;;;;;:::i;:::-;2499:245;;;;;;;:::i;:::-;;2445:359;;;7741:535:18;378:4:31;7878:392:18;;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;7878:392;;;;;;;;;;;;;;;;378:4:31;7878:392:18;;7741:535;:::o;:::-;9016:3:35;7878:392:18;;;;;;;;;;;;;;;;;9021:4:35;7878:392:18;;7741:535;:::o;88:1322:72:-;;;;:::o;:::-;;;-1:-1:-1;;;88:1322:72;;;;;;;;;;;;-1:-1:-1;;;88:1322:72;;;;;;;1487:3103:18;-1:-1:-1;;1713:26:18;;;1709:40;;1948:21;1943:26;;;1939:54;;2266:5;88:1322:72;;;;4502:49:18;2559:29;88:1322:72;;2591:5:18;724:32:73;2591:5:18;;88:1322:72;;;;;;;;;;;;;;2874:31:18;88:1322:72;;;;;;3074:35:18;3649;88:1322:72;;;;3508:34:18;88:1322:72;;;;3371:32:18;88:1322:72;;;;;;;;;;;;;;;;;;;;;;;;;3136:40:18;;;;88:1322:72;2941:32:18;88:1322:72;;;;;;;;;;;;;;;3699:327:18;88:1322:72;;4564:3:18;88:1322:72;;1487:3103:18;:::o;1939:54::-;88:1322:72;;-1:-1:-1;;;1971:22:18;;88:1322:72;1971:22:18;;;88:1322:72;;;;;;-1:-1:-1;;;88:1322:72;;;;;;1971:22:18;1709:40;1741:8;1748:1;1741:8;:::o;8282:752::-;8417:611;;;;;;;;;;;;;;;;;378:4:31;1120:17:73;;8417:611:18;;;;;;;;8282:752;:::o;:::-;9304:4:35;8417:611:18;;;;;;;;;;;;;;;;;;9310:4:35;1120:17:73;;8417:611:18;;;;;;;;8282:752;:::o;1009:1952:33:-;88:1322:72;;1009:1952:33;;88:1322:72;;1239:13:33;;;1235:66;;1632:15;;;;:::i;:::-;1674;;;;:::i;:::-;88:1322:72;1699:25:33;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;;:::i;:::-;9631:1:35;;88:1322:72;;9631:1:35;;;;;1978:981:33;1009:1952;;;;;;;;;;:::o;1978:981::-;;;;;2909:48;;;;;;;2123:13;2122:19;2123:13;;;;:::i;:::-;88:1322:72;;;;2122:19:33;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;88:1322:72;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;88:1322:72;;1978:981:33;;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;2909:18;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;;;;;;2931:26;9643:3:35;2931:26:33;;2909:48;;1695:115;88:1322:72;;-1:-1:-1;;;1747:56:33;;;;;88:1322:72;;;;;;;;;;1971:22:18;1235:66:33;88:1322:72;;-1:-1:-1;;;1261:40:33;;;;;88:1322:72;;;;;;;;;;;1971:22:18;15328:575;15397:27;15405:5;;;15397:27;:::i;:::-;15435:462;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:575;:::o;88:1322:72:-;;;;3862:59:35;;88:1322:72;;;;;;;3862:59:35;;;88:1322:72;;;;;;;;;;;;;;3934:64:35;88:1322:72;;;;;;;;;:::i;:::-;;;;;;;;;;;3862:59:35;88:1322:72;;;;;;;;;;;;;:::i;:::-;;;;;3934:64:35;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","POOL_ID()":"e0d7d0e9","TEST_SWAP_FEE()":"620a2607","failed()":"ba414fa6","getPoolLiquidityToken(uint256)":"e21485ad","setUp()":"0a9254e4","test_G3M_init_RevertsWhenInvalidWeightX()":"d25496bd","test_G3M_init_RevertsWhenSenderNotDFMM()":"a99cc239","test_G3M_init_SetInternalParams()":"fd09bac0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"upper\",\"type\":\"uint256\"}],\"name\":\"BisectionLib_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"lowerResult\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"upperResult\",\"type\":\"int256\"}],\"name\":\"BisectionLib_RootOutsideBounds\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POOL_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_SWAP_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolLiquidityToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_G3M_init_RevertsWhenInvalidWeightX\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_G3M_init_RevertsWhenSenderNotDFMM\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_G3M_init_SetInternalParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"BisectionLib_InvalidBounds(uint256,uint256)\":[{\"details\":\"Thrown when the lower bound is greater than the upper bound.\"}],\"BisectionLib_RootOutsideBounds(int256,int256)\":[{\"details\":\"Thrown when the result of the function `fx` for each input, `upper` and `lower`, is the same sign.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/unit/strategies/G3M/Init.t.sol\":\"G3MInitTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/lib/SignedWadMath.sol\":{\"keccak256\":\"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a\",\"dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/solvers/G3M/G3MExtendedLib.sol\":{\"keccak256\":\"0xa7e4eb7172ca81b319ccb5ac248c302fb549be3eb6badda424800f73edfbc448\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2d53a62a983c65dd0b892f30d30b603fc5cf7ebb4895dbdcb0a05a9eae1a431f\",\"dweb:/ipfs/QmNXKi6XUWswwKuzaE6SorZhRvd7Nz6dxYmLmii8bVcRhK\"]},\"src/solvers/G3M/G3MSolver.sol\":{\"keccak256\":\"0x78a3ae3db50beba513113d6a79c1d29282ccc46852563237fc3852eb1390376e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://146cfcc48b6a2fd6cd392f8508232b201add90f0f4352b141bc8d25b821884da\",\"dweb:/ipfs/QmXB3vg58RwUEEMCqgvdEGfwZjTzvE9PXDEZ8XFYsmiK1s\"]},\"src/strategies/G3M/G3M.sol\":{\"keccak256\":\"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c\",\"dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE\"]},\"src/strategies/G3M/G3MLib.sol\":{\"keccak256\":\"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70\",\"dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]},\"src/test/helpers/MockStrategy.sol\":{\"keccak256\":\"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5\",\"dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw\"]},\"src/test/helpers/SetUp.sol\":{\"keccak256\":\"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30\",\"dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14\"]},\"src/test/unit/DFMM/SetUp.sol\":{\"keccak256\":\"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4\",\"dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm\"]},\"src/test/unit/strategies/G3M/Init.t.sol\":{\"keccak256\":\"0x6e5e1d1c9b5b3d39e4e9d62145c411d777382e4b0ab47616552c2a44373197f5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://006a2d5b608fdef798bccd6320426d902dbdc4c5142f7982506146d2e7d42178\",\"dweb:/ipfs/QmbbF7XHgntsLKNsb5Fn2ExcPKmM7tpv6ma5qR1gWizpWw\"]},\"src/test/unit/strategies/G3M/SetUp.sol\":{\"keccak256\":\"0xf3df0de5242d3ce771a7d1c56bc0e6d49c33c93bd213f173ae893ffa8cb8a2db\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://15593516464636019a55cab0dfda3c32d88ce82ece50e1f6ecab55e17305042a\",\"dweb:/ipfs/QmcySG4cNFidHEpwBcuMfWVkzGPWTPyLwgwrNodUoTZips\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"lower","type":"uint256"},{"internalType":"uint256","name":"upper","type":"uint256"}],"type":"error","name":"BisectionLib_InvalidBounds"},{"inputs":[{"internalType":"int256","name":"lowerResult","type":"int256"},{"internalType":"int256","name":"upperResult","type":"int256"}],"type":"error","name":"BisectionLib_RootOutsideBounds"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"POOL_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_SWAP_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolLiquidityToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_G3M_init_RevertsWhenInvalidWeightX"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_G3M_init_RevertsWhenSenderNotDFMM"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_G3M_init_SetInternalParams"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/unit/strategies/G3M/Init.t.sol":"G3MInitTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/lib/SignedWadMath.sol":{"keccak256":"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630","urls":["bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a","dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN"],"license":"MIT"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/solvers/G3M/G3MExtendedLib.sol":{"keccak256":"0xa7e4eb7172ca81b319ccb5ac248c302fb549be3eb6badda424800f73edfbc448","urls":["bzz-raw://2d53a62a983c65dd0b892f30d30b603fc5cf7ebb4895dbdcb0a05a9eae1a431f","dweb:/ipfs/QmNXKi6XUWswwKuzaE6SorZhRvd7Nz6dxYmLmii8bVcRhK"],"license":"GPL-3.0-or-later"},"src/solvers/G3M/G3MSolver.sol":{"keccak256":"0x78a3ae3db50beba513113d6a79c1d29282ccc46852563237fc3852eb1390376e","urls":["bzz-raw://146cfcc48b6a2fd6cd392f8508232b201add90f0f4352b141bc8d25b821884da","dweb:/ipfs/QmXB3vg58RwUEEMCqgvdEGfwZjTzvE9PXDEZ8XFYsmiK1s"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3M.sol":{"keccak256":"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034","urls":["bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c","dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3MLib.sol":{"keccak256":"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4","urls":["bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70","dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m"],"license":"GPL-3.0-or-later"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"},"src/test/helpers/MockStrategy.sol":{"keccak256":"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a","urls":["bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5","dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw"],"license":"UNLICENSED"},"src/test/helpers/SetUp.sol":{"keccak256":"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb","urls":["bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30","dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14"],"license":"UNLICENSED"},"src/test/unit/DFMM/SetUp.sol":{"keccak256":"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a","urls":["bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4","dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm"],"license":"UNLICENSED"},"src/test/unit/strategies/G3M/Init.t.sol":{"keccak256":"0x6e5e1d1c9b5b3d39e4e9d62145c411d777382e4b0ab47616552c2a44373197f5","urls":["bzz-raw://006a2d5b608fdef798bccd6320426d902dbdc4c5142f7982506146d2e7d42178","dweb:/ipfs/QmbbF7XHgntsLKNsb5Fn2ExcPKmM7tpv6ma5qR1gWizpWw"],"license":"UNLICENSED"},"src/test/unit/strategies/G3M/SetUp.sol":{"keccak256":"0xf3df0de5242d3ce771a7d1c56bc0e6d49c33c93bd213f173ae893ffa8cb8a2db","urls":["bzz-raw://15593516464636019a55cab0dfda3c32d88ce82ece50e1f6ecab55e17305042a","dweb:/ipfs/QmcySG4cNFidHEpwBcuMfWVkzGPWTPyLwgwrNodUoTZips"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/unit/strategies/G3M/Init.t.sol","id":47316,"exportedSymbols":{"ArbiterToken":[43381],"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"DFMM":[29062],"DFMMSetUp":[45761],"DSTest":[1786],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"G3M":[37911],"G3MInitTest":[47315],"G3MLib":[38158],"G3MSetUp":[47524],"G3MSolver":[33820],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"LPToken":[29516],"Lex":[44392],"LibString":[26659],"Min":[27736],"MockERC20":[25560],"MockStrategy":[44649],"ONE":[30639],"SQRT_WAD":[30630],"SafeTransferLib":[26744],"SetUp":[44852],"SignedWadMathLib":[30623],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"TWO":[30633],"Test":[8195],"TestBase":[1843],"Vm":[9352],"WETH":[26027],"ZERO":[30649],"abs":[27763],"bisection":[31118],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeInitialPoolData":[31906],"computeL":[31844],"computeLGivenX":[31662],"computeLGivenY":[31688],"computeNextLiquidity":[32899],"computeNextRx":[32006],"computeNextRy":[31956],"computeOptimalLower":[32732],"computeOptimalRaise":[32798],"computePrice":[32043],"computeScalingFactor":[30048],"computeX":[31792],"computeXGivenL":[31714],"computeY":[31766],"computeYGivenL":[31740],"console":[17416],"console2":[25512],"diffLower":[32419],"diffRaise":[32666],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"findRootLiquidity":[32083],"findRootLower":[32129],"findRootRaise":[32175],"muli":[27777],"muliWad":[27795],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"39:1372:72","nodes":[{"id":47179,"nodeType":"PragmaDirective","src":"39:24:72","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":47180,"nodeType":"ImportDirective","src":"65:21:72","nodes":[],"absolutePath":"src/test/unit/strategies/G3M/SetUp.sol","file":"./SetUp.sol","nameLocation":"-1:-1:-1","scope":47316,"sourceUnit":47525,"symbolAliases":[],"unitAlias":""},{"id":47315,"nodeType":"ContractDefinition","src":"88:1322:72","nodes":[{"id":47186,"nodeType":"UsingForDirective","src":"127:39:72","nodes":[],"global":false,"libraryName":{"id":47183,"name":"DynamicParamLib","nameLocations":["133:15:72"],"nodeType":"IdentifierPath","referencedDeclaration":30012,"src":"133:15:72"},"typeName":{"id":47185,"nodeType":"UserDefinedTypeName","pathNode":{"id":47184,"name":"DynamicParam","nameLocations":["153:12:72"],"nodeType":"IdentifierPath","referencedDeclaration":29851,"src":"153:12:72"},"referencedDeclaration":29851,"src":"153:12:72","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"}}},{"id":47224,"nodeType":"FunctionDefinition","src":"172:335:72","nodes":[],"body":{"id":47223,"nodeType":"Block","src":"227:280:72","nodes":[],"statements":[{"assignments":[47193,47195,47197],"declarations":[{"constant":false,"id":47193,"mutability":"mutable","name":"wX","nameLocation":"258:2:72","nodeType":"VariableDeclaration","scope":47223,"src":"238:22:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam"},"typeName":{"id":47192,"nodeType":"UserDefinedTypeName","pathNode":{"id":47191,"name":"DynamicParam","nameLocations":["238:12:72"],"nodeType":"IdentifierPath","referencedDeclaration":29851,"src":"238:12:72"},"referencedDeclaration":29851,"src":"238:12:72","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"}},"visibility":"internal"},{"constant":false,"id":47195,"mutability":"mutable","name":"swapFee","nameLocation":"270:7:72","nodeType":"VariableDeclaration","scope":47223,"src":"262:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47194,"name":"uint256","nodeType":"ElementaryTypeName","src":"262:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47197,"mutability":"mutable","name":"controller","nameLocation":"287:10:72","nodeType":"VariableDeclaration","scope":47223,"src":"279:18:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47196,"name":"address","nodeType":"ElementaryTypeName","src":"279:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":47202,"initialValue":{"arguments":[{"id":47200,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"332:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47198,"name":"g3m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47325,"src":"313:3:72","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"id":47199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"317:14:72","memberName":"internalParams","nodeType":"MemberAccess","referencedDeclaration":37284,"src":"313:18:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_DynamicParam_$29851_memory_ptr_$_t_uint256_$_t_address_$","typeString":"function (uint256) view external returns (struct DynamicParam memory,uint256,address)"}},"id":47201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"313:27:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_DynamicParam_$29851_memory_ptr_$_t_uint256_$_t_address_$","typeString":"tuple(struct DynamicParam memory,uint256,address)"}},"nodeType":"VariableDeclarationStatement","src":"237:103:72"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":47204,"name":"wX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47193,"src":"360:2:72","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_memory_ptr","typeString":"struct DynamicParam memory"}},"id":47205,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"363:10:72","memberName":"actualized","nodeType":"MemberAccess","referencedDeclaration":29925,"src":"360:13:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_DynamicParam_$29851_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_DynamicParam_$29851_memory_ptr_$","typeString":"function (struct DynamicParam memory) view returns (uint256)"}},"id":47206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"360:15:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":47207,"name":"defaultParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47343,"src":"377:13:72","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage","typeString":"struct G3M.G3MParams storage ref"}},"id":47208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"391:2:72","memberName":"wX","nodeType":"MemberAccess","referencedDeclaration":37265,"src":"377:16:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47203,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"351:8:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":47209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"351:43:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47210,"nodeType":"ExpressionStatement","src":"351:43:72"},{"expression":{"arguments":[{"id":47212,"name":"swapFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47195,"src":"413:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":47213,"name":"defaultParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47343,"src":"422:13:72","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage","typeString":"struct G3M.G3MParams storage ref"}},"id":47214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"436:7:72","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":37269,"src":"422:21:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47211,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"404:8:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":47215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"404:40:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47216,"nodeType":"ExpressionStatement","src":"404:40:72"},{"expression":{"arguments":[{"id":47218,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47197,"src":"463:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":47219,"name":"defaultParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47343,"src":"475:13:72","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage","typeString":"struct G3M.G3MParams storage ref"}},"id":47220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"489:10:72","memberName":"controller","nodeType":"MemberAccess","referencedDeclaration":37271,"src":"475:24:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":47217,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":320,"src":"454:8:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":47221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"454:46:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47222,"nodeType":"ExpressionStatement","src":"454:46:72"}]},"functionSelector":"fd09bac0","implemented":true,"kind":"function","modifiers":[{"id":47189,"kind":"modifierInvocation","modifierName":{"id":47188,"name":"init","nameLocations":["222:4:72"],"nodeType":"IdentifierPath","referencedDeclaration":47523,"src":"222:4:72"},"nodeType":"ModifierInvocation","src":"222:4:72"}],"name":"test_G3M_init_SetInternalParams","nameLocation":"181:31:72","parameters":{"id":47187,"nodeType":"ParameterList","parameters":[],"src":"212:2:72"},"returnParameters":{"id":47190,"nodeType":"ParameterList","parameters":[],"src":"227:0:72"},"scope":47315,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":47288,"nodeType":"FunctionDefinition","src":"513:701:72","nodes":[],"body":{"id":47287,"nodeType":"Block","src":"571:643:72","nodes":[],"statements":[{"assignments":[47231],"declarations":[{"constant":false,"id":47231,"mutability":"mutable","name":"params","nameLocation":"602:6:72","nodeType":"VariableDeclaration","scope":47287,"src":"581:27:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":47230,"nodeType":"UserDefinedTypeName","pathNode":{"id":47229,"name":"G3M.G3MParams","nameLocations":["581:3:72","585:9:72"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"581:13:72"},"referencedDeclaration":37272,"src":"581:13:72","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"id":47242,"initialValue":{"arguments":[{"hexValue":"312e31","id":47234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"643:9:72","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1100000000000000000_by_1","typeString":"int_const 1100000000000000000"},"value":"1.1"},{"hexValue":"302e35","id":47235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"670:9:72","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"value":"0.5"},{"id":47236,"name":"TEST_SWAP_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44731,"src":"702:13:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":47239,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"749:4:72","typeDescriptions":{"typeIdentifier":"t_contract$_G3MInitTest_$47315","typeString":"contract G3MInitTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MInitTest_$47315","typeString":"contract G3MInitTest"}],"id":47238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"741:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47237,"name":"address","nodeType":"ElementaryTypeName","src":"741:7:72","typeDescriptions":{}}},"id":47240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"741:13:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1100000000000000000_by_1","typeString":"int_const 1100000000000000000"},{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47232,"name":"G3M","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37911,"src":"611:3:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3M_$37911_$","typeString":"type(contract G3M)"}},"id":47233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"615:9:72","memberName":"G3MParams","nodeType":"MemberAccess","referencedDeclaration":37272,"src":"611:13:72","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}},"id":47241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["639:2:72","666:2:72","693:7:72","729:10:72"],"names":["wX","wY","swapFee","controller"],"nodeType":"FunctionCall","src":"611:154:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"nodeType":"VariableDeclarationStatement","src":"581:184:72"},{"assignments":[47244],"declarations":[{"constant":false,"id":47244,"mutability":"mutable","name":"defaultInitialPoolData","nameLocation":"789:22:72","nodeType":"VariableDeclaration","scope":47287,"src":"776:35:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47243,"name":"bytes","nodeType":"ElementaryTypeName","src":"776:5:72","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":47250,"initialValue":{"arguments":[{"id":47246,"name":"defaultReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47346,"src":"849:15:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47247,"name":"defaultStrikePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47349,"src":"866:18:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47248,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47231,"src":"886:6:72","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}],"id":47245,"name":"computeInitialPoolData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31906,"src":"826:22:72","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256,struct G3M.G3MParams memory) pure returns (bytes memory)"}},"id":47249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"826:67:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"776:117:72"},{"assignments":[47255],"declarations":[{"constant":false,"id":47255,"mutability":"mutable","name":"initParams","nameLocation":"928:10:72","nodeType":"VariableDeclaration","scope":47287,"src":"904:34:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":47254,"nodeType":"UserDefinedTypeName","pathNode":{"id":47253,"name":"IDFMM.InitParams","nameLocations":["904:5:72","910:10:72"],"nodeType":"IdentifierPath","referencedDeclaration":29543,"src":"904:16:72"},"referencedDeclaration":29543,"src":"904:16:72","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"id":47272,"initialValue":{"arguments":[{"arguments":[{"id":47260,"name":"g3m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47325,"src":"990:3:72","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}],"id":47259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"982:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47258,"name":"address","nodeType":"ElementaryTypeName","src":"982:7:72","typeDescriptions":{}}},"id":47261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"982:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":47264,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"1024:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":47263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1016:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47262,"name":"address","nodeType":"ElementaryTypeName","src":"1016:7:72","typeDescriptions":{}}},"id":47265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1016:15:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":47268,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"1061:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":47267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1053:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47266,"name":"address","nodeType":"ElementaryTypeName","src":"1053:7:72","typeDescriptions":{}}},"id":47269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1053:15:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47270,"name":"defaultInitialPoolData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47244,"src":"1088:22:72","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":47256,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"941:5:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":47257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"947:10:72","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":29543,"src":"941:16:72","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$29543_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":47271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["972:8:72","1008:6:72","1045:6:72","1082:4:72"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"941:180:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}},"nodeType":"VariableDeclarationStatement","src":"904:217:72"},{"expression":{"arguments":[{"expression":{"expression":{"id":47276,"name":"G3M","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37911,"src":"1148:3:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3M_$37911_$","typeString":"type(contract G3M)"}},"id":47277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1152:14:72","memberName":"InvalidWeightX","nodeType":"MemberAccess","referencedDeclaration":37297,"src":"1148:18:72","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1167:8:72","memberName":"selector","nodeType":"MemberAccess","src":"1148:27:72","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":47273,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"1132:2:72","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":47275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1135:12:72","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":9121,"src":"1132:15:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes4_$returns$__$","typeString":"function (bytes4) external"}},"id":47279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1132:44:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47280,"nodeType":"ExpressionStatement","src":"1132:44:72"},{"expression":{"arguments":[{"id":47284,"name":"initParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47255,"src":"1196:10:72","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":47281,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1186:4:72","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":47283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1191:4:72","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":28091,"src":"1186:9:72","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$29543_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":47285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1186:21:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"id":47286,"nodeType":"ExpressionStatement","src":"1186:21:72"}]},"functionSelector":"d25496bd","implemented":true,"kind":"function","modifiers":[],"name":"test_G3M_init_RevertsWhenInvalidWeightX","nameLocation":"522:39:72","parameters":{"id":47225,"nodeType":"ParameterList","parameters":[],"src":"561:2:72"},"returnParameters":{"id":47226,"nodeType":"ParameterList","parameters":[],"src":"571:0:72"},"scope":47315,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":47314,"nodeType":"FunctionDefinition","src":"1220:188:72","nodes":[],"body":{"id":47313,"nodeType":"Block","src":"1277:131:72","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"expression":{"id":47294,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"1303:9:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$29839_$","typeString":"type(contract IStrategy)"}},"id":47295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1313:7:72","memberName":"NotDFMM","nodeType":"MemberAccess","referencedDeclaration":29739,"src":"1303:17:72","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1321:8:72","memberName":"selector","nodeType":"MemberAccess","src":"1303:26:72","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":47291,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"1287:2:72","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":47293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1290:12:72","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":9121,"src":"1287:15:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes4_$returns$__$","typeString":"function (bytes4) external"}},"id":47297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1287:43:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47298,"nodeType":"ExpressionStatement","src":"1287:43:72"},{"assignments":[47300],"declarations":[{"constant":false,"id":47300,"mutability":"mutable","name":"empty","nameLocation":"1353:5:72","nodeType":"VariableDeclaration","scope":47313,"src":"1340:18:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47299,"name":"bytes","nodeType":"ElementaryTypeName","src":"1340:5:72","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":47301,"nodeType":"VariableDeclarationStatement","src":"1340:18:72"},{"expression":{"arguments":[{"arguments":[{"id":47307,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1385:4:72","typeDescriptions":{"typeIdentifier":"t_contract$_G3MInitTest_$47315","typeString":"contract G3MInitTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MInitTest_$47315","typeString":"contract G3MInitTest"}],"id":47306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1377:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47305,"name":"address","nodeType":"ElementaryTypeName","src":"1377:7:72","typeDescriptions":{}}},"id":47308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1377:13:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":47309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1392:1:72","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":47310,"name":"empty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47300,"src":"1395:5:72","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":47302,"name":"g3m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47325,"src":"1368:3:72","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"id":47304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1372:4:72","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":37348,"src":"1368:8:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256,bytes memory) external returns (bool,int256,uint256,uint256,uint256)"}},"id":47311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1368:33:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,int256,uint256,uint256,uint256)"}},"id":47312,"nodeType":"ExpressionStatement","src":"1368:33:72"}]},"functionSelector":"a99cc239","implemented":true,"kind":"function","modifiers":[],"name":"test_G3M_init_RevertsWhenSenderNotDFMM","nameLocation":"1229:38:72","parameters":{"id":47289,"nodeType":"ParameterList","parameters":[],"src":"1267:2:72"},"returnParameters":{"id":47290,"nodeType":"ParameterList","parameters":[],"src":"1277:0:72"},"scope":47315,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":47181,"name":"G3MSetUp","nameLocations":["112:8:72"],"nodeType":"IdentifierPath","referencedDeclaration":47524,"src":"112:8:72"},"id":47182,"nodeType":"InheritanceSpecifier","src":"112:8:72"}],"canonicalName":"G3MInitTest","contractDependencies":[25560,29062,33820,37911,44392],"contractKind":"contract","fullyImplemented":true,"internalFunctionIDs":{"32083":1},"linearizedBaseContracts":[47315,47524,44852,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"G3MInitTest","nameLocation":"97:11:72","scope":47316,"usedErrors":[30985,30992],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":72} \ No newline at end of file diff --git a/out/Init.t.sol/LogNormalInitTest.json b/out/Init.t.sol/LogNormalInitTest.json deleted file mode 100644 index b547e640..00000000 --- a/out/Init.t.sol/LogNormalInitTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"POOL_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TEST_SWAP_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolLiquidityToken","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_LogNormal_init_RevertsIfInvalidTokens","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_LogNormal_init_StoresPoolParameters","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"BisectionLib_InvalidBounds","inputs":[{"name":"lower","type":"uint256","internalType":"uint256"},{"name":"upper","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BisectionLib_RootOutsideBounds","inputs":[{"name":"lowerResult","type":"int256","internalType":"int256"},{"name":"upperResult","type":"int256","internalType":"int256"}]},{"type":"error","name":"Infinity","inputs":[]},{"type":"error","name":"Min","inputs":[]},{"type":"error","name":"NegativeInfinity","inputs":[]},{"type":"error","name":"OutOfBounds","inputs":[]}],"bytecode":{"object":"0x34620000b757600160ff196000541617600055610120604052670de0b6b3a7640000806080528060a0528060c052660aa87bee538000908160e052306101005280601a5580601b55601c55601d553060018060a01b0319601e541617601e5562000070670de0b6b3a7640000601f55565b62000082670de0b6b3a7640000602055565b620000a7620000a1601f546020546200009a62000118565b91620002ea565b620001ef565b60405161af259081620017578239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b60a081019081106001600160401b03821117620000ee57604052565b620000bc565b601f909101601f19168101906001600160401b03821190821017620000ee57604052565b604051906200012782620000d2565b601a548252601b546020830152601c546040830152601d546060830152601e546001600160a01b03166080830152565b90600182811c9216801562000189575b60208310146200017357565b634e487b7160e01b600052602260045260246000fd5b91607f169162000167565b601f8111620001a1575050565b60009060216000526020600020906020601f850160051c83019410620001e4575b601f0160051c01915b828110620001d857505050565b818155600101620001cb565b9092508290620001c2565b80519091906001600160401b038111620000ee576200021b816200021560215462000157565b62000194565b602080601f8311600114620002625750819062000251939460009262000256575b50508160011b916000199060031b1c19161790565b602155565b0151905038806200023c565b6021600052601f198316949091907f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b570926000905b878210620002d1575050836001959610620002b7575b505050811b01602155565b015160001960f88460031b161c19169055388080620002ac565b8060018596829496860151815501950193019062000296565b825160208401908151936040860191825162000307818862000c6a565b9162000314908462000c98565b6200031f9062001151565b90670de0b6b3a764000062000335819962001151565b6200034090620008b1565b056200034c906200131f565b90620003589162000d39565b620003639062000d5b565b6200036e9162000635565b620003799062000893565b90620003859162000931565b620003909062000976565b6200039b90620009b6565b8503858111620004f257620003b1908562000c98565b9486519351925191620003c5838562000c6a565b94620003d19162000c98565b620003dc9062001151565b92620003e89062001151565b620003f390620008b1565b05620003ff906200131f565b906200040b9162000d39565b620004169062000d5b565b620004219162000a38565b6200042c9062000893565b90620004389162000931565b620004439062000976565b6200044e90620009b6565b828451906200045d9162000cc9565b90620004699162000cc9565b9183620004798183868662000652565b91620004879285856200076c565b604080516020808201949094528082019490945260608085019290925284516080808601919091529285015160a085015284015160c084015283015160e0830152909101516001600160a01b0316610100808301919091528152620004ef61012082620000f4565b90565b634e487b7160e01b600052601160045260246000fd5b919082039182116200051657565b620004f2565b9081670de0b6b3a7640000019182126001166200051657565b9081670b68df18e471fbff1901918212156001166200051657565b90816714a8454c19e1ac00019182126001166200051657565b9081670fc10e01578277ff1901918212156001166200051657565b90816703debd083b8c7c00019182126001166200051657565b9081670295d400ea3257ff1901918212156001166200051657565b9081670157d8b2ecc70800019182126001166200051657565b90816705310aa7d5213000019182126001166200051657565b9081670de0cc3d15610000019182126001166200051657565b9081672005fe4f268ea000019182126001166200051657565b9081670dc5527f642c2000019182126001166200051657565b919091600083820193841291129080158216911516176200051657565b9092828210156200072757620004ef93620006dd9284670de0b6b3a764000091826200067f838362000cf6565b106200071057506001600160ff1b039590505b835191620006ac620006a5838562000d39565b8562000cf6565b10620006e357506001600160ff1b0392620006d6925090505b604060208201519101519062000c6a565b9262000635565b62000635565b620006d692620006fc6200070392620007099462000d39565b9062000cf6565b62000a52565b91620006c5565b6200072091620007039162000cf6565b9462000692565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b929493859391926000808212156200082e575b8082126200080b575091620007f66200080592620004ef979895945b604051958694602086019260e092959491956101008501968552602085015260408401528051606084015260208101516080840152604081015160a0840152606081015160c0840152608060018060a01b0391015116910152565b03601f198101835282620000f4565b62000dbd565b9662000818915062000d19565b95620008278288868662000652565b906200077f565b8082136200084f575091620007f66200080592620004ef979895946200079b565b9490506103e980820291600191818404149015178116156200088f576103e8600019830104019015150293620008888286868662000652565b906200082e565b8580fd5b90670de0b6b3a7640000918281029281840514901517156200051657565b90671bc16d674ec80000918281029281840514901517156200051657565b60008190039190600160ff1b811460011662000516576000198305036200051657565b90633b9aca00918281029281840514901517156200051657565b818102929160008212600160ff1b821416620005165781840514901517156200051657565b81156200094e57600160ff1b811460001983141662000516570590565b634e487b7160e01b600052601260045260246000fd5b600160ff1b8114620005165760000390565b620009b2620009ac620009a66713a04bbdfdc9be886200099f671bc16d674ec800009562000893565b0562000964565b62000efb565b62000893565b0590565b60008112620009c25790565b60405162461bcd60e51b815260206004820152601060248201526f746f55696e743a206e6567617469766560801b6044820152606490fd5b9067119000ab100ffbff1982019182136001166200051657565b90671bc16d674ec80000600083820393128184128116918413901516176200051657565b818103929160001380158285131691841216176200051657565b6706f05b59d3b20000811462000c6457670de0b6b3a76400008082121562000c0a57811562000c2e5760018260011b916002938305600203620005165760008312801562000c52575b62000c4057821562000c0a57671bc16d674ec80000831462000c2e57821291821562000c1c57925b62000ace84620015a5565b801562000c0a5762000b5a62000b0a62000b0462000afe62000af862000b60959997969962001151565b62001509565b62001052565b620008f2565b62000b5462000b2362000b1d83620015d1565b62000603565b62000b4d62000b4762000b4062000b3a86620015fd565b6200061c565b8562001583565b6200051c565b9062001648565b62000a38565b62001532565b936000925b81841062000ba05750505050620004ef9162000b899160001462000b8f57620014b5565b62000964565b62000b9a9062000964565b620014b5565b909162000bff8662000bf862000bbd8562000b5486999b62000efb565b62000b4d62000be562000bdf62000bd962000b89878062001583565b6200131f565b6200155b565b62000bf1838662001583565b9062000a38565b9062000635565b950192919062000b65565b6040516307a0212760e01b8152600490fd5b62000c279062000a14565b9262000ac3565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec80000831362000a9b565b50600090565b9062000c769062001052565b633b9aca00908181029181830414901517156200051657620004ef9162000d39565b90670de0b6b3a76400009182810292818404149015178115151615620000b757600190600019830104019015150290565b818102918183041490151760011615620000b7576001670de0b6b3a7640000600019830104019015150290565b670de0b6b3a76400009081810291818304149015178215151615620000b7570490565b6103e790818102918183041490151760011615620000b7576103e8900490565b818102918183041490151760011615620000b757670de0b6b3a7640000900490565b6706f05b59d3b20000908082029182041460011615620000b757670de0b6b3a7640000900490565b670de0b6b3a764000090818102918183041490151760011615620000b757671bc16d674ec80000900490565b919082018092116200051657565b6000939291849183821162000edb5762000dd88282620016d3565b62000de48583620016d3565b600062000df282846200090c565b1362000ebc575062000e078386979662000508565b60019460009186805b62000e22575b50505050505050509050565b1562000e92575b508596979850809162000e4762000e418b8862000daf565b60011c90565b9962000e548b87620016d3565b908362000e6287846200090c565b1362000e8557505089925b8762000e7a888662000508565b920193999862000e10565b8b97509094509262000e6d565b6014108062000eb1575b1562000ea9578862000e29565b808062000e16565b506040821062000e9c565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b80156200104557675698eef06670000081121562000c6457675698eef0666fffff19811315620010385760006200102562000f3683620012f0565b62000fe362000bd962000f5762000f5162000b478562000d83565b62001628565b92620006dd6200101f62001019620010116200100a6200100462000ffd62000ff762000ff062000fea8d62000fe362000fdd62000fd662000fd062000b4062000fca62000fc362000fbd62000fb662000fb08a620014dd565b62000535565b8962001583565b62000550565b8762001583565b62000569565b62000584565b8362001583565b6200059d565b9062001583565b620005b8565b8c62001583565b620005d1565b8a62001583565b620005ea565b8862001583565b938062001583565b620008cf565b620009fa565b911215620004ef57620004ef9062000a14565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b60b581600160881b81101562001100575b80690100000000000000000062010000921015620010f2575b65010000000000811015620010e4575b6301000000811015620010d6575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916200109a565b60201c9160101b916200108c565b60401c9160201b916200107c565b5068b500000000000000009050608082901c62001063565b156200112057565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284906200117f6000821362001118565b711340daa0d5f769dba1915cef59f0815a55066200119d826200166b565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d019160016c0504a838426634cdd8738f543560611b0319916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b600160ff1b81146200130d576000811215620004ef571960010190565b604051634d2d75b160e01b8152600490fd5b680248ce36a70cb26b3e1981131562000c6457680755bf798b4a1bf1e581121562001481576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b3989179d835ebba824c98fb31b83b2ca45c0000000000000000000000006060916b8000000000000000000000008582851b0501831d94850290036e0587f503bb6ea29d25fcb740196450816c10fe68e7fd37d0007b713f7650810102841d936e05180bb14799ab47a8a8cb2a527d57836e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028a1d0102881d0102861d0102841d0102821d01946d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be88908082029182051460011615620000b757670de0b6b3a7640000900590565b67025f0fe105a3140090818102918183051490151760011615620000b757670de0b6b3a7640000900590565b671bc16d674ec7ffff19818102916001918305141615620000b757670de0b6b3a7640000900590565b6709d028cc6f205fff19818102916001918305141615620000b757670de0b6b3a7640000900590565b670fa8cedfc2adddfa908082029182051460011615620000b757670de0b6b3a7640000900590565b818102918183051490151760011615620000b757670de0b6b3a7640000900590565b670de0b6b3a764000090818102918183051490151760011615620000b757671bc16d674ec80000900590565b6703c1665c7aab200090818102918183051490151760011615620000b757670de0b6b3a7640000900590565b669f32752462a00090818102918183051490151760011615620000b757670de0b6b3a7640000900590565b60018115151615620000b7576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a76400009081810291818305149015178215151615620000b7570590565b6200167881151562001118565b8060018060801b031060071b81811c60018060401b031060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b8080518101039161010092838112620000b75760208301519360a0604085015192605f190112620000b757604051936200170d85620000d2565b6080810151855260a0810151602086015260c0810151604086015260e081015160608601520151936001600160a01b0385168503620000b757620004ef9460808501526200065256fe60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e414620000ac5750508063110908dd14620000a6578063620a260714620000a0578063acc9d6b7146200009a578063ba414fa61462000094578063e0d7d0e9146200008e578063e21485ad14620000885763fa7626d4146200008257600080fd5b62000a52565b6200091a565b620008fa565b620008d1565b62000783565b6200075f565b620005a5565b346200057557816003193601126200057557620000c86200100d565b805161106b8082019067ffffffffffffffff9280831084841117620005515780620000fb62001669948486843962000b35565b039086f080156200052957601580546001600160a01b0319166001600160a01b0390921691909117905583519181830183811085821117620005515783926200014692843962000b81565b039084f080156200052957601680546001600160a01b0319166001600160a01b039283161790556015546200018391165b6001600160a01b031690565b803b15620005905782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af18015620005295762000579575b506016548490620001e2906001600160a01b031662000177565b91823b156200057557845190815230600482015268056bc75e2d631000006024820152918290604490829084905af18015620005295762000557575b5060155462000236906001600160a01b031662000177565b6016546200024d906001600160a01b031662000177565b90835191610597908184019284841086851117620005515784936200029a936200a95986396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200052957601480546001600160a01b0319166001600160a01b039092169190911790558151612f21808201908282108483111762000551578291620002f091620026d484396000815260200190565b039084f080156200052957601380546001600160a01b0319166001600160a01b03929092169182179055620003259062000177565b825190611bc48083019183831085841117620005515783926200035b9262008d9585396001600160a01b03909116815260200190565b039084f080156200052957601780546001600160a01b0319166001600160a01b03929092169182179055620003909062000177565b8251916137a080840192909183118484101762000551578392620003c792620055f585396001600160a01b03909116815260200190565b039083f09081156200052957620003fe6200046a9260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b60155462000415906001600160a01b031662000177565b6013546200042c906001600160a01b031662000177565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200052957620004e29385936200052f575b506016546200049b906001600160a01b031662000177565b6013549091908790620004b7906001600160a01b031662000177565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200052957620004f6578280f35b816200051a92903d1062000521575b62000511818362000adc565b81019062000bc1565b5081808280f35b503d62000505565b62000b75565b6200054990843d8611620005215762000511818362000adc565b508662000483565b62000a77565b80620005676200056e9262000a8d565b8062000594565b836200021e565b5080fd5b8062000567620005899262000a8d565b84620001c8565b8380fd5b6000910312620005a057565b600080fd5b34620005a0576000806003193601126200075c57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000575576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620005295762000745575b506017548190608090620006e19062000627906001600160a01b031662000177565b6015546200069d9062000643906001600160a01b031662000177565b6016546200068d906200065f906001600160a01b031662000177565b916200067d6200066e62000aff565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6001600160a01b03166040830152565b620006a762000bdb565b6060820152601354620006c3906001600160a01b031662000177565b906040519485809481936305157c7f60e21b83526004830162000d27565b03925af180156200052957620006ff9183916200070c575b50601955565b6200070962000d85565b80f35b62000733915060803d6080116200073d575b6200072a818362000adc565b81019062000cdf565b50505038620006f9565b503d6200071e565b8062000567620007559262000a8d565b3862000605565b80fd5b34620005a0576000366003190112620005a0576020604051660aa87bee5380008152f35b34620005a0576000806003193601126200075c57601754620007ae906001600160a01b031662000177565b601554620007fc90620007ca906001600160a01b031662000177565b620007e7620007d862000aff565b6001600160a01b039094168452565b6001600160a01b03811660208401526200068d565b6200080662000bdb565b6060820152737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620008cd57604051630618f58760e51b81526333910aef60e11b60048201529083908290602490829084905af18015620005295783926080926200087f92620008b6575b50601354620006c3906001600160a01b031662000177565b03925af18015620005295762000893575080f35b620008af9060803d6080116200073d576200072a818362000adc565b5050505080f35b8062000567620008c69262000a8d565b3862000867565b8280fd5b34620005a0576000366003190112620005a0576020620008f062000f32565b6040519015158152f35b34620005a0576000366003190112620005a0576020601954604051908152f35b34620005a0576020366003190112620005a05760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa90811562000529576000916200099e575b60c08201516200099a906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e01162000a49575b81620009bc60e0938362000adc565b81010312620005a0576200098060c06200099a9262000a3c8260405192620009e48462000aa2565b620009ef8162000b20565b8452620009ff6020820162000b20565b602085015262000a126040820162000b20565b6040850152606081015160608501526080810151608085015260a081015160a08501520162000b20565b828201529250506200096c565b3d9150620009ad565b34620005a0576000366003190112620005a057602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200055157604052565b60e0810190811067ffffffffffffffff8211176200055157604052565b6080810190811067ffffffffffffffff8211176200055157604052565b90601f8019910116810190811067ffffffffffffffff8211176200055157604052565b604051906080820182811067ffffffffffffffff8211176200055157604052565b51906001600160a01b0382168203620005a057565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b6040513d6000823e3d90fd5b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b90816020910312620005a057518015158103620005a05790565b6040519060006021549060018260011c926001811691821562000cd4575b60209160208610841462000cc05785885287949360208601939291811562000c9f575060011462000c38575b50505062000c369250038362000adc565b565b92509362000c6860216000527f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b57090565b946000935b82851062000c885750505062000c3693500138808062000c25565b865485850152958601958895509381019362000c6d565b9250505062000c369491925060ff19168252151560051b0138808062000c25565b634e487b7160e01b85526022600452602485fd5b93607f169362000bf9565b9190826080910312620005a0578151916020810151916060604083015192015190565b60005b83811062000d165750506000910152565b818101518382015260200162000d05565b606060c0926020835260018060a01b0380825116602085015280602083015116604085015260408201511682840152015160808083015262000d79815180928160a08601526020868601910162000d02565b601f01601f1916010190565b60018060a01b036013541660e06019546024604051809481936315895f4760e31b835260048301525afa801562000529576000808190828095819562000e19575b509262000e0862000c36969362000e0162000e129462000e0162000e129862000dfa6200017760175460018060a01b031690565b90620013a3565b80620013a3565b601f5490620014bc565b80620014bc565b9550935050505060e0823d60e01162000ebd575b8162000e3c60e0938362000adc565b810103126200075c57508062000e1262000e5a62000c369362000b20565b9162000e1262000e6d6020830162000b20565b9362000e0862000e806040850162000b20565b62000e0160608601519162000e0160808801519562000ea760c060a08b01519a0162000b20565b50959a509698929750955090935062000dc69050565b3d915062000e2d565b90600491630667f9d760e41b815262000ee9825180936020868501910162000d02565b010190565b3d1562000f2d573d9067ffffffffffffffff821162000551576040519162000f21601f8201601f19166020018462000adc565b82523d6000602084013e565b606090565b6000805460081c60ff161562000f4f575460081c60ff1690565b90565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62000f7157505090565b819250604051828162000faf60208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b0362000fc4601f199182810185528462000adc565b62000fea604051918262000fdd60208201968762000ec6565b0390810183528262000adc565b51925af15062000f4c62000ffd62000eee565b6020808251830101910162000bc1565b6040805161106b80820167ffffffffffffffff91838210838311176200055157836200104162001669938385843962000b35565b0360009485f080156200052957601580546001600160a01b0319166001600160a01b0390921691909117905584519181830183811085821117620005515783926200108e92843962000b81565b039083f080156200052957601680546001600160a01b0319166001600160a01b03928316179055601554620010c4911662000177565b803b15620008cd5783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af1801562000529576200138c575b5060165462001121906001600160a01b031662000177565b90813b156200059057845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af18015620005295762001375575b5060155462001177906001600160a01b031662000177565b6016546200118e906001600160a01b031662000177565b9084519161059790818401928484108685111762000551578493620011db936200a95986396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200052957601480546001600160a01b0319166001600160a01b03909216919091179055825190612f2180830191821183831017620005515782916200123191620026d484396000815260200190565b039082f0918215620005295762001268620012d79360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b6015546200127f906001600160a01b031662000177565b60135490919062001299906001600160a01b031662000177565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af192831562000529576200132294869462001353575b5060165462001308906001600160a01b031662000177565b601354909290620004b7906001600160a01b031662000177565b03925af18015620005295762001336575050565b816200135092903d10620005215762000511818362000adc565b50565b6200136d90853d8711620005215762000511818362000adc565b5038620012f0565b8062000567620013859262000a8d565b386200115f565b80620005676200139c9262000a8d565b3862001109565b6001600160a01b039182169116818103620013bc575050565b620014a9906040907f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506080835160208152602560208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b6164648582015264726573735d60d81b6060820152a181519382855262001453838601604090600a8152690808115e1c1958dd195960b21b60208201520190565b906020860152847f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f9586920390a181519282849384528301604090600a815269080808081058dd1d585b60b21b60208201520190565b9060208301520390a162000c36620015b2565b818103620014c8575050565b620014a9906040907f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506080835160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8582015261745d60f01b6060820152a18151938285526200155c838601604090600a8152690808115e1c1958dd195960b21b60208201520190565b906020860152847fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89586920390a181519282849384528301604090600a815269080808081058dd1d585b60b21b60208201520190565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620015e1575b5061010061ff00196000541617600055565b6000809160405182602082018381526519985a5b195960d21b60408401526001606084015260608352620016158362000abf565b62001651602460405180936200164060208301976370ca10bb60e01b89525180928585019062000d02565b810103600481018452018262000adc565b51925af1506200166062000eee565b5038620015cf56fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c634300081600336080346200007a57601f620037a038819003918201601f19168301916001600160401b038311848410176200007f578084926020946040528339810103126200007a57516001600160a01b038116908190036200007a57600080546001600160a01b03191691909117905560405161370a9081620000968239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630420580a146101b7578063120649c5146101b2578063134ead12146101ad5780631e978cb0146101a8578063306db46b146101a3578063332266f31461019e5780633928ff97146101995780633b268d5d146101945780633b4d10301461018f5780634e817fd91461018a5780634fd67c58146101855780635eb408fc146101805780636237569f1461017b5780636d652299146101765780637f17409c1461017157806381b5fac21461016c578063902ecaa214610167578063a8c62e7614610162578063af4e437f1461015d578063b09d04e514610158578063cb1f553214610153578063ce153bf41461014e578063e94716d514610149578063ee3e8cfb14610144578063f30d37f21461013f5763f9c282111461013a57600080fd5b610aff565b610acf565b610a9e565b610a63565b610a27565b6109e2565b6109af565b610993565b61096a565b610941565b610914565b610872565b610856565b6107e9565b6107cd565b6107a4565b610788565b610759565b61071e565b61048d565b610436565b610407565b6103e2565b610354565b61028e565b610218565b60005b8381106101cf5750506000910152565b81810151838201526020016101bf565b906020916101f8815180928185528580860191016101bc565b601f01601f1916010190565b9060206102159281815201906101df565b90565b3461026b57604036600319011261026b57610267604051600260208201526004356040820152602435606082015260608152610253816102e9565b6040519182916020835260208301906101df565b0390f35b600080fd5b608090600319011261026b5760043590602435906044359060643590565b3461026b5760206102aa6102a136610270565b92919091610b4d565b604051908152f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff8211176102e457604052565b6102b2565b6080810190811067ffffffffffffffff8211176102e457604052565b6060810190811067ffffffffffffffff8211176102e457604052565b90601f8019910116810190811067ffffffffffffffff8211176102e457604052565b6001600160a01b0381160361026b57565b3461026b5760e036600319011261026b5760a036604319011261026b576102676103bc604051610383816102c8565b60443581526064356020820152608435604082015260a435606082015260c4356103ac81610343565b608082015260243560043561139a565b60405191829182610204565b606090600319011261026b57600435906024359060443590565b3461026b5760206102aa6104016103f8366103c8565b91929092610f06565b91611583565b3461026b5760206102aa61041a366103c8565b9061042d61042784610f06565b936110d9565b92919091611670565b3461026b5760206102aa610449366103c8565b9061045661042784610f06565b9290506119da565b8015150361026b57565b90926080926102159594151583526020830152604082015281606082015201906101df565b3461026b57606036600319011261026b5761050360243561061f6004356104b38361045e565b604435926104bf610c57565b936104c8610c57565b946104d2846110d9565b60208496939592960194604096878601928352865284526104f287610f06565b998a9185519087519051918a611009565b921561069657928261054a6105519361054361053e61053661056f9861053160606105979d9c0151866125a2565b6125a2565b8651906125f8565b610c9d565b9351610cb0565b8a52610cb0565b61056385890191808352895188610c4a565b90885190519087610b4d565b9061058e6105836020890193808552610c9d565b808452825111610d31565b51905190610d24565b945b84519260c06020870151848801926105df8451976105d18851998a958693602085016040919493926060820195825260208201520152565b03601f198101845283610321565b600054610602906105f6906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610dbf565b03915afa94851561069157600095610651575b509061064691610267959651905190611583565b905194859485610468565b61026795509061067c610646939260c03d60c01161068a575b6106748183610321565b810190610d88565b505050505095509091610632565b503d61066a565b610b41565b826106df610718966106d2610704956106cb61053e6106c361070f9a61053160606106fc9b0151866125a2565b8551906125f8565b9251610cb0565b9260208d01938452610cb0565b6106f1888c019180835283518b610de3565b915190519089610df0565b808952610c9d565b808852825111610cbd565b51855190610d24565b94610599565b3461026b57604036600319011261026b57610267604051600460208201526004356040820152602435606082015260608152610253816102e9565b3461026b57602036600319011261026b5760206102aa60043561040161077e826110d9565b9291939050610f06565b3461026b5760206102aa61079e6103f8366103c8565b91611b9c565b3461026b5760206102aa6107b7366103c8565b906107c461042784610f06565b92919091611c16565b3461026b5760206102aa6107e036610270565b92919091610df0565b3461026b57604036600319011261026b5761083860043561026761081a61080f836110d9565b919050602435611f7a565b939092848461083261082b84610f06565b8383611583565b92610b4d565b92604051938493846040919493926060820195825260208201520152565b3461026b57600036600319011261026b57602060405160008152f35b3461026b57604036600319011261026b576004356108c06102676108a2610898846110d9565b9150602435611fa7565b92909383856108ba6108b384610f06565b8383611b9c565b92610df0565b91604051938493846040919493926060820195825260208201520152565b805182526020808201519083015260408082015190830152606080820151908301526080908101516001600160a01b0316910152565b3461026b57602036600319011261026b5760a0610932600435610f06565b61093f60405180926108de565bf35b3461026b5760206102aa610954366103c8565b9061096161042784610f06565b92909150611fce565b3461026b57600036600319011261026b576000546040516001600160a01b039091168152602090f35b3461026b5760206102aa6109a636610270565b92919091611009565b3461026b57602036600319011261026b576102676040516001602082015260043560408201526040815261025381610305565b3461026b57602036600319011261026b57610267600435610a0281610343565b60408051600560208201526001600160a01b0390921682820152815261025381610305565b3461026b57602036600319011261026b57610267610a466004356110d9565b604080519384526020840192909252908201529081906060820190565b3461026b57604036600319011261026b57610267604051600360208201526004356040820152602435606082015260608152610253816102e9565b3461026b57604036600319011261026b5761083860043561026761081a610ac4836110d9565b919050602435611fa7565b3461026b57604036600319011261026b576004356108c06102676108a2610af5846110d9565b9150602435611f7a565b3461026b57600036600319011261026b57602060405160788152f35b9081602091031261026b575190565b6040906102159392815281602082015201906101df565b6040513d6000823e3d90fd5b610b85610bee9493929361053184610b7e610b79610b74610b6d88610f06565b809661230a565b61237f565b6123b2565b92516125a2565b916020604051610bbc81610bae85888a8785016040919493926060820195825260208201520152565b03601f198101835282610321565b600054610bd3906105f6906001600160a01b031681565b6040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093610c15575b50610c0f90610f06565b936111f1565b610c0f919350610c3c9060203d602011610c43575b610c348183610321565b810190610b1b565b9290610c05565b503d610c2a565b9161040161021593610f06565b604051906060820182811067ffffffffffffffff8211176102e45760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610cab57565b610c87565b91908201809211610cab57565b15610cc457565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b6103e719810191908211610cab57565b91908203918211610cab57565b15610d3857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c091031261026b578151610d9f8161045e565b9160208101519160408201519160608101519160a0608083015192015190565b610215939260609260018060a01b03168252602082015281604082015201906101df565b9161079e61021593610f06565b92610b79610b74610e0d92949394610e0787610f06565b90612f44565b92670de0b6b3a7640000938403938411610cab57610e2e610e5794836125a2565b916020604051610bbc81610bae8589898785016040919493926060820195825260208201520152565b03915afa9182156106915761021595600093610e7e575b50610e7890610f06565b93611e24565b610e78919350610e9c9060203d602011610c4357610c348183610321565b9290610e6e565b91908260a091031261026b57604051610ebb816102c8565b608080829480518452602081015160208501526040810151604085015260608101516060850152015191610eee83610343565b0152565b9060a08282031261026b5761021591610ea3565b90604051610f13816102c8565b600090818152816080602092828482015282604082015282606082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610691578092610f7a575b506102159293508082518301019101610ef2565b9091503d8082863e610f8c8186610321565b840190828583031261100257845167ffffffffffffffff9586821161100557019082601f830112156110025781519586116102e45760405192610fd8601f8801601f1916860185610321565b86845284878401011161100257506102159394610ffa918480850191016101bc565b908392610f66565b80fd5b8280fd5b61105d939192602060405161103781610bae87868a8785016040919493926060820195825260208201520152565b60018060a01b03600054166040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093611084575b5061107e90610f06565b936121b4565b61107e9193506110a29060203d602011610c4357610c348183610321565b9290611074565b9081602091031261026b575161021581610343565b9081606091031261026b578051916040602083015192015190565b90600460206110f56105f66105f660005460018060a01b031690565b604051632bee84f160e21b815292839182905afa928315610691576111409360609260009161119d575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156106915760008093600093611166575b50929190565b9193505061118c915060603d606011611196575b6111848183610321565b8101906110be565b9290929138611160565b503d61117a565b6111bf915060203d6020116111c5575b6111b78183610321565b8101906110a9565b3861111f565b503d6111ad565b6111ef9360609296959361010083019783526020830152604082015201906108de565b565b929360009385929185851215611367575b8585126113485790610bae611224925b604096604051958694602086016111cc565b81859285968281116113255761123a818561337f565b92611245818661337f565b88611250828761152f565b136113045750906112649197969297610d24565b60019591829187805b61127f575b5050505050505050505090565b156112e0575b5086979850819261129f6112998b89610cb0565b60011c90565b996112aa8b8861337f565b90846112b6888461152f565b136112d457505089935b886112cb8987610d24565b9201949961126d565b8b9850909550936112c0565b601410806112fb575b156112f45788611285565b8080611272565b508083106112e9565b6040516306f1be5d60e21b8152600481018690526024810191909152604490fd5b604051633082dfdb60e11b81526004810191909152602481019290925250604490fd5b935091611354906125ce565b91611361848385846124a9565b93611202565b85851361137b5790610bae61122492611212565b935094611387906123f5565b94611394848388846124a9565b93611367565b916113ab610b79610b748385612f44565b91670de0b6b3a7640000928303928311610cab57611402826113ee6113e3610b79610b74846113dd6114209a8c6125f8565b9761230a565b6105318584516125a2565b926113fb8282868a6124a9565b84886121b4565b906040519460208601526040850152606084015260808301906108de565b6101008152610120810181811067ffffffffffffffff8211176102e45760405290565b90670de0b6b3a764000060008382039312818412811691841390151617610cab57565b90671bc16d674ec8000060008382039312818412811691841390151617610cab57565b9067119000ab100ffbff198201918213600116610cab57565b81810392916000138015828513169184121617610cab57565b90670de0b6b3a764000091828102928184051490151715610cab57565b90671bc16d674ec8000091828102928184051490151715610cab57565b90633b9aca0091828102928184051490151715610cab57565b60008190039190600160ff1b8114600116610cab57600019830503610cab57565b818102929160008212600160ff1b821416610cab578184051490151715610cab57565b811561156d57600160ff1b8114600019831416610cab570590565b634e487b7160e01b600052601260045260246000fd5b9190916115be60208301936115b885516115b06115a66040880192835190612843565b975182519061286c565b905190612414565b92612435565b92670de0b6b3a76400008085121561163c5760008513156116315760008582039512818612811691861390151617610cab5761162561162a92611620611612610b799461160d6102159961288b565b61152f565b670de0b6b3a7640000900590565b6114a2565b612917565b90516125a2565b505050505060001990565b5050505050600090565b90959492936111ef94608093610120840198845260208401526040830152606082015201906108de565b909291828651602088015160408901519060608a01519261169083612ac8565b6116999061185a565b936116a390611443565b906116ad8a612b86565b6116b68b611981565b6116bf91612c38565b6116c88b611981565b6116d184612bb5565b6116da916114a2565b6116e49088612c38565b6116ed91612cb5565b6116f690612cd3565b9361170084612fbb565b611709906114d8565b670de0b6b3a7640000900561171d90612917565b9061172791612c38565b61173090612c67565b611739906119c9565b848661174486612c09565b9061174e91612c38565b9061175891612c38565b611761916119ad565b61176a90612917565b826117758c84612c38565b9061177f91612c38565b61178891612c38565b6117918b611981565b61179a84612bb5565b6117a3916114a2565b6117ac91612cb5565b956117b691612c38565b906117c090611993565b6117c991612c38565b926117d391612c38565b6117dc90612c8e565b906117e6916114a2565b6117ef90612e24565b6117f891612c38565b61180186612b86565b61180a91612cb5565b90611814846119c9565b9061181e916119ad565b90611828916119ad565b60001361184f576102159561184a93610bae9260405196879560208701611646565b61264d565b505050505050600090565b90633b9aca0091828102928184041490151715610cab57565b9081672005fe4f268ea00001918212600116610cab57565b9081670dc5527f642c200001918212600116610cab57565b9081670de0b6b3a764000001918212600116610cab57565b9081670b68df18e471fbff190191821215600116610cab57565b90816714a8454c19e1ac0001918212600116610cab57565b9081670fc10e01578277ff190191821215600116610cab57565b90816703debd083b8c7c0001918212600116610cab57565b9081670295d400ea3257ff190191821215600116610cab57565b9081670157d8b2ecc7080001918212600116610cab57565b90816705310aa7d521300001918212600116610cab57565b9081670de0cc3d1561000001918212600116610cab57565b90816103e801918212600116610cab57565b9081670de0b6b3a763ffff190191821215600116610cab57565b91909160008382019384129112908015821691151617610cab57565b600160ff1b8114610cab5760000390565b939290919280519160208201519060408301519260600151936119fc84612ac8565b611a059061185a565b94611a0f90611443565b9182611a1a88612b86565b611a2489846119ad565b611a2d91612c38565b611a3789846119ad565b611a418385612c38565b611a4a916114a2565b611a54908b612c38565b611a5d91612cb5565b611a6690612cd3565b95611a7086612fbb565b611a79906114d8565b670de0b6b3a76400009005611a8d90612917565b90611a9791612c38565b611aa090612c67565b611aa9906119c9565b8688611ab488612c09565b90611abe91612c38565b90611ac891612c38565b611ad1916119ad565b611ada90612917565b81611ae58a86612c38565b90611aef91612c38565b611af891612c38565b91611b0389826119ad565b91611b0d91612c38565b611b16916114a2565b611b1f91612cb5565b96611b2991612c38565b90611b3390611993565b611b3c91612c38565b92611b4691612c38565b611b4f90612c8e565b90611b59916114a2565b611b6290612e24565b611b6b91612c38565b90611b7590612b86565b611b7e91612cb5565b91611b88906119c9565b90611b92916119ad565b90610215916119ad565b919091611bda6020830191611bd4611bcc84516115b0611bc26040890192835190612843565b965182519061286c565b958551612414565b90612435565b670de0b6b3a7640000918282121561163c576000821315611631576102159461162a93611c106116259361160d610b799661288b565b056119ad565b909291855160208701516040880151606089015191611c3482612ac8565b611c3d9061185a565b92611c4790611443565b93611c5186612b86565b611c5a87611981565b611c6391612c38565b611c6d8983612c38565b611c7688611981565b611c7f91612c38565b611c88906119c9565b86611c938b85612c38565b611c9c90612bde565b90611ca691612c38565b611caf916119ad565b611cb891612cb5565b611cc1906119c9565b611cca90612cd3565b92611cd483612fbb565b611cdd906114d8565b670de0b6b3a76400009005611cf190612917565b90611cfb91612c38565b611d0490612c67565b611d0d906119c9565b8385611d1885612c09565b90611d2291612c38565b90611d2c91612c38565b611d35916119ad565b611d3e90612917565b85611d49888a612c38565b90611d5391612c38565b611d5c91612c38565b90611d6687611981565b611d6f87612bb5565b611d78916114a2565b611d8191612c38565b611d8a91612cb5565b93611d958789612c38565b90611d9f90611993565b611da891612c38565b92611db291612c38565b611dbb90612c8e565b90611dc5916114a2565b611dce90612e24565b611dd791612c38565b611de083612b86565b611de991612cb5565b90611df390611993565b90611dfd916119ad565b60001361184f5761021595611e1f93610bae9260405196879560208701611646565b61276c565b929360009385929185851215611f47575b858512611f285790610bae611e5692604096604051958694602086016111cc565b818592859682811161132557611e6c81856133a0565b92611e7781866133a0565b88611e82828761152f565b13611304575090611e969197969297610d24565b60019591829187805b611eb0575050505050505050505090565b15611f0b575b50869798508192611eca6112998b89610cb0565b99611ed58b886133a0565b9084611ee1888461152f565b13611eff57505089935b88611ef68987610d24565b92019499611e9f565b8b985090955093611eeb565b60141080611f1f575b156112f45788611eb6565b50808310611f14565b935091611f34906125ce565b91611f41848383866124a9565b93611e35565b858513611f5b5790610bae611e5692611212565b935094611f67906123f5565b94611f74848383896124a9565b93611f47565b929190611f90611f8a82846125f8565b856125a2565b938103908111610cab57928103908111610cab5790565b929190611fb7611f8a82846125f8565b938101809111610cab57928101809111610cab5790565b9390929181516020830151916040840151936060015194611fee85612ac8565b611ff79061185a565b9561200190611443565b928361200c89612b86565b6120168a856119ad565b61201f91612c38565b6120298584612c38565b6120338b866119ad565b61203c91612c38565b612045906119c9565b82856120518887612c38565b9061205b91612c38565b9061206591612c38565b61206e916119ad565b61207791612cb5565b612080906119c9565b61208990612cd3565b9661209387612fbb565b61209c906114d8565b670de0b6b3a764000090056120b090612917565b906120ba91612c38565b6120c390612c67565b6120cc906119c9565b87896120d789612c09565b906120e191612c38565b906120eb91612c38565b6120f4916119ad565b6120fd90612917565b816121088b8d612c38565b9061211291612c38565b61211b91612c38565b926121268a826119ad565b9161213091612c38565b612139916114a2565b61214291612c38565b61214b91612cb5565b9661215591612c38565b9061215f90611993565b61216891612c38565b9261217291612c38565b61217b90612c8e565b90612185916114a2565b61218e90612e24565b61219791612c38565b906121a190612b86565b6121aa91612cb5565b90611b9290611993565b9293600093859291858512156122d7575b8585126122b85790610bae6121e692604096604051958694602086016111cc565b8185928596828111611325576121fc81856133c2565b9261220781866133c2565b88612212828761152f565b136113045750906122269197969297610d24565b60019591829187805b612240575050505050505050505090565b1561229b575b5086979850819261225a6112998b89610cb0565b996122658b886133c2565b9084612271888461152f565b1361228f57505089935b886122868987610d24565b9201949961222f565b8b98509095509361227b565b601410806122af575b156112f45788612246565b508083106122a4565b9350946122c4906123f5565b946122d1848784846124a9565b936121c5565b8585136122eb5790610bae6121e692611212565b9350916122f7906125ce565b91612304848484846124a9565b936122d7565b61237a6123756102159361236f61236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b9d6125f8565b612fbb565b97612fbb565b6114d8565b05612917565b612414565b612457565b906114a2565b6114bb565b611552565b6123ae6123756123a96713a04bbdfdc9be886123a3671bc16d674ec80000956114bb565b056119c9565b612e24565b0590565b600081126123bd5790565b60405162461bcd60e51b815260206004820152601060248201526f746f55696e743a206e6567617469766560801b6044820152606490fd5b6103e79081810291818304149015176001161561026b576103e8900490565b81810291818304149015176001161561026b57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517821515161561026b570490565b6706f05b59d3b2000090808202918204146001161561026b57670de0b6b3a7640000900490565b670de0b6b3a76400009081810291818304149015176001161561026b57671bc16d674ec80000900490565b90928282101561255d57610215936125269284670de0b6b3a764000091826124d18383612435565b1061254a57506001600160ff1b039590505b8351916124f96124f38385612414565b85612435565b1061252b57506001600160ff1b0392612520925090505b6040602082015191015190612843565b926119ad565b6119ad565b61252092611bd461253f9261254494612414565b61288b565b91612510565b6125579161253f91612435565b946124e3565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b81810291818304149015176001161561026b576001670de0b6b3a7640000600019830104019015150290565b6103e99081810291818304149015176001161561026b5760016103e8600019830104019015150290565b90670de0b6b3a7640000918281029281840414901517811515161561026b57600190600019830104019015150290565b6101008183031261026b57805192610215602083015193606060408501519401610ea3565b91906103e89260009360009183821161274b57612669816133e2565b6126738583613521565b600061267f828461152f565b1361272c5750612690859695610d14565b60019460009186805b6126aa575b50505050505050509050565b15612707575b50859697985080916126c56112998b88610cb0565b996126d08b87613521565b90836126dc878461152f565b136126fb57505089925b876126f18886610d24565b9201939998612699565b8b9750909450926126e6565b861080612721575b1561271a57886126b0565b808061269e565b50610100821061270f565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e89260009360009183821161274b5761278881613543565b61279285836136b3565b600061279e828461152f565b1361272c57506127af859695610d14565b60019460009186805b6127c85750505050505050509050565b15612825575b50859697985080916127e36112998b88610cb0565b996127ee8b876136b3565b90836127fa878461152f565b1361281957505089925b8761280f8886610d24565b92019399986127b8565b8b975090945092612804565b861080612838575b1561271a57886127ce565b50610100821061282d565b9061284d90612ac8565b633b9aca0090818102918183041490151715610cab5761021591612414565b61021591612365670de0b6b3a764000061235f61235a61236a95612fbb565b6706f05b59d3b20000811461291157670de0b6b3a764000090818112156128ff5780156128ed578060011b908105600203610cab576128c990612cd3565b906713a04bbdfdc9be8891808302928305146001161561026b5761021591056119c9565b6040516322ed598560e21b8152600490fd5b6040516307a0212760e01b8152600490fd5b50600090565b680248ce36a70cb26b3e1981131561291157680755bf798b4a1bf1e5811215612a67576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b91906101208382031261026b57825192602081015192610215604083015193608060608501519401610ea3565b60b581600160881b811015612b6f575b80690100000000000000000062010000921015612b62575b65010000000000811015612b55575b6301000000811015612b48575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b91612b0c565b60201c9160101b91612aff565b60401c9160201b91612af0565b5068b500000000000000009050608082901c612ad8565b671bc16d674ec8000081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e881810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e88082029160016000198210179181840514901517161561026b57670de0b6b3a7640000900590565b6713a04bbde78cc40081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b90911317161561026b57670de0b6b3a7640000900590565b670de0b6b3a764000090818102918205146001161561026b57671bc16d674ec80000900590565b670de0b6b3a764000090818102918205146001161561026b576713a04bbde78cc400900590565b670de0b6b3a76400009081810291820514821515161561026b570590565b600081128015612e13575b612e015780156128ff57671bc16d674ec8000081146128ed57670de0b6b3a76400008112908115612df257905b612d1482613189565b80156128ff57612d7d612d41612d3c612d37612d32612d8295612fbb565b61324a565b612ac8565b6114f5565b611620612d55612d50836131b4565b611873565b612d77612d72612d6c612d67866131df565b61188b565b856132c1565b6118a3565b90613228565b613272565b916000905b60028210612da257505015612d995790565b610215906119c9565b9092612dea81612de4612dba85611620600196612e24565b612d77612dda612dd5611625612dd087806132c1565b6119c9565b61329a565b61236f83866132c1565b906119ad565b930190612d87565b612dfb90611466565b90612d0b565b604051632d0483c560e21b8152600490fd5b50671bc16d674ec800008113612cde565b8015612f3757675698eef06670000081121561291157675698eef0666fffff19811315612f2a576000612f1a612e598361315c565b612ee2611625612e73612e6e612d728561247e565b613209565b92612526612f15612f10612f09612f03612efe612ef8612ef3612eed612ee88d612ee2612edd612ed7612ed2612d6c612ecd612ec7612ec2612ebc612eb78a6132e2565b6118bb565b896132c1565b6118d5565b876132c1565b6118ed565b611907565b836132c1565b61191f565b906132c1565b611939565b8c6132c1565b611951565b8a6132c1565b611969565b886132c1565b93806132c1565b61150e565b611489565b9112156102155761021590611466565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b61237a61237561021593612de461236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b15612f8a57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b886428490612fe760008213612f83565b711340daa0d5f769dba1915cef59f0815a55066130038261330d565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b600160ff1b8114613177576000811215610215571960010190565b604051634d2d75b160e01b8152600490fd5b670de0b6b3a76400009081810291818305149015176001161561026b57671bc16d674ec80000900590565b6703c1665c7aab20009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b669f32752462a0009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b6001811515161561026b576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029181830514901517821515161561026b570590565b671bc16d674ec7ffff1981810291600191830514161561026b57670de0b6b3a7640000900590565b6709d028cc6f205fff1981810291600191830514161561026b57670de0b6b3a7640000900590565b670fa8cedfc2adddfa90808202918205146001161561026b57670de0b6b3a7640000900590565b81810291818305149015176001161561026b57670de0b6b3a7640000900590565b67025f0fe105a314009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b613318811515612f83565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b906133966102159260208082518301019101612628565b93919290506124a9565b906133b76102159260208082518301019101612628565b9390509190916124a9565b906133d96102159260208082518301019101612628565b939290506124a9565b8051810160200190602001906133f791612a9b565b809193925051906020810151604082015191606001519261341783612ac8565b6134209061185a565b9361342a90611443565b9061343486612b86565b61343d87611981565b61344691612c38565b61344f87611981565b61345884612bb5565b613461916114a2565b61346b9089612c38565b61347491612cb5565b61347d90612cd3565b9361348784612fbb565b613490906114d8565b670de0b6b3a764000090056134a490612917565b906134ae91612c38565b6134b790612c67565b6134c0906119c9565b84866134cb86612c09565b906134d591612c38565b906134df91612c38565b6134e8916119ad565b6134f190612917565b826134fc8884612c38565b9061350691612c38565b61350f91612c38565b61351887611981565b611b0d84612bb5565b906135386102159260208082518301019101612a9b565b9493909291506119da565b80518101602001906020019061355891612a9b565b809192935051602082015190604083015192606001519361357884612ac8565b6135819061185a565b9461358b90611443565b9161359587612b86565b61359e88611981565b6135a791612c38565b6135b18383612c38565b6135ba89611981565b6135c391612c38565b6135cc906119c9565b846135d78585612c38565b6135e090612bde565b906135ea91612c38565b6135f3916119ad565b6135fc91612cb5565b613605906119c9565b61360e90612cd3565b9461361885612fbb565b613621906114d8565b670de0b6b3a7640000900561363590612917565b9061363f91612c38565b61364890612c67565b613651906119c9565b858761365c87612c09565b9061366691612c38565b9061367091612c38565b613679916119ad565b61368290612917565b8361368d898b612c38565b9061369791612c38565b6136a091612c38565b906136aa88611981565b61213085612bb5565b906136ca6102159260208082518301019101612a9b565b9493909250611fce56fea2646970667358221220f3e875cd9c43c4535da38090630f644037f96036f7dad55519e2d7d792047e4b64736f6c6343000816003360803461007457601f611bc438819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051611b3490816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b6109e4565b6109bb565b610814565b6107da565b610674565b6103dc565b6102e1565b61023d565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101df565b838082518301019101610a17565b9061010d6100ff600435610b92565b868082518301019101610a32565b92610d8d565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761015057604052565b61011e565b60c0810190811067ffffffffffffffff82111761015057604052565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101bd601f8201601f191660200184610171565b8294818452818301116101da578281602093846000960137010152565b600080fd5b9080601f830112156101da578160206101fa93359101610193565b90565b919082519283825260005b848110610229575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610208565b346101da5760003660031901126101da57604051604081019080821067ffffffffffffffff8311176101505761029a916040526009815268131bd9d39bdc9b585b60ba1b60208201526040519182916020835260208301906101fd565b0390f35b906040516080810181811067ffffffffffffffff821117610150576040526060600382948054845260018101546020850152600281015460408501520154910152565b346101da5760203660031901126101da5760043560005260016020526101c0604060002061030e8161029e565b9061031b6004820161029e565b906103bd61032b6008830161029e565b610393600c84015493600d60018060a01b03910154169461036d6040518098606080918051845260208101516020850152604081015160408501520151910152565b80516080880152602081015160a0880152604081015160c08801526060015160e0870152565b80516101008601526020810151610120860152604081015161014086015260600151610160850152565b6101808301526101a0820152f35b6001600160a01b038116036101da57565b346101da576060806003193601126101da576103f96004356103cb565b6024356044359167ffffffffffffffff83116101da576104206104829336906004016101df565b8161043c61042d85610b92565b60208082518301019101610a32565b60005490949061046290610456906001600160a01b031681565b6001600160a01b031690565b60405180809881946333854efd60e21b8352600483019190602083019252565b03915afa801561061457600091829583926105d9575b50806020806104ac93518301019101610a17565b939194909682861160001461054c5750916104ed826104e8836104e36104fe976104d96104f5988c610aa3565b908c0151906112af565b6112af565b6112db565b505b83610afe565b93828685610d8d565b9384601319129283610541575b61029a9394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b60148612935061050b565b90929091508187111561057b57610575826104e8836104e36104fe976104d96104f5988e610aa3565b506104ef565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9095506104ac92506106019150833d851161060d575b6105f98183610171565b810190610a17565b95919290959190610498565b503d6105ef565b610a81565b9060606003198301126101da57600435610632816103cb565b916024359160443567ffffffffffffffff928382116101da57806023830112156101da5781600401359384116101da57602484830101116101da576024019190565b346101da5761068236610619565b600054929350916001600160a01b031633036107c85761078661077e61042d610779956106c0608095610743976106b7610b67565b50810190610e8c565b6020819b949a9399929b01516106e0866000526001602052604060002090565b55604081015160046106fc876000526001602052604060002090565b015580516008610716876000526001602052604060002090565b01556060810151600c610733876000526001602052604060002090565b015501516001600160a01b031690565b600d610759846000526001602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610b92565b848385610d8d565b92836013191291826107bd575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b601485129250610793565b604051636853cba760e01b8152600490fd5b346101da5760606107ea36610619565b818094509492940103126101da5780359061078661077e61042d6040602085013594013595610b92565b346101da5761082236610619565b6000549093906001600160a01b0390811633036107c857610863610456600d610855876000526001602052604060002090565b01546001600160a01b031690565b9116036109a95761087683820182610b32565b61087f81610b47565b600181036108b857506108a261089d6108b392600c94953691610193565b610fc3565b926000526001602052604060002090565b01555b005b6108c181610b47565b600381036108fd5750906108e56108e06108f8936108b6953691610193565b610f19565b9290916000526001602052604060002090565b610f41565b61090681610b47565b6004810361094057509060046109276108e061093a946108b6963691610193565b9390926000526001602052604060002090565b01610f41565b61094981610b47565b6002810361096a57509060086109276108e061093a946108b6963691610193565b80610976600592610b47565b03610997576107596108a2610992600d936108b6963691610193565b610ef1565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101da5760003660031901126101da576000546040516001600160a01b039091168152602090f35b346101da5760203660031901126101da5761029a610a03600435610b92565b6040519182916020835260208301906101fd565b908160609103126101da578051916040602083015192015190565b908160a09103126101da57608060405191610a4c83610134565b805183526020810151602084015260408101516040840152606081015160608401520151610a79816103cb565b608082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610ab057565b610a8d565b91908201809211610ab057565b90671bc16d674ec8000060008382039312818412811691841390151617610ab057565b9067119000ab100ffbff198201918213600116610ab057565b81810392916000138015828513169184121617610ab057565b600160ff1b8114610ab05760000390565b600611156101da57565b908160209103126101da57356101fa81610b28565b60061115610b5157565b634e487b7160e01b600052602160045260246000fd5b60405190610b7482610134565b60006080838281528260208201528260408201528260608201520152565b610b9a610b67565b816000526001602052610bb8610bb3604060002061029e565b610ff8565b9160208201928352806000526001602052610bdc610bb3600860406000200161029e565b8252600c610c1d610c05610bb36004610bff866000526001602052604060002090565b0161029e565b92604085019384526000526001602052604060002090565b015490606083019182526040519383516020860152516040850152516060840152516080830152608060018060a01b039101511660a082015260a081526101fa81610155565b9081672005fe4f268ea00001918212600116610ab057565b9081670dc5527f642c200001918212600116610ab057565b9081670de0b6b3a764000001918212600116610ab057565b9081670b68df18e471fbff190191821215600116610ab057565b90816714a8454c19e1ac0001918212600116610ab057565b9081670fc10e01578277ff190191821215600116610ab057565b90816703debd083b8c7c0001918212600116610ab057565b9081670295d400ea3257ff190191821215600116610ab057565b9081670157d8b2ecc7080001918212600116610ab057565b90816705310aa7d521300001918212600116610ab057565b9081670de0cc3d1561000001918212600116610ab057565b91909160008382019384129112908015821691151617610ab057565b909282821015610e47576101fa93610e0a9284670de0b6b3a76400009182610db5838361130b565b10610e3457506001600160ff1b039590505b835191610ddd610dd7838561132d565b8561130b565b10610e0f57506001600160ff1b0392610e04925090505b6040602082015191015190611286565b92610d71565b610d71565b610e0492610e23610e2992610e2e9461132d565b9061130b565b6110b3565b91610df4565b610e4191610e299161130b565b94610dc7565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b80910361010081126101da5781359260208301359260a0604082013593605f1901126101da5760e060405191610ec183610134565b606081013583526080810135602084015260a0810135604084015260c081013560608401520135610a79816103cb565b6040818051810103126101da5780610f0e60206040930151610b28565b0151610456816103cb565b6060818051810103126101da57610f336020820151610b28565b606060408201519101519091565b919042821115610fb157610f57610bb38461029e565b9081845542600385015542830391838311610ab057610f7591610afe565b428314610f9b57600160ff1b8114600019831416610ab057600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101da5780610fe060206040930151610b28565b015190565b81810292918115918404141715610ab057565b606081015160208201518082146110735780421160001461106b57905b8103908111610ab05760408201908151600081136000146110485750611042906101fa9351925190610fe5565b90610ab5565b9261105f9250611059905193610b17565b90610fe5565b8103908111610ab05790565b504290611015565b50505190565b90633b9aca0091828102928184051490151715610ab057565b60008190039190600160ff1b8114600116610ab057600019830503610ab057565b6706f05b59d3b20000811461128057670de0b6b3a76400008082121561122a57811561124b5760018260011b916002938305600203610ab05760008312801561126f575b61125d57821561122a57671bc16d674ec80000831461124b57821291821561123c57925b611124846118db565b801561122a5761119661115561115061114b61114661119b959997969961146f565b61199c565b611379565b611079565b61119161116961116483611906565b610c63565b61118b61118661118061117b86611931565b610c7b565b85611a13565b610c93565b9061197a565b610afe565b6119c4565b936000925b8184106111d257505050506101fa916111bf916000146111c4576118b4565b610b17565b6111cd90610b17565b6118b4565b90916112208661121a6111ea8561119186999b611610565b61118b61120a6112056112006111bf8780611a13565b611730565b6119ec565b6112148386611a13565b90610afe565b90610d71565b95019291906111a0565b6040516307a0212760e01b8152600490fd5b61124590610ac2565b9261111b565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec8000083136110f7565b50600090565b9061129090611379565b633b9aca0090818102918183041490151715610ab0576101fa9161132d565b8181029181830414901517600116156101da576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101da57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101da570490565b8181029181830414901517600116156101da57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517600116156101da57671bc16d674ec80000900490565b60b581600160881b811015611420575b80690100000000000000000062010000921015611413575b65010000000000811015611406575b63010000008110156113f9575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916113bd565b60201c9160101b916113b0565b60401c9160201b916113a1565b5068b500000000000000009050608082901c611389565b1561143e57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642849061149b60008213611437565b711340daa0d5f769dba1915cef59f0815a55066114b782611a5f565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b801561172357675698eef06670000081121561128057675698eef0666fffff1981131561171657600061170661164583611ad1565b6116ce61120061165f61165a6111868561134e565b61195b565b92610e0a6117016116fc6116f56116ef6116ea6116e46116df6116d96116d48d6116ce6116c96116c36116be6111806116b96116b36116ae6116a86116a38a611a34565b610cab565b89611a13565b610cc5565b87611a13565b610cdd565b610cf7565b83611a13565b610d0f565b90611a13565b610d29565b8c611a13565b610d41565b8a611a13565b610d59565b88611a13565b9380611a13565b611092565b610ae5565b9112156101fa576101fa90610ac2565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b680248ce36a70cb26b3e1981131561128057680755bf798b4a1bf1e5811215611880576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be889080820291820514600116156101da57670de0b6b3a7640000900590565b670de0b6b3a7640000908181029181830514901517600116156101da57671bc16d674ec80000900590565b6703c1665c7aab2000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b669f32752462a000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b600181151516156101da576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a764000090818102918183051490151782151516156101da570590565b671bc16d674ec7ffff198181029160019183051416156101da57670de0b6b3a7640000900590565b6709d028cc6f205fff198181029160019183051416156101da57670de0b6b3a7640000900590565b670fa8cedfc2adddfa9080820291820514600116156101da57670de0b6b3a7640000900590565b8181029181830514901517600116156101da57670de0b6b3a7640000900590565b67025f0fe105a31400908181029181830514901517600116156101da57670de0b6b3a7640000900590565b611a6a811515611437565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b600160ff1b8114611aec5760008112156101fa571960010190565b604051634d2d75b160e01b8152600490fdfea2646970667358221220b596d744fe988e0f66eb3212b01d8a9e660acea43730ff108a9b5edd5f05d2b364736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a264697066735822122080ef7b7113c1a664935a1e4bba569dbddec7a36609e9f63a79614c4a1438b85d64736f6c63430008160033","sourceMap":"88:1011:78:-:0;;;1594:4:0;88:1011:78;;1594:4:0;88:1011:78;;;1594:4:0;88:1011:78;378:11:59;88:1011:78;378:11:59;:4:31;:11:59;88:1011:78;378:11:59;;362:159:79;378:11:59;;362:159:79;378:11:59;;;;362:159:79;378:11:59;509:4:79;362:159;378:11:59;;362:159:79;378:11:59;;;;;;;;509:4:79;378:11:59;;;;;;;;;;;;554:3:79;378:4:31;554:3:79;378:11:59;;554:3:79;586;378:4:31;362:159:79;378:11:59;;586:3:79;378:11:59;634:68:79;554:3;378:11:59;362:159:79;378:11:59;;;:::i;:::-;634:68:79;;:::i;:::-;378:11:59;:::i;:::-;88:1011:78;;;;;;;;;;;;;378:11:59;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;;;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;378:11:59;;;;-1:-1:-1;;;;;378:11:59;;;;;;;;;;:::o;:::-;88:1011:78;;378:11:59;;;;:::i;:::-;362:159:79;378:11:59;;;;;;;;;;;88:1011:78;378:11:59;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;378:11:59;634:68:79;-1:-1:-1;378:11:59;;-1:-1:-1;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;378:11:59;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;;;634:68:79;378:11:59;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:68:79;378:11:59;:::o;:::-;;;;-1:-1:-1;378:11:59;;;;;634:68:79;378:11:59;;-1:-1:-1;;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:68:79;378:11:59;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5320:526:37;378:11:59;;2443:12:37;;;378:11:59;;;2457:10:37;;;;378:11:59;;;2497:31:37;;;;:::i;:::-;1133:19:18;;;;;:::i;:::-;303:29:45;;;:::i;:::-;378:4:31;;1399:8:18;;;;:::i;:::-;:12;;;:::i;:::-;88:1011:78;1391:36:18;;;:::i;:::-;631:21;;;;:::i;:::-;;;;:::i;:::-;2657:36:37;;;:::i;:::-;2656:45;;;:::i;:::-;:68;;;;:::i;:::-;1009:16;;;:::i;:::-;1053:24;;;:::i;:::-;88:1011:78;;;;;;;1133:19:18;;;;:::i;:::-;378:11:59;;;;;;;3255:31:37;;;;;:::i;:::-;1133:19:18;;;;:::i;:::-;303:29:45;;;:::i;:::-;1399:8:18;;;;:::i;:::-;:12;;;:::i;:::-;88:1011:78;1391:36:18;;;:::i;:::-;631:21;;;;:::i;:::-;;;;:::i;:::-;3415:36:37;;;:::i;:::-;3414:45;;;:::i;:::-;:68;;;;:::i;:::-;1444:16;;;:::i;:::-;1488:24;;;:::i;:::-;378:11:59;;;799:19:18;;;;:::i;:::-;;;;;:::i;:::-;5620:111:37;;;;;;;;:::i;:::-;5741:55;;;;;;:::i;:::-;2457:10;88:1011:78;;2443:12:37;5809:34;;;88:1011:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;88:1011:78;;;;;;;;5809:34:37;;;88:1011:78;;5809:34:37;:::i;:::-;5320:526;:::o;88:1011:78:-;378:11:59;;;88:1011:78;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;1905:7:21;88:1011:78;;;;;;;;:::o;:::-;;2650:19:21;;;88:1011:78;;;;;;;;;:::o;:::-;;;2590:20:21;88:1011:78;;;;;;;;:::o;:::-;;2529:21:21;;;88:1011:78;;;;;;;;;:::o;:::-;;;2463:18:21;88:1011:78;;;;;;;;:::o;:::-;;2396:19:21;;;88:1011:78;;;;;;;;;:::o;:::-;;;2331:17:21;88:1011:78;;;;;;;;:::o;:::-;;;2265:18:21;88:1011:78;;;;;;;;:::o;:::-;;;2205:20:21;88:1011:78;;;;;;;;:::o;:::-;;;2852:20:21;88:1011:78;;;;;;;;:::o;:::-;;;2980:18:21;88:1011:78;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;2719:1063:44:-;;;2907:6;;;88:1011:78;;;3754:21:44;2955:12;3754:13;2955:12;378:4:31;;965:21:18;;;;;;:::i;:::-;3003:42:44;378:4:31;;-1:-1:-1;;;;;;3076:12:44;2999:197;-1:-1:-1;2999:197:44;378:11:59;;631:21:18;965;631;;;;:::i;:::-;965;;:::i;:::-;3222:117:44;378:4:31;;-1:-1:-1;;;;;;3076:12:44;3690:45;;-1:-1:-1;3205:453:44;-1:-1:-1;3205:453:44;3724:10;3710:12;;;378:11:59;3724:10:44;;378:11:59;3690:45:44;;:::i;:::-;3754:13;;:::i;:::-;:21;:::i;3205:453::-;3690:45;631:21:18;;965;631;3431:216:44;631:21:18;;:::i;:::-;965;;:::i;:::-;3431:216:44;:::i;:::-;3205:453;;;2999:197;3128:57;965:21:18;;;;:::i;3128:57:44:-;2999:197;;;88:1011:78;;;-1:-1:-1;;;88:1011:78;;;;;;;;;;;;;;;;;;;;5848:1096:37;6037:29;;5848:1096;6037:29;;5848:1096;;6173:1;6153:21;;;6173:1;;;6193:21;;;;;;6149:612;;6789:45;;6149:612;6770:171;6149:612;;;;;88:1011:78;;6789:45:37;;;;;;88:1011:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;;;;;88:1011:78;;;378:11:59;88:1011:78;;;;6789:45:37;;378:11:59;;6789:45:37;;;;;;:::i;:::-;6770:171;:::i;6186:274::-;6238:27;;;;;:::i;:::-;6299:150;;;;;;;:::i;:::-;6186:274;;;6149:612;6489:21;;;;;6149:612;;6789:45;;6149:612;6770:171;6149:612;;;;;;6482:273;6549:4;;;;8417:611:18;;;;;;;;;;;;;;;;;;6555:4:37;378:11:59;;8417:611:18;;;;;;;;6594:150:37;;;;;;;:::i;:::-;6482:273;;;8417:611:18;;;;88:1011:78;;378:4:31;88:1011:78;;;;;;;;;;;;;;;:::o;:::-;;317:4:31;88:1011:78;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;88:1011:78;;378:11:59;88:1011:78;;;-1:-1:-1;;88:1011:78;;;;;:::o;:::-;;1774:3:21;88:1011:78;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;;88:1011:78;;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;88:1011:78;;-1:-1:-1;;88:1011:78;;;;;;;:::o;:::-;378:11:59;;;88:1011:78;;;;;;;;2046:20:21;-1:-1:-1;;;2046:20:21;;;;;;;:::o;7612:209::-;7796:11;7768:13;7737:6;2046:20;7694:7;1949;7612:209;7694:7;:::i;:::-;88:1011:78;7737:6:21;:::i;:::-;7768:13;:::i;:::-;7796:11;:::i;:::-;88:1011:78;7612:209:21;:::o;7135:175:44:-;7240:1;7235:6;;88:1011:78;;7135:175:44;:::o;88:1011:78:-;;;-1:-1:-1;;;88:1011:78;;;;;;;;;;;;-1:-1:-1;;;88:1011:78;;;;;;;;;;;;;;;;;;;;:::o;:::-;;317:4:31;88:1011:78;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;88:1011:78;;;;;;;;;;;;;:::o;9402:337:21:-;1324:9;9472:21;;9468:43;;1905:7;9525:8;;;;9521:31;;9566:6;;9562:37;;88:1011:78;;;;9629:1:21;;88:1011:78;;;9629:1:21;88:1011:78;;;-1:-1:-1;5990:5:21;;:20;;;;9402:337;5986:46;;6046:6;;6042:29;;6090:7;6085:12;;6081:43;;6178:7;;;6177:23;;;;;;1053:19:23;;;:::i;:::-;6257:13:21;;6253:36;;6632:35;6363:55;6370:33;958:19:23;6311:16:21;958:19:23;6311:16:21;;;;;;:::i;:::-;958:19:23;:::i;:::-;6370:33:21;:::i;:::-;6363:55;:::i;:::-;1053:19:23;6481:29:21;958:19:23;;;:::i;:::-;6481:29:21;:::i;:::-;6547:49;958:19:23;6565:29:21;958:19:23;;;:::i;:::-;6565:29:21;:::i;:::-;958:19:23;;:::i;:::-;6547:49:21;:::i;:::-;1053:19:23;;:::i;:::-;6632:35:21;:::i;:::-;958:19:23;:::i;:::-;6689:9:21;-1:-1:-1;6708:336:21;6715:5;;;;;;7058:16;;;;9728:4;7058:16;958:19:23;7058:16:21;;;;;958:19:23;:::i;:::-;9728:4:21;:::i;7058:16::-;7072:2;;;:::i;:::-;958:19:23;:::i;6708:336:21:-;6749:7;;6951:23;6749:7;1053:19:23;6749:12:21;:7;;;;;;:::i;:12::-;6891:42;958:19:23;6848:14:21;6790:16;958:19:23;;;;:::i;6790:16:21:-;6848:14;:::i;:::-;958:19:23;:::i;:::-;;;;;:::i;:::-;6891:42:21;;:::i;1053:19:23:-;6951:23:21;;:::i;:::-;88:1011:78;;;6708:336:21;;;;6253:36;88:1011:78;;-1:-1:-1;;;6279:10:21;;;;;6177:23;6193:7;;;:::i;:::-;6177:23;;;6081:43;88:1011:78;;-1:-1:-1;;;6106:18:21;;;;;5986:46;88:1011:78;;-1:-1:-1;;;6019:13:21;;;;;5990:20;5999:11;6003:7;5999:11;;5990:20;;9468:43;9495:16;9509:1;9495:16;:::o;337:213:45:-;;464:27;337:213;464:27;:::i;:::-;494:7;88:1011:78;;;;;;;;;;;;;;;631:21:18;;;:::i;8282:752::-;;378:4:31;8417:611:18;;;;;;;;;;;;;;;;;;;;378:11:59;;;8417:611:18;;;;;;;;8282:752;:::o;:::-;8417:611;;;;;;;;;;;;;;;;;378:4:31;:11:59;;8417:611:18;;;;;;;;8282:752;:::o;7741:535::-;378:4:31;7878:392:18;;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;6255:3:37;7878:392:18;;;;;;;;;;;;;;;;;6260:4:37;7878:392:18;;7741:535;:::o;:::-;7878:392;;;;;;;;;;;;;;;;378:4:31;7878:392:18;;7741:535;:::o;:::-;1324:9:21;7878:392:18;;;;;;;;;;;;;378:4:31;7878:392:18;;7741:535;:::o;:::-;1905:7:21;7878:392:18;;;;;;;;;;;;;;;;;317:4:31;7878:392:18;;7741:535;:::o;88:1011:78:-;;;;;;;;;;:::o;1009:1952:33:-;378:11:59;;1009:1952:33;;378:11:59;;1239:13:33;;;1235:66;;1632:15;;;;:::i;:::-;1674;;;;:::i;:::-;378:11:59;1699:25:33;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;;:::i;:::-;6918:17:37;;378:11:59;;6918:17:37;;;;;1978:981:33;1009:1952;;;;;;;;;;:::o;1978:981::-;;;;;2909:48;;;;;;;2123:13;2122:19;2123:13;;;;:::i;:::-;88:1011:78;;;;2122:19:33;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;378:11:59;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;88:1011:78;;1978:981:33;;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;653:2:31;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;;;;;;2931:26;88:1011:78;2931:26:33;;2909:48;;1695:115;88:1011:78;;-1:-1:-1;;;1747:56:33;;;;;88:1011:78;;;;;;;;;;1747:56:33;1235:66;88:1011:78;;-1:-1:-1;;;1261:40:33;;;;;88:1011:78;;;;;;;;;;;1747:56:33;4268:1017:21;4348:10;;4344:26;;1500:10;4384:26;;;4380:40;;-1:-1:-1;;4434:26:21;;;4430:42;;-1:-1:-1;958:19:23;4495:11:21;;;:::i;:::-;5188:10;5094:60;1053:19:23;4548:38:21;965:21:18;;;:::i;4548:38:21:-;1053:19:23;:::i;:::-;958;5095:51:21;:42;958:19:23;;4962:98:21;958:19:23;4984:74:21;958:19:23;5006:50:21;958:19:23;;5028:26:21;958:19:23;4762:100:21;958:19:23;4784:76:21;958:19:23;4806:52:21;958:19:23;4828:28:21;958:19:23;;;:::i;:::-;4828:28:21;:::i;:::-;958:19:23;;:::i;:::-;4806:52:21;:::i;:::-;958:19:23;;:::i;:::-;4784:76:21;:::i;958:19:23:-;4762:100:21;:::i;:::-;958:19:23;;:::i;:::-;5028:26:21;:::i;:::-;958:19:23;;:::i;:::-;5006:50:21;:::i;:::-;958:19:23;;:::i;:::-;4984:74:21;:::i;:::-;958:19:23;;:::i;:::-;4962:98:21;:::i;:::-;958:19:23;;:::i;:::-;;;;:::i;:::-;5095:42:21;:::i;:::-;:51;:::i;958:19:23:-;5253:25:21;5254:9;-1:-1:-1;;;5267:7:21;;;:::i;4430:42::-;4462:10;1949:7;4462:10;:::o;4344:26::-;4360:10;1905:7;4360:10;:::o;11969:3353:18:-;12038:3278;;-1:-1:-1;;;12038:3278:18;;;;;11969:3353;12038:3278;;;;;;;;11969:3353;12038:3278;;;;;;11969:3353;12038:3278;;;;;;11969:3353;12038:3278;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11969:3353;:::o;12038:3278::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12038:3278:18;;-1:-1:-1;12038:3278:18;;;;;;88:1011:78;;;;:::o;:::-;;;-1:-1:-1;;;88:1011:78;;;;;;;;;;;;-1:-1:-1;;;88:1011:78;;;;;;;4596:2947:18;7380:72;4596:2947;4688:27;4700:1;4696:5;;4688:27;:::i;:::-;7125:43;5125:16;;;:::i;:::-;5145:2;88:1011:78;;;5175:3:18;88:1011:78;;378:11:59;5175:3:18;378:11:59;88:1011:78;;;;7232:71:18;88:1011:78;;6411:30:18;88:1011:78;6343:32:18;88:1011:78;6274:33:18;88:1011:78;6205:33:18;88:1011:78;6136:33:18;88:1011:78;6068:32:18;88:1011:78;6001:31:18;88:1011:78;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;88:1011:78;;;;;;;;;;;;;;;;5533:32:18;88:1011:78;5465:32:18;88:1011:78;5398:31:18;88:1011:78;;;;;;;;;;;;;;;;;;;;;;;;6455:304:18;88:1011:78;;;;;4596:2947:18;:::o;71:276:23:-;-1:-1:-1;;;138:25:23;;134:43;;195:1;187:9;;195:1;;;208:61;;;;71:276::o;134:43::-;88:1011:78;;-1:-1:-1;;;172:5:23;;;;;1487:3103:18;-1:-1:-1;;1713:26:18;;;1709:40;;1948:21;1943:26;;;1939:54;;2266:5;378:11:59;88:1011:78;378:11:59;88:1011:78;4502:49:18;2559:29;88:1011:78;3136:40:18;88:1011:78;378:11:59;2591:5:18;378:11:59;;;;88:1011:78;;;;;;;;;3074:35:18;88:1011:78;2874:31:18;88:1011:78;;;;;;3649:35:18;88:1011:78;;;;3508:34:18;88:1011:78;;;;3371:32:18;88:1011:78;;;;;;;;;;;;;;;;;;;;;;;;;;2941:32:18;88:1011:78;;;;;;;;;;;;;;;3699:327:18;88:1011:78;;4564:3:18;88:1011:78;378:11:59;1487:3103:18;:::o;1939:54::-;88:1011:78;;-1:-1:-1;;;1971:22:18;;88:1011:78;1971:22:18;;;88:1011:78;;;;;;-1:-1:-1;;;88:1011:78;;;;;;1747:56:33;405:480:23;2046:20:21;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;2717:18:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;-1:-1:-1;;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;-1:-1:-1;;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;3113:20:21;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;503:380;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;1905:7:21;503:380:23;;;;;;;;;;;;;;;;;6090:7:21;503:380:23;;405:480;:::o;:::-;2913:18:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;3047:17:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;503:380;;;;;;;;;;405:480;:::o;:::-;1905:7:21;503:380:23;;;;;;;;;;;;;;;;;;;;405:480;:::o;15328:575:18:-;15397:27;15405:5;;;15397:27;:::i;:::-;15435:462;378:11:59;15435:462:18;;;;;;;;;;378:11:59;;;;;15435:462:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:575;:::o;88:1011:78:-;378:11:59;;;5076:71:37;;88:1011:78;;;;;;;;;5076:71:37;;;88:1011:78;;;;;;;;;;;;;;;;378:11:59;;;;:::i;:::-;88:1011:78;;;;;;;;;;5076:71:37;88:1011:78;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;88:1011:78;;;;5168:70:37;88:1011:78;;;;;5168:70:37;:::i","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e414620000ac5750508063110908dd14620000a6578063620a260714620000a0578063acc9d6b7146200009a578063ba414fa61462000094578063e0d7d0e9146200008e578063e21485ad14620000885763fa7626d4146200008257600080fd5b62000a52565b6200091a565b620008fa565b620008d1565b62000783565b6200075f565b620005a5565b346200057557816003193601126200057557620000c86200100d565b805161106b8082019067ffffffffffffffff9280831084841117620005515780620000fb62001669948486843962000b35565b039086f080156200052957601580546001600160a01b0319166001600160a01b0390921691909117905583519181830183811085821117620005515783926200014692843962000b81565b039084f080156200052957601680546001600160a01b0319166001600160a01b039283161790556015546200018391165b6001600160a01b031690565b803b15620005905782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af18015620005295762000579575b506016548490620001e2906001600160a01b031662000177565b91823b156200057557845190815230600482015268056bc75e2d631000006024820152918290604490829084905af18015620005295762000557575b5060155462000236906001600160a01b031662000177565b6016546200024d906001600160a01b031662000177565b90835191610597908184019284841086851117620005515784936200029a936200a95986396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200052957601480546001600160a01b0319166001600160a01b039092169190911790558151612f21808201908282108483111762000551578291620002f091620026d484396000815260200190565b039084f080156200052957601380546001600160a01b0319166001600160a01b03929092169182179055620003259062000177565b825190611bc48083019183831085841117620005515783926200035b9262008d9585396001600160a01b03909116815260200190565b039084f080156200052957601780546001600160a01b0319166001600160a01b03929092169182179055620003909062000177565b8251916137a080840192909183118484101762000551578392620003c792620055f585396001600160a01b03909116815260200190565b039083f09081156200052957620003fe6200046a9260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b60155462000415906001600160a01b031662000177565b6013546200042c906001600160a01b031662000177565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200052957620004e29385936200052f575b506016546200049b906001600160a01b031662000177565b6013549091908790620004b7906001600160a01b031662000177565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200052957620004f6578280f35b816200051a92903d1062000521575b62000511818362000adc565b81019062000bc1565b5081808280f35b503d62000505565b62000b75565b6200054990843d8611620005215762000511818362000adc565b508662000483565b62000a77565b80620005676200056e9262000a8d565b8062000594565b836200021e565b5080fd5b8062000567620005899262000a8d565b84620001c8565b8380fd5b6000910312620005a057565b600080fd5b34620005a0576000806003193601126200075c57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000575576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620005295762000745575b506017548190608090620006e19062000627906001600160a01b031662000177565b6015546200069d9062000643906001600160a01b031662000177565b6016546200068d906200065f906001600160a01b031662000177565b916200067d6200066e62000aff565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6001600160a01b03166040830152565b620006a762000bdb565b6060820152601354620006c3906001600160a01b031662000177565b906040519485809481936305157c7f60e21b83526004830162000d27565b03925af180156200052957620006ff9183916200070c575b50601955565b6200070962000d85565b80f35b62000733915060803d6080116200073d575b6200072a818362000adc565b81019062000cdf565b50505038620006f9565b503d6200071e565b8062000567620007559262000a8d565b3862000605565b80fd5b34620005a0576000366003190112620005a0576020604051660aa87bee5380008152f35b34620005a0576000806003193601126200075c57601754620007ae906001600160a01b031662000177565b601554620007fc90620007ca906001600160a01b031662000177565b620007e7620007d862000aff565b6001600160a01b039094168452565b6001600160a01b03811660208401526200068d565b6200080662000bdb565b6060820152737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620008cd57604051630618f58760e51b81526333910aef60e11b60048201529083908290602490829084905af18015620005295783926080926200087f92620008b6575b50601354620006c3906001600160a01b031662000177565b03925af18015620005295762000893575080f35b620008af9060803d6080116200073d576200072a818362000adc565b5050505080f35b8062000567620008c69262000a8d565b3862000867565b8280fd5b34620005a0576000366003190112620005a0576020620008f062000f32565b6040519015158152f35b34620005a0576000366003190112620005a0576020601954604051908152f35b34620005a0576020366003190112620005a05760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa90811562000529576000916200099e575b60c08201516200099a906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e01162000a49575b81620009bc60e0938362000adc565b81010312620005a0576200098060c06200099a9262000a3c8260405192620009e48462000aa2565b620009ef8162000b20565b8452620009ff6020820162000b20565b602085015262000a126040820162000b20565b6040850152606081015160608501526080810151608085015260a081015160a08501520162000b20565b828201529250506200096c565b3d9150620009ad565b34620005a0576000366003190112620005a057602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200055157604052565b60e0810190811067ffffffffffffffff8211176200055157604052565b6080810190811067ffffffffffffffff8211176200055157604052565b90601f8019910116810190811067ffffffffffffffff8211176200055157604052565b604051906080820182811067ffffffffffffffff8211176200055157604052565b51906001600160a01b0382168203620005a057565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b6040513d6000823e3d90fd5b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b90816020910312620005a057518015158103620005a05790565b6040519060006021549060018260011c926001811691821562000cd4575b60209160208610841462000cc05785885287949360208601939291811562000c9f575060011462000c38575b50505062000c369250038362000adc565b565b92509362000c6860216000527f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b57090565b946000935b82851062000c885750505062000c3693500138808062000c25565b865485850152958601958895509381019362000c6d565b9250505062000c369491925060ff19168252151560051b0138808062000c25565b634e487b7160e01b85526022600452602485fd5b93607f169362000bf9565b9190826080910312620005a0578151916020810151916060604083015192015190565b60005b83811062000d165750506000910152565b818101518382015260200162000d05565b606060c0926020835260018060a01b0380825116602085015280602083015116604085015260408201511682840152015160808083015262000d79815180928160a08601526020868601910162000d02565b601f01601f1916010190565b60018060a01b036013541660e06019546024604051809481936315895f4760e31b835260048301525afa801562000529576000808190828095819562000e19575b509262000e0862000c36969362000e0162000e129462000e0162000e129862000dfa6200017760175460018060a01b031690565b90620013a3565b80620013a3565b601f5490620014bc565b80620014bc565b9550935050505060e0823d60e01162000ebd575b8162000e3c60e0938362000adc565b810103126200075c57508062000e1262000e5a62000c369362000b20565b9162000e1262000e6d6020830162000b20565b9362000e0862000e806040850162000b20565b62000e0160608601519162000e0160808801519562000ea760c060a08b01519a0162000b20565b50959a509698929750955090935062000dc69050565b3d915062000e2d565b90600491630667f9d760e41b815262000ee9825180936020868501910162000d02565b010190565b3d1562000f2d573d9067ffffffffffffffff821162000551576040519162000f21601f8201601f19166020018462000adc565b82523d6000602084013e565b606090565b6000805460081c60ff161562000f4f575460081c60ff1690565b90565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62000f7157505090565b819250604051828162000faf60208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b0362000fc4601f199182810185528462000adc565b62000fea604051918262000fdd60208201968762000ec6565b0390810183528262000adc565b51925af15062000f4c62000ffd62000eee565b6020808251830101910162000bc1565b6040805161106b80820167ffffffffffffffff91838210838311176200055157836200104162001669938385843962000b35565b0360009485f080156200052957601580546001600160a01b0319166001600160a01b0390921691909117905584519181830183811085821117620005515783926200108e92843962000b81565b039083f080156200052957601680546001600160a01b0319166001600160a01b03928316179055601554620010c4911662000177565b803b15620008cd5783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af1801562000529576200138c575b5060165462001121906001600160a01b031662000177565b90813b156200059057845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af18015620005295762001375575b5060155462001177906001600160a01b031662000177565b6016546200118e906001600160a01b031662000177565b9084519161059790818401928484108685111762000551578493620011db936200a95986396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200052957601480546001600160a01b0319166001600160a01b03909216919091179055825190612f2180830191821183831017620005515782916200123191620026d484396000815260200190565b039082f0918215620005295762001268620012d79360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b6015546200127f906001600160a01b031662000177565b60135490919062001299906001600160a01b031662000177565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af192831562000529576200132294869462001353575b5060165462001308906001600160a01b031662000177565b601354909290620004b7906001600160a01b031662000177565b03925af18015620005295762001336575050565b816200135092903d10620005215762000511818362000adc565b50565b6200136d90853d8711620005215762000511818362000adc565b5038620012f0565b8062000567620013859262000a8d565b386200115f565b80620005676200139c9262000a8d565b3862001109565b6001600160a01b039182169116818103620013bc575050565b620014a9906040907f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506080835160208152602560208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b6164648582015264726573735d60d81b6060820152a181519382855262001453838601604090600a8152690808115e1c1958dd195960b21b60208201520190565b906020860152847f9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f9586920390a181519282849384528301604090600a815269080808081058dd1d585b60b21b60208201520190565b9060208301520390a162000c36620015b2565b818103620014c8575050565b620014a9906040907f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506080835160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8582015261745d60f01b6060820152a18151938285526200155c838601604090600a8152690808115e1c1958dd195960b21b60208201520190565b906020860152847fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89586920390a181519282849384528301604090600a815269080808081058dd1d585b60b21b60208201520190565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620015e1575b5061010061ff00196000541617600055565b6000809160405182602082018381526519985a5b195960d21b60408401526001606084015260608352620016158362000abf565b62001651602460405180936200164060208301976370ca10bb60e01b89525180928585019062000d02565b810103600481018452018262000adc565b51925af1506200166062000eee565b5038620015cf56fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c634300081600336080346200007a57601f620037a038819003918201601f19168301916001600160401b038311848410176200007f578084926020946040528339810103126200007a57516001600160a01b038116908190036200007a57600080546001600160a01b03191691909117905560405161370a9081620000968239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630420580a146101b7578063120649c5146101b2578063134ead12146101ad5780631e978cb0146101a8578063306db46b146101a3578063332266f31461019e5780633928ff97146101995780633b268d5d146101945780633b4d10301461018f5780634e817fd91461018a5780634fd67c58146101855780635eb408fc146101805780636237569f1461017b5780636d652299146101765780637f17409c1461017157806381b5fac21461016c578063902ecaa214610167578063a8c62e7614610162578063af4e437f1461015d578063b09d04e514610158578063cb1f553214610153578063ce153bf41461014e578063e94716d514610149578063ee3e8cfb14610144578063f30d37f21461013f5763f9c282111461013a57600080fd5b610aff565b610acf565b610a9e565b610a63565b610a27565b6109e2565b6109af565b610993565b61096a565b610941565b610914565b610872565b610856565b6107e9565b6107cd565b6107a4565b610788565b610759565b61071e565b61048d565b610436565b610407565b6103e2565b610354565b61028e565b610218565b60005b8381106101cf5750506000910152565b81810151838201526020016101bf565b906020916101f8815180928185528580860191016101bc565b601f01601f1916010190565b9060206102159281815201906101df565b90565b3461026b57604036600319011261026b57610267604051600260208201526004356040820152602435606082015260608152610253816102e9565b6040519182916020835260208301906101df565b0390f35b600080fd5b608090600319011261026b5760043590602435906044359060643590565b3461026b5760206102aa6102a136610270565b92919091610b4d565b604051908152f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff8211176102e457604052565b6102b2565b6080810190811067ffffffffffffffff8211176102e457604052565b6060810190811067ffffffffffffffff8211176102e457604052565b90601f8019910116810190811067ffffffffffffffff8211176102e457604052565b6001600160a01b0381160361026b57565b3461026b5760e036600319011261026b5760a036604319011261026b576102676103bc604051610383816102c8565b60443581526064356020820152608435604082015260a435606082015260c4356103ac81610343565b608082015260243560043561139a565b60405191829182610204565b606090600319011261026b57600435906024359060443590565b3461026b5760206102aa6104016103f8366103c8565b91929092610f06565b91611583565b3461026b5760206102aa61041a366103c8565b9061042d61042784610f06565b936110d9565b92919091611670565b3461026b5760206102aa610449366103c8565b9061045661042784610f06565b9290506119da565b8015150361026b57565b90926080926102159594151583526020830152604082015281606082015201906101df565b3461026b57606036600319011261026b5761050360243561061f6004356104b38361045e565b604435926104bf610c57565b936104c8610c57565b946104d2846110d9565b60208496939592960194604096878601928352865284526104f287610f06565b998a9185519087519051918a611009565b921561069657928261054a6105519361054361053e61053661056f9861053160606105979d9c0151866125a2565b6125a2565b8651906125f8565b610c9d565b9351610cb0565b8a52610cb0565b61056385890191808352895188610c4a565b90885190519087610b4d565b9061058e6105836020890193808552610c9d565b808452825111610d31565b51905190610d24565b945b84519260c06020870151848801926105df8451976105d18851998a958693602085016040919493926060820195825260208201520152565b03601f198101845283610321565b600054610602906105f6906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610dbf565b03915afa94851561069157600095610651575b509061064691610267959651905190611583565b905194859485610468565b61026795509061067c610646939260c03d60c01161068a575b6106748183610321565b810190610d88565b505050505095509091610632565b503d61066a565b610b41565b826106df610718966106d2610704956106cb61053e6106c361070f9a61053160606106fc9b0151866125a2565b8551906125f8565b9251610cb0565b9260208d01938452610cb0565b6106f1888c019180835283518b610de3565b915190519089610df0565b808952610c9d565b808852825111610cbd565b51855190610d24565b94610599565b3461026b57604036600319011261026b57610267604051600460208201526004356040820152602435606082015260608152610253816102e9565b3461026b57602036600319011261026b5760206102aa60043561040161077e826110d9565b9291939050610f06565b3461026b5760206102aa61079e6103f8366103c8565b91611b9c565b3461026b5760206102aa6107b7366103c8565b906107c461042784610f06565b92919091611c16565b3461026b5760206102aa6107e036610270565b92919091610df0565b3461026b57604036600319011261026b5761083860043561026761081a61080f836110d9565b919050602435611f7a565b939092848461083261082b84610f06565b8383611583565b92610b4d565b92604051938493846040919493926060820195825260208201520152565b3461026b57600036600319011261026b57602060405160008152f35b3461026b57604036600319011261026b576004356108c06102676108a2610898846110d9565b9150602435611fa7565b92909383856108ba6108b384610f06565b8383611b9c565b92610df0565b91604051938493846040919493926060820195825260208201520152565b805182526020808201519083015260408082015190830152606080820151908301526080908101516001600160a01b0316910152565b3461026b57602036600319011261026b5760a0610932600435610f06565b61093f60405180926108de565bf35b3461026b5760206102aa610954366103c8565b9061096161042784610f06565b92909150611fce565b3461026b57600036600319011261026b576000546040516001600160a01b039091168152602090f35b3461026b5760206102aa6109a636610270565b92919091611009565b3461026b57602036600319011261026b576102676040516001602082015260043560408201526040815261025381610305565b3461026b57602036600319011261026b57610267600435610a0281610343565b60408051600560208201526001600160a01b0390921682820152815261025381610305565b3461026b57602036600319011261026b57610267610a466004356110d9565b604080519384526020840192909252908201529081906060820190565b3461026b57604036600319011261026b57610267604051600360208201526004356040820152602435606082015260608152610253816102e9565b3461026b57604036600319011261026b5761083860043561026761081a610ac4836110d9565b919050602435611fa7565b3461026b57604036600319011261026b576004356108c06102676108a2610af5846110d9565b9150602435611f7a565b3461026b57600036600319011261026b57602060405160788152f35b9081602091031261026b575190565b6040906102159392815281602082015201906101df565b6040513d6000823e3d90fd5b610b85610bee9493929361053184610b7e610b79610b74610b6d88610f06565b809661230a565b61237f565b6123b2565b92516125a2565b916020604051610bbc81610bae85888a8785016040919493926060820195825260208201520152565b03601f198101835282610321565b600054610bd3906105f6906001600160a01b031681565b6040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093610c15575b50610c0f90610f06565b936111f1565b610c0f919350610c3c9060203d602011610c43575b610c348183610321565b810190610b1b565b9290610c05565b503d610c2a565b9161040161021593610f06565b604051906060820182811067ffffffffffffffff8211176102e45760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610cab57565b610c87565b91908201809211610cab57565b15610cc457565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b6103e719810191908211610cab57565b91908203918211610cab57565b15610d3857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c091031261026b578151610d9f8161045e565b9160208101519160408201519160608101519160a0608083015192015190565b610215939260609260018060a01b03168252602082015281604082015201906101df565b9161079e61021593610f06565b92610b79610b74610e0d92949394610e0787610f06565b90612f44565b92670de0b6b3a7640000938403938411610cab57610e2e610e5794836125a2565b916020604051610bbc81610bae8589898785016040919493926060820195825260208201520152565b03915afa9182156106915761021595600093610e7e575b50610e7890610f06565b93611e24565b610e78919350610e9c9060203d602011610c4357610c348183610321565b9290610e6e565b91908260a091031261026b57604051610ebb816102c8565b608080829480518452602081015160208501526040810151604085015260608101516060850152015191610eee83610343565b0152565b9060a08282031261026b5761021591610ea3565b90604051610f13816102c8565b600090818152816080602092828482015282604082015282606082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610691578092610f7a575b506102159293508082518301019101610ef2565b9091503d8082863e610f8c8186610321565b840190828583031261100257845167ffffffffffffffff9586821161100557019082601f830112156110025781519586116102e45760405192610fd8601f8801601f1916860185610321565b86845284878401011161100257506102159394610ffa918480850191016101bc565b908392610f66565b80fd5b8280fd5b61105d939192602060405161103781610bae87868a8785016040919493926060820195825260208201520152565b60018060a01b03600054166040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093611084575b5061107e90610f06565b936121b4565b61107e9193506110a29060203d602011610c4357610c348183610321565b9290611074565b9081602091031261026b575161021581610343565b9081606091031261026b578051916040602083015192015190565b90600460206110f56105f66105f660005460018060a01b031690565b604051632bee84f160e21b815292839182905afa928315610691576111409360609260009161119d575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156106915760008093600093611166575b50929190565b9193505061118c915060603d606011611196575b6111848183610321565b8101906110be565b9290929138611160565b503d61117a565b6111bf915060203d6020116111c5575b6111b78183610321565b8101906110a9565b3861111f565b503d6111ad565b6111ef9360609296959361010083019783526020830152604082015201906108de565b565b929360009385929185851215611367575b8585126113485790610bae611224925b604096604051958694602086016111cc565b81859285968281116113255761123a818561337f565b92611245818661337f565b88611250828761152f565b136113045750906112649197969297610d24565b60019591829187805b61127f575b5050505050505050505090565b156112e0575b5086979850819261129f6112998b89610cb0565b60011c90565b996112aa8b8861337f565b90846112b6888461152f565b136112d457505089935b886112cb8987610d24565b9201949961126d565b8b9850909550936112c0565b601410806112fb575b156112f45788611285565b8080611272565b508083106112e9565b6040516306f1be5d60e21b8152600481018690526024810191909152604490fd5b604051633082dfdb60e11b81526004810191909152602481019290925250604490fd5b935091611354906125ce565b91611361848385846124a9565b93611202565b85851361137b5790610bae61122492611212565b935094611387906123f5565b94611394848388846124a9565b93611367565b916113ab610b79610b748385612f44565b91670de0b6b3a7640000928303928311610cab57611402826113ee6113e3610b79610b74846113dd6114209a8c6125f8565b9761230a565b6105318584516125a2565b926113fb8282868a6124a9565b84886121b4565b906040519460208601526040850152606084015260808301906108de565b6101008152610120810181811067ffffffffffffffff8211176102e45760405290565b90670de0b6b3a764000060008382039312818412811691841390151617610cab57565b90671bc16d674ec8000060008382039312818412811691841390151617610cab57565b9067119000ab100ffbff198201918213600116610cab57565b81810392916000138015828513169184121617610cab57565b90670de0b6b3a764000091828102928184051490151715610cab57565b90671bc16d674ec8000091828102928184051490151715610cab57565b90633b9aca0091828102928184051490151715610cab57565b60008190039190600160ff1b8114600116610cab57600019830503610cab57565b818102929160008212600160ff1b821416610cab578184051490151715610cab57565b811561156d57600160ff1b8114600019831416610cab570590565b634e487b7160e01b600052601260045260246000fd5b9190916115be60208301936115b885516115b06115a66040880192835190612843565b975182519061286c565b905190612414565b92612435565b92670de0b6b3a76400008085121561163c5760008513156116315760008582039512818612811691861390151617610cab5761162561162a92611620611612610b799461160d6102159961288b565b61152f565b670de0b6b3a7640000900590565b6114a2565b612917565b90516125a2565b505050505060001990565b5050505050600090565b90959492936111ef94608093610120840198845260208401526040830152606082015201906108de565b909291828651602088015160408901519060608a01519261169083612ac8565b6116999061185a565b936116a390611443565b906116ad8a612b86565b6116b68b611981565b6116bf91612c38565b6116c88b611981565b6116d184612bb5565b6116da916114a2565b6116e49088612c38565b6116ed91612cb5565b6116f690612cd3565b9361170084612fbb565b611709906114d8565b670de0b6b3a7640000900561171d90612917565b9061172791612c38565b61173090612c67565b611739906119c9565b848661174486612c09565b9061174e91612c38565b9061175891612c38565b611761916119ad565b61176a90612917565b826117758c84612c38565b9061177f91612c38565b61178891612c38565b6117918b611981565b61179a84612bb5565b6117a3916114a2565b6117ac91612cb5565b956117b691612c38565b906117c090611993565b6117c991612c38565b926117d391612c38565b6117dc90612c8e565b906117e6916114a2565b6117ef90612e24565b6117f891612c38565b61180186612b86565b61180a91612cb5565b90611814846119c9565b9061181e916119ad565b90611828916119ad565b60001361184f576102159561184a93610bae9260405196879560208701611646565b61264d565b505050505050600090565b90633b9aca0091828102928184041490151715610cab57565b9081672005fe4f268ea00001918212600116610cab57565b9081670dc5527f642c200001918212600116610cab57565b9081670de0b6b3a764000001918212600116610cab57565b9081670b68df18e471fbff190191821215600116610cab57565b90816714a8454c19e1ac0001918212600116610cab57565b9081670fc10e01578277ff190191821215600116610cab57565b90816703debd083b8c7c0001918212600116610cab57565b9081670295d400ea3257ff190191821215600116610cab57565b9081670157d8b2ecc7080001918212600116610cab57565b90816705310aa7d521300001918212600116610cab57565b9081670de0cc3d1561000001918212600116610cab57565b90816103e801918212600116610cab57565b9081670de0b6b3a763ffff190191821215600116610cab57565b91909160008382019384129112908015821691151617610cab57565b600160ff1b8114610cab5760000390565b939290919280519160208201519060408301519260600151936119fc84612ac8565b611a059061185a565b94611a0f90611443565b9182611a1a88612b86565b611a2489846119ad565b611a2d91612c38565b611a3789846119ad565b611a418385612c38565b611a4a916114a2565b611a54908b612c38565b611a5d91612cb5565b611a6690612cd3565b95611a7086612fbb565b611a79906114d8565b670de0b6b3a76400009005611a8d90612917565b90611a9791612c38565b611aa090612c67565b611aa9906119c9565b8688611ab488612c09565b90611abe91612c38565b90611ac891612c38565b611ad1916119ad565b611ada90612917565b81611ae58a86612c38565b90611aef91612c38565b611af891612c38565b91611b0389826119ad565b91611b0d91612c38565b611b16916114a2565b611b1f91612cb5565b96611b2991612c38565b90611b3390611993565b611b3c91612c38565b92611b4691612c38565b611b4f90612c8e565b90611b59916114a2565b611b6290612e24565b611b6b91612c38565b90611b7590612b86565b611b7e91612cb5565b91611b88906119c9565b90611b92916119ad565b90610215916119ad565b919091611bda6020830191611bd4611bcc84516115b0611bc26040890192835190612843565b965182519061286c565b958551612414565b90612435565b670de0b6b3a7640000918282121561163c576000821315611631576102159461162a93611c106116259361160d610b799661288b565b056119ad565b909291855160208701516040880151606089015191611c3482612ac8565b611c3d9061185a565b92611c4790611443565b93611c5186612b86565b611c5a87611981565b611c6391612c38565b611c6d8983612c38565b611c7688611981565b611c7f91612c38565b611c88906119c9565b86611c938b85612c38565b611c9c90612bde565b90611ca691612c38565b611caf916119ad565b611cb891612cb5565b611cc1906119c9565b611cca90612cd3565b92611cd483612fbb565b611cdd906114d8565b670de0b6b3a76400009005611cf190612917565b90611cfb91612c38565b611d0490612c67565b611d0d906119c9565b8385611d1885612c09565b90611d2291612c38565b90611d2c91612c38565b611d35916119ad565b611d3e90612917565b85611d49888a612c38565b90611d5391612c38565b611d5c91612c38565b90611d6687611981565b611d6f87612bb5565b611d78916114a2565b611d8191612c38565b611d8a91612cb5565b93611d958789612c38565b90611d9f90611993565b611da891612c38565b92611db291612c38565b611dbb90612c8e565b90611dc5916114a2565b611dce90612e24565b611dd791612c38565b611de083612b86565b611de991612cb5565b90611df390611993565b90611dfd916119ad565b60001361184f5761021595611e1f93610bae9260405196879560208701611646565b61276c565b929360009385929185851215611f47575b858512611f285790610bae611e5692604096604051958694602086016111cc565b818592859682811161132557611e6c81856133a0565b92611e7781866133a0565b88611e82828761152f565b13611304575090611e969197969297610d24565b60019591829187805b611eb0575050505050505050505090565b15611f0b575b50869798508192611eca6112998b89610cb0565b99611ed58b886133a0565b9084611ee1888461152f565b13611eff57505089935b88611ef68987610d24565b92019499611e9f565b8b985090955093611eeb565b60141080611f1f575b156112f45788611eb6565b50808310611f14565b935091611f34906125ce565b91611f41848383866124a9565b93611e35565b858513611f5b5790610bae611e5692611212565b935094611f67906123f5565b94611f74848383896124a9565b93611f47565b929190611f90611f8a82846125f8565b856125a2565b938103908111610cab57928103908111610cab5790565b929190611fb7611f8a82846125f8565b938101809111610cab57928101809111610cab5790565b9390929181516020830151916040840151936060015194611fee85612ac8565b611ff79061185a565b9561200190611443565b928361200c89612b86565b6120168a856119ad565b61201f91612c38565b6120298584612c38565b6120338b866119ad565b61203c91612c38565b612045906119c9565b82856120518887612c38565b9061205b91612c38565b9061206591612c38565b61206e916119ad565b61207791612cb5565b612080906119c9565b61208990612cd3565b9661209387612fbb565b61209c906114d8565b670de0b6b3a764000090056120b090612917565b906120ba91612c38565b6120c390612c67565b6120cc906119c9565b87896120d789612c09565b906120e191612c38565b906120eb91612c38565b6120f4916119ad565b6120fd90612917565b816121088b8d612c38565b9061211291612c38565b61211b91612c38565b926121268a826119ad565b9161213091612c38565b612139916114a2565b61214291612c38565b61214b91612cb5565b9661215591612c38565b9061215f90611993565b61216891612c38565b9261217291612c38565b61217b90612c8e565b90612185916114a2565b61218e90612e24565b61219791612c38565b906121a190612b86565b6121aa91612cb5565b90611b9290611993565b9293600093859291858512156122d7575b8585126122b85790610bae6121e692604096604051958694602086016111cc565b8185928596828111611325576121fc81856133c2565b9261220781866133c2565b88612212828761152f565b136113045750906122269197969297610d24565b60019591829187805b612240575050505050505050505090565b1561229b575b5086979850819261225a6112998b89610cb0565b996122658b886133c2565b9084612271888461152f565b1361228f57505089935b886122868987610d24565b9201949961222f565b8b98509095509361227b565b601410806122af575b156112f45788612246565b508083106122a4565b9350946122c4906123f5565b946122d1848784846124a9565b936121c5565b8585136122eb5790610bae6121e692611212565b9350916122f7906125ce565b91612304848484846124a9565b936122d7565b61237a6123756102159361236f61236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b9d6125f8565b612fbb565b97612fbb565b6114d8565b05612917565b612414565b612457565b906114a2565b6114bb565b611552565b6123ae6123756123a96713a04bbdfdc9be886123a3671bc16d674ec80000956114bb565b056119c9565b612e24565b0590565b600081126123bd5790565b60405162461bcd60e51b815260206004820152601060248201526f746f55696e743a206e6567617469766560801b6044820152606490fd5b6103e79081810291818304149015176001161561026b576103e8900490565b81810291818304149015176001161561026b57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517821515161561026b570490565b6706f05b59d3b2000090808202918204146001161561026b57670de0b6b3a7640000900490565b670de0b6b3a76400009081810291818304149015176001161561026b57671bc16d674ec80000900490565b90928282101561255d57610215936125269284670de0b6b3a764000091826124d18383612435565b1061254a57506001600160ff1b039590505b8351916124f96124f38385612414565b85612435565b1061252b57506001600160ff1b0392612520925090505b6040602082015191015190612843565b926119ad565b6119ad565b61252092611bd461253f9261254494612414565b61288b565b91612510565b6125579161253f91612435565b946124e3565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b81810291818304149015176001161561026b576001670de0b6b3a7640000600019830104019015150290565b6103e99081810291818304149015176001161561026b5760016103e8600019830104019015150290565b90670de0b6b3a7640000918281029281840414901517811515161561026b57600190600019830104019015150290565b6101008183031261026b57805192610215602083015193606060408501519401610ea3565b91906103e89260009360009183821161274b57612669816133e2565b6126738583613521565b600061267f828461152f565b1361272c5750612690859695610d14565b60019460009186805b6126aa575b50505050505050509050565b15612707575b50859697985080916126c56112998b88610cb0565b996126d08b87613521565b90836126dc878461152f565b136126fb57505089925b876126f18886610d24565b9201939998612699565b8b9750909450926126e6565b861080612721575b1561271a57886126b0565b808061269e565b50610100821061270f565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e89260009360009183821161274b5761278881613543565b61279285836136b3565b600061279e828461152f565b1361272c57506127af859695610d14565b60019460009186805b6127c85750505050505050509050565b15612825575b50859697985080916127e36112998b88610cb0565b996127ee8b876136b3565b90836127fa878461152f565b1361281957505089925b8761280f8886610d24565b92019399986127b8565b8b975090945092612804565b861080612838575b1561271a57886127ce565b50610100821061282d565b9061284d90612ac8565b633b9aca0090818102918183041490151715610cab5761021591612414565b61021591612365670de0b6b3a764000061235f61235a61236a95612fbb565b6706f05b59d3b20000811461291157670de0b6b3a764000090818112156128ff5780156128ed578060011b908105600203610cab576128c990612cd3565b906713a04bbdfdc9be8891808302928305146001161561026b5761021591056119c9565b6040516322ed598560e21b8152600490fd5b6040516307a0212760e01b8152600490fd5b50600090565b680248ce36a70cb26b3e1981131561291157680755bf798b4a1bf1e5811215612a67576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b91906101208382031261026b57825192602081015192610215604083015193608060608501519401610ea3565b60b581600160881b811015612b6f575b80690100000000000000000062010000921015612b62575b65010000000000811015612b55575b6301000000811015612b48575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b91612b0c565b60201c9160101b91612aff565b60401c9160201b91612af0565b5068b500000000000000009050608082901c612ad8565b671bc16d674ec8000081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e881810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e88082029160016000198210179181840514901517161561026b57670de0b6b3a7640000900590565b6713a04bbde78cc40081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b90911317161561026b57670de0b6b3a7640000900590565b670de0b6b3a764000090818102918205146001161561026b57671bc16d674ec80000900590565b670de0b6b3a764000090818102918205146001161561026b576713a04bbde78cc400900590565b670de0b6b3a76400009081810291820514821515161561026b570590565b600081128015612e13575b612e015780156128ff57671bc16d674ec8000081146128ed57670de0b6b3a76400008112908115612df257905b612d1482613189565b80156128ff57612d7d612d41612d3c612d37612d32612d8295612fbb565b61324a565b612ac8565b6114f5565b611620612d55612d50836131b4565b611873565b612d77612d72612d6c612d67866131df565b61188b565b856132c1565b6118a3565b90613228565b613272565b916000905b60028210612da257505015612d995790565b610215906119c9565b9092612dea81612de4612dba85611620600196612e24565b612d77612dda612dd5611625612dd087806132c1565b6119c9565b61329a565b61236f83866132c1565b906119ad565b930190612d87565b612dfb90611466565b90612d0b565b604051632d0483c560e21b8152600490fd5b50671bc16d674ec800008113612cde565b8015612f3757675698eef06670000081121561291157675698eef0666fffff19811315612f2a576000612f1a612e598361315c565b612ee2611625612e73612e6e612d728561247e565b613209565b92612526612f15612f10612f09612f03612efe612ef8612ef3612eed612ee88d612ee2612edd612ed7612ed2612d6c612ecd612ec7612ec2612ebc612eb78a6132e2565b6118bb565b896132c1565b6118d5565b876132c1565b6118ed565b611907565b836132c1565b61191f565b906132c1565b611939565b8c6132c1565b611951565b8a6132c1565b611969565b886132c1565b93806132c1565b61150e565b611489565b9112156102155761021590611466565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b61237a61237561021593612de461236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b15612f8a57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b886428490612fe760008213612f83565b711340daa0d5f769dba1915cef59f0815a55066130038261330d565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b600160ff1b8114613177576000811215610215571960010190565b604051634d2d75b160e01b8152600490fd5b670de0b6b3a76400009081810291818305149015176001161561026b57671bc16d674ec80000900590565b6703c1665c7aab20009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b669f32752462a0009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b6001811515161561026b576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029181830514901517821515161561026b570590565b671bc16d674ec7ffff1981810291600191830514161561026b57670de0b6b3a7640000900590565b6709d028cc6f205fff1981810291600191830514161561026b57670de0b6b3a7640000900590565b670fa8cedfc2adddfa90808202918205146001161561026b57670de0b6b3a7640000900590565b81810291818305149015176001161561026b57670de0b6b3a7640000900590565b67025f0fe105a314009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b613318811515612f83565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b906133966102159260208082518301019101612628565b93919290506124a9565b906133b76102159260208082518301019101612628565b9390509190916124a9565b906133d96102159260208082518301019101612628565b939290506124a9565b8051810160200190602001906133f791612a9b565b809193925051906020810151604082015191606001519261341783612ac8565b6134209061185a565b9361342a90611443565b9061343486612b86565b61343d87611981565b61344691612c38565b61344f87611981565b61345884612bb5565b613461916114a2565b61346b9089612c38565b61347491612cb5565b61347d90612cd3565b9361348784612fbb565b613490906114d8565b670de0b6b3a764000090056134a490612917565b906134ae91612c38565b6134b790612c67565b6134c0906119c9565b84866134cb86612c09565b906134d591612c38565b906134df91612c38565b6134e8916119ad565b6134f190612917565b826134fc8884612c38565b9061350691612c38565b61350f91612c38565b61351887611981565b611b0d84612bb5565b906135386102159260208082518301019101612a9b565b9493909291506119da565b80518101602001906020019061355891612a9b565b809192935051602082015190604083015192606001519361357884612ac8565b6135819061185a565b9461358b90611443565b9161359587612b86565b61359e88611981565b6135a791612c38565b6135b18383612c38565b6135ba89611981565b6135c391612c38565b6135cc906119c9565b846135d78585612c38565b6135e090612bde565b906135ea91612c38565b6135f3916119ad565b6135fc91612cb5565b613605906119c9565b61360e90612cd3565b9461361885612fbb565b613621906114d8565b670de0b6b3a7640000900561363590612917565b9061363f91612c38565b61364890612c67565b613651906119c9565b858761365c87612c09565b9061366691612c38565b9061367091612c38565b613679916119ad565b61368290612917565b8361368d898b612c38565b9061369791612c38565b6136a091612c38565b906136aa88611981565b61213085612bb5565b906136ca6102159260208082518301019101612a9b565b9493909250611fce56fea2646970667358221220f3e875cd9c43c4535da38090630f644037f96036f7dad55519e2d7d792047e4b64736f6c6343000816003360803461007457601f611bc438819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051611b3490816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b6109e4565b6109bb565b610814565b6107da565b610674565b6103dc565b6102e1565b61023d565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101df565b838082518301019101610a17565b9061010d6100ff600435610b92565b868082518301019101610a32565b92610d8d565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761015057604052565b61011e565b60c0810190811067ffffffffffffffff82111761015057604052565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101bd601f8201601f191660200184610171565b8294818452818301116101da578281602093846000960137010152565b600080fd5b9080601f830112156101da578160206101fa93359101610193565b90565b919082519283825260005b848110610229575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610208565b346101da5760003660031901126101da57604051604081019080821067ffffffffffffffff8311176101505761029a916040526009815268131bd9d39bdc9b585b60ba1b60208201526040519182916020835260208301906101fd565b0390f35b906040516080810181811067ffffffffffffffff821117610150576040526060600382948054845260018101546020850152600281015460408501520154910152565b346101da5760203660031901126101da5760043560005260016020526101c0604060002061030e8161029e565b9061031b6004820161029e565b906103bd61032b6008830161029e565b610393600c84015493600d60018060a01b03910154169461036d6040518098606080918051845260208101516020850152604081015160408501520151910152565b80516080880152602081015160a0880152604081015160c08801526060015160e0870152565b80516101008601526020810151610120860152604081015161014086015260600151610160850152565b6101808301526101a0820152f35b6001600160a01b038116036101da57565b346101da576060806003193601126101da576103f96004356103cb565b6024356044359167ffffffffffffffff83116101da576104206104829336906004016101df565b8161043c61042d85610b92565b60208082518301019101610a32565b60005490949061046290610456906001600160a01b031681565b6001600160a01b031690565b60405180809881946333854efd60e21b8352600483019190602083019252565b03915afa801561061457600091829583926105d9575b50806020806104ac93518301019101610a17565b939194909682861160001461054c5750916104ed826104e8836104e36104fe976104d96104f5988c610aa3565b908c0151906112af565b6112af565b6112db565b505b83610afe565b93828685610d8d565b9384601319129283610541575b61029a9394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b60148612935061050b565b90929091508187111561057b57610575826104e8836104e36104fe976104d96104f5988e610aa3565b506104ef565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9095506104ac92506106019150833d851161060d575b6105f98183610171565b810190610a17565b95919290959190610498565b503d6105ef565b610a81565b9060606003198301126101da57600435610632816103cb565b916024359160443567ffffffffffffffff928382116101da57806023830112156101da5781600401359384116101da57602484830101116101da576024019190565b346101da5761068236610619565b600054929350916001600160a01b031633036107c85761078661077e61042d610779956106c0608095610743976106b7610b67565b50810190610e8c565b6020819b949a9399929b01516106e0866000526001602052604060002090565b55604081015160046106fc876000526001602052604060002090565b015580516008610716876000526001602052604060002090565b01556060810151600c610733876000526001602052604060002090565b015501516001600160a01b031690565b600d610759846000526001602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610b92565b848385610d8d565b92836013191291826107bd575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b601485129250610793565b604051636853cba760e01b8152600490fd5b346101da5760606107ea36610619565b818094509492940103126101da5780359061078661077e61042d6040602085013594013595610b92565b346101da5761082236610619565b6000549093906001600160a01b0390811633036107c857610863610456600d610855876000526001602052604060002090565b01546001600160a01b031690565b9116036109a95761087683820182610b32565b61087f81610b47565b600181036108b857506108a261089d6108b392600c94953691610193565b610fc3565b926000526001602052604060002090565b01555b005b6108c181610b47565b600381036108fd5750906108e56108e06108f8936108b6953691610193565b610f19565b9290916000526001602052604060002090565b610f41565b61090681610b47565b6004810361094057509060046109276108e061093a946108b6963691610193565b9390926000526001602052604060002090565b01610f41565b61094981610b47565b6002810361096a57509060086109276108e061093a946108b6963691610193565b80610976600592610b47565b03610997576107596108a2610992600d936108b6963691610193565b610ef1565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101da5760003660031901126101da576000546040516001600160a01b039091168152602090f35b346101da5760203660031901126101da5761029a610a03600435610b92565b6040519182916020835260208301906101fd565b908160609103126101da578051916040602083015192015190565b908160a09103126101da57608060405191610a4c83610134565b805183526020810151602084015260408101516040840152606081015160608401520151610a79816103cb565b608082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610ab057565b610a8d565b91908201809211610ab057565b90671bc16d674ec8000060008382039312818412811691841390151617610ab057565b9067119000ab100ffbff198201918213600116610ab057565b81810392916000138015828513169184121617610ab057565b600160ff1b8114610ab05760000390565b600611156101da57565b908160209103126101da57356101fa81610b28565b60061115610b5157565b634e487b7160e01b600052602160045260246000fd5b60405190610b7482610134565b60006080838281528260208201528260408201528260608201520152565b610b9a610b67565b816000526001602052610bb8610bb3604060002061029e565b610ff8565b9160208201928352806000526001602052610bdc610bb3600860406000200161029e565b8252600c610c1d610c05610bb36004610bff866000526001602052604060002090565b0161029e565b92604085019384526000526001602052604060002090565b015490606083019182526040519383516020860152516040850152516060840152516080830152608060018060a01b039101511660a082015260a081526101fa81610155565b9081672005fe4f268ea00001918212600116610ab057565b9081670dc5527f642c200001918212600116610ab057565b9081670de0b6b3a764000001918212600116610ab057565b9081670b68df18e471fbff190191821215600116610ab057565b90816714a8454c19e1ac0001918212600116610ab057565b9081670fc10e01578277ff190191821215600116610ab057565b90816703debd083b8c7c0001918212600116610ab057565b9081670295d400ea3257ff190191821215600116610ab057565b9081670157d8b2ecc7080001918212600116610ab057565b90816705310aa7d521300001918212600116610ab057565b9081670de0cc3d1561000001918212600116610ab057565b91909160008382019384129112908015821691151617610ab057565b909282821015610e47576101fa93610e0a9284670de0b6b3a76400009182610db5838361130b565b10610e3457506001600160ff1b039590505b835191610ddd610dd7838561132d565b8561130b565b10610e0f57506001600160ff1b0392610e04925090505b6040602082015191015190611286565b92610d71565b610d71565b610e0492610e23610e2992610e2e9461132d565b9061130b565b6110b3565b91610df4565b610e4191610e299161130b565b94610dc7565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b80910361010081126101da5781359260208301359260a0604082013593605f1901126101da5760e060405191610ec183610134565b606081013583526080810135602084015260a0810135604084015260c081013560608401520135610a79816103cb565b6040818051810103126101da5780610f0e60206040930151610b28565b0151610456816103cb565b6060818051810103126101da57610f336020820151610b28565b606060408201519101519091565b919042821115610fb157610f57610bb38461029e565b9081845542600385015542830391838311610ab057610f7591610afe565b428314610f9b57600160ff1b8114600019831416610ab057600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101da5780610fe060206040930151610b28565b015190565b81810292918115918404141715610ab057565b606081015160208201518082146110735780421160001461106b57905b8103908111610ab05760408201908151600081136000146110485750611042906101fa9351925190610fe5565b90610ab5565b9261105f9250611059905193610b17565b90610fe5565b8103908111610ab05790565b504290611015565b50505190565b90633b9aca0091828102928184051490151715610ab057565b60008190039190600160ff1b8114600116610ab057600019830503610ab057565b6706f05b59d3b20000811461128057670de0b6b3a76400008082121561122a57811561124b5760018260011b916002938305600203610ab05760008312801561126f575b61125d57821561122a57671bc16d674ec80000831461124b57821291821561123c57925b611124846118db565b801561122a5761119661115561115061114b61114661119b959997969961146f565b61199c565b611379565b611079565b61119161116961116483611906565b610c63565b61118b61118661118061117b86611931565b610c7b565b85611a13565b610c93565b9061197a565b610afe565b6119c4565b936000925b8184106111d257505050506101fa916111bf916000146111c4576118b4565b610b17565b6111cd90610b17565b6118b4565b90916112208661121a6111ea8561119186999b611610565b61118b61120a6112056112006111bf8780611a13565b611730565b6119ec565b6112148386611a13565b90610afe565b90610d71565b95019291906111a0565b6040516307a0212760e01b8152600490fd5b61124590610ac2565b9261111b565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec8000083136110f7565b50600090565b9061129090611379565b633b9aca0090818102918183041490151715610ab0576101fa9161132d565b8181029181830414901517600116156101da576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101da57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101da570490565b8181029181830414901517600116156101da57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517600116156101da57671bc16d674ec80000900490565b60b581600160881b811015611420575b80690100000000000000000062010000921015611413575b65010000000000811015611406575b63010000008110156113f9575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916113bd565b60201c9160101b916113b0565b60401c9160201b916113a1565b5068b500000000000000009050608082901c611389565b1561143e57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642849061149b60008213611437565b711340daa0d5f769dba1915cef59f0815a55066114b782611a5f565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b801561172357675698eef06670000081121561128057675698eef0666fffff1981131561171657600061170661164583611ad1565b6116ce61120061165f61165a6111868561134e565b61195b565b92610e0a6117016116fc6116f56116ef6116ea6116e46116df6116d96116d48d6116ce6116c96116c36116be6111806116b96116b36116ae6116a86116a38a611a34565b610cab565b89611a13565b610cc5565b87611a13565b610cdd565b610cf7565b83611a13565b610d0f565b90611a13565b610d29565b8c611a13565b610d41565b8a611a13565b610d59565b88611a13565b9380611a13565b611092565b610ae5565b9112156101fa576101fa90610ac2565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b680248ce36a70cb26b3e1981131561128057680755bf798b4a1bf1e5811215611880576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be889080820291820514600116156101da57670de0b6b3a7640000900590565b670de0b6b3a7640000908181029181830514901517600116156101da57671bc16d674ec80000900590565b6703c1665c7aab2000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b669f32752462a000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b600181151516156101da576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a764000090818102918183051490151782151516156101da570590565b671bc16d674ec7ffff198181029160019183051416156101da57670de0b6b3a7640000900590565b6709d028cc6f205fff198181029160019183051416156101da57670de0b6b3a7640000900590565b670fa8cedfc2adddfa9080820291820514600116156101da57670de0b6b3a7640000900590565b8181029181830514901517600116156101da57670de0b6b3a7640000900590565b67025f0fe105a31400908181029181830514901517600116156101da57670de0b6b3a7640000900590565b611a6a811515611437565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b600160ff1b8114611aec5760008112156101fa571960010190565b604051634d2d75b160e01b8152600490fdfea2646970667358221220b596d744fe988e0f66eb3212b01d8a9e660acea43730ff108a9b5edd5f05d2b364736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a264697066735822122080ef7b7113c1a664935a1e4bba569dbddec7a36609e9f63a79614c4a1438b85d64736f6c63430008160033","sourceMap":"88:1011:78:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;709:579:79;;:::i;:::-;88:1011:78;;785:32:79;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;776:41;88:1011:78;;-1:-1:-1;;;;;;88:1011:78;-1:-1:-1;;;;;88:1011:78;;;;;;;;;;;836:32:79;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;827:41;88:1011:78;;-1:-1:-1;;;;;;88:1011:78;-1:-1:-1;;;;;88:1011:78;;;;;;776:41:79;88:1011:78;878:11:79;;88:1011:78;;-1:-1:-1;;;;;88:1011:78;;;878:11:79;:34;;;;;88:1011:78;;-1:-1:-1;;;878:34:79;;;898:4;88:1011:78;878:34:79;;88:1011:78;905:6:79;88:1011:78;;;;;;;;;;;;;;;878:34:79;;;;;;;;88:1011:78;-1:-1:-1;827:41:79;88:1011:78;;;922:11:79;;-1:-1:-1;;;;;88:1011:78;;;922:11:79;:34;;;;;;88:1011:78;;922:34:79;;;898:4;88:1011:78;922:34:79;;88:1011:78;905:6:79;88:1011:78;;;;;;;;;;;898:4:79;;922:34;;;;;;;;88:1011:78;-1:-1:-1;776:41:79;88:1011:78;981:15:79;;-1:-1:-1;;;;;88:1011:78;;;981:15:79;827:41;88:1011:78;998:15:79;;-1:-1:-1;;;;;88:1011:78;;;998:15:79;88:1011:78;;;973:46:79;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:1011:78;;;;;;;378:4:31;;;88:1011:78;378:4:31;;;;88:1011:78;378:4:31;;;;973:46:79;;;;;;;;;967:52;88:1011:78;;-1:-1:-1;;;;;;88:1011:78;-1:-1:-1;;;;;88:1011:78;;;;;;;;;;;1036:20:79;;;;;;;;;;;;;;;;;;;;;88:1011:78;;;;;;;1036:20:79;;;;;;;;;1029:27;88:1011:78;;-1:-1:-1;;;;;;88:1011:78;-1:-1:-1;;;;;88:1011:78;;;;;;;;;1092:13:79;;378:4:31;88:1011:78;1092:13:79;88:1011:78;;1078:28:79;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:1011:78;;;;;;;;;1078:28:79;;;;;;;;;1066:40;88:1011:78;;-1:-1:-1;;;;;;88:1011:78;-1:-1:-1;;;;;88:1011:78;;;;;;;;;1145:18:79;;378:4:31;88:1011:78;1145:18:79;88:1011:78;;;1125:39:79;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:1011:78;;;;;;;;;1125:39:79;;;;;;;;;;1116:48;1175;1116;785:32;88:1011:78;;;;;;;;1116:48:79;88:1011:78;;;1116:48:79;88:1011:78;;1116:48:79;776:41;88:1011:78;1175:14:79;;-1:-1:-1;;;;;88:1011:78;;;1175:14:79;1029:27;378:4:31;1190:13:79;;-1:-1:-1;;;;;88:1011:78;378:4:31;88:1011:78;1190:13:79;88:1011:78;;-1:-1:-1;;;1175:48:79;;;-1:-1:-1;;;;;88:1011:78;;;;1175:48:79;;88:1011:78;-1:-1:-1;;378:4:31;;;88:1011:78;1175:48:79;;88:1011:78;;;;1175:48:79;;88:1011:78;;1175:48:79;88:1011:78;;1175:48:79;;88:1011:78;;378:4:31;;;;;1175:48:79;;;;;;;;;;1233;1175;;;;;88:1011:78;-1:-1:-1;827:41:79;88:1011:78;1233:14:79;;-1:-1:-1;;;;;88:1011:78;;;1233:14:79;1029:27;378:4:31;;;;;;1248:13:79;;-1:-1:-1;;;;;88:1011:78;378:4:31;88:1011:78;1248:13:79;88:1011:78;;1233:48:79;;;-1:-1:-1;;;;;88:1011:78;;;;1233:48:79;;88:1011:78;-1:-1:-1;;378:4:31;;;88:1011:78;;;;;;;;378:4:31;;;;;1233:48:79;;;;;;;;;;;88:1011:78;;;1233:48:79;;;;;;-1:-1:-1;1233:48:79;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;88:1011:78;;;1233:48:79;;;;;;;:::i;1175:::-;;;;;;;;;;;;;:::i;:::-;;;;;1125:39;;:::i;922:34::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;88:1011:78;;;878:34:79;;;;;;:::i;:::-;;;;;88:1011:78;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;1320:10:79;;;;;88:1011:78;;-1:-1:-1;;;1320:10:79;;88:1011:78;;1320:10:79;;88:1011:78;;;;;;;;;;;;1320:10:79;;;;;;;;88:1011:78;-1:-1:-1;1434:9:79;378:4:31;;;1057:14:1;;1597:28:79;;1426:18;;-1:-1:-1;;;;;88:1011:78;378:4:31;88:1011:78;1426:18:79;1474:6;88:1011:78;1385:186:79;;1466:15;;-1:-1:-1;;;;;88:1011:78;;;1466:15:79;1511:6;88:1011:78;1385:186:79;;1503:15;;-1:-1:-1;;;;;88:1011:78;;;1503:15:79;1057:14:1;1385:186:79;1057:14:1;;:::i;:::-;-1:-1:-1;;;;;88:1011:78;;;1057:14:1;;;1385:186:79;-1:-1:-1;;;;;88:1011:78;1385:186:79;;;1057:14:1;;1385:186:79;-1:-1:-1;;;;;88:1011:78;;1385:186:79;;1057:14:1;;1385:186:79;1057:14:1;;:::i;:::-;1385:186:79;;;1057:14:1;1597:4:79;378::31;1597:9:79;;-1:-1:-1;;;;;88:1011:78;378:4:31;88:1011:78;1597:9:79;88:1011:78;;;;;;;;;;;;1597:28:79;;88:1011:78;1597:28:79;;;:::i;:::-;;;;;;;;;1582:43;1597:28;;;;;88:1011:78;1582:43:79;;1057:14:1;;1582:43:79;1636:1;;:::i;:::-;88:1011:78;;1597:28:79;;;;1057:14:1;1597:28:79;1057:14:1;1597:28:79;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;1320:10;;;;;;:::i;:::-;;;;88:1011:78;;;;;;;;;-1:-1:-1;;88:1011:78;;;;;;;378:11:59;88:1011:78;;;;;;;;;;;;;;;;866:9;378:4:31;858:18:78;;-1:-1:-1;;;;;88:1011:78;378:4:31;88:1011:78;858:18;906:6;88:1011;817:186;;898:15;;-1:-1:-1;;;;;88:1011:78;;;898:15;817:186;1057:14:1;;:::i;:::-;-1:-1:-1;;;;;88:1011:78;;;1057:14:1;;;817:186:78;-1:-1:-1;;;;;88:1011:78;;817:186;;;1057:14:1;817:186:78;1057:14:1;817:186:78;1057:14:1;;:::i;:::-;817:186:78;;;1057:14:1;88:1011:78;1014:45;;;;;817:186;88:1011;-1:-1:-1;;;1014:45:78;;-1:-1:-1;;;88:1011:78;1014:45;;88:1011;;;;;;;;;;;;1014:45;;;;;;;;1057:14:1;1014:45:78;1069:21;1014:45;;;88:1011;-1:-1:-1;1069:4:78;378::31;1069:9:78;;-1:-1:-1;;;;;88:1011:78;378:4:31;88:1011:78;1069:21;;;;;;;;;;;88:1011;;;1069:21;;;1057:14:1;1069:21:78;1057:14:1;1069:21:78;;;;;;;:::i;:::-;;;;88:1011;;;1014:45;;;;;;:::i;:::-;;;;;88:1011;;;;;;;;;-1:-1:-1;;88:1011:78;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;88:1011:78;;;;;291:22:79;88:1011:78;;;;;;;;;;;;;-1:-1:-1;;88:1011:78;;;;992:4:59;378::31;88:1011:78;;-1:-1:-1;;;992:20:59;;88:1011:78;;;992:20:59;;;88:1011:78;;;;;;;;;;-1:-1:-1;;;;;88:1011:78;992:20:59;;;;;;;-1:-1:-1;992:20:59;;;88:1011:78;1029:19:59;;;88:1011:78;;;-1:-1:-1;;;;;88:1011:78;;;;-1:-1:-1;;;;;88:1011:78;;;;;;;;;;;;;;;;;992:20:59;;;88:1011:78;992:20:59;;88:1011:78;992:20:59;;;;;;88:1011:78;992:20:59;;;:::i;:::-;;;88:1011:78;;;;;1029:19:59;88:1011:78;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;992:20:59;;;;;;;;-1:-1:-1;992:20:59;;88:1011:78;;;;;;-1:-1:-1;;88:1011:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;1057:14:1;88:1011:78;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;88:1011:78;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;88:1011:78;;;;;;;;;;;;;;-1:-1:-1;;;88:1011:78;;;;814:2:79;88:1011:78;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;88:1011:78;;;;;;;;;;;;;;-1:-1:-1;;;88:1011:78;;;;814:2:79;88:1011:78;;;;;;;:::o;378:4:31:-;;;;;;;;;;88:1011:78;;;378:4:31;;;;;:::o;1057:14:1:-;88:1011:78;;1057:14:1;-1:-1:-1;1538:22:79;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;88:1011:78;;;;;1057:14:1;88:1011:78;;;;1057:14:1;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;1538:22:79;1057:14:1;;;;;;;-1:-1:-1;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1057:14:1;;;;;;88:1011:78;1057:14:1;;;;;;;;;;;;;;;;;;88:1011:78;;1057:14:1;;;;88:1011:78;1057:14:1;;;;;88:1011:78;1057:14:1;;88:1011:78;1057:14:1;:::o;:::-;;;;;;;;-1:-1:-1;;1057:14:1;;;;:::o;:::-;;;;;;;;;;;;;;;88:1011:78;1057:14:1;;;;785:32:79;88:1011:78;;;;1057:14:1;;;88:1011:78;1057:14:1;;;88:1011:78;1057:14:1;;;;;88:1011:78;1057:14:1;;;88:1011:78;1057:14:1;;;;88:1011:78;1057:14:1;;;88:1011:78;1057:14:1;;;;;;;;88:1011:78;;1057:14:1;;;;;;88:1011:78;1057:14:1;88:1011:78;;;1057:14:1;;;:::i;:::-;88:1011:78;;-1:-1:-1;;88:1011:78;1057:14:1;;;:::o;139:564:78:-;785:32:79;88:1011:78;;;;409:4;378::31;88:1011:78;;420:7;88:1011;;;;;;;;;;;409:19;;;;;88:1011;409:19;;;;;;-1:-1:-1;;;;;;;;409:19:78;;;139:564;378:4:31;;547:15:78;681:14;378:4:31;;504:15:78;592;378:4:31;458:18:78;637:8;378:4:31;458:18:78;378:4:31;466:9:78;378:4:31;785:32:79;88:1011:78;;;;;;;458:18;;;:::i;:::-;504:15;;:::i;547:::-;592;88:1011;592:15;;:::i;:::-;637:8;;:::i;409:19::-;;;;;;;;88:1011;409:19;;88:1011;409:19;;;;;;88:1011;409:19;;;:::i;:::-;;;88:1011;;;;;;637:8;88:1011;681:14;88:1011;;:::i;:::-;;592:15;88:1011;;;;;:::i;:::-;;547:15;88:1011;;;;;:::i;:::-;504:15;88:1011;;;;;458:18;88:1011;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;409:19:78;;-1:-1:-1;409:19:78;;;;-1:-1:-1;409:19:78;-1:-1:-1;409:19:78;;-1:-1:-1;409:19:78;;-1:-1:-1;409:19:78;;;;-1:-1:-1;409:19:78;;1671:64:0;;;;88:1011:78;;;;;1671:64:0;88:1011:78;;1671:64:0;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;88:1011:78;;;;;;;-1:-1:-1;;88:1011:78;1671:64:0;;88:1011:78;;:::i;:::-;1671:64:0;;;-1:-1:-1;1671:64:0;;;;:::o;:::-;;;:::o;1819:584::-;1873:7;88:1011:78;;;;;;1873:7:0;;;88:1011:78;;;;;1896:14:0;:::o;88:1011:78:-;1896:14:0;:::o;1869:528::-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;88:1011:78;;;;;2196:43:0;;;;;;1671:64;;;;88:1011:78;;;;1671:64:0;;;;;;88:1011:78;1671:64:0;2196:43;;;88:1011:78;;2196:43:0;;;;;;;;:::i;:::-;2086:175;88:1011:78;;2086:175:0;;;2196:43;2086:175;;;;;:::i;:::-;;;;;;;;;:::i;:::-;2047:232;;;;;2312:27;2047:232;;:::i;:::-;2196:43;88:1011:78;;;2312:27:0;;;;;;:::i;396:450:59:-;88:1011:78;;;447:32:59;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;776:41:79;88:1011:78;;-1:-1:-1;;;;;;88:1011:78;-1:-1:-1;;;;;88:1011:78;;;;;;;;;;;498:32:59;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;827:41:79;88:1011:78;;-1:-1:-1;;;;;;88:1011:78;-1:-1:-1;;;;;88:1011:78;;;;;;438:41:59;88:1011:78;540:11:59;;88:1011:78;;;540:11:59;:34;;;;;88:1011:78;;-1:-1:-1;;;540:34:59;;;560:4;540:34;;;88:1011:78;905:6:79;88:1011:78;;;;;;;;;;;;;;;540:34:59;;;;;;;;396:450;-1:-1:-1;489:41:59;88:1011:78;584:11:59;;-1:-1:-1;;;;;88:1011:78;;;584:11:59;:34;;;;;;88:1011:78;;584:34:59;;;560:4;540:34;584;;88:1011:78;905:6:79;88:1011:78;;;;;;;;;;;;;;;584:34:59;;;;;;;;396:450;-1:-1:-1;438:41:59;88:1011:78;643:15:59;;-1:-1:-1;;;;;88:1011:78;;;643:15:59;489:41;88:1011:78;660:15:59;;-1:-1:-1;;;;;88:1011:78;;;660:15:59;88:1011:78;;;635:50:59;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:1011:78;;;;;;;378:4:31;;;88:1011:78;378:4:31;;;;88:1011:78;378:4:31;;;;635:50:59;;;;;;;;;967:52:79;88:1011:78;;-1:-1:-1;;;;;;88:1011:78;-1:-1:-1;;;;;88:1011:78;;;;;;;;;;;;702:20:59;;;;;;;;;;;;;;;;;;;;88:1011:78;;;;;;;702:20:59;;;;;;;;;;695:27;733:48;695:27;785:32:79;88:1011:78;;;;;;;;1029:27:79;88:1011:78;;;1029:27:79;88:1011:78;;695:27:59;438:41;88:1011:78;733:14:59;;-1:-1:-1;;;;;88:1011:78;;;733:14:59;695:27;378:4:31;;;;748:13:59;;-1:-1:-1;;;;;88:1011:78;378:4:31;88:1011:78;748:13:59;88:1011:78;;-1:-1:-1;;;733:48:59;;;-1:-1:-1;;;;;88:1011:78;;;540:34:59;733:48;;88:1011:78;-1:-1:-1;;378:4:31;;;88:1011:78;733:48:59;;88:1011:78;;;;733:48:59;;88:1011:78;;733:48:59;88:1011:78;;;;;;378:4:31;;;;;733:48:59;;;;;;;;;;791;733;;;;;396:450;-1:-1:-1;489:41:59;88:1011:78;791:14:59;;-1:-1:-1;;;;;88:1011:78;;;791:14:59;695:27;378:4:31;;;;806:13:59;;-1:-1:-1;;;;;88:1011:78;378:4:31;88:1011:78;791:48:59;;;;;;;;;;;396:450;;:::o;791:48::-;;;;;;-1:-1:-1;791:48:59;;;;;;:::i;:::-;;396:450::o;733:48::-;;;;;;;;;;;;;:::i;:::-;;;;;584:34;;;;;;:::i;:::-;;;;540;;;;;;:::i;:::-;;;;3615:277:0;-1:-1:-1;;;;;88:1011:78;;;;;3678:6:0;;;3674:212;;3615:277;;:::o;3674:212::-;88:1011:78;;;;3705:44:0;88:1011:78;;;;;;;;;;;;;;;;-1:-1:-1;;;88:1011:78;;;;3705:44:0;88:1011:78;;;;;;;;;;;;;;;-1:-1:-1;;;88:1011:78;;;;;;;;;;;;;3768:34:0;;;;;;;;88:1011:78;;;;;;;;;;;;;;;-1:-1:-1;;;88:1011:78;;;;;;;;;;;;;3821:34:0;;;;;:::i;5202:262::-;5259:6;;;5255:203;;5202:262;;:::o;5255:203::-;88:1011:78;;;;5286:41:0;88:1011:78;;;;;;;;;;;;;;;;-1:-1:-1;;;88:1011:78;;;;5286:41:0;88:1011:78;;;;;;;;;;;;;;;-1:-1:-1;;;88:1011:78;;;;;;;;;;;;;5346:31:0;;;;;;;;88:1011:78;;;;;;;;;;;;;;;-1:-1:-1;;;88:1011:78;;;;;;;2410:424:0;2939:104;;;2445:359;;2410:424;88:1011:78;;;;2928:1:0;88:1011:78;;;2928:1:0;88:1011:78;2410:424:0:o;2445:359::-;-1:-1:-1;88:1011:78;;;;2645:67:0;;;;88:1011:78;;;1671:64:0;;;88:1011:78;;;;2705:4:0;88:1011:78;;;;;2645:67:0;;;;;:::i;:::-;2534:196;1671:64;88:1011:78;;2534:196:0;;1671:64;2645:67;2534:196;;88:1011:78;;;;;;;1671:64:0;;;;;;;:::i;:::-;;;2534:196;1671:64;2534:196;;;;;;;:::i;:::-;2499:245;;;;;;;:::i;:::-;;2445:359;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","POOL_ID()":"e0d7d0e9","TEST_SWAP_FEE()":"620a2607","failed()":"ba414fa6","getPoolLiquidityToken(uint256)":"e21485ad","setUp()":"0a9254e4","test_LogNormal_init_RevertsIfInvalidTokens()":"acc9d6b7","test_LogNormal_init_StoresPoolParameters()":"110908dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"upper\",\"type\":\"uint256\"}],\"name\":\"BisectionLib_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"lowerResult\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"upperResult\",\"type\":\"int256\"}],\"name\":\"BisectionLib_RootOutsideBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Infinity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Min\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NegativeInfinity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfBounds\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POOL_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_SWAP_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolLiquidityToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_LogNormal_init_RevertsIfInvalidTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_LogNormal_init_StoresPoolParameters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"BisectionLib_InvalidBounds(uint256,uint256)\":[{\"details\":\"Thrown when the lower bound is greater than the upper bound.\"}],\"BisectionLib_RootOutsideBounds(int256,int256)\":[{\"details\":\"Thrown when the result of the function `fx` for each input, `upper` and `lower`, is the same sign.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/unit/strategies/LogNormal/Init.t.sol\":\"LogNormalInitTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/lib/SignedWadMath.sol\":{\"keccak256\":\"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a\",\"dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/solvers/LogNormal/LogNormalExtendedLib.sol\":{\"keccak256\":\"0x204015cfa704225710b310e02fd4ea4648617f580cbb08fb22306357969e4a63\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0b2df304ee8a88040b573201316e12756e74c042fddbb4ec25d23ecd34971768\",\"dweb:/ipfs/QmaC4vUQY6UAD6UrEF3rvMLyYbtQKuF9Bbgr3aqkGMzSqF\"]},\"src/solvers/LogNormal/LogNormalSolver.sol\":{\"keccak256\":\"0xe97dbbad3eb6aadeaaa7c9ad82cf08a79006ad3058e6dcbc2576e17d6337cc1d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://22e41f296c3675c79ba6a670d081e073cdb935fd44f8e739a88a250be0766004\",\"dweb:/ipfs/QmZMYJq14i3q2zKTerD836DXC9deux4EggR3BNp61J4t2U\"]},\"src/strategies/LogNormal/LogNormal.sol\":{\"keccak256\":\"0xce0e14a6180d989eff4223bd173904717c745f93c7d02e972dce9d4f5a414d15\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0fe700ac552153eb030453532afdf52d7ae1b7f8ca53b0f050ab9a9e0b1f0ee9\",\"dweb:/ipfs/QmPQW7F1wUqLKs2qPmvJq5EiBfUmPGGsW4y9dUmMtDkfnt\"]},\"src/strategies/LogNormal/LogNormalLib.sol\":{\"keccak256\":\"0x208f8cd3b02d7305d4c54cf02c07f443ddfed1c6c719e752888be208c3ad3645\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://850b799c647dfbece76c7c1daad3ac375243f66daa0eb8206eeeee783982429c\",\"dweb:/ipfs/QmUrixVb4EAxccZxvZCoAJjF8YRqnMbX6cpGCwPfjZvgQk\"]},\"src/strategies/LogNormal/LogNormalMath.sol\":{\"keccak256\":\"0x5d97983f91cf766e1e87ef244a39c6ec6961de38c4c8817030b32edd72a1e65f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://df6121bf8157bad9b659d484fdcc8ebf0cd41179b323d06225d1cf6bff266663\",\"dweb:/ipfs/QmRGN6MwWZb9f6X4Xqv7f3VpUFWXFb36jDKcyEQVaFUhhz\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]},\"src/test/helpers/MockStrategy.sol\":{\"keccak256\":\"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5\",\"dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw\"]},\"src/test/helpers/SetUp.sol\":{\"keccak256\":\"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30\",\"dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14\"]},\"src/test/unit/DFMM/SetUp.sol\":{\"keccak256\":\"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4\",\"dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm\"]},\"src/test/unit/strategies/LogNormal/Init.t.sol\":{\"keccak256\":\"0x4e4a64d443cd6bd557bc3e5bd8b94a04641c6dc0e2cfb706cde8afcf6e515da6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://39e0fef97deb81d9e313f6ba5fcb7107bc6fe7c4bd4da599b083e66e23484cde\",\"dweb:/ipfs/QmReLZfmT53fDro1sN8QVGP2uSBeXNmEjRNGbxkCRAd8MB\"]},\"src/test/unit/strategies/LogNormal/SetUp.sol\":{\"keccak256\":\"0x272206974452b0c363a55f2658a4c24e6355f5a06fe817532c723af8f732540d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://87550594bcc0d4b66eada3e1692ac1b15064eefee9cbb356ff8c4410f4a51e78\",\"dweb:/ipfs/QmS3HCkpwfti4ifTitYoR5sRLb8ShMDvkW9ST9Ta8cUvu5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"lower","type":"uint256"},{"internalType":"uint256","name":"upper","type":"uint256"}],"type":"error","name":"BisectionLib_InvalidBounds"},{"inputs":[{"internalType":"int256","name":"lowerResult","type":"int256"},{"internalType":"int256","name":"upperResult","type":"int256"}],"type":"error","name":"BisectionLib_RootOutsideBounds"},{"inputs":[],"type":"error","name":"Infinity"},{"inputs":[],"type":"error","name":"Min"},{"inputs":[],"type":"error","name":"NegativeInfinity"},{"inputs":[],"type":"error","name":"OutOfBounds"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"POOL_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_SWAP_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolLiquidityToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_LogNormal_init_RevertsIfInvalidTokens"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_LogNormal_init_StoresPoolParameters"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/unit/strategies/LogNormal/Init.t.sol":"LogNormalInitTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/lib/SignedWadMath.sol":{"keccak256":"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630","urls":["bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a","dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN"],"license":"MIT"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/solvers/LogNormal/LogNormalExtendedLib.sol":{"keccak256":"0x204015cfa704225710b310e02fd4ea4648617f580cbb08fb22306357969e4a63","urls":["bzz-raw://0b2df304ee8a88040b573201316e12756e74c042fddbb4ec25d23ecd34971768","dweb:/ipfs/QmaC4vUQY6UAD6UrEF3rvMLyYbtQKuF9Bbgr3aqkGMzSqF"],"license":"GPL-3.0-or-later"},"src/solvers/LogNormal/LogNormalSolver.sol":{"keccak256":"0xe97dbbad3eb6aadeaaa7c9ad82cf08a79006ad3058e6dcbc2576e17d6337cc1d","urls":["bzz-raw://22e41f296c3675c79ba6a670d081e073cdb935fd44f8e739a88a250be0766004","dweb:/ipfs/QmZMYJq14i3q2zKTerD836DXC9deux4EggR3BNp61J4t2U"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormal.sol":{"keccak256":"0xce0e14a6180d989eff4223bd173904717c745f93c7d02e972dce9d4f5a414d15","urls":["bzz-raw://0fe700ac552153eb030453532afdf52d7ae1b7f8ca53b0f050ab9a9e0b1f0ee9","dweb:/ipfs/QmPQW7F1wUqLKs2qPmvJq5EiBfUmPGGsW4y9dUmMtDkfnt"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormalLib.sol":{"keccak256":"0x208f8cd3b02d7305d4c54cf02c07f443ddfed1c6c719e752888be208c3ad3645","urls":["bzz-raw://850b799c647dfbece76c7c1daad3ac375243f66daa0eb8206eeeee783982429c","dweb:/ipfs/QmUrixVb4EAxccZxvZCoAJjF8YRqnMbX6cpGCwPfjZvgQk"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormalMath.sol":{"keccak256":"0x5d97983f91cf766e1e87ef244a39c6ec6961de38c4c8817030b32edd72a1e65f","urls":["bzz-raw://df6121bf8157bad9b659d484fdcc8ebf0cd41179b323d06225d1cf6bff266663","dweb:/ipfs/QmRGN6MwWZb9f6X4Xqv7f3VpUFWXFb36jDKcyEQVaFUhhz"],"license":"GPL-3.0-or-later"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"},"src/test/helpers/MockStrategy.sol":{"keccak256":"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a","urls":["bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5","dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw"],"license":"UNLICENSED"},"src/test/helpers/SetUp.sol":{"keccak256":"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb","urls":["bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30","dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14"],"license":"UNLICENSED"},"src/test/unit/DFMM/SetUp.sol":{"keccak256":"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a","urls":["bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4","dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm"],"license":"UNLICENSED"},"src/test/unit/strategies/LogNormal/Init.t.sol":{"keccak256":"0x4e4a64d443cd6bd557bc3e5bd8b94a04641c6dc0e2cfb706cde8afcf6e515da6","urls":["bzz-raw://39e0fef97deb81d9e313f6ba5fcb7107bc6fe7c4bd4da599b083e66e23484cde","dweb:/ipfs/QmReLZfmT53fDro1sN8QVGP2uSBeXNmEjRNGbxkCRAd8MB"],"license":"UNLICENSED"},"src/test/unit/strategies/LogNormal/SetUp.sol":{"keccak256":"0x272206974452b0c363a55f2658a4c24e6355f5a06fe817532c723af8f732540d","urls":["bzz-raw://87550594bcc0d4b66eada3e1692ac1b15064eefee9cbb356ff8c4410f4a51e78","dweb:/ipfs/QmS3HCkpwfti4ifTitYoR5sRLb8ShMDvkW9ST9Ta8cUvu5"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/unit/strategies/LogNormal/Init.t.sol","id":48306,"exportedSymbols":{"ArbiterToken":[43381],"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"DFMM":[29062],"DFMMSetUp":[45761],"DSTest":[1786],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"LPToken":[29516],"Lex":[44392],"LibString":[26659],"LogNormal":[38879],"LogNormalInitTest":[48305],"LogNormalLib":[39517],"LogNormalSetUp":[48576],"LogNormalSolver":[36460],"MAX_ITER":[33842],"Min":[27736],"MockERC20":[25560],"MockStrategy":[44649],"ONE":[30639],"SQRT_WAD":[30630],"SafeTransferLib":[26744],"SetUp":[44852],"SignedWadMathLib":[30623],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"TWO":[30633],"Test":[8195],"TestBase":[1843],"Vm":[9352],"WETH":[26027],"ZERO":[30649],"abs":[27763],"bisection":[31118],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeD1":[34040],"computeD2":[34104],"computeHalfSigmaTauSquared":[39613],"computeInitialPoolData":[34282],"computeLGivenX":[33886],"computeLnSDivK":[39549],"computeNextLiquidity":[34383],"computeNextRx":[34484],"computeNextRy":[34585],"computeOptimalLower":[35332],"computeOptimalRaise":[35398],"computeScalingFactor":[30048],"computeSigmaSqrtTau":[39577],"computeXGivenL":[33976],"computeYGivenL":[33932],"console":[17416],"console2":[25512],"diffLower":[34961],"diffRaise":[35266],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"findRootLiquidity":[34224],"findRootLower":[34631],"findRootRaise":[34677],"findRootX":[34184],"findRootY":[34144],"muli":[27777],"muliWad":[27795],"mulidiv":[39703],"mulidivUp":[39659],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"39:1061:78","nodes":[{"id":48199,"nodeType":"PragmaDirective","src":"39:24:78","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":48200,"nodeType":"ImportDirective","src":"65:21:78","nodes":[],"absolutePath":"src/test/unit/strategies/LogNormal/SetUp.sol","file":"./SetUp.sol","nameLocation":"-1:-1:-1","scope":48306,"sourceUnit":48577,"symbolAliases":[],"unitAlias":""},{"id":48305,"nodeType":"ContractDefinition","src":"88:1011:78","nodes":[{"id":48264,"nodeType":"FunctionDefinition","src":"139:564:78","nodes":[],"body":{"id":48263,"nodeType":"Block","src":"203:500:78","nodes":[],"statements":[{"assignments":[48208,48210,48212,48214,48216,48218,null],"declarations":[{"constant":false,"id":48208,"mutability":"mutable","name":"strategy","nameLocation":"235:8:78","nodeType":"VariableDeclaration","scope":48263,"src":"227:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48207,"name":"address","nodeType":"ElementaryTypeName","src":"227:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48210,"mutability":"mutable","name":"tokenX","nameLocation":"265:6:78","nodeType":"VariableDeclaration","scope":48263,"src":"257:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48209,"name":"address","nodeType":"ElementaryTypeName","src":"257:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48212,"mutability":"mutable","name":"tokenY","nameLocation":"293:6:78","nodeType":"VariableDeclaration","scope":48263,"src":"285:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48211,"name":"address","nodeType":"ElementaryTypeName","src":"285:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48214,"mutability":"mutable","name":"reserveX","nameLocation":"321:8:78","nodeType":"VariableDeclaration","scope":48263,"src":"313:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48213,"name":"uint256","nodeType":"ElementaryTypeName","src":"313:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48216,"mutability":"mutable","name":"reserveY","nameLocation":"351:8:78","nodeType":"VariableDeclaration","scope":48263,"src":"343:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48215,"name":"uint256","nodeType":"ElementaryTypeName","src":"343:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48218,"mutability":"mutable","name":"totalLiquidity","nameLocation":"381:14:78","nodeType":"VariableDeclaration","scope":48263,"src":"373:22:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48217,"name":"uint256","nodeType":"ElementaryTypeName","src":"373:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":48223,"initialValue":{"arguments":[{"id":48221,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"420:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48219,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"409:4:78","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":48220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"414:5:78","memberName":"pools","nodeType":"MemberAccess","referencedDeclaration":27837,"src":"409:10:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$","typeString":"function (uint256) view external returns (address,address,address,uint256,uint256,uint256,address)"}},"id":48222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"409:19:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$","typeString":"tuple(address,address,address,uint256,uint256,uint256,address)"}},"nodeType":"VariableDeclarationStatement","src":"213:215:78"},{"expression":{"arguments":[{"id":48225,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48208,"src":"448:8:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":48228,"name":"logNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48315,"src":"466:9:78","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}],"id":48227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"458:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48226,"name":"address","nodeType":"ElementaryTypeName","src":"458:7:78","typeDescriptions":{}}},"id":48229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"458:18:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":48224,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":320,"src":"439:8:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":48230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"439:38:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48231,"nodeType":"ExpressionStatement","src":"439:38:78"},{"expression":{"arguments":[{"id":48233,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48210,"src":"496:6:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":48236,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48210,"src":"512:6:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"504:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48234,"name":"address","nodeType":"ElementaryTypeName","src":"504:7:78","typeDescriptions":{}}},"id":48237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"504:15:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":48232,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":320,"src":"487:8:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":48238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"487:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48239,"nodeType":"ExpressionStatement","src":"487:33:78"},{"expression":{"arguments":[{"id":48241,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48212,"src":"539:6:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":48244,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48212,"src":"555:6:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48243,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"547:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48242,"name":"address","nodeType":"ElementaryTypeName","src":"547:7:78","typeDescriptions":{}}},"id":48245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"547:15:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":48240,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":320,"src":"530:8:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":48246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"530:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48247,"nodeType":"ExpressionStatement","src":"530:33:78"},{"expression":{"arguments":[{"id":48249,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48214,"src":"582:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48250,"name":"defaultReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48337,"src":"592:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48248,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"573:8:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":48251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"573:35:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48252,"nodeType":"ExpressionStatement","src":"573:35:78"},{"expression":{"arguments":[{"id":48254,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48216,"src":"627:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48255,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48216,"src":"637:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48253,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"618:8:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":48256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"618:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48257,"nodeType":"ExpressionStatement","src":"618:28:78"},{"expression":{"arguments":[{"id":48259,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48218,"src":"665:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48260,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48218,"src":"681:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48258,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"656:8:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":48261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"656:40:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48262,"nodeType":"ExpressionStatement","src":"656:40:78"}]},"functionSelector":"110908dd","implemented":true,"kind":"function","modifiers":[{"id":48205,"kind":"modifierInvocation","modifierName":{"id":48204,"name":"init","nameLocations":["198:4:78"],"nodeType":"IdentifierPath","referencedDeclaration":48514,"src":"198:4:78"},"nodeType":"ModifierInvocation","src":"198:4:78"}],"name":"test_LogNormal_init_StoresPoolParameters","nameLocation":"148:40:78","parameters":{"id":48203,"nodeType":"ParameterList","parameters":[],"src":"188:2:78"},"returnParameters":{"id":48206,"nodeType":"ParameterList","parameters":[],"src":"203:0:78"},"scope":48305,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":48304,"nodeType":"FunctionDefinition","src":"709:388:78","nodes":[],"body":{"id":48303,"nodeType":"Block","src":"770:327:78","nodes":[],"statements":[{"assignments":[48271],"declarations":[{"constant":false,"id":48271,"mutability":"mutable","name":"initParams","nameLocation":"804:10:78","nodeType":"VariableDeclaration","scope":48303,"src":"780:34:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":48270,"nodeType":"UserDefinedTypeName","pathNode":{"id":48269,"name":"IDFMM.InitParams","nameLocations":["780:5:78","786:10:78"],"nodeType":"IdentifierPath","referencedDeclaration":29543,"src":"780:16:78"},"referencedDeclaration":29543,"src":"780:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"id":48288,"initialValue":{"arguments":[{"arguments":[{"id":48276,"name":"logNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48315,"src":"866:9:78","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}],"id":48275,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"858:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48274,"name":"address","nodeType":"ElementaryTypeName","src":"858:7:78","typeDescriptions":{}}},"id":48277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"858:18:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":48280,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"906:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":48279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"898:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48278,"name":"address","nodeType":"ElementaryTypeName","src":"898:7:78","typeDescriptions":{}}},"id":48281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"898:15:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":48284,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"943:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":48283,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"935:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48282,"name":"address","nodeType":"ElementaryTypeName","src":"935:7:78","typeDescriptions":{}}},"id":48285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"935:15:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48286,"name":"defaultInitialPoolData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48347,"src":"970:22:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"expression":{"id":48272,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"817:5:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":48273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"823:10:78","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":29543,"src":"817:16:78","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$29543_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":48287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["848:8:78","890:6:78","927:6:78","964:4:78"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"817:186:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}},"nodeType":"VariableDeclarationStatement","src":"780:223:78"},{"expression":{"arguments":[{"expression":{"expression":{"id":48292,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"1030:5:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":48293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1036:13:78","memberName":"InvalidTokens","nodeType":"MemberAccess","referencedDeclaration":29555,"src":"1030:19:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":48294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1050:8:78","memberName":"selector","nodeType":"MemberAccess","src":"1030:28:78","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":48289,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"1014:2:78","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":48291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1017:12:78","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":9121,"src":"1014:15:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes4_$returns$__$","typeString":"function (bytes4) external"}},"id":48295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1014:45:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48296,"nodeType":"ExpressionStatement","src":"1014:45:78"},{"expression":{"arguments":[{"id":48300,"name":"initParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48271,"src":"1079:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":48297,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1069:4:78","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":48299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1074:4:78","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":28091,"src":"1069:9:78","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$29543_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":48301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1069:21:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"id":48302,"nodeType":"ExpressionStatement","src":"1069:21:78"}]},"functionSelector":"acc9d6b7","implemented":true,"kind":"function","modifiers":[],"name":"test_LogNormal_init_RevertsIfInvalidTokens","nameLocation":"718:42:78","parameters":{"id":48265,"nodeType":"ParameterList","parameters":[],"src":"760:2:78"},"returnParameters":{"id":48266,"nodeType":"ParameterList","parameters":[],"src":"770:0:78"},"scope":48305,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":48201,"name":"LogNormalSetUp","nameLocations":["118:14:78"],"nodeType":"IdentifierPath","referencedDeclaration":48576,"src":"118:14:78"},"id":48202,"nodeType":"InheritanceSpecifier","src":"118:14:78"}],"canonicalName":"LogNormalInitTest","contractDependencies":[25560,29062,36460,38879,44392],"contractKind":"contract","fullyImplemented":true,"internalFunctionIDs":{"34224":1},"linearizedBaseContracts":[48305,48576,44852,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"LogNormalInitTest","nameLocation":"97:17:78","scope":48306,"usedErrors":[26761,26763,26765,27736,30985,30992],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":78} \ No newline at end of file diff --git a/out/Invariant.sol/Invariant.json b/out/Invariant.sol/Invariant.json deleted file mode 100644 index 4a3b744d..00000000 --- a/out/Invariant.sol/Invariant.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"error","name":"OOB","inputs":[]}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212204a11d29c64b95cb0faf59ba341539dcd3923fba640c2e69e7ca3d23a7270b10064736f6c63430008160033","sourceMap":"2241:5664:22:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212204a11d29c64b95cb0faf59ba341539dcd3923fba640c2e69e7ca3d23a7270b10064736f6c63430008160033","sourceMap":"2241:5664:22:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"OOB\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"@alexangelj\",\"details\":\"Terms which can potentially be ambiguous are given discrete names. This makes it easier to search for terms and update terms. Variables can sometimes not be trusted to be or act like their names. This naming scheme avoids this problem using a glossary to define them. // -------------------- Glossary --------------------- // `R_x` - Amount of asset token reserves per single unit of liquidity. `R_y` - Amount of quote token reserves per single unit of liquidity. `stk` - Strike price of the pool. The terminal price of each asset token. `vol` - Implied volatility of the pool. Higher vol = higher price impact on swaps. `tau` - Time until the pool expires. Amount of seconds until the pool's curve becomes flat around `stk`. `inv` - Invariant of the pool. Difference between theoretical $ value and actual $ value per liquidity. `WAD` - Signed or unsigned fixed point number with up to 18 decimals and up to 256 total bits wide. `YEAR`- Equal to the amount of seconds in a year. Used in `invariant` function. // -------------------- Units ------------------------ // `R_x` - Units are unsigned WAD. Represents value of tokens, decimals matter. `R_y` - Units are unsigned WAD. Represents value of tokens, decimals matter. `stk` - Units are unsigned WAD. Represents value of tokens, decimals matter. `vol` - Units are unsigned WAD. Represents a percentage in which 100% = WAD. `tau` - Units are YEAR. Represents a time unit which `1.0` is equal to YEAR. `inv` - Units are signed WAD. Initial value of zero and decreases over time. // -------------------- Denoted By ----------------- // `R_x` - Denoted by `x`. `R_y` - Denoted by `y`. `stk` - Denoted by `K`. `vol` - Denoted by `\\u03c3`. `tau` - Denoted by `\\u03c4`. `inv` - Denoted by `k`. // -------------------- Error Bounds ----------------- // `inv` - Up to 1e-9. // ------------------------ ~ ------------------------ //\",\"errors\":{\"OOB()\":[{\"details\":\"Reverts when an input value is out of bounds of its acceptable range.\"}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"Invariant of Primitive RMM.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Invariant is `k` with the trading function `k = y - K\\u03a6(\\u03a6\\u207b\\u00b9(1-x) - \\u03c3\\u221a\\u03c4)`.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/src/Invariant.sol\":\"Invariant\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Invariant.sol\":{\"keccak256\":\"0xc1b1bd5e16204c135ff82855b5e01045505efefa48c986356a01e58517f65006\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6163e9486820eae1ff3ee3af534032360099f5bd61617ab48dea415009d6062f\",\"dweb:/ipfs/QmddfNakL2FyWsFoB6AjmGn9oVE95tNG1xXmc9M7PUGHka\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"OOB"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/src/Invariant.sol":"Invariant"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Invariant.sol":{"keccak256":"0xc1b1bd5e16204c135ff82855b5e01045505efefa48c986356a01e58517f65006","urls":["bzz-raw://6163e9486820eae1ff3ee3af534032360099f5bd61617ab48dea415009d6062f","dweb:/ipfs/QmddfNakL2FyWsFoB6AjmGn9oVE95tNG1xXmc9M7PUGHka"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/src/Invariant.sol","id":27733,"exportedSymbols":{"FixedPointMathLib":[26640],"Gaussian":[27374],"Invariant":[27732],"Min":[27736],"abs":[27763],"diviWad":[27813],"muli":[27777],"muliWad":[27795]},"nodeType":"SourceUnit","src":"32:7874:22","nodes":[{"id":27376,"nodeType":"PragmaDirective","src":"32:23:22","nodes":[],"literals":["solidity","^","0.8",".4"]},{"id":27377,"nodeType":"ImportDirective","src":"57:24:22","nodes":[],"absolutePath":"lib/solstat/src/Gaussian.sol","file":"./Gaussian.sol","nameLocation":"-1:-1:-1","scope":27733,"sourceUnit":27375,"symbolAliases":[],"unitAlias":""},{"id":27732,"nodeType":"ContractDefinition","src":"2241:5664:22","nodes":[{"id":27381,"nodeType":"UsingForDirective","src":"2265:26:22","nodes":[],"global":false,"libraryName":{"id":27379,"name":"Gaussian","nameLocations":["2271:8:22"],"nodeType":"IdentifierPath","referencedDeclaration":27374,"src":"2271:8:22"},"typeName":{"id":27380,"name":"int256","nodeType":"ElementaryTypeName","src":"2284:6:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":27384,"nodeType":"UsingForDirective","src":"2296:36:22","nodes":[],"global":false,"libraryName":{"id":27382,"name":"FixedPointMathLib","nameLocations":["2302:17:22"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"2302:17:22"},"typeName":{"id":27383,"name":"uint256","nodeType":"ElementaryTypeName","src":"2324:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":27387,"nodeType":"VariableDeclaration","src":"2338:39:22","nodes":[],"constant":true,"mutability":"constant","name":"WAD","nameLocation":"2364:3:22","scope":27732,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27385,"name":"uint256","nodeType":"ElementaryTypeName","src":"2338:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":27386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2370:7:22","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":27390,"nodeType":"VariableDeclaration","src":"2383:38:22","nodes":[],"constant":true,"mutability":"constant","name":"ONE","nameLocation":"2408:3:22","scope":27732,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27388,"name":"int256","nodeType":"ElementaryTypeName","src":"2383:6:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"31","id":27389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2414:7:22","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":27393,"nodeType":"VariableDeclaration","src":"2427:40:22","nodes":[],"constant":true,"mutability":"constant","name":"YEAR","nameLocation":"2452:4:22","scope":27732,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27391,"name":"int256","nodeType":"ElementaryTypeName","src":"2427:6:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"3331353536393532","id":27392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2459:8:22","typeDescriptions":{"typeIdentifier":"t_rational_31556952_by_1","typeString":"int_const 31556952"},"value":"31556952"},"visibility":"internal"},{"id":27396,"nodeType":"VariableDeclaration","src":"2473:42:22","nodes":[],"constant":true,"mutability":"constant","name":"HALF_SCALAR","nameLocation":"2498:11:22","scope":27732,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27394,"name":"int256","nodeType":"ElementaryTypeName","src":"2473:6:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"316539","id":27395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2512:3:22","typeDescriptions":{"typeIdentifier":"t_rational_1000000000_by_1","typeString":"int_const 1000000000"},"value":"1e9"},"visibility":"internal"},{"id":27399,"nodeType":"ErrorDefinition","src":"2620:12:22","nodes":[],"documentation":{"id":27397,"nodeType":"StructuredDocumentation","src":"2522:93:22","text":" @dev Reverts when an input value is out of bounds of its acceptable range."},"errorSelector":"aaf3956f","name":"OOB","nameLocation":"2626:3:22","parameters":{"id":27398,"nodeType":"ParameterList","parameters":[],"src":"2629:2:22"}},{"id":27549,"nodeType":"FunctionDefinition","src":"3967:1061:22","nodes":[],"body":{"id":27548,"nodeType":"Block","src":"4081:947:22","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27415,"name":"R_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27402,"src":"4095:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":27416,"name":"WAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27387,"src":"4101:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4095:9:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27421,"nodeType":"IfStatement","src":"4091:27:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":27418,"name":"OOB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27399,"src":"4113:3:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":27419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4113:5:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27420,"nodeType":"RevertStatement","src":"4106:12:22"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27422,"name":"R_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27402,"src":"4172:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":27423,"name":"WAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27387,"src":"4179:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4172:10:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27430,"nodeType":"IfStatement","src":"4168:35:22","trueBody":{"expression":{"arguments":[{"id":27427,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27410,"src":"4199:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4191:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":27425,"name":"uint256","nodeType":"ElementaryTypeName","src":"4191:7:22","typeDescriptions":{}}},"id":27428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4191:12:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":27414,"id":27429,"nodeType":"Return","src":"4184:19:22"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27431,"name":"R_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27402,"src":"4320:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":27432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4327:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4320:8:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27444,"nodeType":"IfStatement","src":"4316:47:22","trueBody":{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":27438,"name":"stk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27404,"src":"4352:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4345:6:22","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":27436,"name":"int256","nodeType":"ElementaryTypeName","src":"4345:6:22","typeDescriptions":{}}},"id":27439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4345:11:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":27440,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27410,"src":"4359:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4345:17:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4337:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":27434,"name":"uint256","nodeType":"ElementaryTypeName","src":"4337:7:22","typeDescriptions":{}}},"id":27442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4337:26:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":27414,"id":27443,"nodeType":"Return","src":"4330:33:22"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27445,"name":"tau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27408,"src":"4484:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":27446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4491:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4484:8:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":27546,"nodeType":"Block","src":"4937:85:22","statements":[{"expression":{"id":27544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27526,"name":"R_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27413,"src":"4951:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":27532,"name":"stk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27404,"src":"4980:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4973:6:22","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":27530,"name":"int256","nodeType":"ElementaryTypeName","src":"4973:6:22","typeDescriptions":{}}},"id":27533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4973:11:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27534,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27390,"src":"4986:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":27537,"name":"R_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27402,"src":"4999:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4992:6:22","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":27535,"name":"int256","nodeType":"ElementaryTypeName","src":"4992:6:22","typeDescriptions":{}}},"id":27538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4992:11:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4986:17:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27529,"name":"muliWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27795,"src":"4965:7:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":27540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4965:39:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":27541,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27410,"src":"5007:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4965:45:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4957:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":27527,"name":"uint256","nodeType":"ElementaryTypeName","src":"4957:7:22","typeDescriptions":{}}},"id":27543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4957:54:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4951:60:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27545,"nodeType":"ExpressionStatement","src":"4951:60:22"}]},"id":27547,"nodeType":"IfStatement","src":"4480:542:22","trueBody":{"id":27525,"nodeType":"Block","src":"4494:437:22","statements":[{"assignments":[27449],"declarations":[{"constant":false,"id":27449,"mutability":"mutable","name":"sec","nameLocation":"4545:3:22","nodeType":"VariableDeclaration","scope":27525,"src":"4537:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27448,"name":"uint256","nodeType":"ElementaryTypeName","src":"4537:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27457,"initialValue":{"arguments":[{"arguments":[{"id":27454,"name":"YEAR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27393,"src":"4574:4:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4566:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":27452,"name":"uint256","nodeType":"ElementaryTypeName","src":"4566:7:22","typeDescriptions":{}}},"id":27455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4566:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27450,"name":"tau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27408,"src":"4551:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4555:10:22","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"4551:14:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":27456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4551:29:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4537:43:22"},{"assignments":[27459],"declarations":[{"constant":false,"id":27459,"mutability":"mutable","name":"sdr","nameLocation":"4602:3:22","nodeType":"VariableDeclaration","scope":27525,"src":"4594:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27458,"name":"uint256","nodeType":"ElementaryTypeName","src":"4594:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27463,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":27460,"name":"sec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27449,"src":"4608:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4612:4:22","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":26589,"src":"4608:8:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":27462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4608:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4594:24:22"},{"expression":{"id":27471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27464,"name":"sdr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27459,"src":"4632:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27465,"name":"sdr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27459,"src":"4638:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":27468,"name":"HALF_SCALAR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27396,"src":"4652:11:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4644:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":27466,"name":"uint256","nodeType":"ElementaryTypeName","src":"4644:7:22","typeDescriptions":{}}},"id":27469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4644:20:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4638:26:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4632:32:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27472,"nodeType":"ExpressionStatement","src":"4632:32:22"},{"expression":{"id":27478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27473,"name":"sdr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27459,"src":"4678:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27476,"name":"sdr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27459,"src":"4699:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27474,"name":"vol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27406,"src":"4684:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4688:10:22","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"4684:14:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":27477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4684:19:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4678:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27479,"nodeType":"ExpressionStatement","src":"4678:25:22"},{"assignments":[27481],"declarations":[{"constant":false,"id":27481,"mutability":"mutable","name":"phi","nameLocation":"4725:3:22","nodeType":"VariableDeclaration","scope":27525,"src":"4718:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27480,"name":"int256","nodeType":"ElementaryTypeName","src":"4718:6:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27488,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27482,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27390,"src":"4731:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":27485,"name":"R_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27402,"src":"4744:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4737:6:22","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":27483,"name":"int256","nodeType":"ElementaryTypeName","src":"4737:6:22","typeDescriptions":{}}},"id":27486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4737:11:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4731:17:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"4718:30:22"},{"expression":{"id":27493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27489,"name":"phi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27481,"src":"4762:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":27490,"name":"phi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27481,"src":"4768:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4772:3:22","memberName":"ppf","nodeType":"MemberAccess","referencedDeclaration":27373,"src":"4768:7:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":27492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4768:9:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4762:15:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27494,"nodeType":"ExpressionStatement","src":"4762:15:22"},{"assignments":[27496],"declarations":[{"constant":false,"id":27496,"mutability":"mutable","name":"input","nameLocation":"4799:5:22","nodeType":"VariableDeclaration","scope":27525,"src":"4792:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27495,"name":"int256","nodeType":"ElementaryTypeName","src":"4792:6:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27503,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27497,"name":"phi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27481,"src":"4807:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":27500,"name":"sdr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27459,"src":"4820:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4813:6:22","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":27498,"name":"int256","nodeType":"ElementaryTypeName","src":"4813:6:22","typeDescriptions":{}}},"id":27501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4813:11:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4807:17:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"4792:32:22"},{"expression":{"id":27508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27504,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27496,"src":"4838:5:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":27505,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27496,"src":"4846:5:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4852:3:22","memberName":"cdf","nodeType":"MemberAccess","referencedDeclaration":27280,"src":"4846:9:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":27507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4846:11:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4838:19:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27509,"nodeType":"ExpressionStatement","src":"4838:19:22"},{"expression":{"id":27523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27510,"name":"R_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27413,"src":"4872:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":27516,"name":"stk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27404,"src":"4901:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4894:6:22","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":27514,"name":"int256","nodeType":"ElementaryTypeName","src":"4894:6:22","typeDescriptions":{}}},"id":27517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4894:11:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":27518,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27496,"src":"4907:5:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27513,"name":"muliWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27795,"src":"4886:7:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":27519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4886:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":27520,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27410,"src":"4916:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4886:33:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27512,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4878:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":27511,"name":"uint256","nodeType":"ElementaryTypeName","src":"4878:7:22","typeDescriptions":{}}},"id":27522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4878:42:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4872:48:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27524,"nodeType":"ExpressionStatement","src":"4872:48:22"}]}}]},"documentation":{"id":27400,"nodeType":"StructuredDocumentation","src":"2638:1324:22","text":" @notice Uses reserves `R_x` to compute reserves `R_y`.\n @dev Computes `y` in `y = KΦ(Φ⁻¹(1-x) - σ√τ) + k`.\n Primary function use to compute the invariant.\n Simplifies to `K(1 -x) + k` when time to expiry is zero.\n Reverts if `R_x` is greater than one. Units are a fixed point number with 18 decimals.\n We handle some special cases, try this:\n `normalcd(normalicd(1) - 0.1)` in https://keisan.casio.com/calculator\n Gaussian.sol reverts for `ppf(1)` and `ppf(0)`, so we handle those cases.\n @param R_x Quantity of token reserve `x` within the bounds of [0, 1].\n @param stk Strike price of the pool. Terminal price of asset `x` in the pool denominated in asset `y`.\n @param vol Implied volatility of the pool. Higher implied volatility = higher price impact on swaps.\n @param tau Time until the pool expires. Once expired, no swaps can happen. Scaled to units of `Invariant.YEAR`.\n @param inv Current invariant given the actual `R_x`. Zero if computing invariant itself.\n @return R_y Quantity of token reserve `y` within the bounds of [0, stk].\n @custom:error Technically, none. This is the source of truth for the trading function.\n @custom:source https://primitive.xyz/whitepaper"},"implemented":true,"kind":"function","modifiers":[],"name":"getY","nameLocation":"3976:4:22","parameters":{"id":27411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27402,"mutability":"mutable","name":"R_x","nameLocation":"3989:3:22","nodeType":"VariableDeclaration","scope":27549,"src":"3981:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27401,"name":"uint256","nodeType":"ElementaryTypeName","src":"3981:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27404,"mutability":"mutable","name":"stk","nameLocation":"4002:3:22","nodeType":"VariableDeclaration","scope":27549,"src":"3994:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27403,"name":"uint256","nodeType":"ElementaryTypeName","src":"3994:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27406,"mutability":"mutable","name":"vol","nameLocation":"4015:3:22","nodeType":"VariableDeclaration","scope":27549,"src":"4007:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27405,"name":"uint256","nodeType":"ElementaryTypeName","src":"4007:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27408,"mutability":"mutable","name":"tau","nameLocation":"4028:3:22","nodeType":"VariableDeclaration","scope":27549,"src":"4020:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27407,"name":"uint256","nodeType":"ElementaryTypeName","src":"4020:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27410,"mutability":"mutable","name":"inv","nameLocation":"4040:3:22","nodeType":"VariableDeclaration","scope":27549,"src":"4033:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27409,"name":"int256","nodeType":"ElementaryTypeName","src":"4033:6:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3980:64:22"},"returnParameters":{"id":27414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27413,"mutability":"mutable","name":"R_y","nameLocation":"4076:3:22","nodeType":"VariableDeclaration","scope":27549,"src":"4068:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27412,"name":"uint256","nodeType":"ElementaryTypeName","src":"4068:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4067:13:22"},"scope":27732,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27703,"nodeType":"FunctionDefinition","src":"6199:1115:22","nodes":[],"body":{"id":27702,"nodeType":"Block","src":"6313:1001:22","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27565,"name":"tau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27558,"src":"6386:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":27566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6393:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6386:8:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":27700,"nodeType":"Block","src":"7135:173:22","statements":[{"assignments":[27673],"declarations":[{"constant":false,"id":27673,"mutability":"mutable","name":"numerator","nameLocation":"7156:9:22","nodeType":"VariableDeclaration","scope":27700,"src":"7149:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27672,"name":"int256","nodeType":"ElementaryTypeName","src":"7149:6:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27680,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":27676,"name":"R_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27552,"src":"7175:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27675,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7168:6:22","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":27674,"name":"int256","nodeType":"ElementaryTypeName","src":"7168:6:22","typeDescriptions":{}}},"id":27677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7168:11:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":27678,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27560,"src":"7182:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7168:17:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"7149:36:22"},{"assignments":[27682],"declarations":[{"constant":false,"id":27682,"mutability":"mutable","name":"denominator","nameLocation":"7206:11:22","nodeType":"VariableDeclaration","scope":27700,"src":"7199:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27681,"name":"int256","nodeType":"ElementaryTypeName","src":"7199:6:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27687,"initialValue":{"arguments":[{"id":27685,"name":"stk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27554,"src":"7227:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7220:6:22","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":27683,"name":"int256","nodeType":"ElementaryTypeName","src":"7220:6:22","typeDescriptions":{}}},"id":27686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7220:11:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"7199:32:22"},{"expression":{"id":27698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27688,"name":"R_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27563,"src":"7245:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27691,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27390,"src":"7259:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":27693,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27673,"src":"7273:9:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":27694,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27682,"src":"7284:11:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27692,"name":"diviWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27813,"src":"7265:7:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":27695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7265:31:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7259:37:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27690,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7251:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":27689,"name":"uint256","nodeType":"ElementaryTypeName","src":"7251:7:22","typeDescriptions":{}}},"id":27697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7251:46:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7245:52:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27699,"nodeType":"ExpressionStatement","src":"7245:52:22"}]},"id":27701,"nodeType":"IfStatement","src":"6382:926:22","trueBody":{"id":27671,"nodeType":"Block","src":"6396:733:22","statements":[{"assignments":[27569],"declarations":[{"constant":false,"id":27569,"mutability":"mutable","name":"sec","nameLocation":"6418:3:22","nodeType":"VariableDeclaration","scope":27671,"src":"6410:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27568,"name":"uint256","nodeType":"ElementaryTypeName","src":"6410:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27577,"initialValue":{"arguments":[{"arguments":[{"id":27574,"name":"YEAR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27393,"src":"6447:4:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6439:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":27572,"name":"uint256","nodeType":"ElementaryTypeName","src":"6439:7:22","typeDescriptions":{}}},"id":27575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6439:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27570,"name":"tau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27558,"src":"6424:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6428:10:22","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"6424:14:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":27576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6424:29:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6410:43:22"},{"assignments":[27579],"declarations":[{"constant":false,"id":27579,"mutability":"mutable","name":"sdr","nameLocation":"6476:3:22","nodeType":"VariableDeclaration","scope":27671,"src":"6468:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27578,"name":"uint256","nodeType":"ElementaryTypeName","src":"6468:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27583,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":27580,"name":"sec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27569,"src":"6482:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6486:4:22","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":26589,"src":"6482:8:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":27582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6482:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6468:24:22"},{"expression":{"id":27591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27584,"name":"sdr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27579,"src":"6506:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27585,"name":"sdr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27579,"src":"6512:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":27588,"name":"HALF_SCALAR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27396,"src":"6526:11:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27587,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6518:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":27586,"name":"uint256","nodeType":"ElementaryTypeName","src":"6518:7:22","typeDescriptions":{}}},"id":27589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6518:20:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6512:26:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6506:32:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27592,"nodeType":"ExpressionStatement","src":"6506:32:22"},{"expression":{"id":27598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27593,"name":"sdr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27579,"src":"6552:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27596,"name":"sdr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27579,"src":"6573:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27594,"name":"vol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27556,"src":"6558:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6562:10:22","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"6558:14:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":27597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6558:19:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6552:25:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27599,"nodeType":"ExpressionStatement","src":"6552:25:22"},{"assignments":[27601],"declarations":[{"constant":false,"id":27601,"mutability":"mutable","name":"phi","nameLocation":"6599:3:22","nodeType":"VariableDeclaration","scope":27671,"src":"6592:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27600,"name":"int256","nodeType":"ElementaryTypeName","src":"6592:6:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27614,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":27605,"name":"R_y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27552,"src":"6620:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6613:6:22","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":27603,"name":"int256","nodeType":"ElementaryTypeName","src":"6613:6:22","typeDescriptions":{}}},"id":27606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6613:11:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":27607,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27560,"src":"6627:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6613:17:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"arguments":[{"id":27611,"name":"stk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27554,"src":"6639:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6632:6:22","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":27609,"name":"int256","nodeType":"ElementaryTypeName","src":"6632:6:22","typeDescriptions":{}}},"id":27612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6632:11:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27602,"name":"diviWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27813,"src":"6605:7:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":27613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6605:39:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6592:52:22"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27615,"name":"phi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27601,"src":"6663:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":27616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6669:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6663:7:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27621,"nodeType":"IfStatement","src":"6659:25:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":27618,"name":"OOB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27399,"src":"6679:3:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":27619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6679:5:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27620,"nodeType":"RevertStatement","src":"6672:12:22"}},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27622,"name":"phi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27601,"src":"6742:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":27623,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27390,"src":"6748:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6742:9:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27628,"nodeType":"IfStatement","src":"6738:27:22","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":27625,"name":"OOB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27399,"src":"6760:3:22","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":27626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6760:5:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27627,"nodeType":"RevertStatement","src":"6753:12:22"}},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27629,"name":"phi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27601,"src":"6783:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":27630,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27390,"src":"6790:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6783:10:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27634,"nodeType":"IfStatement","src":"6779:24:22","trueBody":{"expression":{"hexValue":"30","id":27632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6802:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":27564,"id":27633,"nodeType":"Return","src":"6795:8:22"}},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27635,"name":"phi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27601,"src":"6885:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":27636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6892:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6885:8:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27640,"nodeType":"IfStatement","src":"6881:24:22","trueBody":{"expression":{"id":27638,"name":"WAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27387,"src":"6902:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":27564,"id":27639,"nodeType":"Return","src":"6895:10:22"}},{"expression":{"id":27645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27641,"name":"phi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27601,"src":"6983:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":27642,"name":"phi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27601,"src":"6989:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6993:3:22","memberName":"ppf","nodeType":"MemberAccess","referencedDeclaration":27373,"src":"6989:7:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":27644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6989:9:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6983:15:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27646,"nodeType":"ExpressionStatement","src":"6983:15:22"},{"assignments":[27648],"declarations":[{"constant":false,"id":27648,"mutability":"mutable","name":"input","nameLocation":"7020:5:22","nodeType":"VariableDeclaration","scope":27671,"src":"7013:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27647,"name":"int256","nodeType":"ElementaryTypeName","src":"7013:6:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":27655,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27649,"name":"phi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27601,"src":"7028:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":27652,"name":"sdr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27579,"src":"7041:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7034:6:22","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":27650,"name":"int256","nodeType":"ElementaryTypeName","src":"7034:6:22","typeDescriptions":{}}},"id":27653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7034:11:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7028:17:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"7013:32:22"},{"expression":{"id":27660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27656,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27648,"src":"7059:5:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":27657,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27648,"src":"7067:5:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7073:3:22","memberName":"cdf","nodeType":"MemberAccess","referencedDeclaration":27280,"src":"7067:9:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":27659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7067:11:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7059:19:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27661,"nodeType":"ExpressionStatement","src":"7059:19:22"},{"expression":{"id":27669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27662,"name":"R_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27563,"src":"7092:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27665,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27390,"src":"7106:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":27666,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27648,"src":"7112:5:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7106:11:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7098:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":27663,"name":"uint256","nodeType":"ElementaryTypeName","src":"7098:7:22","typeDescriptions":{}}},"id":27668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7098:20:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7092:26:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27670,"nodeType":"ExpressionStatement","src":"7092:26:22"}]}}]},"documentation":{"id":27550,"nodeType":"StructuredDocumentation","src":"5034:1160:22","text":" @notice Uses reserves `R_y` to compute reserves `R_x`.\n @dev Computes `x` in `x = 1 - Φ(Φ⁻¹( (y + k) / K ) + σ√τ)`.\n Not used in invariant function. Used for computing swap outputs.\n Simplifies to `1 - ( (y + k) / K )` when time to expiry is zero.\n Reverts if `R_y` is greater than one. Units are WAD.\n Dangerous! There are important bounds to using this function.\n @param R_y Quantity of token reserve `y` within the bounds of [0, stk].\n @param stk Strike price of the pool. Terminal price of asset `x` in the pool denominated in asset `y`.\n @param vol Implied volatility of the pool. Higher implied volatility = higher price impact on swaps.\n @param tau Time until the pool expires. Once expired, no swaps can happen. Scaled to units of `Invariant.YEAR`.\n @param inv Current invariant given the actual reserves `R_y`.\n @return R_x Quantity of token reserve `x` within the bounds of [0, 1].\n @custom:error Up to 1e-6. This an **approximated** \"inverse\" of the `getY` function.\n @custom:source https://primitive.xyz/whitepaper"},"implemented":true,"kind":"function","modifiers":[],"name":"getX","nameLocation":"6208:4:22","parameters":{"id":27561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27552,"mutability":"mutable","name":"R_y","nameLocation":"6221:3:22","nodeType":"VariableDeclaration","scope":27703,"src":"6213:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27551,"name":"uint256","nodeType":"ElementaryTypeName","src":"6213:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27554,"mutability":"mutable","name":"stk","nameLocation":"6234:3:22","nodeType":"VariableDeclaration","scope":27703,"src":"6226:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27553,"name":"uint256","nodeType":"ElementaryTypeName","src":"6226:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27556,"mutability":"mutable","name":"vol","nameLocation":"6247:3:22","nodeType":"VariableDeclaration","scope":27703,"src":"6239:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27555,"name":"uint256","nodeType":"ElementaryTypeName","src":"6239:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27558,"mutability":"mutable","name":"tau","nameLocation":"6260:3:22","nodeType":"VariableDeclaration","scope":27703,"src":"6252:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27557,"name":"uint256","nodeType":"ElementaryTypeName","src":"6252:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27560,"mutability":"mutable","name":"inv","nameLocation":"6272:3:22","nodeType":"VariableDeclaration","scope":27703,"src":"6265:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27559,"name":"int256","nodeType":"ElementaryTypeName","src":"6265:6:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"6212:64:22"},"returnParameters":{"id":27564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27563,"mutability":"mutable","name":"R_x","nameLocation":"6308:3:22","nodeType":"VariableDeclaration","scope":27703,"src":"6300:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27562,"name":"uint256","nodeType":"ElementaryTypeName","src":"6300:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6299:13:22"},"scope":27732,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27731,"nodeType":"FunctionDefinition","src":"7585:318:22","nodes":[],"body":{"id":27730,"nodeType":"Block","src":"7732:171:22","nodes":[],"statements":[{"assignments":[27720],"declarations":[{"constant":false,"id":27720,"mutability":"mutable","name":"y","nameLocation":"7750:1:22","nodeType":"VariableDeclaration","scope":27730,"src":"7742:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27719,"name":"uint256","nodeType":"ElementaryTypeName","src":"7742:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27728,"initialValue":{"arguments":[{"id":27722,"name":"R_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27708,"src":"7759:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27723,"name":"stk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27710,"src":"7764:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27724,"name":"vol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27712,"src":"7769:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27725,"name":"tau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27714,"src":"7774:3:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27726,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27717,"src":"7779:3:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27721,"name":"getY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27549,"src":"7754:4:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_int256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,int256) pure returns (uint256)"}},"id":27727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7754:29:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7742:41:22"},{"AST":{"nativeSrc":"7855:42:22","nodeType":"YulBlock","src":"7855:42:22","statements":[{"nativeSrc":"7869:18:22","nodeType":"YulAssignment","src":"7869:18:22","value":{"arguments":[{"name":"R_y","nativeSrc":"7880:3:22","nodeType":"YulIdentifier","src":"7880:3:22"},{"name":"y","nativeSrc":"7885:1:22","nodeType":"YulIdentifier","src":"7885:1:22"}],"functionName":{"name":"sub","nativeSrc":"7876:3:22","nodeType":"YulIdentifier","src":"7876:3:22"},"nativeSrc":"7876:11:22","nodeType":"YulFunctionCall","src":"7876:11:22"},"variableNames":[{"name":"inv","nativeSrc":"7869:3:22","nodeType":"YulIdentifier","src":"7869:3:22"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":27706,"isOffset":false,"isSlot":false,"src":"7880:3:22","valueSize":1},{"declaration":27717,"isOffset":false,"isSlot":false,"src":"7869:3:22","valueSize":1},{"declaration":27720,"isOffset":false,"isSlot":false,"src":"7885:1:22","valueSize":1}],"id":27729,"nodeType":"InlineAssembly","src":"7846:51:22"}]},"documentation":{"id":27704,"nodeType":"StructuredDocumentation","src":"7320:260:22","text":" @notice Computes the invariant of the RMM trading function.\n @dev Computes `k` in `k = y - KΦ(Φ⁻¹(1-x) - σ√τ)`.\n Used to validate swaps, the most critical function.\n @custom:source https://rmm.eth.xyz"},"implemented":true,"kind":"function","modifiers":[],"name":"invariant","nameLocation":"7594:9:22","parameters":{"id":27715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27706,"mutability":"mutable","name":"R_y","nameLocation":"7612:3:22","nodeType":"VariableDeclaration","scope":27731,"src":"7604:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27705,"name":"uint256","nodeType":"ElementaryTypeName","src":"7604:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27708,"mutability":"mutable","name":"R_x","nameLocation":"7625:3:22","nodeType":"VariableDeclaration","scope":27731,"src":"7617:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27707,"name":"uint256","nodeType":"ElementaryTypeName","src":"7617:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27710,"mutability":"mutable","name":"stk","nameLocation":"7638:3:22","nodeType":"VariableDeclaration","scope":27731,"src":"7630:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27709,"name":"uint256","nodeType":"ElementaryTypeName","src":"7630:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27712,"mutability":"mutable","name":"vol","nameLocation":"7651:3:22","nodeType":"VariableDeclaration","scope":27731,"src":"7643:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27711,"name":"uint256","nodeType":"ElementaryTypeName","src":"7643:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27714,"mutability":"mutable","name":"tau","nameLocation":"7664:3:22","nodeType":"VariableDeclaration","scope":27731,"src":"7656:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27713,"name":"uint256","nodeType":"ElementaryTypeName","src":"7656:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7603:65:22"},"returnParameters":{"id":27718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27717,"mutability":"mutable","name":"inv","nameLocation":"7723:3:22","nodeType":"VariableDeclaration","scope":27731,"src":"7716:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27716,"name":"int256","nodeType":"ElementaryTypeName","src":"7716:6:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"7715:12:22"},"scope":27732,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Invariant","contractDependencies":[],"contractKind":"library","documentation":{"id":27378,"nodeType":"StructuredDocumentation","src":"83:2157:22","text":" @title Invariant of Primitive RMM.\n @author @alexangelj\n @notice Invariant is `k` with the trading function `k = y - KΦ(Φ⁻¹(1-x) - σ√τ)`.\n @dev Terms which can potentially be ambiguous are given discrete names.\n This makes it easier to search for terms and update terms.\n Variables can sometimes not be trusted to be or act like their names.\n This naming scheme avoids this problem using a glossary to define them.\n // -------------------- Glossary --------------------- //\n `R_x` - Amount of asset token reserves per single unit of liquidity.\n `R_y` - Amount of quote token reserves per single unit of liquidity.\n `stk` - Strike price of the pool. The terminal price of each asset token.\n `vol` - Implied volatility of the pool. Higher vol = higher price impact on swaps.\n `tau` - Time until the pool expires. Amount of seconds until the pool's curve becomes flat around `stk`.\n `inv` - Invariant of the pool. Difference between theoretical $ value and actual $ value per liquidity.\n `WAD` - Signed or unsigned fixed point number with up to 18 decimals and up to 256 total bits wide.\n `YEAR`- Equal to the amount of seconds in a year. Used in `invariant` function.\n // -------------------- Units ------------------------ //\n `R_x` - Units are unsigned WAD. Represents value of tokens, decimals matter.\n `R_y` - Units are unsigned WAD. Represents value of tokens, decimals matter.\n `stk` - Units are unsigned WAD. Represents value of tokens, decimals matter.\n `vol` - Units are unsigned WAD. Represents a percentage in which 100% = WAD.\n `tau` - Units are YEAR. Represents a time unit which `1.0` is equal to YEAR.\n `inv` - Units are signed WAD. Initial value of zero and decreases over time.\n // -------------------- Denoted By ----------------- //\n `R_x` - Denoted by `x`.\n `R_y` - Denoted by `y`.\n `stk` - Denoted by `K`.\n `vol` - Denoted by `σ`.\n `tau` - Denoted by `τ`.\n `inv` - Denoted by `k`.\n // -------------------- Error Bounds ----------------- //\n `inv` - Up to 1e-9.\n // ------------------------ ~ ------------------------ //"},"fullyImplemented":true,"linearizedBaseContracts":[27732],"name":"Invariant","nameLocation":"2249:9:22","scope":27733,"usedErrors":[27399],"usedEvents":[]}],"license":"MIT"},"id":22} \ No newline at end of file diff --git a/out/LPToken.sol/LPToken.json b/out/LPToken.sol/LPToken.json deleted file mode 100644 index 2dc56154..00000000 --- a/out/LPToken.sol/LPToken.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"dfmm","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AlreadyInitialized","inputs":[]},{"type":"error","name":"NotDFMM","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c63430008160033","sourceMap":"468:7190:25:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c63430008160033","sourceMap":"468:7190:25:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;468:7190:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;468:7190:25;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4840:15;4828:27;;468:7190;;5211:18;;:::i;:::-;468:7190;;;;;;;;;;;;;;;5656:6;468:7190;;;;;;;;;;;;;;;;5294:449;;;;;468:7190;5338:165;468:7190;;;;;;;;;;;;;;;;;;;;;;;;;;;;5294:449;;468:7190;;;;;;;;;;;;;;;;;;;5255:514;;5133:658;;;468:7190;;;;;;;;;;;;;;;5133:658;;468:7190;;;;;;;;;;;;;;;;;5102:707;;468:7190;;;;;;;;;;;;;;;;;;;5075:805;;;468:7190;;;;;;;5075:805;;;;;;;468:7190;5920:30;;;;:59;;;468:7190;;;;;;6112:31;468:7190;;;;;;;;;;;;;;;;;;;;;;;6112:31;468:7190;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;468:7190:25;;;;;5920:59;5954:25;;;;5920:59;;5075:805;468:7190;;;;;;;;;;-1:-1:-1;;;468:7190:25;;;;;;;;;-1:-1:-1;;;;468:7190:25;;;;;;;;;;;-1:-1:-1;;;468:7190:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2200:19;468:7190;;;-1:-1:-1;;;;;468:7190:25;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;3533:10;;468:7190;;3523:9;468:7190;;;;;3523:31;468:7190;;;3523:31;:::i;:::-;468:7190;;-1:-1:-1;;;;;468:7190:25;;;;3523:9;468:7190;;;;;;;;;;;;;;;3533:10;;-1:-1:-1;;;;;;;;;;;3749:32:25;468:7190;;3749:32;468:7190;;;;;;;;;;;;;;;;;;;;:::i;:::-;2303:4;468:7190;;;;-1:-1:-1;;;;;468:7190:25;;;;2289:10;:18;2285:40;;468:7190;;;;-1:-1:-1;;;;;;;;;;;468:7190:25;;;;;;;;7400:9;468:7190;;;;;7400:25;468:7190;;;7400:25;:::i;:::-;468:7190;;;7568:21;468:7190;;7568:21;468:7190;;;;;7615:34;468:7190;;2285:40;468:7190;;-1:-1:-1;;;2316:9:25;;;468:7190;;;;;;;;;;;;;;;;;;1291:20;;468:7190;;;;;:::i;:::-;;;;;;;1291:20;468:7190;;;1291:20;;;;468:7190;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;1291:20;468:7190;;;;;;;;;-1:-1:-1;;;;468:7190:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;468:7190:25;;;;;;;;-1:-1:-1;;;;;468:7190:25;;:::i;:::-;;;;1970:41;468:7190;;;;;;;;;;;;;;;;;;-1:-1:-1;;468:7190:25;;;;;;;;-1:-1:-1;;;;;468:7190:25;;:::i;:::-;;;;1576:44;468:7190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;2393:11;468:7190;;;;;;;2389:44;;-1:-1:-1;;;;;;;468:7190:25;2792:10;468:7190;2393:11;468:7190;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4057:17;;;468:7190;;;;;;;;;;;;;;;;;2834:16;;468:7190;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;468:7190:25;;;;;;;;;;;;;;2879:13;2860:32;468:7190;2929:24;;:::i;:::-;2902:51;468:7190;2393:11;468:7190;;-1:-1:-1;;;;468:7190:25;-1:-1:-1;;;468:7190:25;;;;;;;;;-1:-1:-1;468:7190:25;;;;;;;;;;-1:-1:-1;;468:7190:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4057:17;;468:7190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;468:7190:25;;;;;;;;;;;;-1:-1:-1;468:7190:25;;;;;;;;-1:-1:-1;;;;;;;;;;;468:7190:25;-1:-1:-1;;;468:7190:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4057:17;;468:7190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;468:7190:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;468:7190:25;;;;;;;;;;;;-1:-1:-1;;;468:7190:25;;;;;;;;2389:44;468:7190;-1:-1:-1;;;2413:20:25;;468:7190;-1:-1:-1;2413:20:25;468:7190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2303:4;468:7190;;;;-1:-1:-1;;;;;468:7190:25;;;;2289:10;:18;2285:40;;7067:21;468:7190;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;468:7190:25;;;;;7067:21;468:7190;;;;;;7234:9;468:7190;;;;;;;;;;;;;;;7283:32;468:7190;;;-1:-1:-1;;;468:7190:25;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;1351:2;468:7190;;;;;;;;;;;-1:-1:-1;;468:7190:25;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;468:7190:25;;:::i;:::-;-1:-1:-1;;;;;468:7190:25;;;;;;;;;;;;;3984:10;468:7190;;;;;;;;;;;;;;;;;;;;;4046:28;;4042:105;;468:7190;;;;;;;4157:9;468:7190;;;;;4157:25;468:7190;;;4157:25;:::i;:::-;468:7190;;;;;;;4157:9;468:7190;;;;;;;;;;;;;;4377:26;468:7190;;;;;4042:105;4120:16;;;:::i;:::-;468:7190;;;;;;;;;3984:10;468:7190;;;;;;;;4042:105;;;;;468:7190;;;;;;;;;;;;;;;;1543:26;468:7190;;;;;;;;;;;;;;;;;;;;;;;;2225:23;468:7190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3298:10;;;;468:7190;;;;;;;;;;;;;;;;;;;;;;;;;;;3343:37;3298:10;;3343:37;;468:7190;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;;;;;;;468:7190:25;;;;;;-1:-1:-1;;;;468:7190:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;468:7190:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;468:7190:25;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;468:7190:25;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;468:7190:25;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;468:7190:25;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;6156:201;6256:16;468:7190;6239:13;:33;:111;;6287:24;468:7190;6156:201;:::o;6239:111::-;6326:24;;:::i;:::-;6156:201;:::o;6363:440::-;468:7190;;6672:4;468:7190;6672:4;468:7190;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6656:22;;468:7190;;;6477:309;;;468:7190;6505:133;468:7190;;;;;;6696:14;468:7190;;;;6728:13;468:7190;;;;6767:4;468:7190;;;;;6477:309;;468:7190;;;;;;;;;;;;;;;6454:342;;6363:440;:::o;468:7190::-;6672:4;468:7190;;;;;-1:-1:-1;6672:4:25;-1:-1:-1;;;;;;;;;;;468:7190:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;468:7190:25;;;;;;;;;;;-1:-1:-1;;468:7190:25;;;;;;;;;;;;;-1:-1:-1;468:7190:25;;-1:-1:-1;468:7190:25;;-1:-1:-1;468:7190:25","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","dfmm()":"afba13c4","initialize(string,string)":"4cd88b76","initialized()":"158ef93e","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDFMM\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dfmm\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Primitive\",\"details\":\"This ERC20 token is built on top of Solmate implementation ([see here](https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)). This contract extends it by adding restricted `mint` / `burn` functions and replaces the constructor by an `initialize` function as needed by the clone factory pattern.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"DFMM Liquidity Token\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/LPToken.sol\":\"LPToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AlreadyInitialized"},{"inputs":[],"type":"error","name":"NotDFMM"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"dfmm","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/LPToken.sol":"LPToken"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"}},"version":1},"ast":{"absolutePath":"src/LPToken.sol","id":29517,"exportedSymbols":{"LPToken":[29516]},"nodeType":"SourceUnit","src":"45:7614:25","nodes":[{"id":29064,"nodeType":"PragmaDirective","src":"45:24:25","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":29516,"nodeType":"ContractDefinition","src":"468:7190:25","nodes":[{"id":29067,"nodeType":"ErrorDefinition","src":"670:16:25","nodes":[],"errorSelector":"6853cba7","name":"NotDFMM","nameLocation":"676:7:25","parameters":{"id":29066,"nodeType":"ParameterList","parameters":[],"src":"683:2:25"}},{"id":29069,"nodeType":"ErrorDefinition","src":"692:27:25","nodes":[],"errorSelector":"0dc149f0","name":"AlreadyInitialized","nameLocation":"698:18:25","parameters":{"id":29068,"nodeType":"ParameterList","parameters":[],"src":"716:2:25"}},{"id":29077,"nodeType":"EventDefinition","src":"904:73:25","nodes":[],"anonymous":false,"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","name":"Transfer","nameLocation":"910:8:25","parameters":{"id":29076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29071,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"935:4:25","nodeType":"VariableDeclaration","scope":29077,"src":"919:20:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29070,"name":"address","nodeType":"ElementaryTypeName","src":"919:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29073,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"957:2:25","nodeType":"VariableDeclaration","scope":29077,"src":"941:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29072,"name":"address","nodeType":"ElementaryTypeName","src":"941:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29075,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"969:6:25","nodeType":"VariableDeclaration","scope":29077,"src":"961:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29074,"name":"uint256","nodeType":"ElementaryTypeName","src":"961:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"918:58:25"}},{"id":29085,"nodeType":"EventDefinition","src":"983:93:25","nodes":[],"anonymous":false,"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","name":"Approval","nameLocation":"989:8:25","parameters":{"id":29084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29079,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"1023:5:25","nodeType":"VariableDeclaration","scope":29085,"src":"1007:21:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29078,"name":"address","nodeType":"ElementaryTypeName","src":"1007:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29081,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"1046:7:25","nodeType":"VariableDeclaration","scope":29085,"src":"1030:23:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29080,"name":"address","nodeType":"ElementaryTypeName","src":"1030:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29083,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1063:6:25","nodeType":"VariableDeclaration","scope":29085,"src":"1055:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29082,"name":"uint256","nodeType":"ElementaryTypeName","src":"1055:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"997:78:25"}},{"id":29087,"nodeType":"VariableDeclaration","src":"1266:18:25","nodes":[],"constant":false,"functionSelector":"06fdde03","mutability":"mutable","name":"name","nameLocation":"1280:4:25","scope":29516,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":29086,"name":"string","nodeType":"ElementaryTypeName","src":"1266:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":29089,"nodeType":"VariableDeclaration","src":"1291:20:25","nodes":[],"constant":false,"functionSelector":"95d89b41","mutability":"mutable","name":"symbol","nameLocation":"1305:6:25","scope":29516,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":29088,"name":"string","nodeType":"ElementaryTypeName","src":"1291:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":29092,"nodeType":"VariableDeclaration","src":"1318:35:25","nodes":[],"constant":true,"functionSelector":"313ce567","mutability":"constant","name":"decimals","nameLocation":"1340:8:25","scope":29516,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":29090,"name":"uint8","nodeType":"ElementaryTypeName","src":"1318:5:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3138","id":29091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1351:2:25","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"visibility":"public"},{"id":29094,"nodeType":"VariableDeclaration","src":"1543:26:25","nodes":[],"constant":false,"functionSelector":"18160ddd","mutability":"mutable","name":"totalSupply","nameLocation":"1558:11:25","scope":29516,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29093,"name":"uint256","nodeType":"ElementaryTypeName","src":"1543:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":29098,"nodeType":"VariableDeclaration","src":"1576:44:25","nodes":[],"constant":false,"functionSelector":"70a08231","mutability":"mutable","name":"balanceOf","nameLocation":"1611:9:25","scope":29516,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":29097,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":29095,"name":"address","nodeType":"ElementaryTypeName","src":"1584:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1576:27:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":29096,"name":"uint256","nodeType":"ElementaryTypeName","src":"1595:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":29104,"nodeType":"VariableDeclaration","src":"1627:64:25","nodes":[],"constant":false,"functionSelector":"dd62ed3e","mutability":"mutable","name":"allowance","nameLocation":"1682:9:25","scope":29516,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":29103,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":29099,"name":"address","nodeType":"ElementaryTypeName","src":"1635:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1627:47:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":29102,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":29100,"name":"address","nodeType":"ElementaryTypeName","src":"1654:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1646:27:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":29101,"name":"uint256","nodeType":"ElementaryTypeName","src":"1665:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"id":29106,"nodeType":"VariableDeclaration","src":"1882:33:25","nodes":[],"constant":false,"mutability":"mutable","name":"INITIAL_CHAIN_ID","nameLocation":"1899:16:25","scope":29516,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29105,"name":"uint256","nodeType":"ElementaryTypeName","src":"1882:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":29108,"nodeType":"VariableDeclaration","src":"1922:41:25","nodes":[],"constant":false,"mutability":"mutable","name":"INITIAL_DOMAIN_SEPARATOR","nameLocation":"1939:24:25","scope":29516,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":29107,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1922:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":29112,"nodeType":"VariableDeclaration","src":"1970:41:25","nodes":[],"constant":false,"functionSelector":"7ecebe00","mutability":"mutable","name":"nonces","nameLocation":"2005:6:25","scope":29516,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":29111,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":29109,"name":"address","nodeType":"ElementaryTypeName","src":"1978:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1970:27:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":29110,"name":"uint256","nodeType":"ElementaryTypeName","src":"1989:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":29114,"nodeType":"VariableDeclaration","src":"2200:19:25","nodes":[],"constant":false,"functionSelector":"afba13c4","mutability":"mutable","name":"dfmm","nameLocation":"2215:4:25","scope":29516,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29113,"name":"address","nodeType":"ElementaryTypeName","src":"2200:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":29116,"nodeType":"VariableDeclaration","src":"2225:23:25","nodes":[],"constant":false,"functionSelector":"158ef93e","mutability":"mutable","name":"initialized","nameLocation":"2237:11:25","scope":29516,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29115,"name":"bool","nodeType":"ElementaryTypeName","src":"2225:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":29128,"nodeType":"ModifierDefinition","src":"2255:88:25","nodes":[],"body":{"id":29127,"nodeType":"Block","src":"2275:68:25","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":29121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":29118,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2289:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":29119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2293:6:25","memberName":"sender","nodeType":"MemberAccess","src":"2289:10:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":29120,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29114,"src":"2303:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2289:18:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29125,"nodeType":"IfStatement","src":"2285:40:25","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":29122,"name":"NotDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29067,"src":"2316:7:25","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":29123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2316:9:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29124,"nodeType":"RevertStatement","src":"2309:16:25"}},{"id":29126,"nodeType":"PlaceholderStatement","src":"2335:1:25"}]},"name":"onlyDFMM","nameLocation":"2264:8:25","parameters":{"id":29117,"nodeType":"ParameterList","parameters":[],"src":"2272:2:25"},"virtual":false,"visibility":"internal"},{"id":29137,"nodeType":"ModifierDefinition","src":"2349:102:25","nodes":[],"body":{"id":29136,"nodeType":"Block","src":"2379:72:25","nodes":[],"statements":[{"condition":{"id":29130,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29116,"src":"2393:11:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29134,"nodeType":"IfStatement","src":"2389:44:25","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":29131,"name":"AlreadyInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29069,"src":"2413:18:25","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":29132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2413:20:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29133,"nodeType":"RevertStatement","src":"2406:27:25"}},{"id":29135,"nodeType":"PlaceholderStatement","src":"2443:1:25"}]},"name":"onlyNotInitialized","nameLocation":"2358:18:25","parameters":{"id":29129,"nodeType":"ParameterList","parameters":[],"src":"2376:2:25"},"virtual":false,"visibility":"internal"},{"id":29152,"nodeType":"FunctionDefinition","src":"2457:94:25","nodes":[],"body":{"id":29151,"nodeType":"Block","src":"2517:34:25","nodes":[],"statements":[{"expression":{"arguments":[{"id":29147,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29139,"src":"2533:2:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29148,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29141,"src":"2537:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29146,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29487,"src":"2527:5:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":29149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2527:17:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29150,"nodeType":"ExpressionStatement","src":"2527:17:25"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":29144,"kind":"modifierInvocation","modifierName":{"id":29143,"name":"onlyDFMM","nameLocations":["2508:8:25"],"nodeType":"IdentifierPath","referencedDeclaration":29128,"src":"2508:8:25"},"nodeType":"ModifierInvocation","src":"2508:8:25"}],"name":"mint","nameLocation":"2466:4:25","parameters":{"id":29142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29139,"mutability":"mutable","name":"to","nameLocation":"2479:2:25","nodeType":"VariableDeclaration","scope":29152,"src":"2471:10:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29138,"name":"address","nodeType":"ElementaryTypeName","src":"2471:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29141,"mutability":"mutable","name":"amount","nameLocation":"2491:6:25","nodeType":"VariableDeclaration","scope":29152,"src":"2483:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29140,"name":"uint256","nodeType":"ElementaryTypeName","src":"2483:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2470:28:25"},"returnParameters":{"id":29145,"nodeType":"ParameterList","parameters":[],"src":"2517:0:25"},"scope":29516,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":29167,"nodeType":"FunctionDefinition","src":"2557:98:25","nodes":[],"body":{"id":29166,"nodeType":"Block","src":"2619:36:25","nodes":[],"statements":[{"expression":{"arguments":[{"id":29162,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29154,"src":"2635:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29163,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29156,"src":"2641:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29161,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29515,"src":"2629:5:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":29164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2629:19:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29165,"nodeType":"ExpressionStatement","src":"2629:19:25"}]},"functionSelector":"9dc29fac","implemented":true,"kind":"function","modifiers":[{"id":29159,"kind":"modifierInvocation","modifierName":{"id":29158,"name":"onlyDFMM","nameLocations":["2610:8:25"],"nodeType":"IdentifierPath","referencedDeclaration":29128,"src":"2610:8:25"},"nodeType":"ModifierInvocation","src":"2610:8:25"}],"name":"burn","nameLocation":"2566:4:25","parameters":{"id":29157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29154,"mutability":"mutable","name":"from","nameLocation":"2579:4:25","nodeType":"VariableDeclaration","scope":29167,"src":"2571:12:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29153,"name":"address","nodeType":"ElementaryTypeName","src":"2571:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29156,"mutability":"mutable","name":"amount","nameLocation":"2593:6:25","nodeType":"VariableDeclaration","scope":29167,"src":"2585:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29155,"name":"uint256","nodeType":"ElementaryTypeName","src":"2585:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2570:30:25"},"returnParameters":{"id":29160,"nodeType":"ParameterList","parameters":[],"src":"2619:0:25"},"scope":29516,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":29204,"nodeType":"FunctionDefinition","src":"2661:327:25","nodes":[],"body":{"id":29203,"nodeType":"Block","src":"2775:213:25","nodes":[],"statements":[{"expression":{"id":29179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":29176,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29114,"src":"2785:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":29177,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2792:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":29178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2796:6:25","memberName":"sender","nodeType":"MemberAccess","src":"2792:10:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2785:17:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":29180,"nodeType":"ExpressionStatement","src":"2785:17:25"},{"expression":{"id":29183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":29181,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29087,"src":"2812:4:25","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":29182,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29169,"src":"2819:5:25","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2812:12:25","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":29184,"nodeType":"ExpressionStatement","src":"2812:12:25"},{"expression":{"id":29187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":29185,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29089,"src":"2834:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":29186,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29171,"src":"2843:7:25","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2834:16:25","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":29188,"nodeType":"ExpressionStatement","src":"2834:16:25"},{"expression":{"id":29192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":29189,"name":"INITIAL_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29106,"src":"2860:16:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":29190,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2879:5:25","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":29191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2885:7:25","memberName":"chainid","nodeType":"MemberAccess","src":"2879:13:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2860:32:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29193,"nodeType":"ExpressionStatement","src":"2860:32:25"},{"expression":{"id":29197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":29194,"name":"INITIAL_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29108,"src":"2902:24:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":29195,"name":"computeDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29459,"src":"2929:22:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":29196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2929:24:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2902:51:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":29198,"nodeType":"ExpressionStatement","src":"2902:51:25"},{"expression":{"id":29201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":29199,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29116,"src":"2963:11:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":29200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2977:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2963:18:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29202,"nodeType":"ExpressionStatement","src":"2963:18:25"}]},"functionSelector":"4cd88b76","implemented":true,"kind":"function","modifiers":[{"id":29174,"kind":"modifierInvocation","modifierName":{"id":29173,"name":"onlyNotInitialized","nameLocations":["2756:18:25"],"nodeType":"IdentifierPath","referencedDeclaration":29137,"src":"2756:18:25"},"nodeType":"ModifierInvocation","src":"2756:18:25"}],"name":"initialize","nameLocation":"2670:10:25","parameters":{"id":29172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29169,"mutability":"mutable","name":"name_","nameLocation":"2704:5:25","nodeType":"VariableDeclaration","scope":29204,"src":"2690:19:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29168,"name":"string","nodeType":"ElementaryTypeName","src":"2690:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29171,"mutability":"mutable","name":"symbol_","nameLocation":"2733:7:25","nodeType":"VariableDeclaration","scope":29204,"src":"2719:21:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29170,"name":"string","nodeType":"ElementaryTypeName","src":"2719:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2680:66:25"},"returnParameters":{"id":29175,"nodeType":"ParameterList","parameters":[],"src":"2775:0:25"},"scope":29516,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":29232,"nodeType":"FunctionDefinition","src":"3176:233:25","nodes":[],"body":{"id":29231,"nodeType":"Block","src":"3278:131:25","nodes":[],"statements":[{"expression":{"id":29220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":29213,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29104,"src":"3288:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":29217,"indexExpression":{"expression":{"id":29214,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3298:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":29215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3302:6:25","memberName":"sender","nodeType":"MemberAccess","src":"3298:10:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3288:21:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29218,"indexExpression":{"id":29216,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29206,"src":"3310:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3288:30:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":29219,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29208,"src":"3321:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3288:39:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29221,"nodeType":"ExpressionStatement","src":"3288:39:25"},{"eventCall":{"arguments":[{"expression":{"id":29223,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3352:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":29224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3356:6:25","memberName":"sender","nodeType":"MemberAccess","src":"3352:10:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29225,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29206,"src":"3364:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29226,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29208,"src":"3373:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29222,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29085,"src":"3343:8:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":29227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3343:37:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29228,"nodeType":"EmitStatement","src":"3338:42:25"},{"expression":{"hexValue":"74727565","id":29229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3398:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":29212,"id":29230,"nodeType":"Return","src":"3391:11:25"}]},"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3185:7:25","parameters":{"id":29209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29206,"mutability":"mutable","name":"spender","nameLocation":"3210:7:25","nodeType":"VariableDeclaration","scope":29232,"src":"3202:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29205,"name":"address","nodeType":"ElementaryTypeName","src":"3202:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29208,"mutability":"mutable","name":"amount","nameLocation":"3235:6:25","nodeType":"VariableDeclaration","scope":29232,"src":"3227:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29207,"name":"uint256","nodeType":"ElementaryTypeName","src":"3227:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3192:55:25"},"returnParameters":{"id":29212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29211,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29232,"src":"3272:4:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29210,"name":"bool","nodeType":"ElementaryTypeName","src":"3272:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3271:6:25"},"scope":29516,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":29265,"nodeType":"FunctionDefinition","src":"3415:395:25","nodes":[],"body":{"id":29264,"nodeType":"Block","src":"3513:297:25","nodes":[],"statements":[{"expression":{"id":29246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":29241,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29098,"src":"3523:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29244,"indexExpression":{"expression":{"id":29242,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3533:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":29243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3537:6:25","memberName":"sender","nodeType":"MemberAccess","src":"3533:10:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3523:21:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":29245,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29236,"src":"3548:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3523:31:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29247,"nodeType":"ExpressionStatement","src":"3523:31:25"},{"id":29254,"nodeType":"UncheckedBlock","src":"3676:58:25","statements":[{"expression":{"id":29252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":29248,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29098,"src":"3700:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29250,"indexExpression":{"id":29249,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29234,"src":"3710:2:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3700:13:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":29251,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29236,"src":"3717:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3700:23:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29253,"nodeType":"ExpressionStatement","src":"3700:23:25"}]},{"eventCall":{"arguments":[{"expression":{"id":29256,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3758:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":29257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3762:6:25","memberName":"sender","nodeType":"MemberAccess","src":"3758:10:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29258,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29234,"src":"3770:2:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29259,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29236,"src":"3774:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29255,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29077,"src":"3749:8:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":29260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3749:32:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29261,"nodeType":"EmitStatement","src":"3744:37:25"},{"expression":{"hexValue":"74727565","id":29262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3799:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":29240,"id":29263,"nodeType":"Return","src":"3792:11:25"}]},"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3424:8:25","parameters":{"id":29237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29234,"mutability":"mutable","name":"to","nameLocation":"3450:2:25","nodeType":"VariableDeclaration","scope":29265,"src":"3442:10:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29233,"name":"address","nodeType":"ElementaryTypeName","src":"3442:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29236,"mutability":"mutable","name":"amount","nameLocation":"3470:6:25","nodeType":"VariableDeclaration","scope":29265,"src":"3462:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29235,"name":"uint256","nodeType":"ElementaryTypeName","src":"3462:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3432:50:25"},"returnParameters":{"id":29240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29239,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29265,"src":"3507:4:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29238,"name":"bool","nodeType":"ElementaryTypeName","src":"3507:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3506:6:25"},"scope":29516,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":29327,"nodeType":"FunctionDefinition","src":"3816:616:25","nodes":[],"body":{"id":29326,"nodeType":"Block","src":"3940:492:25","nodes":[],"statements":[{"assignments":[29277],"declarations":[{"constant":false,"id":29277,"mutability":"mutable","name":"allowed","nameLocation":"3958:7:25","nodeType":"VariableDeclaration","scope":29326,"src":"3950:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29276,"name":"uint256","nodeType":"ElementaryTypeName","src":"3950:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":29284,"initialValue":{"baseExpression":{"baseExpression":{"id":29278,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29104,"src":"3968:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":29280,"indexExpression":{"id":29279,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29267,"src":"3978:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3968:15:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29283,"indexExpression":{"expression":{"id":29281,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3984:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":29282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3988:6:25","memberName":"sender","nodeType":"MemberAccess","src":"3984:10:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3968:27:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3950:45:25"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29285,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29277,"src":"4046:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":29288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4062:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":29287,"name":"uint256","nodeType":"ElementaryTypeName","src":"4062:7:25","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":29286,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4057:4:25","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":29289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4057:13:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":29290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4071:3:25","memberName":"max","nodeType":"MemberAccess","src":"4057:17:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4046:28:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":29304,"nodeType":"IfStatement","src":"4042:105:25","trueBody":{"id":29303,"nodeType":"Block","src":"4076:71:25","statements":[{"expression":{"id":29301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":29292,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29104,"src":"4090:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":29296,"indexExpression":{"id":29293,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29267,"src":"4100:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4090:15:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29297,"indexExpression":{"expression":{"id":29294,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4106:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":29295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4110:6:25","memberName":"sender","nodeType":"MemberAccess","src":"4106:10:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4090:27:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29298,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29277,"src":"4120:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":29299,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29271,"src":"4130:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4120:16:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4090:46:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29302,"nodeType":"ExpressionStatement","src":"4090:46:25"}]}},{"expression":{"id":29309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":29305,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29098,"src":"4157:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29307,"indexExpression":{"id":29306,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29267,"src":"4167:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4157:15:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":29308,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29271,"src":"4176:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4157:25:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29310,"nodeType":"ExpressionStatement","src":"4157:25:25"},{"id":29317,"nodeType":"UncheckedBlock","src":"4304:58:25","statements":[{"expression":{"id":29315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":29311,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29098,"src":"4328:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29313,"indexExpression":{"id":29312,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29269,"src":"4338:2:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4328:13:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":29314,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29271,"src":"4345:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4328:23:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29316,"nodeType":"ExpressionStatement","src":"4328:23:25"}]},{"eventCall":{"arguments":[{"id":29319,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29267,"src":"4386:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29320,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29269,"src":"4392:2:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29321,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29271,"src":"4396:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29318,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29077,"src":"4377:8:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":29322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4377:26:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29323,"nodeType":"EmitStatement","src":"4372:31:25"},{"expression":{"hexValue":"74727565","id":29324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4421:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":29275,"id":29325,"nodeType":"Return","src":"4414:11:25"}]},"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3825:12:25","parameters":{"id":29272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29267,"mutability":"mutable","name":"from","nameLocation":"3855:4:25","nodeType":"VariableDeclaration","scope":29327,"src":"3847:12:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29266,"name":"address","nodeType":"ElementaryTypeName","src":"3847:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29269,"mutability":"mutable","name":"to","nameLocation":"3877:2:25","nodeType":"VariableDeclaration","scope":29327,"src":"3869:10:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29268,"name":"address","nodeType":"ElementaryTypeName","src":"3869:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29271,"mutability":"mutable","name":"amount","nameLocation":"3897:6:25","nodeType":"VariableDeclaration","scope":29327,"src":"3889:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29270,"name":"uint256","nodeType":"ElementaryTypeName","src":"3889:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3837:72:25"},"returnParameters":{"id":29275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29274,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29327,"src":"3934:4:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29273,"name":"bool","nodeType":"ElementaryTypeName","src":"3934:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3933:6:25"},"scope":29516,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":29414,"nodeType":"FunctionDefinition","src":"4621:1529:25","nodes":[],"body":{"id":29413,"nodeType":"Block","src":"4810:1340:25","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29345,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29335,"src":"4828:8:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":29346,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4840:5:25","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":29347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4846:9:25","memberName":"timestamp","nodeType":"MemberAccess","src":"4840:15:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4828:27:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5045524d49545f444541444c494e455f45585049524544","id":29349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4857:25:25","typeDescriptions":{"typeIdentifier":"t_stringliteral_dd18cfd81b4c1281b56302a044e7f751a261543590362c41d86af048f8ed4b3e","typeString":"literal_string \"PERMIT_DEADLINE_EXPIRED\""},"value":"PERMIT_DEADLINE_EXPIRED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dd18cfd81b4c1281b56302a044e7f751a261543590362c41d86af048f8ed4b3e","typeString":"literal_string \"PERMIT_DEADLINE_EXPIRED\""}],"id":29344,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4820:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":29350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4820:63:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29351,"nodeType":"ExpressionStatement","src":"4820:63:25"},{"id":29406,"nodeType":"UncheckedBlock","src":"5024:1073:25","statements":[{"assignments":[29353],"declarations":[{"constant":false,"id":29353,"mutability":"mutable","name":"recoveredAddress","nameLocation":"5056:16:25","nodeType":"VariableDeclaration","scope":29406,"src":"5048:24:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29352,"name":"address","nodeType":"ElementaryTypeName","src":"5048:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":29383,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"1901","id":29358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5175:10:25","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"arguments":[],"expression":{"argumentTypes":[],"id":29359,"name":"DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29429,"src":"5211:16:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":29360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5211:18:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"arguments":[{"hexValue":"5065726d69742861646472657373206f776e65722c61646472657373207370656e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63652c75696e7432353620646561646c696e6529","id":29365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5385:84:25","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9","typeString":"literal_string \"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\""},"value":"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9","typeString":"literal_string \"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\""}],"id":29364,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5338:9:25","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":29366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5338:165:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":29367,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29329,"src":"5537:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29368,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29331,"src":"5576:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29369,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29333,"src":"5617:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5656:15:25","subExpression":{"baseExpression":{"id":29370,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29112,"src":"5656:6:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29372,"indexExpression":{"id":29371,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29329,"src":"5663:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5656:13:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29374,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29335,"src":"5705:8:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29362,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5294:3:25","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5298:6:25","memberName":"encode","nodeType":"MemberAccess","src":"5294:10:25","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":29375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5294:449:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29361,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5255:9:25","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":29376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5255:514:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":29356,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5133:3:25","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5137:12:25","memberName":"encodePacked","nodeType":"MemberAccess","src":"5133:16:25","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":29377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5133:658:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29355,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5102:9:25","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":29378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5102:707:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":29379,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29337,"src":"5827:1:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":29380,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29339,"src":"5846:1:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":29381,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29341,"src":"5865:1:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":29354,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"5075:9:25","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":29382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5075:805:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5048:832:25"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":29394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":29390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29385,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29353,"src":"5920:16:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":29388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5948:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":29387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5940:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29386,"name":"address","nodeType":"ElementaryTypeName","src":"5940:7:25","typeDescriptions":{}}},"id":29389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5940:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5920:30:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":29393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":29391,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29353,"src":"5954:16:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":29392,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29329,"src":"5974:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5954:25:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5920:59:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f5349474e4552","id":29395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5997:16:25","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba2319f5fa9f0c8e55f0d6899910b7354e6f643d1d349de47190066d85e68a1c","typeString":"literal_string \"INVALID_SIGNER\""},"value":"INVALID_SIGNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ba2319f5fa9f0c8e55f0d6899910b7354e6f643d1d349de47190066d85e68a1c","typeString":"literal_string \"INVALID_SIGNER\""}],"id":29384,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5895:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":29396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5895:132:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29397,"nodeType":"ExpressionStatement","src":"5895:132:25"},{"expression":{"id":29404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":29398,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29104,"src":"6042:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":29401,"indexExpression":{"id":29399,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29353,"src":"6052:16:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6042:27:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29402,"indexExpression":{"id":29400,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29331,"src":"6070:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6042:36:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":29403,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29333,"src":"6081:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6042:44:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29405,"nodeType":"ExpressionStatement","src":"6042:44:25"}]},{"eventCall":{"arguments":[{"id":29408,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29329,"src":"6121:5:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29409,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29331,"src":"6128:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29410,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29333,"src":"6137:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29407,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29085,"src":"6112:8:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":29411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6112:31:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29412,"nodeType":"EmitStatement","src":"6107:36:25"}]},"functionSelector":"d505accf","implemented":true,"kind":"function","modifiers":[],"name":"permit","nameLocation":"4630:6:25","parameters":{"id":29342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29329,"mutability":"mutable","name":"owner","nameLocation":"4654:5:25","nodeType":"VariableDeclaration","scope":29414,"src":"4646:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29328,"name":"address","nodeType":"ElementaryTypeName","src":"4646:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29331,"mutability":"mutable","name":"spender","nameLocation":"4677:7:25","nodeType":"VariableDeclaration","scope":29414,"src":"4669:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29330,"name":"address","nodeType":"ElementaryTypeName","src":"4669:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29333,"mutability":"mutable","name":"value","nameLocation":"4702:5:25","nodeType":"VariableDeclaration","scope":29414,"src":"4694:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29332,"name":"uint256","nodeType":"ElementaryTypeName","src":"4694:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29335,"mutability":"mutable","name":"deadline","nameLocation":"4725:8:25","nodeType":"VariableDeclaration","scope":29414,"src":"4717:16:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29334,"name":"uint256","nodeType":"ElementaryTypeName","src":"4717:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29337,"mutability":"mutable","name":"v","nameLocation":"4749:1:25","nodeType":"VariableDeclaration","scope":29414,"src":"4743:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":29336,"name":"uint8","nodeType":"ElementaryTypeName","src":"4743:5:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":29339,"mutability":"mutable","name":"r","nameLocation":"4768:1:25","nodeType":"VariableDeclaration","scope":29414,"src":"4760:9:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":29338,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4760:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":29341,"mutability":"mutable","name":"s","nameLocation":"4787:1:25","nodeType":"VariableDeclaration","scope":29414,"src":"4779:9:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":29340,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4779:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4636:158:25"},"returnParameters":{"id":29343,"nodeType":"ParameterList","parameters":[],"src":"4810:0:25"},"scope":29516,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":29429,"nodeType":"FunctionDefinition","src":"6156:201:25","nodes":[],"body":{"id":29428,"nodeType":"Block","src":"6222:135:25","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":29422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":29419,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6239:5:25","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":29420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6245:7:25","memberName":"chainid","nodeType":"MemberAccess","src":"6239:13:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":29421,"name":"INITIAL_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29106,"src":"6256:16:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6239:33:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":29424,"name":"computeDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29459,"src":"6326:22:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":29425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6326:24:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":29426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6239:111:25","trueExpression":{"id":29423,"name":"INITIAL_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29108,"src":"6287:24:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":29418,"id":29427,"nodeType":"Return","src":"6232:118:25"}]},"functionSelector":"3644e515","implemented":true,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"6165:16:25","parameters":{"id":29415,"nodeType":"ParameterList","parameters":[],"src":"6181:2:25"},"returnParameters":{"id":29418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29417,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29429,"src":"6213:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":29416,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6213:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6212:9:25"},"scope":29516,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":29459,"nodeType":"FunctionDefinition","src":"6363:440:25","nodes":[],"body":{"id":29458,"nodeType":"Block","src":"6437:366:25","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":29438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6536:84:25","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":29437,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6505:9:25","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":29439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6505:133:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":29443,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29087,"src":"6672:4:25","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":29442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6666:5:25","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":29441,"name":"bytes","nodeType":"ElementaryTypeName","src":"6666:5:25","typeDescriptions":{}}},"id":29444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6666:11:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}],"id":29440,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6656:9:25","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":29445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6656:22:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"31","id":29447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6706:3:25","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""}],"id":29446,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6696:9:25","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":29448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6696:14:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":29449,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6728:5:25","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":29450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6734:7:25","memberName":"chainid","nodeType":"MemberAccess","src":"6728:13:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":29453,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6767:4:25","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}],"id":29452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6759:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29451,"name":"address","nodeType":"ElementaryTypeName","src":"6759:7:25","typeDescriptions":{}}},"id":29454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6759:13:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":29435,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6477:3:25","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6481:6:25","memberName":"encode","nodeType":"MemberAccess","src":"6477:10:25","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":29455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6477:309:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29434,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6454:9:25","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":29456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6454:342:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":29433,"id":29457,"nodeType":"Return","src":"6447:349:25"}]},"implemented":true,"kind":"function","modifiers":[],"name":"computeDomainSeparator","nameLocation":"6372:22:25","parameters":{"id":29430,"nodeType":"ParameterList","parameters":[],"src":"6394:2:25"},"returnParameters":{"id":29433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29432,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29459,"src":"6428:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":29431,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6428:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6427:9:25"},"scope":29516,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":29487,"nodeType":"FunctionDefinition","src":"6997:325:25","nodes":[],"body":{"id":29486,"nodeType":"Block","src":"7057:265:25","nodes":[],"statements":[{"expression":{"id":29468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":29466,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29094,"src":"7067:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":29467,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29463,"src":"7082:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7067:21:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29469,"nodeType":"ExpressionStatement","src":"7067:21:25"},{"id":29476,"nodeType":"UncheckedBlock","src":"7210:58:25","statements":[{"expression":{"id":29474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":29470,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29098,"src":"7234:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29472,"indexExpression":{"id":29471,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29461,"src":"7244:2:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7234:13:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":29473,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29463,"src":"7251:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7234:23:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29475,"nodeType":"ExpressionStatement","src":"7234:23:25"}]},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":29480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7300:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":29479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7292:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29478,"name":"address","nodeType":"ElementaryTypeName","src":"7292:7:25","typeDescriptions":{}}},"id":29481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7292:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29482,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29461,"src":"7304:2:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29483,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29463,"src":"7308:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29477,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29077,"src":"7283:8:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":29484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7283:32:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29485,"nodeType":"EmitStatement","src":"7278:37:25"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"7006:5:25","parameters":{"id":29464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29461,"mutability":"mutable","name":"to","nameLocation":"7020:2:25","nodeType":"VariableDeclaration","scope":29487,"src":"7012:10:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29460,"name":"address","nodeType":"ElementaryTypeName","src":"7012:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29463,"mutability":"mutable","name":"amount","nameLocation":"7032:6:25","nodeType":"VariableDeclaration","scope":29487,"src":"7024:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29462,"name":"uint256","nodeType":"ElementaryTypeName","src":"7024:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7011:28:25"},"returnParameters":{"id":29465,"nodeType":"ParameterList","parameters":[],"src":"7057:0:25"},"scope":29516,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":29515,"nodeType":"FunctionDefinition","src":"7328:328:25","nodes":[],"body":{"id":29514,"nodeType":"Block","src":"7390:266:25","nodes":[],"statements":[{"expression":{"id":29498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":29494,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29098,"src":"7400:9:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":29496,"indexExpression":{"id":29495,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29489,"src":"7410:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7400:15:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":29497,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29491,"src":"7419:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7400:25:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29499,"nodeType":"ExpressionStatement","src":"7400:25:25"},{"id":29504,"nodeType":"UncheckedBlock","src":"7544:56:25","statements":[{"expression":{"id":29502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":29500,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29094,"src":"7568:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":29501,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29491,"src":"7583:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7568:21:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":29503,"nodeType":"ExpressionStatement","src":"7568:21:25"}]},{"eventCall":{"arguments":[{"id":29506,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29489,"src":"7624:4:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":29509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7638:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":29508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7630:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":29507,"name":"address","nodeType":"ElementaryTypeName","src":"7630:7:25","typeDescriptions":{}}},"id":29510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7630:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29511,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29491,"src":"7642:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":29505,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29077,"src":"7615:8:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":29512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7615:34:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29513,"nodeType":"EmitStatement","src":"7610:39:25"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"7337:5:25","parameters":{"id":29492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29489,"mutability":"mutable","name":"from","nameLocation":"7351:4:25","nodeType":"VariableDeclaration","scope":29515,"src":"7343:12:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29488,"name":"address","nodeType":"ElementaryTypeName","src":"7343:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29491,"mutability":"mutable","name":"amount","nameLocation":"7365:6:25","nodeType":"VariableDeclaration","scope":29515,"src":"7357:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29490,"name":"uint256","nodeType":"ElementaryTypeName","src":"7357:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7342:30:25"},"returnParameters":{"id":29493,"nodeType":"ParameterList","parameters":[],"src":"7390:0:25"},"scope":29516,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LPToken","contractDependencies":[],"contractKind":"contract","documentation":{"id":29065,"nodeType":"StructuredDocumentation","src":"71:396:25","text":" @title DFMM Liquidity Token\n @author Primitive\n @dev This ERC20 token is built on top of Solmate implementation\n ([see here](https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)).\n This contract extends it by adding restricted `mint` / `burn` functions\n and replaces the constructor by an `initialize` function as needed\n by the clone factory pattern."},"fullyImplemented":true,"linearizedBaseContracts":[29516],"name":"LPToken","nameLocation":"477:7:25","scope":29517,"usedErrors":[29067,29069],"usedEvents":[29077,29085]}],"license":"GPL-3.0-or-later"},"id":25} \ No newline at end of file diff --git a/out/LPToken.t.sol/LPTokenTest.json b/out/LPToken.t.sol/LPTokenTest.json deleted file mode 100644 index 1bfaab80..00000000 --- a/out/LPToken.t.sol/LPTokenTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_LPToken_initialize_InitializesTheContract","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_LPToken_initialize_OnlyInitializesOnce","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523461002357600160ff19600054161760005561196e90816100298239f35b600080fdfe608060408181526004918236101561001657600080fd5b600092833560e01c9182630a9254e41461049b5750816342e12c5014610342578163ba414fa61461031c578163dc60f17c14610080575063fa7626d41461005c57600080fd5b3461007c578160031936011261007c5760ff602092541690519015158152f35b5080fd5b90503461031857826003193601126103185761009a6105a1565b6100a26105c4565b6013546001600160a01b0392919086908416803b1561007c57865163266c45bb60e11b815290829082908183816100dc898b838f0161062b565b03925af1801561030e576102f6575b50849084601354168751928380926306fdde0360e01b82525afa9283156102ec57859361011f9289916102d8575b50610849565b8583601354168651938480926395d89b4160e01b82525afa80156102ce5761014d9287916102ac5750610849565b6013541691805192838093630ac77c9f60e11b825260209586935afa9182156102a2578492610273575b50600182151503610186578380f35b6102229261023f927f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50608084518481526022858201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b626f6f86820152616c5d60f01b6060820152a16101f561095c565b8351807f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583978893826107e5565b0390a115610251575061023361095c565b905b5191829182610817565b0390a161024a61097c565b3880808380f35b6466616c736560d81b82519161026683610547565b6005835282015290610235565b610294919250833d851161029b575b61028c8183610563565b810190610683565b9038610177565b503d610282565b81513d86823e3d90fd5b6102c891503d8089833e6102c08183610563565b810190610786565b38610119565b85513d88823e3d90fd5b6102c891503d808b833e6102c08183610563565b86513d89823e3d90fd5b6102ff9061051d565b61030a5785386100eb565b8580fd5b87513d84823e3d90fd5b8280fd5b50503461007c578160031936011261007c576020906103396106a0565b90519015158152f35b8391503461007c578160031936011261007c5761035d6105a1565b926103666105c4565b6013546001600160a01b039591939086169190823b1561030a57835196868863266c45bb60e11b958682528183816103a18c8a8a840161062b565b03925af180156104915761047d575b869750737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15610479578551630618f58760e51b815262dc149f60e41b848201529088908290602490829084905af1801561046f5790889161045b575b50506013541690813b15610457578680946104288751988996879586948552840161062b565b03925af190811561044e575061043b5750f35b6104449061051d565b61044b5780f35b80fd5b513d84823e3d90fd5b8680fd5b6104649061051d565b610457578689610402565b86513d8a823e3d90fd5b8780fd5b9590966104899061051d565b9486906103b0565b85513d89823e3d90fd5b83859134610318578260031936011261031857610f0d8082019082821067ffffffffffffffff83111761050a57908291610a2c8339039083f09081156104ff575060018060a01b03166bffffffffffffffffffffffff60a01b601354161760135580f35b51913d9150823e3d90fd5b634e487b7160e01b855260418652602485fd5b67ffffffffffffffff811161053157604052565b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761053157604052565b90601f8019910116810190811067ffffffffffffffff82111761053157604052565b67ffffffffffffffff811161053157601f01601f191660200190565b604051906105ae82610547565b600782526626282a37b5b2b760c91b6020830152565b604051906105d182610547565b600382526213141560ea1b6020830152565b60005b8381106105f65750506000910152565b81810151838201526020016105e6565b9060209161061f815180928185528580860191016105e3565b601f01601f1916010190565b909161064261065093604084526040840190610606565b916020818403910152610606565b90565b3d1561067e573d9061066482610585565b916106726040519384610563565b82523d6000602084013e565b606090565b9081602091031261069b5751801515810361069b5790565b600080fd5b6000805460081c60ff16156106b9575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6106da57505090565b90915060405160208101908282526519985a5b195960d21b604082015260408152606081019080821067ffffffffffffffff83111761077257816107536024879695949387946040526080810195630667f9d760e41b87526107438251809260848501906105e3565b8101036004810184520182610563565b51925af150610650610763610653565b60208082518301019101610683565b634e487b7160e01b85526041600452602485fd5b60208183031261069b5780519067ffffffffffffffff821161069b570181601f8201121561069b5780516107b981610585565b926107c76040519485610563565b8184526020828401011161069b5761065091602080850191016105e3565b9060806106509260408152600a6040820152690808115e1c1958dd195960b21b60608201528160208201520190610606565b9060806106509260408152600a604082015269080808081058dd1d585b60b21b60608201528160208201520190610606565b604090815191602092838101906108778582865161086a8187858b016105e3565b8101038084520182610563565b51902081518481019061089686828161086a8b878151938492016105e3565b519020036108a5575b50505050565b61093b937f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f5060806109489560248551918083528201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b7374728582015263696e675d60e01b6060820152a18151807f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583968793826107e5565b0390a15191829182610817565b0390a161095361097c565b3880808061089f565b6040519061096982610547565b60048252637472756560e01b6020830152565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6109aa575b5061010061ff00196000541617600055565b6040519060208201908082526519985a5b195960d21b60408401526001606084015260608352608083019183831067ffffffffffffffff84111761053157600083610a1760248397849760405260a08101956370ca10bb60e01b87526107438251809260a48501906105e3565b51925af150610a24610653565b503861099856fe6080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c63430008160033a26469706673582212205dce78b1328bd419bc94c60879d5e6cf199cf5e22fd4498f347763616c05e7d064736f6c63430008160033","sourceMap":"121:752:66:-:0;;;;;;;1594:4:0;121:752:66;;1594:4:0;121:752:66;;;1594:4:0;121:752:66;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060408181526004918236101561001657600080fd5b600092833560e01c9182630a9254e41461049b5750816342e12c5014610342578163ba414fa61461031c578163dc60f17c14610080575063fa7626d41461005c57600080fd5b3461007c578160031936011261007c5760ff602092541690519015158152f35b5080fd5b90503461031857826003193601126103185761009a6105a1565b6100a26105c4565b6013546001600160a01b0392919086908416803b1561007c57865163266c45bb60e11b815290829082908183816100dc898b838f0161062b565b03925af1801561030e576102f6575b50849084601354168751928380926306fdde0360e01b82525afa9283156102ec57859361011f9289916102d8575b50610849565b8583601354168651938480926395d89b4160e01b82525afa80156102ce5761014d9287916102ac5750610849565b6013541691805192838093630ac77c9f60e11b825260209586935afa9182156102a2578492610273575b50600182151503610186578380f35b6102229261023f927f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50608084518481526022858201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b626f6f86820152616c5d60f01b6060820152a16101f561095c565b8351807f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583978893826107e5565b0390a115610251575061023361095c565b905b5191829182610817565b0390a161024a61097c565b3880808380f35b6466616c736560d81b82519161026683610547565b6005835282015290610235565b610294919250833d851161029b575b61028c8183610563565b810190610683565b9038610177565b503d610282565b81513d86823e3d90fd5b6102c891503d8089833e6102c08183610563565b810190610786565b38610119565b85513d88823e3d90fd5b6102c891503d808b833e6102c08183610563565b86513d89823e3d90fd5b6102ff9061051d565b61030a5785386100eb565b8580fd5b87513d84823e3d90fd5b8280fd5b50503461007c578160031936011261007c576020906103396106a0565b90519015158152f35b8391503461007c578160031936011261007c5761035d6105a1565b926103666105c4565b6013546001600160a01b039591939086169190823b1561030a57835196868863266c45bb60e11b958682528183816103a18c8a8a840161062b565b03925af180156104915761047d575b869750737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15610479578551630618f58760e51b815262dc149f60e41b848201529088908290602490829084905af1801561046f5790889161045b575b50506013541690813b15610457578680946104288751988996879586948552840161062b565b03925af190811561044e575061043b5750f35b6104449061051d565b61044b5780f35b80fd5b513d84823e3d90fd5b8680fd5b6104649061051d565b610457578689610402565b86513d8a823e3d90fd5b8780fd5b9590966104899061051d565b9486906103b0565b85513d89823e3d90fd5b83859134610318578260031936011261031857610f0d8082019082821067ffffffffffffffff83111761050a57908291610a2c8339039083f09081156104ff575060018060a01b03166bffffffffffffffffffffffff60a01b601354161760135580f35b51913d9150823e3d90fd5b634e487b7160e01b855260418652602485fd5b67ffffffffffffffff811161053157604052565b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761053157604052565b90601f8019910116810190811067ffffffffffffffff82111761053157604052565b67ffffffffffffffff811161053157601f01601f191660200190565b604051906105ae82610547565b600782526626282a37b5b2b760c91b6020830152565b604051906105d182610547565b600382526213141560ea1b6020830152565b60005b8381106105f65750506000910152565b81810151838201526020016105e6565b9060209161061f815180928185528580860191016105e3565b601f01601f1916010190565b909161064261065093604084526040840190610606565b916020818403910152610606565b90565b3d1561067e573d9061066482610585565b916106726040519384610563565b82523d6000602084013e565b606090565b9081602091031261069b5751801515810361069b5790565b600080fd5b6000805460081c60ff16156106b9575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6106da57505090565b90915060405160208101908282526519985a5b195960d21b604082015260408152606081019080821067ffffffffffffffff83111761077257816107536024879695949387946040526080810195630667f9d760e41b87526107438251809260848501906105e3565b8101036004810184520182610563565b51925af150610650610763610653565b60208082518301019101610683565b634e487b7160e01b85526041600452602485fd5b60208183031261069b5780519067ffffffffffffffff821161069b570181601f8201121561069b5780516107b981610585565b926107c76040519485610563565b8184526020828401011161069b5761065091602080850191016105e3565b9060806106509260408152600a6040820152690808115e1c1958dd195960b21b60608201528160208201520190610606565b9060806106509260408152600a604082015269080808081058dd1d585b60b21b60608201528160208201520190610606565b604090815191602092838101906108778582865161086a8187858b016105e3565b8101038084520182610563565b51902081518481019061089686828161086a8b878151938492016105e3565b519020036108a5575b50505050565b61093b937f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f5060806109489560248551918083528201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b7374728582015263696e675d60e01b6060820152a18151807f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583968793826107e5565b0390a15191829182610817565b0390a161095361097c565b3880808061089f565b6040519061096982610547565b60048252637472756560e01b6020830152565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6109aa575b5061010061ff00196000541617600055565b6040519060208201908082526519985a5b195960d21b60408401526001606084015260608352608083019183831067ffffffffffffffff84111761053157600083610a1760248397849760405260a08101956370ca10bb60e01b87526107438251809260a48501906105e3565b51925af150610a24610653565b503861099856fe6080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c63430008160033a26469706673582212205dce78b1328bd419bc94c60879d5e6cf199cf5e22fd4498f347763616c05e7d064736f6c63430008160033","sourceMap":"121:752:66:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;401:7;121:752;-1:-1:-1;;;;;121:752:66;;;;;;;401:32;;;;;121:752;;-1:-1:-1;;;401:32:66;;121:752;;;;;;;;401:32;121:752;;401:32;;;;:::i;:::-;;;;;;;;;;;121:752;;;;;401:7;121:752;;;;;;;;;;;453:14;;;;;;;;;;;469:4;453:14;;;;;121:752;469:4;;:::i;:::-;121:752;;401:7;121:752;;;;;;;;;;;493:16;;;;;;;;511:6;493:16;;;;;511:6;;:::i;:::-;401:7;121:752;;;;;;;;;;;;537:21;;;;;;;;;;;;;;;;;121:752;;560:4;121:752;;;854:6:3;850:245;;121:752:66;;;850:245:3;941:52;121:752:66;1012:52:3;121:752:66;881:41:3;121:752:66;;;;;;;;;;;;;;;;-1:-1:-1;;;121:752:66;;;;881:41:3;121:752:66;;:::i;:::-;;;941:52:3;;;;;;;:::i;:::-;;;;1043:20;;;121:752:66;;;:::i;:::-;1043:20:3;;121:752:66;1012:52:3;;;;;:::i;:::-;;;;;;:::i;:::-;850:245;;;121:752:66;;;1043:20:3;-1:-1:-1;;;121:752:66;;;;;;:::i;:::-;;;;;;;1043:20:3;;;537:21:66;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;121:752;;;;;;;;;493:16;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;121:752;;;;;;;;;453:14;;;;;;;;;;;;;:::i;:::-;121:752;;;;;;;;;401:32;;;;:::i;:::-;121:752;;401:32;;;;121:752;;;;401:32;121:752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;728:7;121:752;-1:-1:-1;;;;;121:752:66;;;;;;;;728:32;;;;;121:752;;;;;;;;728:32;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;121:752;;;;;770:52;;;;;121:752;;-1:-1:-1;;;770:52:66;;-1:-1:-1;;;770:52:66;;;1057:14:1;121:752:66;;;;;1057:14:1;;121:752:66;;;;770:52;;;;;;;;;;;121:752;;;728:7;121:752;;832:32;;;;;;121:752;;;832:32;121:752;;832:32;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;121:752;;832:32;;;;:::i;:::-;121:752;;832:32;121:752;;;;832:32;121:752;;;;;;;;832:32;121:752;;;770:52;;;;:::i;:::-;121:752;;770:52;;;;;121:752;;;;;;;;;770:52;121:752;;;728:32;;;;;;;:::i;:::-;;;;;;;121:752;;;;;;;;;;;;;;;;;;;;;;;;222:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;121:752;222:13;121:752;;;;;;;;212:23;121:752;;;212:23;121:752;;;222:13;121:752;;;;-1:-1:-1;121:752:66;;;;;222:13;-1:-1:-1;;;121:752:66;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;121:752:66;;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;121:752:66;;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;;121:752:66;;;;:::o;:::-;;;;;;;;-1:-1:-1;;121:752:66;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;121:752:66;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::o;1671:64:0:-;;;;;;121:752:66;;;;:::i;:::-;;;;;;;;:::i;:::-;;;1671:64:0;-1:-1:-1;1671:64:0;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;121:752:66;;;1671:64:0;;;;;:::o;:::-;-1:-1:-1;1671:64:0;;1819:584;1873:7;121:752:66;;;;;;;;;;;;;;;1896:14:0:o;1869:528::-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;121:752:66;;;;;2196:43:0;;;1671:64;;;;;;;121:752:66;1671:64:0;;;121:752:66;2196:43:0;;121:752:66;;;;;;;;;;;;;;2086:175:0;;121:752:66;;;;;;;;;2086:175:0;;;1057:14:1;;;;;;1671:64:0;121:752:66;;1671:64:0;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;;2312:27;2047:232;;:::i;:::-;2196:43;121:752:66;;;2312:27:0;;;;;;:::i;121:752:66:-;-1:-1:-1;;;121:752:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;121:752:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;121:752:66;;;;;;;;;;;;:::i;14688:344:0:-;121:752:66;;;;14773:19:0;;;;;;121:752:66;14773:19:0;121:752:66;;;;1671:64:0;;;;;;;:::i;:::-;;;14773:19;;;;;;;:::i;:::-;121:752:66;14763:30:0;;121:752:66;;14807:19:0;;;121:752:66;14807:19:0;121:752:66;;;1671:64:0;121:752:66;;;;1671:64:0;;;;;:::i;14807:19::-;121:752:66;14797:30:0;;14763:64;14759:267;;14688:344;;;;;:::o;14759:267::-;14910:33;121:752:66;14848:43:0;121:752:66;14962:33:0;121:752:66;;;;;;;;;;;;;;;;-1:-1:-1;;;121:752:66;;;;14848:43:0;121:752:66;;14910:33:0;;;;;;;:::i;:::-;;;;121:752:66;14962:33:0;;;;;:::i;:::-;;;;;;:::i;:::-;14759:267;;;;;;121:752:66;;;;;;;:::i;:::-;;;;-1:-1:-1;;;121:752:66;;;;:::o;2410:424:0:-;2939:104;;;2445:359;;2410:424;121:752:66;;;;2928:1:0;121:752:66;;;2928:1:0;121:752:66;2410:424:0:o;2445:359::-;121:752:66;;2645:67:0;;;;1671:64;;;;;;;121:752:66;;;1671:64:0;2705:4;121:752:66;;;1671:64:0;121:752:66;2645:67:0;;121:752:66;;;;;;;;;;;;;-1:-1:-1;121:752:66;2534:196:0;;121:752:66;;;;;;2534:196:0;;;1057:14:1;;;;;;1671:64:0;121:752:66;;1671:64:0;;;;;;;:::i;2534:196::-;2499:245;;;;;;;:::i;:::-;;2445:359;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","failed()":"ba414fa6","setUp()":"0a9254e4","test_LPToken_initialize_InitializesTheContract()":"dc60f17c","test_LPToken_initialize_OnlyInitializesOnce()":"42e12c50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_LPToken_initialize_InitializesTheContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_LPToken_initialize_OnlyInitializesOnce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/unit/LPToken/LPToken.t.sol\":\"LPTokenTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/test/unit/LPToken/LPToken.t.sol\":{\"keccak256\":\"0xfec75205a3bed3b5cacf28d237666c7e403e91551ea31166610c98bf8a6b30f7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fd0e17e94bf8b0bfa21979af8432fcfc37f997db0a0c94e6c197ec014202cefd\",\"dweb:/ipfs/QmTXTJGTgV1GAnKcVxshs1kmGSQyvghz1Mgr1GNcp9B7mC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_LPToken_initialize_InitializesTheContract"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_LPToken_initialize_OnlyInitializesOnce"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/unit/LPToken/LPToken.t.sol":"LPTokenTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/test/unit/LPToken/LPToken.t.sol":{"keccak256":"0xfec75205a3bed3b5cacf28d237666c7e403e91551ea31166610c98bf8a6b30f7","urls":["bzz-raw://fd0e17e94bf8b0bfa21979af8432fcfc37f997db0a0c94e6c197ec014202cefd","dweb:/ipfs/QmTXTJGTgV1GAnKcVxshs1kmGSQyvghz1Mgr1GNcp9B7mC"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/unit/LPToken/LPToken.t.sol","id":45863,"exportedSymbols":{"DSTest":[1786],"LPToken":[29516],"LPTokenTest":[45862],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"Test":[8195],"TestBase":[1843],"Vm":[9352],"console":[17416],"console2":[25512],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522]},"nodeType":"SourceUnit","src":"39:835:66","nodes":[{"id":45769,"nodeType":"PragmaDirective","src":"39:24:66","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":45770,"nodeType":"ImportDirective","src":"65:28:66","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":45863,"sourceUnit":8196,"symbolAliases":[],"unitAlias":""},{"id":45771,"nodeType":"ImportDirective","src":"94:25:66","nodes":[],"absolutePath":"src/LPToken.sol","file":"src/LPToken.sol","nameLocation":"-1:-1:-1","scope":45863,"sourceUnit":29517,"symbolAliases":[],"unitAlias":""},{"id":45862,"nodeType":"ContractDefinition","src":"121:752:66","nodes":[{"id":45776,"nodeType":"VariableDeclaration","src":"156:15:66","nodes":[],"constant":false,"mutability":"mutable","name":"lpToken","nameLocation":"164:7:66","scope":45862,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"},"typeName":{"id":45775,"nodeType":"UserDefinedTypeName","pathNode":{"id":45774,"name":"LPToken","nameLocations":["156:7:66"],"nodeType":"IdentifierPath","referencedDeclaration":29516,"src":"156:7:66"},"referencedDeclaration":29516,"src":"156:7:66","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"visibility":"internal"},{"id":45787,"nodeType":"FunctionDefinition","src":"178:64:66","nodes":[],"body":{"id":45786,"nodeType":"Block","src":"202:40:66","nodes":[],"statements":[{"expression":{"id":45784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45779,"name":"lpToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45776,"src":"212:7:66","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":45782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"222:11:66","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_LPToken_$29516_$","typeString":"function () returns (contract LPToken)"},"typeName":{"id":45781,"nodeType":"UserDefinedTypeName","pathNode":{"id":45780,"name":"LPToken","nameLocations":["226:7:66"],"nodeType":"IdentifierPath","referencedDeclaration":29516,"src":"226:7:66"},"referencedDeclaration":29516,"src":"226:7:66","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}}},"id":45783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"222:13:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"src":"212:23:66","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"id":45785,"nodeType":"ExpressionStatement","src":"212:23:66"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"187:5:66","parameters":{"id":45777,"nodeType":"ParameterList","parameters":[],"src":"192:2:66"},"returnParameters":{"id":45778,"nodeType":"ParameterList","parameters":[],"src":"202:0:66"},"scope":45862,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":45827,"nodeType":"FunctionDefinition","src":"248:324:66","nodes":[],"body":{"id":45826,"nodeType":"Block","src":"313:259:66","nodes":[],"statements":[{"assignments":[45791],"declarations":[{"constant":false,"id":45791,"mutability":"mutable","name":"name","nameLocation":"337:4:66","nodeType":"VariableDeclaration","scope":45826,"src":"323:18:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45790,"name":"string","nodeType":"ElementaryTypeName","src":"323:6:66","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":45793,"initialValue":{"hexValue":"4c50546f6b656e","id":45792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"344:9:66","typeDescriptions":{"typeIdentifier":"t_stringliteral_91896885eb10c3c73de18aef4dd028882060740275c7a0f7d08a98d2ad73965d","typeString":"literal_string \"LPToken\""},"value":"LPToken"},"nodeType":"VariableDeclarationStatement","src":"323:30:66"},{"assignments":[45795],"declarations":[{"constant":false,"id":45795,"mutability":"mutable","name":"symbol","nameLocation":"377:6:66","nodeType":"VariableDeclaration","scope":45826,"src":"363:20:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45794,"name":"string","nodeType":"ElementaryTypeName","src":"363:6:66","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":45797,"initialValue":{"hexValue":"4c5054","id":45796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"386:5:66","typeDescriptions":{"typeIdentifier":"t_stringliteral_32e82afd8218e1d9053bf5b198b85ca1af3dff4739f28e3618abcbfacb818cfa","typeString":"literal_string \"LPT\""},"value":"LPT"},"nodeType":"VariableDeclarationStatement","src":"363:28:66"},{"expression":{"arguments":[{"id":45801,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45791,"src":"420:4:66","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45802,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45795,"src":"426:6:66","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":45798,"name":"lpToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45776,"src":"401:7:66","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"id":45800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"409:10:66","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":29204,"src":"401:18:66","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory) external"}},"id":45803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"401:32:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45804,"nodeType":"ExpressionStatement","src":"401:32:66"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45806,"name":"lpToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45776,"src":"453:7:66","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"id":45807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"461:4:66","memberName":"name","nodeType":"MemberAccess","referencedDeclaration":29087,"src":"453:12:66","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":45808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"453:14:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45809,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45791,"src":"469:4:66","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"}],"id":45805,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":1639,"src":"444:8:66","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":45810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"444:30:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45811,"nodeType":"ExpressionStatement","src":"444:30:66"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45813,"name":"lpToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45776,"src":"493:7:66","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"id":45814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"501:6:66","memberName":"symbol","nodeType":"MemberAccess","referencedDeclaration":29089,"src":"493:14:66","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":45815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"493:16:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45816,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45795,"src":"511:6:66","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"}],"id":45812,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":1639,"src":"484:8:66","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":45817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"484:34:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45818,"nodeType":"ExpressionStatement","src":"484:34:66"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45820,"name":"lpToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45776,"src":"537:7:66","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"id":45821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"545:11:66","memberName":"initialized","nodeType":"MemberAccess","referencedDeclaration":29116,"src":"537:19:66","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":45822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"537:21:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"74727565","id":45823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"560:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":45819,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":2011,"src":"528:8:66","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$","typeString":"function (bool,bool)"}},"id":45824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"528:37:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45825,"nodeType":"ExpressionStatement","src":"528:37:66"}]},"functionSelector":"dc60f17c","implemented":true,"kind":"function","modifiers":[],"name":"test_LPToken_initialize_InitializesTheContract","nameLocation":"257:46:66","parameters":{"id":45788,"nodeType":"ParameterList","parameters":[],"src":"303:2:66"},"returnParameters":{"id":45789,"nodeType":"ParameterList","parameters":[],"src":"313:0:66"},"scope":45862,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":45861,"nodeType":"FunctionDefinition","src":"578:293:66","nodes":[],"body":{"id":45860,"nodeType":"Block","src":"640:231:66","nodes":[],"statements":[{"assignments":[45831],"declarations":[{"constant":false,"id":45831,"mutability":"mutable","name":"name","nameLocation":"664:4:66","nodeType":"VariableDeclaration","scope":45860,"src":"650:18:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45830,"name":"string","nodeType":"ElementaryTypeName","src":"650:6:66","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":45833,"initialValue":{"hexValue":"4c50546f6b656e","id":45832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"671:9:66","typeDescriptions":{"typeIdentifier":"t_stringliteral_91896885eb10c3c73de18aef4dd028882060740275c7a0f7d08a98d2ad73965d","typeString":"literal_string \"LPToken\""},"value":"LPToken"},"nodeType":"VariableDeclarationStatement","src":"650:30:66"},{"assignments":[45835],"declarations":[{"constant":false,"id":45835,"mutability":"mutable","name":"symbol","nameLocation":"704:6:66","nodeType":"VariableDeclaration","scope":45860,"src":"690:20:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45834,"name":"string","nodeType":"ElementaryTypeName","src":"690:6:66","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":45837,"initialValue":{"hexValue":"4c5054","id":45836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"713:5:66","typeDescriptions":{"typeIdentifier":"t_stringliteral_32e82afd8218e1d9053bf5b198b85ca1af3dff4739f28e3618abcbfacb818cfa","typeString":"literal_string \"LPT\""},"value":"LPT"},"nodeType":"VariableDeclarationStatement","src":"690:28:66"},{"expression":{"arguments":[{"id":45841,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45831,"src":"747:4:66","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45842,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"753:6:66","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":45838,"name":"lpToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45776,"src":"728:7:66","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"id":45840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"736:10:66","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":29204,"src":"728:18:66","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory) external"}},"id":45843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"728:32:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45844,"nodeType":"ExpressionStatement","src":"728:32:66"},{"expression":{"arguments":[{"expression":{"expression":{"id":45848,"name":"LPToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29516,"src":"786:7:66","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LPToken_$29516_$","typeString":"type(contract LPToken)"}},"id":45849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"794:18:66","memberName":"AlreadyInitialized","nodeType":"MemberAccess","referencedDeclaration":29069,"src":"786:26:66","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"813:8:66","memberName":"selector","nodeType":"MemberAccess","src":"786:35:66","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":45845,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"770:2:66","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":45847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"773:12:66","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":9121,"src":"770:15:66","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes4_$returns$__$","typeString":"function (bytes4) external"}},"id":45851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"770:52:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45852,"nodeType":"ExpressionStatement","src":"770:52:66"},{"expression":{"arguments":[{"id":45856,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45831,"src":"851:4:66","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":45857,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"857:6:66","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":45853,"name":"lpToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45776,"src":"832:7:66","typeDescriptions":{"typeIdentifier":"t_contract$_LPToken_$29516","typeString":"contract LPToken"}},"id":45855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"840:10:66","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":29204,"src":"832:18:66","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory) external"}},"id":45858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"832:32:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45859,"nodeType":"ExpressionStatement","src":"832:32:66"}]},"functionSelector":"42e12c50","implemented":true,"kind":"function","modifiers":[],"name":"test_LPToken_initialize_OnlyInitializesOnce","nameLocation":"587:43:66","parameters":{"id":45828,"nodeType":"ParameterList","parameters":[],"src":"630:2:66"},"returnParameters":{"id":45829,"nodeType":"ParameterList","parameters":[],"src":"640:0:66"},"scope":45862,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":45772,"name":"Test","nameLocations":["145:4:66"],"nodeType":"IdentifierPath","referencedDeclaration":8195,"src":"145:4:66"},"id":45773,"nodeType":"InheritanceSpecifier","src":"145:4:66"}],"canonicalName":"LPTokenTest","contractDependencies":[29516],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[45862,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"LPTokenTest","nameLocation":"130:11:66","scope":45863,"usedErrors":[],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":66} \ No newline at end of file diff --git a/out/Lex.sol/Lex.json b/out/Lex.sol/Lex.json deleted file mode 100644 index c7f08eec..00000000 --- a/out/Lex.sol/Lex.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"arbiterTokenX_","type":"address","internalType":"address"},{"name":"arbiterTokenY_","type":"address","internalType":"address"},{"name":"price_","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"arbiterTokenX","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"arbiterTokenY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"price","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setPrice","inputs":[{"name":"_price","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"PriceChange","inputs":[{"name":"price","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"timestamp","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Swap","inputs":[{"name":"tokenIn","type":"address","indexed":false,"internalType":"address"},{"name":"tokenOut","type":"address","indexed":false,"internalType":"address"},{"name":"amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amountOut","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x60803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033","sourceMap":"576:2013:56:-:0;;;;;;;;;;;;;-1:-1:-1;;576:2013:56;;;;-1:-1:-1;;;;;576:2013:56;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;1064:10;;576:2013;-1:-1:-1;576:2013:56;;;-1:-1:-1;576:2013:56;;;;;;;;;;;;;;;;;;1174:30;576:2013;;;1174:30;576:2013;1214:14;576:2013;;;;;;;;;;;-1:-1:-1;576:2013:56;;;;;;-1:-1:-1;576:2013:56;;;;;-1:-1:-1;576:2013:56;;;;-1:-1:-1;;;;;576:2013:56;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033","sourceMap":"576:2013:56:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;576:2013:56;;;;;;;;;;;;;;;;;-1:-1:-1;;576:2013:56;;;;-1:-1:-1;576:2013:56;;;;-1:-1:-1;;;;;576:2013:56;1302:10;:19;576:2013;;;;1740:35;576:2013;1711:14;576:2013;;;;;;1759:15;576:2013;;;;1740:35;576:2013;;;;-1:-1:-1;;;576:2013:56;;;;;;;;;;;;;;;;;-1:-1:-1;;;576:2013:56;;;;;;;;-1:-1:-1;576:2013:56;;;;;;;;-1:-1:-1;;576:2013:56;;;;;771:20;576:2013;;;;;;;;;;;;;-1:-1:-1;;576:2013:56;;;;;;-1:-1:-1;;;;;576:2013:56;;;;;;;;;1922:13;576:2013;;;;1854:17;-1:-1:-1;;;;;576:2013:56;;;;1911:24;;576:2013;;-1:-1:-1;1962:13:56;576:2013;-1:-1:-1;;;;;576:2013:56;;631:21:18;2040:5:56;576:2013;631:21:18;;:::i;:::-;576:2013:56;;-1:-1:-1;;;2297:64:56;;2325:10;576:2013;2297:64;;576:2013;2345:4;576:2013;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2297:64:56;;;;;;2276:126;2297:64;-1:-1:-1;2297:64:56;;;1907:360;2276:126;;:::i;:::-;576:2013;;-1:-1:-1;;;2433:47:56;;2325:10;576:2013;2433:47;;576:2013;;;;;;;;;;;;;;;;-1:-1:-1;;576:2013:56;;2433:47;;;;;;;2524:56;2433:47;2524:56;2433:47;2412:97;2433:47;-1:-1:-1;2433:47:56;;;1907:360;2412:97;;;:::i;:::-;576:2013;;;-1:-1:-1;;;;;576:2013:56;;;;;;;;;;;;;;;;;;;;;;;;;;;2325:10;576:2013;;;;;;;;;;;2524:56;;;;576:2013;2433:47;;;;;;-1:-1:-1;2433:47:56;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;:::i;2297:64::-;;;;;;;;;;;;;;:::i;:::-;;;;1907:360;2078:13;576:2013;-1:-1:-1;;;;;576:2013:56;2067:24;;2078:13;;576:2013;965:21:18;2196:5:56;576:2013;965:21:18;;:::i;:::-;1907:360:56;;2063:204;576:2013;;-1:-1:-1;;;2233:23:56;;576:2013;;2233:23;;576:2013;;;;;;-1:-1:-1;;;576:2013:56;;;;;;2233:23;576:2013;;;;;;-1:-1:-1;;576:2013:56;;;;737:28;576:2013;;;-1:-1:-1;;;;;576:2013:56;;;;;;;;;;;;;;-1:-1:-1;;576:2013:56;;;;;;;;-1:-1:-1;;;;;576:2013:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;576:2013:56;;;;;;;;;;;;-1:-1:-1;;;576:2013:56;;;;;;;7741:535:18;491:4;7878:392;;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;7878:392;;;;;;;;;;;;;;;;491:4;7878:392;;7741:535;:::o","linkReferences":{}},"methodIdentifiers":{"admin()":"f851a440","arbiterTokenX()":"3b204948","arbiterTokenY()":"d0c472ec","price()":"a035b1fe","setPrice(uint256)":"91b7f5ed","swap(address,uint256)":"d004f0f7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"arbiterTokenX_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"arbiterTokenY_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"PriceChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"arbiterTokenX\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"arbiterTokenY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_price\",\"type\":\"uint256\"}],\"name\":\"setPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the test interface for Arbiter writing contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/helpers/Lex.sol\":\"Lex\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"arbiterTokenX_","type":"address"},{"internalType":"address","name":"arbiterTokenY_","type":"address"},{"internalType":"uint256","name":"price_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"price","type":"uint256","indexed":false},{"internalType":"uint256","name":"timestamp","type":"uint256","indexed":false}],"type":"event","name":"PriceChange","anonymous":false},{"inputs":[{"internalType":"address","name":"tokenIn","type":"address","indexed":false},{"internalType":"address","name":"tokenOut","type":"address","indexed":false},{"internalType":"uint256","name":"amountIn","type":"uint256","indexed":false},{"internalType":"uint256","name":"amountOut","type":"uint256","indexed":false},{"internalType":"address","name":"to","type":"address","indexed":false}],"type":"event","name":"Swap","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"arbiterTokenX","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"arbiterTokenY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_price","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setPrice"},{"inputs":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/helpers/Lex.sol":"Lex"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/helpers/Lex.sol","id":44393,"exportedSymbols":{"ArbiterToken":[43381],"ERC20":[25948],"FixedPointMathLib":[26640],"Lex":[44392]},"nodeType":"SourceUnit","src":"119:2471:56","nodes":[{"id":44203,"nodeType":"PragmaDirective","src":"119:24:56","nodes":[],"literals":["solidity","^","0.8",".17"]},{"id":44204,"nodeType":"ImportDirective","src":"381:34:56","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/tokens/ERC20.sol","file":"solmate/tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":44393,"sourceUnit":25949,"symbolAliases":[],"unitAlias":""},{"id":44205,"nodeType":"ImportDirective","src":"416:45:56","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol","file":"solmate/utils/FixedPointMathLib.sol","nameLocation":"-1:-1:-1","scope":44393,"sourceUnit":26641,"symbolAliases":[],"unitAlias":""},{"id":44206,"nodeType":"ImportDirective","src":"462:28:56","nodes":[],"absolutePath":"src/test/helpers/ArbiterToken.sol","file":"./ArbiterToken.sol","nameLocation":"-1:-1:-1","scope":44393,"sourceUnit":43382,"symbolAliases":[],"unitAlias":""},{"id":44392,"nodeType":"ContractDefinition","src":"576:2013:56","nodes":[{"id":44210,"nodeType":"UsingForDirective","src":"595:35:56","nodes":[],"global":false,"libraryName":{"id":44208,"name":"FixedPointMathLib","nameLocations":["601:17:56"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"601:17:56"},"typeName":{"id":44209,"name":"int256","nodeType":"ElementaryTypeName","src":"623:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":44213,"nodeType":"UsingForDirective","src":"635:36:56","nodes":[],"global":false,"libraryName":{"id":44211,"name":"FixedPointMathLib","nameLocations":["641:17:56"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"641:17:56"},"typeName":{"id":44212,"name":"uint256","nodeType":"ElementaryTypeName","src":"663:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":44215,"nodeType":"VariableDeclaration","src":"677:20:56","nodes":[],"constant":false,"functionSelector":"f851a440","mutability":"mutable","name":"admin","nameLocation":"692:5:56","scope":44392,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44214,"name":"address","nodeType":"ElementaryTypeName","src":"677:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":44217,"nodeType":"VariableDeclaration","src":"703:28:56","nodes":[],"constant":false,"functionSelector":"3b204948","mutability":"mutable","name":"arbiterTokenX","nameLocation":"718:13:56","scope":44392,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44216,"name":"address","nodeType":"ElementaryTypeName","src":"703:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":44219,"nodeType":"VariableDeclaration","src":"737:28:56","nodes":[],"constant":false,"functionSelector":"d0c472ec","mutability":"mutable","name":"arbiterTokenY","nameLocation":"752:13:56","scope":44392,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44218,"name":"address","nodeType":"ElementaryTypeName","src":"737:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":44221,"nodeType":"VariableDeclaration","src":"771:20:56","nodes":[],"constant":false,"functionSelector":"a035b1fe","mutability":"mutable","name":"price","nameLocation":"786:5:56","scope":44392,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44220,"name":"uint256","nodeType":"ElementaryTypeName","src":"771:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":44226,"nodeType":"VariableDeclaration","src":"797:31:56","nodes":[],"constant":true,"mutability":"constant","name":"WAD","nameLocation":"814:3:56","scope":44392,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44222,"name":"uint256","nodeType":"ElementaryTypeName","src":"797:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":44225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":44223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"820:2:56","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":44224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"826:2:56","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"820:8:56","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"visibility":"internal"},{"id":44253,"nodeType":"FunctionDefinition","src":"940:295:56","nodes":[],"body":{"id":44252,"nodeType":"Block","src":"1046:189:56","nodes":[],"statements":[{"expression":{"id":44238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44235,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44215,"src":"1056:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":44236,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1064:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":44237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1068:6:56","memberName":"sender","nodeType":"MemberAccess","src":"1064:10:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1056:18:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44239,"nodeType":"ExpressionStatement","src":"1056:18:56"},{"expression":{"id":44242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44240,"name":"arbiterTokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44217,"src":"1134:13:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44241,"name":"arbiterTokenX_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44228,"src":"1150:14:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1134:30:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44243,"nodeType":"ExpressionStatement","src":"1134:30:56"},{"expression":{"id":44246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44244,"name":"arbiterTokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44219,"src":"1174:13:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44245,"name":"arbiterTokenY_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44230,"src":"1190:14:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1174:30:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44247,"nodeType":"ExpressionStatement","src":"1174:30:56"},{"expression":{"id":44250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44248,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"1214:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44249,"name":"price_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44232,"src":"1222:6:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1214:14:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44251,"nodeType":"ExpressionStatement","src":"1214:14:56"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":44233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44228,"mutability":"mutable","name":"arbiterTokenX_","nameLocation":"969:14:56","nodeType":"VariableDeclaration","scope":44253,"src":"961:22:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44227,"name":"address","nodeType":"ElementaryTypeName","src":"961:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44230,"mutability":"mutable","name":"arbiterTokenY_","nameLocation":"1001:14:56","nodeType":"VariableDeclaration","scope":44253,"src":"993:22:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44229,"name":"address","nodeType":"ElementaryTypeName","src":"993:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44232,"mutability":"mutable","name":"price_","nameLocation":"1033:6:56","nodeType":"VariableDeclaration","scope":44253,"src":"1025:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44231,"name":"uint256","nodeType":"ElementaryTypeName","src":"1025:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"951:94:56"},"returnParameters":{"id":44234,"nodeType":"ParameterList","parameters":[],"src":"1046:0:56"},"scope":44392,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":44265,"nodeType":"ModifierDefinition","src":"1263:114:56","nodes":[],"body":{"id":44264,"nodeType":"Block","src":"1284:93:56","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":44259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44256,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1302:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":44257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1306:6:56","memberName":"sender","nodeType":"MemberAccess","src":"1302:10:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44258,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44215,"src":"1316:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1302:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6e","id":44260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1323:35:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0ef19aa67a8b89b19419c8977a6a75d04286a47014bf7a3d2ea537634352c8b","typeString":"literal_string \"Only admin can call this function\""},"value":"Only admin can call this function"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e0ef19aa67a8b89b19419c8977a6a75d04286a47014bf7a3d2ea537634352c8b","typeString":"literal_string \"Only admin can call this function\""}],"id":44255,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1294:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":44261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1294:65:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44262,"nodeType":"ExpressionStatement","src":"1294:65:56"},{"id":44263,"nodeType":"PlaceholderStatement","src":"1369:1:56"}]},"name":"onlyAdmin","nameLocation":"1272:9:56","parameters":{"id":44254,"nodeType":"ParameterList","parameters":[],"src":"1281:2:56"},"virtual":false,"visibility":"internal"},{"id":44271,"nodeType":"EventDefinition","src":"1383:52:56","nodes":[],"anonymous":false,"eventSelector":"fe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d","name":"PriceChange","nameLocation":"1389:11:56","parameters":{"id":44270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44267,"indexed":false,"mutability":"mutable","name":"price","nameLocation":"1409:5:56","nodeType":"VariableDeclaration","scope":44271,"src":"1401:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44266,"name":"uint256","nodeType":"ElementaryTypeName","src":"1401:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44269,"indexed":false,"mutability":"mutable","name":"timestamp","nameLocation":"1424:9:56","nodeType":"VariableDeclaration","scope":44271,"src":"1416:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44268,"name":"uint256","nodeType":"ElementaryTypeName","src":"1416:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1400:34:56"}},{"id":44283,"nodeType":"EventDefinition","src":"1440:141:56","nodes":[],"anonymous":false,"eventSelector":"b39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0","name":"Swap","nameLocation":"1446:4:56","parameters":{"id":44282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44273,"indexed":false,"mutability":"mutable","name":"tokenIn","nameLocation":"1468:7:56","nodeType":"VariableDeclaration","scope":44283,"src":"1460:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44272,"name":"address","nodeType":"ElementaryTypeName","src":"1460:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44275,"indexed":false,"mutability":"mutable","name":"tokenOut","nameLocation":"1493:8:56","nodeType":"VariableDeclaration","scope":44283,"src":"1485:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44274,"name":"address","nodeType":"ElementaryTypeName","src":"1485:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44277,"indexed":false,"mutability":"mutable","name":"amountIn","nameLocation":"1519:8:56","nodeType":"VariableDeclaration","scope":44283,"src":"1511:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44276,"name":"uint256","nodeType":"ElementaryTypeName","src":"1511:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44279,"indexed":false,"mutability":"mutable","name":"amountOut","nameLocation":"1545:9:56","nodeType":"VariableDeclaration","scope":44283,"src":"1537:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44278,"name":"uint256","nodeType":"ElementaryTypeName","src":"1537:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44281,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"1572:2:56","nodeType":"VariableDeclaration","scope":44283,"src":"1564:10:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44280,"name":"address","nodeType":"ElementaryTypeName","src":"1564:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1450:130:56"}},{"id":44301,"nodeType":"FunctionDefinition","src":"1650:132:56","nodes":[],"body":{"id":44300,"nodeType":"Block","src":"1701:81:56","nodes":[],"statements":[{"expression":{"id":44292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44290,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"1711:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44291,"name":"_price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44285,"src":"1719:6:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1711:14:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44293,"nodeType":"ExpressionStatement","src":"1711:14:56"},{"eventCall":{"arguments":[{"id":44295,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"1752:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":44296,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1759:5:56","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1765:9:56","memberName":"timestamp","nodeType":"MemberAccess","src":"1759:15:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44294,"name":"PriceChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44271,"src":"1740:11:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":44298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1740:35:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44299,"nodeType":"EmitStatement","src":"1735:40:56"}]},"functionSelector":"91b7f5ed","implemented":true,"kind":"function","modifiers":[{"id":44288,"kind":"modifierInvocation","modifierName":{"id":44287,"name":"onlyAdmin","nameLocations":["1691:9:56"],"nodeType":"IdentifierPath","referencedDeclaration":44265,"src":"1691:9:56"},"nodeType":"ModifierInvocation","src":"1691:9:56"}],"name":"setPrice","nameLocation":"1659:8:56","parameters":{"id":44286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44285,"mutability":"mutable","name":"_price","nameLocation":"1676:6:56","nodeType":"VariableDeclaration","scope":44301,"src":"1668:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44284,"name":"uint256","nodeType":"ElementaryTypeName","src":"1668:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1667:16:56"},"returnParameters":{"id":44289,"nodeType":"ParameterList","parameters":[],"src":"1701:0:56"},"scope":44392,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":44391,"nodeType":"FunctionDefinition","src":"1788:799:56","nodes":[],"body":{"id":44390,"nodeType":"Block","src":"1844:743:56","nodes":[],"statements":[{"assignments":[44309],"declarations":[{"constant":false,"id":44309,"mutability":"mutable","name":"amountOut","nameLocation":"1862:9:56","nodeType":"VariableDeclaration","scope":44390,"src":"1854:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44308,"name":"uint256","nodeType":"ElementaryTypeName","src":"1854:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44310,"nodeType":"VariableDeclarationStatement","src":"1854:17:56"},{"assignments":[44312],"declarations":[{"constant":false,"id":44312,"mutability":"mutable","name":"tokenOut","nameLocation":"1889:8:56","nodeType":"VariableDeclaration","scope":44390,"src":"1881:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44311,"name":"address","nodeType":"ElementaryTypeName","src":"1881:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44313,"nodeType":"VariableDeclarationStatement","src":"1881:16:56"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":44316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44314,"name":"tokenIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44303,"src":"1911:7:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44315,"name":"arbiterTokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44217,"src":"1922:13:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1911:24:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":44332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44330,"name":"tokenIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44303,"src":"2067:7:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44331,"name":"arbiterTokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44219,"src":"2078:13:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2067:24:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44350,"nodeType":"Block","src":"2219:48:56","statements":[{"expression":{"arguments":[{"hexValue":"496e76616c696420746f6b656e","id":44347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2240:15:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6","typeString":"literal_string \"Invalid token\""},"value":"Invalid token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6","typeString":"literal_string \"Invalid token\""}],"id":44346,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2233:6:56","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":44348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2233:23:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44349,"nodeType":"ExpressionStatement","src":"2233:23:56"}]},"id":44351,"nodeType":"IfStatement","src":"2063:204:56","trueBody":{"id":44345,"nodeType":"Block","src":"2093:120:56","statements":[{"expression":{"id":44335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44333,"name":"tokenOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44312,"src":"2107:8:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44334,"name":"arbiterTokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44217,"src":"2118:13:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2107:24:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44336,"nodeType":"ExpressionStatement","src":"2107:24:56"},{"expression":{"id":44343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44337,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44309,"src":"2145:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44340,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44305,"src":"2186:8:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44341,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"2196:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44338,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"2157:17:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2175:10:56","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"2157:28:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":44342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2157:45:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2145:57:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44344,"nodeType":"ExpressionStatement","src":"2145:57:56"}]}},"id":44352,"nodeType":"IfStatement","src":"1907:360:56","trueBody":{"id":44329,"nodeType":"Block","src":"1937:120:56","statements":[{"expression":{"id":44319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44317,"name":"tokenOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44312,"src":"1951:8:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44318,"name":"arbiterTokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44219,"src":"1962:13:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1951:24:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44320,"nodeType":"ExpressionStatement","src":"1951:24:56"},{"expression":{"id":44327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44321,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44309,"src":"1989:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44324,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44305,"src":"2030:8:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44325,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"2040:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44322,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"2001:17:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":44323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2019:10:56","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"2001:28:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":44326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2001:45:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1989:57:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44328,"nodeType":"ExpressionStatement","src":"1989:57:56"}]}},{"expression":{"arguments":[{"arguments":[{"expression":{"id":44358,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2325:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":44359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2329:6:56","memberName":"sender","nodeType":"MemberAccess","src":"2325:10:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":44362,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2345:4:56","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}],"id":44361,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2337:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":44360,"name":"address","nodeType":"ElementaryTypeName","src":"2337:7:56","typeDescriptions":{}}},"id":44363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2337:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44364,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44305,"src":"2352:8:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":44355,"name":"tokenIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44303,"src":"2303:7:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44354,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25948,"src":"2297:5:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$25948_$","typeString":"type(contract ERC20)"}},"id":44356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2297:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":44357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2312:12:56","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":25759,"src":"2297:27:56","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":44365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2297:64:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e73666572206661696c6564","id":44366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2375:17:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51","typeString":"literal_string \"Transfer failed\""},"value":"Transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51","typeString":"literal_string \"Transfer failed\""}],"id":44353,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2276:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":44367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2276:126:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44368,"nodeType":"ExpressionStatement","src":"2276:126:56"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":44374,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2458:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":44375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2462:6:56","memberName":"sender","nodeType":"MemberAccess","src":"2458:10:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44376,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44309,"src":"2470:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":44371,"name":"tokenOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44312,"src":"2439:8:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44370,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25948,"src":"2433:5:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$25948_$","typeString":"type(contract ERC20)"}},"id":44372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2433:15:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":44373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2449:8:56","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":25698,"src":"2433:24:56","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":44377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2433:47:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e73666572206661696c6564","id":44378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2482:17:56","typeDescriptions":{"typeIdentifier":"t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51","typeString":"literal_string \"Transfer failed\""},"value":"Transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51","typeString":"literal_string \"Transfer failed\""}],"id":44369,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2412:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":44379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2412:97:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44380,"nodeType":"ExpressionStatement","src":"2412:97:56"},{"eventCall":{"arguments":[{"id":44382,"name":"tokenIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44303,"src":"2529:7:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44383,"name":"tokenOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44312,"src":"2538:8:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44384,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44305,"src":"2548:8:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44385,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44309,"src":"2558:9:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":44386,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2569:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":44387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2573:6:56","memberName":"sender","nodeType":"MemberAccess","src":"2569:10:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44381,"name":"Swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44283,"src":"2524:4:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,address,uint256,uint256,address)"}},"id":44388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2524:56:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44389,"nodeType":"EmitStatement","src":"2519:61:56"}]},"functionSelector":"d004f0f7","implemented":true,"kind":"function","modifiers":[],"name":"swap","nameLocation":"1797:4:56","parameters":{"id":44306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44303,"mutability":"mutable","name":"tokenIn","nameLocation":"1810:7:56","nodeType":"VariableDeclaration","scope":44391,"src":"1802:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44302,"name":"address","nodeType":"ElementaryTypeName","src":"1802:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44305,"mutability":"mutable","name":"amountIn","nameLocation":"1827:8:56","nodeType":"VariableDeclaration","scope":44391,"src":"1819:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44304,"name":"uint256","nodeType":"ElementaryTypeName","src":"1819:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1801:35:56"},"returnParameters":{"id":44307,"nodeType":"ParameterList","parameters":[],"src":"1844:0:56"},"scope":44392,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Lex","contractDependencies":[],"contractKind":"contract","documentation":{"id":44207,"nodeType":"StructuredDocumentation","src":"492:83:56","text":" @dev Implementation of the test interface for Arbiter writing contracts."},"fullyImplemented":true,"linearizedBaseContracts":[44392],"name":"Lex","nameLocation":"585:3:56","scope":44393,"usedErrors":[],"usedEvents":[44271,44283]}],"license":"UNLICENSED"},"id":56} \ No newline at end of file diff --git a/out/LibString.sol/LibString.json b/out/LibString.sol/LibString.json deleted file mode 100644 index a8d29cee..00000000 --- a/out/LibString.sol/LibString.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220a77064c9ff06e79f388d7a5842200614e9cc9de4b328f881f1b70b7cd661d2af64736f6c63430008160033","sourceMap":"233:1391:19:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220a77064c9ff06e79f388d7a5842200614e9cc9de4b328f881f1b70b7cd661d2af64736f6c63430008160033","sourceMap":"233:1391:19:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/LibString.sol)\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Efficient library for creating string representations of integers.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/solmate/src/utils/LibString.sol\":\"LibString\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/solmate/src/utils/LibString.sol":"LibString"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/solmate/src/utils/LibString.sol","id":26660,"exportedSymbols":{"LibString":[26659]},"nodeType":"SourceUnit","src":"32:1593:19","nodes":[{"id":26642,"nodeType":"PragmaDirective","src":"32:24:19","nodes":[],"literals":["solidity",">=","0.8",".0"]},{"id":26659,"nodeType":"ContractDefinition","src":"233:1391:19","nodes":[{"id":26658,"nodeType":"FunctionDefinition","src":"257:1365:19","nodes":[],"body":{"id":26657,"nodeType":"Block","src":"328:1294:19","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26650,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26645,"src":"342:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":26651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"347:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"342:6:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26655,"nodeType":"IfStatement","src":"338:22:19","trueBody":{"expression":{"hexValue":"30","id":26653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"357:3:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"functionReturnParameters":26649,"id":26654,"nodeType":"Return","src":"350:10:19"}},{"AST":{"nativeSrc":"428:1188:19","nodeType":"YulBlock","src":"428:1188:19","statements":[{"nativeSrc":"442:11:19","nodeType":"YulVariableDeclaration","src":"442:11:19","value":{"kind":"number","nativeSrc":"451:2:19","nodeType":"YulLiteral","src":"451:2:19","type":"","value":"78"},"variables":[{"name":"k","nativeSrc":"446:1:19","nodeType":"YulTypedName","src":"446:1:19","type":""}]},{"nativeSrc":"596:18:19","nodeType":"YulAssignment","src":"596:18:19","value":{"arguments":[{"kind":"number","nativeSrc":"609:4:19","nodeType":"YulLiteral","src":"609:4:19","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"603:5:19","nodeType":"YulIdentifier","src":"603:5:19"},"nativeSrc":"603:11:19","nodeType":"YulFunctionCall","src":"603:11:19"},"variableNames":[{"name":"str","nativeSrc":"596:3:19","nodeType":"YulIdentifier","src":"596:3:19"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"708:3:19","nodeType":"YulIdentifier","src":"708:3:19"},{"name":"k","nativeSrc":"713:1:19","nodeType":"YulIdentifier","src":"713:1:19"}],"functionName":{"name":"mstore","nativeSrc":"701:6:19","nodeType":"YulIdentifier","src":"701:6:19"},"nativeSrc":"701:14:19","nodeType":"YulFunctionCall","src":"701:14:19"},"nativeSrc":"701:14:19","nodeType":"YulExpressionStatement","src":"701:14:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"988:4:19","nodeType":"YulLiteral","src":"988:4:19","type":"","value":"0x40"},{"arguments":[{"name":"str","nativeSrc":"998:3:19","nodeType":"YulIdentifier","src":"998:3:19"},{"kind":"number","nativeSrc":"1003:3:19","nodeType":"YulLiteral","src":"1003:3:19","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"994:3:19","nodeType":"YulIdentifier","src":"994:3:19"},"nativeSrc":"994:13:19","nodeType":"YulFunctionCall","src":"994:13:19"}],"functionName":{"name":"mstore","nativeSrc":"981:6:19","nodeType":"YulIdentifier","src":"981:6:19"},"nativeSrc":"981:27:19","nodeType":"YulFunctionCall","src":"981:27:19"},"nativeSrc":"981:27:19","nodeType":"YulExpressionStatement","src":"981:27:19"},{"body":{"nativeSrc":"1126:284:19","nodeType":"YulBlock","src":"1126:284:19","statements":[{"nativeSrc":"1201:31:19","nodeType":"YulVariableDeclaration","src":"1201:31:19","value":{"arguments":[{"kind":"number","nativeSrc":"1217:2:19","nodeType":"YulLiteral","src":"1217:2:19","type":"","value":"48"},{"arguments":[{"name":"n","nativeSrc":"1225:1:19","nodeType":"YulIdentifier","src":"1225:1:19"},{"kind":"number","nativeSrc":"1228:2:19","nodeType":"YulLiteral","src":"1228:2:19","type":"","value":"10"}],"functionName":{"name":"mod","nativeSrc":"1221:3:19","nodeType":"YulIdentifier","src":"1221:3:19"},"nativeSrc":"1221:10:19","nodeType":"YulFunctionCall","src":"1221:10:19"}],"functionName":{"name":"add","nativeSrc":"1213:3:19","nodeType":"YulIdentifier","src":"1213:3:19"},"nativeSrc":"1213:19:19","nodeType":"YulFunctionCall","src":"1213:19:19"},"variables":[{"name":"char","nativeSrc":"1205:4:19","nodeType":"YulTypedName","src":"1205:4:19","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"1318:3:19","nodeType":"YulIdentifier","src":"1318:3:19"},{"name":"k","nativeSrc":"1323:1:19","nodeType":"YulIdentifier","src":"1323:1:19"}],"functionName":{"name":"add","nativeSrc":"1314:3:19","nodeType":"YulIdentifier","src":"1314:3:19"},"nativeSrc":"1314:11:19","nodeType":"YulFunctionCall","src":"1314:11:19"},{"name":"char","nativeSrc":"1327:4:19","nodeType":"YulIdentifier","src":"1327:4:19"}],"functionName":{"name":"mstore","nativeSrc":"1307:6:19","nodeType":"YulIdentifier","src":"1307:6:19"},"nativeSrc":"1307:25:19","nodeType":"YulFunctionCall","src":"1307:25:19"},"nativeSrc":"1307:25:19","nodeType":"YulExpressionStatement","src":"1307:25:19"},{"nativeSrc":"1350:14:19","nodeType":"YulAssignment","src":"1350:14:19","value":{"arguments":[{"name":"k","nativeSrc":"1359:1:19","nodeType":"YulIdentifier","src":"1359:1:19"},{"kind":"number","nativeSrc":"1362:1:19","nodeType":"YulLiteral","src":"1362:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1355:3:19","nodeType":"YulIdentifier","src":"1355:3:19"},"nativeSrc":"1355:9:19","nodeType":"YulFunctionCall","src":"1355:9:19"},"variableNames":[{"name":"k","nativeSrc":"1350:1:19","nodeType":"YulIdentifier","src":"1350:1:19"}]},{"nativeSrc":"1381:15:19","nodeType":"YulAssignment","src":"1381:15:19","value":{"arguments":[{"name":"n","nativeSrc":"1390:1:19","nodeType":"YulIdentifier","src":"1390:1:19"},{"kind":"number","nativeSrc":"1393:2:19","nodeType":"YulLiteral","src":"1393:2:19","type":"","value":"10"}],"functionName":{"name":"div","nativeSrc":"1386:3:19","nodeType":"YulIdentifier","src":"1386:3:19"},"nativeSrc":"1386:10:19","nodeType":"YulFunctionCall","src":"1386:10:19"},"variableNames":[{"name":"n","nativeSrc":"1381:1:19","nodeType":"YulIdentifier","src":"1381:1:19"}]}]},"condition":{"name":"n","nativeSrc":"1121:1:19","nodeType":"YulIdentifier","src":"1121:1:19"},"nativeSrc":"1114:296:19","nodeType":"YulForLoop","post":{"nativeSrc":"1123:2:19","nodeType":"YulBlock","src":"1123:2:19","statements":[]},"pre":{"nativeSrc":"1118:2:19","nodeType":"YulBlock","src":"1118:2:19","statements":[]},"src":"1114:296:19"},{"nativeSrc":"1485:18:19","nodeType":"YulAssignment","src":"1485:18:19","value":{"arguments":[{"name":"str","nativeSrc":"1496:3:19","nodeType":"YulIdentifier","src":"1496:3:19"},{"name":"k","nativeSrc":"1501:1:19","nodeType":"YulIdentifier","src":"1501:1:19"}],"functionName":{"name":"add","nativeSrc":"1492:3:19","nodeType":"YulIdentifier","src":"1492:3:19"},"nativeSrc":"1492:11:19","nodeType":"YulFunctionCall","src":"1492:11:19"},"variableNames":[{"name":"str","nativeSrc":"1485:3:19","nodeType":"YulIdentifier","src":"1485:3:19"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"1590:3:19","nodeType":"YulIdentifier","src":"1590:3:19"},{"arguments":[{"kind":"number","nativeSrc":"1599:2:19","nodeType":"YulLiteral","src":"1599:2:19","type":"","value":"78"},{"name":"k","nativeSrc":"1603:1:19","nodeType":"YulIdentifier","src":"1603:1:19"}],"functionName":{"name":"sub","nativeSrc":"1595:3:19","nodeType":"YulIdentifier","src":"1595:3:19"},"nativeSrc":"1595:10:19","nodeType":"YulFunctionCall","src":"1595:10:19"}],"functionName":{"name":"mstore","nativeSrc":"1583:6:19","nodeType":"YulIdentifier","src":"1583:6:19"},"nativeSrc":"1583:23:19","nodeType":"YulFunctionCall","src":"1583:23:19"},"nativeSrc":"1583:23:19","nodeType":"YulExpressionStatement","src":"1583:23:19"}]},"evmVersion":"paris","externalReferences":[{"declaration":26645,"isOffset":false,"isSlot":false,"src":"1121:1:19","valueSize":1},{"declaration":26645,"isOffset":false,"isSlot":false,"src":"1225:1:19","valueSize":1},{"declaration":26645,"isOffset":false,"isSlot":false,"src":"1381:1:19","valueSize":1},{"declaration":26645,"isOffset":false,"isSlot":false,"src":"1390:1:19","valueSize":1},{"declaration":26648,"isOffset":false,"isSlot":false,"src":"1318:3:19","valueSize":1},{"declaration":26648,"isOffset":false,"isSlot":false,"src":"1485:3:19","valueSize":1},{"declaration":26648,"isOffset":false,"isSlot":false,"src":"1496:3:19","valueSize":1},{"declaration":26648,"isOffset":false,"isSlot":false,"src":"1590:3:19","valueSize":1},{"declaration":26648,"isOffset":false,"isSlot":false,"src":"596:3:19","valueSize":1},{"declaration":26648,"isOffset":false,"isSlot":false,"src":"708:3:19","valueSize":1},{"declaration":26648,"isOffset":false,"isSlot":false,"src":"998:3:19","valueSize":1}],"id":26656,"nodeType":"InlineAssembly","src":"419:1197:19"}]},"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"266:8:19","parameters":{"id":26646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26645,"mutability":"mutable","name":"n","nameLocation":"283:1:19","nodeType":"VariableDeclaration","scope":26658,"src":"275:9:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26644,"name":"uint256","nodeType":"ElementaryTypeName","src":"275:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"274:11:19"},"returnParameters":{"id":26649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26648,"mutability":"mutable","name":"str","nameLocation":"323:3:19","nodeType":"VariableDeclaration","scope":26658,"src":"309:17:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26647,"name":"string","nodeType":"ElementaryTypeName","src":"309:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"308:19:19"},"scope":26659,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibString","contractDependencies":[],"contractKind":"library","documentation":{"id":26643,"nodeType":"StructuredDocumentation","src":"58:175:19","text":"@notice Efficient library for creating string representations of integers.\n @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/LibString.sol)"},"fullyImplemented":true,"linearizedBaseContracts":[26659],"name":"LibString","nameLocation":"241:9:19","scope":26660,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":19} \ No newline at end of file diff --git a/out/LogNormal.sol/LogNormal.json b/out/LogNormal.sol/LogNormal.json deleted file mode 100644 index 9e9dc8f8..00000000 --- a/out/LogNormal.sol/LogNormal.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"dfmm_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"computeSwapConstant","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"dfmm","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getPoolParams","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"init","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"},{"name":"invariant","type":"int256","internalType":"int256"},{"name":"reserveX","type":"uint256","internalType":"uint256"},{"name":"reserveY","type":"uint256","internalType":"uint256"},{"name":"totalLiquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"internalParams","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"sigma","type":"tuple","internalType":"struct DynamicParam","components":[{"name":"lastComputedValue","type":"uint256","internalType":"uint256"},{"name":"updateEnd","type":"uint256","internalType":"uint256"},{"name":"updatePerSecond","type":"int256","internalType":"int256"},{"name":"lastUpdateAt","type":"uint256","internalType":"uint256"}]},{"name":"tau","type":"tuple","internalType":"struct DynamicParam","components":[{"name":"lastComputedValue","type":"uint256","internalType":"uint256"},{"name":"updateEnd","type":"uint256","internalType":"uint256"},{"name":"updatePerSecond","type":"int256","internalType":"int256"},{"name":"lastUpdateAt","type":"uint256","internalType":"uint256"}]},{"name":"strike","type":"tuple","internalType":"struct DynamicParam","components":[{"name":"lastComputedValue","type":"uint256","internalType":"uint256"},{"name":"updateEnd","type":"uint256","internalType":"uint256"},{"name":"updatePerSecond","type":"int256","internalType":"int256"},{"name":"lastUpdateAt","type":"uint256","internalType":"uint256"}]},{"name":"swapFee","type":"uint256","internalType":"uint256"},{"name":"controller","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"update","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateAllocateOrDeallocate","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"},{"name":"invariant","type":"int256","internalType":"int256"},{"name":"reserveX","type":"uint256","internalType":"uint256"},{"name":"reserveY","type":"uint256","internalType":"uint256"},{"name":"totalLiquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validateSwap","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"},{"name":"invariant","type":"int256","internalType":"int256"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"nextRx","type":"uint256","internalType":"uint256"},{"name":"nextRy","type":"uint256","internalType":"uint256"},{"name":"nextL","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"error","name":"Infinity","inputs":[]},{"type":"error","name":"InvalidSender","inputs":[]},{"type":"error","name":"InvalidUpdateCode","inputs":[]},{"type":"error","name":"InvalidUpdateEnd","inputs":[]},{"type":"error","name":"Min","inputs":[]},{"type":"error","name":"NegativeInfinity","inputs":[]},{"type":"error","name":"NotDFMM","inputs":[]},{"type":"error","name":"OutOfBounds","inputs":[]}],"bytecode":{"object":"0x60803461007457601f611bc438819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051611b3490816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b6109e4565b6109bb565b610814565b6107da565b610674565b6103dc565b6102e1565b61023d565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101df565b838082518301019101610a17565b9061010d6100ff600435610b92565b868082518301019101610a32565b92610d8d565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761015057604052565b61011e565b60c0810190811067ffffffffffffffff82111761015057604052565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101bd601f8201601f191660200184610171565b8294818452818301116101da578281602093846000960137010152565b600080fd5b9080601f830112156101da578160206101fa93359101610193565b90565b919082519283825260005b848110610229575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610208565b346101da5760003660031901126101da57604051604081019080821067ffffffffffffffff8311176101505761029a916040526009815268131bd9d39bdc9b585b60ba1b60208201526040519182916020835260208301906101fd565b0390f35b906040516080810181811067ffffffffffffffff821117610150576040526060600382948054845260018101546020850152600281015460408501520154910152565b346101da5760203660031901126101da5760043560005260016020526101c0604060002061030e8161029e565b9061031b6004820161029e565b906103bd61032b6008830161029e565b610393600c84015493600d60018060a01b03910154169461036d6040518098606080918051845260208101516020850152604081015160408501520151910152565b80516080880152602081015160a0880152604081015160c08801526060015160e0870152565b80516101008601526020810151610120860152604081015161014086015260600151610160850152565b6101808301526101a0820152f35b6001600160a01b038116036101da57565b346101da576060806003193601126101da576103f96004356103cb565b6024356044359167ffffffffffffffff83116101da576104206104829336906004016101df565b8161043c61042d85610b92565b60208082518301019101610a32565b60005490949061046290610456906001600160a01b031681565b6001600160a01b031690565b60405180809881946333854efd60e21b8352600483019190602083019252565b03915afa801561061457600091829583926105d9575b50806020806104ac93518301019101610a17565b939194909682861160001461054c5750916104ed826104e8836104e36104fe976104d96104f5988c610aa3565b908c0151906112af565b6112af565b6112db565b505b83610afe565b93828685610d8d565b9384601319129283610541575b61029a9394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b60148612935061050b565b90929091508187111561057b57610575826104e8836104e36104fe976104d96104f5988e610aa3565b506104ef565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9095506104ac92506106019150833d851161060d575b6105f98183610171565b810190610a17565b95919290959190610498565b503d6105ef565b610a81565b9060606003198301126101da57600435610632816103cb565b916024359160443567ffffffffffffffff928382116101da57806023830112156101da5781600401359384116101da57602484830101116101da576024019190565b346101da5761068236610619565b600054929350916001600160a01b031633036107c85761078661077e61042d610779956106c0608095610743976106b7610b67565b50810190610e8c565b6020819b949a9399929b01516106e0866000526001602052604060002090565b55604081015160046106fc876000526001602052604060002090565b015580516008610716876000526001602052604060002090565b01556060810151600c610733876000526001602052604060002090565b015501516001600160a01b031690565b600d610759846000526001602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610b92565b848385610d8d565b92836013191291826107bd575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b601485129250610793565b604051636853cba760e01b8152600490fd5b346101da5760606107ea36610619565b818094509492940103126101da5780359061078661077e61042d6040602085013594013595610b92565b346101da5761082236610619565b6000549093906001600160a01b0390811633036107c857610863610456600d610855876000526001602052604060002090565b01546001600160a01b031690565b9116036109a95761087683820182610b32565b61087f81610b47565b600181036108b857506108a261089d6108b392600c94953691610193565b610fc3565b926000526001602052604060002090565b01555b005b6108c181610b47565b600381036108fd5750906108e56108e06108f8936108b6953691610193565b610f19565b9290916000526001602052604060002090565b610f41565b61090681610b47565b6004810361094057509060046109276108e061093a946108b6963691610193565b9390926000526001602052604060002090565b01610f41565b61094981610b47565b6002810361096a57509060086109276108e061093a946108b6963691610193565b80610976600592610b47565b03610997576107596108a2610992600d936108b6963691610193565b610ef1565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101da5760003660031901126101da576000546040516001600160a01b039091168152602090f35b346101da5760203660031901126101da5761029a610a03600435610b92565b6040519182916020835260208301906101fd565b908160609103126101da578051916040602083015192015190565b908160a09103126101da57608060405191610a4c83610134565b805183526020810151602084015260408101516040840152606081015160608401520151610a79816103cb565b608082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610ab057565b610a8d565b91908201809211610ab057565b90671bc16d674ec8000060008382039312818412811691841390151617610ab057565b9067119000ab100ffbff198201918213600116610ab057565b81810392916000138015828513169184121617610ab057565b600160ff1b8114610ab05760000390565b600611156101da57565b908160209103126101da57356101fa81610b28565b60061115610b5157565b634e487b7160e01b600052602160045260246000fd5b60405190610b7482610134565b60006080838281528260208201528260408201528260608201520152565b610b9a610b67565b816000526001602052610bb8610bb3604060002061029e565b610ff8565b9160208201928352806000526001602052610bdc610bb3600860406000200161029e565b8252600c610c1d610c05610bb36004610bff866000526001602052604060002090565b0161029e565b92604085019384526000526001602052604060002090565b015490606083019182526040519383516020860152516040850152516060840152516080830152608060018060a01b039101511660a082015260a081526101fa81610155565b9081672005fe4f268ea00001918212600116610ab057565b9081670dc5527f642c200001918212600116610ab057565b9081670de0b6b3a764000001918212600116610ab057565b9081670b68df18e471fbff190191821215600116610ab057565b90816714a8454c19e1ac0001918212600116610ab057565b9081670fc10e01578277ff190191821215600116610ab057565b90816703debd083b8c7c0001918212600116610ab057565b9081670295d400ea3257ff190191821215600116610ab057565b9081670157d8b2ecc7080001918212600116610ab057565b90816705310aa7d521300001918212600116610ab057565b9081670de0cc3d1561000001918212600116610ab057565b91909160008382019384129112908015821691151617610ab057565b909282821015610e47576101fa93610e0a9284670de0b6b3a76400009182610db5838361130b565b10610e3457506001600160ff1b039590505b835191610ddd610dd7838561132d565b8561130b565b10610e0f57506001600160ff1b0392610e04925090505b6040602082015191015190611286565b92610d71565b610d71565b610e0492610e23610e2992610e2e9461132d565b9061130b565b6110b3565b91610df4565b610e4191610e299161130b565b94610dc7565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b80910361010081126101da5781359260208301359260a0604082013593605f1901126101da5760e060405191610ec183610134565b606081013583526080810135602084015260a0810135604084015260c081013560608401520135610a79816103cb565b6040818051810103126101da5780610f0e60206040930151610b28565b0151610456816103cb565b6060818051810103126101da57610f336020820151610b28565b606060408201519101519091565b919042821115610fb157610f57610bb38461029e565b9081845542600385015542830391838311610ab057610f7591610afe565b428314610f9b57600160ff1b8114600019831416610ab057600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101da5780610fe060206040930151610b28565b015190565b81810292918115918404141715610ab057565b606081015160208201518082146110735780421160001461106b57905b8103908111610ab05760408201908151600081136000146110485750611042906101fa9351925190610fe5565b90610ab5565b9261105f9250611059905193610b17565b90610fe5565b8103908111610ab05790565b504290611015565b50505190565b90633b9aca0091828102928184051490151715610ab057565b60008190039190600160ff1b8114600116610ab057600019830503610ab057565b6706f05b59d3b20000811461128057670de0b6b3a76400008082121561122a57811561124b5760018260011b916002938305600203610ab05760008312801561126f575b61125d57821561122a57671bc16d674ec80000831461124b57821291821561123c57925b611124846118db565b801561122a5761119661115561115061114b61114661119b959997969961146f565b61199c565b611379565b611079565b61119161116961116483611906565b610c63565b61118b61118661118061117b86611931565b610c7b565b85611a13565b610c93565b9061197a565b610afe565b6119c4565b936000925b8184106111d257505050506101fa916111bf916000146111c4576118b4565b610b17565b6111cd90610b17565b6118b4565b90916112208661121a6111ea8561119186999b611610565b61118b61120a6112056112006111bf8780611a13565b611730565b6119ec565b6112148386611a13565b90610afe565b90610d71565b95019291906111a0565b6040516307a0212760e01b8152600490fd5b61124590610ac2565b9261111b565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec8000083136110f7565b50600090565b9061129090611379565b633b9aca0090818102918183041490151715610ab0576101fa9161132d565b8181029181830414901517600116156101da576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101da57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101da570490565b8181029181830414901517600116156101da57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517600116156101da57671bc16d674ec80000900490565b60b581600160881b811015611420575b80690100000000000000000062010000921015611413575b65010000000000811015611406575b63010000008110156113f9575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916113bd565b60201c9160101b916113b0565b60401c9160201b916113a1565b5068b500000000000000009050608082901c611389565b1561143e57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642849061149b60008213611437565b711340daa0d5f769dba1915cef59f0815a55066114b782611a5f565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b801561172357675698eef06670000081121561128057675698eef0666fffff1981131561171657600061170661164583611ad1565b6116ce61120061165f61165a6111868561134e565b61195b565b92610e0a6117016116fc6116f56116ef6116ea6116e46116df6116d96116d48d6116ce6116c96116c36116be6111806116b96116b36116ae6116a86116a38a611a34565b610cab565b89611a13565b610cc5565b87611a13565b610cdd565b610cf7565b83611a13565b610d0f565b90611a13565b610d29565b8c611a13565b610d41565b8a611a13565b610d59565b88611a13565b9380611a13565b611092565b610ae5565b9112156101fa576101fa90610ac2565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b680248ce36a70cb26b3e1981131561128057680755bf798b4a1bf1e5811215611880576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be889080820291820514600116156101da57670de0b6b3a7640000900590565b670de0b6b3a7640000908181029181830514901517600116156101da57671bc16d674ec80000900590565b6703c1665c7aab2000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b669f32752462a000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b600181151516156101da576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a764000090818102918183051490151782151516156101da570590565b671bc16d674ec7ffff198181029160019183051416156101da57670de0b6b3a7640000900590565b6709d028cc6f205fff198181029160019183051416156101da57670de0b6b3a7640000900590565b670fa8cedfc2adddfa9080820291820514600116156101da57670de0b6b3a7640000900590565b8181029181830514901517600116156101da57670de0b6b3a7640000900590565b67025f0fe105a31400908181029181830514901517600116156101da57670de0b6b3a7640000900590565b611a6a811515611437565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b600160ff1b8114611aec5760008112156101fa571960010190565b604051634d2d75b160e01b8152600490fdfea2646970667358221220b596d744fe988e0f66eb3212b01d8a9e660acea43730ff108a9b5edd5f05d2b364736f6c63430008160033","sourceMap":"491:7630:43:-:0;;;;;;;;;;;;;-1:-1:-1;;491:7630:43;;;;-1:-1:-1;;;;;491:7630:43;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;491:7630:43;;;;;;;;-1:-1:-1;491:7630:43;;-1:-1:-1;;;;;;491:7630:43;;;;;;;;;;;;;;;;;-1:-1:-1;491:7630:43;;;;;;-1:-1:-1;491:7630:43;;;;;-1:-1:-1;491:7630:43","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b6109e4565b6109bb565b610814565b6107da565b610674565b6103dc565b6102e1565b61023d565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101df565b838082518301019101610a17565b9061010d6100ff600435610b92565b868082518301019101610a32565b92610d8d565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761015057604052565b61011e565b60c0810190811067ffffffffffffffff82111761015057604052565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101bd601f8201601f191660200184610171565b8294818452818301116101da578281602093846000960137010152565b600080fd5b9080601f830112156101da578160206101fa93359101610193565b90565b919082519283825260005b848110610229575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610208565b346101da5760003660031901126101da57604051604081019080821067ffffffffffffffff8311176101505761029a916040526009815268131bd9d39bdc9b585b60ba1b60208201526040519182916020835260208301906101fd565b0390f35b906040516080810181811067ffffffffffffffff821117610150576040526060600382948054845260018101546020850152600281015460408501520154910152565b346101da5760203660031901126101da5760043560005260016020526101c0604060002061030e8161029e565b9061031b6004820161029e565b906103bd61032b6008830161029e565b610393600c84015493600d60018060a01b03910154169461036d6040518098606080918051845260208101516020850152604081015160408501520151910152565b80516080880152602081015160a0880152604081015160c08801526060015160e0870152565b80516101008601526020810151610120860152604081015161014086015260600151610160850152565b6101808301526101a0820152f35b6001600160a01b038116036101da57565b346101da576060806003193601126101da576103f96004356103cb565b6024356044359167ffffffffffffffff83116101da576104206104829336906004016101df565b8161043c61042d85610b92565b60208082518301019101610a32565b60005490949061046290610456906001600160a01b031681565b6001600160a01b031690565b60405180809881946333854efd60e21b8352600483019190602083019252565b03915afa801561061457600091829583926105d9575b50806020806104ac93518301019101610a17565b939194909682861160001461054c5750916104ed826104e8836104e36104fe976104d96104f5988c610aa3565b908c0151906112af565b6112af565b6112db565b505b83610afe565b93828685610d8d565b9384601319129283610541575b61029a9394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b60148612935061050b565b90929091508187111561057b57610575826104e8836104e36104fe976104d96104f5988e610aa3565b506104ef565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9095506104ac92506106019150833d851161060d575b6105f98183610171565b810190610a17565b95919290959190610498565b503d6105ef565b610a81565b9060606003198301126101da57600435610632816103cb565b916024359160443567ffffffffffffffff928382116101da57806023830112156101da5781600401359384116101da57602484830101116101da576024019190565b346101da5761068236610619565b600054929350916001600160a01b031633036107c85761078661077e61042d610779956106c0608095610743976106b7610b67565b50810190610e8c565b6020819b949a9399929b01516106e0866000526001602052604060002090565b55604081015160046106fc876000526001602052604060002090565b015580516008610716876000526001602052604060002090565b01556060810151600c610733876000526001602052604060002090565b015501516001600160a01b031690565b600d610759846000526001602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610b92565b848385610d8d565b92836013191291826107bd575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b601485129250610793565b604051636853cba760e01b8152600490fd5b346101da5760606107ea36610619565b818094509492940103126101da5780359061078661077e61042d6040602085013594013595610b92565b346101da5761082236610619565b6000549093906001600160a01b0390811633036107c857610863610456600d610855876000526001602052604060002090565b01546001600160a01b031690565b9116036109a95761087683820182610b32565b61087f81610b47565b600181036108b857506108a261089d6108b392600c94953691610193565b610fc3565b926000526001602052604060002090565b01555b005b6108c181610b47565b600381036108fd5750906108e56108e06108f8936108b6953691610193565b610f19565b9290916000526001602052604060002090565b610f41565b61090681610b47565b6004810361094057509060046109276108e061093a946108b6963691610193565b9390926000526001602052604060002090565b01610f41565b61094981610b47565b6002810361096a57509060086109276108e061093a946108b6963691610193565b80610976600592610b47565b03610997576107596108a2610992600d936108b6963691610193565b610ef1565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101da5760003660031901126101da576000546040516001600160a01b039091168152602090f35b346101da5760203660031901126101da5761029a610a03600435610b92565b6040519182916020835260208301906101fd565b908160609103126101da578051916040602083015192015190565b908160a09103126101da57608060405191610a4c83610134565b805183526020810151602084015260408101516040840152606081015160608401520151610a79816103cb565b608082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610ab057565b610a8d565b91908201809211610ab057565b90671bc16d674ec8000060008382039312818412811691841390151617610ab057565b9067119000ab100ffbff198201918213600116610ab057565b81810392916000138015828513169184121617610ab057565b600160ff1b8114610ab05760000390565b600611156101da57565b908160209103126101da57356101fa81610b28565b60061115610b5157565b634e487b7160e01b600052602160045260246000fd5b60405190610b7482610134565b60006080838281528260208201528260408201528260608201520152565b610b9a610b67565b816000526001602052610bb8610bb3604060002061029e565b610ff8565b9160208201928352806000526001602052610bdc610bb3600860406000200161029e565b8252600c610c1d610c05610bb36004610bff866000526001602052604060002090565b0161029e565b92604085019384526000526001602052604060002090565b015490606083019182526040519383516020860152516040850152516060840152516080830152608060018060a01b039101511660a082015260a081526101fa81610155565b9081672005fe4f268ea00001918212600116610ab057565b9081670dc5527f642c200001918212600116610ab057565b9081670de0b6b3a764000001918212600116610ab057565b9081670b68df18e471fbff190191821215600116610ab057565b90816714a8454c19e1ac0001918212600116610ab057565b9081670fc10e01578277ff190191821215600116610ab057565b90816703debd083b8c7c0001918212600116610ab057565b9081670295d400ea3257ff190191821215600116610ab057565b9081670157d8b2ecc7080001918212600116610ab057565b90816705310aa7d521300001918212600116610ab057565b9081670de0cc3d1561000001918212600116610ab057565b91909160008382019384129112908015821691151617610ab057565b909282821015610e47576101fa93610e0a9284670de0b6b3a76400009182610db5838361130b565b10610e3457506001600160ff1b039590505b835191610ddd610dd7838561132d565b8561130b565b10610e0f57506001600160ff1b0392610e04925090505b6040602082015191015190611286565b92610d71565b610d71565b610e0492610e23610e2992610e2e9461132d565b9061130b565b6110b3565b91610df4565b610e4191610e299161130b565b94610dc7565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b80910361010081126101da5781359260208301359260a0604082013593605f1901126101da5760e060405191610ec183610134565b606081013583526080810135602084015260a0810135604084015260c081013560608401520135610a79816103cb565b6040818051810103126101da5780610f0e60206040930151610b28565b0151610456816103cb565b6060818051810103126101da57610f336020820151610b28565b606060408201519101519091565b919042821115610fb157610f57610bb38461029e565b9081845542600385015542830391838311610ab057610f7591610afe565b428314610f9b57600160ff1b8114600019831416610ab057600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101da5780610fe060206040930151610b28565b015190565b81810292918115918404141715610ab057565b606081015160208201518082146110735780421160001461106b57905b8103908111610ab05760408201908151600081136000146110485750611042906101fa9351925190610fe5565b90610ab5565b9261105f9250611059905193610b17565b90610fe5565b8103908111610ab05790565b504290611015565b50505190565b90633b9aca0091828102928184051490151715610ab057565b60008190039190600160ff1b8114600116610ab057600019830503610ab057565b6706f05b59d3b20000811461128057670de0b6b3a76400008082121561122a57811561124b5760018260011b916002938305600203610ab05760008312801561126f575b61125d57821561122a57671bc16d674ec80000831461124b57821291821561123c57925b611124846118db565b801561122a5761119661115561115061114b61114661119b959997969961146f565b61199c565b611379565b611079565b61119161116961116483611906565b610c63565b61118b61118661118061117b86611931565b610c7b565b85611a13565b610c93565b9061197a565b610afe565b6119c4565b936000925b8184106111d257505050506101fa916111bf916000146111c4576118b4565b610b17565b6111cd90610b17565b6118b4565b90916112208661121a6111ea8561119186999b611610565b61118b61120a6112056112006111bf8780611a13565b611730565b6119ec565b6112148386611a13565b90610afe565b90610d71565b95019291906111a0565b6040516307a0212760e01b8152600490fd5b61124590610ac2565b9261111b565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec8000083136110f7565b50600090565b9061129090611379565b633b9aca0090818102918183041490151715610ab0576101fa9161132d565b8181029181830414901517600116156101da576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101da57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101da570490565b8181029181830414901517600116156101da57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517600116156101da57671bc16d674ec80000900490565b60b581600160881b811015611420575b80690100000000000000000062010000921015611413575b65010000000000811015611406575b63010000008110156113f9575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916113bd565b60201c9160101b916113b0565b60401c9160201b916113a1565b5068b500000000000000009050608082901c611389565b1561143e57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642849061149b60008213611437565b711340daa0d5f769dba1915cef59f0815a55066114b782611a5f565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b801561172357675698eef06670000081121561128057675698eef0666fffff1981131561171657600061170661164583611ad1565b6116ce61120061165f61165a6111868561134e565b61195b565b92610e0a6117016116fc6116f56116ef6116ea6116e46116df6116d96116d48d6116ce6116c96116c36116be6111806116b96116b36116ae6116a86116a38a611a34565b610cab565b89611a13565b610cc5565b87611a13565b610cdd565b610cf7565b83611a13565b610d0f565b90611a13565b610d29565b8c611a13565b610d41565b8a611a13565b610d59565b88611a13565b9380611a13565b611092565b610ae5565b9112156101fa576101fa90610ac2565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b680248ce36a70cb26b3e1981131561128057680755bf798b4a1bf1e5811215611880576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be889080820291820514600116156101da57670de0b6b3a7640000900590565b670de0b6b3a7640000908181029181830514901517600116156101da57671bc16d674ec80000900590565b6703c1665c7aab2000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b669f32752462a000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b600181151516156101da576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a764000090818102918183051490151782151516156101da570590565b671bc16d674ec7ffff198181029160019183051416156101da57670de0b6b3a7640000900590565b6709d028cc6f205fff198181029160019183051416156101da57670de0b6b3a7640000900590565b670fa8cedfc2adddfa9080820291820514600116156101da57670de0b6b3a7640000900590565b8181029181830514901517600116156101da57670de0b6b3a7640000900590565b67025f0fe105a31400908181029181830514901517600116156101da57670de0b6b3a7640000900590565b611a6a811515611437565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b600160ff1b8114611aec5760008112156101fa571960010190565b604051634d2d75b160e01b8152600490fdfea2646970667358221220b596d744fe988e0f66eb3212b01d8a9e660acea43730ff108a9b5edd5f05d2b364736f6c63430008160033","sourceMap":"491:7630:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;491:7630:43;;;;;;;;;;;;;7936:176;7874:45;491:7630;;;;;;:::i;:::-;;;;;7874:45;;;;;;:::i;:::-;491:7630;8050:52;8061:21;491:7630;;8061:21;:::i;:::-;491:7630;;;;8050:52;;;;;;:::i;:::-;7936:176;;:::i;:::-;491:7630;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;491:7630:43;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;491:7630:43;;;;;;:::o;:::-;-1:-1:-1;491:7630:43;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;491:7630:43;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;491:7630:43;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;491:7630:43;;;;;;-1:-1:-1;491:7630:43;1172:56;491:7630;;;;-1:-1:-1;491:7630:43;1172:56;;;:::i;:::-;;;491:7630;1172:56;;;:::i;:::-;;491:7630;1172:56;;;;;:::i;:::-;491:7630;1172:56;;;491:7630;;1172:56;491:7630;;;;;1172:56;;491:7630;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;491:7630:43;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;4492:43;491:7630;;;;;;:::i;:::-;4375:21;4364:52;4375:21;;;:::i;:::-;491:7630;;;;4364:52;;;;;;:::i;:::-;-1:-1:-1;491:7630:43;;;;4492:35;;:11;;-1:-1:-1;;;;;491:7630:43;4492:11;491:7630;;-1:-1:-1;;;;;491:7630:43;;;4492:35;491:7630;;;;;;;;;;4492:43;;491:7630;4492:43;;491:7630;;;;;;;;4492:43;;;;;;;;;-1:-1:-1;;;;;4492:43:43;;;491:7630;;;;;4572:45;491:7630;;4572:45;;;;;;:::i;:::-;4830:16;;;;;;;;4826:597;4830:16;;;4873;;1133:19:18;4873:16:43;799:19:18;4873:16:43;799:19:18;5503:59:43;4873:16;;5450:30;4873:16;;;:::i;:::-;4928:14;;;491:7630;799:19:18;;:::i;:::-;;:::i;:::-;1133;:::i;:::-;;4826:597:43;5450:30;;:::i;:::-;5503:59;;;;;:::i;:::-;653:2:31;;;;5580:22:43;:45;;;;4826:597;491:7630;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5580:45;653:2:31;5606:19:43;;;-1:-1:-1;5580:45:43;;4826:597;5038:16;;;;-1:-1:-1;5038:16:43;;;;;;1133:19:18;5141:16:43;799:19:18;5141:16:43;799:19:18;5503:59:43;5141:16;;5450:30;5141:16;;;:::i;1133:19:18:-;;4826:597:43;;5034:389;491:7630;;-1:-1:-1;;;5354:58:43;;491:7630;;5354:58;;491:7630;;;;;;;;;;;-1:-1:-1;;;491:7630:43;;;;;;5354:58;4492:43;;;;4572:45;4492:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;491:7630::-;;;-1:-1:-1;;491:7630:43;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;491:7630:43;;;-1:-1:-1;491:7630:43;-1:-1:-1;;;;;491:7630:43;1382:10;:18;1378:40;;2890:176;3004:52;3015:21;2814:53;491:7630;2473:62;2850:17;491:7630;;;;;:::i;:::-;;2473:62;;;;:::i;:::-;2595:12;;;;;;;;;;491:7630;2546:22;;491:7630;;2546:14;491:7630;;;;;;;2546:22;491:7630;2664:10;;;491:7630;;2617:22;;491:7630;;2546:14;491:7630;;;;;;;2617:22;:26;491:7630;;;2684:29;:22;;491:7630;;2546:14;491:7630;;;;;;;2684:22;:29;491:7630;2790:14;;;491:7630;2757:30;:22;;491:7630;;2546:14;491:7630;;;;;;;2757:22;:30;491:7630;2850:17;491:7630;-1:-1:-1;;;;;491:7630:43;;;;2814:33;:22;;491:7630;;2546:14;491:7630;;;;;;;2814:22;:33;491:7630;;-1:-1:-1;;;;;;491:7630:43;-1:-1:-1;;;;;491:7630:43;;;;;;;;;;2814:53;3015:21;:::i;3004:52::-;2890:176;;;;:::i;:::-;653:2:31;;;;3160:22:43;:45;;;;491:7630;2664:10;491:7630;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3160:45;653:2:31;3186:19:43;;;-1:-1:-1;3160:45:43;;1378:40;491:7630;;-1:-1:-1;;;1409:9:43;;491:7630;;1409:9;491:7630;;;;;;;;:::i;:::-;3632:45;;;;;;;;491:7630;;;;;;;3700:176;3814:52;3825:21;491:7630;;;;;;;;3825:21;;:::i;491:7630::-;;;;;;;:::i;:::-;1396:4;491:7630;;;;-1:-1:-1;;;;;491:7630:43;;;1382:10;:18;1378:40;;5799:43;5809:33;;:22;;491:7630;;2546:14;491:7630;;;;;;;5809:22;:33;491:7630;-1:-1:-1;;;;;491:7630:43;;;5799:43;491:7630;;5799:43;5795:71;;5934:52;;;;;;:::i;:::-;491:7630;;;:::i;:::-;5809:14;6001:54;;5809:14;;491:7630;6104:34;491:7630;6071:22;491:7630;6071:30;491:7630;;;;;:::i;:::-;6104:34;:::i;:::-;6071:22;491:7630;;2546:14;491:7630;;;;;;;6071:22;:30;491:7630;5997:1189;491:7630;5997:1189;491:7630;;;:::i;:::-;6173:38;6159:52;;6173:38;;491:7630;;6292:36;491:7630;6342:22;491:7630;6388:15;491:7630;;;;:::i;:::-;6292:36;:::i;:::-;6342:22;;;491:7630;;2546:14;491:7630;;;;;;;6342:22;6388:15;:::i;6155:1031::-;491:7630;;;:::i;:::-;;6425:50;;491:7630;;;;;6554:34;491:7630;6602:22;491:7630;6644:15;491:7630;;;;:::i;6554:34::-;6602:22;;;491:7630;;2546:14;491:7630;;;;;;;6602:22;:26;6644:15;:::i;6421:765::-;491:7630;;;:::i;:::-;6695:39;6681:53;;6695:39;;491:7630;;6867:29;6816:37;491:7630;6867:22;491:7630;6915:15;491:7630;;;;:::i;6677:509::-;491:7630;;6966:43;491:7630;;:::i;:::-;6952:57;6966:43;;7025:22;7077:41;491:7630;5809:33;491:7630;7025:93;491:7630;;;;:::i;:::-;7077:41;:::i;6948:238::-;491:7630;;-1:-1:-1;;;7156:19:43;;491:7630;;7156:19;5795:71;491:7630;;-1:-1:-1;;;5851:15:43;;491:7630;;5851:15;491:7630;;;;;;-1:-1:-1;;491:7630:43;;;;;;;;-1:-1:-1;;;;;491:7630:43;;;;;;;;;;;;;;-1:-1:-1;;491:7630:43;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::o;:::-;;6090:7:21;491:7630:43;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;491:7630:43;;;;;;;;;;;;;:::o;653:2:31:-;-1:-1:-1;;;653:2:31;;;;;;;:::o;491:7630:43:-;;-1:-1:-1;491:7630:43;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;491:7630:43;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;491:7630:43;;;;;;;;;;;;;;;;;;;;;;:::o;7228:410::-;491:7630;;:::i;:::-;;-1:-1:-1;491:7630:43;7367:14;491:7630;;7367:41;491:7630;;-1:-1:-1;491:7630:43;;:::i;:::-;7367:41;:::i;:::-;7352:12;491:7630;7352:12;;491:7630;;;;-1:-1:-1;491:7630:43;7367:14;491:7630;;7434:42;491:7630;7434:29;491:7630;-1:-1:-1;491:7630:43;7434:29;491:7630;:::i;7434:42::-;491:7630;;7565:30;:22;7499:39;491:7630;7499:26;:22;;491:7630;;2546:14;491:7630;;;;;;;7499:22;:26;491:7630;:::i;7499:39::-;7486:10;491:7630;7486:10;;491:7630;;;;;2546:14;491:7630;;;;;;;7565:22;:30;491:7630;7548:14;;;;491:7630;;;;;;;;;7613:18;;491:7630;;;;;;;7548:14;491:7630;;;;;;;;;;;;;;;;;;;;;;;7613:18;;;;;:::i;378:4:31:-;;;2852:20:21;378:4:31;;;;;;;;:::o;:::-;;;2980:18:21;378:4:31;;;;;;;;:::o;:::-;;;1905:7:21;378:4:31;;;;;;;;:::o;:::-;;2650:19:21;;;378:4:31;;;;;;;;;:::o;:::-;;;2590:20:21;378:4:31;;;;;;;;:::o;:::-;;2529:21:21;;;378:4:31;;;;;;;;;:::o;:::-;;;2463:18:21;378:4:31;;;;;;;;:::o;:::-;;2396:19:21;;;378:4:31;;;;;;;;;:::o;:::-;;;2331:17:21;378:4:31;;;;;;;;:::o;:::-;;;2265:18:21;378:4:31;;;;;;;;:::o;:::-;;;2205:20:21;378:4:31;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;2719:1063:44:-;;;2907:6;;;491:7630:43;;;3754:21:44;2955:12;3754:13;2955:12;378:4:31;;965:21:18;;;;;;:::i;:::-;3003:42:44;378:4:31;;-1:-1:-1;;;;;;3076:12:44;2999:197;-1:-1:-1;2999:197:44;491:7630:43;;631:21:18;965;631;;;;:::i;:::-;965;;:::i;:::-;3222:117:44;378:4:31;;-1:-1:-1;;;;;;3076:12:44;3690:45;;-1:-1:-1;3205:453:44;-1:-1:-1;3205:453:44;3724:10;3710:12;;;491:7630:43;3724:10:44;;491:7630:43;3690:45:44;;:::i;:::-;3754:13;;:::i;:::-;:21;:::i;3205:453::-;3690:45;631:21:18;;965;631;3431:216:44;631:21:18;;:::i;:::-;965;;:::i;:::-;3431:216:44;:::i;:::-;3205:453;;;2999:197;3128:57;965:21:18;;;;:::i;3128:57:44:-;2999:197;;;491:7630:43;;;-1:-1:-1;;;491:7630:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2509:204:44:-;491:7630:43;;;;2658:48:44;;491:7630:43;;;;2658:48:44;491:7630:43;2658:48:44;491:7630:43;2658:48:44;;491:7630:43;;:::i;:::-;;;;;;:::i;1034:267:44:-;491:7630:43;;;;1237:57:44;;491:7630:43;;;;;1237:57:44;;;491:7630:43;;:::i;:::-;;;;;;;;;1189:105:44;1034:267;:::o;1206:486:28:-;;;1348:15;1335:28;;;1331:59;;1130:17;491:7630:43;;;:::i;1130:17:28:-;491:7630:43;;;;1348:15:28;1157:18;;;491:7630:43;1348:15:28;491:7630:43;;;;;;;;1493:48:28;;;:::i;:::-;1348:15;491:7630:43;;;;-1:-1:-1;;;491:7630:43;;-1:-1:-1;;491:7630:43;;;;;1647:21:28;1610:15;;;;491:7630:43;;1647:21:28;;491:7630:43;1206:486:28:o;491:7630:43:-;;;;;;;;;;;;1331:59:28;491:7630:43;;-1:-1:-1;;;1372:18:28;;;;;558:215:44;491:7630:43;;;;694:48:44;;491:7630:43;;;;694:48:44;491:7630:43;694:48:44;491:7630:43;694:48:44;;491:7630:43;;:::i;:::-;;;558:215:44;:::o;491:7630:43:-;;;;;;;;;;;;;;;;:::o;354:683:28:-;475:18;;;491:7630:43;497:15:28;;;491:7630:43;475:37:28;;;471:98;;598:15;;:33;:93;:33;;;:93;;491:7630:43;;;;;;;765:21:28;;;491:7630:43;;;-1:-1:-1;765:25:28;;761:270;-1:-1:-1;;;491:7630:43;855:42:28;491:7630:43;813:84:28;491:7630:43;;;;855:42:28;;:::i;:::-;813:84;;:::i;761:270::-;491:7630:43;977:43:28;491:7630:43;;997:22:28;491:7630:43;;997:22:28;;:::i;:::-;977:43;;:::i;:::-;491:7630:43;;;;;;;928:92:28;:::o;598:93::-;:15;;:93;;;471:98;491:7630:43;;;528:30:28;:::o;1905:7:21:-;;1774:3;1905:7;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;1905:7:21;;491:7630:43;1905:7:21;;;-1:-1:-1;;1905:7:21;;;;;:::o;9402:337::-;1324:9;9472:21;;9468:43;;1905:7;9525:8;;;;9521:31;;9566:6;;9562:37;;1905:7;;;;9629:1;;1905:7;;;9629:1;1905:7;;;-1:-1:-1;5990:5:21;;:20;;;;9402:337;5986:46;;6046:6;;6042:29;;6090:7;6085:12;;6081:43;;6178:7;;;6177:23;;;;;;1053:19:23;;;:::i;:::-;6257:13:21;;6253:36;;6632:35;6363:55;6370:33;958:19:23;6311:16:21;958:19:23;6311:16:21;;;;;;:::i;:::-;958:19:23;:::i;:::-;6370:33:21;:::i;:::-;6363:55;:::i;:::-;1053:19:23;6481:29:21;958:19:23;;;:::i;:::-;6481:29:21;:::i;:::-;6547:49;958:19:23;6565:29:21;958:19:23;;;:::i;:::-;6565:29:21;:::i;:::-;958:19:23;;:::i;:::-;6547:49:21;:::i;:::-;1053:19:23;;:::i;:::-;6632:35:21;:::i;:::-;958:19:23;:::i;:::-;6689:9:21;-1:-1:-1;6708:336:21;6715:5;;;;;;7058:16;;;;9728:4;7058:16;958:19:23;7058:16:21;;;;;958:19:23;:::i;:::-;9728:4:21;:::i;7058:16::-;7072:2;;;:::i;:::-;958:19:23;:::i;6708:336:21:-;6749:7;;6951:23;6749:7;1053:19:23;6749:12:21;:7;;;;;;:::i;:12::-;6891:42;958:19:23;6848:14:21;6790:16;958:19:23;;;;:::i;6790:16:21:-;6848:14;:::i;:::-;958:19:23;:::i;:::-;;;;;:::i;:::-;6891:42:21;;:::i;1053:19:23:-;6951:23:21;;:::i;:::-;3113:20;;;6708:336;;;;6253:36;491:7630:43;;-1:-1:-1;;;6279:10:21;;;;;6177:23;6193:7;;;:::i;:::-;6177:23;;;6081:43;491:7630:43;;-1:-1:-1;;;6106:18:21;;;;;5986:46;491:7630:43;;-1:-1:-1;;;6019:13:21;;;;;5990:20;5999:11;6003:7;5999:11;;5990:20;;9468:43;9495:16;9509:1;9495:16;:::o;337:213:45:-;;464:27;337:213;464:27;:::i;:::-;494:7;491:7630:43;;;;;;;;;;;;;;;631:21:18;;;:::i;8282:752::-;8417:611;;;;;;;;;;;;;;;;;378:4:31;491:7630:43;;8417:611:18;;;;;;;;8282:752;:::o;:::-;;378:4:31;8417:611:18;;;;;;;;;;;;;;;;;;;;491:7630:43;;;8417:611:18;;;;;;;;8282:752;:::o;7741:535::-;378:4:31;7878:392:18;;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;7878:392;;;;;;;;;;;;;;;;378:4:31;7878:392:18;;7741:535;:::o;:::-;1905:7:21;7878:392:18;;;;;;;;;;;;;;;;;1378:7:21;7878:392:18;;7741:535;:::o;11969:3353::-;12038:3278;;-1:-1:-1;;;12038:3278:18;;;;;11969:3353;12038:3278;;;;;;;;11969:3353;12038:3278;;;;;;11969:3353;12038:3278;;;;;;11969:3353;12038:3278;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11969:3353;:::o;12038:3278::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12038:3278:18;;-1:-1:-1;12038:3278:18;;;;;;491:7630:43;;;;:::o;:::-;;;-1:-1:-1;;;491:7630:43;;;;;;;;;;;;-1:-1:-1;;;491:7630:43;;;;;;;4596:2947:18;7380:72;4596:2947;4688:27;4700:1;4696:5;;4688:27;:::i;:::-;7125:43;5125:16;;;:::i;:::-;5145:2;491:7630:43;;;5175:3:18;491:7630:43;;;5175:3:18;491:7630:43;;;;;7232:71:18;491:7630:43;;6411:30:18;491:7630:43;6343:32:18;491:7630:43;6274:33:18;491:7630:43;6205:33:18;491:7630:43;6136:33:18;491:7630:43;6068:32:18;491:7630:43;6001:31:18;491:7630:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5533:32:18;491:7630:43;5465:32:18;491:7630:43;5398:31:18;491:7630:43;;;;;;;;;;;;;;;;;;;;;;;;6455:304:18;491:7630:43;;;;;4596:2947:18;:::o;4268:1017:21:-;4348:10;;4344:26;;1500:10;4384:26;;;4380:40;;-1:-1:-1;;4434:26:21;;;4430:42;;-1:-1:-1;958:19:23;4495:11:21;;;:::i;:::-;5188:10;5094:60;1053:19:23;4548:38:21;965:21:18;;;:::i;4548:38:21:-;1053:19:23;:::i;:::-;958;5095:51:21;:42;958:19:23;;4962:98:21;958:19:23;4984:74:21;958:19:23;5006:50:21;958:19:23;;5028:26:21;958:19:23;4762:100:21;958:19:23;4784:76:21;958:19:23;4806:52:21;958:19:23;4828:28:21;958:19:23;;;:::i;:::-;4828:28:21;:::i;:::-;958:19:23;;:::i;:::-;4806:52:21;:::i;:::-;958:19:23;;:::i;:::-;4784:76:21;:::i;958:19:23:-;4762:100:21;:::i;:::-;958:19:23;;:::i;:::-;5028:26:21;:::i;:::-;958:19:23;;:::i;:::-;5006:50:21;:::i;:::-;958:19:23;;:::i;:::-;4984:74:21;:::i;:::-;958:19:23;;:::i;:::-;4962:98:21;:::i;:::-;958:19:23;;:::i;:::-;;;;:::i;:::-;5095:42:21;:::i;:::-;:51;:::i;958:19:23:-;5253:25:21;5254:9;-1:-1:-1;;;5267:7:21;;;:::i;4430:42::-;4462:10;1949:7;4462:10;:::o;4344:26::-;4360:10;1905:7;4360:10;:::o;1487:3103:18:-;-1:-1:-1;;1713:26:18;;;1709:40;;1948:21;1943:26;;;1939:54;;2266:5;491:7630:43;;;;4502:49:18;2559:29;491:7630:43;;2591:5:18;491:7630:43;2591:5:18;;491:7630:43;;;;;;;;;;;;;;2874:31:18;491:7630:43;;;;;;3074:35:18;3649;491:7630:43;;;;3508:34:18;491:7630:43;;;;3371:32:18;491:7630:43;;;;;;;;;;;;;;;;;;;;;;;;;3136:40:18;;;;491:7630:43;2941:32:18;491:7630:43;;;;;;;;;;;;;;;3699:327:18;491:7630:43;;4564:3:18;491:7630:43;;1487:3103:18;:::o;1939:54::-;491:7630:43;;-1:-1:-1;;;1971:22:18;;491:7630:43;1971:22:18;;;491:7630:43;;;;;;-1:-1:-1;;;491:7630:43;;;;;;5354:58;405:480:23;2046:20:21;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;1905:7:21;503:380:23;;;;;;;;;;;;;;;;;6090:7:21;503:380:23;;405:480;:::o;:::-;2913:18:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;3047:17:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;503:380;;;;;;;;;;405:480;:::o;:::-;1905:7:21;503:380:23;;;;;;;;;;;;;;;;;;;;405:480;:::o;:::-;-1:-1:-1;;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;-1:-1:-1;;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;3113:20:21;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;503:380;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;2717:18:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;15328:575:18:-;15397:27;15405:5;;;15397:27;:::i;:::-;15435:462;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:575;:::o;71:276:23:-;-1:-1:-1;;;138:25:23;;134:43;;195:1;187:9;;195:1;;;208:61;;;;71:276::o;134:43::-;491:7630:43;;-1:-1:-1;;;172:5:23;;;;","linkReferences":{}},"methodIdentifiers":{"computeSwapConstant(uint256,bytes)":"002e524b","dfmm()":"afba13c4","getPoolParams(uint256)":"dc178355","init(address,uint256,bytes)":"73cb2d03","internalParams(uint256)":"1edb71e5","name()":"06fdde03","update(address,uint256,bytes)":"acad2989","validateAllocateOrDeallocate(address,uint256,bytes)":"8a04bdd5","validateSwap(address,uint256,bytes)":"68bd3e38"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dfmm_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"Infinity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidUpdateCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidUpdateEnd\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Min\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NegativeInfinity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDFMM\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"computeSwapConstant\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dfmm\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolParams\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"init\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalLiquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"internalParams\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"lastComputedValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updateEnd\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"updatePerSecond\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"lastUpdateAt\",\"type\":\"uint256\"}],\"internalType\":\"struct DynamicParam\",\"name\":\"sigma\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"lastComputedValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updateEnd\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"updatePerSecond\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"lastUpdateAt\",\"type\":\"uint256\"}],\"internalType\":\"struct DynamicParam\",\"name\":\"tau\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"lastComputedValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updateEnd\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"updatePerSecond\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"lastUpdateAt\",\"type\":\"uint256\"}],\"internalType\":\"struct DynamicParam\",\"name\":\"strike\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"update\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"validateAllocateOrDeallocate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalLiquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"validateSwap\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"nextRx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nextRy\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nextL\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidSender()\":[{\"details\":\"Thrown when the sender is authorized.\"}],\"InvalidUpdateCode()\":[{\"details\":\"Thrown when the update code is invalid.\"}],\"NotDFMM()\":[{\"details\":\"Thrown when the sender is not the DFMM contract.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"dfmm_\":\"Address of the DFMM contract.\"}},\"init(address,uint256,bytes)\":{\"params\":{\"data\":\"Pool parameters encoded as bytes.\",\"poolId\":\"Id of the pool to initialize.\",\"sender\":\"Address that called the DFMM contract.\"},\"returns\":{\"invariant\":\"Initial swap growth.\",\"reserveX\":\"Initial reserve of token X.\",\"reserveY\":\"Initial reserve of token Y.\",\"totalLiquidity\":\"Initial liquidity of the pool.\",\"valid\":\"True if the initialization is valid.\"}}},\"stateVariables\":{\"name\":{\"details\":\"The name of the strategy is included in the name of the liquidity token.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"init(address,uint256,bytes)\":{\"notice\":\"Intializes a new pool.\"},\"name()\":{\"notice\":\"Returns the name of the strategy.\"}},\"notice\":\"Log Normal has three variable parameters: K - strike price sigma - volatility tau - time to expiry Swaps are validated by the trading function: Gaussian.ppf(x / L) + Gaussian.ppf(y / KL) = -sigma * sqrt(tau)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/strategies/LogNormal/LogNormal.sol\":\"LogNormal\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/strategies/LogNormal/LogNormal.sol\":{\"keccak256\":\"0xce0e14a6180d989eff4223bd173904717c745f93c7d02e972dce9d4f5a414d15\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0fe700ac552153eb030453532afdf52d7ae1b7f8ca53b0f050ab9a9e0b1f0ee9\",\"dweb:/ipfs/QmPQW7F1wUqLKs2qPmvJq5EiBfUmPGGsW4y9dUmMtDkfnt\"]},\"src/strategies/LogNormal/LogNormalLib.sol\":{\"keccak256\":\"0x208f8cd3b02d7305d4c54cf02c07f443ddfed1c6c719e752888be208c3ad3645\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://850b799c647dfbece76c7c1daad3ac375243f66daa0eb8206eeeee783982429c\",\"dweb:/ipfs/QmUrixVb4EAxccZxvZCoAJjF8YRqnMbX6cpGCwPfjZvgQk\"]},\"src/strategies/LogNormal/LogNormalMath.sol\":{\"keccak256\":\"0x5d97983f91cf766e1e87ef244a39c6ec6961de38c4c8817030b32edd72a1e65f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://df6121bf8157bad9b659d484fdcc8ebf0cd41179b323d06225d1cf6bff266663\",\"dweb:/ipfs/QmRGN6MwWZb9f6X4Xqv7f3VpUFWXFb36jDKcyEQVaFUhhz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"dfmm_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"Infinity"},{"inputs":[],"type":"error","name":"InvalidSender"},{"inputs":[],"type":"error","name":"InvalidUpdateCode"},{"inputs":[],"type":"error","name":"InvalidUpdateEnd"},{"inputs":[],"type":"error","name":"Min"},{"inputs":[],"type":"error","name":"NegativeInfinity"},{"inputs":[],"type":"error","name":"NotDFMM"},{"inputs":[],"type":"error","name":"OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"computeSwapConstant","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"dfmm","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolParams","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"init","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"int256","name":"invariant","type":"int256"},{"internalType":"uint256","name":"reserveX","type":"uint256"},{"internalType":"uint256","name":"reserveY","type":"uint256"},{"internalType":"uint256","name":"totalLiquidity","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"internalParams","outputs":[{"internalType":"struct DynamicParam","name":"sigma","type":"tuple","components":[{"internalType":"uint256","name":"lastComputedValue","type":"uint256"},{"internalType":"uint256","name":"updateEnd","type":"uint256"},{"internalType":"int256","name":"updatePerSecond","type":"int256"},{"internalType":"uint256","name":"lastUpdateAt","type":"uint256"}]},{"internalType":"struct DynamicParam","name":"tau","type":"tuple","components":[{"internalType":"uint256","name":"lastComputedValue","type":"uint256"},{"internalType":"uint256","name":"updateEnd","type":"uint256"},{"internalType":"int256","name":"updatePerSecond","type":"int256"},{"internalType":"uint256","name":"lastUpdateAt","type":"uint256"}]},{"internalType":"struct DynamicParam","name":"strike","type":"tuple","components":[{"internalType":"uint256","name":"lastComputedValue","type":"uint256"},{"internalType":"uint256","name":"updateEnd","type":"uint256"},{"internalType":"int256","name":"updatePerSecond","type":"int256"},{"internalType":"uint256","name":"lastUpdateAt","type":"uint256"}]},{"internalType":"uint256","name":"swapFee","type":"uint256"},{"internalType":"address","name":"controller","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"update"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"validateAllocateOrDeallocate","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"int256","name":"invariant","type":"int256"},{"internalType":"uint256","name":"reserveX","type":"uint256"},{"internalType":"uint256","name":"reserveY","type":"uint256"},{"internalType":"uint256","name":"totalLiquidity","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"validateSwap","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"int256","name":"invariant","type":"int256"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"uint256","name":"nextRx","type":"uint256"},{"internalType":"uint256","name":"nextRy","type":"uint256"},{"internalType":"uint256","name":"nextL","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"dfmm_":"Address of the DFMM contract."}},"init(address,uint256,bytes)":{"params":{"data":"Pool parameters encoded as bytes.","poolId":"Id of the pool to initialize.","sender":"Address that called the DFMM contract."},"returns":{"invariant":"Initial swap growth.","reserveX":"Initial reserve of token X.","reserveY":"Initial reserve of token Y.","totalLiquidity":"Initial liquidity of the pool.","valid":"True if the initialization is valid."}}},"version":1},"userdoc":{"kind":"user","methods":{"init(address,uint256,bytes)":{"notice":"Intializes a new pool."},"name()":{"notice":"Returns the name of the strategy."}},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/strategies/LogNormal/LogNormal.sol":"LogNormal"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormal.sol":{"keccak256":"0xce0e14a6180d989eff4223bd173904717c745f93c7d02e972dce9d4f5a414d15","urls":["bzz-raw://0fe700ac552153eb030453532afdf52d7ae1b7f8ca53b0f050ab9a9e0b1f0ee9","dweb:/ipfs/QmPQW7F1wUqLKs2qPmvJq5EiBfUmPGGsW4y9dUmMtDkfnt"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormalLib.sol":{"keccak256":"0x208f8cd3b02d7305d4c54cf02c07f443ddfed1c6c719e752888be208c3ad3645","urls":["bzz-raw://850b799c647dfbece76c7c1daad3ac375243f66daa0eb8206eeeee783982429c","dweb:/ipfs/QmUrixVb4EAxccZxvZCoAJjF8YRqnMbX6cpGCwPfjZvgQk"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormalMath.sol":{"keccak256":"0x5d97983f91cf766e1e87ef244a39c6ec6961de38c4c8817030b32edd72a1e65f","urls":["bzz-raw://df6121bf8157bad9b659d484fdcc8ebf0cd41179b323d06225d1cf6bff266663","dweb:/ipfs/QmRGN6MwWZb9f6X4Xqv7f3VpUFWXFb36jDKcyEQVaFUhhz"],"license":"GPL-3.0-or-later"}},"version":1},"ast":{"absolutePath":"src/strategies/LogNormal/LogNormal.sol","id":38880,"exportedSymbols":{"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"FixedPointMathLib":[26640],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"LogNormal":[38879],"LogNormalLib":[39517],"Min":[27736],"ONE":[30639],"SQRT_WAD":[30630],"TWO":[30633],"ZERO":[30649],"abs":[27763],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeHalfSigmaTauSquared":[39613],"computeLnSDivK":[39549],"computeSigmaSqrtTau":[39577],"diviWad":[27813],"muli":[27777],"muliWad":[27795],"mulidiv":[39703],"mulidivUp":[39659]},"nodeType":"SourceUnit","src":"45:8077:43","nodes":[{"id":38160,"nodeType":"PragmaDirective","src":"45:24:43","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":38161,"nodeType":"ImportDirective","src":"71:34:43","nodes":[],"absolutePath":"src/interfaces/IDFMM.sol","file":"src/interfaces/IDFMM.sol","nameLocation":"-1:-1:-1","scope":38880,"sourceUnit":29731,"symbolAliases":[],"unitAlias":""},{"id":38162,"nodeType":"ImportDirective","src":"106:38:43","nodes":[],"absolutePath":"src/interfaces/IStrategy.sol","file":"src/interfaces/IStrategy.sol","nameLocation":"-1:-1:-1","scope":38880,"sourceUnit":29840,"symbolAliases":[],"unitAlias":""},{"id":38163,"nodeType":"ImportDirective","src":"145:37:43","nodes":[],"absolutePath":"src/lib/DynamicParamLib.sol","file":"src/lib/DynamicParamLib.sol","nameLocation":"-1:-1:-1","scope":38880,"sourceUnit":30013,"symbolAliases":[],"unitAlias":""},{"id":38164,"nodeType":"ImportDirective","src":"183:33:43","nodes":[],"absolutePath":"src/lib/StrategyLib.sol","file":"src/lib/StrategyLib.sol","nameLocation":"-1:-1:-1","scope":38880,"sourceUnit":30776,"symbolAliases":[],"unitAlias":""},{"id":38165,"nodeType":"ImportDirective","src":"217:28:43","nodes":[],"absolutePath":"src/strategies/LogNormal/LogNormalLib.sol","file":"./LogNormalLib.sol","nameLocation":"-1:-1:-1","scope":38880,"sourceUnit":39518,"symbolAliases":[],"unitAlias":""},{"id":38879,"nodeType":"ContractDefinition","src":"491:7630:43","nodes":[{"id":38171,"nodeType":"UsingForDirective","src":"529:36:43","nodes":[],"global":false,"libraryName":{"id":38169,"name":"FixedPointMathLib","nameLocations":["535:17:43"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"535:17:43"},"typeName":{"id":38170,"name":"uint256","nodeType":"ElementaryTypeName","src":"557:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":38174,"nodeType":"UsingForDirective","src":"570:35:43","nodes":[],"global":false,"libraryName":{"id":38172,"name":"FixedPointMathLib","nameLocations":["576:17:43"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"576:17:43"},"typeName":{"id":38173,"name":"int256","nodeType":"ElementaryTypeName","src":"598:6:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":38178,"nodeType":"UsingForDirective","src":"610:39:43","nodes":[],"global":false,"libraryName":{"id":38175,"name":"DynamicParamLib","nameLocations":["616:15:43"],"nodeType":"IdentifierPath","referencedDeclaration":30012,"src":"616:15:43"},"typeName":{"id":38177,"nodeType":"UserDefinedTypeName","pathNode":{"id":38176,"name":"DynamicParam","nameLocations":["636:12:43"],"nodeType":"IdentifierPath","referencedDeclaration":29851,"src":"636:12:43"},"referencedDeclaration":29851,"src":"636:12:43","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"}}},{"id":38192,"nodeType":"StructDefinition","src":"655:165:43","nodes":[],"canonicalName":"LogNormal.InternalParams","members":[{"constant":false,"id":38181,"mutability":"mutable","name":"sigma","nameLocation":"700:5:43","nodeType":"VariableDeclaration","scope":38192,"src":"687:18:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"},"typeName":{"id":38180,"nodeType":"UserDefinedTypeName","pathNode":{"id":38179,"name":"DynamicParam","nameLocations":["687:12:43"],"nodeType":"IdentifierPath","referencedDeclaration":29851,"src":"687:12:43"},"referencedDeclaration":29851,"src":"687:12:43","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"}},"visibility":"internal"},{"constant":false,"id":38184,"mutability":"mutable","name":"tau","nameLocation":"728:3:43","nodeType":"VariableDeclaration","scope":38192,"src":"715:16:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"},"typeName":{"id":38183,"nodeType":"UserDefinedTypeName","pathNode":{"id":38182,"name":"DynamicParam","nameLocations":["715:12:43"],"nodeType":"IdentifierPath","referencedDeclaration":29851,"src":"715:12:43"},"referencedDeclaration":29851,"src":"715:12:43","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"}},"visibility":"internal"},{"constant":false,"id":38187,"mutability":"mutable","name":"strike","nameLocation":"754:6:43","nodeType":"VariableDeclaration","scope":38192,"src":"741:19:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"},"typeName":{"id":38186,"nodeType":"UserDefinedTypeName","pathNode":{"id":38185,"name":"DynamicParam","nameLocations":["741:12:43"],"nodeType":"IdentifierPath","referencedDeclaration":29851,"src":"741:12:43"},"referencedDeclaration":29851,"src":"741:12:43","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage_ptr","typeString":"struct DynamicParam"}},"visibility":"internal"},{"constant":false,"id":38189,"mutability":"mutable","name":"swapFee","nameLocation":"778:7:43","nodeType":"VariableDeclaration","scope":38192,"src":"770:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38188,"name":"uint256","nodeType":"ElementaryTypeName","src":"770:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38191,"mutability":"mutable","name":"controller","nameLocation":"803:10:43","nodeType":"VariableDeclaration","scope":38192,"src":"795:18:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38190,"name":"address","nodeType":"ElementaryTypeName","src":"795:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"InternalParams","nameLocation":"662:14:43","scope":38879,"visibility":"public"},{"id":38204,"nodeType":"StructDefinition","src":"881:151:43","nodes":[],"canonicalName":"LogNormal.LogNormalParams","documentation":{"id":38193,"nodeType":"StructuredDocumentation","src":"826:50:43","text":"@dev Parameterization of the Log Normal curve."},"members":[{"constant":false,"id":38195,"mutability":"mutable","name":"strike","nameLocation":"922:6:43","nodeType":"VariableDeclaration","scope":38204,"src":"914:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38194,"name":"uint256","nodeType":"ElementaryTypeName","src":"914:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38197,"mutability":"mutable","name":"sigma","nameLocation":"946:5:43","nodeType":"VariableDeclaration","scope":38204,"src":"938:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38196,"name":"uint256","nodeType":"ElementaryTypeName","src":"938:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38199,"mutability":"mutable","name":"tau","nameLocation":"969:3:43","nodeType":"VariableDeclaration","scope":38204,"src":"961:11:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38198,"name":"uint256","nodeType":"ElementaryTypeName","src":"961:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38201,"mutability":"mutable","name":"swapFee","nameLocation":"990:7:43","nodeType":"VariableDeclaration","scope":38204,"src":"982:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38200,"name":"uint256","nodeType":"ElementaryTypeName","src":"982:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38203,"mutability":"mutable","name":"controller","nameLocation":"1015:10:43","nodeType":"VariableDeclaration","scope":38204,"src":"1007:18:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38202,"name":"address","nodeType":"ElementaryTypeName","src":"1007:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"LogNormalParams","nameLocation":"888:15:43","scope":38879,"visibility":"public"},{"id":38207,"nodeType":"VariableDeclaration","src":"1068:19:43","nodes":[],"baseFunctions":[29831],"constant":false,"documentation":{"id":38205,"nodeType":"StructuredDocumentation","src":"1038:25:43","text":"@inheritdoc IStrategy"},"functionSelector":"afba13c4","mutability":"mutable","name":"dfmm","nameLocation":"1083:4:43","scope":38879,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38206,"name":"address","nodeType":"ElementaryTypeName","src":"1068:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":38211,"nodeType":"VariableDeclaration","src":"1124:41:43","nodes":[],"baseFunctions":[29768],"constant":true,"documentation":{"id":38208,"nodeType":"StructuredDocumentation","src":"1094:25:43","text":"@inheritdoc IStrategy"},"functionSelector":"06fdde03","mutability":"constant","name":"name","nameLocation":"1147:4:43","scope":38879,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":38209,"name":"string","nodeType":"ElementaryTypeName","src":"1124:6:43","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"4c6f674e6f726d616c","id":38210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1154:11:43","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf24968457868da3e4da794616ea32c600450d85d3a366bf1160b8826c6e0310","typeString":"literal_string \"LogNormal\""},"value":"LogNormal"},"visibility":"public"},{"id":38216,"nodeType":"VariableDeclaration","src":"1172:56:43","nodes":[],"constant":false,"functionSelector":"1edb71e5","mutability":"mutable","name":"internalParams","nameLocation":"1214:14:43","scope":38879,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$38192_storage_$","typeString":"mapping(uint256 => struct LogNormal.InternalParams)"},"typeName":{"id":38215,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":38212,"name":"uint256","nodeType":"ElementaryTypeName","src":"1180:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1172:34:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$38192_storage_$","typeString":"mapping(uint256 => struct LogNormal.InternalParams)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":38214,"nodeType":"UserDefinedTypeName","pathNode":{"id":38213,"name":"InternalParams","nameLocations":["1191:14:43"],"nodeType":"IdentifierPath","referencedDeclaration":38192,"src":"1191:14:43"},"referencedDeclaration":38192,"src":"1191:14:43","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$38192_storage_ptr","typeString":"struct LogNormal.InternalParams"}}},"visibility":"public"},{"id":38227,"nodeType":"FunctionDefinition","src":"1286:56:43","nodes":[],"body":{"id":38226,"nodeType":"Block","src":"1313:29:43","nodes":[],"statements":[{"expression":{"id":38224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38222,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38207,"src":"1323:4:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38223,"name":"dfmm_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38219,"src":"1330:5:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1323:12:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":38225,"nodeType":"ExpressionStatement","src":"1323:12:43"}]},"documentation":{"id":38217,"nodeType":"StructuredDocumentation","src":"1235:46:43","text":"@param dfmm_ Address of the DFMM contract."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":38220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38219,"mutability":"mutable","name":"dfmm_","nameLocation":"1306:5:43","nodeType":"VariableDeclaration","scope":38227,"src":"1298:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38218,"name":"address","nodeType":"ElementaryTypeName","src":"1298:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1297:15:43"},"returnParameters":{"id":38221,"nodeType":"ParameterList","parameters":[],"src":"1313:0:43"},"scope":38879,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":38239,"nodeType":"ModifierDefinition","src":"1348:88:43","nodes":[],"body":{"id":38238,"nodeType":"Block","src":"1368:68:43","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":38232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38229,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1382:3:43","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1386:6:43","memberName":"sender","nodeType":"MemberAccess","src":"1382:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":38231,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38207,"src":"1396:4:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1382:18:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38236,"nodeType":"IfStatement","src":"1378:40:43","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38233,"name":"NotDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29739,"src":"1409:7:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1409:9:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38235,"nodeType":"RevertStatement","src":"1402:16:43"}},{"id":38237,"nodeType":"PlaceholderStatement","src":"1428:1:43"}]},"name":"onlyDFMM","nameLocation":"1357:8:43","parameters":{"id":38228,"nodeType":"ParameterList","parameters":[],"src":"1365:2:43"},"virtual":false,"visibility":"internal"},{"id":38274,"nodeType":"FunctionDefinition","src":"1472:415:43","nodes":[],"body":{"id":38273,"nodeType":"Block","src":"1775:112:43","nodes":[],"statements":[{"expression":{"id":38271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":38261,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38251,"src":"1786:5:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":38262,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38253,"src":"1793:9:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":38263,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38255,"src":"1804:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38264,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38257,"src":"1814:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38265,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38259,"src":"1824:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},null],"id":38266,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1785:55:43","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$__$","typeString":"tuple(bool,int256,uint256,uint256,uint256,)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":38268,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38244,"src":"1867:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38269,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38246,"src":"1875:4:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":38267,"name":"_decodeInit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38387,"src":"1855:11:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bool_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"function (uint256,bytes calldata) returns (bool,int256,uint256,uint256,uint256,struct LogNormal.LogNormalParams memory)"}},"id":38270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1855:25:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"tuple(bool,int256,uint256,uint256,uint256,struct LogNormal.LogNormalParams memory)"}},"src":"1785:95:43","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38272,"nodeType":"ExpressionStatement","src":"1785:95:43"}]},"baseFunctions":[29762],"documentation":{"id":38240,"nodeType":"StructuredDocumentation","src":"1442:25:43","text":"@inheritdoc IStrategy"},"functionSelector":"73cb2d03","implemented":true,"kind":"function","modifiers":[{"id":38249,"kind":"modifierInvocation","modifierName":{"id":38248,"name":"onlyDFMM","nameLocations":["1585:8:43"],"nodeType":"IdentifierPath","referencedDeclaration":38239,"src":"1585:8:43"},"nodeType":"ModifierInvocation","src":"1585:8:43"}],"name":"init","nameLocation":"1481:4:43","parameters":{"id":38247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38242,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38274,"src":"1495:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38241,"name":"address","nodeType":"ElementaryTypeName","src":"1495:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38244,"mutability":"mutable","name":"poolId","nameLocation":"1520:6:43","nodeType":"VariableDeclaration","scope":38274,"src":"1512:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38243,"name":"uint256","nodeType":"ElementaryTypeName","src":"1512:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38246,"mutability":"mutable","name":"data","nameLocation":"1551:4:43","nodeType":"VariableDeclaration","scope":38274,"src":"1536:19:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":38245,"name":"bytes","nodeType":"ElementaryTypeName","src":"1536:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1485:76:43"},"returnParameters":{"id":38260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38251,"mutability":"mutable","name":"valid","nameLocation":"1629:5:43","nodeType":"VariableDeclaration","scope":38274,"src":"1624:10:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38250,"name":"bool","nodeType":"ElementaryTypeName","src":"1624:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38253,"mutability":"mutable","name":"invariant","nameLocation":"1655:9:43","nodeType":"VariableDeclaration","scope":38274,"src":"1648:16:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":38252,"name":"int256","nodeType":"ElementaryTypeName","src":"1648:6:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":38255,"mutability":"mutable","name":"reserveX","nameLocation":"1686:8:43","nodeType":"VariableDeclaration","scope":38274,"src":"1678:16:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38254,"name":"uint256","nodeType":"ElementaryTypeName","src":"1678:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38257,"mutability":"mutable","name":"reserveY","nameLocation":"1716:8:43","nodeType":"VariableDeclaration","scope":38274,"src":"1708:16:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38256,"name":"uint256","nodeType":"ElementaryTypeName","src":"1708:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38259,"mutability":"mutable","name":"totalLiquidity","nameLocation":"1746:14:43","nodeType":"VariableDeclaration","scope":38274,"src":"1738:22:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38258,"name":"uint256","nodeType":"ElementaryTypeName","src":"1738:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1610:160:43"},"scope":38879,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":38387,"nodeType":"FunctionDefinition","src":"2084:1128:43","nodes":[],"body":{"id":38386,"nodeType":"Block","src":"2404:808:43","nodes":[],"statements":[{"expression":{"id":38312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":38295,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38286,"src":"2415:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38296,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38288,"src":"2425:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38297,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38290,"src":"2435:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38298,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38293,"src":"2451:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"id":38299,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2414:44:43","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"tuple(uint256,uint256,uint256,struct LogNormal.LogNormalParams memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":38302,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38279,"src":"2484:4:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":38304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2491:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38303,"name":"uint256","nodeType":"ElementaryTypeName","src":"2491:7:43","typeDescriptions":{}}},{"id":38306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2500:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38305,"name":"uint256","nodeType":"ElementaryTypeName","src":"2500:7:43","typeDescriptions":{}}},{"id":38308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2509:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38307,"name":"uint256","nodeType":"ElementaryTypeName","src":"2509:7:43","typeDescriptions":{}}},{"id":38309,"name":"LogNormalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38204,"src":"2518:15:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}}],"id":38310,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2490:44:43","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256),type(struct LogNormal.LogNormalParams storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256),type(struct LogNormal.LogNormalParams storage pointer))"}],"expression":{"id":38300,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2473:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2477:6:43","memberName":"decode","nodeType":"MemberAccess","src":"2473:10:43","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":38311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2473:62:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"tuple(uint256,uint256,uint256,struct LogNormal.LogNormalParams memory)"}},"src":"2414:121:43","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38313,"nodeType":"ExpressionStatement","src":"2414:121:43"},{"expression":{"id":38321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"baseExpression":{"id":38314,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38216,"src":"2546:14:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$38192_storage_$","typeString":"mapping(uint256 => struct LogNormal.InternalParams storage ref)"}},"id":38316,"indexExpression":{"id":38315,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38277,"src":"2561:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2546:22:43","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$38192_storage","typeString":"struct LogNormal.InternalParams storage ref"}},"id":38317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2569:5:43","memberName":"sigma","nodeType":"MemberAccess","referencedDeclaration":38181,"src":"2546:28:43","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":38318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2575:17:43","memberName":"lastComputedValue","nodeType":"MemberAccess","referencedDeclaration":29844,"src":"2546:46:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":38319,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38293,"src":"2595:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":38320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2602:5:43","memberName":"sigma","nodeType":"MemberAccess","referencedDeclaration":38197,"src":"2595:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2546:61:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38322,"nodeType":"ExpressionStatement","src":"2546:61:43"},{"expression":{"id":38330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"baseExpression":{"id":38323,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38216,"src":"2617:14:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$38192_storage_$","typeString":"mapping(uint256 => struct LogNormal.InternalParams storage ref)"}},"id":38325,"indexExpression":{"id":38324,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38277,"src":"2632:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2617:22:43","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$38192_storage","typeString":"struct LogNormal.InternalParams storage ref"}},"id":38326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2640:3:43","memberName":"tau","nodeType":"MemberAccess","referencedDeclaration":38184,"src":"2617:26:43","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":38327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2644:17:43","memberName":"lastComputedValue","nodeType":"MemberAccess","referencedDeclaration":29844,"src":"2617:44:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":38328,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38293,"src":"2664:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":38329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2671:3:43","memberName":"tau","nodeType":"MemberAccess","referencedDeclaration":38199,"src":"2664:10:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2617:57:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38331,"nodeType":"ExpressionStatement","src":"2617:57:43"},{"expression":{"id":38339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"baseExpression":{"id":38332,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38216,"src":"2684:14:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$38192_storage_$","typeString":"mapping(uint256 => struct LogNormal.InternalParams storage ref)"}},"id":38334,"indexExpression":{"id":38333,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38277,"src":"2699:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2684:22:43","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$38192_storage","typeString":"struct LogNormal.InternalParams storage ref"}},"id":38335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2707:6:43","memberName":"strike","nodeType":"MemberAccess","referencedDeclaration":38187,"src":"2684:29:43","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":38336,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2714:17:43","memberName":"lastComputedValue","nodeType":"MemberAccess","referencedDeclaration":29844,"src":"2684:47:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":38337,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38293,"src":"2734:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":38338,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2741:6:43","memberName":"strike","nodeType":"MemberAccess","referencedDeclaration":38195,"src":"2734:13:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2684:63:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38340,"nodeType":"ExpressionStatement","src":"2684:63:43"},{"expression":{"id":38347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":38341,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38216,"src":"2757:14:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$38192_storage_$","typeString":"mapping(uint256 => struct LogNormal.InternalParams storage ref)"}},"id":38343,"indexExpression":{"id":38342,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38277,"src":"2772:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2757:22:43","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$38192_storage","typeString":"struct LogNormal.InternalParams storage ref"}},"id":38344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2780:7:43","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":38189,"src":"2757:30:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":38345,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38293,"src":"2790:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":38346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2797:7:43","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":38201,"src":"2790:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2757:47:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38348,"nodeType":"ExpressionStatement","src":"2757:47:43"},{"expression":{"id":38355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":38349,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38216,"src":"2814:14:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$38192_storage_$","typeString":"mapping(uint256 => struct LogNormal.InternalParams storage ref)"}},"id":38351,"indexExpression":{"id":38350,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38277,"src":"2829:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2814:22:43","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$38192_storage","typeString":"struct LogNormal.InternalParams storage ref"}},"id":38352,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2837:10:43","memberName":"controller","nodeType":"MemberAccess","referencedDeclaration":38191,"src":"2814:33:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":38353,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38293,"src":"2850:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":38354,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2857:10:43","memberName":"controller","nodeType":"MemberAccess","referencedDeclaration":38203,"src":"2850:17:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2814:53:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":38356,"nodeType":"ExpressionStatement","src":"2814:53:43"},{"expression":{"id":38372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38357,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38284,"src":"2878:9:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":38360,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38286,"src":"2932:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38361,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38288,"src":"2954:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38362,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38290,"src":"2976:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":38366,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38277,"src":"3029:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38365,"name":"getPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38834,"src":"3015:13:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) view returns (bytes memory)"}},"id":38367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3015:21:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":38368,"name":"LogNormalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38204,"src":"3039:15:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}}],"id":38369,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3038:17:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}],"expression":{"id":38363,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3004:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3008:6:43","memberName":"decode","nodeType":"MemberAccess","src":"3004:10:43","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":38370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3004:52:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":38358,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"2890:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":38359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2903:15:43","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":39225,"src":"2890:28:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":38371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2890:176:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2878:188:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":38373,"nodeType":"ExpressionStatement","src":"2878:188:43"},{"expression":{"id":38384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38374,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38282,"src":"3152:5:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":38383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":38379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"3160:10:43","subExpression":{"components":[{"id":38375,"name":"EPSILON","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30665,"src":"3162:7:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":38376,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3161:9:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38378,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38284,"src":"3173:9:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3160:22:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":38382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38380,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38284,"src":"3186:9:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38381,"name":"EPSILON","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30665,"src":"3198:7:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3186:19:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3160:45:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3152:53:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38385,"nodeType":"ExpressionStatement","src":"3152:53:43"}]},"documentation":{"id":38275,"nodeType":"StructuredDocumentation","src":"1893:186:43","text":"@dev Decodes, stores and validates pool initialization parameters.\n Note that this function was purely made to avoid the stack too deep\n error in the `init()` function."},"implemented":true,"kind":"function","modifiers":[],"name":"_decodeInit","nameLocation":"2093:11:43","parameters":{"id":38280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38277,"mutability":"mutable","name":"poolId","nameLocation":"2122:6:43","nodeType":"VariableDeclaration","scope":38387,"src":"2114:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38276,"name":"uint256","nodeType":"ElementaryTypeName","src":"2114:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38279,"mutability":"mutable","name":"data","nameLocation":"2153:4:43","nodeType":"VariableDeclaration","scope":38387,"src":"2138:19:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":38278,"name":"bytes","nodeType":"ElementaryTypeName","src":"2138:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2104:59:43"},"returnParameters":{"id":38294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38282,"mutability":"mutable","name":"valid","nameLocation":"2215:5:43","nodeType":"VariableDeclaration","scope":38387,"src":"2210:10:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38281,"name":"bool","nodeType":"ElementaryTypeName","src":"2210:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38284,"mutability":"mutable","name":"invariant","nameLocation":"2241:9:43","nodeType":"VariableDeclaration","scope":38387,"src":"2234:16:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":38283,"name":"int256","nodeType":"ElementaryTypeName","src":"2234:6:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":38286,"mutability":"mutable","name":"reserveX","nameLocation":"2272:8:43","nodeType":"VariableDeclaration","scope":38387,"src":"2264:16:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38285,"name":"uint256","nodeType":"ElementaryTypeName","src":"2264:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38288,"mutability":"mutable","name":"reserveY","nameLocation":"2302:8:43","nodeType":"VariableDeclaration","scope":38387,"src":"2294:16:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38287,"name":"uint256","nodeType":"ElementaryTypeName","src":"2294:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38290,"mutability":"mutable","name":"totalLiquidity","nameLocation":"2332:14:43","nodeType":"VariableDeclaration","scope":38387,"src":"2324:22:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38289,"name":"uint256","nodeType":"ElementaryTypeName","src":"2324:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38293,"mutability":"mutable","name":"params","nameLocation":"2383:6:43","nodeType":"VariableDeclaration","scope":38387,"src":"2360:29:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":38292,"nodeType":"UserDefinedTypeName","pathNode":{"id":38291,"name":"LogNormalParams","nameLocations":["2360:15:43"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"2360:15:43"},"referencedDeclaration":38204,"src":"2360:15:43","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"src":"2196:203:43"},"scope":38879,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":38454,"nodeType":"FunctionDefinition","src":"3248:699:43","nodes":[],"body":{"id":38453,"nodeType":"Block","src":"3571:376:43","nodes":[],"statements":[{"expression":{"id":38422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":38407,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38401,"src":"3582:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38408,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38403,"src":"3592:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38409,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38405,"src":"3602:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":38410,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"3581:36:43","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":38413,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38394,"src":"3643:4:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":38415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3650:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38414,"name":"uint256","nodeType":"ElementaryTypeName","src":"3650:7:43","typeDescriptions":{}}},{"id":38417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3659:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38416,"name":"uint256","nodeType":"ElementaryTypeName","src":"3659:7:43","typeDescriptions":{}}},{"id":38419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3668:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38418,"name":"uint256","nodeType":"ElementaryTypeName","src":"3668:7:43","typeDescriptions":{}}}],"id":38420,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3649:27:43","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}],"expression":{"id":38411,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3632:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3636:6:43","memberName":"decode","nodeType":"MemberAccess","src":"3632:10:43","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":38421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3632:45:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"src":"3581:96:43","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38423,"nodeType":"ExpressionStatement","src":"3581:96:43"},{"expression":{"id":38439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38424,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38399,"src":"3688:9:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":38427,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38401,"src":"3742:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38428,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38403,"src":"3764:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38429,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38405,"src":"3786:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":38433,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38392,"src":"3839:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38432,"name":"getPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38834,"src":"3825:13:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) view returns (bytes memory)"}},"id":38434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3825:21:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":38435,"name":"LogNormalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38204,"src":"3849:15:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}}],"id":38436,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3848:17:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}],"expression":{"id":38430,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3814:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3818:6:43","memberName":"decode","nodeType":"MemberAccess","src":"3814:10:43","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":38437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3814:52:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":38425,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"3700:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":38426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3713:15:43","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":39225,"src":"3700:28:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":38438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3700:176:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3688:188:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":38440,"nodeType":"ExpressionStatement","src":"3688:188:43"},{"expression":{"id":38451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38441,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38397,"src":"3887:5:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":38450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":38446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38444,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"3895:10:43","subExpression":{"components":[{"id":38442,"name":"EPSILON","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30665,"src":"3897:7:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":38443,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3896:9:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38445,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38399,"src":"3908:9:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3895:22:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":38449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38447,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38399,"src":"3921:9:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38448,"name":"EPSILON","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30665,"src":"3933:7:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3921:19:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3895:45:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3887:53:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38452,"nodeType":"ExpressionStatement","src":"3887:53:43"}]},"baseFunctions":[29787],"documentation":{"id":38388,"nodeType":"StructuredDocumentation","src":"3218:25:43","text":"@inheritdoc IStrategy"},"functionSelector":"8a04bdd5","implemented":true,"kind":"function","modifiers":[],"name":"validateAllocateOrDeallocate","nameLocation":"3257:28:43","parameters":{"id":38395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38390,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38454,"src":"3295:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38389,"name":"address","nodeType":"ElementaryTypeName","src":"3295:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38392,"mutability":"mutable","name":"poolId","nameLocation":"3320:6:43","nodeType":"VariableDeclaration","scope":38454,"src":"3312:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38391,"name":"uint256","nodeType":"ElementaryTypeName","src":"3312:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38394,"mutability":"mutable","name":"data","nameLocation":"3351:4:43","nodeType":"VariableDeclaration","scope":38454,"src":"3336:19:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":38393,"name":"bytes","nodeType":"ElementaryTypeName","src":"3336:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3285:76:43"},"returnParameters":{"id":38406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38397,"mutability":"mutable","name":"valid","nameLocation":"3425:5:43","nodeType":"VariableDeclaration","scope":38454,"src":"3420:10:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38396,"name":"bool","nodeType":"ElementaryTypeName","src":"3420:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38399,"mutability":"mutable","name":"invariant","nameLocation":"3451:9:43","nodeType":"VariableDeclaration","scope":38454,"src":"3444:16:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":38398,"name":"int256","nodeType":"ElementaryTypeName","src":"3444:6:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":38401,"mutability":"mutable","name":"reserveX","nameLocation":"3482:8:43","nodeType":"VariableDeclaration","scope":38454,"src":"3474:16:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38400,"name":"uint256","nodeType":"ElementaryTypeName","src":"3474:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38403,"mutability":"mutable","name":"reserveY","nameLocation":"3512:8:43","nodeType":"VariableDeclaration","scope":38454,"src":"3504:16:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38402,"name":"uint256","nodeType":"ElementaryTypeName","src":"3504:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38405,"mutability":"mutable","name":"totalLiquidity","nameLocation":"3542:14:43","nodeType":"VariableDeclaration","scope":38454,"src":"3534:22:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38404,"name":"uint256","nodeType":"ElementaryTypeName","src":"3534:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3406:160:43"},"scope":38879,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":38625,"nodeType":"FunctionDefinition","src":"3983:1649:43","nodes":[],"body":{"id":38624,"nodeType":"Block","src":"4310:1322:43","nodes":[],"statements":[{"assignments":[38478],"declarations":[{"constant":false,"id":38478,"mutability":"mutable","name":"params","nameLocation":"4343:6:43","nodeType":"VariableDeclaration","scope":38624,"src":"4320:29:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":38477,"nodeType":"UserDefinedTypeName","pathNode":{"id":38476,"name":"LogNormalParams","nameLocations":["4320:15:43"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"4320:15:43"},"referencedDeclaration":38204,"src":"4320:15:43","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"id":38487,"initialValue":{"arguments":[{"arguments":[{"id":38482,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38459,"src":"4389:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38481,"name":"getPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38834,"src":"4375:13:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) view returns (bytes memory)"}},"id":38483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4375:21:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":38484,"name":"LogNormalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38204,"src":"4399:15:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}}],"id":38485,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4398:17:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}],"expression":{"id":38479,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4364:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38480,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4368:6:43","memberName":"decode","nodeType":"MemberAccess","src":"4364:10:43","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":38486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4364:52:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"nodeType":"VariableDeclarationStatement","src":"4320:96:43"},{"assignments":[38489,38491,38493],"declarations":[{"constant":false,"id":38489,"mutability":"mutable","name":"startRx","nameLocation":"4436:7:43","nodeType":"VariableDeclaration","scope":38624,"src":"4428:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38488,"name":"uint256","nodeType":"ElementaryTypeName","src":"4428:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38491,"mutability":"mutable","name":"startRy","nameLocation":"4453:7:43","nodeType":"VariableDeclaration","scope":38624,"src":"4445:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38490,"name":"uint256","nodeType":"ElementaryTypeName","src":"4445:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38493,"mutability":"mutable","name":"startL","nameLocation":"4470:6:43","nodeType":"VariableDeclaration","scope":38624,"src":"4462:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38492,"name":"uint256","nodeType":"ElementaryTypeName","src":"4462:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38500,"initialValue":{"arguments":[{"id":38498,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38459,"src":"4528:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":38495,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38207,"src":"4498:4:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38494,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"4492:5:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":38496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4492:11:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDFMM_$29730","typeString":"contract IDFMM"}},"id":38497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4504:23:43","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29710,"src":"4492:35:43","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":38499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4492:43:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4427:108:43"},{"expression":{"id":38516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":38501,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38470,"src":"4547:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38502,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38472,"src":"4555:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38503,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38474,"src":"4563:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":38504,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"4546:23:43","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":38507,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38461,"src":"4583:4:43","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":38509,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4590:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38508,"name":"uint256","nodeType":"ElementaryTypeName","src":"4590:7:43","typeDescriptions":{}}},{"id":38511,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4599:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38510,"name":"uint256","nodeType":"ElementaryTypeName","src":"4599:7:43","typeDescriptions":{}}},{"id":38513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4608:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38512,"name":"uint256","nodeType":"ElementaryTypeName","src":"4608:7:43","typeDescriptions":{}}}],"id":38514,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4589:27:43","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}],"expression":{"id":38505,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4572:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4576:6:43","memberName":"decode","nodeType":"MemberAccess","src":"4572:10:43","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":38515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4572:45:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"src":"4546:71:43","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38517,"nodeType":"ExpressionStatement","src":"4546:71:43"},{"assignments":[38519],"declarations":[{"constant":false,"id":38519,"mutability":"mutable","name":"minLiquidityDelta","nameLocation":"4751:17:43","nodeType":"VariableDeclaration","scope":38624,"src":"4743:25:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38518,"name":"uint256","nodeType":"ElementaryTypeName","src":"4743:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38520,"nodeType":"VariableDeclarationStatement","src":"4743:25:43"},{"assignments":[38522],"declarations":[{"constant":false,"id":38522,"mutability":"mutable","name":"amountIn","nameLocation":"4786:8:43","nodeType":"VariableDeclaration","scope":38624,"src":"4778:16:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38521,"name":"uint256","nodeType":"ElementaryTypeName","src":"4778:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38523,"nodeType":"VariableDeclarationStatement","src":"4778:16:43"},{"assignments":[38525],"declarations":[{"constant":false,"id":38525,"mutability":"mutable","name":"fees","nameLocation":"4812:4:43","nodeType":"VariableDeclaration","scope":38624,"src":"4804:12:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38524,"name":"uint256","nodeType":"ElementaryTypeName","src":"4804:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38526,"nodeType":"VariableDeclarationStatement","src":"4804:12:43"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38527,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38470,"src":"4830:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":38528,"name":"startRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38489,"src":"4839:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4830:16:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38555,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38472,"src":"5038:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":38556,"name":"startRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38491,"src":"5047:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5038:16:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":38587,"nodeType":"Block","src":"5302:121:43","statements":[{"expression":{"arguments":[{"hexValue":"696e76616c696420737761703a20696e70757473207820616e6420792068617665207468652073616d65207369676e21","id":38584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5361:50:43","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c54ddfd1f745104b0bff565f04a31914e6f8f946d592485aea78017952f8de3","typeString":"literal_string \"invalid swap: inputs x and y have the same sign!\""},"value":"invalid swap: inputs x and y have the same sign!"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6c54ddfd1f745104b0bff565f04a31914e6f8f946d592485aea78017952f8de3","typeString":"literal_string \"invalid swap: inputs x and y have the same sign!\""}],"id":38583,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5354:6:43","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":38585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5354:58:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38586,"nodeType":"ExpressionStatement","src":"5354:58:43"}]},"id":38588,"nodeType":"IfStatement","src":"5034:389:43","trueBody":{"id":38582,"nodeType":"Block","src":"5056:240:43","statements":[{"expression":{"id":38562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38558,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38522,"src":"5130:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38559,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38472,"src":"5141:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":38560,"name":"startRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38491,"src":"5150:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5141:16:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5130:27:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38563,"nodeType":"ExpressionStatement","src":"5130:27:43"},{"expression":{"id":38570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38564,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38525,"src":"5171:4:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":38567,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38478,"src":"5196:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":38568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5203:7:43","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":38201,"src":"5196:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":38565,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38522,"src":"5178:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5187:8:43","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"5178:17:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5178:33:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5171:40:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38571,"nodeType":"ExpressionStatement","src":"5171:40:43"},{"expression":{"id":38580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38572,"name":"minLiquidityDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38519,"src":"5225:17:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":38578,"name":"startRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38491,"src":"5277:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":38575,"name":"startL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38493,"src":"5260:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":38573,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38525,"src":"5246:4:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5251:8:43","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"5246:13:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5246:21:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5268:8:43","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"5246:30:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5246:39:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5225:60:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38581,"nodeType":"ExpressionStatement","src":"5225:60:43"}]}},"id":38589,"nodeType":"IfStatement","src":"4826:597:43","trueBody":{"id":38554,"nodeType":"Block","src":"4848:180:43","statements":[{"expression":{"id":38534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38530,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38522,"src":"4862:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38531,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38470,"src":"4873:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":38532,"name":"startRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38489,"src":"4882:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4873:16:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4862:27:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38535,"nodeType":"ExpressionStatement","src":"4862:27:43"},{"expression":{"id":38542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38536,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38525,"src":"4903:4:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":38539,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38478,"src":"4928:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":38540,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4935:7:43","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":38201,"src":"4928:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":38537,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38522,"src":"4910:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4919:8:43","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"4910:17:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4910:33:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4903:40:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38543,"nodeType":"ExpressionStatement","src":"4903:40:43"},{"expression":{"id":38552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38544,"name":"minLiquidityDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38519,"src":"4957:17:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":38550,"name":"startRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38489,"src":"5009:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":38547,"name":"startL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38493,"src":"4992:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":38545,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38525,"src":"4978:4:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4983:8:43","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"4978:13:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4978:21:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5000:8:43","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"4978:30:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4978:39:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4957:60:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38553,"nodeType":"ExpressionStatement","src":"4957:60:43"}]}},{"expression":{"id":38600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38590,"name":"liquidityDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38468,"src":"5433:14:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":38599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":38593,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38474,"src":"5457:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5450:6:43","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":38591,"name":"int256","nodeType":"ElementaryTypeName","src":"5450:6:43","typeDescriptions":{}}},"id":38594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5450:13:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":38597,"name":"startL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38493,"src":"5473:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5466:6:43","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":38595,"name":"int256","nodeType":"ElementaryTypeName","src":"5466:6:43","typeDescriptions":{}}},"id":38598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5466:14:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5450:30:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5433:47:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":38601,"nodeType":"ExpressionStatement","src":"5433:47:43"},{"expression":{"id":38610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38602,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38466,"src":"5491:9:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":38605,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38470,"src":"5532:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38606,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38472,"src":"5540:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38607,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38474,"src":"5548:5:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38608,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38478,"src":"5555:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":38603,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"5503:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":38604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5516:15:43","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":39225,"src":"5503:28:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":38609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5503:59:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5491:71:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":38611,"nodeType":"ExpressionStatement","src":"5491:71:43"},{"expression":{"id":38622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38612,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38464,"src":"5572:5:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":38621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":38617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"5580:10:43","subExpression":{"components":[{"id":38613,"name":"EPSILON","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30665,"src":"5582:7:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":38614,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5581:9:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38616,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38466,"src":"5593:9:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5580:22:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":38620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38618,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38466,"src":"5606:9:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38619,"name":"EPSILON","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30665,"src":"5618:7:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5606:19:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5580:45:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5572:53:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38623,"nodeType":"ExpressionStatement","src":"5572:53:43"}]},"baseFunctions":[29808],"documentation":{"id":38455,"nodeType":"StructuredDocumentation","src":"3953:25:43","text":"@inheritdoc IStrategy"},"functionSelector":"68bd3e38","implemented":true,"kind":"function","modifiers":[],"name":"validateSwap","nameLocation":"3992:12:43","parameters":{"id":38462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38457,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38625,"src":"4014:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38456,"name":"address","nodeType":"ElementaryTypeName","src":"4014:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38459,"mutability":"mutable","name":"poolId","nameLocation":"4039:6:43","nodeType":"VariableDeclaration","scope":38625,"src":"4031:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38458,"name":"uint256","nodeType":"ElementaryTypeName","src":"4031:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38461,"mutability":"mutable","name":"data","nameLocation":"4068:4:43","nodeType":"VariableDeclaration","scope":38625,"src":"4055:17:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":38460,"name":"bytes","nodeType":"ElementaryTypeName","src":"4055:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4004:74:43"},"returnParameters":{"id":38475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38464,"mutability":"mutable","name":"valid","nameLocation":"4142:5:43","nodeType":"VariableDeclaration","scope":38625,"src":"4137:10:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38463,"name":"bool","nodeType":"ElementaryTypeName","src":"4137:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38466,"mutability":"mutable","name":"invariant","nameLocation":"4168:9:43","nodeType":"VariableDeclaration","scope":38625,"src":"4161:16:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":38465,"name":"int256","nodeType":"ElementaryTypeName","src":"4161:6:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":38468,"mutability":"mutable","name":"liquidityDelta","nameLocation":"4198:14:43","nodeType":"VariableDeclaration","scope":38625,"src":"4191:21:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":38467,"name":"int256","nodeType":"ElementaryTypeName","src":"4191:6:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":38470,"mutability":"mutable","name":"nextRx","nameLocation":"4234:6:43","nodeType":"VariableDeclaration","scope":38625,"src":"4226:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38469,"name":"uint256","nodeType":"ElementaryTypeName","src":"4226:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38472,"mutability":"mutable","name":"nextRy","nameLocation":"4262:6:43","nodeType":"VariableDeclaration","scope":38625,"src":"4254:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38471,"name":"uint256","nodeType":"ElementaryTypeName","src":"4254:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38474,"mutability":"mutable","name":"nextL","nameLocation":"4290:5:43","nodeType":"VariableDeclaration","scope":38625,"src":"4282:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38473,"name":"uint256","nodeType":"ElementaryTypeName","src":"4282:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4123:182:43"},"scope":38879,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":38774,"nodeType":"FunctionDefinition","src":"5668:1524:43","nodes":[],"body":{"id":38773,"nodeType":"Block","src":"5785:1407:43","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":38642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38637,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38628,"src":"5799:6:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"baseExpression":{"id":38638,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38216,"src":"5809:14:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$38192_storage_$","typeString":"mapping(uint256 => struct LogNormal.InternalParams storage ref)"}},"id":38640,"indexExpression":{"id":38639,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38630,"src":"5824:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5809:22:43","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$38192_storage","typeString":"struct LogNormal.InternalParams storage ref"}},"id":38641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5832:10:43","memberName":"controller","nodeType":"MemberAccess","referencedDeclaration":38191,"src":"5809:33:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5799:43:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38646,"nodeType":"IfStatement","src":"5795:71:43","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38643,"name":"InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29742,"src":"5851:13:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5851:15:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38645,"nodeType":"RevertStatement","src":"5844:22:43"}},{"assignments":[38651],"declarations":[{"constant":false,"id":38651,"mutability":"mutable","name":"updateCode","nameLocation":"5909:10:43","nodeType":"VariableDeclaration","scope":38773,"src":"5876:43:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"},"typeName":{"id":38650,"nodeType":"UserDefinedTypeName","pathNode":{"id":38649,"name":"LogNormalLib.LogNormalUpdateCode","nameLocations":["5876:12:43","5889:19:43"],"nodeType":"IdentifierPath","referencedDeclaration":38896,"src":"5876:32:43"},"referencedDeclaration":38896,"src":"5876:32:43","typeDescriptions":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"}},"visibility":"internal"}],"id":38659,"initialValue":{"arguments":[{"id":38654,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38632,"src":"5945:4:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"expression":{"id":38655,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"5952:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":38656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5965:19:43","memberName":"LogNormalUpdateCode","nodeType":"MemberAccess","referencedDeclaration":38896,"src":"5952:32:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_LogNormalUpdateCode_$38896_$","typeString":"type(enum LogNormalLib.LogNormalUpdateCode)"}}],"id":38657,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5951:34:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_LogNormalUpdateCode_$38896_$","typeString":"type(enum LogNormalLib.LogNormalUpdateCode)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_enum$_LogNormalUpdateCode_$38896_$","typeString":"type(enum LogNormalLib.LogNormalUpdateCode)"}],"expression":{"id":38652,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5934:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5938:6:43","memberName":"decode","nodeType":"MemberAccess","src":"5934:10:43","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":38658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5934:52:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"}},"nodeType":"VariableDeclarationStatement","src":"5876:110:43"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"},"id":38664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38660,"name":"updateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38651,"src":"6001:10:43","typeDescriptions":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":38661,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"6015:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":38662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6028:19:43","memberName":"LogNormalUpdateCode","nodeType":"MemberAccess","referencedDeclaration":38896,"src":"6015:32:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_LogNormalUpdateCode_$38896_$","typeString":"type(enum LogNormalLib.LogNormalUpdateCode)"}},"id":38663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6048:7:43","memberName":"SwapFee","nodeType":"MemberAccess","referencedDeclaration":38891,"src":"6015:40:43","typeDescriptions":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"}},"src":"6001:54:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"},"id":38680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38676,"name":"updateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38651,"src":"6159:10:43","typeDescriptions":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":38677,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"6173:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":38678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6186:19:43","memberName":"LogNormalUpdateCode","nodeType":"MemberAccess","referencedDeclaration":38896,"src":"6173:32:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_LogNormalUpdateCode_$38896_$","typeString":"type(enum LogNormalLib.LogNormalUpdateCode)"}},"id":38679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6206:5:43","memberName":"Sigma","nodeType":"MemberAccess","referencedDeclaration":38893,"src":"6173:38:43","typeDescriptions":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"}},"src":"6159:52:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"},"id":38704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38700,"name":"updateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38651,"src":"6425:10:43","typeDescriptions":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":38701,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"6439:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":38702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6452:19:43","memberName":"LogNormalUpdateCode","nodeType":"MemberAccess","referencedDeclaration":38896,"src":"6439:32:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_LogNormalUpdateCode_$38896_$","typeString":"type(enum LogNormalLib.LogNormalUpdateCode)"}},"id":38703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6472:3:43","memberName":"Tau","nodeType":"MemberAccess","referencedDeclaration":38894,"src":"6439:36:43","typeDescriptions":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"}},"src":"6425:50:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"},"id":38728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38724,"name":"updateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38651,"src":"6681:10:43","typeDescriptions":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":38725,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"6695:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":38726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6708:19:43","memberName":"LogNormalUpdateCode","nodeType":"MemberAccess","referencedDeclaration":38896,"src":"6695:32:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_LogNormalUpdateCode_$38896_$","typeString":"type(enum LogNormalLib.LogNormalUpdateCode)"}},"id":38727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6728:6:43","memberName":"Strike","nodeType":"MemberAccess","referencedDeclaration":38892,"src":"6695:39:43","typeDescriptions":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"}},"src":"6681:53:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"},"id":38752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38748,"name":"updateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38651,"src":"6952:10:43","typeDescriptions":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":38749,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"6966:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":38750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6979:19:43","memberName":"LogNormalUpdateCode","nodeType":"MemberAccess","referencedDeclaration":38896,"src":"6966:32:43","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_LogNormalUpdateCode_$38896_$","typeString":"type(enum LogNormalLib.LogNormalUpdateCode)"}},"id":38751,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6999:10:43","memberName":"Controller","nodeType":"MemberAccess","referencedDeclaration":38895,"src":"6966:43:43","typeDescriptions":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"}},"src":"6952:57:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":38767,"nodeType":"Block","src":"7135:51:43","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38764,"name":"InvalidUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29736,"src":"7156:17:43","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7156:19:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38766,"nodeType":"RevertStatement","src":"7149:26:43"}]},"id":38768,"nodeType":"IfStatement","src":"6948:238:43","trueBody":{"id":38763,"nodeType":"Block","src":"7011:118:43","statements":[{"expression":{"id":38761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":38753,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38216,"src":"7025:14:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$38192_storage_$","typeString":"mapping(uint256 => struct LogNormal.InternalParams storage ref)"}},"id":38755,"indexExpression":{"id":38754,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38630,"src":"7040:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7025:22:43","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$38192_storage","typeString":"struct LogNormal.InternalParams storage ref"}},"id":38756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7048:10:43","memberName":"controller","nodeType":"MemberAccess","referencedDeclaration":38191,"src":"7025:33:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":38759,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38632,"src":"7113:4:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":38757,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"7077:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":38758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7090:22:43","memberName":"decodeControllerUpdate","nodeType":"MemberAccess","referencedDeclaration":39099,"src":"7077:35:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) pure returns (address)"}},"id":38760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7077:41:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7025:93:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":38762,"nodeType":"ExpressionStatement","src":"7025:93:43"}]}},"id":38769,"nodeType":"IfStatement","src":"6677:509:43","trueBody":{"id":38747,"nodeType":"Block","src":"6736:206:43","statements":[{"assignments":[38730,38732],"declarations":[{"constant":false,"id":38730,"mutability":"mutable","name":"targetStrike","nameLocation":"6759:12:43","nodeType":"VariableDeclaration","scope":38747,"src":"6751:20:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38729,"name":"uint256","nodeType":"ElementaryTypeName","src":"6751:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38732,"mutability":"mutable","name":"targetTimestamp","nameLocation":"6781:15:43","nodeType":"VariableDeclaration","scope":38747,"src":"6773:23:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38731,"name":"uint256","nodeType":"ElementaryTypeName","src":"6773:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38737,"initialValue":{"arguments":[{"id":38735,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38632,"src":"6848:4:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":38733,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"6816:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":38734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6829:18:43","memberName":"decodeStrikeUpdate","nodeType":"MemberAccess","referencedDeclaration":38978,"src":"6816:31:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256,uint256)"}},"id":38736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6816:37:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"6750:103:43"},{"expression":{"arguments":[{"id":38743,"name":"targetStrike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38730,"src":"6901:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38744,"name":"targetTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38732,"src":"6915:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"id":38738,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38216,"src":"6867:14:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$38192_storage_$","typeString":"mapping(uint256 => struct LogNormal.InternalParams storage ref)"}},"id":38740,"indexExpression":{"id":38739,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38630,"src":"6882:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6867:22:43","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$38192_storage","typeString":"struct LogNormal.InternalParams storage ref"}},"id":38741,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6890:6:43","memberName":"strike","nodeType":"MemberAccess","referencedDeclaration":38187,"src":"6867:29:43","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":38742,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6897:3:43","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":30011,"src":"6867:33:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_DynamicParam_$29851_storage_ptr_$_t_uint256_$_t_uint256_$returns$__$attached_to$_t_struct$_DynamicParam_$29851_storage_ptr_$","typeString":"function (struct DynamicParam storage pointer,uint256,uint256)"}},"id":38745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6867:64:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38746,"nodeType":"ExpressionStatement","src":"6867:64:43"}]}},"id":38770,"nodeType":"IfStatement","src":"6421:765:43","trueBody":{"id":38723,"nodeType":"Block","src":"6477:194:43","statements":[{"assignments":[38706,38708],"declarations":[{"constant":false,"id":38706,"mutability":"mutable","name":"targetTau","nameLocation":"6500:9:43","nodeType":"VariableDeclaration","scope":38723,"src":"6492:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38705,"name":"uint256","nodeType":"ElementaryTypeName","src":"6492:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38708,"mutability":"mutable","name":"targetTimestamp","nameLocation":"6519:15:43","nodeType":"VariableDeclaration","scope":38723,"src":"6511:23:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38707,"name":"uint256","nodeType":"ElementaryTypeName","src":"6511:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38713,"initialValue":{"arguments":[{"id":38711,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38632,"src":"6583:4:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":38709,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"6554:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":38710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6567:15:43","memberName":"decodeTauUpdate","nodeType":"MemberAccess","referencedDeclaration":39064,"src":"6554:28:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256,uint256)"}},"id":38712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6554:34:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"6491:97:43"},{"expression":{"arguments":[{"id":38719,"name":"targetTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38706,"src":"6633:9:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38720,"name":"targetTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38708,"src":"6644:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"id":38714,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38216,"src":"6602:14:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$38192_storage_$","typeString":"mapping(uint256 => struct LogNormal.InternalParams storage ref)"}},"id":38716,"indexExpression":{"id":38715,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38630,"src":"6617:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6602:22:43","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$38192_storage","typeString":"struct LogNormal.InternalParams storage ref"}},"id":38717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6625:3:43","memberName":"tau","nodeType":"MemberAccess","referencedDeclaration":38184,"src":"6602:26:43","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":38718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6629:3:43","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":30011,"src":"6602:30:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_DynamicParam_$29851_storage_ptr_$_t_uint256_$_t_uint256_$returns$__$attached_to$_t_struct$_DynamicParam_$29851_storage_ptr_$","typeString":"function (struct DynamicParam storage pointer,uint256,uint256)"}},"id":38721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6602:58:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38722,"nodeType":"ExpressionStatement","src":"6602:58:43"}]}},"id":38771,"nodeType":"IfStatement","src":"6155:1031:43","trueBody":{"id":38699,"nodeType":"Block","src":"6213:202:43","statements":[{"assignments":[38682,38684],"declarations":[{"constant":false,"id":38682,"mutability":"mutable","name":"targetSigma","nameLocation":"6236:11:43","nodeType":"VariableDeclaration","scope":38699,"src":"6228:19:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38681,"name":"uint256","nodeType":"ElementaryTypeName","src":"6228:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38684,"mutability":"mutable","name":"targetTimestamp","nameLocation":"6257:15:43","nodeType":"VariableDeclaration","scope":38699,"src":"6249:23:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38683,"name":"uint256","nodeType":"ElementaryTypeName","src":"6249:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38689,"initialValue":{"arguments":[{"id":38687,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38632,"src":"6323:4:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":38685,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"6292:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":38686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6305:17:43","memberName":"decodeSigmaUpdate","nodeType":"MemberAccess","referencedDeclaration":39021,"src":"6292:30:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256,uint256)"}},"id":38688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6292:36:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"6227:101:43"},{"expression":{"arguments":[{"id":38695,"name":"targetSigma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38682,"src":"6375:11:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38696,"name":"targetTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38684,"src":"6388:15:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"id":38690,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38216,"src":"6342:14:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$38192_storage_$","typeString":"mapping(uint256 => struct LogNormal.InternalParams storage ref)"}},"id":38692,"indexExpression":{"id":38691,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38630,"src":"6357:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6342:22:43","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$38192_storage","typeString":"struct LogNormal.InternalParams storage ref"}},"id":38693,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6365:5:43","memberName":"sigma","nodeType":"MemberAccess","referencedDeclaration":38181,"src":"6342:28:43","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":38694,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6371:3:43","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":30011,"src":"6342:32:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_DynamicParam_$29851_storage_ptr_$_t_uint256_$_t_uint256_$returns$__$attached_to$_t_struct$_DynamicParam_$29851_storage_ptr_$","typeString":"function (struct DynamicParam storage pointer,uint256,uint256)"}},"id":38697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6342:62:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38698,"nodeType":"ExpressionStatement","src":"6342:62:43"}]}},"id":38772,"nodeType":"IfStatement","src":"5997:1189:43","trueBody":{"id":38675,"nodeType":"Block","src":"6057:92:43","statements":[{"expression":{"id":38673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":38665,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38216,"src":"6071:14:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$38192_storage_$","typeString":"mapping(uint256 => struct LogNormal.InternalParams storage ref)"}},"id":38667,"indexExpression":{"id":38666,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38630,"src":"6086:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6071:22:43","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$38192_storage","typeString":"struct LogNormal.InternalParams storage ref"}},"id":38668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6094:7:43","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":38189,"src":"6071:30:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":38671,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38632,"src":"6133:4:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":38669,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"6104:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":38670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6117:15:43","memberName":"decodeFeeUpdate","nodeType":"MemberAccess","referencedDeclaration":38935,"src":"6104:28:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":38672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6104:34:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6071:67:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38674,"nodeType":"ExpressionStatement","src":"6071:67:43"}]}}]},"baseFunctions":[29817],"documentation":{"id":38626,"nodeType":"StructuredDocumentation","src":"5638:25:43","text":"@inheritdoc IStrategy"},"functionSelector":"acad2989","implemented":true,"kind":"function","modifiers":[{"id":38635,"kind":"modifierInvocation","modifierName":{"id":38634,"name":"onlyDFMM","nameLocations":["5776:8:43"],"nodeType":"IdentifierPath","referencedDeclaration":38239,"src":"5776:8:43"},"nodeType":"ModifierInvocation","src":"5776:8:43"}],"name":"update","nameLocation":"5677:6:43","parameters":{"id":38633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38628,"mutability":"mutable","name":"sender","nameLocation":"5701:6:43","nodeType":"VariableDeclaration","scope":38774,"src":"5693:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38627,"name":"address","nodeType":"ElementaryTypeName","src":"5693:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38630,"mutability":"mutable","name":"poolId","nameLocation":"5725:6:43","nodeType":"VariableDeclaration","scope":38774,"src":"5717:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38629,"name":"uint256","nodeType":"ElementaryTypeName","src":"5717:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38632,"mutability":"mutable","name":"data","nameLocation":"5756:4:43","nodeType":"VariableDeclaration","scope":38774,"src":"5741:19:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":38631,"name":"bytes","nodeType":"ElementaryTypeName","src":"5741:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5683:83:43"},"returnParameters":{"id":38636,"nodeType":"ParameterList","parameters":[],"src":"5785:0:43"},"scope":38879,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":38834,"nodeType":"FunctionDefinition","src":"7228:410:43","nodes":[],"body":{"id":38833,"nodeType":"Block","src":"7302:336:43","nodes":[],"statements":[{"assignments":[38784],"declarations":[{"constant":false,"id":38784,"mutability":"mutable","name":"params","nameLocation":"7335:6:43","nodeType":"VariableDeclaration","scope":38833,"src":"7312:29:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":38783,"nodeType":"UserDefinedTypeName","pathNode":{"id":38782,"name":"LogNormalParams","nameLocations":["7312:15:43"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"7312:15:43"},"referencedDeclaration":38204,"src":"7312:15:43","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"id":38785,"nodeType":"VariableDeclarationStatement","src":"7312:29:43"},{"expression":{"id":38795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38786,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38784,"src":"7352:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":38788,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7359:5:43","memberName":"sigma","nodeType":"MemberAccess","referencedDeclaration":38197,"src":"7352:12:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"baseExpression":{"id":38789,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38216,"src":"7367:14:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$38192_storage_$","typeString":"mapping(uint256 => struct LogNormal.InternalParams storage ref)"}},"id":38791,"indexExpression":{"id":38790,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38777,"src":"7382:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7367:22:43","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$38192_storage","typeString":"struct LogNormal.InternalParams storage ref"}},"id":38792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7390:5:43","memberName":"sigma","nodeType":"MemberAccess","referencedDeclaration":38181,"src":"7367:28:43","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":38793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7396:10:43","memberName":"actualized","nodeType":"MemberAccess","referencedDeclaration":29925,"src":"7367:39:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_DynamicParam_$29851_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_DynamicParam_$29851_memory_ptr_$","typeString":"function (struct DynamicParam memory) view returns (uint256)"}},"id":38794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7367:41:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7352:56:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38796,"nodeType":"ExpressionStatement","src":"7352:56:43"},{"expression":{"id":38806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38797,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38784,"src":"7418:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":38799,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7425:6:43","memberName":"strike","nodeType":"MemberAccess","referencedDeclaration":38195,"src":"7418:13:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"baseExpression":{"id":38800,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38216,"src":"7434:14:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$38192_storage_$","typeString":"mapping(uint256 => struct LogNormal.InternalParams storage ref)"}},"id":38802,"indexExpression":{"id":38801,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38777,"src":"7449:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7434:22:43","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$38192_storage","typeString":"struct LogNormal.InternalParams storage ref"}},"id":38803,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7457:6:43","memberName":"strike","nodeType":"MemberAccess","referencedDeclaration":38187,"src":"7434:29:43","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":38804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7464:10:43","memberName":"actualized","nodeType":"MemberAccess","referencedDeclaration":29925,"src":"7434:40:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_DynamicParam_$29851_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_DynamicParam_$29851_memory_ptr_$","typeString":"function (struct DynamicParam memory) view returns (uint256)"}},"id":38805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7434:42:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7418:58:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38807,"nodeType":"ExpressionStatement","src":"7418:58:43"},{"expression":{"id":38817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38808,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38784,"src":"7486:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":38810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7493:3:43","memberName":"tau","nodeType":"MemberAccess","referencedDeclaration":38199,"src":"7486:10:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"baseExpression":{"id":38811,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38216,"src":"7499:14:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$38192_storage_$","typeString":"mapping(uint256 => struct LogNormal.InternalParams storage ref)"}},"id":38813,"indexExpression":{"id":38812,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38777,"src":"7514:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7499:22:43","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$38192_storage","typeString":"struct LogNormal.InternalParams storage ref"}},"id":38814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7522:3:43","memberName":"tau","nodeType":"MemberAccess","referencedDeclaration":38184,"src":"7499:26:43","typeDescriptions":{"typeIdentifier":"t_struct$_DynamicParam_$29851_storage","typeString":"struct DynamicParam storage ref"}},"id":38815,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7526:10:43","memberName":"actualized","nodeType":"MemberAccess","referencedDeclaration":29925,"src":"7499:37:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_DynamicParam_$29851_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_DynamicParam_$29851_memory_ptr_$","typeString":"function (struct DynamicParam memory) view returns (uint256)"}},"id":38816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7499:39:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7486:52:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38818,"nodeType":"ExpressionStatement","src":"7486:52:43"},{"expression":{"id":38826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38819,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38784,"src":"7548:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":38821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7555:7:43","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":38201,"src":"7548:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":38822,"name":"internalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38216,"src":"7565:14:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_InternalParams_$38192_storage_$","typeString":"mapping(uint256 => struct LogNormal.InternalParams storage ref)"}},"id":38824,"indexExpression":{"id":38823,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38777,"src":"7580:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7565:22:43","typeDescriptions":{"typeIdentifier":"t_struct$_InternalParams_$38192_storage","typeString":"struct LogNormal.InternalParams storage ref"}},"id":38825,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7588:7:43","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":38189,"src":"7565:30:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7548:47:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38827,"nodeType":"ExpressionStatement","src":"7548:47:43"},{"expression":{"arguments":[{"id":38830,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38784,"src":"7624:6:43","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":38828,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7613:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38829,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7617:6:43","memberName":"encode","nodeType":"MemberAccess","src":"7613:10:43","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":38831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7613:18:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":38781,"id":38832,"nodeType":"Return","src":"7606:25:43"}]},"baseFunctions":[29838],"documentation":{"id":38775,"nodeType":"StructuredDocumentation","src":"7198:25:43","text":"@inheritdoc IStrategy"},"functionSelector":"dc178355","implemented":true,"kind":"function","modifiers":[],"name":"getPoolParams","nameLocation":"7237:13:43","parameters":{"id":38778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38777,"mutability":"mutable","name":"poolId","nameLocation":"7259:6:43","nodeType":"VariableDeclaration","scope":38834,"src":"7251:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38776,"name":"uint256","nodeType":"ElementaryTypeName","src":"7251:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7250:16:43"},"returnParameters":{"id":38781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38780,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38834,"src":"7288:12:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":38779,"name":"bytes","nodeType":"ElementaryTypeName","src":"7288:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7287:14:43"},"scope":38879,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":38878,"nodeType":"FunctionDefinition","src":"7674:445:43","nodes":[],"body":{"id":38877,"nodeType":"Block","src":"7789:330:43","nodes":[],"statements":[{"assignments":[38845,38847,38849],"declarations":[{"constant":false,"id":38845,"mutability":"mutable","name":"reserveX","nameLocation":"7808:8:43","nodeType":"VariableDeclaration","scope":38877,"src":"7800:16:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38844,"name":"uint256","nodeType":"ElementaryTypeName","src":"7800:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38847,"mutability":"mutable","name":"reserveY","nameLocation":"7826:8:43","nodeType":"VariableDeclaration","scope":38877,"src":"7818:16:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38846,"name":"uint256","nodeType":"ElementaryTypeName","src":"7818:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38849,"mutability":"mutable","name":"totalLiquidity","nameLocation":"7844:14:43","nodeType":"VariableDeclaration","scope":38877,"src":"7836:22:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38848,"name":"uint256","nodeType":"ElementaryTypeName","src":"7836:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38861,"initialValue":{"arguments":[{"id":38852,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38839,"src":"7885:4:43","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":38854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7892:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38853,"name":"uint256","nodeType":"ElementaryTypeName","src":"7892:7:43","typeDescriptions":{}}},{"id":38856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7901:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38855,"name":"uint256","nodeType":"ElementaryTypeName","src":"7901:7:43","typeDescriptions":{}}},{"id":38858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7910:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38857,"name":"uint256","nodeType":"ElementaryTypeName","src":"7910:7:43","typeDescriptions":{}}}],"id":38859,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"7891:27:43","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256))"}],"expression":{"id":38850,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7874:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7878:6:43","memberName":"decode","nodeType":"MemberAccess","src":"7874:10:43","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":38860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7874:45:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"7799:120:43"},{"expression":{"arguments":[{"id":38864,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38845,"src":"7978:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38865,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38847,"src":"8000:8:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38866,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38849,"src":"8022:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":38870,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38837,"src":"8075:6:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38869,"name":"getPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38834,"src":"8061:13:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) view returns (bytes memory)"}},"id":38871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8061:21:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":38872,"name":"LogNormalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38204,"src":"8085:15:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}}],"id":38873,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8084:17:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}],"expression":{"id":38867,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8050:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8054:6:43","memberName":"decode","nodeType":"MemberAccess","src":"8050:10:43","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":38874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8050:52:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":38862,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"7936:12:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":38863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7949:15:43","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":39225,"src":"7936:28:43","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":38875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7936:176:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":38843,"id":38876,"nodeType":"Return","src":"7929:183:43"}]},"baseFunctions":[29826],"documentation":{"id":38835,"nodeType":"StructuredDocumentation","src":"7644:25:43","text":"@inheritdoc IStrategy"},"functionSelector":"002e524b","implemented":true,"kind":"function","modifiers":[],"name":"computeSwapConstant","nameLocation":"7683:19:43","parameters":{"id":38840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38837,"mutability":"mutable","name":"poolId","nameLocation":"7720:6:43","nodeType":"VariableDeclaration","scope":38878,"src":"7712:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38836,"name":"uint256","nodeType":"ElementaryTypeName","src":"7712:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38839,"mutability":"mutable","name":"data","nameLocation":"7749:4:43","nodeType":"VariableDeclaration","scope":38878,"src":"7736:17:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":38838,"name":"bytes","nodeType":"ElementaryTypeName","src":"7736:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7702:57:43"},"returnParameters":{"id":38843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38842,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38878,"src":"7781:6:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":38841,"name":"int256","nodeType":"ElementaryTypeName","src":"7781:6:43","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"7780:8:43"},"scope":38879,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":38167,"name":"IStrategy","nameLocations":["513:9:43"],"nodeType":"IdentifierPath","referencedDeclaration":29839,"src":"513:9:43"},"id":38168,"nodeType":"InheritanceSpecifier","src":"513:9:43"}],"canonicalName":"LogNormal","contractDependencies":[],"contractKind":"contract","documentation":{"id":38166,"nodeType":"StructuredDocumentation","src":"247:244:43","text":"@notice Log Normal has three variable parameters:\n K - strike price\n sigma - volatility\n tau - time to expiry\n Swaps are validated by the trading function:\n Gaussian.ppf(x / L) + Gaussian.ppf(y / KL) = -sigma * sqrt(tau)"},"fullyImplemented":true,"linearizedBaseContracts":[38879,29839],"name":"LogNormal","nameLocation":"500:9:43","scope":38880,"usedErrors":[26761,26763,26765,27736,29736,29739,29742,29856],"usedEvents":[]}],"license":"GPL-3.0-or-later"},"id":43} \ No newline at end of file diff --git a/out/LogNormal.t.sol/LogNormalTestFork.json b/out/LogNormal.t.sol/LogNormalTestFork.json deleted file mode 100644 index 5bca5487..00000000 --- a/out/LogNormal.t.sol/LogNormalTestFork.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523461002357600160ff19600054161760005561024090816100298239f35b600080fdfe6080604052600436101561001257600080fd5b6000803560e01c8063ba414fa6146100575763fa7626d41461003357600080fd5b3461005457806003193601126100545760ff60209154166040519015158152f35b80fd5b503461005457806003193601126100545760206100726100b4565b6040519015158152f35b90601f8019910116810190811067ffffffffffffffff82111761009e57604052565b634e487b7160e01b600052604160045260246000fd5b6000805460081c60ff16156100cd575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6100ee57505090565b90915060405160209180838301526519985a5b195960d21b604083015260408252606082019167ffffffffffffffff92818110848211176101f65791828692936040526080840190630667f9d760e41b8252845187855b8281106101de5750509061016f60248787989488950185608482015203600481018452018261007c565b51925af1503d156101d6573d9081116101c25760405190610199601f8201601f191684018361007c565b81523d838383013e5b81818051810103126101be570151908115158203610054575090565b8280fd5b634e487b7160e01b83526041600452602483fd5b5060606101a2565b808801808301516084909101528a9650899101610145565b634e487b7160e01b86526041600452602486fdfea2646970667358221220dc5fe3bb468f1d0ac5c18bb6fc2180fe006b3a5da7688929a72c60a10842951164736f6c63430008160033","sourceMap":"95:38:51:-:0;;;;;;;1594:4:0;95:38:51;;1594:4:0;95:38:51;;;1594:4:0;95:38:51;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b6000803560e01c8063ba414fa6146100575763fa7626d41461003357600080fd5b3461005457806003193601126100545760ff60209154166040519015158152f35b80fd5b503461005457806003193601126100545760206100726100b4565b6040519015158152f35b90601f8019910116810190811067ffffffffffffffff82111761009e57604052565b634e487b7160e01b600052604160045260246000fd5b6000805460081c60ff16156100cd575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6100ee57505090565b90915060405160209180838301526519985a5b195960d21b604083015260408252606082019167ffffffffffffffff92818110848211176101f65791828692936040526080840190630667f9d760e41b8252845187855b8281106101de5750509061016f60248787989488950185608482015203600481018452018261007c565b51925af1503d156101d6573d9081116101c25760405190610199601f8201601f191684018361007c565b81523d838383013e5b81818051810103126101be570151908115158203610054575090565b8280fd5b634e487b7160e01b83526041600452602483fd5b5060606101a2565b808801808301516084909101528a9650899101610145565b634e487b7160e01b86526041600452602486fdfea2646970667358221220dc5fe3bb468f1d0ac5c18bb6fc2180fe006b3a5da7688929a72c60a10842951164736f6c63430008160033","sourceMap":"95:38:51:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1671:64:0;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;1819:584;1873:7;95:38:51;;;;;;;;;;;;;;;1896:14:0:o;1869:528::-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;95:38:51;;;;;2196:43:0;;;;;;1671:64;;;;95:38:51;1671:64:0;;;95:38:51;2196:43:0;;95:38:51;1671:64:0;;;;;;;;;;;;;;;;;;;95:38:51;1671:64:0;2086:175;;;1671:64;;;;;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;;;;;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:0;;;;;;;;;;95:38:51;;;1671:64:0;;;;-1:-1:-1;;1671:64:0;;;95:38:51;1671:64:0;:::i;:::-;;;;;;;;;;;;;;2312:27;;1671:64;;;;2312:27;1671:64;95:38:51;;;;1671:64:0;;;;2297:42;2367:19;:::o;1671:64::-;95:38:51;;;1671:64:0;-1:-1:-1;;;1671:64:0;;;2086:175;1671:64;;;;;;95:38:51;1671:64:0;;;;;;;;;;;;;;;;;-1:-1:-1;1671:64:0;;;;;;-1:-1:-1;;;1671:64:0;;;;;;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","failed()":"ba414fa6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/fork/LogNormal.t.sol\":\"LogNormalTestFork\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"src/test/fork/LogNormal.t.sol\":{\"keccak256\":\"0xb052c7bfbcbbc74467dcf28bbec0cf390053d3a53dc18150f15373929e18bda9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b36fe0d32237e1a0a113e7175fa6a5cb0bf87006e65f7d15757e159ba2fe7a2d\",\"dweb:/ipfs/QmYF5z6oDE7MPRXX9HHApydnnjK1NANeD92u2xGBUANdFw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/fork/LogNormal.t.sol":"LogNormalTestFork"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"src/test/fork/LogNormal.t.sol":{"keccak256":"0xb052c7bfbcbbc74467dcf28bbec0cf390053d3a53dc18150f15373929e18bda9","urls":["bzz-raw://b36fe0d32237e1a0a113e7175fa6a5cb0bf87006e65f7d15757e159ba2fe7a2d","dweb:/ipfs/QmYF5z6oDE7MPRXX9HHApydnnjK1NANeD92u2xGBUANdFw"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/fork/LogNormal.t.sol","id":43142,"exportedSymbols":{"DSTest":[1786],"LogNormalTestFork":[43141],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"Test":[8195],"TestBase":[1843],"Vm":[9352],"console":[17416],"console2":[25512],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522]},"nodeType":"SourceUnit","src":"39:95:51","nodes":[{"id":43137,"nodeType":"PragmaDirective","src":"39:24:51","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":43138,"nodeType":"ImportDirective","src":"65:28:51","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":43142,"sourceUnit":8196,"symbolAliases":[],"unitAlias":""},{"id":43141,"nodeType":"ContractDefinition","src":"95:38:51","nodes":[],"abstract":false,"baseContracts":[{"baseName":{"id":43139,"name":"Test","nameLocations":["125:4:51"],"nodeType":"IdentifierPath","referencedDeclaration":8195,"src":"125:4:51"},"id":43140,"nodeType":"InheritanceSpecifier","src":"125:4:51"}],"canonicalName":"LogNormalTestFork","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[43141,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"LogNormalTestFork","nameLocation":"104:17:51","scope":43142,"usedErrors":[],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":51} \ No newline at end of file diff --git a/out/LogNormalExtendedLib.sol/LogNormalExtendedLib.json b/out/LogNormalExtendedLib.sol/LogNormalExtendedLib.json deleted file mode 100644 index ad519dbf..00000000 --- a/out/LogNormalExtendedLib.sol/LogNormalExtendedLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/solvers/LogNormal/LogNormalExtendedLib.sol","id":35399,"exportedSymbols":{"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"LogNormal":[38879],"LogNormalLib":[39517],"MAX_ITER":[33842],"Min":[27736],"ONE":[30639],"SQRT_WAD":[30630],"SignedWadMathLib":[30623],"TWO":[30633],"ZERO":[30649],"abs":[27763],"bisection":[31118],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeD1":[34040],"computeD2":[34104],"computeHalfSigmaTauSquared":[39613],"computeInitialPoolData":[34282],"computeLGivenX":[33886],"computeLnSDivK":[39549],"computeNextLiquidity":[34383],"computeNextRx":[34484],"computeNextRy":[34585],"computeOptimalLower":[35332],"computeOptimalRaise":[35398],"computeSigmaSqrtTau":[39577],"computeXGivenL":[33976],"computeYGivenL":[33932],"console2":[25512],"diffLower":[34961],"diffRaise":[35266],"diviWad":[27813],"findRootLiquidity":[34224],"findRootLower":[34631],"findRootRaise":[34677],"findRootX":[34184],"findRootY":[34144],"muli":[27777],"muliWad":[27795],"mulidiv":[39703],"mulidivUp":[39659]},"nodeType":"SourceUnit","src":"45:14401:37","nodes":[{"id":33822,"nodeType":"PragmaDirective","src":"45:24:37","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":33823,"nodeType":"ImportDirective","src":"71:34:37","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/tokens/ERC20.sol","file":"solmate/tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":35399,"sourceUnit":25949,"symbolAliases":[],"unitAlias":""},{"id":33824,"nodeType":"ImportDirective","src":"106:30:37","nodes":[],"absolutePath":"lib/solstat/src/Gaussian.sol","file":"solstat/Gaussian.sol","nameLocation":"-1:-1:-1","scope":35399,"sourceUnit":27375,"symbolAliases":[],"unitAlias":""},{"id":33825,"nodeType":"ImportDirective","src":"137:51:37","nodes":[],"absolutePath":"src/strategies/LogNormal/LogNormalLib.sol","file":"src/strategies/LogNormal/LogNormalLib.sol","nameLocation":"-1:-1:-1","scope":35399,"sourceUnit":39518,"symbolAliases":[],"unitAlias":""},{"id":33826,"nodeType":"ImportDirective","src":"189:48:37","nodes":[],"absolutePath":"src/strategies/LogNormal/LogNormal.sol","file":"src/strategies/LogNormal/LogNormal.sol","nameLocation":"-1:-1:-1","scope":35399,"sourceUnit":38880,"symbolAliases":[],"unitAlias":""},{"id":33827,"nodeType":"ImportDirective","src":"238:36:37","nodes":[],"absolutePath":"src/interfaces/IDFMM.sol","file":"../../interfaces/IDFMM.sol","nameLocation":"-1:-1:-1","scope":35399,"sourceUnit":29731,"symbolAliases":[],"unitAlias":""},{"id":33828,"nodeType":"ImportDirective","src":"275:29:37","nodes":[],"absolutePath":"src/solvers/BisectionLib.sol","file":"../BisectionLib.sol","nameLocation":"-1:-1:-1","scope":35399,"sourceUnit":31119,"symbolAliases":[],"unitAlias":""},{"id":33829,"nodeType":"ImportDirective","src":"305:37:37","nodes":[],"absolutePath":"src/lib/SignedWadMath.sol","file":"../../lib/SignedWadMath.sol","nameLocation":"-1:-1:-1","scope":35399,"sourceUnit":30624,"symbolAliases":[],"unitAlias":""},{"id":33830,"nodeType":"ImportDirective","src":"343:32:37","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/console2.sol","file":"forge-std/console2.sol","nameLocation":"-1:-1:-1","scope":35399,"sourceUnit":25513,"symbolAliases":[],"unitAlias":""},{"id":33833,"nodeType":"UsingForDirective","src":"377:36:37","nodes":[],"global":false,"libraryName":{"id":33831,"name":"FixedPointMathLib","nameLocations":["383:17:37"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"383:17:37"},"typeName":{"id":33832,"name":"uint256","nodeType":"ElementaryTypeName","src":"405:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":33836,"nodeType":"UsingForDirective","src":"414:35:37","nodes":[],"global":false,"libraryName":{"id":33834,"name":"FixedPointMathLib","nameLocations":["420:17:37"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"420:17:37"},"typeName":{"id":33835,"name":"int256","nodeType":"ElementaryTypeName","src":"442:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":33839,"nodeType":"UsingForDirective","src":"450:34:37","nodes":[],"global":false,"libraryName":{"id":33837,"name":"SignedWadMathLib","nameLocations":["456:16:37"],"nodeType":"IdentifierPath","referencedDeclaration":30623,"src":"456:16:37"},"typeName":{"id":33838,"name":"int256","nodeType":"ElementaryTypeName","src":"477:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":33842,"nodeType":"VariableDeclaration","src":"486:30:37","nodes":[],"constant":true,"mutability":"constant","name":"MAX_ITER","nameLocation":"503:8:37","scope":35399,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33840,"name":"uint256","nodeType":"ElementaryTypeName","src":"486:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3634","id":33841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"514:2:37","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"visibility":"internal"},{"id":33886,"nodeType":"FunctionDefinition","src":"810:311:37","nodes":[],"body":{"id":33885,"nodeType":"Block","src":"937:184:37","nodes":[],"statements":[{"assignments":[33856],"declarations":[{"constant":false,"id":33856,"mutability":"mutable","name":"d1","nameLocation":"950:2:37","nodeType":"VariableDeclaration","scope":33885,"src":"943:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":33855,"name":"int256","nodeType":"ElementaryTypeName","src":"943:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":33861,"initialValue":{"arguments":[{"id":33858,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33847,"src":"970:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33859,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33850,"src":"981:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"id":33857,"name":"computeD1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34040,"src":"955:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":33860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["967:1:37","973:6:37"],"names":["S","params"],"nodeType":"FunctionCall","src":"955:35:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"943:47:37"},{"assignments":[33863],"declarations":[{"constant":false,"id":33863,"mutability":"mutable","name":"cdf","nameLocation":"1003:3:37","nodeType":"VariableDeclaration","scope":33885,"src":"996:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":33862,"name":"int256","nodeType":"ElementaryTypeName","src":"996:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":33868,"initialValue":{"arguments":[{"id":33866,"name":"d1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33856,"src":"1022:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":33864,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"1009:8:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":33865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1018:3:37","memberName":"cdf","nodeType":"MemberAccess","referencedDeclaration":27280,"src":"1009:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":33867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1009:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"996:29:37"},{"assignments":[33870],"declarations":[{"constant":false,"id":33870,"mutability":"mutable","name":"unsignedCdf","nameLocation":"1039:11:37","nodeType":"VariableDeclaration","scope":33885,"src":"1031:19:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33869,"name":"uint256","nodeType":"ElementaryTypeName","src":"1031:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33875,"initialValue":{"arguments":[{"id":33873,"name":"cdf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33863,"src":"1073:3:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":33871,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"1053:12:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":33872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1066:6:37","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":39516,"src":"1053:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":33874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1053:24:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1031:46:37"},{"expression":{"id":33883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33876,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33853,"src":"1084:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33879,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"1100:3:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":33880,"name":"unsignedCdf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33870,"src":"1106:11:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1100:17:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":33877,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33845,"src":"1088:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1091:8:37","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"1088:11:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1088:30:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1084:34:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33884,"nodeType":"ExpressionStatement","src":"1084:34:37"}]},"documentation":{"id":33843,"nodeType":"StructuredDocumentation","src":"519:291:37","text":"@dev Computes reserves L given rx, S.\n @param rx The reserve of x.\n @param S The price of X in Y, in WAD units.\n @param params LogNormParameters of the Log Normal distribution.\n @return L The reserve L computed as L(x, s) = K * L_x(x, S) * Gaussian.cdf[d2(S, K, sigma, tau)]"},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeLGivenX","nameLocation":"819:14:37","parameters":{"id":33851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33845,"mutability":"mutable","name":"rx","nameLocation":"847:2:37","nodeType":"VariableDeclaration","scope":33886,"src":"839:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33844,"name":"uint256","nodeType":"ElementaryTypeName","src":"839:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33847,"mutability":"mutable","name":"S","nameLocation":"863:1:37","nodeType":"VariableDeclaration","scope":33886,"src":"855:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33846,"name":"uint256","nodeType":"ElementaryTypeName","src":"855:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33850,"mutability":"mutable","name":"params","nameLocation":"903:6:37","nodeType":"VariableDeclaration","scope":33886,"src":"870:39:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":33849,"nodeType":"UserDefinedTypeName","pathNode":{"id":33848,"name":"LogNormal.LogNormalParams","nameLocations":["870:9:37","880:15:37"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"870:25:37"},"referencedDeclaration":38204,"src":"870:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"src":"833:78:37"},"returnParameters":{"id":33854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33853,"mutability":"mutable","name":"L","nameLocation":"934:1:37","nodeType":"VariableDeclaration","scope":33886,"src":"926:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33852,"name":"uint256","nodeType":"ElementaryTypeName","src":"926:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"925:11:37"},"scope":35399,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33932,"nodeType":"FunctionDefinition","src":"1260:314:37","nodes":[],"body":{"id":33931,"nodeType":"Block","src":"1387:187:37","nodes":[],"statements":[{"assignments":[33900],"declarations":[{"constant":false,"id":33900,"mutability":"mutable","name":"d2","nameLocation":"1400:2:37","nodeType":"VariableDeclaration","scope":33931,"src":"1393:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":33899,"name":"int256","nodeType":"ElementaryTypeName","src":"1393:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":33905,"initialValue":{"arguments":[{"id":33902,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33891,"src":"1415:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33903,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33894,"src":"1418:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"id":33901,"name":"computeD2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34104,"src":"1405:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":33904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1405:20:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"1393:32:37"},{"assignments":[33907],"declarations":[{"constant":false,"id":33907,"mutability":"mutable","name":"cdf","nameLocation":"1438:3:37","nodeType":"VariableDeclaration","scope":33931,"src":"1431:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":33906,"name":"int256","nodeType":"ElementaryTypeName","src":"1431:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":33912,"initialValue":{"arguments":[{"id":33910,"name":"d2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33900,"src":"1457:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":33908,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"1444:8:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":33909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1453:3:37","memberName":"cdf","nodeType":"MemberAccess","referencedDeclaration":27280,"src":"1444:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":33911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1444:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"1431:29:37"},{"assignments":[33914],"declarations":[{"constant":false,"id":33914,"mutability":"mutable","name":"unsignedCdf","nameLocation":"1474:11:37","nodeType":"VariableDeclaration","scope":33931,"src":"1466:19:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33913,"name":"uint256","nodeType":"ElementaryTypeName","src":"1466:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33919,"initialValue":{"arguments":[{"id":33917,"name":"cdf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33907,"src":"1508:3:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":33915,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"1488:12:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":33916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1501:6:37","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":39516,"src":"1488:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":33918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1488:24:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1466:46:37"},{"expression":{"id":33929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33920,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33897,"src":"1519:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":33927,"name":"unsignedCdf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33914,"src":"1559:11:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":33924,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33889,"src":"1547:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":33921,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33894,"src":"1524:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":33922,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1531:6:37","memberName":"strike","nodeType":"MemberAccess","referencedDeclaration":38195,"src":"1524:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1538:8:37","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"1524:22:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1524:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1550:8:37","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"1524:34:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1524:47:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1519:52:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33930,"nodeType":"ExpressionStatement","src":"1519:52:37"}]},"documentation":{"id":33887,"nodeType":"StructuredDocumentation","src":"1123:137:37","text":"@dev Computes reserves y given L(x, S).\n @return ry The reserve y computed as y(x, s) = K * L_x(x, S) * cdf[d2(S, K, sigma, tau)]"},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeYGivenL","nameLocation":"1269:14:37","parameters":{"id":33895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33889,"mutability":"mutable","name":"L","nameLocation":"1297:1:37","nodeType":"VariableDeclaration","scope":33932,"src":"1289:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33888,"name":"uint256","nodeType":"ElementaryTypeName","src":"1289:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33891,"mutability":"mutable","name":"S","nameLocation":"1312:1:37","nodeType":"VariableDeclaration","scope":33932,"src":"1304:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33890,"name":"uint256","nodeType":"ElementaryTypeName","src":"1304:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33894,"mutability":"mutable","name":"params","nameLocation":"1352:6:37","nodeType":"VariableDeclaration","scope":33932,"src":"1319:39:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":33893,"nodeType":"UserDefinedTypeName","pathNode":{"id":33892,"name":"LogNormal.LogNormalParams","nameLocations":["1319:9:37","1329:15:37"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"1319:25:37"},"referencedDeclaration":38204,"src":"1319:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"src":"1283:77:37"},"returnParameters":{"id":33898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33897,"mutability":"mutable","name":"ry","nameLocation":"1383:2:37","nodeType":"VariableDeclaration","scope":33932,"src":"1375:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33896,"name":"uint256","nodeType":"ElementaryTypeName","src":"1375:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1374:12:37"},"scope":35399,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33976,"nodeType":"FunctionDefinition","src":"1717:295:37","nodes":[],"body":{"id":33975,"nodeType":"Block","src":"1844:168:37","nodes":[],"statements":[{"assignments":[33946],"declarations":[{"constant":false,"id":33946,"mutability":"mutable","name":"d1","nameLocation":"1857:2:37","nodeType":"VariableDeclaration","scope":33975,"src":"1850:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":33945,"name":"int256","nodeType":"ElementaryTypeName","src":"1850:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":33951,"initialValue":{"arguments":[{"id":33948,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33937,"src":"1872:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33949,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33940,"src":"1875:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"id":33947,"name":"computeD1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34040,"src":"1862:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":33950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1862:20:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"1850:32:37"},{"assignments":[33953],"declarations":[{"constant":false,"id":33953,"mutability":"mutable","name":"cdf","nameLocation":"1895:3:37","nodeType":"VariableDeclaration","scope":33975,"src":"1888:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":33952,"name":"int256","nodeType":"ElementaryTypeName","src":"1888:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":33958,"initialValue":{"arguments":[{"id":33956,"name":"d1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33946,"src":"1914:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":33954,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"1901:8:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":33955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1910:3:37","memberName":"cdf","nodeType":"MemberAccess","referencedDeclaration":27280,"src":"1901:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":33957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1901:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"1888:29:37"},{"assignments":[33960],"declarations":[{"constant":false,"id":33960,"mutability":"mutable","name":"unsignedCdf","nameLocation":"1931:11:37","nodeType":"VariableDeclaration","scope":33975,"src":"1923:19:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33959,"name":"uint256","nodeType":"ElementaryTypeName","src":"1923:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33965,"initialValue":{"arguments":[{"id":33963,"name":"cdf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33953,"src":"1965:3:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":33961,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"1945:12:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":33962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1958:6:37","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":39516,"src":"1945:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":33964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1945:24:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1923:46:37"},{"expression":{"id":33973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33966,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33943,"src":"1975:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33969,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"1991:3:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":33970,"name":"unsignedCdf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33960,"src":"1997:11:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1991:17:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":33967,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33935,"src":"1980:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1982:8:37","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"1980:10:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":33972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1980:29:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1975:34:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33974,"nodeType":"ExpressionStatement","src":"1975:34:37"}]},"documentation":{"id":33933,"nodeType":"StructuredDocumentation","src":"1576:141:37","text":"@dev Computes reserves x given L(y, S).\n @return rx The reserve x computed as x(y, s) = L_y(y, S) * (WAD - cdf[d1(S, K, sigma, tau)])"},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeXGivenL","nameLocation":"1726:14:37","parameters":{"id":33941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33935,"mutability":"mutable","name":"L","nameLocation":"1754:1:37","nodeType":"VariableDeclaration","scope":33976,"src":"1746:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33934,"name":"uint256","nodeType":"ElementaryTypeName","src":"1746:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33937,"mutability":"mutable","name":"S","nameLocation":"1769:1:37","nodeType":"VariableDeclaration","scope":33976,"src":"1761:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33936,"name":"uint256","nodeType":"ElementaryTypeName","src":"1761:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33940,"mutability":"mutable","name":"params","nameLocation":"1809:6:37","nodeType":"VariableDeclaration","scope":33976,"src":"1776:39:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":33939,"nodeType":"UserDefinedTypeName","pathNode":{"id":33938,"name":"LogNormal.LogNormalParams","nameLocations":["1776:9:37","1786:15:37"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"1776:25:37"},"referencedDeclaration":38204,"src":"1776:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"src":"1740:77:37"},"returnParameters":{"id":33944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33943,"mutability":"mutable","name":"rx","nameLocation":"1840:2:37","nodeType":"VariableDeclaration","scope":33976,"src":"1832:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33942,"name":"uint256","nodeType":"ElementaryTypeName","src":"1832:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1831:12:37"},"scope":35399,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34040,"nodeType":"FunctionDefinition","src":"2265:462:37","nodes":[],"body":{"id":34039,"nodeType":"Block","src":"2371:356:37","nodes":[],"statements":[{"assignments":[33988,33990,33992],"declarations":[{"constant":false,"id":33988,"mutability":"mutable","name":"K","nameLocation":"2386:1:37","nodeType":"VariableDeclaration","scope":34039,"src":"2378:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33987,"name":"uint256","nodeType":"ElementaryTypeName","src":"2378:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33990,"mutability":"mutable","name":"sigma","nameLocation":"2397:5:37","nodeType":"VariableDeclaration","scope":34039,"src":"2389:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33989,"name":"uint256","nodeType":"ElementaryTypeName","src":"2389:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33992,"mutability":"mutable","name":"tau","nameLocation":"2412:3:37","nodeType":"VariableDeclaration","scope":34039,"src":"2404:11:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33991,"name":"uint256","nodeType":"ElementaryTypeName","src":"2404:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34000,"initialValue":{"components":[{"expression":{"id":33993,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33982,"src":"2428:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":33994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2435:6:37","memberName":"strike","nodeType":"MemberAccess","referencedDeclaration":38195,"src":"2428:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":33995,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33982,"src":"2443:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":33996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2450:5:37","memberName":"sigma","nodeType":"MemberAccess","referencedDeclaration":38197,"src":"2443:12:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":33997,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33982,"src":"2457:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":33998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2464:3:37","memberName":"tau","nodeType":"MemberAccess","referencedDeclaration":38199,"src":"2457:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":33999,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2427:41:37","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"2377:91:37"},{"assignments":[34002],"declarations":[{"constant":false,"id":34002,"mutability":"mutable","name":"sigmaSqrtTau","nameLocation":"2482:12:37","nodeType":"VariableDeclaration","scope":34039,"src":"2474:20:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34001,"name":"uint256","nodeType":"ElementaryTypeName","src":"2474:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34007,"initialValue":{"arguments":[{"id":34004,"name":"sigma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33990,"src":"2517:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34005,"name":"tau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33992,"src":"2524:3:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34003,"name":"computeSigmaSqrtTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39577,"src":"2497:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":34006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2497:31:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2474:54:37"},{"assignments":[34009],"declarations":[{"constant":false,"id":34009,"mutability":"mutable","name":"lnSDivK","nameLocation":"2541:7:37","nodeType":"VariableDeclaration","scope":34039,"src":"2534:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34008,"name":"int256","nodeType":"ElementaryTypeName","src":"2534:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34014,"initialValue":{"arguments":[{"id":34011,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33979,"src":"2566:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34012,"name":"K","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33988,"src":"2569:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34010,"name":"computeLnSDivK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39549,"src":"2551:14:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_int256_$","typeString":"function (uint256,uint256) pure returns (int256)"}},"id":34013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2551:20:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"2534:37:37"},{"assignments":[34016],"declarations":[{"constant":false,"id":34016,"mutability":"mutable","name":"halfSigmaPowTwoTau","nameLocation":"2585:18:37","nodeType":"VariableDeclaration","scope":34039,"src":"2577:26:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34015,"name":"uint256","nodeType":"ElementaryTypeName","src":"2577:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34021,"initialValue":{"arguments":[{"id":34018,"name":"sigma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33990,"src":"2633:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34019,"name":"tau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33992,"src":"2640:3:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34017,"name":"computeHalfSigmaTauSquared","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39613,"src":"2606:26:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":34020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2606:38:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2577:67:37"},{"expression":{"id":34037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34022,"name":"d1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33985,"src":"2651:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34023,"name":"lnSDivK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34009,"src":"2657:7:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":34026,"name":"halfSigmaPowTwoTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34016,"src":"2674:18:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34025,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2667:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":34024,"name":"int256","nodeType":"ElementaryTypeName","src":"2667:6:37","typeDescriptions":{}}},"id":34027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2667:26:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2657:36:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":34029,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2656:38:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31653138","id":34030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2697:4:37","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"2656:45:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"arguments":[{"id":34034,"name":"sigmaSqrtTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34002,"src":"2711:12:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2704:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":34032,"name":"int256","nodeType":"ElementaryTypeName","src":"2704:6:37","typeDescriptions":{}}},"id":34035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2704:20:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2656:68:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2651:73:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34038,"nodeType":"ExpressionStatement","src":"2651:73:37"}]},"documentation":{"id":33977,"nodeType":"StructuredDocumentation","src":"2014:251:37","text":"@dev Computes the d1 parameter for the Black-Scholes formula.\n @param S The price of X in Y, in WAD units.\n @param params LogNormParameters of the Log Normal distribution.\n @return d1 = (ln(S/K) + tau * sigma^2 / 2) / (sigma * sqrt(tau))"},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeD1","nameLocation":"2274:9:37","parameters":{"id":33983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33979,"mutability":"mutable","name":"S","nameLocation":"2297:1:37","nodeType":"VariableDeclaration","scope":34040,"src":"2289:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33978,"name":"uint256","nodeType":"ElementaryTypeName","src":"2289:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33982,"mutability":"mutable","name":"params","nameLocation":"2337:6:37","nodeType":"VariableDeclaration","scope":34040,"src":"2304:39:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":33981,"nodeType":"UserDefinedTypeName","pathNode":{"id":33980,"name":"LogNormal.LogNormalParams","nameLocations":["2304:9:37","2314:15:37"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"2304:25:37"},"referencedDeclaration":38204,"src":"2304:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"src":"2283:62:37"},"returnParameters":{"id":33986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33985,"mutability":"mutable","name":"d1","nameLocation":"2367:2:37","nodeType":"VariableDeclaration","scope":34040,"src":"2360:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":33984,"name":"int256","nodeType":"ElementaryTypeName","src":"2360:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2359:11:37"},"scope":35399,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34104,"nodeType":"FunctionDefinition","src":"3023:462:37","nodes":[],"body":{"id":34103,"nodeType":"Block","src":"3129:356:37","nodes":[],"statements":[{"assignments":[34052,34054,34056],"declarations":[{"constant":false,"id":34052,"mutability":"mutable","name":"K","nameLocation":"3144:1:37","nodeType":"VariableDeclaration","scope":34103,"src":"3136:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34051,"name":"uint256","nodeType":"ElementaryTypeName","src":"3136:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34054,"mutability":"mutable","name":"sigma","nameLocation":"3155:5:37","nodeType":"VariableDeclaration","scope":34103,"src":"3147:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34053,"name":"uint256","nodeType":"ElementaryTypeName","src":"3147:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34056,"mutability":"mutable","name":"tau","nameLocation":"3170:3:37","nodeType":"VariableDeclaration","scope":34103,"src":"3162:11:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34055,"name":"uint256","nodeType":"ElementaryTypeName","src":"3162:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34064,"initialValue":{"components":[{"expression":{"id":34057,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34046,"src":"3186:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":34058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3193:6:37","memberName":"strike","nodeType":"MemberAccess","referencedDeclaration":38195,"src":"3186:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":34059,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34046,"src":"3201:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":34060,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3208:5:37","memberName":"sigma","nodeType":"MemberAccess","referencedDeclaration":38197,"src":"3201:12:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":34061,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34046,"src":"3215:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":34062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3222:3:37","memberName":"tau","nodeType":"MemberAccess","referencedDeclaration":38199,"src":"3215:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34063,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3185:41:37","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"3135:91:37"},{"assignments":[34066],"declarations":[{"constant":false,"id":34066,"mutability":"mutable","name":"sigmaSqrtTau","nameLocation":"3240:12:37","nodeType":"VariableDeclaration","scope":34103,"src":"3232:20:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34065,"name":"uint256","nodeType":"ElementaryTypeName","src":"3232:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34071,"initialValue":{"arguments":[{"id":34068,"name":"sigma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34054,"src":"3275:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34069,"name":"tau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34056,"src":"3282:3:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34067,"name":"computeSigmaSqrtTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39577,"src":"3255:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":34070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3255:31:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3232:54:37"},{"assignments":[34073],"declarations":[{"constant":false,"id":34073,"mutability":"mutable","name":"lnSDivK","nameLocation":"3299:7:37","nodeType":"VariableDeclaration","scope":34103,"src":"3292:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34072,"name":"int256","nodeType":"ElementaryTypeName","src":"3292:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34078,"initialValue":{"arguments":[{"id":34075,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34043,"src":"3324:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34076,"name":"K","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34052,"src":"3327:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34074,"name":"computeLnSDivK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39549,"src":"3309:14:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_int256_$","typeString":"function (uint256,uint256) pure returns (int256)"}},"id":34077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3309:20:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"3292:37:37"},{"assignments":[34080],"declarations":[{"constant":false,"id":34080,"mutability":"mutable","name":"halfSigmaPowTwoTau","nameLocation":"3343:18:37","nodeType":"VariableDeclaration","scope":34103,"src":"3335:26:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34079,"name":"uint256","nodeType":"ElementaryTypeName","src":"3335:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34085,"initialValue":{"arguments":[{"id":34082,"name":"sigma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34054,"src":"3391:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34083,"name":"tau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34056,"src":"3398:3:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34081,"name":"computeHalfSigmaTauSquared","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39613,"src":"3364:26:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":34084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3364:38:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3335:67:37"},{"expression":{"id":34101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34086,"name":"d2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34049,"src":"3409:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34087,"name":"lnSDivK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34073,"src":"3415:7:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":34090,"name":"halfSigmaPowTwoTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34080,"src":"3432:18:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3425:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":34088,"name":"int256","nodeType":"ElementaryTypeName","src":"3425:6:37","typeDescriptions":{}}},"id":34091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3425:26:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3415:36:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":34093,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3414:38:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31653138","id":34094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3455:4:37","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"3414:45:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"arguments":[{"id":34098,"name":"sigmaSqrtTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34066,"src":"3469:12:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3462:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":34096,"name":"int256","nodeType":"ElementaryTypeName","src":"3462:6:37","typeDescriptions":{}}},"id":34099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3462:20:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3414:68:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3409:73:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34102,"nodeType":"ExpressionStatement","src":"3409:73:37"}]},"documentation":{"id":34041,"nodeType":"StructuredDocumentation","src":"2729:294:37","text":"@dev Computes the d2 parameter for the Black-Scholes formula.\n @param S The price of X in Y, in WAD units.\n @param params LogNormParameters of the Log Normal distribution.\n @return d2 = d1 - sigma * sqrt(tau), alternatively d2 = (ln(S/K) - tau * sigma^2 / 2) / (sigma * sqrt(tau))"},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeD2","nameLocation":"3032:9:37","parameters":{"id":34047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34043,"mutability":"mutable","name":"S","nameLocation":"3055:1:37","nodeType":"VariableDeclaration","scope":34104,"src":"3047:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34042,"name":"uint256","nodeType":"ElementaryTypeName","src":"3047:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34046,"mutability":"mutable","name":"params","nameLocation":"3095:6:37","nodeType":"VariableDeclaration","scope":34104,"src":"3062:39:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":34045,"nodeType":"UserDefinedTypeName","pathNode":{"id":34044,"name":"LogNormal.LogNormalParams","nameLocations":["3062:9:37","3072:15:37"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"3062:25:37"},"referencedDeclaration":38204,"src":"3062:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"src":"3041:62:37"},"returnParameters":{"id":34050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34049,"mutability":"mutable","name":"d2","nameLocation":"3125:2:37","nodeType":"VariableDeclaration","scope":34104,"src":"3118:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34048,"name":"int256","nodeType":"ElementaryTypeName","src":"3118:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3117:11:37"},"scope":35399,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34144,"nodeType":"FunctionDefinition","src":"3746:319:37","nodes":[],"body":{"id":34143,"nodeType":"Block","src":"3818:247:37","nodes":[],"statements":[{"assignments":[34115,34117,null,34120],"declarations":[{"constant":false,"id":34115,"mutability":"mutable","name":"rx","nameLocation":"3833:2:37","nodeType":"VariableDeclaration","scope":34143,"src":"3825:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34114,"name":"uint256","nodeType":"ElementaryTypeName","src":"3825:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34117,"mutability":"mutable","name":"L","nameLocation":"3845:1:37","nodeType":"VariableDeclaration","scope":34143,"src":"3837:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34116,"name":"uint256","nodeType":"ElementaryTypeName","src":"3837:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":34120,"mutability":"mutable","name":"params","nameLocation":"3882:6:37","nodeType":"VariableDeclaration","scope":34143,"src":"3849:39:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":34119,"nodeType":"UserDefinedTypeName","pathNode":{"id":34118,"name":"LogNormal.LogNormalParams","nameLocations":["3849:9:37","3859:15:37"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"3849:25:37"},"referencedDeclaration":38204,"src":"3849:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"id":34134,"initialValue":{"arguments":[{"id":34123,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34107,"src":"3911:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":34125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3918:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":34124,"name":"uint256","nodeType":"ElementaryTypeName","src":"3918:7:37","typeDescriptions":{}}},{"id":34127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3927:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":34126,"name":"uint256","nodeType":"ElementaryTypeName","src":"3927:7:37","typeDescriptions":{}}},{"id":34129,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3936:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":34128,"name":"int256","nodeType":"ElementaryTypeName","src":"3936:6:37","typeDescriptions":{}}},{"expression":{"id":34130,"name":"LogNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38879,"src":"3944:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormal_$38879_$","typeString":"type(contract LogNormal)"}},"id":34131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3954:15:37","memberName":"LogNormalParams","nodeType":"MemberAccess","referencedDeclaration":38204,"src":"3944:25:37","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}}],"id":34132,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3917:53:37","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_int256_$_$_t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$_$","typeString":"tuple(type(uint256),type(uint256),type(int256),type(struct LogNormal.LogNormalParams storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_int256_$_$_t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$_$","typeString":"tuple(type(uint256),type(uint256),type(int256),type(struct LogNormal.LogNormalParams storage pointer))"}],"expression":{"id":34121,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3900:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":34122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3904:6:37","memberName":"decode","nodeType":"MemberAccess","src":"3900:10:37","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":34133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3900:71:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_int256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"tuple(uint256,uint256,int256,struct LogNormal.LogNormalParams memory)"}},"nodeType":"VariableDeclarationStatement","src":"3824:147:37"},{"expression":{"arguments":[{"id":34137,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34115,"src":"4027:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34138,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34109,"src":"4035:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34139,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34117,"src":"4042:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34140,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34120,"src":"4053:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":34135,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"3992:12:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":34136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4005:15:37","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":39225,"src":"3992:28:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":34141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["4023:2:37","4031:2:37","4039:1:37","4045:6:37"],"names":["rx","ry","L","params"],"nodeType":"FunctionCall","src":"3992:70:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":34113,"id":34142,"nodeType":"Return","src":"3977:85:37"}]},"documentation":{"id":34105,"nodeType":"StructuredDocumentation","src":"3487:259:37","text":"@dev This is a pure anonymous function defined at the file level, which allows\n it to be passed as an argument to another function. BisectionLib.sol takes this\n function as an argument to find the root of the trading function given the reserveYWad."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"findRootY","nameLocation":"3755:9:37","parameters":{"id":34110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34107,"mutability":"mutable","name":"data","nameLocation":"3778:4:37","nodeType":"VariableDeclaration","scope":34144,"src":"3765:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":34106,"name":"bytes","nodeType":"ElementaryTypeName","src":"3765:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":34109,"mutability":"mutable","name":"ry","nameLocation":"3792:2:37","nodeType":"VariableDeclaration","scope":34144,"src":"3784:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34108,"name":"uint256","nodeType":"ElementaryTypeName","src":"3784:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3764:31:37"},"returnParameters":{"id":34113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34112,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34144,"src":"3810:6:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34111,"name":"int256","nodeType":"ElementaryTypeName","src":"3810:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3809:8:37"},"scope":35399,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34184,"nodeType":"FunctionDefinition","src":"4326:319:37","nodes":[],"body":{"id":34183,"nodeType":"Block","src":"4398:247:37","nodes":[],"statements":[{"assignments":[34155,34157,null,34160],"declarations":[{"constant":false,"id":34155,"mutability":"mutable","name":"ry","nameLocation":"4413:2:37","nodeType":"VariableDeclaration","scope":34183,"src":"4405:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34154,"name":"uint256","nodeType":"ElementaryTypeName","src":"4405:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34157,"mutability":"mutable","name":"L","nameLocation":"4425:1:37","nodeType":"VariableDeclaration","scope":34183,"src":"4417:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34156,"name":"uint256","nodeType":"ElementaryTypeName","src":"4417:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":34160,"mutability":"mutable","name":"params","nameLocation":"4462:6:37","nodeType":"VariableDeclaration","scope":34183,"src":"4429:39:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":34159,"nodeType":"UserDefinedTypeName","pathNode":{"id":34158,"name":"LogNormal.LogNormalParams","nameLocations":["4429:9:37","4439:15:37"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"4429:25:37"},"referencedDeclaration":38204,"src":"4429:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"id":34174,"initialValue":{"arguments":[{"id":34163,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34147,"src":"4491:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":34165,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4498:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":34164,"name":"uint256","nodeType":"ElementaryTypeName","src":"4498:7:37","typeDescriptions":{}}},{"id":34167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4507:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":34166,"name":"uint256","nodeType":"ElementaryTypeName","src":"4507:7:37","typeDescriptions":{}}},{"id":34169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4516:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":34168,"name":"int256","nodeType":"ElementaryTypeName","src":"4516:6:37","typeDescriptions":{}}},{"expression":{"id":34170,"name":"LogNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38879,"src":"4524:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormal_$38879_$","typeString":"type(contract LogNormal)"}},"id":34171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4534:15:37","memberName":"LogNormalParams","nodeType":"MemberAccess","referencedDeclaration":38204,"src":"4524:25:37","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}}],"id":34172,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4497:53:37","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_int256_$_$_t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$_$","typeString":"tuple(type(uint256),type(uint256),type(int256),type(struct LogNormal.LogNormalParams storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_int256_$_$_t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$_$","typeString":"tuple(type(uint256),type(uint256),type(int256),type(struct LogNormal.LogNormalParams storage pointer))"}],"expression":{"id":34161,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4480:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":34162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4484:6:37","memberName":"decode","nodeType":"MemberAccess","src":"4480:10:37","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":34173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4480:71:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_int256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"tuple(uint256,uint256,int256,struct LogNormal.LogNormalParams memory)"}},"nodeType":"VariableDeclarationStatement","src":"4404:147:37"},{"expression":{"arguments":[{"id":34177,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34149,"src":"4607:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34178,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34155,"src":"4615:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34179,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34157,"src":"4622:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34180,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34160,"src":"4633:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":34175,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"4572:12:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":34176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4585:15:37","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":39225,"src":"4572:28:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":34181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["4603:2:37","4611:2:37","4619:1:37","4625:6:37"],"names":["rx","ry","L","params"],"nodeType":"FunctionCall","src":"4572:70:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":34153,"id":34182,"nodeType":"Return","src":"4557:85:37"}]},"documentation":{"id":34145,"nodeType":"StructuredDocumentation","src":"4067:259:37","text":"@dev This is a pure anonymous function defined at the file level, which allows\n it to be passed as an argument to another function. BisectionLib.sol takes this\n function as an argument to find the root of the trading function given the reserveXWad."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"findRootX","nameLocation":"4335:9:37","parameters":{"id":34150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34147,"mutability":"mutable","name":"data","nameLocation":"4358:4:37","nodeType":"VariableDeclaration","scope":34184,"src":"4345:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":34146,"name":"bytes","nodeType":"ElementaryTypeName","src":"4345:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":34149,"mutability":"mutable","name":"rx","nameLocation":"4372:2:37","nodeType":"VariableDeclaration","scope":34184,"src":"4364:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34148,"name":"uint256","nodeType":"ElementaryTypeName","src":"4364:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4344:31:37"},"returnParameters":{"id":34153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34152,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34184,"src":"4390:6:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34151,"name":"int256","nodeType":"ElementaryTypeName","src":"4390:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4389:8:37"},"scope":35399,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34224,"nodeType":"FunctionDefinition","src":"4904:337:37","nodes":[],"body":{"id":34223,"nodeType":"Block","src":"4993:248:37","nodes":[],"statements":[{"assignments":[34195,34197,null,34200],"declarations":[{"constant":false,"id":34195,"mutability":"mutable","name":"rx","nameLocation":"5008:2:37","nodeType":"VariableDeclaration","scope":34223,"src":"5000:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34194,"name":"uint256","nodeType":"ElementaryTypeName","src":"5000:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34197,"mutability":"mutable","name":"ry","nameLocation":"5020:2:37","nodeType":"VariableDeclaration","scope":34223,"src":"5012:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34196,"name":"uint256","nodeType":"ElementaryTypeName","src":"5012:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":34200,"mutability":"mutable","name":"params","nameLocation":"5058:6:37","nodeType":"VariableDeclaration","scope":34223,"src":"5025:39:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":34199,"nodeType":"UserDefinedTypeName","pathNode":{"id":34198,"name":"LogNormal.LogNormalParams","nameLocations":["5025:9:37","5035:15:37"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"5025:25:37"},"referencedDeclaration":38204,"src":"5025:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"id":34214,"initialValue":{"arguments":[{"id":34203,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34187,"src":"5087:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":34205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5094:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":34204,"name":"uint256","nodeType":"ElementaryTypeName","src":"5094:7:37","typeDescriptions":{}}},{"id":34207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5103:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":34206,"name":"uint256","nodeType":"ElementaryTypeName","src":"5103:7:37","typeDescriptions":{}}},{"id":34209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5112:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":34208,"name":"int256","nodeType":"ElementaryTypeName","src":"5112:6:37","typeDescriptions":{}}},{"expression":{"id":34210,"name":"LogNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38879,"src":"5120:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormal_$38879_$","typeString":"type(contract LogNormal)"}},"id":34211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5130:15:37","memberName":"LogNormalParams","nodeType":"MemberAccess","referencedDeclaration":38204,"src":"5120:25:37","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}}],"id":34212,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5093:53:37","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_int256_$_$_t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$_$","typeString":"tuple(type(uint256),type(uint256),type(int256),type(struct LogNormal.LogNormalParams storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_int256_$_$_t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$_$","typeString":"tuple(type(uint256),type(uint256),type(int256),type(struct LogNormal.LogNormalParams storage pointer))"}],"expression":{"id":34201,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5076:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":34202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5080:6:37","memberName":"decode","nodeType":"MemberAccess","src":"5076:10:37","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":34213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5076:71:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_int256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"tuple(uint256,uint256,int256,struct LogNormal.LogNormalParams memory)"}},"nodeType":"VariableDeclarationStatement","src":"4999:148:37"},{"expression":{"arguments":[{"id":34217,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34195,"src":"5203:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34218,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34197,"src":"5211:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34219,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34189,"src":"5218:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34220,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34200,"src":"5229:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":34215,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"5168:12:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":34216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5181:15:37","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":39225,"src":"5168:28:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":34221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["5199:2:37","5207:2:37","5215:1:37","5221:6:37"],"names":["rx","ry","L","params"],"nodeType":"FunctionCall","src":"5168:70:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":34193,"id":34222,"nodeType":"Return","src":"5153:85:37"}]},"documentation":{"id":34185,"nodeType":"StructuredDocumentation","src":"4647:257:37","text":"@dev This is a pure anonymous function defined at the file level, which allows\n it to be passed as an argument to another function. BisectionLib.sol takes this\n function as an argument to find the root of the trading function given the liquidity."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"findRootLiquidity","nameLocation":"4913:17:37","parameters":{"id":34190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34187,"mutability":"mutable","name":"data","nameLocation":"4949:4:37","nodeType":"VariableDeclaration","scope":34224,"src":"4936:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":34186,"name":"bytes","nodeType":"ElementaryTypeName","src":"4936:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":34189,"mutability":"mutable","name":"L","nameLocation":"4967:1:37","nodeType":"VariableDeclaration","scope":34224,"src":"4959:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34188,"name":"uint256","nodeType":"ElementaryTypeName","src":"4959:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4930:40:37"},"returnParameters":{"id":34193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34192,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34224,"src":"4985:6:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34191,"name":"int256","nodeType":"ElementaryTypeName","src":"4985:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4984:8:37"},"scope":35399,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34282,"nodeType":"FunctionDefinition","src":"5320:526:37","nodes":[],"body":{"id":34281,"nodeType":"Block","src":"5474:372:37","nodes":[],"statements":[{"assignments":[34238],"declarations":[{"constant":false,"id":34238,"mutability":"mutable","name":"L","nameLocation":"5488:1:37","nodeType":"VariableDeclaration","scope":34281,"src":"5480:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34237,"name":"uint256","nodeType":"ElementaryTypeName","src":"5480:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34244,"initialValue":{"arguments":[{"id":34240,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34227,"src":"5507:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34241,"name":"initialPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34229,"src":"5516:12:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34242,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34232,"src":"5530:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"id":34239,"name":"computeLGivenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33886,"src":"5492:14:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (uint256)"}},"id":34243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5492:45:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5480:57:37"},{"assignments":[34246],"declarations":[{"constant":false,"id":34246,"mutability":"mutable","name":"ry","nameLocation":"5551:2:37","nodeType":"VariableDeclaration","scope":34281,"src":"5543:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34245,"name":"uint256","nodeType":"ElementaryTypeName","src":"5543:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34252,"initialValue":{"arguments":[{"id":34248,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34238,"src":"5571:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34249,"name":"initialPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34229,"src":"5574:12:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34250,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34232,"src":"5588:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"id":34247,"name":"computeYGivenL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33932,"src":"5556:14:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (uint256)"}},"id":34251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5556:39:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5543:52:37"},{"assignments":[34254],"declarations":[{"constant":false,"id":34254,"mutability":"mutable","name":"invariant","nameLocation":"5608:9:37","nodeType":"VariableDeclaration","scope":34281,"src":"5601:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34253,"name":"int256","nodeType":"ElementaryTypeName","src":"5601:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34262,"initialValue":{"arguments":[{"id":34257,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34227,"src":"5663:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34258,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34246,"src":"5684:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34259,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34238,"src":"5699:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34260,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34232,"src":"5718:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":34255,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"5620:12:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":34256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5633:15:37","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":39225,"src":"5620:28:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":34261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["5659:2:37","5680:2:37","5696:1:37","5710:6:37"],"names":["rx","ry","L","params"],"nodeType":"FunctionCall","src":"5620:111:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"5601:130:37"},{"expression":{"id":34271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34263,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34238,"src":"5737:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":34265,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34227,"src":"5762:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34266,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34246,"src":"5771:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34267,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34254,"src":"5775:9:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":34268,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34238,"src":"5786:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34269,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34232,"src":"5789:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"id":34264,"name":"computeNextLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34383,"src":"5741:20:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_int256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,int256,uint256,struct LogNormal.LogNormalParams memory) pure returns (uint256)"}},"id":34270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5741:55:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5737:59:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34272,"nodeType":"ExpressionStatement","src":"5737:59:37"},{"expression":{"arguments":[{"id":34275,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34227,"src":"5820:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34276,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34246,"src":"5829:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34277,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34238,"src":"5833:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34278,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34232,"src":"5836:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":34273,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5809:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":34274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5813:6:37","memberName":"encode","nodeType":"MemberAccess","src":"5809:10:37","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":34279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5809:34:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":34236,"id":34280,"nodeType":"Return","src":"5802:41:37"}]},"documentation":{"id":34225,"nodeType":"StructuredDocumentation","src":"5243:77:37","text":"@dev Computes the trading function given an amountX and an initialPrice."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeInitialPoolData","nameLocation":"5329:22:37","parameters":{"id":34233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34227,"mutability":"mutable","name":"amountX","nameLocation":"5365:7:37","nodeType":"VariableDeclaration","scope":34282,"src":"5357:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34226,"name":"uint256","nodeType":"ElementaryTypeName","src":"5357:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34229,"mutability":"mutable","name":"initialPrice","nameLocation":"5386:12:37","nodeType":"VariableDeclaration","scope":34282,"src":"5378:20:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34228,"name":"uint256","nodeType":"ElementaryTypeName","src":"5378:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34232,"mutability":"mutable","name":"params","nameLocation":"5437:6:37","nodeType":"VariableDeclaration","scope":34282,"src":"5404:39:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":34231,"nodeType":"UserDefinedTypeName","pathNode":{"id":34230,"name":"LogNormal.LogNormalParams","nameLocations":["5404:9:37","5414:15:37"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"5404:25:37"},"referencedDeclaration":38204,"src":"5404:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"src":"5351:94:37"},"returnParameters":{"id":34236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34235,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34282,"src":"5460:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":34234,"name":"bytes","nodeType":"ElementaryTypeName","src":"5460:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5459:14:37"},"scope":35399,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34383,"nodeType":"FunctionDefinition","src":"5848:1096:37","nodes":[],"body":{"id":34382,"nodeType":"Block","src":"6031:913:37","nodes":[],"statements":[{"assignments":[34299],"declarations":[{"constant":false,"id":34299,"mutability":"mutable","name":"upper","nameLocation":"6045:5:37","nodeType":"VariableDeclaration","scope":34382,"src":"6037:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34298,"name":"uint256","nodeType":"ElementaryTypeName","src":"6037:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34301,"initialValue":{"id":34300,"name":"approximatedL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34290,"src":"6053:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6037:29:37"},{"assignments":[34303],"declarations":[{"constant":false,"id":34303,"mutability":"mutable","name":"lower","nameLocation":"6080:5:37","nodeType":"VariableDeclaration","scope":34382,"src":"6072:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34302,"name":"uint256","nodeType":"ElementaryTypeName","src":"6072:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34305,"initialValue":{"id":34304,"name":"approximatedL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34290,"src":"6088:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6072:29:37"},{"assignments":[34307],"declarations":[{"constant":false,"id":34307,"mutability":"mutable","name":"computedInvariant","nameLocation":"6114:17:37","nodeType":"VariableDeclaration","scope":34382,"src":"6107:24:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34306,"name":"int256","nodeType":"ElementaryTypeName","src":"6107:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34309,"initialValue":{"id":34308,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34288,"src":"6134:9:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6107:36:37"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34310,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34307,"src":"6153:17:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":34311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6173:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6153:21:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":34360,"nodeType":"Block","src":"6472:289:37","statements":[{"body":{"id":34358,"nodeType":"Block","src":"6512:243:37","statements":[{"expression":{"id":34346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34340,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34299,"src":"6526:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31303031","id":34343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6549:4:37","typeDescriptions":{"typeIdentifier":"t_rational_1001_by_1","typeString":"int_const 1001"},"value":"1001"},{"hexValue":"31303030","id":34344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6555:4:37","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1001_by_1","typeString":"int_const 1001"},{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"expression":{"id":34341,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34299,"src":"6534:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6540:8:37","memberName":"mulDivUp","nodeType":"MemberAccess","referencedDeclaration":26567,"src":"6534:14:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":34345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6534:26:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6526:34:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34347,"nodeType":"ExpressionStatement","src":"6526:34:37"},{"expression":{"id":34356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34348,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34307,"src":"6574:17:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":34351,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34284,"src":"6645:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34352,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34286,"src":"6669:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34353,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34299,"src":"6692:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34354,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34293,"src":"6723:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":34349,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"6594:12:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":34350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6607:15:37","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":39225,"src":"6594:28:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":34355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["6641:2:37","6665:2:37","6689:1:37","6715:6:37"],"names":["rx","ry","L","params"],"nodeType":"FunctionCall","src":"6594:150:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6574:170:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34357,"nodeType":"ExpressionStatement","src":"6574:170:37"}]},"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34337,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34307,"src":"6489:17:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6509:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6489:21:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34359,"nodeType":"WhileStatement","src":"6482:273:37"}]},"id":34361,"nodeType":"IfStatement","src":"6149:612:37","trueBody":{"id":34336,"nodeType":"Block","src":"6176:290:37","statements":[{"body":{"id":34334,"nodeType":"Block","src":"6216:244:37","statements":[{"expression":{"id":34322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34316,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34303,"src":"6230:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"393939","id":34319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6255:3:37","typeDescriptions":{"typeIdentifier":"t_rational_999_by_1","typeString":"int_const 999"},"value":"999"},{"hexValue":"31303030","id":34320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6260:4:37","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_999_by_1","typeString":"int_const 999"},{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"expression":{"id":34317,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34303,"src":"6238:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6244:10:37","memberName":"mulDivDown","nodeType":"MemberAccess","referencedDeclaration":26554,"src":"6238:16:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":34321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6238:27:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6230:35:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34323,"nodeType":"ExpressionStatement","src":"6230:35:37"},{"expression":{"id":34332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34324,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34307,"src":"6279:17:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":34327,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34284,"src":"6350:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34328,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34286,"src":"6374:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34329,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34303,"src":"6397:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34330,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34293,"src":"6428:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":34325,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"6299:12:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":34326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6312:15:37","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":39225,"src":"6299:28:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":34331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["6346:2:37","6370:2:37","6394:1:37","6420:6:37"],"names":["rx","ry","L","params"],"nodeType":"FunctionCall","src":"6299:150:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6279:170:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34333,"nodeType":"ExpressionStatement","src":"6279:170:37"}]},"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34313,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34307,"src":"6193:17:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":34314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6213:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6193:21:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34335,"nodeType":"WhileStatement","src":"6186:274:37"}]}},{"expression":{"id":34380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34362,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34296,"src":"6766:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":34366,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34284,"src":"6800:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34367,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34286,"src":"6804:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34368,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34307,"src":"6808:17:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":34369,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34293,"src":"6827:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":34364,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6789:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":34365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6793:6:37","memberName":"encode","nodeType":"MemberAccess","src":"6789:10:37","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":34370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6789:45:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":34371,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34303,"src":"6844:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34372,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34299,"src":"6859:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":34375,"name":"EPSILON","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30665,"src":"6882:7:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":34374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6874:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":34373,"name":"uint256","nodeType":"ElementaryTypeName","src":"6874:7:37","typeDescriptions":{}}},"id":34376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6874:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34377,"name":"MAX_ITER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33842,"src":"6900:8:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34378,"name":"findRootLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34224,"src":"6918:17:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$","typeString":"function (bytes memory,uint256) pure returns (int256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$","typeString":"function (bytes memory,uint256) pure returns (int256)"}],"id":34363,"name":"bisection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31118,"src":"6770:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$_$returns$_t_uint256_$","typeString":"function (bytes memory,uint256,uint256,uint256,uint256,function (bytes memory,uint256) pure returns (int256)) pure returns (uint256)"}},"id":34379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6770:171:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6766:175:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34381,"nodeType":"ExpressionStatement","src":"6766:175:37"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeNextLiquidity","nameLocation":"5857:20:37","parameters":{"id":34294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34284,"mutability":"mutable","name":"rx","nameLocation":"5891:2:37","nodeType":"VariableDeclaration","scope":34383,"src":"5883:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34283,"name":"uint256","nodeType":"ElementaryTypeName","src":"5883:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34286,"mutability":"mutable","name":"ry","nameLocation":"5907:2:37","nodeType":"VariableDeclaration","scope":34383,"src":"5899:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34285,"name":"uint256","nodeType":"ElementaryTypeName","src":"5899:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34288,"mutability":"mutable","name":"invariant","nameLocation":"5922:9:37","nodeType":"VariableDeclaration","scope":34383,"src":"5915:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34287,"name":"int256","nodeType":"ElementaryTypeName","src":"5915:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":34290,"mutability":"mutable","name":"approximatedL","nameLocation":"5945:13:37","nodeType":"VariableDeclaration","scope":34383,"src":"5937:21:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34289,"name":"uint256","nodeType":"ElementaryTypeName","src":"5937:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34293,"mutability":"mutable","name":"params","nameLocation":"5997:6:37","nodeType":"VariableDeclaration","scope":34383,"src":"5964:39:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":34292,"nodeType":"UserDefinedTypeName","pathNode":{"id":34291,"name":"LogNormal.LogNormalParams","nameLocations":["5964:9:37","5974:15:37"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"5964:25:37"},"referencedDeclaration":38204,"src":"5964:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"src":"5877:128:37"},"returnParameters":{"id":34297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34296,"mutability":"mutable","name":"L","nameLocation":"6028:1:37","nodeType":"VariableDeclaration","scope":34383,"src":"6020:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34295,"name":"uint256","nodeType":"ElementaryTypeName","src":"6020:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6019:11:37"},"scope":35399,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34484,"nodeType":"FunctionDefinition","src":"6946:1082:37","nodes":[],"body":{"id":34483,"nodeType":"Block","src":"7123:905:37","nodes":[],"statements":[{"assignments":[34400],"declarations":[{"constant":false,"id":34400,"mutability":"mutable","name":"upper","nameLocation":"7137:5:37","nodeType":"VariableDeclaration","scope":34483,"src":"7129:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34399,"name":"uint256","nodeType":"ElementaryTypeName","src":"7129:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34402,"initialValue":{"id":34401,"name":"approximatedRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34391,"src":"7145:14:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7129:30:37"},{"assignments":[34404],"declarations":[{"constant":false,"id":34404,"mutability":"mutable","name":"lower","nameLocation":"7173:5:37","nodeType":"VariableDeclaration","scope":34483,"src":"7165:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34403,"name":"uint256","nodeType":"ElementaryTypeName","src":"7165:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34406,"initialValue":{"id":34405,"name":"approximatedRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34391,"src":"7181:14:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7165:30:37"},{"assignments":[34408],"declarations":[{"constant":false,"id":34408,"mutability":"mutable","name":"computedInvariant","nameLocation":"7208:17:37","nodeType":"VariableDeclaration","scope":34483,"src":"7201:24:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34407,"name":"int256","nodeType":"ElementaryTypeName","src":"7201:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34410,"initialValue":{"id":34409,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34389,"src":"7228:9:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"7201:36:37"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34411,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34408,"src":"7247:17:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":34412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7267:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7247:21:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":34461,"nodeType":"Block","src":"7564:289:37","statements":[{"body":{"id":34459,"nodeType":"Block","src":"7604:243:37","statements":[{"expression":{"id":34447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34441,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34404,"src":"7618:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"393939","id":34444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7643:3:37","typeDescriptions":{"typeIdentifier":"t_rational_999_by_1","typeString":"int_const 999"},"value":"999"},{"hexValue":"31303030","id":34445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7648:4:37","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_999_by_1","typeString":"int_const 999"},{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"expression":{"id":34442,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34404,"src":"7626:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7632:10:37","memberName":"mulDivDown","nodeType":"MemberAccess","referencedDeclaration":26554,"src":"7626:16:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":34446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7626:27:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7618:35:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34448,"nodeType":"ExpressionStatement","src":"7618:35:37"},{"expression":{"id":34457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34449,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34408,"src":"7667:17:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":34452,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34404,"src":"7738:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34453,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34385,"src":"7765:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34454,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34387,"src":"7788:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34455,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34394,"src":"7815:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":34450,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"7687:12:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":34451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7700:15:37","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":39225,"src":"7687:28:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":34456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["7734:2:37","7761:2:37","7785:1:37","7807:6:37"],"names":["rx","ry","L","params"],"nodeType":"FunctionCall","src":"7687:149:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7667:169:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34458,"nodeType":"ExpressionStatement","src":"7667:169:37"}]},"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34438,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34408,"src":"7581:17:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7601:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7581:21:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34460,"nodeType":"WhileStatement","src":"7574:273:37"}]},"id":34462,"nodeType":"IfStatement","src":"7243:610:37","trueBody":{"id":34437,"nodeType":"Block","src":"7270:288:37","statements":[{"body":{"id":34435,"nodeType":"Block","src":"7310:242:37","statements":[{"expression":{"id":34423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34417,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34400,"src":"7324:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31303031","id":34420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7347:4:37","typeDescriptions":{"typeIdentifier":"t_rational_1001_by_1","typeString":"int_const 1001"},"value":"1001"},{"hexValue":"31303030","id":34421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7353:4:37","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1001_by_1","typeString":"int_const 1001"},{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"expression":{"id":34418,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34400,"src":"7332:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7338:8:37","memberName":"mulDivUp","nodeType":"MemberAccess","referencedDeclaration":26567,"src":"7332:14:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":34422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7332:26:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7324:34:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34424,"nodeType":"ExpressionStatement","src":"7324:34:37"},{"expression":{"id":34433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34425,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34408,"src":"7372:17:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":34428,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34400,"src":"7443:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34429,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34385,"src":"7470:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34430,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34387,"src":"7493:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34431,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34394,"src":"7520:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":34426,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"7392:12:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":34427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7405:15:37","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":39225,"src":"7392:28:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":34432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["7439:2:37","7466:2:37","7490:1:37","7512:6:37"],"names":["rx","ry","L","params"],"nodeType":"FunctionCall","src":"7392:149:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7372:169:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34434,"nodeType":"ExpressionStatement","src":"7372:169:37"}]},"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34414,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34408,"src":"7287:17:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":34415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7307:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7287:21:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34436,"nodeType":"WhileStatement","src":"7280:272:37"}]}},{"expression":{"id":34481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34463,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34397,"src":"7858:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":34467,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34385,"src":"7893:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34468,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34387,"src":"7897:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34469,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34408,"src":"7900:17:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":34470,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34394,"src":"7919:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":34465,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7882:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":34466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7886:6:37","memberName":"encode","nodeType":"MemberAccess","src":"7882:10:37","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":34471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7882:44:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":34472,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34404,"src":"7936:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34473,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34400,"src":"7951:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":34476,"name":"EPSILON","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30665,"src":"7974:7:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":34475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7966:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":34474,"name":"uint256","nodeType":"ElementaryTypeName","src":"7966:7:37","typeDescriptions":{}}},"id":34477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7966:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34478,"name":"MAX_ITER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33842,"src":"7992:8:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34479,"name":"findRootX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34184,"src":"8010:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$","typeString":"function (bytes memory,uint256) pure returns (int256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$","typeString":"function (bytes memory,uint256) pure returns (int256)"}],"id":34464,"name":"bisection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31118,"src":"7863:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$_$returns$_t_uint256_$","typeString":"function (bytes memory,uint256,uint256,uint256,uint256,function (bytes memory,uint256) pure returns (int256)) pure returns (uint256)"}},"id":34480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7863:162:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7858:167:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34482,"nodeType":"ExpressionStatement","src":"7858:167:37"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeNextRx","nameLocation":"6955:13:37","parameters":{"id":34395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34385,"mutability":"mutable","name":"ry","nameLocation":"6982:2:37","nodeType":"VariableDeclaration","scope":34484,"src":"6974:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34384,"name":"uint256","nodeType":"ElementaryTypeName","src":"6974:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34387,"mutability":"mutable","name":"L","nameLocation":"6998:1:37","nodeType":"VariableDeclaration","scope":34484,"src":"6990:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34386,"name":"uint256","nodeType":"ElementaryTypeName","src":"6990:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34389,"mutability":"mutable","name":"invariant","nameLocation":"7012:9:37","nodeType":"VariableDeclaration","scope":34484,"src":"7005:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34388,"name":"int256","nodeType":"ElementaryTypeName","src":"7005:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":34391,"mutability":"mutable","name":"approximatedRx","nameLocation":"7035:14:37","nodeType":"VariableDeclaration","scope":34484,"src":"7027:22:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34390,"name":"uint256","nodeType":"ElementaryTypeName","src":"7027:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34394,"mutability":"mutable","name":"params","nameLocation":"7088:6:37","nodeType":"VariableDeclaration","scope":34484,"src":"7055:39:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":34393,"nodeType":"UserDefinedTypeName","pathNode":{"id":34392,"name":"LogNormal.LogNormalParams","nameLocations":["7055:9:37","7065:15:37"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"7055:25:37"},"referencedDeclaration":38204,"src":"7055:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"src":"6968:128:37"},"returnParameters":{"id":34398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34397,"mutability":"mutable","name":"rx","nameLocation":"7119:2:37","nodeType":"VariableDeclaration","scope":34484,"src":"7111:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34396,"name":"uint256","nodeType":"ElementaryTypeName","src":"7111:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7110:12:37"},"scope":35399,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34585,"nodeType":"FunctionDefinition","src":"8030:1082:37","nodes":[],"body":{"id":34584,"nodeType":"Block","src":"8207:905:37","nodes":[],"statements":[{"assignments":[34501],"declarations":[{"constant":false,"id":34501,"mutability":"mutable","name":"upper","nameLocation":"8221:5:37","nodeType":"VariableDeclaration","scope":34584,"src":"8213:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34500,"name":"uint256","nodeType":"ElementaryTypeName","src":"8213:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34503,"initialValue":{"id":34502,"name":"approximatedRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34492,"src":"8229:14:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8213:30:37"},{"assignments":[34505],"declarations":[{"constant":false,"id":34505,"mutability":"mutable","name":"lower","nameLocation":"8257:5:37","nodeType":"VariableDeclaration","scope":34584,"src":"8249:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34504,"name":"uint256","nodeType":"ElementaryTypeName","src":"8249:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34507,"initialValue":{"id":34506,"name":"approximatedRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34492,"src":"8265:14:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8249:30:37"},{"assignments":[34509],"declarations":[{"constant":false,"id":34509,"mutability":"mutable","name":"computedInvariant","nameLocation":"8292:17:37","nodeType":"VariableDeclaration","scope":34584,"src":"8285:24:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34508,"name":"int256","nodeType":"ElementaryTypeName","src":"8285:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34511,"initialValue":{"id":34510,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34490,"src":"8312:9:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"8285:36:37"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34512,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34509,"src":"8331:17:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":34513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8351:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8331:21:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":34562,"nodeType":"Block","src":"8648:289:37","statements":[{"body":{"id":34560,"nodeType":"Block","src":"8688:243:37","statements":[{"expression":{"id":34548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34542,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"8702:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"393939","id":34545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8727:3:37","typeDescriptions":{"typeIdentifier":"t_rational_999_by_1","typeString":"int_const 999"},"value":"999"},{"hexValue":"31303030","id":34546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8732:4:37","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_999_by_1","typeString":"int_const 999"},{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"expression":{"id":34543,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"8710:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8716:10:37","memberName":"mulDivDown","nodeType":"MemberAccess","referencedDeclaration":26554,"src":"8710:16:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":34547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8710:27:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8702:35:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34549,"nodeType":"ExpressionStatement","src":"8702:35:37"},{"expression":{"id":34558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34550,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34509,"src":"8751:17:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":34553,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34486,"src":"8822:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34554,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"8846:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34555,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34488,"src":"8872:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34556,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34495,"src":"8899:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":34551,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"8771:12:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":34552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8784:15:37","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":39225,"src":"8771:28:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":34557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["8818:2:37","8842:2:37","8869:1:37","8891:6:37"],"names":["rx","ry","L","params"],"nodeType":"FunctionCall","src":"8771:149:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8751:169:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34559,"nodeType":"ExpressionStatement","src":"8751:169:37"}]},"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34539,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34509,"src":"8665:17:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8685:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8665:21:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34561,"nodeType":"WhileStatement","src":"8658:273:37"}]},"id":34563,"nodeType":"IfStatement","src":"8327:610:37","trueBody":{"id":34538,"nodeType":"Block","src":"8354:288:37","statements":[{"body":{"id":34536,"nodeType":"Block","src":"8394:242:37","statements":[{"expression":{"id":34524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34518,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34501,"src":"8408:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31303031","id":34521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8431:4:37","typeDescriptions":{"typeIdentifier":"t_rational_1001_by_1","typeString":"int_const 1001"},"value":"1001"},{"hexValue":"31303030","id":34522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8437:4:37","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1001_by_1","typeString":"int_const 1001"},{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"expression":{"id":34519,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34501,"src":"8416:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8422:8:37","memberName":"mulDivUp","nodeType":"MemberAccess","referencedDeclaration":26567,"src":"8416:14:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":34523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8416:26:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8408:34:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34525,"nodeType":"ExpressionStatement","src":"8408:34:37"},{"expression":{"id":34534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34526,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34509,"src":"8456:17:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":34529,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34486,"src":"8527:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34530,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34501,"src":"8551:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34531,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34488,"src":"8577:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34532,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34495,"src":"8604:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":34527,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"8476:12:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":34528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8489:15:37","memberName":"tradingFunction","nodeType":"MemberAccess","referencedDeclaration":39225,"src":"8476:28:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":34533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["8523:2:37","8547:2:37","8574:1:37","8596:6:37"],"names":["rx","ry","L","params"],"nodeType":"FunctionCall","src":"8476:149:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8456:169:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34535,"nodeType":"ExpressionStatement","src":"8456:169:37"}]},"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34515,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34509,"src":"8371:17:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":34516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8391:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8371:21:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34537,"nodeType":"WhileStatement","src":"8364:272:37"}]}},{"expression":{"id":34582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34564,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34498,"src":"8942:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":34568,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34486,"src":"8977:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34569,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34488,"src":"8981:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34570,"name":"computedInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34509,"src":"8984:17:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":34571,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34495,"src":"9003:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":34566,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8966:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":34567,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8970:6:37","memberName":"encode","nodeType":"MemberAccess","src":"8966:10:37","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":34572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8966:44:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":34573,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"9020:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34574,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34501,"src":"9035:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":34577,"name":"EPSILON","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30665,"src":"9058:7:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":34576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9050:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":34575,"name":"uint256","nodeType":"ElementaryTypeName","src":"9050:7:37","typeDescriptions":{}}},"id":34578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9050:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34579,"name":"MAX_ITER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33842,"src":"9076:8:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34580,"name":"findRootY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34144,"src":"9094:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$","typeString":"function (bytes memory,uint256) pure returns (int256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$","typeString":"function (bytes memory,uint256) pure returns (int256)"}],"id":34565,"name":"bisection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31118,"src":"8947:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$_$returns$_t_uint256_$","typeString":"function (bytes memory,uint256,uint256,uint256,uint256,function (bytes memory,uint256) pure returns (int256)) pure returns (uint256)"}},"id":34581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8947:162:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8942:167:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34583,"nodeType":"ExpressionStatement","src":"8942:167:37"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeNextRy","nameLocation":"8039:13:37","parameters":{"id":34496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34486,"mutability":"mutable","name":"rx","nameLocation":"8066:2:37","nodeType":"VariableDeclaration","scope":34585,"src":"8058:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34485,"name":"uint256","nodeType":"ElementaryTypeName","src":"8058:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34488,"mutability":"mutable","name":"L","nameLocation":"8082:1:37","nodeType":"VariableDeclaration","scope":34585,"src":"8074:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34487,"name":"uint256","nodeType":"ElementaryTypeName","src":"8074:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34490,"mutability":"mutable","name":"invariant","nameLocation":"8096:9:37","nodeType":"VariableDeclaration","scope":34585,"src":"8089:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34489,"name":"int256","nodeType":"ElementaryTypeName","src":"8089:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":34492,"mutability":"mutable","name":"approximatedRy","nameLocation":"8119:14:37","nodeType":"VariableDeclaration","scope":34585,"src":"8111:22:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34491,"name":"uint256","nodeType":"ElementaryTypeName","src":"8111:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34495,"mutability":"mutable","name":"params","nameLocation":"8172:6:37","nodeType":"VariableDeclaration","scope":34585,"src":"8139:39:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":34494,"nodeType":"UserDefinedTypeName","pathNode":{"id":34493,"name":"LogNormal.LogNormalParams","nameLocations":["8139:9:37","8149:15:37"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"8139:25:37"},"referencedDeclaration":38204,"src":"8139:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"src":"8052:128:37"},"returnParameters":{"id":34499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34498,"mutability":"mutable","name":"ry","nameLocation":"8203:2:37","nodeType":"VariableDeclaration","scope":34585,"src":"8195:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34497,"name":"uint256","nodeType":"ElementaryTypeName","src":"8195:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8194:12:37"},"scope":35399,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34631,"nodeType":"FunctionDefinition","src":"9114:391:37","nodes":[],"body":{"id":34630,"nodeType":"Block","src":"9189:316:37","nodes":[],"statements":[{"assignments":[34595,34597,34599,34601,34604],"declarations":[{"constant":false,"id":34595,"mutability":"mutable","name":"S","nameLocation":"9213:1:37","nodeType":"VariableDeclaration","scope":34630,"src":"9205:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34594,"name":"uint256","nodeType":"ElementaryTypeName","src":"9205:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34597,"mutability":"mutable","name":"rX","nameLocation":"9232:2:37","nodeType":"VariableDeclaration","scope":34630,"src":"9224:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34596,"name":"uint256","nodeType":"ElementaryTypeName","src":"9224:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34599,"mutability":"mutable","name":"rY","nameLocation":"9252:2:37","nodeType":"VariableDeclaration","scope":34630,"src":"9244:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34598,"name":"uint256","nodeType":"ElementaryTypeName","src":"9244:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34601,"mutability":"mutable","name":"L","nameLocation":"9272:1:37","nodeType":"VariableDeclaration","scope":34630,"src":"9264:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34600,"name":"uint256","nodeType":"ElementaryTypeName","src":"9264:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34604,"mutability":"mutable","name":"params","nameLocation":"9316:6:37","nodeType":"VariableDeclaration","scope":34630,"src":"9283:39:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":34603,"nodeType":"UserDefinedTypeName","pathNode":{"id":34602,"name":"LogNormal.LogNormalParams","nameLocations":["9283:9:37","9293:15:37"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"9283:25:37"},"referencedDeclaration":38204,"src":"9283:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"id":34620,"initialValue":{"arguments":[{"id":34607,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34587,"src":"9351:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":34609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9358:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":34608,"name":"uint256","nodeType":"ElementaryTypeName","src":"9358:7:37","typeDescriptions":{}}},{"id":34611,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9367:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":34610,"name":"uint256","nodeType":"ElementaryTypeName","src":"9367:7:37","typeDescriptions":{}}},{"id":34613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9376:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":34612,"name":"uint256","nodeType":"ElementaryTypeName","src":"9376:7:37","typeDescriptions":{}}},{"id":34615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9385:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":34614,"name":"uint256","nodeType":"ElementaryTypeName","src":"9385:7:37","typeDescriptions":{}}},{"expression":{"id":34616,"name":"LogNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38879,"src":"9394:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormal_$38879_$","typeString":"type(contract LogNormal)"}},"id":34617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9404:15:37","memberName":"LogNormalParams","nodeType":"MemberAccess","referencedDeclaration":38204,"src":"9394:25:37","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}}],"id":34618,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9357:63:37","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256),type(uint256),type(struct LogNormal.LogNormalParams storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256),type(uint256),type(struct LogNormal.LogNormalParams storage pointer))"}],"expression":{"id":34605,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9331:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":34606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9335:6:37","memberName":"decode","nodeType":"MemberAccess","src":"9331:10:37","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":34619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9331:95:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"tuple(uint256,uint256,uint256,uint256,struct LogNormal.LogNormalParams memory)"}},"nodeType":"VariableDeclarationStatement","src":"9195:231:37"},{"expression":{"arguments":[{"id":34622,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34595,"src":"9454:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34623,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34597,"src":"9461:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34624,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34599,"src":"9469:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34625,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34601,"src":"9476:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34626,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34589,"src":"9482:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34627,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34604,"src":"9493:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"id":34621,"name":"diffLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34961,"src":"9439:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":34628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9451:1:37","9457:2:37","9465:2:37","9473:1:37","9479:1:37","9485:6:37"],"names":["S","rX","rY","L","v","params"],"nodeType":"FunctionCall","src":"9439:63:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":34593,"id":34629,"nodeType":"Return","src":"9432:70:37"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"findRootLower","nameLocation":"9123:13:37","parameters":{"id":34590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34587,"mutability":"mutable","name":"data","nameLocation":"9150:4:37","nodeType":"VariableDeclaration","scope":34631,"src":"9137:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":34586,"name":"bytes","nodeType":"ElementaryTypeName","src":"9137:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":34589,"mutability":"mutable","name":"v","nameLocation":"9164:1:37","nodeType":"VariableDeclaration","scope":34631,"src":"9156:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34588,"name":"uint256","nodeType":"ElementaryTypeName","src":"9156:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9136:30:37"},"returnParameters":{"id":34593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34592,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34631,"src":"9181:6:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34591,"name":"int256","nodeType":"ElementaryTypeName","src":"9181:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9180:8:37"},"scope":35399,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34677,"nodeType":"FunctionDefinition","src":"9507:391:37","nodes":[],"body":{"id":34676,"nodeType":"Block","src":"9582:316:37","nodes":[],"statements":[{"assignments":[34641,34643,34645,34647,34650],"declarations":[{"constant":false,"id":34641,"mutability":"mutable","name":"S","nameLocation":"9606:1:37","nodeType":"VariableDeclaration","scope":34676,"src":"9598:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34640,"name":"uint256","nodeType":"ElementaryTypeName","src":"9598:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34643,"mutability":"mutable","name":"rX","nameLocation":"9625:2:37","nodeType":"VariableDeclaration","scope":34676,"src":"9617:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34642,"name":"uint256","nodeType":"ElementaryTypeName","src":"9617:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34645,"mutability":"mutable","name":"rY","nameLocation":"9645:2:37","nodeType":"VariableDeclaration","scope":34676,"src":"9637:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34644,"name":"uint256","nodeType":"ElementaryTypeName","src":"9637:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34647,"mutability":"mutable","name":"L","nameLocation":"9665:1:37","nodeType":"VariableDeclaration","scope":34676,"src":"9657:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34646,"name":"uint256","nodeType":"ElementaryTypeName","src":"9657:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34650,"mutability":"mutable","name":"params","nameLocation":"9709:6:37","nodeType":"VariableDeclaration","scope":34676,"src":"9676:39:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":34649,"nodeType":"UserDefinedTypeName","pathNode":{"id":34648,"name":"LogNormal.LogNormalParams","nameLocations":["9676:9:37","9686:15:37"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"9676:25:37"},"referencedDeclaration":38204,"src":"9676:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"id":34666,"initialValue":{"arguments":[{"id":34653,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34633,"src":"9744:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":34655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9751:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":34654,"name":"uint256","nodeType":"ElementaryTypeName","src":"9751:7:37","typeDescriptions":{}}},{"id":34657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9760:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":34656,"name":"uint256","nodeType":"ElementaryTypeName","src":"9760:7:37","typeDescriptions":{}}},{"id":34659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9769:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":34658,"name":"uint256","nodeType":"ElementaryTypeName","src":"9769:7:37","typeDescriptions":{}}},{"id":34661,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9778:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":34660,"name":"uint256","nodeType":"ElementaryTypeName","src":"9778:7:37","typeDescriptions":{}}},{"expression":{"id":34662,"name":"LogNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38879,"src":"9787:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormal_$38879_$","typeString":"type(contract LogNormal)"}},"id":34663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9797:15:37","memberName":"LogNormalParams","nodeType":"MemberAccess","referencedDeclaration":38204,"src":"9787:25:37","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}}],"id":34664,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9750:63:37","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256),type(uint256),type(struct LogNormal.LogNormalParams storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$_t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$_$","typeString":"tuple(type(uint256),type(uint256),type(uint256),type(uint256),type(struct LogNormal.LogNormalParams storage pointer))"}],"expression":{"id":34651,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9724:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":34652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9728:6:37","memberName":"decode","nodeType":"MemberAccess","src":"9724:10:37","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":34665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9724:95:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"tuple(uint256,uint256,uint256,uint256,struct LogNormal.LogNormalParams memory)"}},"nodeType":"VariableDeclarationStatement","src":"9588:231:37"},{"expression":{"arguments":[{"id":34668,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34641,"src":"9847:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34669,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34643,"src":"9854:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34670,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34645,"src":"9862:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34671,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34647,"src":"9869:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34672,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34635,"src":"9875:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34673,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34650,"src":"9886:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"id":34667,"name":"diffRaise","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35266,"src":"9832:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":34674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9844:1:37","9850:2:37","9858:2:37","9866:1:37","9872:1:37","9878:6:37"],"names":["S","rX","rY","L","v","params"],"nodeType":"FunctionCall","src":"9832:63:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":34639,"id":34675,"nodeType":"Return","src":"9825:70:37"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"findRootRaise","nameLocation":"9516:13:37","parameters":{"id":34636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34633,"mutability":"mutable","name":"data","nameLocation":"9543:4:37","nodeType":"VariableDeclaration","scope":34677,"src":"9530:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":34632,"name":"bytes","nodeType":"ElementaryTypeName","src":"9530:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":34635,"mutability":"mutable","name":"v","nameLocation":"9557:1:37","nodeType":"VariableDeclaration","scope":34677,"src":"9549:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34634,"name":"uint256","nodeType":"ElementaryTypeName","src":"9549:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9529:30:37"},"returnParameters":{"id":34639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34638,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34677,"src":"9574:6:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34637,"name":"int256","nodeType":"ElementaryTypeName","src":"9574:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9573:8:37"},"scope":35399,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34961,"nodeType":"FunctionDefinition","src":"9900:1707:37","nodes":[],"body":{"id":34960,"nodeType":"Block","src":"10065:1542:37","nodes":[],"statements":[{"assignments":[34696,34698,34700,34702],"declarations":[{"constant":false,"id":34696,"mutability":"mutable","name":"strike","nameLocation":"10079:6:37","nodeType":"VariableDeclaration","scope":34960,"src":"10072:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34695,"name":"int256","nodeType":"ElementaryTypeName","src":"10072:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":34698,"mutability":"mutable","name":"sigma","nameLocation":"10094:5:37","nodeType":"VariableDeclaration","scope":34960,"src":"10087:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34697,"name":"int256","nodeType":"ElementaryTypeName","src":"10087:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":34700,"mutability":"mutable","name":"tau","nameLocation":"10108:3:37","nodeType":"VariableDeclaration","scope":34960,"src":"10101:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34699,"name":"int256","nodeType":"ElementaryTypeName","src":"10101:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":34702,"mutability":"mutable","name":"swapFee","nameLocation":"10120:7:37","nodeType":"VariableDeclaration","scope":34960,"src":"10113:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34701,"name":"int256","nodeType":"ElementaryTypeName","src":"10113:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34724,"initialValue":{"components":[{"arguments":[{"expression":{"id":34705,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34690,"src":"10148:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":34706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10155:6:37","memberName":"strike","nodeType":"MemberAccess","referencedDeclaration":38195,"src":"10148:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10141:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":34703,"name":"int256","nodeType":"ElementaryTypeName","src":"10141:6:37","typeDescriptions":{}}},"id":34707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10141:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"arguments":[{"expression":{"id":34710,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34690,"src":"10179:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":34711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10186:5:37","memberName":"sigma","nodeType":"MemberAccess","referencedDeclaration":38197,"src":"10179:12:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10172:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":34708,"name":"int256","nodeType":"ElementaryTypeName","src":"10172:6:37","typeDescriptions":{}}},"id":34712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10172:20:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"arguments":[{"expression":{"id":34715,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34690,"src":"10209:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":34716,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10216:3:37","memberName":"tau","nodeType":"MemberAccess","referencedDeclaration":38199,"src":"10209:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10202:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":34713,"name":"int256","nodeType":"ElementaryTypeName","src":"10202:6:37","typeDescriptions":{}}},"id":34717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10202:18:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"arguments":[{"expression":{"id":34720,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34690,"src":"10237:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":34721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10244:7:37","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":38201,"src":"10237:14:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10230:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":34718,"name":"int256","nodeType":"ElementaryTypeName","src":"10230:6:37","typeDescriptions":{}}},"id":34722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10230:22:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":34723,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10131:127:37","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_int256_$_t_int256_$_t_int256_$","typeString":"tuple(int256,int256,int256,int256)"}},"nodeType":"VariableDeclarationStatement","src":"10071:187:37"},{"assignments":[34726],"declarations":[{"constant":false,"id":34726,"mutability":"mutable","name":"sqrtTwo","nameLocation":"10271:7:37","nodeType":"VariableDeclaration","scope":34960,"src":"10264:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34725,"name":"int256","nodeType":"ElementaryTypeName","src":"10264:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34736,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":34731,"name":"TWO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30633,"src":"10311:3:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":34729,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"10288:17:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":34730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10306:4:37","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":26589,"src":"10288:22:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":34732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10288:27:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"316539","id":34733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10318:3:37","typeDescriptions":{"typeIdentifier":"t_rational_1000000000_by_1","typeString":"int_const 1000000000"},"value":"1e9"},"src":"10288:33:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10281:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":34727,"name":"int256","nodeType":"ElementaryTypeName","src":"10281:6:37","typeDescriptions":{}}},"id":34735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10281:41:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"10264:58:37"},{"assignments":[34738],"declarations":[{"constant":false,"id":34738,"mutability":"mutable","name":"sqrtTau","nameLocation":"10335:7:37","nodeType":"VariableDeclaration","scope":34960,"src":"10328:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34737,"name":"int256","nodeType":"ElementaryTypeName","src":"10328:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34749,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":34743,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34690,"src":"10375:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":34744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10382:3:37","memberName":"tau","nodeType":"MemberAccess","referencedDeclaration":38199,"src":"10375:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":34741,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"10352:17:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":34742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10370:4:37","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":26589,"src":"10352:22:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":34745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10352:34:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"316539","id":34746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10389:3:37","typeDescriptions":{"typeIdentifier":"t_rational_1000000000_by_1","typeString":"int_const 1000000000"},"value":"1e9"},"src":"10352:40:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34740,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10345:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":34739,"name":"int256","nodeType":"ElementaryTypeName","src":"10345:6:37","typeDescriptions":{}}},"id":34748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10345:48:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"10328:65:37"},{"assignments":[34751],"declarations":[{"constant":false,"id":34751,"mutability":"mutable","name":"iS","nameLocation":"10406:2:37","nodeType":"VariableDeclaration","scope":34960,"src":"10399:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34750,"name":"int256","nodeType":"ElementaryTypeName","src":"10399:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34756,"initialValue":{"arguments":[{"id":34754,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34679,"src":"10418:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10411:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":34752,"name":"int256","nodeType":"ElementaryTypeName","src":"10411:6:37","typeDescriptions":{}}},"id":34755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10411:9:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"10399:21:37"},{"assignments":[34758],"declarations":[{"constant":false,"id":34758,"mutability":"mutable","name":"iX","nameLocation":"10433:2:37","nodeType":"VariableDeclaration","scope":34960,"src":"10426:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34757,"name":"int256","nodeType":"ElementaryTypeName","src":"10426:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34763,"initialValue":{"arguments":[{"id":34761,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34681,"src":"10445:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10438:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":34759,"name":"int256","nodeType":"ElementaryTypeName","src":"10438:6:37","typeDescriptions":{}}},"id":34762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10438:10:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"10426:22:37"},{"assignments":[34765],"declarations":[{"constant":false,"id":34765,"mutability":"mutable","name":"iL","nameLocation":"10461:2:37","nodeType":"VariableDeclaration","scope":34960,"src":"10454:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34764,"name":"int256","nodeType":"ElementaryTypeName","src":"10454:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34770,"initialValue":{"arguments":[{"id":34768,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34685,"src":"10473:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10466:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":34766,"name":"int256","nodeType":"ElementaryTypeName","src":"10466:6:37","typeDescriptions":{}}},"id":34769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10466:9:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"10454:21:37"},{"assignments":[34772],"declarations":[{"constant":false,"id":34772,"mutability":"mutable","name":"iV","nameLocation":"10488:2:37","nodeType":"VariableDeclaration","scope":34960,"src":"10481:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34771,"name":"int256","nodeType":"ElementaryTypeName","src":"10481:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34777,"initialValue":{"arguments":[{"id":34775,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34687,"src":"10500:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10493:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":34773,"name":"int256","nodeType":"ElementaryTypeName","src":"10493:6:37","typeDescriptions":{}}},"id":34776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10493:9:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"10481:21:37"},{"assignments":[34779],"declarations":[{"constant":false,"id":34779,"mutability":"mutable","name":"gamma","nameLocation":"10515:5:37","nodeType":"VariableDeclaration","scope":34960,"src":"10508:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34778,"name":"int256","nodeType":"ElementaryTypeName","src":"10508:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34783,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34780,"name":"I_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30655,"src":"10523:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":34781,"name":"swapFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34702,"src":"10531:7:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"10523:15:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"10508:30:37"},{"assignments":[34785],"declarations":[{"constant":false,"id":34785,"mutability":"mutable","name":"ierfcNum","nameLocation":"10552:8:37","nodeType":"VariableDeclaration","scope":34960,"src":"10545:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34784,"name":"int256","nodeType":"ElementaryTypeName","src":"10545:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34795,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34791,"name":"iV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34772,"src":"10587:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":34792,"name":"iX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34758,"src":"10592:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"10587:7:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":34788,"name":"iX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34758,"src":"10576:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":34786,"name":"I_TWO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30661,"src":"10563:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10569:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"10563:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10563:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10580:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"10563:23:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10563:32:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"10545:50:37"},{"assignments":[34797],"declarations":[{"constant":false,"id":34797,"mutability":"mutable","name":"ierfcDen","nameLocation":"10608:8:37","nodeType":"VariableDeclaration","scope":34960,"src":"10601:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34796,"name":"int256","nodeType":"ElementaryTypeName","src":"10601:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34809,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34800,"name":"iV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34772,"src":"10629:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":34801,"name":"iX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34758,"src":"10634:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"10629:7:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":34805,"name":"gamma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34779,"src":"10649:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":34803,"name":"iV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34772,"src":"10639:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10642:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"10639:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10639:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"10629:26:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":34798,"name":"iL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34765,"src":"10619:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10622:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"10619:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10619:37:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"10601:55:37"},{"assignments":[34811],"declarations":[{"constant":false,"id":34811,"mutability":"mutable","name":"ierfcRes","nameLocation":"10669:8:37","nodeType":"VariableDeclaration","scope":34960,"src":"10662:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34810,"name":"int256","nodeType":"ElementaryTypeName","src":"10662:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34819,"initialValue":{"arguments":[{"arguments":[{"id":34816,"name":"ierfcDen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34797,"src":"10711:8:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":34814,"name":"ierfcNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34785,"src":"10695:8:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10704:6:37","memberName":"wadDiv","nodeType":"MemberAccess","referencedDeclaration":30175,"src":"10695:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10695:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":34812,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"10680:8:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":34813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10689:5:37","memberName":"ierfc","nodeType":"MemberAccess","referencedDeclaration":27242,"src":"10680:14:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":34818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10680:41:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"10662:59:37"},{"assignments":[34821],"declarations":[{"constant":false,"id":34821,"mutability":"mutable","name":"firstFrac","nameLocation":"10735:9:37","nodeType":"VariableDeclaration","scope":34960,"src":"10728:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34820,"name":"int256","nodeType":"ElementaryTypeName","src":"10728:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34822,"nodeType":"VariableDeclarationStatement","src":"10728:16:37"},{"id":34895,"nodeType":"Block","src":"10750:457:37","statements":[{"assignments":[34824],"declarations":[{"constant":false,"id":34824,"mutability":"mutable","name":"firstExp","nameLocation":"10767:8:37","nodeType":"VariableDeclaration","scope":34895,"src":"10760:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34823,"name":"int256","nodeType":"ElementaryTypeName","src":"10760:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34837,"initialValue":{"id":34836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"10778:48:37","subExpression":{"components":[{"arguments":[{"id":34833,"name":"I_TWO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30661,"src":"10819:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":34830,"name":"tau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34700,"src":"10807:3:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":34827,"name":"I_TWO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30661,"src":"10793:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":34825,"name":"sigma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34698,"src":"10780:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10786:6:37","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"10780:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10780:19:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10800:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"10780:26:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10780:31:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10812:6:37","memberName":"wadDiv","nodeType":"MemberAccess","referencedDeclaration":30175,"src":"10780:38:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10780:45:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":34835,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10779:47:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"10760:66:37"},{"assignments":[34839],"declarations":[{"constant":false,"id":34839,"mutability":"mutable","name":"secondExp","nameLocation":"10843:9:37","nodeType":"VariableDeclaration","scope":34895,"src":"10836:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34838,"name":"int256","nodeType":"ElementaryTypeName","src":"10836:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34850,"initialValue":{"arguments":[{"id":34848,"name":"ierfcRes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34811,"src":"10912:8:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":34845,"name":"sqrtTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34738,"src":"10896:7:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":34842,"name":"sigma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34698,"src":"10882:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":34840,"name":"sqrtTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34726,"src":"10867:7:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10875:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"10867:14:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10867:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10889:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"10867:28:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10867:37:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10905:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"10867:44:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10867:54:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"10836:85:37"},{"assignments":[34852],"declarations":[{"constant":false,"id":34852,"mutability":"mutable","name":"first","nameLocation":"10939:5:37","nodeType":"VariableDeclaration","scope":34895,"src":"10932:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34851,"name":"int256","nodeType":"ElementaryTypeName","src":"10932:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34859,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34855,"name":"firstExp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34824,"src":"10972:8:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":34856,"name":"secondExp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34839,"src":"10983:9:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"10972:20:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":34853,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"10947:17:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":34854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10965:6:37","memberName":"expWad","nodeType":"MemberAccess","referencedDeclaration":26316,"src":"10947:24:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":34858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10947:46:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"10932:61:37"},{"assignments":[34861],"declarations":[{"constant":false,"id":34861,"mutability":"mutable","name":"second","nameLocation":"11010:6:37","nodeType":"VariableDeclaration","scope":34895,"src":"11003:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34860,"name":"int256","nodeType":"ElementaryTypeName","src":"11003:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34869,"initialValue":{"arguments":[{"id":34867,"name":"gamma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34779,"src":"11044:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":34864,"name":"iX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34758,"src":"11033:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":34862,"name":"strike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34696,"src":"11019:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11026:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"11019:13:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11019:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11037:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"11019:24:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11019:31:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"11003:47:37"},{"assignments":[34871],"declarations":[{"constant":false,"id":34871,"mutability":"mutable","name":"firstNum","nameLocation":"11068:8:37","nodeType":"VariableDeclaration","scope":34895,"src":"11061:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34870,"name":"int256","nodeType":"ElementaryTypeName","src":"11061:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34876,"initialValue":{"arguments":[{"id":34874,"name":"second","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34861,"src":"11092:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":34872,"name":"first","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34852,"src":"11079:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11085:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"11079:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11079:20:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"11061:38:37"},{"assignments":[34878],"declarations":[{"constant":false,"id":34878,"mutability":"mutable","name":"firstDen","nameLocation":"11116:8:37","nodeType":"VariableDeclaration","scope":34895,"src":"11109:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34877,"name":"int256","nodeType":"ElementaryTypeName","src":"11109:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34887,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34879,"name":"iV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34772,"src":"11127:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":34880,"name":"iX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34758,"src":"11132:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11127:7:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":34884,"name":"gamma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34779,"src":"11147:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":34882,"name":"iV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34772,"src":"11137:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11140:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"11137:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11137:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11127:26:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"11109:44:37"},{"expression":{"id":34893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34888,"name":"firstFrac","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34821,"src":"11163:9:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":34891,"name":"firstDen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34878,"src":"11191:8:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":34889,"name":"firstNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34871,"src":"11175:8:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11184:6:37","memberName":"wadDiv","nodeType":"MemberAccess","referencedDeclaration":30175,"src":"11175:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11175:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11163:37:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34894,"nodeType":"ExpressionStatement","src":"11163:37:37"}]},{"assignments":[34897],"declarations":[{"constant":false,"id":34897,"mutability":"mutable","name":"secondFrac","nameLocation":"11220:10:37","nodeType":"VariableDeclaration","scope":34960,"src":"11213:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34896,"name":"int256","nodeType":"ElementaryTypeName","src":"11213:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34898,"nodeType":"VariableDeclarationStatement","src":"11213:17:37"},{"id":34952,"nodeType":"Block","src":"11236:327:37","statements":[{"assignments":[34900],"declarations":[{"constant":false,"id":34900,"mutability":"mutable","name":"first","nameLocation":"11253:5:37","nodeType":"VariableDeclaration","scope":34952,"src":"11246:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34899,"name":"int256","nodeType":"ElementaryTypeName","src":"11246:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34911,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"11286:6:37","subExpression":{"id":34906,"name":"I_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30655,"src":"11287:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":34908,"name":"gamma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34779,"src":"11295:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11286:14:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":34903,"name":"iL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34765,"src":"11275:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":34901,"name":"strike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34696,"src":"11261:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11268:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"11261:13:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11261:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11279:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"11261:24:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11261:40:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"11246:55:37"},{"assignments":[34913],"declarations":[{"constant":false,"id":34913,"mutability":"mutable","name":"erfcFirst","nameLocation":"11318:9:37","nodeType":"VariableDeclaration","scope":34952,"src":"11311:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34912,"name":"int256","nodeType":"ElementaryTypeName","src":"11311:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34921,"initialValue":{"arguments":[{"id":34919,"name":"sqrtTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34726,"src":"11359:7:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":34916,"name":"sqrtTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34738,"src":"11343:7:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":34914,"name":"sigma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34698,"src":"11330:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11336:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"11330:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11330:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11352:6:37","memberName":"wadDiv","nodeType":"MemberAccess","referencedDeclaration":30175,"src":"11330:28:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11330:37:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"11311:56:37"},{"assignments":[34923],"declarations":[{"constant":false,"id":34923,"mutability":"mutable","name":"erfcSecond","nameLocation":"11384:10:37","nodeType":"VariableDeclaration","scope":34952,"src":"11377:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34922,"name":"int256","nodeType":"ElementaryTypeName","src":"11377:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34925,"initialValue":{"id":34924,"name":"ierfcRes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34811,"src":"11397:8:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"11377:28:37"},{"assignments":[34927],"declarations":[{"constant":false,"id":34927,"mutability":"mutable","name":"num","nameLocation":"11422:3:37","nodeType":"VariableDeclaration","scope":34952,"src":"11415:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34926,"name":"int256","nodeType":"ElementaryTypeName","src":"11415:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34937,"initialValue":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34932,"name":"erfcFirst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34913,"src":"11455:9:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":34933,"name":"erfcSecond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34923,"src":"11467:10:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11455:22:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":34930,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"11441:8:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":34931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11450:4:37","memberName":"erfc","nodeType":"MemberAccess","referencedDeclaration":27044,"src":"11441:13:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":34935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11441:37:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":34928,"name":"first","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34900,"src":"11428:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11434:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"11428:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11428:51:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"11415:64:37"},{"assignments":[34939],"declarations":[{"constant":false,"id":34939,"mutability":"mutable","name":"den","nameLocation":"11496:3:37","nodeType":"VariableDeclaration","scope":34952,"src":"11489:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34938,"name":"int256","nodeType":"ElementaryTypeName","src":"11489:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34944,"initialValue":{"arguments":[{"id":34942,"name":"iX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34758,"src":"11515:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":34940,"name":"I_TWO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30661,"src":"11502:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11508:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"11502:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11502:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"11489:29:37"},{"expression":{"id":34950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34945,"name":"secondFrac","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34897,"src":"11528:10:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":34948,"name":"den","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34939,"src":"11552:3:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":34946,"name":"num","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34927,"src":"11541:3:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11545:6:37","memberName":"wadDiv","nodeType":"MemberAccess","referencedDeclaration":30175,"src":"11541:10:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":34949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11541:15:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11528:28:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34951,"nodeType":"ExpressionStatement","src":"11528:28:37"}]},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"11576:3:37","subExpression":{"id":34953,"name":"iS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34751,"src":"11577:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":34955,"name":"firstFrac","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34821,"src":"11582:9:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11576:15:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":34957,"name":"secondFrac","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34897,"src":"11594:10:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11576:28:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":34694,"id":34959,"nodeType":"Return","src":"11569:35:37"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"diffLower","nameLocation":"9909:9:37","parameters":{"id":34691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34679,"mutability":"mutable","name":"S","nameLocation":"9932:1:37","nodeType":"VariableDeclaration","scope":34961,"src":"9924:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34678,"name":"uint256","nodeType":"ElementaryTypeName","src":"9924:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34681,"mutability":"mutable","name":"rX","nameLocation":"9947:2:37","nodeType":"VariableDeclaration","scope":34961,"src":"9939:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34680,"name":"uint256","nodeType":"ElementaryTypeName","src":"9939:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34683,"mutability":"mutable","name":"rY","nameLocation":"9963:2:37","nodeType":"VariableDeclaration","scope":34961,"src":"9955:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34682,"name":"uint256","nodeType":"ElementaryTypeName","src":"9955:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34685,"mutability":"mutable","name":"L","nameLocation":"9979:1:37","nodeType":"VariableDeclaration","scope":34961,"src":"9971:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34684,"name":"uint256","nodeType":"ElementaryTypeName","src":"9971:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34687,"mutability":"mutable","name":"v","nameLocation":"9994:1:37","nodeType":"VariableDeclaration","scope":34961,"src":"9986:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34686,"name":"uint256","nodeType":"ElementaryTypeName","src":"9986:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34690,"mutability":"mutable","name":"params","nameLocation":"10034:6:37","nodeType":"VariableDeclaration","scope":34961,"src":"10001:39:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":34689,"nodeType":"UserDefinedTypeName","pathNode":{"id":34688,"name":"LogNormal.LogNormalParams","nameLocations":["10001:9:37","10011:15:37"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"10001:25:37"},"referencedDeclaration":38204,"src":"10001:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"src":"9918:124:37"},"returnParameters":{"id":34694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34693,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34961,"src":"10057:6:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34692,"name":"int256","nodeType":"ElementaryTypeName","src":"10057:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"10056:8:37"},"scope":35399,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35266,"nodeType":"FunctionDefinition","src":"11609:1794:37","nodes":[],"body":{"id":35265,"nodeType":"Block","src":"11774:1629:37","nodes":[],"statements":[{"assignments":[34980,34982,34984,34986],"declarations":[{"constant":false,"id":34980,"mutability":"mutable","name":"strike","nameLocation":"11788:6:37","nodeType":"VariableDeclaration","scope":35265,"src":"11781:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34979,"name":"int256","nodeType":"ElementaryTypeName","src":"11781:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":34982,"mutability":"mutable","name":"sigma","nameLocation":"11803:5:37","nodeType":"VariableDeclaration","scope":35265,"src":"11796:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34981,"name":"int256","nodeType":"ElementaryTypeName","src":"11796:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":34984,"mutability":"mutable","name":"tau","nameLocation":"11817:3:37","nodeType":"VariableDeclaration","scope":35265,"src":"11810:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34983,"name":"int256","nodeType":"ElementaryTypeName","src":"11810:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":34986,"mutability":"mutable","name":"swapFee","nameLocation":"11829:7:37","nodeType":"VariableDeclaration","scope":35265,"src":"11822:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34985,"name":"int256","nodeType":"ElementaryTypeName","src":"11822:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35008,"initialValue":{"components":[{"arguments":[{"expression":{"id":34989,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34974,"src":"11857:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":34990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11864:6:37","memberName":"strike","nodeType":"MemberAccess","referencedDeclaration":38195,"src":"11857:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11850:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":34987,"name":"int256","nodeType":"ElementaryTypeName","src":"11850:6:37","typeDescriptions":{}}},"id":34991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11850:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"arguments":[{"expression":{"id":34994,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34974,"src":"11888:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":34995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11895:5:37","memberName":"sigma","nodeType":"MemberAccess","referencedDeclaration":38197,"src":"11888:12:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11881:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":34992,"name":"int256","nodeType":"ElementaryTypeName","src":"11881:6:37","typeDescriptions":{}}},"id":34996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11881:20:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"arguments":[{"expression":{"id":34999,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34974,"src":"11918:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":35000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11925:3:37","memberName":"tau","nodeType":"MemberAccess","referencedDeclaration":38199,"src":"11918:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34998,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11911:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":34997,"name":"int256","nodeType":"ElementaryTypeName","src":"11911:6:37","typeDescriptions":{}}},"id":35001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11911:18:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"arguments":[{"expression":{"id":35004,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34974,"src":"11946:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":35005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11953:7:37","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":38201,"src":"11946:14:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11939:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":35002,"name":"int256","nodeType":"ElementaryTypeName","src":"11939:6:37","typeDescriptions":{}}},"id":35006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11939:22:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":35007,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11840:127:37","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_int256_$_t_int256_$_t_int256_$","typeString":"tuple(int256,int256,int256,int256)"}},"nodeType":"VariableDeclarationStatement","src":"11780:187:37"},{"assignments":[35010],"declarations":[{"constant":false,"id":35010,"mutability":"mutable","name":"sqrtTwo","nameLocation":"11980:7:37","nodeType":"VariableDeclaration","scope":35265,"src":"11973:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35009,"name":"int256","nodeType":"ElementaryTypeName","src":"11973:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35020,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":35015,"name":"TWO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30633,"src":"12020:3:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":35013,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"11997:17:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":35014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12015:4:37","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":26589,"src":"11997:22:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":35016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11997:27:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"316539","id":35017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12027:3:37","typeDescriptions":{"typeIdentifier":"t_rational_1000000000_by_1","typeString":"int_const 1000000000"},"value":"1e9"},"src":"11997:33:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11990:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":35011,"name":"int256","nodeType":"ElementaryTypeName","src":"11990:6:37","typeDescriptions":{}}},"id":35019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11990:41:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"11973:58:37"},{"assignments":[35022],"declarations":[{"constant":false,"id":35022,"mutability":"mutable","name":"sqrtTau","nameLocation":"12044:7:37","nodeType":"VariableDeclaration","scope":35265,"src":"12037:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35021,"name":"int256","nodeType":"ElementaryTypeName","src":"12037:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35033,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":35027,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34974,"src":"12084:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":35028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12091:3:37","memberName":"tau","nodeType":"MemberAccess","referencedDeclaration":38199,"src":"12084:10:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":35025,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"12061:17:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":35026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12079:4:37","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":26589,"src":"12061:22:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":35029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12061:34:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"316539","id":35030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12098:3:37","typeDescriptions":{"typeIdentifier":"t_rational_1000000000_by_1","typeString":"int_const 1000000000"},"value":"1e9"},"src":"12061:40:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12054:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":35023,"name":"int256","nodeType":"ElementaryTypeName","src":"12054:6:37","typeDescriptions":{}}},"id":35032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12054:48:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"12037:65:37"},{"assignments":[35035],"declarations":[{"constant":false,"id":35035,"mutability":"mutable","name":"iS","nameLocation":"12115:2:37","nodeType":"VariableDeclaration","scope":35265,"src":"12108:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35034,"name":"int256","nodeType":"ElementaryTypeName","src":"12108:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35040,"initialValue":{"arguments":[{"id":35038,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34963,"src":"12127:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12120:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":35036,"name":"int256","nodeType":"ElementaryTypeName","src":"12120:6:37","typeDescriptions":{}}},"id":35039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12120:9:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"12108:21:37"},{"assignments":[35042],"declarations":[{"constant":false,"id":35042,"mutability":"mutable","name":"iX","nameLocation":"12142:2:37","nodeType":"VariableDeclaration","scope":35265,"src":"12135:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35041,"name":"int256","nodeType":"ElementaryTypeName","src":"12135:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35047,"initialValue":{"arguments":[{"id":35045,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34965,"src":"12154:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12147:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":35043,"name":"int256","nodeType":"ElementaryTypeName","src":"12147:6:37","typeDescriptions":{}}},"id":35046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12147:10:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"12135:22:37"},{"assignments":[35049],"declarations":[{"constant":false,"id":35049,"mutability":"mutable","name":"iY","nameLocation":"12170:2:37","nodeType":"VariableDeclaration","scope":35265,"src":"12163:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35048,"name":"int256","nodeType":"ElementaryTypeName","src":"12163:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35054,"initialValue":{"arguments":[{"id":35052,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34967,"src":"12182:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12175:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":35050,"name":"int256","nodeType":"ElementaryTypeName","src":"12175:6:37","typeDescriptions":{}}},"id":35053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12175:10:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"12163:22:37"},{"assignments":[35056],"declarations":[{"constant":false,"id":35056,"mutability":"mutable","name":"iL","nameLocation":"12198:2:37","nodeType":"VariableDeclaration","scope":35265,"src":"12191:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35055,"name":"int256","nodeType":"ElementaryTypeName","src":"12191:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35061,"initialValue":{"arguments":[{"id":35059,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34969,"src":"12210:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12203:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":35057,"name":"int256","nodeType":"ElementaryTypeName","src":"12203:6:37","typeDescriptions":{}}},"id":35060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12203:9:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"12191:21:37"},{"assignments":[35063],"declarations":[{"constant":false,"id":35063,"mutability":"mutable","name":"iV","nameLocation":"12225:2:37","nodeType":"VariableDeclaration","scope":35265,"src":"12218:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35062,"name":"int256","nodeType":"ElementaryTypeName","src":"12218:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35068,"initialValue":{"arguments":[{"id":35066,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34971,"src":"12237:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35065,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12230:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":35064,"name":"int256","nodeType":"ElementaryTypeName","src":"12230:6:37","typeDescriptions":{}}},"id":35067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12230:9:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"12218:21:37"},{"assignments":[35070],"declarations":[{"constant":false,"id":35070,"mutability":"mutable","name":"gamma","nameLocation":"12252:5:37","nodeType":"VariableDeclaration","scope":35265,"src":"12245:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35069,"name":"int256","nodeType":"ElementaryTypeName","src":"12245:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35074,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35071,"name":"I_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30655,"src":"12260:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":35072,"name":"swapFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34986,"src":"12268:7:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"12260:15:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"12245:30:37"},{"assignments":[35076],"declarations":[{"constant":false,"id":35076,"mutability":"mutable","name":"ierfcNum","nameLocation":"12289:8:37","nodeType":"VariableDeclaration","scope":35265,"src":"12282:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35075,"name":"int256","nodeType":"ElementaryTypeName","src":"12282:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35086,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35082,"name":"iV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35063,"src":"12324:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":35083,"name":"iY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35049,"src":"12329:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"12324:7:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":35079,"name":"iY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35049,"src":"12313:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":35077,"name":"I_TWO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30661,"src":"12300:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12306:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"12300:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12300:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12317:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"12300:23:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12300:32:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"12282:50:37"},{"assignments":[35088],"declarations":[{"constant":false,"id":35088,"mutability":"mutable","name":"ierfcDen","nameLocation":"12345:8:37","nodeType":"VariableDeclaration","scope":35265,"src":"12338:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35087,"name":"int256","nodeType":"ElementaryTypeName","src":"12338:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35110,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"12356:34:37","subExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35094,"name":"iV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35063,"src":"12382:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":35095,"name":"iY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35049,"src":"12387:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"12382:7:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":35091,"name":"iL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35056,"src":"12371:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":35089,"name":"strike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34980,"src":"12357:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12364:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"12357:13:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12357:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12375:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"12357:24:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12357:33:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":35107,"name":"gamma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35070,"src":"12437:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":35104,"name":"iV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35063,"src":"12426:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":35101,"name":"iL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35056,"src":"12415:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":35099,"name":"strike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34980,"src":"12401:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12408:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"12401:13:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12401:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12419:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"12401:24:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12401:28:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12430:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"12401:35:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12401:42:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"12356:87:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"12338:105:37"},{"assignments":[35112],"declarations":[{"constant":false,"id":35112,"mutability":"mutable","name":"ierfcRes","nameLocation":"12456:8:37","nodeType":"VariableDeclaration","scope":35265,"src":"12449:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35111,"name":"int256","nodeType":"ElementaryTypeName","src":"12449:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35121,"initialValue":{"arguments":[{"id":35119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"12482:26:37","subExpression":{"arguments":[{"id":35117,"name":"ierfcDen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35088,"src":"12499:8:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":35115,"name":"ierfcNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35076,"src":"12483:8:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12492:6:37","memberName":"wadDiv","nodeType":"MemberAccess","referencedDeclaration":30175,"src":"12483:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12483:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":35113,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"12467:8:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":35114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12476:5:37","memberName":"ierfc","nodeType":"MemberAccess","referencedDeclaration":27242,"src":"12467:14:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":35120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12467:42:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"12449:60:37"},{"assignments":[35123],"declarations":[{"constant":false,"id":35123,"mutability":"mutable","name":"firstFrac","nameLocation":"12523:9:37","nodeType":"VariableDeclaration","scope":35265,"src":"12516:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35122,"name":"int256","nodeType":"ElementaryTypeName","src":"12516:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35124,"nodeType":"VariableDeclarationStatement","src":"12516:16:37"},{"id":35200,"nodeType":"Block","src":"12538:466:37","statements":[{"assignments":[35126],"declarations":[{"constant":false,"id":35126,"mutability":"mutable","name":"firstExp","nameLocation":"12555:8:37","nodeType":"VariableDeclaration","scope":35200,"src":"12548:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35125,"name":"int256","nodeType":"ElementaryTypeName","src":"12548:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35139,"initialValue":{"id":35138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"12566:48:37","subExpression":{"components":[{"arguments":[{"id":35135,"name":"I_TWO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30661,"src":"12607:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":35132,"name":"tau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34984,"src":"12595:3:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":35129,"name":"I_TWO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30661,"src":"12581:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":35127,"name":"sigma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34982,"src":"12568:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12574:6:37","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"12568:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12568:19:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12588:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"12568:26:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12568:31:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12600:6:37","memberName":"wadDiv","nodeType":"MemberAccess","referencedDeclaration":30175,"src":"12568:38:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12568:45:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":35137,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12567:47:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"12548:66:37"},{"assignments":[35141],"declarations":[{"constant":false,"id":35141,"mutability":"mutable","name":"secondExp","nameLocation":"12631:9:37","nodeType":"VariableDeclaration","scope":35200,"src":"12624:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35140,"name":"int256","nodeType":"ElementaryTypeName","src":"12624:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35152,"initialValue":{"arguments":[{"id":35150,"name":"ierfcRes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35112,"src":"12700:8:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":35147,"name":"sqrtTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35022,"src":"12684:7:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":35144,"name":"sigma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34982,"src":"12670:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":35142,"name":"sqrtTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35010,"src":"12655:7:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12663:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"12655:14:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12655:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12677:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"12655:28:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12655:37:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12693:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"12655:44:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12655:54:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"12624:85:37"},{"assignments":[35154],"declarations":[{"constant":false,"id":35154,"mutability":"mutable","name":"first","nameLocation":"12726:5:37","nodeType":"VariableDeclaration","scope":35200,"src":"12719:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35153,"name":"int256","nodeType":"ElementaryTypeName","src":"12719:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35161,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35157,"name":"firstExp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35126,"src":"12759:8:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":35158,"name":"secondExp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35141,"src":"12770:9:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"12759:20:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":35155,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"12734:17:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":35156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12752:6:37","memberName":"expWad","nodeType":"MemberAccess","referencedDeclaration":26316,"src":"12734:24:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":35160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12734:46:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"12719:61:37"},{"assignments":[35163],"declarations":[{"constant":false,"id":35163,"mutability":"mutable","name":"second","nameLocation":"12797:6:37","nodeType":"VariableDeclaration","scope":35200,"src":"12790:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35162,"name":"int256","nodeType":"ElementaryTypeName","src":"12790:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35171,"initialValue":{"arguments":[{"id":35169,"name":"gamma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35070,"src":"12827:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":35166,"name":"iY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35049,"src":"12816:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":35164,"name":"iS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35035,"src":"12806:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12809:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"12806:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12806:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12820:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"12806:20:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12806:27:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"12790:43:37"},{"assignments":[35173],"declarations":[{"constant":false,"id":35173,"mutability":"mutable","name":"firstNum","nameLocation":"12850:8:37","nodeType":"VariableDeclaration","scope":35200,"src":"12843:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35172,"name":"int256","nodeType":"ElementaryTypeName","src":"12843:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35178,"initialValue":{"arguments":[{"id":35176,"name":"second","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35163,"src":"12874:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":35174,"name":"first","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35154,"src":"12861:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12867:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"12861:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12861:20:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"12843:38:37"},{"assignments":[35180],"declarations":[{"constant":false,"id":35180,"mutability":"mutable","name":"firstDen","nameLocation":"12898:8:37","nodeType":"VariableDeclaration","scope":35200,"src":"12891:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35179,"name":"int256","nodeType":"ElementaryTypeName","src":"12891:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35192,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35183,"name":"iV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35063,"src":"12923:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":35184,"name":"iY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35049,"src":"12928:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"12923:7:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":35188,"name":"gamma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35070,"src":"12943:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":35186,"name":"iV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35063,"src":"12933:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12936:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"12933:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12933:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"12923:26:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":35181,"name":"strike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34980,"src":"12909:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12916:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"12909:13:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12909:41:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"12891:59:37"},{"expression":{"id":35198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":35193,"name":"firstFrac","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35123,"src":"12960:9:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":35196,"name":"firstDen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35180,"src":"12988:8:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":35194,"name":"firstNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35173,"src":"12972:8:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12981:6:37","memberName":"wadDiv","nodeType":"MemberAccess","referencedDeclaration":30175,"src":"12972:15:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12972:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"12960:37:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35199,"nodeType":"ExpressionStatement","src":"12960:37:37"}]},{"assignments":[35202],"declarations":[{"constant":false,"id":35202,"mutability":"mutable","name":"secondFrac","nameLocation":"13017:10:37","nodeType":"VariableDeclaration","scope":35265,"src":"13010:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35201,"name":"int256","nodeType":"ElementaryTypeName","src":"13010:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35203,"nodeType":"VariableDeclarationStatement","src":"13010:17:37"},{"id":35257,"nodeType":"Block","src":"13033:323:37","statements":[{"assignments":[35205],"declarations":[{"constant":false,"id":35205,"mutability":"mutable","name":"first","nameLocation":"13050:5:37","nodeType":"VariableDeclaration","scope":35257,"src":"13043:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35204,"name":"int256","nodeType":"ElementaryTypeName","src":"13043:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35216,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"13079:6:37","subExpression":{"id":35211,"name":"I_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30655,"src":"13080:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":35213,"name":"gamma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35070,"src":"13088:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"13079:14:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":35208,"name":"iS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35035,"src":"13068:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":35206,"name":"iL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35056,"src":"13058:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13061:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"13058:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13058:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13072:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"13058:20:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13058:36:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"13043:51:37"},{"assignments":[35218],"declarations":[{"constant":false,"id":35218,"mutability":"mutable","name":"erfcFirst","nameLocation":"13111:9:37","nodeType":"VariableDeclaration","scope":35257,"src":"13104:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35217,"name":"int256","nodeType":"ElementaryTypeName","src":"13104:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35226,"initialValue":{"arguments":[{"id":35224,"name":"sqrtTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35010,"src":"13152:7:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":35221,"name":"sqrtTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35022,"src":"13136:7:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":35219,"name":"sigma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34982,"src":"13123:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13129:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"13123:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13123:21:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13145:6:37","memberName":"wadDiv","nodeType":"MemberAccess","referencedDeclaration":30175,"src":"13123:28:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13123:37:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"13104:56:37"},{"assignments":[35228],"declarations":[{"constant":false,"id":35228,"mutability":"mutable","name":"erfcSecond","nameLocation":"13177:10:37","nodeType":"VariableDeclaration","scope":35257,"src":"13170:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35227,"name":"int256","nodeType":"ElementaryTypeName","src":"13170:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35230,"initialValue":{"id":35229,"name":"ierfcRes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35112,"src":"13190:8:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"13170:28:37"},{"assignments":[35232],"declarations":[{"constant":false,"id":35232,"mutability":"mutable","name":"num","nameLocation":"13215:3:37","nodeType":"VariableDeclaration","scope":35257,"src":"13208:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35231,"name":"int256","nodeType":"ElementaryTypeName","src":"13208:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35242,"initialValue":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35237,"name":"erfcFirst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35218,"src":"13248:9:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":35238,"name":"erfcSecond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35228,"src":"13260:10:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"13248:22:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":35235,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"13234:8:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":35236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13243:4:37","memberName":"erfc","nodeType":"MemberAccess","referencedDeclaration":27044,"src":"13234:13:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":35240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13234:37:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":35233,"name":"first","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35205,"src":"13221:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13227:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"13221:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13221:51:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"13208:64:37"},{"assignments":[35244],"declarations":[{"constant":false,"id":35244,"mutability":"mutable","name":"den","nameLocation":"13289:3:37","nodeType":"VariableDeclaration","scope":35257,"src":"13282:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35243,"name":"int256","nodeType":"ElementaryTypeName","src":"13282:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35249,"initialValue":{"arguments":[{"id":35247,"name":"iY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35049,"src":"13308:2:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":35245,"name":"I_TWO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30661,"src":"13295:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13301:6:37","memberName":"wadMul","nodeType":"MemberAccess","referencedDeclaration":30164,"src":"13295:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13295:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"13282:29:37"},{"expression":{"id":35255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":35250,"name":"secondFrac","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35202,"src":"13321:10:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":35253,"name":"den","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35244,"src":"13345:3:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":35251,"name":"num","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35232,"src":"13334:3:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13338:6:37","memberName":"wadDiv","nodeType":"MemberAccess","referencedDeclaration":30175,"src":"13334:10:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":35254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13334:15:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"13321:28:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35256,"nodeType":"ExpressionStatement","src":"13321:28:37"}]},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"13369:6:37","subExpression":{"id":35258,"name":"I_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30655,"src":"13370:5:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":35260,"name":"firstFrac","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35123,"src":"13378:9:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"13369:18:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":35262,"name":"secondFrac","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35202,"src":"13390:10:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"13369:31:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":34978,"id":35264,"nodeType":"Return","src":"13362:38:37"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"diffRaise","nameLocation":"11618:9:37","parameters":{"id":34975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34963,"mutability":"mutable","name":"S","nameLocation":"11641:1:37","nodeType":"VariableDeclaration","scope":35266,"src":"11633:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34962,"name":"uint256","nodeType":"ElementaryTypeName","src":"11633:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34965,"mutability":"mutable","name":"rX","nameLocation":"11656:2:37","nodeType":"VariableDeclaration","scope":35266,"src":"11648:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34964,"name":"uint256","nodeType":"ElementaryTypeName","src":"11648:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34967,"mutability":"mutable","name":"rY","nameLocation":"11672:2:37","nodeType":"VariableDeclaration","scope":35266,"src":"11664:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34966,"name":"uint256","nodeType":"ElementaryTypeName","src":"11664:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34969,"mutability":"mutable","name":"L","nameLocation":"11688:1:37","nodeType":"VariableDeclaration","scope":35266,"src":"11680:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34968,"name":"uint256","nodeType":"ElementaryTypeName","src":"11680:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34971,"mutability":"mutable","name":"v","nameLocation":"11703:1:37","nodeType":"VariableDeclaration","scope":35266,"src":"11695:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34970,"name":"uint256","nodeType":"ElementaryTypeName","src":"11695:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34974,"mutability":"mutable","name":"params","nameLocation":"11743:6:37","nodeType":"VariableDeclaration","scope":35266,"src":"11710:39:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":34973,"nodeType":"UserDefinedTypeName","pathNode":{"id":34972,"name":"LogNormal.LogNormalParams","nameLocations":["11710:9:37","11720:15:37"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"11710:25:37"},"referencedDeclaration":38204,"src":"11710:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"src":"11627:124:37"},"returnParameters":{"id":34978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34977,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35266,"src":"11766:6:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34976,"name":"int256","nodeType":"ElementaryTypeName","src":"11766:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"11765:8:37"},"scope":35399,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35332,"nodeType":"FunctionDefinition","src":"13405:519:37","nodes":[],"body":{"id":35331,"nodeType":"Block","src":"13588:336:37","nodes":[],"statements":[{"assignments":[35285],"declarations":[{"constant":false,"id":35285,"mutability":"mutable","name":"upper","nameLocation":"13602:5:37","nodeType":"VariableDeclaration","scope":35331,"src":"13594:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35284,"name":"uint256","nodeType":"ElementaryTypeName","src":"13594:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35287,"initialValue":{"id":35286,"name":"vUpper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35276,"src":"13610:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13594:22:37"},{"assignments":[35289],"declarations":[{"constant":false,"id":35289,"mutability":"mutable","name":"lower","nameLocation":"13630:5:37","nodeType":"VariableDeclaration","scope":35331,"src":"13622:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35288,"name":"uint256","nodeType":"ElementaryTypeName","src":"13622:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35291,"initialValue":{"hexValue":"31303030","id":35290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13638:4:37","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"nodeType":"VariableDeclarationStatement","src":"13622:20:37"},{"assignments":[35293],"declarations":[{"constant":false,"id":35293,"mutability":"mutable","name":"lowerBoundOutput","nameLocation":"13655:16:37","nodeType":"VariableDeclaration","scope":35331,"src":"13648:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35292,"name":"int256","nodeType":"ElementaryTypeName","src":"13648:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35302,"initialValue":{"arguments":[{"id":35295,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35268,"src":"13684:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35296,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35270,"src":"13687:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35297,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35272,"src":"13691:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35298,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35274,"src":"13695:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35299,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35289,"src":"13698:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35300,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35279,"src":"13705:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"id":35294,"name":"diffLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34961,"src":"13674:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":35301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13674:38:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"13648:64:37"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35303,"name":"lowerBoundOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35293,"src":"13722:16:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":35304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13741:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13722:20:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35309,"nodeType":"IfStatement","src":"13718:51:37","trueBody":{"id":35308,"nodeType":"Block","src":"13744:25:37","statements":[{"expression":{"hexValue":"30","id":35306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13761:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":35283,"id":35307,"nodeType":"Return","src":"13754:8:37"}]}},{"expression":{"id":35329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":35310,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35282,"src":"13774:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":35314,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35268,"src":"13808:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35315,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35270,"src":"13811:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35316,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35272,"src":"13815:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35317,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35274,"src":"13819:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35318,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35279,"src":"13822:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":35312,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13797:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":35313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13801:6:37","memberName":"encode","nodeType":"MemberAccess","src":"13797:10:37","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":35319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13797:32:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":35320,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35289,"src":"13839:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35321,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35285,"src":"13854:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"31","id":35324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13877:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":35323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13869:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":35322,"name":"uint256","nodeType":"ElementaryTypeName","src":"13869:7:37","typeDescriptions":{}}},"id":35325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13869:10:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"323536","id":35326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13889:3:37","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},{"id":35327,"name":"findRootLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34631,"src":"13902:13:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$","typeString":"function (bytes memory,uint256) pure returns (int256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$","typeString":"function (bytes memory,uint256) pure returns (int256)"}],"id":35311,"name":"bisection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31118,"src":"13778:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$_$returns$_t_uint256_$","typeString":"function (bytes memory,uint256,uint256,uint256,uint256,function (bytes memory,uint256) pure returns (int256)) pure returns (uint256)"}},"id":35328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13778:143:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13774:147:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35330,"nodeType":"ExpressionStatement","src":"13774:147:37"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeOptimalLower","nameLocation":"13414:19:37","parameters":{"id":35280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35268,"mutability":"mutable","name":"S","nameLocation":"13447:1:37","nodeType":"VariableDeclaration","scope":35332,"src":"13439:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35267,"name":"uint256","nodeType":"ElementaryTypeName","src":"13439:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35270,"mutability":"mutable","name":"rX","nameLocation":"13462:2:37","nodeType":"VariableDeclaration","scope":35332,"src":"13454:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35269,"name":"uint256","nodeType":"ElementaryTypeName","src":"13454:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35272,"mutability":"mutable","name":"rY","nameLocation":"13478:2:37","nodeType":"VariableDeclaration","scope":35332,"src":"13470:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35271,"name":"uint256","nodeType":"ElementaryTypeName","src":"13470:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35274,"mutability":"mutable","name":"L","nameLocation":"13494:1:37","nodeType":"VariableDeclaration","scope":35332,"src":"13486:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35273,"name":"uint256","nodeType":"ElementaryTypeName","src":"13486:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35276,"mutability":"mutable","name":"vUpper","nameLocation":"13509:6:37","nodeType":"VariableDeclaration","scope":35332,"src":"13501:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35275,"name":"uint256","nodeType":"ElementaryTypeName","src":"13501:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35279,"mutability":"mutable","name":"params","nameLocation":"13554:6:37","nodeType":"VariableDeclaration","scope":35332,"src":"13521:39:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":35278,"nodeType":"UserDefinedTypeName","pathNode":{"id":35277,"name":"LogNormal.LogNormalParams","nameLocations":["13521:9:37","13531:15:37"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"13521:25:37"},"referencedDeclaration":38204,"src":"13521:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"src":"13433:129:37"},"returnParameters":{"id":35283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35282,"mutability":"mutable","name":"v","nameLocation":"13585:1:37","nodeType":"VariableDeclaration","scope":35332,"src":"13577:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35281,"name":"uint256","nodeType":"ElementaryTypeName","src":"13577:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13576:11:37"},"scope":35399,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35398,"nodeType":"FunctionDefinition","src":"13926:519:37","nodes":[],"body":{"id":35397,"nodeType":"Block","src":"14109:336:37","nodes":[],"statements":[{"assignments":[35351],"declarations":[{"constant":false,"id":35351,"mutability":"mutable","name":"upper","nameLocation":"14123:5:37","nodeType":"VariableDeclaration","scope":35397,"src":"14115:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35350,"name":"uint256","nodeType":"ElementaryTypeName","src":"14115:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35353,"initialValue":{"id":35352,"name":"vUpper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35342,"src":"14131:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14115:22:37"},{"assignments":[35355],"declarations":[{"constant":false,"id":35355,"mutability":"mutable","name":"lower","nameLocation":"14151:5:37","nodeType":"VariableDeclaration","scope":35397,"src":"14143:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35354,"name":"uint256","nodeType":"ElementaryTypeName","src":"14143:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35357,"initialValue":{"hexValue":"31303030","id":35356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14159:4:37","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"nodeType":"VariableDeclarationStatement","src":"14143:20:37"},{"assignments":[35359],"declarations":[{"constant":false,"id":35359,"mutability":"mutable","name":"lowerBoundOutput","nameLocation":"14176:16:37","nodeType":"VariableDeclaration","scope":35397,"src":"14169:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35358,"name":"int256","nodeType":"ElementaryTypeName","src":"14169:6:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35368,"initialValue":{"arguments":[{"id":35361,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35334,"src":"14205:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35362,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35336,"src":"14208:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35363,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35338,"src":"14212:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35364,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35340,"src":"14216:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35365,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35355,"src":"14219:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35366,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35345,"src":"14226:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"id":35360,"name":"diffRaise","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35266,"src":"14195:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":35367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14195:38:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"14169:64:37"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35369,"name":"lowerBoundOutput","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35359,"src":"14243:16:37","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":35370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14262:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14243:20:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35375,"nodeType":"IfStatement","src":"14239:51:37","trueBody":{"id":35374,"nodeType":"Block","src":"14265:25:37","statements":[{"expression":{"hexValue":"30","id":35372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14282:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":35349,"id":35373,"nodeType":"Return","src":"14275:8:37"}]}},{"expression":{"id":35395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":35376,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35348,"src":"14295:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":35380,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35334,"src":"14329:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35381,"name":"rX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35336,"src":"14332:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35382,"name":"rY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35338,"src":"14336:2:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35383,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35340,"src":"14340:1:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35384,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35345,"src":"14343:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":35378,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14318:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":35379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14322:6:37","memberName":"encode","nodeType":"MemberAccess","src":"14318:10:37","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":35385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14318:32:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":35386,"name":"lower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35355,"src":"14360:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35387,"name":"upper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35351,"src":"14375:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"31","id":35390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14398:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":35389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14390:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":35388,"name":"uint256","nodeType":"ElementaryTypeName","src":"14390:7:37","typeDescriptions":{}}},"id":35391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14390:10:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"323536","id":35392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14410:3:37","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},{"id":35393,"name":"findRootRaise","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34677,"src":"14423:13:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$","typeString":"function (bytes memory,uint256) pure returns (int256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$","typeString":"function (bytes memory,uint256) pure returns (int256)"}],"id":35377,"name":"bisection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31118,"src":"14299:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_int256_$_$returns$_t_uint256_$","typeString":"function (bytes memory,uint256,uint256,uint256,uint256,function (bytes memory,uint256) pure returns (int256)) pure returns (uint256)"}},"id":35394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14299:143:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14295:147:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35396,"nodeType":"ExpressionStatement","src":"14295:147:37"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeOptimalRaise","nameLocation":"13935:19:37","parameters":{"id":35346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35334,"mutability":"mutable","name":"S","nameLocation":"13968:1:37","nodeType":"VariableDeclaration","scope":35398,"src":"13960:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35333,"name":"uint256","nodeType":"ElementaryTypeName","src":"13960:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35336,"mutability":"mutable","name":"rX","nameLocation":"13983:2:37","nodeType":"VariableDeclaration","scope":35398,"src":"13975:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35335,"name":"uint256","nodeType":"ElementaryTypeName","src":"13975:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35338,"mutability":"mutable","name":"rY","nameLocation":"13999:2:37","nodeType":"VariableDeclaration","scope":35398,"src":"13991:10:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35337,"name":"uint256","nodeType":"ElementaryTypeName","src":"13991:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35340,"mutability":"mutable","name":"L","nameLocation":"14015:1:37","nodeType":"VariableDeclaration","scope":35398,"src":"14007:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35339,"name":"uint256","nodeType":"ElementaryTypeName","src":"14007:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35342,"mutability":"mutable","name":"vUpper","nameLocation":"14030:6:37","nodeType":"VariableDeclaration","scope":35398,"src":"14022:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35341,"name":"uint256","nodeType":"ElementaryTypeName","src":"14022:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35345,"mutability":"mutable","name":"params","nameLocation":"14075:6:37","nodeType":"VariableDeclaration","scope":35398,"src":"14042:39:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":35344,"nodeType":"UserDefinedTypeName","pathNode":{"id":35343,"name":"LogNormal.LogNormalParams","nameLocations":["14042:9:37","14052:15:37"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"14042:25:37"},"referencedDeclaration":38204,"src":"14042:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"src":"13954:129:37"},"returnParameters":{"id":35349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35348,"mutability":"mutable","name":"v","nameLocation":"14106:1:37","nodeType":"VariableDeclaration","scope":35398,"src":"14098:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35347,"name":"uint256","nodeType":"ElementaryTypeName","src":"14098:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14097:11:37"},"scope":35399,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"license":"GPL-3.0-or-later"},"id":37} \ No newline at end of file diff --git a/out/LogNormalLib.sol/LogNormalLib.json b/out/LogNormalLib.sol/LogNormalLib.json deleted file mode 100644 index 35504b3c..00000000 --- a/out/LogNormalLib.sol/LogNormalLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220e010a782e065fca02c3540c95096f37ce5742f57470a56fcc6efa65aa0e4fd5764736f6c63430008160033","sourceMap":"202:7110:44:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220e010a782e065fca02c3540c95096f37ce5742f57470a56fcc6efa65aa0e4fd5764736f6c63430008160033","sourceMap":"202:7110:44:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/strategies/LogNormal/LogNormalLib.sol\":\"LogNormalLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/strategies/LogNormal/LogNormal.sol\":{\"keccak256\":\"0xce0e14a6180d989eff4223bd173904717c745f93c7d02e972dce9d4f5a414d15\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0fe700ac552153eb030453532afdf52d7ae1b7f8ca53b0f050ab9a9e0b1f0ee9\",\"dweb:/ipfs/QmPQW7F1wUqLKs2qPmvJq5EiBfUmPGGsW4y9dUmMtDkfnt\"]},\"src/strategies/LogNormal/LogNormalLib.sol\":{\"keccak256\":\"0x208f8cd3b02d7305d4c54cf02c07f443ddfed1c6c719e752888be208c3ad3645\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://850b799c647dfbece76c7c1daad3ac375243f66daa0eb8206eeeee783982429c\",\"dweb:/ipfs/QmUrixVb4EAxccZxvZCoAJjF8YRqnMbX6cpGCwPfjZvgQk\"]},\"src/strategies/LogNormal/LogNormalMath.sol\":{\"keccak256\":\"0x5d97983f91cf766e1e87ef244a39c6ec6961de38c4c8817030b32edd72a1e65f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://df6121bf8157bad9b659d484fdcc8ebf0cd41179b323d06225d1cf6bff266663\",\"dweb:/ipfs/QmRGN6MwWZb9f6X4Xqv7f3VpUFWXFb36jDKcyEQVaFUhhz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/strategies/LogNormal/LogNormalLib.sol":"LogNormalLib"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormal.sol":{"keccak256":"0xce0e14a6180d989eff4223bd173904717c745f93c7d02e972dce9d4f5a414d15","urls":["bzz-raw://0fe700ac552153eb030453532afdf52d7ae1b7f8ca53b0f050ab9a9e0b1f0ee9","dweb:/ipfs/QmPQW7F1wUqLKs2qPmvJq5EiBfUmPGGsW4y9dUmMtDkfnt"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormalLib.sol":{"keccak256":"0x208f8cd3b02d7305d4c54cf02c07f443ddfed1c6c719e752888be208c3ad3645","urls":["bzz-raw://850b799c647dfbece76c7c1daad3ac375243f66daa0eb8206eeeee783982429c","dweb:/ipfs/QmUrixVb4EAxccZxvZCoAJjF8YRqnMbX6cpGCwPfjZvgQk"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormalMath.sol":{"keccak256":"0x5d97983f91cf766e1e87ef244a39c6ec6961de38c4c8817030b32edd72a1e65f","urls":["bzz-raw://df6121bf8157bad9b659d484fdcc8ebf0cd41179b323d06225d1cf6bff266663","dweb:/ipfs/QmRGN6MwWZb9f6X4Xqv7f3VpUFWXFb36jDKcyEQVaFUhhz"],"license":"GPL-3.0-or-later"}},"version":1},"ast":{"absolutePath":"src/strategies/LogNormal/LogNormalLib.sol","id":39518,"exportedSymbols":{"EPSILON":[30665],"FixedPointMathLib":[26640],"Gaussian":[27374],"HALF":[30636],"INFINITY_IS_NOT_REAL":[30646],"I_ONE":[30655],"I_TWO":[30661],"LogNormal":[38879],"LogNormalLib":[39517],"Min":[27736],"ONE":[30639],"SQRT_WAD":[30630],"TWO":[30633],"ZERO":[30649],"abs":[27763],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeHalfSigmaTauSquared":[39613],"computeLnSDivK":[39549],"computeSigmaSqrtTau":[39577],"diviWad":[27813],"muli":[27777],"muliWad":[27795],"mulidiv":[39703],"mulidivUp":[39659]},"nodeType":"SourceUnit","src":"45:7268:44","nodes":[{"id":38881,"nodeType":"PragmaDirective","src":"45:24:44","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":38882,"nodeType":"ImportDirective","src":"71:29:44","nodes":[],"absolutePath":"src/strategies/LogNormal/LogNormalMath.sol","file":"./LogNormalMath.sol","nameLocation":"-1:-1:-1","scope":39518,"sourceUnit":39704,"symbolAliases":[],"unitAlias":""},{"id":38883,"nodeType":"ImportDirective","src":"101:25:44","nodes":[],"absolutePath":"src/strategies/LogNormal/LogNormal.sol","file":"./LogNormal.sol","nameLocation":"-1:-1:-1","scope":39518,"sourceUnit":38880,"symbolAliases":[],"unitAlias":""},{"id":38886,"nodeType":"UsingForDirective","src":"128:36:44","nodes":[],"global":false,"libraryName":{"id":38884,"name":"FixedPointMathLib","nameLocations":["134:17:44"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"134:17:44"},"typeName":{"id":38885,"name":"uint256","nodeType":"ElementaryTypeName","src":"156:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":38889,"nodeType":"UsingForDirective","src":"165:35:44","nodes":[],"global":false,"libraryName":{"id":38887,"name":"FixedPointMathLib","nameLocations":["171:17:44"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"171:17:44"},"typeName":{"id":38888,"name":"int256","nodeType":"ElementaryTypeName","src":"193:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":39517,"nodeType":"ContractDefinition","src":"202:7110:44","nodes":[{"id":38896,"nodeType":"EnumDefinition","src":"229:129:44","nodes":[],"canonicalName":"LogNormalLib.LogNormalUpdateCode","members":[{"id":38890,"name":"Invalid","nameLocation":"264:7:44","nodeType":"EnumValue","src":"264:7:44"},{"id":38891,"name":"SwapFee","nameLocation":"281:7:44","nodeType":"EnumValue","src":"281:7:44"},{"id":38892,"name":"Strike","nameLocation":"298:6:44","nodeType":"EnumValue","src":"298:6:44"},{"id":38893,"name":"Sigma","nameLocation":"314:5:44","nodeType":"EnumValue","src":"314:5:44"},{"id":38894,"name":"Tau","nameLocation":"329:3:44","nodeType":"EnumValue","src":"329:3:44"},{"id":38895,"name":"Controller","nameLocation":"342:10:44","nodeType":"EnumValue","src":"342:10:44"}],"name":"LogNormalUpdateCode","nameLocation":"234:19:44"},{"id":38914,"nodeType":"FunctionDefinition","src":"364:188:44","nodes":[],"body":{"id":38913,"nodeType":"Block","src":"471:81:44","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":38905,"name":"LogNormalUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38896,"src":"499:19:44","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_LogNormalUpdateCode_$38896_$","typeString":"type(enum LogNormalLib.LogNormalUpdateCode)"}},"id":38906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"519:7:44","memberName":"SwapFee","nodeType":"MemberAccess","referencedDeclaration":38891,"src":"499:27:44","typeDescriptions":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"}},{"arguments":[{"id":38909,"name":"swapFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38898,"src":"536:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"528:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38907,"name":"uint256","nodeType":"ElementaryTypeName","src":"528:7:44","typeDescriptions":{}}},"id":38910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"528:16:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":38903,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"488:3:44","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"492:6:44","memberName":"encode","nodeType":"MemberAccess","src":"488:10:44","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":38911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"488:57:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":38902,"id":38912,"nodeType":"Return","src":"481:64:44"}]},"implemented":true,"kind":"function","modifiers":[],"name":"encodeFeeUpdate","nameLocation":"373:15:44","parameters":{"id":38899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38898,"mutability":"mutable","name":"swapFee","nameLocation":"397:7:44","nodeType":"VariableDeclaration","scope":38914,"src":"389:15:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38897,"name":"uint256","nodeType":"ElementaryTypeName","src":"389:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"388:17:44"},"returnParameters":{"id":38902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38901,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38914,"src":"453:12:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":38900,"name":"bytes","nodeType":"ElementaryTypeName","src":"453:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"452:14:44"},"scope":39517,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38935,"nodeType":"FunctionDefinition","src":"558:215:44","nodes":[],"body":{"id":38934,"nodeType":"Block","src":"662:111:44","nodes":[],"statements":[{"assignments":[null,38922],"declarations":[null,{"constant":false,"id":38922,"mutability":"mutable","name":"swapFee","nameLocation":"683:7:44","nodeType":"VariableDeclaration","scope":38934,"src":"675:15:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38921,"name":"uint256","nodeType":"ElementaryTypeName","src":"675:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38931,"initialValue":{"arguments":[{"id":38925,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38916,"src":"705:4:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":38926,"name":"LogNormalUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38896,"src":"712:19:44","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_LogNormalUpdateCode_$38896_$","typeString":"type(enum LogNormalLib.LogNormalUpdateCode)"}},{"id":38928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"733:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38927,"name":"uint256","nodeType":"ElementaryTypeName","src":"733:7:44","typeDescriptions":{}}}],"id":38929,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"711:30:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_enum$_LogNormalUpdateCode_$38896_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(enum LogNormalLib.LogNormalUpdateCode),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_enum$_LogNormalUpdateCode_$38896_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(enum LogNormalLib.LogNormalUpdateCode),type(uint256))"}],"expression":{"id":38923,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"694:3:44","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"698:6:44","memberName":"decode","nodeType":"MemberAccess","src":"694:10:44","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":38930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"694:48:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_LogNormalUpdateCode_$38896_$_t_uint256_$","typeString":"tuple(enum LogNormalLib.LogNormalUpdateCode,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"672:70:44"},{"expression":{"id":38932,"name":"swapFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38922,"src":"759:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":38920,"id":38933,"nodeType":"Return","src":"752:14:44"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decodeFeeUpdate","nameLocation":"567:15:44","parameters":{"id":38917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38916,"mutability":"mutable","name":"data","nameLocation":"596:4:44","nodeType":"VariableDeclaration","scope":38935,"src":"583:17:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":38915,"name":"bytes","nodeType":"ElementaryTypeName","src":"583:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"582:19:44"},"returnParameters":{"id":38920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38919,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38935,"src":"649:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38918,"name":"uint256","nodeType":"ElementaryTypeName","src":"649:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"648:9:44"},"scope":39517,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38953,"nodeType":"FunctionDefinition","src":"779:249:44","nodes":[],"body":{"id":38952,"nodeType":"Block","src":"913:115:44","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":38946,"name":"LogNormalUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38896,"src":"954:19:44","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_LogNormalUpdateCode_$38896_$","typeString":"type(enum LogNormalLib.LogNormalUpdateCode)"}},"id":38947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"974:6:44","memberName":"Strike","nodeType":"MemberAccess","referencedDeclaration":38892,"src":"954:26:44","typeDescriptions":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"}},{"id":38948,"name":"targetStrike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38937,"src":"982:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38949,"name":"targetTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38939,"src":"996:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":38944,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"930:3:44","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"934:6:44","memberName":"encode","nodeType":"MemberAccess","src":"930:10:44","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":38950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"930:91:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":38943,"id":38951,"nodeType":"Return","src":"923:98:44"}]},"implemented":true,"kind":"function","modifiers":[],"name":"encodeStrikeUpdate","nameLocation":"788:18:44","parameters":{"id":38940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38937,"mutability":"mutable","name":"targetStrike","nameLocation":"824:12:44","nodeType":"VariableDeclaration","scope":38953,"src":"816:20:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38936,"name":"uint256","nodeType":"ElementaryTypeName","src":"816:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38939,"mutability":"mutable","name":"targetTimestamp","nameLocation":"854:15:44","nodeType":"VariableDeclaration","scope":38953,"src":"846:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38938,"name":"uint256","nodeType":"ElementaryTypeName","src":"846:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"806:69:44"},"returnParameters":{"id":38943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38942,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38953,"src":"899:12:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":38941,"name":"bytes","nodeType":"ElementaryTypeName","src":"899:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"898:14:44"},"scope":39517,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38978,"nodeType":"FunctionDefinition","src":"1034:267:44","nodes":[],"body":{"id":38977,"nodeType":"Block","src":"1179:122:44","nodes":[],"statements":[{"expression":{"id":38975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[null,{"id":38962,"name":"targetStrike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38958,"src":"1192:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38963,"name":"targetTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38960,"src":"1206:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":38964,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1189:33:44","typeDescriptions":{"typeIdentifier":"t_tuple$__$_t_uint256_$_t_uint256_$","typeString":"tuple(,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":38967,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38955,"src":"1248:4:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":38968,"name":"LogNormalUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38896,"src":"1255:19:44","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_LogNormalUpdateCode_$38896_$","typeString":"type(enum LogNormalLib.LogNormalUpdateCode)"}},{"id":38970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1276:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38969,"name":"uint256","nodeType":"ElementaryTypeName","src":"1276:7:44","typeDescriptions":{}}},{"id":38972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1285:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38971,"name":"uint256","nodeType":"ElementaryTypeName","src":"1285:7:44","typeDescriptions":{}}}],"id":38973,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1254:39:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_enum$_LogNormalUpdateCode_$38896_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(enum LogNormalLib.LogNormalUpdateCode),type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_enum$_LogNormalUpdateCode_$38896_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(enum LogNormalLib.LogNormalUpdateCode),type(uint256),type(uint256))"}],"expression":{"id":38965,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1237:3:44","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1241:6:44","memberName":"decode","nodeType":"MemberAccess","src":"1237:10:44","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":38974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1237:57:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_LogNormalUpdateCode_$38896_$_t_uint256_$_t_uint256_$","typeString":"tuple(enum LogNormalLib.LogNormalUpdateCode,uint256,uint256)"}},"src":"1189:105:44","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38976,"nodeType":"ExpressionStatement","src":"1189:105:44"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decodeStrikeUpdate","nameLocation":"1043:18:44","parameters":{"id":38956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38955,"mutability":"mutable","name":"data","nameLocation":"1075:4:44","nodeType":"VariableDeclaration","scope":38978,"src":"1062:17:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":38954,"name":"bytes","nodeType":"ElementaryTypeName","src":"1062:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1061:19:44"},"returnParameters":{"id":38961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38958,"mutability":"mutable","name":"targetStrike","nameLocation":"1136:12:44","nodeType":"VariableDeclaration","scope":38978,"src":"1128:20:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38957,"name":"uint256","nodeType":"ElementaryTypeName","src":"1128:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38960,"mutability":"mutable","name":"targetTimestamp","nameLocation":"1158:15:44","nodeType":"VariableDeclaration","scope":38978,"src":"1150:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38959,"name":"uint256","nodeType":"ElementaryTypeName","src":"1150:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1127:47:44"},"scope":39517,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38996,"nodeType":"FunctionDefinition","src":"1307:235:44","nodes":[],"body":{"id":38995,"nodeType":"Block","src":"1439:103:44","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":38989,"name":"LogNormalUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38896,"src":"1479:19:44","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_LogNormalUpdateCode_$38896_$","typeString":"type(enum LogNormalLib.LogNormalUpdateCode)"}},"id":38990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1499:5:44","memberName":"Sigma","nodeType":"MemberAccess","referencedDeclaration":38893,"src":"1479:25:44","typeDescriptions":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"}},{"id":38991,"name":"targetSigma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38980,"src":"1506:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38992,"name":"targetTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38982,"src":"1519:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":38987,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1468:3:44","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1472:6:44","memberName":"encode","nodeType":"MemberAccess","src":"1468:10:44","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":38993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1468:67:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":38986,"id":38994,"nodeType":"Return","src":"1449:86:44"}]},"implemented":true,"kind":"function","modifiers":[],"name":"encodeSigmaUpdate","nameLocation":"1316:17:44","parameters":{"id":38983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38980,"mutability":"mutable","name":"targetSigma","nameLocation":"1351:11:44","nodeType":"VariableDeclaration","scope":38996,"src":"1343:19:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38979,"name":"uint256","nodeType":"ElementaryTypeName","src":"1343:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38982,"mutability":"mutable","name":"targetTimestamp","nameLocation":"1380:15:44","nodeType":"VariableDeclaration","scope":38996,"src":"1372:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38981,"name":"uint256","nodeType":"ElementaryTypeName","src":"1372:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1333:68:44"},"returnParameters":{"id":38986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38985,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38996,"src":"1425:12:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":38984,"name":"bytes","nodeType":"ElementaryTypeName","src":"1425:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1424:14:44"},"scope":39517,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39021,"nodeType":"FunctionDefinition","src":"1548:264:44","nodes":[],"body":{"id":39020,"nodeType":"Block","src":"1691:121:44","nodes":[],"statements":[{"expression":{"id":39018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[null,{"id":39005,"name":"targetSigma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39001,"src":"1704:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39006,"name":"targetTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39003,"src":"1717:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":39007,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1701:32:44","typeDescriptions":{"typeIdentifier":"t_tuple$__$_t_uint256_$_t_uint256_$","typeString":"tuple(,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":39010,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38998,"src":"1759:4:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":39011,"name":"LogNormalUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38896,"src":"1766:19:44","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_LogNormalUpdateCode_$38896_$","typeString":"type(enum LogNormalLib.LogNormalUpdateCode)"}},{"id":39013,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1787:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39012,"name":"uint256","nodeType":"ElementaryTypeName","src":"1787:7:44","typeDescriptions":{}}},{"id":39015,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1796:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39014,"name":"uint256","nodeType":"ElementaryTypeName","src":"1796:7:44","typeDescriptions":{}}}],"id":39016,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1765:39:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_enum$_LogNormalUpdateCode_$38896_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(enum LogNormalLib.LogNormalUpdateCode),type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_enum$_LogNormalUpdateCode_$38896_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(enum LogNormalLib.LogNormalUpdateCode),type(uint256),type(uint256))"}],"expression":{"id":39008,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1748:3:44","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":39009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1752:6:44","memberName":"decode","nodeType":"MemberAccess","src":"1748:10:44","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":39017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1748:57:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_LogNormalUpdateCode_$38896_$_t_uint256_$_t_uint256_$","typeString":"tuple(enum LogNormalLib.LogNormalUpdateCode,uint256,uint256)"}},"src":"1701:104:44","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39019,"nodeType":"ExpressionStatement","src":"1701:104:44"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decodeSigmaUpdate","nameLocation":"1557:17:44","parameters":{"id":38999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38998,"mutability":"mutable","name":"data","nameLocation":"1588:4:44","nodeType":"VariableDeclaration","scope":39021,"src":"1575:17:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":38997,"name":"bytes","nodeType":"ElementaryTypeName","src":"1575:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1574:19:44"},"returnParameters":{"id":39004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39001,"mutability":"mutable","name":"targetSigma","nameLocation":"1649:11:44","nodeType":"VariableDeclaration","scope":39021,"src":"1641:19:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39000,"name":"uint256","nodeType":"ElementaryTypeName","src":"1641:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39003,"mutability":"mutable","name":"targetTimestamp","nameLocation":"1670:15:44","nodeType":"VariableDeclaration","scope":39021,"src":"1662:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39002,"name":"uint256","nodeType":"ElementaryTypeName","src":"1662:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1640:46:44"},"scope":39517,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39039,"nodeType":"FunctionDefinition","src":"1818:215:44","nodes":[],"body":{"id":39038,"nodeType":"Block","src":"1946:87:44","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":39032,"name":"LogNormalUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38896,"src":"1974:19:44","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_LogNormalUpdateCode_$38896_$","typeString":"type(enum LogNormalLib.LogNormalUpdateCode)"}},"id":39033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1994:3:44","memberName":"Tau","nodeType":"MemberAccess","referencedDeclaration":38894,"src":"1974:23:44","typeDescriptions":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"}},{"id":39034,"name":"targetTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39023,"src":"1999:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39035,"name":"targetTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39025,"src":"2010:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39030,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1963:3:44","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":39031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1967:6:44","memberName":"encode","nodeType":"MemberAccess","src":"1963:10:44","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":39036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1963:63:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":39029,"id":39037,"nodeType":"Return","src":"1956:70:44"}]},"implemented":true,"kind":"function","modifiers":[],"name":"encodeTauUpdate","nameLocation":"1827:15:44","parameters":{"id":39026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39023,"mutability":"mutable","name":"targetTau","nameLocation":"1860:9:44","nodeType":"VariableDeclaration","scope":39039,"src":"1852:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39022,"name":"uint256","nodeType":"ElementaryTypeName","src":"1852:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39025,"mutability":"mutable","name":"targetTimestamp","nameLocation":"1887:15:44","nodeType":"VariableDeclaration","scope":39039,"src":"1879:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39024,"name":"uint256","nodeType":"ElementaryTypeName","src":"1879:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1842:66:44"},"returnParameters":{"id":39029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39028,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":39039,"src":"1932:12:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":39027,"name":"bytes","nodeType":"ElementaryTypeName","src":"1932:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1931:14:44"},"scope":39517,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39064,"nodeType":"FunctionDefinition","src":"2039:258:44","nodes":[],"body":{"id":39063,"nodeType":"Block","src":"2178:119:44","nodes":[],"statements":[{"expression":{"id":39061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[null,{"id":39048,"name":"targetTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39044,"src":"2191:9:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39049,"name":"targetTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39046,"src":"2202:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":39050,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2188:30:44","typeDescriptions":{"typeIdentifier":"t_tuple$__$_t_uint256_$_t_uint256_$","typeString":"tuple(,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":39053,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39041,"src":"2244:4:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":39054,"name":"LogNormalUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38896,"src":"2251:19:44","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_LogNormalUpdateCode_$38896_$","typeString":"type(enum LogNormalLib.LogNormalUpdateCode)"}},{"id":39056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2272:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39055,"name":"uint256","nodeType":"ElementaryTypeName","src":"2272:7:44","typeDescriptions":{}}},{"id":39058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2281:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39057,"name":"uint256","nodeType":"ElementaryTypeName","src":"2281:7:44","typeDescriptions":{}}}],"id":39059,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2250:39:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_enum$_LogNormalUpdateCode_$38896_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(enum LogNormalLib.LogNormalUpdateCode),type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_enum$_LogNormalUpdateCode_$38896_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(enum LogNormalLib.LogNormalUpdateCode),type(uint256),type(uint256))"}],"expression":{"id":39051,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2233:3:44","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":39052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2237:6:44","memberName":"decode","nodeType":"MemberAccess","src":"2233:10:44","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":39060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2233:57:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_LogNormalUpdateCode_$38896_$_t_uint256_$_t_uint256_$","typeString":"tuple(enum LogNormalLib.LogNormalUpdateCode,uint256,uint256)"}},"src":"2188:102:44","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39062,"nodeType":"ExpressionStatement","src":"2188:102:44"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decodeTauUpdate","nameLocation":"2048:15:44","parameters":{"id":39042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39041,"mutability":"mutable","name":"data","nameLocation":"2077:4:44","nodeType":"VariableDeclaration","scope":39064,"src":"2064:17:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":39040,"name":"bytes","nodeType":"ElementaryTypeName","src":"2064:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2063:19:44"},"returnParameters":{"id":39047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39044,"mutability":"mutable","name":"targetTau","nameLocation":"2138:9:44","nodeType":"VariableDeclaration","scope":39064,"src":"2130:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39043,"name":"uint256","nodeType":"ElementaryTypeName","src":"2130:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39046,"mutability":"mutable","name":"targetTimestamp","nameLocation":"2157:15:44","nodeType":"VariableDeclaration","scope":39064,"src":"2149:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39045,"name":"uint256","nodeType":"ElementaryTypeName","src":"2149:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2129:44:44"},"scope":39517,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39079,"nodeType":"FunctionDefinition","src":"2303:200:44","nodes":[],"body":{"id":39078,"nodeType":"Block","src":"2425:78:44","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":39073,"name":"LogNormalUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38896,"src":"2453:19:44","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_LogNormalUpdateCode_$38896_$","typeString":"type(enum LogNormalLib.LogNormalUpdateCode)"}},"id":39074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2473:10:44","memberName":"Controller","nodeType":"MemberAccess","referencedDeclaration":38895,"src":"2453:30:44","typeDescriptions":{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"}},{"id":39075,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39066,"src":"2485:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_LogNormalUpdateCode_$38896","typeString":"enum LogNormalLib.LogNormalUpdateCode"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":39071,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2442:3:44","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":39072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2446:6:44","memberName":"encode","nodeType":"MemberAccess","src":"2442:10:44","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":39076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2442:54:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":39070,"id":39077,"nodeType":"Return","src":"2435:61:44"}]},"implemented":true,"kind":"function","modifiers":[],"name":"encodeControllerUpdate","nameLocation":"2312:22:44","parameters":{"id":39067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39066,"mutability":"mutable","name":"controller","nameLocation":"2343:10:44","nodeType":"VariableDeclaration","scope":39079,"src":"2335:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39065,"name":"address","nodeType":"ElementaryTypeName","src":"2335:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2334:20:44"},"returnParameters":{"id":39070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39069,"mutability":"mutable","name":"data","nameLocation":"2415:4:44","nodeType":"VariableDeclaration","scope":39079,"src":"2402:17:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":39068,"name":"bytes","nodeType":"ElementaryTypeName","src":"2402:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2401:19:44"},"scope":39517,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39099,"nodeType":"FunctionDefinition","src":"2509:204:44","nodes":[],"body":{"id":39098,"nodeType":"Block","src":"2631:82:44","nodes":[],"statements":[{"expression":{"id":39096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[null,{"id":39086,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39084,"src":"2644:10:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":39087,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2641:14:44","typeDescriptions":{"typeIdentifier":"t_tuple$__$_t_address_$","typeString":"tuple(,address)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":39090,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39081,"src":"2669:4:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":39091,"name":"LogNormalUpdateCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38896,"src":"2676:19:44","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_LogNormalUpdateCode_$38896_$","typeString":"type(enum LogNormalLib.LogNormalUpdateCode)"}},{"id":39093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2697:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":39092,"name":"address","nodeType":"ElementaryTypeName","src":"2697:7:44","typeDescriptions":{}}}],"id":39094,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2675:30:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_enum$_LogNormalUpdateCode_$38896_$_$_t_type$_t_address_$_$","typeString":"tuple(type(enum LogNormalLib.LogNormalUpdateCode),type(address))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_enum$_LogNormalUpdateCode_$38896_$_$_t_type$_t_address_$_$","typeString":"tuple(type(enum LogNormalLib.LogNormalUpdateCode),type(address))"}],"expression":{"id":39088,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2658:3:44","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":39089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2662:6:44","memberName":"decode","nodeType":"MemberAccess","src":"2658:10:44","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":39095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2658:48:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_LogNormalUpdateCode_$38896_$_t_address_payable_$","typeString":"tuple(enum LogNormalLib.LogNormalUpdateCode,address payable)"}},"src":"2641:65:44","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39097,"nodeType":"ExpressionStatement","src":"2641:65:44"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decodeControllerUpdate","nameLocation":"2518:22:44","parameters":{"id":39082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39081,"mutability":"mutable","name":"data","nameLocation":"2554:4:44","nodeType":"VariableDeclaration","scope":39099,"src":"2541:17:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":39080,"name":"bytes","nodeType":"ElementaryTypeName","src":"2541:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2540:19:44"},"returnParameters":{"id":39085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39084,"mutability":"mutable","name":"controller","nameLocation":"2615:10:44","nodeType":"VariableDeclaration","scope":39099,"src":"2607:18:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39083,"name":"address","nodeType":"ElementaryTypeName","src":"2607:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2606:20:44"},"scope":39517,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39225,"nodeType":"FunctionDefinition","src":"2719:1063:44","nodes":[],"body":{"id":39224,"nodeType":"Block","src":"2889:893:44","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39114,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39101,"src":"2907:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39115,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39105,"src":"2912:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2907:6:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"74726164696e6746756e6374696f6e3a20696e76616c69642078","id":39117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2915:28:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_94c1ee4a096f11a48103dea3fb52372f4294fe80f1f82a5c7790a7c5dac326f4","typeString":"literal_string \"tradingFunction: invalid x\""},"value":"tradingFunction: invalid x"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_94c1ee4a096f11a48103dea3fb52372f4294fe80f1f82a5c7790a7c5dac326f4","typeString":"literal_string \"tradingFunction: invalid x\""}],"id":39113,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2899:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":39118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2899:45:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39119,"nodeType":"ExpressionStatement","src":"2899:45:44"},{"assignments":[39121],"declarations":[{"constant":false,"id":39121,"mutability":"mutable","name":"AAAAA","nameLocation":"2962:5:44","nodeType":"VariableDeclaration","scope":39224,"src":"2955:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39120,"name":"int256","nodeType":"ElementaryTypeName","src":"2955:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":39122,"nodeType":"VariableDeclarationStatement","src":"2955:12:44"},{"assignments":[39124],"declarations":[{"constant":false,"id":39124,"mutability":"mutable","name":"BBBBB","nameLocation":"2984:5:44","nodeType":"VariableDeclaration","scope":39224,"src":"2977:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39123,"name":"int256","nodeType":"ElementaryTypeName","src":"2977:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":39125,"nodeType":"VariableDeclarationStatement","src":"2977:12:44"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":39128,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39101,"src":"3032:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39129,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39105,"src":"3036:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39126,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"3003:17:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":39127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3021:10:44","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"3003:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3003:35:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":39131,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"3042:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3003:42:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":39159,"nodeType":"Block","src":"3106:90:44","statements":[{"expression":{"id":39157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39145,"name":"AAAAA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39121,"src":"3120:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":39152,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39101,"src":"3177:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39153,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39105,"src":"3181:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39150,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"3148:17:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":39151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3166:10:44","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"3148:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3148:35:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3141:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39148,"name":"int256","nodeType":"ElementaryTypeName","src":"3141:6:44","typeDescriptions":{}}},"id":39155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3141:43:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":39146,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"3128:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":39147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3137:3:44","memberName":"ppf","nodeType":"MemberAccess","referencedDeclaration":27373,"src":"3128:12:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":39156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3128:57:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3120:65:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39158,"nodeType":"ExpressionStatement","src":"3120:65:44"}]},"id":39160,"nodeType":"IfStatement","src":"2999:197:44","trueBody":{"id":39144,"nodeType":"Block","src":"3047:53:44","statements":[{"expression":{"id":39142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39133,"name":"AAAAA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39121,"src":"3061:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"},"id":39140,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"id":39138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":39136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3076:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"323535","id":39137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3081:3:44","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"3076:8:44","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":39139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3087:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3076:12:44","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"}],"id":39135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3069:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39134,"name":"int256","nodeType":"ElementaryTypeName","src":"3069:6:44","typeDescriptions":{}}},"id":39141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3069:20:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3061:28:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39143,"nodeType":"ExpressionStatement","src":"3061:28:44"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":39163,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39103,"src":"3268:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":39166,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39108,"src":"3301:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":39167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3308:6:44","memberName":"strike","nodeType":"MemberAccess","referencedDeclaration":38195,"src":"3301:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39168,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39105,"src":"3316:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39164,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"3272:17:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":39165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3290:10:44","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"3272:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3272:46:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39161,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"3222:17:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":39162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3240:10:44","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"3222:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3222:110:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":39171,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"3336:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3222:117:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":39204,"nodeType":"Block","src":"3409:249:44","statements":[{"expression":{"id":39202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39185,"name":"BBBBB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39124,"src":"3423:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":39192,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39103,"src":"3543:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":39195,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39108,"src":"3576:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":39196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3583:6:44","memberName":"strike","nodeType":"MemberAccess","referencedDeclaration":38195,"src":"3576:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39197,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39105,"src":"3591:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39193,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"3547:17:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":39194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3565:10:44","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"3547:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3547:46:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39190,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"3489:17:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":39191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3507:10:44","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"3489:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3489:126:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3461:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39188,"name":"int256","nodeType":"ElementaryTypeName","src":"3461:6:44","typeDescriptions":{}}},"id":39200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3461:172:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":39186,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"3431:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":39187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3440:3:44","memberName":"ppf","nodeType":"MemberAccess","referencedDeclaration":27373,"src":"3431:12:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":39201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3431:216:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3423:224:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39203,"nodeType":"ExpressionStatement","src":"3423:224:44"}]},"id":39205,"nodeType":"IfStatement","src":"3205:453:44","trueBody":{"id":39184,"nodeType":"Block","src":"3350:53:44","statements":[{"expression":{"id":39182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39173,"name":"BBBBB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39124,"src":"3364:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"},"id":39180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"id":39178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":39176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3379:1:44","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"323535","id":39177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3384:3:44","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"3379:8:44","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":39179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3390:1:44","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3379:12:44","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"}],"id":39175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3372:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39174,"name":"int256","nodeType":"ElementaryTypeName","src":"3372:6:44","typeDescriptions":{}}},"id":39181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3372:20:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3364:28:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39183,"nodeType":"ExpressionStatement","src":"3364:28:44"}]}},{"assignments":[39207],"declarations":[{"constant":false,"id":39207,"mutability":"mutable","name":"CCCCC","nameLocation":"3675:5:44","nodeType":"VariableDeclaration","scope":39224,"src":"3668:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39206,"name":"int256","nodeType":"ElementaryTypeName","src":"3668:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":39217,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":39211,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39108,"src":"3710:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":39212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3717:5:44","memberName":"sigma","nodeType":"MemberAccess","referencedDeclaration":38197,"src":"3710:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":39213,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39108,"src":"3724:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":39214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3731:3:44","memberName":"tau","nodeType":"MemberAccess","referencedDeclaration":38199,"src":"3724:10:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39210,"name":"computeSigmaSqrtTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39577,"src":"3690:19:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3690:45:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3683:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39208,"name":"int256","nodeType":"ElementaryTypeName","src":"3683:6:44","typeDescriptions":{}}},"id":39216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3683:53:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"3668:68:44"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39218,"name":"AAAAA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39121,"src":"3754:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":39219,"name":"BBBBB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39124,"src":"3762:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3754:13:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":39221,"name":"CCCCC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39207,"src":"3770:5:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3754:21:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":39112,"id":39223,"nodeType":"Return","src":"3747:28:44"}]},"implemented":true,"kind":"function","modifiers":[],"name":"tradingFunction","nameLocation":"2728:15:44","parameters":{"id":39109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39101,"mutability":"mutable","name":"rx","nameLocation":"2761:2:44","nodeType":"VariableDeclaration","scope":39225,"src":"2753:10:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39100,"name":"uint256","nodeType":"ElementaryTypeName","src":"2753:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39103,"mutability":"mutable","name":"ry","nameLocation":"2781:2:44","nodeType":"VariableDeclaration","scope":39225,"src":"2773:10:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39102,"name":"uint256","nodeType":"ElementaryTypeName","src":"2773:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39105,"mutability":"mutable","name":"L","nameLocation":"2801:1:44","nodeType":"VariableDeclaration","scope":39225,"src":"2793:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39104,"name":"uint256","nodeType":"ElementaryTypeName","src":"2793:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39108,"mutability":"mutable","name":"params","nameLocation":"2845:6:44","nodeType":"VariableDeclaration","scope":39225,"src":"2812:39:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":39107,"nodeType":"UserDefinedTypeName","pathNode":{"id":39106,"name":"LogNormal.LogNormalParams","nameLocations":["2812:9:44","2822:15:44"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"2812:25:44"},"referencedDeclaration":38204,"src":"2812:25:44","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"src":"2743:114:44"},"returnParameters":{"id":39112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39111,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":39225,"src":"2881:6:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39110,"name":"int256","nodeType":"ElementaryTypeName","src":"2881:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2880:8:44"},"scope":39517,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39254,"nodeType":"FunctionDefinition","src":"3788:241:44","nodes":[],"body":{"id":39253,"nodeType":"Block","src":"3896:133:44","nodes":[],"statements":[{"assignments":[39233],"declarations":[{"constant":false,"id":39233,"mutability":"mutable","name":"sigmaSquaredWad","nameLocation":"3913:15:44","nodeType":"VariableDeclaration","scope":39253,"src":"3906:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39232,"name":"int256","nodeType":"ElementaryTypeName","src":"3906:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":39244,"initialValue":{"arguments":[{"arguments":[{"id":39241,"name":"TWO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30633,"src":"3959:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3952:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39239,"name":"int256","nodeType":"ElementaryTypeName","src":"3952:6:44","typeDescriptions":{}}},"id":39242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3952:11:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":39236,"name":"sigma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39227,"src":"3938:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3931:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39234,"name":"int256","nodeType":"ElementaryTypeName","src":"3931:6:44","typeDescriptions":{}}},"id":39237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3931:13:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3945:6:44","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"3931:20:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":39243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3931:33:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"3906:58:44"},{"expression":{"arguments":[{"arguments":[{"id":39249,"name":"sigmaSquaredWad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39233,"src":"4005:15:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":39248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3997:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39247,"name":"uint256","nodeType":"ElementaryTypeName","src":"3997:7:44","typeDescriptions":{}}},"id":39250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3997:24:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39245,"name":"HALF","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30636,"src":"3981:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3986:10:44","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"3981:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3981:41:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":39231,"id":39252,"nodeType":"Return","src":"3974:48:44"}]},"implemented":true,"kind":"function","modifiers":[],"name":"computeHalfSigmaSquared","nameLocation":"3797:23:44","parameters":{"id":39228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39227,"mutability":"mutable","name":"sigma","nameLocation":"3829:5:44","nodeType":"VariableDeclaration","scope":39254,"src":"3821:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39226,"name":"uint256","nodeType":"ElementaryTypeName","src":"3821:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3820:15:44"},"returnParameters":{"id":39231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39230,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":39254,"src":"3883:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39229,"name":"uint256","nodeType":"ElementaryTypeName","src":"3883:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3882:9:44"},"scope":39517,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39375,"nodeType":"FunctionDefinition","src":"4123:1476:44","nodes":[],"body":{"id":39374,"nodeType":"Block","src":"4283:1316:44","nodes":[],"statements":[{"assignments":[39268],"declarations":[{"constant":false,"id":39268,"mutability":"mutable","name":"sigmaSqrtTau","nameLocation":"4301:12:44","nodeType":"VariableDeclaration","scope":39374,"src":"4293:20:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39267,"name":"uint256","nodeType":"ElementaryTypeName","src":"4293:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39275,"initialValue":{"arguments":[{"expression":{"id":39270,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39262,"src":"4336:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":39271,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4343:5:44","memberName":"sigma","nodeType":"MemberAccess","referencedDeclaration":38197,"src":"4336:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":39272,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39262,"src":"4350:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":39273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4357:3:44","memberName":"tau","nodeType":"MemberAccess","referencedDeclaration":38199,"src":"4350:10:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39269,"name":"computeSigmaSqrtTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39577,"src":"4316:19:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4316:45:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4293:68:44"},{"assignments":[39277],"declarations":[{"constant":false,"id":39277,"mutability":"mutable","name":"halfSigmaSquared","nameLocation":"4379:16:44","nodeType":"VariableDeclaration","scope":39374,"src":"4371:24:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39276,"name":"uint256","nodeType":"ElementaryTypeName","src":"4371:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39284,"initialValue":{"arguments":[{"expression":{"id":39279,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39262,"src":"4437:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":39280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4444:5:44","memberName":"sigma","nodeType":"MemberAccess","referencedDeclaration":38197,"src":"4437:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":39281,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39262,"src":"4451:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":39282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4458:3:44","memberName":"tau","nodeType":"MemberAccess","referencedDeclaration":38199,"src":"4451:10:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39278,"name":"computeHalfSigmaTauSquared","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39613,"src":"4410:26:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4410:52:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4371:91:44"},{"assignments":[39286],"declarations":[{"constant":false,"id":39286,"mutability":"mutable","name":"halfSigmaSquaredTau","nameLocation":"4480:19:44","nodeType":"VariableDeclaration","scope":39374,"src":"4472:27:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39285,"name":"uint256","nodeType":"ElementaryTypeName","src":"4472:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39292,"initialValue":{"arguments":[{"expression":{"id":39289,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39262,"src":"4530:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":39290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4537:3:44","memberName":"tau","nodeType":"MemberAccess","referencedDeclaration":38199,"src":"4530:10:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39287,"name":"halfSigmaSquared","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39277,"src":"4502:16:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4519:10:44","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"4502:27:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4502:39:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4472:69:44"},{"assignments":[39294],"declarations":[{"constant":false,"id":39294,"mutability":"mutable","name":"reserveXDivLiquidity","nameLocation":"4659:20:44","nodeType":"VariableDeclaration","scope":39374,"src":"4652:27:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39293,"name":"int256","nodeType":"ElementaryTypeName","src":"4652:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":39302,"initialValue":{"arguments":[{"arguments":[{"id":39299,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39259,"src":"4703:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39297,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39257,"src":"4689:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4692:10:44","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"4689:13:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4689:16:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4682:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39295,"name":"int256","nodeType":"ElementaryTypeName","src":"4682:6:44","typeDescriptions":{}}},"id":39301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4682:24:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"4652:54:44"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39303,"name":"reserveXDivLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39294,"src":"4754:20:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[{"id":39306,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"4785:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4778:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39304,"name":"int256","nodeType":"ElementaryTypeName","src":"4778:6:44","typeDescriptions":{}}},"id":39307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4778:11:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4754:35:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39312,"nodeType":"IfStatement","src":"4750:74:44","trueBody":{"id":39311,"nodeType":"Block","src":"4791:33:44","statements":[{"expression":{"hexValue":"30","id":39309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4812:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":39266,"id":39310,"nodeType":"Return","src":"4805:8:44"}]}},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39313,"name":"reserveXDivLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39294,"src":"4878:20:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":39316,"name":"ZERO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30649,"src":"4909:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4902:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39314,"name":"int256","nodeType":"ElementaryTypeName","src":"4902:6:44","typeDescriptions":{}}},"id":39317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4902:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4878:36:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39322,"nodeType":"IfStatement","src":"4874:190:44","trueBody":{"id":39321,"nodeType":"Block","src":"4916:148:44","statements":[{"expression":{"id":39319,"name":"INFINITY_IS_NOT_REAL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30646,"src":"5033:20:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":39266,"id":39320,"nodeType":"Return","src":"5026:27:44"}]}},{"assignments":[39324],"declarations":[{"constant":false,"id":39324,"mutability":"mutable","name":"inverse_cdf_result","nameLocation":"5184:18:44","nodeType":"VariableDeclaration","scope":39374,"src":"5177:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39323,"name":"int256","nodeType":"ElementaryTypeName","src":"5177:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":39334,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":39329,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"5237:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39328,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5230:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39327,"name":"int256","nodeType":"ElementaryTypeName","src":"5230:6:44","typeDescriptions":{}}},"id":39330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5230:11:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":39331,"name":"reserveXDivLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39294,"src":"5244:20:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5230:34:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":39325,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"5217:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":39326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5226:3:44","memberName":"ppf","nodeType":"MemberAccess","referencedDeclaration":27373,"src":"5217:12:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":39333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5217:48:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"5177:88:44"},{"assignments":[39336],"declarations":[{"constant":false,"id":39336,"mutability":"mutable","name":"exponent","nameLocation":"5282:8:44","nodeType":"VariableDeclaration","scope":39374,"src":"5275:15:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39335,"name":"int256","nodeType":"ElementaryTypeName","src":"5275:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":39353,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39337,"name":"inverse_cdf_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39324,"src":"5293:18:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":39340,"name":"sigmaSqrtTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39268,"src":"5321:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5314:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39338,"name":"int256","nodeType":"ElementaryTypeName","src":"5314:6:44","typeDescriptions":{}}},"id":39341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5314:20:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5293:41:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"arguments":[{"id":39345,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"5356:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5349:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39343,"name":"int256","nodeType":"ElementaryTypeName","src":"5349:6:44","typeDescriptions":{}}},"id":39346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5349:11:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5293:67:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":39350,"name":"halfSigmaSquaredTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39286,"src":"5370:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5363:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39348,"name":"int256","nodeType":"ElementaryTypeName","src":"5363:6:44","typeDescriptions":{}}},"id":39351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5363:27:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5293:97:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"5275:115:44"},{"assignments":[39355],"declarations":[{"constant":false,"id":39355,"mutability":"mutable","name":"exp_result","nameLocation":"5451:10:44","nodeType":"VariableDeclaration","scope":39374,"src":"5444:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39354,"name":"int256","nodeType":"ElementaryTypeName","src":"5444:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":39359,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":39356,"name":"exponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39336,"src":"5464:8:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5473:6:44","memberName":"expWad","nodeType":"MemberAccess","referencedDeclaration":26316,"src":"5464:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":39358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5464:17:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"5444:37:44"},{"assignments":[39361],"declarations":[{"constant":false,"id":39361,"mutability":"mutable","name":"exp_result_uint","nameLocation":"5499:15:44","nodeType":"VariableDeclaration","scope":39374,"src":"5491:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39360,"name":"uint256","nodeType":"ElementaryTypeName","src":"5491:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39365,"initialValue":{"arguments":[{"id":39363,"name":"exp_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39355,"src":"5524:10:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":39362,"name":"toUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39516,"src":"5517:6:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":39364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5517:18:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5491:44:44"},{"expression":{"id":39372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39366,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39265,"src":"5545:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":39370,"name":"exp_result_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39361,"src":"5576:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":39367,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39262,"src":"5553:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":39368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5560:6:44","memberName":"strike","nodeType":"MemberAccess","referencedDeclaration":38195,"src":"5553:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5567:8:44","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"5553:22:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5553:39:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5545:47:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39373,"nodeType":"ExpressionStatement","src":"5545:47:44"}]},"documentation":{"id":39255,"nodeType":"StructuredDocumentation","src":"4035:83:44","text":"@dev Computes the approximated spot price given current reserves and liquidity."},"implemented":true,"kind":"function","modifiers":[],"name":"computePriceGivenX","nameLocation":"4132:18:44","parameters":{"id":39263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39257,"mutability":"mutable","name":"rx","nameLocation":"4168:2:44","nodeType":"VariableDeclaration","scope":39375,"src":"4160:10:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39256,"name":"uint256","nodeType":"ElementaryTypeName","src":"4160:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39259,"mutability":"mutable","name":"L","nameLocation":"4188:1:44","nodeType":"VariableDeclaration","scope":39375,"src":"4180:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39258,"name":"uint256","nodeType":"ElementaryTypeName","src":"4180:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39262,"mutability":"mutable","name":"params","nameLocation":"4232:6:44","nodeType":"VariableDeclaration","scope":39375,"src":"4199:39:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":39261,"nodeType":"UserDefinedTypeName","pathNode":{"id":39260,"name":"LogNormal.LogNormalParams","nameLocations":["4199:9:44","4209:15:44"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"4199:25:44"},"referencedDeclaration":38204,"src":"4199:25:44","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"src":"4150:94:44"},"returnParameters":{"id":39266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39265,"mutability":"mutable","name":"price","nameLocation":"4276:5:44","nodeType":"VariableDeclaration","scope":39375,"src":"4268:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39264,"name":"uint256","nodeType":"ElementaryTypeName","src":"4268:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4267:15:44"},"scope":39517,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39494,"nodeType":"FunctionDefinition","src":"5605:1424:44","nodes":[],"body":{"id":39493,"nodeType":"Block","src":"5765:1264:44","nodes":[],"statements":[{"assignments":[39388],"declarations":[{"constant":false,"id":39388,"mutability":"mutable","name":"sigmaSqrtTau","nameLocation":"5783:12:44","nodeType":"VariableDeclaration","scope":39493,"src":"5775:20:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39387,"name":"uint256","nodeType":"ElementaryTypeName","src":"5775:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39395,"initialValue":{"arguments":[{"expression":{"id":39390,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39382,"src":"5818:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":39391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5825:5:44","memberName":"sigma","nodeType":"MemberAccess","referencedDeclaration":38197,"src":"5818:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":39392,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39382,"src":"5832:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":39393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5839:3:44","memberName":"tau","nodeType":"MemberAccess","referencedDeclaration":38199,"src":"5832:10:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39389,"name":"computeSigmaSqrtTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39577,"src":"5798:19:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5798:45:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5775:68:44"},{"assignments":[39397],"declarations":[{"constant":false,"id":39397,"mutability":"mutable","name":"halfSigmaSquared","nameLocation":"5861:16:44","nodeType":"VariableDeclaration","scope":39493,"src":"5853:24:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39396,"name":"uint256","nodeType":"ElementaryTypeName","src":"5853:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39404,"initialValue":{"arguments":[{"expression":{"id":39399,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39382,"src":"5919:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":39400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5926:5:44","memberName":"sigma","nodeType":"MemberAccess","referencedDeclaration":38197,"src":"5919:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":39401,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39382,"src":"5933:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":39402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5940:3:44","memberName":"tau","nodeType":"MemberAccess","referencedDeclaration":38199,"src":"5933:10:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39398,"name":"computeHalfSigmaTauSquared","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39613,"src":"5892:26:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5892:52:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5853:91:44"},{"assignments":[39406],"declarations":[{"constant":false,"id":39406,"mutability":"mutable","name":"halfSigmaSquaredTau","nameLocation":"5962:19:44","nodeType":"VariableDeclaration","scope":39493,"src":"5954:27:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39405,"name":"uint256","nodeType":"ElementaryTypeName","src":"5954:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39412,"initialValue":{"arguments":[{"expression":{"id":39409,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39382,"src":"6012:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":39410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6019:3:44","memberName":"tau","nodeType":"MemberAccess","referencedDeclaration":38199,"src":"6012:10:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39407,"name":"halfSigmaSquared","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39397,"src":"5984:16:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6001:10:44","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"5984:27:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5984:39:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5954:69:44"},{"assignments":[39414],"declarations":[{"constant":false,"id":39414,"mutability":"mutable","name":"yOverKL","nameLocation":"6141:7:44","nodeType":"VariableDeclaration","scope":39493,"src":"6134:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39413,"name":"int256","nodeType":"ElementaryTypeName","src":"6134:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":39426,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":39422,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39379,"src":"6197:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":39419,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39382,"src":"6172:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":39420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6179:6:44","memberName":"strike","nodeType":"MemberAccess","referencedDeclaration":38195,"src":"6172:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6186:10:44","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"6172:24:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6172:27:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39417,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39377,"src":"6158:2:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6161:10:44","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"6158:13:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6158:42:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6151:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39415,"name":"int256","nodeType":"ElementaryTypeName","src":"6151:6:44","typeDescriptions":{}}},"id":39425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6151:50:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6134:67:44"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39427,"name":"yOverKL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39414,"src":"6249:7:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[{"id":39430,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"6267:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6260:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39428,"name":"int256","nodeType":"ElementaryTypeName","src":"6260:6:44","typeDescriptions":{}}},"id":39431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6260:11:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6249:22:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39436,"nodeType":"IfStatement","src":"6245:61:44","trueBody":{"id":39435,"nodeType":"Block","src":"6273:33:44","statements":[{"expression":{"hexValue":"30","id":39433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6294:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":39386,"id":39434,"nodeType":"Return","src":"6287:8:44"}]}},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39437,"name":"yOverKL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39414,"src":"6360:7:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":39440,"name":"ZERO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30649,"src":"6378:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6371:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39438,"name":"int256","nodeType":"ElementaryTypeName","src":"6371:6:44","typeDescriptions":{}}},"id":39441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6371:12:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6360:23:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39446,"nodeType":"IfStatement","src":"6356:177:44","trueBody":{"id":39445,"nodeType":"Block","src":"6385:148:44","statements":[{"expression":{"id":39443,"name":"INFINITY_IS_NOT_REAL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30646,"src":"6502:20:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":39386,"id":39444,"nodeType":"Return","src":"6495:27:44"}]}},{"assignments":[39448],"declarations":[{"constant":false,"id":39448,"mutability":"mutable","name":"inverse_cdf_result","nameLocation":"6653:18:44","nodeType":"VariableDeclaration","scope":39493,"src":"6646:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39447,"name":"int256","nodeType":"ElementaryTypeName","src":"6646:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":39453,"initialValue":{"arguments":[{"id":39451,"name":"yOverKL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39414,"src":"6687:7:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":39449,"name":"Gaussian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27374,"src":"6674:8:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gaussian_$27374_$","typeString":"type(library Gaussian)"}},"id":39450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6683:3:44","memberName":"ppf","nodeType":"MemberAccess","referencedDeclaration":27373,"src":"6674:12:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":39452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6674:21:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6646:49:44"},{"assignments":[39455],"declarations":[{"constant":false,"id":39455,"mutability":"mutable","name":"exponent","nameLocation":"6712:8:44","nodeType":"VariableDeclaration","scope":39493,"src":"6705:15:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39454,"name":"int256","nodeType":"ElementaryTypeName","src":"6705:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":39472,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39456,"name":"inverse_cdf_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39448,"src":"6723:18:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":39459,"name":"sigmaSqrtTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39388,"src":"6751:12:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6744:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39457,"name":"int256","nodeType":"ElementaryTypeName","src":"6744:6:44","typeDescriptions":{}}},"id":39460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6744:20:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6723:41:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"arguments":[{"id":39464,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"6786:3:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6779:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39462,"name":"int256","nodeType":"ElementaryTypeName","src":"6779:6:44","typeDescriptions":{}}},"id":39465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6779:11:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6723:67:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":39469,"name":"halfSigmaSquaredTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39406,"src":"6800:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6793:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39467,"name":"int256","nodeType":"ElementaryTypeName","src":"6793:6:44","typeDescriptions":{}}},"id":39470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6793:27:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6723:97:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6705:115:44"},{"assignments":[39474],"declarations":[{"constant":false,"id":39474,"mutability":"mutable","name":"exp_result","nameLocation":"6881:10:44","nodeType":"VariableDeclaration","scope":39493,"src":"6874:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39473,"name":"int256","nodeType":"ElementaryTypeName","src":"6874:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":39478,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":39475,"name":"exponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39455,"src":"6894:8:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6903:6:44","memberName":"expWad","nodeType":"MemberAccess","referencedDeclaration":26316,"src":"6894:15:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":39477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6894:17:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6874:37:44"},{"assignments":[39480],"declarations":[{"constant":false,"id":39480,"mutability":"mutable","name":"exp_result_uint","nameLocation":"6929:15:44","nodeType":"VariableDeclaration","scope":39493,"src":"6921:23:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39479,"name":"uint256","nodeType":"ElementaryTypeName","src":"6921:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39484,"initialValue":{"arguments":[{"id":39482,"name":"exp_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39474,"src":"6954:10:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":39481,"name":"toUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39516,"src":"6947:6:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":39483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6947:18:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6921:44:44"},{"expression":{"id":39491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39485,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39385,"src":"6975:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":39489,"name":"exp_result_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39480,"src":"7006:15:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":39486,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39382,"src":"6983:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":39487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6990:6:44","memberName":"strike","nodeType":"MemberAccess","referencedDeclaration":38195,"src":"6983:13:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6997:8:44","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"6983:22:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6983:39:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6975:47:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39492,"nodeType":"ExpressionStatement","src":"6975:47:44"}]},"implemented":true,"kind":"function","modifiers":[],"name":"computePriceGivenY","nameLocation":"5614:18:44","parameters":{"id":39383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39377,"mutability":"mutable","name":"ry","nameLocation":"5650:2:44","nodeType":"VariableDeclaration","scope":39494,"src":"5642:10:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39376,"name":"uint256","nodeType":"ElementaryTypeName","src":"5642:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39379,"mutability":"mutable","name":"L","nameLocation":"5670:1:44","nodeType":"VariableDeclaration","scope":39494,"src":"5662:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39378,"name":"uint256","nodeType":"ElementaryTypeName","src":"5662:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39382,"mutability":"mutable","name":"params","nameLocation":"5714:6:44","nodeType":"VariableDeclaration","scope":39494,"src":"5681:39:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":39381,"nodeType":"UserDefinedTypeName","pathNode":{"id":39380,"name":"LogNormal.LogNormalParams","nameLocations":["5681:9:44","5691:15:44"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"5681:25:44"},"referencedDeclaration":38204,"src":"5681:25:44","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"src":"5632:94:44"},"returnParameters":{"id":39386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39385,"mutability":"mutable","name":"price","nameLocation":"5758:5:44","nodeType":"VariableDeclaration","scope":39494,"src":"5750:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39384,"name":"uint256","nodeType":"ElementaryTypeName","src":"5750:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5749:15:44"},"scope":39517,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39516,"nodeType":"FunctionDefinition","src":"7135:175:44","nodes":[],"body":{"id":39515,"nodeType":"Block","src":"7193:117:44","nodes":[],"statements":[{"id":39514,"nodeType":"UncheckedBlock","src":"7203:101:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39503,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39497,"src":"7235:1:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":39504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7240:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7235:6:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"746f55696e743a206e65676174697665","id":39506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7243:18:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_630ddc74b7776317b47a484de1555cb9491155d937cdda7a2f1b2c42b40f68eb","typeString":"literal_string \"toUint: negative\""},"value":"toUint: negative"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_630ddc74b7776317b47a484de1555cb9491155d937cdda7a2f1b2c42b40f68eb","typeString":"literal_string \"toUint: negative\""}],"id":39502,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7227:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":39507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7227:35:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39508,"nodeType":"ExpressionStatement","src":"7227:35:44"},{"expression":{"arguments":[{"id":39511,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39497,"src":"7291:1:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":39510,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7283:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39509,"name":"uint256","nodeType":"ElementaryTypeName","src":"7283:7:44","typeDescriptions":{}}},"id":39512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7283:10:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":39501,"id":39513,"nodeType":"Return","src":"7276:17:44"}]}]},"documentation":{"id":39495,"nodeType":"StructuredDocumentation","src":"7035:95:44","text":"@dev Casts a positived signed integer to an unsigned integer, reverting if `x` is negative."},"implemented":true,"kind":"function","modifiers":[],"name":"toUint","nameLocation":"7144:6:44","parameters":{"id":39498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39497,"mutability":"mutable","name":"x","nameLocation":"7158:1:44","nodeType":"VariableDeclaration","scope":39516,"src":"7151:8:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39496,"name":"int256","nodeType":"ElementaryTypeName","src":"7151:6:44","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"7150:10:44"},"returnParameters":{"id":39501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39500,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":39516,"src":"7184:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39499,"name":"uint256","nodeType":"ElementaryTypeName","src":"7184:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7183:9:44"},"scope":39517,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LogNormalLib","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[39517],"name":"LogNormalLib","nameLocation":"210:12:44","scope":39518,"usedErrors":[],"usedEvents":[]}],"license":"GPL-3.0-or-later"},"id":44} \ No newline at end of file diff --git a/out/LogNormalMath.sol/LogNormalMath.json b/out/LogNormalMath.sol/LogNormalMath.json deleted file mode 100644 index c1647357..00000000 --- a/out/LogNormalMath.sol/LogNormalMath.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/strategies/LogNormal/LogNormalMath.sol","id":39704,"exportedSymbols":{"EPSILON":[30665],"FixedPointMathLib":[26640],"Gaussian":[27374],"HALF":[30636],"INFINITY_IS_NOT_REAL":[30646],"I_ONE":[30655],"I_TWO":[30661],"Min":[27736],"ONE":[30639],"SQRT_WAD":[30630],"TWO":[30633],"ZERO":[30649],"abs":[27763],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeHalfSigmaTauSquared":[39613],"computeLnSDivK":[39549],"computeSigmaSqrtTau":[39577],"diviWad":[27813],"muli":[27777],"muliWad":[27795],"mulidiv":[39703],"mulidivUp":[39659]},"nodeType":"SourceUnit","src":"45:1436:45","nodes":[{"id":39519,"nodeType":"PragmaDirective","src":"45:24:45","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":39520,"nodeType":"ImportDirective","src":"71:30:45","nodes":[],"absolutePath":"lib/solstat/src/Gaussian.sol","file":"solstat/Gaussian.sol","nameLocation":"-1:-1:-1","scope":39704,"sourceUnit":27375,"symbolAliases":[],"unitAlias":""},{"id":39521,"nodeType":"ImportDirective","src":"102:33:45","nodes":[],"absolutePath":"src/lib/StrategyLib.sol","file":"src/lib/StrategyLib.sol","nameLocation":"-1:-1:-1","scope":39704,"sourceUnit":30776,"symbolAliases":[],"unitAlias":""},{"id":39524,"nodeType":"UsingForDirective","src":"137:36:45","nodes":[],"global":false,"libraryName":{"id":39522,"name":"FixedPointMathLib","nameLocations":["143:17:45"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"143:17:45"},"typeName":{"id":39523,"name":"uint256","nodeType":"ElementaryTypeName","src":"165:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":39527,"nodeType":"UsingForDirective","src":"174:35:45","nodes":[],"global":false,"libraryName":{"id":39525,"name":"FixedPointMathLib","nameLocations":["180:17:45"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"180:17:45"},"typeName":{"id":39526,"name":"int256","nodeType":"ElementaryTypeName","src":"202:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":39549,"nodeType":"FunctionDefinition","src":"211:124:45","nodes":[],"body":{"id":39548,"nodeType":"Block","src":"287:48:45","nodes":[],"statements":[{"expression":{"id":39546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39536,"name":"lnSDivK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39534,"src":"293:7:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":39541,"name":"K","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39531,"src":"321:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39539,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39529,"src":"310:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"312:8:45","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"310:10:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"310:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"303:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39537,"name":"int256","nodeType":"ElementaryTypeName","src":"303:6:45","typeDescriptions":{}}},"id":39543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"303:21:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"325:5:45","memberName":"lnWad","nodeType":"MemberAccess","referencedDeclaration":26541,"src":"303:27:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":39545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"303:29:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"293:39:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39547,"nodeType":"ExpressionStatement","src":"293:39:45"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeLnSDivK","nameLocation":"220:14:45","parameters":{"id":39532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39529,"mutability":"mutable","name":"S","nameLocation":"243:1:45","nodeType":"VariableDeclaration","scope":39549,"src":"235:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39528,"name":"uint256","nodeType":"ElementaryTypeName","src":"235:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39531,"mutability":"mutable","name":"K","nameLocation":"254:1:45","nodeType":"VariableDeclaration","scope":39549,"src":"246:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39530,"name":"uint256","nodeType":"ElementaryTypeName","src":"246:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"234:22:45"},"returnParameters":{"id":39535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39534,"mutability":"mutable","name":"lnSDivK","nameLocation":"278:7:45","nodeType":"VariableDeclaration","scope":39549,"src":"271:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39533,"name":"int256","nodeType":"ElementaryTypeName","src":"271:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"270:16:45"},"scope":39704,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39577,"nodeType":"FunctionDefinition","src":"337:213:45","nodes":[],"body":{"id":39576,"nodeType":"Block","src":"440:110:45","nodes":[],"statements":[{"assignments":[39559],"declarations":[{"constant":false,"id":39559,"mutability":"mutable","name":"sqrtTau","nameLocation":"454:7:45","nodeType":"VariableDeclaration","scope":39576,"src":"446:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39558,"name":"uint256","nodeType":"ElementaryTypeName","src":"446:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39568,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":39562,"name":"tau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39553,"src":"487:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39560,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"464:17:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":39561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"482:4:45","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":26589,"src":"464:22:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":39563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"464:27:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000000_by_1","typeString":"int_const 1000000000"},"id":39566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":39564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"494:2:45","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"39","id":39565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"500:1:45","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"src":"494:7:45","typeDescriptions":{"typeIdentifier":"t_rational_1000000000_by_1","typeString":"int_const 1000000000"}},"src":"464:37:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"446:55:45"},{"expression":{"id":39574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39569,"name":"sigmaSqrtTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39556,"src":"507:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":39572,"name":"sqrtTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39559,"src":"539:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39570,"name":"sigma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39551,"src":"522:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"528:10:45","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"522:16:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"522:25:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"507:40:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39575,"nodeType":"ExpressionStatement","src":"507:40:45"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeSigmaSqrtTau","nameLocation":"346:19:45","parameters":{"id":39554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39551,"mutability":"mutable","name":"sigma","nameLocation":"379:5:45","nodeType":"VariableDeclaration","scope":39577,"src":"371:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39550,"name":"uint256","nodeType":"ElementaryTypeName","src":"371:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39553,"mutability":"mutable","name":"tau","nameLocation":"398:3:45","nodeType":"VariableDeclaration","scope":39577,"src":"390:11:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39552,"name":"uint256","nodeType":"ElementaryTypeName","src":"390:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"365:38:45"},"returnParameters":{"id":39557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39556,"mutability":"mutable","name":"sigmaSqrtTau","nameLocation":"426:12:45","nodeType":"VariableDeclaration","scope":39577,"src":"418:20:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39555,"name":"uint256","nodeType":"ElementaryTypeName","src":"418:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"417:22:45"},"scope":39704,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39613,"nodeType":"FunctionDefinition","src":"552:265:45","nodes":[],"body":{"id":39612,"nodeType":"Block","src":"668:149:45","nodes":[],"statements":[{"assignments":[39587],"declarations":[{"constant":false,"id":39587,"mutability":"mutable","name":"innerTerm","nameLocation":"682:9:45","nodeType":"VariableDeclaration","scope":39612,"src":"674:17:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39586,"name":"uint256","nodeType":"ElementaryTypeName","src":"674:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39604,"initialValue":{"arguments":[{"id":39602,"name":"tau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39581,"src":"756:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[{"arguments":[{"id":39597,"name":"TWO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30633,"src":"738:3:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"731:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39595,"name":"int256","nodeType":"ElementaryTypeName","src":"731:6:45","typeDescriptions":{}}},"id":39598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"731:11:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":39592,"name":"sigma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39579,"src":"717:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39591,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"710:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39590,"name":"int256","nodeType":"ElementaryTypeName","src":"710:6:45","typeDescriptions":{}}},"id":39593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"710:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"724:6:45","memberName":"powWad","nodeType":"MemberAccess","referencedDeclaration":26121,"src":"710:20:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$attached_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":39599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"710:33:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":39589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"702:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":39588,"name":"uint256","nodeType":"ElementaryTypeName","src":"702:7:45","typeDescriptions":{}}},"id":39600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"702:42:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"745:10:45","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"702:53:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"702:58:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"674:86:45"},{"expression":{"id":39610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39605,"name":"halfSigmaPower2Tau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39584,"src":"767:18:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":39608,"name":"innerTerm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39587,"src":"804:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39606,"name":"HALF","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30636,"src":"788:4:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"793:10:45","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"788:15:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":39609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"788:26:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"767:47:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39611,"nodeType":"ExpressionStatement","src":"767:47:45"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeHalfSigmaTauSquared","nameLocation":"561:26:45","parameters":{"id":39582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39579,"mutability":"mutable","name":"sigma","nameLocation":"601:5:45","nodeType":"VariableDeclaration","scope":39613,"src":"593:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39578,"name":"uint256","nodeType":"ElementaryTypeName","src":"593:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39581,"mutability":"mutable","name":"tau","nameLocation":"620:3:45","nodeType":"VariableDeclaration","scope":39613,"src":"612:11:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39580,"name":"uint256","nodeType":"ElementaryTypeName","src":"612:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"587:38:45"},"returnParameters":{"id":39585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39584,"mutability":"mutable","name":"halfSigmaPower2Tau","nameLocation":"648:18:45","nodeType":"VariableDeclaration","scope":39613,"src":"640:26:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39583,"name":"uint256","nodeType":"ElementaryTypeName","src":"640:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"639:28:45"},"scope":39704,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39659,"nodeType":"FunctionDefinition","src":"892:257:45","nodes":[],"body":{"id":39658,"nodeType":"Block","src":"989:160:45","nodes":[],"statements":[{"expression":{"id":39631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39625,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39623,"src":"995:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":39627,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39616,"src":"1007:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":39628,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39618,"src":"1010:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":39629,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39620,"src":"1013:11:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":39626,"name":"mulidiv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39703,"src":"999:7:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256,int256) pure returns (int256)"}},"id":39630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"999:26:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"995:30:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39632,"nodeType":"ExpressionStatement","src":"995:30:45"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39633,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39616,"src":"1036:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":39634,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39618,"src":"1040:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1036:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":39636,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1035:7:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":39637,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39620,"src":"1045:11:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1035:21:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1060:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1035:26:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39657,"nodeType":"IfStatement","src":"1031:116:45","trueBody":{"id":39656,"nodeType":"Block","src":"1063:84:45","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39642,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39623,"src":"1081:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"arguments":[{"id":39645,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1090:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":39644,"name":"int256","nodeType":"ElementaryTypeName","src":"1090:6:45","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}],"id":39643,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1085:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":39646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1085:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int256","typeString":"type(int256)"}},"id":39647,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1098:3:45","memberName":"max","nodeType":"MemberAccess","src":"1085:16:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1081:20:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6d756c696469765570206f766572666c6f77","id":39649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1103:20:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_fde8d5f24ecb49074a4970f3d39dbaa6bdb0beb22625cd497e74cb09a4fd9c6c","typeString":"literal_string \"mulidivUp overflow\""},"value":"mulidivUp overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fde8d5f24ecb49074a4970f3d39dbaa6bdb0beb22625cd497e74cb09a4fd9c6c","typeString":"literal_string \"mulidivUp overflow\""}],"id":39641,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1073:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":39650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1073:51:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39651,"nodeType":"ExpressionStatement","src":"1073:51:45"},{"expression":{"id":39654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39652,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39623,"src":"1134:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":39653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1139:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1134:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39655,"nodeType":"ExpressionStatement","src":"1134:6:45"}]}}]},"documentation":{"id":39614,"nodeType":"StructuredDocumentation","src":"819:73:45","text":"@dev Signed mul div, rounding up if the modulo quotient is non-zero."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"mulidivUp","nameLocation":"901:9:45","parameters":{"id":39621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39616,"mutability":"mutable","name":"x","nameLocation":"923:1:45","nodeType":"VariableDeclaration","scope":39659,"src":"916:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39615,"name":"int256","nodeType":"ElementaryTypeName","src":"916:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":39618,"mutability":"mutable","name":"y","nameLocation":"937:1:45","nodeType":"VariableDeclaration","scope":39659,"src":"930:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39617,"name":"int256","nodeType":"ElementaryTypeName","src":"930:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":39620,"mutability":"mutable","name":"denominator","nameLocation":"951:11:45","nodeType":"VariableDeclaration","scope":39659,"src":"944:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39619,"name":"int256","nodeType":"ElementaryTypeName","src":"944:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"910:54:45"},"returnParameters":{"id":39624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39623,"mutability":"mutable","name":"z","nameLocation":"986:1:45","nodeType":"VariableDeclaration","scope":39659,"src":"979:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39622,"name":"int256","nodeType":"ElementaryTypeName","src":"979:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"978:10:45"},"scope":39704,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39703,"nodeType":"FunctionDefinition","src":"1232:248:45","nodes":[],"body":{"id":39702,"nodeType":"Block","src":"1327:153:45","nodes":[],"statements":[{"id":39701,"nodeType":"UncheckedBlock","src":"1333:145:45","statements":[{"expression":{"id":39675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39671,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39669,"src":"1353:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39672,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39662,"src":"1357:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":39673,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39664,"src":"1361:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1357:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1353:9:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39676,"nodeType":"ExpressionStatement","src":"1353:9:45"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":39691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39678,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39666,"src":"1380:11:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1395:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1380:16:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":39689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39681,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39662,"src":"1401:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":39682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1406:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1401:6:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39684,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39669,"src":"1411:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":39685,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39662,"src":"1415:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1411:5:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":39687,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39664,"src":"1420:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1411:10:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1401:20:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":39690,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1400:22:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1380:42:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6d756c6964697620696e76616c6964","id":39692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1424:17:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_d988109c2cad610af06038230b3608292c6940bc0fe2fa49dcb37f8e680e5f55","typeString":"literal_string \"mulidiv invalid\""},"value":"mulidiv invalid"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d988109c2cad610af06038230b3608292c6940bc0fe2fa49dcb37f8e680e5f55","typeString":"literal_string \"mulidiv invalid\""}],"id":39677,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1372:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":39693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1372:70:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39694,"nodeType":"ExpressionStatement","src":"1372:70:45"},{"expression":{"id":39699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39695,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39669,"src":"1452:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":39698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39696,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39669,"src":"1456:1:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":39697,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39666,"src":"1460:11:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1456:15:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1452:19:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":39700,"nodeType":"ExpressionStatement","src":"1452:19:45"}]}]},"documentation":{"id":39660,"nodeType":"StructuredDocumentation","src":"1151:81:45","text":"@notice Mul div signed integers.\n @dev From Solmate, but not in assembly."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"mulidiv","nameLocation":"1241:7:45","parameters":{"id":39667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39662,"mutability":"mutable","name":"x","nameLocation":"1261:1:45","nodeType":"VariableDeclaration","scope":39703,"src":"1254:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39661,"name":"int256","nodeType":"ElementaryTypeName","src":"1254:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":39664,"mutability":"mutable","name":"y","nameLocation":"1275:1:45","nodeType":"VariableDeclaration","scope":39703,"src":"1268:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39663,"name":"int256","nodeType":"ElementaryTypeName","src":"1268:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":39666,"mutability":"mutable","name":"denominator","nameLocation":"1289:11:45","nodeType":"VariableDeclaration","scope":39703,"src":"1282:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39665,"name":"int256","nodeType":"ElementaryTypeName","src":"1282:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1248:54:45"},"returnParameters":{"id":39670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39669,"mutability":"mutable","name":"z","nameLocation":"1324:1:45","nodeType":"VariableDeclaration","scope":39703,"src":"1317:8:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":39668,"name":"int256","nodeType":"ElementaryTypeName","src":"1317:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1316:10:45"},"scope":39704,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"license":"GPL-3.0-or-later"},"id":45} \ No newline at end of file diff --git a/out/LogNormalSolver.sol/LogNormalSolver.json b/out/LogNormalSolver.sol/LogNormalSolver.json deleted file mode 100644 index dfa04b82..00000000 --- a/out/LogNormalSolver.sol/LogNormalSolver.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"BISECTION_EPSILON","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MAX_BISECTION_ITERS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"allocateGivenX","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"amountX","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"allocateGivenY","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"amountY","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"calculateDiffLower","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"S","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"calculateDiffRaise","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"S","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"computeOptimalArbLowerPrice","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"S","type":"uint256","internalType":"uint256"},{"name":"vUpper","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"computeOptimalArbRaisePrice","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"S","type":"uint256","internalType":"uint256"},{"name":"vUpper","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deallocateGivenX","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"amountX","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deallocateGivenY","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"amountY","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"fetchPoolParams","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct LogNormal.LogNormalParams","components":[{"name":"strike","type":"uint256","internalType":"uint256"},{"name":"sigma","type":"uint256","internalType":"uint256"},{"name":"tau","type":"uint256","internalType":"uint256"},{"name":"swapFee","type":"uint256","internalType":"uint256"},{"name":"controller","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getInitialPoolData","inputs":[{"name":"rx","type":"uint256","internalType":"uint256"},{"name":"S","type":"uint256","internalType":"uint256"},{"name":"params","type":"tuple","internalType":"struct LogNormal.LogNormalParams","components":[{"name":"strike","type":"uint256","internalType":"uint256"},{"name":"sigma","type":"uint256","internalType":"uint256"},{"name":"tau","type":"uint256","internalType":"uint256"},{"name":"swapFee","type":"uint256","internalType":"uint256"},{"name":"controller","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"getNextLiquidity","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"rx","type":"uint256","internalType":"uint256"},{"name":"ry","type":"uint256","internalType":"uint256"},{"name":"L","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getNextReserveX","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"ry","type":"uint256","internalType":"uint256"},{"name":"L","type":"uint256","internalType":"uint256"},{"name":"S","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getNextReserveY","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"rx","type":"uint256","internalType":"uint256"},{"name":"L","type":"uint256","internalType":"uint256"},{"name":"S","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPriceGivenXL","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"rx","type":"uint256","internalType":"uint256"},{"name":"L","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"price","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPriceGivenYL","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"ry","type":"uint256","internalType":"uint256"},{"name":"L","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"price","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getReservesAndLiquidity","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"internalPrice","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"price","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"prepareControllerUpdate","inputs":[{"name":"controller","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"prepareFeeUpdate","inputs":[{"name":"swapFee","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"prepareSigmaUpdate","inputs":[{"name":"targetSigma","type":"uint256","internalType":"uint256"},{"name":"targetTimestamp","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"prepareStrikeUpdate","inputs":[{"name":"targetStrike","type":"uint256","internalType":"uint256"},{"name":"targetTimestamp","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"prepareTauUpdate","inputs":[{"name":"targetTau","type":"uint256","internalType":"uint256"},{"name":"targetTimestamp","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"simulateSwap","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"swapXIn","type":"bool","internalType":"bool"},{"name":"amountIn","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"strategy","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"error","name":"BisectionLib_InvalidBounds","inputs":[{"name":"lower","type":"uint256","internalType":"uint256"},{"name":"upper","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BisectionLib_RootOutsideBounds","inputs":[{"name":"lowerResult","type":"int256","internalType":"int256"},{"name":"upperResult","type":"int256","internalType":"int256"}]},{"type":"error","name":"Infinity","inputs":[]},{"type":"error","name":"Min","inputs":[]},{"type":"error","name":"NegativeInfinity","inputs":[]},{"type":"error","name":"OutOfBounds","inputs":[]}],"bytecode":{"object":"0x6080346200007a57601f620037a038819003918201601f19168301916001600160401b038311848410176200007f578084926020946040528339810103126200007a57516001600160a01b038116908190036200007a57600080546001600160a01b03191691909117905560405161370a9081620000968239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630420580a146101b7578063120649c5146101b2578063134ead12146101ad5780631e978cb0146101a8578063306db46b146101a3578063332266f31461019e5780633928ff97146101995780633b268d5d146101945780633b4d10301461018f5780634e817fd91461018a5780634fd67c58146101855780635eb408fc146101805780636237569f1461017b5780636d652299146101765780637f17409c1461017157806381b5fac21461016c578063902ecaa214610167578063a8c62e7614610162578063af4e437f1461015d578063b09d04e514610158578063cb1f553214610153578063ce153bf41461014e578063e94716d514610149578063ee3e8cfb14610144578063f30d37f21461013f5763f9c282111461013a57600080fd5b610aff565b610acf565b610a9e565b610a63565b610a27565b6109e2565b6109af565b610993565b61096a565b610941565b610914565b610872565b610856565b6107e9565b6107cd565b6107a4565b610788565b610759565b61071e565b61048d565b610436565b610407565b6103e2565b610354565b61028e565b610218565b60005b8381106101cf5750506000910152565b81810151838201526020016101bf565b906020916101f8815180928185528580860191016101bc565b601f01601f1916010190565b9060206102159281815201906101df565b90565b3461026b57604036600319011261026b57610267604051600260208201526004356040820152602435606082015260608152610253816102e9565b6040519182916020835260208301906101df565b0390f35b600080fd5b608090600319011261026b5760043590602435906044359060643590565b3461026b5760206102aa6102a136610270565b92919091610b4d565b604051908152f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff8211176102e457604052565b6102b2565b6080810190811067ffffffffffffffff8211176102e457604052565b6060810190811067ffffffffffffffff8211176102e457604052565b90601f8019910116810190811067ffffffffffffffff8211176102e457604052565b6001600160a01b0381160361026b57565b3461026b5760e036600319011261026b5760a036604319011261026b576102676103bc604051610383816102c8565b60443581526064356020820152608435604082015260a435606082015260c4356103ac81610343565b608082015260243560043561139a565b60405191829182610204565b606090600319011261026b57600435906024359060443590565b3461026b5760206102aa6104016103f8366103c8565b91929092610f06565b91611583565b3461026b5760206102aa61041a366103c8565b9061042d61042784610f06565b936110d9565b92919091611670565b3461026b5760206102aa610449366103c8565b9061045661042784610f06565b9290506119da565b8015150361026b57565b90926080926102159594151583526020830152604082015281606082015201906101df565b3461026b57606036600319011261026b5761050360243561061f6004356104b38361045e565b604435926104bf610c57565b936104c8610c57565b946104d2846110d9565b60208496939592960194604096878601928352865284526104f287610f06565b998a9185519087519051918a611009565b921561069657928261054a6105519361054361053e61053661056f9861053160606105979d9c0151866125a2565b6125a2565b8651906125f8565b610c9d565b9351610cb0565b8a52610cb0565b61056385890191808352895188610c4a565b90885190519087610b4d565b9061058e6105836020890193808552610c9d565b808452825111610d31565b51905190610d24565b945b84519260c06020870151848801926105df8451976105d18851998a958693602085016040919493926060820195825260208201520152565b03601f198101845283610321565b600054610602906105f6906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610dbf565b03915afa94851561069157600095610651575b509061064691610267959651905190611583565b905194859485610468565b61026795509061067c610646939260c03d60c01161068a575b6106748183610321565b810190610d88565b505050505095509091610632565b503d61066a565b610b41565b826106df610718966106d2610704956106cb61053e6106c361070f9a61053160606106fc9b0151866125a2565b8551906125f8565b9251610cb0565b9260208d01938452610cb0565b6106f1888c019180835283518b610de3565b915190519089610df0565b808952610c9d565b808852825111610cbd565b51855190610d24565b94610599565b3461026b57604036600319011261026b57610267604051600460208201526004356040820152602435606082015260608152610253816102e9565b3461026b57602036600319011261026b5760206102aa60043561040161077e826110d9565b9291939050610f06565b3461026b5760206102aa61079e6103f8366103c8565b91611b9c565b3461026b5760206102aa6107b7366103c8565b906107c461042784610f06565b92919091611c16565b3461026b5760206102aa6107e036610270565b92919091610df0565b3461026b57604036600319011261026b5761083860043561026761081a61080f836110d9565b919050602435611f7a565b939092848461083261082b84610f06565b8383611583565b92610b4d565b92604051938493846040919493926060820195825260208201520152565b3461026b57600036600319011261026b57602060405160008152f35b3461026b57604036600319011261026b576004356108c06102676108a2610898846110d9565b9150602435611fa7565b92909383856108ba6108b384610f06565b8383611b9c565b92610df0565b91604051938493846040919493926060820195825260208201520152565b805182526020808201519083015260408082015190830152606080820151908301526080908101516001600160a01b0316910152565b3461026b57602036600319011261026b5760a0610932600435610f06565b61093f60405180926108de565bf35b3461026b5760206102aa610954366103c8565b9061096161042784610f06565b92909150611fce565b3461026b57600036600319011261026b576000546040516001600160a01b039091168152602090f35b3461026b5760206102aa6109a636610270565b92919091611009565b3461026b57602036600319011261026b576102676040516001602082015260043560408201526040815261025381610305565b3461026b57602036600319011261026b57610267600435610a0281610343565b60408051600560208201526001600160a01b0390921682820152815261025381610305565b3461026b57602036600319011261026b57610267610a466004356110d9565b604080519384526020840192909252908201529081906060820190565b3461026b57604036600319011261026b57610267604051600360208201526004356040820152602435606082015260608152610253816102e9565b3461026b57604036600319011261026b5761083860043561026761081a610ac4836110d9565b919050602435611fa7565b3461026b57604036600319011261026b576004356108c06102676108a2610af5846110d9565b9150602435611f7a565b3461026b57600036600319011261026b57602060405160788152f35b9081602091031261026b575190565b6040906102159392815281602082015201906101df565b6040513d6000823e3d90fd5b610b85610bee9493929361053184610b7e610b79610b74610b6d88610f06565b809661230a565b61237f565b6123b2565b92516125a2565b916020604051610bbc81610bae85888a8785016040919493926060820195825260208201520152565b03601f198101835282610321565b600054610bd3906105f6906001600160a01b031681565b6040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093610c15575b50610c0f90610f06565b936111f1565b610c0f919350610c3c9060203d602011610c43575b610c348183610321565b810190610b1b565b9290610c05565b503d610c2a565b9161040161021593610f06565b604051906060820182811067ffffffffffffffff8211176102e45760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610cab57565b610c87565b91908201809211610cab57565b15610cc457565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b6103e719810191908211610cab57565b91908203918211610cab57565b15610d3857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c091031261026b578151610d9f8161045e565b9160208101519160408201519160608101519160a0608083015192015190565b610215939260609260018060a01b03168252602082015281604082015201906101df565b9161079e61021593610f06565b92610b79610b74610e0d92949394610e0787610f06565b90612f44565b92670de0b6b3a7640000938403938411610cab57610e2e610e5794836125a2565b916020604051610bbc81610bae8589898785016040919493926060820195825260208201520152565b03915afa9182156106915761021595600093610e7e575b50610e7890610f06565b93611e24565b610e78919350610e9c9060203d602011610c4357610c348183610321565b9290610e6e565b91908260a091031261026b57604051610ebb816102c8565b608080829480518452602081015160208501526040810151604085015260608101516060850152015191610eee83610343565b0152565b9060a08282031261026b5761021591610ea3565b90604051610f13816102c8565b600090818152816080602092828482015282604082015282606082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610691578092610f7a575b506102159293508082518301019101610ef2565b9091503d8082863e610f8c8186610321565b840190828583031261100257845167ffffffffffffffff9586821161100557019082601f830112156110025781519586116102e45760405192610fd8601f8801601f1916860185610321565b86845284878401011161100257506102159394610ffa918480850191016101bc565b908392610f66565b80fd5b8280fd5b61105d939192602060405161103781610bae87868a8785016040919493926060820195825260208201520152565b60018060a01b03600054166040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093611084575b5061107e90610f06565b936121b4565b61107e9193506110a29060203d602011610c4357610c348183610321565b9290611074565b9081602091031261026b575161021581610343565b9081606091031261026b578051916040602083015192015190565b90600460206110f56105f66105f660005460018060a01b031690565b604051632bee84f160e21b815292839182905afa928315610691576111409360609260009161119d575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156106915760008093600093611166575b50929190565b9193505061118c915060603d606011611196575b6111848183610321565b8101906110be565b9290929138611160565b503d61117a565b6111bf915060203d6020116111c5575b6111b78183610321565b8101906110a9565b3861111f565b503d6111ad565b6111ef9360609296959361010083019783526020830152604082015201906108de565b565b929360009385929185851215611367575b8585126113485790610bae611224925b604096604051958694602086016111cc565b81859285968281116113255761123a818561337f565b92611245818661337f565b88611250828761152f565b136113045750906112649197969297610d24565b60019591829187805b61127f575b5050505050505050505090565b156112e0575b5086979850819261129f6112998b89610cb0565b60011c90565b996112aa8b8861337f565b90846112b6888461152f565b136112d457505089935b886112cb8987610d24565b9201949961126d565b8b9850909550936112c0565b601410806112fb575b156112f45788611285565b8080611272565b508083106112e9565b6040516306f1be5d60e21b8152600481018690526024810191909152604490fd5b604051633082dfdb60e11b81526004810191909152602481019290925250604490fd5b935091611354906125ce565b91611361848385846124a9565b93611202565b85851361137b5790610bae61122492611212565b935094611387906123f5565b94611394848388846124a9565b93611367565b916113ab610b79610b748385612f44565b91670de0b6b3a7640000928303928311610cab57611402826113ee6113e3610b79610b74846113dd6114209a8c6125f8565b9761230a565b6105318584516125a2565b926113fb8282868a6124a9565b84886121b4565b906040519460208601526040850152606084015260808301906108de565b6101008152610120810181811067ffffffffffffffff8211176102e45760405290565b90670de0b6b3a764000060008382039312818412811691841390151617610cab57565b90671bc16d674ec8000060008382039312818412811691841390151617610cab57565b9067119000ab100ffbff198201918213600116610cab57565b81810392916000138015828513169184121617610cab57565b90670de0b6b3a764000091828102928184051490151715610cab57565b90671bc16d674ec8000091828102928184051490151715610cab57565b90633b9aca0091828102928184051490151715610cab57565b60008190039190600160ff1b8114600116610cab57600019830503610cab57565b818102929160008212600160ff1b821416610cab578184051490151715610cab57565b811561156d57600160ff1b8114600019831416610cab570590565b634e487b7160e01b600052601260045260246000fd5b9190916115be60208301936115b885516115b06115a66040880192835190612843565b975182519061286c565b905190612414565b92612435565b92670de0b6b3a76400008085121561163c5760008513156116315760008582039512818612811691861390151617610cab5761162561162a92611620611612610b799461160d6102159961288b565b61152f565b670de0b6b3a7640000900590565b6114a2565b612917565b90516125a2565b505050505060001990565b5050505050600090565b90959492936111ef94608093610120840198845260208401526040830152606082015201906108de565b909291828651602088015160408901519060608a01519261169083612ac8565b6116999061185a565b936116a390611443565b906116ad8a612b86565b6116b68b611981565b6116bf91612c38565b6116c88b611981565b6116d184612bb5565b6116da916114a2565b6116e49088612c38565b6116ed91612cb5565b6116f690612cd3565b9361170084612fbb565b611709906114d8565b670de0b6b3a7640000900561171d90612917565b9061172791612c38565b61173090612c67565b611739906119c9565b848661174486612c09565b9061174e91612c38565b9061175891612c38565b611761916119ad565b61176a90612917565b826117758c84612c38565b9061177f91612c38565b61178891612c38565b6117918b611981565b61179a84612bb5565b6117a3916114a2565b6117ac91612cb5565b956117b691612c38565b906117c090611993565b6117c991612c38565b926117d391612c38565b6117dc90612c8e565b906117e6916114a2565b6117ef90612e24565b6117f891612c38565b61180186612b86565b61180a91612cb5565b90611814846119c9565b9061181e916119ad565b90611828916119ad565b60001361184f576102159561184a93610bae9260405196879560208701611646565b61264d565b505050505050600090565b90633b9aca0091828102928184041490151715610cab57565b9081672005fe4f268ea00001918212600116610cab57565b9081670dc5527f642c200001918212600116610cab57565b9081670de0b6b3a764000001918212600116610cab57565b9081670b68df18e471fbff190191821215600116610cab57565b90816714a8454c19e1ac0001918212600116610cab57565b9081670fc10e01578277ff190191821215600116610cab57565b90816703debd083b8c7c0001918212600116610cab57565b9081670295d400ea3257ff190191821215600116610cab57565b9081670157d8b2ecc7080001918212600116610cab57565b90816705310aa7d521300001918212600116610cab57565b9081670de0cc3d1561000001918212600116610cab57565b90816103e801918212600116610cab57565b9081670de0b6b3a763ffff190191821215600116610cab57565b91909160008382019384129112908015821691151617610cab57565b600160ff1b8114610cab5760000390565b939290919280519160208201519060408301519260600151936119fc84612ac8565b611a059061185a565b94611a0f90611443565b9182611a1a88612b86565b611a2489846119ad565b611a2d91612c38565b611a3789846119ad565b611a418385612c38565b611a4a916114a2565b611a54908b612c38565b611a5d91612cb5565b611a6690612cd3565b95611a7086612fbb565b611a79906114d8565b670de0b6b3a76400009005611a8d90612917565b90611a9791612c38565b611aa090612c67565b611aa9906119c9565b8688611ab488612c09565b90611abe91612c38565b90611ac891612c38565b611ad1916119ad565b611ada90612917565b81611ae58a86612c38565b90611aef91612c38565b611af891612c38565b91611b0389826119ad565b91611b0d91612c38565b611b16916114a2565b611b1f91612cb5565b96611b2991612c38565b90611b3390611993565b611b3c91612c38565b92611b4691612c38565b611b4f90612c8e565b90611b59916114a2565b611b6290612e24565b611b6b91612c38565b90611b7590612b86565b611b7e91612cb5565b91611b88906119c9565b90611b92916119ad565b90610215916119ad565b919091611bda6020830191611bd4611bcc84516115b0611bc26040890192835190612843565b965182519061286c565b958551612414565b90612435565b670de0b6b3a7640000918282121561163c576000821315611631576102159461162a93611c106116259361160d610b799661288b565b056119ad565b909291855160208701516040880151606089015191611c3482612ac8565b611c3d9061185a565b92611c4790611443565b93611c5186612b86565b611c5a87611981565b611c6391612c38565b611c6d8983612c38565b611c7688611981565b611c7f91612c38565b611c88906119c9565b86611c938b85612c38565b611c9c90612bde565b90611ca691612c38565b611caf916119ad565b611cb891612cb5565b611cc1906119c9565b611cca90612cd3565b92611cd483612fbb565b611cdd906114d8565b670de0b6b3a76400009005611cf190612917565b90611cfb91612c38565b611d0490612c67565b611d0d906119c9565b8385611d1885612c09565b90611d2291612c38565b90611d2c91612c38565b611d35916119ad565b611d3e90612917565b85611d49888a612c38565b90611d5391612c38565b611d5c91612c38565b90611d6687611981565b611d6f87612bb5565b611d78916114a2565b611d8191612c38565b611d8a91612cb5565b93611d958789612c38565b90611d9f90611993565b611da891612c38565b92611db291612c38565b611dbb90612c8e565b90611dc5916114a2565b611dce90612e24565b611dd791612c38565b611de083612b86565b611de991612cb5565b90611df390611993565b90611dfd916119ad565b60001361184f5761021595611e1f93610bae9260405196879560208701611646565b61276c565b929360009385929185851215611f47575b858512611f285790610bae611e5692604096604051958694602086016111cc565b818592859682811161132557611e6c81856133a0565b92611e7781866133a0565b88611e82828761152f565b13611304575090611e969197969297610d24565b60019591829187805b611eb0575050505050505050505090565b15611f0b575b50869798508192611eca6112998b89610cb0565b99611ed58b886133a0565b9084611ee1888461152f565b13611eff57505089935b88611ef68987610d24565b92019499611e9f565b8b985090955093611eeb565b60141080611f1f575b156112f45788611eb6565b50808310611f14565b935091611f34906125ce565b91611f41848383866124a9565b93611e35565b858513611f5b5790610bae611e5692611212565b935094611f67906123f5565b94611f74848383896124a9565b93611f47565b929190611f90611f8a82846125f8565b856125a2565b938103908111610cab57928103908111610cab5790565b929190611fb7611f8a82846125f8565b938101809111610cab57928101809111610cab5790565b9390929181516020830151916040840151936060015194611fee85612ac8565b611ff79061185a565b9561200190611443565b928361200c89612b86565b6120168a856119ad565b61201f91612c38565b6120298584612c38565b6120338b866119ad565b61203c91612c38565b612045906119c9565b82856120518887612c38565b9061205b91612c38565b9061206591612c38565b61206e916119ad565b61207791612cb5565b612080906119c9565b61208990612cd3565b9661209387612fbb565b61209c906114d8565b670de0b6b3a764000090056120b090612917565b906120ba91612c38565b6120c390612c67565b6120cc906119c9565b87896120d789612c09565b906120e191612c38565b906120eb91612c38565b6120f4916119ad565b6120fd90612917565b816121088b8d612c38565b9061211291612c38565b61211b91612c38565b926121268a826119ad565b9161213091612c38565b612139916114a2565b61214291612c38565b61214b91612cb5565b9661215591612c38565b9061215f90611993565b61216891612c38565b9261217291612c38565b61217b90612c8e565b90612185916114a2565b61218e90612e24565b61219791612c38565b906121a190612b86565b6121aa91612cb5565b90611b9290611993565b9293600093859291858512156122d7575b8585126122b85790610bae6121e692604096604051958694602086016111cc565b8185928596828111611325576121fc81856133c2565b9261220781866133c2565b88612212828761152f565b136113045750906122269197969297610d24565b60019591829187805b612240575050505050505050505090565b1561229b575b5086979850819261225a6112998b89610cb0565b996122658b886133c2565b9084612271888461152f565b1361228f57505089935b886122868987610d24565b9201949961222f565b8b98509095509361227b565b601410806122af575b156112f45788612246565b508083106122a4565b9350946122c4906123f5565b946122d1848784846124a9565b936121c5565b8585136122eb5790610bae6121e692611212565b9350916122f7906125ce565b91612304848484846124a9565b936122d7565b61237a6123756102159361236f61236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b9d6125f8565b612fbb565b97612fbb565b6114d8565b05612917565b612414565b612457565b906114a2565b6114bb565b611552565b6123ae6123756123a96713a04bbdfdc9be886123a3671bc16d674ec80000956114bb565b056119c9565b612e24565b0590565b600081126123bd5790565b60405162461bcd60e51b815260206004820152601060248201526f746f55696e743a206e6567617469766560801b6044820152606490fd5b6103e79081810291818304149015176001161561026b576103e8900490565b81810291818304149015176001161561026b57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517821515161561026b570490565b6706f05b59d3b2000090808202918204146001161561026b57670de0b6b3a7640000900490565b670de0b6b3a76400009081810291818304149015176001161561026b57671bc16d674ec80000900490565b90928282101561255d57610215936125269284670de0b6b3a764000091826124d18383612435565b1061254a57506001600160ff1b039590505b8351916124f96124f38385612414565b85612435565b1061252b57506001600160ff1b0392612520925090505b6040602082015191015190612843565b926119ad565b6119ad565b61252092611bd461253f9261254494612414565b61288b565b91612510565b6125579161253f91612435565b946124e3565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b81810291818304149015176001161561026b576001670de0b6b3a7640000600019830104019015150290565b6103e99081810291818304149015176001161561026b5760016103e8600019830104019015150290565b90670de0b6b3a7640000918281029281840414901517811515161561026b57600190600019830104019015150290565b6101008183031261026b57805192610215602083015193606060408501519401610ea3565b91906103e89260009360009183821161274b57612669816133e2565b6126738583613521565b600061267f828461152f565b1361272c5750612690859695610d14565b60019460009186805b6126aa575b50505050505050509050565b15612707575b50859697985080916126c56112998b88610cb0565b996126d08b87613521565b90836126dc878461152f565b136126fb57505089925b876126f18886610d24565b9201939998612699565b8b9750909450926126e6565b861080612721575b1561271a57886126b0565b808061269e565b50610100821061270f565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e89260009360009183821161274b5761278881613543565b61279285836136b3565b600061279e828461152f565b1361272c57506127af859695610d14565b60019460009186805b6127c85750505050505050509050565b15612825575b50859697985080916127e36112998b88610cb0565b996127ee8b876136b3565b90836127fa878461152f565b1361281957505089925b8761280f8886610d24565b92019399986127b8565b8b975090945092612804565b861080612838575b1561271a57886127ce565b50610100821061282d565b9061284d90612ac8565b633b9aca0090818102918183041490151715610cab5761021591612414565b61021591612365670de0b6b3a764000061235f61235a61236a95612fbb565b6706f05b59d3b20000811461291157670de0b6b3a764000090818112156128ff5780156128ed578060011b908105600203610cab576128c990612cd3565b906713a04bbdfdc9be8891808302928305146001161561026b5761021591056119c9565b6040516322ed598560e21b8152600490fd5b6040516307a0212760e01b8152600490fd5b50600090565b680248ce36a70cb26b3e1981131561291157680755bf798b4a1bf1e5811215612a67576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b91906101208382031261026b57825192602081015192610215604083015193608060608501519401610ea3565b60b581600160881b811015612b6f575b80690100000000000000000062010000921015612b62575b65010000000000811015612b55575b6301000000811015612b48575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b91612b0c565b60201c9160101b91612aff565b60401c9160201b91612af0565b5068b500000000000000009050608082901c612ad8565b671bc16d674ec8000081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e881810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e88082029160016000198210179181840514901517161561026b57670de0b6b3a7640000900590565b6713a04bbde78cc40081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b90911317161561026b57670de0b6b3a7640000900590565b670de0b6b3a764000090818102918205146001161561026b57671bc16d674ec80000900590565b670de0b6b3a764000090818102918205146001161561026b576713a04bbde78cc400900590565b670de0b6b3a76400009081810291820514821515161561026b570590565b600081128015612e13575b612e015780156128ff57671bc16d674ec8000081146128ed57670de0b6b3a76400008112908115612df257905b612d1482613189565b80156128ff57612d7d612d41612d3c612d37612d32612d8295612fbb565b61324a565b612ac8565b6114f5565b611620612d55612d50836131b4565b611873565b612d77612d72612d6c612d67866131df565b61188b565b856132c1565b6118a3565b90613228565b613272565b916000905b60028210612da257505015612d995790565b610215906119c9565b9092612dea81612de4612dba85611620600196612e24565b612d77612dda612dd5611625612dd087806132c1565b6119c9565b61329a565b61236f83866132c1565b906119ad565b930190612d87565b612dfb90611466565b90612d0b565b604051632d0483c560e21b8152600490fd5b50671bc16d674ec800008113612cde565b8015612f3757675698eef06670000081121561291157675698eef0666fffff19811315612f2a576000612f1a612e598361315c565b612ee2611625612e73612e6e612d728561247e565b613209565b92612526612f15612f10612f09612f03612efe612ef8612ef3612eed612ee88d612ee2612edd612ed7612ed2612d6c612ecd612ec7612ec2612ebc612eb78a6132e2565b6118bb565b896132c1565b6118d5565b876132c1565b6118ed565b611907565b836132c1565b61191f565b906132c1565b611939565b8c6132c1565b611951565b8a6132c1565b611969565b886132c1565b93806132c1565b61150e565b611489565b9112156102155761021590611466565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b61237a61237561021593612de461236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b15612f8a57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b886428490612fe760008213612f83565b711340daa0d5f769dba1915cef59f0815a55066130038261330d565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b600160ff1b8114613177576000811215610215571960010190565b604051634d2d75b160e01b8152600490fd5b670de0b6b3a76400009081810291818305149015176001161561026b57671bc16d674ec80000900590565b6703c1665c7aab20009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b669f32752462a0009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b6001811515161561026b576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029181830514901517821515161561026b570590565b671bc16d674ec7ffff1981810291600191830514161561026b57670de0b6b3a7640000900590565b6709d028cc6f205fff1981810291600191830514161561026b57670de0b6b3a7640000900590565b670fa8cedfc2adddfa90808202918205146001161561026b57670de0b6b3a7640000900590565b81810291818305149015176001161561026b57670de0b6b3a7640000900590565b67025f0fe105a314009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b613318811515612f83565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b906133966102159260208082518301019101612628565b93919290506124a9565b906133b76102159260208082518301019101612628565b9390509190916124a9565b906133d96102159260208082518301019101612628565b939290506124a9565b8051810160200190602001906133f791612a9b565b809193925051906020810151604082015191606001519261341783612ac8565b6134209061185a565b9361342a90611443565b9061343486612b86565b61343d87611981565b61344691612c38565b61344f87611981565b61345884612bb5565b613461916114a2565b61346b9089612c38565b61347491612cb5565b61347d90612cd3565b9361348784612fbb565b613490906114d8565b670de0b6b3a764000090056134a490612917565b906134ae91612c38565b6134b790612c67565b6134c0906119c9565b84866134cb86612c09565b906134d591612c38565b906134df91612c38565b6134e8916119ad565b6134f190612917565b826134fc8884612c38565b9061350691612c38565b61350f91612c38565b61351887611981565b611b0d84612bb5565b906135386102159260208082518301019101612a9b565b9493909291506119da565b80518101602001906020019061355891612a9b565b809192935051602082015190604083015192606001519361357884612ac8565b6135819061185a565b9461358b90611443565b9161359587612b86565b61359e88611981565b6135a791612c38565b6135b18383612c38565b6135ba89611981565b6135c391612c38565b6135cc906119c9565b846135d78585612c38565b6135e090612bde565b906135ea91612c38565b6135f3916119ad565b6135fc91612cb5565b613605906119c9565b61360e90612cd3565b9461361885612fbb565b613621906114d8565b670de0b6b3a7640000900561363590612917565b9061363f91612c38565b61364890612c67565b613651906119c9565b858761365c87612c09565b9061366691612c38565b9061367091612c38565b613679916119ad565b61368290612917565b8361368d898b612c38565b9061369791612c38565b6136a091612c38565b906136aa88611981565b61213085612bb5565b906136ca6102159260208082518301019101612a9b565b9493909250611fce56fea2646970667358221220f3e875cd9c43c4535da38090630f644037f96036f7dad55519e2d7d792047e4b64736f6c63430008160033","sourceMap":"279:10826:38:-:0;;;;;;;;;;;;;-1:-1:-1;;279:10826:38;;;;-1:-1:-1;;;;;279:10826:38;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;279:10826:38;;;;;;;;-1:-1:-1;279:10826:38;;-1:-1:-1;;;;;;279:10826:38;;;;;;;;;;;;;;;;;-1:-1:-1;279:10826:38;;;;;;-1:-1:-1;279:10826:38;;;;;-1:-1:-1;279:10826:38","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c80630420580a146101b7578063120649c5146101b2578063134ead12146101ad5780631e978cb0146101a8578063306db46b146101a3578063332266f31461019e5780633928ff97146101995780633b268d5d146101945780633b4d10301461018f5780634e817fd91461018a5780634fd67c58146101855780635eb408fc146101805780636237569f1461017b5780636d652299146101765780637f17409c1461017157806381b5fac21461016c578063902ecaa214610167578063a8c62e7614610162578063af4e437f1461015d578063b09d04e514610158578063cb1f553214610153578063ce153bf41461014e578063e94716d514610149578063ee3e8cfb14610144578063f30d37f21461013f5763f9c282111461013a57600080fd5b610aff565b610acf565b610a9e565b610a63565b610a27565b6109e2565b6109af565b610993565b61096a565b610941565b610914565b610872565b610856565b6107e9565b6107cd565b6107a4565b610788565b610759565b61071e565b61048d565b610436565b610407565b6103e2565b610354565b61028e565b610218565b60005b8381106101cf5750506000910152565b81810151838201526020016101bf565b906020916101f8815180928185528580860191016101bc565b601f01601f1916010190565b9060206102159281815201906101df565b90565b3461026b57604036600319011261026b57610267604051600260208201526004356040820152602435606082015260608152610253816102e9565b6040519182916020835260208301906101df565b0390f35b600080fd5b608090600319011261026b5760043590602435906044359060643590565b3461026b5760206102aa6102a136610270565b92919091610b4d565b604051908152f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff8211176102e457604052565b6102b2565b6080810190811067ffffffffffffffff8211176102e457604052565b6060810190811067ffffffffffffffff8211176102e457604052565b90601f8019910116810190811067ffffffffffffffff8211176102e457604052565b6001600160a01b0381160361026b57565b3461026b5760e036600319011261026b5760a036604319011261026b576102676103bc604051610383816102c8565b60443581526064356020820152608435604082015260a435606082015260c4356103ac81610343565b608082015260243560043561139a565b60405191829182610204565b606090600319011261026b57600435906024359060443590565b3461026b5760206102aa6104016103f8366103c8565b91929092610f06565b91611583565b3461026b5760206102aa61041a366103c8565b9061042d61042784610f06565b936110d9565b92919091611670565b3461026b5760206102aa610449366103c8565b9061045661042784610f06565b9290506119da565b8015150361026b57565b90926080926102159594151583526020830152604082015281606082015201906101df565b3461026b57606036600319011261026b5761050360243561061f6004356104b38361045e565b604435926104bf610c57565b936104c8610c57565b946104d2846110d9565b60208496939592960194604096878601928352865284526104f287610f06565b998a9185519087519051918a611009565b921561069657928261054a6105519361054361053e61053661056f9861053160606105979d9c0151866125a2565b6125a2565b8651906125f8565b610c9d565b9351610cb0565b8a52610cb0565b61056385890191808352895188610c4a565b90885190519087610b4d565b9061058e6105836020890193808552610c9d565b808452825111610d31565b51905190610d24565b945b84519260c06020870151848801926105df8451976105d18851998a958693602085016040919493926060820195825260208201520152565b03601f198101845283610321565b600054610602906105f6906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610dbf565b03915afa94851561069157600095610651575b509061064691610267959651905190611583565b905194859485610468565b61026795509061067c610646939260c03d60c01161068a575b6106748183610321565b810190610d88565b505050505095509091610632565b503d61066a565b610b41565b826106df610718966106d2610704956106cb61053e6106c361070f9a61053160606106fc9b0151866125a2565b8551906125f8565b9251610cb0565b9260208d01938452610cb0565b6106f1888c019180835283518b610de3565b915190519089610df0565b808952610c9d565b808852825111610cbd565b51855190610d24565b94610599565b3461026b57604036600319011261026b57610267604051600460208201526004356040820152602435606082015260608152610253816102e9565b3461026b57602036600319011261026b5760206102aa60043561040161077e826110d9565b9291939050610f06565b3461026b5760206102aa61079e6103f8366103c8565b91611b9c565b3461026b5760206102aa6107b7366103c8565b906107c461042784610f06565b92919091611c16565b3461026b5760206102aa6107e036610270565b92919091610df0565b3461026b57604036600319011261026b5761083860043561026761081a61080f836110d9565b919050602435611f7a565b939092848461083261082b84610f06565b8383611583565b92610b4d565b92604051938493846040919493926060820195825260208201520152565b3461026b57600036600319011261026b57602060405160008152f35b3461026b57604036600319011261026b576004356108c06102676108a2610898846110d9565b9150602435611fa7565b92909383856108ba6108b384610f06565b8383611b9c565b92610df0565b91604051938493846040919493926060820195825260208201520152565b805182526020808201519083015260408082015190830152606080820151908301526080908101516001600160a01b0316910152565b3461026b57602036600319011261026b5760a0610932600435610f06565b61093f60405180926108de565bf35b3461026b5760206102aa610954366103c8565b9061096161042784610f06565b92909150611fce565b3461026b57600036600319011261026b576000546040516001600160a01b039091168152602090f35b3461026b5760206102aa6109a636610270565b92919091611009565b3461026b57602036600319011261026b576102676040516001602082015260043560408201526040815261025381610305565b3461026b57602036600319011261026b57610267600435610a0281610343565b60408051600560208201526001600160a01b0390921682820152815261025381610305565b3461026b57602036600319011261026b57610267610a466004356110d9565b604080519384526020840192909252908201529081906060820190565b3461026b57604036600319011261026b57610267604051600360208201526004356040820152602435606082015260608152610253816102e9565b3461026b57604036600319011261026b5761083860043561026761081a610ac4836110d9565b919050602435611fa7565b3461026b57604036600319011261026b576004356108c06102676108a2610af5846110d9565b9150602435611f7a565b3461026b57600036600319011261026b57602060405160788152f35b9081602091031261026b575190565b6040906102159392815281602082015201906101df565b6040513d6000823e3d90fd5b610b85610bee9493929361053184610b7e610b79610b74610b6d88610f06565b809661230a565b61237f565b6123b2565b92516125a2565b916020604051610bbc81610bae85888a8785016040919493926060820195825260208201520152565b03601f198101835282610321565b600054610bd3906105f6906001600160a01b031681565b6040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093610c15575b50610c0f90610f06565b936111f1565b610c0f919350610c3c9060203d602011610c43575b610c348183610321565b810190610b1b565b9290610c05565b503d610c2a565b9161040161021593610f06565b604051906060820182811067ffffffffffffffff8211176102e45760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610cab57565b610c87565b91908201809211610cab57565b15610cc457565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b6103e719810191908211610cab57565b91908203918211610cab57565b15610d3857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c091031261026b578151610d9f8161045e565b9160208101519160408201519160608101519160a0608083015192015190565b610215939260609260018060a01b03168252602082015281604082015201906101df565b9161079e61021593610f06565b92610b79610b74610e0d92949394610e0787610f06565b90612f44565b92670de0b6b3a7640000938403938411610cab57610e2e610e5794836125a2565b916020604051610bbc81610bae8589898785016040919493926060820195825260208201520152565b03915afa9182156106915761021595600093610e7e575b50610e7890610f06565b93611e24565b610e78919350610e9c9060203d602011610c4357610c348183610321565b9290610e6e565b91908260a091031261026b57604051610ebb816102c8565b608080829480518452602081015160208501526040810151604085015260608101516060850152015191610eee83610343565b0152565b9060a08282031261026b5761021591610ea3565b90604051610f13816102c8565b600090818152816080602092828482015282604082015282606082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610691578092610f7a575b506102159293508082518301019101610ef2565b9091503d8082863e610f8c8186610321565b840190828583031261100257845167ffffffffffffffff9586821161100557019082601f830112156110025781519586116102e45760405192610fd8601f8801601f1916860185610321565b86845284878401011161100257506102159394610ffa918480850191016101bc565b908392610f66565b80fd5b8280fd5b61105d939192602060405161103781610bae87868a8785016040919493926060820195825260208201520152565b60018060a01b03600054166040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093611084575b5061107e90610f06565b936121b4565b61107e9193506110a29060203d602011610c4357610c348183610321565b9290611074565b9081602091031261026b575161021581610343565b9081606091031261026b578051916040602083015192015190565b90600460206110f56105f66105f660005460018060a01b031690565b604051632bee84f160e21b815292839182905afa928315610691576111409360609260009161119d575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156106915760008093600093611166575b50929190565b9193505061118c915060603d606011611196575b6111848183610321565b8101906110be565b9290929138611160565b503d61117a565b6111bf915060203d6020116111c5575b6111b78183610321565b8101906110a9565b3861111f565b503d6111ad565b6111ef9360609296959361010083019783526020830152604082015201906108de565b565b929360009385929185851215611367575b8585126113485790610bae611224925b604096604051958694602086016111cc565b81859285968281116113255761123a818561337f565b92611245818661337f565b88611250828761152f565b136113045750906112649197969297610d24565b60019591829187805b61127f575b5050505050505050505090565b156112e0575b5086979850819261129f6112998b89610cb0565b60011c90565b996112aa8b8861337f565b90846112b6888461152f565b136112d457505089935b886112cb8987610d24565b9201949961126d565b8b9850909550936112c0565b601410806112fb575b156112f45788611285565b8080611272565b508083106112e9565b6040516306f1be5d60e21b8152600481018690526024810191909152604490fd5b604051633082dfdb60e11b81526004810191909152602481019290925250604490fd5b935091611354906125ce565b91611361848385846124a9565b93611202565b85851361137b5790610bae61122492611212565b935094611387906123f5565b94611394848388846124a9565b93611367565b916113ab610b79610b748385612f44565b91670de0b6b3a7640000928303928311610cab57611402826113ee6113e3610b79610b74846113dd6114209a8c6125f8565b9761230a565b6105318584516125a2565b926113fb8282868a6124a9565b84886121b4565b906040519460208601526040850152606084015260808301906108de565b6101008152610120810181811067ffffffffffffffff8211176102e45760405290565b90670de0b6b3a764000060008382039312818412811691841390151617610cab57565b90671bc16d674ec8000060008382039312818412811691841390151617610cab57565b9067119000ab100ffbff198201918213600116610cab57565b81810392916000138015828513169184121617610cab57565b90670de0b6b3a764000091828102928184051490151715610cab57565b90671bc16d674ec8000091828102928184051490151715610cab57565b90633b9aca0091828102928184051490151715610cab57565b60008190039190600160ff1b8114600116610cab57600019830503610cab57565b818102929160008212600160ff1b821416610cab578184051490151715610cab57565b811561156d57600160ff1b8114600019831416610cab570590565b634e487b7160e01b600052601260045260246000fd5b9190916115be60208301936115b885516115b06115a66040880192835190612843565b975182519061286c565b905190612414565b92612435565b92670de0b6b3a76400008085121561163c5760008513156116315760008582039512818612811691861390151617610cab5761162561162a92611620611612610b799461160d6102159961288b565b61152f565b670de0b6b3a7640000900590565b6114a2565b612917565b90516125a2565b505050505060001990565b5050505050600090565b90959492936111ef94608093610120840198845260208401526040830152606082015201906108de565b909291828651602088015160408901519060608a01519261169083612ac8565b6116999061185a565b936116a390611443565b906116ad8a612b86565b6116b68b611981565b6116bf91612c38565b6116c88b611981565b6116d184612bb5565b6116da916114a2565b6116e49088612c38565b6116ed91612cb5565b6116f690612cd3565b9361170084612fbb565b611709906114d8565b670de0b6b3a7640000900561171d90612917565b9061172791612c38565b61173090612c67565b611739906119c9565b848661174486612c09565b9061174e91612c38565b9061175891612c38565b611761916119ad565b61176a90612917565b826117758c84612c38565b9061177f91612c38565b61178891612c38565b6117918b611981565b61179a84612bb5565b6117a3916114a2565b6117ac91612cb5565b956117b691612c38565b906117c090611993565b6117c991612c38565b926117d391612c38565b6117dc90612c8e565b906117e6916114a2565b6117ef90612e24565b6117f891612c38565b61180186612b86565b61180a91612cb5565b90611814846119c9565b9061181e916119ad565b90611828916119ad565b60001361184f576102159561184a93610bae9260405196879560208701611646565b61264d565b505050505050600090565b90633b9aca0091828102928184041490151715610cab57565b9081672005fe4f268ea00001918212600116610cab57565b9081670dc5527f642c200001918212600116610cab57565b9081670de0b6b3a764000001918212600116610cab57565b9081670b68df18e471fbff190191821215600116610cab57565b90816714a8454c19e1ac0001918212600116610cab57565b9081670fc10e01578277ff190191821215600116610cab57565b90816703debd083b8c7c0001918212600116610cab57565b9081670295d400ea3257ff190191821215600116610cab57565b9081670157d8b2ecc7080001918212600116610cab57565b90816705310aa7d521300001918212600116610cab57565b9081670de0cc3d1561000001918212600116610cab57565b90816103e801918212600116610cab57565b9081670de0b6b3a763ffff190191821215600116610cab57565b91909160008382019384129112908015821691151617610cab57565b600160ff1b8114610cab5760000390565b939290919280519160208201519060408301519260600151936119fc84612ac8565b611a059061185a565b94611a0f90611443565b9182611a1a88612b86565b611a2489846119ad565b611a2d91612c38565b611a3789846119ad565b611a418385612c38565b611a4a916114a2565b611a54908b612c38565b611a5d91612cb5565b611a6690612cd3565b95611a7086612fbb565b611a79906114d8565b670de0b6b3a76400009005611a8d90612917565b90611a9791612c38565b611aa090612c67565b611aa9906119c9565b8688611ab488612c09565b90611abe91612c38565b90611ac891612c38565b611ad1916119ad565b611ada90612917565b81611ae58a86612c38565b90611aef91612c38565b611af891612c38565b91611b0389826119ad565b91611b0d91612c38565b611b16916114a2565b611b1f91612cb5565b96611b2991612c38565b90611b3390611993565b611b3c91612c38565b92611b4691612c38565b611b4f90612c8e565b90611b59916114a2565b611b6290612e24565b611b6b91612c38565b90611b7590612b86565b611b7e91612cb5565b91611b88906119c9565b90611b92916119ad565b90610215916119ad565b919091611bda6020830191611bd4611bcc84516115b0611bc26040890192835190612843565b965182519061286c565b958551612414565b90612435565b670de0b6b3a7640000918282121561163c576000821315611631576102159461162a93611c106116259361160d610b799661288b565b056119ad565b909291855160208701516040880151606089015191611c3482612ac8565b611c3d9061185a565b92611c4790611443565b93611c5186612b86565b611c5a87611981565b611c6391612c38565b611c6d8983612c38565b611c7688611981565b611c7f91612c38565b611c88906119c9565b86611c938b85612c38565b611c9c90612bde565b90611ca691612c38565b611caf916119ad565b611cb891612cb5565b611cc1906119c9565b611cca90612cd3565b92611cd483612fbb565b611cdd906114d8565b670de0b6b3a76400009005611cf190612917565b90611cfb91612c38565b611d0490612c67565b611d0d906119c9565b8385611d1885612c09565b90611d2291612c38565b90611d2c91612c38565b611d35916119ad565b611d3e90612917565b85611d49888a612c38565b90611d5391612c38565b611d5c91612c38565b90611d6687611981565b611d6f87612bb5565b611d78916114a2565b611d8191612c38565b611d8a91612cb5565b93611d958789612c38565b90611d9f90611993565b611da891612c38565b92611db291612c38565b611dbb90612c8e565b90611dc5916114a2565b611dce90612e24565b611dd791612c38565b611de083612b86565b611de991612cb5565b90611df390611993565b90611dfd916119ad565b60001361184f5761021595611e1f93610bae9260405196879560208701611646565b61276c565b929360009385929185851215611f47575b858512611f285790610bae611e5692604096604051958694602086016111cc565b818592859682811161132557611e6c81856133a0565b92611e7781866133a0565b88611e82828761152f565b13611304575090611e969197969297610d24565b60019591829187805b611eb0575050505050505050505090565b15611f0b575b50869798508192611eca6112998b89610cb0565b99611ed58b886133a0565b9084611ee1888461152f565b13611eff57505089935b88611ef68987610d24565b92019499611e9f565b8b985090955093611eeb565b60141080611f1f575b156112f45788611eb6565b50808310611f14565b935091611f34906125ce565b91611f41848383866124a9565b93611e35565b858513611f5b5790610bae611e5692611212565b935094611f67906123f5565b94611f74848383896124a9565b93611f47565b929190611f90611f8a82846125f8565b856125a2565b938103908111610cab57928103908111610cab5790565b929190611fb7611f8a82846125f8565b938101809111610cab57928101809111610cab5790565b9390929181516020830151916040840151936060015194611fee85612ac8565b611ff79061185a565b9561200190611443565b928361200c89612b86565b6120168a856119ad565b61201f91612c38565b6120298584612c38565b6120338b866119ad565b61203c91612c38565b612045906119c9565b82856120518887612c38565b9061205b91612c38565b9061206591612c38565b61206e916119ad565b61207791612cb5565b612080906119c9565b61208990612cd3565b9661209387612fbb565b61209c906114d8565b670de0b6b3a764000090056120b090612917565b906120ba91612c38565b6120c390612c67565b6120cc906119c9565b87896120d789612c09565b906120e191612c38565b906120eb91612c38565b6120f4916119ad565b6120fd90612917565b816121088b8d612c38565b9061211291612c38565b61211b91612c38565b926121268a826119ad565b9161213091612c38565b612139916114a2565b61214291612c38565b61214b91612cb5565b9661215591612c38565b9061215f90611993565b61216891612c38565b9261217291612c38565b61217b90612c8e565b90612185916114a2565b61218e90612e24565b61219791612c38565b906121a190612b86565b6121aa91612cb5565b90611b9290611993565b9293600093859291858512156122d7575b8585126122b85790610bae6121e692604096604051958694602086016111cc565b8185928596828111611325576121fc81856133c2565b9261220781866133c2565b88612212828761152f565b136113045750906122269197969297610d24565b60019591829187805b612240575050505050505050505090565b1561229b575b5086979850819261225a6112998b89610cb0565b996122658b886133c2565b9084612271888461152f565b1361228f57505089935b886122868987610d24565b9201949961222f565b8b98509095509361227b565b601410806122af575b156112f45788612246565b508083106122a4565b9350946122c4906123f5565b946122d1848784846124a9565b936121c5565b8585136122eb5790610bae6121e692611212565b9350916122f7906125ce565b91612304848484846124a9565b936122d7565b61237a6123756102159361236f61236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b9d6125f8565b612fbb565b97612fbb565b6114d8565b05612917565b612414565b612457565b906114a2565b6114bb565b611552565b6123ae6123756123a96713a04bbdfdc9be886123a3671bc16d674ec80000956114bb565b056119c9565b612e24565b0590565b600081126123bd5790565b60405162461bcd60e51b815260206004820152601060248201526f746f55696e743a206e6567617469766560801b6044820152606490fd5b6103e79081810291818304149015176001161561026b576103e8900490565b81810291818304149015176001161561026b57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517821515161561026b570490565b6706f05b59d3b2000090808202918204146001161561026b57670de0b6b3a7640000900490565b670de0b6b3a76400009081810291818304149015176001161561026b57671bc16d674ec80000900490565b90928282101561255d57610215936125269284670de0b6b3a764000091826124d18383612435565b1061254a57506001600160ff1b039590505b8351916124f96124f38385612414565b85612435565b1061252b57506001600160ff1b0392612520925090505b6040602082015191015190612843565b926119ad565b6119ad565b61252092611bd461253f9261254494612414565b61288b565b91612510565b6125579161253f91612435565b946124e3565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b81810291818304149015176001161561026b576001670de0b6b3a7640000600019830104019015150290565b6103e99081810291818304149015176001161561026b5760016103e8600019830104019015150290565b90670de0b6b3a7640000918281029281840414901517811515161561026b57600190600019830104019015150290565b6101008183031261026b57805192610215602083015193606060408501519401610ea3565b91906103e89260009360009183821161274b57612669816133e2565b6126738583613521565b600061267f828461152f565b1361272c5750612690859695610d14565b60019460009186805b6126aa575b50505050505050509050565b15612707575b50859697985080916126c56112998b88610cb0565b996126d08b87613521565b90836126dc878461152f565b136126fb57505089925b876126f18886610d24565b9201939998612699565b8b9750909450926126e6565b861080612721575b1561271a57886126b0565b808061269e565b50610100821061270f565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e89260009360009183821161274b5761278881613543565b61279285836136b3565b600061279e828461152f565b1361272c57506127af859695610d14565b60019460009186805b6127c85750505050505050509050565b15612825575b50859697985080916127e36112998b88610cb0565b996127ee8b876136b3565b90836127fa878461152f565b1361281957505089925b8761280f8886610d24565b92019399986127b8565b8b975090945092612804565b861080612838575b1561271a57886127ce565b50610100821061282d565b9061284d90612ac8565b633b9aca0090818102918183041490151715610cab5761021591612414565b61021591612365670de0b6b3a764000061235f61235a61236a95612fbb565b6706f05b59d3b20000811461291157670de0b6b3a764000090818112156128ff5780156128ed578060011b908105600203610cab576128c990612cd3565b906713a04bbdfdc9be8891808302928305146001161561026b5761021591056119c9565b6040516322ed598560e21b8152600490fd5b6040516307a0212760e01b8152600490fd5b50600090565b680248ce36a70cb26b3e1981131561291157680755bf798b4a1bf1e5811215612a67576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b91906101208382031261026b57825192602081015192610215604083015193608060608501519401610ea3565b60b581600160881b811015612b6f575b80690100000000000000000062010000921015612b62575b65010000000000811015612b55575b6301000000811015612b48575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b91612b0c565b60201c9160101b91612aff565b60401c9160201b91612af0565b5068b500000000000000009050608082901c612ad8565b671bc16d674ec8000081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e881810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e88082029160016000198210179181840514901517161561026b57670de0b6b3a7640000900590565b6713a04bbde78cc40081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b90911317161561026b57670de0b6b3a7640000900590565b670de0b6b3a764000090818102918205146001161561026b57671bc16d674ec80000900590565b670de0b6b3a764000090818102918205146001161561026b576713a04bbde78cc400900590565b670de0b6b3a76400009081810291820514821515161561026b570590565b600081128015612e13575b612e015780156128ff57671bc16d674ec8000081146128ed57670de0b6b3a76400008112908115612df257905b612d1482613189565b80156128ff57612d7d612d41612d3c612d37612d32612d8295612fbb565b61324a565b612ac8565b6114f5565b611620612d55612d50836131b4565b611873565b612d77612d72612d6c612d67866131df565b61188b565b856132c1565b6118a3565b90613228565b613272565b916000905b60028210612da257505015612d995790565b610215906119c9565b9092612dea81612de4612dba85611620600196612e24565b612d77612dda612dd5611625612dd087806132c1565b6119c9565b61329a565b61236f83866132c1565b906119ad565b930190612d87565b612dfb90611466565b90612d0b565b604051632d0483c560e21b8152600490fd5b50671bc16d674ec800008113612cde565b8015612f3757675698eef06670000081121561291157675698eef0666fffff19811315612f2a576000612f1a612e598361315c565b612ee2611625612e73612e6e612d728561247e565b613209565b92612526612f15612f10612f09612f03612efe612ef8612ef3612eed612ee88d612ee2612edd612ed7612ed2612d6c612ecd612ec7612ec2612ebc612eb78a6132e2565b6118bb565b896132c1565b6118d5565b876132c1565b6118ed565b611907565b836132c1565b61191f565b906132c1565b611939565b8c6132c1565b611951565b8a6132c1565b611969565b886132c1565b93806132c1565b61150e565b611489565b9112156102155761021590611466565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b61237a61237561021593612de461236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b15612f8a57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b886428490612fe760008213612f83565b711340daa0d5f769dba1915cef59f0815a55066130038261330d565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b600160ff1b8114613177576000811215610215571960010190565b604051634d2d75b160e01b8152600490fd5b670de0b6b3a76400009081810291818305149015176001161561026b57671bc16d674ec80000900590565b6703c1665c7aab20009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b669f32752462a0009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b6001811515161561026b576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029181830514901517821515161561026b570590565b671bc16d674ec7ffff1981810291600191830514161561026b57670de0b6b3a7640000900590565b6709d028cc6f205fff1981810291600191830514161561026b57670de0b6b3a7640000900590565b670fa8cedfc2adddfa90808202918205146001161561026b57670de0b6b3a7640000900590565b81810291818305149015176001161561026b57670de0b6b3a7640000900590565b67025f0fe105a314009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b613318811515612f83565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b906133966102159260208082518301019101612628565b93919290506124a9565b906133b76102159260208082518301019101612628565b9390509190916124a9565b906133d96102159260208082518301019101612628565b939290506124a9565b8051810160200190602001906133f791612a9b565b809193925051906020810151604082015191606001519261341783612ac8565b6134209061185a565b9361342a90611443565b9061343486612b86565b61343d87611981565b61344691612c38565b61344f87611981565b61345884612bb5565b613461916114a2565b61346b9089612c38565b61347491612cb5565b61347d90612cd3565b9361348784612fbb565b613490906114d8565b670de0b6b3a764000090056134a490612917565b906134ae91612c38565b6134b790612c67565b6134c0906119c9565b84866134cb86612c09565b906134d591612c38565b906134df91612c38565b6134e8916119ad565b6134f190612917565b826134fc8884612c38565b9061350691612c38565b61350f91612c38565b61351887611981565b611b0d84612bb5565b906135386102159260208082518301019101612a9b565b9493909291506119da565b80518101602001906020019061355891612a9b565b809192935051602082015190604083015192606001519361357884612ac8565b6135819061185a565b9461358b90611443565b9161359587612b86565b61359e88611981565b6135a791612c38565b6135b18383612c38565b6135ba89611981565b6135c391612c38565b6135cc906119c9565b846135d78585612c38565b6135e090612bde565b906135ea91612c38565b6135f3916119ad565b6135fc91612cb5565b613605906119c9565b61360e90612cd3565b9461361885612fbb565b613621906114d8565b670de0b6b3a7640000900561363590612917565b9061363f91612c38565b61364890612c67565b613651906119c9565b858761365c87612c09565b9061366691612c38565b9061367091612c38565b613679916119ad565b61368290612917565b8361368d898b612c38565b9061369791612c38565b6136a091612c38565b906136aa88611981565b61213085612bb5565b906136ca6102159260208082518301019101612a9b565b9493909250611fce56fea2646970667358221220f3e875cd9c43c4535da38090630f644037f96036f7dad55519e2d7d792047e4b64736f6c63430008160033","sourceMap":"279:10826:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;-1:-1:-1;;279:10826:38;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;279:10826:38;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;279:10826:38;;;;;;;954:26:44;279:10826:38;930:91:44;;279:10826:38;;;;;;;;;;;;;;930:91:44;;;;;:::i;:::-;279:10826:38;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;279:10826:38;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;279:10826:38;;;;;:::o;:::-;;;;;;-1:-1:-1;;279:10826:38;;;;;;-1:-1:-1;;279:10826:38;;;;;2441:37;279:10826;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;2441:37;:::i;:::-;279:10826;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;9601:63;9640:23;279:10826;;;:::i;:::-;9640:23;;;;;:::i;:::-;9601:63;;:::i;279:10826::-;;;;;10674:49;279:10826;;;:::i;:::-;10555:23;10626:31;10555:23;;;:::i;:::-;10626:31;;:::i;:::-;10674:49;;;;;:::i;279:10826::-;;;;;9966:41;279:10826;;;:::i;:::-;9854:23;9925:31;9854:23;;;:::i;9925:31::-;9966:41;;;;:::i;279:10826::-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;279:10826:38;;;;6537:107;279:10826;;8547:65;279:10826;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;6350:31;;;;:::i;:::-;279:10826;6301:16;;;;;;;279:10826;;6319:15;;;;279:10826;;;;;;;6437:23;;;:::i;:::-;6471:17;;;279:10826;;;;;;;6537:107;;;:::i;:::-;6659:1733;;;;6723:18;;6918:27;6979:23;6723:18;6871:11;1133:19:18;799;7152:105:38;6723:18;799:19:18;279:10826:38;7481:33;6723:18;;;279:10826;799:19:18;;:::i;:::-;;:::i;:::-;279:10826:38;;1133:19:18;;:::i;:::-;6871:11:38;:::i;:::-;279:10826;;6918:27;:::i;:::-;279:10826;;6979:23;:::i;:::-;7062:54;6963:13;;;279:10826;;;;;;7062:54;;:::i;:::-;279:10826;;;;;7152:105;;;:::i;:::-;7135:14;7313:138;7275:19;279:10826;7135:14;;279:10826;;;;7275:19;:::i;:::-;279:10826;;;;;-1:-1:-1;7313:138:38;:::i;:::-;279:10826;;;7481:33;;:::i;:::-;6659:1733;;279:10826;;8475:14;8547:65;279:10826;8475:14;;279:10826;8491:13;;;279:10826;8448:57;279:10826;;;8448:57;279:10826;;8448:57;;;;;279:10826;8448:57;;279:10826;;;;;;;;;;;;;;;;;;8448:57;;279:10826;;8448:57;;;;;;:::i;:::-;-1:-1:-1;279:10826:38;8547:32;;:19;;-1:-1:-1;;;;;279:10826:38;8547:19;279:10826;;-1:-1:-1;;;;;279:10826:38;;;8547:32;279:10826;;;;;;;;;;;;8547:65;;8588:4;279:10826;8547:65;;;:::i;:::-;;;;;;;;;;-1:-1:-1;8547:65:38;;;6659:1733;279:10826;;8685:153;279:10826;;;;;;;8685:153;;:::i;:::-;279:10826;;;;;;;:::i;8547:65::-;279:10826;8547:65;;;;8685:153;8547:65;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;6659:1733::-;7586:18;7842:23;8344:33;7586:18;7781:27;8138:19;7586:18;7734:11;1133:19:18;799;8176:138:38;7586:18;799:19:18;279:10826:38;8015:105;7586:18;;279:10826;799:19:18;;:::i;:::-;279:10826:38;;1133:19:18;;:::i;7734:11:38:-;279:10826;;7781:27;:::i;:::-;7764:14;279:10826;7764:14;;279:10826;;;7842:23;:::i;:::-;7925:54;7826:13;;;279:10826;;;;;;7925:54;;:::i;:::-;279:10826;;;;8015:105;;;:::i;:::-;279:10826;;;8138:19;:::i;:::-;279:10826;;;;;-1:-1:-1;8176:138:38;:::i;:::-;279:10826;;;8344:33;;:::i;:::-;6659:1733;;;279:10826;;;;;;-1:-1:-1;;279:10826:38;;;;;;;;;1963:63:44;;279:10826:38;;;;;;;;;;;;;;1963:63:44;;;;;:::i;279:10826:38:-;;;;;;-1:-1:-1;;279:10826:38;;;;;9153:63;279:10826;;9192:23;9104:31;;;:::i;:::-;9192:23;;;;;;:::i;279:10826::-;;;;;9377:63;9416:23;279:10826;;;:::i;9416:23::-;9377:63;;:::i;279:10826::-;;;;;11047:49;279:10826;;;:::i;:::-;10928:23;10999:31;10928:23;;;:::i;10999:31::-;11047:49;;;;;:::i;279:10826::-;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;279:10826:38;;;;3948:57;279:10826;;;3787:46;3700:31;;;:::i;:::-;279:10826;;;;;3787:46;:::i;:::-;9640:23;;;;;9601:63;9640:23;;;:::i;:::-;9601:63;;;:::i;:::-;3948:57;;:::i;:::-;279:10826;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;279:10826:38;;;;;;;;;;;;;;;;;-1:-1:-1;;279:10826:38;;;;;;3424:57;279:10826;3264:45;3177:31;;;:::i;:::-;279:10826;;;;3264:45;:::i;:::-;9416:23;;;;;9377:63;9416:23;;;:::i;:::-;9377:63;;;:::i;:::-;3424:57;;:::i;:::-;279:10826;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;279:10826:38;;;;:::o;:::-;;;;;;-1:-1:-1;;279:10826:38;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;10309:41;279:10826;;;:::i;:::-;10197:23;10268:31;10197:23;;;:::i;10268:31::-;10309:41;;;;;:::i;279:10826::-;;;;;;-1:-1:-1;;279:10826:38;;;;;;;;-1:-1:-1;;;;;279:10826:38;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;279:10826:38;;;;;;;499:27:44;279:10826:38;488:57:44;;279:10826:38;;;;;;;;488:57:44;;;;;:::i;279:10826:38:-;;;;;;-1:-1:-1;;279:10826:38;;;;;;;;;;:::i;:::-;;;;2453:30:44;279:10826:38;2442:54:44;;279:10826:38;-1:-1:-1;;;;;279:10826:38;;;;;;;2442:54:44;;;279:10826:38;2442:54:44;:::i;279:10826:38:-;;;;;;-1:-1:-1;;279:10826:38;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;279:10826:38;;;;;;;1479:25:44;279:10826:38;1468:67:44;;279:10826:38;;;;;;;;;;;;;;1468:67:44;;;;;:::i;279:10826:38:-;;;;;;-1:-1:-1;;279:10826:38;;;;2902:57;279:10826;;;2742:45;2655:31;;;:::i;:::-;279:10826;;;;;2742:45;:::i;279:10826::-;;;;;;-1:-1:-1;;279:10826:38;;;;;;4473:57;279:10826;4312:46;4225:31;;;:::i;:::-;279:10826;;;;4312:46;:::i;279:10826::-;;;;;;-1:-1:-1;;279:10826:38;;;;;;;628:3;279:10826;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5462:486;799:19:18;5777:53:38;5462:486;;;;799:19:18;5661:23:38;1488:24:37;1444:16;1405:20;5661:23:38;;;:::i;:::-;1405:20:37;;;:::i;:::-;1444:16;:::i;:::-;1488:24;:::i;:::-;279:10826:38;;799:19:18;:::i;:::-;279:10826:38;5715:33;279:10826;;5715:33;;;;;;;;;279:10826;;;;;;;;;;;;;;;;;;5715:33;;279:10826;;5715:33;;;;;;:::i;:::-;-1:-1:-1;279:10826:38;5777:39;;:19;;-1:-1:-1;;;;;279:10826:38;5777:19;279:10826;5777:39;279:10826;;;;;;;;;;5777:53;;;;;;;:::i;:::-;;;;;;;;;;5847:94;5777:53;-1:-1:-1;5777:53:38;;;5462:486;5908:23;;;;:::i;:::-;5847:94;;:::i;5777:53::-;5908:23;5777:53;;;;;5715:33;5777:53;5715:33;5777:53;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;9453:218;;9640:23;9601:63;9453:218;9640:23;:::i;279:10826::-;;;;;;;;;;;;;;;;;;-1:-1:-1;279:10826:38;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;7744:1;279:10826;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;279:10826:38;;;;;;;;;;;;;;;;;-1:-1:-1;;;279:10826:38;;;;;;;;-1:-1:-1;;279:10826:38;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;279:10826:38;;;;;;;;;;;;;;;;;-1:-1:-1;;;279:10826:38;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9229:218::-;;9416:23;9377:63;9229:218;9416:23;:::i;4970:486::-;;1901:16:37;1862:20;1945:24;4970:486:38;;;;5169:23;;;:::i;:::-;1862:20:37;;:::i;1945:24::-;378:4:31;;279:10826:38;;;;;;;;799:19:18;5285:53:38;799:19:18;;;:::i;:::-;279:10826:38;5223:33;279:10826;;5223:33;;;;;;;;;279:10826;;;;;;;;;;;;;;;;;;5285:53;;;;;;;;;;5355:94;5285:53;-1:-1:-1;5285:53:38;;;4970:486;5416:23;;;;:::i;:::-;5355:94;;:::i;5285:53::-;5416:23;5285:53;;;;;5223:33;5285:53;5223:33;5285:53;;;;;;;:::i;:::-;;;;;279:10826;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;:::i;742:264::-;;279:10826;;;;;:::i;:::-;-1:-1:-1;279:10826:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;907:41;;;;;279:10826;907:41;;;;;;;;;;;742:264;279:10826;883:116;279:10826;;;;;;883:116;;;;;;:::i;907:41::-;;;;;;;;;;;;;:::i;:::-;;;279:10826;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;279:10826:38;;;;;:::i;:::-;;;;;;;;;;;;;883:116;279:10826;;;;;;;;;;;:::i;:::-;907:41;;;;;279:10826;;;;;;;4583:381;4808:53;4583:381;;;4758:21;279:10826;;4758:21;;;;;;;;;279:10826;;;;;;;;;;;;;;;;;;4758:21;279:10826;;;;;4818:8;279:10826;;;;;;;;;;;;4808:53;;;;;;;:::i;:::-;;;;;;;;;;4890:67;4808:53;4818:8;4808:53;;;4583:381;4933:23;;;;:::i;:::-;4890:67;;:::i;4808:53::-;4933:23;4808:53;;;;;4758:21;4808:53;4758:21;4808:53;;;;;;;:::i;:::-;;;;;279:10826;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;2047:214::-;;2195:26;;:24;:19;279:10826;2205:8;279:10826;;;;;;;;;2195:24;279:10826;;-1:-1:-1;;;2195:26:38;;279:10826;;;;;2195:26;;;;;;;2189:65;2195:26;2189:65;2195:26;2205:8;2195:26;;;2047:214;279:10826;;;;;;;;;;;2189:65;;2195:26;2189:65;;279:10826;;;;;;;;2189:65;;;-1:-1:-1;;;;;279:10826:38;2189:65;;;;;;;2205:8;;;;2189:65;;;2047:214;2182:72;;;2047:214;:::o;2189:65::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;2195:26;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;279:10826;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;8030:1082:37:-;;;8351:1;;8030:1082;;;8331:21;;;8351:1;;;8371:21;;;;;;8327:610;8966:44;;8327:610;;279:10826:38;;;;8966:44:37;;;;;;;:::i;:::-;8947:162;;;;1239:13:33;;;;1235:66;;1632:15;;;;:::i;:::-;1674;;;;;:::i;:::-;1699:25;;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;;;;:::i;:::-;9094:9:37;;1904:18:33;;;9094:9:37;;;;;1978:981:33;8942:167:37;;;;;;;;;;8030:1082;:::o;1978:981:33:-;;;;;2909:48;;;;;;2123:13;2122:19;2123:13;;;;:::i;:::-;279:10826:38;;;;2122:19:33;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;8351:1:37;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;279:10826:38;;1978:981:33;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;653:2:31;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;;;;;;2931:26;;;;2909:48;;1695:115;279:10826:38;;-1:-1:-1;;;1747:56:33;;;;;279:10826:38;;;;;;;;;;;;1747:56:33;1235:66;279:10826:38;;-1:-1:-1;;;1261:40:33;;;;;279:10826:38;;;;;;;;;;;-1:-1:-1;279:10826:38;;1747:56:33;8364:272:37;8416:26;;;;;;:::i;:::-;8476:149;;;;;;;:::i;:::-;8364:272;;;8327:610;8665:21;;;;;8327:610;8966:44;;8327:610;;;8658:273;8710:27;;;;;;:::i;:::-;8771:149;;;;;;;:::i;:::-;8658:273;;;5320:526;;1053:24;1009:16;955:35;;;;:::i;1053:24::-;378:4:31;;279:10826:38;;;;;;;;5741:55:37;1133:19:18;799;1488:24:37;1444:16;1405:20;1133:19:18;;279:10826:38;1133:19:18;;;:::i;:::-;1405:20:37;;:::i;1488:24::-;799:19:18;279:10826:38;;;799:19:18;:::i;:::-;5620:111:37;;;;;;;:::i;:::-;5741:55;;;:::i;:::-;279:10826:38;;;5809:34:37;;;;279:10826:38;;;;;;;;;;;;;;:::i;:::-;5809:34:37;;;279:10826:38;;;;;;;;;;;;;;5320:526:37;:::o;424:17:31:-;;378:4;424:17;;;;;;;;;;;;;;;;;;;;:::o;:::-;;6090:7:21;424:17:31;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;424:17:31;;;;;;;;;;;;;:::o;:::-;;378:4;424:17;;;;;;;;;;;;;;;:::o;:::-;;317:4;424:17;;;;;;;;;;;;;;;:::o;:::-;;1774:3:21;424:17:31;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;424:17:31;;279:10826:38;424:17:31;;;-1:-1:-1;;424:17:31;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;;424:17:31;;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;424:17:31;;-1:-1:-1;;424:17:31;;;;;;;:::o;:::-;279:10826:38;;;424:17:31;;;;;;;;4123:1476:44;;;;965:21:18;4336:12:44;;;279:10826:38;631:21:18;279:10826:38;;4410:52:44;4316:45;4350:10;;;279:10826:38;;;4316:45:44;;:::i;:::-;279:10826:38;;;;4410:52:44;;:::i;:::-;279:10826:38;;631:21:18;;:::i;:::-;965;;:::i;:::-;378:4:31;;4754:35:44;;;;4750:74;;-1:-1:-1;4878:36:44;;;4874:190;;-1:-1:-1;424:17:31;;;;;;;;;;;;;;;;;;;5293:97:44;5517:18;5217:48;5293:67;:41;5464:17;5217:48;;799:19:18;5217:48:44;;:::i;:::-;5293:41;:::i;:::-;378:4:31;424:17;;;;5293:67:44;:97;:::i;:::-;5464:17;:::i;5517:18::-;279:10826:38;;799:19:18;:::i;4874:190:44:-;5102:2:21;;;;;;;5026:27:44;:::o;4750:74::-;4805:8;;;;;-1:-1:-1;4805:8:44;:::o;279:10826:38:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13405:519:37:-;;;;279:10826:38;;;10179:12:37;;;279:10826:38;10209:10:37;;;279:10826:38;10237:14:37;;;;279:10826:38;10352:34:37;;;;:::i;:::-;:40;;;:::i;:::-;10523:15;;;;:::i;:::-;10563:16;;;;:::i;:::-;10587:7;;;:::i;:::-;10563:32;;;:::i;:::-;10629:7;;;:::i;:::-;10639:16;;;:::i;:::-;10629:26;;;:::i;:::-;10619:37;;;;:::i;:::-;10695:25;;;:::i;:::-;10680:41;;;:::i;:::-;1399:8:18;;;;:::i;:::-;:12;;;:::i;:::-;378:4:31;424:17;;1391:36:18;;;:::i;:::-;10780:31:37;;;;:::i;:::-;:45;;;:::i;:::-;10778:48;;;:::i;:::-;10867:21;;;;;:::i;:::-;:37;;;;:::i;:::-;:54;;;;:::i;:::-;10972:20;;;:::i;:::-;10947:46;;;:::i;:::-;11019:17;;;;;:::i;:::-;:31;;;;:::i;:::-;11079:20;;;:::i;:::-;11127:7;;;:::i;:::-;11137:16;;;:::i;:::-;11127:26;;;:::i;:::-;11175:25;;;:::i;:::-;11261:17;;;;:::i;:::-;11286:14;;;;:::i;:::-;11261:40;;;:::i;:::-;11330:21;;;;:::i;:::-;:37;;;:::i;:::-;11455:22;;;;:::i;:::-;11441:37;;;:::i;:::-;11428:51;;;:::i;:::-;11502:16;;;:::i;:::-;11541:15;;;:::i;:::-;11576:3;;;;:::i;:::-;:15;;;;:::i;:::-;:28;;;;:::i;:::-;13741:1;-1:-1:-1;13718:51:37;;13778:143;279:10826:38;13797:32:37;279:10826:38;13797:32:37;279:10826:38;10209:10:37;279:10826:38;13797:32:37;;;10179:12;13797:32;;;:::i;:::-;13778:143;:::i;13718:51::-;13754:8;;;;;;13741:1;13754:8;:::o;317:4:31:-;;10318:3:37;317:4:31;;;;;;;;;;;;;;;:::o;531:11::-;;;2852:20:21;531:11:31;;;;;;;;:::o;:::-;;;2980:18:21;531:11:31;;;;;;;;:::o;:::-;;;1905:7:21;531:11:31;;;;;;;;:::o;:::-;;2650:19:21;;;531:11:31;;;;;;;;;:::o;:::-;;;2590:20:21;531:11:31;;;;;;;;:::o;:::-;;2529:21:21;;;531:11:31;;;;;;;;;:::o;:::-;;;2463:18:21;531:11:31;;;;;;;;:::o;:::-;;2396:19:21;;;531:11:31;;;;;;;;;:::o;:::-;;;2331:17:21;531:11:31;;;;;;;;:::o;:::-;;;2265:18:21;531:11:31;;;;;;;;:::o;:::-;;;2205:20:21;531:11:31;;;;;;;;:::o;:::-;;;13638:4:37;531:11:31;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;531:11:31;;;;;;;:::o;9900:1707:37:-;;;;;;279:10826:38;;10179:12:37;;;;279:10826:38;10209:10:37;;;;279:10826:38;10237:14:37;;;279:10826:38;10352:34:37;;;;:::i;:::-;:40;;;:::i;:::-;10523:15;;;;:::i;:::-;10563:16;;;;;:::i;:::-;10587:7;;;;:::i;:::-;10563:32;;;:::i;:::-;10629:7;;;;:::i;:::-;10639:16;;;;:::i;:::-;10629:26;;;:::i;:::-;10619:37;;;;:::i;:::-;10695:25;;;:::i;:::-;10680:41;;;:::i;:::-;1399:8:18;;;;:::i;:::-;:12;;;:::i;:::-;378:4:31;424:17;;1391:36:18;;;:::i;:::-;10780:31:37;;;;:::i;:::-;:45;;;:::i;:::-;10778:48;;;:::i;:::-;10867:21;;;;;:::i;:::-;:37;;;;:::i;:::-;:54;;;;:::i;:::-;10972:20;;;:::i;:::-;10947:46;;;:::i;:::-;11019:17;;;;;:::i;:::-;:31;;;;:::i;:::-;11079:20;;;:::i;:::-;11127:7;;;;;:::i;:::-;11137:16;;;;:::i;:::-;11127:26;;;:::i;:::-;11175:25;;;:::i;:::-;11261:17;;;;:::i;:::-;11286:14;;;;:::i;:::-;11261:40;;;:::i;:::-;11330:21;;;;:::i;:::-;:37;;;:::i;:::-;11455:22;;;;:::i;:::-;11441:37;;;:::i;:::-;11428:51;;;:::i;:::-;11502:16;;;;:::i;:::-;11541:15;;;:::i;:::-;11576:3;;;;:::i;:::-;:15;;;;:::i;:::-;:28;;;;:::i;5605:1424:44:-;;;;965:21:18;5818:12:44;;;279:10826:38;631:21:18;;279:10826:38;;5892:52:44;5798:45;5832:10;;;279:10826:38;;;5798:45:44;;:::i;:::-;279:10826:38;;;;5892:52:44;;:::i;631:21:18:-;279:10826:38;;;631:21:18;:::i;:::-;965;;:::i;:::-;378:4:31;6249:22:44;;;;;6245:61;;-1:-1:-1;6360:23:44;;;6356:177;;799:19:18;6674:21:44;6947:18;6674:21;6723:41;:97;6674:21;;6894:17;6674:21;;:::i;6723:41::-;424:17:31;6723:97:44;:::i;13926:519:37:-;;;;279:10826:38;;11888:12:37;;;279:10826:38;11918:10:37;;;279:10826:38;11946:14:37;;;279:10826:38;12061:34:37;;;;:::i;:::-;:40;;;:::i;:::-;12260:15;;;;:::i;:::-;12300:16;;;;:::i;:::-;12324:7;;;:::i;:::-;12300:32;;;:::i;:::-;12357:17;;;;:::i;:::-;12382:7;;;:::i;:::-;12357:33;;;:::i;:::-;12356:34;;;:::i;:::-;12401:17;;;;;:::i;:::-;:28;;;:::i;:::-;:42;;;;:::i;:::-;12356:87;;;:::i;:::-;12483:25;;;:::i;:::-;12482:26;;;:::i;:::-;12467:42;;;:::i;:::-;1399:8:18;;;;:::i;:::-;:12;;;:::i;:::-;378:4:31;424:17;;1391:36:18;;;:::i;:::-;12568:31:37;;;;:::i;:::-;:45;;;:::i;:::-;12566:48;;;:::i;:::-;12655:21;;;;;:::i;:::-;:37;;;;:::i;:::-;:54;;;;:::i;:::-;12759:20;;;:::i;:::-;12734:46;;;:::i;:::-;12806:13;;;;;:::i;:::-;:27;;;;:::i;:::-;12861:20;;;:::i;:::-;12923:7;;;;:::i;:::-;12933:16;;;:::i;:::-;12923:26;;;:::i;:::-;12909:41;;;:::i;:::-;12972:25;;;:::i;:::-;13058:13;;;;;:::i;:::-;13079:14;;;;:::i;:::-;13058:36;;;:::i;:::-;13123:21;;;;:::i;:::-;:37;;;:::i;:::-;13248:22;;;;:::i;:::-;13234:37;;;:::i;:::-;13221:51;;;:::i;:::-;13295:16;;;:::i;:::-;13334:15;;;:::i;:::-;13369:18;;;;:::i;:::-;:31;;;;:::i;:::-;14262:1;-1:-1:-1;14239:51:37;;14299:143;279:10826:38;14318:32:37;279:10826:38;14318:32:37;279:10826:38;11918:10:37;279:10826:38;14318:32:37;;;11888:12;14318:32;;;:::i;:::-;14299:143;:::i;6946:1082::-;;;7267:1;;6946:1082;;;7247:21;;;7267:1;;;7287:21;;;;;;7243:610;7882:44;;7243:610;279:10826:38;;;;7882:44:37;;;;;;;:::i;:::-;7863:162;;;;1239:13:33;;;;1235:66;;1632:15;;;;:::i;:::-;1674;;;;;:::i;:::-;1699:25;;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;;;;:::i;:::-;1978:981;;1904:18;;;1978:981;;;;;7858:167:37;;;;;;;;;;6946:1082;:::o;1978:981:33:-;;;;;2909:48;;;;;;2123:13;2122:19;2123:13;;;;:::i;2122:19::-;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;7267:1:37;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;279:10826:38;;1978:981:33;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;653:2:31;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;2931:26;;;;2909:48;;7280:272:37;7332:26;;;;;;:::i;:::-;7392:149;;;;;;;:::i;:::-;7280:272;;;7243:610;7581:21;;;;;7243:610;7882:44;;7243:610;;;7574:273;7626:27;;;;;;:::i;:::-;7687:149;;;;;;;:::i;:::-;7574:273;;;732:340:31;;;;799:19:18;1133;;;;:::i;:::-;799;;:::i;:::-;279:10826:38;;;;;;;;;;;;;;;;732:340:31;:::o;:::-;;;;799:19:18;1133;;;;:::i;799:::-;279:10826:38;;;;;;;;;;;;;;;;732:340:31;:::o;11609:1794:37:-;;;;;279:10826:38;;11888:12:37;;;279:10826:38;11918:10:37;;;;279:10826:38;11946:14:37;;;279:10826:38;12061:34:37;;;;:::i;:::-;:40;;;:::i;:::-;12260:15;;;;:::i;:::-;12300:16;;;;;:::i;:::-;12324:7;;;;:::i;:::-;12300:32;;;:::i;:::-;12357:17;;;;:::i;:::-;12382:7;;;;:::i;:::-;12357:33;;;:::i;:::-;12356:34;;;:::i;:::-;12401:17;;;;;;:::i;:::-;:28;;;;:::i;:::-;:42;;;;:::i;:::-;12356:87;;;:::i;:::-;12483:25;;;:::i;:::-;12482:26;;;:::i;:::-;12467:42;;;:::i;:::-;1399:8:18;;;;:::i;:::-;:12;;;:::i;:::-;378:4:31;424:17;;1391:36:18;;;:::i;:::-;12568:31:37;;;;:::i;:::-;:45;;;:::i;:::-;12566:48;;;:::i;:::-;12655:21;;;;;:::i;:::-;:37;;;;:::i;:::-;:54;;;;:::i;:::-;12759:20;;;:::i;:::-;12734:46;;;:::i;:::-;12806:13;;;;;:::i;:::-;:27;;;;:::i;:::-;12861:20;;;:::i;:::-;12923:7;;;;;:::i;:::-;12933:16;;;;:::i;:::-;12923:26;;;:::i;:::-;12909:41;;;:::i;:::-;12972:25;;;:::i;:::-;13058:13;;;;:::i;:::-;13079:14;;;;:::i;:::-;13058:36;;;:::i;:::-;13123:21;;;;:::i;:::-;:37;;;:::i;:::-;13248:22;;;;:::i;:::-;13234:37;;;:::i;:::-;13221:51;;;:::i;:::-;13295:16;;;;:::i;:::-;13334:15;;;:::i;:::-;13369:18;;;;:::i;5848:1096::-;;;6173:1;;5848:1096;;;6153:21;;;6173:1;;;6193:21;;;;;;6149:612;6789:45;;6149:612;279:10826:38;;;;6789:45:37;;;;;;;:::i;:::-;6770:171;;;;1239:13:33;;;;1235:66;;1632:15;;;;:::i;:::-;1674;;;;;:::i;:::-;1699:25;;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;;;;:::i;:::-;1978:981;;1904:18;;;1978:981;;;;;6766:175:37;;;;;;;;;;5848:1096;:::o;1978:981:33:-;;;;;2909:48;;;;;;2123:13;2122:19;2123:13;;;;:::i;2122:19::-;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;6173:1:37;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;279:10826:38;;1978:981:33;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;653:2:31;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;2931:26;;;;2909:48;;6186:274:37;6238:27;;;;;;:::i;:::-;6299:150;;;;;;;:::i;:::-;6186:274;;;6149:612;6489:21;;;;;6149:612;6789:45;;6149:612;;;6482:273;6534:26;;;;;;:::i;:::-;6594:150;;;;;;;:::i;:::-;6482:273;;;3023:462;3414:45;3415:36;3414:68;3023:462;631:21:18;;279:10826:38;;1391:36:18;378:4:31;1399:12:18;:8;303:29:45;1133:19:18;3215:10:37;3201:12;;;279:10826:38;3215:10:37;;279:10826:38;3255:31:37;;;;;:::i;:::-;1133:19:18;;:::i;:::-;303:29:45;:::i;:::-;1399:8:18;;:::i;:::-;:12;:::i;:::-;424:17:31;1391:36:18;:::i;:::-;631:21;:::i;:::-;;:::i;:::-;3415:36:37;;:::i;:::-;3414:45;:::i;:::-;:68;:::i;7612:209:21:-;7796:11;7768:13;7737:6;2046:20;7694:7;1949;7612:209;7694:7;:::i;:::-;424:17:31;7737:6:21;:::i;:::-;7768:13;:::i;7796:11::-;424:17:31;7612:209:21;:::o;7135:175:44:-;7240:1;7235:6;;279:10826:38;;7135:175:44;:::o;279:10826:38:-;;;-1:-1:-1;;;279:10826:38;;;;;;;;;;;;-1:-1:-1;;;279:10826:38;;;;;;;7741:535:18;8727:3:37;7878:392:18;;;;;;;;;;;;;;;;;8732:4:37;7878:392:18;;7741:535;:::o;:::-;7878:392;;;;;;;;;;;;;;;;378:4:31;7878:392:18;;7741:535;:::o;:::-;378:4:31;7878:392:18;;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;347:6:31;7878:392:18;;;;;;;;;;;;;378:4:31;7878:392:18;;7741:535;:::o;:::-;1905:7:21;7878:392:18;;;;;;;;;;;;;;;;;317:4:31;7878:392:18;;7741:535;:::o;2719:1063:44:-;;;2907:6;;;279:10826:38;;;3754:21:44;2955:12;3754:13;2955:12;378:4:31;;965:21:18;;;;;;:::i;:::-;3003:42:44;378:4:31;;-1:-1:-1;;;;;;3076:12:44;2999:197;-1:-1:-1;2999:197:44;279:10826:38;;631:21:18;965;631;;;;:::i;:::-;965;;:::i;:::-;3222:117:44;378:4:31;;-1:-1:-1;;;;;;3076:12:44;3690:45;;-1:-1:-1;3205:453:44;-1:-1:-1;3205:453:44;3724:10;3710:12;;;279:10826:38;3724:10:44;;279:10826:38;3690:45:44;;:::i;:::-;3754:13;;:::i;:::-;:21;:::i;3205:453::-;3690:45;631:21:18;;965;631;3431:216:44;631:21:18;;:::i;965:::-;3431:216:44;:::i;:::-;3205:453;;;2999:197;3128:57;965:21:18;;;;:::i;3128:57:44:-;2999:197;;;279:10826:38;;;-1:-1:-1;;;279:10826:38;;;;;;;;;;;;;;;;;;;;8282:752:18;8417:611;;;;;;;;;;;;;;;;;378:4:31;5102:2:21;;8417:611:18;;;;;;;;8282:752;:::o;:::-;8431:4:37;8417:611:18;;;;;;;;;;;;;;;;;;8437:4:37;5102:2:21;;8417:611:18;;;;;;;;8282:752;:::o;:::-;;378:4:31;8417:611:18;;;;;;;;;;;;;;;;;;;;5102:2:21;;;8417:611:18;;;;;;;;8282:752;:::o;279:10826:38:-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1009:1952:33:-;;;13638:4:37;1215:12:33;279:10826:38;1215:12:33;279:10826:38;1239:13:33;;;;1235:66;;1632:15;;;:::i;:::-;1674;;;;:::i;:::-;279:10826:38;1699:25:33;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;:::i;:::-;13877:1:37;;279:10826:38;;13877:1:37;;;;;1978:981:33;1009:1952;;;;;;;;;;:::o;1978:981::-;;;;;2909:48;;;;;;;2123:13;2122:19;2123:13;;;;:::i;2122:19::-;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;279:10826:38;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;279:10826:38;;1978:981:33;;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;2909:18;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;;;;;;2931:26;13889:3:37;2931:26:33;;2909:48;;1695:115;279:10826:38;;-1:-1:-1;;;1747:56:33;;13902:13:37;1747:56:33;;279:10826:38;;;;;;;;;;1747:56:33;1235:66;279:10826:38;;-1:-1:-1;;;1261:40:33;;13638:4:37;13902:13;1261:40:33;;279:10826:38;;;;;;;;;1747:56:33;1009:1952;;;14159:4:37;1215:12:33;279:10826:38;1215:12:33;279:10826:38;1239:13:33;;;;1235:66;;1632:15;;;:::i;:::-;1674;;;;:::i;:::-;279:10826:38;1699:25:33;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;:::i;:::-;14398:1:37;;279:10826:38;;14398:1:37;;;;;1009:1952:33;;;;;;;;;;:::o;1978:981::-;;;;;2909:48;;;;;;;2123:13;2122:19;2123:13;;;;:::i;2122:19::-;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;279:10826:38;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;279:10826:38;;1978:981:33;;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;2909:18;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;2931:26;14410:3:37;2931:26:33;;2909:48;;337:213:45;;464:27;337:213;464:27;:::i;:::-;494:7;317:4:31;;;;;;;;;;;;;;;631:21:18;;;:::i;552:265:45:-;631:21:18;552:265:45;1391:36:18;378:4:31;1399:12:18;:8;631:21;552:265:45;1399:8:18;:::i;9402:337:21:-;347:6:31;9472:21:21;;9468:43;;1905:7;9525:8;;;;;9521:31;;9566:6;;9562:37;;424:17:31;;;;;;9629:1:21;424:17:31;;;9656:13:21;;;:::i;:::-;2046:20;;503:380:23;;;;;;;;424:17:31;503:380:23;;;;9728:4:21;503:380:23;;9728:4:21;:::i;9562:37::-;279:10826:38;;-1:-1:-1;;;9581:18:21;;;;;9521:31;279:10826:38;;-1:-1:-1;;;9542:10:21;;;;;9468:43;9495:16;9509:1;9495:16;:::o;1487:3103:18:-;-1:-1:-1;;1713:26:18;;;1709:40;;1948:21;1943:26;;;1939:54;;2266:5;279:10826:38;;;;4502:49:18;2559:29;279:10826:38;;2591:5:18;279:10826:38;2591:5:18;;279:10826:38;;;;;;;;;;;;;;2874:31:18;279:10826:38;;;;;;3074:35:18;3649;279:10826:38;;;;3508:34:18;279:10826:38;;;;3371:32:18;279:10826:38;;;;;;;;;;;;;;;;;;;;;;;;;3136:40:18;;;;279:10826:38;2941:32:18;279:10826:38;;;;;;;;;;;;;;;3699:327:18;279:10826:38;;4564:3:18;279:10826:38;;1487:3103:18;:::o;1939:54::-;279:10826:38;;-1:-1:-1;;;1971:22:18;;279:10826:38;1971:22:18;;;279:10826:38;;;;;;-1:-1:-1;;;279:10826:38;;;;;;1747:56:33;279:10826:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11969:3353:18:-;12038:3278;;-1:-1:-1;;;12038:3278:18;;;;;11969:3353;12038:3278;;;;;;;;11969:3353;12038:3278;;;;;;11969:3353;12038:3278;;;;;;11969:3353;12038:3278;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11969:3353;:::o;12038:3278::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12038:3278:18;;-1:-1:-1;12038:3278:18;;;;;;2508:1216:30;317:4:31;2630:1088:30;;;424:17:31;279:10826:38;424:17:31;;2630:1088:30;;;;;;;;;;;;;;;2508:1216;:::o;:::-;13638:4:37;2630:1088:30;;;424:17:31;279:10826:38;424:17:31;;2630:1088:30;;;;;;;;;;;;;;;2508:1216;:::o;:::-;14159:4:37;2630:1088:30;;;5102:2:21;2630:1088:30;5102:2:21;;2630:1088:30;;;;;;;;;;;;;;;;;;2508:1216;:::o;:::-;317:4:31;2630:1088:30;;;424:17:31;279:10826:38;424:17:31;;2630:1088:30;;;;;;;;;;;;;;;2508:1216;:::o;:::-;2630:1088;;;;;;;;;;;;-1:-1:-1;;2630:1088:30;;;-1:-1:-1;;;2630:1088:30;;;;;;;;;;;2508:1216;:::o;3730:500::-;3852:372;;;;;;;;;;;;;;317:4:31;3852:372:30;;3730:500;:::o;:::-;3852:372;;;;;;;;;;;;;;317:4:31;3852:372:30;;3730:500;:::o;:::-;3852:372;;;;;;;;;;;;;;;;;3730:500;:::o;5918:1163:21:-;279:10826:38;5990:5:21;;:20;;;;5918:1163;5986:46;;6046:6;;6042:29;;6090:7;6085:12;;6081:43;;1905:7;6178;;;6177:23;;;;;;1053:19:23;;;:::i;:::-;6257:13:21;;6253:36;;6632:35;6363:55;6370:33;958:19:23;6311:16:21;958:19:23;6311:16:21;;:::i;:::-;958:19:23;:::i;:::-;6370:33:21;:::i;:::-;6363:55;:::i;:::-;1053:19:23;6481:29:21;958:19:23;;;:::i;:::-;6481:29:21;:::i;:::-;6547:49;958:19:23;6565:29:21;958:19:23;;;:::i;:::-;6565:29:21;:::i;:::-;958:19:23;;:::i;:::-;6547:49:21;:::i;:::-;1053:19:23;;:::i;6632:35:21:-;958:19:23;:::i;:::-;6689:9:21;279:10826:38;6708:336:21;6715:5;6719:1;6715:5;;;;-1:-1:-1;;7058:16:21;;;5918:1163;:::o;7058:16::-;7072:2;;;:::i;6708:336::-;6749:7;;6951:23;6749:7;1053:19:23;6749:12:21;:7;;6138:6;6749:7;;:::i;:12::-;6891:42;958:19:23;6848:14:21;6790:16;958:19:23;;;;:::i;:::-;6790:16:21;:::i;6848:14::-;958:19:23;:::i;:::-;;;;;:::i;1053:::-;6951:23:21;;:::i;:::-;279:10826:38;;6708:336:21;;;6177:23;6193:7;;;:::i;:::-;6177:23;;;5986:46;279:10826:38;;-1:-1:-1;;;6019:13:21;;;;;5990:20;5999:11;6003:7;5999:11;;5990:20;;4268:1017;4348:10;;4344:26;;1500:10;4384:26;;;4380:40;;-1:-1:-1;;4434:26:21;;;4430:42;;-1:-1:-1;958:19:23;4495:11:21;;;:::i;:::-;5188:10;5094:60;1053:19:23;4548:38:21;965:21:18;;;:::i;4548:38:21:-;1053:19:23;:::i;:::-;958;5095:51:21;:42;958:19:23;;4962:98:21;958:19:23;4984:74:21;958:19:23;5006:50:21;958:19:23;;5028:26:21;958:19:23;4762:100:21;958:19:23;4784:76:21;958:19:23;4806:52:21;958:19:23;4828:28:21;958:19:23;;;:::i;:::-;4828:28:21;:::i;:::-;958:19:23;;:::i;:::-;4806:52:21;:::i;:::-;958:19:23;;:::i;:::-;4784:76:21;:::i;958:19:23:-;4762:100:21;:::i;:::-;958:19:23;;:::i;:::-;5028:26:21;:::i;:::-;958:19:23;;:::i;:::-;5006:50:21;:::i;:::-;958:19:23;;:::i;:::-;4984:74:21;:::i;:::-;958:19:23;;:::i;:::-;4962:98:21;:::i;:::-;958:19:23;;:::i;:::-;;;;:::i;:::-;5095:42:21;:::i;:::-;:51;:::i;958:19:23:-;5253:25:21;5254:9;-1:-1:-1;;;5267:7:21;;;:::i;4430:42::-;4462:10;1949:7;4462:10;:::o;4344:26::-;4360:10;1905:7;4360:10;:::o;2265:462:37:-;2656:45;2657:36;2656:68;2265:462;631:21:18;;279:10826:38;;1391:36:18;378:4:31;1399:12:18;:8;303:29:45;1133:19:18;2457:10:37;2443:12;;;279:10826:38;2457:10:37;;279:10826:38;2497:31:37;;;;;:::i;279:10826:38:-;;;;:::o;:::-;;;-1:-1:-1;;;279:10826:38;;;;;;;;;;;;-1:-1:-1;;;279:10826:38;;;;;;;4596:2947:18;7380:72;4596:2947;4688:27;4700:1;4696:5;;4688:27;:::i;:::-;7125:43;5125:16;;;:::i;:::-;5145:2;279:10826:38;;;5175:3:18;279:10826:38;;;5175:3:18;279:10826:38;;;;;7232:71:18;279:10826:38;;6411:30:18;279:10826:38;6343:32:18;279:10826:38;6274:33:18;279:10826:38;6205:33:18;279:10826:38;6136:33:18;279:10826:38;6068:32:18;279:10826:38;6001:31:18;279:10826:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5533:32:18;279:10826:38;5465:32:18;279:10826:38;5398:31:18;279:10826:38;;;;;;;;;;;;;;;;;;;;;;;;6455:304:18;279:10826:38;;;;;4596:2947:18;:::o;71:276:23:-;-1:-1:-1;;;138:25:23;;134:43;;195:1;187:9;;195:1;;;208:61;;;;71:276::o;134:43::-;279:10826:38;;-1:-1:-1;;;172:5:23;;;;;405:480;1905:7:21;503:380:23;;;;;;;;;;;;;;;;;6090:7:21;503:380:23;;405:480;:::o;:::-;2913:18:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;3047:17:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;503:380;;;;;;;;;;405:480;:::o;:::-;1905:7:21;503:380:23;;;;;;;;;;;;;;;;;;;;405:480;:::o;:::-;-1:-1:-1;;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;-1:-1:-1;;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;3113:20:21;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;503:380;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;2717:18:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;15328:575:18:-;15397:27;15405:5;;;15397:27;:::i;:::-;15435:462;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:575;:::o;279:10826:38:-;;3900:71:37;3992:70;279:10826:38;3900:71:37;279:10826:38;;;3900:71:37;;;;;;:::i;:::-;3992:70;;;;;;:::i;279:10826:38:-;;4480:71:37;4572:70;279:10826:38;4480:71:37;279:10826:38;;;4480:71:37;;;;;;:::i;:::-;4572:70;;;;;;;:::i;279:10826:38:-;;5076:71:37;5168:70;279:10826:38;5076:71:37;279:10826:38;;;5076:71:37;;;;;;:::i;:::-;5168:70;;;;;:::i;279:10826:38:-;;;9331:95:37;;;;;;;;;;;:::i;:::-;279:10826:38;;;;;;10179:12:37;9331:95;10179:12;;279:10826:38;10209:10:37;;;279:10826:38;10237:14:37;;;279:10826:38;10352:34:37;;;;:::i;:::-;:40;;;:::i;:::-;10523:15;;;;:::i;:::-;10563:16;;;;:::i;:::-;10587:7;;;:::i;:::-;10563:32;;;:::i;:::-;10629:7;;;:::i;:::-;10639:16;;;:::i;:::-;10629:26;;;:::i;:::-;10619:37;;;;:::i;:::-;10695:25;;;:::i;:::-;10680:41;;;:::i;:::-;1399:8:18;;;;:::i;:::-;:12;;;:::i;:::-;378:4:31;424:17;;1391:36:18;;;:::i;:::-;10780:31:37;;;;:::i;:::-;:45;;;:::i;:::-;10778:48;;;:::i;:::-;10867:21;;;;;:::i;:::-;:37;;;;:::i;:::-;:54;;;;:::i;:::-;10972:20;;;:::i;:::-;10947:46;;;:::i;:::-;11019:17;;;;;:::i;:::-;:31;;;;:::i;:::-;11079:20;;;:::i;:::-;11127:7;;;:::i;:::-;11137:16;;;:::i;279:10826:38:-;;9331:95:37;279:10826:38;;9331:95:37;279:10826:38;;;9331:95:37;;;;;;:::i;:::-;279:10826:38;;;;;;;:::i;:::-;;;9724:95:37;;;;;;;;;;;:::i;:::-;279:10826:38;;;;;;9724:95:37;11888:12;;279:10826:38;11918:10:37;;;;279:10826:38;11946:14:37;;;279:10826:38;12061:34:37;;;;:::i;:::-;:40;;;:::i;:::-;12260:15;;;;:::i;:::-;12300:16;;;;:::i;:::-;12324:7;;;:::i;:::-;12300:32;;;:::i;:::-;12357:17;;;;:::i;:::-;12382:7;;;:::i;:::-;12357:33;;;:::i;:::-;12356:34;;;:::i;:::-;12401:17;;;;;:::i;:::-;:28;;;:::i;:::-;:42;;;;:::i;:::-;12356:87;;;:::i;:::-;12483:25;;;:::i;:::-;12482:26;;;:::i;:::-;12467:42;;;:::i;:::-;1399:8:18;;;;:::i;:::-;:12;;;:::i;:::-;378:4:31;424:17;;1391:36:18;;;:::i;:::-;12568:31:37;;;;:::i;:::-;:45;;;:::i;:::-;12566:48;;;:::i;:::-;12655:21;;;;;:::i;:::-;:37;;;;:::i;:::-;:54;;;;:::i;:::-;12759:20;;;:::i;:::-;12734:46;;;:::i;:::-;12806:13;;;;;:::i;:::-;:27;;;;:::i;:::-;12861:20;;;:::i;:::-;12923:7;;;;:::i;:::-;12933:16;;;:::i;279:10826:38:-;;9724:95:37;279:10826:38;;9724:95:37;279:10826:38;;;9724:95:37;;;;;;:::i;:::-;279:10826:38;;;;;;:::i","linkReferences":{}},"methodIdentifiers":{"BISECTION_EPSILON()":"6d652299","MAX_BISECTION_ITERS()":"f9c28211","allocateGivenX(uint256,uint256)":"ee3e8cfb","allocateGivenY(uint256,uint256)":"7f17409c","calculateDiffLower(uint256,uint256,uint256)":"332266f3","calculateDiffRaise(uint256,uint256,uint256)":"902ecaa2","computeOptimalArbLowerPrice(uint256,uint256,uint256)":"306db46b","computeOptimalArbRaisePrice(uint256,uint256,uint256)":"4fd67c58","deallocateGivenX(uint256,uint256)":"6237569f","deallocateGivenY(uint256,uint256)":"f30d37f2","fetchPoolParams(uint256)":"81b5fac2","getInitialPoolData(uint256,uint256,(uint256,uint256,uint256,uint256,address))":"134ead12","getNextLiquidity(uint256,uint256,uint256,uint256)":"af4e437f","getNextReserveX(uint256,uint256,uint256,uint256)":"5eb408fc","getNextReserveY(uint256,uint256,uint256,uint256)":"120649c5","getPriceGivenXL(uint256,uint256,uint256)":"1e978cb0","getPriceGivenYL(uint256,uint256,uint256)":"4e817fd9","getReservesAndLiquidity(uint256)":"ce153bf4","internalPrice(uint256)":"3b4d1030","prepareControllerUpdate(address)":"cb1f5532","prepareFeeUpdate(uint256)":"b09d04e5","prepareSigmaUpdate(uint256,uint256)":"e94716d5","prepareStrikeUpdate(uint256,uint256)":"0420580a","prepareTauUpdate(uint256,uint256)":"3b268d5d","simulateSwap(uint256,bool,uint256)":"3928ff97","strategy()":"a8c62e76"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"upper\",\"type\":\"uint256\"}],\"name\":\"BisectionLib_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"lowerResult\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"upperResult\",\"type\":\"int256\"}],\"name\":\"BisectionLib_RootOutsideBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Infinity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Min\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NegativeInfinity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BISECTION_EPSILON\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_BISECTION_ITERS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountX\",\"type\":\"uint256\"}],\"name\":\"allocateGivenX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountY\",\"type\":\"uint256\"}],\"name\":\"allocateGivenY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"S\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"v\",\"type\":\"uint256\"}],\"name\":\"calculateDiffLower\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"S\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"v\",\"type\":\"uint256\"}],\"name\":\"calculateDiffRaise\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"S\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"vUpper\",\"type\":\"uint256\"}],\"name\":\"computeOptimalArbLowerPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"S\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"vUpper\",\"type\":\"uint256\"}],\"name\":\"computeOptimalArbRaisePrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountX\",\"type\":\"uint256\"}],\"name\":\"deallocateGivenX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountY\",\"type\":\"uint256\"}],\"name\":\"deallocateGivenY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"fetchPoolParams\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strike\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sigma\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tau\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"internalType\":\"struct LogNormal.LogNormalParams\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"rx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"S\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strike\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sigma\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tau\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"internalType\":\"struct LogNormal.LogNormalParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"getInitialPoolData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ry\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"L\",\"type\":\"uint256\"}],\"name\":\"getNextLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ry\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"L\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"S\",\"type\":\"uint256\"}],\"name\":\"getNextReserveX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"L\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"S\",\"type\":\"uint256\"}],\"name\":\"getNextReserveY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"L\",\"type\":\"uint256\"}],\"name\":\"getPriceGivenXL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ry\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"L\",\"type\":\"uint256\"}],\"name\":\"getPriceGivenYL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getReservesAndLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"internalPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"name\":\"prepareControllerUpdate\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"}],\"name\":\"prepareFeeUpdate\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"targetSigma\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"targetTimestamp\",\"type\":\"uint256\"}],\"name\":\"prepareSigmaUpdate\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"targetStrike\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"targetTimestamp\",\"type\":\"uint256\"}],\"name\":\"prepareStrikeUpdate\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"targetTau\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"targetTimestamp\",\"type\":\"uint256\"}],\"name\":\"prepareTauUpdate\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"swapXIn\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"name\":\"simulateSwap\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"BisectionLib_InvalidBounds(uint256,uint256)\":[{\"details\":\"Thrown when the lower bound is greater than the upper bound.\"}],\"BisectionLib_RootOutsideBounds(int256,int256)\":[{\"details\":\"Thrown when the result of the function `fx` for each input, `upper` and `lower`, is the same sign.\"}]},\"kind\":\"dev\",\"methods\":{\"internalPrice(uint256)\":{\"details\":\"Computes the internal price using this strategie's slot parameters.\"},\"simulateSwap(uint256,bool,uint256)\":{\"details\":\"Estimates a swap's reserves and adjustments and returns its validity.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/solvers/LogNormal/LogNormalSolver.sol\":\"LogNormalSolver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/SignedWadMath.sol\":{\"keccak256\":\"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a\",\"dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/solvers/LogNormal/LogNormalExtendedLib.sol\":{\"keccak256\":\"0x204015cfa704225710b310e02fd4ea4648617f580cbb08fb22306357969e4a63\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0b2df304ee8a88040b573201316e12756e74c042fddbb4ec25d23ecd34971768\",\"dweb:/ipfs/QmaC4vUQY6UAD6UrEF3rvMLyYbtQKuF9Bbgr3aqkGMzSqF\"]},\"src/solvers/LogNormal/LogNormalSolver.sol\":{\"keccak256\":\"0xe97dbbad3eb6aadeaaa7c9ad82cf08a79006ad3058e6dcbc2576e17d6337cc1d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://22e41f296c3675c79ba6a670d081e073cdb935fd44f8e739a88a250be0766004\",\"dweb:/ipfs/QmZMYJq14i3q2zKTerD836DXC9deux4EggR3BNp61J4t2U\"]},\"src/strategies/LogNormal/LogNormal.sol\":{\"keccak256\":\"0xce0e14a6180d989eff4223bd173904717c745f93c7d02e972dce9d4f5a414d15\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0fe700ac552153eb030453532afdf52d7ae1b7f8ca53b0f050ab9a9e0b1f0ee9\",\"dweb:/ipfs/QmPQW7F1wUqLKs2qPmvJq5EiBfUmPGGsW4y9dUmMtDkfnt\"]},\"src/strategies/LogNormal/LogNormalLib.sol\":{\"keccak256\":\"0x208f8cd3b02d7305d4c54cf02c07f443ddfed1c6c719e752888be208c3ad3645\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://850b799c647dfbece76c7c1daad3ac375243f66daa0eb8206eeeee783982429c\",\"dweb:/ipfs/QmUrixVb4EAxccZxvZCoAJjF8YRqnMbX6cpGCwPfjZvgQk\"]},\"src/strategies/LogNormal/LogNormalMath.sol\":{\"keccak256\":\"0x5d97983f91cf766e1e87ef244a39c6ec6961de38c4c8817030b32edd72a1e65f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://df6121bf8157bad9b659d484fdcc8ebf0cd41179b323d06225d1cf6bff266663\",\"dweb:/ipfs/QmRGN6MwWZb9f6X4Xqv7f3VpUFWXFb36jDKcyEQVaFUhhz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"lower","type":"uint256"},{"internalType":"uint256","name":"upper","type":"uint256"}],"type":"error","name":"BisectionLib_InvalidBounds"},{"inputs":[{"internalType":"int256","name":"lowerResult","type":"int256"},{"internalType":"int256","name":"upperResult","type":"int256"}],"type":"error","name":"BisectionLib_RootOutsideBounds"},{"inputs":[],"type":"error","name":"Infinity"},{"inputs":[],"type":"error","name":"Min"},{"inputs":[],"type":"error","name":"NegativeInfinity"},{"inputs":[],"type":"error","name":"OutOfBounds"},{"inputs":[],"stateMutability":"view","type":"function","name":"BISECTION_EPSILON","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_BISECTION_ITERS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"amountX","type":"uint256"}],"stateMutability":"view","type":"function","name":"allocateGivenX","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"amountY","type":"uint256"}],"stateMutability":"view","type":"function","name":"allocateGivenY","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"S","type":"uint256"},{"internalType":"uint256","name":"v","type":"uint256"}],"stateMutability":"view","type":"function","name":"calculateDiffLower","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"S","type":"uint256"},{"internalType":"uint256","name":"v","type":"uint256"}],"stateMutability":"view","type":"function","name":"calculateDiffRaise","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"S","type":"uint256"},{"internalType":"uint256","name":"vUpper","type":"uint256"}],"stateMutability":"view","type":"function","name":"computeOptimalArbLowerPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"S","type":"uint256"},{"internalType":"uint256","name":"vUpper","type":"uint256"}],"stateMutability":"view","type":"function","name":"computeOptimalArbRaisePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"amountX","type":"uint256"}],"stateMutability":"view","type":"function","name":"deallocateGivenX","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"amountY","type":"uint256"}],"stateMutability":"view","type":"function","name":"deallocateGivenY","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"fetchPoolParams","outputs":[{"internalType":"struct LogNormal.LogNormalParams","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strike","type":"uint256"},{"internalType":"uint256","name":"sigma","type":"uint256"},{"internalType":"uint256","name":"tau","type":"uint256"},{"internalType":"uint256","name":"swapFee","type":"uint256"},{"internalType":"address","name":"controller","type":"address"}]}]},{"inputs":[{"internalType":"uint256","name":"rx","type":"uint256"},{"internalType":"uint256","name":"S","type":"uint256"},{"internalType":"struct LogNormal.LogNormalParams","name":"params","type":"tuple","components":[{"internalType":"uint256","name":"strike","type":"uint256"},{"internalType":"uint256","name":"sigma","type":"uint256"},{"internalType":"uint256","name":"tau","type":"uint256"},{"internalType":"uint256","name":"swapFee","type":"uint256"},{"internalType":"address","name":"controller","type":"address"}]}],"stateMutability":"pure","type":"function","name":"getInitialPoolData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"rx","type":"uint256"},{"internalType":"uint256","name":"ry","type":"uint256"},{"internalType":"uint256","name":"L","type":"uint256"}],"stateMutability":"view","type":"function","name":"getNextLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"ry","type":"uint256"},{"internalType":"uint256","name":"L","type":"uint256"},{"internalType":"uint256","name":"S","type":"uint256"}],"stateMutability":"view","type":"function","name":"getNextReserveX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"rx","type":"uint256"},{"internalType":"uint256","name":"L","type":"uint256"},{"internalType":"uint256","name":"S","type":"uint256"}],"stateMutability":"view","type":"function","name":"getNextReserveY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"rx","type":"uint256"},{"internalType":"uint256","name":"L","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPriceGivenXL","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"uint256","name":"ry","type":"uint256"},{"internalType":"uint256","name":"L","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPriceGivenYL","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getReservesAndLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"internalPrice","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"controller","type":"address"}],"stateMutability":"pure","type":"function","name":"prepareControllerUpdate","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"swapFee","type":"uint256"}],"stateMutability":"pure","type":"function","name":"prepareFeeUpdate","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"targetSigma","type":"uint256"},{"internalType":"uint256","name":"targetTimestamp","type":"uint256"}],"stateMutability":"pure","type":"function","name":"prepareSigmaUpdate","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"targetStrike","type":"uint256"},{"internalType":"uint256","name":"targetTimestamp","type":"uint256"}],"stateMutability":"pure","type":"function","name":"prepareStrikeUpdate","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"targetTau","type":"uint256"},{"internalType":"uint256","name":"targetTimestamp","type":"uint256"}],"stateMutability":"pure","type":"function","name":"prepareTauUpdate","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bool","name":"swapXIn","type":"bool"},{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"view","type":"function","name":"simulateSwap","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"strategy","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"internalPrice(uint256)":{"details":"Computes the internal price using this strategie's slot parameters."},"simulateSwap(uint256,bool,uint256)":{"details":"Estimates a swap's reserves and adjustments and returns its validity."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/solvers/LogNormal/LogNormalSolver.sol":"LogNormalSolver"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/SignedWadMath.sol":{"keccak256":"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630","urls":["bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a","dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN"],"license":"MIT"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/solvers/LogNormal/LogNormalExtendedLib.sol":{"keccak256":"0x204015cfa704225710b310e02fd4ea4648617f580cbb08fb22306357969e4a63","urls":["bzz-raw://0b2df304ee8a88040b573201316e12756e74c042fddbb4ec25d23ecd34971768","dweb:/ipfs/QmaC4vUQY6UAD6UrEF3rvMLyYbtQKuF9Bbgr3aqkGMzSqF"],"license":"GPL-3.0-or-later"},"src/solvers/LogNormal/LogNormalSolver.sol":{"keccak256":"0xe97dbbad3eb6aadeaaa7c9ad82cf08a79006ad3058e6dcbc2576e17d6337cc1d","urls":["bzz-raw://22e41f296c3675c79ba6a670d081e073cdb935fd44f8e739a88a250be0766004","dweb:/ipfs/QmZMYJq14i3q2zKTerD836DXC9deux4EggR3BNp61J4t2U"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormal.sol":{"keccak256":"0xce0e14a6180d989eff4223bd173904717c745f93c7d02e972dce9d4f5a414d15","urls":["bzz-raw://0fe700ac552153eb030453532afdf52d7ae1b7f8ca53b0f050ab9a9e0b1f0ee9","dweb:/ipfs/QmPQW7F1wUqLKs2qPmvJq5EiBfUmPGGsW4y9dUmMtDkfnt"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormalLib.sol":{"keccak256":"0x208f8cd3b02d7305d4c54cf02c07f443ddfed1c6c719e752888be208c3ad3645","urls":["bzz-raw://850b799c647dfbece76c7c1daad3ac375243f66daa0eb8206eeeee783982429c","dweb:/ipfs/QmUrixVb4EAxccZxvZCoAJjF8YRqnMbX6cpGCwPfjZvgQk"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormalMath.sol":{"keccak256":"0x5d97983f91cf766e1e87ef244a39c6ec6961de38c4c8817030b32edd72a1e65f","urls":["bzz-raw://df6121bf8157bad9b659d484fdcc8ebf0cd41179b323d06225d1cf6bff266663","dweb:/ipfs/QmRGN6MwWZb9f6X4Xqv7f3VpUFWXFb36jDKcyEQVaFUhhz"],"license":"GPL-3.0-or-later"}},"version":1},"ast":{"absolutePath":"src/solvers/LogNormal/LogNormalSolver.sol","id":36461,"exportedSymbols":{"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"LogNormal":[38879],"LogNormalLib":[39517],"LogNormalSolver":[36460],"MAX_ITER":[33842],"Min":[27736],"ONE":[30639],"SQRT_WAD":[30630],"SignedWadMathLib":[30623],"TWO":[30633],"ZERO":[30649],"abs":[27763],"bisection":[31118],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeD1":[34040],"computeD2":[34104],"computeHalfSigmaTauSquared":[39613],"computeInitialPoolData":[34282],"computeLGivenX":[33886],"computeLnSDivK":[39549],"computeNextLiquidity":[34383],"computeNextRx":[34484],"computeNextRy":[34585],"computeOptimalLower":[35332],"computeOptimalRaise":[35398],"computeSigmaSqrtTau":[39577],"computeXGivenL":[33976],"computeYGivenL":[33932],"console2":[25512],"diffLower":[34961],"diffRaise":[35266],"diviWad":[27813],"findRootLiquidity":[34224],"findRootLower":[34631],"findRootRaise":[34677],"findRootX":[34184],"findRootY":[34144],"muli":[27777],"muliWad":[27795],"mulidiv":[39703],"mulidivUp":[39659]},"nodeType":"SourceUnit","src":"45:11061:38","nodes":[{"id":35400,"nodeType":"PragmaDirective","src":"45:24:38","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":35401,"nodeType":"ImportDirective","src":"71:34:38","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/tokens/ERC20.sol","file":"solmate/tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":36461,"sourceUnit":25949,"symbolAliases":[],"unitAlias":""},{"id":35402,"nodeType":"ImportDirective","src":"106:30:38","nodes":[],"absolutePath":"lib/solstat/src/Gaussian.sol","file":"solstat/Gaussian.sol","nameLocation":"-1:-1:-1","scope":36461,"sourceUnit":27375,"symbolAliases":[],"unitAlias":""},{"id":35403,"nodeType":"ImportDirective","src":"137:34:38","nodes":[],"absolutePath":"src/interfaces/IDFMM.sol","file":"src/interfaces/IDFMM.sol","nameLocation":"-1:-1:-1","scope":36461,"sourceUnit":29731,"symbolAliases":[],"unitAlias":""},{"id":35404,"nodeType":"ImportDirective","src":"172:38:38","nodes":[],"absolutePath":"src/interfaces/IStrategy.sol","file":"src/interfaces/IStrategy.sol","nameLocation":"-1:-1:-1","scope":36461,"sourceUnit":29840,"symbolAliases":[],"unitAlias":""},{"id":35405,"nodeType":"ImportDirective","src":"211:29:38","nodes":[],"absolutePath":"src/solvers/BisectionLib.sol","file":"../BisectionLib.sol","nameLocation":"-1:-1:-1","scope":36461,"sourceUnit":31119,"symbolAliases":[],"unitAlias":""},{"id":35406,"nodeType":"ImportDirective","src":"241:36:38","nodes":[],"absolutePath":"src/solvers/LogNormal/LogNormalExtendedLib.sol","file":"./LogNormalExtendedLib.sol","nameLocation":"-1:-1:-1","scope":36461,"sourceUnit":35399,"symbolAliases":[],"unitAlias":""},{"id":36460,"nodeType":"ContractDefinition","src":"279:10826:38","nodes":[{"id":35409,"nodeType":"UsingForDirective","src":"310:36:38","nodes":[],"global":false,"libraryName":{"id":35407,"name":"FixedPointMathLib","nameLocations":["316:17:38"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"316:17:38"},"typeName":{"id":35408,"name":"uint256","nodeType":"ElementaryTypeName","src":"338:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":35412,"nodeType":"UsingForDirective","src":"351:35:38","nodes":[],"global":false,"libraryName":{"id":35410,"name":"FixedPointMathLib","nameLocations":["357:17:38"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"357:17:38"},"typeName":{"id":35411,"name":"int256","nodeType":"ElementaryTypeName","src":"379:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":35420,"nodeType":"StructDefinition","src":"443:82:38","nodes":[],"canonicalName":"LogNormalSolver.Reserves","documentation":{"id":35413,"nodeType":"StructuredDocumentation","src":"392:46:38","text":"@dev Structure to hold reserve information"},"members":[{"constant":false,"id":35415,"mutability":"mutable","name":"rx","nameLocation":"477:2:38","nodeType":"VariableDeclaration","scope":35420,"src":"469:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35414,"name":"uint256","nodeType":"ElementaryTypeName","src":"469:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35417,"mutability":"mutable","name":"ry","nameLocation":"497:2:38","nodeType":"VariableDeclaration","scope":35420,"src":"489:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35416,"name":"uint256","nodeType":"ElementaryTypeName","src":"489:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35419,"mutability":"mutable","name":"L","nameLocation":"517:1:38","nodeType":"VariableDeclaration","scope":35420,"src":"509:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35418,"name":"uint256","nodeType":"ElementaryTypeName","src":"509:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Reserves","nameLocation":"450:8:38","scope":36460,"visibility":"public"},{"id":35423,"nodeType":"VariableDeclaration","src":"531:45:38","nodes":[],"constant":true,"functionSelector":"6d652299","mutability":"constant","name":"BISECTION_EPSILON","nameLocation":"555:17:38","scope":36460,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35421,"name":"uint256","nodeType":"ElementaryTypeName","src":"531:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":35422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"575:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":35426,"nodeType":"VariableDeclaration","src":"582:49:38","nodes":[],"constant":true,"functionSelector":"f9c28211","mutability":"constant","name":"MAX_BISECTION_ITERS","nameLocation":"606:19:38","scope":36460,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35424,"name":"uint256","nodeType":"ElementaryTypeName","src":"582:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313230","id":35425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"628:3:38","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},"visibility":"public"},{"id":35428,"nodeType":"VariableDeclaration","src":"638:23:38","nodes":[],"constant":false,"functionSelector":"a8c62e76","mutability":"mutable","name":"strategy","nameLocation":"653:8:38","scope":36460,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35427,"name":"address","nodeType":"ElementaryTypeName","src":"638:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":35438,"nodeType":"FunctionDefinition","src":"668:68:38","nodes":[],"body":{"id":35437,"nodeType":"Block","src":"699:37:38","nodes":[],"statements":[{"expression":{"id":35435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":35433,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35428,"src":"709:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":35434,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35430,"src":"720:9:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"709:20:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":35436,"nodeType":"ExpressionStatement","src":"709:20:38"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":35431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35430,"mutability":"mutable","name":"_strategy","nameLocation":"688:9:38","nodeType":"VariableDeclaration","scope":35438,"src":"680:17:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35429,"name":"address","nodeType":"ElementaryTypeName","src":"680:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"679:19:38"},"returnParameters":{"id":35432,"nodeType":"ParameterList","parameters":[],"src":"699:0:38"},"scope":36460,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":35460,"nodeType":"FunctionDefinition","src":"742:264:38","nodes":[],"body":{"id":35459,"nodeType":"Block","src":"866:140:38","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":35452,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35440,"src":"941:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":35449,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35428,"src":"917:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":35448,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"907:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$29839_$","typeString":"type(contract IStrategy)"}},"id":35450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"907:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$29839","typeString":"contract IStrategy"}},"id":35451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"927:13:38","memberName":"getPoolParams","nodeType":"MemberAccess","referencedDeclaration":29838,"src":"907:33:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) view external returns (bytes memory)"}},"id":35453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"907:41:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":35454,"name":"LogNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38879,"src":"963:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormal_$38879_$","typeString":"type(contract LogNormal)"}},"id":35455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"973:15:38","memberName":"LogNormalParams","nodeType":"MemberAccess","referencedDeclaration":38204,"src":"963:25:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}}],"id":35456,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"962:27:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}],"expression":{"id":35446,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"883:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":35447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"887:6:38","memberName":"decode","nodeType":"MemberAccess","src":"883:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":35457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"883:116:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"functionReturnParameters":35445,"id":35458,"nodeType":"Return","src":"876:123:38"}]},"functionSelector":"81b5fac2","implemented":true,"kind":"function","modifiers":[],"name":"fetchPoolParams","nameLocation":"751:15:38","parameters":{"id":35441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35440,"mutability":"mutable","name":"poolId","nameLocation":"775:6:38","nodeType":"VariableDeclaration","scope":35460,"src":"767:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35439,"name":"uint256","nodeType":"ElementaryTypeName","src":"767:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"766:16:38"},"returnParameters":{"id":35445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35444,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35460,"src":"828:32:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":35443,"nodeType":"UserDefinedTypeName","pathNode":{"id":35442,"name":"LogNormal.LogNormalParams","nameLocations":["828:9:38","838:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"828:25:38"},"referencedDeclaration":38204,"src":"828:25:38","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"src":"827:34:38"},"scope":36460,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":35473,"nodeType":"FunctionDefinition","src":"1012:169:38","nodes":[],"body":{"id":35472,"nodeType":"Block","src":"1120:61:38","nodes":[],"statements":[{"expression":{"arguments":[{"id":35469,"name":"swapFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35462,"src":"1166:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":35467,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"1137:12:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":35468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1150:15:38","memberName":"encodeFeeUpdate","nodeType":"MemberAccess","referencedDeclaration":38914,"src":"1137:28:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":35470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1137:37:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":35466,"id":35471,"nodeType":"Return","src":"1130:44:38"}]},"functionSelector":"b09d04e5","implemented":true,"kind":"function","modifiers":[],"name":"prepareFeeUpdate","nameLocation":"1021:16:38","parameters":{"id":35463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35462,"mutability":"mutable","name":"swapFee","nameLocation":"1046:7:38","nodeType":"VariableDeclaration","scope":35473,"src":"1038:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35461,"name":"uint256","nodeType":"ElementaryTypeName","src":"1038:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1037:17:38"},"returnParameters":{"id":35466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35465,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35473,"src":"1102:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":35464,"name":"bytes","nodeType":"ElementaryTypeName","src":"1102:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1101:14:38"},"scope":36460,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":35489,"nodeType":"FunctionDefinition","src":"1187:221:38","nodes":[],"body":{"id":35488,"nodeType":"Block","src":"1322:86:38","nodes":[],"statements":[{"expression":{"arguments":[{"id":35484,"name":"targetStrike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35475,"src":"1371:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35485,"name":"targetTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35477,"src":"1385:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":35482,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"1339:12:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":35483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1352:18:38","memberName":"encodeStrikeUpdate","nodeType":"MemberAccess","referencedDeclaration":38953,"src":"1339:31:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (bytes memory)"}},"id":35486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1339:62:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":35481,"id":35487,"nodeType":"Return","src":"1332:69:38"}]},"functionSelector":"0420580a","implemented":true,"kind":"function","modifiers":[],"name":"prepareStrikeUpdate","nameLocation":"1196:19:38","parameters":{"id":35478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35475,"mutability":"mutable","name":"targetStrike","nameLocation":"1233:12:38","nodeType":"VariableDeclaration","scope":35489,"src":"1225:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35474,"name":"uint256","nodeType":"ElementaryTypeName","src":"1225:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35477,"mutability":"mutable","name":"targetTimestamp","nameLocation":"1263:15:38","nodeType":"VariableDeclaration","scope":35489,"src":"1255:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35476,"name":"uint256","nodeType":"ElementaryTypeName","src":"1255:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1215:69:38"},"returnParameters":{"id":35481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35480,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35489,"src":"1308:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":35479,"name":"bytes","nodeType":"ElementaryTypeName","src":"1308:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1307:14:38"},"scope":36460,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":35505,"nodeType":"FunctionDefinition","src":"1414:217:38","nodes":[],"body":{"id":35504,"nodeType":"Block","src":"1547:84:38","nodes":[],"statements":[{"expression":{"arguments":[{"id":35500,"name":"targetSigma","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35491,"src":"1595:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35501,"name":"targetTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35493,"src":"1608:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":35498,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"1564:12:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":35499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1577:17:38","memberName":"encodeSigmaUpdate","nodeType":"MemberAccess","referencedDeclaration":38996,"src":"1564:30:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (bytes memory)"}},"id":35502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1564:60:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":35497,"id":35503,"nodeType":"Return","src":"1557:67:38"}]},"functionSelector":"e94716d5","implemented":true,"kind":"function","modifiers":[],"name":"prepareSigmaUpdate","nameLocation":"1423:18:38","parameters":{"id":35494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35491,"mutability":"mutable","name":"targetSigma","nameLocation":"1459:11:38","nodeType":"VariableDeclaration","scope":35505,"src":"1451:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35490,"name":"uint256","nodeType":"ElementaryTypeName","src":"1451:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35493,"mutability":"mutable","name":"targetTimestamp","nameLocation":"1488:15:38","nodeType":"VariableDeclaration","scope":35505,"src":"1480:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35492,"name":"uint256","nodeType":"ElementaryTypeName","src":"1480:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1441:68:38"},"returnParameters":{"id":35497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35496,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35505,"src":"1533:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":35495,"name":"bytes","nodeType":"ElementaryTypeName","src":"1533:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1532:14:38"},"scope":36460,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":35521,"nodeType":"FunctionDefinition","src":"1637:209:38","nodes":[],"body":{"id":35520,"nodeType":"Block","src":"1766:80:38","nodes":[],"statements":[{"expression":{"arguments":[{"id":35516,"name":"targetTau","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35507,"src":"1812:9:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35517,"name":"targetTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35509,"src":"1823:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":35514,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"1783:12:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":35515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1796:15:38","memberName":"encodeTauUpdate","nodeType":"MemberAccess","referencedDeclaration":39039,"src":"1783:28:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (bytes memory)"}},"id":35518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1783:56:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":35513,"id":35519,"nodeType":"Return","src":"1776:63:38"}]},"functionSelector":"3b268d5d","implemented":true,"kind":"function","modifiers":[],"name":"prepareTauUpdate","nameLocation":"1646:16:38","parameters":{"id":35510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35507,"mutability":"mutable","name":"targetTau","nameLocation":"1680:9:38","nodeType":"VariableDeclaration","scope":35521,"src":"1672:17:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35506,"name":"uint256","nodeType":"ElementaryTypeName","src":"1672:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35509,"mutability":"mutable","name":"targetTimestamp","nameLocation":"1707:15:38","nodeType":"VariableDeclaration","scope":35521,"src":"1699:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35508,"name":"uint256","nodeType":"ElementaryTypeName","src":"1699:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1662:66:38"},"returnParameters":{"id":35513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35512,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35521,"src":"1752:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":35511,"name":"bytes","nodeType":"ElementaryTypeName","src":"1752:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1751:14:38"},"scope":36460,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":35534,"nodeType":"FunctionDefinition","src":"1852:189:38","nodes":[],"body":{"id":35533,"nodeType":"Block","src":"1970:71:38","nodes":[],"statements":[{"expression":{"arguments":[{"id":35530,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35523,"src":"2023:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":35528,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"1987:12:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":35529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2000:22:38","memberName":"encodeControllerUpdate","nodeType":"MemberAccess","referencedDeclaration":39079,"src":"1987:35:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) pure returns (bytes memory)"}},"id":35531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1987:47:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":35527,"id":35532,"nodeType":"Return","src":"1980:54:38"}]},"functionSelector":"cb1f5532","implemented":true,"kind":"function","modifiers":[],"name":"prepareControllerUpdate","nameLocation":"1861:23:38","parameters":{"id":35524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35523,"mutability":"mutable","name":"controller","nameLocation":"1893:10:38","nodeType":"VariableDeclaration","scope":35534,"src":"1885:18:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35522,"name":"address","nodeType":"ElementaryTypeName","src":"1885:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1884:20:38"},"returnParameters":{"id":35527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35526,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35534,"src":"1952:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":35525,"name":"bytes","nodeType":"ElementaryTypeName","src":"1952:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1951:14:38"},"scope":36460,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":35557,"nodeType":"FunctionDefinition","src":"2047:214:38","nodes":[],"body":{"id":35556,"nodeType":"Block","src":"2172:89:38","nodes":[],"statements":[{"expression":{"arguments":[{"id":35553,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35536,"src":"2247:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":35547,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35428,"src":"2205:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":35546,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"2195:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$29839_$","typeString":"type(contract IStrategy)"}},"id":35548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2195:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$29839","typeString":"contract IStrategy"}},"id":35549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2215:4:38","memberName":"dfmm","nodeType":"MemberAccess","referencedDeclaration":29831,"src":"2195:24:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":35550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2195:26:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":35545,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"2189:5:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":35551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2189:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDFMM_$29730","typeString":"contract IDFMM"}},"id":35552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2223:23:38","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":29710,"src":"2189:57:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":35554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2189:65:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"functionReturnParameters":35544,"id":35555,"nodeType":"Return","src":"2182:72:38"}]},"functionSelector":"ce153bf4","implemented":true,"kind":"function","modifiers":[],"name":"getReservesAndLiquidity","nameLocation":"2056:23:38","parameters":{"id":35537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35536,"mutability":"mutable","name":"poolId","nameLocation":"2088:6:38","nodeType":"VariableDeclaration","scope":35557,"src":"2080:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35535,"name":"uint256","nodeType":"ElementaryTypeName","src":"2080:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2079:16:38"},"returnParameters":{"id":35544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35539,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35557,"src":"2141:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35538,"name":"uint256","nodeType":"ElementaryTypeName","src":"2141:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35541,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35557,"src":"2150:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35540,"name":"uint256","nodeType":"ElementaryTypeName","src":"2150:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35543,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35557,"src":"2159:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35542,"name":"uint256","nodeType":"ElementaryTypeName","src":"2159:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2140:27:38"},"scope":36460,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":35576,"nodeType":"FunctionDefinition","src":"2267:218:38","nodes":[],"body":{"id":35575,"nodeType":"Block","src":"2424:61:38","nodes":[],"statements":[{"expression":{"arguments":[{"id":35570,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35559,"src":"2464:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35571,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35561,"src":"2468:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35572,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35564,"src":"2471:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"id":35569,"name":"computeInitialPoolData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34282,"src":"2441:22:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (bytes memory)"}},"id":35573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2441:37:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":35568,"id":35574,"nodeType":"Return","src":"2434:44:38"}]},"functionSelector":"134ead12","implemented":true,"kind":"function","modifiers":[],"name":"getInitialPoolData","nameLocation":"2276:18:38","parameters":{"id":35565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35559,"mutability":"mutable","name":"rx","nameLocation":"2312:2:38","nodeType":"VariableDeclaration","scope":35576,"src":"2304:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35558,"name":"uint256","nodeType":"ElementaryTypeName","src":"2304:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35561,"mutability":"mutable","name":"S","nameLocation":"2332:1:38","nodeType":"VariableDeclaration","scope":35576,"src":"2324:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35560,"name":"uint256","nodeType":"ElementaryTypeName","src":"2324:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35564,"mutability":"mutable","name":"params","nameLocation":"2376:6:38","nodeType":"VariableDeclaration","scope":35576,"src":"2343:39:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":35563,"nodeType":"UserDefinedTypeName","pathNode":{"id":35562,"name":"LogNormal.LogNormalParams","nameLocations":["2343:9:38","2353:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"2343:25:38"},"referencedDeclaration":38204,"src":"2343:25:38","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"src":"2294:94:38"},"returnParameters":{"id":35568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35567,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35576,"src":"2410:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":35566,"name":"bytes","nodeType":"ElementaryTypeName","src":"2410:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2409:14:38"},"scope":36460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":35631,"nodeType":"FunctionDefinition","src":"2491:515:38","nodes":[],"body":{"id":35630,"nodeType":"Block","src":"2618:388:38","nodes":[],"statements":[{"assignments":[35590,null,35592],"declarations":[{"constant":false,"id":35590,"mutability":"mutable","name":"rx","nameLocation":"2637:2:38","nodeType":"VariableDeclaration","scope":35630,"src":"2629:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35589,"name":"uint256","nodeType":"ElementaryTypeName","src":"2629:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":35592,"mutability":"mutable","name":"L","nameLocation":"2650:1:38","nodeType":"VariableDeclaration","scope":35630,"src":"2642:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35591,"name":"uint256","nodeType":"ElementaryTypeName","src":"2642:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35596,"initialValue":{"arguments":[{"id":35594,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35578,"src":"2679:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35593,"name":"getReservesAndLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35557,"src":"2655:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256,uint256)"}},"id":35595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2655:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"2628:58:38"},{"assignments":[35598,35600],"declarations":[{"constant":false,"id":35598,"mutability":"mutable","name":"nextRx","nameLocation":"2705:6:38","nodeType":"VariableDeclaration","scope":35630,"src":"2697:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35597,"name":"uint256","nodeType":"ElementaryTypeName","src":"2697:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35600,"mutability":"mutable","name":"nextL","nameLocation":"2721:5:38","nodeType":"VariableDeclaration","scope":35630,"src":"2713:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35599,"name":"uint256","nodeType":"ElementaryTypeName","src":"2713:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35607,"initialValue":{"arguments":[{"hexValue":"74727565","id":35602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2766:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":35603,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35580,"src":"2772:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35604,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35590,"src":"2781:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35605,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35592,"src":"2785:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35601,"name":"computeAllocationGivenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30723,"src":"2742:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bool,uint256,uint256,uint256) pure returns (uint256,uint256)"}},"id":35606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2742:45:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"2696:91:38"},{"assignments":[35609],"declarations":[{"constant":false,"id":35609,"mutability":"mutable","name":"approximatedPrice","nameLocation":"2805:17:38","nodeType":"VariableDeclaration","scope":35630,"src":"2797:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35608,"name":"uint256","nodeType":"ElementaryTypeName","src":"2797:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35615,"initialValue":{"arguments":[{"id":35611,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35578,"src":"2841:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35612,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35598,"src":"2849:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35613,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35600,"src":"2857:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35610,"name":"getPriceGivenXL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36299,"src":"2825:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":35614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2825:38:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2797:66:38"},{"assignments":[35617],"declarations":[{"constant":false,"id":35617,"mutability":"mutable","name":"nextRy","nameLocation":"2881:6:38","nodeType":"VariableDeclaration","scope":35630,"src":"2873:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35616,"name":"uint256","nodeType":"ElementaryTypeName","src":"2873:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35624,"initialValue":{"arguments":[{"id":35619,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35578,"src":"2918:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35620,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35598,"src":"2926:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35621,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35600,"src":"2934:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35622,"name":"approximatedPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35609,"src":"2941:17:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35618,"name":"getNextReserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35945,"src":"2902:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256) view returns (uint256)"}},"id":35623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2902:57:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2873:86:38"},{"expression":{"components":[{"id":35625,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35598,"src":"2977:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35626,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35617,"src":"2985:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35627,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35600,"src":"2993:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":35628,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2976:23:38","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"functionReturnParameters":35588,"id":35629,"nodeType":"Return","src":"2969:30:38"}]},"functionSelector":"ee3e8cfb","implemented":true,"kind":"function","modifiers":[],"name":"allocateGivenX","nameLocation":"2500:14:38","parameters":{"id":35581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35578,"mutability":"mutable","name":"poolId","nameLocation":"2532:6:38","nodeType":"VariableDeclaration","scope":35631,"src":"2524:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35577,"name":"uint256","nodeType":"ElementaryTypeName","src":"2524:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35580,"mutability":"mutable","name":"amountX","nameLocation":"2556:7:38","nodeType":"VariableDeclaration","scope":35631,"src":"2548:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35579,"name":"uint256","nodeType":"ElementaryTypeName","src":"2548:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2514:55:38"},"returnParameters":{"id":35588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35583,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35631,"src":"2591:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35582,"name":"uint256","nodeType":"ElementaryTypeName","src":"2591:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35585,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35631,"src":"2600:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35584,"name":"uint256","nodeType":"ElementaryTypeName","src":"2600:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35631,"src":"2609:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35586,"name":"uint256","nodeType":"ElementaryTypeName","src":"2609:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2590:27:38"},"scope":36460,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":35686,"nodeType":"FunctionDefinition","src":"3012:516:38","nodes":[],"body":{"id":35685,"nodeType":"Block","src":"3139:389:38","nodes":[],"statements":[{"assignments":[null,35645,35647],"declarations":[null,{"constant":false,"id":35645,"mutability":"mutable","name":"ry","nameLocation":"3160:2:38","nodeType":"VariableDeclaration","scope":35685,"src":"3152:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35644,"name":"uint256","nodeType":"ElementaryTypeName","src":"3152:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35647,"mutability":"mutable","name":"L","nameLocation":"3172:1:38","nodeType":"VariableDeclaration","scope":35685,"src":"3164:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35646,"name":"uint256","nodeType":"ElementaryTypeName","src":"3164:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35651,"initialValue":{"arguments":[{"id":35649,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35633,"src":"3201:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35648,"name":"getReservesAndLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35557,"src":"3177:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256,uint256)"}},"id":35650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3177:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"3149:59:38"},{"assignments":[35653,35655],"declarations":[{"constant":false,"id":35653,"mutability":"mutable","name":"nextRy","nameLocation":"3227:6:38","nodeType":"VariableDeclaration","scope":35685,"src":"3219:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35652,"name":"uint256","nodeType":"ElementaryTypeName","src":"3219:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35655,"mutability":"mutable","name":"nextL","nameLocation":"3243:5:38","nodeType":"VariableDeclaration","scope":35685,"src":"3235:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35654,"name":"uint256","nodeType":"ElementaryTypeName","src":"3235:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35662,"initialValue":{"arguments":[{"hexValue":"74727565","id":35657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3288:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":35658,"name":"amountY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35635,"src":"3294:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35659,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35645,"src":"3303:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35660,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35647,"src":"3307:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35656,"name":"computeAllocationGivenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30723,"src":"3264:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bool,uint256,uint256,uint256) pure returns (uint256,uint256)"}},"id":35661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3264:45:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"3218:91:38"},{"assignments":[35664],"declarations":[{"constant":false,"id":35664,"mutability":"mutable","name":"approximatedPrice","nameLocation":"3327:17:38","nodeType":"VariableDeclaration","scope":35685,"src":"3319:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35663,"name":"uint256","nodeType":"ElementaryTypeName","src":"3319:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35670,"initialValue":{"arguments":[{"id":35666,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35633,"src":"3363:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35667,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35653,"src":"3371:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35668,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35655,"src":"3379:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35665,"name":"getPriceGivenYL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36276,"src":"3347:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":35669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3347:38:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3319:66:38"},{"assignments":[35672],"declarations":[{"constant":false,"id":35672,"mutability":"mutable","name":"nextRx","nameLocation":"3403:6:38","nodeType":"VariableDeclaration","scope":35685,"src":"3395:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35671,"name":"uint256","nodeType":"ElementaryTypeName","src":"3395:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35679,"initialValue":{"arguments":[{"id":35674,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35633,"src":"3440:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35675,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35653,"src":"3448:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35676,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35655,"src":"3456:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35677,"name":"approximatedPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35664,"src":"3463:17:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35673,"name":"getNextReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35892,"src":"3424:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256) view returns (uint256)"}},"id":35678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3424:57:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3395:86:38"},{"expression":{"components":[{"id":35680,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35672,"src":"3499:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35681,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35653,"src":"3507:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35682,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35655,"src":"3515:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":35683,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3498:23:38","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"functionReturnParameters":35643,"id":35684,"nodeType":"Return","src":"3491:30:38"}]},"functionSelector":"7f17409c","implemented":true,"kind":"function","modifiers":[],"name":"allocateGivenY","nameLocation":"3021:14:38","parameters":{"id":35636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35633,"mutability":"mutable","name":"poolId","nameLocation":"3053:6:38","nodeType":"VariableDeclaration","scope":35686,"src":"3045:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35632,"name":"uint256","nodeType":"ElementaryTypeName","src":"3045:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35635,"mutability":"mutable","name":"amountY","nameLocation":"3077:7:38","nodeType":"VariableDeclaration","scope":35686,"src":"3069:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35634,"name":"uint256","nodeType":"ElementaryTypeName","src":"3069:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3035:55:38"},"returnParameters":{"id":35643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35638,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35686,"src":"3112:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35637,"name":"uint256","nodeType":"ElementaryTypeName","src":"3112:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35686,"src":"3121:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35639,"name":"uint256","nodeType":"ElementaryTypeName","src":"3121:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35642,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35686,"src":"3130:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35641,"name":"uint256","nodeType":"ElementaryTypeName","src":"3130:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3111:27:38"},"scope":36460,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":35741,"nodeType":"FunctionDefinition","src":"3534:518:38","nodes":[],"body":{"id":35740,"nodeType":"Block","src":"3663:389:38","nodes":[],"statements":[{"assignments":[35700,null,35702],"declarations":[{"constant":false,"id":35700,"mutability":"mutable","name":"rx","nameLocation":"3682:2:38","nodeType":"VariableDeclaration","scope":35740,"src":"3674:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35699,"name":"uint256","nodeType":"ElementaryTypeName","src":"3674:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":35702,"mutability":"mutable","name":"L","nameLocation":"3695:1:38","nodeType":"VariableDeclaration","scope":35740,"src":"3687:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35701,"name":"uint256","nodeType":"ElementaryTypeName","src":"3687:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35706,"initialValue":{"arguments":[{"id":35704,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35688,"src":"3724:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35703,"name":"getReservesAndLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35557,"src":"3700:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256,uint256)"}},"id":35705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3700:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"3673:58:38"},{"assignments":[35708,35710],"declarations":[{"constant":false,"id":35708,"mutability":"mutable","name":"nextRx","nameLocation":"3750:6:38","nodeType":"VariableDeclaration","scope":35740,"src":"3742:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35707,"name":"uint256","nodeType":"ElementaryTypeName","src":"3742:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35710,"mutability":"mutable","name":"nextL","nameLocation":"3766:5:38","nodeType":"VariableDeclaration","scope":35740,"src":"3758:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35709,"name":"uint256","nodeType":"ElementaryTypeName","src":"3758:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35717,"initialValue":{"arguments":[{"hexValue":"66616c7365","id":35712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3811:5:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":35713,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35690,"src":"3818:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35714,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35700,"src":"3827:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35715,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35702,"src":"3831:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35711,"name":"computeAllocationGivenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30723,"src":"3787:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bool,uint256,uint256,uint256) pure returns (uint256,uint256)"}},"id":35716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3787:46:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"3741:92:38"},{"assignments":[35719],"declarations":[{"constant":false,"id":35719,"mutability":"mutable","name":"approximatedPrice","nameLocation":"3851:17:38","nodeType":"VariableDeclaration","scope":35740,"src":"3843:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35718,"name":"uint256","nodeType":"ElementaryTypeName","src":"3843:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35725,"initialValue":{"arguments":[{"id":35721,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35688,"src":"3887:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35722,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35708,"src":"3895:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35723,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35710,"src":"3903:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35720,"name":"getPriceGivenXL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36299,"src":"3871:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":35724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3871:38:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3843:66:38"},{"assignments":[35727],"declarations":[{"constant":false,"id":35727,"mutability":"mutable","name":"nextRy","nameLocation":"3927:6:38","nodeType":"VariableDeclaration","scope":35740,"src":"3919:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35726,"name":"uint256","nodeType":"ElementaryTypeName","src":"3919:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35734,"initialValue":{"arguments":[{"id":35729,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35688,"src":"3964:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35730,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35708,"src":"3972:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35731,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35710,"src":"3980:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35732,"name":"approximatedPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35719,"src":"3987:17:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35728,"name":"getNextReserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35945,"src":"3948:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256) view returns (uint256)"}},"id":35733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3948:57:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3919:86:38"},{"expression":{"components":[{"id":35735,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35708,"src":"4023:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35736,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35727,"src":"4031:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35737,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35710,"src":"4039:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":35738,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4022:23:38","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"functionReturnParameters":35698,"id":35739,"nodeType":"Return","src":"4015:30:38"}]},"functionSelector":"6237569f","implemented":true,"kind":"function","modifiers":[],"name":"deallocateGivenX","nameLocation":"3543:16:38","parameters":{"id":35691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35688,"mutability":"mutable","name":"poolId","nameLocation":"3577:6:38","nodeType":"VariableDeclaration","scope":35741,"src":"3569:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35687,"name":"uint256","nodeType":"ElementaryTypeName","src":"3569:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35690,"mutability":"mutable","name":"amountX","nameLocation":"3601:7:38","nodeType":"VariableDeclaration","scope":35741,"src":"3593:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35689,"name":"uint256","nodeType":"ElementaryTypeName","src":"3593:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3559:55:38"},"returnParameters":{"id":35698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35693,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35741,"src":"3636:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35692,"name":"uint256","nodeType":"ElementaryTypeName","src":"3636:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35695,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35741,"src":"3645:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35694,"name":"uint256","nodeType":"ElementaryTypeName","src":"3645:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35697,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35741,"src":"3654:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35696,"name":"uint256","nodeType":"ElementaryTypeName","src":"3654:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3635:27:38"},"scope":36460,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":35796,"nodeType":"FunctionDefinition","src":"4058:519:38","nodes":[],"body":{"id":35795,"nodeType":"Block","src":"4187:390:38","nodes":[],"statements":[{"assignments":[null,35755,35757],"declarations":[null,{"constant":false,"id":35755,"mutability":"mutable","name":"ry","nameLocation":"4208:2:38","nodeType":"VariableDeclaration","scope":35795,"src":"4200:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35754,"name":"uint256","nodeType":"ElementaryTypeName","src":"4200:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35757,"mutability":"mutable","name":"L","nameLocation":"4220:1:38","nodeType":"VariableDeclaration","scope":35795,"src":"4212:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35756,"name":"uint256","nodeType":"ElementaryTypeName","src":"4212:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35761,"initialValue":{"arguments":[{"id":35759,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35743,"src":"4249:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35758,"name":"getReservesAndLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35557,"src":"4225:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256,uint256)"}},"id":35760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4225:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4197:59:38"},{"assignments":[35763,35765],"declarations":[{"constant":false,"id":35763,"mutability":"mutable","name":"nextRy","nameLocation":"4275:6:38","nodeType":"VariableDeclaration","scope":35795,"src":"4267:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35762,"name":"uint256","nodeType":"ElementaryTypeName","src":"4267:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35765,"mutability":"mutable","name":"nextL","nameLocation":"4291:5:38","nodeType":"VariableDeclaration","scope":35795,"src":"4283:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35764,"name":"uint256","nodeType":"ElementaryTypeName","src":"4283:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35772,"initialValue":{"arguments":[{"hexValue":"66616c7365","id":35767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4336:5:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":35768,"name":"amountY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35745,"src":"4343:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35769,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35755,"src":"4352:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35770,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35757,"src":"4356:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35766,"name":"computeAllocationGivenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30723,"src":"4312:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bool,uint256,uint256,uint256) pure returns (uint256,uint256)"}},"id":35771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4312:46:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4266:92:38"},{"assignments":[35774],"declarations":[{"constant":false,"id":35774,"mutability":"mutable","name":"approximatedPrice","nameLocation":"4376:17:38","nodeType":"VariableDeclaration","scope":35795,"src":"4368:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35773,"name":"uint256","nodeType":"ElementaryTypeName","src":"4368:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35780,"initialValue":{"arguments":[{"id":35776,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35743,"src":"4412:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35777,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35763,"src":"4420:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35778,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35765,"src":"4428:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35775,"name":"getPriceGivenYL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36276,"src":"4396:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":35779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4396:38:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4368:66:38"},{"assignments":[35782],"declarations":[{"constant":false,"id":35782,"mutability":"mutable","name":"nextRx","nameLocation":"4452:6:38","nodeType":"VariableDeclaration","scope":35795,"src":"4444:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35781,"name":"uint256","nodeType":"ElementaryTypeName","src":"4444:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35789,"initialValue":{"arguments":[{"id":35784,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35743,"src":"4489:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35785,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35763,"src":"4497:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35786,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35765,"src":"4505:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35787,"name":"approximatedPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35774,"src":"4512:17:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35783,"name":"getNextReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35892,"src":"4473:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256) view returns (uint256)"}},"id":35788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4473:57:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4444:86:38"},{"expression":{"components":[{"id":35790,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35782,"src":"4548:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35791,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35763,"src":"4556:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35792,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35765,"src":"4564:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":35793,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4547:23:38","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"functionReturnParameters":35753,"id":35794,"nodeType":"Return","src":"4540:30:38"}]},"functionSelector":"f30d37f2","implemented":true,"kind":"function","modifiers":[],"name":"deallocateGivenY","nameLocation":"4067:16:38","parameters":{"id":35746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35743,"mutability":"mutable","name":"poolId","nameLocation":"4101:6:38","nodeType":"VariableDeclaration","scope":35796,"src":"4093:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35742,"name":"uint256","nodeType":"ElementaryTypeName","src":"4093:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35745,"mutability":"mutable","name":"amountY","nameLocation":"4125:7:38","nodeType":"VariableDeclaration","scope":35796,"src":"4117:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35744,"name":"uint256","nodeType":"ElementaryTypeName","src":"4117:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4083:55:38"},"returnParameters":{"id":35753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35748,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35796,"src":"4160:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35747,"name":"uint256","nodeType":"ElementaryTypeName","src":"4160:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35750,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35796,"src":"4169:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35749,"name":"uint256","nodeType":"ElementaryTypeName","src":"4169:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35752,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35796,"src":"4178:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35751,"name":"uint256","nodeType":"ElementaryTypeName","src":"4178:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4159:27:38"},"scope":36460,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":35839,"nodeType":"FunctionDefinition","src":"4583:381:38","nodes":[],"body":{"id":35838,"nodeType":"Block","src":"4728:236:38","nodes":[],"statements":[{"assignments":[35810],"declarations":[{"constant":false,"id":35810,"mutability":"mutable","name":"data","nameLocation":"4751:4:38","nodeType":"VariableDeclaration","scope":35838,"src":"4738:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":35809,"name":"bytes","nodeType":"ElementaryTypeName","src":"4738:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":35817,"initialValue":{"arguments":[{"id":35813,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35800,"src":"4769:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35814,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35802,"src":"4773:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35815,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35804,"src":"4777:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":35811,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4758:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":35812,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4762:6:38","memberName":"encode","nodeType":"MemberAccess","src":"4758:10:38","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":35816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4758:21:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4738:41:38"},{"assignments":[35819],"declarations":[{"constant":false,"id":35819,"mutability":"mutable","name":"invariant","nameLocation":"4796:9:38","nodeType":"VariableDeclaration","scope":35838,"src":"4789:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35818,"name":"int256","nodeType":"ElementaryTypeName","src":"4789:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35827,"initialValue":{"arguments":[{"id":35824,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35798,"src":"4848:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35825,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35810,"src":"4856:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":35821,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35428,"src":"4818:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":35820,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"4808:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$29839_$","typeString":"type(contract IStrategy)"}},"id":35822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4808:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$29839","typeString":"contract IStrategy"}},"id":35823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4828:19:38","memberName":"computeSwapConstant","nodeType":"MemberAccess","referencedDeclaration":29826,"src":"4808:39:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,bytes memory) view external returns (int256)"}},"id":35826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4808:53:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"4789:72:38"},{"expression":{"arguments":[{"id":35829,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35800,"src":"4911:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35830,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35802,"src":"4915:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35831,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35819,"src":"4919:9:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":35832,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35804,"src":"4930:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":35834,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35798,"src":"4949:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35833,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35460,"src":"4933:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"function (uint256) view returns (struct LogNormal.LogNormalParams memory)"}},"id":35835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4933:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"id":35828,"name":"computeNextLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34383,"src":"4890:20:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_int256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,int256,uint256,struct LogNormal.LogNormalParams memory) pure returns (uint256)"}},"id":35836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4890:67:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":35808,"id":35837,"nodeType":"Return","src":"4871:86:38"}]},"functionSelector":"af4e437f","implemented":true,"kind":"function","modifiers":[],"name":"getNextLiquidity","nameLocation":"4592:16:38","parameters":{"id":35805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35798,"mutability":"mutable","name":"poolId","nameLocation":"4626:6:38","nodeType":"VariableDeclaration","scope":35839,"src":"4618:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35797,"name":"uint256","nodeType":"ElementaryTypeName","src":"4618:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35800,"mutability":"mutable","name":"rx","nameLocation":"4650:2:38","nodeType":"VariableDeclaration","scope":35839,"src":"4642:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35799,"name":"uint256","nodeType":"ElementaryTypeName","src":"4642:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35802,"mutability":"mutable","name":"ry","nameLocation":"4670:2:38","nodeType":"VariableDeclaration","scope":35839,"src":"4662:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35801,"name":"uint256","nodeType":"ElementaryTypeName","src":"4662:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35804,"mutability":"mutable","name":"L","nameLocation":"4690:1:38","nodeType":"VariableDeclaration","scope":35839,"src":"4682:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35803,"name":"uint256","nodeType":"ElementaryTypeName","src":"4682:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4608:89:38"},"returnParameters":{"id":35808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35807,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35839,"src":"4719:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35806,"name":"uint256","nodeType":"ElementaryTypeName","src":"4719:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4718:9:38"},"scope":36460,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":35892,"nodeType":"FunctionDefinition","src":"4970:486:38","nodes":[],"body":{"id":35891,"nodeType":"Block","src":"5113:343:38","nodes":[],"statements":[{"assignments":[35853],"declarations":[{"constant":false,"id":35853,"mutability":"mutable","name":"approximatedRx","nameLocation":"5131:14:38","nodeType":"VariableDeclaration","scope":35891,"src":"5123:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35852,"name":"uint256","nodeType":"ElementaryTypeName","src":"5123:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35861,"initialValue":{"arguments":[{"id":35855,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35845,"src":"5163:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35856,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35847,"src":"5166:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":35858,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35841,"src":"5185:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35857,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35460,"src":"5169:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"function (uint256) view returns (struct LogNormal.LogNormalParams memory)"}},"id":35859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5169:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"id":35854,"name":"computeXGivenL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33976,"src":"5148:14:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (uint256)"}},"id":35860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5148:45:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5123:70:38"},{"assignments":[35863],"declarations":[{"constant":false,"id":35863,"mutability":"mutable","name":"data","nameLocation":"5216:4:38","nodeType":"VariableDeclaration","scope":35891,"src":"5203:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":35862,"name":"bytes","nodeType":"ElementaryTypeName","src":"5203:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":35870,"initialValue":{"arguments":[{"id":35866,"name":"approximatedRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35853,"src":"5234:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35867,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35843,"src":"5250:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35868,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35845,"src":"5254:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":35864,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5223:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":35865,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5227:6:38","memberName":"encode","nodeType":"MemberAccess","src":"5223:10:38","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":35869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5223:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5203:53:38"},{"assignments":[35872],"declarations":[{"constant":false,"id":35872,"mutability":"mutable","name":"invariant","nameLocation":"5273:9:38","nodeType":"VariableDeclaration","scope":35891,"src":"5266:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35871,"name":"int256","nodeType":"ElementaryTypeName","src":"5266:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35880,"initialValue":{"arguments":[{"id":35877,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35841,"src":"5325:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35878,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35863,"src":"5333:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":35874,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35428,"src":"5295:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":35873,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"5285:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$29839_$","typeString":"type(contract IStrategy)"}},"id":35875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5285:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$29839","typeString":"contract IStrategy"}},"id":35876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5305:19:38","memberName":"computeSwapConstant","nodeType":"MemberAccess","referencedDeclaration":29826,"src":"5285:39:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,bytes memory) view external returns (int256)"}},"id":35879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5285:53:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"5266:72:38"},{"expression":{"arguments":[{"id":35882,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35843,"src":"5382:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35883,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35845,"src":"5386:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35884,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35872,"src":"5389:9:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":35885,"name":"approximatedRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35853,"src":"5400:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":35887,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35841,"src":"5432:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35886,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35460,"src":"5416:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"function (uint256) view returns (struct LogNormal.LogNormalParams memory)"}},"id":35888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5416:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"id":35881,"name":"computeNextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34484,"src":"5355:13:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_int256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,int256,uint256,struct LogNormal.LogNormalParams memory) pure returns (uint256)"}},"id":35889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5355:94:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":35851,"id":35890,"nodeType":"Return","src":"5348:101:38"}]},"functionSelector":"5eb408fc","implemented":true,"kind":"function","modifiers":[],"name":"getNextReserveX","nameLocation":"4979:15:38","parameters":{"id":35848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35841,"mutability":"mutable","name":"poolId","nameLocation":"5012:6:38","nodeType":"VariableDeclaration","scope":35892,"src":"5004:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35840,"name":"uint256","nodeType":"ElementaryTypeName","src":"5004:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35843,"mutability":"mutable","name":"ry","nameLocation":"5036:2:38","nodeType":"VariableDeclaration","scope":35892,"src":"5028:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35842,"name":"uint256","nodeType":"ElementaryTypeName","src":"5028:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35845,"mutability":"mutable","name":"L","nameLocation":"5056:1:38","nodeType":"VariableDeclaration","scope":35892,"src":"5048:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35844,"name":"uint256","nodeType":"ElementaryTypeName","src":"5048:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35847,"mutability":"mutable","name":"S","nameLocation":"5075:1:38","nodeType":"VariableDeclaration","scope":35892,"src":"5067:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35846,"name":"uint256","nodeType":"ElementaryTypeName","src":"5067:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4994:88:38"},"returnParameters":{"id":35851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35850,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35892,"src":"5104:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35849,"name":"uint256","nodeType":"ElementaryTypeName","src":"5104:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5103:9:38"},"scope":36460,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":35945,"nodeType":"FunctionDefinition","src":"5462:486:38","nodes":[],"body":{"id":35944,"nodeType":"Block","src":"5605:343:38","nodes":[],"statements":[{"assignments":[35906],"declarations":[{"constant":false,"id":35906,"mutability":"mutable","name":"approximatedRy","nameLocation":"5623:14:38","nodeType":"VariableDeclaration","scope":35944,"src":"5615:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35905,"name":"uint256","nodeType":"ElementaryTypeName","src":"5615:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35914,"initialValue":{"arguments":[{"id":35908,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35898,"src":"5655:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35909,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35900,"src":"5658:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":35911,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35894,"src":"5677:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35910,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35460,"src":"5661:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"function (uint256) view returns (struct LogNormal.LogNormalParams memory)"}},"id":35912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5661:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"id":35907,"name":"computeYGivenL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33932,"src":"5640:14:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (uint256)"}},"id":35913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5640:45:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5615:70:38"},{"assignments":[35916],"declarations":[{"constant":false,"id":35916,"mutability":"mutable","name":"data","nameLocation":"5708:4:38","nodeType":"VariableDeclaration","scope":35944,"src":"5695:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":35915,"name":"bytes","nodeType":"ElementaryTypeName","src":"5695:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":35923,"initialValue":{"arguments":[{"id":35919,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35896,"src":"5726:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35920,"name":"approximatedRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35906,"src":"5730:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35921,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35898,"src":"5746:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":35917,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5715:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":35918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5719:6:38","memberName":"encode","nodeType":"MemberAccess","src":"5715:10:38","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":35922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5715:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5695:53:38"},{"assignments":[35925],"declarations":[{"constant":false,"id":35925,"mutability":"mutable","name":"invariant","nameLocation":"5765:9:38","nodeType":"VariableDeclaration","scope":35944,"src":"5758:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35924,"name":"int256","nodeType":"ElementaryTypeName","src":"5758:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35933,"initialValue":{"arguments":[{"id":35930,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35894,"src":"5817:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35931,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35916,"src":"5825:4:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":35927,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35428,"src":"5787:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":35926,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"5777:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$29839_$","typeString":"type(contract IStrategy)"}},"id":35928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5777:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$29839","typeString":"contract IStrategy"}},"id":35929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5797:19:38","memberName":"computeSwapConstant","nodeType":"MemberAccess","referencedDeclaration":29826,"src":"5777:39:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,bytes memory) view external returns (int256)"}},"id":35932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5777:53:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"5758:72:38"},{"expression":{"arguments":[{"id":35935,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35896,"src":"5874:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35936,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35898,"src":"5878:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":35937,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35925,"src":"5881:9:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":35938,"name":"approximatedRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35906,"src":"5892:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":35940,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35894,"src":"5924:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35939,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35460,"src":"5908:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"function (uint256) view returns (struct LogNormal.LogNormalParams memory)"}},"id":35941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5908:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"id":35934,"name":"computeNextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34585,"src":"5847:13:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_int256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,int256,uint256,struct LogNormal.LogNormalParams memory) pure returns (uint256)"}},"id":35942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5847:94:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":35904,"id":35943,"nodeType":"Return","src":"5840:101:38"}]},"functionSelector":"120649c5","implemented":true,"kind":"function","modifiers":[],"name":"getNextReserveY","nameLocation":"5471:15:38","parameters":{"id":35901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35894,"mutability":"mutable","name":"poolId","nameLocation":"5504:6:38","nodeType":"VariableDeclaration","scope":35945,"src":"5496:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35893,"name":"uint256","nodeType":"ElementaryTypeName","src":"5496:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35896,"mutability":"mutable","name":"rx","nameLocation":"5528:2:38","nodeType":"VariableDeclaration","scope":35945,"src":"5520:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35895,"name":"uint256","nodeType":"ElementaryTypeName","src":"5520:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35898,"mutability":"mutable","name":"L","nameLocation":"5548:1:38","nodeType":"VariableDeclaration","scope":35945,"src":"5540:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35897,"name":"uint256","nodeType":"ElementaryTypeName","src":"5540:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35900,"mutability":"mutable","name":"S","nameLocation":"5567:1:38","nodeType":"VariableDeclaration","scope":35945,"src":"5559:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35899,"name":"uint256","nodeType":"ElementaryTypeName","src":"5559:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5486:88:38"},"returnParameters":{"id":35904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35903,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35945,"src":"5596:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35902,"name":"uint256","nodeType":"ElementaryTypeName","src":"5596:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5595:9:38"},"scope":36460,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":36225,"nodeType":"FunctionDefinition","src":"6037:2840:38","nodes":[],"body":{"id":36224,"nodeType":"Block","src":"6196:2681:38","nodes":[],"statements":[{"assignments":[35965],"declarations":[{"constant":false,"id":35965,"mutability":"mutable","name":"startReserves","nameLocation":"6222:13:38","nodeType":"VariableDeclaration","scope":36224,"src":"6206:29:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves"},"typeName":{"id":35964,"nodeType":"UserDefinedTypeName","pathNode":{"id":35963,"name":"Reserves","nameLocations":["6206:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":35420,"src":"6206:8:38"},"referencedDeclaration":35420,"src":"6206:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_storage_ptr","typeString":"struct LogNormalSolver.Reserves"}},"visibility":"internal"}],"id":35966,"nodeType":"VariableDeclarationStatement","src":"6206:29:38"},{"assignments":[35969],"declarations":[{"constant":false,"id":35969,"mutability":"mutable","name":"endReserves","nameLocation":"6261:11:38","nodeType":"VariableDeclaration","scope":36224,"src":"6245:27:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves"},"typeName":{"id":35968,"nodeType":"UserDefinedTypeName","pathNode":{"id":35967,"name":"Reserves","nameLocations":["6245:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":35420,"src":"6245:8:38"},"referencedDeclaration":35420,"src":"6245:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_storage_ptr","typeString":"struct LogNormalSolver.Reserves"}},"visibility":"internal"}],"id":35970,"nodeType":"VariableDeclarationStatement","src":"6245:27:38"},{"expression":{"id":35982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"expression":{"id":35971,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35965,"src":"6283:13:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":35973,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6297:2:38","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":35415,"src":"6283:16:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":35974,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35965,"src":"6301:13:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":35975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6315:2:38","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":35417,"src":"6301:16:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":35976,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35965,"src":"6319:13:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":35977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6333:1:38","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":35419,"src":"6319:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":35978,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"6282:53:38","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":35980,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35948,"src":"6374:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35979,"name":"getReservesAndLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35557,"src":"6350:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256,uint256)"}},"id":35981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6350:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"src":"6282:99:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35983,"nodeType":"ExpressionStatement","src":"6282:99:38"},{"assignments":[35988],"declarations":[{"constant":false,"id":35988,"mutability":"mutable","name":"poolParams","nameLocation":"6424:10:38","nodeType":"VariableDeclaration","scope":36224,"src":"6391:43:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":35987,"nodeType":"UserDefinedTypeName","pathNode":{"id":35986,"name":"LogNormal.LogNormalParams","nameLocations":["6391:9:38","6401:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"6391:25:38"},"referencedDeclaration":38204,"src":"6391:25:38","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"id":35992,"initialValue":{"arguments":[{"id":35990,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35948,"src":"6453:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35989,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35460,"src":"6437:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"function (uint256) view returns (struct LogNormal.LogNormalParams memory)"}},"id":35991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6437:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"nodeType":"VariableDeclarationStatement","src":"6391:69:38"},{"assignments":[35994],"declarations":[{"constant":false,"id":35994,"mutability":"mutable","name":"amountOut","nameLocation":"6479:9:38","nodeType":"VariableDeclaration","scope":36224,"src":"6471:17:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35993,"name":"uint256","nodeType":"ElementaryTypeName","src":"6471:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35995,"nodeType":"VariableDeclarationStatement","src":"6471:17:38"},{"id":36184,"nodeType":"Block","src":"6498:1904:38","statements":[{"assignments":[35997],"declarations":[{"constant":false,"id":35997,"mutability":"mutable","name":"startComputedL","nameLocation":"6520:14:38","nodeType":"VariableDeclaration","scope":36184,"src":"6512:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35996,"name":"uint256","nodeType":"ElementaryTypeName","src":"6512:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36007,"initialValue":{"arguments":[{"id":35999,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35948,"src":"6571:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":36000,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35965,"src":"6579:13:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36001,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6593:2:38","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":35415,"src":"6579:16:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":36002,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35965,"src":"6597:13:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6611:2:38","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":35417,"src":"6597:16:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":36004,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35965,"src":"6615:13:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6629:1:38","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":35419,"src":"6615:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35998,"name":"getNextLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35839,"src":"6537:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256) view returns (uint256)"}},"id":36006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6537:107:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6512:132:38"},{"condition":{"id":36008,"name":"swapXIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35950,"src":"6663:7:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":36182,"nodeType":"Block","src":"7535:857:38","statements":[{"assignments":[36097],"declarations":[{"constant":false,"id":36097,"mutability":"mutable","name":"fees","nameLocation":"7561:4:38","nodeType":"VariableDeclaration","scope":36182,"src":"7553:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36096,"name":"uint256","nodeType":"ElementaryTypeName","src":"7553:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36103,"initialValue":{"arguments":[{"expression":{"id":36100,"name":"poolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35988,"src":"7586:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":36101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7597:7:38","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":38201,"src":"7586:18:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36098,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35952,"src":"7568:8:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7577:8:38","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"7568:17:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7568:37:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7553:52:38"},{"assignments":[36105],"declarations":[{"constant":false,"id":36105,"mutability":"mutable","name":"deltaL","nameLocation":"7631:6:38","nodeType":"VariableDeclaration","scope":36182,"src":"7623:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36104,"name":"uint256","nodeType":"ElementaryTypeName","src":"7623:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36114,"initialValue":{"arguments":[{"expression":{"id":36111,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35965,"src":"7699:13:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7713:2:38","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":35417,"src":"7699:16:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":36108,"name":"startComputedL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35997,"src":"7674:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36106,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36097,"src":"7660:4:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7665:8:38","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"7660:13:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7660:29:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7690:8:38","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"7660:38:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7660:56:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7623:93:38"},{"expression":{"id":36117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36115,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36105,"src":"7734:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":36116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7744:1:38","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7734:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36118,"nodeType":"ExpressionStatement","src":"7734:11:38"},{"expression":{"id":36126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36119,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"7764:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36121,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7776:2:38","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":35417,"src":"7764:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36122,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35965,"src":"7781:13:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7795:2:38","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":35417,"src":"7781:16:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":36124,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35952,"src":"7800:8:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7781:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7764:44:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36127,"nodeType":"ExpressionStatement","src":"7764:44:38"},{"expression":{"id":36134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36128,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"7826:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7838:1:38","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":35419,"src":"7826:13:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36131,"name":"startComputedL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35997,"src":"7842:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":36132,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36105,"src":"7859:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7842:23:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7826:39:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36135,"nodeType":"ExpressionStatement","src":"7826:39:38"},{"assignments":[36137],"declarations":[{"constant":false,"id":36137,"mutability":"mutable","name":"approxPrice","nameLocation":"7891:11:38","nodeType":"VariableDeclaration","scope":36182,"src":"7883:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36136,"name":"uint256","nodeType":"ElementaryTypeName","src":"7883:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36145,"initialValue":{"arguments":[{"id":36139,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35948,"src":"7941:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":36140,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"7949:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7961:2:38","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":35417,"src":"7949:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":36142,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"7965:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7977:1:38","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":35419,"src":"7965:13:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36138,"name":"getPriceGivenYL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36276,"src":"7925:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":36144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7925:54:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7883:96:38"},{"expression":{"id":36157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36146,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"7998:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8010:2:38","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":35415,"src":"7998:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":36150,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35948,"src":"8052:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":36151,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"8060:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36152,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8072:2:38","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":35417,"src":"8060:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":36153,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"8076:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36154,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8088:1:38","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":35419,"src":"8076:13:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36155,"name":"approxPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36137,"src":"8091:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36149,"name":"getNextReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35892,"src":"8015:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256) view returns (uint256)"}},"id":36156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8015:105:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7998:122:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36158,"nodeType":"ExpressionStatement","src":"7998:122:38"},{"expression":{"id":36163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36159,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"8138:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8150:2:38","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":35415,"src":"8138:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":36162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8156:1:38","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8138:19:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36164,"nodeType":"ExpressionStatement","src":"8138:19:38"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36166,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"8205:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8217:2:38","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":35415,"src":"8205:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":36168,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35965,"src":"8222:13:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8236:2:38","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":35415,"src":"8222:16:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8205:33:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420737761703a2078207265736572766520696e6372656173656421","id":36171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8260:36:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_514d494be6a9454d0a2a37289297e85676f782416fcaf712d469af65761b3dd2","typeString":"literal_string \"invalid swap: x reserve increased!\""},"value":"invalid swap: x reserve increased!"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_514d494be6a9454d0a2a37289297e85676f782416fcaf712d469af65761b3dd2","typeString":"literal_string \"invalid swap: x reserve increased!\""}],"id":36165,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8176:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":36172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8176:138:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36173,"nodeType":"ExpressionStatement","src":"8176:138:38"},{"expression":{"id":36180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36174,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35994,"src":"8332:9:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36175,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35965,"src":"8344:13:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8358:2:38","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":35415,"src":"8344:16:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":36177,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"8363:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36178,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8375:2:38","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":35415,"src":"8363:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8344:33:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8332:45:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36181,"nodeType":"ExpressionStatement","src":"8332:45:38"}]},"id":36183,"nodeType":"IfStatement","src":"6659:1733:38","trueBody":{"id":36095,"nodeType":"Block","src":"6672:857:38","statements":[{"assignments":[36010],"declarations":[{"constant":false,"id":36010,"mutability":"mutable","name":"fees","nameLocation":"6698:4:38","nodeType":"VariableDeclaration","scope":36095,"src":"6690:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36009,"name":"uint256","nodeType":"ElementaryTypeName","src":"6690:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36016,"initialValue":{"arguments":[{"expression":{"id":36013,"name":"poolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35988,"src":"6723:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":36014,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6734:7:38","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":38201,"src":"6723:18:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36011,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35952,"src":"6705:8:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6714:8:38","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"6705:17:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6705:37:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6690:52:38"},{"assignments":[36018],"declarations":[{"constant":false,"id":36018,"mutability":"mutable","name":"deltaL","nameLocation":"6768:6:38","nodeType":"VariableDeclaration","scope":36095,"src":"6760:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36017,"name":"uint256","nodeType":"ElementaryTypeName","src":"6760:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36027,"initialValue":{"arguments":[{"expression":{"id":36024,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35965,"src":"6836:13:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6850:2:38","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":35415,"src":"6836:16:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":36021,"name":"startComputedL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35997,"src":"6811:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36019,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36010,"src":"6797:4:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6802:8:38","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"6797:13:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6797:29:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6827:8:38","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"6797:38:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":36026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6797:56:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6760:93:38"},{"expression":{"id":36030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36028,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36018,"src":"6871:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":36029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6881:1:38","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6871:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36031,"nodeType":"ExpressionStatement","src":"6871:11:38"},{"expression":{"id":36039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36032,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"6901:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6913:2:38","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":35415,"src":"6901:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36035,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35965,"src":"6918:13:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6932:2:38","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":35415,"src":"6918:16:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":36037,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35952,"src":"6937:8:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6918:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6901:44:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36040,"nodeType":"ExpressionStatement","src":"6901:44:38"},{"expression":{"id":36047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36041,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"6963:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6975:1:38","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":35419,"src":"6963:13:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36044,"name":"startComputedL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35997,"src":"6979:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":36045,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36018,"src":"6996:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6979:23:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6963:39:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36048,"nodeType":"ExpressionStatement","src":"6963:39:38"},{"assignments":[36050],"declarations":[{"constant":false,"id":36050,"mutability":"mutable","name":"approxPrice","nameLocation":"7028:11:38","nodeType":"VariableDeclaration","scope":36095,"src":"7020:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36049,"name":"uint256","nodeType":"ElementaryTypeName","src":"7020:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36058,"initialValue":{"arguments":[{"id":36052,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35948,"src":"7078:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":36053,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"7086:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36054,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7098:2:38","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":35415,"src":"7086:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":36055,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"7102:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7114:1:38","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":35419,"src":"7102:13:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36051,"name":"getPriceGivenXL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36299,"src":"7062:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":36057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7062:54:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7020:96:38"},{"expression":{"id":36070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36059,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"7135:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36061,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7147:2:38","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":35417,"src":"7135:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":36063,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35948,"src":"7189:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":36064,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"7197:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7209:2:38","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":35415,"src":"7197:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":36066,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"7213:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7225:1:38","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":35419,"src":"7213:13:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36068,"name":"approxPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36050,"src":"7228:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36062,"name":"getNextReserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35945,"src":"7152:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256) view returns (uint256)"}},"id":36069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7152:105:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7135:122:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36071,"nodeType":"ExpressionStatement","src":"7135:122:38"},{"expression":{"id":36076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36072,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"7275:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7287:2:38","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":35417,"src":"7275:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":36075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7293:1:38","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7275:19:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36077,"nodeType":"ExpressionStatement","src":"7275:19:38"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36079,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"7342:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7354:2:38","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":35417,"src":"7342:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":36081,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35965,"src":"7359:13:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7373:2:38","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":35417,"src":"7359:16:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7342:33:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c696420737761703a2079207265736572766520696e6372656173656421","id":36084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7397:36:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_7b18f442edd1b5576f186ab3912f13c7dcc77837218a5f15acc8fa21e9acfdaf","typeString":"literal_string \"invalid swap: y reserve increased!\""},"value":"invalid swap: y reserve increased!"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7b18f442edd1b5576f186ab3912f13c7dcc77837218a5f15acc8fa21e9acfdaf","typeString":"literal_string \"invalid swap: y reserve increased!\""}],"id":36078,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7313:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":36085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7313:138:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36086,"nodeType":"ExpressionStatement","src":"7313:138:38"},{"expression":{"id":36093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36087,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35994,"src":"7469:9:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36088,"name":"startReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35965,"src":"7481:13:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7495:2:38","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":35417,"src":"7481:16:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":36090,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"7500:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7512:2:38","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":35417,"src":"7500:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7481:33:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7469:45:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36094,"nodeType":"ExpressionStatement","src":"7469:45:38"}]}}]},{"assignments":[36186],"declarations":[{"constant":false,"id":36186,"mutability":"mutable","name":"swapData","nameLocation":"8425:8:38","nodeType":"VariableDeclaration","scope":36224,"src":"8412:21:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":36185,"name":"bytes","nodeType":"ElementaryTypeName","src":"8412:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":36196,"initialValue":{"arguments":[{"expression":{"id":36189,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"8459:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8471:2:38","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":35415,"src":"8459:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":36191,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"8475:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8487:2:38","memberName":"ry","nodeType":"MemberAccess","referencedDeclaration":35417,"src":"8475:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":36193,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"8491:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36194,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8503:1:38","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":35419,"src":"8491:13:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":36187,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8448:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":36188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8452:6:38","memberName":"encode","nodeType":"MemberAccess","src":"8448:10:38","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":36195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8448:57:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"8412:93:38"},{"assignments":[36198,null,null,null,null,null],"declarations":[{"constant":false,"id":36198,"mutability":"mutable","name":"valid","nameLocation":"8521:5:38","nodeType":"VariableDeclaration","scope":36224,"src":"8516:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36197,"name":"bool","nodeType":"ElementaryTypeName","src":"8516:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null,null,null,null,null],"id":36210,"initialValue":{"arguments":[{"arguments":[{"id":36205,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8588:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}],"id":36204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8580:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36203,"name":"address","nodeType":"ElementaryTypeName","src":"8580:7:38","typeDescriptions":{}}},"id":36206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8580:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":36207,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35948,"src":"8595:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36208,"name":"swapData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36186,"src":"8603:8:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":36200,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35428,"src":"8557:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":36199,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"8547:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$29839_$","typeString":"type(contract IStrategy)"}},"id":36201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8547:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$29839","typeString":"contract IStrategy"}},"id":36202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8567:12:38","memberName":"validateSwap","nodeType":"MemberAccess","referencedDeclaration":29808,"src":"8547:32:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_int256_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256,bytes memory) view external returns (bool,int256,int256,uint256,uint256,uint256)"}},"id":36209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8547:65:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_int256_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,int256,int256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"8515:97:38"},{"expression":{"components":[{"id":36211,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36198,"src":"8643:5:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":36212,"name":"amountOut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35994,"src":"8662:9:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":36215,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"8739:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8751:2:38","memberName":"rx","nodeType":"MemberAccess","referencedDeclaration":35415,"src":"8739:14:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":36217,"name":"endReserves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35969,"src":"8774:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_Reserves_$35420_memory_ptr","typeString":"struct LogNormalSolver.Reserves memory"}},"id":36218,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8786:1:38","memberName":"L","nodeType":"MemberAccess","referencedDeclaration":35419,"src":"8774:13:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36219,"name":"poolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35988,"src":"8813:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":36213,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"8685:12:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":36214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8698:18:38","memberName":"computePriceGivenX","nodeType":"MemberAccess","referencedDeclaration":39375,"src":"8685:31:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (uint256)"}},"id":36220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["8735:2:38","8771:1:38","8805:6:38"],"names":["rx","L","params"],"nodeType":"FunctionCall","src":"8685:153:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36221,"name":"swapData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36186,"src":"8852:8:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":36222,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8629:241:38","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"functionReturnParameters":35962,"id":36223,"nodeType":"Return","src":"8622:248:38"}]},"documentation":{"id":35946,"nodeType":"StructuredDocumentation","src":"5954:78:38","text":"@dev Estimates a swap's reserves and adjustments and returns its validity."},"functionSelector":"3928ff97","implemented":true,"kind":"function","modifiers":[],"name":"simulateSwap","nameLocation":"6046:12:38","parameters":{"id":35953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35948,"mutability":"mutable","name":"poolId","nameLocation":"6076:6:38","nodeType":"VariableDeclaration","scope":36225,"src":"6068:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35947,"name":"uint256","nodeType":"ElementaryTypeName","src":"6068:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35950,"mutability":"mutable","name":"swapXIn","nameLocation":"6097:7:38","nodeType":"VariableDeclaration","scope":36225,"src":"6092:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35949,"name":"bool","nodeType":"ElementaryTypeName","src":"6092:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":35952,"mutability":"mutable","name":"amountIn","nameLocation":"6122:8:38","nodeType":"VariableDeclaration","scope":36225,"src":"6114:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35951,"name":"uint256","nodeType":"ElementaryTypeName","src":"6114:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6058:78:38"},"returnParameters":{"id":35962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35955,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36225,"src":"6158:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35954,"name":"bool","nodeType":"ElementaryTypeName","src":"6158:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":35957,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36225,"src":"6164:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35956,"name":"uint256","nodeType":"ElementaryTypeName","src":"6164:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35959,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36225,"src":"6173:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35958,"name":"uint256","nodeType":"ElementaryTypeName","src":"6173:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35961,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36225,"src":"6182:12:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":35960,"name":"bytes","nodeType":"ElementaryTypeName","src":"6182:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6157:38:38"},"scope":36460,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":36253,"nodeType":"FunctionDefinition","src":"8964:259:38","nodes":[],"body":{"id":36252,"nodeType":"Block","src":"9067:156:38","nodes":[],"statements":[{"assignments":[36234,null,36236],"declarations":[{"constant":false,"id":36234,"mutability":"mutable","name":"rx","nameLocation":"9086:2:38","nodeType":"VariableDeclaration","scope":36252,"src":"9078:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36233,"name":"uint256","nodeType":"ElementaryTypeName","src":"9078:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":36236,"mutability":"mutable","name":"L","nameLocation":"9099:1:38","nodeType":"VariableDeclaration","scope":36252,"src":"9091:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36235,"name":"uint256","nodeType":"ElementaryTypeName","src":"9091:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36240,"initialValue":{"arguments":[{"id":36238,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36228,"src":"9128:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36237,"name":"getReservesAndLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35557,"src":"9104:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256,uint256)"}},"id":36239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9104:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"9077:58:38"},{"expression":{"id":36250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36241,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36231,"src":"9145:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":36244,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36234,"src":"9185:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36245,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36236,"src":"9189:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":36247,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36228,"src":"9208:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36246,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35460,"src":"9192:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"function (uint256) view returns (struct LogNormal.LogNormalParams memory)"}},"id":36248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9192:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":36242,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"9153:12:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":36243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9166:18:38","memberName":"computePriceGivenX","nodeType":"MemberAccess","referencedDeclaration":39375,"src":"9153:31:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (uint256)"}},"id":36249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9153:63:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9145:71:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36251,"nodeType":"ExpressionStatement","src":"9145:71:38"}]},"documentation":{"id":36226,"nodeType":"StructuredDocumentation","src":"8883:76:38","text":"@dev Computes the internal price using this strategie's slot parameters."},"functionSelector":"3b4d1030","implemented":true,"kind":"function","modifiers":[],"name":"internalPrice","nameLocation":"8973:13:38","parameters":{"id":36229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36228,"mutability":"mutable","name":"poolId","nameLocation":"8995:6:38","nodeType":"VariableDeclaration","scope":36253,"src":"8987:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36227,"name":"uint256","nodeType":"ElementaryTypeName","src":"8987:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8986:16:38"},"returnParameters":{"id":36232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36231,"mutability":"mutable","name":"price","nameLocation":"9056:5:38","nodeType":"VariableDeclaration","scope":36253,"src":"9048:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36230,"name":"uint256","nodeType":"ElementaryTypeName","src":"9048:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9047:15:38"},"scope":36460,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":36276,"nodeType":"FunctionDefinition","src":"9229:218:38","nodes":[],"body":{"id":36275,"nodeType":"Block","src":"9359:88:38","nodes":[],"statements":[{"expression":{"id":36273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36264,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36262,"src":"9369:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":36267,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36257,"src":"9409:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36268,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36259,"src":"9413:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":36270,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36255,"src":"9432:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36269,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35460,"src":"9416:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"function (uint256) view returns (struct LogNormal.LogNormalParams memory)"}},"id":36271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9416:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":36265,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"9377:12:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":36266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9390:18:38","memberName":"computePriceGivenY","nodeType":"MemberAccess","referencedDeclaration":39494,"src":"9377:31:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (uint256)"}},"id":36272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9377:63:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9369:71:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36274,"nodeType":"ExpressionStatement","src":"9369:71:38"}]},"functionSelector":"4e817fd9","implemented":true,"kind":"function","modifiers":[],"name":"getPriceGivenYL","nameLocation":"9238:15:38","parameters":{"id":36260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36255,"mutability":"mutable","name":"poolId","nameLocation":"9271:6:38","nodeType":"VariableDeclaration","scope":36276,"src":"9263:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36254,"name":"uint256","nodeType":"ElementaryTypeName","src":"9263:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36257,"mutability":"mutable","name":"ry","nameLocation":"9295:2:38","nodeType":"VariableDeclaration","scope":36276,"src":"9287:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36256,"name":"uint256","nodeType":"ElementaryTypeName","src":"9287:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36259,"mutability":"mutable","name":"L","nameLocation":"9315:1:38","nodeType":"VariableDeclaration","scope":36276,"src":"9307:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36258,"name":"uint256","nodeType":"ElementaryTypeName","src":"9307:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9253:69:38"},"returnParameters":{"id":36263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36262,"mutability":"mutable","name":"price","nameLocation":"9352:5:38","nodeType":"VariableDeclaration","scope":36276,"src":"9344:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36261,"name":"uint256","nodeType":"ElementaryTypeName","src":"9344:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9343:15:38"},"scope":36460,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":36299,"nodeType":"FunctionDefinition","src":"9453:218:38","nodes":[],"body":{"id":36298,"nodeType":"Block","src":"9583:88:38","nodes":[],"statements":[{"expression":{"id":36296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36287,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36285,"src":"9593:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":36290,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36280,"src":"9633:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36291,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36282,"src":"9637:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":36293,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36278,"src":"9656:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36292,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35460,"src":"9640:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"function (uint256) view returns (struct LogNormal.LogNormalParams memory)"}},"id":36294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9640:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":36288,"name":"LogNormalLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39517,"src":"9601:12:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormalLib_$39517_$","typeString":"type(library LogNormalLib)"}},"id":36289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9614:18:38","memberName":"computePriceGivenX","nodeType":"MemberAccess","referencedDeclaration":39375,"src":"9601:31:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (uint256)"}},"id":36295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9601:63:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9593:71:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36297,"nodeType":"ExpressionStatement","src":"9593:71:38"}]},"functionSelector":"1e978cb0","implemented":true,"kind":"function","modifiers":[],"name":"getPriceGivenXL","nameLocation":"9462:15:38","parameters":{"id":36283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36278,"mutability":"mutable","name":"poolId","nameLocation":"9495:6:38","nodeType":"VariableDeclaration","scope":36299,"src":"9487:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36277,"name":"uint256","nodeType":"ElementaryTypeName","src":"9487:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36280,"mutability":"mutable","name":"rx","nameLocation":"9519:2:38","nodeType":"VariableDeclaration","scope":36299,"src":"9511:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36279,"name":"uint256","nodeType":"ElementaryTypeName","src":"9511:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36282,"mutability":"mutable","name":"L","nameLocation":"9539:1:38","nodeType":"VariableDeclaration","scope":36299,"src":"9531:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36281,"name":"uint256","nodeType":"ElementaryTypeName","src":"9531:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9477:69:38"},"returnParameters":{"id":36286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36285,"mutability":"mutable","name":"price","nameLocation":"9576:5:38","nodeType":"VariableDeclaration","scope":36299,"src":"9568:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36284,"name":"uint256","nodeType":"ElementaryTypeName","src":"9568:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9567:15:38"},"scope":36460,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":36339,"nodeType":"FunctionDefinition","src":"9677:337:38","nodes":[],"body":{"id":36338,"nodeType":"Block","src":"9802:212:38","nodes":[],"statements":[{"assignments":[36314],"declarations":[{"constant":false,"id":36314,"mutability":"mutable","name":"params","nameLocation":"9845:6:38","nodeType":"VariableDeclaration","scope":36338,"src":"9812:39:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":36313,"nodeType":"UserDefinedTypeName","pathNode":{"id":36312,"name":"LogNormal.LogNormalParams","nameLocations":["9812:9:38","9822:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"9812:25:38"},"referencedDeclaration":38204,"src":"9812:25:38","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"id":36318,"initialValue":{"arguments":[{"id":36316,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36301,"src":"9870:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36315,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35460,"src":"9854:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"function (uint256) view returns (struct LogNormal.LogNormalParams memory)"}},"id":36317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9854:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"nodeType":"VariableDeclarationStatement","src":"9812:65:38"},{"assignments":[36320,36322,36324],"declarations":[{"constant":false,"id":36320,"mutability":"mutable","name":"rx","nameLocation":"9896:2:38","nodeType":"VariableDeclaration","scope":36338,"src":"9888:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36319,"name":"uint256","nodeType":"ElementaryTypeName","src":"9888:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36322,"mutability":"mutable","name":"ry","nameLocation":"9908:2:38","nodeType":"VariableDeclaration","scope":36338,"src":"9900:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36321,"name":"uint256","nodeType":"ElementaryTypeName","src":"9900:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36324,"mutability":"mutable","name":"L","nameLocation":"9920:1:38","nodeType":"VariableDeclaration","scope":36338,"src":"9912:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36323,"name":"uint256","nodeType":"ElementaryTypeName","src":"9912:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36328,"initialValue":{"arguments":[{"id":36326,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36301,"src":"9949:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36325,"name":"getReservesAndLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35557,"src":"9925:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256,uint256)"}},"id":36327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9925:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"9887:69:38"},{"expression":{"arguments":[{"id":36330,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36303,"src":"9983:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36331,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36320,"src":"9986:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36332,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36322,"src":"9990:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36333,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36324,"src":"9994:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36334,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36305,"src":"9997:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36335,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36314,"src":"10000:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"id":36329,"name":"diffLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34961,"src":"9973:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":36336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9973:34:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":36309,"id":36337,"nodeType":"Return","src":"9966:41:38"}]},"functionSelector":"332266f3","implemented":true,"kind":"function","modifiers":[],"name":"calculateDiffLower","nameLocation":"9686:18:38","parameters":{"id":36306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36301,"mutability":"mutable","name":"poolId","nameLocation":"9722:6:38","nodeType":"VariableDeclaration","scope":36339,"src":"9714:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36300,"name":"uint256","nodeType":"ElementaryTypeName","src":"9714:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36303,"mutability":"mutable","name":"S","nameLocation":"9746:1:38","nodeType":"VariableDeclaration","scope":36339,"src":"9738:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36302,"name":"uint256","nodeType":"ElementaryTypeName","src":"9738:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36305,"mutability":"mutable","name":"v","nameLocation":"9765:1:38","nodeType":"VariableDeclaration","scope":36339,"src":"9757:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36304,"name":"uint256","nodeType":"ElementaryTypeName","src":"9757:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9704:68:38"},"returnParameters":{"id":36309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36308,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36339,"src":"9794:6:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":36307,"name":"int256","nodeType":"ElementaryTypeName","src":"9794:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9793:8:38"},"scope":36460,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":36379,"nodeType":"FunctionDefinition","src":"10020:337:38","nodes":[],"body":{"id":36378,"nodeType":"Block","src":"10145:212:38","nodes":[],"statements":[{"assignments":[36354],"declarations":[{"constant":false,"id":36354,"mutability":"mutable","name":"params","nameLocation":"10188:6:38","nodeType":"VariableDeclaration","scope":36378,"src":"10155:39:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":36353,"nodeType":"UserDefinedTypeName","pathNode":{"id":36352,"name":"LogNormal.LogNormalParams","nameLocations":["10155:9:38","10165:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"10155:25:38"},"referencedDeclaration":38204,"src":"10155:25:38","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"id":36358,"initialValue":{"arguments":[{"id":36356,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36341,"src":"10213:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36355,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35460,"src":"10197:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"function (uint256) view returns (struct LogNormal.LogNormalParams memory)"}},"id":36357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10197:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10155:65:38"},{"assignments":[36360,36362,36364],"declarations":[{"constant":false,"id":36360,"mutability":"mutable","name":"rx","nameLocation":"10239:2:38","nodeType":"VariableDeclaration","scope":36378,"src":"10231:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36359,"name":"uint256","nodeType":"ElementaryTypeName","src":"10231:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36362,"mutability":"mutable","name":"ry","nameLocation":"10251:2:38","nodeType":"VariableDeclaration","scope":36378,"src":"10243:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36361,"name":"uint256","nodeType":"ElementaryTypeName","src":"10243:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36364,"mutability":"mutable","name":"L","nameLocation":"10263:1:38","nodeType":"VariableDeclaration","scope":36378,"src":"10255:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36363,"name":"uint256","nodeType":"ElementaryTypeName","src":"10255:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36368,"initialValue":{"arguments":[{"id":36366,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36341,"src":"10292:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36365,"name":"getReservesAndLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35557,"src":"10268:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256,uint256)"}},"id":36367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10268:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"10230:69:38"},{"expression":{"arguments":[{"id":36370,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36343,"src":"10326:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36371,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36360,"src":"10329:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36372,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36362,"src":"10333:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36373,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36364,"src":"10337:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36374,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36345,"src":"10340:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36375,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36354,"src":"10343:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"id":36369,"name":"diffRaise","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35266,"src":"10316:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (int256)"}},"id":36376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10316:34:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":36349,"id":36377,"nodeType":"Return","src":"10309:41:38"}]},"functionSelector":"902ecaa2","implemented":true,"kind":"function","modifiers":[],"name":"calculateDiffRaise","nameLocation":"10029:18:38","parameters":{"id":36346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36341,"mutability":"mutable","name":"poolId","nameLocation":"10065:6:38","nodeType":"VariableDeclaration","scope":36379,"src":"10057:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36340,"name":"uint256","nodeType":"ElementaryTypeName","src":"10057:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36343,"mutability":"mutable","name":"S","nameLocation":"10089:1:38","nodeType":"VariableDeclaration","scope":36379,"src":"10081:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36342,"name":"uint256","nodeType":"ElementaryTypeName","src":"10081:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36345,"mutability":"mutable","name":"v","nameLocation":"10108:1:38","nodeType":"VariableDeclaration","scope":36379,"src":"10100:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36344,"name":"uint256","nodeType":"ElementaryTypeName","src":"10100:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10047:68:38"},"returnParameters":{"id":36349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36348,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36379,"src":"10137:6:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":36347,"name":"int256","nodeType":"ElementaryTypeName","src":"10137:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"10136:8:38"},"scope":36460,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":36419,"nodeType":"FunctionDefinition","src":"10363:367:38","nodes":[],"body":{"id":36418,"nodeType":"Block","src":"10503:227:38","nodes":[],"statements":[{"assignments":[36394],"declarations":[{"constant":false,"id":36394,"mutability":"mutable","name":"params","nameLocation":"10546:6:38","nodeType":"VariableDeclaration","scope":36418,"src":"10513:39:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":36393,"nodeType":"UserDefinedTypeName","pathNode":{"id":36392,"name":"LogNormal.LogNormalParams","nameLocations":["10513:9:38","10523:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"10513:25:38"},"referencedDeclaration":38204,"src":"10513:25:38","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"id":36398,"initialValue":{"arguments":[{"id":36396,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36381,"src":"10571:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36395,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35460,"src":"10555:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"function (uint256) view returns (struct LogNormal.LogNormalParams memory)"}},"id":36397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10555:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10513:65:38"},{"assignments":[36400,36402,36404],"declarations":[{"constant":false,"id":36400,"mutability":"mutable","name":"rx","nameLocation":"10597:2:38","nodeType":"VariableDeclaration","scope":36418,"src":"10589:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36399,"name":"uint256","nodeType":"ElementaryTypeName","src":"10589:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36402,"mutability":"mutable","name":"ry","nameLocation":"10609:2:38","nodeType":"VariableDeclaration","scope":36418,"src":"10601:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36401,"name":"uint256","nodeType":"ElementaryTypeName","src":"10601:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36404,"mutability":"mutable","name":"L","nameLocation":"10621:1:38","nodeType":"VariableDeclaration","scope":36418,"src":"10613:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36403,"name":"uint256","nodeType":"ElementaryTypeName","src":"10613:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36408,"initialValue":{"arguments":[{"id":36406,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36381,"src":"10650:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36405,"name":"getReservesAndLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35557,"src":"10626:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256,uint256)"}},"id":36407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10626:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"10588:69:38"},{"expression":{"arguments":[{"id":36410,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36383,"src":"10694:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36411,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36400,"src":"10697:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36412,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36402,"src":"10701:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36413,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36404,"src":"10705:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36414,"name":"vUpper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36385,"src":"10708:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36415,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36394,"src":"10716:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"id":36409,"name":"computeOptimalLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35332,"src":"10674:19:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (uint256)"}},"id":36416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10674:49:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":36389,"id":36417,"nodeType":"Return","src":"10667:56:38"}]},"functionSelector":"306db46b","implemented":true,"kind":"function","modifiers":[],"name":"computeOptimalArbLowerPrice","nameLocation":"10372:27:38","parameters":{"id":36386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36381,"mutability":"mutable","name":"poolId","nameLocation":"10417:6:38","nodeType":"VariableDeclaration","scope":36419,"src":"10409:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36380,"name":"uint256","nodeType":"ElementaryTypeName","src":"10409:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36383,"mutability":"mutable","name":"S","nameLocation":"10441:1:38","nodeType":"VariableDeclaration","scope":36419,"src":"10433:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36382,"name":"uint256","nodeType":"ElementaryTypeName","src":"10433:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36385,"mutability":"mutable","name":"vUpper","nameLocation":"10460:6:38","nodeType":"VariableDeclaration","scope":36419,"src":"10452:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36384,"name":"uint256","nodeType":"ElementaryTypeName","src":"10452:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10399:73:38"},"returnParameters":{"id":36389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36388,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36419,"src":"10494:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36387,"name":"uint256","nodeType":"ElementaryTypeName","src":"10494:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10493:9:38"},"scope":36460,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":36459,"nodeType":"FunctionDefinition","src":"10736:367:38","nodes":[],"body":{"id":36458,"nodeType":"Block","src":"10876:227:38","nodes":[],"statements":[{"assignments":[36434],"declarations":[{"constant":false,"id":36434,"mutability":"mutable","name":"params","nameLocation":"10919:6:38","nodeType":"VariableDeclaration","scope":36458,"src":"10886:39:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":36433,"nodeType":"UserDefinedTypeName","pathNode":{"id":36432,"name":"LogNormal.LogNormalParams","nameLocations":["10886:9:38","10896:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"10886:25:38"},"referencedDeclaration":38204,"src":"10886:25:38","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"id":36438,"initialValue":{"arguments":[{"id":36436,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36421,"src":"10944:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36435,"name":"fetchPoolParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35460,"src":"10928:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"function (uint256) view returns (struct LogNormal.LogNormalParams memory)"}},"id":36437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10928:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10886:65:38"},{"assignments":[36440,36442,36444],"declarations":[{"constant":false,"id":36440,"mutability":"mutable","name":"rx","nameLocation":"10970:2:38","nodeType":"VariableDeclaration","scope":36458,"src":"10962:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36439,"name":"uint256","nodeType":"ElementaryTypeName","src":"10962:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36442,"mutability":"mutable","name":"ry","nameLocation":"10982:2:38","nodeType":"VariableDeclaration","scope":36458,"src":"10974:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36441,"name":"uint256","nodeType":"ElementaryTypeName","src":"10974:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36444,"mutability":"mutable","name":"L","nameLocation":"10994:1:38","nodeType":"VariableDeclaration","scope":36458,"src":"10986:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36443,"name":"uint256","nodeType":"ElementaryTypeName","src":"10986:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36448,"initialValue":{"arguments":[{"id":36446,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36421,"src":"11023:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36445,"name":"getReservesAndLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35557,"src":"10999:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view returns (uint256,uint256,uint256)"}},"id":36447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10999:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"10961:69:38"},{"expression":{"arguments":[{"id":36450,"name":"S","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36423,"src":"11067:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36451,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36440,"src":"11070:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36452,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36442,"src":"11074:2:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36453,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36444,"src":"11078:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36454,"name":"vUpper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36425,"src":"11081:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":36455,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36434,"src":"11089:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"id":36449,"name":"computeOptimalRaise","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35398,"src":"11047:19:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (uint256)"}},"id":36456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11047:49:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":36429,"id":36457,"nodeType":"Return","src":"11040:56:38"}]},"functionSelector":"4fd67c58","implemented":true,"kind":"function","modifiers":[],"name":"computeOptimalArbRaisePrice","nameLocation":"10745:27:38","parameters":{"id":36426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36421,"mutability":"mutable","name":"poolId","nameLocation":"10790:6:38","nodeType":"VariableDeclaration","scope":36459,"src":"10782:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36420,"name":"uint256","nodeType":"ElementaryTypeName","src":"10782:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36423,"mutability":"mutable","name":"S","nameLocation":"10814:1:38","nodeType":"VariableDeclaration","scope":36459,"src":"10806:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36422,"name":"uint256","nodeType":"ElementaryTypeName","src":"10806:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36425,"mutability":"mutable","name":"vUpper","nameLocation":"10833:6:38","nodeType":"VariableDeclaration","scope":36459,"src":"10825:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36424,"name":"uint256","nodeType":"ElementaryTypeName","src":"10825:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10772:73:38"},"returnParameters":{"id":36429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36428,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36459,"src":"10867:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36427,"name":"uint256","nodeType":"ElementaryTypeName","src":"10867:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10866:9:38"},"scope":36460,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"LogNormalSolver","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"internalFunctionIDs":{"34144":1,"34184":2,"34224":3,"34631":4,"34677":5},"linearizedBaseContracts":[36460],"name":"LogNormalSolver","nameLocation":"288:15:38","scope":36461,"usedErrors":[26761,26763,26765,27736,30985,30992],"usedEvents":[]}],"license":"GPL-3.0-or-later"},"id":38} \ No newline at end of file diff --git a/out/LogNormalTest.t.sol/LogNormalTest.json b/out/LogNormalTest.t.sol/LogNormalTest.json deleted file mode 100644 index 0074f384..00000000 --- a/out/LogNormalTest.t.sol/LogNormalTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"TEST_SWAP_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_ln_diff_lower","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_ln_diff_raise","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_ln_optimal_lower","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_ln_optimal_raise","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_ln_swap_x_in","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_ln_swap_y_in","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_price_formulas","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523461002357600160ff19600054161760005561b79990816100298239f35b600080fdfe60806040818152600491823610156200001757600080fd5b600092833560e01c9182630a9254e41462001630575081632c10d860146200105d57816331fa62fb1462000e39578163620a26071462000e15578163622912c11462000bf157816372a952551462000995578163849ff8871462000758578163ba414fa6146200072e578163e3d575ce1462000446578163e82984c314620000d0575063fa7626d414620000aa57600080fd5b34620000cc5781600319360112620000cc5760ff602092541690519015158152f35b5080fd5b905034620004385782600319360112620004385782737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620000cc5781809160248651809481936372eb5f8160e11b835281898401525af180156200043c5762000420575b505081516200013a8162001ac2565b671bc16d674ec80000815260206703782dace9d9000081830152670de0b6b3a764000084830152660aa87bee538000606083015284608083015284620001a18160018060a01b03948560155416885180809581946309a7568960e11b83528b830162001c03565b03915afa90811562000416576080916200020d918491620003ef575b5085601454169086601654168760175416908a5193620001dd8562001adf565b84528784015289830152606082015285601354169088519485809481936305157c7f60e21b83528b830162001ca7565b03925af18015620003e557620003ae575b50816013541691845163057ff68760e51b815282818681875afa928315620003a457879362000369575b50506000198201918211620003565791606493918680879560155416865197888092633928ff9760e01b825286898301526001602483015267016345785d8a000060448301525afa9384156200034a57620002cd9682956200031d575b5085519687958694859363bd0625ab60e01b8552840152876024840152604483019062001c80565b03925af180156200031157620002e1578280f35b816200030592903d1062000309575b620002fc818362001b19565b81019062001d53565b8280f35b503d620002f0565b505051903d90823e3d90fd5b6200033e9195503d8084833e62000335818362001b19565b81019062001d0e565b925050509338620002a5565b508451903d90823e3d90fd5b634e487b7160e01b865260118452602486fd5b9080929350813d83116200039c575b62000384818362001b19565b8101031262000397575190388062000248565b600080fd5b503d62000378565b86513d89823e3d90fd5b620003d49060803d608011620003dd575b620003cb818362001b19565b81019062001c5d565b5050506200021e565b503d620003bf565b85513d88823e3d90fd5b6200040f91503d8086833e62000406818362001b19565b81019062001bd9565b38620001bd565b86513d84823e3d90fd5b6200042b9062001a97565b620004385782386200012b565b8280fd5b84513d84823e3d90fd5b91905034620004385782600319360112620004385782737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620000cc5781809160248551809481936372eb5f8160e11b8352818a8401525af1801562000724576200070c575b50508051620004b18162001ac2565b671bc16d674ec8000081526020906703782dace9d9000082820152670de0b6b3a764000083820152660aa87bee538000606082015284608082015284620005198160018060a01b03938460155416875180809581946309a7568960e11b83528c830162001c03565b03915afa908115620007025760809162000585918491620006e4575b508460145416908560165416866017541690895193620005558562001adf565b84528884015288830152606082015284601354169087519485809481936305157c7f60e21b83528c830162001ca7565b03925af18015620006b55790859291620006bf575b5082816013541685519384809263057ff68760e51b82525afa918215620006b557869262000680575b5060001982019182116200066d5790606483926015541695855196879384926309facf8b60e31b8452830152671d24b2dfac52000060248301526704ca3d8da418400060448301525afa91821562000664575083916200062d575b836200062a8362001eb2565b80f35b905081813d83116200065c575b62000646818362001b19565b8101031262000397576200062a9051386200061e565b503d6200063a565b513d85823e3d90fd5b634e487b7160e01b865260118552602486fd5b9091508281813d8311620006ad575b6200069b818362001b19565b810103126200039757519038620005c3565b503d6200068f565b84513d88823e3d90fd5b620006db9060803d608011620003dd57620003cb818362001b19565b5050506200059a565b620006fb91503d8086833e62000406818362001b19565b3862000535565b85513d84823e3d90fd5b620007179062001a97565b62000438578238620004a2565b83513d84823e3d90fd5b505034620000cc5781600319360112620000cc576020906200074f62001d9f565b90519015158152f35b905034620004385782600319360112620004385782737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620000cc5781809160248651809481936372eb5f8160e11b835281898401525af180156200043c576200097d575b50508151620007c28162001ac2565b671bc16d674ec80000815260206703782dace9d9000081830152670de0b6b3a764000084830152660aa87bee538000606083015284608083015284620008298160018060a01b03948560155416885180809581946309a7568960e11b83528b830162001c03565b03915afa908115620004165760809162000864918491620003ef575085601454169086601654168760175416908a5193620001dd8562001adf565b03925af18015620003e55762000958575b50816013541691845163057ff68760e51b815282818681875afa928315620003a457879362000922575b50506000198201918211620003565791606493918680879560155416865197888092633928ff9760e01b8252868983015284602483015267016345785d8a000060448301525afa9384156200034a57620002cd9682956200031d575085519687958694859363bd0625ab60e01b8552840152876024840152604483019062001c80565b9080929350813d831162000950575b6200093d818362001b19565b810103126200039757519038806200089f565b503d62000931565b620009749060803d608011620003dd57620003cb818362001b19565b50505062000875565b620009889062001a97565b62000438578238620007b3565b91905034620004385782600319360112620004385782737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620000cc5781809160248551809481936372eb5f8160e11b8352818a8401525af18015620007245762000bd9575b5050805162000a008162001ac2565b671bc16d674ec8000081526020906703782dace9d9000082820152670de0b6b3a764000083820152660aa87bee53800060608201528460808201528462000a688160018060a01b03938460155416875180809581946309a7568960e11b83528c830162001c03565b03915afa908115620007025760809162000aa3918491620006e457508460145416908560165416866017541690895193620005558562001adf565b03925af18015620006b5579085929162000bb4575b5082816013541685519384809263057ff68760e51b82525afa918215620006b557869262000b7f575b5060001982019182116200066d579060648392601554169585519687938492634817655160e11b8452830152671d24b2dfac52000060248301526704339affcae21b8360448301525afa918215620006645750839162000b48575b836200062a8362001e75565b905081813d831162000b77575b62000b61818362001b19565b8101031262000397576200062a90513862000b3c565b503d62000b55565b9091508281813d831162000bac575b62000b9a818362001b19565b81010312620003975751903862000ae1565b503d62000b8e565b62000bd09060803d608011620003dd57620003cb818362001b19565b50505062000ab8565b62000be49062001a97565b62000438578238620009f1565b91905034620004385782600319360112620004385782737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620000cc5781809160248551809481936372eb5f8160e11b8352818a8401525af18015620007245762000dfd575b5050805162000c5c8162001ac2565b671bc16d674ec8000081526020906703782dace9d9000082820152670de0b6b3a764000083820152660aa87bee53800060608201528460808201528462000cc48160018060a01b03938460155416875180809581946309a7568960e11b83528c830162001c03565b03915afa908115620007025760809162000cff918491620006e457508460145416908560165416866017541690895193620005558562001adf565b03925af18015620006b5579085929162000dd8575b5082816013541685519384809263057ff68760e51b82525afa918215620006b557869262000da3575b5060001982019182116200066d57906064839260155416958551968793849263306db46b60e01b8452830152671a5e27eef13e000060248301526702848c2ab1bb000060448301525afa91821562000664575083916200062d57836200062a8362001eb2565b9091508281813d831162000dd0575b62000dbe818362001b19565b81010312620003975751903862000d3d565b503d62000db2565b62000df49060803d608011620003dd57620003cb818362001b19565b50505062000d14565b62000e089062001a97565b6200043857823862000c4d565b505034620000cc5781600319360112620000cc5760209051660aa87bee5380008152f35b91905034620004385782600319360112620004385782737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620000cc5781809160248551809481936372eb5f8160e11b8352818a8401525af18015620007245762001045575b5050805162000ea48162001ac2565b671bc16d674ec8000081526020906703782dace9d9000082820152670de0b6b3a764000083820152660aa87bee53800060608201528460808201528462000f0c8160018060a01b03938460155416875180809581946309a7568960e11b83528c830162001c03565b03915afa908115620007025760809162000f47918491620006e457508460145416908560165416866017541690895193620005558562001adf565b03925af18015620006b5579085929162001020575b5082816013541685519384809263057ff68760e51b82525afa918215620006b557869262000feb575b5060001982019182116200066d57906064839260155416958551968793849263332266f360e01b8452830152671a5e27eef13e0000602483015267023951cb4bf49f4760448301525afa918215620006645750839162000b4857836200062a8362001e75565b9091508281813d831162001018575b62001006818362001b19565b81010312620003975751903862000f85565b503d62000ffa565b6200103c9060803d608011620003dd57620003cb818362001b19565b50505062000f5c565b620010509062001a97565b6200043857823862000e95565b83915034620000cc5781600319360112620000cc57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620004385783516372eb5f8160e11b8152828101849052838160248183865af1801562001626579084916200160e575b5050835193620010ca8562001ac2565b671bc16d674ec8000085526020926703782dace9d9000084870152670de0b6b3a764000082870152606090660aa87bee5380008288015260808681890152620011348760018060a01b03998a60155416875180809581946309a7568960e11b835289830162001c03565b03915afa908115620015c3576200119f899284928491620015f0575b508b60145416908c601654168d60175416908a5193620011708562001adf565b84528c84015289830152878201528b601354169088519485809481936305157c7f60e21b83528a830162001ca7565b03925af18015620015c357620015cd575b508186896013541686519283809263057ff68760e51b82525afa908115620015c357889162001590575b5060001981019081116200157d57879860155416908551916333854efd60e21b835281858401528583602481845afa91821562001573578a908a8c958d956200152a575b508951634e817fd960e01b815288810183815260208101979097526040870186905295869081906060015b0381865afa94851562001520578c95620014dd575b5088516301e978cb60e41b8152878101918252602082019290925260408101939093529189918391829081906060015b03915afa908115620014d35789916200149c575b50808211156200148957620012b8818362001cea565b905b60648211620012c7578980f35b8380937f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50828c60228c51918083528201527f4572726f723a2061207e3d2062206e6f7420736174697366696564205b75696e8c82015261745d60f01b8b820152a1885192898452600a8a850152690808115e1c1958dd195960b21b898501528b8401527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a880968194a1885190898252600a8a83015269080808081058dd1d585b60b21b898301528b820152a182828751888152600a8982015269204d61782044656c746160b01b8882015260648b820152a1855190868252600a8783015269202020202044656c746160b01b8683015288820152a1833b62001405575b50505050505061010061ff0019825416178155808280808080808080808980f35b6200146d60246200145d9288978895875197828901918a83526519985a5b195960d21b828b01526001818b015289526200143f8962001adf565b519586928301986370ca10bb60e01b8a525180928685019062001b67565b8101039081018452018262001b19565b51925af1506200147c62001d6a565b50808280808080620013e4565b62001495828262001cea565b90620012ba565b809950888092503d8311620014cb575b620014b8818362001b19565b8101031262000397578897518a620012a2565b503d620014ac565b86513d8b823e3d90fd5b929b509350918982813d811162001518575b620014fb818362001b19565b81010312620003975790518b9a9093919290916200128e6200125e565b503d620014ef565b89513d8e823e3d90fd5b9550509250508583813d83116200156b575b62001548818362001b19565b81010312620015675782518984015193880151928a620012496200121e565b8980fd5b503d6200153c565b87513d8c823e3d90fd5b634e487b7160e01b885260118352602488fd5b90508681813d8311620015bb575b620015aa818362001b19565b8101031262000397575189620011da565b503d6200159e565b85513d8a823e3d90fd5b620015e790823d8411620003dd57620003cb818362001b19565b505050620011b0565b6200160791503d8086833e62000406818362001b19565b8c62001150565b620016199062001a97565b62000438578285620010ba565b85513d86823e3d90fd5b9150913462001a4b578360031936011262001a4b5761106b928383019267ffffffffffffffff948185108686111762001a845762001edd91818382396060865260066060870152650e8ded6cadcb60d31b608087015260e08160209760a089820152600160a0820152600b60fb1b60c082015260128882015203019088f0908115620019e55760018060a01b0392836bffffffffffffffffffffffff60a01b9316836016541617601655855191808301918383108a84111762001a715791839160e0938339606081526006606082015265746f6b656e5960d01b608082015260a089820152600160a0820152605960f81b60c082015260128882015203019088f08015620019e5578216816017541617601755816016541695863b1562001a3d5784516340c10f1960e01b80825230868301526a52b7d2dcc80cd2e4000000918a8160249b858d83015281835a92604493f1801562001a675762001a4f575b50908991856017541690813b1562001a4b5760448b918580948c51968795869485528d30908601528401525af1801562001a415762001a25575b5050826016541683601754169086519161059791828401928484108685111762001a0157916060939185936200b1cd853982528a820152670de0b6b3a76400008982015203019089f08015620015c35783168260185416176018558451612f21808201908282108483111762001a13578891839162002f4883398b815203019089f08015620015c35783166013548184821617601355865191611bc491828401928484108685111762001a0157918c8b949286946200960986391617815203019089f08015620015c3578316906014549180848416176014558651926137a08085019385851090851117620019ef57918b8a9492869462005e6986391617815203019088f08015620019e55790828794939216906015541617601555868160165416918187826013541694604489518094819363095ea7b360e01b998a84528b840152600019809c8401525af18015620019db579088959493929162001998575b506044939495816017541691601354169988519a8b97889687528601528401525af19081156200066457506200195e578280f35b81813d831162001990575b62001975818362001b19565b81010312620000cc57620019899062001b3c565b5038808280f35b503d62001969565b939484813d8311620019d3575b620019b1818362001b19565b81010312620000cc578795620019c960449562001b3c565b509594936200192a565b503d620019a5565b87513d85823e3d90fd5b84513d89823e3d90fd5b634e487b7160e01b8c52604188528a8cfd5b634e487b7160e01b8d52604189528b8dfd5b634e487b7160e01b8b5260418752898bfd5b62001a309062001a97565b62001a3d578738620017c9565b8780fd5b87513d84823e3d90fd5b8380fd5b62001a5e909a91929a62001a97565b9890386200178f565b88513d8d823e3d90fd5b634e487b7160e01b8b526041875260248bfd5b634e487b7160e01b875260418352602487fd5b67ffffffffffffffff811162001aac57604052565b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111762001aac57604052565b6080810190811067ffffffffffffffff82111762001aac57604052565b6060810190811067ffffffffffffffff82111762001aac57604052565b90601f8019910116810190811067ffffffffffffffff82111762001aac57604052565b519081151582036200039757565b67ffffffffffffffff811162001aac57601f01601f191660200190565b60005b83811062001b7b5750506000910152565b818101518382015260200162001b6a565b81601f820112156200039757805162001ba58162001b4a565b9262001bb5604051948562001b19565b81845260208284010111620003975762001bd6916020808501910162001b67565b90565b906020828203126200039757815167ffffffffffffffff8111620003975762001bd6920162001b8c565b91909160c060e0820193670de0b6b3a76400008352671bc16d674ec800006020840152805160408401526020810151606084015260408101516080840152606081015160a0840152608060018060a01b0391015116910152565b919082608091031262000397578151916020810151916060604083015192015190565b9060209162001c9b8151809281855285808601910162001b67565b601f01601f1916010190565b60a0606062001bd69360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062001c80565b9190820391821162001cf857565b634e487b7160e01b600052601160045260246000fd5b90608082820312620003975762001d258262001b3c565b92602083015192604081015192606082015167ffffffffffffffff8111620003975762001bd6920162001b8c565b919082604091031262000397576020825192015190565b3d1562001d9a573d9062001d7e8262001b4a565b9162001d8e604051938462001b19565b82523d6000602084013e565b606090565b6000805460081c60ff161562001db9575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62001ddb57505090565b819250819060405182602082018381526519985a5b195960d21b60408401526040835262001e098362001afc565b62001e456024604051809362001e346020830197630667f9d760e41b89525180928585019062001b67565b810103600481018452018262001b19565b51925af15062001e5462001d6a565b9060208280518101031262001e725750602062001bd6910162001b3c565b80fd5b600080916040516020810191632d5b6cb960e01b835260248201526024815262001e9f8162001afc565b51906a636f6e736f6c652e6c6f675afa50565b60008091604051602081019163f82c50f160e01b835260248201526024815262001e9f8162001afc56fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c634300081600336080346200007a57601f620037a038819003918201601f19168301916001600160401b038311848410176200007f578084926020946040528339810103126200007a57516001600160a01b038116908190036200007a57600080546001600160a01b03191691909117905560405161370a9081620000968239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630420580a146101b7578063120649c5146101b2578063134ead12146101ad5780631e978cb0146101a8578063306db46b146101a3578063332266f31461019e5780633928ff97146101995780633b268d5d146101945780633b4d10301461018f5780634e817fd91461018a5780634fd67c58146101855780635eb408fc146101805780636237569f1461017b5780636d652299146101765780637f17409c1461017157806381b5fac21461016c578063902ecaa214610167578063a8c62e7614610162578063af4e437f1461015d578063b09d04e514610158578063cb1f553214610153578063ce153bf41461014e578063e94716d514610149578063ee3e8cfb14610144578063f30d37f21461013f5763f9c282111461013a57600080fd5b610aff565b610acf565b610a9e565b610a63565b610a27565b6109e2565b6109af565b610993565b61096a565b610941565b610914565b610872565b610856565b6107e9565b6107cd565b6107a4565b610788565b610759565b61071e565b61048d565b610436565b610407565b6103e2565b610354565b61028e565b610218565b60005b8381106101cf5750506000910152565b81810151838201526020016101bf565b906020916101f8815180928185528580860191016101bc565b601f01601f1916010190565b9060206102159281815201906101df565b90565b3461026b57604036600319011261026b57610267604051600260208201526004356040820152602435606082015260608152610253816102e9565b6040519182916020835260208301906101df565b0390f35b600080fd5b608090600319011261026b5760043590602435906044359060643590565b3461026b5760206102aa6102a136610270565b92919091610b4d565b604051908152f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff8211176102e457604052565b6102b2565b6080810190811067ffffffffffffffff8211176102e457604052565b6060810190811067ffffffffffffffff8211176102e457604052565b90601f8019910116810190811067ffffffffffffffff8211176102e457604052565b6001600160a01b0381160361026b57565b3461026b5760e036600319011261026b5760a036604319011261026b576102676103bc604051610383816102c8565b60443581526064356020820152608435604082015260a435606082015260c4356103ac81610343565b608082015260243560043561139a565b60405191829182610204565b606090600319011261026b57600435906024359060443590565b3461026b5760206102aa6104016103f8366103c8565b91929092610f06565b91611583565b3461026b5760206102aa61041a366103c8565b9061042d61042784610f06565b936110d9565b92919091611670565b3461026b5760206102aa610449366103c8565b9061045661042784610f06565b9290506119da565b8015150361026b57565b90926080926102159594151583526020830152604082015281606082015201906101df565b3461026b57606036600319011261026b5761050360243561061f6004356104b38361045e565b604435926104bf610c57565b936104c8610c57565b946104d2846110d9565b60208496939592960194604096878601928352865284526104f287610f06565b998a9185519087519051918a611009565b921561069657928261054a6105519361054361053e61053661056f9861053160606105979d9c0151866125a2565b6125a2565b8651906125f8565b610c9d565b9351610cb0565b8a52610cb0565b61056385890191808352895188610c4a565b90885190519087610b4d565b9061058e6105836020890193808552610c9d565b808452825111610d31565b51905190610d24565b945b84519260c06020870151848801926105df8451976105d18851998a958693602085016040919493926060820195825260208201520152565b03601f198101845283610321565b600054610602906105f6906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610dbf565b03915afa94851561069157600095610651575b509061064691610267959651905190611583565b905194859485610468565b61026795509061067c610646939260c03d60c01161068a575b6106748183610321565b810190610d88565b505050505095509091610632565b503d61066a565b610b41565b826106df610718966106d2610704956106cb61053e6106c361070f9a61053160606106fc9b0151866125a2565b8551906125f8565b9251610cb0565b9260208d01938452610cb0565b6106f1888c019180835283518b610de3565b915190519089610df0565b808952610c9d565b808852825111610cbd565b51855190610d24565b94610599565b3461026b57604036600319011261026b57610267604051600460208201526004356040820152602435606082015260608152610253816102e9565b3461026b57602036600319011261026b5760206102aa60043561040161077e826110d9565b9291939050610f06565b3461026b5760206102aa61079e6103f8366103c8565b91611b9c565b3461026b5760206102aa6107b7366103c8565b906107c461042784610f06565b92919091611c16565b3461026b5760206102aa6107e036610270565b92919091610df0565b3461026b57604036600319011261026b5761083860043561026761081a61080f836110d9565b919050602435611f7a565b939092848461083261082b84610f06565b8383611583565b92610b4d565b92604051938493846040919493926060820195825260208201520152565b3461026b57600036600319011261026b57602060405160008152f35b3461026b57604036600319011261026b576004356108c06102676108a2610898846110d9565b9150602435611fa7565b92909383856108ba6108b384610f06565b8383611b9c565b92610df0565b91604051938493846040919493926060820195825260208201520152565b805182526020808201519083015260408082015190830152606080820151908301526080908101516001600160a01b0316910152565b3461026b57602036600319011261026b5760a0610932600435610f06565b61093f60405180926108de565bf35b3461026b5760206102aa610954366103c8565b9061096161042784610f06565b92909150611fce565b3461026b57600036600319011261026b576000546040516001600160a01b039091168152602090f35b3461026b5760206102aa6109a636610270565b92919091611009565b3461026b57602036600319011261026b576102676040516001602082015260043560408201526040815261025381610305565b3461026b57602036600319011261026b57610267600435610a0281610343565b60408051600560208201526001600160a01b0390921682820152815261025381610305565b3461026b57602036600319011261026b57610267610a466004356110d9565b604080519384526020840192909252908201529081906060820190565b3461026b57604036600319011261026b57610267604051600360208201526004356040820152602435606082015260608152610253816102e9565b3461026b57604036600319011261026b5761083860043561026761081a610ac4836110d9565b919050602435611fa7565b3461026b57604036600319011261026b576004356108c06102676108a2610af5846110d9565b9150602435611f7a565b3461026b57600036600319011261026b57602060405160788152f35b9081602091031261026b575190565b6040906102159392815281602082015201906101df565b6040513d6000823e3d90fd5b610b85610bee9493929361053184610b7e610b79610b74610b6d88610f06565b809661230a565b61237f565b6123b2565b92516125a2565b916020604051610bbc81610bae85888a8785016040919493926060820195825260208201520152565b03601f198101835282610321565b600054610bd3906105f6906001600160a01b031681565b6040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093610c15575b50610c0f90610f06565b936111f1565b610c0f919350610c3c9060203d602011610c43575b610c348183610321565b810190610b1b565b9290610c05565b503d610c2a565b9161040161021593610f06565b604051906060820182811067ffffffffffffffff8211176102e45760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610cab57565b610c87565b91908201809211610cab57565b15610cc457565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b6103e719810191908211610cab57565b91908203918211610cab57565b15610d3857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c091031261026b578151610d9f8161045e565b9160208101519160408201519160608101519160a0608083015192015190565b610215939260609260018060a01b03168252602082015281604082015201906101df565b9161079e61021593610f06565b92610b79610b74610e0d92949394610e0787610f06565b90612f44565b92670de0b6b3a7640000938403938411610cab57610e2e610e5794836125a2565b916020604051610bbc81610bae8589898785016040919493926060820195825260208201520152565b03915afa9182156106915761021595600093610e7e575b50610e7890610f06565b93611e24565b610e78919350610e9c9060203d602011610c4357610c348183610321565b9290610e6e565b91908260a091031261026b57604051610ebb816102c8565b608080829480518452602081015160208501526040810151604085015260608101516060850152015191610eee83610343565b0152565b9060a08282031261026b5761021591610ea3565b90604051610f13816102c8565b600090818152816080602092828482015282604082015282606082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610691578092610f7a575b506102159293508082518301019101610ef2565b9091503d8082863e610f8c8186610321565b840190828583031261100257845167ffffffffffffffff9586821161100557019082601f830112156110025781519586116102e45760405192610fd8601f8801601f1916860185610321565b86845284878401011161100257506102159394610ffa918480850191016101bc565b908392610f66565b80fd5b8280fd5b61105d939192602060405161103781610bae87868a8785016040919493926060820195825260208201520152565b60018060a01b03600054166040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093611084575b5061107e90610f06565b936121b4565b61107e9193506110a29060203d602011610c4357610c348183610321565b9290611074565b9081602091031261026b575161021581610343565b9081606091031261026b578051916040602083015192015190565b90600460206110f56105f66105f660005460018060a01b031690565b604051632bee84f160e21b815292839182905afa928315610691576111409360609260009161119d575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156106915760008093600093611166575b50929190565b9193505061118c915060603d606011611196575b6111848183610321565b8101906110be565b9290929138611160565b503d61117a565b6111bf915060203d6020116111c5575b6111b78183610321565b8101906110a9565b3861111f565b503d6111ad565b6111ef9360609296959361010083019783526020830152604082015201906108de565b565b929360009385929185851215611367575b8585126113485790610bae611224925b604096604051958694602086016111cc565b81859285968281116113255761123a818561337f565b92611245818661337f565b88611250828761152f565b136113045750906112649197969297610d24565b60019591829187805b61127f575b5050505050505050505090565b156112e0575b5086979850819261129f6112998b89610cb0565b60011c90565b996112aa8b8861337f565b90846112b6888461152f565b136112d457505089935b886112cb8987610d24565b9201949961126d565b8b9850909550936112c0565b601410806112fb575b156112f45788611285565b8080611272565b508083106112e9565b6040516306f1be5d60e21b8152600481018690526024810191909152604490fd5b604051633082dfdb60e11b81526004810191909152602481019290925250604490fd5b935091611354906125ce565b91611361848385846124a9565b93611202565b85851361137b5790610bae61122492611212565b935094611387906123f5565b94611394848388846124a9565b93611367565b916113ab610b79610b748385612f44565b91670de0b6b3a7640000928303928311610cab57611402826113ee6113e3610b79610b74846113dd6114209a8c6125f8565b9761230a565b6105318584516125a2565b926113fb8282868a6124a9565b84886121b4565b906040519460208601526040850152606084015260808301906108de565b6101008152610120810181811067ffffffffffffffff8211176102e45760405290565b90670de0b6b3a764000060008382039312818412811691841390151617610cab57565b90671bc16d674ec8000060008382039312818412811691841390151617610cab57565b9067119000ab100ffbff198201918213600116610cab57565b81810392916000138015828513169184121617610cab57565b90670de0b6b3a764000091828102928184051490151715610cab57565b90671bc16d674ec8000091828102928184051490151715610cab57565b90633b9aca0091828102928184051490151715610cab57565b60008190039190600160ff1b8114600116610cab57600019830503610cab57565b818102929160008212600160ff1b821416610cab578184051490151715610cab57565b811561156d57600160ff1b8114600019831416610cab570590565b634e487b7160e01b600052601260045260246000fd5b9190916115be60208301936115b885516115b06115a66040880192835190612843565b975182519061286c565b905190612414565b92612435565b92670de0b6b3a76400008085121561163c5760008513156116315760008582039512818612811691861390151617610cab5761162561162a92611620611612610b799461160d6102159961288b565b61152f565b670de0b6b3a7640000900590565b6114a2565b612917565b90516125a2565b505050505060001990565b5050505050600090565b90959492936111ef94608093610120840198845260208401526040830152606082015201906108de565b909291828651602088015160408901519060608a01519261169083612ac8565b6116999061185a565b936116a390611443565b906116ad8a612b86565b6116b68b611981565b6116bf91612c38565b6116c88b611981565b6116d184612bb5565b6116da916114a2565b6116e49088612c38565b6116ed91612cb5565b6116f690612cd3565b9361170084612fbb565b611709906114d8565b670de0b6b3a7640000900561171d90612917565b9061172791612c38565b61173090612c67565b611739906119c9565b848661174486612c09565b9061174e91612c38565b9061175891612c38565b611761916119ad565b61176a90612917565b826117758c84612c38565b9061177f91612c38565b61178891612c38565b6117918b611981565b61179a84612bb5565b6117a3916114a2565b6117ac91612cb5565b956117b691612c38565b906117c090611993565b6117c991612c38565b926117d391612c38565b6117dc90612c8e565b906117e6916114a2565b6117ef90612e24565b6117f891612c38565b61180186612b86565b61180a91612cb5565b90611814846119c9565b9061181e916119ad565b90611828916119ad565b60001361184f576102159561184a93610bae9260405196879560208701611646565b61264d565b505050505050600090565b90633b9aca0091828102928184041490151715610cab57565b9081672005fe4f268ea00001918212600116610cab57565b9081670dc5527f642c200001918212600116610cab57565b9081670de0b6b3a764000001918212600116610cab57565b9081670b68df18e471fbff190191821215600116610cab57565b90816714a8454c19e1ac0001918212600116610cab57565b9081670fc10e01578277ff190191821215600116610cab57565b90816703debd083b8c7c0001918212600116610cab57565b9081670295d400ea3257ff190191821215600116610cab57565b9081670157d8b2ecc7080001918212600116610cab57565b90816705310aa7d521300001918212600116610cab57565b9081670de0cc3d1561000001918212600116610cab57565b90816103e801918212600116610cab57565b9081670de0b6b3a763ffff190191821215600116610cab57565b91909160008382019384129112908015821691151617610cab57565b600160ff1b8114610cab5760000390565b939290919280519160208201519060408301519260600151936119fc84612ac8565b611a059061185a565b94611a0f90611443565b9182611a1a88612b86565b611a2489846119ad565b611a2d91612c38565b611a3789846119ad565b611a418385612c38565b611a4a916114a2565b611a54908b612c38565b611a5d91612cb5565b611a6690612cd3565b95611a7086612fbb565b611a79906114d8565b670de0b6b3a76400009005611a8d90612917565b90611a9791612c38565b611aa090612c67565b611aa9906119c9565b8688611ab488612c09565b90611abe91612c38565b90611ac891612c38565b611ad1916119ad565b611ada90612917565b81611ae58a86612c38565b90611aef91612c38565b611af891612c38565b91611b0389826119ad565b91611b0d91612c38565b611b16916114a2565b611b1f91612cb5565b96611b2991612c38565b90611b3390611993565b611b3c91612c38565b92611b4691612c38565b611b4f90612c8e565b90611b59916114a2565b611b6290612e24565b611b6b91612c38565b90611b7590612b86565b611b7e91612cb5565b91611b88906119c9565b90611b92916119ad565b90610215916119ad565b919091611bda6020830191611bd4611bcc84516115b0611bc26040890192835190612843565b965182519061286c565b958551612414565b90612435565b670de0b6b3a7640000918282121561163c576000821315611631576102159461162a93611c106116259361160d610b799661288b565b056119ad565b909291855160208701516040880151606089015191611c3482612ac8565b611c3d9061185a565b92611c4790611443565b93611c5186612b86565b611c5a87611981565b611c6391612c38565b611c6d8983612c38565b611c7688611981565b611c7f91612c38565b611c88906119c9565b86611c938b85612c38565b611c9c90612bde565b90611ca691612c38565b611caf916119ad565b611cb891612cb5565b611cc1906119c9565b611cca90612cd3565b92611cd483612fbb565b611cdd906114d8565b670de0b6b3a76400009005611cf190612917565b90611cfb91612c38565b611d0490612c67565b611d0d906119c9565b8385611d1885612c09565b90611d2291612c38565b90611d2c91612c38565b611d35916119ad565b611d3e90612917565b85611d49888a612c38565b90611d5391612c38565b611d5c91612c38565b90611d6687611981565b611d6f87612bb5565b611d78916114a2565b611d8191612c38565b611d8a91612cb5565b93611d958789612c38565b90611d9f90611993565b611da891612c38565b92611db291612c38565b611dbb90612c8e565b90611dc5916114a2565b611dce90612e24565b611dd791612c38565b611de083612b86565b611de991612cb5565b90611df390611993565b90611dfd916119ad565b60001361184f5761021595611e1f93610bae9260405196879560208701611646565b61276c565b929360009385929185851215611f47575b858512611f285790610bae611e5692604096604051958694602086016111cc565b818592859682811161132557611e6c81856133a0565b92611e7781866133a0565b88611e82828761152f565b13611304575090611e969197969297610d24565b60019591829187805b611eb0575050505050505050505090565b15611f0b575b50869798508192611eca6112998b89610cb0565b99611ed58b886133a0565b9084611ee1888461152f565b13611eff57505089935b88611ef68987610d24565b92019499611e9f565b8b985090955093611eeb565b60141080611f1f575b156112f45788611eb6565b50808310611f14565b935091611f34906125ce565b91611f41848383866124a9565b93611e35565b858513611f5b5790610bae611e5692611212565b935094611f67906123f5565b94611f74848383896124a9565b93611f47565b929190611f90611f8a82846125f8565b856125a2565b938103908111610cab57928103908111610cab5790565b929190611fb7611f8a82846125f8565b938101809111610cab57928101809111610cab5790565b9390929181516020830151916040840151936060015194611fee85612ac8565b611ff79061185a565b9561200190611443565b928361200c89612b86565b6120168a856119ad565b61201f91612c38565b6120298584612c38565b6120338b866119ad565b61203c91612c38565b612045906119c9565b82856120518887612c38565b9061205b91612c38565b9061206591612c38565b61206e916119ad565b61207791612cb5565b612080906119c9565b61208990612cd3565b9661209387612fbb565b61209c906114d8565b670de0b6b3a764000090056120b090612917565b906120ba91612c38565b6120c390612c67565b6120cc906119c9565b87896120d789612c09565b906120e191612c38565b906120eb91612c38565b6120f4916119ad565b6120fd90612917565b816121088b8d612c38565b9061211291612c38565b61211b91612c38565b926121268a826119ad565b9161213091612c38565b612139916114a2565b61214291612c38565b61214b91612cb5565b9661215591612c38565b9061215f90611993565b61216891612c38565b9261217291612c38565b61217b90612c8e565b90612185916114a2565b61218e90612e24565b61219791612c38565b906121a190612b86565b6121aa91612cb5565b90611b9290611993565b9293600093859291858512156122d7575b8585126122b85790610bae6121e692604096604051958694602086016111cc565b8185928596828111611325576121fc81856133c2565b9261220781866133c2565b88612212828761152f565b136113045750906122269197969297610d24565b60019591829187805b612240575050505050505050505090565b1561229b575b5086979850819261225a6112998b89610cb0565b996122658b886133c2565b9084612271888461152f565b1361228f57505089935b886122868987610d24565b9201949961222f565b8b98509095509361227b565b601410806122af575b156112f45788612246565b508083106122a4565b9350946122c4906123f5565b946122d1848784846124a9565b936121c5565b8585136122eb5790610bae6121e692611212565b9350916122f7906125ce565b91612304848484846124a9565b936122d7565b61237a6123756102159361236f61236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b9d6125f8565b612fbb565b97612fbb565b6114d8565b05612917565b612414565b612457565b906114a2565b6114bb565b611552565b6123ae6123756123a96713a04bbdfdc9be886123a3671bc16d674ec80000956114bb565b056119c9565b612e24565b0590565b600081126123bd5790565b60405162461bcd60e51b815260206004820152601060248201526f746f55696e743a206e6567617469766560801b6044820152606490fd5b6103e79081810291818304149015176001161561026b576103e8900490565b81810291818304149015176001161561026b57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517821515161561026b570490565b6706f05b59d3b2000090808202918204146001161561026b57670de0b6b3a7640000900490565b670de0b6b3a76400009081810291818304149015176001161561026b57671bc16d674ec80000900490565b90928282101561255d57610215936125269284670de0b6b3a764000091826124d18383612435565b1061254a57506001600160ff1b039590505b8351916124f96124f38385612414565b85612435565b1061252b57506001600160ff1b0392612520925090505b6040602082015191015190612843565b926119ad565b6119ad565b61252092611bd461253f9261254494612414565b61288b565b91612510565b6125579161253f91612435565b946124e3565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b81810291818304149015176001161561026b576001670de0b6b3a7640000600019830104019015150290565b6103e99081810291818304149015176001161561026b5760016103e8600019830104019015150290565b90670de0b6b3a7640000918281029281840414901517811515161561026b57600190600019830104019015150290565b6101008183031261026b57805192610215602083015193606060408501519401610ea3565b91906103e89260009360009183821161274b57612669816133e2565b6126738583613521565b600061267f828461152f565b1361272c5750612690859695610d14565b60019460009186805b6126aa575b50505050505050509050565b15612707575b50859697985080916126c56112998b88610cb0565b996126d08b87613521565b90836126dc878461152f565b136126fb57505089925b876126f18886610d24565b9201939998612699565b8b9750909450926126e6565b861080612721575b1561271a57886126b0565b808061269e565b50610100821061270f565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e89260009360009183821161274b5761278881613543565b61279285836136b3565b600061279e828461152f565b1361272c57506127af859695610d14565b60019460009186805b6127c85750505050505050509050565b15612825575b50859697985080916127e36112998b88610cb0565b996127ee8b876136b3565b90836127fa878461152f565b1361281957505089925b8761280f8886610d24565b92019399986127b8565b8b975090945092612804565b861080612838575b1561271a57886127ce565b50610100821061282d565b9061284d90612ac8565b633b9aca0090818102918183041490151715610cab5761021591612414565b61021591612365670de0b6b3a764000061235f61235a61236a95612fbb565b6706f05b59d3b20000811461291157670de0b6b3a764000090818112156128ff5780156128ed578060011b908105600203610cab576128c990612cd3565b906713a04bbdfdc9be8891808302928305146001161561026b5761021591056119c9565b6040516322ed598560e21b8152600490fd5b6040516307a0212760e01b8152600490fd5b50600090565b680248ce36a70cb26b3e1981131561291157680755bf798b4a1bf1e5811215612a67576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b91906101208382031261026b57825192602081015192610215604083015193608060608501519401610ea3565b60b581600160881b811015612b6f575b80690100000000000000000062010000921015612b62575b65010000000000811015612b55575b6301000000811015612b48575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b91612b0c565b60201c9160101b91612aff565b60401c9160201b91612af0565b5068b500000000000000009050608082901c612ad8565b671bc16d674ec8000081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e881810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e88082029160016000198210179181840514901517161561026b57670de0b6b3a7640000900590565b6713a04bbde78cc40081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b90911317161561026b57670de0b6b3a7640000900590565b670de0b6b3a764000090818102918205146001161561026b57671bc16d674ec80000900590565b670de0b6b3a764000090818102918205146001161561026b576713a04bbde78cc400900590565b670de0b6b3a76400009081810291820514821515161561026b570590565b600081128015612e13575b612e015780156128ff57671bc16d674ec8000081146128ed57670de0b6b3a76400008112908115612df257905b612d1482613189565b80156128ff57612d7d612d41612d3c612d37612d32612d8295612fbb565b61324a565b612ac8565b6114f5565b611620612d55612d50836131b4565b611873565b612d77612d72612d6c612d67866131df565b61188b565b856132c1565b6118a3565b90613228565b613272565b916000905b60028210612da257505015612d995790565b610215906119c9565b9092612dea81612de4612dba85611620600196612e24565b612d77612dda612dd5611625612dd087806132c1565b6119c9565b61329a565b61236f83866132c1565b906119ad565b930190612d87565b612dfb90611466565b90612d0b565b604051632d0483c560e21b8152600490fd5b50671bc16d674ec800008113612cde565b8015612f3757675698eef06670000081121561291157675698eef0666fffff19811315612f2a576000612f1a612e598361315c565b612ee2611625612e73612e6e612d728561247e565b613209565b92612526612f15612f10612f09612f03612efe612ef8612ef3612eed612ee88d612ee2612edd612ed7612ed2612d6c612ecd612ec7612ec2612ebc612eb78a6132e2565b6118bb565b896132c1565b6118d5565b876132c1565b6118ed565b611907565b836132c1565b61191f565b906132c1565b611939565b8c6132c1565b611951565b8a6132c1565b611969565b886132c1565b93806132c1565b61150e565b611489565b9112156102155761021590611466565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b61237a61237561021593612de461236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b15612f8a57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b886428490612fe760008213612f83565b711340daa0d5f769dba1915cef59f0815a55066130038261330d565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b600160ff1b8114613177576000811215610215571960010190565b604051634d2d75b160e01b8152600490fd5b670de0b6b3a76400009081810291818305149015176001161561026b57671bc16d674ec80000900590565b6703c1665c7aab20009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b669f32752462a0009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b6001811515161561026b576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029181830514901517821515161561026b570590565b671bc16d674ec7ffff1981810291600191830514161561026b57670de0b6b3a7640000900590565b6709d028cc6f205fff1981810291600191830514161561026b57670de0b6b3a7640000900590565b670fa8cedfc2adddfa90808202918205146001161561026b57670de0b6b3a7640000900590565b81810291818305149015176001161561026b57670de0b6b3a7640000900590565b67025f0fe105a314009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b613318811515612f83565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b906133966102159260208082518301019101612628565b93919290506124a9565b906133b76102159260208082518301019101612628565b9390509190916124a9565b906133d96102159260208082518301019101612628565b939290506124a9565b8051810160200190602001906133f791612a9b565b809193925051906020810151604082015191606001519261341783612ac8565b6134209061185a565b9361342a90611443565b9061343486612b86565b61343d87611981565b61344691612c38565b61344f87611981565b61345884612bb5565b613461916114a2565b61346b9089612c38565b61347491612cb5565b61347d90612cd3565b9361348784612fbb565b613490906114d8565b670de0b6b3a764000090056134a490612917565b906134ae91612c38565b6134b790612c67565b6134c0906119c9565b84866134cb86612c09565b906134d591612c38565b906134df91612c38565b6134e8916119ad565b6134f190612917565b826134fc8884612c38565b9061350691612c38565b61350f91612c38565b61351887611981565b611b0d84612bb5565b906135386102159260208082518301019101612a9b565b9493909291506119da565b80518101602001906020019061355891612a9b565b809192935051602082015190604083015192606001519361357884612ac8565b6135819061185a565b9461358b90611443565b9161359587612b86565b61359e88611981565b6135a791612c38565b6135b18383612c38565b6135ba89611981565b6135c391612c38565b6135cc906119c9565b846135d78585612c38565b6135e090612bde565b906135ea91612c38565b6135f3916119ad565b6135fc91612cb5565b613605906119c9565b61360e90612cd3565b9461361885612fbb565b613621906114d8565b670de0b6b3a7640000900561363590612917565b9061363f91612c38565b61364890612c67565b613651906119c9565b858761365c87612c09565b9061366691612c38565b9061367091612c38565b613679916119ad565b61368290612917565b8361368d898b612c38565b9061369791612c38565b6136a091612c38565b906136aa88611981565b61213085612bb5565b906136ca6102159260208082518301019101612a9b565b9493909250611fce56fea2646970667358221220f3e875cd9c43c4535da38090630f644037f96036f7dad55519e2d7d792047e4b64736f6c6343000816003360803461007457601f611bc438819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051611b3490816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b6109e4565b6109bb565b610814565b6107da565b610674565b6103dc565b6102e1565b61023d565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101df565b838082518301019101610a17565b9061010d6100ff600435610b92565b868082518301019101610a32565b92610d8d565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761015057604052565b61011e565b60c0810190811067ffffffffffffffff82111761015057604052565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101bd601f8201601f191660200184610171565b8294818452818301116101da578281602093846000960137010152565b600080fd5b9080601f830112156101da578160206101fa93359101610193565b90565b919082519283825260005b848110610229575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610208565b346101da5760003660031901126101da57604051604081019080821067ffffffffffffffff8311176101505761029a916040526009815268131bd9d39bdc9b585b60ba1b60208201526040519182916020835260208301906101fd565b0390f35b906040516080810181811067ffffffffffffffff821117610150576040526060600382948054845260018101546020850152600281015460408501520154910152565b346101da5760203660031901126101da5760043560005260016020526101c0604060002061030e8161029e565b9061031b6004820161029e565b906103bd61032b6008830161029e565b610393600c84015493600d60018060a01b03910154169461036d6040518098606080918051845260208101516020850152604081015160408501520151910152565b80516080880152602081015160a0880152604081015160c08801526060015160e0870152565b80516101008601526020810151610120860152604081015161014086015260600151610160850152565b6101808301526101a0820152f35b6001600160a01b038116036101da57565b346101da576060806003193601126101da576103f96004356103cb565b6024356044359167ffffffffffffffff83116101da576104206104829336906004016101df565b8161043c61042d85610b92565b60208082518301019101610a32565b60005490949061046290610456906001600160a01b031681565b6001600160a01b031690565b60405180809881946333854efd60e21b8352600483019190602083019252565b03915afa801561061457600091829583926105d9575b50806020806104ac93518301019101610a17565b939194909682861160001461054c5750916104ed826104e8836104e36104fe976104d96104f5988c610aa3565b908c0151906112af565b6112af565b6112db565b505b83610afe565b93828685610d8d565b9384601319129283610541575b61029a9394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b60148612935061050b565b90929091508187111561057b57610575826104e8836104e36104fe976104d96104f5988e610aa3565b506104ef565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9095506104ac92506106019150833d851161060d575b6105f98183610171565b810190610a17565b95919290959190610498565b503d6105ef565b610a81565b9060606003198301126101da57600435610632816103cb565b916024359160443567ffffffffffffffff928382116101da57806023830112156101da5781600401359384116101da57602484830101116101da576024019190565b346101da5761068236610619565b600054929350916001600160a01b031633036107c85761078661077e61042d610779956106c0608095610743976106b7610b67565b50810190610e8c565b6020819b949a9399929b01516106e0866000526001602052604060002090565b55604081015160046106fc876000526001602052604060002090565b015580516008610716876000526001602052604060002090565b01556060810151600c610733876000526001602052604060002090565b015501516001600160a01b031690565b600d610759846000526001602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610b92565b848385610d8d565b92836013191291826107bd575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b601485129250610793565b604051636853cba760e01b8152600490fd5b346101da5760606107ea36610619565b818094509492940103126101da5780359061078661077e61042d6040602085013594013595610b92565b346101da5761082236610619565b6000549093906001600160a01b0390811633036107c857610863610456600d610855876000526001602052604060002090565b01546001600160a01b031690565b9116036109a95761087683820182610b32565b61087f81610b47565b600181036108b857506108a261089d6108b392600c94953691610193565b610fc3565b926000526001602052604060002090565b01555b005b6108c181610b47565b600381036108fd5750906108e56108e06108f8936108b6953691610193565b610f19565b9290916000526001602052604060002090565b610f41565b61090681610b47565b6004810361094057509060046109276108e061093a946108b6963691610193565b9390926000526001602052604060002090565b01610f41565b61094981610b47565b6002810361096a57509060086109276108e061093a946108b6963691610193565b80610976600592610b47565b03610997576107596108a2610992600d936108b6963691610193565b610ef1565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101da5760003660031901126101da576000546040516001600160a01b039091168152602090f35b346101da5760203660031901126101da5761029a610a03600435610b92565b6040519182916020835260208301906101fd565b908160609103126101da578051916040602083015192015190565b908160a09103126101da57608060405191610a4c83610134565b805183526020810151602084015260408101516040840152606081015160608401520151610a79816103cb565b608082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610ab057565b610a8d565b91908201809211610ab057565b90671bc16d674ec8000060008382039312818412811691841390151617610ab057565b9067119000ab100ffbff198201918213600116610ab057565b81810392916000138015828513169184121617610ab057565b600160ff1b8114610ab05760000390565b600611156101da57565b908160209103126101da57356101fa81610b28565b60061115610b5157565b634e487b7160e01b600052602160045260246000fd5b60405190610b7482610134565b60006080838281528260208201528260408201528260608201520152565b610b9a610b67565b816000526001602052610bb8610bb3604060002061029e565b610ff8565b9160208201928352806000526001602052610bdc610bb3600860406000200161029e565b8252600c610c1d610c05610bb36004610bff866000526001602052604060002090565b0161029e565b92604085019384526000526001602052604060002090565b015490606083019182526040519383516020860152516040850152516060840152516080830152608060018060a01b039101511660a082015260a081526101fa81610155565b9081672005fe4f268ea00001918212600116610ab057565b9081670dc5527f642c200001918212600116610ab057565b9081670de0b6b3a764000001918212600116610ab057565b9081670b68df18e471fbff190191821215600116610ab057565b90816714a8454c19e1ac0001918212600116610ab057565b9081670fc10e01578277ff190191821215600116610ab057565b90816703debd083b8c7c0001918212600116610ab057565b9081670295d400ea3257ff190191821215600116610ab057565b9081670157d8b2ecc7080001918212600116610ab057565b90816705310aa7d521300001918212600116610ab057565b9081670de0cc3d1561000001918212600116610ab057565b91909160008382019384129112908015821691151617610ab057565b909282821015610e47576101fa93610e0a9284670de0b6b3a76400009182610db5838361130b565b10610e3457506001600160ff1b039590505b835191610ddd610dd7838561132d565b8561130b565b10610e0f57506001600160ff1b0392610e04925090505b6040602082015191015190611286565b92610d71565b610d71565b610e0492610e23610e2992610e2e9461132d565b9061130b565b6110b3565b91610df4565b610e4191610e299161130b565b94610dc7565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b80910361010081126101da5781359260208301359260a0604082013593605f1901126101da5760e060405191610ec183610134565b606081013583526080810135602084015260a0810135604084015260c081013560608401520135610a79816103cb565b6040818051810103126101da5780610f0e60206040930151610b28565b0151610456816103cb565b6060818051810103126101da57610f336020820151610b28565b606060408201519101519091565b919042821115610fb157610f57610bb38461029e565b9081845542600385015542830391838311610ab057610f7591610afe565b428314610f9b57600160ff1b8114600019831416610ab057600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101da5780610fe060206040930151610b28565b015190565b81810292918115918404141715610ab057565b606081015160208201518082146110735780421160001461106b57905b8103908111610ab05760408201908151600081136000146110485750611042906101fa9351925190610fe5565b90610ab5565b9261105f9250611059905193610b17565b90610fe5565b8103908111610ab05790565b504290611015565b50505190565b90633b9aca0091828102928184051490151715610ab057565b60008190039190600160ff1b8114600116610ab057600019830503610ab057565b6706f05b59d3b20000811461128057670de0b6b3a76400008082121561122a57811561124b5760018260011b916002938305600203610ab05760008312801561126f575b61125d57821561122a57671bc16d674ec80000831461124b57821291821561123c57925b611124846118db565b801561122a5761119661115561115061114b61114661119b959997969961146f565b61199c565b611379565b611079565b61119161116961116483611906565b610c63565b61118b61118661118061117b86611931565b610c7b565b85611a13565b610c93565b9061197a565b610afe565b6119c4565b936000925b8184106111d257505050506101fa916111bf916000146111c4576118b4565b610b17565b6111cd90610b17565b6118b4565b90916112208661121a6111ea8561119186999b611610565b61118b61120a6112056112006111bf8780611a13565b611730565b6119ec565b6112148386611a13565b90610afe565b90610d71565b95019291906111a0565b6040516307a0212760e01b8152600490fd5b61124590610ac2565b9261111b565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec8000083136110f7565b50600090565b9061129090611379565b633b9aca0090818102918183041490151715610ab0576101fa9161132d565b8181029181830414901517600116156101da576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101da57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101da570490565b8181029181830414901517600116156101da57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517600116156101da57671bc16d674ec80000900490565b60b581600160881b811015611420575b80690100000000000000000062010000921015611413575b65010000000000811015611406575b63010000008110156113f9575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916113bd565b60201c9160101b916113b0565b60401c9160201b916113a1565b5068b500000000000000009050608082901c611389565b1561143e57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642849061149b60008213611437565b711340daa0d5f769dba1915cef59f0815a55066114b782611a5f565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b801561172357675698eef06670000081121561128057675698eef0666fffff1981131561171657600061170661164583611ad1565b6116ce61120061165f61165a6111868561134e565b61195b565b92610e0a6117016116fc6116f56116ef6116ea6116e46116df6116d96116d48d6116ce6116c96116c36116be6111806116b96116b36116ae6116a86116a38a611a34565b610cab565b89611a13565b610cc5565b87611a13565b610cdd565b610cf7565b83611a13565b610d0f565b90611a13565b610d29565b8c611a13565b610d41565b8a611a13565b610d59565b88611a13565b9380611a13565b611092565b610ae5565b9112156101fa576101fa90610ac2565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b680248ce36a70cb26b3e1981131561128057680755bf798b4a1bf1e5811215611880576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be889080820291820514600116156101da57670de0b6b3a7640000900590565b670de0b6b3a7640000908181029181830514901517600116156101da57671bc16d674ec80000900590565b6703c1665c7aab2000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b669f32752462a000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b600181151516156101da576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a764000090818102918183051490151782151516156101da570590565b671bc16d674ec7ffff198181029160019183051416156101da57670de0b6b3a7640000900590565b6709d028cc6f205fff198181029160019183051416156101da57670de0b6b3a7640000900590565b670fa8cedfc2adddfa9080820291820514600116156101da57670de0b6b3a7640000900590565b8181029181830514901517600116156101da57670de0b6b3a7640000900590565b67025f0fe105a31400908181029181830514901517600116156101da57670de0b6b3a7640000900590565b611a6a811515611437565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b600160ff1b8114611aec5760008112156101fa571960010190565b604051634d2d75b160e01b8152600490fdfea2646970667358221220b596d744fe988e0f66eb3212b01d8a9e660acea43730ff108a9b5edd5f05d2b364736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a26469706673582212203e63a91fb7c32d1d34d3e2145fad4530fb7ea1224228585fea08d5aba06f98ce64736f6c63430008160033","sourceMap":"303:7898:48:-:0;;;;;;;1594:4:0;303:7898:48;;1594:4:0;303:7898:48;;;1594:4:0;303:7898:48;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600491823610156200001757600080fd5b600092833560e01c9182630a9254e41462001630575081632c10d860146200105d57816331fa62fb1462000e39578163620a26071462000e15578163622912c11462000bf157816372a952551462000995578163849ff8871462000758578163ba414fa6146200072e578163e3d575ce1462000446578163e82984c314620000d0575063fa7626d414620000aa57600080fd5b34620000cc5781600319360112620000cc5760ff602092541690519015158152f35b5080fd5b905034620004385782600319360112620004385782737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620000cc5781809160248651809481936372eb5f8160e11b835281898401525af180156200043c5762000420575b505081516200013a8162001ac2565b671bc16d674ec80000815260206703782dace9d9000081830152670de0b6b3a764000084830152660aa87bee538000606083015284608083015284620001a18160018060a01b03948560155416885180809581946309a7568960e11b83528b830162001c03565b03915afa90811562000416576080916200020d918491620003ef575b5085601454169086601654168760175416908a5193620001dd8562001adf565b84528784015289830152606082015285601354169088519485809481936305157c7f60e21b83528b830162001ca7565b03925af18015620003e557620003ae575b50816013541691845163057ff68760e51b815282818681875afa928315620003a457879362000369575b50506000198201918211620003565791606493918680879560155416865197888092633928ff9760e01b825286898301526001602483015267016345785d8a000060448301525afa9384156200034a57620002cd9682956200031d575b5085519687958694859363bd0625ab60e01b8552840152876024840152604483019062001c80565b03925af180156200031157620002e1578280f35b816200030592903d1062000309575b620002fc818362001b19565b81019062001d53565b8280f35b503d620002f0565b505051903d90823e3d90fd5b6200033e9195503d8084833e62000335818362001b19565b81019062001d0e565b925050509338620002a5565b508451903d90823e3d90fd5b634e487b7160e01b865260118452602486fd5b9080929350813d83116200039c575b62000384818362001b19565b8101031262000397575190388062000248565b600080fd5b503d62000378565b86513d89823e3d90fd5b620003d49060803d608011620003dd575b620003cb818362001b19565b81019062001c5d565b5050506200021e565b503d620003bf565b85513d88823e3d90fd5b6200040f91503d8086833e62000406818362001b19565b81019062001bd9565b38620001bd565b86513d84823e3d90fd5b6200042b9062001a97565b620004385782386200012b565b8280fd5b84513d84823e3d90fd5b91905034620004385782600319360112620004385782737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620000cc5781809160248551809481936372eb5f8160e11b8352818a8401525af1801562000724576200070c575b50508051620004b18162001ac2565b671bc16d674ec8000081526020906703782dace9d9000082820152670de0b6b3a764000083820152660aa87bee538000606082015284608082015284620005198160018060a01b03938460155416875180809581946309a7568960e11b83528c830162001c03565b03915afa908115620007025760809162000585918491620006e4575b508460145416908560165416866017541690895193620005558562001adf565b84528884015288830152606082015284601354169087519485809481936305157c7f60e21b83528c830162001ca7565b03925af18015620006b55790859291620006bf575b5082816013541685519384809263057ff68760e51b82525afa918215620006b557869262000680575b5060001982019182116200066d5790606483926015541695855196879384926309facf8b60e31b8452830152671d24b2dfac52000060248301526704ca3d8da418400060448301525afa91821562000664575083916200062d575b836200062a8362001eb2565b80f35b905081813d83116200065c575b62000646818362001b19565b8101031262000397576200062a9051386200061e565b503d6200063a565b513d85823e3d90fd5b634e487b7160e01b865260118552602486fd5b9091508281813d8311620006ad575b6200069b818362001b19565b810103126200039757519038620005c3565b503d6200068f565b84513d88823e3d90fd5b620006db9060803d608011620003dd57620003cb818362001b19565b5050506200059a565b620006fb91503d8086833e62000406818362001b19565b3862000535565b85513d84823e3d90fd5b620007179062001a97565b62000438578238620004a2565b83513d84823e3d90fd5b505034620000cc5781600319360112620000cc576020906200074f62001d9f565b90519015158152f35b905034620004385782600319360112620004385782737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620000cc5781809160248651809481936372eb5f8160e11b835281898401525af180156200043c576200097d575b50508151620007c28162001ac2565b671bc16d674ec80000815260206703782dace9d9000081830152670de0b6b3a764000084830152660aa87bee538000606083015284608083015284620008298160018060a01b03948560155416885180809581946309a7568960e11b83528b830162001c03565b03915afa908115620004165760809162000864918491620003ef575085601454169086601654168760175416908a5193620001dd8562001adf565b03925af18015620003e55762000958575b50816013541691845163057ff68760e51b815282818681875afa928315620003a457879362000922575b50506000198201918211620003565791606493918680879560155416865197888092633928ff9760e01b8252868983015284602483015267016345785d8a000060448301525afa9384156200034a57620002cd9682956200031d575085519687958694859363bd0625ab60e01b8552840152876024840152604483019062001c80565b9080929350813d831162000950575b6200093d818362001b19565b810103126200039757519038806200089f565b503d62000931565b620009749060803d608011620003dd57620003cb818362001b19565b50505062000875565b620009889062001a97565b62000438578238620007b3565b91905034620004385782600319360112620004385782737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620000cc5781809160248551809481936372eb5f8160e11b8352818a8401525af18015620007245762000bd9575b5050805162000a008162001ac2565b671bc16d674ec8000081526020906703782dace9d9000082820152670de0b6b3a764000083820152660aa87bee53800060608201528460808201528462000a688160018060a01b03938460155416875180809581946309a7568960e11b83528c830162001c03565b03915afa908115620007025760809162000aa3918491620006e457508460145416908560165416866017541690895193620005558562001adf565b03925af18015620006b5579085929162000bb4575b5082816013541685519384809263057ff68760e51b82525afa918215620006b557869262000b7f575b5060001982019182116200066d579060648392601554169585519687938492634817655160e11b8452830152671d24b2dfac52000060248301526704339affcae21b8360448301525afa918215620006645750839162000b48575b836200062a8362001e75565b905081813d831162000b77575b62000b61818362001b19565b8101031262000397576200062a90513862000b3c565b503d62000b55565b9091508281813d831162000bac575b62000b9a818362001b19565b81010312620003975751903862000ae1565b503d62000b8e565b62000bd09060803d608011620003dd57620003cb818362001b19565b50505062000ab8565b62000be49062001a97565b62000438578238620009f1565b91905034620004385782600319360112620004385782737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620000cc5781809160248551809481936372eb5f8160e11b8352818a8401525af18015620007245762000dfd575b5050805162000c5c8162001ac2565b671bc16d674ec8000081526020906703782dace9d9000082820152670de0b6b3a764000083820152660aa87bee53800060608201528460808201528462000cc48160018060a01b03938460155416875180809581946309a7568960e11b83528c830162001c03565b03915afa908115620007025760809162000cff918491620006e457508460145416908560165416866017541690895193620005558562001adf565b03925af18015620006b5579085929162000dd8575b5082816013541685519384809263057ff68760e51b82525afa918215620006b557869262000da3575b5060001982019182116200066d57906064839260155416958551968793849263306db46b60e01b8452830152671a5e27eef13e000060248301526702848c2ab1bb000060448301525afa91821562000664575083916200062d57836200062a8362001eb2565b9091508281813d831162000dd0575b62000dbe818362001b19565b81010312620003975751903862000d3d565b503d62000db2565b62000df49060803d608011620003dd57620003cb818362001b19565b50505062000d14565b62000e089062001a97565b6200043857823862000c4d565b505034620000cc5781600319360112620000cc5760209051660aa87bee5380008152f35b91905034620004385782600319360112620004385782737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620000cc5781809160248551809481936372eb5f8160e11b8352818a8401525af18015620007245762001045575b5050805162000ea48162001ac2565b671bc16d674ec8000081526020906703782dace9d9000082820152670de0b6b3a764000083820152660aa87bee53800060608201528460808201528462000f0c8160018060a01b03938460155416875180809581946309a7568960e11b83528c830162001c03565b03915afa908115620007025760809162000f47918491620006e457508460145416908560165416866017541690895193620005558562001adf565b03925af18015620006b5579085929162001020575b5082816013541685519384809263057ff68760e51b82525afa918215620006b557869262000feb575b5060001982019182116200066d57906064839260155416958551968793849263332266f360e01b8452830152671a5e27eef13e0000602483015267023951cb4bf49f4760448301525afa918215620006645750839162000b4857836200062a8362001e75565b9091508281813d831162001018575b62001006818362001b19565b81010312620003975751903862000f85565b503d62000ffa565b6200103c9060803d608011620003dd57620003cb818362001b19565b50505062000f5c565b620010509062001a97565b6200043857823862000e95565b83915034620000cc5781600319360112620000cc57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620004385783516372eb5f8160e11b8152828101849052838160248183865af1801562001626579084916200160e575b5050835193620010ca8562001ac2565b671bc16d674ec8000085526020926703782dace9d9000084870152670de0b6b3a764000082870152606090660aa87bee5380008288015260808681890152620011348760018060a01b03998a60155416875180809581946309a7568960e11b835289830162001c03565b03915afa908115620015c3576200119f899284928491620015f0575b508b60145416908c601654168d60175416908a5193620011708562001adf565b84528c84015289830152878201528b601354169088519485809481936305157c7f60e21b83528a830162001ca7565b03925af18015620015c357620015cd575b508186896013541686519283809263057ff68760e51b82525afa908115620015c357889162001590575b5060001981019081116200157d57879860155416908551916333854efd60e21b835281858401528583602481845afa91821562001573578a908a8c958d956200152a575b508951634e817fd960e01b815288810183815260208101979097526040870186905295869081906060015b0381865afa94851562001520578c95620014dd575b5088516301e978cb60e41b8152878101918252602082019290925260408101939093529189918391829081906060015b03915afa908115620014d35789916200149c575b50808211156200148957620012b8818362001cea565b905b60648211620012c7578980f35b8380937f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50828c60228c51918083528201527f4572726f723a2061207e3d2062206e6f7420736174697366696564205b75696e8c82015261745d60f01b8b820152a1885192898452600a8a850152690808115e1c1958dd195960b21b898501528b8401527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a880968194a1885190898252600a8a83015269080808081058dd1d585b60b21b898301528b820152a182828751888152600a8982015269204d61782044656c746160b01b8882015260648b820152a1855190868252600a8783015269202020202044656c746160b01b8683015288820152a1833b62001405575b50505050505061010061ff0019825416178155808280808080808080808980f35b6200146d60246200145d9288978895875197828901918a83526519985a5b195960d21b828b01526001818b015289526200143f8962001adf565b519586928301986370ca10bb60e01b8a525180928685019062001b67565b8101039081018452018262001b19565b51925af1506200147c62001d6a565b50808280808080620013e4565b62001495828262001cea565b90620012ba565b809950888092503d8311620014cb575b620014b8818362001b19565b8101031262000397578897518a620012a2565b503d620014ac565b86513d8b823e3d90fd5b929b509350918982813d811162001518575b620014fb818362001b19565b81010312620003975790518b9a9093919290916200128e6200125e565b503d620014ef565b89513d8e823e3d90fd5b9550509250508583813d83116200156b575b62001548818362001b19565b81010312620015675782518984015193880151928a620012496200121e565b8980fd5b503d6200153c565b87513d8c823e3d90fd5b634e487b7160e01b885260118352602488fd5b90508681813d8311620015bb575b620015aa818362001b19565b8101031262000397575189620011da565b503d6200159e565b85513d8a823e3d90fd5b620015e790823d8411620003dd57620003cb818362001b19565b505050620011b0565b6200160791503d8086833e62000406818362001b19565b8c62001150565b620016199062001a97565b62000438578285620010ba565b85513d86823e3d90fd5b9150913462001a4b578360031936011262001a4b5761106b928383019267ffffffffffffffff948185108686111762001a845762001edd91818382396060865260066060870152650e8ded6cadcb60d31b608087015260e08160209760a089820152600160a0820152600b60fb1b60c082015260128882015203019088f0908115620019e55760018060a01b0392836bffffffffffffffffffffffff60a01b9316836016541617601655855191808301918383108a84111762001a715791839160e0938339606081526006606082015265746f6b656e5960d01b608082015260a089820152600160a0820152605960f81b60c082015260128882015203019088f08015620019e5578216816017541617601755816016541695863b1562001a3d5784516340c10f1960e01b80825230868301526a52b7d2dcc80cd2e4000000918a8160249b858d83015281835a92604493f1801562001a675762001a4f575b50908991856017541690813b1562001a4b5760448b918580948c51968795869485528d30908601528401525af1801562001a415762001a25575b5050826016541683601754169086519161059791828401928484108685111762001a0157916060939185936200b1cd853982528a820152670de0b6b3a76400008982015203019089f08015620015c35783168260185416176018558451612f21808201908282108483111762001a13578891839162002f4883398b815203019089f08015620015c35783166013548184821617601355865191611bc491828401928484108685111762001a0157918c8b949286946200960986391617815203019089f08015620015c3578316906014549180848416176014558651926137a08085019385851090851117620019ef57918b8a9492869462005e6986391617815203019088f08015620019e55790828794939216906015541617601555868160165416918187826013541694604489518094819363095ea7b360e01b998a84528b840152600019809c8401525af18015620019db579088959493929162001998575b506044939495816017541691601354169988519a8b97889687528601528401525af19081156200066457506200195e578280f35b81813d831162001990575b62001975818362001b19565b81010312620000cc57620019899062001b3c565b5038808280f35b503d62001969565b939484813d8311620019d3575b620019b1818362001b19565b81010312620000cc578795620019c960449562001b3c565b509594936200192a565b503d620019a5565b87513d85823e3d90fd5b84513d89823e3d90fd5b634e487b7160e01b8c52604188528a8cfd5b634e487b7160e01b8d52604189528b8dfd5b634e487b7160e01b8b5260418752898bfd5b62001a309062001a97565b62001a3d578738620017c9565b8780fd5b87513d84823e3d90fd5b8380fd5b62001a5e909a91929a62001a97565b9890386200178f565b88513d8d823e3d90fd5b634e487b7160e01b8b526041875260248bfd5b634e487b7160e01b875260418352602487fd5b67ffffffffffffffff811162001aac57604052565b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111762001aac57604052565b6080810190811067ffffffffffffffff82111762001aac57604052565b6060810190811067ffffffffffffffff82111762001aac57604052565b90601f8019910116810190811067ffffffffffffffff82111762001aac57604052565b519081151582036200039757565b67ffffffffffffffff811162001aac57601f01601f191660200190565b60005b83811062001b7b5750506000910152565b818101518382015260200162001b6a565b81601f820112156200039757805162001ba58162001b4a565b9262001bb5604051948562001b19565b81845260208284010111620003975762001bd6916020808501910162001b67565b90565b906020828203126200039757815167ffffffffffffffff8111620003975762001bd6920162001b8c565b91909160c060e0820193670de0b6b3a76400008352671bc16d674ec800006020840152805160408401526020810151606084015260408101516080840152606081015160a0840152608060018060a01b0391015116910152565b919082608091031262000397578151916020810151916060604083015192015190565b9060209162001c9b8151809281855285808601910162001b67565b601f01601f1916010190565b60a0606062001bd69360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062001c80565b9190820391821162001cf857565b634e487b7160e01b600052601160045260246000fd5b90608082820312620003975762001d258262001b3c565b92602083015192604081015192606082015167ffffffffffffffff8111620003975762001bd6920162001b8c565b919082604091031262000397576020825192015190565b3d1562001d9a573d9062001d7e8262001b4a565b9162001d8e604051938462001b19565b82523d6000602084013e565b606090565b6000805460081c60ff161562001db9575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62001ddb57505090565b819250819060405182602082018381526519985a5b195960d21b60408401526040835262001e098362001afc565b62001e456024604051809362001e346020830197630667f9d760e41b89525180928585019062001b67565b810103600481018452018262001b19565b51925af15062001e5462001d6a565b9060208280518101031262001e725750602062001bd6910162001b3c565b80fd5b600080916040516020810191632d5b6cb960e01b835260248201526024815262001e9f8162001afc565b51906a636f6e736f6c652e6c6f675afa50565b60008091604051602081019163f82c50f160e01b835260248201526024815262001e9f8162001afc56fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c634300081600336080346200007a57601f620037a038819003918201601f19168301916001600160401b038311848410176200007f578084926020946040528339810103126200007a57516001600160a01b038116908190036200007a57600080546001600160a01b03191691909117905560405161370a9081620000968239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630420580a146101b7578063120649c5146101b2578063134ead12146101ad5780631e978cb0146101a8578063306db46b146101a3578063332266f31461019e5780633928ff97146101995780633b268d5d146101945780633b4d10301461018f5780634e817fd91461018a5780634fd67c58146101855780635eb408fc146101805780636237569f1461017b5780636d652299146101765780637f17409c1461017157806381b5fac21461016c578063902ecaa214610167578063a8c62e7614610162578063af4e437f1461015d578063b09d04e514610158578063cb1f553214610153578063ce153bf41461014e578063e94716d514610149578063ee3e8cfb14610144578063f30d37f21461013f5763f9c282111461013a57600080fd5b610aff565b610acf565b610a9e565b610a63565b610a27565b6109e2565b6109af565b610993565b61096a565b610941565b610914565b610872565b610856565b6107e9565b6107cd565b6107a4565b610788565b610759565b61071e565b61048d565b610436565b610407565b6103e2565b610354565b61028e565b610218565b60005b8381106101cf5750506000910152565b81810151838201526020016101bf565b906020916101f8815180928185528580860191016101bc565b601f01601f1916010190565b9060206102159281815201906101df565b90565b3461026b57604036600319011261026b57610267604051600260208201526004356040820152602435606082015260608152610253816102e9565b6040519182916020835260208301906101df565b0390f35b600080fd5b608090600319011261026b5760043590602435906044359060643590565b3461026b5760206102aa6102a136610270565b92919091610b4d565b604051908152f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff8211176102e457604052565b6102b2565b6080810190811067ffffffffffffffff8211176102e457604052565b6060810190811067ffffffffffffffff8211176102e457604052565b90601f8019910116810190811067ffffffffffffffff8211176102e457604052565b6001600160a01b0381160361026b57565b3461026b5760e036600319011261026b5760a036604319011261026b576102676103bc604051610383816102c8565b60443581526064356020820152608435604082015260a435606082015260c4356103ac81610343565b608082015260243560043561139a565b60405191829182610204565b606090600319011261026b57600435906024359060443590565b3461026b5760206102aa6104016103f8366103c8565b91929092610f06565b91611583565b3461026b5760206102aa61041a366103c8565b9061042d61042784610f06565b936110d9565b92919091611670565b3461026b5760206102aa610449366103c8565b9061045661042784610f06565b9290506119da565b8015150361026b57565b90926080926102159594151583526020830152604082015281606082015201906101df565b3461026b57606036600319011261026b5761050360243561061f6004356104b38361045e565b604435926104bf610c57565b936104c8610c57565b946104d2846110d9565b60208496939592960194604096878601928352865284526104f287610f06565b998a9185519087519051918a611009565b921561069657928261054a6105519361054361053e61053661056f9861053160606105979d9c0151866125a2565b6125a2565b8651906125f8565b610c9d565b9351610cb0565b8a52610cb0565b61056385890191808352895188610c4a565b90885190519087610b4d565b9061058e6105836020890193808552610c9d565b808452825111610d31565b51905190610d24565b945b84519260c06020870151848801926105df8451976105d18851998a958693602085016040919493926060820195825260208201520152565b03601f198101845283610321565b600054610602906105f6906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610dbf565b03915afa94851561069157600095610651575b509061064691610267959651905190611583565b905194859485610468565b61026795509061067c610646939260c03d60c01161068a575b6106748183610321565b810190610d88565b505050505095509091610632565b503d61066a565b610b41565b826106df610718966106d2610704956106cb61053e6106c361070f9a61053160606106fc9b0151866125a2565b8551906125f8565b9251610cb0565b9260208d01938452610cb0565b6106f1888c019180835283518b610de3565b915190519089610df0565b808952610c9d565b808852825111610cbd565b51855190610d24565b94610599565b3461026b57604036600319011261026b57610267604051600460208201526004356040820152602435606082015260608152610253816102e9565b3461026b57602036600319011261026b5760206102aa60043561040161077e826110d9565b9291939050610f06565b3461026b5760206102aa61079e6103f8366103c8565b91611b9c565b3461026b5760206102aa6107b7366103c8565b906107c461042784610f06565b92919091611c16565b3461026b5760206102aa6107e036610270565b92919091610df0565b3461026b57604036600319011261026b5761083860043561026761081a61080f836110d9565b919050602435611f7a565b939092848461083261082b84610f06565b8383611583565b92610b4d565b92604051938493846040919493926060820195825260208201520152565b3461026b57600036600319011261026b57602060405160008152f35b3461026b57604036600319011261026b576004356108c06102676108a2610898846110d9565b9150602435611fa7565b92909383856108ba6108b384610f06565b8383611b9c565b92610df0565b91604051938493846040919493926060820195825260208201520152565b805182526020808201519083015260408082015190830152606080820151908301526080908101516001600160a01b0316910152565b3461026b57602036600319011261026b5760a0610932600435610f06565b61093f60405180926108de565bf35b3461026b5760206102aa610954366103c8565b9061096161042784610f06565b92909150611fce565b3461026b57600036600319011261026b576000546040516001600160a01b039091168152602090f35b3461026b5760206102aa6109a636610270565b92919091611009565b3461026b57602036600319011261026b576102676040516001602082015260043560408201526040815261025381610305565b3461026b57602036600319011261026b57610267600435610a0281610343565b60408051600560208201526001600160a01b0390921682820152815261025381610305565b3461026b57602036600319011261026b57610267610a466004356110d9565b604080519384526020840192909252908201529081906060820190565b3461026b57604036600319011261026b57610267604051600360208201526004356040820152602435606082015260608152610253816102e9565b3461026b57604036600319011261026b5761083860043561026761081a610ac4836110d9565b919050602435611fa7565b3461026b57604036600319011261026b576004356108c06102676108a2610af5846110d9565b9150602435611f7a565b3461026b57600036600319011261026b57602060405160788152f35b9081602091031261026b575190565b6040906102159392815281602082015201906101df565b6040513d6000823e3d90fd5b610b85610bee9493929361053184610b7e610b79610b74610b6d88610f06565b809661230a565b61237f565b6123b2565b92516125a2565b916020604051610bbc81610bae85888a8785016040919493926060820195825260208201520152565b03601f198101835282610321565b600054610bd3906105f6906001600160a01b031681565b6040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093610c15575b50610c0f90610f06565b936111f1565b610c0f919350610c3c9060203d602011610c43575b610c348183610321565b810190610b1b565b9290610c05565b503d610c2a565b9161040161021593610f06565b604051906060820182811067ffffffffffffffff8211176102e45760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610cab57565b610c87565b91908201809211610cab57565b15610cc457565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b6103e719810191908211610cab57565b91908203918211610cab57565b15610d3857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c091031261026b578151610d9f8161045e565b9160208101519160408201519160608101519160a0608083015192015190565b610215939260609260018060a01b03168252602082015281604082015201906101df565b9161079e61021593610f06565b92610b79610b74610e0d92949394610e0787610f06565b90612f44565b92670de0b6b3a7640000938403938411610cab57610e2e610e5794836125a2565b916020604051610bbc81610bae8589898785016040919493926060820195825260208201520152565b03915afa9182156106915761021595600093610e7e575b50610e7890610f06565b93611e24565b610e78919350610e9c9060203d602011610c4357610c348183610321565b9290610e6e565b91908260a091031261026b57604051610ebb816102c8565b608080829480518452602081015160208501526040810151604085015260608101516060850152015191610eee83610343565b0152565b9060a08282031261026b5761021591610ea3565b90604051610f13816102c8565b600090818152816080602092828482015282604082015282606082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610691578092610f7a575b506102159293508082518301019101610ef2565b9091503d8082863e610f8c8186610321565b840190828583031261100257845167ffffffffffffffff9586821161100557019082601f830112156110025781519586116102e45760405192610fd8601f8801601f1916860185610321565b86845284878401011161100257506102159394610ffa918480850191016101bc565b908392610f66565b80fd5b8280fd5b61105d939192602060405161103781610bae87868a8785016040919493926060820195825260208201520152565b60018060a01b03600054166040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093611084575b5061107e90610f06565b936121b4565b61107e9193506110a29060203d602011610c4357610c348183610321565b9290611074565b9081602091031261026b575161021581610343565b9081606091031261026b578051916040602083015192015190565b90600460206110f56105f66105f660005460018060a01b031690565b604051632bee84f160e21b815292839182905afa928315610691576111409360609260009161119d575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156106915760008093600093611166575b50929190565b9193505061118c915060603d606011611196575b6111848183610321565b8101906110be565b9290929138611160565b503d61117a565b6111bf915060203d6020116111c5575b6111b78183610321565b8101906110a9565b3861111f565b503d6111ad565b6111ef9360609296959361010083019783526020830152604082015201906108de565b565b929360009385929185851215611367575b8585126113485790610bae611224925b604096604051958694602086016111cc565b81859285968281116113255761123a818561337f565b92611245818661337f565b88611250828761152f565b136113045750906112649197969297610d24565b60019591829187805b61127f575b5050505050505050505090565b156112e0575b5086979850819261129f6112998b89610cb0565b60011c90565b996112aa8b8861337f565b90846112b6888461152f565b136112d457505089935b886112cb8987610d24565b9201949961126d565b8b9850909550936112c0565b601410806112fb575b156112f45788611285565b8080611272565b508083106112e9565b6040516306f1be5d60e21b8152600481018690526024810191909152604490fd5b604051633082dfdb60e11b81526004810191909152602481019290925250604490fd5b935091611354906125ce565b91611361848385846124a9565b93611202565b85851361137b5790610bae61122492611212565b935094611387906123f5565b94611394848388846124a9565b93611367565b916113ab610b79610b748385612f44565b91670de0b6b3a7640000928303928311610cab57611402826113ee6113e3610b79610b74846113dd6114209a8c6125f8565b9761230a565b6105318584516125a2565b926113fb8282868a6124a9565b84886121b4565b906040519460208601526040850152606084015260808301906108de565b6101008152610120810181811067ffffffffffffffff8211176102e45760405290565b90670de0b6b3a764000060008382039312818412811691841390151617610cab57565b90671bc16d674ec8000060008382039312818412811691841390151617610cab57565b9067119000ab100ffbff198201918213600116610cab57565b81810392916000138015828513169184121617610cab57565b90670de0b6b3a764000091828102928184051490151715610cab57565b90671bc16d674ec8000091828102928184051490151715610cab57565b90633b9aca0091828102928184051490151715610cab57565b60008190039190600160ff1b8114600116610cab57600019830503610cab57565b818102929160008212600160ff1b821416610cab578184051490151715610cab57565b811561156d57600160ff1b8114600019831416610cab570590565b634e487b7160e01b600052601260045260246000fd5b9190916115be60208301936115b885516115b06115a66040880192835190612843565b975182519061286c565b905190612414565b92612435565b92670de0b6b3a76400008085121561163c5760008513156116315760008582039512818612811691861390151617610cab5761162561162a92611620611612610b799461160d6102159961288b565b61152f565b670de0b6b3a7640000900590565b6114a2565b612917565b90516125a2565b505050505060001990565b5050505050600090565b90959492936111ef94608093610120840198845260208401526040830152606082015201906108de565b909291828651602088015160408901519060608a01519261169083612ac8565b6116999061185a565b936116a390611443565b906116ad8a612b86565b6116b68b611981565b6116bf91612c38565b6116c88b611981565b6116d184612bb5565b6116da916114a2565b6116e49088612c38565b6116ed91612cb5565b6116f690612cd3565b9361170084612fbb565b611709906114d8565b670de0b6b3a7640000900561171d90612917565b9061172791612c38565b61173090612c67565b611739906119c9565b848661174486612c09565b9061174e91612c38565b9061175891612c38565b611761916119ad565b61176a90612917565b826117758c84612c38565b9061177f91612c38565b61178891612c38565b6117918b611981565b61179a84612bb5565b6117a3916114a2565b6117ac91612cb5565b956117b691612c38565b906117c090611993565b6117c991612c38565b926117d391612c38565b6117dc90612c8e565b906117e6916114a2565b6117ef90612e24565b6117f891612c38565b61180186612b86565b61180a91612cb5565b90611814846119c9565b9061181e916119ad565b90611828916119ad565b60001361184f576102159561184a93610bae9260405196879560208701611646565b61264d565b505050505050600090565b90633b9aca0091828102928184041490151715610cab57565b9081672005fe4f268ea00001918212600116610cab57565b9081670dc5527f642c200001918212600116610cab57565b9081670de0b6b3a764000001918212600116610cab57565b9081670b68df18e471fbff190191821215600116610cab57565b90816714a8454c19e1ac0001918212600116610cab57565b9081670fc10e01578277ff190191821215600116610cab57565b90816703debd083b8c7c0001918212600116610cab57565b9081670295d400ea3257ff190191821215600116610cab57565b9081670157d8b2ecc7080001918212600116610cab57565b90816705310aa7d521300001918212600116610cab57565b9081670de0cc3d1561000001918212600116610cab57565b90816103e801918212600116610cab57565b9081670de0b6b3a763ffff190191821215600116610cab57565b91909160008382019384129112908015821691151617610cab57565b600160ff1b8114610cab5760000390565b939290919280519160208201519060408301519260600151936119fc84612ac8565b611a059061185a565b94611a0f90611443565b9182611a1a88612b86565b611a2489846119ad565b611a2d91612c38565b611a3789846119ad565b611a418385612c38565b611a4a916114a2565b611a54908b612c38565b611a5d91612cb5565b611a6690612cd3565b95611a7086612fbb565b611a79906114d8565b670de0b6b3a76400009005611a8d90612917565b90611a9791612c38565b611aa090612c67565b611aa9906119c9565b8688611ab488612c09565b90611abe91612c38565b90611ac891612c38565b611ad1916119ad565b611ada90612917565b81611ae58a86612c38565b90611aef91612c38565b611af891612c38565b91611b0389826119ad565b91611b0d91612c38565b611b16916114a2565b611b1f91612cb5565b96611b2991612c38565b90611b3390611993565b611b3c91612c38565b92611b4691612c38565b611b4f90612c8e565b90611b59916114a2565b611b6290612e24565b611b6b91612c38565b90611b7590612b86565b611b7e91612cb5565b91611b88906119c9565b90611b92916119ad565b90610215916119ad565b919091611bda6020830191611bd4611bcc84516115b0611bc26040890192835190612843565b965182519061286c565b958551612414565b90612435565b670de0b6b3a7640000918282121561163c576000821315611631576102159461162a93611c106116259361160d610b799661288b565b056119ad565b909291855160208701516040880151606089015191611c3482612ac8565b611c3d9061185a565b92611c4790611443565b93611c5186612b86565b611c5a87611981565b611c6391612c38565b611c6d8983612c38565b611c7688611981565b611c7f91612c38565b611c88906119c9565b86611c938b85612c38565b611c9c90612bde565b90611ca691612c38565b611caf916119ad565b611cb891612cb5565b611cc1906119c9565b611cca90612cd3565b92611cd483612fbb565b611cdd906114d8565b670de0b6b3a76400009005611cf190612917565b90611cfb91612c38565b611d0490612c67565b611d0d906119c9565b8385611d1885612c09565b90611d2291612c38565b90611d2c91612c38565b611d35916119ad565b611d3e90612917565b85611d49888a612c38565b90611d5391612c38565b611d5c91612c38565b90611d6687611981565b611d6f87612bb5565b611d78916114a2565b611d8191612c38565b611d8a91612cb5565b93611d958789612c38565b90611d9f90611993565b611da891612c38565b92611db291612c38565b611dbb90612c8e565b90611dc5916114a2565b611dce90612e24565b611dd791612c38565b611de083612b86565b611de991612cb5565b90611df390611993565b90611dfd916119ad565b60001361184f5761021595611e1f93610bae9260405196879560208701611646565b61276c565b929360009385929185851215611f47575b858512611f285790610bae611e5692604096604051958694602086016111cc565b818592859682811161132557611e6c81856133a0565b92611e7781866133a0565b88611e82828761152f565b13611304575090611e969197969297610d24565b60019591829187805b611eb0575050505050505050505090565b15611f0b575b50869798508192611eca6112998b89610cb0565b99611ed58b886133a0565b9084611ee1888461152f565b13611eff57505089935b88611ef68987610d24565b92019499611e9f565b8b985090955093611eeb565b60141080611f1f575b156112f45788611eb6565b50808310611f14565b935091611f34906125ce565b91611f41848383866124a9565b93611e35565b858513611f5b5790610bae611e5692611212565b935094611f67906123f5565b94611f74848383896124a9565b93611f47565b929190611f90611f8a82846125f8565b856125a2565b938103908111610cab57928103908111610cab5790565b929190611fb7611f8a82846125f8565b938101809111610cab57928101809111610cab5790565b9390929181516020830151916040840151936060015194611fee85612ac8565b611ff79061185a565b9561200190611443565b928361200c89612b86565b6120168a856119ad565b61201f91612c38565b6120298584612c38565b6120338b866119ad565b61203c91612c38565b612045906119c9565b82856120518887612c38565b9061205b91612c38565b9061206591612c38565b61206e916119ad565b61207791612cb5565b612080906119c9565b61208990612cd3565b9661209387612fbb565b61209c906114d8565b670de0b6b3a764000090056120b090612917565b906120ba91612c38565b6120c390612c67565b6120cc906119c9565b87896120d789612c09565b906120e191612c38565b906120eb91612c38565b6120f4916119ad565b6120fd90612917565b816121088b8d612c38565b9061211291612c38565b61211b91612c38565b926121268a826119ad565b9161213091612c38565b612139916114a2565b61214291612c38565b61214b91612cb5565b9661215591612c38565b9061215f90611993565b61216891612c38565b9261217291612c38565b61217b90612c8e565b90612185916114a2565b61218e90612e24565b61219791612c38565b906121a190612b86565b6121aa91612cb5565b90611b9290611993565b9293600093859291858512156122d7575b8585126122b85790610bae6121e692604096604051958694602086016111cc565b8185928596828111611325576121fc81856133c2565b9261220781866133c2565b88612212828761152f565b136113045750906122269197969297610d24565b60019591829187805b612240575050505050505050505090565b1561229b575b5086979850819261225a6112998b89610cb0565b996122658b886133c2565b9084612271888461152f565b1361228f57505089935b886122868987610d24565b9201949961222f565b8b98509095509361227b565b601410806122af575b156112f45788612246565b508083106122a4565b9350946122c4906123f5565b946122d1848784846124a9565b936121c5565b8585136122eb5790610bae6121e692611212565b9350916122f7906125ce565b91612304848484846124a9565b936122d7565b61237a6123756102159361236f61236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b9d6125f8565b612fbb565b97612fbb565b6114d8565b05612917565b612414565b612457565b906114a2565b6114bb565b611552565b6123ae6123756123a96713a04bbdfdc9be886123a3671bc16d674ec80000956114bb565b056119c9565b612e24565b0590565b600081126123bd5790565b60405162461bcd60e51b815260206004820152601060248201526f746f55696e743a206e6567617469766560801b6044820152606490fd5b6103e79081810291818304149015176001161561026b576103e8900490565b81810291818304149015176001161561026b57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517821515161561026b570490565b6706f05b59d3b2000090808202918204146001161561026b57670de0b6b3a7640000900490565b670de0b6b3a76400009081810291818304149015176001161561026b57671bc16d674ec80000900490565b90928282101561255d57610215936125269284670de0b6b3a764000091826124d18383612435565b1061254a57506001600160ff1b039590505b8351916124f96124f38385612414565b85612435565b1061252b57506001600160ff1b0392612520925090505b6040602082015191015190612843565b926119ad565b6119ad565b61252092611bd461253f9261254494612414565b61288b565b91612510565b6125579161253f91612435565b946124e3565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b81810291818304149015176001161561026b576001670de0b6b3a7640000600019830104019015150290565b6103e99081810291818304149015176001161561026b5760016103e8600019830104019015150290565b90670de0b6b3a7640000918281029281840414901517811515161561026b57600190600019830104019015150290565b6101008183031261026b57805192610215602083015193606060408501519401610ea3565b91906103e89260009360009183821161274b57612669816133e2565b6126738583613521565b600061267f828461152f565b1361272c5750612690859695610d14565b60019460009186805b6126aa575b50505050505050509050565b15612707575b50859697985080916126c56112998b88610cb0565b996126d08b87613521565b90836126dc878461152f565b136126fb57505089925b876126f18886610d24565b9201939998612699565b8b9750909450926126e6565b861080612721575b1561271a57886126b0565b808061269e565b50610100821061270f565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e89260009360009183821161274b5761278881613543565b61279285836136b3565b600061279e828461152f565b1361272c57506127af859695610d14565b60019460009186805b6127c85750505050505050509050565b15612825575b50859697985080916127e36112998b88610cb0565b996127ee8b876136b3565b90836127fa878461152f565b1361281957505089925b8761280f8886610d24565b92019399986127b8565b8b975090945092612804565b861080612838575b1561271a57886127ce565b50610100821061282d565b9061284d90612ac8565b633b9aca0090818102918183041490151715610cab5761021591612414565b61021591612365670de0b6b3a764000061235f61235a61236a95612fbb565b6706f05b59d3b20000811461291157670de0b6b3a764000090818112156128ff5780156128ed578060011b908105600203610cab576128c990612cd3565b906713a04bbdfdc9be8891808302928305146001161561026b5761021591056119c9565b6040516322ed598560e21b8152600490fd5b6040516307a0212760e01b8152600490fd5b50600090565b680248ce36a70cb26b3e1981131561291157680755bf798b4a1bf1e5811215612a67576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b91906101208382031261026b57825192602081015192610215604083015193608060608501519401610ea3565b60b581600160881b811015612b6f575b80690100000000000000000062010000921015612b62575b65010000000000811015612b55575b6301000000811015612b48575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b91612b0c565b60201c9160101b91612aff565b60401c9160201b91612af0565b5068b500000000000000009050608082901c612ad8565b671bc16d674ec8000081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e881810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e88082029160016000198210179181840514901517161561026b57670de0b6b3a7640000900590565b6713a04bbde78cc40081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b90911317161561026b57670de0b6b3a7640000900590565b670de0b6b3a764000090818102918205146001161561026b57671bc16d674ec80000900590565b670de0b6b3a764000090818102918205146001161561026b576713a04bbde78cc400900590565b670de0b6b3a76400009081810291820514821515161561026b570590565b600081128015612e13575b612e015780156128ff57671bc16d674ec8000081146128ed57670de0b6b3a76400008112908115612df257905b612d1482613189565b80156128ff57612d7d612d41612d3c612d37612d32612d8295612fbb565b61324a565b612ac8565b6114f5565b611620612d55612d50836131b4565b611873565b612d77612d72612d6c612d67866131df565b61188b565b856132c1565b6118a3565b90613228565b613272565b916000905b60028210612da257505015612d995790565b610215906119c9565b9092612dea81612de4612dba85611620600196612e24565b612d77612dda612dd5611625612dd087806132c1565b6119c9565b61329a565b61236f83866132c1565b906119ad565b930190612d87565b612dfb90611466565b90612d0b565b604051632d0483c560e21b8152600490fd5b50671bc16d674ec800008113612cde565b8015612f3757675698eef06670000081121561291157675698eef0666fffff19811315612f2a576000612f1a612e598361315c565b612ee2611625612e73612e6e612d728561247e565b613209565b92612526612f15612f10612f09612f03612efe612ef8612ef3612eed612ee88d612ee2612edd612ed7612ed2612d6c612ecd612ec7612ec2612ebc612eb78a6132e2565b6118bb565b896132c1565b6118d5565b876132c1565b6118ed565b611907565b836132c1565b61191f565b906132c1565b611939565b8c6132c1565b611951565b8a6132c1565b611969565b886132c1565b93806132c1565b61150e565b611489565b9112156102155761021590611466565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b61237a61237561021593612de461236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b15612f8a57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b886428490612fe760008213612f83565b711340daa0d5f769dba1915cef59f0815a55066130038261330d565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b600160ff1b8114613177576000811215610215571960010190565b604051634d2d75b160e01b8152600490fd5b670de0b6b3a76400009081810291818305149015176001161561026b57671bc16d674ec80000900590565b6703c1665c7aab20009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b669f32752462a0009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b6001811515161561026b576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029181830514901517821515161561026b570590565b671bc16d674ec7ffff1981810291600191830514161561026b57670de0b6b3a7640000900590565b6709d028cc6f205fff1981810291600191830514161561026b57670de0b6b3a7640000900590565b670fa8cedfc2adddfa90808202918205146001161561026b57670de0b6b3a7640000900590565b81810291818305149015176001161561026b57670de0b6b3a7640000900590565b67025f0fe105a314009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b613318811515612f83565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b906133966102159260208082518301019101612628565b93919290506124a9565b906133b76102159260208082518301019101612628565b9390509190916124a9565b906133d96102159260208082518301019101612628565b939290506124a9565b8051810160200190602001906133f791612a9b565b809193925051906020810151604082015191606001519261341783612ac8565b6134209061185a565b9361342a90611443565b9061343486612b86565b61343d87611981565b61344691612c38565b61344f87611981565b61345884612bb5565b613461916114a2565b61346b9089612c38565b61347491612cb5565b61347d90612cd3565b9361348784612fbb565b613490906114d8565b670de0b6b3a764000090056134a490612917565b906134ae91612c38565b6134b790612c67565b6134c0906119c9565b84866134cb86612c09565b906134d591612c38565b906134df91612c38565b6134e8916119ad565b6134f190612917565b826134fc8884612c38565b9061350691612c38565b61350f91612c38565b61351887611981565b611b0d84612bb5565b906135386102159260208082518301019101612a9b565b9493909291506119da565b80518101602001906020019061355891612a9b565b809192935051602082015190604083015192606001519361357884612ac8565b6135819061185a565b9461358b90611443565b9161359587612b86565b61359e88611981565b6135a791612c38565b6135b18383612c38565b6135ba89611981565b6135c391612c38565b6135cc906119c9565b846135d78585612c38565b6135e090612bde565b906135ea91612c38565b6135f3916119ad565b6135fc91612cb5565b613605906119c9565b61360e90612cd3565b9461361885612fbb565b613621906114d8565b670de0b6b3a7640000900561363590612917565b9061363f91612c38565b61364890612c67565b613651906119c9565b858761365c87612c09565b9061366691612c38565b9061367091612c38565b613679916119ad565b61368290612917565b8361368d898b612c38565b9061369791612c38565b6136a091612c38565b906136aa88611981565b61213085612bb5565b906136ca6102159260208082518301019101612a9b565b9493909250611fce56fea2646970667358221220f3e875cd9c43c4535da38090630f644037f96036f7dad55519e2d7d792047e4b64736f6c6343000816003360803461007457601f611bc438819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051611b3490816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b6109e4565b6109bb565b610814565b6107da565b610674565b6103dc565b6102e1565b61023d565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101df565b838082518301019101610a17565b9061010d6100ff600435610b92565b868082518301019101610a32565b92610d8d565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761015057604052565b61011e565b60c0810190811067ffffffffffffffff82111761015057604052565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101bd601f8201601f191660200184610171565b8294818452818301116101da578281602093846000960137010152565b600080fd5b9080601f830112156101da578160206101fa93359101610193565b90565b919082519283825260005b848110610229575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610208565b346101da5760003660031901126101da57604051604081019080821067ffffffffffffffff8311176101505761029a916040526009815268131bd9d39bdc9b585b60ba1b60208201526040519182916020835260208301906101fd565b0390f35b906040516080810181811067ffffffffffffffff821117610150576040526060600382948054845260018101546020850152600281015460408501520154910152565b346101da5760203660031901126101da5760043560005260016020526101c0604060002061030e8161029e565b9061031b6004820161029e565b906103bd61032b6008830161029e565b610393600c84015493600d60018060a01b03910154169461036d6040518098606080918051845260208101516020850152604081015160408501520151910152565b80516080880152602081015160a0880152604081015160c08801526060015160e0870152565b80516101008601526020810151610120860152604081015161014086015260600151610160850152565b6101808301526101a0820152f35b6001600160a01b038116036101da57565b346101da576060806003193601126101da576103f96004356103cb565b6024356044359167ffffffffffffffff83116101da576104206104829336906004016101df565b8161043c61042d85610b92565b60208082518301019101610a32565b60005490949061046290610456906001600160a01b031681565b6001600160a01b031690565b60405180809881946333854efd60e21b8352600483019190602083019252565b03915afa801561061457600091829583926105d9575b50806020806104ac93518301019101610a17565b939194909682861160001461054c5750916104ed826104e8836104e36104fe976104d96104f5988c610aa3565b908c0151906112af565b6112af565b6112db565b505b83610afe565b93828685610d8d565b9384601319129283610541575b61029a9394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b60148612935061050b565b90929091508187111561057b57610575826104e8836104e36104fe976104d96104f5988e610aa3565b506104ef565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9095506104ac92506106019150833d851161060d575b6105f98183610171565b810190610a17565b95919290959190610498565b503d6105ef565b610a81565b9060606003198301126101da57600435610632816103cb565b916024359160443567ffffffffffffffff928382116101da57806023830112156101da5781600401359384116101da57602484830101116101da576024019190565b346101da5761068236610619565b600054929350916001600160a01b031633036107c85761078661077e61042d610779956106c0608095610743976106b7610b67565b50810190610e8c565b6020819b949a9399929b01516106e0866000526001602052604060002090565b55604081015160046106fc876000526001602052604060002090565b015580516008610716876000526001602052604060002090565b01556060810151600c610733876000526001602052604060002090565b015501516001600160a01b031690565b600d610759846000526001602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610b92565b848385610d8d565b92836013191291826107bd575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b601485129250610793565b604051636853cba760e01b8152600490fd5b346101da5760606107ea36610619565b818094509492940103126101da5780359061078661077e61042d6040602085013594013595610b92565b346101da5761082236610619565b6000549093906001600160a01b0390811633036107c857610863610456600d610855876000526001602052604060002090565b01546001600160a01b031690565b9116036109a95761087683820182610b32565b61087f81610b47565b600181036108b857506108a261089d6108b392600c94953691610193565b610fc3565b926000526001602052604060002090565b01555b005b6108c181610b47565b600381036108fd5750906108e56108e06108f8936108b6953691610193565b610f19565b9290916000526001602052604060002090565b610f41565b61090681610b47565b6004810361094057509060046109276108e061093a946108b6963691610193565b9390926000526001602052604060002090565b01610f41565b61094981610b47565b6002810361096a57509060086109276108e061093a946108b6963691610193565b80610976600592610b47565b03610997576107596108a2610992600d936108b6963691610193565b610ef1565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101da5760003660031901126101da576000546040516001600160a01b039091168152602090f35b346101da5760203660031901126101da5761029a610a03600435610b92565b6040519182916020835260208301906101fd565b908160609103126101da578051916040602083015192015190565b908160a09103126101da57608060405191610a4c83610134565b805183526020810151602084015260408101516040840152606081015160608401520151610a79816103cb565b608082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610ab057565b610a8d565b91908201809211610ab057565b90671bc16d674ec8000060008382039312818412811691841390151617610ab057565b9067119000ab100ffbff198201918213600116610ab057565b81810392916000138015828513169184121617610ab057565b600160ff1b8114610ab05760000390565b600611156101da57565b908160209103126101da57356101fa81610b28565b60061115610b5157565b634e487b7160e01b600052602160045260246000fd5b60405190610b7482610134565b60006080838281528260208201528260408201528260608201520152565b610b9a610b67565b816000526001602052610bb8610bb3604060002061029e565b610ff8565b9160208201928352806000526001602052610bdc610bb3600860406000200161029e565b8252600c610c1d610c05610bb36004610bff866000526001602052604060002090565b0161029e565b92604085019384526000526001602052604060002090565b015490606083019182526040519383516020860152516040850152516060840152516080830152608060018060a01b039101511660a082015260a081526101fa81610155565b9081672005fe4f268ea00001918212600116610ab057565b9081670dc5527f642c200001918212600116610ab057565b9081670de0b6b3a764000001918212600116610ab057565b9081670b68df18e471fbff190191821215600116610ab057565b90816714a8454c19e1ac0001918212600116610ab057565b9081670fc10e01578277ff190191821215600116610ab057565b90816703debd083b8c7c0001918212600116610ab057565b9081670295d400ea3257ff190191821215600116610ab057565b9081670157d8b2ecc7080001918212600116610ab057565b90816705310aa7d521300001918212600116610ab057565b9081670de0cc3d1561000001918212600116610ab057565b91909160008382019384129112908015821691151617610ab057565b909282821015610e47576101fa93610e0a9284670de0b6b3a76400009182610db5838361130b565b10610e3457506001600160ff1b039590505b835191610ddd610dd7838561132d565b8561130b565b10610e0f57506001600160ff1b0392610e04925090505b6040602082015191015190611286565b92610d71565b610d71565b610e0492610e23610e2992610e2e9461132d565b9061130b565b6110b3565b91610df4565b610e4191610e299161130b565b94610dc7565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b80910361010081126101da5781359260208301359260a0604082013593605f1901126101da5760e060405191610ec183610134565b606081013583526080810135602084015260a0810135604084015260c081013560608401520135610a79816103cb565b6040818051810103126101da5780610f0e60206040930151610b28565b0151610456816103cb565b6060818051810103126101da57610f336020820151610b28565b606060408201519101519091565b919042821115610fb157610f57610bb38461029e565b9081845542600385015542830391838311610ab057610f7591610afe565b428314610f9b57600160ff1b8114600019831416610ab057600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101da5780610fe060206040930151610b28565b015190565b81810292918115918404141715610ab057565b606081015160208201518082146110735780421160001461106b57905b8103908111610ab05760408201908151600081136000146110485750611042906101fa9351925190610fe5565b90610ab5565b9261105f9250611059905193610b17565b90610fe5565b8103908111610ab05790565b504290611015565b50505190565b90633b9aca0091828102928184051490151715610ab057565b60008190039190600160ff1b8114600116610ab057600019830503610ab057565b6706f05b59d3b20000811461128057670de0b6b3a76400008082121561122a57811561124b5760018260011b916002938305600203610ab05760008312801561126f575b61125d57821561122a57671bc16d674ec80000831461124b57821291821561123c57925b611124846118db565b801561122a5761119661115561115061114b61114661119b959997969961146f565b61199c565b611379565b611079565b61119161116961116483611906565b610c63565b61118b61118661118061117b86611931565b610c7b565b85611a13565b610c93565b9061197a565b610afe565b6119c4565b936000925b8184106111d257505050506101fa916111bf916000146111c4576118b4565b610b17565b6111cd90610b17565b6118b4565b90916112208661121a6111ea8561119186999b611610565b61118b61120a6112056112006111bf8780611a13565b611730565b6119ec565b6112148386611a13565b90610afe565b90610d71565b95019291906111a0565b6040516307a0212760e01b8152600490fd5b61124590610ac2565b9261111b565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec8000083136110f7565b50600090565b9061129090611379565b633b9aca0090818102918183041490151715610ab0576101fa9161132d565b8181029181830414901517600116156101da576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101da57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101da570490565b8181029181830414901517600116156101da57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517600116156101da57671bc16d674ec80000900490565b60b581600160881b811015611420575b80690100000000000000000062010000921015611413575b65010000000000811015611406575b63010000008110156113f9575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916113bd565b60201c9160101b916113b0565b60401c9160201b916113a1565b5068b500000000000000009050608082901c611389565b1561143e57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642849061149b60008213611437565b711340daa0d5f769dba1915cef59f0815a55066114b782611a5f565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b801561172357675698eef06670000081121561128057675698eef0666fffff1981131561171657600061170661164583611ad1565b6116ce61120061165f61165a6111868561134e565b61195b565b92610e0a6117016116fc6116f56116ef6116ea6116e46116df6116d96116d48d6116ce6116c96116c36116be6111806116b96116b36116ae6116a86116a38a611a34565b610cab565b89611a13565b610cc5565b87611a13565b610cdd565b610cf7565b83611a13565b610d0f565b90611a13565b610d29565b8c611a13565b610d41565b8a611a13565b610d59565b88611a13565b9380611a13565b611092565b610ae5565b9112156101fa576101fa90610ac2565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b680248ce36a70cb26b3e1981131561128057680755bf798b4a1bf1e5811215611880576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be889080820291820514600116156101da57670de0b6b3a7640000900590565b670de0b6b3a7640000908181029181830514901517600116156101da57671bc16d674ec80000900590565b6703c1665c7aab2000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b669f32752462a000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b600181151516156101da576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a764000090818102918183051490151782151516156101da570590565b671bc16d674ec7ffff198181029160019183051416156101da57670de0b6b3a7640000900590565b6709d028cc6f205fff198181029160019183051416156101da57670de0b6b3a7640000900590565b670fa8cedfc2adddfa9080820291820514600116156101da57670de0b6b3a7640000900590565b8181029181830514901517600116156101da57670de0b6b3a7640000900590565b67025f0fe105a31400908181029181830514901517600116156101da57670de0b6b3a7640000900590565b611a6a811515611437565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b600160ff1b8114611aec5760008112156101fa571960010190565b604051634d2d75b160e01b8152600490fdfea2646970667358221220b596d744fe988e0f66eb3212b01d8a9e660acea43730ff108a9b5edd5f05d2b364736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a26469706673582212203e63a91fb7c32d1d34d3e2145fad4530fb7ea1224228585fea08d5aba06f98ce64736f6c63430008160033","sourceMap":"303:7898:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1959:10;;;;;303:7898;;;1057:14:1;303:7898:48;;;;;;;;;1959:10;;;;;;303:7898;1959:10;;;;;;;;303:7898;;;;;317:4:31;;;:::i;:::-;;;;1057:14:1;2094:10:48;2022:187;;;317:4:31;378;2022:187:48;;;317:4:31;540:11:48;2022:187;;;317:4:31;2022:187:48;;;;317:4:31;303:7898:48;2315:49;303:7898;609:32;303:7898;;;;317:4:31;;2315:6:48;317:4:31;303:7898:48;;;;;;;;;;;2315:49;;;;;;:::i;:::-;;;;;;;;;;2022:187;2315:49;2577:21;2315:49;;;;;303:7898;378:4:31;;2461:9:48;378:4:31;303:7898:48;;;2493:6;303:7898;;;2521:6;303:7898;;;;;317:4:31;;;;:::i;:::-;;;2412:154:48;;;317:4:31;2412:154:48;;;317:4:31;2022:187:48;2412:154;;317:4:31;378;2577::48;378::31;303:7898:48;;;;;;;;;;;;;2577:21;;;;;;:::i;:::-;;;;;;;;;;;303:7898;378:4:31;;2577::48;378::31;303:7898:48;;;;;;;3517:12;;;;;;;;;;;;;;;;;;303:7898;-1:-1:-1;;;;303:7898:48;;;;;;;317:4:31;303:7898:48;317:4:31;;;;;;2315:6:48;317:4:31;303:7898:48;;;;;;;;;;3573:42;;;;;;303:7898;3448:4;1057:14:1;303:7898:48;;;3481:9;303:7898;;;;3573:42;;;;;;;303:7898;;;3573:42;;;303:7898;;;;;;;;;;;;;;3626:27;;;;303:7898;;1057:14:1;303:7898:48;;;;;;;;:::i;:::-;3626:27;;;;;;;;;;303:7898;;;3626:27;;;;;;-1:-1:-1;3626:27:48;;;;;;;:::i;:::-;;;;;:::i;:::-;303:7898;;;3626:27;;;;;;303:7898;;;;;;;;;;;3573:42;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;303:7898;;;;;;;;;;;;-1:-1:-1;;;303:7898:48;;;;;1057:14:1;303:7898:48;;3517:12;;;;;;;;;;;;;;;;;:::i;:::-;;;303:7898;;;;317:4:31;3517:12:48;;;;;303:7898;;;;3517:12;;;;;;303:7898;;;;;;;;;2577:21;;;2022:187;2577:21;2022:187;2577:21;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;303:7898;;;;;;;;;2315:49;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;303:7898;;;;;;;;;1959:10;;;;:::i;:::-;303:7898;;1959:10;;;;303:7898;;;;1959:10;303:7898;;;;;;;;;;;;;;;;;;;;;;;;;;1959:10;;;;;303:7898;;;1057:14:1;303:7898:48;;;;;;;;;1959:10;;;;;;303:7898;1959:10;;;;;;;;303:7898;;;;;317:4:31;;;:::i;:::-;;;;1057:14:1;2022:187:48;2094:10;2022:187;;;317:4:31;378;2022:187:48;;;317:4:31;540:11:48;2022:187;;;317:4:31;2022:187:48;;;;317:4:31;303:7898:48;2315:49;303:7898;609:32;303:7898;;;;317:4:31;;2315:6:48;317:4:31;303:7898:48;;;;;;;;;;;2315:49;;;;;;:::i;:::-;;;;;;;;;;2022:187;2315:49;2577:21;2315:49;;;;;303:7898;378:4:31;;2461:9:48;378:4:31;303:7898:48;;;2493:6;303:7898;;;2521:6;303:7898;;;;;317:4:31;;;;:::i;:::-;;;2412:154:48;;;317:4:31;2412:154:48;;;317:4:31;2022:187:48;2412:154;;317:4:31;378;2577::48;378::31;303:7898:48;;;;;;;;;;;;;2577:21;;;;;;:::i;:::-;;;;;;;;;;;;;;;303:7898;378:4:31;;;2577::48;378::31;303:7898:48;;;;;;;;;;5226:12;;;;;;;;;;;;;303:7898;-1:-1:-1;;;303:7898:48;;;;;;;317:4:31;303:7898:48;317:4:31;;2315:6:48;317:4:31;303:7898:48;;;;;;;;;;;;5275:91;;;;303:7898;5331:9;1057:14:1;303:7898:48;;;5342:14;303:7898;;;;5275:91;;;;;;;;;;;;303:7898;5390:12;;;;:::i;:::-;303:7898;;5275:91;;;;;;;;;;;;;;;:::i;:::-;;;303:7898;;;;5390:12;317:4:31;;5275:91:48;;;;;;;;;303:7898;;;;;;;;;-1:-1:-1;;;303:7898:48;;;;;1057:14:1;303:7898:48;;5226:12;;;;;;;;;;;;;;;;;:::i;:::-;;;303:7898;;;;317:4:31;5226:12:48;;;;;;;;;;303:7898;;;;;;;;;2577:21;;;2022:187;2577:21;2022:187;2577:21;;;;;;;:::i;:::-;;;;;;2315:49;;;;;;;;;;;;;:::i;:::-;;;;;303:7898;;;;;;;;;1959:10;;;;:::i;:::-;303:7898;;1959:10;;;;;303:7898;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1959:10;;;;;303:7898;;;1057:14:1;303:7898:48;;;;;;;;;1959:10;;;;;;303:7898;1959:10;;;;;;;;303:7898;;;;;317:4:31;;;:::i;:::-;;;;1057:14:1;2094:10:48;2022:187;;;317:4:31;378;2022:187:48;;;317:4:31;540:11:48;2022:187;;;317:4:31;2022:187:48;;;;317:4:31;303:7898:48;2315:49;303:7898;609:32;303:7898;;;;317:4:31;;2315:6:48;317:4:31;303:7898:48;;;;;;;;;;;2315:49;;;;;;:::i;:::-;;;;;;;;;;2022:187;2315:49;2577:21;2315:49;;;;;378:4:31;;2461:9:48;378:4:31;303:7898:48;;;2493:6;303:7898;;;2521:6;303:7898;;;;;317:4:31;;;;:::i;2577:21:48:-;;;;;;;;;;;303:7898;378:4:31;;2577::48;378::31;303:7898:48;;;;;;;3799:12;;;;;;;;;;;;;;;;;;303:7898;-1:-1:-1;;;;303:7898:48;;;;;;;317:4:31;303:7898:48;317:4:31;;;;;;2315:6:48;317:4:31;303:7898:48;;;;;;;;;;3855:42;;;;;;303:7898;;1057:14:1;303:7898:48;;;3763:9;303:7898;;;;3855:42;;;;;;;303:7898;;;3855:42;;;303:7898;;;;;;;;;;;;;3908:27;;;;303:7898;;1057:14:1;303:7898:48;;;;;;;;:::i;3799:12::-;;;;;;;;;;;;;;;;;:::i;:::-;;;303:7898;;;;317:4:31;3799:12:48;;;;;;;;;;2577:21;;;2022:187;2577:21;2022:187;2577:21;;;;;;;:::i;:::-;;;;;;1959:10;;;;:::i;:::-;303:7898;;1959:10;;;;303:7898;;;;;;;;;;;;;;;;;1959:10;;;;;303:7898;;;1057:14:1;303:7898:48;;;;;;;;;1959:10;;;;;;303:7898;1959:10;;;;;;;;303:7898;;;;;317:4:31;;;:::i;:::-;;;;1057:14:1;2022:187:48;2094:10;2022:187;;;317:4:31;378;2022:187:48;;;317:4:31;540:11:48;2022:187;;;317:4:31;2022:187:48;;;;317:4:31;303:7898:48;2315:49;303:7898;609:32;303:7898;;;;317:4:31;;2315:6:48;317:4:31;303:7898:48;;;;;;;;;;;2315:49;;;;;;:::i;:::-;;;;;;;;;;2022:187;2315:49;2577:21;2315:49;;;;;378:4:31;;2461:9:48;378:4:31;303:7898:48;;;2493:6;303:7898;;;2521:6;303:7898;;;;;317:4:31;;;;:::i;2577:21:48:-;;;;;;;;;;;;;;;303:7898;378:4:31;;;2577::48;378::31;303:7898:48;;;;;;;;;;4703:12;;;;;;;;;;;;;303:7898;-1:-1:-1;;;303:7898:48;;;;;;;317:4:31;303:7898:48;317:4:31;;2315:6:48;317:4:31;303:7898:48;;;;;;;;;;;;4750:91;;;;303:7898;4797:9;1057:14:1;303:7898:48;;;4808:23;303:7898;;;;4750:91;;;;;;;;;;;;303:7898;4865:11;;;;:::i;4750:91::-;;;;;;;;;;;;;;;:::i;:::-;;;303:7898;;;;4865:11;317:4:31;;4750:91:48;;;;;;;;4703:12;;;;;;;;;;;;;;;;;:::i;:::-;;;303:7898;;;;317:4:31;4703:12:48;;;;;;;;;2577:21;;;2022:187;2577:21;2022:187;2577:21;;;;;;;:::i;:::-;;;;;;1959:10;;;;:::i;:::-;303:7898;;1959:10;;;;303:7898;;;;;;;;;;;;;;;;;1959:10;;;;;303:7898;;;1057:14:1;303:7898:48;;;;;;;;;1959:10;;;;;;303:7898;1959:10;;;;;;;;303:7898;;;;;317:4:31;;;:::i;:::-;;;;1057:14:1;2022:187:48;2094:10;2022:187;;;317:4:31;378;2022:187:48;;;317:4:31;540:11:48;2022:187;;;317:4:31;2022:187:48;;;;317:4:31;303:7898:48;2315:49;303:7898;609:32;303:7898;;;;317:4:31;;2315:6:48;317:4:31;303:7898:48;;;;;;;;;;;2315:49;;;;;;:::i;:::-;;;;;;;;;;2022:187;2315:49;2577:21;2315:49;;;;;378:4:31;;2461:9:48;378:4:31;303:7898:48;;;2493:6;303:7898;;;2521:6;303:7898;;;;;317:4:31;;;;:::i;2577:21:48:-;;;;;;;;;;;;;;;303:7898;378:4:31;;;2577::48;378::31;303:7898:48;;;;;;;;;;4963:12;;;;;;;;;;;;;303:7898;-1:-1:-1;;;303:7898:48;;;;;;;317:4:31;303:7898:48;317:4:31;;2315:6:48;317:4:31;303:7898:48;;;;;;;;;;;;5012:91;;;;303:7898;5068:9;1057:14:1;303:7898:48;;;5079:14;303:7898;;;;5012:91;;;;;;;;;;;;5127:12;;;;:::i;4963:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;303:7898;;;;317:4:31;4963:12:48;;;;;;;;;2577:21;;;2022:187;2577:21;2022:187;2577:21;;;;;;;:::i;:::-;;;;;;1959:10;;;;:::i;:::-;303:7898;;1959:10;;;;303:7898;;;;;;;;;;;;;;;;;540:11;303:7898;;;;;;;;;;;;;;;;;;;;1959:10;;;;;303:7898;;;1057:14:1;303:7898:48;;;;;;;;;1959:10;;;;;;303:7898;1959:10;;;;;;;;303:7898;;;;;317:4:31;;;:::i;:::-;;;;1057:14:1;2022:187:48;2094:10;2022:187;;;317:4:31;378;2022:187:48;;;317:4:31;540:11:48;2022:187;;;317:4:31;2022:187:48;;;;317:4:31;303:7898:48;2315:49;303:7898;609:32;303:7898;;;;317:4:31;;2315:6:48;317:4:31;303:7898:48;;;;;;;;;;;2315:49;;;;;;:::i;:::-;;;;;;;;;;2022:187;2315:49;2577:21;2315:49;;;;;378:4:31;;2461:9:48;378:4:31;303:7898:48;;;2493:6;303:7898;;;2521:6;303:7898;;;;;317:4:31;;;;:::i;2577:21:48:-;;;;;;;;;;;;;;;303:7898;378:4:31;;;2577::48;378::31;303:7898:48;;;;;;;;;;4446:12;;;;;;;;;;;;;303:7898;-1:-1:-1;;;303:7898:48;;;;;;;317:4:31;303:7898:48;317:4:31;;2315:6:48;317:4:31;303:7898:48;;;;;;;;;;;;4493:91;;;;303:7898;4540:9;1057:14:1;303:7898:48;;;4551:23;303:7898;;;;4493:91;;;;;;;;;;;;4608:11;;;;:::i;4446:12::-;;;;;;;;;;;;;;;;;:::i;:::-;;;303:7898;;;;317:4:31;4446:12:48;;;;;;;;;2577:21;;;2022:187;2577:21;2022:187;2577:21;;;;;;;:::i;:::-;;;;;;1959:10;;;;:::i;:::-;303:7898;;1959:10;;;;303:7898;;;;;;;;;;;;;;;;1959:10;;;;;303:7898;;-1:-1:-1;;;1959:10:48;;;;;303:7898;;;1959:10;303:7898;1057:14:1;303:7898:48;1959:10;;;;;;;;;;;;;303:7898;;;;;317:4:31;;;;:::i;:::-;;;;1057:14:1;2022:187:48;2094:10;2022:187;;;317:4:31;378;2022:187:48;;;317:4:31;2022:187:48;;540:11;2022:187;;;317:4:31;2022:187:48;;;;;317:4:31;2315:49:48;303:7898;609:32;303:7898;;;;317:4:31;;2315:6:48;317:4:31;303:7898:48;;;;;;;;;;;2315:49;;;;;;:::i;:::-;;;;;;;;;;2577:21;2315:49;;;;;;;;303:7898;378:4:31;;2461:9:48;378:4:31;303:7898:48;;;2493:6;303:7898;;;2521:6;303:7898;;;;;317:4:31;;;;:::i;:::-;;;2412:154:48;;;317:4:31;2412:154:48;;;317:4:31;2412:154:48;;;317:4:31;378;2577::48;378::31;303:7898:48;;;;;;;;;;;;;2577:21;;;;;;:::i;:::-;;;;;;;;;;;303:7898;378:4:31;;;;2577::48;378::31;303:7898:48;;;;;;;;;;4053:12;;;;;;;;;;;;;303:7898;-1:-1:-1;;;303:7898:48;;;;;;;317:4:31;;2315:6:48;317:4:31;303:7898:48;;;;;;;;4129:38;;;;;;303:7898;4129:38;;1057:14:1;4129:38:48;;;;;;;;;;;;;;;;;;303:7898;-1:-1:-1;303:7898:48;;-1:-1:-1;;;4199:37:48;;;;;303:7898;;;;;;;;;;;;;;;;;;;;;;;4199:37;;;;;;;;;;;;;;;303:7898;-1:-1:-1;303:7898:48;;-1:-1:-1;;;4268:37:48;;;;;303:7898;;;;;;;;;;;;;;;;;;;;;;;;;;;;4268:37;;;;;;;;;;;;;;303:7898;-1:-1:-1;607:5:8;;;;;;615;;;;:::i;:::-;607:21;;4359:3:48;3648:16:3;;3644:324;;303:7898:48;;;3644:324:3;303:7898:48;;;3685:41:3;303:7898:48;;;;;;;;;;;;;;;;;-1:-1:-1;;;303:7898:48;;;;3685:41:3;303:7898:48;;;;;;;;;;;-1:-1:-1;;;303:7898:48;;;;;;;;3745:31:3;;;;;;303:7898:48;;;;;;;;;;;-1:-1:-1;;;303:7898:48;;;;;;;;3795:31:3;303:7898:48;;;;;;;;;;;;-1:-1:-1;;;303:7898:48;;;;4359:3;303:7898;;;;3845:38:3;303:7898:48;;;;;;;;;;;-1:-1:-1;;;303:7898:48;;;;;;;;3902:35:3;2939:104:0;;2445:359;;3644:324:3;303:7898:48;;;;;;;;;;;;;;;3644:324:3;;;;;;;;;;303:7898:48;;;2445:359:0;2534:196;1057:14:1;1671:64:0;303:7898:48;;;;;;;2645:67:0;;;;303:7898:48;;;;1671:64:0;;;303:7898:48;;;;4068:1;303:7898;;;;2645:67:0;;;;;:::i;:::-;303:7898:48;2534:196:0;;;;;1671:64;;;;;;317:4:31;1671:64:0;;;;;;;:::i;:::-;;;2534:196;;;;;;;;;:::i;:::-;2499:245;;;;;;;:::i;:::-;;2445:359;;;;;;;;607:21:8;623:5;;;;:::i;:::-;607:21;;;4268:37:48;;;;;;;;;;;;;;;;;;:::i;:::-;;;303:7898;;;;317:4:31;;;4268:37:48;;;;;;;;;303:7898;;;;;;;;;4199:37;;;-1:-1:-1;4199:37:48;-1:-1:-1;4199:37:48;;;;;;;;;;;;;;:::i;:::-;;;303:7898;;;;317:4:31;;;;;;4199:37:48;;317:4:31;;4268:37:48;4199;;;;;;;;303:7898;;;;;;;;;4129:38;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;303:7898;;;;317:4:31;;303:7898:48;;;317:4:31;303:7898:48;;;317:4:31;;303:7898:48;4199:37;4129:38;;303:7898;;;;4129:38;;;;;;303:7898;;;;;;;;;;-1:-1:-1;;;303:7898:48;;;;;1057:14:1;303:7898:48;;4053:12;;;;;;;;;;;;;;;;:::i;:::-;;;303:7898;;;;317:4:31;4053:12:48;;;;;;;;;303:7898;;;;;;;;;2577:21;;;;;;;;;;;;;:::i;:::-;;;;;;2315:49;;;;;;;;;;;;;:::i;:::-;;;;1959:10;;;;:::i;:::-;303:7898;;1959:10;;;;;303:7898;;;;;;;;;;;;;;;;;;;;;;;;609:32;;;;;;;;;;;;;;;;;;;;;;;303:7898;;;;;;;;-1:-1:-1;;;303:7898:48;;;;;;;;;;;;;;;;;;-1:-1:-1;;;303:7898:48;;;;638:2;303:7898;;;;609:32;;;;;;;;;;;303:7898;;;;;;;;;;;;592:50;303:7898;;;592:50;303:7898;;;669:32;;;;;;;;;;;;;;;;;303:7898;669:32;;;303:7898;;;;;;;;-1:-1:-1;;;303:7898:48;;;;;;;;;;;;;;-1:-1:-1;;;303:7898:48;;;;638:2;303:7898;;;;669:32;;;;;;;;;303:7898;;;652:50;303:7898;;;652:50;303:7898;;592:50;303:7898;;712:56;;;;;;303:7898;;;;;712:56;;;743:4;712:56;;;303:7898;750:17;303:7898;;;;;;;;;;712:56;;;;303:7898;712:56;;;;;;;;303:7898;;;;;;652:50;303:7898;;778:56;;;;;;303:7898;;;;;;;;778:56;;;;;;;743:4;;778:56;;;303:7898;;;;778:56;;;;;;;;303:7898;;;;592:50;303:7898;;;652:50;303:7898;;;;;851:28;;;;;;;;;;;;;;;;;303:7898;851:28;;;;;;;303:7898;;378:4:31;;;303:7898:48;378:4:31;;;;303:7898:48;851:28;;;;;;;;;303:7898;;;845:34;303:7898;;;845:34;303:7898;;;896:20;;;;;;;;;;;;;;;;;;;;;303:7898;;;896:20;;;;;;;;;303:7898;;889:27;303:7898;;;;;;889:27;303:7898;;;938:28;;;;;;;;;;;;;;;;;;;;;;;;;;303:7898;;;;938:28;;;;;;;;;303:7898;;;926:40;303:7898;;;;;;;926:40;303:7898;;;985:39;;;;;;;;;;;;;;;;;;;;;;;;;303:7898;;;;985:39;;;;;;;;;303:7898;;;;;;;;976:48;303:7898;;;976:48;303:7898;;;592:50;303:7898;;378:4:31;;;;889:27:48;378:4:31;303:7898:48;;;;;;;;;;;;1034:59;;;;;;;303:7898;1075:17;;378:4:31;;;;303:7898:48;1034:59;;;;;;;;;;;;;;;303:7898;;;;;;;652:50;303:7898;;378:4:31;889:27:48;378:4:31;303:7898:48;;;;1103:59;;;;;;;;;303:7898;378:4:31;;303:7898:48;1103:59;;;;;;;;;;303:7898;;;1103:59;;;;;;;;;;;;;:::i;:::-;;;378:4:31;;;;;;;:::i;:::-;;1103:59:48;;303:7898;;;1103:59;;;;;1034;;;;;;;;;;;;;;;:::i;:::-;;;378:4:31;;;;;;;303:7898:48;378:4:31;;:::i;:::-;;1034:59:48;;;;;;;;;;;303:7898;;;;;;;;;985:39;303:7898;;;;;;;;;985:39;-1:-1:-1;;;303:7898:48;;;;;;;;938:28;-1:-1:-1;;;303:7898:48;;;;;;;;896:20;-1:-1:-1;;;303:7898:48;;;;;;;;778:56;;;;:::i;:::-;303:7898;;778:56;;;;303:7898;;;;778:56;303:7898;;;;;;;;;778:56;303:7898;;;712:56;;;;;;;;:::i;:::-;;;;;;;303:7898;;;;;;;;;669:32;-1:-1:-1;;;303:7898:48;;;;;;;;609:32;-1:-1:-1;;;303:7898:48;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;317:4:31;303:7898:48;;;;;;;;;;;;;:::o;:::-;2022:187;303:7898;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;378:4:31:-;;303:7898:48;;;;378:4:31;;;;:::o;317:::-;;;;;;303:7898:48;;-1:-1:-1;;303:7898:48;317:4:31;;;:::o;:::-;;;;;;;;-1:-1:-1;;317:4:31;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;303:7898:48;317:4:31;303:7898:48;;317:4:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;303:7898:48;378:4:31;303:7898:48;;317:4:31;;;;303:7898:48;317:4:31;;;;;303:7898:48;317:4:31;;;;;;;303:7898:48;317:4:31;;;;;;;303:7898:48;317:4:31;;;;;;;303:7898:48;317:4:31;609:32:48;303:7898;;;;317:4:31;;;303:7898:48;317:4:31;;303:7898:48;317:4:31:o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;303:7898:48;317:4:31;;;;303:7898:48;;;;;;;;;317:4:31;;;:::i;:::-;303:7898:48;;-1:-1:-1;;303:7898:48;317:4:31;;;:::o;:::-;;;;;;;;609:32:48;303:7898;;;;317:4:31;;;303:7898:48;317:4:31;;;303:7898:48;317:4:31;;;;;303:7898:48;317:4:31;;;303:7898:48;317:4:31;;;;303:7898:48;317:4:31;;;303:7898:48;317:4:31;;;;;;;;;;;:::i;303:7898:48:-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;378:4:31;;;:::i;:::-;303:7898:48;;;;317:4:31;303:7898:48;;;;317:4:31;303:7898:48;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;317:4:31;;303:7898:48;;317:4:31;303:7898:48;:::o;1671:64:0:-;;;;;;;;;;:::i;:::-;303:7898:48;317:4:31;303:7898:48;;317:4:31;;;:::i;:::-;1671:64:0;;;-1:-1:-1;1671:64:0;;;;:::o;:::-;;;:::o;1819:584::-;1873:7;303:7898:48;;;;;;;;;;;;;;;1896:14:0:o;1869:528::-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;303:7898:48;;;;;;;2196:43:0;;;;303:7898:48;;;1671:64:0;;;303:7898:48;1671:64:0;;303:7898:48;;2196:43:0;;;;;:::i;:::-;2086:175;1671:64;303:7898:48;;2086:175:0;;1671:64;2196:43;2086:175;;1671:64;;;;;;317:4:31;1671:64:0;;;;;;;:::i;:::-;;;2086:175;1671:64;2086:175;;;;;;;:::i;:::-;2047:232;;;;;;;:::i;:::-;317:4:31;2196:43:0;317:4:31;;;2312:27:0;;378:4:31;;;;2312:27:0;2196:43;378:4:31;2312:27:0;;378:4:31;:::i;:::-;303:7898:48;;6108:114:14;-1:-1:-1;6108:114:14;;303:7898:48;;6172:42:14;;;;;;;;;;;;303:7898:48;6172:42:14;;;;;;:::i;:::-;317:4:31;852:159:14;591:42;852:159;;;6108:114::o;5986:116::-;-1:-1:-1;5986:116:14;;303:7898:48;;6051:43:14;;;;;;;;;;;;303:7898:48;6051:43:14;;;;;;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","TEST_SWAP_FEE()":"620a2607","failed()":"ba414fa6","setUp()":"0a9254e4","test_ln_diff_lower()":"31fa62fb","test_ln_diff_raise()":"72a95255","test_ln_optimal_lower()":"622912c1","test_ln_optimal_raise()":"e3d575ce","test_ln_swap_x_in()":"e82984c3","test_ln_swap_y_in()":"849ff887","test_price_formulas()":"2c10d860"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_SWAP_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_ln_diff_lower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_ln_diff_raise\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_ln_optimal_lower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_ln_optimal_raise\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_ln_swap_x_in\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_ln_swap_y_in\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_price_formulas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/LogNormal/LogNormalTest.t.sol\":\"LogNormalTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/lib/SignedWadMath.sol\":{\"keccak256\":\"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a\",\"dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/solvers/LogNormal/LogNormalExtendedLib.sol\":{\"keccak256\":\"0x204015cfa704225710b310e02fd4ea4648617f580cbb08fb22306357969e4a63\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0b2df304ee8a88040b573201316e12756e74c042fddbb4ec25d23ecd34971768\",\"dweb:/ipfs/QmaC4vUQY6UAD6UrEF3rvMLyYbtQKuF9Bbgr3aqkGMzSqF\"]},\"src/solvers/LogNormal/LogNormalSolver.sol\":{\"keccak256\":\"0xe97dbbad3eb6aadeaaa7c9ad82cf08a79006ad3058e6dcbc2576e17d6337cc1d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://22e41f296c3675c79ba6a670d081e073cdb935fd44f8e739a88a250be0766004\",\"dweb:/ipfs/QmZMYJq14i3q2zKTerD836DXC9deux4EggR3BNp61J4t2U\"]},\"src/strategies/LogNormal/LogNormal.sol\":{\"keccak256\":\"0xce0e14a6180d989eff4223bd173904717c745f93c7d02e972dce9d4f5a414d15\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0fe700ac552153eb030453532afdf52d7ae1b7f8ca53b0f050ab9a9e0b1f0ee9\",\"dweb:/ipfs/QmPQW7F1wUqLKs2qPmvJq5EiBfUmPGGsW4y9dUmMtDkfnt\"]},\"src/strategies/LogNormal/LogNormalLib.sol\":{\"keccak256\":\"0x208f8cd3b02d7305d4c54cf02c07f443ddfed1c6c719e752888be208c3ad3645\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://850b799c647dfbece76c7c1daad3ac375243f66daa0eb8206eeeee783982429c\",\"dweb:/ipfs/QmUrixVb4EAxccZxvZCoAJjF8YRqnMbX6cpGCwPfjZvgQk\"]},\"src/strategies/LogNormal/LogNormalMath.sol\":{\"keccak256\":\"0x5d97983f91cf766e1e87ef244a39c6ec6961de38c4c8817030b32edd72a1e65f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://df6121bf8157bad9b659d484fdcc8ebf0cd41179b323d06225d1cf6bff266663\",\"dweb:/ipfs/QmRGN6MwWZb9f6X4Xqv7f3VpUFWXFb36jDKcyEQVaFUhhz\"]},\"src/test/LogNormal/LogNormalTest.t.sol\":{\"keccak256\":\"0x4e691281288e1ceeb90eb88f751974dcdd2579eb8f6119593d1e6ce279185c1f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4ef3a395f49589939cd84c46af7fc4c4073c6ad65f7ec17dd4f15a4abf4b4fbb\",\"dweb:/ipfs/QmXkhkSEZHLKS1DayByDdjpWAxNuL5mkNpCqRjWFjLHAwG\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_SWAP_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_ln_diff_lower"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_ln_diff_raise"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_ln_optimal_lower"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_ln_optimal_raise"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_ln_swap_x_in"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_ln_swap_y_in"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_price_formulas"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/LogNormal/LogNormalTest.t.sol":"LogNormalTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/lib/SignedWadMath.sol":{"keccak256":"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630","urls":["bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a","dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN"],"license":"MIT"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/solvers/LogNormal/LogNormalExtendedLib.sol":{"keccak256":"0x204015cfa704225710b310e02fd4ea4648617f580cbb08fb22306357969e4a63","urls":["bzz-raw://0b2df304ee8a88040b573201316e12756e74c042fddbb4ec25d23ecd34971768","dweb:/ipfs/QmaC4vUQY6UAD6UrEF3rvMLyYbtQKuF9Bbgr3aqkGMzSqF"],"license":"GPL-3.0-or-later"},"src/solvers/LogNormal/LogNormalSolver.sol":{"keccak256":"0xe97dbbad3eb6aadeaaa7c9ad82cf08a79006ad3058e6dcbc2576e17d6337cc1d","urls":["bzz-raw://22e41f296c3675c79ba6a670d081e073cdb935fd44f8e739a88a250be0766004","dweb:/ipfs/QmZMYJq14i3q2zKTerD836DXC9deux4EggR3BNp61J4t2U"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormal.sol":{"keccak256":"0xce0e14a6180d989eff4223bd173904717c745f93c7d02e972dce9d4f5a414d15","urls":["bzz-raw://0fe700ac552153eb030453532afdf52d7ae1b7f8ca53b0f050ab9a9e0b1f0ee9","dweb:/ipfs/QmPQW7F1wUqLKs2qPmvJq5EiBfUmPGGsW4y9dUmMtDkfnt"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormalLib.sol":{"keccak256":"0x208f8cd3b02d7305d4c54cf02c07f443ddfed1c6c719e752888be208c3ad3645","urls":["bzz-raw://850b799c647dfbece76c7c1daad3ac375243f66daa0eb8206eeeee783982429c","dweb:/ipfs/QmUrixVb4EAxccZxvZCoAJjF8YRqnMbX6cpGCwPfjZvgQk"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormalMath.sol":{"keccak256":"0x5d97983f91cf766e1e87ef244a39c6ec6961de38c4c8817030b32edd72a1e65f","urls":["bzz-raw://df6121bf8157bad9b659d484fdcc8ebf0cd41179b323d06225d1cf6bff266663","dweb:/ipfs/QmRGN6MwWZb9f6X4Xqv7f3VpUFWXFb36jDKcyEQVaFUhhz"],"license":"GPL-3.0-or-later"},"src/test/LogNormal/LogNormalTest.t.sol":{"keccak256":"0x4e691281288e1ceeb90eb88f751974dcdd2579eb8f6119593d1e6ce279185c1f","urls":["bzz-raw://4ef3a395f49589939cd84c46af7fc4c4073c6ad65f7ec17dd4f15a4abf4b4fbb","dweb:/ipfs/QmXkhkSEZHLKS1DayByDdjpWAxNuL5mkNpCqRjWFjLHAwG"],"license":"UNLICENSED"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/LogNormal/LogNormalTest.t.sol","id":42350,"exportedSymbols":{"ArbiterToken":[43381],"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"DFMM":[29062],"DSTest":[1786],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"LPToken":[29516],"Lex":[44392],"LibString":[26659],"LogNormal":[38879],"LogNormalLib":[39517],"LogNormalSolver":[36460],"LogNormalTest":[42349],"MAX_ITER":[33842],"Min":[27736],"MockERC20":[25560],"ONE":[30639],"SQRT_WAD":[30630],"SafeTransferLib":[26744],"SignedWadMathLib":[30623],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"TWO":[30633],"Test":[8195],"TestBase":[1843],"Vm":[9352],"WETH":[26027],"ZERO":[30649],"abs":[27763],"bisection":[31118],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeD1":[34040],"computeD2":[34104],"computeHalfSigmaTauSquared":[39613],"computeInitialPoolData":[34282],"computeLGivenX":[33886],"computeLnSDivK":[39549],"computeNextLiquidity":[34383],"computeNextRx":[34484],"computeNextRy":[34585],"computeOptimalLower":[35332],"computeOptimalRaise":[35398],"computeScalingFactor":[30048],"computeSigmaSqrtTau":[39577],"computeXGivenL":[33976],"computeYGivenL":[33932],"console":[17416],"console2":[25512],"diffLower":[34961],"diffRaise":[35266],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"findRootLiquidity":[34224],"findRootLower":[34631],"findRootRaise":[34677],"findRootX":[34184],"findRootY":[34144],"muli":[27777],"muliWad":[27795],"mulidiv":[39703],"mulidivUp":[39659],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"39:8163:48","nodes":[{"id":41746,"nodeType":"PragmaDirective","src":"39:24:48","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":41747,"nodeType":"ImportDirective","src":"65:28:48","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":42350,"sourceUnit":8196,"symbolAliases":[],"unitAlias":""},{"id":41748,"nodeType":"ImportDirective","src":"94:48:48","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol","file":"solmate/test/utils/mocks/MockERC20.sol","nameLocation":"-1:-1:-1","scope":42350,"sourceUnit":25561,"symbolAliases":[],"unitAlias":""},{"id":41749,"nodeType":"ImportDirective","src":"143:24:48","nodes":[],"absolutePath":"src/DFMM.sol","file":"../../DFMM.sol","nameLocation":"-1:-1:-1","scope":42350,"sourceUnit":29063,"symbolAliases":[],"unitAlias":""},{"id":41750,"nodeType":"ImportDirective","src":"168:50:48","nodes":[],"absolutePath":"src/strategies/LogNormal/LogNormal.sol","file":"../../strategies/LogNormal/LogNormal.sol","nameLocation":"-1:-1:-1","scope":42350,"sourceUnit":38880,"symbolAliases":[],"unitAlias":""},{"id":41751,"nodeType":"ImportDirective","src":"219:53:48","nodes":[],"absolutePath":"src/solvers/LogNormal/LogNormalSolver.sol","file":"../../solvers/LogNormal/LogNormalSolver.sol","nameLocation":"-1:-1:-1","scope":42350,"sourceUnit":36461,"symbolAliases":[],"unitAlias":""},{"id":41752,"nodeType":"ImportDirective","src":"273:28:48","nodes":[],"absolutePath":"src/test/helpers/Lex.sol","file":"../helpers/Lex.sol","nameLocation":"-1:-1:-1","scope":42350,"sourceUnit":44393,"symbolAliases":[],"unitAlias":""},{"id":42349,"nodeType":"ContractDefinition","src":"303:7898:48","nodes":[{"id":41758,"nodeType":"UsingForDirective","src":"340:32:48","nodes":[],"global":false,"libraryName":{"id":41755,"name":"stdStorage","nameLocations":["346:10:48"],"nodeType":"IdentifierPath","referencedDeclaration":7522,"src":"346:10:48"},"typeName":{"id":41757,"nodeType":"UserDefinedTypeName","pathNode":{"id":41756,"name":"StdStorage","nameLocations":["361:10:48"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"361:10:48"},"referencedDeclaration":6088,"src":"361:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}}},{"id":41761,"nodeType":"VariableDeclaration","src":"378:9:48","nodes":[],"constant":false,"mutability":"mutable","name":"dfmm","nameLocation":"383:4:48","scope":42349,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"},"typeName":{"id":41760,"nodeType":"UserDefinedTypeName","pathNode":{"id":41759,"name":"DFMM","nameLocations":["378:4:48"],"nodeType":"IdentifierPath","referencedDeclaration":29062,"src":"378:4:48"},"referencedDeclaration":29062,"src":"378:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"visibility":"internal"},{"id":41764,"nodeType":"VariableDeclaration","src":"393:19:48","nodes":[],"constant":false,"mutability":"mutable","name":"logNormal","nameLocation":"403:9:48","scope":42349,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"},"typeName":{"id":41763,"nodeType":"UserDefinedTypeName","pathNode":{"id":41762,"name":"LogNormal","nameLocations":["393:9:48"],"nodeType":"IdentifierPath","referencedDeclaration":38879,"src":"393:9:48"},"referencedDeclaration":38879,"src":"393:9:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}},"visibility":"internal"},{"id":41767,"nodeType":"VariableDeclaration","src":"418:22:48","nodes":[],"constant":false,"mutability":"mutable","name":"solver","nameLocation":"434:6:48","scope":42349,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"},"typeName":{"id":41766,"nodeType":"UserDefinedTypeName","pathNode":{"id":41765,"name":"LogNormalSolver","nameLocations":["418:15:48"],"nodeType":"IdentifierPath","referencedDeclaration":36460,"src":"418:15:48"},"referencedDeclaration":36460,"src":"418:15:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"visibility":"internal"},{"id":41769,"nodeType":"VariableDeclaration","src":"446:14:48","nodes":[],"constant":false,"mutability":"mutable","name":"tokenX","nameLocation":"454:6:48","scope":42349,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41768,"name":"address","nodeType":"ElementaryTypeName","src":"446:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":41771,"nodeType":"VariableDeclaration","src":"466:14:48","nodes":[],"constant":false,"mutability":"mutable","name":"tokenY","nameLocation":"474:6:48","scope":42349,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41770,"name":"address","nodeType":"ElementaryTypeName","src":"466:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":41774,"nodeType":"VariableDeclaration","src":"486:7:48","nodes":[],"constant":false,"mutability":"mutable","name":"lex","nameLocation":"490:3:48","scope":42349,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"},"typeName":{"id":41773,"nodeType":"UserDefinedTypeName","pathNode":{"id":41772,"name":"Lex","nameLocations":["486:3:48"],"nodeType":"IdentifierPath","referencedDeclaration":44392,"src":"486:3:48"},"referencedDeclaration":44392,"src":"486:3:48","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}},"visibility":"internal"},{"id":41777,"nodeType":"VariableDeclaration","src":"500:51:48","nodes":[],"constant":true,"functionSelector":"620a2607","mutability":"constant","name":"TEST_SWAP_FEE","nameLocation":"524:13:48","scope":42349,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41775,"name":"uint256","nodeType":"ElementaryTypeName","src":"500:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"302e303033","id":41776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"540:11:48","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_3000000000000000_by_1","typeString":"int_const 3000000000000000"},"value":"0.003"},"visibility":"public"},{"id":41902,"nodeType":"FunctionDefinition","src":"558:611:48","nodes":[],"body":{"id":41901,"nodeType":"Block","src":"582:587:48","nodes":[],"statements":[{"expression":{"id":41791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41780,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41769,"src":"592:6:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"746f6b656e58","id":41786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"623:8:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_6076c392819008730df70238b1f1890b3147aecb6d122c8c4b4d5aa1b5f97482","typeString":"literal_string \"tokenX\""},"value":"tokenX"},{"hexValue":"58","id":41787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"633:3:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_550c64a15031c3064454c19adc6243a6122c138a242eaa098da50bb114fc8d56","typeString":"literal_string \"X\""},"value":"X"},{"hexValue":"3138","id":41788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"638:2:48","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6076c392819008730df70238b1f1890b3147aecb6d122c8c4b4d5aa1b5f97482","typeString":"literal_string \"tokenX\""},{"typeIdentifier":"t_stringliteral_550c64a15031c3064454c19adc6243a6122c138a242eaa098da50bb114fc8d56","typeString":"literal_string \"X\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":41785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"609:13:48","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":41784,"nodeType":"UserDefinedTypeName","pathNode":{"id":41783,"name":"MockERC20","nameLocations":["613:9:48"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"613:9:48"},"referencedDeclaration":25560,"src":"613:9:48","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":41789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"609:32:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":41782,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"601:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41781,"name":"address","nodeType":"ElementaryTypeName","src":"601:7:48","typeDescriptions":{}}},"id":41790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"601:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"592:50:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":41792,"nodeType":"ExpressionStatement","src":"592:50:48"},{"expression":{"id":41804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41793,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41771,"src":"652:6:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"746f6b656e59","id":41799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"683:8:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_215291f8765d54708d051c35e3f18ebdc532df00c5f85fe5e7d65833297521e9","typeString":"literal_string \"tokenY\""},"value":"tokenY"},{"hexValue":"59","id":41800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"693:3:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a2c5f9025f1f0333863704310875ae81a574171bed5b047cfc0f50e347f630e","typeString":"literal_string \"Y\""},"value":"Y"},{"hexValue":"3138","id":41801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"698:2:48","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_215291f8765d54708d051c35e3f18ebdc532df00c5f85fe5e7d65833297521e9","typeString":"literal_string \"tokenY\""},{"typeIdentifier":"t_stringliteral_9a2c5f9025f1f0333863704310875ae81a574171bed5b047cfc0f50e347f630e","typeString":"literal_string \"Y\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":41798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"669:13:48","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":41797,"nodeType":"UserDefinedTypeName","pathNode":{"id":41796,"name":"MockERC20","nameLocations":["673:9:48"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"673:9:48"},"referencedDeclaration":25560,"src":"673:9:48","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":41802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"669:32:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":41795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"661:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41794,"name":"address","nodeType":"ElementaryTypeName","src":"661:7:48","typeDescriptions":{}}},"id":41803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"661:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"652:50:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":41805,"nodeType":"ExpressionStatement","src":"652:50:48"},{"expression":{"arguments":[{"arguments":[{"id":41812,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"743:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalTest_$42349","typeString":"contract LogNormalTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormalTest_$42349","typeString":"contract LogNormalTest"}],"id":41811,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"735:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41810,"name":"address","nodeType":"ElementaryTypeName","src":"735:7:48","typeDescriptions":{}}},"id":41813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"735:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3130305f3030305f303030","id":41814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"750:17:48","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000_by_1","typeString":"int_const 100000000000000000000000000"},"value":"100_000_000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000000000_by_1","typeString":"int_const 100000000000000000000000000"}],"expression":{"arguments":[{"id":41807,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41769,"src":"722:6:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41806,"name":"MockERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25560,"src":"712:9:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MockERC20_$25560_$","typeString":"type(contract MockERC20)"}},"id":41808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"712:17:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":41809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"730:4:48","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":25546,"src":"712:22:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":41815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"712:56:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41816,"nodeType":"ExpressionStatement","src":"712:56:48"},{"expression":{"arguments":[{"arguments":[{"id":41823,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"809:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalTest_$42349","typeString":"contract LogNormalTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormalTest_$42349","typeString":"contract LogNormalTest"}],"id":41822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"801:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41821,"name":"address","nodeType":"ElementaryTypeName","src":"801:7:48","typeDescriptions":{}}},"id":41824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"801:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3130305f3030305f303030","id":41825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"816:17:48","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000_by_1","typeString":"int_const 100000000000000000000000000"},"value":"100_000_000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000000000_by_1","typeString":"int_const 100000000000000000000000000"}],"expression":{"arguments":[{"id":41818,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41771,"src":"788:6:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41817,"name":"MockERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25560,"src":"778:9:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MockERC20_$25560_$","typeString":"type(contract MockERC20)"}},"id":41819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"778:17:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":41820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"796:4:48","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":25546,"src":"778:22:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":41826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"778:56:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41827,"nodeType":"ExpressionStatement","src":"778:56:48"},{"expression":{"id":41836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41828,"name":"lex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41774,"src":"845:3:48","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":41832,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41769,"src":"859:6:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41833,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41771,"src":"867:6:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41834,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"875:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":41831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"851:7:48","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_contract$_Lex_$44392_$","typeString":"function (address,address,uint256) returns (contract Lex)"},"typeName":{"id":41830,"nodeType":"UserDefinedTypeName","pathNode":{"id":41829,"name":"Lex","nameLocations":["855:3:48"],"nodeType":"IdentifierPath","referencedDeclaration":44392,"src":"855:3:48"},"referencedDeclaration":44392,"src":"855:3:48","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}}},"id":41835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"851:28:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}},"src":"845:34:48","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}},"id":41837,"nodeType":"ExpressionStatement","src":"845:34:48"},{"expression":{"id":41847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41838,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41761,"src":"889:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30","id":41844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"913:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":41843,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"905:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41842,"name":"address","nodeType":"ElementaryTypeName","src":"905:7:48","typeDescriptions":{}}},"id":41845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"905:10:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"896:8:48","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_DFMM_$29062_$","typeString":"function (address) returns (contract DFMM)"},"typeName":{"id":41840,"nodeType":"UserDefinedTypeName","pathNode":{"id":41839,"name":"DFMM","nameLocations":["900:4:48"],"nodeType":"IdentifierPath","referencedDeclaration":29062,"src":"900:4:48"},"referencedDeclaration":29062,"src":"900:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}},"id":41846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"896:20:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"src":"889:27:48","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":41848,"nodeType":"ExpressionStatement","src":"889:27:48"},{"expression":{"id":41858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41849,"name":"logNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41764,"src":"926:9:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":41855,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41761,"src":"960:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":41854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"952:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41853,"name":"address","nodeType":"ElementaryTypeName","src":"952:7:48","typeDescriptions":{}}},"id":41856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"952:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"938:13:48","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_LogNormal_$38879_$","typeString":"function (address) returns (contract LogNormal)"},"typeName":{"id":41851,"nodeType":"UserDefinedTypeName","pathNode":{"id":41850,"name":"LogNormal","nameLocations":["942:9:48"],"nodeType":"IdentifierPath","referencedDeclaration":38879,"src":"942:9:48"},"referencedDeclaration":38879,"src":"942:9:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}}},"id":41857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"938:28:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}},"src":"926:40:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}},"id":41859,"nodeType":"ExpressionStatement","src":"926:40:48"},{"expression":{"id":41869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41860,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41767,"src":"976:6:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":41866,"name":"logNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41764,"src":"1013:9:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}],"id":41865,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1005:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41864,"name":"address","nodeType":"ElementaryTypeName","src":"1005:7:48","typeDescriptions":{}}},"id":41867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1005:18:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"985:19:48","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_LogNormalSolver_$36460_$","typeString":"function (address) returns (contract LogNormalSolver)"},"typeName":{"id":41862,"nodeType":"UserDefinedTypeName","pathNode":{"id":41861,"name":"LogNormalSolver","nameLocations":["989:15:48"],"nodeType":"IdentifierPath","referencedDeclaration":36460,"src":"989:15:48"},"referencedDeclaration":36460,"src":"989:15:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}}},"id":41868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"985:39:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"src":"976:48:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":41870,"nodeType":"ExpressionStatement","src":"976:48:48"},{"expression":{"arguments":[{"arguments":[{"id":41877,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41761,"src":"1068:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":41876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1060:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41875,"name":"address","nodeType":"ElementaryTypeName","src":"1060:7:48","typeDescriptions":{}}},"id":41878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1060:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":41881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1080:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":41880,"name":"uint256","nodeType":"ElementaryTypeName","src":"1080:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":41879,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1075:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":41882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1075:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":41883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1089:3:48","memberName":"max","nodeType":"MemberAccess","src":"1075:17:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":41872,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41769,"src":"1044:6:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41871,"name":"MockERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25560,"src":"1034:9:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MockERC20_$25560_$","typeString":"type(contract MockERC20)"}},"id":41873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1034:17:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":41874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1052:7:48","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":25665,"src":"1034:25:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":41884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1034:59:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41885,"nodeType":"ExpressionStatement","src":"1034:59:48"},{"expression":{"arguments":[{"arguments":[{"id":41892,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41761,"src":"1137:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":41891,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1129:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41890,"name":"address","nodeType":"ElementaryTypeName","src":"1129:7:48","typeDescriptions":{}}},"id":41893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1129:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":41896,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1149:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":41895,"name":"uint256","nodeType":"ElementaryTypeName","src":"1149:7:48","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":41894,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1144:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":41897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1144:13:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":41898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1158:3:48","memberName":"max","nodeType":"MemberAccess","src":"1144:17:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":41887,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41771,"src":"1113:6:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41886,"name":"MockERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25560,"src":"1103:9:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MockERC20_$25560_$","typeString":"type(contract MockERC20)"}},"id":41888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1103:17:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":41889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1121:7:48","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":25665,"src":"1103:25:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":41899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1103:59:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41900,"nodeType":"ExpressionStatement","src":"1103:59:48"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"567:5:48","parameters":{"id":41778,"nodeType":"ParameterList","parameters":[],"src":"572:2:48"},"returnParameters":{"id":41779,"nodeType":"ParameterList","parameters":[],"src":"582:0:48"},"scope":42349,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":41974,"nodeType":"ModifierDefinition","src":"1175:704:48","nodes":[],"body":{"id":41973,"nodeType":"Block","src":"1199:680:48","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"30","id":41907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1217:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":41904,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"1209:2:48","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":41906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1212:4:48","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":9034,"src":"1209:7:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":41908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1209:10:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41909,"nodeType":"ExpressionStatement","src":"1209:10:48"},{"assignments":[41914],"declarations":[{"constant":false,"id":41914,"mutability":"mutable","name":"params","nameLocation":"1263:6:48","nodeType":"VariableDeclaration","scope":41973,"src":"1230:39:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":41913,"nodeType":"UserDefinedTypeName","pathNode":{"id":41912,"name":"LogNormal.LogNormalParams","nameLocations":["1230:9:48","1240:15:48"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"1230:25:48"},"referencedDeclaration":38204,"src":"1230:25:48","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"id":41928,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":41917,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"1320:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32333030","id":41918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1326:4:48","typeDescriptions":{"typeIdentifier":"t_rational_2300_by_1","typeString":"int_const 2300"},"value":"2300"},"src":"1320:10:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41920,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"1351:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41921,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"1373:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41922,"name":"TEST_SWAP_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41777,"src":"1399:13:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":41925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1446:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":41924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1438:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41923,"name":"address","nodeType":"ElementaryTypeName","src":"1438:7:48","typeDescriptions":{}}},"id":41926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1438:10:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":41915,"name":"LogNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38879,"src":"1272:9:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormal_$38879_$","typeString":"type(contract LogNormal)"}},"id":41916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1282:15:48","memberName":"LogNormalParams","nodeType":"MemberAccess","referencedDeclaration":38204,"src":"1272:25:48","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}},"id":41927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1312:6:48","1344:5:48","1368:3:48","1390:7:48","1426:10:48"],"names":["strike","sigma","tau","swapFee","controller"],"nodeType":"FunctionCall","src":"1272:187:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"nodeType":"VariableDeclarationStatement","src":"1230:229:48"},{"assignments":[41930],"declarations":[{"constant":false,"id":41930,"mutability":"mutable","name":"init_p","nameLocation":"1477:6:48","nodeType":"VariableDeclaration","scope":41973,"src":"1469:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41929,"name":"uint256","nodeType":"ElementaryTypeName","src":"1469:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41934,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":41931,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"1486:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32333435","id":41932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1492:4:48","typeDescriptions":{"typeIdentifier":"t_rational_2345_by_1","typeString":"int_const 2345"},"value":"2345"},"src":"1486:10:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1469:27:48"},{"assignments":[41936],"declarations":[{"constant":false,"id":41936,"mutability":"mutable","name":"init_x","nameLocation":"1514:6:48","nodeType":"VariableDeclaration","scope":41973,"src":"1506:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41935,"name":"uint256","nodeType":"ElementaryTypeName","src":"1506:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41940,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":41937,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"1523:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3130","id":41938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1529:2:48","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1523:8:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1506:25:48"},{"assignments":[41942],"declarations":[{"constant":false,"id":41942,"mutability":"mutable","name":"initData","nameLocation":"1554:8:48","nodeType":"VariableDeclaration","scope":41973,"src":"1541:21:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41941,"name":"bytes","nodeType":"ElementaryTypeName","src":"1541:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":41949,"initialValue":{"arguments":[{"id":41945,"name":"init_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41936,"src":"1603:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41946,"name":"init_p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41930,"src":"1611:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41947,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41914,"src":"1619:6:48","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":41943,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41767,"src":"1577:6:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":41944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1584:18:48","memberName":"getInitialPoolData","nodeType":"MemberAccess","referencedDeclaration":35576,"src":"1577:25:48","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256,struct LogNormal.LogNormalParams memory) pure external returns (bytes memory)"}},"id":41948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1577:49:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1541:85:48"},{"assignments":[41954],"declarations":[{"constant":false,"id":41954,"mutability":"mutable","name":"initParams","nameLocation":"1661:10:48","nodeType":"VariableDeclaration","scope":41973,"src":"1637:34:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":41953,"nodeType":"UserDefinedTypeName","pathNode":{"id":41952,"name":"IDFMM.InitParams","nameLocations":["1637:5:48","1643:10:48"],"nodeType":"IdentifierPath","referencedDeclaration":29543,"src":"1637:16:48"},"referencedDeclaration":29543,"src":"1637:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"id":41965,"initialValue":{"arguments":[{"arguments":[{"id":41959,"name":"logNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41764,"src":"1723:9:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}],"id":41958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1715:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41957,"name":"address","nodeType":"ElementaryTypeName","src":"1715:7:48","typeDescriptions":{}}},"id":41960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1715:18:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41961,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41769,"src":"1755:6:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41962,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41771,"src":"1783:6:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41963,"name":"initData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41942,"src":"1809:8:48","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":41955,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"1674:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":41956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1680:10:48","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":29543,"src":"1674:16:48","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$29543_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":41964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1705:8:48","1747:6:48","1775:6:48","1803:4:48"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"1674:154:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}},"nodeType":"VariableDeclarationStatement","src":"1637:191:48"},{"expression":{"arguments":[{"id":41969,"name":"initParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41954,"src":"1849:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":41966,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41761,"src":"1839:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":41968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1844:4:48","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":28091,"src":"1839:9:48","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$29543_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":41970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1839:21:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"id":41971,"nodeType":"ExpressionStatement","src":"1839:21:48"},{"id":41972,"nodeType":"PlaceholderStatement","src":"1871:1:48"}]},"name":"realisticEth","nameLocation":"1184:12:48","parameters":{"id":41903,"nodeType":"ParameterList","parameters":[],"src":"1196:2:48"},"virtual":false,"visibility":"internal"},{"id":42041,"nodeType":"ModifierDefinition","src":"1932:685:48","nodes":[],"body":{"id":42040,"nodeType":"Block","src":"1949:668:48","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"30","id":41980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1967:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":41977,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"1959:2:48","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":41979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1962:4:48","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":9034,"src":"1959:7:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":41981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1959:10:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41982,"nodeType":"ExpressionStatement","src":"1959:10:48"},{"assignments":[41987],"declarations":[{"constant":false,"id":41987,"mutability":"mutable","name":"params","nameLocation":"2013:6:48","nodeType":"VariableDeclaration","scope":42040,"src":"1980:39:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":41986,"nodeType":"UserDefinedTypeName","pathNode":{"id":41985,"name":"LogNormal.LogNormalParams","nameLocations":["1980:9:48","1990:15:48"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"1980:25:48"},"referencedDeclaration":38204,"src":"1980:25:48","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"id":41999,"initialValue":{"arguments":[{"id":41990,"name":"TWO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30633,"src":"2070:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"302e3235","id":41991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2094:10:48","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_250000000000000000_by_1","typeString":"int_const 250000000000000000"},"value":"0.25"},{"id":41992,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"2123:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":41993,"name":"TEST_SWAP_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41777,"src":"2149:13:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":41996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2196:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":41995,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2188:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41994,"name":"address","nodeType":"ElementaryTypeName","src":"2188:7:48","typeDescriptions":{}}},"id":41997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2188:10:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_250000000000000000_by_1","typeString":"int_const 250000000000000000"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":41988,"name":"LogNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38879,"src":"2022:9:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormal_$38879_$","typeString":"type(contract LogNormal)"}},"id":41989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2032:15:48","memberName":"LogNormalParams","nodeType":"MemberAccess","referencedDeclaration":38204,"src":"2022:25:48","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}},"id":41998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2062:6:48","2087:5:48","2118:3:48","2140:7:48","2176:10:48"],"names":["strike","sigma","tau","swapFee","controller"],"nodeType":"FunctionCall","src":"2022:187:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"nodeType":"VariableDeclarationStatement","src":"1980:229:48"},{"assignments":[42001],"declarations":[{"constant":false,"id":42001,"mutability":"mutable","name":"init_p","nameLocation":"2227:6:48","nodeType":"VariableDeclaration","scope":42040,"src":"2219:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42000,"name":"uint256","nodeType":"ElementaryTypeName","src":"2219:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42003,"initialValue":{"id":42002,"name":"TWO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30633,"src":"2236:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2219:20:48"},{"assignments":[42005],"declarations":[{"constant":false,"id":42005,"mutability":"mutable","name":"init_x","nameLocation":"2257:6:48","nodeType":"VariableDeclaration","scope":42040,"src":"2249:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42004,"name":"uint256","nodeType":"ElementaryTypeName","src":"2249:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42007,"initialValue":{"id":42006,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"2266:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2249:20:48"},{"assignments":[42009],"declarations":[{"constant":false,"id":42009,"mutability":"mutable","name":"initData","nameLocation":"2292:8:48","nodeType":"VariableDeclaration","scope":42040,"src":"2279:21:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":42008,"name":"bytes","nodeType":"ElementaryTypeName","src":"2279:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":42016,"initialValue":{"arguments":[{"id":42012,"name":"init_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42005,"src":"2341:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42013,"name":"init_p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42001,"src":"2349:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42014,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41987,"src":"2357:6:48","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":42010,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41767,"src":"2315:6:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":42011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2322:18:48","memberName":"getInitialPoolData","nodeType":"MemberAccess","referencedDeclaration":35576,"src":"2315:25:48","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256,struct LogNormal.LogNormalParams memory) pure external returns (bytes memory)"}},"id":42015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2315:49:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2279:85:48"},{"assignments":[42021],"declarations":[{"constant":false,"id":42021,"mutability":"mutable","name":"initParams","nameLocation":"2399:10:48","nodeType":"VariableDeclaration","scope":42040,"src":"2375:34:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":42020,"nodeType":"UserDefinedTypeName","pathNode":{"id":42019,"name":"IDFMM.InitParams","nameLocations":["2375:5:48","2381:10:48"],"nodeType":"IdentifierPath","referencedDeclaration":29543,"src":"2375:16:48"},"referencedDeclaration":29543,"src":"2375:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"id":42032,"initialValue":{"arguments":[{"arguments":[{"id":42026,"name":"logNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41764,"src":"2461:9:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}],"id":42025,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2453:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42024,"name":"address","nodeType":"ElementaryTypeName","src":"2453:7:48","typeDescriptions":{}}},"id":42027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2453:18:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42028,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41769,"src":"2493:6:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42029,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41771,"src":"2521:6:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42030,"name":"initData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42009,"src":"2547:8:48","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":42022,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"2412:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":42023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2418:10:48","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":29543,"src":"2412:16:48","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$29543_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":42031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2443:8:48","2485:6:48","2513:6:48","2541:4:48"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"2412:154:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}},"nodeType":"VariableDeclarationStatement","src":"2375:191:48"},{"expression":{"arguments":[{"id":42036,"name":"initParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42021,"src":"2587:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":42033,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41761,"src":"2577:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":42035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2582:4:48","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":28091,"src":"2577:9:48","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$29543_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":42037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2577:21:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"id":42038,"nodeType":"ExpressionStatement","src":"2577:21:48"},{"id":42039,"nodeType":"PlaceholderStatement","src":"2609:1:48"}]},"documentation":{"id":41975,"nodeType":"StructuredDocumentation","src":"1885:42:48","text":"@dev Initializes a basic pool in dfmm."},"name":"basic","nameLocation":"1941:5:48","parameters":{"id":41976,"nodeType":"ParameterList","parameters":[],"src":"1946:2:48"},"virtual":false,"visibility":"internal"},{"id":42107,"nodeType":"ModifierDefinition","src":"2623:756:48","nodes":[],"body":{"id":42106,"nodeType":"Block","src":"2650:729:48","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"30","id":42046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2668:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":42043,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"2660:2:48","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":42045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2663:4:48","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":9034,"src":"2660:7:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":42047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2660:10:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42048,"nodeType":"ExpressionStatement","src":"2660:10:48"},{"assignments":[42053],"declarations":[{"constant":false,"id":42053,"mutability":"mutable","name":"params","nameLocation":"2714:6:48","nodeType":"VariableDeclaration","scope":42106,"src":"2681:39:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":42052,"nodeType":"UserDefinedTypeName","pathNode":{"id":42051,"name":"LogNormal.LogNormalParams","nameLocations":["2681:9:48","2691:15:48"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"2681:25:48"},"referencedDeclaration":38204,"src":"2681:25:48","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"id":42065,"initialValue":{"arguments":[{"hexValue":"302e3637333233383138393431393334303737","id":42056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2771:25:48","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_673238189419340770_by_1","typeString":"int_const 673238189419340770"},"value":"0.67323818941934077"},{"id":42057,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"2817:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42058,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"2839:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42059,"name":"TEST_SWAP_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41777,"src":"2865:13:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":42062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2912:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":42061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2904:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42060,"name":"address","nodeType":"ElementaryTypeName","src":"2904:7:48","typeDescriptions":{}}},"id":42063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2904:10:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_673238189419340770_by_1","typeString":"int_const 673238189419340770"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":42054,"name":"LogNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38879,"src":"2723:9:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormal_$38879_$","typeString":"type(contract LogNormal)"}},"id":42055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2733:15:48","memberName":"LogNormalParams","nodeType":"MemberAccess","referencedDeclaration":38204,"src":"2723:25:48","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}},"id":42064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2763:6:48","2810:5:48","2834:3:48","2856:7:48","2892:10:48"],"names":["strike","sigma","tau","swapFee","controller"],"nodeType":"FunctionCall","src":"2723:202:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"nodeType":"VariableDeclarationStatement","src":"2681:244:48"},{"assignments":[42067],"declarations":[{"constant":false,"id":42067,"mutability":"mutable","name":"init_p","nameLocation":"2943:6:48","nodeType":"VariableDeclaration","scope":42106,"src":"2935:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42066,"name":"uint256","nodeType":"ElementaryTypeName","src":"2935:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42069,"initialValue":{"hexValue":"315f3332395f3935365f3335325f3635315f3533325f393939","id":42068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2952:25:48","typeDescriptions":{"typeIdentifier":"t_rational_1329956352651532999_by_1","typeString":"int_const 1329956352651532999"},"value":"1_329_956_352_651_532_999"},"nodeType":"VariableDeclarationStatement","src":"2935:42:48"},{"assignments":[42071],"declarations":[{"constant":false,"id":42071,"mutability":"mutable","name":"init_x","nameLocation":"2995:6:48","nodeType":"VariableDeclaration","scope":42106,"src":"2987:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42070,"name":"uint256","nodeType":"ElementaryTypeName","src":"2987:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42073,"initialValue":{"hexValue":"37302e363538303837333036303133333539343133","id":42072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3004:27:48","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_70658087306013359413_by_1","typeString":"int_const 70658087306013359413"},"value":"70.658087306013359413"},"nodeType":"VariableDeclarationStatement","src":"2987:44:48"},{"assignments":[42075],"declarations":[{"constant":false,"id":42075,"mutability":"mutable","name":"initData","nameLocation":"3054:8:48","nodeType":"VariableDeclaration","scope":42106,"src":"3041:21:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":42074,"name":"bytes","nodeType":"ElementaryTypeName","src":"3041:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":42082,"initialValue":{"arguments":[{"id":42078,"name":"init_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42071,"src":"3103:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42079,"name":"init_p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42067,"src":"3111:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42080,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42053,"src":"3119:6:48","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"expression":{"id":42076,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41767,"src":"3077:6:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":42077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3084:18:48","memberName":"getInitialPoolData","nodeType":"MemberAccess","referencedDeclaration":35576,"src":"3077:25:48","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256,struct LogNormal.LogNormalParams memory) pure external returns (bytes memory)"}},"id":42081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3077:49:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3041:85:48"},{"assignments":[42087],"declarations":[{"constant":false,"id":42087,"mutability":"mutable","name":"initParams","nameLocation":"3161:10:48","nodeType":"VariableDeclaration","scope":42106,"src":"3137:34:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":42086,"nodeType":"UserDefinedTypeName","pathNode":{"id":42085,"name":"IDFMM.InitParams","nameLocations":["3137:5:48","3143:10:48"],"nodeType":"IdentifierPath","referencedDeclaration":29543,"src":"3137:16:48"},"referencedDeclaration":29543,"src":"3137:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"id":42098,"initialValue":{"arguments":[{"arguments":[{"id":42092,"name":"logNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41764,"src":"3223:9:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}],"id":42091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3215:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42090,"name":"address","nodeType":"ElementaryTypeName","src":"3215:7:48","typeDescriptions":{}}},"id":42093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3215:18:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42094,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41769,"src":"3255:6:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42095,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41771,"src":"3283:6:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42096,"name":"initData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42075,"src":"3309:8:48","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":42088,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"3174:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":42089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3180:10:48","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":29543,"src":"3174:16:48","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$29543_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":42097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3205:8:48","3247:6:48","3275:6:48","3303:4:48"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"3174:154:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}},"nodeType":"VariableDeclarationStatement","src":"3137:191:48"},{"expression":{"arguments":[{"id":42102,"name":"initParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42087,"src":"3349:10:48","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":42099,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41761,"src":"3339:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":42101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3344:4:48","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":28091,"src":"3339:9:48","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$29543_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":42103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3339:21:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"id":42104,"nodeType":"ExpressionStatement","src":"3339:21:48"},{"id":42105,"nodeType":"PlaceholderStatement","src":"3371:1:48"}]},"name":"revert_scenario","nameLocation":"2632:15:48","parameters":{"id":42042,"nodeType":"ParameterList","parameters":[],"src":"2647:2:48"},"virtual":false,"visibility":"internal"},{"id":42145,"nodeType":"FunctionDefinition","src":"3385:275:48","nodes":[],"body":{"id":42144,"nodeType":"Block","src":"3427:233:48","nodes":[],"statements":[{"assignments":[42113],"declarations":[{"constant":false,"id":42113,"mutability":"mutable","name":"xIn","nameLocation":"3442:3:48","nodeType":"VariableDeclaration","scope":42144,"src":"3437:8:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42112,"name":"bool","nodeType":"ElementaryTypeName","src":"3437:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":42115,"initialValue":{"hexValue":"74727565","id":42114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3448:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"3437:15:48"},{"assignments":[42117],"declarations":[{"constant":false,"id":42117,"mutability":"mutable","name":"amountIn","nameLocation":"3470:8:48","nodeType":"VariableDeclaration","scope":42144,"src":"3462:16:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42116,"name":"uint256","nodeType":"ElementaryTypeName","src":"3462:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42119,"initialValue":{"hexValue":"302e31","id":42118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3481:9:48","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"3462:28:48"},{"assignments":[42121],"declarations":[{"constant":false,"id":42121,"mutability":"mutable","name":"poolId","nameLocation":"3508:6:48","nodeType":"VariableDeclaration","scope":42144,"src":"3500:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42120,"name":"uint256","nodeType":"ElementaryTypeName","src":"3500:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42127,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42122,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41761,"src":"3517:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":42123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3522:5:48","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"3517:10:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":42124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3517:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":42125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3532:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3517:16:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3500:33:48"},{"assignments":[null,null,null,42129],"declarations":[null,null,null,{"constant":false,"id":42129,"mutability":"mutable","name":"swapData","nameLocation":"3561:8:48","nodeType":"VariableDeclaration","scope":42144,"src":"3548:21:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":42128,"name":"bytes","nodeType":"ElementaryTypeName","src":"3548:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":42136,"initialValue":{"arguments":[{"id":42132,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42121,"src":"3593:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42133,"name":"xIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42113,"src":"3601:3:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42134,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"3606:8:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42130,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41767,"src":"3573:6:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":42131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3580:12:48","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":36225,"src":"3573:19:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,uint256,bytes memory)"}},"id":42135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3573:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3543:72:48"},{"expression":{"arguments":[{"id":42140,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42121,"src":"3636:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42141,"name":"swapData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42129,"src":"3644:8:48","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":42137,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41761,"src":"3626:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":42139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3631:4:48","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":28371,"src":"3626:9:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256,uint256)"}},"id":42142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3626:27:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":42143,"nodeType":"ExpressionStatement","src":"3626:27:48"}]},"functionSelector":"e82984c3","implemented":true,"kind":"function","modifiers":[{"id":42110,"kind":"modifierInvocation","modifierName":{"id":42109,"name":"basic","nameLocations":["3421:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":42041,"src":"3421:5:48"},"nodeType":"ModifierInvocation","src":"3421:5:48"}],"name":"test_ln_swap_x_in","nameLocation":"3394:17:48","parameters":{"id":42108,"nodeType":"ParameterList","parameters":[],"src":"3411:2:48"},"returnParameters":{"id":42111,"nodeType":"ParameterList","parameters":[],"src":"3427:0:48"},"scope":42349,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":42183,"nodeType":"FunctionDefinition","src":"3666:276:48","nodes":[],"body":{"id":42182,"nodeType":"Block","src":"3708:234:48","nodes":[],"statements":[{"assignments":[42151],"declarations":[{"constant":false,"id":42151,"mutability":"mutable","name":"xIn","nameLocation":"3723:3:48","nodeType":"VariableDeclaration","scope":42182,"src":"3718:8:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42150,"name":"bool","nodeType":"ElementaryTypeName","src":"3718:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":42153,"initialValue":{"hexValue":"66616c7365","id":42152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3729:5:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"3718:16:48"},{"assignments":[42155],"declarations":[{"constant":false,"id":42155,"mutability":"mutable","name":"amountIn","nameLocation":"3752:8:48","nodeType":"VariableDeclaration","scope":42182,"src":"3744:16:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42154,"name":"uint256","nodeType":"ElementaryTypeName","src":"3744:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42157,"initialValue":{"hexValue":"302e31","id":42156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3763:9:48","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"3744:28:48"},{"assignments":[42159],"declarations":[{"constant":false,"id":42159,"mutability":"mutable","name":"poolId","nameLocation":"3790:6:48","nodeType":"VariableDeclaration","scope":42182,"src":"3782:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42158,"name":"uint256","nodeType":"ElementaryTypeName","src":"3782:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42165,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42160,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41761,"src":"3799:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":42161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3804:5:48","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"3799:10:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":42162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3799:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":42163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3814:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3799:16:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3782:33:48"},{"assignments":[null,null,null,42167],"declarations":[null,null,null,{"constant":false,"id":42167,"mutability":"mutable","name":"swapData","nameLocation":"3843:8:48","nodeType":"VariableDeclaration","scope":42182,"src":"3830:21:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":42166,"name":"bytes","nodeType":"ElementaryTypeName","src":"3830:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":42174,"initialValue":{"arguments":[{"id":42170,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42159,"src":"3875:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42171,"name":"xIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42151,"src":"3883:3:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":42172,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42155,"src":"3888:8:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42168,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41767,"src":"3855:6:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":42169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3862:12:48","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":36225,"src":"3855:19:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,uint256,bytes memory)"}},"id":42173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3855:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3825:72:48"},{"expression":{"arguments":[{"id":42178,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42159,"src":"3918:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42179,"name":"swapData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42167,"src":"3926:8:48","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":42175,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41761,"src":"3908:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":42177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3913:4:48","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":28371,"src":"3908:9:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256,uint256)"}},"id":42180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3908:27:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":42181,"nodeType":"ExpressionStatement","src":"3908:27:48"}]},"functionSelector":"849ff887","implemented":true,"kind":"function","modifiers":[{"id":42148,"kind":"modifierInvocation","modifierName":{"id":42147,"name":"basic","nameLocations":["3702:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":42041,"src":"3702:5:48"},"nodeType":"ModifierInvocation","src":"3702:5:48"}],"name":"test_ln_swap_y_in","nameLocation":"3675:17:48","parameters":{"id":42146,"nodeType":"ParameterList","parameters":[],"src":"3692:2:48"},"returnParameters":{"id":42149,"nodeType":"ParameterList","parameters":[],"src":"3708:0:48"},"scope":42349,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":42232,"nodeType":"FunctionDefinition","src":"3982:388:48","nodes":[],"body":{"id":42231,"nodeType":"Block","src":"4026:344:48","nodes":[],"statements":[{"assignments":[42189],"declarations":[{"constant":false,"id":42189,"mutability":"mutable","name":"poolId","nameLocation":"4044:6:48","nodeType":"VariableDeclaration","scope":42231,"src":"4036:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42188,"name":"uint256","nodeType":"ElementaryTypeName","src":"4036:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42195,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42190,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41761,"src":"4053:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":42191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4058:5:48","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"4053:10:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":42192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4053:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":42193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4068:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4053:16:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4036:33:48"},{"assignments":[42197,42199,42201],"declarations":[{"constant":false,"id":42197,"mutability":"mutable","name":"rx","nameLocation":"4088:2:48","nodeType":"VariableDeclaration","scope":42231,"src":"4080:10:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42196,"name":"uint256","nodeType":"ElementaryTypeName","src":"4080:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42199,"mutability":"mutable","name":"ry","nameLocation":"4100:2:48","nodeType":"VariableDeclaration","scope":42231,"src":"4092:10:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42198,"name":"uint256","nodeType":"ElementaryTypeName","src":"4092:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42201,"mutability":"mutable","name":"L","nameLocation":"4112:1:48","nodeType":"VariableDeclaration","scope":42231,"src":"4104:9:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42200,"name":"uint256","nodeType":"ElementaryTypeName","src":"4104:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42206,"initialValue":{"arguments":[{"id":42204,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42189,"src":"4160:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42202,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41767,"src":"4129:6:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":42203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4136:23:48","memberName":"getReservesAndLiquidity","nodeType":"MemberAccess","referencedDeclaration":35557,"src":"4129:30:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (uint256) view external returns (uint256,uint256,uint256)"}},"id":42205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4129:38:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4079:88:48"},{"assignments":[42208],"declarations":[{"constant":false,"id":42208,"mutability":"mutable","name":"priceGivenY","nameLocation":"4185:11:48","nodeType":"VariableDeclaration","scope":42231,"src":"4177:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42207,"name":"uint256","nodeType":"ElementaryTypeName","src":"4177:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42215,"initialValue":{"arguments":[{"id":42211,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42189,"src":"4222:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42212,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42199,"src":"4230:2:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42213,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42201,"src":"4234:1:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42209,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41767,"src":"4199:6:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":42210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4206:15:48","memberName":"getPriceGivenYL","nodeType":"MemberAccess","referencedDeclaration":36276,"src":"4199:22:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view external returns (uint256)"}},"id":42214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4199:37:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4177:59:48"},{"assignments":[42217],"declarations":[{"constant":false,"id":42217,"mutability":"mutable","name":"priceGivenX","nameLocation":"4254:11:48","nodeType":"VariableDeclaration","scope":42231,"src":"4246:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42216,"name":"uint256","nodeType":"ElementaryTypeName","src":"4246:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42224,"initialValue":{"arguments":[{"id":42220,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42189,"src":"4291:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42221,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42197,"src":"4299:2:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42222,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42201,"src":"4303:1:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42218,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41767,"src":"4268:6:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":42219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4275:15:48","memberName":"getPriceGivenXL","nodeType":"MemberAccess","referencedDeclaration":36299,"src":"4268:22:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view external returns (uint256)"}},"id":42223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4268:37:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4246:59:48"},{"expression":{"arguments":[{"id":42226,"name":"priceGivenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42208,"src":"4333:11:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42227,"name":"priceGivenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42217,"src":"4346:11:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313030","id":42228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4359:3:48","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":42225,"name":"assertApproxEqAbs","nodeType":"Identifier","overloadedDeclarations":[2371,2407,2457,2493],"referencedDeclaration":2371,"src":"4315:17:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":42229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4315:48:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42230,"nodeType":"ExpressionStatement","src":"4315:48:48"}]},"functionSelector":"2c10d860","implemented":true,"kind":"function","modifiers":[{"id":42186,"kind":"modifierInvocation","modifierName":{"id":42185,"name":"basic","nameLocations":["4020:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":42041,"src":"4020:5:48"},"nodeType":"ModifierInvocation","src":"4020:5:48"}],"name":"test_price_formulas","nameLocation":"3991:19:48","parameters":{"id":42184,"nodeType":"ParameterList","parameters":[],"src":"4010:2:48"},"returnParameters":{"id":42187,"nodeType":"ParameterList","parameters":[],"src":"4026:0:48"},"scope":42349,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":42261,"nodeType":"FunctionDefinition","src":"4376:251:48","nodes":[],"body":{"id":42260,"nodeType":"Block","src":"4419:208:48","nodes":[],"statements":[{"assignments":[42238],"declarations":[{"constant":false,"id":42238,"mutability":"mutable","name":"poolId","nameLocation":"4437:6:48","nodeType":"VariableDeclaration","scope":42260,"src":"4429:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42237,"name":"uint256","nodeType":"ElementaryTypeName","src":"4429:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42244,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42239,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41761,"src":"4446:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":42240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4451:5:48","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"4446:10:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":42241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4446:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":42242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4461:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4446:16:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4429:33:48"},{"assignments":[42246],"declarations":[{"constant":false,"id":42246,"mutability":"mutable","name":"diffLowered","nameLocation":"4479:11:48","nodeType":"VariableDeclaration","scope":42260,"src":"4472:18:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":42245,"name":"int256","nodeType":"ElementaryTypeName","src":"4472:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":42253,"initialValue":{"arguments":[{"id":42249,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42238,"src":"4532:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"312e39","id":42250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4540:9:48","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1900000000000000000_by_1","typeString":"int_const 1900000000000000000"},"value":"1.9"},{"hexValue":"3136305f3234395f3139355f3334325f3839365f393637","id":42251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4551:23:48","typeDescriptions":{"typeIdentifier":"t_rational_160249195342896967_by_1","typeString":"int_const 160249195342896967"},"value":"160_249_195_342_896_967"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1900000000000000000_by_1","typeString":"int_const 1900000000000000000"},{"typeIdentifier":"t_rational_160249195342896967_by_1","typeString":"int_const 160249195342896967"}],"expression":{"id":42247,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41767,"src":"4493:6:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":42248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4500:18:48","memberName":"calculateDiffLower","nodeType":"MemberAccess","referencedDeclaration":36339,"src":"4493:25:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256) view external returns (int256)"}},"id":42252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4493:91:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"4472:112:48"},{"expression":{"arguments":[{"id":42257,"name":"diffLowered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42246,"src":"4608:11:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":42254,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"4595:8:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":42256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4604:3:48","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18012,"src":"4595:12:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_int256_$returns$__$","typeString":"function (int256) view"}},"id":42258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4595:25:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42259,"nodeType":"ExpressionStatement","src":"4595:25:48"}]},"functionSelector":"31fa62fb","implemented":true,"kind":"function","modifiers":[{"id":42235,"kind":"modifierInvocation","modifierName":{"id":42234,"name":"basic","nameLocations":["4413:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":42041,"src":"4413:5:48"},"nodeType":"ModifierInvocation","src":"4413:5:48"}],"name":"test_ln_diff_lower","nameLocation":"4385:18:48","parameters":{"id":42233,"nodeType":"ParameterList","parameters":[],"src":"4403:2:48"},"returnParameters":{"id":42236,"nodeType":"ParameterList","parameters":[],"src":"4419:0:48"},"scope":42349,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":42290,"nodeType":"FunctionDefinition","src":"4633:251:48","nodes":[],"body":{"id":42289,"nodeType":"Block","src":"4676:208:48","nodes":[],"statements":[{"assignments":[42267],"declarations":[{"constant":false,"id":42267,"mutability":"mutable","name":"poolId","nameLocation":"4694:6:48","nodeType":"VariableDeclaration","scope":42289,"src":"4686:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42266,"name":"uint256","nodeType":"ElementaryTypeName","src":"4686:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42273,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42268,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41761,"src":"4703:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":42269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4708:5:48","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"4703:10:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":42270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4703:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":42271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4718:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4703:16:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4686:33:48"},{"assignments":[42275],"declarations":[{"constant":false,"id":42275,"mutability":"mutable","name":"diffLowered","nameLocation":"4736:11:48","nodeType":"VariableDeclaration","scope":42289,"src":"4729:18:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":42274,"name":"int256","nodeType":"ElementaryTypeName","src":"4729:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":42282,"initialValue":{"arguments":[{"id":42278,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42267,"src":"4789:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"322e31","id":42279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4797:9:48","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_2100000000000000000_by_1","typeString":"int_const 2100000000000000000"},"value":"2.1"},{"hexValue":"3330325f3735365f3032335f3337355f3130385f393935","id":42280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4808:23:48","typeDescriptions":{"typeIdentifier":"t_rational_302756023375108995_by_1","typeString":"int_const 302756023375108995"},"value":"302_756_023_375_108_995"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_2100000000000000000_by_1","typeString":"int_const 2100000000000000000"},{"typeIdentifier":"t_rational_302756023375108995_by_1","typeString":"int_const 302756023375108995"}],"expression":{"id":42276,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41767,"src":"4750:6:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":42277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4757:18:48","memberName":"calculateDiffRaise","nodeType":"MemberAccess","referencedDeclaration":36379,"src":"4750:25:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_int256_$","typeString":"function (uint256,uint256,uint256) view external returns (int256)"}},"id":42281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4750:91:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"4729:112:48"},{"expression":{"arguments":[{"id":42286,"name":"diffLowered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42275,"src":"4865:11:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":42283,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"4852:8:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":42285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4861:3:48","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":18012,"src":"4852:12:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_int256_$returns$__$","typeString":"function (int256) view"}},"id":42287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4852:25:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42288,"nodeType":"ExpressionStatement","src":"4852:25:48"}]},"functionSelector":"72a95255","implemented":true,"kind":"function","modifiers":[{"id":42264,"kind":"modifierInvocation","modifierName":{"id":42263,"name":"basic","nameLocations":["4670:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":42041,"src":"4670:5:48"},"nodeType":"ModifierInvocation","src":"4670:5:48"}],"name":"test_ln_diff_raise","nameLocation":"4642:18:48","parameters":{"id":42262,"nodeType":"ParameterList","parameters":[],"src":"4660:2:48"},"returnParameters":{"id":42265,"nodeType":"ParameterList","parameters":[],"src":"4676:0:48"},"scope":42349,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":42319,"nodeType":"FunctionDefinition","src":"4890:257:48","nodes":[],"body":{"id":42318,"nodeType":"Block","src":"4936:211:48","nodes":[],"statements":[{"assignments":[42296],"declarations":[{"constant":false,"id":42296,"mutability":"mutable","name":"poolId","nameLocation":"4954:6:48","nodeType":"VariableDeclaration","scope":42318,"src":"4946:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42295,"name":"uint256","nodeType":"ElementaryTypeName","src":"4946:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42302,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42297,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41761,"src":"4963:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":42298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4968:5:48","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"4963:10:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":42299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4963:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":42300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4978:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4963:16:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4946:33:48"},{"assignments":[42304],"declarations":[{"constant":false,"id":42304,"mutability":"mutable","name":"optimalLower","nameLocation":"4997:12:48","nodeType":"VariableDeclaration","scope":42318,"src":"4989:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42303,"name":"uint256","nodeType":"ElementaryTypeName","src":"4989:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42311,"initialValue":{"arguments":[{"id":42307,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42296,"src":"5060:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"312e39","id":42308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5068:9:48","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1900000000000000000_by_1","typeString":"int_const 1900000000000000000"},"value":"1.9"},{"hexValue":"302e313831343234","id":42309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5079:14:48","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_181424000000000000_by_1","typeString":"int_const 181424000000000000"},"value":"0.181424"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1900000000000000000_by_1","typeString":"int_const 1900000000000000000"},{"typeIdentifier":"t_rational_181424000000000000_by_1","typeString":"int_const 181424000000000000"}],"expression":{"id":42305,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41767,"src":"5012:6:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":42306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5019:27:48","memberName":"computeOptimalArbLowerPrice","nodeType":"MemberAccess","referencedDeclaration":36419,"src":"5012:34:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view external returns (uint256)"}},"id":42310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5012:91:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4989:114:48"},{"expression":{"arguments":[{"id":42315,"name":"optimalLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42304,"src":"5127:12:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42312,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"5114:8:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":42314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5123:3:48","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":17998,"src":"5114:12:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":42316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5114:26:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42317,"nodeType":"ExpressionStatement","src":"5114:26:48"}]},"functionSelector":"622912c1","implemented":true,"kind":"function","modifiers":[{"id":42293,"kind":"modifierInvocation","modifierName":{"id":42292,"name":"basic","nameLocations":["4930:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":42041,"src":"4930:5:48"},"nodeType":"ModifierInvocation","src":"4930:5:48"}],"name":"test_ln_optimal_lower","nameLocation":"4899:21:48","parameters":{"id":42291,"nodeType":"ParameterList","parameters":[],"src":"4920:2:48"},"returnParameters":{"id":42294,"nodeType":"ParameterList","parameters":[],"src":"4936:0:48"},"scope":42349,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":42348,"nodeType":"FunctionDefinition","src":"5153:257:48","nodes":[],"body":{"id":42347,"nodeType":"Block","src":"5199:211:48","nodes":[],"statements":[{"assignments":[42325],"declarations":[{"constant":false,"id":42325,"mutability":"mutable","name":"poolId","nameLocation":"5217:6:48","nodeType":"VariableDeclaration","scope":42347,"src":"5209:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42324,"name":"uint256","nodeType":"ElementaryTypeName","src":"5209:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42331,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42326,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41761,"src":"5226:4:48","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":42327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5231:5:48","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":28971,"src":"5226:10:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":42328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5226:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":42329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5241:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5226:16:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5209:33:48"},{"assignments":[42333],"declarations":[{"constant":false,"id":42333,"mutability":"mutable","name":"optimalRaise","nameLocation":"5260:12:48","nodeType":"VariableDeclaration","scope":42347,"src":"5252:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42332,"name":"uint256","nodeType":"ElementaryTypeName","src":"5252:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42340,"initialValue":{"arguments":[{"id":42336,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42325,"src":"5323:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"322e31","id":42337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5331:9:48","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_2100000000000000000_by_1","typeString":"int_const 2100000000000000000"},"value":"2.1"},{"hexValue":"302e333435313536","id":42338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5342:14:48","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_345156000000000000_by_1","typeString":"int_const 345156000000000000"},"value":"0.345156"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_2100000000000000000_by_1","typeString":"int_const 2100000000000000000"},{"typeIdentifier":"t_rational_345156000000000000_by_1","typeString":"int_const 345156000000000000"}],"expression":{"id":42334,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41767,"src":"5275:6:48","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":42335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5282:27:48","memberName":"computeOptimalArbRaisePrice","nodeType":"MemberAccess","referencedDeclaration":36459,"src":"5275:34:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view external returns (uint256)"}},"id":42339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5275:91:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5252:114:48"},{"expression":{"arguments":[{"id":42344,"name":"optimalRaise","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42333,"src":"5390:12:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42341,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"5377:8:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console2_$25512_$","typeString":"type(library console2)"}},"id":42343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5386:3:48","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":17998,"src":"5377:12:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":42345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5377:26:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42346,"nodeType":"ExpressionStatement","src":"5377:26:48"}]},"functionSelector":"e3d575ce","implemented":true,"kind":"function","modifiers":[{"id":42322,"kind":"modifierInvocation","modifierName":{"id":42321,"name":"basic","nameLocations":["5193:5:48"],"nodeType":"IdentifierPath","referencedDeclaration":42041,"src":"5193:5:48"},"nodeType":"ModifierInvocation","src":"5193:5:48"}],"name":"test_ln_optimal_raise","nameLocation":"5162:21:48","parameters":{"id":42320,"nodeType":"ParameterList","parameters":[],"src":"5183:2:48"},"returnParameters":{"id":42323,"nodeType":"ParameterList","parameters":[],"src":"5199:0:48"},"scope":42349,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":41753,"name":"Test","nameLocations":["329:4:48"],"nodeType":"IdentifierPath","referencedDeclaration":8195,"src":"329:4:48"},"id":41754,"nodeType":"InheritanceSpecifier","src":"329:4:48"}],"canonicalName":"LogNormalTest","contractDependencies":[25560,29062,36460,38879,44392],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[42349,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"LogNormalTest","nameLocation":"312:13:48","scope":42350,"usedErrors":[],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":48} \ No newline at end of file diff --git a/out/MockERC20.sol/MockERC20.json b/out/MockERC20.sol/MockERC20.json deleted file mode 100644 index dcc2fea4..00000000 --- a/out/MockERC20.sol/MockERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_decimals","type":"uint8","internalType":"uint8"}],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c63430008160033","sourceMap":"108:368:15:-:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;108:368:15;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;108:368:15;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;108:368:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2103:16:16;;;108:368:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;108:368:15;;;;;;;;;;;;;;2129:20:16;;2179:13;2160:32;;108:368:15;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2103:16:16;;108:368:15;2103:16:16;;;108:368:15;;;;;;;;;;;;;;:::i;:::-;;5776:22:16;;108:368:15;;;5627:295:16;;;108:368:15;5659:95:16;108:368:15;;;;;;5820:14:16;108:368:15;;;;2179:13:16;2129:20;108:368:15;;;5899:4:16;2160:32;108:368:15;;;2160:32:16;5627:295;;108:368:15;;;;;;;;;;;;;;;;;;5600:336:16;;108:368:15;2202:51:16;108:368:15;;;;;;2129:20:16;108:368:15;;;;;2160:32:16;108:368:15;;;;;;;;;;;;;-1:-1:-1;;;108:368:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;108:368:15;;;;;;;;;;;-1:-1:-1;;108:368:15;;;;;;;;;;;;;-1:-1:-1;108:368:15;;-1:-1:-1;108:368:15;;-1:-1:-1;108:368:15;;;;;-1:-1:-1;108:368:15;;;;;;;;;;;;;-1:-1:-1;108:368:15;;-1:-1:-1;;108:368:15;;;;;;;;;;;;;-1:-1:-1;108:368:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;108:368:15;;;;;;;;;;;;;-1:-1:-1;;;108:368:15;;;;;;;;;;;;-1:-1:-1;108:368:15;;;;;;;;;;;;-1:-1:-1;;;108:368:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;108:368:15;;;;;;;;;;;;;;;-1:-1:-1;108:368:15;;;;;-1:-1:-1;108:368:15;;-1:-1:-1;108:368:15;;;;;;;-1:-1:-1;;108:368:15;;;;-1:-1:-1;;;;;108:368:15;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;108:368:15;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;108:368:15;;;;;;;;-1:-1:-1;108:368:15;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c63430008160033","sourceMap":"108:368:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;108:368:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;108:368:15;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4044:15:16;4032:27;;108:368:15;;4415:18:16;;:::i;:::-;108:368:15;;;;;;;;;;;;;;;4860:6:16;108:368:15;;;;;;;;;;;;;;;;4498:449:16;;;;;108:368:15;4542:165:16;108:368:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;4498:449:16;;108:368:15;;;;;;;;;;;;;;;;;;;4459:514:16;;4337:658;;;108:368:15;;;;;;;;;;;;;;;4337:658:16;;108:368:15;;;;;;;;;;;;;;;;;4306:707:16;;108:368:15;;;;;;;;;;;;;;;;;;;4279:805:16;;;108:368:15;;;;;;;4279:805:16;;;;;;;108:368:15;5107:30:16;;;;:59;;;108:368:15;;;;;;5270:31:16;108:368:15;;;;;;;;;;;;;;;;;;;;;;;5270:31:16;108:368:15;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;108:368:15;;;;;5107:59:16;5141:25;;;;5107:59;;4279:805;108:368:15;;;;;;;;;;-1:-1:-1;;;108:368:15;;;;;;;;;-1:-1:-1;;;;108:368:15;;;;;;;;;;;-1:-1:-1;;;108:368:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;2761:10:16;;108:368:15;;2751:9:16;108:368:15;;;;;2751:31:16;108:368:15;;;2751:31:16;:::i;:::-;108:368:15;;-1:-1:-1;;;;;108:368:15;;;;2751:9:16;108:368:15;;;;;;;;;;;;;;;2761:10:16;;-1:-1:-1;;;;;;;;;;;2977:32:16;108:368:15;;2977:32:16;108:368:15;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;108:368:15;;;:::i;:::-;;;;;;;;;;;;;;6540:9:16;108:368:15;;;;;6540:25:16;108:368:15;;;6540:25:16;:::i;:::-;108:368:15;;;6708:21:16;108:368:15;;6708:21:16;108:368:15;;;;;6755:34:16;108:368:15;;;;;;;;;;;;;;;;;;;;;;;1043:20:16;;108:368:15;;;;;:::i;:::-;;;;;;;1043:20:16;108:368:15;;;1043:20:16;;;;108:368:15;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;1043:20:16;108:368:15;;;;;;;;;-1:-1:-1;;;;108:368:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;108:368:15;;;;;;;;-1:-1:-1;;;;;108:368:15;;:::i;:::-;;;;1738:41:16;108:368:15;;;;;;;;;;;;;;;;;;-1:-1:-1;;108:368:15;;;;;;;;-1:-1:-1;;;;;108:368:15;;:::i;:::-;;;;1324:44:16;108:368:15;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6207:21:16;108:368:15;;;;;;;;;;-1:-1:-1;6207:21:16;108:368:15;-1:-1:-1;;;;;108:368:15;;;;6374:9:16;108:368:15;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6423:32:16;108:368:15;6423:32:16;108:368:15;;;-1:-1:-1;;;108:368:15;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1070:31:16;108:368:15;;;;;;;;;;;;-1:-1:-1;;108:368:15;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;108:368:15;;:::i;:::-;-1:-1:-1;;;;;108:368:15;;;;;;;;;;;;;3212:10:16;108:368:15;;;;;;;;;;;;;;;;;;;;;3274:28:16;;3270:80;;108:368:15;;;;;;;3361:9:16;108:368:15;;;;;3361:25:16;108:368:15;;;3361:25:16;:::i;:::-;108:368:15;;;;;;;3361:9:16;108:368:15;;;;;;;;;;;;;;3581:26:16;108:368:15;;;;;3270:80:16;3334:16;;;:::i;:::-;108:368:15;;;;;;;;;3212:10:16;108:368:15;;;;;;;;3270:80:16;;;;;108:368:15;;;;;;;;;;;;;;;;1291:26:16;108:368:15;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;2548:10:16;;;;108:368:15;;;;;;;;;;;;;;;;;;;;;;;;;;;2593:37:16;2548:10;;2593:37;;108:368:15;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;108:368:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;108:368:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;108:368:15;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;108:368:15;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;5314:177:16;-1:-1:-1;5397:13:16;5414:16;5397:33;5414:16;;5433:24;;5314:177;:::o;5397:87::-;108:368:15;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5776:22:16;;108:368:15;;;5627:295:16;;;108:368:15;5659:95:16;108:368:15;;;;;;5820:14:16;108:368:15;;;;5397:13:16;108:368:15;;;;5899:4:16;108:368:15;;;;;5627:295:16;;108:368:15;;;;;;;;;;;;;;;;;5600:336:16;;5314:177;:::o;108:368:15:-;-1:-1:-1;;;108:368:15;;;;;;;;;;;;;;-1:-1:-1;108:368:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;108:368:15;;;;;;;;;;;-1:-1:-1;;108:368:15;;;;;;;;;;;;;-1:-1:-1;108:368:15;;-1:-1:-1;108:368:15;;-1:-1:-1;108:368:15","linkReferences":{},"immutableReferences":{"25585":[{"start":1585,"length":32}],"25599":[{"start":2394,"length":32}],"25601":[{"start":2433,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":\"MockERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":"MockERC20"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol","id":25561,"exportedSymbols":{"ERC20":[25948],"MockERC20":[25560]},"nodeType":"SourceUnit","src":"32:445:15","nodes":[{"id":25514,"nodeType":"PragmaDirective","src":"32:24:15","nodes":[],"literals":["solidity",">=","0.8",".0"]},{"id":25516,"nodeType":"ImportDirective","src":"58:48:15","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/tokens/ERC20.sol","file":"../../../tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":25561,"sourceUnit":25949,"symbolAliases":[{"foreign":{"id":25515,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25948,"src":"66:5:15","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":25560,"nodeType":"ContractDefinition","src":"108:368:15","nodes":[{"id":25533,"nodeType":"FunctionDefinition","src":"142:138:15","nodes":[],"body":{"id":25532,"nodeType":"Block","src":"278:2:15","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":25527,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25520,"src":"251:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25528,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"258:7:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25529,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25524,"src":"267:9:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":25530,"kind":"baseConstructorSpecifier","modifierName":{"id":25526,"name":"ERC20","nameLocations":["245:5:15"],"nodeType":"IdentifierPath","referencedDeclaration":25948,"src":"245:5:15"},"nodeType":"ModifierInvocation","src":"245:32:15"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":25525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25520,"mutability":"mutable","name":"_name","nameLocation":"177:5:15","nodeType":"VariableDeclaration","scope":25533,"src":"163:19:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25519,"name":"string","nodeType":"ElementaryTypeName","src":"163:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25522,"mutability":"mutable","name":"_symbol","nameLocation":"206:7:15","nodeType":"VariableDeclaration","scope":25533,"src":"192:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25521,"name":"string","nodeType":"ElementaryTypeName","src":"192:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25524,"mutability":"mutable","name":"_decimals","nameLocation":"229:9:15","nodeType":"VariableDeclaration","scope":25533,"src":"223:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":25523,"name":"uint8","nodeType":"ElementaryTypeName","src":"223:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"153:91:15"},"returnParameters":{"id":25531,"nodeType":"ParameterList","parameters":[],"src":"278:0:15"},"scope":25560,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":25546,"nodeType":"FunctionDefinition","src":"286:89:15","nodes":[],"body":{"id":25545,"nodeType":"Block","src":"342:33:15","nodes":[],"statements":[{"expression":{"arguments":[{"id":25541,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25535,"src":"358:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25542,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25537,"src":"362:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25540,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25919,"src":"352:5:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":25543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"352:16:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25544,"nodeType":"ExpressionStatement","src":"352:16:15"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"295:4:15","parameters":{"id":25538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25535,"mutability":"mutable","name":"to","nameLocation":"308:2:15","nodeType":"VariableDeclaration","scope":25546,"src":"300:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25534,"name":"address","nodeType":"ElementaryTypeName","src":"300:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25537,"mutability":"mutable","name":"value","nameLocation":"320:5:15","nodeType":"VariableDeclaration","scope":25546,"src":"312:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25536,"name":"uint256","nodeType":"ElementaryTypeName","src":"312:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"299:27:15"},"returnParameters":{"id":25539,"nodeType":"ParameterList","parameters":[],"src":"342:0:15"},"scope":25560,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":25559,"nodeType":"FunctionDefinition","src":"381:93:15","nodes":[],"body":{"id":25558,"nodeType":"Block","src":"439:35:15","nodes":[],"statements":[{"expression":{"arguments":[{"id":25554,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25548,"src":"455:4:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25555,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25550,"src":"461:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25553,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25947,"src":"449:5:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":25556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"449:18:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25557,"nodeType":"ExpressionStatement","src":"449:18:15"}]},"functionSelector":"9dc29fac","implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"390:4:15","parameters":{"id":25551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25548,"mutability":"mutable","name":"from","nameLocation":"403:4:15","nodeType":"VariableDeclaration","scope":25559,"src":"395:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25547,"name":"address","nodeType":"ElementaryTypeName","src":"395:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25550,"mutability":"mutable","name":"value","nameLocation":"417:5:15","nodeType":"VariableDeclaration","scope":25559,"src":"409:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25549,"name":"uint256","nodeType":"ElementaryTypeName","src":"409:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"394:29:15"},"returnParameters":{"id":25552,"nodeType":"ParameterList","parameters":[],"src":"439:0:15"},"scope":25560,"stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":25517,"name":"ERC20","nameLocations":["130:5:15"],"nodeType":"IdentifierPath","referencedDeclaration":25948,"src":"130:5:15"},"id":25518,"nodeType":"InheritanceSpecifier","src":"130:5:15"}],"canonicalName":"MockERC20","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[25560,25948],"name":"MockERC20","nameLocation":"117:9:15","scope":25561,"usedErrors":[],"usedEvents":[25571,25579]}],"license":"MIT"},"id":15} \ No newline at end of file diff --git a/out/MockStrategy.sol/MockStrategy.json b/out/MockStrategy.sol/MockStrategy.json deleted file mode 100644 index c492fa2b..00000000 --- a/out/MockStrategy.sol/MockStrategy.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"dfmm_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"computeSwapConstant","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"dfmm","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getPoolParams","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"params","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"init","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"},{"name":"swapConstantGrowth","type":"int256","internalType":"int256"},{"name":"reserveX","type":"uint256","internalType":"uint256"},{"name":"reserveY","type":"uint256","internalType":"uint256"},{"name":"totalLiquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"update","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateAllocateOrDeallocate","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"},{"name":"invariant","type":"int256","internalType":"int256"},{"name":"reserveX","type":"uint256","internalType":"uint256"},{"name":"reserveY","type":"uint256","internalType":"uint256"},{"name":"totalLiquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validateSwap","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"},{"name":"swapConstantGrowth","type":"int256","internalType":"int256"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"reserveX","type":"uint256","internalType":"uint256"},{"name":"reserveY","type":"uint256","internalType":"uint256"},{"name":"totalLiquidity","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"error","name":"InvalidSender","inputs":[]},{"type":"error","name":"InvalidUpdateCode","inputs":[]},{"type":"error","name":"NotDFMM","inputs":[]}],"bytecode":{"object":"0x60a03461006957601f6105b538819003918201601f19168301916001600160401b0383118484101761006e5780849260209460405283398101031261006957516001600160a01b038116810361006957608052604051610530908161008582396080518160ef0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600436101561001457600080fd5b600091823560e01c9081622e524b146103f95750806306fdde031461035657806368bd3e381461031d57806373cb2d031461024e5780638a04bdd514610137578063acad29891461011e578063afba13c4146100db5763dc1783551461007957600080fd5b346100d7576020806003193601126100d3579181519283916020835260605191826020850152815b8381106100be575050828201840152601f01601f19168101030190f35b608081015187820187015286945081016100a1565b8280fd5b5080fd5b50346100d757816003193601126100d757517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b82346101345761012d36610493565b5050505080f35b80fd5b5090346101345761014736610493565b849350839250829182918290602090830183900312610134575035600181036101c45750505050505060016101c0670de0b6b3a7640000926802b5e3af16b188000080674563918244f40000925b51958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b0390f35b600981036102055750505050505060016101c0670de0b6b3a76400009268056bc75e2d6310000068068155a43676e0000090678ac7230489e8000092610195565b600814610218575b6101c0939495610195565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d63100000905068068155a43676e0000061020d565b5090346101345761025e36610493565b849350839250829182918290602090830183900312610134575035600181146102e8575b6002146102bb575b6101c093949551958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d6310000090508061028a565b670de0b6b3a7640000955060019450673782dace9d90000093506729a2241af62c00009250671bc16d674ec800009150610282565b50346100d75760c09161032f36610493565b505050508082519281845281602085015283015280606083015280608083015260a0820152f35b50346100d757816003193601126100d757805181810181811067ffffffffffffffff8211176103e5578252600c81526020906b4d6f636b537472617465677960a01b6020820152825193849260208452825192836020860152825b8481106103cf57505050828201840152601f01601f19168101030190f35b81810183015188820188015287955082016103b1565b634e487b7160e01b84526041600452602484fd5b8383346100d757806003193601126100d75767ffffffffffffffff9260243584811161047b573660238201121561047b5780600401359480861161047f57601f8601601f19908116603f011683019081118382101761047f578352848252366024868301011161047b5784849260209660248894018483013701015251908152f35b8380fd5b634e487b7160e01b85526041600452602485fd5b9060606003198301126104f5576004356001600160a01b03811681036104f557916024359160443567ffffffffffffffff928382116104f557806023830112156104f55781600401359384116104f557602484830101116104f5576024019190565b600080fdfea264697066735822122009a636832ec6847884e761e11e93e4c99c16c8767042c516d6f7d4bb27fb9bb064736f6c63430008160033","sourceMap":"144:2689:57:-:0;;;;;;;;;;;;;-1:-1:-1;;144:2689:57;;;;-1:-1:-1;;;;;144:2689:57;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;144:2689:57;;;;;;309:12;;144:2689;;;;;;;;309:12;144:2689;;;;;;;-1:-1:-1;144:2689:57;;;;;;-1:-1:-1;144:2689:57;;;;;-1:-1:-1;144:2689:57","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600436101561001457600080fd5b600091823560e01c9081622e524b146103f95750806306fdde031461035657806368bd3e381461031d57806373cb2d031461024e5780638a04bdd514610137578063acad29891461011e578063afba13c4146100db5763dc1783551461007957600080fd5b346100d7576020806003193601126100d3579181519283916020835260605191826020850152815b8381106100be575050828201840152601f01601f19168101030190f35b608081015187820187015286945081016100a1565b8280fd5b5080fd5b50346100d757816003193601126100d757517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b82346101345761012d36610493565b5050505080f35b80fd5b5090346101345761014736610493565b849350839250829182918290602090830183900312610134575035600181036101c45750505050505060016101c0670de0b6b3a7640000926802b5e3af16b188000080674563918244f40000925b51958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b0390f35b600981036102055750505050505060016101c0670de0b6b3a76400009268056bc75e2d6310000068068155a43676e0000090678ac7230489e8000092610195565b600814610218575b6101c0939495610195565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d63100000905068068155a43676e0000061020d565b5090346101345761025e36610493565b849350839250829182918290602090830183900312610134575035600181146102e8575b6002146102bb575b6101c093949551958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d6310000090508061028a565b670de0b6b3a7640000955060019450673782dace9d90000093506729a2241af62c00009250671bc16d674ec800009150610282565b50346100d75760c09161032f36610493565b505050508082519281845281602085015283015280606083015280608083015260a0820152f35b50346100d757816003193601126100d757805181810181811067ffffffffffffffff8211176103e5578252600c81526020906b4d6f636b537472617465677960a01b6020820152825193849260208452825192836020860152825b8481106103cf57505050828201840152601f01601f19168101030190f35b81810183015188820188015287955082016103b1565b634e487b7160e01b84526041600452602484fd5b8383346100d757806003193601126100d75767ffffffffffffffff9260243584811161047b573660238201121561047b5780600401359480861161047f57601f8601601f19908116603f011683019081118382101761047f578352848252366024868301011161047b5784849260209660248894018483013701015251908152f35b8380fd5b634e487b7160e01b85526041600452602485fd5b9060606003198301126104f5576004356001600160a01b03811681036104f557916024359160443567ffffffffffffffff928382116104f557806023830112156104f55781600401359384116104f557602484830101116104f5576024019190565b600080fdfea264697066735822122009a636832ec6847884e761e11e93e4c99c16c8767042c516d6f7d4bb27fb9bb064736f6c63430008160033","sourceMap":"144:2689:57:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;144:2689:57;;;;;;;;-1:-1:-1;;144:2689:57;;;;;;;;;;;;;;;;;;;;-1:-1:-1;144:2689:57;;;;;;;;;;;;;;;;;;;;;;;;;;185:29;-1:-1:-1;;;;;144:2689:57;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;1119:987;;-1:-1:-1;1119:987:57;;-1:-1:-1;1119:987:57;;;;;;144:2689;1471:27;;;144:2689;;;;;;-1:-1:-1;144:2689:57;1523:1;1513:11;;1523:1;;1540:12;;;;;;1523:1;144:2689;1578:7;1599:19;1610:8;1632:19;1682:7;1509:591;;144:2689;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1509:591;1720:1;1710:11;;1720:1;;1737:12;;;;;;1523:1;144:2689;1775:7;1796:20;1807:9;1841;1864:25;1881:8;1706:394;1509:591;;1706:394;1920:1;1910:11;1906:194;;1706:394;144:2689;1706:394;;;1509:591;;1906:194;-1:-1:-1;1975:7:57;;-1:-1:-1;1523:1:57;;-1:-1:-1;2081:8:57;;-1:-1:-1;2041:9:57;;-1:-1:-1;2007:9:57;1906:194;;144:2689;;;;;;;;;:::i;:::-;334:779;;-1:-1:-1;334:779:57;;-1:-1:-1;334:779:57;;;;;;144:2689;658:27;;;144:2689;;;;;;;;710:1;700:11;;696:198;;144:2689;918:1;908:11;904:203;;144:2689;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;904:203;-1:-1:-1;982:7:57;;-1:-1:-1;710:1:57;;-1:-1:-1;1088:8:57;;-1:-1:-1;1014:9:57;;-1:-1:-1;1014:9:57;904:203;;696:198;774:7;;-1:-1:-1;710:1:57;;-1:-1:-1;876:7:57;;-1:-1:-1;838:7:57;;-1:-1:-1;806:7:57;;-1:-1:-1;696:198:57;;144:2689;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;144:2689:57;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;144:2689:57;;;;;;;;-1:-1:-1;;144:2689:57;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;144:2689:57;;;;;-1:-1:-1;;;144:2689:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;144:2689:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;144:2689:57;;;;;;;;;;;-1:-1:-1;;144:2689:57;;;;;;;-1:-1:-1;;;;;144:2689:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;144:2689:57;","linkReferences":{},"immutableReferences":{"44400":[{"start":239,"length":32}]}},"methodIdentifiers":{"computeSwapConstant(uint256,bytes)":"002e524b","dfmm()":"afba13c4","getPoolParams(uint256)":"dc178355","init(address,uint256,bytes)":"73cb2d03","name()":"06fdde03","update(address,uint256,bytes)":"acad2989","validateAllocateOrDeallocate(address,uint256,bytes)":"8a04bdd5","validateSwap(address,uint256,bytes)":"68bd3e38"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dfmm_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidSender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidUpdateCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotDFMM\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"computeSwapConstant\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dfmm\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolParams\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"init\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"swapConstantGrowth\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalLiquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"update\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"validateAllocateOrDeallocate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"invariant\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalLiquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"validateSwap\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"swapConstantGrowth\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"reserveX\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveY\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalLiquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidSender()\":[{\"details\":\"Thrown when the sender is authorized.\"}],\"InvalidUpdateCode()\":[{\"details\":\"Thrown when the update code is invalid.\"}],\"NotDFMM()\":[{\"details\":\"Thrown when the sender is not the DFMM contract.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"name\":{\"details\":\"The name of the strategy is included in the name of the liquidity token.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"name()\":{\"notice\":\"Returns the name of the strategy.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/helpers/MockStrategy.sol\":\"MockStrategy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/test/helpers/MockStrategy.sol\":{\"keccak256\":\"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5\",\"dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"dfmm_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InvalidSender"},{"inputs":[],"type":"error","name":"InvalidUpdateCode"},{"inputs":[],"type":"error","name":"NotDFMM"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"computeSwapConstant","outputs":[{"internalType":"int256","name":"","type":"int256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"dfmm","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolParams","outputs":[{"internalType":"bytes","name":"params","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"init","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"int256","name":"swapConstantGrowth","type":"int256"},{"internalType":"uint256","name":"reserveX","type":"uint256"},{"internalType":"uint256","name":"reserveY","type":"uint256"},{"internalType":"uint256","name":"totalLiquidity","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"update"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"validateAllocateOrDeallocate","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"int256","name":"invariant","type":"int256"},{"internalType":"uint256","name":"reserveX","type":"uint256"},{"internalType":"uint256","name":"reserveY","type":"uint256"},{"internalType":"uint256","name":"totalLiquidity","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function","name":"validateSwap","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"int256","name":"swapConstantGrowth","type":"int256"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"uint256","name":"reserveX","type":"uint256"},{"internalType":"uint256","name":"reserveY","type":"uint256"},{"internalType":"uint256","name":"totalLiquidity","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"name()":{"notice":"Returns the name of the strategy."}},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/helpers/MockStrategy.sol":"MockStrategy"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/test/helpers/MockStrategy.sol":{"keccak256":"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a","urls":["bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5","dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/helpers/MockStrategy.sol","id":44650,"exportedSymbols":{"IDFMM":[29730],"IStrategy":[29839],"MockStrategy":[44649]},"nodeType":"SourceUnit","src":"39:2795:57","nodes":[{"id":44394,"nodeType":"PragmaDirective","src":"39:24:57","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":44395,"nodeType":"ImportDirective","src":"65:36:57","nodes":[],"absolutePath":"src/interfaces/IDFMM.sol","file":"../../interfaces/IDFMM.sol","nameLocation":"-1:-1:-1","scope":44650,"sourceUnit":29731,"symbolAliases":[],"unitAlias":""},{"id":44396,"nodeType":"ImportDirective","src":"102:40:57","nodes":[],"absolutePath":"src/interfaces/IStrategy.sol","file":"../../interfaces/IStrategy.sol","nameLocation":"-1:-1:-1","scope":44650,"sourceUnit":29840,"symbolAliases":[],"unitAlias":""},{"id":44649,"nodeType":"ContractDefinition","src":"144:2689:57","nodes":[{"id":44400,"nodeType":"VariableDeclaration","src":"185:29:57","nodes":[],"baseFunctions":[29831],"constant":false,"functionSelector":"afba13c4","mutability":"immutable","name":"dfmm","nameLocation":"210:4:57","scope":44649,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44399,"name":"address","nodeType":"ElementaryTypeName","src":"185:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":44403,"nodeType":"VariableDeclaration","src":"221:44:57","nodes":[],"baseFunctions":[29768],"constant":true,"functionSelector":"06fdde03","mutability":"constant","name":"name","nameLocation":"244:4:57","scope":44649,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":44401,"name":"string","nodeType":"ElementaryTypeName","src":"221:6:57","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"4d6f636b5374726174656779","id":44402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"251:14:57","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e1bd7a91aa0b5b600aa464f4aac8a0d6d8f6f31b3d1b52e0f57e678d6078f75","typeString":"literal_string \"MockStrategy\""},"value":"MockStrategy"},"visibility":"public"},{"id":44413,"nodeType":"FunctionDefinition","src":"272:56:57","nodes":[],"body":{"id":44412,"nodeType":"Block","src":"299:29:57","nodes":[],"statements":[{"expression":{"id":44410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44408,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44400,"src":"309:4:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44409,"name":"dfmm_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44405,"src":"316:5:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"309:12:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44411,"nodeType":"ExpressionStatement","src":"309:12:57"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":44406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44405,"mutability":"mutable","name":"dfmm_","nameLocation":"292:5:57","nodeType":"VariableDeclaration","scope":44413,"src":"284:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44404,"name":"address","nodeType":"ElementaryTypeName","src":"284:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"283:15:57"},"returnParameters":{"id":44407,"nodeType":"ParameterList","parameters":[],"src":"299:0:57"},"scope":44649,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":44493,"nodeType":"FunctionDefinition","src":"334:779:57","nodes":[],"body":{"id":44492,"nodeType":"Block","src":"631:482:57","nodes":[],"statements":[{"assignments":[44433],"declarations":[{"constant":false,"id":44433,"mutability":"mutable","name":"status","nameLocation":"649:6:57","nodeType":"VariableDeclaration","scope":44492,"src":"641:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44432,"name":"uint256","nodeType":"ElementaryTypeName","src":"641:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44441,"initialValue":{"arguments":[{"id":44436,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44419,"src":"669:4:57","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":44438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"676:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":44437,"name":"uint256","nodeType":"ElementaryTypeName","src":"676:7:57","typeDescriptions":{}}}],"id":44439,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"675:9:57","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":44434,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"658:3:57","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"662:6:57","memberName":"decode","nodeType":"MemberAccess","src":"658:10:57","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":44440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"658:27:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"641:44:57"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44442,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44433,"src":"700:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":44443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"710:1:57","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"700:11:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44466,"nodeType":"IfStatement","src":"696:198:57","trueBody":{"id":44465,"nodeType":"Block","src":"713:181:57","statements":[{"expression":{"id":44447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44445,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44422,"src":"727:5:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":44446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"735:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"727:12:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44448,"nodeType":"ExpressionStatement","src":"727:12:57"},{"expression":{"id":44451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44449,"name":"swapConstantGrowth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44424,"src":"753:18:57","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":44450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"774:7:57","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"src":"753:28:57","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":44452,"nodeType":"ExpressionStatement","src":"753:28:57"},{"expression":{"id":44455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44453,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44426,"src":"795:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"32","id":44454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"806:7:57","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_2000000000000000000_by_1","typeString":"int_const 2000000000000000000"},"value":"2"},"src":"795:18:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44456,"nodeType":"ExpressionStatement","src":"795:18:57"},{"expression":{"id":44459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44457,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44428,"src":"827:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"33","id":44458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"838:7:57","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_3000000000000000000_by_1","typeString":"int_const 3000000000000000000"},"value":"3"},"src":"827:18:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44460,"nodeType":"ExpressionStatement","src":"827:18:57"},{"expression":{"id":44463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44461,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44430,"src":"859:14:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"34","id":44462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"876:7:57","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_4000000000000000000_by_1","typeString":"int_const 4000000000000000000"},"value":"4"},"src":"859:24:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44464,"nodeType":"ExpressionStatement","src":"859:24:57"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44467,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44433,"src":"908:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":44468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"918:1:57","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"908:11:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44491,"nodeType":"IfStatement","src":"904:203:57","trueBody":{"id":44490,"nodeType":"Block","src":"921:186:57","statements":[{"expression":{"id":44472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44470,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44422,"src":"935:5:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":44471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"943:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"935:12:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44473,"nodeType":"ExpressionStatement","src":"935:12:57"},{"expression":{"id":44476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44474,"name":"swapConstantGrowth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44424,"src":"961:18:57","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":44475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"982:7:57","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"src":"961:28:57","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":44477,"nodeType":"ExpressionStatement","src":"961:28:57"},{"expression":{"id":44480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44478,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44426,"src":"1003:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":44479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1014:9:57","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"},"src":"1003:20:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44481,"nodeType":"ExpressionStatement","src":"1003:20:57"},{"expression":{"id":44484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44482,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44428,"src":"1037:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":44483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1048:9:57","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"},"src":"1037:20:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44485,"nodeType":"ExpressionStatement","src":"1037:20:57"},{"expression":{"id":44488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44486,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44430,"src":"1071:14:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"3130","id":44487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1088:8:57","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},"value":"10"},"src":"1071:25:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44489,"nodeType":"ExpressionStatement","src":"1071:25:57"}]}}]},"baseFunctions":[29762],"functionSelector":"73cb2d03","implemented":true,"kind":"function","modifiers":[],"name":"init","nameLocation":"343:4:57","parameters":{"id":44420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44493,"src":"357:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44414,"name":"address","nodeType":"ElementaryTypeName","src":"357:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44417,"mutability":"mutable","name":"poolId","nameLocation":"382:6:57","nodeType":"VariableDeclaration","scope":44493,"src":"374:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44416,"name":"uint256","nodeType":"ElementaryTypeName","src":"374:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44419,"mutability":"mutable","name":"data","nameLocation":"413:4:57","nodeType":"VariableDeclaration","scope":44493,"src":"398:19:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44418,"name":"bytes","nodeType":"ElementaryTypeName","src":"398:5:57","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"347:76:57"},"returnParameters":{"id":44431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44422,"mutability":"mutable","name":"valid","nameLocation":"476:5:57","nodeType":"VariableDeclaration","scope":44493,"src":"471:10:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44421,"name":"bool","nodeType":"ElementaryTypeName","src":"471:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44424,"mutability":"mutable","name":"swapConstantGrowth","nameLocation":"502:18:57","nodeType":"VariableDeclaration","scope":44493,"src":"495:25:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44423,"name":"int256","nodeType":"ElementaryTypeName","src":"495:6:57","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":44426,"mutability":"mutable","name":"reserveX","nameLocation":"542:8:57","nodeType":"VariableDeclaration","scope":44493,"src":"534:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44425,"name":"uint256","nodeType":"ElementaryTypeName","src":"534:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44428,"mutability":"mutable","name":"reserveY","nameLocation":"572:8:57","nodeType":"VariableDeclaration","scope":44493,"src":"564:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44427,"name":"uint256","nodeType":"ElementaryTypeName","src":"564:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44430,"mutability":"mutable","name":"totalLiquidity","nameLocation":"602:14:57","nodeType":"VariableDeclaration","scope":44493,"src":"594:22:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44429,"name":"uint256","nodeType":"ElementaryTypeName","src":"594:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"457:169:57"},"scope":44649,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":44598,"nodeType":"FunctionDefinition","src":"1119:987:57","nodes":[],"body":{"id":44597,"nodeType":"Block","src":"1444:662:57","nodes":[],"statements":[{"assignments":[44513],"declarations":[{"constant":false,"id":44513,"mutability":"mutable","name":"status","nameLocation":"1462:6:57","nodeType":"VariableDeclaration","scope":44597,"src":"1454:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44512,"name":"uint256","nodeType":"ElementaryTypeName","src":"1454:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44521,"initialValue":{"arguments":[{"id":44516,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44499,"src":"1482:4:57","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":44518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1489:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":44517,"name":"uint256","nodeType":"ElementaryTypeName","src":"1489:7:57","typeDescriptions":{}}}],"id":44519,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1488:9:57","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":44514,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1471:3:57","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":44515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1475:6:57","memberName":"decode","nodeType":"MemberAccess","src":"1471:10:57","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":44520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1471:27:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1454:44:57"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44522,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44513,"src":"1513:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":44523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1523:1:57","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1513:11:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44546,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44513,"src":"1710:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"39","id":44547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1720:1:57","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"src":"1710:11:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44570,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44513,"src":"1910:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"38","id":44571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1920:1:57","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1910:11:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44594,"nodeType":"IfStatement","src":"1906:194:57","trueBody":{"id":44593,"nodeType":"Block","src":"1923:177:57","statements":[{"expression":{"id":44575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44573,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44502,"src":"1937:5:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":44574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1945:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1937:12:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44576,"nodeType":"ExpressionStatement","src":"1937:12:57"},{"expression":{"id":44579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44577,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44504,"src":"1963:9:57","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":44578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1975:7:57","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"src":"1963:19:57","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":44580,"nodeType":"ExpressionStatement","src":"1963:19:57"},{"expression":{"id":44583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44581,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"1996:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313230","id":44582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2007:9:57","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_120000000000000000000_by_1","typeString":"int_const 120000000000000000000"},"value":"120"},"src":"1996:20:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44584,"nodeType":"ExpressionStatement","src":"1996:20:57"},{"expression":{"id":44587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44585,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44508,"src":"2030:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":44586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2041:9:57","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"},"src":"2030:20:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44588,"nodeType":"ExpressionStatement","src":"2030:20:57"},{"expression":{"id":44591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44589,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44510,"src":"2064:14:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"3130","id":44590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2081:8:57","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},"value":"10"},"src":"2064:25:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44592,"nodeType":"ExpressionStatement","src":"2064:25:57"}]}},"id":44595,"nodeType":"IfStatement","src":"1706:394:57","trueBody":{"id":44569,"nodeType":"Block","src":"1723:177:57","statements":[{"expression":{"id":44551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44549,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44502,"src":"1737:5:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":44550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1745:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1737:12:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44552,"nodeType":"ExpressionStatement","src":"1737:12:57"},{"expression":{"id":44555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44553,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44504,"src":"1763:9:57","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":44554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1775:7:57","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"src":"1763:19:57","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":44556,"nodeType":"ExpressionStatement","src":"1763:19:57"},{"expression":{"id":44559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44557,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"1796:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":44558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1807:9:57","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"},"src":"1796:20:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44560,"nodeType":"ExpressionStatement","src":"1796:20:57"},{"expression":{"id":44563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44561,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44508,"src":"1830:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313230","id":44562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1841:9:57","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_120000000000000000000_by_1","typeString":"int_const 120000000000000000000"},"value":"120"},"src":"1830:20:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44564,"nodeType":"ExpressionStatement","src":"1830:20:57"},{"expression":{"id":44567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44565,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44510,"src":"1864:14:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"3130","id":44566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1881:8:57","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},"value":"10"},"src":"1864:25:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44568,"nodeType":"ExpressionStatement","src":"1864:25:57"}]}},"id":44596,"nodeType":"IfStatement","src":"1509:591:57","trueBody":{"id":44545,"nodeType":"Block","src":"1526:174:57","statements":[{"expression":{"id":44527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44525,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44502,"src":"1540:5:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":44526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1548:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1540:12:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44528,"nodeType":"ExpressionStatement","src":"1540:12:57"},{"expression":{"id":44531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44529,"name":"invariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44504,"src":"1566:9:57","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":44530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1578:7:57","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"src":"1566:19:57","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":44532,"nodeType":"ExpressionStatement","src":"1566:19:57"},{"expression":{"id":44535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44533,"name":"reserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"1599:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"3530","id":44534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1610:8:57","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_50000000000000000000_by_1","typeString":"int_const 50000000000000000000"},"value":"50"},"src":"1599:19:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44536,"nodeType":"ExpressionStatement","src":"1599:19:57"},{"expression":{"id":44539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44537,"name":"reserveY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44508,"src":"1632:8:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"3530","id":44538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1643:8:57","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_50000000000000000000_by_1","typeString":"int_const 50000000000000000000"},"value":"50"},"src":"1632:19:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44540,"nodeType":"ExpressionStatement","src":"1632:19:57"},{"expression":{"id":44543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44541,"name":"totalLiquidity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44510,"src":"1665:14:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"35","id":44542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1682:7:57","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_5000000000000000000_by_1","typeString":"int_const 5000000000000000000"},"value":"5"},"src":"1665:24:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44544,"nodeType":"ExpressionStatement","src":"1665:24:57"}]}}]},"baseFunctions":[29787],"functionSelector":"8a04bdd5","implemented":true,"kind":"function","modifiers":[],"name":"validateAllocateOrDeallocate","nameLocation":"1128:28:57","parameters":{"id":44500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44495,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44598,"src":"1166:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44494,"name":"address","nodeType":"ElementaryTypeName","src":"1166:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44497,"mutability":"mutable","name":"poolId","nameLocation":"1191:6:57","nodeType":"VariableDeclaration","scope":44598,"src":"1183:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44496,"name":"uint256","nodeType":"ElementaryTypeName","src":"1183:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44499,"mutability":"mutable","name":"data","nameLocation":"1222:4:57","nodeType":"VariableDeclaration","scope":44598,"src":"1207:19:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44498,"name":"bytes","nodeType":"ElementaryTypeName","src":"1207:5:57","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1156:76:57"},"returnParameters":{"id":44511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44502,"mutability":"mutable","name":"valid","nameLocation":"1298:5:57","nodeType":"VariableDeclaration","scope":44598,"src":"1293:10:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44501,"name":"bool","nodeType":"ElementaryTypeName","src":"1293:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44504,"mutability":"mutable","name":"invariant","nameLocation":"1324:9:57","nodeType":"VariableDeclaration","scope":44598,"src":"1317:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44503,"name":"int256","nodeType":"ElementaryTypeName","src":"1317:6:57","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":44506,"mutability":"mutable","name":"reserveX","nameLocation":"1355:8:57","nodeType":"VariableDeclaration","scope":44598,"src":"1347:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44505,"name":"uint256","nodeType":"ElementaryTypeName","src":"1347:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44508,"mutability":"mutable","name":"reserveY","nameLocation":"1385:8:57","nodeType":"VariableDeclaration","scope":44598,"src":"1377:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44507,"name":"uint256","nodeType":"ElementaryTypeName","src":"1377:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44510,"mutability":"mutable","name":"totalLiquidity","nameLocation":"1415:14:57","nodeType":"VariableDeclaration","scope":44598,"src":"1407:22:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44509,"name":"uint256","nodeType":"ElementaryTypeName","src":"1407:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1279:160:57"},"scope":44649,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":44620,"nodeType":"FunctionDefinition","src":"2112:356:57","nodes":[],"body":{"id":44619,"nodeType":"Block","src":"2465:3:57","nodes":[],"statements":[]},"baseFunctions":[29808],"functionSelector":"68bd3e38","implemented":true,"kind":"function","modifiers":[],"name":"validateSwap","nameLocation":"2121:12:57","parameters":{"id":44605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44600,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44620,"src":"2143:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44599,"name":"address","nodeType":"ElementaryTypeName","src":"2143:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44602,"mutability":"mutable","name":"poolId","nameLocation":"2168:6:57","nodeType":"VariableDeclaration","scope":44620,"src":"2160:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44601,"name":"uint256","nodeType":"ElementaryTypeName","src":"2160:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44604,"mutability":"mutable","name":"data","nameLocation":"2199:4:57","nodeType":"VariableDeclaration","scope":44620,"src":"2184:19:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44603,"name":"bytes","nodeType":"ElementaryTypeName","src":"2184:5:57","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2133:76:57"},"returnParameters":{"id":44618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44607,"mutability":"mutable","name":"valid","nameLocation":"2275:5:57","nodeType":"VariableDeclaration","scope":44620,"src":"2270:10:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44606,"name":"bool","nodeType":"ElementaryTypeName","src":"2270:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44609,"mutability":"mutable","name":"swapConstantGrowth","nameLocation":"2301:18:57","nodeType":"VariableDeclaration","scope":44620,"src":"2294:25:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44608,"name":"int256","nodeType":"ElementaryTypeName","src":"2294:6:57","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":44611,"mutability":"mutable","name":"liquidityDelta","nameLocation":"2340:14:57","nodeType":"VariableDeclaration","scope":44620,"src":"2333:21:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44610,"name":"int256","nodeType":"ElementaryTypeName","src":"2333:6:57","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":44613,"mutability":"mutable","name":"reserveX","nameLocation":"2376:8:57","nodeType":"VariableDeclaration","scope":44620,"src":"2368:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44612,"name":"uint256","nodeType":"ElementaryTypeName","src":"2368:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44615,"mutability":"mutable","name":"reserveY","nameLocation":"2406:8:57","nodeType":"VariableDeclaration","scope":44620,"src":"2398:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44614,"name":"uint256","nodeType":"ElementaryTypeName","src":"2398:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44617,"mutability":"mutable","name":"totalLiquidity","nameLocation":"2436:14:57","nodeType":"VariableDeclaration","scope":44620,"src":"2428:22:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44616,"name":"uint256","nodeType":"ElementaryTypeName","src":"2428:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2256:204:57"},"scope":44649,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":44630,"nodeType":"FunctionDefinition","src":"2474:111:57","nodes":[],"body":{"id":44629,"nodeType":"Block","src":"2582:3:57","nodes":[],"statements":[]},"baseFunctions":[29817],"functionSelector":"acad2989","implemented":true,"kind":"function","modifiers":[],"name":"update","nameLocation":"2483:6:57","parameters":{"id":44627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44622,"mutability":"mutable","name":"sender","nameLocation":"2507:6:57","nodeType":"VariableDeclaration","scope":44630,"src":"2499:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44621,"name":"address","nodeType":"ElementaryTypeName","src":"2499:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44624,"mutability":"mutable","name":"poolId","nameLocation":"2531:6:57","nodeType":"VariableDeclaration","scope":44630,"src":"2523:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44623,"name":"uint256","nodeType":"ElementaryTypeName","src":"2523:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44626,"mutability":"mutable","name":"data","nameLocation":"2562:4:57","nodeType":"VariableDeclaration","scope":44630,"src":"2547:19:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44625,"name":"bytes","nodeType":"ElementaryTypeName","src":"2547:5:57","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2489:83:57"},"returnParameters":{"id":44628,"nodeType":"ParameterList","parameters":[],"src":"2582:0:57"},"scope":44649,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":44640,"nodeType":"FunctionDefinition","src":"2591:120:57","nodes":[],"body":{"id":44639,"nodeType":"Block","src":"2708:3:57","nodes":[],"statements":[]},"baseFunctions":[29826],"functionSelector":"002e524b","implemented":true,"kind":"function","modifiers":[],"name":"computeSwapConstant","nameLocation":"2600:19:57","parameters":{"id":44635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44632,"mutability":"mutable","name":"poolId","nameLocation":"2637:6:57","nodeType":"VariableDeclaration","scope":44640,"src":"2629:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44631,"name":"uint256","nodeType":"ElementaryTypeName","src":"2629:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44634,"mutability":"mutable","name":"data","nameLocation":"2666:4:57","nodeType":"VariableDeclaration","scope":44640,"src":"2653:17:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":44633,"name":"bytes","nodeType":"ElementaryTypeName","src":"2653:5:57","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2619:57:57"},"returnParameters":{"id":44638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44637,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44640,"src":"2700:6:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":44636,"name":"int256","nodeType":"ElementaryTypeName","src":"2700:6:57","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2699:8:57"},"scope":44649,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":44648,"nodeType":"FunctionDefinition","src":"2717:114:57","nodes":[],"body":{"id":44647,"nodeType":"Block","src":"2828:3:57","nodes":[],"statements":[]},"baseFunctions":[29838],"functionSelector":"dc178355","implemented":true,"kind":"function","modifiers":[],"name":"getPoolParams","nameLocation":"2726:13:57","parameters":{"id":44643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44642,"mutability":"mutable","name":"poolId","nameLocation":"2748:6:57","nodeType":"VariableDeclaration","scope":44648,"src":"2740:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44641,"name":"uint256","nodeType":"ElementaryTypeName","src":"2740:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2739:16:57"},"returnParameters":{"id":44646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44645,"mutability":"mutable","name":"params","nameLocation":"2816:6:57","nodeType":"VariableDeclaration","scope":44648,"src":"2803:19:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":44644,"name":"bytes","nodeType":"ElementaryTypeName","src":"2803:5:57","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2802:21:57"},"scope":44649,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":44397,"name":"IStrategy","nameLocations":["169:9:57"],"nodeType":"IdentifierPath","referencedDeclaration":29839,"src":"169:9:57"},"id":44398,"nodeType":"InheritanceSpecifier","src":"169:9:57"}],"canonicalName":"MockStrategy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[44649,29839],"name":"MockStrategy","nameLocation":"153:12:57","scope":44650,"usedErrors":[29736,29739,29742],"usedEvents":[]}],"license":"UNLICENSED"},"id":57} \ No newline at end of file diff --git a/out/PortfolioTracker.sol/PortfolioTracker.json b/out/PortfolioTracker.sol/PortfolioTracker.json deleted file mode 100644 index b37d5422..00000000 --- a/out/PortfolioTracker.sol/PortfolioTracker.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"logPortfolio","inputs":[{"name":"tokenX","type":"address","internalType":"address"},{"name":"tokenY","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"GhostEvent","inputs":[{"name":"ghosted","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"LogPortfolio","inputs":[{"name":"tokenXBalance","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"tokenYBalance","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"blockTimestamp","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234610016576101f9908161001c8239f35b600080fdfe60806040818152600436101561001457600080fd5b600091823560e01c633b3d821f1461002b57600080fd5b346101875781600319360112610187576001600160a01b036004358181169081900361013557602435918216809203610135576370a0823160e01b8084523360048501526020918290859060249082905afa93841561017d57869461014a575b508190602486518095819382523360048301525afa9182156101405785926100e7575b5092606092917f54a6d4307a119575de15b0ad977ab187cda7e97f30308af0a71d235e555ff4e69482519384528301524290820152a180f35b929150928383813d8311610139575b610100818361018b565b8101031261013557915191929091907f54a6d4307a119575de15b0ad977ab187cda7e97f30308af0a71d235e555ff4e66100ae565b8480fd5b503d6100f6565b84513d87823e3d90fd5b9093508181813d8311610176575b610162818361018b565b810103126101725751928161008b565b8580fd5b503d610158565b85513d88823e3d90fd5b8280fd5b90601f8019910116810190811067ffffffffffffffff8211176101ad57604052565b634e487b7160e01b600052604160045260246000fdfea26469706673582212204b3d1873948d33d284c194594b5e10371c864ebf35ed71a5e168502cc061f98064736f6c63430008160033","sourceMap":"155:454:58:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600436101561001457600080fd5b600091823560e01c633b3d821f1461002b57600080fd5b346101875781600319360112610187576001600160a01b036004358181169081900361013557602435918216809203610135576370a0823160e01b8084523360048501526020918290859060249082905afa93841561017d57869461014a575b508190602486518095819382523360048301525afa9182156101405785926100e7575b5092606092917f54a6d4307a119575de15b0ad977ab187cda7e97f30308af0a71d235e555ff4e69482519384528301524290820152a180f35b929150928383813d8311610139575b610100818361018b565b8101031261013557915191929091907f54a6d4307a119575de15b0ad977ab187cda7e97f30308af0a71d235e555ff4e66100ae565b8480fd5b503d6100f6565b84513d87823e3d90fd5b9093508181813d8311610176575b610162818361018b565b810103126101725751928161008b565b8580fd5b503d610158565b85513d88823e3d90fd5b8280fd5b90601f8019910116810190811067ffffffffffffffff8211176101ad57604052565b634e487b7160e01b600052604160045260246000fdfea26469706673582212204b3d1873948d33d284c194594b5e10371c864ebf35ed71a5e168502cc061f98064736f6c63430008160033","sourceMap":"155:454:58:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;155:454:58;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;414:39:58;;;442:10;155:454;414:39;;155:454;;;;;;;;;;;414:39;;;;;;;;;;;155:454;;;;;;;487:39;;;;;;442:10;155:454;487:39;;155:454;487:39;;;;;;;;;;;155:454;;;;;;541:59;155:454;;;;;;;;;584:15;155:454;;;;541:59;155:454;;487:39;;;;;;;;;;;;;;;;;;:::i;:::-;;;155:454;;;;;;487:39;;;;155:454;541:59;487:39;;155:454;;;;487:39;;;;;;155:454;;;;;;;;;414:39;;;;;;;;;;;;;;;;;:::i;:::-;;;155:454;;;;;;;414:39;;155:454;;;;414:39;;;;;;155:454;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;","linkReferences":{}},"methodIdentifiers":{"logPortfolio(address,address)":"3b3d821f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"ghosted\",\"type\":\"bool\"}],\"name\":\"GhostEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenXBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenYBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"blockTimestamp\",\"type\":\"uint256\"}],\"name\":\"LogPortfolio\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenX\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenY\",\"type\":\"address\"}],\"name\":\"logPortfolio\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/helpers/PortfolioTracker.sol\":\"PortfolioTracker\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"src/test/helpers/PortfolioTracker.sol\":{\"keccak256\":\"0xae08093237bc779341ff09c822a17a8505224bb9767e973cc5850a9dee48275a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://614b4803e2333d34987e4cfb7d9b670ff5330e4e08f0e380616f92adb8025162\",\"dweb:/ipfs/QmdRkNNMwCjjg36GeBpgMq7FNELFe53zKzCJ79VYwdHPb1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bool","name":"ghosted","type":"bool","indexed":false}],"type":"event","name":"GhostEvent","anonymous":false},{"inputs":[{"internalType":"uint256","name":"tokenXBalance","type":"uint256","indexed":false},{"internalType":"uint256","name":"tokenYBalance","type":"uint256","indexed":false},{"internalType":"uint256","name":"blockTimestamp","type":"uint256","indexed":false}],"type":"event","name":"LogPortfolio","anonymous":false},{"inputs":[{"internalType":"address","name":"tokenX","type":"address"},{"internalType":"address","name":"tokenY","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"logPortfolio"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/helpers/PortfolioTracker.sol":"PortfolioTracker"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"src/test/helpers/PortfolioTracker.sol":{"keccak256":"0xae08093237bc779341ff09c822a17a8505224bb9767e973cc5850a9dee48275a","urls":["bzz-raw://614b4803e2333d34987e4cfb7d9b670ff5330e4e08f0e380616f92adb8025162","dweb:/ipfs/QmdRkNNMwCjjg36GeBpgMq7FNELFe53zKzCJ79VYwdHPb1"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/helpers/PortfolioTracker.sol","id":44708,"exportedSymbols":{"PortfolioTracker":[44707],"TokenLike":[44659]},"nodeType":"SourceUnit","src":"39:571:58","nodes":[{"id":44651,"nodeType":"PragmaDirective","src":"39:24:58","nodes":[],"literals":["solidity","^","0.8",".14"]},{"id":44659,"nodeType":"ContractDefinition","src":"65:88:58","nodes":[{"id":44658,"nodeType":"FunctionDefinition","src":"91:60:58","nodes":[],"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"100:9:58","parameters":{"id":44654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44653,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44658,"src":"110:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44652,"name":"address","nodeType":"ElementaryTypeName","src":"110:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"109:9:58"},"returnParameters":{"id":44657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44656,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44658,"src":"142:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44655,"name":"uint256","nodeType":"ElementaryTypeName","src":"142:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"141:9:58"},"scope":44659,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"TokenLike","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[44659],"name":"TokenLike","nameLocation":"75:9:58","scope":44708,"usedErrors":[],"usedEvents":[]},{"id":44707,"nodeType":"ContractDefinition","src":"155:454:58","nodes":[{"id":44667,"nodeType":"EventDefinition","src":"187:89:58","nodes":[],"anonymous":false,"eventSelector":"54a6d4307a119575de15b0ad977ab187cda7e97f30308af0a71d235e555ff4e6","name":"LogPortfolio","nameLocation":"193:12:58","parameters":{"id":44666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44661,"indexed":false,"mutability":"mutable","name":"tokenXBalance","nameLocation":"214:13:58","nodeType":"VariableDeclaration","scope":44667,"src":"206:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44660,"name":"uint256","nodeType":"ElementaryTypeName","src":"206:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44663,"indexed":false,"mutability":"mutable","name":"tokenYBalance","nameLocation":"237:13:58","nodeType":"VariableDeclaration","scope":44667,"src":"229:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44662,"name":"uint256","nodeType":"ElementaryTypeName","src":"229:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44665,"indexed":false,"mutability":"mutable","name":"blockTimestamp","nameLocation":"260:14:58","nodeType":"VariableDeclaration","scope":44667,"src":"252:22:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44664,"name":"uint256","nodeType":"ElementaryTypeName","src":"252:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"205:70:58"}},{"id":44671,"nodeType":"EventDefinition","src":"281:31:58","nodes":[],"anonymous":false,"eventSelector":"258aa60324e40f98dd99ad45c40f32be7ef5f7f1db4b805fcad616c45ab14481","name":"GhostEvent","nameLocation":"287:10:58","parameters":{"id":44670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44669,"indexed":false,"mutability":"mutable","name":"ghosted","nameLocation":"303:7:58","nodeType":"VariableDeclaration","scope":44671,"src":"298:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44668,"name":"bool","nodeType":"ElementaryTypeName","src":"298:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"297:14:58"}},{"id":44706,"nodeType":"FunctionDefinition","src":"317:290:58","nodes":[],"body":{"id":44705,"nodeType":"Block","src":"380:227:58","nodes":[],"statements":[{"assignments":[44679],"declarations":[{"constant":false,"id":44679,"mutability":"mutable","name":"tokenXBalance","nameLocation":"398:13:58","nodeType":"VariableDeclaration","scope":44705,"src":"390:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44678,"name":"uint256","nodeType":"ElementaryTypeName","src":"390:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44687,"initialValue":{"arguments":[{"expression":{"id":44684,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"442:3:58","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":44685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"446:6:58","memberName":"sender","nodeType":"MemberAccess","src":"442:10:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":44681,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44673,"src":"424:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44680,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44659,"src":"414:9:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$44659_$","typeString":"type(contract TokenLike)"}},"id":44682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"414:17:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$44659","typeString":"contract TokenLike"}},"id":44683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"432:9:58","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":44658,"src":"414:27:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":44686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"414:39:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"390:63:58"},{"assignments":[44689],"declarations":[{"constant":false,"id":44689,"mutability":"mutable","name":"tokenYBalance","nameLocation":"471:13:58","nodeType":"VariableDeclaration","scope":44705,"src":"463:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44688,"name":"uint256","nodeType":"ElementaryTypeName","src":"463:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44697,"initialValue":{"arguments":[{"expression":{"id":44694,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"515:3:58","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":44695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"519:6:58","memberName":"sender","nodeType":"MemberAccess","src":"515:10:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":44691,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44675,"src":"497:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44690,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44659,"src":"487:9:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$44659_$","typeString":"type(contract TokenLike)"}},"id":44692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"487:17:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$44659","typeString":"contract TokenLike"}},"id":44693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"505:9:58","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":44658,"src":"487:27:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":44696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"487:39:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"463:63:58"},{"eventCall":{"arguments":[{"id":44699,"name":"tokenXBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44679,"src":"554:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44700,"name":"tokenYBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44689,"src":"569:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":44701,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"584:5:58","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"590:9:58","memberName":"timestamp","nodeType":"MemberAccess","src":"584:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44698,"name":"LogPortfolio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44667,"src":"541:12:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":44703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"541:59:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44704,"nodeType":"EmitStatement","src":"536:64:58"}]},"functionSelector":"3b3d821f","implemented":true,"kind":"function","modifiers":[],"name":"logPortfolio","nameLocation":"326:12:58","parameters":{"id":44676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44673,"mutability":"mutable","name":"tokenX","nameLocation":"347:6:58","nodeType":"VariableDeclaration","scope":44706,"src":"339:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44672,"name":"address","nodeType":"ElementaryTypeName","src":"339:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44675,"mutability":"mutable","name":"tokenY","nameLocation":"363:6:58","nodeType":"VariableDeclaration","scope":44706,"src":"355:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44674,"name":"address","nodeType":"ElementaryTypeName","src":"355:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"338:32:58"},"returnParameters":{"id":44677,"nodeType":"ParameterList","parameters":[],"src":"380:0:58"},"scope":44707,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"PortfolioTracker","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[44707],"name":"PortfolioTracker","nameLocation":"164:16:58","scope":44708,"usedErrors":[],"usedEvents":[44667,44671]}],"license":"UNLICENSED"},"id":58} \ No newline at end of file diff --git a/out/PortfolioTracker.sol/TokenLike.json b/out/PortfolioTracker.sol/TokenLike.json deleted file mode 100644 index 019f93df..00000000 --- a/out/PortfolioTracker.sol/TokenLike.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"balanceOf(address)":"70a08231"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/helpers/PortfolioTracker.sol\":\"TokenLike\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"src/test/helpers/PortfolioTracker.sol\":{\"keccak256\":\"0xae08093237bc779341ff09c822a17a8505224bb9767e973cc5850a9dee48275a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://614b4803e2333d34987e4cfb7d9b670ff5330e4e08f0e380616f92adb8025162\",\"dweb:/ipfs/QmdRkNNMwCjjg36GeBpgMq7FNELFe53zKzCJ79VYwdHPb1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/helpers/PortfolioTracker.sol":"TokenLike"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"src/test/helpers/PortfolioTracker.sol":{"keccak256":"0xae08093237bc779341ff09c822a17a8505224bb9767e973cc5850a9dee48275a","urls":["bzz-raw://614b4803e2333d34987e4cfb7d9b670ff5330e4e08f0e380616f92adb8025162","dweb:/ipfs/QmdRkNNMwCjjg36GeBpgMq7FNELFe53zKzCJ79VYwdHPb1"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/helpers/PortfolioTracker.sol","id":44708,"exportedSymbols":{"PortfolioTracker":[44707],"TokenLike":[44659]},"nodeType":"SourceUnit","src":"39:571:58","nodes":[{"id":44651,"nodeType":"PragmaDirective","src":"39:24:58","nodes":[],"literals":["solidity","^","0.8",".14"]},{"id":44659,"nodeType":"ContractDefinition","src":"65:88:58","nodes":[{"id":44658,"nodeType":"FunctionDefinition","src":"91:60:58","nodes":[],"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"100:9:58","parameters":{"id":44654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44653,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44658,"src":"110:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44652,"name":"address","nodeType":"ElementaryTypeName","src":"110:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"109:9:58"},"returnParameters":{"id":44657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44656,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44658,"src":"142:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44655,"name":"uint256","nodeType":"ElementaryTypeName","src":"142:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"141:9:58"},"scope":44659,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"TokenLike","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[44659],"name":"TokenLike","nameLocation":"75:9:58","scope":44708,"usedErrors":[],"usedEvents":[]},{"id":44707,"nodeType":"ContractDefinition","src":"155:454:58","nodes":[{"id":44667,"nodeType":"EventDefinition","src":"187:89:58","nodes":[],"anonymous":false,"eventSelector":"54a6d4307a119575de15b0ad977ab187cda7e97f30308af0a71d235e555ff4e6","name":"LogPortfolio","nameLocation":"193:12:58","parameters":{"id":44666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44661,"indexed":false,"mutability":"mutable","name":"tokenXBalance","nameLocation":"214:13:58","nodeType":"VariableDeclaration","scope":44667,"src":"206:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44660,"name":"uint256","nodeType":"ElementaryTypeName","src":"206:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44663,"indexed":false,"mutability":"mutable","name":"tokenYBalance","nameLocation":"237:13:58","nodeType":"VariableDeclaration","scope":44667,"src":"229:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44662,"name":"uint256","nodeType":"ElementaryTypeName","src":"229:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44665,"indexed":false,"mutability":"mutable","name":"blockTimestamp","nameLocation":"260:14:58","nodeType":"VariableDeclaration","scope":44667,"src":"252:22:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44664,"name":"uint256","nodeType":"ElementaryTypeName","src":"252:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"205:70:58"}},{"id":44671,"nodeType":"EventDefinition","src":"281:31:58","nodes":[],"anonymous":false,"eventSelector":"258aa60324e40f98dd99ad45c40f32be7ef5f7f1db4b805fcad616c45ab14481","name":"GhostEvent","nameLocation":"287:10:58","parameters":{"id":44670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44669,"indexed":false,"mutability":"mutable","name":"ghosted","nameLocation":"303:7:58","nodeType":"VariableDeclaration","scope":44671,"src":"298:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44668,"name":"bool","nodeType":"ElementaryTypeName","src":"298:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"297:14:58"}},{"id":44706,"nodeType":"FunctionDefinition","src":"317:290:58","nodes":[],"body":{"id":44705,"nodeType":"Block","src":"380:227:58","nodes":[],"statements":[{"assignments":[44679],"declarations":[{"constant":false,"id":44679,"mutability":"mutable","name":"tokenXBalance","nameLocation":"398:13:58","nodeType":"VariableDeclaration","scope":44705,"src":"390:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44678,"name":"uint256","nodeType":"ElementaryTypeName","src":"390:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44687,"initialValue":{"arguments":[{"expression":{"id":44684,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"442:3:58","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":44685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"446:6:58","memberName":"sender","nodeType":"MemberAccess","src":"442:10:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":44681,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44673,"src":"424:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44680,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44659,"src":"414:9:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$44659_$","typeString":"type(contract TokenLike)"}},"id":44682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"414:17:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$44659","typeString":"contract TokenLike"}},"id":44683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"432:9:58","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":44658,"src":"414:27:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":44686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"414:39:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"390:63:58"},{"assignments":[44689],"declarations":[{"constant":false,"id":44689,"mutability":"mutable","name":"tokenYBalance","nameLocation":"471:13:58","nodeType":"VariableDeclaration","scope":44705,"src":"463:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44688,"name":"uint256","nodeType":"ElementaryTypeName","src":"463:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44697,"initialValue":{"arguments":[{"expression":{"id":44694,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"515:3:58","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":44695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"519:6:58","memberName":"sender","nodeType":"MemberAccess","src":"515:10:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":44691,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44675,"src":"497:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44690,"name":"TokenLike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44659,"src":"487:9:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TokenLike_$44659_$","typeString":"type(contract TokenLike)"}},"id":44692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"487:17:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TokenLike_$44659","typeString":"contract TokenLike"}},"id":44693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"505:9:58","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":44658,"src":"487:27:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":44696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"487:39:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"463:63:58"},{"eventCall":{"arguments":[{"id":44699,"name":"tokenXBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44679,"src":"554:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44700,"name":"tokenYBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44689,"src":"569:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":44701,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"584:5:58","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"590:9:58","memberName":"timestamp","nodeType":"MemberAccess","src":"584:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44698,"name":"LogPortfolio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44667,"src":"541:12:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":44703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"541:59:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44704,"nodeType":"EmitStatement","src":"536:64:58"}]},"functionSelector":"3b3d821f","implemented":true,"kind":"function","modifiers":[],"name":"logPortfolio","nameLocation":"326:12:58","parameters":{"id":44676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44673,"mutability":"mutable","name":"tokenX","nameLocation":"347:6:58","nodeType":"VariableDeclaration","scope":44706,"src":"339:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44672,"name":"address","nodeType":"ElementaryTypeName","src":"339:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44675,"mutability":"mutable","name":"tokenY","nameLocation":"363:6:58","nodeType":"VariableDeclaration","scope":44706,"src":"355:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44674,"name":"address","nodeType":"ElementaryTypeName","src":"355:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"338:32:58"},"returnParameters":{"id":44677,"nodeType":"ParameterList","parameters":[],"src":"380:0:58"},"scope":44707,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"PortfolioTracker","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[44707],"name":"PortfolioTracker","nameLocation":"164:16:58","scope":44708,"usedErrors":[],"usedEvents":[44667,44671]}],"license":"UNLICENSED"},"id":58} \ No newline at end of file diff --git a/out/SafeTransferLib.sol/SafeTransferLib.json b/out/SafeTransferLib.sol/SafeTransferLib.json deleted file mode 100644 index 5302f08d..00000000 --- a/out/SafeTransferLib.sol/SafeTransferLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220e0ff0ee58696a8cdba6244dcf3de5e71181778118d26799cfc979ebca972f44764736f6c63430008160033","sourceMap":"408:5034:20:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220e0ff0ee58696a8cdba6244dcf3de5e71181778118d26799cfc979ebca972f44764736f6c63430008160033","sourceMap":"408:5034:20:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/SafeTransferLib.sol)\",\"details\":\"Caution! This library won't check that a token has code, responsibility is delegated to the caller.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Safe ETH and ERC20 transfer library that gracefully handles missing return values.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":\"SafeTransferLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":"SafeTransferLib"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol","id":26745,"exportedSymbols":{"ERC20":[25948],"SafeTransferLib":[26744]},"nodeType":"SourceUnit","src":"32:5411:20","nodes":[{"id":26661,"nodeType":"PragmaDirective","src":"32:24:20","nodes":[],"literals":["solidity",">=","0.8",".0"]},{"id":26663,"nodeType":"ImportDirective","src":"58:42:20","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/tokens/ERC20.sol","file":"../tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":26745,"sourceUnit":25949,"symbolAliases":[{"foreign":{"id":26662,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25948,"src":"66:5:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":26744,"nodeType":"ContractDefinition","src":"408:5034:20","nodes":[{"id":26681,"nodeType":"FunctionDefinition","src":"621:296:20","nodes":[],"body":{"id":26680,"nodeType":"Block","src":"683:234:20","nodes":[],"statements":[{"assignments":[26672],"declarations":[{"constant":false,"id":26672,"mutability":"mutable","name":"success","nameLocation":"698:7:20","nodeType":"VariableDeclaration","scope":26680,"src":"693:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26671,"name":"bool","nodeType":"ElementaryTypeName","src":"693:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":26673,"nodeType":"VariableDeclarationStatement","src":"693:12:20"},{"AST":{"nativeSrc":"725:136:20","nodeType":"YulBlock","src":"725:136:20","statements":[{"nativeSrc":"805:46:20","nodeType":"YulAssignment","src":"805:46:20","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"821:3:20","nodeType":"YulIdentifier","src":"821:3:20"},"nativeSrc":"821:5:20","nodeType":"YulFunctionCall","src":"821:5:20"},{"name":"to","nativeSrc":"828:2:20","nodeType":"YulIdentifier","src":"828:2:20"},{"name":"amount","nativeSrc":"832:6:20","nodeType":"YulIdentifier","src":"832:6:20"},{"kind":"number","nativeSrc":"840:1:20","nodeType":"YulLiteral","src":"840:1:20","type":"","value":"0"},{"kind":"number","nativeSrc":"843:1:20","nodeType":"YulLiteral","src":"843:1:20","type":"","value":"0"},{"kind":"number","nativeSrc":"846:1:20","nodeType":"YulLiteral","src":"846:1:20","type":"","value":"0"},{"kind":"number","nativeSrc":"849:1:20","nodeType":"YulLiteral","src":"849:1:20","type":"","value":"0"}],"functionName":{"name":"call","nativeSrc":"816:4:20","nodeType":"YulIdentifier","src":"816:4:20"},"nativeSrc":"816:35:20","nodeType":"YulFunctionCall","src":"816:35:20"},"variableNames":[{"name":"success","nativeSrc":"805:7:20","nodeType":"YulIdentifier","src":"805:7:20"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":26668,"isOffset":false,"isSlot":false,"src":"832:6:20","valueSize":1},{"declaration":26672,"isOffset":false,"isSlot":false,"src":"805:7:20","valueSize":1},{"declaration":26666,"isOffset":false,"isSlot":false,"src":"828:2:20","valueSize":1}],"id":26674,"nodeType":"InlineAssembly","src":"716:145:20"},{"expression":{"arguments":[{"id":26676,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26672,"src":"879:7:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4554485f5452414e534645525f4641494c4544","id":26677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"888:21:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_d383913ea1996930a2623a0d739b8fc033c734c1d71d4759d3ccba1d3a719c29","typeString":"literal_string \"ETH_TRANSFER_FAILED\""},"value":"ETH_TRANSFER_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d383913ea1996930a2623a0d739b8fc033c734c1d71d4759d3ccba1d3a719c29","typeString":"literal_string \"ETH_TRANSFER_FAILED\""}],"id":26675,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"871:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"871:39:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26679,"nodeType":"ExpressionStatement","src":"871:39:20"}]},"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferETH","nameLocation":"630:15:20","parameters":{"id":26669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26666,"mutability":"mutable","name":"to","nameLocation":"654:2:20","nodeType":"VariableDeclaration","scope":26681,"src":"646:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26665,"name":"address","nodeType":"ElementaryTypeName","src":"646:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26668,"mutability":"mutable","name":"amount","nameLocation":"666:6:20","nodeType":"VariableDeclaration","scope":26681,"src":"658:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26667,"name":"uint256","nodeType":"ElementaryTypeName","src":"658:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"645:28:20"},"returnParameters":{"id":26670,"nodeType":"ParameterList","parameters":[],"src":"683:0:20"},"scope":26744,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":26703,"nodeType":"FunctionDefinition","src":"1107:1503:20","nodes":[],"body":{"id":26702,"nodeType":"Block","src":"1235:1375:20","nodes":[],"statements":[{"assignments":[26694],"declarations":[{"constant":false,"id":26694,"mutability":"mutable","name":"success","nameLocation":"1250:7:20","nodeType":"VariableDeclaration","scope":26702,"src":"1245:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26693,"name":"bool","nodeType":"ElementaryTypeName","src":"1245:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":26695,"nodeType":"VariableDeclarationStatement","src":"1245:12:20"},{"AST":{"nativeSrc":"1277:1276:20","nodeType":"YulBlock","src":"1277:1276:20","statements":[{"nativeSrc":"1373:29:20","nodeType":"YulVariableDeclaration","src":"1373:29:20","value":{"arguments":[{"kind":"number","nativeSrc":"1397:4:20","nodeType":"YulLiteral","src":"1397:4:20","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"1391:5:20","nodeType":"YulIdentifier","src":"1391:5:20"},"nativeSrc":"1391:11:20","nodeType":"YulFunctionCall","src":"1391:11:20"},"variables":[{"name":"memPointer","nativeSrc":"1377:10:20","nodeType":"YulTypedName","src":"1377:10:20","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1520:1:20","nodeType":"YulLiteral","src":"1520:1:20","type":"","value":"0"},{"kind":"number","nativeSrc":"1523:66:20","nodeType":"YulLiteral","src":"1523:66:20","type":"","value":"0x23b872dd00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"1513:6:20","nodeType":"YulIdentifier","src":"1513:6:20"},"nativeSrc":"1513:77:20","nodeType":"YulFunctionCall","src":"1513:77:20"},"nativeSrc":"1513:77:20","nodeType":"YulExpressionStatement","src":"1513:77:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1610:1:20","nodeType":"YulLiteral","src":"1610:1:20","type":"","value":"4"},{"name":"from","nativeSrc":"1613:4:20","nodeType":"YulIdentifier","src":"1613:4:20"}],"functionName":{"name":"mstore","nativeSrc":"1603:6:20","nodeType":"YulIdentifier","src":"1603:6:20"},"nativeSrc":"1603:15:20","nodeType":"YulFunctionCall","src":"1603:15:20"},"nativeSrc":"1603:15:20","nodeType":"YulExpressionStatement","src":"1603:15:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1669:2:20","nodeType":"YulLiteral","src":"1669:2:20","type":"","value":"36"},{"name":"to","nativeSrc":"1673:2:20","nodeType":"YulIdentifier","src":"1673:2:20"}],"functionName":{"name":"mstore","nativeSrc":"1662:6:20","nodeType":"YulIdentifier","src":"1662:6:20"},"nativeSrc":"1662:14:20","nodeType":"YulFunctionCall","src":"1662:14:20"},"nativeSrc":"1662:14:20","nodeType":"YulExpressionStatement","src":"1662:14:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1725:2:20","nodeType":"YulLiteral","src":"1725:2:20","type":"","value":"68"},{"name":"amount","nativeSrc":"1729:6:20","nodeType":"YulIdentifier","src":"1729:6:20"}],"functionName":{"name":"mstore","nativeSrc":"1718:6:20","nodeType":"YulIdentifier","src":"1718:6:20"},"nativeSrc":"1718:18:20","nodeType":"YulFunctionCall","src":"1718:18:20"},"nativeSrc":"1718:18:20","nodeType":"YulExpressionStatement","src":"1718:18:20"},{"nativeSrc":"1783:633:20","nodeType":"YulAssignment","src":"1783:633:20","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2010:1:20","nodeType":"YulLiteral","src":"2010:1:20","type":"","value":"0"}],"functionName":{"name":"mload","nativeSrc":"2004:5:20","nodeType":"YulIdentifier","src":"2004:5:20"},"nativeSrc":"2004:8:20","nodeType":"YulFunctionCall","src":"2004:8:20"},{"kind":"number","nativeSrc":"2014:1:20","nodeType":"YulLiteral","src":"2014:1:20","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"2001:2:20","nodeType":"YulIdentifier","src":"2001:2:20"},"nativeSrc":"2001:15:20","nodeType":"YulFunctionCall","src":"2001:15:20"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"2021:14:20","nodeType":"YulIdentifier","src":"2021:14:20"},"nativeSrc":"2021:16:20","nodeType":"YulFunctionCall","src":"2021:16:20"},{"kind":"number","nativeSrc":"2039:2:20","nodeType":"YulLiteral","src":"2039:2:20","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"2018:2:20","nodeType":"YulIdentifier","src":"2018:2:20"},"nativeSrc":"2018:24:20","nodeType":"YulFunctionCall","src":"2018:24:20"}],"functionName":{"name":"and","nativeSrc":"1997:3:20","nodeType":"YulIdentifier","src":"1997:3:20"},"nativeSrc":"1997:46:20","nodeType":"YulFunctionCall","src":"1997:46:20"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"2052:14:20","nodeType":"YulIdentifier","src":"2052:14:20"},"nativeSrc":"2052:16:20","nodeType":"YulFunctionCall","src":"2052:16:20"}],"functionName":{"name":"iszero","nativeSrc":"2045:6:20","nodeType":"YulIdentifier","src":"2045:6:20"},"nativeSrc":"2045:24:20","nodeType":"YulFunctionCall","src":"2045:24:20"}],"functionName":{"name":"or","nativeSrc":"1994:2:20","nodeType":"YulIdentifier","src":"1994:2:20"},"nativeSrc":"1994:76:20","nodeType":"YulFunctionCall","src":"1994:76:20"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"2371:3:20","nodeType":"YulIdentifier","src":"2371:3:20"},"nativeSrc":"2371:5:20","nodeType":"YulFunctionCall","src":"2371:5:20"},{"name":"token","nativeSrc":"2378:5:20","nodeType":"YulIdentifier","src":"2378:5:20"},{"kind":"number","nativeSrc":"2385:1:20","nodeType":"YulLiteral","src":"2385:1:20","type":"","value":"0"},{"kind":"number","nativeSrc":"2388:1:20","nodeType":"YulLiteral","src":"2388:1:20","type":"","value":"0"},{"kind":"number","nativeSrc":"2391:3:20","nodeType":"YulLiteral","src":"2391:3:20","type":"","value":"100"},{"kind":"number","nativeSrc":"2396:1:20","nodeType":"YulLiteral","src":"2396:1:20","type":"","value":"0"},{"kind":"number","nativeSrc":"2399:2:20","nodeType":"YulLiteral","src":"2399:2:20","type":"","value":"32"}],"functionName":{"name":"call","nativeSrc":"2366:4:20","nodeType":"YulIdentifier","src":"2366:4:20"},"nativeSrc":"2366:36:20","nodeType":"YulFunctionCall","src":"2366:36:20"}],"functionName":{"name":"and","nativeSrc":"1794:3:20","nodeType":"YulIdentifier","src":"1794:3:20"},"nativeSrc":"1794:622:20","nodeType":"YulFunctionCall","src":"1794:622:20"},"variableNames":[{"name":"success","nativeSrc":"1783:7:20","nodeType":"YulIdentifier","src":"1783:7:20"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2437:4:20","nodeType":"YulLiteral","src":"2437:4:20","type":"","value":"0x60"},{"kind":"number","nativeSrc":"2443:1:20","nodeType":"YulLiteral","src":"2443:1:20","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2430:6:20","nodeType":"YulIdentifier","src":"2430:6:20"},"nativeSrc":"2430:15:20","nodeType":"YulFunctionCall","src":"2430:15:20"},"nativeSrc":"2430:15:20","nodeType":"YulExpressionStatement","src":"2430:15:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2499:4:20","nodeType":"YulLiteral","src":"2499:4:20","type":"","value":"0x40"},{"name":"memPointer","nativeSrc":"2505:10:20","nodeType":"YulIdentifier","src":"2505:10:20"}],"functionName":{"name":"mstore","nativeSrc":"2492:6:20","nodeType":"YulIdentifier","src":"2492:6:20"},"nativeSrc":"2492:24:20","nodeType":"YulFunctionCall","src":"2492:24:20"},"nativeSrc":"2492:24:20","nodeType":"YulExpressionStatement","src":"2492:24:20"}]},"evmVersion":"paris","externalReferences":[{"declaration":26690,"isOffset":false,"isSlot":false,"src":"1729:6:20","valueSize":1},{"declaration":26686,"isOffset":false,"isSlot":false,"src":"1613:4:20","valueSize":1},{"declaration":26694,"isOffset":false,"isSlot":false,"src":"1783:7:20","valueSize":1},{"declaration":26688,"isOffset":false,"isSlot":false,"src":"1673:2:20","valueSize":1},{"declaration":26684,"isOffset":false,"isSlot":false,"src":"2378:5:20","valueSize":1}],"id":26696,"nodeType":"InlineAssembly","src":"1268:1285:20"},{"expression":{"arguments":[{"id":26698,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26694,"src":"2571:7:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5452414e534645525f46524f4d5f4641494c4544","id":26699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2580:22:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_77631768048ee92f9dcf4b9b9d762877d6b9723214862c733f0596708fc219b7","typeString":"literal_string \"TRANSFER_FROM_FAILED\""},"value":"TRANSFER_FROM_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_77631768048ee92f9dcf4b9b9d762877d6b9723214862c733f0596708fc219b7","typeString":"literal_string \"TRANSFER_FROM_FAILED\""}],"id":26697,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2563:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2563:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26701,"nodeType":"ExpressionStatement","src":"2563:40:20"}]},"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1116:16:20","parameters":{"id":26691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26684,"mutability":"mutable","name":"token","nameLocation":"1148:5:20","nodeType":"VariableDeclaration","scope":26703,"src":"1142:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"},"typeName":{"id":26683,"nodeType":"UserDefinedTypeName","pathNode":{"id":26682,"name":"ERC20","nameLocations":["1142:5:20"],"nodeType":"IdentifierPath","referencedDeclaration":25948,"src":"1142:5:20"},"referencedDeclaration":25948,"src":"1142:5:20","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"visibility":"internal"},{"constant":false,"id":26686,"mutability":"mutable","name":"from","nameLocation":"1171:4:20","nodeType":"VariableDeclaration","scope":26703,"src":"1163:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26685,"name":"address","nodeType":"ElementaryTypeName","src":"1163:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26688,"mutability":"mutable","name":"to","nameLocation":"1193:2:20","nodeType":"VariableDeclaration","scope":26703,"src":"1185:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26687,"name":"address","nodeType":"ElementaryTypeName","src":"1185:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26690,"mutability":"mutable","name":"amount","nameLocation":"1213:6:20","nodeType":"VariableDeclaration","scope":26703,"src":"1205:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26689,"name":"uint256","nodeType":"ElementaryTypeName","src":"1205:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1132:93:20"},"returnParameters":{"id":26692,"nodeType":"ParameterList","parameters":[],"src":"1235:0:20"},"scope":26744,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":26723,"nodeType":"FunctionDefinition","src":"2616:1410:20","nodes":[],"body":{"id":26722,"nodeType":"Block","src":"2718:1308:20","nodes":[],"statements":[{"assignments":[26714],"declarations":[{"constant":false,"id":26714,"mutability":"mutable","name":"success","nameLocation":"2733:7:20","nodeType":"VariableDeclaration","scope":26722,"src":"2728:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26713,"name":"bool","nodeType":"ElementaryTypeName","src":"2728:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":26715,"nodeType":"VariableDeclarationStatement","src":"2728:12:20"},{"AST":{"nativeSrc":"2760:1214:20","nodeType":"YulBlock","src":"2760:1214:20","statements":[{"nativeSrc":"2856:29:20","nodeType":"YulVariableDeclaration","src":"2856:29:20","value":{"arguments":[{"kind":"number","nativeSrc":"2880:4:20","nodeType":"YulLiteral","src":"2880:4:20","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"2874:5:20","nodeType":"YulIdentifier","src":"2874:5:20"},"nativeSrc":"2874:11:20","nodeType":"YulFunctionCall","src":"2874:11:20"},"variables":[{"name":"memPointer","nativeSrc":"2860:10:20","nodeType":"YulTypedName","src":"2860:10:20","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3003:1:20","nodeType":"YulLiteral","src":"3003:1:20","type":"","value":"0"},{"kind":"number","nativeSrc":"3006:66:20","nodeType":"YulLiteral","src":"3006:66:20","type":"","value":"0xa9059cbb00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"2996:6:20","nodeType":"YulIdentifier","src":"2996:6:20"},"nativeSrc":"2996:77:20","nodeType":"YulFunctionCall","src":"2996:77:20"},"nativeSrc":"2996:77:20","nodeType":"YulExpressionStatement","src":"2996:77:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3093:1:20","nodeType":"YulLiteral","src":"3093:1:20","type":"","value":"4"},{"name":"to","nativeSrc":"3096:2:20","nodeType":"YulIdentifier","src":"3096:2:20"}],"functionName":{"name":"mstore","nativeSrc":"3086:6:20","nodeType":"YulIdentifier","src":"3086:6:20"},"nativeSrc":"3086:13:20","nodeType":"YulFunctionCall","src":"3086:13:20"},"nativeSrc":"3086:13:20","nodeType":"YulExpressionStatement","src":"3086:13:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3148:2:20","nodeType":"YulLiteral","src":"3148:2:20","type":"","value":"36"},{"name":"amount","nativeSrc":"3152:6:20","nodeType":"YulIdentifier","src":"3152:6:20"}],"functionName":{"name":"mstore","nativeSrc":"3141:6:20","nodeType":"YulIdentifier","src":"3141:6:20"},"nativeSrc":"3141:18:20","nodeType":"YulFunctionCall","src":"3141:18:20"},"nativeSrc":"3141:18:20","nodeType":"YulExpressionStatement","src":"3141:18:20"},{"nativeSrc":"3206:631:20","nodeType":"YulAssignment","src":"3206:631:20","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3433:1:20","nodeType":"YulLiteral","src":"3433:1:20","type":"","value":"0"}],"functionName":{"name":"mload","nativeSrc":"3427:5:20","nodeType":"YulIdentifier","src":"3427:5:20"},"nativeSrc":"3427:8:20","nodeType":"YulFunctionCall","src":"3427:8:20"},{"kind":"number","nativeSrc":"3437:1:20","nodeType":"YulLiteral","src":"3437:1:20","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"3424:2:20","nodeType":"YulIdentifier","src":"3424:2:20"},"nativeSrc":"3424:15:20","nodeType":"YulFunctionCall","src":"3424:15:20"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"3444:14:20","nodeType":"YulIdentifier","src":"3444:14:20"},"nativeSrc":"3444:16:20","nodeType":"YulFunctionCall","src":"3444:16:20"},{"kind":"number","nativeSrc":"3462:2:20","nodeType":"YulLiteral","src":"3462:2:20","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"3441:2:20","nodeType":"YulIdentifier","src":"3441:2:20"},"nativeSrc":"3441:24:20","nodeType":"YulFunctionCall","src":"3441:24:20"}],"functionName":{"name":"and","nativeSrc":"3420:3:20","nodeType":"YulIdentifier","src":"3420:3:20"},"nativeSrc":"3420:46:20","nodeType":"YulFunctionCall","src":"3420:46:20"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"3475:14:20","nodeType":"YulIdentifier","src":"3475:14:20"},"nativeSrc":"3475:16:20","nodeType":"YulFunctionCall","src":"3475:16:20"}],"functionName":{"name":"iszero","nativeSrc":"3468:6:20","nodeType":"YulIdentifier","src":"3468:6:20"},"nativeSrc":"3468:24:20","nodeType":"YulFunctionCall","src":"3468:24:20"}],"functionName":{"name":"or","nativeSrc":"3417:2:20","nodeType":"YulIdentifier","src":"3417:2:20"},"nativeSrc":"3417:76:20","nodeType":"YulFunctionCall","src":"3417:76:20"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"3793:3:20","nodeType":"YulIdentifier","src":"3793:3:20"},"nativeSrc":"3793:5:20","nodeType":"YulFunctionCall","src":"3793:5:20"},{"name":"token","nativeSrc":"3800:5:20","nodeType":"YulIdentifier","src":"3800:5:20"},{"kind":"number","nativeSrc":"3807:1:20","nodeType":"YulLiteral","src":"3807:1:20","type":"","value":"0"},{"kind":"number","nativeSrc":"3810:1:20","nodeType":"YulLiteral","src":"3810:1:20","type":"","value":"0"},{"kind":"number","nativeSrc":"3813:2:20","nodeType":"YulLiteral","src":"3813:2:20","type":"","value":"68"},{"kind":"number","nativeSrc":"3817:1:20","nodeType":"YulLiteral","src":"3817:1:20","type":"","value":"0"},{"kind":"number","nativeSrc":"3820:2:20","nodeType":"YulLiteral","src":"3820:2:20","type":"","value":"32"}],"functionName":{"name":"call","nativeSrc":"3788:4:20","nodeType":"YulIdentifier","src":"3788:4:20"},"nativeSrc":"3788:35:20","nodeType":"YulFunctionCall","src":"3788:35:20"}],"functionName":{"name":"and","nativeSrc":"3217:3:20","nodeType":"YulIdentifier","src":"3217:3:20"},"nativeSrc":"3217:620:20","nodeType":"YulFunctionCall","src":"3217:620:20"},"variableNames":[{"name":"success","nativeSrc":"3206:7:20","nodeType":"YulIdentifier","src":"3206:7:20"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3858:4:20","nodeType":"YulLiteral","src":"3858:4:20","type":"","value":"0x60"},{"kind":"number","nativeSrc":"3864:1:20","nodeType":"YulLiteral","src":"3864:1:20","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3851:6:20","nodeType":"YulIdentifier","src":"3851:6:20"},"nativeSrc":"3851:15:20","nodeType":"YulFunctionCall","src":"3851:15:20"},"nativeSrc":"3851:15:20","nodeType":"YulExpressionStatement","src":"3851:15:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3920:4:20","nodeType":"YulLiteral","src":"3920:4:20","type":"","value":"0x40"},{"name":"memPointer","nativeSrc":"3926:10:20","nodeType":"YulIdentifier","src":"3926:10:20"}],"functionName":{"name":"mstore","nativeSrc":"3913:6:20","nodeType":"YulIdentifier","src":"3913:6:20"},"nativeSrc":"3913:24:20","nodeType":"YulFunctionCall","src":"3913:24:20"},"nativeSrc":"3913:24:20","nodeType":"YulExpressionStatement","src":"3913:24:20"}]},"evmVersion":"paris","externalReferences":[{"declaration":26710,"isOffset":false,"isSlot":false,"src":"3152:6:20","valueSize":1},{"declaration":26714,"isOffset":false,"isSlot":false,"src":"3206:7:20","valueSize":1},{"declaration":26708,"isOffset":false,"isSlot":false,"src":"3096:2:20","valueSize":1},{"declaration":26706,"isOffset":false,"isSlot":false,"src":"3800:5:20","valueSize":1}],"id":26716,"nodeType":"InlineAssembly","src":"2751:1223:20"},{"expression":{"arguments":[{"id":26718,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26714,"src":"3992:7:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5452414e534645525f4641494c4544","id":26719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4001:17:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72","typeString":"literal_string \"TRANSFER_FAILED\""},"value":"TRANSFER_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72","typeString":"literal_string \"TRANSFER_FAILED\""}],"id":26717,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3984:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3984:35:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26721,"nodeType":"ExpressionStatement","src":"3984:35:20"}]},"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"2625:12:20","parameters":{"id":26711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26706,"mutability":"mutable","name":"token","nameLocation":"2653:5:20","nodeType":"VariableDeclaration","scope":26723,"src":"2647:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"},"typeName":{"id":26705,"nodeType":"UserDefinedTypeName","pathNode":{"id":26704,"name":"ERC20","nameLocations":["2647:5:20"],"nodeType":"IdentifierPath","referencedDeclaration":25948,"src":"2647:5:20"},"referencedDeclaration":25948,"src":"2647:5:20","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"visibility":"internal"},{"constant":false,"id":26708,"mutability":"mutable","name":"to","nameLocation":"2676:2:20","nodeType":"VariableDeclaration","scope":26723,"src":"2668:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26707,"name":"address","nodeType":"ElementaryTypeName","src":"2668:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26710,"mutability":"mutable","name":"amount","nameLocation":"2696:6:20","nodeType":"VariableDeclaration","scope":26723,"src":"2688:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26709,"name":"uint256","nodeType":"ElementaryTypeName","src":"2688:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2637:71:20"},"returnParameters":{"id":26712,"nodeType":"ParameterList","parameters":[],"src":"2718:0:20"},"scope":26744,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":26743,"nodeType":"FunctionDefinition","src":"4032:1408:20","nodes":[],"body":{"id":26742,"nodeType":"Block","src":"4133:1307:20","nodes":[],"statements":[{"assignments":[26734],"declarations":[{"constant":false,"id":26734,"mutability":"mutable","name":"success","nameLocation":"4148:7:20","nodeType":"VariableDeclaration","scope":26742,"src":"4143:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26733,"name":"bool","nodeType":"ElementaryTypeName","src":"4143:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":26735,"nodeType":"VariableDeclarationStatement","src":"4143:12:20"},{"AST":{"nativeSrc":"4175:1214:20","nodeType":"YulBlock","src":"4175:1214:20","statements":[{"nativeSrc":"4271:29:20","nodeType":"YulVariableDeclaration","src":"4271:29:20","value":{"arguments":[{"kind":"number","nativeSrc":"4295:4:20","nodeType":"YulLiteral","src":"4295:4:20","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"4289:5:20","nodeType":"YulIdentifier","src":"4289:5:20"},"nativeSrc":"4289:11:20","nodeType":"YulFunctionCall","src":"4289:11:20"},"variables":[{"name":"memPointer","nativeSrc":"4275:10:20","nodeType":"YulTypedName","src":"4275:10:20","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4418:1:20","nodeType":"YulLiteral","src":"4418:1:20","type":"","value":"0"},{"kind":"number","nativeSrc":"4421:66:20","nodeType":"YulLiteral","src":"4421:66:20","type":"","value":"0x095ea7b300000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"4411:6:20","nodeType":"YulIdentifier","src":"4411:6:20"},"nativeSrc":"4411:77:20","nodeType":"YulFunctionCall","src":"4411:77:20"},"nativeSrc":"4411:77:20","nodeType":"YulExpressionStatement","src":"4411:77:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4508:1:20","nodeType":"YulLiteral","src":"4508:1:20","type":"","value":"4"},{"name":"to","nativeSrc":"4511:2:20","nodeType":"YulIdentifier","src":"4511:2:20"}],"functionName":{"name":"mstore","nativeSrc":"4501:6:20","nodeType":"YulIdentifier","src":"4501:6:20"},"nativeSrc":"4501:13:20","nodeType":"YulFunctionCall","src":"4501:13:20"},"nativeSrc":"4501:13:20","nodeType":"YulExpressionStatement","src":"4501:13:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4563:2:20","nodeType":"YulLiteral","src":"4563:2:20","type":"","value":"36"},{"name":"amount","nativeSrc":"4567:6:20","nodeType":"YulIdentifier","src":"4567:6:20"}],"functionName":{"name":"mstore","nativeSrc":"4556:6:20","nodeType":"YulIdentifier","src":"4556:6:20"},"nativeSrc":"4556:18:20","nodeType":"YulFunctionCall","src":"4556:18:20"},"nativeSrc":"4556:18:20","nodeType":"YulExpressionStatement","src":"4556:18:20"},{"nativeSrc":"4621:631:20","nodeType":"YulAssignment","src":"4621:631:20","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4848:1:20","nodeType":"YulLiteral","src":"4848:1:20","type":"","value":"0"}],"functionName":{"name":"mload","nativeSrc":"4842:5:20","nodeType":"YulIdentifier","src":"4842:5:20"},"nativeSrc":"4842:8:20","nodeType":"YulFunctionCall","src":"4842:8:20"},{"kind":"number","nativeSrc":"4852:1:20","nodeType":"YulLiteral","src":"4852:1:20","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"4839:2:20","nodeType":"YulIdentifier","src":"4839:2:20"},"nativeSrc":"4839:15:20","nodeType":"YulFunctionCall","src":"4839:15:20"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"4859:14:20","nodeType":"YulIdentifier","src":"4859:14:20"},"nativeSrc":"4859:16:20","nodeType":"YulFunctionCall","src":"4859:16:20"},{"kind":"number","nativeSrc":"4877:2:20","nodeType":"YulLiteral","src":"4877:2:20","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"4856:2:20","nodeType":"YulIdentifier","src":"4856:2:20"},"nativeSrc":"4856:24:20","nodeType":"YulFunctionCall","src":"4856:24:20"}],"functionName":{"name":"and","nativeSrc":"4835:3:20","nodeType":"YulIdentifier","src":"4835:3:20"},"nativeSrc":"4835:46:20","nodeType":"YulFunctionCall","src":"4835:46:20"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"4890:14:20","nodeType":"YulIdentifier","src":"4890:14:20"},"nativeSrc":"4890:16:20","nodeType":"YulFunctionCall","src":"4890:16:20"}],"functionName":{"name":"iszero","nativeSrc":"4883:6:20","nodeType":"YulIdentifier","src":"4883:6:20"},"nativeSrc":"4883:24:20","nodeType":"YulFunctionCall","src":"4883:24:20"}],"functionName":{"name":"or","nativeSrc":"4832:2:20","nodeType":"YulIdentifier","src":"4832:2:20"},"nativeSrc":"4832:76:20","nodeType":"YulFunctionCall","src":"4832:76:20"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"5208:3:20","nodeType":"YulIdentifier","src":"5208:3:20"},"nativeSrc":"5208:5:20","nodeType":"YulFunctionCall","src":"5208:5:20"},{"name":"token","nativeSrc":"5215:5:20","nodeType":"YulIdentifier","src":"5215:5:20"},{"kind":"number","nativeSrc":"5222:1:20","nodeType":"YulLiteral","src":"5222:1:20","type":"","value":"0"},{"kind":"number","nativeSrc":"5225:1:20","nodeType":"YulLiteral","src":"5225:1:20","type":"","value":"0"},{"kind":"number","nativeSrc":"5228:2:20","nodeType":"YulLiteral","src":"5228:2:20","type":"","value":"68"},{"kind":"number","nativeSrc":"5232:1:20","nodeType":"YulLiteral","src":"5232:1:20","type":"","value":"0"},{"kind":"number","nativeSrc":"5235:2:20","nodeType":"YulLiteral","src":"5235:2:20","type":"","value":"32"}],"functionName":{"name":"call","nativeSrc":"5203:4:20","nodeType":"YulIdentifier","src":"5203:4:20"},"nativeSrc":"5203:35:20","nodeType":"YulFunctionCall","src":"5203:35:20"}],"functionName":{"name":"and","nativeSrc":"4632:3:20","nodeType":"YulIdentifier","src":"4632:3:20"},"nativeSrc":"4632:620:20","nodeType":"YulFunctionCall","src":"4632:620:20"},"variableNames":[{"name":"success","nativeSrc":"4621:7:20","nodeType":"YulIdentifier","src":"4621:7:20"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5273:4:20","nodeType":"YulLiteral","src":"5273:4:20","type":"","value":"0x60"},{"kind":"number","nativeSrc":"5279:1:20","nodeType":"YulLiteral","src":"5279:1:20","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"5266:6:20","nodeType":"YulIdentifier","src":"5266:6:20"},"nativeSrc":"5266:15:20","nodeType":"YulFunctionCall","src":"5266:15:20"},"nativeSrc":"5266:15:20","nodeType":"YulExpressionStatement","src":"5266:15:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5335:4:20","nodeType":"YulLiteral","src":"5335:4:20","type":"","value":"0x40"},{"name":"memPointer","nativeSrc":"5341:10:20","nodeType":"YulIdentifier","src":"5341:10:20"}],"functionName":{"name":"mstore","nativeSrc":"5328:6:20","nodeType":"YulIdentifier","src":"5328:6:20"},"nativeSrc":"5328:24:20","nodeType":"YulFunctionCall","src":"5328:24:20"},"nativeSrc":"5328:24:20","nodeType":"YulExpressionStatement","src":"5328:24:20"}]},"evmVersion":"paris","externalReferences":[{"declaration":26730,"isOffset":false,"isSlot":false,"src":"4567:6:20","valueSize":1},{"declaration":26734,"isOffset":false,"isSlot":false,"src":"4621:7:20","valueSize":1},{"declaration":26728,"isOffset":false,"isSlot":false,"src":"4511:2:20","valueSize":1},{"declaration":26726,"isOffset":false,"isSlot":false,"src":"5215:5:20","valueSize":1}],"id":26736,"nodeType":"InlineAssembly","src":"4166:1223:20"},{"expression":{"arguments":[{"id":26738,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26734,"src":"5407:7:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"415050524f56455f4641494c4544","id":26739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5416:16:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_cd400c5237ae346977ee020ef8d0d26a880c07edf7eba69a8848f0d31e9a88f2","typeString":"literal_string \"APPROVE_FAILED\""},"value":"APPROVE_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cd400c5237ae346977ee020ef8d0d26a880c07edf7eba69a8848f0d31e9a88f2","typeString":"literal_string \"APPROVE_FAILED\""}],"id":26737,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5399:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5399:34:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26741,"nodeType":"ExpressionStatement","src":"5399:34:20"}]},"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"4041:11:20","parameters":{"id":26731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26726,"mutability":"mutable","name":"token","nameLocation":"4068:5:20","nodeType":"VariableDeclaration","scope":26743,"src":"4062:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"},"typeName":{"id":26725,"nodeType":"UserDefinedTypeName","pathNode":{"id":26724,"name":"ERC20","nameLocations":["4062:5:20"],"nodeType":"IdentifierPath","referencedDeclaration":25948,"src":"4062:5:20"},"referencedDeclaration":25948,"src":"4062:5:20","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"visibility":"internal"},{"constant":false,"id":26728,"mutability":"mutable","name":"to","nameLocation":"4091:2:20","nodeType":"VariableDeclaration","scope":26743,"src":"4083:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26727,"name":"address","nodeType":"ElementaryTypeName","src":"4083:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26730,"mutability":"mutable","name":"amount","nameLocation":"4111:6:20","nodeType":"VariableDeclaration","scope":26743,"src":"4103:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26729,"name":"uint256","nodeType":"ElementaryTypeName","src":"4103:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4052:71:20"},"returnParameters":{"id":26732,"nodeType":"ParameterList","parameters":[],"src":"4133:0:20"},"scope":26744,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SafeTransferLib","contractDependencies":[],"contractKind":"library","documentation":{"id":26664,"nodeType":"StructuredDocumentation","src":"102:306:20","text":"@notice Safe ETH and ERC20 transfer library that gracefully handles missing return values.\n @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/SafeTransferLib.sol)\n @dev Caution! This library won't check that a token has code, responsibility is delegated to the caller."},"fullyImplemented":true,"linearizedBaseContracts":[26744],"name":"SafeTransferLib","nameLocation":"416:15:20","scope":26745,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":20} \ No newline at end of file diff --git a/out/ScalingLib.sol/ScalingLib.json b/out/ScalingLib.sol/ScalingLib.json deleted file mode 100644 index 94923da0..00000000 --- a/out/ScalingLib.sol/ScalingLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/lib/ScalingLib.sol","id":30097,"exportedSymbols":{"ERC20":[25948],"FixedPointMathLib":[26640],"computeScalingFactor":[30048],"downscaleDown":[30080],"downscaleUp":[30096],"upscale":[30064]},"nodeType":"SourceUnit","src":"45:841:29","nodes":[{"id":30014,"nodeType":"PragmaDirective","src":"45:24:29","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":30015,"nodeType":"ImportDirective","src":"71:34:29","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/tokens/ERC20.sol","file":"solmate/tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":30097,"sourceUnit":25949,"symbolAliases":[],"unitAlias":""},{"id":30016,"nodeType":"ImportDirective","src":"106:45:29","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol","file":"solmate/utils/FixedPointMathLib.sol","nameLocation":"-1:-1:-1","scope":30097,"sourceUnit":26641,"symbolAliases":[],"unitAlias":""},{"id":30019,"nodeType":"UsingForDirective","src":"153:36:29","nodes":[],"global":false,"libraryName":{"id":30017,"name":"FixedPointMathLib","nameLocations":["159:17:29"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"159:17:29"},"typeName":{"id":30018,"name":"uint256","nodeType":"ElementaryTypeName","src":"181:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":30048,"nodeType":"FunctionDefinition","src":"191:212:29","nodes":[],"body":{"id":30047,"nodeType":"Block","src":"259:144:29","nodes":[],"statements":[{"assignments":[30027],"declarations":[{"constant":false,"id":30027,"mutability":"mutable","name":"decimals","nameLocation":"273:8:29","nodeType":"VariableDeclaration","scope":30047,"src":"265:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30026,"name":"uint256","nodeType":"ElementaryTypeName","src":"265:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30033,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":30029,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30021,"src":"290:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":30028,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25948,"src":"284:5:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$25948_$","typeString":"type(contract ERC20)"}},"id":30030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"284:12:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$25948","typeString":"contract ERC20"}},"id":30031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"297:8:29","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":25585,"src":"284:21:29","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":30032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"284:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"265:42:29"},{"assignments":[30035],"declarations":[{"constant":false,"id":30035,"mutability":"mutable","name":"difference","nameLocation":"321:10:29","nodeType":"VariableDeclaration","scope":30047,"src":"313:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30034,"name":"uint256","nodeType":"ElementaryTypeName","src":"313:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30039,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3138","id":30036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"334:2:29","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":30037,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30027,"src":"339:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"334:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"313:34:29"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":30040,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"360:17:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":30041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"378:3:29","memberName":"WAD","nodeType":"MemberAccess","referencedDeclaration":26033,"src":"360:21:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":30042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"384:2:29","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":30043,"name":"difference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30035,"src":"390:10:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"384:16:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"360:40:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":30025,"id":30046,"nodeType":"Return","src":"353:47:29"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeScalingFactor","nameLocation":"200:20:29","parameters":{"id":30022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30021,"mutability":"mutable","name":"token","nameLocation":"229:5:29","nodeType":"VariableDeclaration","scope":30048,"src":"221:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30020,"name":"address","nodeType":"ElementaryTypeName","src":"221:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"220:15:29"},"returnParameters":{"id":30025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30024,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":30048,"src":"250:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30023,"name":"uint256","nodeType":"ElementaryTypeName","src":"250:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"249:9:29"},"scope":30097,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":30064,"nodeType":"FunctionDefinition","src":"405:156:29","nodes":[],"body":{"id":30063,"nodeType":"Block","src":"494:67:29","nodes":[],"statements":[{"expression":{"arguments":[{"id":30059,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30050,"src":"536:6:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30060,"name":"scalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30052,"src":"544:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30057,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"507:17:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":30058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"525:10:29","memberName":"mulWadDown","nodeType":"MemberAccess","referencedDeclaration":26049,"src":"507:28:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":30061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"507:51:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":30056,"id":30062,"nodeType":"Return","src":"500:58:29"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"upscale","nameLocation":"414:7:29","parameters":{"id":30053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30050,"mutability":"mutable","name":"amount","nameLocation":"435:6:29","nodeType":"VariableDeclaration","scope":30064,"src":"427:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30049,"name":"uint256","nodeType":"ElementaryTypeName","src":"427:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30052,"mutability":"mutable","name":"scalingFactor","nameLocation":"455:13:29","nodeType":"VariableDeclaration","scope":30064,"src":"447:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30051,"name":"uint256","nodeType":"ElementaryTypeName","src":"447:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"421:49:29"},"returnParameters":{"id":30056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30055,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":30064,"src":"485:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30054,"name":"uint256","nodeType":"ElementaryTypeName","src":"485:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"484:9:29"},"scope":30097,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30080,"nodeType":"FunctionDefinition","src":"563:162:29","nodes":[],"body":{"id":30079,"nodeType":"Block","src":"658:67:29","nodes":[],"statements":[{"expression":{"arguments":[{"id":30075,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30066,"src":"700:6:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30076,"name":"scalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30068,"src":"708:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30073,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"671:17:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":30074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"689:10:29","memberName":"divWadDown","nodeType":"MemberAccess","referencedDeclaration":26081,"src":"671:28:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":30077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"671:51:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":30072,"id":30078,"nodeType":"Return","src":"664:58:29"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"downscaleDown","nameLocation":"572:13:29","parameters":{"id":30069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30066,"mutability":"mutable","name":"amount","nameLocation":"599:6:29","nodeType":"VariableDeclaration","scope":30080,"src":"591:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30065,"name":"uint256","nodeType":"ElementaryTypeName","src":"591:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30068,"mutability":"mutable","name":"scalingFactor","nameLocation":"619:13:29","nodeType":"VariableDeclaration","scope":30080,"src":"611:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30067,"name":"uint256","nodeType":"ElementaryTypeName","src":"611:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"585:49:29"},"returnParameters":{"id":30072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30071,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":30080,"src":"649:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30070,"name":"uint256","nodeType":"ElementaryTypeName","src":"649:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"648:9:29"},"scope":30097,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30096,"nodeType":"FunctionDefinition","src":"727:158:29","nodes":[],"body":{"id":30095,"nodeType":"Block","src":"820:65:29","nodes":[],"statements":[{"expression":{"arguments":[{"id":30091,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30082,"src":"860:6:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30092,"name":"scalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30084,"src":"868:13:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30089,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"833:17:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":30090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"851:8:29","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"833:26:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":30093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"833:49:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":30088,"id":30094,"nodeType":"Return","src":"826:56:29"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"downscaleUp","nameLocation":"736:11:29","parameters":{"id":30085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30082,"mutability":"mutable","name":"amount","nameLocation":"761:6:29","nodeType":"VariableDeclaration","scope":30096,"src":"753:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30081,"name":"uint256","nodeType":"ElementaryTypeName","src":"753:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30084,"mutability":"mutable","name":"scalingFactor","nameLocation":"781:13:29","nodeType":"VariableDeclaration","scope":30096,"src":"773:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30083,"name":"uint256","nodeType":"ElementaryTypeName","src":"773:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"747:49:29"},"returnParameters":{"id":30088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30087,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":30096,"src":"811:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30086,"name":"uint256","nodeType":"ElementaryTypeName","src":"811:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"810:9:29"},"scope":30097,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"license":"GPL-3.0-or-later"},"id":29} \ No newline at end of file diff --git a/out/ScalingLib.t.sol/ScalingLibTest.json b/out/ScalingLib.t.sol/ScalingLibTest.json deleted file mode 100644 index b3afb39b..00000000 --- a/out/ScalingLib.t.sol/ScalingLibTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"test_ScalingLib_computeScalingFactor_ComputesFor18Decimals","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_ScalingLib_computeScalingFactor_ComputesFor6Decimals","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_ScalingLib_downscaleDown_ComputesFor18Decimals","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_ScalingLib_downscaleDown_ComputesFor6Decimals","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_ScalingLib_downscaleUp_ComputesFor18Decimals","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_ScalingLib_downscaleUp_ComputesFor6Decimals","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_ScalingLib_upscale_ComputesFor18Decimals","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_ScalingLib_upscale_ComputesFor6Decimals","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523461002357600160ff196000541617600055611d4590816100298239f35b600080fdfe608060405260043610156200001357600080fd5b6000803560e01c9081634903010314620000ce5750806350f1bad814620000c8578063690b6de814620000c25780636c50d40014620000bc5780639e28367814620000b6578063aba6352414620000b0578063ba414fa614620000aa578063c71badb314620000a4578063f1130b23146200009e5763fa7626d4146200009857600080fd5b620005d3565b6200045e565b620003e8565b620003bf565b62000351565b620002e3565b6200026d565b620001fe565b62000170565b346200016d57806003193601126200016d5761106b80608001906080821067ffffffffffffffff831117620001675762000ca560803962000112607f19916200060e565b01608082f0801562000161576200015e9062000158906001600160a01b0316620001516200014a62000144836200088a565b62000c42565b916200088a565b9062000c5e565b6200092b565b80f35b62000658565b620005f8565b80fd5b34620001f9576000806003193601126200016d5760405161106b8082019082821067ffffffffffffffff83111762000167578291620001b59162000ca5843962000664565b039082f0801562000161576200015e90620001f3906001600160a01b0316620001ec6200014a620001e6836200088a565b62000c81565b9062000b37565b62000a21565b600080fd5b34620001f9576000806003193601126200016d5760405161106b8082019082821067ffffffffffffffff83111762000167578291620002439162000ca584396200060e565b039082f0801562000161576200015e9062000267906001600160a01b03166200088a565b62000a31565b34620001f9576000806003193601126200016d5760405161106b8082019082821067ffffffffffffffff83111762000167578291620002b29162000ca5843962000664565b039082f0801562000161576200015e90620001f3906001600160a01b0316620001516200014a620001e6836200088a565b34620001f9576000806003193601126200016d5760405161106b8082019082821067ffffffffffffffff83111762000167578291620003289162000ca5843962000664565b039082f0801562000161576200015e906200026790620001e6906001600160a01b03166200088a565b34620001f9576000806003193601126200016d5760405161106b8082019082821067ffffffffffffffff83111762000167578291620003969162000ca584396200060e565b039082f0801562000161576200015e90620002679062000144906001600160a01b03166200088a565b34620001f9576000366003190112620001f9576020620003de6200076b565b6040519015158152f35b34620001f9576000806003193601126200016d5760405161106b8082019082821067ffffffffffffffff831117620001675782916200042d9162000ca584396200060e565b039082f0801562000161576200015e9062000158906001600160a01b0316620001ec6200014a62000144836200088a565b34620001f9576000806003193601126200016d576040805161106b8082019082821067ffffffffffffffff83111762000167578291620004a49162000ca5843962000664565b039083f080156200016157620004c3906001600160a01b03166200088a565b6c0c9f2c9cd04674edea4000000090818103620004de578380f35b82620005bf927f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50608080965160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8582015261745d60f01b6060820152a1815190828252600a83830152690808115e1c1958dd195960b21b606083015260208201527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8948591a15191829182919060408352600a604084015269080808081058dd1d585b60b21b6060840152602060808401930152565b0390a1620005cc62000b68565b3880808380f35b34620001f9576000366003190112620001f957602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b60608082526004908201526315195cdd60e21b608082015290601260406200065360a085015b858103602087015260409060038152621514d560ea1b60208201520190565b930152565b6040513d6000823e3d90fd5b60608082526004908201526315195cdd60e21b608082015290600660406200065360a0850162000634565b6080810190811067ffffffffffffffff8211176200016757604052565b90601f8019910116810190811067ffffffffffffffff8211176200016757604052565b630667f9d760e41b815281519160005b838110620006f65750509060049101016000815290565b8060208092840101516004828601015201620006df565b3d156200074c573d9067ffffffffffffffff821162000167576040519162000740601f8201601f191660200184620006ac565b82523d6000602084013e565b606090565b90816020910312620001f957518015158103620001f95790565b6000805460081c60ff161562000788575460081c60ff1690565b90565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620007aa57505090565b8192506040518281620007e860208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b03620007fd601f1991828101855284620006ac565b62000823604051918262000816602082019687620006cf565b03908101835282620006ac565b51925af15062000785620008366200070d565b6020808251830101910162000751565b634e487b7160e01b600052601160045260246000fd5b90670de0b6b3a764000091808302928304036200087557565b62000846565b604d81116200087557600a0a90565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156200016157600091620008e3575b5060ff16601203601281116200087557620008dd62000785916200087b565b6200085c565b6020813d60201162000922575b81620008ff60209383620006ac565b810103126200091e57519060ff821682036200016d575060ff620008be565b5080fd5b3d9150620008f0565b670de0b6b3a764000081810362000940575050565b60809182916040917f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f5084845160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8682015261745d60f01b6060820152a1825190838252600a84830152690808115e1c1958dd195960b21b606083015260208201527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8948591a1600a82519280845283015269080808081058dd1d585b60b21b60608301526020820152a162000a1f62000b68565b565b620f424081810362000940575050565b670de0b6b3a764000080820362000a46575050565b60809162000b2a916040907f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f5085835160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8582015261745d60f01b6060820152a1815190828252600a83830152690808115e1c1958dd195960b21b606083015260208201527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8948591a15191829182919060408352600a604084015269080808081058dd1d585b60b21b6060840152602060808401930152565b0390a162000a1f62000b68565b90670de0b6b3a76400009182810292818404149015178115151615620001f957600190600019830104019015150290565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62000b9b575b5062000a1f61010061ff00196000541617600055565b6040516020908260208201526519985a5b195960d21b6040820152600160608201526060815262000bcc816200068f565b6040519060208201926370ca10bb60e01b845281519160005b83811062000c2d575050509160008262000c16602482849896978598018583820152036004810184520182620006ac565b51925af15062000c256200070d565b503862000b85565b81810183015185820160240152820162000be5565b670de0b6b3a76400008181020490811460011615620001f95790565b670de0b6b3a76400009081810291818304149015178215151615620001f9570490565b620f4240908082029182041460011615620001f957670de0b6b3a764000090049056fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c63430008160033a2646970667358221220050bd9eeb436ea686d85dabbcd34d278a8ed3f9f688f58e4990eae34c617ff7064736f6c63430008160033","sourceMap":"178:2827:68:-:0;;;;;;;1594:4:0;178:2827:68;;1594:4:0;178:2827:68;;;1594:4:0;178:2827:68;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610156200001357600080fd5b6000803560e01c9081634903010314620000ce5750806350f1bad814620000c8578063690b6de814620000c25780636c50d40014620000bc5780639e28367814620000b6578063aba6352414620000b0578063ba414fa614620000aa578063c71badb314620000a4578063f1130b23146200009e5763fa7626d4146200009857600080fd5b620005d3565b6200045e565b620003e8565b620003bf565b62000351565b620002e3565b6200026d565b620001fe565b62000170565b346200016d57806003193601126200016d5761106b80608001906080821067ffffffffffffffff831117620001675762000ca560803962000112607f19916200060e565b01608082f0801562000161576200015e9062000158906001600160a01b0316620001516200014a62000144836200088a565b62000c42565b916200088a565b9062000c5e565b6200092b565b80f35b62000658565b620005f8565b80fd5b34620001f9576000806003193601126200016d5760405161106b8082019082821067ffffffffffffffff83111762000167578291620001b59162000ca5843962000664565b039082f0801562000161576200015e90620001f3906001600160a01b0316620001ec6200014a620001e6836200088a565b62000c81565b9062000b37565b62000a21565b600080fd5b34620001f9576000806003193601126200016d5760405161106b8082019082821067ffffffffffffffff83111762000167578291620002439162000ca584396200060e565b039082f0801562000161576200015e9062000267906001600160a01b03166200088a565b62000a31565b34620001f9576000806003193601126200016d5760405161106b8082019082821067ffffffffffffffff83111762000167578291620002b29162000ca5843962000664565b039082f0801562000161576200015e90620001f3906001600160a01b0316620001516200014a620001e6836200088a565b34620001f9576000806003193601126200016d5760405161106b8082019082821067ffffffffffffffff83111762000167578291620003289162000ca5843962000664565b039082f0801562000161576200015e906200026790620001e6906001600160a01b03166200088a565b34620001f9576000806003193601126200016d5760405161106b8082019082821067ffffffffffffffff83111762000167578291620003969162000ca584396200060e565b039082f0801562000161576200015e90620002679062000144906001600160a01b03166200088a565b34620001f9576000366003190112620001f9576020620003de6200076b565b6040519015158152f35b34620001f9576000806003193601126200016d5760405161106b8082019082821067ffffffffffffffff831117620001675782916200042d9162000ca584396200060e565b039082f0801562000161576200015e9062000158906001600160a01b0316620001ec6200014a62000144836200088a565b34620001f9576000806003193601126200016d576040805161106b8082019082821067ffffffffffffffff83111762000167578291620004a49162000ca5843962000664565b039083f080156200016157620004c3906001600160a01b03166200088a565b6c0c9f2c9cd04674edea4000000090818103620004de578380f35b82620005bf927f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50608080965160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8582015261745d60f01b6060820152a1815190828252600a83830152690808115e1c1958dd195960b21b606083015260208201527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8948591a15191829182919060408352600a604084015269080808081058dd1d585b60b21b6060840152602060808401930152565b0390a1620005cc62000b68565b3880808380f35b34620001f9576000366003190112620001f957602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b60608082526004908201526315195cdd60e21b608082015290601260406200065360a085015b858103602087015260409060038152621514d560ea1b60208201520190565b930152565b6040513d6000823e3d90fd5b60608082526004908201526315195cdd60e21b608082015290600660406200065360a0850162000634565b6080810190811067ffffffffffffffff8211176200016757604052565b90601f8019910116810190811067ffffffffffffffff8211176200016757604052565b630667f9d760e41b815281519160005b838110620006f65750509060049101016000815290565b8060208092840101516004828601015201620006df565b3d156200074c573d9067ffffffffffffffff821162000167576040519162000740601f8201601f191660200184620006ac565b82523d6000602084013e565b606090565b90816020910312620001f957518015158103620001f95790565b6000805460081c60ff161562000788575460081c60ff1690565b90565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620007aa57505090565b8192506040518281620007e860208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b03620007fd601f1991828101855284620006ac565b62000823604051918262000816602082019687620006cf565b03908101835282620006ac565b51925af15062000785620008366200070d565b6020808251830101910162000751565b634e487b7160e01b600052601160045260246000fd5b90670de0b6b3a764000091808302928304036200087557565b62000846565b604d81116200087557600a0a90565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156200016157600091620008e3575b5060ff16601203601281116200087557620008dd62000785916200087b565b6200085c565b6020813d60201162000922575b81620008ff60209383620006ac565b810103126200091e57519060ff821682036200016d575060ff620008be565b5080fd5b3d9150620008f0565b670de0b6b3a764000081810362000940575050565b60809182916040917f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f5084845160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8682015261745d60f01b6060820152a1825190838252600a84830152690808115e1c1958dd195960b21b606083015260208201527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8948591a1600a82519280845283015269080808081058dd1d585b60b21b60608301526020820152a162000a1f62000b68565b565b620f424081810362000940575050565b670de0b6b3a764000080820362000a46575050565b60809162000b2a916040907f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f5085835160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8582015261745d60f01b6060820152a1815190828252600a83830152690808115e1c1958dd195960b21b606083015260208201527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8948591a15191829182919060408352600a604084015269080808081058dd1d585b60b21b6060840152602060808401930152565b0390a162000a1f62000b68565b90670de0b6b3a76400009182810292818404149015178115151615620001f957600190600019830104019015150290565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62000b9b575b5062000a1f61010061ff00196000541617600055565b6040516020908260208201526519985a5b195960d21b6040820152600160608201526060815262000bcc816200068f565b6040519060208201926370ca10bb60e01b845281519160005b83811062000c2d575050509160008262000c16602482849896978598018583820152036004810184520182620006ac565b51925af15062000c256200070d565b503862000b85565b81810183015185820160240152820162000be5565b670de0b6b3a76400008181020490811460011615620001f95790565b670de0b6b3a76400009081810291818304149015178215151615620001f9570490565b620f4240908082029182041460011615620001f957670de0b6b3a764000090049056fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c63430008160033a2646970667358221220050bd9eeb436ea686d85dabbcd34d278a8ed3f9f688f58e4990eae34c617ff7064736f6c63430008160033","sourceMap":"178:2827:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;1403:32;;178:2827;1403:32;;178:2827;1403:32;;;;;;;;;178:2827;1403:32;;;;;;:::i;:::-;;178:2827;1403:32;;;;;;1642:67;;965:21:18;;-1:-1:-1;;;;;178:2827:68;1672:36;631:21:18;1546:36:68;178:2827;1546:36;:::i;:::-;631:21:18;:::i;:::-;1672:36:68;;:::i;:::-;965:21:18;;:::i;:::-;1642:67:68;:::i;:::-;178:2827;;1403:32;;:::i;:::-;;:::i;178:2827::-;;;;;;;;;;;;;;;;;;2679:31;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;2921:65;;;;-1:-1:-1;;;;;178:2827:68;2949:36;631:21:18;2825:36:68;178:2827;2825:36;:::i;:::-;631:21:18;:::i;2949:36:68:-;2921:65;;:::i;:::-;;:::i;178:2827::-;;;;;;;;;;;;;;;;;;;333:32;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;422:21;;384:36;;-1:-1:-1;;;;;178:2827:68;384:36;:::i;:::-;422:21;:::i;178:2827::-;;;;;;;;;;;;;;;1829:31;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;2071:67;;965:21:18;;-1:-1:-1;;;;;178:2827:68;2101:36;631:21:18;1975:36:68;178:2827;1975:36;:::i;178:2827::-;;;;;;;;;;;;;;;1113:31;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1259:33;;631:21:18;;1212:36:68;;-1:-1:-1;;;;;178:2827:68;1212:36;:::i;178:2827::-;;;;;;;;;;;;;;;833:32;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;976:33;;631:21:18;;929:36:68;;-1:-1:-1;;;;;178:2827:68;929:36;:::i;178:2827::-;;;;;;-1:-1:-1;;178:2827:68;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2257:32;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;2496:65;;;;-1:-1:-1;;;;;178:2827:68;2524:36;631:21:18;2400:36:68;178:2827;2400:36;:::i;178:2827::-;;;;;;;;;;;;;;;;573:31;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;636:36;;-1:-1:-1;;;;;178:2827:68;636:36;:::i;:::-;178:2827;5259:6:0;;;;5255:203;;178:2827:68;;;5255:203:0;178:2827:68;5396:31:0;178:2827:68;5286:41:0;178:2827:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;178:2827:68;;;;5286:41:0;178:2827:68;;;;;;;;;;;-1:-1:-1;;;178:2827:68;;;;;;;1671:64:0;5346:31;;;;;178:2827:68;5396:31:0;;;;178:2827:68;;;;;;;;;;-1:-1:-1;;;178:2827:68;;;;;;;;;;1671:64:0;178:2827:68;5396:31:0;;;;;;:::i;:::-;5255:203;;;178:2827:68;;;;;;;;;-1:-1:-1;;178:2827:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;178:2827:68;;;;;1432:2;178:2827;;;;;;;;;;;;;;;;;;-1:-1:-1;;;178:2827:68;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;178:2827:68;;;;;2708:1;178:2827;;;;;;;1671:64:0;178:2827:68;1671:64:0;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;1671:64:0;;;;;-1:-1:-1;1671:64:0;;;;;;;;;;;;;-1:-1:-1;1671:64:0;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;178:2827:68;;;1671:64:0;;;;-1:-1:-1;;1671:64:0;;;178:2827:68;1671:64:0;:::i;:::-;;;;-1:-1:-1;1671:64:0;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;178:2827:68;;;1671:64:0;;;;;:::o;1819:584::-;1873:7;178:2827:68;;;;;;1873:7:0;;;178:2827:68;;;;;1896:14:0;:::o;178:2827:68:-;1896:14:0;:::o;1869:528::-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;178:2827:68;;;;;2196:43:0;;;;;;1671:64;;;;;178:2827:68;1671:64:0;;;;;;;;;;2196:43;;;1671:64;;2196:43;;;;;;;;:::i;:::-;2086:175;178:2827:68;;2086:175:0;;;2196:43;2086:175;;;;;:::i;:::-;;;;;;;;;:::i;:::-;2047:232;;;;;2312:27;2047:232;;:::i;:::-;2196:43;1671:64;;;2312:27;;;;;;:::i;178:2827:68:-;;;;;;;;;;;;;;491:4:18;178:2827:68;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;:::o;191:212:29:-;178:2827:68;;-1:-1:-1;;;284:23:29;;178:2827:68;284:23:29;;178:2827:68;;284:23:29;;178:2827:68;;-1:-1:-1;;;;;178:2827:68;284:23:29;;;;;;;;;;;191:212;178:2827:68;;;334:2:29;178:2827:68;334:2:29;178:2827:68;;;;384:16:29;360:40;384:16;;:::i;:::-;360:40;:::i;284:23::-;;;;;;;;;;;;;;;:::i;:::-;;;178:2827:68;;;;;;;;;;;;;284:23:29;178:2827:68;284:23:29;;178:2827:68;;;;284:23:29;;;-1:-1:-1;284:23:29;;5202:262:0;1469:7:68;5259:6:0;;;5255:203;;5202:262;;:::o;5255:203::-;178:2827:68;;;;;;5286:41:0;178:2827:68;;;;;;;;;;;;;;;;-1:-1:-1;;;178:2827:68;;;;5286:41:0;178:2827:68;;;;;;;;;;;-1:-1:-1;;;178:2827:68;;;;;;;1671:64:0;5346:31;;;;;178:2827:68;;;;;;;;;;-1:-1:-1;;;178:2827:68;;;;;;;1671:64:0;5396:31;;;:::i;:::-;5202:262::o;:::-;2744:11:68;5259:6:0;;;5255:203;;5202:262;;:::o;:::-;491:4:18;5259:6:0;;;5255:203;;5202:262;;:::o;5255:203::-;178:2827:68;;5396:31:0;178:2827:68;;;5286:41:0;178:2827:68;;;;;;;;;;;;;;;;-1:-1:-1;;;178:2827:68;;;;5286:41:0;178:2827:68;;;;;;;;;;;-1:-1:-1;;;178:2827:68;;;;;;;1671:64:0;5346:31;;;;;178:2827:68;5396:31:0;;;;178:2827:68;;;;;;;;;;-1:-1:-1;;;178:2827:68;;;;;;;;;;1671:64:0;178:2827:68;5396:31:0;;;;;;:::i;727:158:29:-;;491:4:18;8417:611;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;727:158:29;:::o;2410:424:0:-;2939:104;;;2445:359;;2410:424;2813:14;;178:2827:68;;;2928:1:0;178:2827:68;;;2928:1:0;178:2827:68;;2445:359:0;178:2827:68;;2645:67:0;;;;;;1671:64;;;;178:2827:68;;;1671:64:0;2705:4;178:2827:68;;;1671:64:0;178:2827:68;2645:67:0;;;;;:::i;:::-;178:2827:68;;2534:196:0;2645:67;2534:196;;1671:64;;;;;;;;;-1:-1:-1;1671:64:0;;;;;;;;;;-1:-1:-1;1671:64:0;2534:196;1671:64;;;;;;;;;;;;;;2534:196;1671:64;2534:196;;;;;;;:::i;:::-;2499:245;;;;;;;:::i;:::-;;2445:359;;;1671:64;;;;;;;;;;;;;;;;;7741:535:18;1469:7:68;7878:392:18;;;;;;;;;;;;7741:535;:::o;:::-;1469:7:68;7878:392:18;;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;2744:11:68;7878:392:18;;;;;;;;;;;;;491:4;7878:392;;7741:535;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","failed()":"ba414fa6","test_ScalingLib_computeScalingFactor_ComputesFor18Decimals()":"690b6de8","test_ScalingLib_computeScalingFactor_ComputesFor6Decimals()":"f1130b23","test_ScalingLib_downscaleDown_ComputesFor18Decimals()":"49030103","test_ScalingLib_downscaleDown_ComputesFor6Decimals()":"6c50d400","test_ScalingLib_downscaleUp_ComputesFor18Decimals()":"c71badb3","test_ScalingLib_downscaleUp_ComputesFor6Decimals()":"50f1bad8","test_ScalingLib_upscale_ComputesFor18Decimals()":"aba63524","test_ScalingLib_upscale_ComputesFor6Decimals()":"9e283678"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_ScalingLib_computeScalingFactor_ComputesFor18Decimals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_ScalingLib_computeScalingFactor_ComputesFor6Decimals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_ScalingLib_downscaleDown_ComputesFor18Decimals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_ScalingLib_downscaleDown_ComputesFor6Decimals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_ScalingLib_downscaleUp_ComputesFor18Decimals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_ScalingLib_downscaleUp_ComputesFor6Decimals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_ScalingLib_upscale_ComputesFor18Decimals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_ScalingLib_upscale_ComputesFor6Decimals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/unit/lib/ScalingLib.t.sol\":\"ScalingLibTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/test/unit/lib/ScalingLib.t.sol\":{\"keccak256\":\"0x60944d93cd6554ce449e49bb43e4be19c1107a1c9859240ac7176c82f71c5c01\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7841350afb77302b6f465a7726c558a55535b220387af9dfb091b1cb3e8a7b3e\",\"dweb:/ipfs/QmVHvAs4GLiiwRgw2nC5LtnqwH44qtkgmTtYhBKxZ28LfW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_ScalingLib_computeScalingFactor_ComputesFor18Decimals"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_ScalingLib_computeScalingFactor_ComputesFor6Decimals"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_ScalingLib_downscaleDown_ComputesFor18Decimals"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_ScalingLib_downscaleDown_ComputesFor6Decimals"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_ScalingLib_downscaleUp_ComputesFor18Decimals"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_ScalingLib_downscaleUp_ComputesFor6Decimals"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_ScalingLib_upscale_ComputesFor18Decimals"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_ScalingLib_upscale_ComputesFor6Decimals"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/unit/lib/ScalingLib.t.sol":"ScalingLibTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/test/unit/lib/ScalingLib.t.sol":{"keccak256":"0x60944d93cd6554ce449e49bb43e4be19c1107a1c9859240ac7176c82f71c5c01","urls":["bzz-raw://7841350afb77302b6f465a7726c558a55535b220387af9dfb091b1cb3e8a7b3e","dweb:/ipfs/QmVHvAs4GLiiwRgw2nC5LtnqwH44qtkgmTtYhBKxZ28LfW"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/unit/lib/ScalingLib.t.sol","id":46536,"exportedSymbols":{"DSTest":[1786],"ERC20":[25948],"FixedPointMathLib":[26640],"MockERC20":[25560],"ScalingLibTest":[46535],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"Test":[8195],"TestBase":[1843],"Vm":[9352],"computeScalingFactor":[30048],"console":[17416],"console2":[25512],"downscaleDown":[30080],"downscaleUp":[30096],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"40:2966:68","nodes":[{"id":46221,"nodeType":"PragmaDirective","src":"40:24:68","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":46222,"nodeType":"ImportDirective","src":"66:28:68","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":46536,"sourceUnit":8196,"symbolAliases":[],"unitAlias":""},{"id":46223,"nodeType":"ImportDirective","src":"95:48:68","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol","file":"solmate/test/utils/mocks/MockERC20.sol","nameLocation":"-1:-1:-1","scope":46536,"sourceUnit":25561,"symbolAliases":[],"unitAlias":""},{"id":46224,"nodeType":"ImportDirective","src":"144:32:68","nodes":[],"absolutePath":"src/lib/ScalingLib.sol","file":"src/lib/ScalingLib.sol","nameLocation":"-1:-1:-1","scope":46536,"sourceUnit":30097,"symbolAliases":[],"unitAlias":""},{"id":46535,"nodeType":"ContractDefinition","src":"178:2827:68","nodes":[{"id":46252,"nodeType":"FunctionDefinition","src":"216:235:68","nodes":[],"body":{"id":46251,"nodeType":"Block","src":"305:146:68","nodes":[],"statements":[{"assignments":[46231],"declarations":[{"constant":false,"id":46231,"mutability":"mutable","name":"token","nameLocation":"325:5:68","nodeType":"VariableDeclaration","scope":46251,"src":"315:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"},"typeName":{"id":46230,"nodeType":"UserDefinedTypeName","pathNode":{"id":46229,"name":"MockERC20","nameLocations":["315:9:68"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"315:9:68"},"referencedDeclaration":25560,"src":"315:9:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"visibility":"internal"}],"id":46239,"initialValue":{"arguments":[{"hexValue":"54657374","id":46235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"347:6:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_85cc825a98ec217d960f113f5f80a95d7fd18e3725d37df428eb14f880bdfc12","typeString":"literal_string \"Test\""},"value":"Test"},{"hexValue":"545354","id":46236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"355:5:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_20a94e575762ae205efd2d939940bb203cefdf1c455cc39ef343e287f43b70f4","typeString":"literal_string \"TST\""},"value":"TST"},{"hexValue":"3138","id":46237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"362:2:68","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_85cc825a98ec217d960f113f5f80a95d7fd18e3725d37df428eb14f880bdfc12","typeString":"literal_string \"Test\""},{"typeIdentifier":"t_stringliteral_20a94e575762ae205efd2d939940bb203cefdf1c455cc39ef343e287f43b70f4","typeString":"literal_string \"TST\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":46234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"333:13:68","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":46233,"nodeType":"UserDefinedTypeName","pathNode":{"id":46232,"name":"MockERC20","nameLocations":["337:9:68"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"337:9:68"},"referencedDeclaration":25560,"src":"337:9:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":46238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"333:32:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"nodeType":"VariableDeclarationStatement","src":"315:50:68"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":46244,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46231,"src":"413:5:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":46243,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"405:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46242,"name":"address","nodeType":"ElementaryTypeName","src":"405:7:68","typeDescriptions":{}}},"id":46245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"405:14:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46241,"name":"computeScalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30048,"src":"384:20:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":46246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"384:36:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":46247,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"422:17:68","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":46248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"440:3:68","memberName":"WAD","nodeType":"MemberAccess","referencedDeclaration":26033,"src":"422:21:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46240,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"375:8:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"375:69:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46250,"nodeType":"ExpressionStatement","src":"375:69:68"}]},"functionSelector":"690b6de8","implemented":true,"kind":"function","modifiers":[],"name":"test_ScalingLib_computeScalingFactor_ComputesFor18Decimals","nameLocation":"225:58:68","parameters":{"id":46227,"nodeType":"ParameterList","parameters":[],"src":"283:2:68"},"returnParameters":{"id":46228,"nodeType":"ParameterList","parameters":[],"src":"305:0:68"},"scope":46535,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":46282,"nodeType":"FunctionDefinition","src":"457:278:68","nodes":[],"body":{"id":46281,"nodeType":"Block","src":"545:190:68","nodes":[],"statements":[{"assignments":[46257],"declarations":[{"constant":false,"id":46257,"mutability":"mutable","name":"token","nameLocation":"565:5:68","nodeType":"VariableDeclaration","scope":46281,"src":"555:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"},"typeName":{"id":46256,"nodeType":"UserDefinedTypeName","pathNode":{"id":46255,"name":"MockERC20","nameLocations":["555:9:68"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"555:9:68"},"referencedDeclaration":25560,"src":"555:9:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"visibility":"internal"}],"id":46265,"initialValue":{"arguments":[{"hexValue":"54657374","id":46261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"587:6:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_85cc825a98ec217d960f113f5f80a95d7fd18e3725d37df428eb14f880bdfc12","typeString":"literal_string \"Test\""},"value":"Test"},{"hexValue":"545354","id":46262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"595:5:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_20a94e575762ae205efd2d939940bb203cefdf1c455cc39ef343e287f43b70f4","typeString":"literal_string \"TST\""},"value":"TST"},{"hexValue":"36","id":46263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"602:1:68","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_85cc825a98ec217d960f113f5f80a95d7fd18e3725d37df428eb14f880bdfc12","typeString":"literal_string \"Test\""},{"typeIdentifier":"t_stringliteral_20a94e575762ae205efd2d939940bb203cefdf1c455cc39ef343e287f43b70f4","typeString":"literal_string \"TST\""},{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"}],"id":46260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"573:13:68","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":46259,"nodeType":"UserDefinedTypeName","pathNode":{"id":46258,"name":"MockERC20","nameLocations":["577:9:68"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"577:9:68"},"referencedDeclaration":25560,"src":"577:9:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":46264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"573:31:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"nodeType":"VariableDeclarationStatement","src":"555:49:68"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":46270,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46257,"src":"665:5:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":46269,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"657:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46268,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:68","typeDescriptions":{}}},"id":46271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"657:14:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46267,"name":"computeScalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30048,"src":"636:20:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":46272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"636:36:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"expression":{"id":46273,"name":"FixedPointMathLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26640,"src":"686:17:68","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FixedPointMathLib_$26640_$","typeString":"type(library FixedPointMathLib)"}},"id":46274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"704:3:68","memberName":"WAD","nodeType":"MemberAccess","referencedDeclaration":26033,"src":"686:21:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000000000_by_1","typeString":"int_const 1000000000000"},"id":46277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":46275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"710:2:68","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3132","id":46276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"716:2:68","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"src":"710:8:68","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000_by_1","typeString":"int_const 1000000000000"}},"src":"686:32:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46266,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"614:8:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"614:114:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46280,"nodeType":"ExpressionStatement","src":"614:114:68"}]},"functionSelector":"f1130b23","implemented":true,"kind":"function","modifiers":[],"name":"test_ScalingLib_computeScalingFactor_ComputesFor6Decimals","nameLocation":"466:57:68","parameters":{"id":46253,"nodeType":"ParameterList","parameters":[],"src":"523:2:68"},"returnParameters":{"id":46254,"nodeType":"ParameterList","parameters":[],"src":"545:0:68"},"scope":46535,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":46314,"nodeType":"FunctionDefinition","src":"741:275:68","nodes":[],"body":{"id":46313,"nodeType":"Block","src":"805:211:68","nodes":[],"statements":[{"assignments":[46287],"declarations":[{"constant":false,"id":46287,"mutability":"mutable","name":"token","nameLocation":"825:5:68","nodeType":"VariableDeclaration","scope":46313,"src":"815:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"},"typeName":{"id":46286,"nodeType":"UserDefinedTypeName","pathNode":{"id":46285,"name":"MockERC20","nameLocations":["815:9:68"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"815:9:68"},"referencedDeclaration":25560,"src":"815:9:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"visibility":"internal"}],"id":46295,"initialValue":{"arguments":[{"hexValue":"54657374","id":46291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"847:6:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_85cc825a98ec217d960f113f5f80a95d7fd18e3725d37df428eb14f880bdfc12","typeString":"literal_string \"Test\""},"value":"Test"},{"hexValue":"545354","id":46292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"855:5:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_20a94e575762ae205efd2d939940bb203cefdf1c455cc39ef343e287f43b70f4","typeString":"literal_string \"TST\""},"value":"TST"},{"hexValue":"3138","id":46293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"862:2:68","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_85cc825a98ec217d960f113f5f80a95d7fd18e3725d37df428eb14f880bdfc12","typeString":"literal_string \"Test\""},{"typeIdentifier":"t_stringliteral_20a94e575762ae205efd2d939940bb203cefdf1c455cc39ef343e287f43b70f4","typeString":"literal_string \"TST\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":46290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"833:13:68","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":46289,"nodeType":"UserDefinedTypeName","pathNode":{"id":46288,"name":"MockERC20","nameLocations":["837:9:68"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"837:9:68"},"referencedDeclaration":25560,"src":"837:9:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":46294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"833:32:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"nodeType":"VariableDeclarationStatement","src":"815:50:68"},{"assignments":[46297],"declarations":[{"constant":false,"id":46297,"mutability":"mutable","name":"upscaledAmount","nameLocation":"883:14:68","nodeType":"VariableDeclaration","scope":46313,"src":"875:22:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46296,"name":"uint256","nodeType":"ElementaryTypeName","src":"875:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46307,"initialValue":{"arguments":[{"hexValue":"31","id":46299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"920:7:68","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},{"arguments":[{"arguments":[{"id":46303,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46287,"src":"958:5:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":46302,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"950:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46301,"name":"address","nodeType":"ElementaryTypeName","src":"950:7:68","typeDescriptions":{}}},"id":46304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"950:14:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46300,"name":"computeScalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30048,"src":"929:20:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":46305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"929:36:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46298,"name":"upscale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30064,"src":"912:7:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":46306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"912:54:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"875:91:68"},{"expression":{"arguments":[{"id":46309,"name":"upscaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46297,"src":"985:14:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":46310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1001:7:68","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}],"id":46308,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"976:8:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"976:33:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46312,"nodeType":"ExpressionStatement","src":"976:33:68"}]},"functionSelector":"aba63524","implemented":true,"kind":"function","modifiers":[],"name":"test_ScalingLib_upscale_ComputesFor18Decimals","nameLocation":"750:45:68","parameters":{"id":46283,"nodeType":"ParameterList","parameters":[],"src":"795:2:68"},"returnParameters":{"id":46284,"nodeType":"ParameterList","parameters":[],"src":"805:0:68"},"scope":46535,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":46350,"nodeType":"FunctionDefinition","src":"1022:277:68","nodes":[],"body":{"id":46349,"nodeType":"Block","src":"1085:214:68","nodes":[],"statements":[{"assignments":[46319],"declarations":[{"constant":false,"id":46319,"mutability":"mutable","name":"token","nameLocation":"1105:5:68","nodeType":"VariableDeclaration","scope":46349,"src":"1095:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"},"typeName":{"id":46318,"nodeType":"UserDefinedTypeName","pathNode":{"id":46317,"name":"MockERC20","nameLocations":["1095:9:68"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"1095:9:68"},"referencedDeclaration":25560,"src":"1095:9:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"visibility":"internal"}],"id":46327,"initialValue":{"arguments":[{"hexValue":"54657374","id":46323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1127:6:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_85cc825a98ec217d960f113f5f80a95d7fd18e3725d37df428eb14f880bdfc12","typeString":"literal_string \"Test\""},"value":"Test"},{"hexValue":"545354","id":46324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1135:5:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_20a94e575762ae205efd2d939940bb203cefdf1c455cc39ef343e287f43b70f4","typeString":"literal_string \"TST\""},"value":"TST"},{"hexValue":"36","id":46325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1142:1:68","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_85cc825a98ec217d960f113f5f80a95d7fd18e3725d37df428eb14f880bdfc12","typeString":"literal_string \"Test\""},{"typeIdentifier":"t_stringliteral_20a94e575762ae205efd2d939940bb203cefdf1c455cc39ef343e287f43b70f4","typeString":"literal_string \"TST\""},{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"}],"id":46322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1113:13:68","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":46321,"nodeType":"UserDefinedTypeName","pathNode":{"id":46320,"name":"MockERC20","nameLocations":["1117:9:68"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"1117:9:68"},"referencedDeclaration":25560,"src":"1117:9:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":46326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1113:31:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"nodeType":"VariableDeclarationStatement","src":"1095:49:68"},{"assignments":[46329],"declarations":[{"constant":false,"id":46329,"mutability":"mutable","name":"upscaledAmount","nameLocation":"1162:14:68","nodeType":"VariableDeclaration","scope":46349,"src":"1154:22:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46328,"name":"uint256","nodeType":"ElementaryTypeName","src":"1154:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46343,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"id":46335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":46331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1199:1:68","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"id":46334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":46332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1203:2:68","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"36","id":46333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1209:1:68","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"1203:7:68","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"}},"src":"1199:11:68","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"}},{"arguments":[{"arguments":[{"id":46339,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46319,"src":"1241:5:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":46338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1233:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46337,"name":"address","nodeType":"ElementaryTypeName","src":"1233:7:68","typeDescriptions":{}}},"id":46340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1233:14:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46336,"name":"computeScalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30048,"src":"1212:20:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":46341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1212:36:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46330,"name":"upscale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30064,"src":"1191:7:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":46342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1191:58:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1154:95:68"},{"expression":{"arguments":[{"id":46345,"name":"upscaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46329,"src":"1268:14:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":46346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1284:7:68","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}],"id":46344,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"1259:8:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1259:33:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46348,"nodeType":"ExpressionStatement","src":"1259:33:68"}]},"functionSelector":"9e283678","implemented":true,"kind":"function","modifiers":[],"name":"test_ScalingLib_upscale_ComputesFor6Decimals","nameLocation":"1031:44:68","parameters":{"id":46315,"nodeType":"ParameterList","parameters":[],"src":"1075:2:68"},"returnParameters":{"id":46316,"nodeType":"ParameterList","parameters":[],"src":"1085:0:68"},"scope":46535,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":46394,"nodeType":"FunctionDefinition","src":"1305:421:68","nodes":[],"body":{"id":46393,"nodeType":"Block","src":"1375:351:68","nodes":[],"statements":[{"assignments":[46355],"declarations":[{"constant":false,"id":46355,"mutability":"mutable","name":"token","nameLocation":"1395:5:68","nodeType":"VariableDeclaration","scope":46393,"src":"1385:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"},"typeName":{"id":46354,"nodeType":"UserDefinedTypeName","pathNode":{"id":46353,"name":"MockERC20","nameLocations":["1385:9:68"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"1385:9:68"},"referencedDeclaration":25560,"src":"1385:9:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"visibility":"internal"}],"id":46363,"initialValue":{"arguments":[{"hexValue":"54657374","id":46359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1417:6:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_85cc825a98ec217d960f113f5f80a95d7fd18e3725d37df428eb14f880bdfc12","typeString":"literal_string \"Test\""},"value":"Test"},{"hexValue":"545354","id":46360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1425:5:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_20a94e575762ae205efd2d939940bb203cefdf1c455cc39ef343e287f43b70f4","typeString":"literal_string \"TST\""},"value":"TST"},{"hexValue":"3138","id":46361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1432:2:68","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_85cc825a98ec217d960f113f5f80a95d7fd18e3725d37df428eb14f880bdfc12","typeString":"literal_string \"Test\""},{"typeIdentifier":"t_stringliteral_20a94e575762ae205efd2d939940bb203cefdf1c455cc39ef343e287f43b70f4","typeString":"literal_string \"TST\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":46358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1403:13:68","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":46357,"nodeType":"UserDefinedTypeName","pathNode":{"id":46356,"name":"MockERC20","nameLocations":["1407:9:68"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"1407:9:68"},"referencedDeclaration":25560,"src":"1407:9:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":46362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1403:32:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"nodeType":"VariableDeclarationStatement","src":"1385:50:68"},{"assignments":[46365],"declarations":[{"constant":false,"id":46365,"mutability":"mutable","name":"initialAmount","nameLocation":"1453:13:68","nodeType":"VariableDeclaration","scope":46393,"src":"1445:21:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46364,"name":"uint256","nodeType":"ElementaryTypeName","src":"1445:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46367,"initialValue":{"hexValue":"31","id":46366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1469:7:68","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"1445:31:68"},{"assignments":[46369],"declarations":[{"constant":false,"id":46369,"mutability":"mutable","name":"upscaledAmount","nameLocation":"1494:14:68","nodeType":"VariableDeclaration","scope":46393,"src":"1486:22:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46368,"name":"uint256","nodeType":"ElementaryTypeName","src":"1486:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46379,"initialValue":{"arguments":[{"id":46371,"name":"initialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46365,"src":"1531:13:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":46375,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46355,"src":"1575:5:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":46374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1567:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46373,"name":"address","nodeType":"ElementaryTypeName","src":"1567:7:68","typeDescriptions":{}}},"id":46376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1567:14:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46372,"name":"computeScalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30048,"src":"1546:20:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":46377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1546:36:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46370,"name":"upscale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30064,"src":"1523:7:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":46378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1523:60:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1486:97:68"},{"expression":{"arguments":[{"id":46381,"name":"initialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46365,"src":"1615:13:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":46383,"name":"upscaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46369,"src":"1656:14:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":46387,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46355,"src":"1701:5:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":46386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1693:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46385,"name":"address","nodeType":"ElementaryTypeName","src":"1693:7:68","typeDescriptions":{}}},"id":46388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1693:14:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46384,"name":"computeScalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30048,"src":"1672:20:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":46389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1672:36:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46382,"name":"downscaleDown","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30080,"src":"1642:13:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":46390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1642:67:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46380,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"1593:8:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1593:126:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46392,"nodeType":"ExpressionStatement","src":"1593:126:68"}]},"functionSelector":"49030103","implemented":true,"kind":"function","modifiers":[],"name":"test_ScalingLib_downscaleDown_ComputesFor18Decimals","nameLocation":"1314:51:68","parameters":{"id":46351,"nodeType":"ParameterList","parameters":[],"src":"1365:2:68"},"returnParameters":{"id":46352,"nodeType":"ParameterList","parameters":[],"src":"1375:0:68"},"scope":46535,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":46442,"nodeType":"FunctionDefinition","src":"1732:423:68","nodes":[],"body":{"id":46441,"nodeType":"Block","src":"1801:354:68","nodes":[],"statements":[{"assignments":[46399],"declarations":[{"constant":false,"id":46399,"mutability":"mutable","name":"token","nameLocation":"1821:5:68","nodeType":"VariableDeclaration","scope":46441,"src":"1811:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"},"typeName":{"id":46398,"nodeType":"UserDefinedTypeName","pathNode":{"id":46397,"name":"MockERC20","nameLocations":["1811:9:68"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"1811:9:68"},"referencedDeclaration":25560,"src":"1811:9:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"visibility":"internal"}],"id":46407,"initialValue":{"arguments":[{"hexValue":"54657374","id":46403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1843:6:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_85cc825a98ec217d960f113f5f80a95d7fd18e3725d37df428eb14f880bdfc12","typeString":"literal_string \"Test\""},"value":"Test"},{"hexValue":"545354","id":46404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1851:5:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_20a94e575762ae205efd2d939940bb203cefdf1c455cc39ef343e287f43b70f4","typeString":"literal_string \"TST\""},"value":"TST"},{"hexValue":"36","id":46405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1858:1:68","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_85cc825a98ec217d960f113f5f80a95d7fd18e3725d37df428eb14f880bdfc12","typeString":"literal_string \"Test\""},{"typeIdentifier":"t_stringliteral_20a94e575762ae205efd2d939940bb203cefdf1c455cc39ef343e287f43b70f4","typeString":"literal_string \"TST\""},{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"}],"id":46402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1829:13:68","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":46401,"nodeType":"UserDefinedTypeName","pathNode":{"id":46400,"name":"MockERC20","nameLocations":["1833:9:68"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"1833:9:68"},"referencedDeclaration":25560,"src":"1833:9:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":46406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1829:31:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"nodeType":"VariableDeclarationStatement","src":"1811:49:68"},{"assignments":[46409],"declarations":[{"constant":false,"id":46409,"mutability":"mutable","name":"initialAmount","nameLocation":"1878:13:68","nodeType":"VariableDeclaration","scope":46441,"src":"1870:21:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46408,"name":"uint256","nodeType":"ElementaryTypeName","src":"1870:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46415,"initialValue":{"commonType":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"id":46414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":46410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1894:1:68","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"id":46413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":46411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1898:2:68","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"36","id":46412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1904:1:68","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"1898:7:68","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"}},"src":"1894:11:68","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"}},"nodeType":"VariableDeclarationStatement","src":"1870:35:68"},{"assignments":[46417],"declarations":[{"constant":false,"id":46417,"mutability":"mutable","name":"upscaledAmount","nameLocation":"1923:14:68","nodeType":"VariableDeclaration","scope":46441,"src":"1915:22:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46416,"name":"uint256","nodeType":"ElementaryTypeName","src":"1915:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46427,"initialValue":{"arguments":[{"id":46419,"name":"initialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46409,"src":"1960:13:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":46423,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46399,"src":"2004:5:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":46422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1996:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46421,"name":"address","nodeType":"ElementaryTypeName","src":"1996:7:68","typeDescriptions":{}}},"id":46424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1996:14:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46420,"name":"computeScalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30048,"src":"1975:20:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":46425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1975:36:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46418,"name":"upscale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30064,"src":"1952:7:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":46426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1952:60:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1915:97:68"},{"expression":{"arguments":[{"id":46429,"name":"initialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46409,"src":"2044:13:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":46431,"name":"upscaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46417,"src":"2085:14:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":46435,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46399,"src":"2130:5:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":46434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2122:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46433,"name":"address","nodeType":"ElementaryTypeName","src":"2122:7:68","typeDescriptions":{}}},"id":46436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2122:14:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46432,"name":"computeScalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30048,"src":"2101:20:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":46437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2101:36:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46430,"name":"downscaleDown","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30080,"src":"2071:13:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":46438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2071:67:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46428,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2022:8:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2022:126:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46440,"nodeType":"ExpressionStatement","src":"2022:126:68"}]},"functionSelector":"6c50d400","implemented":true,"kind":"function","modifiers":[],"name":"test_ScalingLib_downscaleDown_ComputesFor6Decimals","nameLocation":"1741:50:68","parameters":{"id":46395,"nodeType":"ParameterList","parameters":[],"src":"1791:2:68"},"returnParameters":{"id":46396,"nodeType":"ParameterList","parameters":[],"src":"1801:0:68"},"scope":46535,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":46486,"nodeType":"FunctionDefinition","src":"2161:417:68","nodes":[],"body":{"id":46485,"nodeType":"Block","src":"2229:349:68","nodes":[],"statements":[{"assignments":[46447],"declarations":[{"constant":false,"id":46447,"mutability":"mutable","name":"token","nameLocation":"2249:5:68","nodeType":"VariableDeclaration","scope":46485,"src":"2239:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"},"typeName":{"id":46446,"nodeType":"UserDefinedTypeName","pathNode":{"id":46445,"name":"MockERC20","nameLocations":["2239:9:68"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"2239:9:68"},"referencedDeclaration":25560,"src":"2239:9:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"visibility":"internal"}],"id":46455,"initialValue":{"arguments":[{"hexValue":"54657374","id":46451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2271:6:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_85cc825a98ec217d960f113f5f80a95d7fd18e3725d37df428eb14f880bdfc12","typeString":"literal_string \"Test\""},"value":"Test"},{"hexValue":"545354","id":46452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2279:5:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_20a94e575762ae205efd2d939940bb203cefdf1c455cc39ef343e287f43b70f4","typeString":"literal_string \"TST\""},"value":"TST"},{"hexValue":"3138","id":46453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2286:2:68","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_85cc825a98ec217d960f113f5f80a95d7fd18e3725d37df428eb14f880bdfc12","typeString":"literal_string \"Test\""},{"typeIdentifier":"t_stringliteral_20a94e575762ae205efd2d939940bb203cefdf1c455cc39ef343e287f43b70f4","typeString":"literal_string \"TST\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":46450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"2257:13:68","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":46449,"nodeType":"UserDefinedTypeName","pathNode":{"id":46448,"name":"MockERC20","nameLocations":["2261:9:68"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"2261:9:68"},"referencedDeclaration":25560,"src":"2261:9:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":46454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2257:32:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"nodeType":"VariableDeclarationStatement","src":"2239:50:68"},{"assignments":[46457],"declarations":[{"constant":false,"id":46457,"mutability":"mutable","name":"initialAmount","nameLocation":"2307:13:68","nodeType":"VariableDeclaration","scope":46485,"src":"2299:21:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46456,"name":"uint256","nodeType":"ElementaryTypeName","src":"2299:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46459,"initialValue":{"hexValue":"31","id":46458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2323:7:68","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"2299:31:68"},{"assignments":[46461],"declarations":[{"constant":false,"id":46461,"mutability":"mutable","name":"upscaledAmount","nameLocation":"2348:14:68","nodeType":"VariableDeclaration","scope":46485,"src":"2340:22:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46460,"name":"uint256","nodeType":"ElementaryTypeName","src":"2340:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46471,"initialValue":{"arguments":[{"id":46463,"name":"initialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46457,"src":"2385:13:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":46467,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46447,"src":"2429:5:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":46466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2421:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46465,"name":"address","nodeType":"ElementaryTypeName","src":"2421:7:68","typeDescriptions":{}}},"id":46468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2421:14:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46464,"name":"computeScalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30048,"src":"2400:20:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":46469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2400:36:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46462,"name":"upscale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30064,"src":"2377:7:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":46470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2377:60:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2340:97:68"},{"expression":{"arguments":[{"id":46473,"name":"initialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46457,"src":"2469:13:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":46475,"name":"upscaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46461,"src":"2508:14:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":46479,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46447,"src":"2553:5:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":46478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2545:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46477,"name":"address","nodeType":"ElementaryTypeName","src":"2545:7:68","typeDescriptions":{}}},"id":46480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2545:14:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46476,"name":"computeScalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30048,"src":"2524:20:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":46481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2524:36:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46474,"name":"downscaleUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30096,"src":"2496:11:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":46482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2496:65:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46472,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2447:8:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2447:124:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46484,"nodeType":"ExpressionStatement","src":"2447:124:68"}]},"functionSelector":"c71badb3","implemented":true,"kind":"function","modifiers":[],"name":"test_ScalingLib_downscaleUp_ComputesFor18Decimals","nameLocation":"2170:49:68","parameters":{"id":46443,"nodeType":"ParameterList","parameters":[],"src":"2219:2:68"},"returnParameters":{"id":46444,"nodeType":"ParameterList","parameters":[],"src":"2229:0:68"},"scope":46535,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":46534,"nodeType":"FunctionDefinition","src":"2584:419:68","nodes":[],"body":{"id":46533,"nodeType":"Block","src":"2651:352:68","nodes":[],"statements":[{"assignments":[46491],"declarations":[{"constant":false,"id":46491,"mutability":"mutable","name":"token","nameLocation":"2671:5:68","nodeType":"VariableDeclaration","scope":46533,"src":"2661:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"},"typeName":{"id":46490,"nodeType":"UserDefinedTypeName","pathNode":{"id":46489,"name":"MockERC20","nameLocations":["2661:9:68"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"2661:9:68"},"referencedDeclaration":25560,"src":"2661:9:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"visibility":"internal"}],"id":46499,"initialValue":{"arguments":[{"hexValue":"54657374","id":46495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2693:6:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_85cc825a98ec217d960f113f5f80a95d7fd18e3725d37df428eb14f880bdfc12","typeString":"literal_string \"Test\""},"value":"Test"},{"hexValue":"545354","id":46496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2701:5:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_20a94e575762ae205efd2d939940bb203cefdf1c455cc39ef343e287f43b70f4","typeString":"literal_string \"TST\""},"value":"TST"},{"hexValue":"36","id":46497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2708:1:68","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_85cc825a98ec217d960f113f5f80a95d7fd18e3725d37df428eb14f880bdfc12","typeString":"literal_string \"Test\""},{"typeIdentifier":"t_stringliteral_20a94e575762ae205efd2d939940bb203cefdf1c455cc39ef343e287f43b70f4","typeString":"literal_string \"TST\""},{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"}],"id":46494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"2679:13:68","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":46493,"nodeType":"UserDefinedTypeName","pathNode":{"id":46492,"name":"MockERC20","nameLocations":["2683:9:68"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"2683:9:68"},"referencedDeclaration":25560,"src":"2683:9:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":46498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2679:31:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"nodeType":"VariableDeclarationStatement","src":"2661:49:68"},{"assignments":[46501],"declarations":[{"constant":false,"id":46501,"mutability":"mutable","name":"initialAmount","nameLocation":"2728:13:68","nodeType":"VariableDeclaration","scope":46533,"src":"2720:21:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46500,"name":"uint256","nodeType":"ElementaryTypeName","src":"2720:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46507,"initialValue":{"commonType":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"id":46506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":46502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2744:1:68","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"id":46505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":46503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2748:2:68","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"36","id":46504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2754:1:68","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"2748:7:68","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"}},"src":"2744:11:68","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"}},"nodeType":"VariableDeclarationStatement","src":"2720:35:68"},{"assignments":[46509],"declarations":[{"constant":false,"id":46509,"mutability":"mutable","name":"upscaledAmount","nameLocation":"2773:14:68","nodeType":"VariableDeclaration","scope":46533,"src":"2765:22:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46508,"name":"uint256","nodeType":"ElementaryTypeName","src":"2765:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46519,"initialValue":{"arguments":[{"id":46511,"name":"initialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46501,"src":"2810:13:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":46515,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46491,"src":"2854:5:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":46514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2846:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46513,"name":"address","nodeType":"ElementaryTypeName","src":"2846:7:68","typeDescriptions":{}}},"id":46516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2846:14:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46512,"name":"computeScalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30048,"src":"2825:20:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":46517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2825:36:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46510,"name":"upscale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30064,"src":"2802:7:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":46518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2802:60:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2765:97:68"},{"expression":{"arguments":[{"id":46521,"name":"initialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46501,"src":"2894:13:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":46523,"name":"upscaledAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46509,"src":"2933:14:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":46527,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46491,"src":"2978:5:68","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":46526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2970:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46525,"name":"address","nodeType":"ElementaryTypeName","src":"2970:7:68","typeDescriptions":{}}},"id":46528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2970:14:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46524,"name":"computeScalingFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30048,"src":"2949:20:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":46529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2949:36:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46522,"name":"downscaleUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30096,"src":"2921:11:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":46530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2921:65:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46520,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2872:8:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":46531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2872:124:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46532,"nodeType":"ExpressionStatement","src":"2872:124:68"}]},"functionSelector":"50f1bad8","implemented":true,"kind":"function","modifiers":[],"name":"test_ScalingLib_downscaleUp_ComputesFor6Decimals","nameLocation":"2593:48:68","parameters":{"id":46487,"nodeType":"ParameterList","parameters":[],"src":"2641:2:68"},"returnParameters":{"id":46488,"nodeType":"ParameterList","parameters":[],"src":"2651:0:68"},"scope":46535,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":46225,"name":"Test","nameLocations":["205:4:68"],"nodeType":"IdentifierPath","referencedDeclaration":8195,"src":"205:4:68"},"id":46226,"nodeType":"InheritanceSpecifier","src":"205:4:68"}],"canonicalName":"ScalingLibTest","contractDependencies":[25560],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[46535,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"ScalingLibTest","nameLocation":"187:14:68","scope":46536,"usedErrors":[],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":68} \ No newline at end of file diff --git a/out/Script.sol/Script.json b/out/Script.sol/Script.json deleted file mode 100644 index ff7da007..00000000 --- a/out/Script.sol/Script.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_SCRIPT","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IS_SCRIPT()":"f8ccbf47"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"IS_SCRIPT\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/forge-std/src/Script.sol\":\"Script\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/Script.sol\":{\"keccak256\":\"0xd566affaba92598bcd059dcb3714a968aeedb365ec0d666815e8b38519e0f433\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2fb5f7a97d2a7a06e10c198b60f05e64176eb4ef306b72800c168e7a7ec51693\",\"dweb:/ipfs/Qmcep4r7YEU3BwFJNTTxZsdCVzBYdtcVp8oDtmwLoZGRzP\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"IS_SCRIPT","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/forge-std/src/Script.sol":"Script"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Script.sol":{"keccak256":"0xd566affaba92598bcd059dcb3714a968aeedb365ec0d666815e8b38519e0f433","urls":["bzz-raw://2fb5f7a97d2a7a06e10c198b60f05e64176eb4ef306b72800c168e7a7ec51693","dweb:/ipfs/Qmcep4r7YEU3BwFJNTTxZsdCVzBYdtcVp8oDtmwLoZGRzP"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/forge-std/src/Script.sol","id":1893,"exportedSymbols":{"Script":[1892],"ScriptBase":[1855],"StdChains":[3244],"StdCheatsSafe":[4792],"StdStorage":[6088],"StdUtils":[8153],"VmSafe":[9027],"console":[17416],"console2":[25512],"stdJson":[5914],"stdMath":[6056],"stdStorageSafe":[6981]},"nodeType":"SourceUnit","src":"32:758:2","nodes":[{"id":1857,"nodeType":"PragmaDirective","src":"32:31:2","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":1859,"nodeType":"ImportDirective","src":"134:38:2","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Base.sol","file":"./Base.sol","nameLocation":"-1:-1:-1","scope":1893,"sourceUnit":1856,"symbolAliases":[{"foreign":{"id":1858,"name":"ScriptBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1855,"src":"142:10:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1861,"nodeType":"ImportDirective","src":"173:38:2","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/console.sol","file":"./console.sol","nameLocation":"-1:-1:-1","scope":1893,"sourceUnit":17417,"symbolAliases":[{"foreign":{"id":1860,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17416,"src":"181:7:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1863,"nodeType":"ImportDirective","src":"212:40:2","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/console2.sol","file":"./console2.sol","nameLocation":"-1:-1:-1","scope":1893,"sourceUnit":25513,"symbolAliases":[{"foreign":{"id":1862,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"220:8:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1865,"nodeType":"ImportDirective","src":"253:42:2","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/StdChains.sol","file":"./StdChains.sol","nameLocation":"-1:-1:-1","scope":1893,"sourceUnit":3245,"symbolAliases":[{"foreign":{"id":1864,"name":"StdChains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3244,"src":"261:9:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1867,"nodeType":"ImportDirective","src":"296:46:2","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/StdCheats.sol","file":"./StdCheats.sol","nameLocation":"-1:-1:-1","scope":1893,"sourceUnit":5182,"symbolAliases":[{"foreign":{"id":1866,"name":"StdCheatsSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4792,"src":"304:13:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1869,"nodeType":"ImportDirective","src":"343:38:2","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/StdJson.sol","file":"./StdJson.sol","nameLocation":"-1:-1:-1","scope":1893,"sourceUnit":5915,"symbolAliases":[{"foreign":{"id":1868,"name":"stdJson","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5914,"src":"351:7:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1871,"nodeType":"ImportDirective","src":"382:38:2","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/StdMath.sol","file":"./StdMath.sol","nameLocation":"-1:-1:-1","scope":1893,"sourceUnit":6057,"symbolAliases":[{"foreign":{"id":1870,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6056,"src":"390:7:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1874,"nodeType":"ImportDirective","src":"421:60:2","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":1893,"sourceUnit":7523,"symbolAliases":[{"foreign":{"id":1872,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6088,"src":"429:10:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":1873,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"441:14:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1876,"nodeType":"ImportDirective","src":"482:40:2","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/StdUtils.sol","file":"./StdUtils.sol","nameLocation":"-1:-1:-1","scope":1893,"sourceUnit":8154,"symbolAliases":[{"foreign":{"id":1875,"name":"StdUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8153,"src":"490:8:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1878,"nodeType":"ImportDirective","src":"523:32:2","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":1893,"sourceUnit":9353,"symbolAliases":[{"foreign":{"id":1877,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9027,"src":"531:6:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1880,"nodeType":"ImportDirective","src":"577:38:2","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Base.sol","file":"./Base.sol","nameLocation":"-1:-1:-1","scope":1893,"sourceUnit":1856,"symbolAliases":[{"foreign":{"id":1879,"name":"ScriptBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1855,"src":"585:10:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1892,"nodeType":"ContractDefinition","src":"634:155:2","nodes":[{"id":1891,"nodeType":"VariableDeclaration","src":"758:28:2","nodes":[],"constant":false,"functionSelector":"f8ccbf47","mutability":"mutable","name":"IS_SCRIPT","nameLocation":"770:9:2","scope":1892,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1889,"name":"bool","nodeType":"ElementaryTypeName","src":"758:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":1890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"782:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"public"}],"abstract":true,"baseContracts":[{"baseName":{"id":1881,"name":"StdChains","nameLocations":["662:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":3244,"src":"662:9:2"},"id":1882,"nodeType":"InheritanceSpecifier","src":"662:9:2"},{"baseName":{"id":1883,"name":"StdCheatsSafe","nameLocations":["673:13:2"],"nodeType":"IdentifierPath","referencedDeclaration":4792,"src":"673:13:2"},"id":1884,"nodeType":"InheritanceSpecifier","src":"673:13:2"},{"baseName":{"id":1885,"name":"StdUtils","nameLocations":["688:8:2"],"nodeType":"IdentifierPath","referencedDeclaration":8153,"src":"688:8:2"},"id":1886,"nodeType":"InheritanceSpecifier","src":"688:8:2"},{"baseName":{"id":1887,"name":"ScriptBase","nameLocations":["698:10:2"],"nodeType":"IdentifierPath","referencedDeclaration":1855,"src":"698:10:2"},"id":1888,"nodeType":"InheritanceSpecifier","src":"698:10:2"}],"canonicalName":"Script","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[1892,1855,1840,8153,4792,3244],"name":"Script","nameLocation":"652:6:2","scope":1893,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":2} \ No newline at end of file diff --git a/out/SetUp.sol/DFMMSetUp.json b/out/SetUp.sol/DFMMSetUp.json deleted file mode 100644 index ee999ceb..00000000 --- a/out/SetUp.sol/DFMMSetUp.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"POOL_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TEST_SWAP_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolLiquidityToken","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523461002357600160ff19600054161760005561533d90816100298239f35b600080fdfe60806040818152600491823610156200001757600080fd5b60009260e08435811c9283630a9254e4146200024c57508263620a26071462000227578263ba414fa614620001fc578263e0d7d0e914620001da578263e21485ad146200009657505063fa7626d4146200007057600080fd5b34620000925781600319360112620000925760ff602092541690519015158152f35b5080fd5b90915034620001d6576020366003190112620001d657601354835163068bcd8d60e01b81528335818501526001600160a01b0393909183908390602490829088165afa958615620001cb578096620000fa575b6020868660c08a0151169051908152f35b90919280965083813d8311620001c3575b62000117818362000677565b81010312620001c0575083519485019085821067ffffffffffffffff831117620001ab5750936200019e60c08093602097875262000155816200081a565b8452620001648882016200081a565b88850152620001758782016200081a565b87850152606081015160608501526080810151608085015260a081015160a0850152016200081a565b82820152933880620000e9565b604190634e487b7160e01b6000525260246000fd5b80fd5b503d6200010b565b8551903d90823e3d90fd5b8380fd5b5050503462000092578160031936011262000092576020906018549051908152f35b5050503462000092578160031936011262000092576020906200021e620006b9565b90519015158152f35b50505034620000925781600319360112620000925760209051660aa87bee5380008152f35b84869334620006485784600319360112620006485761106b8084019067ffffffffffffffff908583108284111762000635576200083095818782396060845260066060850152650e8ded6cadcb60d31b6080850152878160209560a087820152600160a0820152600b60fb1b60c082015260128982015203019089f0968715620005ac5760018060a01b0396876bffffffffffffffffffffffff60a01b991689601554161760155586519280840191848310868411176200062257908492918339606081526006606082015265746f6b656e5960d01b608082015260a086820152600160a0820152605960f81b60c082015260128882015203019088f0801562000618578516866016541617601655846015541692833b15620005f25784516340c10f1960e01b808252308383015268056bc75e2d63100000918a816044818360249b888d8401525af18015620005a25762000600575b50908991886016541691823b15620001d65760448492838b5195869485938452308a8501528c8401525af18015620005f657620005da575b50508560155416866016541690865191610597918284019284841087851117620005c85791606093918593620047bc8539825287820152670de0b6b3a76400008982015203019089f08015620005ac5786168760145416176014558451612f218082019082821085831117620005b657859183916200189b83398b815203019089f08015620005ac5786166013548189821617601355898589601554169360448a5184819593829463095ea7b360e01b9889855216178983015260001997888d8401525af18015620005a2579086929162000580575b5060448960165416918c8b60135416938b5196879586948552898501528b8401525af18015620005765762000542575b508560135416908551946105b5918287019487861090861117620005315750509084929162004d538439815203019085f09081156200052857501690601754161760175580f35b513d85823e3d90fd5b634e487b7160e01b8b526041905289fd5b6200056690843d86116200056e575b6200055d818362000677565b8101906200069a565b5088620004e1565b503d62000551565b86513d8b823e3d90fd5b6200059a90833d85116200056e576200055d818362000677565b508b620004b1565b88513d8d823e3d90fd5b85513d8a823e3d90fd5b634e487b7160e01b8b5260418452868bfd5b634e487b7160e01b8d5260418652888dfd5b620005e5906200064c565b620005f2578789620003db565b8780fd5b87513d84823e3d90fd5b6200060f909a91929a6200064c565b98908a620003a3565b84513d89823e3d90fd5b634e487b7160e01b8c526041885260248cfd5b634e487b7160e01b885260418452602488fd5b8480fd5b67ffffffffffffffff81116200066157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176200066157604052565b90816020910312620006b457518015158103620006b45790565b600080fd5b6000805460081c60ff1615620006d3575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620006f557505090565b90915060405160209180838301526519985a5b195960d21b604083015260408252606082019167ffffffffffffffff9281811084821117620008065791828692936040526080840190630667f9d760e41b8252845187855b828110620007ed575050906200077a60248787989488950185608482015203600481018452018262000677565b51925af1503d15620007dd573d908111620007c957604051620007c6939291620007ae601f8201601f191684018362000677565b81528092823d92013e5b80825183010191016200069a565b90565b634e487b7160e01b83526041600452602483fd5b50620007c69150606090620007b8565b808801808301516084909101528a96508991016200074d565b634e487b7160e01b86526041600452602486fd5b51906001600160a01b0382168203620006b45756fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c6343000816003360a03461006957601f6105b538819003918201601f19168301916001600160401b0383118484101761006e5780849260209460405283398101031261006957516001600160a01b038116810361006957608052604051610530908161008582396080518160ef0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600436101561001457600080fd5b600091823560e01c9081622e524b146103f95750806306fdde031461035657806368bd3e381461031d57806373cb2d031461024e5780638a04bdd514610137578063acad29891461011e578063afba13c4146100db5763dc1783551461007957600080fd5b346100d7576020806003193601126100d3579181519283916020835260605191826020850152815b8381106100be575050828201840152601f01601f19168101030190f35b608081015187820187015286945081016100a1565b8280fd5b5080fd5b50346100d757816003193601126100d757517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b82346101345761012d36610493565b5050505080f35b80fd5b5090346101345761014736610493565b849350839250829182918290602090830183900312610134575035600181036101c45750505050505060016101c0670de0b6b3a7640000926802b5e3af16b188000080674563918244f40000925b51958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b0390f35b600981036102055750505050505060016101c0670de0b6b3a76400009268056bc75e2d6310000068068155a43676e0000090678ac7230489e8000092610195565b600814610218575b6101c0939495610195565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d63100000905068068155a43676e0000061020d565b5090346101345761025e36610493565b849350839250829182918290602090830183900312610134575035600181146102e8575b6002146102bb575b6101c093949551958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d6310000090508061028a565b670de0b6b3a7640000955060019450673782dace9d90000093506729a2241af62c00009250671bc16d674ec800009150610282565b50346100d75760c09161032f36610493565b505050508082519281845281602085015283015280606083015280608083015260a0820152f35b50346100d757816003193601126100d757805181810181811067ffffffffffffffff8211176103e5578252600c81526020906b4d6f636b537472617465677960a01b6020820152825193849260208452825192836020860152825b8481106103cf57505050828201840152601f01601f19168101030190f35b81810183015188820188015287955082016103b1565b634e487b7160e01b84526041600452602484fd5b8383346100d757806003193601126100d75767ffffffffffffffff9260243584811161047b573660238201121561047b5780600401359480861161047f57601f8601601f19908116603f011683019081118382101761047f578352848252366024868301011161047b5784849260209660248894018483013701015251908152f35b8380fd5b634e487b7160e01b85526041600452602485fd5b9060606003198301126104f5576004356001600160a01b03811681036104f557916024359160443567ffffffffffffffff928382116104f557806023830112156104f55781600401359384116104f557602484830101116104f5576024019190565b600080fdfea264697066735822122009a636832ec6847884e761e11e93e4c99c16c8767042c516d6f7d4bb27fb9bb064736f6c63430008160033a2646970667358221220f5427336819538a1fd0da50b6f854b98b0809539eb0ae3687daa0a962b611b4e64736f6c63430008160033","sourceMap":"147:518:64:-:0;;;;;;;1594:4:0;147:518:64;;1594:4:0;147:518:64;;;1594:4:0;147:518:64;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600491823610156200001757600080fd5b60009260e08435811c9283630a9254e4146200024c57508263620a26071462000227578263ba414fa614620001fc578263e0d7d0e914620001da578263e21485ad146200009657505063fa7626d4146200007057600080fd5b34620000925781600319360112620000925760ff602092541690519015158152f35b5080fd5b90915034620001d6576020366003190112620001d657601354835163068bcd8d60e01b81528335818501526001600160a01b0393909183908390602490829088165afa958615620001cb578096620000fa575b6020868660c08a0151169051908152f35b90919280965083813d8311620001c3575b62000117818362000677565b81010312620001c0575083519485019085821067ffffffffffffffff831117620001ab5750936200019e60c08093602097875262000155816200081a565b8452620001648882016200081a565b88850152620001758782016200081a565b87850152606081015160608501526080810151608085015260a081015160a0850152016200081a565b82820152933880620000e9565b604190634e487b7160e01b6000525260246000fd5b80fd5b503d6200010b565b8551903d90823e3d90fd5b8380fd5b5050503462000092578160031936011262000092576020906018549051908152f35b5050503462000092578160031936011262000092576020906200021e620006b9565b90519015158152f35b50505034620000925781600319360112620000925760209051660aa87bee5380008152f35b84869334620006485784600319360112620006485761106b8084019067ffffffffffffffff908583108284111762000635576200083095818782396060845260066060850152650e8ded6cadcb60d31b6080850152878160209560a087820152600160a0820152600b60fb1b60c082015260128982015203019089f0968715620005ac5760018060a01b0396876bffffffffffffffffffffffff60a01b991689601554161760155586519280840191848310868411176200062257908492918339606081526006606082015265746f6b656e5960d01b608082015260a086820152600160a0820152605960f81b60c082015260128882015203019088f0801562000618578516866016541617601655846015541692833b15620005f25784516340c10f1960e01b808252308383015268056bc75e2d63100000918a816044818360249b888d8401525af18015620005a25762000600575b50908991886016541691823b15620001d65760448492838b5195869485938452308a8501528c8401525af18015620005f657620005da575b50508560155416866016541690865191610597918284019284841087851117620005c85791606093918593620047bc8539825287820152670de0b6b3a76400008982015203019089f08015620005ac5786168760145416176014558451612f218082019082821085831117620005b657859183916200189b83398b815203019089f08015620005ac5786166013548189821617601355898589601554169360448a5184819593829463095ea7b360e01b9889855216178983015260001997888d8401525af18015620005a2579086929162000580575b5060448960165416918c8b60135416938b5196879586948552898501528b8401525af18015620005765762000542575b508560135416908551946105b5918287019487861090861117620005315750509084929162004d538439815203019085f09081156200052857501690601754161760175580f35b513d85823e3d90fd5b634e487b7160e01b8b526041905289fd5b6200056690843d86116200056e575b6200055d818362000677565b8101906200069a565b5088620004e1565b503d62000551565b86513d8b823e3d90fd5b6200059a90833d85116200056e576200055d818362000677565b508b620004b1565b88513d8d823e3d90fd5b85513d8a823e3d90fd5b634e487b7160e01b8b5260418452868bfd5b634e487b7160e01b8d5260418652888dfd5b620005e5906200064c565b620005f2578789620003db565b8780fd5b87513d84823e3d90fd5b6200060f909a91929a6200064c565b98908a620003a3565b84513d89823e3d90fd5b634e487b7160e01b8c526041885260248cfd5b634e487b7160e01b885260418452602488fd5b8480fd5b67ffffffffffffffff81116200066157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176200066157604052565b90816020910312620006b457518015158103620006b45790565b600080fd5b6000805460081c60ff1615620006d3575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620006f557505090565b90915060405160209180838301526519985a5b195960d21b604083015260408252606082019167ffffffffffffffff9281811084821117620008065791828692936040526080840190630667f9d760e41b8252845187855b828110620007ed575050906200077a60248787989488950185608482015203600481018452018262000677565b51925af1503d15620007dd573d908111620007c957604051620007c6939291620007ae601f8201601f191684018362000677565b81528092823d92013e5b80825183010191016200069a565b90565b634e487b7160e01b83526041600452602483fd5b50620007c69150606090620007b8565b808801808301516084909101528a96508991016200074d565b634e487b7160e01b86526041600452602486fd5b51906001600160a01b0382168203620006b45756fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c6343000816003360a03461006957601f6105b538819003918201601f19168301916001600160401b0383118484101761006e5780849260209460405283398101031261006957516001600160a01b038116810361006957608052604051610530908161008582396080518160ef0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600436101561001457600080fd5b600091823560e01c9081622e524b146103f95750806306fdde031461035657806368bd3e381461031d57806373cb2d031461024e5780638a04bdd514610137578063acad29891461011e578063afba13c4146100db5763dc1783551461007957600080fd5b346100d7576020806003193601126100d3579181519283916020835260605191826020850152815b8381106100be575050828201840152601f01601f19168101030190f35b608081015187820187015286945081016100a1565b8280fd5b5080fd5b50346100d757816003193601126100d757517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b82346101345761012d36610493565b5050505080f35b80fd5b5090346101345761014736610493565b849350839250829182918290602090830183900312610134575035600181036101c45750505050505060016101c0670de0b6b3a7640000926802b5e3af16b188000080674563918244f40000925b51958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b0390f35b600981036102055750505050505060016101c0670de0b6b3a76400009268056bc75e2d6310000068068155a43676e0000090678ac7230489e8000092610195565b600814610218575b6101c0939495610195565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d63100000905068068155a43676e0000061020d565b5090346101345761025e36610493565b849350839250829182918290602090830183900312610134575035600181146102e8575b6002146102bb575b6101c093949551958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d6310000090508061028a565b670de0b6b3a7640000955060019450673782dace9d90000093506729a2241af62c00009250671bc16d674ec800009150610282565b50346100d75760c09161032f36610493565b505050508082519281845281602085015283015280606083015280608083015260a0820152f35b50346100d757816003193601126100d757805181810181811067ffffffffffffffff8211176103e5578252600c81526020906b4d6f636b537472617465677960a01b6020820152825193849260208452825192836020860152825b8481106103cf57505050828201840152601f01601f19168101030190f35b81810183015188820188015287955082016103b1565b634e487b7160e01b84526041600452602484fd5b8383346100d757806003193601126100d75767ffffffffffffffff9260243584811161047b573660238201121561047b5780600401359480861161047f57601f8601601f19908116603f011683019081118382101761047f578352848252366024868301011161047b5784849260209660248894018483013701015251908152f35b8380fd5b634e487b7160e01b85526041600452602485fd5b9060606003198301126104f5576004356001600160a01b03811681036104f557916024359160443567ffffffffffffffff928382116104f557806023830112156104f55781600401359384116104f557602484830101116104f5576024019190565b600080fdfea264697066735822122009a636832ec6847884e761e11e93e4c99c16c8767042c516d6f7d4bb27fb9bb064736f6c63430008160033a2646970667358221220f5427336819538a1fd0da50b6f854b98b0809539eb0ae3687daa0a962b611b4e64736f6c63430008160033","sourceMap":"147:518:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;147:518:64;;;;992:4:59;147:518:64;;;-1:-1:-1;;;992:20:59;;147:518:64;;992:20:59;;;147:518:64;-1:-1:-1;;;;;147:518:64;;;;;;;;;;;;;992:20:59;;;;;;;;;;;147:518:64;;1029:19:59;;;;;147:518:64;;;;;;;;992:20:59;;;;;;;;;;;;;;;;;;;:::i;:::-;;;147:518:64;;;;;;;1671:64:0;;;;;;;;;;;;;;;147:518:64;;1671:64:0;;147:518:64;1671:64:0;;;147:518:64;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;992:20:59;;;;;1671:64:0;147:518:64;;;;;;;;;;;;;;992:20:59;;;;;;147:518:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;208:22;147:518;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;147:518:64;;;;;;;;;;;;;;;;;;447:32:59;;;;;;;;;;;;;;;;;;;;;;147:518:64;;;;;;;;-1:-1:-1;;;147:518:64;;;;;;;;;;;;;;;;;;-1:-1:-1;;;147:518:64;;;;476:2:59;147:518:64;;;;447:32:59;;;;;;;;;;;147:518:64;;;;;;;;;;;;438:41:59;147:518:64;;;438:41:59;147:518:64;;;498:32:59;;;;;;;;;;;;;;;;;;;;147:518:64;;;;;;;;-1:-1:-1;;;147:518:64;;;;;;;;;;;;;;-1:-1:-1;;;147:518:64;;;;476:2:59;147:518:64;;;;498:32:59;;;;;;;;;147:518:64;;;489:41:59;147:518:64;;;489:41:59;147:518:64;;438:41:59;147:518:64;;540:34:59;;;;;;147:518:64;;;;;540:34:59;;;560:4;540:34;;;147:518:64;567:6:59;147:518:64;;;;;;;;;;;;;540:34:59;;;;;;;;147:518:64;;;;;;489:41:59;147:518:64;;584:34:59;;;;;;147:518:64;;;;;;584:34:59;;;;;;;560:4;584:34;;;147:518:64;;;;;584:34:59;;;;;;;;147:518:64;;;;438:41:59;147:518:64;;;489:41:59;147:518:64;;;;;635:50:59;;;;;;;;;;;;;;;;;147:518:64;635:50:59;;;;;;;147:518:64;;;;;;677:7:59;147:518:64;;;;635:50:59;;;;;;;;;147:518:64;;;629:56:59;147:518:64;;;629:56:59;147:518:64;;;702:20:59;;;;;;;;;;;;;;;;;;;;;147:518:64;;;702:20:59;;;;;;;;;147:518:64;;695:27:59;147:518:64;;;;;;695:27:59;147:518:64;;;;438:41:59;147:518:64;;;;;;;;;;;;;;;733:48:59;;;;147:518:64;;733:48:59;;;147:518:64;763:17:59;;147:518:64;;;;;;733:48:59;;;;;;;;;;;;147:518:64;;;;489:41:59;147:518:64;;;;;695:27:59;147:518:64;;;;;791:48:59;;;;;;;;;;147:518:64;;;;;791:48:59;;;;;;;;147:518:64;;;695:27:59;147:518:64;;;;;314:31;;;;;;;;;;;;;;;;;;;;;;;;;147:518;;314:31;;;;;;;;;;147:518;;;303:42;147:518;;;303:42;147:518;;;314:31;147:518;;;;;;;;314:31;-1:-1:-1;;;147:518:64;;;;;;;791:48:59;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;147:518:64;;;;;;;;;733:48:59;;;;;;;;;;;;;:::i;:::-;;;;;;147:518:64;;;;;;;;;702:20:59;147:518:64;;;;;;;;;702:20:59;-1:-1:-1;;;147:518:64;;;;;;;;635:50:59;-1:-1:-1;;;147:518:64;;;;;;;;584:34:59;;;;:::i;:::-;147:518:64;;584:34:59;;;;147:518:64;;;;584:34:59;147:518:64;;;;;;;;;540:34:59;;;;;;;;:::i;:::-;;;;;;498:32;147:518:64;;;;;;;;;498:32:59;-1:-1:-1;;;147:518:64;;;;;;;;447:32:59;-1:-1:-1;;;147:518:64;;;;;;;;;;;;1671:64:0;;;;;;;;:::o;:::-;147:518:64;;;1671:64:0;147:518:64;;;;;1671:64:0;147:518:64;1671:64:0;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;147:518:64;;;1671:64:0;;;;;:::o;:::-;-1:-1:-1;1671:64:0;;1819:584;1873:7;147:518:64;;;;;;;;;;;;;;;1896:14:0:o;1869:528::-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;147:518:64;;;;;2196:43:0;;;;;;147:518:64;1671:64:0;;;147:518:64;1671:64:0;;147:518:64;;2196:43:0;;147:518:64;1671:64:0;;;;;;;;;;;;;;;;;;;147:518:64;1671:64:0;2086:175;;;1671:64;;;;;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;;;;;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:0;;;;;;;;;;147:518:64;;2312:27:0;;147:518:64;;1671:64:0;;;;-1:-1:-1;;1671:64:0;;;147:518:64;1671:64:0;:::i;:::-;;;;;;;;;;;;;;2312:27;;;;;;:::i;:::-;2367:19;:::o;1671:64::-;-1:-1:-1;;;147:518:64;;;2086:175:0;147:518:64;1671:64:0;147:518:64;;1671:64:0;;2312:27;1671:64;;147:518:64;1671:64:0;;;;;;;;;;;;;;;;;;-1:-1:-1;1671:64:0;;;;;;-1:-1:-1;;;147:518:64;;;;;;;;;;;-1:-1:-1;;;;;147:518:64;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","POOL_ID()":"e0d7d0e9","TEST_SWAP_FEE()":"620a2607","failed()":"ba414fa6","getPoolLiquidityToken(uint256)":"e21485ad","setUp()":"0a9254e4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POOL_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_SWAP_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolLiquidityToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/unit/DFMM/SetUp.sol\":\"DFMMSetUp\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]},\"src/test/helpers/MockStrategy.sol\":{\"keccak256\":\"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5\",\"dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw\"]},\"src/test/helpers/SetUp.sol\":{\"keccak256\":\"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30\",\"dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14\"]},\"src/test/unit/DFMM/SetUp.sol\":{\"keccak256\":\"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4\",\"dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"POOL_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_SWAP_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolLiquidityToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/unit/DFMM/SetUp.sol":"DFMMSetUp"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"},"src/test/helpers/MockStrategy.sol":{"keccak256":"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a","urls":["bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5","dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw"],"license":"UNLICENSED"},"src/test/helpers/SetUp.sol":{"keccak256":"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb","urls":["bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30","dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14"],"license":"UNLICENSED"},"src/test/unit/DFMM/SetUp.sol":{"keccak256":"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a","urls":["bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4","dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/unit/DFMM/SetUp.sol","id":45762,"exportedSymbols":{"ArbiterToken":[43381],"DFMM":[29062],"DFMMSetUp":[45761],"DSTest":[1786],"ERC20":[25948],"FixedPointMathLib":[26640],"IDFMM":[29730],"IStrategy":[29839],"LPToken":[29516],"Lex":[44392],"LibString":[26659],"Min":[27736],"MockERC20":[25560],"MockStrategy":[44649],"SafeTransferLib":[26744],"SetUp":[44852],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"Test":[8195],"TestBase":[1843],"Vm":[9352],"WETH":[26027],"abs":[27763],"computeScalingFactor":[30048],"console":[17416],"console2":[25512],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"muli":[27777],"muliWad":[27795],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"39:627:64","nodes":[{"id":45690,"nodeType":"PragmaDirective","src":"39:24:64","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":45691,"nodeType":"ImportDirective","src":"65:36:64","nodes":[],"absolutePath":"src/test/helpers/SetUp.sol","file":"src/test/helpers/SetUp.sol","nameLocation":"-1:-1:-1","scope":45762,"sourceUnit":44853,"symbolAliases":[],"unitAlias":""},{"id":45692,"nodeType":"ImportDirective","src":"102:43:64","nodes":[],"absolutePath":"src/test/helpers/MockStrategy.sol","file":"src/test/helpers/MockStrategy.sol","nameLocation":"-1:-1:-1","scope":45762,"sourceUnit":44650,"symbolAliases":[],"unitAlias":""},{"id":45761,"nodeType":"ContractDefinition","src":"147:518:64","nodes":[{"id":45697,"nodeType":"VariableDeclaration","src":"181:21:64","nodes":[],"constant":false,"mutability":"mutable","name":"strategy","nameLocation":"194:8:64","scope":45761,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockStrategy_$44649","typeString":"contract MockStrategy"},"typeName":{"id":45696,"nodeType":"UserDefinedTypeName","pathNode":{"id":45695,"name":"MockStrategy","nameLocations":["181:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":44649,"src":"181:12:64"},"referencedDeclaration":44649,"src":"181:12:64","typeDescriptions":{"typeIdentifier":"t_contract$_MockStrategy_$44649","typeString":"contract MockStrategy"}},"visibility":"internal"},{"id":45699,"nodeType":"VariableDeclaration","src":"208:22:64","nodes":[],"constant":false,"functionSelector":"e0d7d0e9","mutability":"mutable","name":"POOL_ID","nameLocation":"223:7:64","scope":45761,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45698,"name":"uint256","nodeType":"ElementaryTypeName","src":"208:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":45720,"nodeType":"FunctionDefinition","src":"237:115:64","nodes":[],"body":{"id":45719,"nodeType":"Block","src":"270:82:64","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45703,"name":"SetUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44852,"src":"280:5:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SetUp_$44852_$","typeString":"type(contract SetUp)"}},"id":45705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"286:5:64","memberName":"setUp","nodeType":"MemberAccess","referencedDeclaration":44830,"src":"280:11:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":45706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"280:13:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45707,"nodeType":"ExpressionStatement","src":"280:13:64"},{"expression":{"id":45717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45708,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45697,"src":"303:8:64","typeDescriptions":{"typeIdentifier":"t_contract$_MockStrategy_$44649","typeString":"contract MockStrategy"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":45714,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"339:4:64","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":45713,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"331:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":45712,"name":"address","nodeType":"ElementaryTypeName","src":"331:7:64","typeDescriptions":{}}},"id":45715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"331:13:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"314:16:64","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_MockStrategy_$44649_$","typeString":"function (address) returns (contract MockStrategy)"},"typeName":{"id":45710,"nodeType":"UserDefinedTypeName","pathNode":{"id":45709,"name":"MockStrategy","nameLocations":["318:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":44649,"src":"318:12:64"},"referencedDeclaration":44649,"src":"318:12:64","typeDescriptions":{"typeIdentifier":"t_contract$_MockStrategy_$44649","typeString":"contract MockStrategy"}}},"id":45716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"314:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockStrategy_$44649","typeString":"contract MockStrategy"}},"src":"303:42:64","typeDescriptions":{"typeIdentifier":"t_contract$_MockStrategy_$44649","typeString":"contract MockStrategy"}},"id":45718,"nodeType":"ExpressionStatement","src":"303:42:64"}]},"baseFunctions":[44830],"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"246:5:64","overrides":{"id":45701,"nodeType":"OverrideSpecifier","overrides":[],"src":"261:8:64"},"parameters":{"id":45700,"nodeType":"ParameterList","parameters":[],"src":"251:2:64"},"returnParameters":{"id":45702,"nodeType":"ParameterList","parameters":[],"src":"270:0:64"},"scope":45761,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":45760,"nodeType":"ModifierDefinition","src":"358:305:64","nodes":[],"body":{"id":45759,"nodeType":"Block","src":"374:289:64","nodes":[],"statements":[{"assignments":[45726],"declarations":[{"constant":false,"id":45726,"mutability":"mutable","name":"params","nameLocation":"408:6:64","nodeType":"VariableDeclaration","scope":45759,"src":"384:30:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":45725,"nodeType":"UserDefinedTypeName","pathNode":{"id":45724,"name":"IDFMM.InitParams","nameLocations":["384:5:64","390:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":29543,"src":"384:16:64"},"referencedDeclaration":29543,"src":"384:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"id":45749,"initialValue":{"arguments":[{"arguments":[{"id":45731,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45697,"src":"466:8:64","typeDescriptions":{"typeIdentifier":"t_contract$_MockStrategy_$44649","typeString":"contract MockStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockStrategy_$44649","typeString":"contract MockStrategy"}],"id":45730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"458:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":45729,"name":"address","nodeType":"ElementaryTypeName","src":"458:7:64","typeDescriptions":{}}},"id":45732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"458:17:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":45735,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"505:6:64","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":45734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"497:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":45733,"name":"address","nodeType":"ElementaryTypeName","src":"497:7:64","typeDescriptions":{}}},"id":45736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"497:15:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":45739,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"542:6:64","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":45738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"534:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":45737,"name":"address","nodeType":"ElementaryTypeName","src":"534:7:64","typeDescriptions":{}}},"id":45740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"534:15:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"hexValue":"32","id":45745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"588:1:64","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":45744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"580:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45743,"name":"uint256","nodeType":"ElementaryTypeName","src":"580:7:64","typeDescriptions":{}}},"id":45746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"580:10:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":45741,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"569:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"573:6:64","memberName":"encode","nodeType":"MemberAccess","src":"569:10:64","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":45747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"569:22:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":45727,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"417:5:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":45728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"423:10:64","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":29543,"src":"417:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$29543_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":45748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["448:8:64","489:6:64","526:6:64","563:4:64"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"417:185:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}},"nodeType":"VariableDeclarationStatement","src":"384:218:64"},{"expression":{"id":45756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":45750,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"614:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},null,null,null],"id":45751,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"613:12:64","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$__$__$__$","typeString":"tuple(uint256,,,)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":45754,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45726,"src":"638:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":45752,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"628:4:64","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":45753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"633:4:64","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":28091,"src":"628:9:64","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$29543_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":45755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"628:17:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"src":"613:32:64","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45757,"nodeType":"ExpressionStatement","src":"613:32:64"},{"id":45758,"nodeType":"PlaceholderStatement","src":"655:1:64"}]},"name":"init","nameLocation":"367:4:64","parameters":{"id":45721,"nodeType":"ParameterList","parameters":[],"src":"371:2:64"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":45693,"name":"SetUp","nameLocations":["169:5:64"],"nodeType":"IdentifierPath","referencedDeclaration":44852,"src":"169:5:64"},"id":45694,"nodeType":"InheritanceSpecifier","src":"169:5:64"}],"canonicalName":"DFMMSetUp","contractDependencies":[25560,29062,44392,44649],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[45761,44852,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"DFMMSetUp","nameLocation":"156:9:64","scope":45762,"usedErrors":[],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":64} \ No newline at end of file diff --git a/out/SetUp.sol/G3MSetUp.json b/out/SetUp.sol/G3MSetUp.json deleted file mode 100644 index ea8107e5..00000000 --- a/out/SetUp.sol/G3MSetUp.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"POOL_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TEST_SWAP_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolLiquidityToken","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"BisectionLib_InvalidBounds","inputs":[{"name":"lower","type":"uint256","internalType":"uint256"},{"name":"upper","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BisectionLib_RootOutsideBounds","inputs":[{"name":"lowerResult","type":"int256","internalType":"int256"},{"name":"upperResult","type":"int256","internalType":"int256"}]}],"bytecode":{"object":"0x34620000ae57600160ff1960005416176000556101006040526706f05b59d3b20000806080528060a052660aa87bee538000908160c0523060e05280601a55601b55601c553060018060a01b0319601d541617601d5562000067670de0b6b3a7640000601e55565b62000079670de0b6b3a7640000601f55565b6200009e62000098601e54601f54620000916200010f565b91620002d3565b620001de565b604051618ae8908162000ba68239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b03821117620000e557604052565b620000b3565b601f909101601f19168101906001600160401b03821190821017620000e557604052565b604051906200011e82620000c9565b601a548252601b546020830152601c546040830152601d546001600160a01b03166060830152565b90600182811c9216801562000178575b60208310146200016257565b634e487b7160e01b600052602260045260246000fd5b91607f169162000156565b601f811162000190575050565b60009060206000526020600020906020601f850160051c83019410620001d3575b601f0160051c01915b828110620001c757505050565b818155600101620001ba565b9092508290620001b1565b80519091906001600160401b038111620000e5576020906200020c8162000206845462000146565b62000183565b81601f8211600114620002505781906200024093949560009262000244575b50508160011b916000199060031b1c19161790565b9055565b0151905038806200022b565b6020600052601f198216907fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb9160005b818110620002bb57509583600195969710620002a1575b505050811b019055565b015160001960f88460031b161c1916905538808062000297565b91928560018192868b01518155019401920162000280565b92916200031d60208201620003166200030d6200030588620002ff855198620002ff8951809b62000731565b62000754565b958862000516565b91518562000516565b90620006d9565b936200032c8286858462000496565b859060008082121562000438575b808212620004155750620003b862000405926200041296979886935b6040805160208082018a90528183018d90526060808301949094528a5160808301528a015160a08201529089015160c08201529701516001600160a01b031660e0808901919091528752601f1996620003b261010082620000eb565b620007b2565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b03908101835282620000eb565b90565b9662000422915062000776565b95620004318488878662000496565b906200033a565b9691965b8082136200045d5750620003b8620004129596976200040593869362000356565b966200046a915062000706565b95620004798488878662000496565b906200043c565b634e487b7160e01b600052601160045260246000fd5b926020620004c784620004c0620004b7620003169697620004d19962000731565b85519062000516565b9562000731565b9101519062000516565b670de0b6b3a763ffff198101908113600116620004eb5790565b62000480565b818102929160008212600160ff1b821416620004eb578184051490151715620004eb57565b620006c562000412927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284620006d3936200055160008213620008f0565b711340daa0d5f769dba1915cef59f0815a55066200056f8262000ac5565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d019160016c0504a838426634cdd8738f543560611b0319916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d620004f1565b670de0b6b3a7640000900590565b62000929565b818102918183041490151760011615620000ae576001670de0b6b3a7640000600019830104019015150290565b6103e990818102918183041490151760011615620000ae5760016103e8600019830104019015150290565b670de0b6b3a76400009081810291818304149015178215151615620000ae570490565b818102918183041490151760011615620000ae57670de0b6b3a7640000900490565b6103e790818102918183041490151760011615620000ae576103e8900490565b91908203918211620004eb57565b91908201809211620004eb57565b60009392918491838211620008d057620007cd828262000b2d565b620007d9858362000b2d565b6000620007e78284620004f1565b13620008b15750620007fc8386979662000796565b60019460009186805b62000817575b50505050505050509050565b1562000887575b50859697985080916200083c620008368b88620007a4565b60011c90565b99620008498b8762000b2d565b9083620008578784620004f1565b136200087a57505089925b876200086f888662000796565b920193999862000805565b8b97509094509262000862565b861080620008a5575b156200089d57886200081e565b80806200080b565b50610100821062000890565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b15620008f857565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131562000abf57680755bf798b4a1bf1e581121562000a8b576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b3989179d835ebba824c98fb31b83b2ca45c0000000000000000000000006060916b8000000000000000000000008582851b0501831d94850290036e0587f503bb6ea29d25fcb740196450816c10fe68e7fd37d0007b713f7650810102841d936e05180bb14799ab47a8a8cb2a527d57836e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028a1d0102881d0102861d0102841d0102821d01946d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b62000ad2811515620008f0565b8060018060801b031060071b81811c60018060401b031060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b8080518101039160e08312620000ae576020820151926080604084015191605f190112620000ae5760e06040519362000b6685620000c9565b6080810151855260a0810151602086015260c081015160408601520151936001600160a01b0385168503620000ae57620004129460608501526200049656fe60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e414620000885750508063620a26071462000082578063ba414fa6146200007c578063e0d7d0e91462000076578063e21485ad14620000705763fa7626d4146200006a57600080fd5b62000726565b620005ee565b620005ce565b620005a5565b62000581565b346200055157816003193601126200055157620000a4620009ce565b805161106b8082019067ffffffffffffffff92808310848411176200052d5780620000d762000d699484868439620007cb565b039086f080156200050557601580546001600160a01b0319166001600160a01b03909216919091179055835191818301838110858211176200052d5783926200012292843962000817565b039084f080156200050557601680546001600160a01b0319166001600160a01b039283161790556015546200015f91165b6001600160a01b031690565b803b156200056c5782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af18015620005055762000555575b506016548490620001be906001600160a01b031662000153565b91823b156200055157845190815230600482015268056bc75e2d631000006024820152918290604490829084905af18015620005055762000533575b5060155462000212906001600160a01b031662000153565b60165462000229906001600160a01b031662000153565b908351916105979081840192848410868511176200052d57849362000276936200851c86396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200050557601480546001600160a01b0319166001600160a01b039092169190911790558151612f2180820190828210848311176200052d578291620002cc9162001dd484396000815260200190565b039084f080156200050557601380546001600160a01b0319166001600160a01b03929092169182179055620003019062000153565b8251906112cb80830191838310858411176200052d57839262000337926200725185396001600160a01b03909116815260200190565b039084f080156200050557601780546001600160a01b0319166001600160a01b039290921691821790556200036c9062000153565b82519161255c8084019290918311848410176200052d578392620003a39262004cf585396001600160a01b03909116815260200190565b039083f09081156200050557620003da620004469260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b601554620003f1906001600160a01b031662000153565b60135462000408906001600160a01b031662000153565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200050557620004be9385936200050b575b5060165462000477906001600160a01b031662000153565b601354909190879062000493906001600160a01b031662000153565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200050557620004d2578280f35b81620004f692903d10620004fd575b620004ed818362000793565b81019062000857565b5081808280f35b503d620004e1565b6200080b565b6200052590843d8611620004fd57620004ed818362000793565b50866200045f565b6200074b565b80620005436200054a9262000761565b8062000570565b83620001fa565b5080fd5b8062000543620005659262000761565b84620001a4565b8380fd5b60009103126200057c57565b600080fd5b346200057c5760003660031901126200057c576020604051660aa87bee5380008152f35b346200057c5760003660031901126200057c576020620005c4620008f3565b6040519015158152f35b346200057c5760003660031901126200057c576020601954604051908152f35b346200057c5760203660031901126200057c5760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa908115620005055760009162000672575b60c08201516200066e906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e0116200071d575b816200069060e0938362000793565b810103126200057c576200065460c06200066e92620007108260405192620006b88462000776565b620006c381620007b6565b8452620006d360208201620007b6565b6020850152620006e660408201620007b6565b6040850152606081015160608501526080810151608085015260a081015160a085015201620007b6565b8282015292505062000640565b3d915062000681565b346200057c5760003660031901126200057c57602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200052d57604052565b60e0810190811067ffffffffffffffff8211176200052d57604052565b90601f8019910116810190811067ffffffffffffffff8211176200052d57604052565b51906001600160a01b03821682036200057c57565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b6040513d6000823e3d90fd5b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b908160209103126200057c575180151581036200057c5790565b630667f9d760e41b815281519160005b838110620008985750509060049101016000815290565b806020809284010151600482860101520162000881565b3d15620008ee573d9067ffffffffffffffff82116200052d5760405191620008e2601f8201601f19166020018462000793565b82523d6000602084013e565b606090565b6000805460081c60ff161562000910575460081c60ff1690565b90565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6200093257505090565b81925060405182816200097060208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b0362000985601f199182810185528462000793565b620009ab60405191826200099e60208201968762000871565b0390810183528262000793565b51925af1506200090d620009be620008af565b6020808251830101910162000857565b6040805161106b80820167ffffffffffffffff91838210838311176200052d578362000a0262000d699383858439620007cb565b0360009485f080156200050557601580546001600160a01b0319166001600160a01b03909216919091179055845191818301838110858211176200052d57839262000a4f92843962000817565b039083f080156200050557601680546001600160a01b0319166001600160a01b0392831617905560155462000a85911662000153565b803b1562000d645783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af18015620005055762000d4d575b5060165462000ae2906001600160a01b031662000153565b90813b156200056c57845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af18015620005055762000d36575b5060155462000b38906001600160a01b031662000153565b60165462000b4f906001600160a01b031662000153565b908451916105979081840192848410868511176200052d57849362000b9c936200851c86396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200050557601480546001600160a01b0319166001600160a01b03909216919091179055825190612f21808301918211838310176200052d57829162000bf29162001dd484396000815260200190565b039082f0918215620005055762000c2962000c989360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b60155462000c40906001600160a01b031662000153565b60135490919062000c5a906001600160a01b031662000153565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af1928315620005055762000ce394869462000d14575b5060165462000cc9906001600160a01b031662000153565b60135490929062000493906001600160a01b031662000153565b03925af18015620005055762000cf7575050565b8162000d1192903d10620004fd57620004ed818362000793565b50565b62000d2e90853d8711620004fd57620004ed818362000793565b503862000cb1565b806200054362000d469262000761565b3862000b20565b806200054362000d5d9262000761565b3862000aca565b8280fdfe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461007457601f61255c38819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b0319169190911790556040516124cc90816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630f4166b814610167578063250968d914610162578063306db46b1461015d578063332266f3146101585780633928ff97146101535780633b4d10301461014e5780634fd67c58146101495780635a93b8ce146101445780636237569f1461013f5780637f17409c1461013a57806381b5fac214610135578063902ecaa214610130578063a8c62e761461012b578063b09d04e514610126578063cb1f553214610121578063ce153bf41461011c578063def15f9214610117578063ec29d8e614610112578063ee3e8cfb1461010d578063f2de7a7b146101085763f30d37f21461010357600080fd5b6109b2565b610996565b610962565b61094c565b6108e0565b61082f565b6107ea565b6107a6565b61077d565b610754565b610700565b6106a0565b61063f565b61061a565b6105f1565b6105bf565b61032e565b6102d6565b61029f565b610236565b346101d55760403660031901126101d55767ffffffffffffffff6024358181116101d557366023820112156101d55780600401359182116101d55736602483830101116101d5576101d19160246101c192016004356109e5565b6040519081529081906020820190565b0390f35b600080fd5b60005b8381106101ed5750506000910152565b81810151838201526020016101dd565b90602091610216815180928185528580860191016101da565b601f01601f1916010190565b9060206102339281815201906101fd565b90565b346101d55760403660031901126101d5576101d160405160026020820152600435604082015260243560608201526060815261027181610881565b6040519182916020835260208301906101fd565b60609060031901126101d557600435906024359060443590565b346101d55760206102ce6102b236610285565b906102c56102bf84610c45565b93610d72565b92919091610f1e565b604051908152f35b346101d55760206102ce6102e936610285565b906102f66102bf84610c45565b92919091611149565b801515036101d557565b90926080926102339594151583526020830152604082015281606082015201906101fd565b346101d55760603660031901126101d55760043560243561034e816102ff565b6104c46044359161035d610a11565b6103ad610368610a11565b9461037287610d72565b9491959092602096878401946040978886015285528352868a878b61039683610c45565b9889938851906103a78b5191610c45565b916112e2565b951561053b575061040c936103fe6103f96104409998956103f3866103dc610405976104199c99015187611d20565b926103ea8d518b5190611d4c565b91015190611324565b90611d20565b610a57565b9351610a7a565b8b52610a7a565b80868a015288518a610e65565b9061043761042c878a0193808552610a57565b808452825111610b21565b51905190610b14565b955b60c0865185880192610484845197610476888c015189519a8b96879485016040919493926060820195825260208201520152565b03601f1981018452836108be565b6000546104a79061049b906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610baf565b03915afa948515610536576000956104f6575b50906104eb916101d19596519051906114e4565b905194859485610309565b6101d19550906105216104eb939260c03d60c01161052f575b61051981836108be565b810190610b78565b5050505050955090916104d7565b503d61050f565b610bd3565b91966105b09561059d946105866105a59761057f6103f98c6103f36105b99f61057761056d6105909c83015188611d20565b93518b5190611d4c565b905190611324565b9451610a7a565b9401938452610a7a565b9081898d0152518c610bdf565b808a52610a57565b808952825111610a87565b51865190610b14565b95610442565b346101d55760203660031901126101d55760206102ce6004356105ea6105e482610c45565b91610d72565b50906114e4565b346101d55760206102ce61060436610285565b906106116102bf84610c45565b92919091611509565b346101d55760206102ce61063961063036610285565b91929092610c45565b916116a4565b346101d55760403660031901126101d55761067b6004356101d161068261067361066884610d72565b9190506024356116d1565b949093610c45565b84846119e2565b92604051938493846040919493926060820195825260208201520152565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36106c985610d72565b91506024356116fe565b939094610c45565b83856116a4565b91604051938493846040919493926060820195825260208201520152565b346101d55760203660031901126101d557608061071e600435610c45565b61075260405180926060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565bf35b346101d55760206102ce61076736610285565b906107746102bf84610c45565b92919091611725565b346101d55760003660031901126101d5576000546040516001600160a01b039091168152602090f35b346101d55760203660031901126101d5576101d160405160016020820152600435604082015260408152610271816108a2565b6001600160a01b038116036101d557565b346101d55760203660031901126101d5576101d160043561080a816107d9565b60408051600360208201526001600160a01b03909216828201528152610271816108a2565b346101d55760203660031901126101d5576101d161084e600435610d72565b604080519384526020840192909252908201529081906060820190565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761089d57604052565b61086b565b6060810190811067ffffffffffffffff82111761089d57604052565b90601f8019910116810190811067ffffffffffffffff82111761089d57604052565b346101d55760c03660031901126101d55760803660431901126101d5576101d161094060405161090f81610881565b60443581526064356020820152608435604082015260a435610930816107d9565b60608201526024356004356118a2565b60405191829182610222565b346101d55760206102ce6103a761063036610285565b346101d55760403660031901126101d55761067b6004356101d161068261067361098b84610d72565b9190506024356116fe565b346101d55760206102ce6109ac61063036610285565b916119e2565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36109db85610d72565b91506024356116d1565b9181606091810103126101d5576109fe61023392610c45565b9060408101359060208101359035610e8b565b604051906060820182811067ffffffffffffffff82111761089d5760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610a6557565b610a41565b906103e8918201809211610a6557565b91908201809211610a6557565b15610a8e57565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b90670de0b6b3a7640000918203918211610a6557565b906103e8918203918211610a6557565b6103e719810191908211610a6557565b91908203918211610a6557565b15610b2857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c09103126101d5578151610b8f816102ff565b9160208101519160408201519160608101519160a0608083015192015190565b610233939260609260018060a01b03168252602082015281604082015201906101fd565b6040513d6000823e3d90fd5b9161063961023393610c45565b91908260809103126101d557604051610c0481610881565b6060808294805184526020810151602085015260408101516040850152015191610c2d836107d9565b0152565b906080828203126101d55761023391610bec565b90604051610c5281610881565b600090818152816060602092828482015282604082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610536578092610cb3575b506102339293508082518301019101610c31565b9091503d8082863e610cc581866108be565b8401908285830312610d3b57845167ffffffffffffffff95868211610d3e57019082601f83011215610d3b57815195861161089d5760405192610d11601f8801601f19168601856108be565b868452848784010111610d3b57506102339394610d33918480850191016101da565b908392610c9f565b80fd5b8280fd5b908160209103126101d55751610233816107d9565b908160609103126101d5578051916040602083015192015190565b9060046020610d8e61049b61049b60005460018060a01b031690565b604051632bee84f160e21b815292839182905afa92831561053657610dd993606092600091610e36575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156105365760008093600093610dff575b50929190565b91935050610e25915060603d606011610e2f575b610e1d81836108be565b810190610d57565b9290929138610df9565b503d610e13565b610e58915060203d602011610e5e575b610e5081836108be565b810190610d42565b38610db8565b503d610e46565b916109ac61023393610c45565b81810392916000138015828513169184121617610a6557565b9260206103ea84610eae610ea66103f39697610eb499612087565b855190611324565b95612087565b670de0b6b3a763ffff198101908113600116610a655790565b908152602080820192909252604080820193909352606080820194909452845160808201529084015160a08201529083015160c08201529101516001600160a01b031660e08201526101000190565b565b909291855160208701516040880151610f3690610ade565b91610f418785612087565b610f4b8282611324565b92610f5591611324565b895185898581610f65858d6120ca565b90610f6f916120ca565b90610f79916120ca565b92610f83906120a9565b610f8c90610af4565b90610f9691610a7a565b90610fa0916120ca565b610fa986610ade565b610fb2916120ca565b92610fbc8a610a6a565b90610fc6906110f0565b610fcf91611324565b91610fd9906120a9565b610fe286610ade565b610feb916120ca565b610ff59089610a7a565b92610fff91610b14565b91611009916120ca565b895161101490610ade565b61101d90612068565b61102691611324565b61102f916120ca565b91885161103b90610ade565b61104488610a6a565b9261104f89896120ca565b90611059916120ca565b91611063866120a9565b9061106d90610ade565b611076916120ca565b92611080916120ca565b9161108a91610a7a565b611093916120ca565b9061109d846110f0565b916110a791612087565b6110b09161112d565b6000136110e557610233956110e0936110d29260405196879560208701610ecd565b03601f1981018352826108be565b611a30565b505050505050600090565b600160ff1b8114610a655760000390565b90816103e801918212600116610a6557565b9081670de0b6b3a763ffff190191821215600116610a6557565b91909160008382019384129112908015821691151617610a6557565b94939290928451906020860151604087015161116490610ade565b9261116f8787612087565b6111798282611324565b9261118391611324565b885187898581611193858c6120ca565b9061119d916120ca565b906111a7916120ca565b926111b290886120ca565b6111bc9088610b14565b906111c691610a7a565b906111d0916120ca565b6111d987610ade565b6111e2916120ca565b926111ed8a87610a7a565b906111f7906110f0565b61120091611324565b9161120b90866120ca565b61121487610ade565b61121d916120ca565b6112279088610a7a565b9261123191610b14565b9161123b916120ca565b885161124690610ade565b61124f90612068565b61125891611324565b611261916120ca565b965161126c90610ade565b936112778784610a7a565b96611281916120ca565b9061128b916120ca565b93611295916120ca565b9061129f90610ade565b6112a8916120ca565b926112b2916120ca565b916112bc91610a7a565b6112c5916120ca565b916112cf906110f0565b916112d991612087565b6102339161112d565b610233929160206112f86103f393855190611324565b93015190611324565b818102929160008212600160ff1b821416610a65578184051490151715610a6557565b6114d1610233927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642846114df9361135a60008213611dc8565b711340daa0d5f769dba1915cef59f0815a55066113768261210a565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d611301565b670de0b6b3a7640000900590565b611e00565b611503906114fb6102339493602085015190612087565b925190612087565b90612087565b90929185516040870151670de0b6b3a764000060008282039212818312811691831390151617610a655761153c83611101565b61154583611113565b61154e91611324565b908261155a8589611fa9565b9061156491611324565b61156d81611fc7565b9261157783611113565b6115819085611ff0565b61158b9089610e72565b91829161159788611101565b6115a19088611ff0565b936115ab91611ff0565b6115b487611f8a565b6115bd91611324565b926115c787611113565b6115d1908b611ff0565b91886115dc89611fc7565b906115e69161112d565b6115ef91611ff0565b6115f886611113565b61160191611ff0565b9261160b91611ff0565b926116169089611ff0565b9161162091610e72565b61162991611ff0565b6116329161112d565b9261163c85611101565b61164591611ff0565b9161164f876110f0565b9161165990611113565b61166291611ff0565b61166b9161112d565b61167491611ff0565b61167d91611fa9565b6000136110e5576102339561169f936110d29260405196879560208701610ecd565b611b55565b6116c461023393926116be6116cb93602086015190611324565b90611d4c565b9151611d7c565b90611324565b9291906116e76116e18284611d4c565b85611d20565b938103908111610a6557928103908111610a655790565b92919061170e6116e18284611d4c565b938101809111610a6557928101809111610a655790565b9293949091946040825192015193670de0b6b3a764000060008682039612818712811691871390151617610a6557828794611760868561112d565b61176983611113565b61177291611324565b9561177c91611fa9565b9061178691611324565b936117918584611ff0565b9461179b87611113565b6117a59087611ff0565b6117af9089610e72565b9283926117bc8b8761112d565b6117c69088611ff0565b946117d091611ff0565b6117d987611f8a565b6117e291611324565b936117ec87611113565b6117f6908b611ff0565b928b6118028989611ff0565b9061180c9161112d565b61181591611ff0565b61181e8a611113565b61182791611ff0565b9361183191611ff0565b9361183b91611ff0565b9161184591610e72565b61184e91611ff0565b6118579161112d565b956118619161112d565b61186a91611ff0565b92611874906110f0565b9161187e90611113565b61188791611ff0565b6118909161112d565b61189991611ff0565b61023391611fa9565b929190836118bd6118c2926118bd6020860151865190612087565b6120ca565b906118ce8183866112e2565b936118db82868584610e8b565b85906000808212156119a4575b808212611986575061192d61197a9261023396979886935b6119146040519889928c8a6020860161201f565b0396611928601f19988981018352826108be565b611c2c565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b039081018352826108be565b9661199191506120eb565b9561199e84888786610e8b565b906118e8565b9691965b8082136119c4575061192d61023395969761197a938693611900565b966119cf9150611d9e565b956119dc84888786610e8b565b906119a8565b60206119fb61023394936116be6116cb94865190611324565b920151611d7c565b9190610100838203126101d557825192602081015192610233604083015193608060608501519401610bec565b91906103e892600093600091838211611b3457611a4c8161217c565b611a5685836122d5565b6000611a628284611301565b13611b155750611a73859695610b04565b60019460009186805b611a8d575b50505050505050509050565b15611af0575b5085969798508091611aae611aa88b88610a7a565b60011c90565b99611ab98b876122d5565b9083611ac58784611301565b13611ae457505089925b87611ada8886610b14565b9201939998611a7c565b8b975090945092611acf565b861080611b0a575b15611b035788611a93565b8080611a81565b506101008210611af8565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e892600093600091838211611b3457611b71816122f6565b611b7b8583612441565b6000611b878284611301565b13611b155750611b98859695610b04565b60019460009186805b611bb15750505050505050509050565b15611c0e575b5085969798508091611bcc611aa88b88610a7a565b99611bd78b87612441565b9083611be38784611301565b13611c0257505089925b87611bf88886610b14565b9201939998611ba1565b8b975090945092611bed565b861080611c21575b15611b035788611bb7565b506101008210611c16565b60009392918491838211611d0057611c448282612462565b611c4e8583612462565b6000611c5a8284611301565b13611b155750611c6c83869796610b14565b60019460009186805b611c855750505050505050509050565b15611ce2575b5085969798508091611ca0611aa88b88610a7a565b99611cab8b87612462565b9083611cb78784611301565b13611cd657505089925b87611ccc8886610b14565b9201939998611c75565b8b975090945092611cc1565b861080611cf5575b15611b035788611c8b565b506101008210611cea565b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b8181029181830414901517600116156101d5576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101d557600190600019830104019015150290565b600181151516156101d5576ec097ce7bc90715b34b9f0fffffffff0460010190565b6103e9908181029181830414901517600116156101d55760016103e8600019830104019015150290565b15611dcf57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e19811315611f8457680755bf798b4a1bf1e5811215611f50576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029182051482151516156101d5570590565b6103e881810291600160ff1b81136001179183051416156101d557670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b9091131716156101d557670de0b6b3a7640000900590565b610f1c9360609296959360e083019783526020830152604082015201906060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000490565b670de0b6b3a764000090818102918183041490151782151516156101d5570490565b6103e89080820291820414600116156101d557670de0b6b3a7640000900490565b8181029181830414901517600116156101d557670de0b6b3a7640000900490565b6103e7908181029181830414901517600116156101d5576103e8900490565b612115811515611dc8565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b80518101602001906020019061219191611a03565b9291908351602085015160408601516121a990610ade565b916121b48686612087565b6121be8282611324565b926121c891611324565b8751868885816121d8858b6120ca565b906121e2916120ca565b906121ec916120ca565b926121f6906120a9565b6121ff90610af4565b9061220991610a7a565b90612213916120ca565b61221c86610ade565b612225916120ca565b9261222f89610a6a565b90612239906110f0565b61224291611324565b9161224c906120a9565b61225586610ade565b61225e916120ca565b6122689087610a7a565b9261227291610b14565b9161227c916120ca565b875161228790610ade565b61229090612068565b61229991611324565b6122a2916120ca565b95516122ad90610ade565b926122b786610a6a565b956122c1916120ca565b906122cb916120ca565b92611295906120a9565b906122ec6102339260208082518301019101611a03565b9493929092611149565b6123099060208082518301019101611a03565b6040819593959492945191015192670de0b6b3a764000060008582039512818612811691861390151617610a655781869361234385611101565b61234c83611113565b61235591611324565b9461235f91611fa9565b9061236991611324565b9261237384611fc7565b9361237d86611113565b6123879086611ff0565b6123919088610e72565b92839261239d8a611101565b6123a79087611ff0565b946123b191611ff0565b6123ba86611f8a565b6123c391611324565b936123cd86611113565b6123d7908a611ff0565b928a6123e288611fc7565b906123ec9161112d565b6123f591611ff0565b6123fe89611113565b61240791611ff0565b9361241191611ff0565b9361241b91611ff0565b9161242591610e72565b61242e91611ff0565b6124379161112d565b9461186190611101565b906124586102339260208082518301019101611a03565b9493929092611725565b805181019160e0828403126101d5576102339261249060208401519360806020604083015194019101610bec565b92610e8b56fea2646970667358221220ddef7f48a463f4812492c0cc35c784e857fab14e0a29d203d7aa233c67d9fa2964736f6c6343000816003360a03461007f57601f6112cb38819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f57608052604051611230908161009b82396080518181816103b701528181610612015281816107c601526109240152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b610953565b61090e565b6107ad565b610773565b6105f6565b610331565b6102ae565b610221565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101c3565b838082518301019101610986565b9061010d6100ff600435610a7f565b8680825183010191016109a1565b92610b68565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761015057604052565b61011e565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101a1601f8201601f191660200184610155565b8294818452818301116101be578281602093846000960137010152565b600080fd5b9080601f830112156101be578160206101de93359101610177565b90565b919082519283825260005b84811061020d575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101ec565b346101be5760003660031901126101be57604051604081019080821067ffffffffffffffff8311176101505761027891604052600381526247334d60e81b60208201526040519182916020835260208301906101e1565b0390f35b9060405161028981610134565b6060600382948054845260018101546020850152600281015460408501520154910152565b346101be5760203660031901126101be57600435600052600060205260c060406000206102da8161027c565b90600481015490600560018060a01b03910154169060606040519380518552602081015160208601526040810151604086015201516060840152608083015260a0820152f35b6001600160a01b038116036101be57565b346101be5760603660031901126101be5761034d600435610320565b60243560443567ffffffffffffffff81116101be576103709036906004016101c3565b9061037a81610a7f565b90610390825192602080809583010191016109a1565b6040516333854efd60e21b8152600481018390529092906060816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa948515610596576000908192829761055d575b508084806103ff93518301019101610986565b949195909787878581116000146104c45793610454869461044e866104496104769b9761044461046198604061043b61046d9f6104679f610a08565b91015190610f48565b610f48565b610f74565b50610a7f565b80518101820191016109a1565b91610bb9565b83610a27565b93828685610b68565b93846013191292836104b9575b6102789394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b601486129350610483565b5050919290938089116000146104ff5761046161046d946104546104769761044e856104498f998f61044490604061043b866104679f610a08565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9096506103ff9250610587915060603d60601161058f575b61057f8183610155565b810190610986565b9690926103ec565b503d610575565b6109e6565b9060606003198301126101be576004356105b481610320565b916024359160443567ffffffffffffffff928382116101be57806023830112156101be5781600401359384116101be57602484830101116101be576024019190565b346101be576106043661059b565b9192506001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610761578160c091810103126101be5780359160208201359160408101359460608201359060a08301359261066984610320565b670de0b6b3a764000083101561074f5761070d946107059460806106f1936106f69661069f876000526000602052604060002090565b55013560046106b8866000526000602052604060002090565b01551660056106d1846000526000602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610a7f565b602080825183010191016109a1565b848385610b68565b9283601319129182610744575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b60148512925061071a565b60405163e8a38a6160e01b8152600490fd5b604051636853cba760e01b8152600490fd5b346101be5760606107833661059b565b818094509492940103126101be5780359061070d6107056106f66040602085013594013595610a7f565b346101be576107bb3661059b565b926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610761576108236108176005610809876000526000602052604060002090565b01546001600160a01b031690565b6001600160a01b031690565b9116036108fc5761083683820182610a4a565b61083f81610a5f565b60018103610878575061086261085d61087392600494953691610177565b610caa565b926000526000602052604060002090565b01555b005b61088181610a5f565b600281036108bd5750906108a56108a06108b893610876953691610177565b610c00565b9290916000526000602052604060002090565b610c28565b806108c9600392610a5f565b036108ea576106d16108626108e5600593610876963691610177565b610bd8565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101be5760003660031901126101be576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101be5760203660031901126101be57610278610972600435610a7f565b6040519182916020835260208301906101e1565b908160609103126101be578051916040602083015192015190565b908160809103126101be576060604051916109bb83610134565b80518352602081015160208401526040810151604084015201516109de81610320565b606082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610a1557565b6109f2565b91908201809211610a1557565b81810392916000138015828513169184121617610a1557565b600411156101be57565b908160209103126101be57356101de81610a40565b60041115610a6957565b634e487b7160e01b600052602160045260246000fd5b60408051610a8c81610134565b6000918282526020820193838552818301848152606084019085825282865285602052610ac2610abd85882061027c565b610cdf565b808652670de0b6b3a7640000908103908111610a1557846101de97610b1f95610b1294600594610b5a9c5281835282602052600484842001549052815280602052200160018060a01b0390541690565b6001600160a01b03169052565b5192839160208301919091606060808201938051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b03601f198101835282610155565b926020610b9184610b8b610b83610b9a9697610ba099610fa4565b855190610d88565b95610fa4565b91015190610d88565b90610f48565b670de0b6b3a763ffff198101908113600116610a155790565b6101de92916020610bcf610b9a93855190610d88565b93015190610d88565b6040818051810103126101be5780610bf560206040930151610a40565b015161081781610320565b6060818051810103126101be57610c1a6020820151610a40565b606060408201519101519091565b919042821115610c9857610c3e610abd8461027c565b9081845542600385015542830391838311610a1557610c5c91610a27565b428314610c8257600160ff1b8114600019831416610a1557600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101be5780610cc760206040930151610a40565b015190565b81810292918115918404141715610a1557565b6060810151906020810151808314610d5e57804211600014610d5657915b8203918211610a15576040810190815160008113600014610d3057506101de92610d2a9151925190610ccc565b90610a1a565b90519150600160ff1b8114610a15576101de92610d509160000390610ccc565b90610a08565b504291610cfd565b5090505190565b818102929160008212600160ff1b821416610a15578184051490151715610a1557565b610f356101de927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284610f4393610dbe60008213610fc6565b711340daa0d5f769dba1915cef59f0815a5506610dda82611188565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d610d65565b670de0b6b3a7640000900590565b610ffe565b8181029181830414901517600116156101be576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101be57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101be570490565b15610fcd57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131561118257680755bf798b4a1bf1e581121561114e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b611193811515610fc6565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c600110179056fea26469706673582212209815df372867dd1ba42d4263690c8e70d1f8dc34ff9f897579936267cb43316764736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a2646970667358221220dcc72079355a2b19568ea187fea88de8667d37946c51524051ff3304bdb355f164736f6c63430008160033","sourceMap":"174:1381:73:-:0;;;1594:4:0;174:1381:73;;1594:4:0;174:1381:73;;;1594:4:0;174:1381:73;378:11:59;174:1381:73;378:11:59;330:9:73;378:11:59;174:1381:73;378:11:59;;302:134:73;378:11:59;;;;302:134:73;378:11:59;424:4:73;302:134;378:11:59;;302:134:73;378:11:59;;;;;424:4:73;378:11:59;;;;;;;;;;;;468:7:73;;;378:11:59;;468:7:73;510;468;510;378:11:59;;510:7:73;378:11:59;554:88:73;468:7;378:11:59;510:7:73;378:11:59;;;:::i;:::-;554:88:73;;:::i;:::-;378:11:59;:::i;:::-;174:1381:73;;;;;;;;;;;;;378:11:59;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;;;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;378:11:59;;;;-1:-1:-1;;;;;378:11:59;;;;;;;;;;:::o;:::-;174:1381:73;;378:11:59;;;;:::i;:::-;302:134:73;378:11:59;;;;;;;;;;;174:1381:73;378:11:59;;;;;-1:-1:-1;;;;;378:11:59;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;378:11:59;302:134:73;-1:-1:-1;378:11:59;302:134:73;-1:-1:-1;378:11:59;;302:134:73;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;378:11:59;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;302:134:73;378:11:59;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;378:11:59;;;;;302:134:73;378:11:59;;-1:-1:-1;;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1858:513:35;;;799:19:18;1349:9:35;;;1790:35;1728;631:21:18;378:11:59;631:21:18;378:11:59;;;965:21:18;378:11:59;;965:21:18;;;:::i;:::-;631;:::i;:::-;1728:35:35;;;:::i;:::-;378:11:59;;1790:35:35;;:::i;:::-;799:19:18;;:::i;:::-;2139:69:35;;;;;;;:::i;:::-;8798:29;;-1:-1:-1;8914:21:35;;;-1:-1:-1;;;8954:21:35;;;;;;8910:600;9519:160;2296:72;8910:600;2296:72;8910:600;;;;;;174:1381:73;;;1349:9:35;9538:45;;;174:1381:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;174:1381:73;;;;;;;;9538:45:35;;-1:-1:-1;;;9538:45:35;174:1381:73;;9538:45:35;:::i;:::-;9519:160;:::i;:::-;378:11:59;;174:1381:73;2334:14:35;;;378:11:59;2350:17:35;;;;378:11:59;174:1381:73;;1349:9:35;2296:72;;174:1381:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;174:1381:73;;;;;;;;;;;;2296:72:35;;;;;;;;;:::i;:::-;1858:513;:::o;8947:268::-;8999:27;;;;;:::i;:::-;9060:144;;;;;;;:::i;:::-;8947:268;;;8910:600;9237:267;;;9244:21;;;;;;8910:600;9519:160;2296:72;8910:600;;;2296:72;8910:600;;;;;9237:267;9289:26;;;;;:::i;:::-;9349:144;;;;;;;:::i;:::-;9237:267;;;174:1381:73;378:11:59;;;174:1381:73;;;;;;;;1692:384:42;;2000:9;965:21:18;1692:384:42;1880:50;965:21:18;1961:50:42;1692:384;;799:19:18;1692:384:42;965:21:18;:::i;:::-;378:11:59;;1880:50:42;;:::i;:::-;965:21:18;;:::i;:::-;2000:9:42;;378:11:59;1961:50:42;;:::i;799:19:18:-;174:1381:73;;;;;;;;;;;1692:384:42;:::o;174:1381:73:-;;:::i;:::-;;;;;;;;;-1:-1:-1;;;174:1381:73;;;;;;;;;;;;;;;:::o;1208:273:18:-;1399:12;1391:36;1208:273;7380:72;1398:28;1208:273;4688:27;-1:-1:-1;4696:5:18;;4688:27;:::i;:::-;7125:43;5125:16;;;:::i;:::-;5145:2;174:1381:73;;;5175:3:18;174:1381:73;;378:11:59;5175:3:18;378:11:59;174:1381:73;;;;7232:71:18;174:1381:73;;6411:30:18;174:1381:73;6343:32:18;174:1381:73;6274:33:18;174:1381:73;6205:33:18;174:1381:73;6136:33:18;174:1381:73;6068:32:18;174:1381:73;6001:31:18;174:1381:73;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;174:1381:73;;;;;;;;;;;;;;;;5533:32:18;174:1381:73;5465:32:18;174:1381:73;5398:31:18;174:1381:73;;;;;;;;;;;;;;;;;;;;;;;;6455:304:18;174:1381:73;;;;;1399:12:18;:::i;:::-;491:4;174:1381:73;;;;1398:28:18;1391:36;:::i;8282:752::-;8417:611;;;;;;;;;;;;;;;;;491:4;378:11:59;;8417:611:18;;;;;;;;8282:752;:::o;:::-;9304:4:35;8417:611:18;;;;;;;;;;;;;;;;;;9310:4:35;378:11:59;;8417:611:18;;;;;;;;8282:752;:::o;7741:535::-;491:4;7878:392;;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;7878:392;;;;;;;;;;;;;;;;491:4;7878:392;;7741:535;:::o;:::-;9016:3:35;7878:392:18;;;;;;;;;;;;;;;;;9021:4:35;7878:392:18;;7741:535;:::o;174:1381:73:-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;1009:1952:33:-;378:11:59;;1009:1952:33;;378:11:59;;1239:13:33;;;1235:66;;1632:15;;;;:::i;:::-;1674;;;;:::i;:::-;378:11:59;1699:25:33;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;;:::i;:::-;9631:1:35;;378:11:59;;9631:1:35;;;;;1978:981:33;1009:1952;;;;;;;;;;:::o;1978:981::-;;;;;2909:48;;;;;;;2123:13;2122:19;2123:13;;;;:::i;:::-;174:1381:73;;;;2122:19:33;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;378:11:59;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;174:1381:73;;1978:981:33;;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;2909:18;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;;;;;;2931:26;9643:3:35;2931:26:33;;2909:48;;1695:115;174:1381:73;;-1:-1:-1;;;1747:56:33;;;;;174:1381:73;;;;;;;;;;1747:56:33;1235:66;174:1381:73;;-1:-1:-1;;;1261:40:33;;;;;174:1381:73;;;;;;;;;;;1747:56:33;174:1381:73;;;;:::o;:::-;;;-1:-1:-1;;;174:1381:73;;;;;;;;;;;;-1:-1:-1;;;174:1381:73;;;;;;;1487:3103:18;-1:-1:-1;;1713:26:18;;;1709:40;;1948:21;1943:26;;;1939:54;;2266:5;378:11:59;174:1381:73;378:11:59;174:1381:73;4502:49:18;2559:29;174:1381:73;3136:40:18;174:1381:73;378:11:59;2591:5:18;378:11:59;;;;174:1381:73;;;;;;;;;3074:35:18;174:1381:73;2874:31:18;174:1381:73;;;;;;3649:35:18;174:1381:73;;;;3508:34:18;174:1381:73;;;;3371:32:18;174:1381:73;;;;;;;;;;;;;;;;;;;;;;;;;;2941:32:18;174:1381:73;;;;;;;;;;;;;;;3699:327:18;174:1381:73;;4564:3:18;174:1381:73;378:11:59;1487:3103:18;:::o;1939:54::-;174:1381:73;;-1:-1:-1;;;1971:22:18;;174:1381:73;1971:22:18;;;174:1381:73;;;;;;-1:-1:-1;;;174:1381:73;;;;;;1747:56:33;1709:40:18;1741:8;1748:1;1741:8;:::o;15328:575::-;15397:27;15405:5;;;15397:27;:::i;:::-;15435:462;378:11:59;15435:462:18;;;;;;;;;;378:11:59;;;;;15435:462:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:575;:::o;174:1381:73:-;378:11:59;;;3862:59:35;;174:1381:73;;;;;;;3862:59:35;;;174:1381:73;;;;;;;;;;;;;;;;;378:11:59;;;;:::i;:::-;174:1381:73;;;;;;;;;;3862:59:35;174:1381:73;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;174:1381:73;;;;3934:64:35;174:1381:73;;;;;3934:64:35;:::i","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e414620000885750508063620a26071462000082578063ba414fa6146200007c578063e0d7d0e91462000076578063e21485ad14620000705763fa7626d4146200006a57600080fd5b62000726565b620005ee565b620005ce565b620005a5565b62000581565b346200055157816003193601126200055157620000a4620009ce565b805161106b8082019067ffffffffffffffff92808310848411176200052d5780620000d762000d699484868439620007cb565b039086f080156200050557601580546001600160a01b0319166001600160a01b03909216919091179055835191818301838110858211176200052d5783926200012292843962000817565b039084f080156200050557601680546001600160a01b0319166001600160a01b039283161790556015546200015f91165b6001600160a01b031690565b803b156200056c5782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af18015620005055762000555575b506016548490620001be906001600160a01b031662000153565b91823b156200055157845190815230600482015268056bc75e2d631000006024820152918290604490829084905af18015620005055762000533575b5060155462000212906001600160a01b031662000153565b60165462000229906001600160a01b031662000153565b908351916105979081840192848410868511176200052d57849362000276936200851c86396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200050557601480546001600160a01b0319166001600160a01b039092169190911790558151612f2180820190828210848311176200052d578291620002cc9162001dd484396000815260200190565b039084f080156200050557601380546001600160a01b0319166001600160a01b03929092169182179055620003019062000153565b8251906112cb80830191838310858411176200052d57839262000337926200725185396001600160a01b03909116815260200190565b039084f080156200050557601780546001600160a01b0319166001600160a01b039290921691821790556200036c9062000153565b82519161255c8084019290918311848410176200052d578392620003a39262004cf585396001600160a01b03909116815260200190565b039083f09081156200050557620003da620004469260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b601554620003f1906001600160a01b031662000153565b60135462000408906001600160a01b031662000153565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200050557620004be9385936200050b575b5060165462000477906001600160a01b031662000153565b601354909190879062000493906001600160a01b031662000153565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200050557620004d2578280f35b81620004f692903d10620004fd575b620004ed818362000793565b81019062000857565b5081808280f35b503d620004e1565b6200080b565b6200052590843d8611620004fd57620004ed818362000793565b50866200045f565b6200074b565b80620005436200054a9262000761565b8062000570565b83620001fa565b5080fd5b8062000543620005659262000761565b84620001a4565b8380fd5b60009103126200057c57565b600080fd5b346200057c5760003660031901126200057c576020604051660aa87bee5380008152f35b346200057c5760003660031901126200057c576020620005c4620008f3565b6040519015158152f35b346200057c5760003660031901126200057c576020601954604051908152f35b346200057c5760203660031901126200057c5760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa908115620005055760009162000672575b60c08201516200066e906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e0116200071d575b816200069060e0938362000793565b810103126200057c576200065460c06200066e92620007108260405192620006b88462000776565b620006c381620007b6565b8452620006d360208201620007b6565b6020850152620006e660408201620007b6565b6040850152606081015160608501526080810151608085015260a081015160a085015201620007b6565b8282015292505062000640565b3d915062000681565b346200057c5760003660031901126200057c57602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200052d57604052565b60e0810190811067ffffffffffffffff8211176200052d57604052565b90601f8019910116810190811067ffffffffffffffff8211176200052d57604052565b51906001600160a01b03821682036200057c57565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b6040513d6000823e3d90fd5b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b908160209103126200057c575180151581036200057c5790565b630667f9d760e41b815281519160005b838110620008985750509060049101016000815290565b806020809284010151600482860101520162000881565b3d15620008ee573d9067ffffffffffffffff82116200052d5760405191620008e2601f8201601f19166020018462000793565b82523d6000602084013e565b606090565b6000805460081c60ff161562000910575460081c60ff1690565b90565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6200093257505090565b81925060405182816200097060208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b0362000985601f199182810185528462000793565b620009ab60405191826200099e60208201968762000871565b0390810183528262000793565b51925af1506200090d620009be620008af565b6020808251830101910162000857565b6040805161106b80820167ffffffffffffffff91838210838311176200052d578362000a0262000d699383858439620007cb565b0360009485f080156200050557601580546001600160a01b0319166001600160a01b03909216919091179055845191818301838110858211176200052d57839262000a4f92843962000817565b039083f080156200050557601680546001600160a01b0319166001600160a01b0392831617905560155462000a85911662000153565b803b1562000d645783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af18015620005055762000d4d575b5060165462000ae2906001600160a01b031662000153565b90813b156200056c57845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af18015620005055762000d36575b5060155462000b38906001600160a01b031662000153565b60165462000b4f906001600160a01b031662000153565b908451916105979081840192848410868511176200052d57849362000b9c936200851c86396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200050557601480546001600160a01b0319166001600160a01b03909216919091179055825190612f21808301918211838310176200052d57829162000bf29162001dd484396000815260200190565b039082f0918215620005055762000c2962000c989360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b60155462000c40906001600160a01b031662000153565b60135490919062000c5a906001600160a01b031662000153565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af1928315620005055762000ce394869462000d14575b5060165462000cc9906001600160a01b031662000153565b60135490929062000493906001600160a01b031662000153565b03925af18015620005055762000cf7575050565b8162000d1192903d10620004fd57620004ed818362000793565b50565b62000d2e90853d8711620004fd57620004ed818362000793565b503862000cb1565b806200054362000d469262000761565b3862000b20565b806200054362000d5d9262000761565b3862000aca565b8280fdfe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461007457601f61255c38819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b0319169190911790556040516124cc90816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630f4166b814610167578063250968d914610162578063306db46b1461015d578063332266f3146101585780633928ff97146101535780633b4d10301461014e5780634fd67c58146101495780635a93b8ce146101445780636237569f1461013f5780637f17409c1461013a57806381b5fac214610135578063902ecaa214610130578063a8c62e761461012b578063b09d04e514610126578063cb1f553214610121578063ce153bf41461011c578063def15f9214610117578063ec29d8e614610112578063ee3e8cfb1461010d578063f2de7a7b146101085763f30d37f21461010357600080fd5b6109b2565b610996565b610962565b61094c565b6108e0565b61082f565b6107ea565b6107a6565b61077d565b610754565b610700565b6106a0565b61063f565b61061a565b6105f1565b6105bf565b61032e565b6102d6565b61029f565b610236565b346101d55760403660031901126101d55767ffffffffffffffff6024358181116101d557366023820112156101d55780600401359182116101d55736602483830101116101d5576101d19160246101c192016004356109e5565b6040519081529081906020820190565b0390f35b600080fd5b60005b8381106101ed5750506000910152565b81810151838201526020016101dd565b90602091610216815180928185528580860191016101da565b601f01601f1916010190565b9060206102339281815201906101fd565b90565b346101d55760403660031901126101d5576101d160405160026020820152600435604082015260243560608201526060815261027181610881565b6040519182916020835260208301906101fd565b60609060031901126101d557600435906024359060443590565b346101d55760206102ce6102b236610285565b906102c56102bf84610c45565b93610d72565b92919091610f1e565b604051908152f35b346101d55760206102ce6102e936610285565b906102f66102bf84610c45565b92919091611149565b801515036101d557565b90926080926102339594151583526020830152604082015281606082015201906101fd565b346101d55760603660031901126101d55760043560243561034e816102ff565b6104c46044359161035d610a11565b6103ad610368610a11565b9461037287610d72565b9491959092602096878401946040978886015285528352868a878b61039683610c45565b9889938851906103a78b5191610c45565b916112e2565b951561053b575061040c936103fe6103f96104409998956103f3866103dc610405976104199c99015187611d20565b926103ea8d518b5190611d4c565b91015190611324565b90611d20565b610a57565b9351610a7a565b8b52610a7a565b80868a015288518a610e65565b9061043761042c878a0193808552610a57565b808452825111610b21565b51905190610b14565b955b60c0865185880192610484845197610476888c015189519a8b96879485016040919493926060820195825260208201520152565b03601f1981018452836108be565b6000546104a79061049b906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610baf565b03915afa948515610536576000956104f6575b50906104eb916101d19596519051906114e4565b905194859485610309565b6101d19550906105216104eb939260c03d60c01161052f575b61051981836108be565b810190610b78565b5050505050955090916104d7565b503d61050f565b610bd3565b91966105b09561059d946105866105a59761057f6103f98c6103f36105b99f61057761056d6105909c83015188611d20565b93518b5190611d4c565b905190611324565b9451610a7a565b9401938452610a7a565b9081898d0152518c610bdf565b808a52610a57565b808952825111610a87565b51865190610b14565b95610442565b346101d55760203660031901126101d55760206102ce6004356105ea6105e482610c45565b91610d72565b50906114e4565b346101d55760206102ce61060436610285565b906106116102bf84610c45565b92919091611509565b346101d55760206102ce61063961063036610285565b91929092610c45565b916116a4565b346101d55760403660031901126101d55761067b6004356101d161068261067361066884610d72565b9190506024356116d1565b949093610c45565b84846119e2565b92604051938493846040919493926060820195825260208201520152565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36106c985610d72565b91506024356116fe565b939094610c45565b83856116a4565b91604051938493846040919493926060820195825260208201520152565b346101d55760203660031901126101d557608061071e600435610c45565b61075260405180926060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565bf35b346101d55760206102ce61076736610285565b906107746102bf84610c45565b92919091611725565b346101d55760003660031901126101d5576000546040516001600160a01b039091168152602090f35b346101d55760203660031901126101d5576101d160405160016020820152600435604082015260408152610271816108a2565b6001600160a01b038116036101d557565b346101d55760203660031901126101d5576101d160043561080a816107d9565b60408051600360208201526001600160a01b03909216828201528152610271816108a2565b346101d55760203660031901126101d5576101d161084e600435610d72565b604080519384526020840192909252908201529081906060820190565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761089d57604052565b61086b565b6060810190811067ffffffffffffffff82111761089d57604052565b90601f8019910116810190811067ffffffffffffffff82111761089d57604052565b346101d55760c03660031901126101d55760803660431901126101d5576101d161094060405161090f81610881565b60443581526064356020820152608435604082015260a435610930816107d9565b60608201526024356004356118a2565b60405191829182610222565b346101d55760206102ce6103a761063036610285565b346101d55760403660031901126101d55761067b6004356101d161068261067361098b84610d72565b9190506024356116fe565b346101d55760206102ce6109ac61063036610285565b916119e2565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36109db85610d72565b91506024356116d1565b9181606091810103126101d5576109fe61023392610c45565b9060408101359060208101359035610e8b565b604051906060820182811067ffffffffffffffff82111761089d5760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610a6557565b610a41565b906103e8918201809211610a6557565b91908201809211610a6557565b15610a8e57565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b90670de0b6b3a7640000918203918211610a6557565b906103e8918203918211610a6557565b6103e719810191908211610a6557565b91908203918211610a6557565b15610b2857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c09103126101d5578151610b8f816102ff565b9160208101519160408201519160608101519160a0608083015192015190565b610233939260609260018060a01b03168252602082015281604082015201906101fd565b6040513d6000823e3d90fd5b9161063961023393610c45565b91908260809103126101d557604051610c0481610881565b6060808294805184526020810151602085015260408101516040850152015191610c2d836107d9565b0152565b906080828203126101d55761023391610bec565b90604051610c5281610881565b600090818152816060602092828482015282604082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610536578092610cb3575b506102339293508082518301019101610c31565b9091503d8082863e610cc581866108be565b8401908285830312610d3b57845167ffffffffffffffff95868211610d3e57019082601f83011215610d3b57815195861161089d5760405192610d11601f8801601f19168601856108be565b868452848784010111610d3b57506102339394610d33918480850191016101da565b908392610c9f565b80fd5b8280fd5b908160209103126101d55751610233816107d9565b908160609103126101d5578051916040602083015192015190565b9060046020610d8e61049b61049b60005460018060a01b031690565b604051632bee84f160e21b815292839182905afa92831561053657610dd993606092600091610e36575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156105365760008093600093610dff575b50929190565b91935050610e25915060603d606011610e2f575b610e1d81836108be565b810190610d57565b9290929138610df9565b503d610e13565b610e58915060203d602011610e5e575b610e5081836108be565b810190610d42565b38610db8565b503d610e46565b916109ac61023393610c45565b81810392916000138015828513169184121617610a6557565b9260206103ea84610eae610ea66103f39697610eb499612087565b855190611324565b95612087565b670de0b6b3a763ffff198101908113600116610a655790565b908152602080820192909252604080820193909352606080820194909452845160808201529084015160a08201529083015160c08201529101516001600160a01b031660e08201526101000190565b565b909291855160208701516040880151610f3690610ade565b91610f418785612087565b610f4b8282611324565b92610f5591611324565b895185898581610f65858d6120ca565b90610f6f916120ca565b90610f79916120ca565b92610f83906120a9565b610f8c90610af4565b90610f9691610a7a565b90610fa0916120ca565b610fa986610ade565b610fb2916120ca565b92610fbc8a610a6a565b90610fc6906110f0565b610fcf91611324565b91610fd9906120a9565b610fe286610ade565b610feb916120ca565b610ff59089610a7a565b92610fff91610b14565b91611009916120ca565b895161101490610ade565b61101d90612068565b61102691611324565b61102f916120ca565b91885161103b90610ade565b61104488610a6a565b9261104f89896120ca565b90611059916120ca565b91611063866120a9565b9061106d90610ade565b611076916120ca565b92611080916120ca565b9161108a91610a7a565b611093916120ca565b9061109d846110f0565b916110a791612087565b6110b09161112d565b6000136110e557610233956110e0936110d29260405196879560208701610ecd565b03601f1981018352826108be565b611a30565b505050505050600090565b600160ff1b8114610a655760000390565b90816103e801918212600116610a6557565b9081670de0b6b3a763ffff190191821215600116610a6557565b91909160008382019384129112908015821691151617610a6557565b94939290928451906020860151604087015161116490610ade565b9261116f8787612087565b6111798282611324565b9261118391611324565b885187898581611193858c6120ca565b9061119d916120ca565b906111a7916120ca565b926111b290886120ca565b6111bc9088610b14565b906111c691610a7a565b906111d0916120ca565b6111d987610ade565b6111e2916120ca565b926111ed8a87610a7a565b906111f7906110f0565b61120091611324565b9161120b90866120ca565b61121487610ade565b61121d916120ca565b6112279088610a7a565b9261123191610b14565b9161123b916120ca565b885161124690610ade565b61124f90612068565b61125891611324565b611261916120ca565b965161126c90610ade565b936112778784610a7a565b96611281916120ca565b9061128b916120ca565b93611295916120ca565b9061129f90610ade565b6112a8916120ca565b926112b2916120ca565b916112bc91610a7a565b6112c5916120ca565b916112cf906110f0565b916112d991612087565b6102339161112d565b610233929160206112f86103f393855190611324565b93015190611324565b818102929160008212600160ff1b821416610a65578184051490151715610a6557565b6114d1610233927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642846114df9361135a60008213611dc8565b711340daa0d5f769dba1915cef59f0815a55066113768261210a565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d611301565b670de0b6b3a7640000900590565b611e00565b611503906114fb6102339493602085015190612087565b925190612087565b90612087565b90929185516040870151670de0b6b3a764000060008282039212818312811691831390151617610a655761153c83611101565b61154583611113565b61154e91611324565b908261155a8589611fa9565b9061156491611324565b61156d81611fc7565b9261157783611113565b6115819085611ff0565b61158b9089610e72565b91829161159788611101565b6115a19088611ff0565b936115ab91611ff0565b6115b487611f8a565b6115bd91611324565b926115c787611113565b6115d1908b611ff0565b91886115dc89611fc7565b906115e69161112d565b6115ef91611ff0565b6115f886611113565b61160191611ff0565b9261160b91611ff0565b926116169089611ff0565b9161162091610e72565b61162991611ff0565b6116329161112d565b9261163c85611101565b61164591611ff0565b9161164f876110f0565b9161165990611113565b61166291611ff0565b61166b9161112d565b61167491611ff0565b61167d91611fa9565b6000136110e5576102339561169f936110d29260405196879560208701610ecd565b611b55565b6116c461023393926116be6116cb93602086015190611324565b90611d4c565b9151611d7c565b90611324565b9291906116e76116e18284611d4c565b85611d20565b938103908111610a6557928103908111610a655790565b92919061170e6116e18284611d4c565b938101809111610a6557928101809111610a655790565b9293949091946040825192015193670de0b6b3a764000060008682039612818712811691871390151617610a6557828794611760868561112d565b61176983611113565b61177291611324565b9561177c91611fa9565b9061178691611324565b936117918584611ff0565b9461179b87611113565b6117a59087611ff0565b6117af9089610e72565b9283926117bc8b8761112d565b6117c69088611ff0565b946117d091611ff0565b6117d987611f8a565b6117e291611324565b936117ec87611113565b6117f6908b611ff0565b928b6118028989611ff0565b9061180c9161112d565b61181591611ff0565b61181e8a611113565b61182791611ff0565b9361183191611ff0565b9361183b91611ff0565b9161184591610e72565b61184e91611ff0565b6118579161112d565b956118619161112d565b61186a91611ff0565b92611874906110f0565b9161187e90611113565b61188791611ff0565b6118909161112d565b61189991611ff0565b61023391611fa9565b929190836118bd6118c2926118bd6020860151865190612087565b6120ca565b906118ce8183866112e2565b936118db82868584610e8b565b85906000808212156119a4575b808212611986575061192d61197a9261023396979886935b6119146040519889928c8a6020860161201f565b0396611928601f19988981018352826108be565b611c2c565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b039081018352826108be565b9661199191506120eb565b9561199e84888786610e8b565b906118e8565b9691965b8082136119c4575061192d61023395969761197a938693611900565b966119cf9150611d9e565b956119dc84888786610e8b565b906119a8565b60206119fb61023394936116be6116cb94865190611324565b920151611d7c565b9190610100838203126101d557825192602081015192610233604083015193608060608501519401610bec565b91906103e892600093600091838211611b3457611a4c8161217c565b611a5685836122d5565b6000611a628284611301565b13611b155750611a73859695610b04565b60019460009186805b611a8d575b50505050505050509050565b15611af0575b5085969798508091611aae611aa88b88610a7a565b60011c90565b99611ab98b876122d5565b9083611ac58784611301565b13611ae457505089925b87611ada8886610b14565b9201939998611a7c565b8b975090945092611acf565b861080611b0a575b15611b035788611a93565b8080611a81565b506101008210611af8565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e892600093600091838211611b3457611b71816122f6565b611b7b8583612441565b6000611b878284611301565b13611b155750611b98859695610b04565b60019460009186805b611bb15750505050505050509050565b15611c0e575b5085969798508091611bcc611aa88b88610a7a565b99611bd78b87612441565b9083611be38784611301565b13611c0257505089925b87611bf88886610b14565b9201939998611ba1565b8b975090945092611bed565b861080611c21575b15611b035788611bb7565b506101008210611c16565b60009392918491838211611d0057611c448282612462565b611c4e8583612462565b6000611c5a8284611301565b13611b155750611c6c83869796610b14565b60019460009186805b611c855750505050505050509050565b15611ce2575b5085969798508091611ca0611aa88b88610a7a565b99611cab8b87612462565b9083611cb78784611301565b13611cd657505089925b87611ccc8886610b14565b9201939998611c75565b8b975090945092611cc1565b861080611cf5575b15611b035788611c8b565b506101008210611cea565b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b8181029181830414901517600116156101d5576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101d557600190600019830104019015150290565b600181151516156101d5576ec097ce7bc90715b34b9f0fffffffff0460010190565b6103e9908181029181830414901517600116156101d55760016103e8600019830104019015150290565b15611dcf57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e19811315611f8457680755bf798b4a1bf1e5811215611f50576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029182051482151516156101d5570590565b6103e881810291600160ff1b81136001179183051416156101d557670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b9091131716156101d557670de0b6b3a7640000900590565b610f1c9360609296959360e083019783526020830152604082015201906060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000490565b670de0b6b3a764000090818102918183041490151782151516156101d5570490565b6103e89080820291820414600116156101d557670de0b6b3a7640000900490565b8181029181830414901517600116156101d557670de0b6b3a7640000900490565b6103e7908181029181830414901517600116156101d5576103e8900490565b612115811515611dc8565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b80518101602001906020019061219191611a03565b9291908351602085015160408601516121a990610ade565b916121b48686612087565b6121be8282611324565b926121c891611324565b8751868885816121d8858b6120ca565b906121e2916120ca565b906121ec916120ca565b926121f6906120a9565b6121ff90610af4565b9061220991610a7a565b90612213916120ca565b61221c86610ade565b612225916120ca565b9261222f89610a6a565b90612239906110f0565b61224291611324565b9161224c906120a9565b61225586610ade565b61225e916120ca565b6122689087610a7a565b9261227291610b14565b9161227c916120ca565b875161228790610ade565b61229090612068565b61229991611324565b6122a2916120ca565b95516122ad90610ade565b926122b786610a6a565b956122c1916120ca565b906122cb916120ca565b92611295906120a9565b906122ec6102339260208082518301019101611a03565b9493929092611149565b6123099060208082518301019101611a03565b6040819593959492945191015192670de0b6b3a764000060008582039512818612811691861390151617610a655781869361234385611101565b61234c83611113565b61235591611324565b9461235f91611fa9565b9061236991611324565b9261237384611fc7565b9361237d86611113565b6123879086611ff0565b6123919088610e72565b92839261239d8a611101565b6123a79087611ff0565b946123b191611ff0565b6123ba86611f8a565b6123c391611324565b936123cd86611113565b6123d7908a611ff0565b928a6123e288611fc7565b906123ec9161112d565b6123f591611ff0565b6123fe89611113565b61240791611ff0565b9361241191611ff0565b9361241b91611ff0565b9161242591610e72565b61242e91611ff0565b6124379161112d565b9461186190611101565b906124586102339260208082518301019101611a03565b9493929092611725565b805181019160e0828403126101d5576102339261249060208401519360806020604083015194019101610bec565b92610e8b56fea2646970667358221220ddef7f48a463f4812492c0cc35c784e857fab14e0a29d203d7aa233c67d9fa2964736f6c6343000816003360a03461007f57601f6112cb38819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f57608052604051611230908161009b82396080518181816103b701528181610612015281816107c601526109240152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b610953565b61090e565b6107ad565b610773565b6105f6565b610331565b6102ae565b610221565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101c3565b838082518301019101610986565b9061010d6100ff600435610a7f565b8680825183010191016109a1565b92610b68565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761015057604052565b61011e565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101a1601f8201601f191660200184610155565b8294818452818301116101be578281602093846000960137010152565b600080fd5b9080601f830112156101be578160206101de93359101610177565b90565b919082519283825260005b84811061020d575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101ec565b346101be5760003660031901126101be57604051604081019080821067ffffffffffffffff8311176101505761027891604052600381526247334d60e81b60208201526040519182916020835260208301906101e1565b0390f35b9060405161028981610134565b6060600382948054845260018101546020850152600281015460408501520154910152565b346101be5760203660031901126101be57600435600052600060205260c060406000206102da8161027c565b90600481015490600560018060a01b03910154169060606040519380518552602081015160208601526040810151604086015201516060840152608083015260a0820152f35b6001600160a01b038116036101be57565b346101be5760603660031901126101be5761034d600435610320565b60243560443567ffffffffffffffff81116101be576103709036906004016101c3565b9061037a81610a7f565b90610390825192602080809583010191016109a1565b6040516333854efd60e21b8152600481018390529092906060816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa948515610596576000908192829761055d575b508084806103ff93518301019101610986565b949195909787878581116000146104c45793610454869461044e866104496104769b9761044461046198604061043b61046d9f6104679f610a08565b91015190610f48565b610f48565b610f74565b50610a7f565b80518101820191016109a1565b91610bb9565b83610a27565b93828685610b68565b93846013191292836104b9575b6102789394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b601486129350610483565b5050919290938089116000146104ff5761046161046d946104546104769761044e856104498f998f61044490604061043b866104679f610a08565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9096506103ff9250610587915060603d60601161058f575b61057f8183610155565b810190610986565b9690926103ec565b503d610575565b6109e6565b9060606003198301126101be576004356105b481610320565b916024359160443567ffffffffffffffff928382116101be57806023830112156101be5781600401359384116101be57602484830101116101be576024019190565b346101be576106043661059b565b9192506001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610761578160c091810103126101be5780359160208201359160408101359460608201359060a08301359261066984610320565b670de0b6b3a764000083101561074f5761070d946107059460806106f1936106f69661069f876000526000602052604060002090565b55013560046106b8866000526000602052604060002090565b01551660056106d1846000526000602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610a7f565b602080825183010191016109a1565b848385610b68565b9283601319129182610744575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b60148512925061071a565b60405163e8a38a6160e01b8152600490fd5b604051636853cba760e01b8152600490fd5b346101be5760606107833661059b565b818094509492940103126101be5780359061070d6107056106f66040602085013594013595610a7f565b346101be576107bb3661059b565b926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610761576108236108176005610809876000526000602052604060002090565b01546001600160a01b031690565b6001600160a01b031690565b9116036108fc5761083683820182610a4a565b61083f81610a5f565b60018103610878575061086261085d61087392600494953691610177565b610caa565b926000526000602052604060002090565b01555b005b61088181610a5f565b600281036108bd5750906108a56108a06108b893610876953691610177565b610c00565b9290916000526000602052604060002090565b610c28565b806108c9600392610a5f565b036108ea576106d16108626108e5600593610876963691610177565b610bd8565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101be5760003660031901126101be576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101be5760203660031901126101be57610278610972600435610a7f565b6040519182916020835260208301906101e1565b908160609103126101be578051916040602083015192015190565b908160809103126101be576060604051916109bb83610134565b80518352602081015160208401526040810151604084015201516109de81610320565b606082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610a1557565b6109f2565b91908201809211610a1557565b81810392916000138015828513169184121617610a1557565b600411156101be57565b908160209103126101be57356101de81610a40565b60041115610a6957565b634e487b7160e01b600052602160045260246000fd5b60408051610a8c81610134565b6000918282526020820193838552818301848152606084019085825282865285602052610ac2610abd85882061027c565b610cdf565b808652670de0b6b3a7640000908103908111610a1557846101de97610b1f95610b1294600594610b5a9c5281835282602052600484842001549052815280602052200160018060a01b0390541690565b6001600160a01b03169052565b5192839160208301919091606060808201938051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b03601f198101835282610155565b926020610b9184610b8b610b83610b9a9697610ba099610fa4565b855190610d88565b95610fa4565b91015190610d88565b90610f48565b670de0b6b3a763ffff198101908113600116610a155790565b6101de92916020610bcf610b9a93855190610d88565b93015190610d88565b6040818051810103126101be5780610bf560206040930151610a40565b015161081781610320565b6060818051810103126101be57610c1a6020820151610a40565b606060408201519101519091565b919042821115610c9857610c3e610abd8461027c565b9081845542600385015542830391838311610a1557610c5c91610a27565b428314610c8257600160ff1b8114600019831416610a1557600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101be5780610cc760206040930151610a40565b015190565b81810292918115918404141715610a1557565b6060810151906020810151808314610d5e57804211600014610d5657915b8203918211610a15576040810190815160008113600014610d3057506101de92610d2a9151925190610ccc565b90610a1a565b90519150600160ff1b8114610a15576101de92610d509160000390610ccc565b90610a08565b504291610cfd565b5090505190565b818102929160008212600160ff1b821416610a15578184051490151715610a1557565b610f356101de927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284610f4393610dbe60008213610fc6565b711340daa0d5f769dba1915cef59f0815a5506610dda82611188565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d610d65565b670de0b6b3a7640000900590565b610ffe565b8181029181830414901517600116156101be576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101be57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101be570490565b15610fcd57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131561118257680755bf798b4a1bf1e581121561114e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b611193811515610fc6565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c600110179056fea26469706673582212209815df372867dd1ba42d4263690c8e70d1f8dc34ff9f897579936267cb43316764736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a2646970667358221220dcc72079355a2b19568ea187fea88de8667d37946c51524051ff3304bdb355f164736f6c63430008160033","sourceMap":"174:1381:73:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;649:554;;:::i;:::-;174:1381;;724:32;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;715:41;174:1381;;-1:-1:-1;;;;;;174:1381:73;-1:-1:-1;;;;;174:1381:73;;;;;;;;;;;775:32;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;766:41;174:1381;;-1:-1:-1;;;;;;174:1381:73;-1:-1:-1;;;;;174:1381:73;;;;;;715:41;174:1381;817:11;;174:1381;;-1:-1:-1;;;;;174:1381:73;;;817:11;:34;;;;;174:1381;;-1:-1:-1;;;817:34:73;;;837:4;174:1381;817:34;;174:1381;844:6;174:1381;;;;;;;;;;;;;;;817:34;;;;;;;;174:1381;-1:-1:-1;766:41:73;174:1381;;;861:11;;-1:-1:-1;;;;;174:1381:73;;;861:11;:34;;;;;;174:1381;;861:34;;;837:4;174:1381;861:34;;174:1381;844:6;174:1381;;;;;;;;;;;837:4;;861:34;;;;;;;;174:1381;-1:-1:-1;715:41:73;174:1381;920:15;;-1:-1:-1;;;;;174:1381:73;;;920:15;766:41;174:1381;937:15;;-1:-1:-1;;;;;174:1381:73;;;937:15;174:1381;;;912:46;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;174:1381:73;;;;;;;378:4:31;;;174:1381:73;378:4:31;;;;174:1381:73;378:4:31;;;;912:46:73;;;;;;;;;906:52;174:1381;;-1:-1:-1;;;;;;174:1381:73;-1:-1:-1;;;;;174:1381:73;;;;;;;;;;;975:20;;;;;;;;;;;;;;;;;;;;;174:1381;;;;;;;975:20;;;;;;;;;968:27;174:1381;;-1:-1:-1;;;;;;174:1381:73;-1:-1:-1;;;;;174:1381:73;;;;;;;;;1019:13;;378:4:31;174:1381:73;1019:13;174:1381;;1011:22;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;174:1381:73;;;;;;;;;1011:22;;;;;;;;;1005:28;174:1381;;-1:-1:-1;;;;;;174:1381:73;-1:-1:-1;;;;;174:1381:73;;;;;;;;;1066:12;;378:4:31;174:1381:73;1066:12;174:1381;;;1052:27;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;174:1381:73;;;;;;;;;1052:27;;;;;;;;;;1043:36;1090:48;1043:36;724:32;174:1381;;;;;;;;1043:36;174:1381;;;1043:36;174:1381;;1043:36;715:41;174:1381;1090:14;;-1:-1:-1;;;;;174:1381:73;;;1090:14;968:27;378:4:31;1105:13:73;;-1:-1:-1;;;;;174:1381:73;378:4:31;174:1381:73;1105:13;174:1381;;-1:-1:-1;;;1090:48:73;;;-1:-1:-1;;;;;174:1381:73;;;;1090:48;;174:1381;-1:-1:-1;;378:4:31;;;174:1381:73;1090:48;;174:1381;;;;1090:48;;174:1381;;1090:48;174:1381;;1090:48;;174:1381;;378:4:31;;;;;1090:48:73;;;;;;;;;;1148;1090;;;;;174:1381;-1:-1:-1;766:41:73;174:1381;1148:14;;-1:-1:-1;;;;;174:1381:73;;;1148:14;968:27;378:4:31;;;;;;1163:13:73;;-1:-1:-1;;;;;174:1381:73;378:4:31;174:1381:73;1163:13;174:1381;;1148:48;;;-1:-1:-1;;;;;174:1381:73;;;;1148:48;;174:1381;-1:-1:-1;;378:4:31;;;174:1381:73;;;;;;;;378:4:31;;;;;1148:48:73;;;;;;;;;;;174:1381;;;1148:48;;;;;;-1:-1:-1;1148:48:73;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;174:1381;;;1148:48;;;;;;;:::i;1090:::-;;;;;;;;;;;;;:::i;:::-;;;;;1052:27;;:::i;861:34::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;174:1381;;;817:34;;;;;;:::i;:::-;;;;;174:1381;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;174:1381:73;;;;;;;378:11:59;174:1381:73;;;;;;;;;-1:-1:-1;;174:1381:73;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;174:1381:73;;;;;243:22;174:1381;;;;;;;;;;;;;-1:-1:-1;;174:1381:73;;;;992:4:59;378::31;174:1381:73;;-1:-1:-1;;;992:20:59;;174:1381:73;;;992:20:59;;;174:1381:73;;;;;;;;;;-1:-1:-1;;;;;174:1381:73;992:20:59;;;;;;;-1:-1:-1;992:20:59;;;174:1381:73;1029:19:59;;;174:1381:73;;;-1:-1:-1;;;;;174:1381:73;;;;-1:-1:-1;;;;;174:1381:73;;;;;;;;;;;;;;;;;992:20:59;;;174:1381:73;992:20:59;;174:1381:73;992:20:59;;;;;;174:1381:73;992:20:59;;;:::i;:::-;;;174:1381:73;;;;;1029:19:59;174:1381:73;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;992:20:59;;;;;;;;-1:-1:-1;992:20:59;;174:1381:73;;;;;;-1:-1:-1;;174:1381:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;174:1381:73;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;174:1381:73;;;;;;;;;;;;;;-1:-1:-1;;;174:1381:73;;;;753:2;174:1381;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;174:1381:73;;;;;;;;;;;;;;-1:-1:-1;;;174:1381:73;;;;753:2;174:1381;;;;;;;:::o;378:4:31:-;;;;;;;;;;174:1381:73;;;378:4:31;;;;;:::o;1671:64:0:-;-1:-1:-1;;;1671:64:0;;174:1381:73;;;-1:-1:-1;1671:64:0;;;;;;;;;;;;;-1:-1:-1;1671:64:0;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;174:1381:73;;;;;;;-1:-1:-1;;174:1381:73;1671:64:0;;174:1381:73;;:::i;:::-;1671:64:0;;;-1:-1:-1;1671:64:0;;;;:::o;:::-;;;:::o;1819:584::-;1873:7;174:1381:73;;;;;;1873:7:0;;;174:1381:73;;;;;1896:14:0;:::o;174:1381:73:-;1896:14:0;:::o;1869:528::-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;174:1381:73;;;;;2196:43:0;;;;;;1671:64;;;;174:1381:73;;;;1671:64:0;;;;;;174:1381:73;1671:64:0;2196:43;;;174:1381:73;;2196:43:0;;;;;;;;:::i;:::-;2086:175;174:1381:73;;2086:175:0;;;2196:43;2086:175;;;;;:::i;:::-;;;;;;;;;:::i;:::-;2047:232;;;;;2312:27;2047:232;;:::i;:::-;2196:43;174:1381:73;;;2312:27:0;;;;;;:::i;396:450:59:-;174:1381:73;;;447:32:59;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;715:41:73;174:1381;;-1:-1:-1;;;;;;174:1381:73;-1:-1:-1;;;;;174:1381:73;;;;;;;;;;;498:32:59;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;766:41:73;174:1381;;-1:-1:-1;;;;;;174:1381:73;-1:-1:-1;;;;;174:1381:73;;;;;;438:41:59;174:1381:73;540:11:59;;174:1381:73;;;540:11:59;:34;;;;;174:1381:73;;-1:-1:-1;;;540:34:59;;;560:4;540:34;;;174:1381:73;844:6;174:1381;;;;;;;;;;;;;;;540:34:59;;;;;;;;396:450;-1:-1:-1;489:41:59;174:1381:73;584:11:59;;-1:-1:-1;;;;;174:1381:73;;;584:11:59;:34;;;;;;174:1381:73;;584:34:59;;;560:4;540:34;584;;174:1381:73;844:6;174:1381;;;;;;;;;;;;;;;584:34:59;;;;;;;;396:450;-1:-1:-1;438:41:59;174:1381:73;643:15:59;;-1:-1:-1;;;;;174:1381:73;;;643:15:59;489:41;174:1381:73;660:15:59;;-1:-1:-1;;;;;174:1381:73;;;660:15:59;174:1381:73;;;635:50:59;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;174:1381:73;;;;;;;378:4:31;;;174:1381:73;378:4:31;;;;174:1381:73;378:4:31;;;;635:50:59;;;;;;;;;906:52:73;174:1381;;-1:-1:-1;;;;;;174:1381:73;-1:-1:-1;;;;;174:1381:73;;;;;;;;;;;;702:20:59;;;;;;;;;;;;;;;;;;;;174:1381:73;;;;;;;702:20:59;;;;;;;;;;695:27;733:48;695:27;724:32:73;174:1381;;;;;;;;968:27;174:1381;;;968:27;174:1381;;695:27:59;438:41;174:1381:73;733:14:59;;-1:-1:-1;;;;;174:1381:73;;;733:14:59;695:27;378:4:31;;;;748:13:59;;-1:-1:-1;;;;;174:1381:73;378:4:31;174:1381:73;748:13:59;174:1381:73;;-1:-1:-1;;;733:48:59;;;-1:-1:-1;;;;;174:1381:73;;;540:34:59;733:48;;174:1381:73;-1:-1:-1;;378:4:31;;;174:1381:73;733:48:59;;174:1381:73;;;;733:48:59;;174:1381:73;;733:48:59;174:1381:73;;;;;;378:4:31;;;;;733:48:59;;;;;;;;;;791;733;;;;;396:450;-1:-1:-1;489:41:59;174:1381:73;791:14:59;;-1:-1:-1;;;;;174:1381:73;;;791:14:59;695:27;378:4:31;;;;806:13:59;;-1:-1:-1;;;;;174:1381:73;378:4:31;174:1381:73;791:48:59;;;;;;;;;;;396:450;;:::o;791:48::-;;;;;;-1:-1:-1;791:48:59;;;;;;:::i;:::-;;396:450::o;733:48::-;;;;;;;;;;;;;:::i;:::-;;;;;584:34;;;;;;:::i;:::-;;;;540;;;;;;:::i;:::-;;;;;174:1381:73;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","POOL_ID()":"e0d7d0e9","TEST_SWAP_FEE()":"620a2607","failed()":"ba414fa6","getPoolLiquidityToken(uint256)":"e21485ad","setUp()":"0a9254e4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"upper\",\"type\":\"uint256\"}],\"name\":\"BisectionLib_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"lowerResult\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"upperResult\",\"type\":\"int256\"}],\"name\":\"BisectionLib_RootOutsideBounds\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POOL_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_SWAP_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolLiquidityToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"BisectionLib_InvalidBounds(uint256,uint256)\":[{\"details\":\"Thrown when the lower bound is greater than the upper bound.\"}],\"BisectionLib_RootOutsideBounds(int256,int256)\":[{\"details\":\"Thrown when the result of the function `fx` for each input, `upper` and `lower`, is the same sign.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/unit/strategies/G3M/SetUp.sol\":\"G3MSetUp\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/lib/SignedWadMath.sol\":{\"keccak256\":\"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a\",\"dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/solvers/G3M/G3MExtendedLib.sol\":{\"keccak256\":\"0xa7e4eb7172ca81b319ccb5ac248c302fb549be3eb6badda424800f73edfbc448\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2d53a62a983c65dd0b892f30d30b603fc5cf7ebb4895dbdcb0a05a9eae1a431f\",\"dweb:/ipfs/QmNXKi6XUWswwKuzaE6SorZhRvd7Nz6dxYmLmii8bVcRhK\"]},\"src/solvers/G3M/G3MSolver.sol\":{\"keccak256\":\"0x78a3ae3db50beba513113d6a79c1d29282ccc46852563237fc3852eb1390376e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://146cfcc48b6a2fd6cd392f8508232b201add90f0f4352b141bc8d25b821884da\",\"dweb:/ipfs/QmXB3vg58RwUEEMCqgvdEGfwZjTzvE9PXDEZ8XFYsmiK1s\"]},\"src/strategies/G3M/G3M.sol\":{\"keccak256\":\"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c\",\"dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE\"]},\"src/strategies/G3M/G3MLib.sol\":{\"keccak256\":\"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70\",\"dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]},\"src/test/helpers/MockStrategy.sol\":{\"keccak256\":\"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5\",\"dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw\"]},\"src/test/helpers/SetUp.sol\":{\"keccak256\":\"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30\",\"dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14\"]},\"src/test/unit/DFMM/SetUp.sol\":{\"keccak256\":\"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4\",\"dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm\"]},\"src/test/unit/strategies/G3M/SetUp.sol\":{\"keccak256\":\"0xf3df0de5242d3ce771a7d1c56bc0e6d49c33c93bd213f173ae893ffa8cb8a2db\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://15593516464636019a55cab0dfda3c32d88ce82ece50e1f6ecab55e17305042a\",\"dweb:/ipfs/QmcySG4cNFidHEpwBcuMfWVkzGPWTPyLwgwrNodUoTZips\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"lower","type":"uint256"},{"internalType":"uint256","name":"upper","type":"uint256"}],"type":"error","name":"BisectionLib_InvalidBounds"},{"inputs":[{"internalType":"int256","name":"lowerResult","type":"int256"},{"internalType":"int256","name":"upperResult","type":"int256"}],"type":"error","name":"BisectionLib_RootOutsideBounds"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"POOL_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_SWAP_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolLiquidityToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/unit/strategies/G3M/SetUp.sol":"G3MSetUp"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/lib/SignedWadMath.sol":{"keccak256":"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630","urls":["bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a","dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN"],"license":"MIT"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/solvers/G3M/G3MExtendedLib.sol":{"keccak256":"0xa7e4eb7172ca81b319ccb5ac248c302fb549be3eb6badda424800f73edfbc448","urls":["bzz-raw://2d53a62a983c65dd0b892f30d30b603fc5cf7ebb4895dbdcb0a05a9eae1a431f","dweb:/ipfs/QmNXKi6XUWswwKuzaE6SorZhRvd7Nz6dxYmLmii8bVcRhK"],"license":"GPL-3.0-or-later"},"src/solvers/G3M/G3MSolver.sol":{"keccak256":"0x78a3ae3db50beba513113d6a79c1d29282ccc46852563237fc3852eb1390376e","urls":["bzz-raw://146cfcc48b6a2fd6cd392f8508232b201add90f0f4352b141bc8d25b821884da","dweb:/ipfs/QmXB3vg58RwUEEMCqgvdEGfwZjTzvE9PXDEZ8XFYsmiK1s"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3M.sol":{"keccak256":"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034","urls":["bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c","dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3MLib.sol":{"keccak256":"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4","urls":["bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70","dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m"],"license":"GPL-3.0-or-later"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"},"src/test/helpers/MockStrategy.sol":{"keccak256":"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a","urls":["bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5","dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw"],"license":"UNLICENSED"},"src/test/helpers/SetUp.sol":{"keccak256":"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb","urls":["bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30","dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14"],"license":"UNLICENSED"},"src/test/unit/DFMM/SetUp.sol":{"keccak256":"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a","urls":["bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4","dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm"],"license":"UNLICENSED"},"src/test/unit/strategies/G3M/SetUp.sol":{"keccak256":"0xf3df0de5242d3ce771a7d1c56bc0e6d49c33c93bd213f173ae893ffa8cb8a2db","urls":["bzz-raw://15593516464636019a55cab0dfda3c32d88ce82ece50e1f6ecab55e17305042a","dweb:/ipfs/QmcySG4cNFidHEpwBcuMfWVkzGPWTPyLwgwrNodUoTZips"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/unit/strategies/G3M/SetUp.sol","id":47525,"exportedSymbols":{"ArbiterToken":[43381],"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"DFMM":[29062],"DFMMSetUp":[45761],"DSTest":[1786],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"G3M":[37911],"G3MLib":[38158],"G3MSetUp":[47524],"G3MSolver":[33820],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"LPToken":[29516],"Lex":[44392],"LibString":[26659],"Min":[27736],"MockERC20":[25560],"MockStrategy":[44649],"ONE":[30639],"SQRT_WAD":[30630],"SafeTransferLib":[26744],"SetUp":[44852],"SignedWadMathLib":[30623],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"TWO":[30633],"Test":[8195],"TestBase":[1843],"Vm":[9352],"WETH":[26027],"ZERO":[30649],"abs":[27763],"bisection":[31118],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeInitialPoolData":[31906],"computeL":[31844],"computeLGivenX":[31662],"computeLGivenY":[31688],"computeNextLiquidity":[32899],"computeNextRx":[32006],"computeNextRy":[31956],"computeOptimalLower":[32732],"computeOptimalRaise":[32798],"computePrice":[32043],"computeScalingFactor":[30048],"computeX":[31792],"computeXGivenL":[31714],"computeY":[31766],"computeYGivenL":[31740],"console":[17416],"console2":[25512],"diffLower":[32419],"diffRaise":[32666],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"findRootLiquidity":[32083],"findRootLower":[32129],"findRootRaise":[32175],"muli":[27777],"muliWad":[27795],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"39:1517:73","nodes":[{"id":47317,"nodeType":"PragmaDirective","src":"39:24:73","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":47318,"nodeType":"ImportDirective","src":"65:36:73","nodes":[],"absolutePath":"src/strategies/G3M/G3M.sol","file":"src/strategies/G3M/G3M.sol","nameLocation":"-1:-1:-1","scope":47525,"sourceUnit":37912,"symbolAliases":[],"unitAlias":""},{"id":47319,"nodeType":"ImportDirective","src":"102:39:73","nodes":[],"absolutePath":"src/solvers/G3M/G3MSolver.sol","file":"src/solvers/G3M/G3MSolver.sol","nameLocation":"-1:-1:-1","scope":47525,"sourceUnit":33821,"symbolAliases":[],"unitAlias":""},{"id":47320,"nodeType":"ImportDirective","src":"142:30:73","nodes":[],"absolutePath":"src/test/unit/DFMM/SetUp.sol","file":"../../DFMM/SetUp.sol","nameLocation":"-1:-1:-1","scope":47525,"sourceUnit":45762,"symbolAliases":[],"unitAlias":""},{"id":47524,"nodeType":"ContractDefinition","src":"174:1381:73","nodes":[{"id":47325,"nodeType":"VariableDeclaration","src":"207:7:73","nodes":[],"constant":false,"mutability":"mutable","name":"g3m","nameLocation":"211:3:73","scope":47524,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"},"typeName":{"id":47324,"nodeType":"UserDefinedTypeName","pathNode":{"id":47323,"name":"G3M","nameLocations":["207:3:73"],"nodeType":"IdentifierPath","referencedDeclaration":37911,"src":"207:3:73"},"referencedDeclaration":37911,"src":"207:3:73","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"visibility":"internal"},{"id":47328,"nodeType":"VariableDeclaration","src":"220:16:73","nodes":[],"constant":false,"mutability":"mutable","name":"solver","nameLocation":"230:6:73","scope":47524,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"},"typeName":{"id":47327,"nodeType":"UserDefinedTypeName","pathNode":{"id":47326,"name":"G3MSolver","nameLocations":["220:9:73"],"nodeType":"IdentifierPath","referencedDeclaration":33820,"src":"220:9:73"},"referencedDeclaration":33820,"src":"220:9:73","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"visibility":"internal"},{"id":47330,"nodeType":"VariableDeclaration","src":"243:22:73","nodes":[],"constant":false,"functionSelector":"e0d7d0e9","mutability":"mutable","name":"POOL_ID","nameLocation":"258:7:73","scope":47524,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47329,"name":"uint256","nodeType":"ElementaryTypeName","src":"243:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":47343,"nodeType":"VariableDeclaration","src":"272:164:73","nodes":[],"constant":false,"mutability":"mutable","name":"defaultParams","nameLocation":"286:13:73","scope":47524,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage","typeString":"struct G3M.G3MParams"},"typeName":{"id":47332,"nodeType":"UserDefinedTypeName","pathNode":{"id":47331,"name":"G3M.G3MParams","nameLocations":["272:3:73","276:9:73"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"272:13:73"},"referencedDeclaration":37272,"src":"272:13:73","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"value":{"arguments":[{"hexValue":"302e35","id":47335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"330:9:73","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"value":"0.5"},{"hexValue":"302e35","id":47336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"353:9:73","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"value":"0.5"},{"id":47337,"name":"TEST_SWAP_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44731,"src":"381:13:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":47340,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"424:4:73","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSetUp_$47524","typeString":"contract G3MSetUp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MSetUp_$47524","typeString":"contract G3MSetUp"}],"id":47339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"416:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47338,"name":"address","nodeType":"ElementaryTypeName","src":"416:7:73","typeDescriptions":{}}},"id":47341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"416:13:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47333,"name":"G3M","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37911,"src":"302:3:73","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_G3M_$37911_$","typeString":"type(contract G3M)"}},"id":47334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"306:9:73","memberName":"G3MParams","nodeType":"MemberAccess","referencedDeclaration":37272,"src":"302:13:73","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G3MParams_$37272_storage_ptr_$","typeString":"type(struct G3M.G3MParams storage pointer)"}},"id":47342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["326:2:73","349:2:73","372:7:73","404:10:73"],"names":["wX","wY","swapFee","controller"],"nodeType":"FunctionCall","src":"302:134:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"visibility":"internal"},{"id":47346,"nodeType":"VariableDeclaration","src":"442:33:73","nodes":[],"constant":false,"mutability":"mutable","name":"defaultReserveX","nameLocation":"450:15:73","scope":47524,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47344,"name":"uint256","nodeType":"ElementaryTypeName","src":"442:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":47345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"468:7:73","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":47349,"nodeType":"VariableDeclaration","src":"481:36:73","nodes":[],"constant":false,"mutability":"mutable","name":"defaultStrikePrice","nameLocation":"489:18:73","scope":47524,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47347,"name":"uint256","nodeType":"ElementaryTypeName","src":"481:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":47348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"510:7:73","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":47356,"nodeType":"VariableDeclaration","src":"523:119:73","nodes":[],"constant":false,"mutability":"mutable","name":"defaultInitialPoolData","nameLocation":"529:22:73","scope":47524,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":47350,"name":"bytes","nodeType":"ElementaryTypeName","src":"523:5:73","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"id":47352,"name":"defaultReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47346,"src":"586:15:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47353,"name":"defaultStrikePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47349,"src":"603:18:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47354,"name":"defaultParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47343,"src":"623:13:73","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage","typeString":"struct G3M.G3MParams storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_G3MParams_$37272_storage","typeString":"struct G3M.G3MParams storage ref"}],"id":47351,"name":"computeInitialPoolData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31906,"src":"554:22:73","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_G3MParams_$37272_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256,struct G3M.G3MParams memory) pure returns (bytes memory)"}},"id":47355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"554:88:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":47483,"nodeType":"FunctionDefinition","src":"649:554:73","nodes":[],"body":{"id":47482,"nodeType":"Block","src":"682:521:73","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":47360,"name":"SetUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44852,"src":"692:5:73","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SetUp_$44852_$","typeString":"type(contract SetUp)"}},"id":47362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"698:5:73","memberName":"setUp","nodeType":"MemberAccess","referencedDeclaration":44830,"src":"692:11:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":47363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"692:13:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47364,"nodeType":"ExpressionStatement","src":"692:13:73"},{"expression":{"id":47373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47365,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"715:6:73","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"746f6b656e58","id":47369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"738:8:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_6076c392819008730df70238b1f1890b3147aecb6d122c8c4b4d5aa1b5f97482","typeString":"literal_string \"tokenX\""},"value":"tokenX"},{"hexValue":"58","id":47370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"748:3:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_550c64a15031c3064454c19adc6243a6122c138a242eaa098da50bb114fc8d56","typeString":"literal_string \"X\""},"value":"X"},{"hexValue":"3138","id":47371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"753:2:73","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6076c392819008730df70238b1f1890b3147aecb6d122c8c4b4d5aa1b5f97482","typeString":"literal_string \"tokenX\""},{"typeIdentifier":"t_stringliteral_550c64a15031c3064454c19adc6243a6122c138a242eaa098da50bb114fc8d56","typeString":"literal_string \"X\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":47368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"724:13:73","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":47367,"nodeType":"UserDefinedTypeName","pathNode":{"id":47366,"name":"MockERC20","nameLocations":["728:9:73"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"728:9:73"},"referencedDeclaration":25560,"src":"728:9:73","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":47372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"724:32:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"src":"715:41:73","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":47374,"nodeType":"ExpressionStatement","src":"715:41:73"},{"expression":{"id":47383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47375,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"766:6:73","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"746f6b656e59","id":47379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"789:8:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_215291f8765d54708d051c35e3f18ebdc532df00c5f85fe5e7d65833297521e9","typeString":"literal_string \"tokenY\""},"value":"tokenY"},{"hexValue":"59","id":47380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"799:3:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a2c5f9025f1f0333863704310875ae81a574171bed5b047cfc0f50e347f630e","typeString":"literal_string \"Y\""},"value":"Y"},{"hexValue":"3138","id":47381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"804:2:73","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_215291f8765d54708d051c35e3f18ebdc532df00c5f85fe5e7d65833297521e9","typeString":"literal_string \"tokenY\""},{"typeIdentifier":"t_stringliteral_9a2c5f9025f1f0333863704310875ae81a574171bed5b047cfc0f50e347f630e","typeString":"literal_string \"Y\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":47378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"775:13:73","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":47377,"nodeType":"UserDefinedTypeName","pathNode":{"id":47376,"name":"MockERC20","nameLocations":["779:9:73"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"779:9:73"},"referencedDeclaration":25560,"src":"779:9:73","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":47382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"775:32:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"src":"766:41:73","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":47384,"nodeType":"ExpressionStatement","src":"766:41:73"},{"expression":{"arguments":[{"arguments":[{"id":47390,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"837:4:73","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSetUp_$47524","typeString":"contract G3MSetUp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MSetUp_$47524","typeString":"contract G3MSetUp"}],"id":47389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"829:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47388,"name":"address","nodeType":"ElementaryTypeName","src":"829:7:73","typeDescriptions":{}}},"id":47391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"829:13:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030653138","id":47392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"844:6:73","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100e18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":47385,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"817:6:73","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":47387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"824:4:73","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":25546,"src":"817:11:73","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":47393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"817:34:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47394,"nodeType":"ExpressionStatement","src":"817:34:73"},{"expression":{"arguments":[{"arguments":[{"id":47400,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"881:4:73","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSetUp_$47524","typeString":"contract G3MSetUp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MSetUp_$47524","typeString":"contract G3MSetUp"}],"id":47399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"873:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47398,"name":"address","nodeType":"ElementaryTypeName","src":"873:7:73","typeDescriptions":{}}},"id":47401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"873:13:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030653138","id":47402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"888:6:73","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100e18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":47395,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"861:6:73","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":47397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"868:4:73","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":25546,"src":"861:11:73","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":47403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"861:34:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47404,"nodeType":"ExpressionStatement","src":"861:34:73"},{"expression":{"id":47419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47405,"name":"lex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"906:3:73","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":47411,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"928:6:73","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":47410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"920:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47409,"name":"address","nodeType":"ElementaryTypeName","src":"920:7:73","typeDescriptions":{}}},"id":47412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"920:15:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":47415,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"945:6:73","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":47414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"937:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47413,"name":"address","nodeType":"ElementaryTypeName","src":"937:7:73","typeDescriptions":{}}},"id":47416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"937:15:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47417,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"954:3:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"912:7:73","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_contract$_Lex_$44392_$","typeString":"function (address,address,uint256) returns (contract Lex)"},"typeName":{"id":47407,"nodeType":"UserDefinedTypeName","pathNode":{"id":47406,"name":"Lex","nameLocations":["916:3:73"],"nodeType":"IdentifierPath","referencedDeclaration":44392,"src":"916:3:73"},"referencedDeclaration":44392,"src":"916:3:73","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}}},"id":47418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"912:46:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}},"src":"906:52:73","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}},"id":47420,"nodeType":"ExpressionStatement","src":"906:52:73"},{"expression":{"id":47430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47421,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"968:4:73","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30","id":47427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"992:1:73","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"984:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47425,"name":"address","nodeType":"ElementaryTypeName","src":"984:7:73","typeDescriptions":{}}},"id":47428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"984:10:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"975:8:73","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_DFMM_$29062_$","typeString":"function (address) returns (contract DFMM)"},"typeName":{"id":47423,"nodeType":"UserDefinedTypeName","pathNode":{"id":47422,"name":"DFMM","nameLocations":["979:4:73"],"nodeType":"IdentifierPath","referencedDeclaration":29062,"src":"979:4:73"},"referencedDeclaration":29062,"src":"979:4:73","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}},"id":47429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"975:20:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"src":"968:27:73","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":47431,"nodeType":"ExpressionStatement","src":"968:27:73"},{"expression":{"id":47441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47432,"name":"g3m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47325,"src":"1005:3:73","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":47438,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1027:4:73","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":47437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1019:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47436,"name":"address","nodeType":"ElementaryTypeName","src":"1019:7:73","typeDescriptions":{}}},"id":47439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1019:13:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1011:7:73","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_G3M_$37911_$","typeString":"function (address) returns (contract G3M)"},"typeName":{"id":47434,"nodeType":"UserDefinedTypeName","pathNode":{"id":47433,"name":"G3M","nameLocations":["1015:3:73"],"nodeType":"IdentifierPath","referencedDeclaration":37911,"src":"1015:3:73"},"referencedDeclaration":37911,"src":"1015:3:73","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}}},"id":47440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1011:22:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"src":"1005:28:73","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}},"id":47442,"nodeType":"ExpressionStatement","src":"1005:28:73"},{"expression":{"id":47452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47443,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47328,"src":"1043:6:73","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":47449,"name":"g3m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47325,"src":"1074:3:73","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}],"id":47448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1066:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47447,"name":"address","nodeType":"ElementaryTypeName","src":"1066:7:73","typeDescriptions":{}}},"id":47450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1066:12:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1052:13:73","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_G3MSolver_$33820_$","typeString":"function (address) returns (contract G3MSolver)"},"typeName":{"id":47445,"nodeType":"UserDefinedTypeName","pathNode":{"id":47444,"name":"G3MSolver","nameLocations":["1056:9:73"],"nodeType":"IdentifierPath","referencedDeclaration":33820,"src":"1056:9:73"},"referencedDeclaration":33820,"src":"1056:9:73","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}}},"id":47451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1052:27:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"src":"1043:36:73","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":47453,"nodeType":"ExpressionStatement","src":"1043:36:73"},{"expression":{"arguments":[{"arguments":[{"id":47459,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1113:4:73","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":47458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1105:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47457,"name":"address","nodeType":"ElementaryTypeName","src":"1105:7:73","typeDescriptions":{}}},"id":47460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1105:13:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":47463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1125:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":47462,"name":"uint256","nodeType":"ElementaryTypeName","src":"1125:7:73","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":47461,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1120:4:73","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":47464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1120:13:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":47465,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1134:3:73","memberName":"max","nodeType":"MemberAccess","src":"1120:17:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47454,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"1090:6:73","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":47456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1097:7:73","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":25665,"src":"1090:14:73","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":47466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1090:48:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47467,"nodeType":"ExpressionStatement","src":"1090:48:73"},{"expression":{"arguments":[{"arguments":[{"id":47473,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1171:4:73","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":47472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1163:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47471,"name":"address","nodeType":"ElementaryTypeName","src":"1163:7:73","typeDescriptions":{}}},"id":47474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1163:13:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":47477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1183:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":47476,"name":"uint256","nodeType":"ElementaryTypeName","src":"1183:7:73","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":47475,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1178:4:73","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":47478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1178:13:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":47479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1192:3:73","memberName":"max","nodeType":"MemberAccess","src":"1178:17:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47468,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"1148:6:73","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":47470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1155:7:73","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":25665,"src":"1148:14:73","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":47480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1148:48:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47481,"nodeType":"ExpressionStatement","src":"1148:48:73"}]},"baseFunctions":[44830],"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"658:5:73","overrides":{"id":47358,"nodeType":"OverrideSpecifier","overrides":[],"src":"673:8:73"},"parameters":{"id":47357,"nodeType":"ParameterList","parameters":[],"src":"663:2:73"},"returnParameters":{"id":47359,"nodeType":"ParameterList","parameters":[],"src":"682:0:73"},"scope":47524,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":47523,"nodeType":"ModifierDefinition","src":"1209:344:73","nodes":[],"body":{"id":47522,"nodeType":"Block","src":"1225:328:73","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"30","id":47488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1243:1:73","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":47485,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"1235:2:73","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":47487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1238:4:73","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":9034,"src":"1235:7:73","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":47489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1235:10:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47490,"nodeType":"ExpressionStatement","src":"1235:10:73"},{"assignments":[47495],"declarations":[{"constant":false,"id":47495,"mutability":"mutable","name":"defaultInitParams","nameLocation":"1280:17:73","nodeType":"VariableDeclaration","scope":47522,"src":"1256:41:73","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":47494,"nodeType":"UserDefinedTypeName","pathNode":{"id":47493,"name":"IDFMM.InitParams","nameLocations":["1256:5:73","1262:10:73"],"nodeType":"IdentifierPath","referencedDeclaration":29543,"src":"1256:16:73"},"referencedDeclaration":29543,"src":"1256:16:73","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"id":47512,"initialValue":{"arguments":[{"arguments":[{"id":47500,"name":"g3m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47325,"src":"1349:3:73","typeDescriptions":{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3M_$37911","typeString":"contract G3M"}],"id":47499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1341:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47498,"name":"address","nodeType":"ElementaryTypeName","src":"1341:7:73","typeDescriptions":{}}},"id":47501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1341:12:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":47504,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"1383:6:73","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":47503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1375:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47502,"name":"address","nodeType":"ElementaryTypeName","src":"1375:7:73","typeDescriptions":{}}},"id":47505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1375:15:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":47508,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"1420:6:73","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":47507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1412:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47506,"name":"address","nodeType":"ElementaryTypeName","src":"1412:7:73","typeDescriptions":{}}},"id":47509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1412:15:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47510,"name":"defaultInitialPoolData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47356,"src":"1447:22:73","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"expression":{"id":47496,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"1300:5:73","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":47497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1306:10:73","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":29543,"src":"1300:16:73","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$29543_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":47511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1331:8:73","1367:6:73","1404:6:73","1441:4:73"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"1300:180:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}},"nodeType":"VariableDeclarationStatement","src":"1256:224:73"},{"expression":{"id":47519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":47513,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"1492:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},null,null,null],"id":47514,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1491:12:73","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$__$__$__$","typeString":"tuple(uint256,,,)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":47517,"name":"defaultInitParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47495,"src":"1516:17:73","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":47515,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1506:4:73","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":47516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1511:4:73","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":28091,"src":"1506:9:73","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$29543_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":47518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1506:28:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"src":"1491:43:73","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47520,"nodeType":"ExpressionStatement","src":"1491:43:73"},{"id":47521,"nodeType":"PlaceholderStatement","src":"1545:1:73"}]},"name":"init","nameLocation":"1218:4:73","parameters":{"id":47484,"nodeType":"ParameterList","parameters":[],"src":"1222:2:73"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":47321,"name":"SetUp","nameLocations":["195:5:73"],"nodeType":"IdentifierPath","referencedDeclaration":44852,"src":"195:5:73"},"id":47322,"nodeType":"InheritanceSpecifier","src":"195:5:73"}],"canonicalName":"G3MSetUp","contractDependencies":[25560,29062,33820,37911,44392],"contractKind":"contract","fullyImplemented":true,"internalFunctionIDs":{"32083":1},"linearizedBaseContracts":[47524,44852,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"G3MSetUp","nameLocation":"183:8:73","scope":47525,"usedErrors":[30985,30992],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":73} \ No newline at end of file diff --git a/out/SetUp.sol/LogNormalSetUp.json b/out/SetUp.sol/LogNormalSetUp.json deleted file mode 100644 index dc2cfee3..00000000 --- a/out/SetUp.sol/LogNormalSetUp.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"POOL_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TEST_SWAP_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolLiquidityToken","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"BisectionLib_InvalidBounds","inputs":[{"name":"lower","type":"uint256","internalType":"uint256"},{"name":"upper","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BisectionLib_RootOutsideBounds","inputs":[{"name":"lowerResult","type":"int256","internalType":"int256"},{"name":"upperResult","type":"int256","internalType":"int256"}]},{"type":"error","name":"Infinity","inputs":[]},{"type":"error","name":"Min","inputs":[]},{"type":"error","name":"NegativeInfinity","inputs":[]},{"type":"error","name":"OutOfBounds","inputs":[]}],"bytecode":{"object":"0x34620000b757600160ff196000541617600055610120604052670de0b6b3a7640000806080528060a0528060c052660aa87bee538000908160e052306101005280601a5580601b55601c55601d553060018060a01b0319601e541617601e5562000070670de0b6b3a7640000601f55565b62000082670de0b6b3a7640000602055565b620000a7620000a1601f546020546200009a62000118565b91620002ea565b620001ef565b60405161a6259081620017578239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b60a081019081106001600160401b03821117620000ee57604052565b620000bc565b601f909101601f19168101906001600160401b03821190821017620000ee57604052565b604051906200012782620000d2565b601a548252601b546020830152601c546040830152601d546060830152601e546001600160a01b03166080830152565b90600182811c9216801562000189575b60208310146200017357565b634e487b7160e01b600052602260045260246000fd5b91607f169162000167565b601f8111620001a1575050565b60009060216000526020600020906020601f850160051c83019410620001e4575b601f0160051c01915b828110620001d857505050565b818155600101620001cb565b9092508290620001c2565b80519091906001600160401b038111620000ee576200021b816200021560215462000157565b62000194565b602080601f8311600114620002625750819062000251939460009262000256575b50508160011b916000199060031b1c19161790565b602155565b0151905038806200023c565b6021600052601f198316949091907f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b570926000905b878210620002d1575050836001959610620002b7575b505050811b01602155565b015160001960f88460031b161c19169055388080620002ac565b8060018596829496860151815501950193019062000296565b825160208401908151936040860191825162000307818862000c6a565b9162000314908462000c98565b6200031f9062001151565b90670de0b6b3a764000062000335819962001151565b6200034090620008b1565b056200034c906200131f565b90620003589162000d39565b620003639062000d5b565b6200036e9162000635565b620003799062000893565b90620003859162000931565b620003909062000976565b6200039b90620009b6565b8503858111620004f257620003b1908562000c98565b9486519351925191620003c5838562000c6a565b94620003d19162000c98565b620003dc9062001151565b92620003e89062001151565b620003f390620008b1565b05620003ff906200131f565b906200040b9162000d39565b620004169062000d5b565b620004219162000a38565b6200042c9062000893565b90620004389162000931565b620004439062000976565b6200044e90620009b6565b828451906200045d9162000cc9565b90620004699162000cc9565b9183620004798183868662000652565b91620004879285856200076c565b604080516020808201949094528082019490945260608085019290925284516080808601919091529285015160a085015284015160c084015283015160e0830152909101516001600160a01b0316610100808301919091528152620004ef61012082620000f4565b90565b634e487b7160e01b600052601160045260246000fd5b919082039182116200051657565b620004f2565b9081670de0b6b3a7640000019182126001166200051657565b9081670b68df18e471fbff1901918212156001166200051657565b90816714a8454c19e1ac00019182126001166200051657565b9081670fc10e01578277ff1901918212156001166200051657565b90816703debd083b8c7c00019182126001166200051657565b9081670295d400ea3257ff1901918212156001166200051657565b9081670157d8b2ecc70800019182126001166200051657565b90816705310aa7d5213000019182126001166200051657565b9081670de0cc3d15610000019182126001166200051657565b9081672005fe4f268ea000019182126001166200051657565b9081670dc5527f642c2000019182126001166200051657565b919091600083820193841291129080158216911516176200051657565b9092828210156200072757620004ef93620006dd9284670de0b6b3a764000091826200067f838362000cf6565b106200071057506001600160ff1b039590505b835191620006ac620006a5838562000d39565b8562000cf6565b10620006e357506001600160ff1b0392620006d6925090505b604060208201519101519062000c6a565b9262000635565b62000635565b620006d692620006fc6200070392620007099462000d39565b9062000cf6565b62000a52565b91620006c5565b6200072091620007039162000cf6565b9462000692565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b929493859391926000808212156200082e575b8082126200080b575091620007f66200080592620004ef979895945b604051958694602086019260e092959491956101008501968552602085015260408401528051606084015260208101516080840152604081015160a0840152606081015160c0840152608060018060a01b0391015116910152565b03601f198101835282620000f4565b62000dbd565b9662000818915062000d19565b95620008278288868662000652565b906200077f565b8082136200084f575091620007f66200080592620004ef979895946200079b565b9490506103e980820291600191818404149015178116156200088f576103e8600019830104019015150293620008888286868662000652565b906200082e565b8580fd5b90670de0b6b3a7640000918281029281840514901517156200051657565b90671bc16d674ec80000918281029281840514901517156200051657565b60008190039190600160ff1b811460011662000516576000198305036200051657565b90633b9aca00918281029281840514901517156200051657565b818102929160008212600160ff1b821416620005165781840514901517156200051657565b81156200094e57600160ff1b811460001983141662000516570590565b634e487b7160e01b600052601260045260246000fd5b600160ff1b8114620005165760000390565b620009b2620009ac620009a66713a04bbdfdc9be886200099f671bc16d674ec800009562000893565b0562000964565b62000efb565b62000893565b0590565b60008112620009c25790565b60405162461bcd60e51b815260206004820152601060248201526f746f55696e743a206e6567617469766560801b6044820152606490fd5b9067119000ab100ffbff1982019182136001166200051657565b90671bc16d674ec80000600083820393128184128116918413901516176200051657565b818103929160001380158285131691841216176200051657565b6706f05b59d3b20000811462000c6457670de0b6b3a76400008082121562000c0a57811562000c2e5760018260011b916002938305600203620005165760008312801562000c52575b62000c4057821562000c0a57671bc16d674ec80000831462000c2e57821291821562000c1c57925b62000ace84620015a5565b801562000c0a5762000b5a62000b0a62000b0462000afe62000af862000b60959997969962001151565b62001509565b62001052565b620008f2565b62000b5462000b2362000b1d83620015d1565b62000603565b62000b4d62000b4762000b4062000b3a86620015fd565b6200061c565b8562001583565b6200051c565b9062001648565b62000a38565b62001532565b936000925b81841062000ba05750505050620004ef9162000b899160001462000b8f57620014b5565b62000964565b62000b9a9062000964565b620014b5565b909162000bff8662000bf862000bbd8562000b5486999b62000efb565b62000b4d62000be562000bdf62000bd962000b89878062001583565b6200131f565b6200155b565b62000bf1838662001583565b9062000a38565b9062000635565b950192919062000b65565b6040516307a0212760e01b8152600490fd5b62000c279062000a14565b9262000ac3565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec80000831362000a9b565b50600090565b9062000c769062001052565b633b9aca00908181029181830414901517156200051657620004ef9162000d39565b90670de0b6b3a76400009182810292818404149015178115151615620000b757600190600019830104019015150290565b818102918183041490151760011615620000b7576001670de0b6b3a7640000600019830104019015150290565b670de0b6b3a76400009081810291818304149015178215151615620000b7570490565b6103e790818102918183041490151760011615620000b7576103e8900490565b818102918183041490151760011615620000b757670de0b6b3a7640000900490565b6706f05b59d3b20000908082029182041460011615620000b757670de0b6b3a7640000900490565b670de0b6b3a764000090818102918183041490151760011615620000b757671bc16d674ec80000900490565b919082018092116200051657565b6000939291849183821162000edb5762000dd88282620016d3565b62000de48583620016d3565b600062000df282846200090c565b1362000ebc575062000e078386979662000508565b60019460009186805b62000e22575b50505050505050509050565b1562000e92575b508596979850809162000e4762000e418b8862000daf565b60011c90565b9962000e548b87620016d3565b908362000e6287846200090c565b1362000e8557505089925b8762000e7a888662000508565b920193999862000e10565b8b97509094509262000e6d565b6014108062000eb1575b1562000ea9578862000e29565b808062000e16565b506040821062000e9c565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b80156200104557675698eef06670000081121562000c6457675698eef0666fffff19811315620010385760006200102562000f3683620012f0565b62000fe362000bd962000f5762000f5162000b478562000d83565b62001628565b92620006dd6200101f62001019620010116200100a6200100462000ffd62000ff762000ff062000fea8d62000fe362000fdd62000fd662000fd062000b4062000fca62000fc362000fbd62000fb662000fb08a620014dd565b62000535565b8962001583565b62000550565b8762001583565b62000569565b62000584565b8362001583565b6200059d565b9062001583565b620005b8565b8c62001583565b620005d1565b8a62001583565b620005ea565b8862001583565b938062001583565b620008cf565b620009fa565b911215620004ef57620004ef9062000a14565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b60b581600160881b81101562001100575b80690100000000000000000062010000921015620010f2575b65010000000000811015620010e4575b6301000000811015620010d6575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916200109a565b60201c9160101b916200108c565b60401c9160201b916200107c565b5068b500000000000000009050608082901c62001063565b156200112057565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284906200117f6000821362001118565b711340daa0d5f769dba1915cef59f0815a55066200119d826200166b565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d019160016c0504a838426634cdd8738f543560611b0319916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b600160ff1b81146200130d576000811215620004ef571960010190565b604051634d2d75b160e01b8152600490fd5b680248ce36a70cb26b3e1981131562000c6457680755bf798b4a1bf1e581121562001481576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b3989179d835ebba824c98fb31b83b2ca45c0000000000000000000000006060916b8000000000000000000000008582851b0501831d94850290036e0587f503bb6ea29d25fcb740196450816c10fe68e7fd37d0007b713f7650810102841d936e05180bb14799ab47a8a8cb2a527d57836e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028a1d0102881d0102861d0102841d0102821d01946d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be88908082029182051460011615620000b757670de0b6b3a7640000900590565b67025f0fe105a3140090818102918183051490151760011615620000b757670de0b6b3a7640000900590565b671bc16d674ec7ffff19818102916001918305141615620000b757670de0b6b3a7640000900590565b6709d028cc6f205fff19818102916001918305141615620000b757670de0b6b3a7640000900590565b670fa8cedfc2adddfa908082029182051460011615620000b757670de0b6b3a7640000900590565b818102918183051490151760011615620000b757670de0b6b3a7640000900590565b670de0b6b3a764000090818102918183051490151760011615620000b757671bc16d674ec80000900590565b6703c1665c7aab200090818102918183051490151760011615620000b757670de0b6b3a7640000900590565b669f32752462a00090818102918183051490151760011615620000b757670de0b6b3a7640000900590565b60018115151615620000b7576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a76400009081810291818305149015178215151615620000b7570590565b6200167881151562001118565b8060018060801b031060071b81811c60018060401b031060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b8080518101039161010092838112620000b75760208301519360a0604085015192605f190112620000b757604051936200170d85620000d2565b6080810151855260a0810151602086015260c0810151604086015260e081015160608601520151936001600160a01b0385168503620000b757620004ef9460808501526200065256fe60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e414620000885750508063620a26071462000082578063ba414fa6146200007c578063e0d7d0e91462000076578063e21485ad14620000705763fa7626d4146200006a57600080fd5b62000726565b620005ee565b620005ce565b620005a5565b62000581565b346200055157816003193601126200055157620000a4620009ce565b805161106b8082019067ffffffffffffffff92808310848411176200052d5780620000d762000d699484868439620007cb565b039086f080156200050557601580546001600160a01b0319166001600160a01b03909216919091179055835191818301838110858211176200052d5783926200012292843962000817565b039084f080156200050557601680546001600160a01b0319166001600160a01b039283161790556015546200015f91165b6001600160a01b031690565b803b156200056c5782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af18015620005055762000555575b506016548490620001be906001600160a01b031662000153565b91823b156200055157845190815230600482015268056bc75e2d631000006024820152918290604490829084905af18015620005055762000533575b5060155462000212906001600160a01b031662000153565b60165462000229906001600160a01b031662000153565b908351916105979081840192848410868511176200052d57849362000276936200a05986396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200050557601480546001600160a01b0319166001600160a01b039092169190911790558151612f2180820190828210848311176200052d578291620002cc9162001dd484396000815260200190565b039084f080156200050557601380546001600160a01b0319166001600160a01b03929092169182179055620003019062000153565b825190611bc480830191838310858411176200052d57839262000337926200849585396001600160a01b03909116815260200190565b039084f080156200050557601780546001600160a01b0319166001600160a01b039290921691821790556200036c9062000153565b8251916137a08084019290918311848410176200052d578392620003a39262004cf585396001600160a01b03909116815260200190565b039083f09081156200050557620003da620004469260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b601554620003f1906001600160a01b031662000153565b60135462000408906001600160a01b031662000153565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200050557620004be9385936200050b575b5060165462000477906001600160a01b031662000153565b601354909190879062000493906001600160a01b031662000153565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200050557620004d2578280f35b81620004f692903d10620004fd575b620004ed818362000793565b81019062000857565b5081808280f35b503d620004e1565b6200080b565b6200052590843d8611620004fd57620004ed818362000793565b50866200045f565b6200074b565b80620005436200054a9262000761565b8062000570565b83620001fa565b5080fd5b8062000543620005659262000761565b84620001a4565b8380fd5b60009103126200057c57565b600080fd5b346200057c5760003660031901126200057c576020604051660aa87bee5380008152f35b346200057c5760003660031901126200057c576020620005c4620008f3565b6040519015158152f35b346200057c5760003660031901126200057c576020601954604051908152f35b346200057c5760203660031901126200057c5760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa908115620005055760009162000672575b60c08201516200066e906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e0116200071d575b816200069060e0938362000793565b810103126200057c576200065460c06200066e92620007108260405192620006b88462000776565b620006c381620007b6565b8452620006d360208201620007b6565b6020850152620006e660408201620007b6565b6040850152606081015160608501526080810151608085015260a081015160a085015201620007b6565b8282015292505062000640565b3d915062000681565b346200057c5760003660031901126200057c57602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200052d57604052565b60e0810190811067ffffffffffffffff8211176200052d57604052565b90601f8019910116810190811067ffffffffffffffff8211176200052d57604052565b51906001600160a01b03821682036200057c57565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b6040513d6000823e3d90fd5b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b908160209103126200057c575180151581036200057c5790565b630667f9d760e41b815281519160005b838110620008985750509060049101016000815290565b806020809284010151600482860101520162000881565b3d15620008ee573d9067ffffffffffffffff82116200052d5760405191620008e2601f8201601f19166020018462000793565b82523d6000602084013e565b606090565b6000805460081c60ff161562000910575460081c60ff1690565b90565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6200093257505090565b81925060405182816200097060208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b0362000985601f199182810185528462000793565b620009ab60405191826200099e60208201968762000871565b0390810183528262000793565b51925af1506200090d620009be620008af565b6020808251830101910162000857565b6040805161106b80820167ffffffffffffffff91838210838311176200052d578362000a0262000d699383858439620007cb565b0360009485f080156200050557601580546001600160a01b0319166001600160a01b03909216919091179055845191818301838110858211176200052d57839262000a4f92843962000817565b039083f080156200050557601680546001600160a01b0319166001600160a01b0392831617905560155462000a85911662000153565b803b1562000d645783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af18015620005055762000d4d575b5060165462000ae2906001600160a01b031662000153565b90813b156200056c57845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af18015620005055762000d36575b5060155462000b38906001600160a01b031662000153565b60165462000b4f906001600160a01b031662000153565b908451916105979081840192848410868511176200052d57849362000b9c936200a05986396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200050557601480546001600160a01b0319166001600160a01b03909216919091179055825190612f21808301918211838310176200052d57829162000bf29162001dd484396000815260200190565b039082f0918215620005055762000c2962000c989360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b60155462000c40906001600160a01b031662000153565b60135490919062000c5a906001600160a01b031662000153565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af1928315620005055762000ce394869462000d14575b5060165462000cc9906001600160a01b031662000153565b60135490929062000493906001600160a01b031662000153565b03925af18015620005055762000cf7575050565b8162000d1192903d10620004fd57620004ed818362000793565b50565b62000d2e90853d8711620004fd57620004ed818362000793565b503862000cb1565b806200054362000d469262000761565b3862000b20565b806200054362000d5d9262000761565b3862000aca565b8280fdfe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c634300081600336080346200007a57601f620037a038819003918201601f19168301916001600160401b038311848410176200007f578084926020946040528339810103126200007a57516001600160a01b038116908190036200007a57600080546001600160a01b03191691909117905560405161370a9081620000968239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630420580a146101b7578063120649c5146101b2578063134ead12146101ad5780631e978cb0146101a8578063306db46b146101a3578063332266f31461019e5780633928ff97146101995780633b268d5d146101945780633b4d10301461018f5780634e817fd91461018a5780634fd67c58146101855780635eb408fc146101805780636237569f1461017b5780636d652299146101765780637f17409c1461017157806381b5fac21461016c578063902ecaa214610167578063a8c62e7614610162578063af4e437f1461015d578063b09d04e514610158578063cb1f553214610153578063ce153bf41461014e578063e94716d514610149578063ee3e8cfb14610144578063f30d37f21461013f5763f9c282111461013a57600080fd5b610aff565b610acf565b610a9e565b610a63565b610a27565b6109e2565b6109af565b610993565b61096a565b610941565b610914565b610872565b610856565b6107e9565b6107cd565b6107a4565b610788565b610759565b61071e565b61048d565b610436565b610407565b6103e2565b610354565b61028e565b610218565b60005b8381106101cf5750506000910152565b81810151838201526020016101bf565b906020916101f8815180928185528580860191016101bc565b601f01601f1916010190565b9060206102159281815201906101df565b90565b3461026b57604036600319011261026b57610267604051600260208201526004356040820152602435606082015260608152610253816102e9565b6040519182916020835260208301906101df565b0390f35b600080fd5b608090600319011261026b5760043590602435906044359060643590565b3461026b5760206102aa6102a136610270565b92919091610b4d565b604051908152f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff8211176102e457604052565b6102b2565b6080810190811067ffffffffffffffff8211176102e457604052565b6060810190811067ffffffffffffffff8211176102e457604052565b90601f8019910116810190811067ffffffffffffffff8211176102e457604052565b6001600160a01b0381160361026b57565b3461026b5760e036600319011261026b5760a036604319011261026b576102676103bc604051610383816102c8565b60443581526064356020820152608435604082015260a435606082015260c4356103ac81610343565b608082015260243560043561139a565b60405191829182610204565b606090600319011261026b57600435906024359060443590565b3461026b5760206102aa6104016103f8366103c8565b91929092610f06565b91611583565b3461026b5760206102aa61041a366103c8565b9061042d61042784610f06565b936110d9565b92919091611670565b3461026b5760206102aa610449366103c8565b9061045661042784610f06565b9290506119da565b8015150361026b57565b90926080926102159594151583526020830152604082015281606082015201906101df565b3461026b57606036600319011261026b5761050360243561061f6004356104b38361045e565b604435926104bf610c57565b936104c8610c57565b946104d2846110d9565b60208496939592960194604096878601928352865284526104f287610f06565b998a9185519087519051918a611009565b921561069657928261054a6105519361054361053e61053661056f9861053160606105979d9c0151866125a2565b6125a2565b8651906125f8565b610c9d565b9351610cb0565b8a52610cb0565b61056385890191808352895188610c4a565b90885190519087610b4d565b9061058e6105836020890193808552610c9d565b808452825111610d31565b51905190610d24565b945b84519260c06020870151848801926105df8451976105d18851998a958693602085016040919493926060820195825260208201520152565b03601f198101845283610321565b600054610602906105f6906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610dbf565b03915afa94851561069157600095610651575b509061064691610267959651905190611583565b905194859485610468565b61026795509061067c610646939260c03d60c01161068a575b6106748183610321565b810190610d88565b505050505095509091610632565b503d61066a565b610b41565b826106df610718966106d2610704956106cb61053e6106c361070f9a61053160606106fc9b0151866125a2565b8551906125f8565b9251610cb0565b9260208d01938452610cb0565b6106f1888c019180835283518b610de3565b915190519089610df0565b808952610c9d565b808852825111610cbd565b51855190610d24565b94610599565b3461026b57604036600319011261026b57610267604051600460208201526004356040820152602435606082015260608152610253816102e9565b3461026b57602036600319011261026b5760206102aa60043561040161077e826110d9565b9291939050610f06565b3461026b5760206102aa61079e6103f8366103c8565b91611b9c565b3461026b5760206102aa6107b7366103c8565b906107c461042784610f06565b92919091611c16565b3461026b5760206102aa6107e036610270565b92919091610df0565b3461026b57604036600319011261026b5761083860043561026761081a61080f836110d9565b919050602435611f7a565b939092848461083261082b84610f06565b8383611583565b92610b4d565b92604051938493846040919493926060820195825260208201520152565b3461026b57600036600319011261026b57602060405160008152f35b3461026b57604036600319011261026b576004356108c06102676108a2610898846110d9565b9150602435611fa7565b92909383856108ba6108b384610f06565b8383611b9c565b92610df0565b91604051938493846040919493926060820195825260208201520152565b805182526020808201519083015260408082015190830152606080820151908301526080908101516001600160a01b0316910152565b3461026b57602036600319011261026b5760a0610932600435610f06565b61093f60405180926108de565bf35b3461026b5760206102aa610954366103c8565b9061096161042784610f06565b92909150611fce565b3461026b57600036600319011261026b576000546040516001600160a01b039091168152602090f35b3461026b5760206102aa6109a636610270565b92919091611009565b3461026b57602036600319011261026b576102676040516001602082015260043560408201526040815261025381610305565b3461026b57602036600319011261026b57610267600435610a0281610343565b60408051600560208201526001600160a01b0390921682820152815261025381610305565b3461026b57602036600319011261026b57610267610a466004356110d9565b604080519384526020840192909252908201529081906060820190565b3461026b57604036600319011261026b57610267604051600360208201526004356040820152602435606082015260608152610253816102e9565b3461026b57604036600319011261026b5761083860043561026761081a610ac4836110d9565b919050602435611fa7565b3461026b57604036600319011261026b576004356108c06102676108a2610af5846110d9565b9150602435611f7a565b3461026b57600036600319011261026b57602060405160788152f35b9081602091031261026b575190565b6040906102159392815281602082015201906101df565b6040513d6000823e3d90fd5b610b85610bee9493929361053184610b7e610b79610b74610b6d88610f06565b809661230a565b61237f565b6123b2565b92516125a2565b916020604051610bbc81610bae85888a8785016040919493926060820195825260208201520152565b03601f198101835282610321565b600054610bd3906105f6906001600160a01b031681565b6040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093610c15575b50610c0f90610f06565b936111f1565b610c0f919350610c3c9060203d602011610c43575b610c348183610321565b810190610b1b565b9290610c05565b503d610c2a565b9161040161021593610f06565b604051906060820182811067ffffffffffffffff8211176102e45760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610cab57565b610c87565b91908201809211610cab57565b15610cc457565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b6103e719810191908211610cab57565b91908203918211610cab57565b15610d3857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c091031261026b578151610d9f8161045e565b9160208101519160408201519160608101519160a0608083015192015190565b610215939260609260018060a01b03168252602082015281604082015201906101df565b9161079e61021593610f06565b92610b79610b74610e0d92949394610e0787610f06565b90612f44565b92670de0b6b3a7640000938403938411610cab57610e2e610e5794836125a2565b916020604051610bbc81610bae8589898785016040919493926060820195825260208201520152565b03915afa9182156106915761021595600093610e7e575b50610e7890610f06565b93611e24565b610e78919350610e9c9060203d602011610c4357610c348183610321565b9290610e6e565b91908260a091031261026b57604051610ebb816102c8565b608080829480518452602081015160208501526040810151604085015260608101516060850152015191610eee83610343565b0152565b9060a08282031261026b5761021591610ea3565b90604051610f13816102c8565b600090818152816080602092828482015282604082015282606082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610691578092610f7a575b506102159293508082518301019101610ef2565b9091503d8082863e610f8c8186610321565b840190828583031261100257845167ffffffffffffffff9586821161100557019082601f830112156110025781519586116102e45760405192610fd8601f8801601f1916860185610321565b86845284878401011161100257506102159394610ffa918480850191016101bc565b908392610f66565b80fd5b8280fd5b61105d939192602060405161103781610bae87868a8785016040919493926060820195825260208201520152565b60018060a01b03600054166040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093611084575b5061107e90610f06565b936121b4565b61107e9193506110a29060203d602011610c4357610c348183610321565b9290611074565b9081602091031261026b575161021581610343565b9081606091031261026b578051916040602083015192015190565b90600460206110f56105f66105f660005460018060a01b031690565b604051632bee84f160e21b815292839182905afa928315610691576111409360609260009161119d575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156106915760008093600093611166575b50929190565b9193505061118c915060603d606011611196575b6111848183610321565b8101906110be565b9290929138611160565b503d61117a565b6111bf915060203d6020116111c5575b6111b78183610321565b8101906110a9565b3861111f565b503d6111ad565b6111ef9360609296959361010083019783526020830152604082015201906108de565b565b929360009385929185851215611367575b8585126113485790610bae611224925b604096604051958694602086016111cc565b81859285968281116113255761123a818561337f565b92611245818661337f565b88611250828761152f565b136113045750906112649197969297610d24565b60019591829187805b61127f575b5050505050505050505090565b156112e0575b5086979850819261129f6112998b89610cb0565b60011c90565b996112aa8b8861337f565b90846112b6888461152f565b136112d457505089935b886112cb8987610d24565b9201949961126d565b8b9850909550936112c0565b601410806112fb575b156112f45788611285565b8080611272565b508083106112e9565b6040516306f1be5d60e21b8152600481018690526024810191909152604490fd5b604051633082dfdb60e11b81526004810191909152602481019290925250604490fd5b935091611354906125ce565b91611361848385846124a9565b93611202565b85851361137b5790610bae61122492611212565b935094611387906123f5565b94611394848388846124a9565b93611367565b916113ab610b79610b748385612f44565b91670de0b6b3a7640000928303928311610cab57611402826113ee6113e3610b79610b74846113dd6114209a8c6125f8565b9761230a565b6105318584516125a2565b926113fb8282868a6124a9565b84886121b4565b906040519460208601526040850152606084015260808301906108de565b6101008152610120810181811067ffffffffffffffff8211176102e45760405290565b90670de0b6b3a764000060008382039312818412811691841390151617610cab57565b90671bc16d674ec8000060008382039312818412811691841390151617610cab57565b9067119000ab100ffbff198201918213600116610cab57565b81810392916000138015828513169184121617610cab57565b90670de0b6b3a764000091828102928184051490151715610cab57565b90671bc16d674ec8000091828102928184051490151715610cab57565b90633b9aca0091828102928184051490151715610cab57565b60008190039190600160ff1b8114600116610cab57600019830503610cab57565b818102929160008212600160ff1b821416610cab578184051490151715610cab57565b811561156d57600160ff1b8114600019831416610cab570590565b634e487b7160e01b600052601260045260246000fd5b9190916115be60208301936115b885516115b06115a66040880192835190612843565b975182519061286c565b905190612414565b92612435565b92670de0b6b3a76400008085121561163c5760008513156116315760008582039512818612811691861390151617610cab5761162561162a92611620611612610b799461160d6102159961288b565b61152f565b670de0b6b3a7640000900590565b6114a2565b612917565b90516125a2565b505050505060001990565b5050505050600090565b90959492936111ef94608093610120840198845260208401526040830152606082015201906108de565b909291828651602088015160408901519060608a01519261169083612ac8565b6116999061185a565b936116a390611443565b906116ad8a612b86565b6116b68b611981565b6116bf91612c38565b6116c88b611981565b6116d184612bb5565b6116da916114a2565b6116e49088612c38565b6116ed91612cb5565b6116f690612cd3565b9361170084612fbb565b611709906114d8565b670de0b6b3a7640000900561171d90612917565b9061172791612c38565b61173090612c67565b611739906119c9565b848661174486612c09565b9061174e91612c38565b9061175891612c38565b611761916119ad565b61176a90612917565b826117758c84612c38565b9061177f91612c38565b61178891612c38565b6117918b611981565b61179a84612bb5565b6117a3916114a2565b6117ac91612cb5565b956117b691612c38565b906117c090611993565b6117c991612c38565b926117d391612c38565b6117dc90612c8e565b906117e6916114a2565b6117ef90612e24565b6117f891612c38565b61180186612b86565b61180a91612cb5565b90611814846119c9565b9061181e916119ad565b90611828916119ad565b60001361184f576102159561184a93610bae9260405196879560208701611646565b61264d565b505050505050600090565b90633b9aca0091828102928184041490151715610cab57565b9081672005fe4f268ea00001918212600116610cab57565b9081670dc5527f642c200001918212600116610cab57565b9081670de0b6b3a764000001918212600116610cab57565b9081670b68df18e471fbff190191821215600116610cab57565b90816714a8454c19e1ac0001918212600116610cab57565b9081670fc10e01578277ff190191821215600116610cab57565b90816703debd083b8c7c0001918212600116610cab57565b9081670295d400ea3257ff190191821215600116610cab57565b9081670157d8b2ecc7080001918212600116610cab57565b90816705310aa7d521300001918212600116610cab57565b9081670de0cc3d1561000001918212600116610cab57565b90816103e801918212600116610cab57565b9081670de0b6b3a763ffff190191821215600116610cab57565b91909160008382019384129112908015821691151617610cab57565b600160ff1b8114610cab5760000390565b939290919280519160208201519060408301519260600151936119fc84612ac8565b611a059061185a565b94611a0f90611443565b9182611a1a88612b86565b611a2489846119ad565b611a2d91612c38565b611a3789846119ad565b611a418385612c38565b611a4a916114a2565b611a54908b612c38565b611a5d91612cb5565b611a6690612cd3565b95611a7086612fbb565b611a79906114d8565b670de0b6b3a76400009005611a8d90612917565b90611a9791612c38565b611aa090612c67565b611aa9906119c9565b8688611ab488612c09565b90611abe91612c38565b90611ac891612c38565b611ad1916119ad565b611ada90612917565b81611ae58a86612c38565b90611aef91612c38565b611af891612c38565b91611b0389826119ad565b91611b0d91612c38565b611b16916114a2565b611b1f91612cb5565b96611b2991612c38565b90611b3390611993565b611b3c91612c38565b92611b4691612c38565b611b4f90612c8e565b90611b59916114a2565b611b6290612e24565b611b6b91612c38565b90611b7590612b86565b611b7e91612cb5565b91611b88906119c9565b90611b92916119ad565b90610215916119ad565b919091611bda6020830191611bd4611bcc84516115b0611bc26040890192835190612843565b965182519061286c565b958551612414565b90612435565b670de0b6b3a7640000918282121561163c576000821315611631576102159461162a93611c106116259361160d610b799661288b565b056119ad565b909291855160208701516040880151606089015191611c3482612ac8565b611c3d9061185a565b92611c4790611443565b93611c5186612b86565b611c5a87611981565b611c6391612c38565b611c6d8983612c38565b611c7688611981565b611c7f91612c38565b611c88906119c9565b86611c938b85612c38565b611c9c90612bde565b90611ca691612c38565b611caf916119ad565b611cb891612cb5565b611cc1906119c9565b611cca90612cd3565b92611cd483612fbb565b611cdd906114d8565b670de0b6b3a76400009005611cf190612917565b90611cfb91612c38565b611d0490612c67565b611d0d906119c9565b8385611d1885612c09565b90611d2291612c38565b90611d2c91612c38565b611d35916119ad565b611d3e90612917565b85611d49888a612c38565b90611d5391612c38565b611d5c91612c38565b90611d6687611981565b611d6f87612bb5565b611d78916114a2565b611d8191612c38565b611d8a91612cb5565b93611d958789612c38565b90611d9f90611993565b611da891612c38565b92611db291612c38565b611dbb90612c8e565b90611dc5916114a2565b611dce90612e24565b611dd791612c38565b611de083612b86565b611de991612cb5565b90611df390611993565b90611dfd916119ad565b60001361184f5761021595611e1f93610bae9260405196879560208701611646565b61276c565b929360009385929185851215611f47575b858512611f285790610bae611e5692604096604051958694602086016111cc565b818592859682811161132557611e6c81856133a0565b92611e7781866133a0565b88611e82828761152f565b13611304575090611e969197969297610d24565b60019591829187805b611eb0575050505050505050505090565b15611f0b575b50869798508192611eca6112998b89610cb0565b99611ed58b886133a0565b9084611ee1888461152f565b13611eff57505089935b88611ef68987610d24565b92019499611e9f565b8b985090955093611eeb565b60141080611f1f575b156112f45788611eb6565b50808310611f14565b935091611f34906125ce565b91611f41848383866124a9565b93611e35565b858513611f5b5790610bae611e5692611212565b935094611f67906123f5565b94611f74848383896124a9565b93611f47565b929190611f90611f8a82846125f8565b856125a2565b938103908111610cab57928103908111610cab5790565b929190611fb7611f8a82846125f8565b938101809111610cab57928101809111610cab5790565b9390929181516020830151916040840151936060015194611fee85612ac8565b611ff79061185a565b9561200190611443565b928361200c89612b86565b6120168a856119ad565b61201f91612c38565b6120298584612c38565b6120338b866119ad565b61203c91612c38565b612045906119c9565b82856120518887612c38565b9061205b91612c38565b9061206591612c38565b61206e916119ad565b61207791612cb5565b612080906119c9565b61208990612cd3565b9661209387612fbb565b61209c906114d8565b670de0b6b3a764000090056120b090612917565b906120ba91612c38565b6120c390612c67565b6120cc906119c9565b87896120d789612c09565b906120e191612c38565b906120eb91612c38565b6120f4916119ad565b6120fd90612917565b816121088b8d612c38565b9061211291612c38565b61211b91612c38565b926121268a826119ad565b9161213091612c38565b612139916114a2565b61214291612c38565b61214b91612cb5565b9661215591612c38565b9061215f90611993565b61216891612c38565b9261217291612c38565b61217b90612c8e565b90612185916114a2565b61218e90612e24565b61219791612c38565b906121a190612b86565b6121aa91612cb5565b90611b9290611993565b9293600093859291858512156122d7575b8585126122b85790610bae6121e692604096604051958694602086016111cc565b8185928596828111611325576121fc81856133c2565b9261220781866133c2565b88612212828761152f565b136113045750906122269197969297610d24565b60019591829187805b612240575050505050505050505090565b1561229b575b5086979850819261225a6112998b89610cb0565b996122658b886133c2565b9084612271888461152f565b1361228f57505089935b886122868987610d24565b9201949961222f565b8b98509095509361227b565b601410806122af575b156112f45788612246565b508083106122a4565b9350946122c4906123f5565b946122d1848784846124a9565b936121c5565b8585136122eb5790610bae6121e692611212565b9350916122f7906125ce565b91612304848484846124a9565b936122d7565b61237a6123756102159361236f61236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b9d6125f8565b612fbb565b97612fbb565b6114d8565b05612917565b612414565b612457565b906114a2565b6114bb565b611552565b6123ae6123756123a96713a04bbdfdc9be886123a3671bc16d674ec80000956114bb565b056119c9565b612e24565b0590565b600081126123bd5790565b60405162461bcd60e51b815260206004820152601060248201526f746f55696e743a206e6567617469766560801b6044820152606490fd5b6103e79081810291818304149015176001161561026b576103e8900490565b81810291818304149015176001161561026b57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517821515161561026b570490565b6706f05b59d3b2000090808202918204146001161561026b57670de0b6b3a7640000900490565b670de0b6b3a76400009081810291818304149015176001161561026b57671bc16d674ec80000900490565b90928282101561255d57610215936125269284670de0b6b3a764000091826124d18383612435565b1061254a57506001600160ff1b039590505b8351916124f96124f38385612414565b85612435565b1061252b57506001600160ff1b0392612520925090505b6040602082015191015190612843565b926119ad565b6119ad565b61252092611bd461253f9261254494612414565b61288b565b91612510565b6125579161253f91612435565b946124e3565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b81810291818304149015176001161561026b576001670de0b6b3a7640000600019830104019015150290565b6103e99081810291818304149015176001161561026b5760016103e8600019830104019015150290565b90670de0b6b3a7640000918281029281840414901517811515161561026b57600190600019830104019015150290565b6101008183031261026b57805192610215602083015193606060408501519401610ea3565b91906103e89260009360009183821161274b57612669816133e2565b6126738583613521565b600061267f828461152f565b1361272c5750612690859695610d14565b60019460009186805b6126aa575b50505050505050509050565b15612707575b50859697985080916126c56112998b88610cb0565b996126d08b87613521565b90836126dc878461152f565b136126fb57505089925b876126f18886610d24565b9201939998612699565b8b9750909450926126e6565b861080612721575b1561271a57886126b0565b808061269e565b50610100821061270f565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e89260009360009183821161274b5761278881613543565b61279285836136b3565b600061279e828461152f565b1361272c57506127af859695610d14565b60019460009186805b6127c85750505050505050509050565b15612825575b50859697985080916127e36112998b88610cb0565b996127ee8b876136b3565b90836127fa878461152f565b1361281957505089925b8761280f8886610d24565b92019399986127b8565b8b975090945092612804565b861080612838575b1561271a57886127ce565b50610100821061282d565b9061284d90612ac8565b633b9aca0090818102918183041490151715610cab5761021591612414565b61021591612365670de0b6b3a764000061235f61235a61236a95612fbb565b6706f05b59d3b20000811461291157670de0b6b3a764000090818112156128ff5780156128ed578060011b908105600203610cab576128c990612cd3565b906713a04bbdfdc9be8891808302928305146001161561026b5761021591056119c9565b6040516322ed598560e21b8152600490fd5b6040516307a0212760e01b8152600490fd5b50600090565b680248ce36a70cb26b3e1981131561291157680755bf798b4a1bf1e5811215612a67576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b91906101208382031261026b57825192602081015192610215604083015193608060608501519401610ea3565b60b581600160881b811015612b6f575b80690100000000000000000062010000921015612b62575b65010000000000811015612b55575b6301000000811015612b48575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b91612b0c565b60201c9160101b91612aff565b60401c9160201b91612af0565b5068b500000000000000009050608082901c612ad8565b671bc16d674ec8000081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e881810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e88082029160016000198210179181840514901517161561026b57670de0b6b3a7640000900590565b6713a04bbde78cc40081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b90911317161561026b57670de0b6b3a7640000900590565b670de0b6b3a764000090818102918205146001161561026b57671bc16d674ec80000900590565b670de0b6b3a764000090818102918205146001161561026b576713a04bbde78cc400900590565b670de0b6b3a76400009081810291820514821515161561026b570590565b600081128015612e13575b612e015780156128ff57671bc16d674ec8000081146128ed57670de0b6b3a76400008112908115612df257905b612d1482613189565b80156128ff57612d7d612d41612d3c612d37612d32612d8295612fbb565b61324a565b612ac8565b6114f5565b611620612d55612d50836131b4565b611873565b612d77612d72612d6c612d67866131df565b61188b565b856132c1565b6118a3565b90613228565b613272565b916000905b60028210612da257505015612d995790565b610215906119c9565b9092612dea81612de4612dba85611620600196612e24565b612d77612dda612dd5611625612dd087806132c1565b6119c9565b61329a565b61236f83866132c1565b906119ad565b930190612d87565b612dfb90611466565b90612d0b565b604051632d0483c560e21b8152600490fd5b50671bc16d674ec800008113612cde565b8015612f3757675698eef06670000081121561291157675698eef0666fffff19811315612f2a576000612f1a612e598361315c565b612ee2611625612e73612e6e612d728561247e565b613209565b92612526612f15612f10612f09612f03612efe612ef8612ef3612eed612ee88d612ee2612edd612ed7612ed2612d6c612ecd612ec7612ec2612ebc612eb78a6132e2565b6118bb565b896132c1565b6118d5565b876132c1565b6118ed565b611907565b836132c1565b61191f565b906132c1565b611939565b8c6132c1565b611951565b8a6132c1565b611969565b886132c1565b93806132c1565b61150e565b611489565b9112156102155761021590611466565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b61237a61237561021593612de461236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b15612f8a57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b886428490612fe760008213612f83565b711340daa0d5f769dba1915cef59f0815a55066130038261330d565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b600160ff1b8114613177576000811215610215571960010190565b604051634d2d75b160e01b8152600490fd5b670de0b6b3a76400009081810291818305149015176001161561026b57671bc16d674ec80000900590565b6703c1665c7aab20009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b669f32752462a0009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b6001811515161561026b576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029181830514901517821515161561026b570590565b671bc16d674ec7ffff1981810291600191830514161561026b57670de0b6b3a7640000900590565b6709d028cc6f205fff1981810291600191830514161561026b57670de0b6b3a7640000900590565b670fa8cedfc2adddfa90808202918205146001161561026b57670de0b6b3a7640000900590565b81810291818305149015176001161561026b57670de0b6b3a7640000900590565b67025f0fe105a314009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b613318811515612f83565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b906133966102159260208082518301019101612628565b93919290506124a9565b906133b76102159260208082518301019101612628565b9390509190916124a9565b906133d96102159260208082518301019101612628565b939290506124a9565b8051810160200190602001906133f791612a9b565b809193925051906020810151604082015191606001519261341783612ac8565b6134209061185a565b9361342a90611443565b9061343486612b86565b61343d87611981565b61344691612c38565b61344f87611981565b61345884612bb5565b613461916114a2565b61346b9089612c38565b61347491612cb5565b61347d90612cd3565b9361348784612fbb565b613490906114d8565b670de0b6b3a764000090056134a490612917565b906134ae91612c38565b6134b790612c67565b6134c0906119c9565b84866134cb86612c09565b906134d591612c38565b906134df91612c38565b6134e8916119ad565b6134f190612917565b826134fc8884612c38565b9061350691612c38565b61350f91612c38565b61351887611981565b611b0d84612bb5565b906135386102159260208082518301019101612a9b565b9493909291506119da565b80518101602001906020019061355891612a9b565b809192935051602082015190604083015192606001519361357884612ac8565b6135819061185a565b9461358b90611443565b9161359587612b86565b61359e88611981565b6135a791612c38565b6135b18383612c38565b6135ba89611981565b6135c391612c38565b6135cc906119c9565b846135d78585612c38565b6135e090612bde565b906135ea91612c38565b6135f3916119ad565b6135fc91612cb5565b613605906119c9565b61360e90612cd3565b9461361885612fbb565b613621906114d8565b670de0b6b3a7640000900561363590612917565b9061363f91612c38565b61364890612c67565b613651906119c9565b858761365c87612c09565b9061366691612c38565b9061367091612c38565b613679916119ad565b61368290612917565b8361368d898b612c38565b9061369791612c38565b6136a091612c38565b906136aa88611981565b61213085612bb5565b906136ca6102159260208082518301019101612a9b565b9493909250611fce56fea2646970667358221220f3e875cd9c43c4535da38090630f644037f96036f7dad55519e2d7d792047e4b64736f6c6343000816003360803461007457601f611bc438819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051611b3490816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b6109e4565b6109bb565b610814565b6107da565b610674565b6103dc565b6102e1565b61023d565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101df565b838082518301019101610a17565b9061010d6100ff600435610b92565b868082518301019101610a32565b92610d8d565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761015057604052565b61011e565b60c0810190811067ffffffffffffffff82111761015057604052565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101bd601f8201601f191660200184610171565b8294818452818301116101da578281602093846000960137010152565b600080fd5b9080601f830112156101da578160206101fa93359101610193565b90565b919082519283825260005b848110610229575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610208565b346101da5760003660031901126101da57604051604081019080821067ffffffffffffffff8311176101505761029a916040526009815268131bd9d39bdc9b585b60ba1b60208201526040519182916020835260208301906101fd565b0390f35b906040516080810181811067ffffffffffffffff821117610150576040526060600382948054845260018101546020850152600281015460408501520154910152565b346101da5760203660031901126101da5760043560005260016020526101c0604060002061030e8161029e565b9061031b6004820161029e565b906103bd61032b6008830161029e565b610393600c84015493600d60018060a01b03910154169461036d6040518098606080918051845260208101516020850152604081015160408501520151910152565b80516080880152602081015160a0880152604081015160c08801526060015160e0870152565b80516101008601526020810151610120860152604081015161014086015260600151610160850152565b6101808301526101a0820152f35b6001600160a01b038116036101da57565b346101da576060806003193601126101da576103f96004356103cb565b6024356044359167ffffffffffffffff83116101da576104206104829336906004016101df565b8161043c61042d85610b92565b60208082518301019101610a32565b60005490949061046290610456906001600160a01b031681565b6001600160a01b031690565b60405180809881946333854efd60e21b8352600483019190602083019252565b03915afa801561061457600091829583926105d9575b50806020806104ac93518301019101610a17565b939194909682861160001461054c5750916104ed826104e8836104e36104fe976104d96104f5988c610aa3565b908c0151906112af565b6112af565b6112db565b505b83610afe565b93828685610d8d565b9384601319129283610541575b61029a9394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b60148612935061050b565b90929091508187111561057b57610575826104e8836104e36104fe976104d96104f5988e610aa3565b506104ef565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9095506104ac92506106019150833d851161060d575b6105f98183610171565b810190610a17565b95919290959190610498565b503d6105ef565b610a81565b9060606003198301126101da57600435610632816103cb565b916024359160443567ffffffffffffffff928382116101da57806023830112156101da5781600401359384116101da57602484830101116101da576024019190565b346101da5761068236610619565b600054929350916001600160a01b031633036107c85761078661077e61042d610779956106c0608095610743976106b7610b67565b50810190610e8c565b6020819b949a9399929b01516106e0866000526001602052604060002090565b55604081015160046106fc876000526001602052604060002090565b015580516008610716876000526001602052604060002090565b01556060810151600c610733876000526001602052604060002090565b015501516001600160a01b031690565b600d610759846000526001602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610b92565b848385610d8d565b92836013191291826107bd575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b601485129250610793565b604051636853cba760e01b8152600490fd5b346101da5760606107ea36610619565b818094509492940103126101da5780359061078661077e61042d6040602085013594013595610b92565b346101da5761082236610619565b6000549093906001600160a01b0390811633036107c857610863610456600d610855876000526001602052604060002090565b01546001600160a01b031690565b9116036109a95761087683820182610b32565b61087f81610b47565b600181036108b857506108a261089d6108b392600c94953691610193565b610fc3565b926000526001602052604060002090565b01555b005b6108c181610b47565b600381036108fd5750906108e56108e06108f8936108b6953691610193565b610f19565b9290916000526001602052604060002090565b610f41565b61090681610b47565b6004810361094057509060046109276108e061093a946108b6963691610193565b9390926000526001602052604060002090565b01610f41565b61094981610b47565b6002810361096a57509060086109276108e061093a946108b6963691610193565b80610976600592610b47565b03610997576107596108a2610992600d936108b6963691610193565b610ef1565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101da5760003660031901126101da576000546040516001600160a01b039091168152602090f35b346101da5760203660031901126101da5761029a610a03600435610b92565b6040519182916020835260208301906101fd565b908160609103126101da578051916040602083015192015190565b908160a09103126101da57608060405191610a4c83610134565b805183526020810151602084015260408101516040840152606081015160608401520151610a79816103cb565b608082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610ab057565b610a8d565b91908201809211610ab057565b90671bc16d674ec8000060008382039312818412811691841390151617610ab057565b9067119000ab100ffbff198201918213600116610ab057565b81810392916000138015828513169184121617610ab057565b600160ff1b8114610ab05760000390565b600611156101da57565b908160209103126101da57356101fa81610b28565b60061115610b5157565b634e487b7160e01b600052602160045260246000fd5b60405190610b7482610134565b60006080838281528260208201528260408201528260608201520152565b610b9a610b67565b816000526001602052610bb8610bb3604060002061029e565b610ff8565b9160208201928352806000526001602052610bdc610bb3600860406000200161029e565b8252600c610c1d610c05610bb36004610bff866000526001602052604060002090565b0161029e565b92604085019384526000526001602052604060002090565b015490606083019182526040519383516020860152516040850152516060840152516080830152608060018060a01b039101511660a082015260a081526101fa81610155565b9081672005fe4f268ea00001918212600116610ab057565b9081670dc5527f642c200001918212600116610ab057565b9081670de0b6b3a764000001918212600116610ab057565b9081670b68df18e471fbff190191821215600116610ab057565b90816714a8454c19e1ac0001918212600116610ab057565b9081670fc10e01578277ff190191821215600116610ab057565b90816703debd083b8c7c0001918212600116610ab057565b9081670295d400ea3257ff190191821215600116610ab057565b9081670157d8b2ecc7080001918212600116610ab057565b90816705310aa7d521300001918212600116610ab057565b9081670de0cc3d1561000001918212600116610ab057565b91909160008382019384129112908015821691151617610ab057565b909282821015610e47576101fa93610e0a9284670de0b6b3a76400009182610db5838361130b565b10610e3457506001600160ff1b039590505b835191610ddd610dd7838561132d565b8561130b565b10610e0f57506001600160ff1b0392610e04925090505b6040602082015191015190611286565b92610d71565b610d71565b610e0492610e23610e2992610e2e9461132d565b9061130b565b6110b3565b91610df4565b610e4191610e299161130b565b94610dc7565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b80910361010081126101da5781359260208301359260a0604082013593605f1901126101da5760e060405191610ec183610134565b606081013583526080810135602084015260a0810135604084015260c081013560608401520135610a79816103cb565b6040818051810103126101da5780610f0e60206040930151610b28565b0151610456816103cb565b6060818051810103126101da57610f336020820151610b28565b606060408201519101519091565b919042821115610fb157610f57610bb38461029e565b9081845542600385015542830391838311610ab057610f7591610afe565b428314610f9b57600160ff1b8114600019831416610ab057600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101da5780610fe060206040930151610b28565b015190565b81810292918115918404141715610ab057565b606081015160208201518082146110735780421160001461106b57905b8103908111610ab05760408201908151600081136000146110485750611042906101fa9351925190610fe5565b90610ab5565b9261105f9250611059905193610b17565b90610fe5565b8103908111610ab05790565b504290611015565b50505190565b90633b9aca0091828102928184051490151715610ab057565b60008190039190600160ff1b8114600116610ab057600019830503610ab057565b6706f05b59d3b20000811461128057670de0b6b3a76400008082121561122a57811561124b5760018260011b916002938305600203610ab05760008312801561126f575b61125d57821561122a57671bc16d674ec80000831461124b57821291821561123c57925b611124846118db565b801561122a5761119661115561115061114b61114661119b959997969961146f565b61199c565b611379565b611079565b61119161116961116483611906565b610c63565b61118b61118661118061117b86611931565b610c7b565b85611a13565b610c93565b9061197a565b610afe565b6119c4565b936000925b8184106111d257505050506101fa916111bf916000146111c4576118b4565b610b17565b6111cd90610b17565b6118b4565b90916112208661121a6111ea8561119186999b611610565b61118b61120a6112056112006111bf8780611a13565b611730565b6119ec565b6112148386611a13565b90610afe565b90610d71565b95019291906111a0565b6040516307a0212760e01b8152600490fd5b61124590610ac2565b9261111b565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec8000083136110f7565b50600090565b9061129090611379565b633b9aca0090818102918183041490151715610ab0576101fa9161132d565b8181029181830414901517600116156101da576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101da57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101da570490565b8181029181830414901517600116156101da57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517600116156101da57671bc16d674ec80000900490565b60b581600160881b811015611420575b80690100000000000000000062010000921015611413575b65010000000000811015611406575b63010000008110156113f9575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916113bd565b60201c9160101b916113b0565b60401c9160201b916113a1565b5068b500000000000000009050608082901c611389565b1561143e57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642849061149b60008213611437565b711340daa0d5f769dba1915cef59f0815a55066114b782611a5f565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b801561172357675698eef06670000081121561128057675698eef0666fffff1981131561171657600061170661164583611ad1565b6116ce61120061165f61165a6111868561134e565b61195b565b92610e0a6117016116fc6116f56116ef6116ea6116e46116df6116d96116d48d6116ce6116c96116c36116be6111806116b96116b36116ae6116a86116a38a611a34565b610cab565b89611a13565b610cc5565b87611a13565b610cdd565b610cf7565b83611a13565b610d0f565b90611a13565b610d29565b8c611a13565b610d41565b8a611a13565b610d59565b88611a13565b9380611a13565b611092565b610ae5565b9112156101fa576101fa90610ac2565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b680248ce36a70cb26b3e1981131561128057680755bf798b4a1bf1e5811215611880576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be889080820291820514600116156101da57670de0b6b3a7640000900590565b670de0b6b3a7640000908181029181830514901517600116156101da57671bc16d674ec80000900590565b6703c1665c7aab2000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b669f32752462a000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b600181151516156101da576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a764000090818102918183051490151782151516156101da570590565b671bc16d674ec7ffff198181029160019183051416156101da57670de0b6b3a7640000900590565b6709d028cc6f205fff198181029160019183051416156101da57670de0b6b3a7640000900590565b670fa8cedfc2adddfa9080820291820514600116156101da57670de0b6b3a7640000900590565b8181029181830514901517600116156101da57670de0b6b3a7640000900590565b67025f0fe105a31400908181029181830514901517600116156101da57670de0b6b3a7640000900590565b611a6a811515611437565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b600160ff1b8114611aec5760008112156101fa571960010190565b604051634d2d75b160e01b8152600490fdfea2646970667358221220b596d744fe988e0f66eb3212b01d8a9e660acea43730ff108a9b5edd5f05d2b364736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a26469706673582212207941646642db53c47110772a797d74489876be89a1f718aeb1e565458d4ceedc64736f6c63430008160033","sourceMap":"198:2085:79:-:0;;;1594:4:0;198:2085:79;;1594:4:0;198:2085:79;;;1594:4:0;198:2085:79;378:11:59;198:2085:79;378:11:59;:4:31;:11:59;198:2085:79;378:11:59;;362:159:79;378:11:59;;362:159:79;378:11:59;;;;362:159:79;378:11:59;509:4:79;362:159;378:11:59;;362:159:79;378:11:59;;;;;;;;509:4:79;378:11:59;;;;;;;;;;;;554:3:79;378:4:31;554:3:79;378:11:59;;554:3:79;586;378:4:31;362:159:79;378:11:59;;586:3:79;378:11:59;634:68:79;554:3;378:11:59;362:159:79;378:11:59;;;:::i;:::-;634:68:79;;:::i;:::-;378:11:59;:::i;:::-;198:2085:79;;;;;;;;;;;;;378:11:59;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;;;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;378:11:59;;;;-1:-1:-1;;;;;378:11:59;;;;;;;;;;:::o;:::-;198:2085:79;;378:11:59;;;;:::i;:::-;362:159:79;378:11:59;;;;;;;;;;;198:2085:79;378:11:59;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;378:11:59;634:68:79;-1:-1:-1;378:11:59;;-1:-1:-1;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;378:11:59;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;;;634:68:79;378:11:59;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:68:79;378:11:59;:::o;:::-;;;;-1:-1:-1;378:11:59;;;;;634:68:79;378:11:59;;-1:-1:-1;;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:68:79;378:11:59;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5320:526:37;378:11:59;;2443:12:37;;;378:11:59;;;2457:10:37;;;;378:11:59;;;2497:31:37;;;;:::i;:::-;1133:19:18;;;;;:::i;:::-;303:29:45;;;:::i;:::-;378:4:31;;1399:8:18;;;;:::i;:::-;:12;;;:::i;:::-;198:2085:79;1391:36:18;;;:::i;:::-;631:21;;;;:::i;:::-;;;;:::i;:::-;2657:36:37;;;:::i;:::-;2656:45;;;:::i;:::-;:68;;;;:::i;:::-;1009:16;;;:::i;:::-;1053:24;;;:::i;:::-;198:2085:79;;;;;;;1133:19:18;;;;:::i;:::-;378:11:59;;;;;;;3255:31:37;;;;;:::i;:::-;1133:19:18;;;;:::i;:::-;303:29:45;;;:::i;:::-;1399:8:18;;;;:::i;:::-;:12;;;:::i;:::-;198:2085:79;1391:36:18;;;:::i;:::-;631:21;;;;:::i;:::-;;;;:::i;:::-;3415:36:37;;;:::i;:::-;3414:45;;;:::i;:::-;:68;;;;:::i;:::-;1444:16;;;:::i;:::-;1488:24;;;:::i;:::-;378:11:59;;;799:19:18;;;;:::i;:::-;;;;;:::i;:::-;5620:111:37;;;;;;;;:::i;:::-;5741:55;;;;;;:::i;:::-;2457:10;198:2085:79;;2443:12:37;5809:34;;;198:2085:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;198:2085:79;;;;;;;;5809:34:37;;;198:2085:79;;5809:34:37;:::i;:::-;5320:526;:::o;198:2085:79:-;378:11:59;;;198:2085:79;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;1905:7:21;198:2085:79;;;;;;;;:::o;:::-;;2650:19:21;;;198:2085:79;;;;;;;;;:::o;:::-;;;2590:20:21;198:2085:79;;;;;;;;:::o;:::-;;2529:21:21;;;198:2085:79;;;;;;;;;:::o;:::-;;;2463:18:21;198:2085:79;;;;;;;;:::o;:::-;;2396:19:21;;;198:2085:79;;;;;;;;;:::o;:::-;;;2331:17:21;198:2085:79;;;;;;;;:::o;:::-;;;2265:18:21;198:2085:79;;;;;;;;:::o;:::-;;;2205:20:21;198:2085:79;;;;;;;;:::o;:::-;;;2852:20:21;198:2085:79;;;;;;;;:::o;:::-;;;2980:18:21;198:2085:79;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;2719:1063:44:-;;;2907:6;;;198:2085:79;;;3754:21:44;2955:12;3754:13;2955:12;378:4:31;;965:21:18;;;;;;:::i;:::-;3003:42:44;378:4:31;;-1:-1:-1;;;;;;3076:12:44;2999:197;-1:-1:-1;2999:197:44;378:11:59;;631:21:18;965;631;;;;:::i;:::-;965;;:::i;:::-;3222:117:44;378:4:31;;-1:-1:-1;;;;;;3076:12:44;3690:45;;-1:-1:-1;3205:453:44;-1:-1:-1;3205:453:44;3724:10;3710:12;;;378:11:59;3724:10:44;;378:11:59;3690:45:44;;:::i;:::-;3754:13;;:::i;:::-;:21;:::i;3205:453::-;3690:45;631:21:18;;965;631;3431:216:44;631:21:18;;:::i;:::-;965;;:::i;:::-;3431:216:44;:::i;:::-;3205:453;;;2999:197;3128:57;965:21:18;;;;:::i;3128:57:44:-;2999:197;;;198:2085:79;;;-1:-1:-1;;;198:2085:79;;;;;;;;;;;;;;;;;;;;5848:1096:37;6037:29;;5848:1096;6037:29;;5848:1096;;6173:1;6153:21;;;6173:1;;;6193:21;;;;;;6149:612;;6789:45;;6149:612;6770:171;6149:612;;;;;198:2085:79;;6789:45:37;;;;;;198:2085:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;;;;;198:2085:79;;;378:11:59;198:2085:79;;;;6789:45:37;;378:11:59;;6789:45:37;;;;;;:::i;:::-;6770:171;:::i;6186:274::-;6238:27;;;;;:::i;:::-;6299:150;;;;;;;:::i;:::-;6186:274;;;6149:612;6489:21;;;;;6149:612;;6789:45;;6149:612;6770:171;6149:612;;;;;;6482:273;6549:4;;;;8417:611:18;;;;;;;;;;;;;;;;;;6555:4:37;378:11:59;;8417:611:18;;;;;;;;6594:150:37;;;;;;;:::i;:::-;6482:273;;;8417:611:18;;;;198:2085:79;;378:4:31;198:2085:79;;;;;;;;;;;;;;;:::o;:::-;;317:4:31;198:2085:79;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;198:2085:79;;378:11:59;198:2085:79;;;-1:-1:-1;;198:2085:79;;;;;:::o;:::-;;1774:3:21;198:2085:79;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;;198:2085:79;;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;198:2085:79;;-1:-1:-1;;198:2085:79;;;;;;;:::o;:::-;378:11:59;;;198:2085:79;;;;;;;;2046:20:21;-1:-1:-1;;;2046:20:21;;;;;;;:::o;7612:209::-;7796:11;7768:13;7737:6;2046:20;7694:7;1949;7612:209;7694:7;:::i;:::-;198:2085:79;7737:6:21;:::i;:::-;7768:13;:::i;:::-;7796:11;:::i;:::-;198:2085:79;7612:209:21;:::o;7135:175:44:-;7240:1;7235:6;;198:2085:79;;7135:175:44;:::o;198:2085:79:-;;;-1:-1:-1;;;198:2085:79;;;;;;;;;;;;-1:-1:-1;;;198:2085:79;;;;;;;;;;;;;;;;;;;;:::o;:::-;;317:4:31;198:2085:79;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;198:2085:79;;;;;;;;;;;;;:::o;9402:337:21:-;1324:9;9472:21;;9468:43;;1905:7;9525:8;;;;9521:31;;9566:6;;9562:37;;198:2085:79;;;;9629:1:21;;198:2085:79;;;9629:1:21;198:2085:79;;;-1:-1:-1;5990:5:21;;:20;;;;9402:337;5986:46;;6046:6;;6042:29;;6090:7;6085:12;;6081:43;;6178:7;;;6177:23;;;;;;1053:19:23;;;:::i;:::-;6257:13:21;;6253:36;;6632:35;6363:55;6370:33;958:19:23;6311:16:21;958:19:23;6311:16:21;;;;;;:::i;:::-;958:19:23;:::i;:::-;6370:33:21;:::i;:::-;6363:55;:::i;:::-;1053:19:23;6481:29:21;958:19:23;;;:::i;:::-;6481:29:21;:::i;:::-;6547:49;958:19:23;6565:29:21;958:19:23;;;:::i;:::-;6565:29:21;:::i;:::-;958:19:23;;:::i;:::-;6547:49:21;:::i;:::-;1053:19:23;;:::i;:::-;6632:35:21;:::i;:::-;958:19:23;:::i;:::-;6689:9:21;-1:-1:-1;6708:336:21;6715:5;;;;;;7058:16;;;;9728:4;7058:16;958:19:23;7058:16:21;;;;;958:19:23;:::i;:::-;9728:4:21;:::i;7058:16::-;7072:2;;;:::i;:::-;958:19:23;:::i;6708:336:21:-;6749:7;;6951:23;6749:7;1053:19:23;6749:12:21;:7;;;;;;:::i;:12::-;6891:42;958:19:23;6848:14:21;6790:16;958:19:23;;;;:::i;6790:16:21:-;6848:14;:::i;:::-;958:19:23;:::i;:::-;;;;;:::i;:::-;6891:42:21;;:::i;1053:19:23:-;6951:23:21;;:::i;:::-;198:2085:79;;;6708:336:21;;;;6253:36;198:2085:79;;-1:-1:-1;;;6279:10:21;;;;;6177:23;6193:7;;;:::i;:::-;6177:23;;;6081:43;198:2085:79;;-1:-1:-1;;;6106:18:21;;;;;5986:46;198:2085:79;;-1:-1:-1;;;6019:13:21;;;;;5990:20;5999:11;6003:7;5999:11;;5990:20;;9468:43;9495:16;9509:1;9495:16;:::o;337:213:45:-;;464:27;337:213;464:27;:::i;:::-;494:7;198:2085:79;;;;;;;;;;;;;;;631:21:18;;;:::i;8282:752::-;;378:4:31;8417:611:18;;;;;;;;;;;;;;;;;;;;378:11:59;;;8417:611:18;;;;;;;;8282:752;:::o;:::-;8417:611;;;;;;;;;;;;;;;;;378:4:31;:11:59;;8417:611:18;;;;;;;;8282:752;:::o;7741:535::-;378:4:31;7878:392:18;;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;6255:3:37;7878:392:18;;;;;;;;;;;;;;;;;6260:4:37;7878:392:18;;7741:535;:::o;:::-;7878:392;;;;;;;;;;;;;;;;378:4:31;7878:392:18;;7741:535;:::o;:::-;1324:9:21;7878:392:18;;;;;;;;;;;;;378:4:31;7878:392:18;;7741:535;:::o;:::-;1905:7:21;7878:392:18;;;;;;;;;;;;;;;;;317:4:31;7878:392:18;;7741:535;:::o;198:2085:79:-;;;;;;;;;;:::o;1009:1952:33:-;378:11:59;;1009:1952:33;;378:11:59;;1239:13:33;;;1235:66;;1632:15;;;;:::i;:::-;1674;;;;:::i;:::-;378:11:59;1699:25:33;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;;:::i;:::-;6918:17:37;;378:11:59;;6918:17:37;;;;;1978:981:33;1009:1952;;;;;;;;;;:::o;1978:981::-;;;;;2909:48;;;;;;;2123:13;2122:19;2123:13;;;;:::i;:::-;198:2085:79;;;;2122:19:33;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;378:11:59;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;198:2085:79;;1978:981:33;;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;653:2:31;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;;;;;;2931:26;198:2085:79;2931:26:33;;2909:48;;1695:115;198:2085:79;;-1:-1:-1;;;1747:56:33;;;;;198:2085:79;;;;;;;;;;1747:56:33;1235:66;198:2085:79;;-1:-1:-1;;;1261:40:33;;;;;198:2085:79;;;;;;;;;;;1747:56:33;4268:1017:21;4348:10;;4344:26;;1500:10;4384:26;;;4380:40;;-1:-1:-1;;4434:26:21;;;4430:42;;-1:-1:-1;958:19:23;4495:11:21;;;:::i;:::-;5188:10;5094:60;1053:19:23;4548:38:21;965:21:18;;;:::i;4548:38:21:-;1053:19:23;:::i;:::-;958;5095:51:21;:42;958:19:23;;4962:98:21;958:19:23;4984:74:21;958:19:23;5006:50:21;958:19:23;;5028:26:21;958:19:23;4762:100:21;958:19:23;4784:76:21;958:19:23;4806:52:21;958:19:23;4828:28:21;958:19:23;;;:::i;:::-;4828:28:21;:::i;:::-;958:19:23;;:::i;:::-;4806:52:21;:::i;:::-;958:19:23;;:::i;:::-;4784:76:21;:::i;958:19:23:-;4762:100:21;:::i;:::-;958:19:23;;:::i;:::-;5028:26:21;:::i;:::-;958:19:23;;:::i;:::-;5006:50:21;:::i;:::-;958:19:23;;:::i;:::-;4984:74:21;:::i;:::-;958:19:23;;:::i;:::-;4962:98:21;:::i;:::-;958:19:23;;:::i;:::-;;;;:::i;:::-;5095:42:21;:::i;:::-;:51;:::i;958:19:23:-;5253:25:21;5254:9;-1:-1:-1;;;5267:7:21;;;:::i;4430:42::-;4462:10;1949:7;4462:10;:::o;4344:26::-;4360:10;1905:7;4360:10;:::o;11969:3353:18:-;12038:3278;;-1:-1:-1;;;12038:3278:18;;;;;11969:3353;12038:3278;;;;;;;;11969:3353;12038:3278;;;;;;11969:3353;12038:3278;;;;;;11969:3353;12038:3278;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11969:3353;:::o;12038:3278::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12038:3278:18;;-1:-1:-1;12038:3278:18;;;;;;198:2085:79;;;;:::o;:::-;;;-1:-1:-1;;;198:2085:79;;;;;;;;;;;;-1:-1:-1;;;198:2085:79;;;;;;;4596:2947:18;7380:72;4596:2947;4688:27;4700:1;4696:5;;4688:27;:::i;:::-;7125:43;5125:16;;;:::i;:::-;5145:2;198:2085:79;;;5175:3:18;198:2085:79;;378:11:59;5175:3:18;378:11:59;198:2085:79;;;;7232:71:18;198:2085:79;;6411:30:18;198:2085:79;6343:32:18;198:2085:79;6274:33:18;198:2085:79;6205:33:18;198:2085:79;6136:33:18;198:2085:79;6068:32:18;198:2085:79;6001:31:18;198:2085:79;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;198:2085:79;;;;;;;;;;;;;;;;5533:32:18;198:2085:79;5465:32:18;198:2085:79;5398:31:18;198:2085:79;;;;;;;;;;;;;;;;;;;;;;;;6455:304:18;198:2085:79;;;;;4596:2947:18;:::o;71:276:23:-;-1:-1:-1;;;138:25:23;;134:43;;195:1;187:9;;195:1;;;208:61;;;;71:276::o;134:43::-;198:2085:79;;-1:-1:-1;;;172:5:23;;;;;1487:3103:18;-1:-1:-1;;1713:26:18;;;1709:40;;1948:21;1943:26;;;1939:54;;2266:5;378:11:59;198:2085:79;378:11:59;198:2085:79;4502:49:18;2559:29;198:2085:79;3136:40:18;198:2085:79;378:11:59;2591:5:18;378:11:59;;;;198:2085:79;;;;;;;;;3074:35:18;198:2085:79;2874:31:18;198:2085:79;;;;;;3649:35:18;198:2085:79;;;;3508:34:18;198:2085:79;;;;3371:32:18;198:2085:79;;;;;;;;;;;;;;;;;;;;;;;;;;2941:32:18;198:2085:79;;;;;;;;;;;;;;;3699:327:18;198:2085:79;;4564:3:18;198:2085:79;378:11:59;1487:3103:18;:::o;1939:54::-;198:2085:79;;-1:-1:-1;;;1971:22:18;;198:2085:79;1971:22:18;;;198:2085:79;;;;;;-1:-1:-1;;;198:2085:79;;;;;;1747:56:33;405:480:23;2046:20:21;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;2717:18:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;-1:-1:-1;;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;-1:-1:-1;;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;3113:20:21;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;503:380;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;1905:7:21;503:380:23;;;;;;;;;;;;;;;;;6090:7:21;503:380:23;;405:480;:::o;:::-;2913:18:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;3047:17:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;503:380;;;;;;;;;;405:480;:::o;:::-;1905:7:21;503:380:23;;;;;;;;;;;;;;;;;;;;405:480;:::o;15328:575:18:-;15397:27;15405:5;;;15397:27;:::i;:::-;15435:462;378:11:59;15435:462:18;;;;;;;;;;378:11:59;;;;;15435:462:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:575;:::o;198:2085:79:-;378:11:59;;;5076:71:37;;198:2085:79;;;;;;;;;5076:71:37;;;198:2085:79;;;;;;;;;;;;;;;;378:11:59;;;;:::i;:::-;198:2085:79;;;;;;;;;;5076:71:37;198:2085:79;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;198:2085:79;;;;5168:70:37;198:2085:79;;;;;5168:70:37;:::i","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e414620000885750508063620a26071462000082578063ba414fa6146200007c578063e0d7d0e91462000076578063e21485ad14620000705763fa7626d4146200006a57600080fd5b62000726565b620005ee565b620005ce565b620005a5565b62000581565b346200055157816003193601126200055157620000a4620009ce565b805161106b8082019067ffffffffffffffff92808310848411176200052d5780620000d762000d699484868439620007cb565b039086f080156200050557601580546001600160a01b0319166001600160a01b03909216919091179055835191818301838110858211176200052d5783926200012292843962000817565b039084f080156200050557601680546001600160a01b0319166001600160a01b039283161790556015546200015f91165b6001600160a01b031690565b803b156200056c5782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af18015620005055762000555575b506016548490620001be906001600160a01b031662000153565b91823b156200055157845190815230600482015268056bc75e2d631000006024820152918290604490829084905af18015620005055762000533575b5060155462000212906001600160a01b031662000153565b60165462000229906001600160a01b031662000153565b908351916105979081840192848410868511176200052d57849362000276936200a05986396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200050557601480546001600160a01b0319166001600160a01b039092169190911790558151612f2180820190828210848311176200052d578291620002cc9162001dd484396000815260200190565b039084f080156200050557601380546001600160a01b0319166001600160a01b03929092169182179055620003019062000153565b825190611bc480830191838310858411176200052d57839262000337926200849585396001600160a01b03909116815260200190565b039084f080156200050557601780546001600160a01b0319166001600160a01b039290921691821790556200036c9062000153565b8251916137a08084019290918311848410176200052d578392620003a39262004cf585396001600160a01b03909116815260200190565b039083f09081156200050557620003da620004469260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b601554620003f1906001600160a01b031662000153565b60135462000408906001600160a01b031662000153565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200050557620004be9385936200050b575b5060165462000477906001600160a01b031662000153565b601354909190879062000493906001600160a01b031662000153565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200050557620004d2578280f35b81620004f692903d10620004fd575b620004ed818362000793565b81019062000857565b5081808280f35b503d620004e1565b6200080b565b6200052590843d8611620004fd57620004ed818362000793565b50866200045f565b6200074b565b80620005436200054a9262000761565b8062000570565b83620001fa565b5080fd5b8062000543620005659262000761565b84620001a4565b8380fd5b60009103126200057c57565b600080fd5b346200057c5760003660031901126200057c576020604051660aa87bee5380008152f35b346200057c5760003660031901126200057c576020620005c4620008f3565b6040519015158152f35b346200057c5760003660031901126200057c576020601954604051908152f35b346200057c5760203660031901126200057c5760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa908115620005055760009162000672575b60c08201516200066e906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e0116200071d575b816200069060e0938362000793565b810103126200057c576200065460c06200066e92620007108260405192620006b88462000776565b620006c381620007b6565b8452620006d360208201620007b6565b6020850152620006e660408201620007b6565b6040850152606081015160608501526080810151608085015260a081015160a085015201620007b6565b8282015292505062000640565b3d915062000681565b346200057c5760003660031901126200057c57602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200052d57604052565b60e0810190811067ffffffffffffffff8211176200052d57604052565b90601f8019910116810190811067ffffffffffffffff8211176200052d57604052565b51906001600160a01b03821682036200057c57565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b6040513d6000823e3d90fd5b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b908160209103126200057c575180151581036200057c5790565b630667f9d760e41b815281519160005b838110620008985750509060049101016000815290565b806020809284010151600482860101520162000881565b3d15620008ee573d9067ffffffffffffffff82116200052d5760405191620008e2601f8201601f19166020018462000793565b82523d6000602084013e565b606090565b6000805460081c60ff161562000910575460081c60ff1690565b90565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6200093257505090565b81925060405182816200097060208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b0362000985601f199182810185528462000793565b620009ab60405191826200099e60208201968762000871565b0390810183528262000793565b51925af1506200090d620009be620008af565b6020808251830101910162000857565b6040805161106b80820167ffffffffffffffff91838210838311176200052d578362000a0262000d699383858439620007cb565b0360009485f080156200050557601580546001600160a01b0319166001600160a01b03909216919091179055845191818301838110858211176200052d57839262000a4f92843962000817565b039083f080156200050557601680546001600160a01b0319166001600160a01b0392831617905560155462000a85911662000153565b803b1562000d645783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af18015620005055762000d4d575b5060165462000ae2906001600160a01b031662000153565b90813b156200056c57845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af18015620005055762000d36575b5060155462000b38906001600160a01b031662000153565b60165462000b4f906001600160a01b031662000153565b908451916105979081840192848410868511176200052d57849362000b9c936200a05986396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200050557601480546001600160a01b0319166001600160a01b03909216919091179055825190612f21808301918211838310176200052d57829162000bf29162001dd484396000815260200190565b039082f0918215620005055762000c2962000c989360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b60155462000c40906001600160a01b031662000153565b60135490919062000c5a906001600160a01b031662000153565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af1928315620005055762000ce394869462000d14575b5060165462000cc9906001600160a01b031662000153565b60135490929062000493906001600160a01b031662000153565b03925af18015620005055762000cf7575050565b8162000d1192903d10620004fd57620004ed818362000793565b50565b62000d2e90853d8711620004fd57620004ed818362000793565b503862000cb1565b806200054362000d469262000761565b3862000b20565b806200054362000d5d9262000761565b3862000aca565b8280fdfe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c634300081600336080346200007a57601f620037a038819003918201601f19168301916001600160401b038311848410176200007f578084926020946040528339810103126200007a57516001600160a01b038116908190036200007a57600080546001600160a01b03191691909117905560405161370a9081620000968239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630420580a146101b7578063120649c5146101b2578063134ead12146101ad5780631e978cb0146101a8578063306db46b146101a3578063332266f31461019e5780633928ff97146101995780633b268d5d146101945780633b4d10301461018f5780634e817fd91461018a5780634fd67c58146101855780635eb408fc146101805780636237569f1461017b5780636d652299146101765780637f17409c1461017157806381b5fac21461016c578063902ecaa214610167578063a8c62e7614610162578063af4e437f1461015d578063b09d04e514610158578063cb1f553214610153578063ce153bf41461014e578063e94716d514610149578063ee3e8cfb14610144578063f30d37f21461013f5763f9c282111461013a57600080fd5b610aff565b610acf565b610a9e565b610a63565b610a27565b6109e2565b6109af565b610993565b61096a565b610941565b610914565b610872565b610856565b6107e9565b6107cd565b6107a4565b610788565b610759565b61071e565b61048d565b610436565b610407565b6103e2565b610354565b61028e565b610218565b60005b8381106101cf5750506000910152565b81810151838201526020016101bf565b906020916101f8815180928185528580860191016101bc565b601f01601f1916010190565b9060206102159281815201906101df565b90565b3461026b57604036600319011261026b57610267604051600260208201526004356040820152602435606082015260608152610253816102e9565b6040519182916020835260208301906101df565b0390f35b600080fd5b608090600319011261026b5760043590602435906044359060643590565b3461026b5760206102aa6102a136610270565b92919091610b4d565b604051908152f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff8211176102e457604052565b6102b2565b6080810190811067ffffffffffffffff8211176102e457604052565b6060810190811067ffffffffffffffff8211176102e457604052565b90601f8019910116810190811067ffffffffffffffff8211176102e457604052565b6001600160a01b0381160361026b57565b3461026b5760e036600319011261026b5760a036604319011261026b576102676103bc604051610383816102c8565b60443581526064356020820152608435604082015260a435606082015260c4356103ac81610343565b608082015260243560043561139a565b60405191829182610204565b606090600319011261026b57600435906024359060443590565b3461026b5760206102aa6104016103f8366103c8565b91929092610f06565b91611583565b3461026b5760206102aa61041a366103c8565b9061042d61042784610f06565b936110d9565b92919091611670565b3461026b5760206102aa610449366103c8565b9061045661042784610f06565b9290506119da565b8015150361026b57565b90926080926102159594151583526020830152604082015281606082015201906101df565b3461026b57606036600319011261026b5761050360243561061f6004356104b38361045e565b604435926104bf610c57565b936104c8610c57565b946104d2846110d9565b60208496939592960194604096878601928352865284526104f287610f06565b998a9185519087519051918a611009565b921561069657928261054a6105519361054361053e61053661056f9861053160606105979d9c0151866125a2565b6125a2565b8651906125f8565b610c9d565b9351610cb0565b8a52610cb0565b61056385890191808352895188610c4a565b90885190519087610b4d565b9061058e6105836020890193808552610c9d565b808452825111610d31565b51905190610d24565b945b84519260c06020870151848801926105df8451976105d18851998a958693602085016040919493926060820195825260208201520152565b03601f198101845283610321565b600054610602906105f6906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610dbf565b03915afa94851561069157600095610651575b509061064691610267959651905190611583565b905194859485610468565b61026795509061067c610646939260c03d60c01161068a575b6106748183610321565b810190610d88565b505050505095509091610632565b503d61066a565b610b41565b826106df610718966106d2610704956106cb61053e6106c361070f9a61053160606106fc9b0151866125a2565b8551906125f8565b9251610cb0565b9260208d01938452610cb0565b6106f1888c019180835283518b610de3565b915190519089610df0565b808952610c9d565b808852825111610cbd565b51855190610d24565b94610599565b3461026b57604036600319011261026b57610267604051600460208201526004356040820152602435606082015260608152610253816102e9565b3461026b57602036600319011261026b5760206102aa60043561040161077e826110d9565b9291939050610f06565b3461026b5760206102aa61079e6103f8366103c8565b91611b9c565b3461026b5760206102aa6107b7366103c8565b906107c461042784610f06565b92919091611c16565b3461026b5760206102aa6107e036610270565b92919091610df0565b3461026b57604036600319011261026b5761083860043561026761081a61080f836110d9565b919050602435611f7a565b939092848461083261082b84610f06565b8383611583565b92610b4d565b92604051938493846040919493926060820195825260208201520152565b3461026b57600036600319011261026b57602060405160008152f35b3461026b57604036600319011261026b576004356108c06102676108a2610898846110d9565b9150602435611fa7565b92909383856108ba6108b384610f06565b8383611b9c565b92610df0565b91604051938493846040919493926060820195825260208201520152565b805182526020808201519083015260408082015190830152606080820151908301526080908101516001600160a01b0316910152565b3461026b57602036600319011261026b5760a0610932600435610f06565b61093f60405180926108de565bf35b3461026b5760206102aa610954366103c8565b9061096161042784610f06565b92909150611fce565b3461026b57600036600319011261026b576000546040516001600160a01b039091168152602090f35b3461026b5760206102aa6109a636610270565b92919091611009565b3461026b57602036600319011261026b576102676040516001602082015260043560408201526040815261025381610305565b3461026b57602036600319011261026b57610267600435610a0281610343565b60408051600560208201526001600160a01b0390921682820152815261025381610305565b3461026b57602036600319011261026b57610267610a466004356110d9565b604080519384526020840192909252908201529081906060820190565b3461026b57604036600319011261026b57610267604051600360208201526004356040820152602435606082015260608152610253816102e9565b3461026b57604036600319011261026b5761083860043561026761081a610ac4836110d9565b919050602435611fa7565b3461026b57604036600319011261026b576004356108c06102676108a2610af5846110d9565b9150602435611f7a565b3461026b57600036600319011261026b57602060405160788152f35b9081602091031261026b575190565b6040906102159392815281602082015201906101df565b6040513d6000823e3d90fd5b610b85610bee9493929361053184610b7e610b79610b74610b6d88610f06565b809661230a565b61237f565b6123b2565b92516125a2565b916020604051610bbc81610bae85888a8785016040919493926060820195825260208201520152565b03601f198101835282610321565b600054610bd3906105f6906001600160a01b031681565b6040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093610c15575b50610c0f90610f06565b936111f1565b610c0f919350610c3c9060203d602011610c43575b610c348183610321565b810190610b1b565b9290610c05565b503d610c2a565b9161040161021593610f06565b604051906060820182811067ffffffffffffffff8211176102e45760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610cab57565b610c87565b91908201809211610cab57565b15610cc457565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b6103e719810191908211610cab57565b91908203918211610cab57565b15610d3857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c091031261026b578151610d9f8161045e565b9160208101519160408201519160608101519160a0608083015192015190565b610215939260609260018060a01b03168252602082015281604082015201906101df565b9161079e61021593610f06565b92610b79610b74610e0d92949394610e0787610f06565b90612f44565b92670de0b6b3a7640000938403938411610cab57610e2e610e5794836125a2565b916020604051610bbc81610bae8589898785016040919493926060820195825260208201520152565b03915afa9182156106915761021595600093610e7e575b50610e7890610f06565b93611e24565b610e78919350610e9c9060203d602011610c4357610c348183610321565b9290610e6e565b91908260a091031261026b57604051610ebb816102c8565b608080829480518452602081015160208501526040810151604085015260608101516060850152015191610eee83610343565b0152565b9060a08282031261026b5761021591610ea3565b90604051610f13816102c8565b600090818152816080602092828482015282604082015282606082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610691578092610f7a575b506102159293508082518301019101610ef2565b9091503d8082863e610f8c8186610321565b840190828583031261100257845167ffffffffffffffff9586821161100557019082601f830112156110025781519586116102e45760405192610fd8601f8801601f1916860185610321565b86845284878401011161100257506102159394610ffa918480850191016101bc565b908392610f66565b80fd5b8280fd5b61105d939192602060405161103781610bae87868a8785016040919493926060820195825260208201520152565b60018060a01b03600054166040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093611084575b5061107e90610f06565b936121b4565b61107e9193506110a29060203d602011610c4357610c348183610321565b9290611074565b9081602091031261026b575161021581610343565b9081606091031261026b578051916040602083015192015190565b90600460206110f56105f66105f660005460018060a01b031690565b604051632bee84f160e21b815292839182905afa928315610691576111409360609260009161119d575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156106915760008093600093611166575b50929190565b9193505061118c915060603d606011611196575b6111848183610321565b8101906110be565b9290929138611160565b503d61117a565b6111bf915060203d6020116111c5575b6111b78183610321565b8101906110a9565b3861111f565b503d6111ad565b6111ef9360609296959361010083019783526020830152604082015201906108de565b565b929360009385929185851215611367575b8585126113485790610bae611224925b604096604051958694602086016111cc565b81859285968281116113255761123a818561337f565b92611245818661337f565b88611250828761152f565b136113045750906112649197969297610d24565b60019591829187805b61127f575b5050505050505050505090565b156112e0575b5086979850819261129f6112998b89610cb0565b60011c90565b996112aa8b8861337f565b90846112b6888461152f565b136112d457505089935b886112cb8987610d24565b9201949961126d565b8b9850909550936112c0565b601410806112fb575b156112f45788611285565b8080611272565b508083106112e9565b6040516306f1be5d60e21b8152600481018690526024810191909152604490fd5b604051633082dfdb60e11b81526004810191909152602481019290925250604490fd5b935091611354906125ce565b91611361848385846124a9565b93611202565b85851361137b5790610bae61122492611212565b935094611387906123f5565b94611394848388846124a9565b93611367565b916113ab610b79610b748385612f44565b91670de0b6b3a7640000928303928311610cab57611402826113ee6113e3610b79610b74846113dd6114209a8c6125f8565b9761230a565b6105318584516125a2565b926113fb8282868a6124a9565b84886121b4565b906040519460208601526040850152606084015260808301906108de565b6101008152610120810181811067ffffffffffffffff8211176102e45760405290565b90670de0b6b3a764000060008382039312818412811691841390151617610cab57565b90671bc16d674ec8000060008382039312818412811691841390151617610cab57565b9067119000ab100ffbff198201918213600116610cab57565b81810392916000138015828513169184121617610cab57565b90670de0b6b3a764000091828102928184051490151715610cab57565b90671bc16d674ec8000091828102928184051490151715610cab57565b90633b9aca0091828102928184051490151715610cab57565b60008190039190600160ff1b8114600116610cab57600019830503610cab57565b818102929160008212600160ff1b821416610cab578184051490151715610cab57565b811561156d57600160ff1b8114600019831416610cab570590565b634e487b7160e01b600052601260045260246000fd5b9190916115be60208301936115b885516115b06115a66040880192835190612843565b975182519061286c565b905190612414565b92612435565b92670de0b6b3a76400008085121561163c5760008513156116315760008582039512818612811691861390151617610cab5761162561162a92611620611612610b799461160d6102159961288b565b61152f565b670de0b6b3a7640000900590565b6114a2565b612917565b90516125a2565b505050505060001990565b5050505050600090565b90959492936111ef94608093610120840198845260208401526040830152606082015201906108de565b909291828651602088015160408901519060608a01519261169083612ac8565b6116999061185a565b936116a390611443565b906116ad8a612b86565b6116b68b611981565b6116bf91612c38565b6116c88b611981565b6116d184612bb5565b6116da916114a2565b6116e49088612c38565b6116ed91612cb5565b6116f690612cd3565b9361170084612fbb565b611709906114d8565b670de0b6b3a7640000900561171d90612917565b9061172791612c38565b61173090612c67565b611739906119c9565b848661174486612c09565b9061174e91612c38565b9061175891612c38565b611761916119ad565b61176a90612917565b826117758c84612c38565b9061177f91612c38565b61178891612c38565b6117918b611981565b61179a84612bb5565b6117a3916114a2565b6117ac91612cb5565b956117b691612c38565b906117c090611993565b6117c991612c38565b926117d391612c38565b6117dc90612c8e565b906117e6916114a2565b6117ef90612e24565b6117f891612c38565b61180186612b86565b61180a91612cb5565b90611814846119c9565b9061181e916119ad565b90611828916119ad565b60001361184f576102159561184a93610bae9260405196879560208701611646565b61264d565b505050505050600090565b90633b9aca0091828102928184041490151715610cab57565b9081672005fe4f268ea00001918212600116610cab57565b9081670dc5527f642c200001918212600116610cab57565b9081670de0b6b3a764000001918212600116610cab57565b9081670b68df18e471fbff190191821215600116610cab57565b90816714a8454c19e1ac0001918212600116610cab57565b9081670fc10e01578277ff190191821215600116610cab57565b90816703debd083b8c7c0001918212600116610cab57565b9081670295d400ea3257ff190191821215600116610cab57565b9081670157d8b2ecc7080001918212600116610cab57565b90816705310aa7d521300001918212600116610cab57565b9081670de0cc3d1561000001918212600116610cab57565b90816103e801918212600116610cab57565b9081670de0b6b3a763ffff190191821215600116610cab57565b91909160008382019384129112908015821691151617610cab57565b600160ff1b8114610cab5760000390565b939290919280519160208201519060408301519260600151936119fc84612ac8565b611a059061185a565b94611a0f90611443565b9182611a1a88612b86565b611a2489846119ad565b611a2d91612c38565b611a3789846119ad565b611a418385612c38565b611a4a916114a2565b611a54908b612c38565b611a5d91612cb5565b611a6690612cd3565b95611a7086612fbb565b611a79906114d8565b670de0b6b3a76400009005611a8d90612917565b90611a9791612c38565b611aa090612c67565b611aa9906119c9565b8688611ab488612c09565b90611abe91612c38565b90611ac891612c38565b611ad1916119ad565b611ada90612917565b81611ae58a86612c38565b90611aef91612c38565b611af891612c38565b91611b0389826119ad565b91611b0d91612c38565b611b16916114a2565b611b1f91612cb5565b96611b2991612c38565b90611b3390611993565b611b3c91612c38565b92611b4691612c38565b611b4f90612c8e565b90611b59916114a2565b611b6290612e24565b611b6b91612c38565b90611b7590612b86565b611b7e91612cb5565b91611b88906119c9565b90611b92916119ad565b90610215916119ad565b919091611bda6020830191611bd4611bcc84516115b0611bc26040890192835190612843565b965182519061286c565b958551612414565b90612435565b670de0b6b3a7640000918282121561163c576000821315611631576102159461162a93611c106116259361160d610b799661288b565b056119ad565b909291855160208701516040880151606089015191611c3482612ac8565b611c3d9061185a565b92611c4790611443565b93611c5186612b86565b611c5a87611981565b611c6391612c38565b611c6d8983612c38565b611c7688611981565b611c7f91612c38565b611c88906119c9565b86611c938b85612c38565b611c9c90612bde565b90611ca691612c38565b611caf916119ad565b611cb891612cb5565b611cc1906119c9565b611cca90612cd3565b92611cd483612fbb565b611cdd906114d8565b670de0b6b3a76400009005611cf190612917565b90611cfb91612c38565b611d0490612c67565b611d0d906119c9565b8385611d1885612c09565b90611d2291612c38565b90611d2c91612c38565b611d35916119ad565b611d3e90612917565b85611d49888a612c38565b90611d5391612c38565b611d5c91612c38565b90611d6687611981565b611d6f87612bb5565b611d78916114a2565b611d8191612c38565b611d8a91612cb5565b93611d958789612c38565b90611d9f90611993565b611da891612c38565b92611db291612c38565b611dbb90612c8e565b90611dc5916114a2565b611dce90612e24565b611dd791612c38565b611de083612b86565b611de991612cb5565b90611df390611993565b90611dfd916119ad565b60001361184f5761021595611e1f93610bae9260405196879560208701611646565b61276c565b929360009385929185851215611f47575b858512611f285790610bae611e5692604096604051958694602086016111cc565b818592859682811161132557611e6c81856133a0565b92611e7781866133a0565b88611e82828761152f565b13611304575090611e969197969297610d24565b60019591829187805b611eb0575050505050505050505090565b15611f0b575b50869798508192611eca6112998b89610cb0565b99611ed58b886133a0565b9084611ee1888461152f565b13611eff57505089935b88611ef68987610d24565b92019499611e9f565b8b985090955093611eeb565b60141080611f1f575b156112f45788611eb6565b50808310611f14565b935091611f34906125ce565b91611f41848383866124a9565b93611e35565b858513611f5b5790610bae611e5692611212565b935094611f67906123f5565b94611f74848383896124a9565b93611f47565b929190611f90611f8a82846125f8565b856125a2565b938103908111610cab57928103908111610cab5790565b929190611fb7611f8a82846125f8565b938101809111610cab57928101809111610cab5790565b9390929181516020830151916040840151936060015194611fee85612ac8565b611ff79061185a565b9561200190611443565b928361200c89612b86565b6120168a856119ad565b61201f91612c38565b6120298584612c38565b6120338b866119ad565b61203c91612c38565b612045906119c9565b82856120518887612c38565b9061205b91612c38565b9061206591612c38565b61206e916119ad565b61207791612cb5565b612080906119c9565b61208990612cd3565b9661209387612fbb565b61209c906114d8565b670de0b6b3a764000090056120b090612917565b906120ba91612c38565b6120c390612c67565b6120cc906119c9565b87896120d789612c09565b906120e191612c38565b906120eb91612c38565b6120f4916119ad565b6120fd90612917565b816121088b8d612c38565b9061211291612c38565b61211b91612c38565b926121268a826119ad565b9161213091612c38565b612139916114a2565b61214291612c38565b61214b91612cb5565b9661215591612c38565b9061215f90611993565b61216891612c38565b9261217291612c38565b61217b90612c8e565b90612185916114a2565b61218e90612e24565b61219791612c38565b906121a190612b86565b6121aa91612cb5565b90611b9290611993565b9293600093859291858512156122d7575b8585126122b85790610bae6121e692604096604051958694602086016111cc565b8185928596828111611325576121fc81856133c2565b9261220781866133c2565b88612212828761152f565b136113045750906122269197969297610d24565b60019591829187805b612240575050505050505050505090565b1561229b575b5086979850819261225a6112998b89610cb0565b996122658b886133c2565b9084612271888461152f565b1361228f57505089935b886122868987610d24565b9201949961222f565b8b98509095509361227b565b601410806122af575b156112f45788612246565b508083106122a4565b9350946122c4906123f5565b946122d1848784846124a9565b936121c5565b8585136122eb5790610bae6121e692611212565b9350916122f7906125ce565b91612304848484846124a9565b936122d7565b61237a6123756102159361236f61236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b9d6125f8565b612fbb565b97612fbb565b6114d8565b05612917565b612414565b612457565b906114a2565b6114bb565b611552565b6123ae6123756123a96713a04bbdfdc9be886123a3671bc16d674ec80000956114bb565b056119c9565b612e24565b0590565b600081126123bd5790565b60405162461bcd60e51b815260206004820152601060248201526f746f55696e743a206e6567617469766560801b6044820152606490fd5b6103e79081810291818304149015176001161561026b576103e8900490565b81810291818304149015176001161561026b57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517821515161561026b570490565b6706f05b59d3b2000090808202918204146001161561026b57670de0b6b3a7640000900490565b670de0b6b3a76400009081810291818304149015176001161561026b57671bc16d674ec80000900490565b90928282101561255d57610215936125269284670de0b6b3a764000091826124d18383612435565b1061254a57506001600160ff1b039590505b8351916124f96124f38385612414565b85612435565b1061252b57506001600160ff1b0392612520925090505b6040602082015191015190612843565b926119ad565b6119ad565b61252092611bd461253f9261254494612414565b61288b565b91612510565b6125579161253f91612435565b946124e3565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b81810291818304149015176001161561026b576001670de0b6b3a7640000600019830104019015150290565b6103e99081810291818304149015176001161561026b5760016103e8600019830104019015150290565b90670de0b6b3a7640000918281029281840414901517811515161561026b57600190600019830104019015150290565b6101008183031261026b57805192610215602083015193606060408501519401610ea3565b91906103e89260009360009183821161274b57612669816133e2565b6126738583613521565b600061267f828461152f565b1361272c5750612690859695610d14565b60019460009186805b6126aa575b50505050505050509050565b15612707575b50859697985080916126c56112998b88610cb0565b996126d08b87613521565b90836126dc878461152f565b136126fb57505089925b876126f18886610d24565b9201939998612699565b8b9750909450926126e6565b861080612721575b1561271a57886126b0565b808061269e565b50610100821061270f565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e89260009360009183821161274b5761278881613543565b61279285836136b3565b600061279e828461152f565b1361272c57506127af859695610d14565b60019460009186805b6127c85750505050505050509050565b15612825575b50859697985080916127e36112998b88610cb0565b996127ee8b876136b3565b90836127fa878461152f565b1361281957505089925b8761280f8886610d24565b92019399986127b8565b8b975090945092612804565b861080612838575b1561271a57886127ce565b50610100821061282d565b9061284d90612ac8565b633b9aca0090818102918183041490151715610cab5761021591612414565b61021591612365670de0b6b3a764000061235f61235a61236a95612fbb565b6706f05b59d3b20000811461291157670de0b6b3a764000090818112156128ff5780156128ed578060011b908105600203610cab576128c990612cd3565b906713a04bbdfdc9be8891808302928305146001161561026b5761021591056119c9565b6040516322ed598560e21b8152600490fd5b6040516307a0212760e01b8152600490fd5b50600090565b680248ce36a70cb26b3e1981131561291157680755bf798b4a1bf1e5811215612a67576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b91906101208382031261026b57825192602081015192610215604083015193608060608501519401610ea3565b60b581600160881b811015612b6f575b80690100000000000000000062010000921015612b62575b65010000000000811015612b55575b6301000000811015612b48575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b91612b0c565b60201c9160101b91612aff565b60401c9160201b91612af0565b5068b500000000000000009050608082901c612ad8565b671bc16d674ec8000081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e881810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e88082029160016000198210179181840514901517161561026b57670de0b6b3a7640000900590565b6713a04bbde78cc40081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b90911317161561026b57670de0b6b3a7640000900590565b670de0b6b3a764000090818102918205146001161561026b57671bc16d674ec80000900590565b670de0b6b3a764000090818102918205146001161561026b576713a04bbde78cc400900590565b670de0b6b3a76400009081810291820514821515161561026b570590565b600081128015612e13575b612e015780156128ff57671bc16d674ec8000081146128ed57670de0b6b3a76400008112908115612df257905b612d1482613189565b80156128ff57612d7d612d41612d3c612d37612d32612d8295612fbb565b61324a565b612ac8565b6114f5565b611620612d55612d50836131b4565b611873565b612d77612d72612d6c612d67866131df565b61188b565b856132c1565b6118a3565b90613228565b613272565b916000905b60028210612da257505015612d995790565b610215906119c9565b9092612dea81612de4612dba85611620600196612e24565b612d77612dda612dd5611625612dd087806132c1565b6119c9565b61329a565b61236f83866132c1565b906119ad565b930190612d87565b612dfb90611466565b90612d0b565b604051632d0483c560e21b8152600490fd5b50671bc16d674ec800008113612cde565b8015612f3757675698eef06670000081121561291157675698eef0666fffff19811315612f2a576000612f1a612e598361315c565b612ee2611625612e73612e6e612d728561247e565b613209565b92612526612f15612f10612f09612f03612efe612ef8612ef3612eed612ee88d612ee2612edd612ed7612ed2612d6c612ecd612ec7612ec2612ebc612eb78a6132e2565b6118bb565b896132c1565b6118d5565b876132c1565b6118ed565b611907565b836132c1565b61191f565b906132c1565b611939565b8c6132c1565b611951565b8a6132c1565b611969565b886132c1565b93806132c1565b61150e565b611489565b9112156102155761021590611466565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b61237a61237561021593612de461236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b15612f8a57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b886428490612fe760008213612f83565b711340daa0d5f769dba1915cef59f0815a55066130038261330d565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b600160ff1b8114613177576000811215610215571960010190565b604051634d2d75b160e01b8152600490fd5b670de0b6b3a76400009081810291818305149015176001161561026b57671bc16d674ec80000900590565b6703c1665c7aab20009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b669f32752462a0009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b6001811515161561026b576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029181830514901517821515161561026b570590565b671bc16d674ec7ffff1981810291600191830514161561026b57670de0b6b3a7640000900590565b6709d028cc6f205fff1981810291600191830514161561026b57670de0b6b3a7640000900590565b670fa8cedfc2adddfa90808202918205146001161561026b57670de0b6b3a7640000900590565b81810291818305149015176001161561026b57670de0b6b3a7640000900590565b67025f0fe105a314009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b613318811515612f83565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b906133966102159260208082518301019101612628565b93919290506124a9565b906133b76102159260208082518301019101612628565b9390509190916124a9565b906133d96102159260208082518301019101612628565b939290506124a9565b8051810160200190602001906133f791612a9b565b809193925051906020810151604082015191606001519261341783612ac8565b6134209061185a565b9361342a90611443565b9061343486612b86565b61343d87611981565b61344691612c38565b61344f87611981565b61345884612bb5565b613461916114a2565b61346b9089612c38565b61347491612cb5565b61347d90612cd3565b9361348784612fbb565b613490906114d8565b670de0b6b3a764000090056134a490612917565b906134ae91612c38565b6134b790612c67565b6134c0906119c9565b84866134cb86612c09565b906134d591612c38565b906134df91612c38565b6134e8916119ad565b6134f190612917565b826134fc8884612c38565b9061350691612c38565b61350f91612c38565b61351887611981565b611b0d84612bb5565b906135386102159260208082518301019101612a9b565b9493909291506119da565b80518101602001906020019061355891612a9b565b809192935051602082015190604083015192606001519361357884612ac8565b6135819061185a565b9461358b90611443565b9161359587612b86565b61359e88611981565b6135a791612c38565b6135b18383612c38565b6135ba89611981565b6135c391612c38565b6135cc906119c9565b846135d78585612c38565b6135e090612bde565b906135ea91612c38565b6135f3916119ad565b6135fc91612cb5565b613605906119c9565b61360e90612cd3565b9461361885612fbb565b613621906114d8565b670de0b6b3a7640000900561363590612917565b9061363f91612c38565b61364890612c67565b613651906119c9565b858761365c87612c09565b9061366691612c38565b9061367091612c38565b613679916119ad565b61368290612917565b8361368d898b612c38565b9061369791612c38565b6136a091612c38565b906136aa88611981565b61213085612bb5565b906136ca6102159260208082518301019101612a9b565b9493909250611fce56fea2646970667358221220f3e875cd9c43c4535da38090630f644037f96036f7dad55519e2d7d792047e4b64736f6c6343000816003360803461007457601f611bc438819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051611b3490816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b6109e4565b6109bb565b610814565b6107da565b610674565b6103dc565b6102e1565b61023d565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101df565b838082518301019101610a17565b9061010d6100ff600435610b92565b868082518301019101610a32565b92610d8d565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761015057604052565b61011e565b60c0810190811067ffffffffffffffff82111761015057604052565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101bd601f8201601f191660200184610171565b8294818452818301116101da578281602093846000960137010152565b600080fd5b9080601f830112156101da578160206101fa93359101610193565b90565b919082519283825260005b848110610229575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610208565b346101da5760003660031901126101da57604051604081019080821067ffffffffffffffff8311176101505761029a916040526009815268131bd9d39bdc9b585b60ba1b60208201526040519182916020835260208301906101fd565b0390f35b906040516080810181811067ffffffffffffffff821117610150576040526060600382948054845260018101546020850152600281015460408501520154910152565b346101da5760203660031901126101da5760043560005260016020526101c0604060002061030e8161029e565b9061031b6004820161029e565b906103bd61032b6008830161029e565b610393600c84015493600d60018060a01b03910154169461036d6040518098606080918051845260208101516020850152604081015160408501520151910152565b80516080880152602081015160a0880152604081015160c08801526060015160e0870152565b80516101008601526020810151610120860152604081015161014086015260600151610160850152565b6101808301526101a0820152f35b6001600160a01b038116036101da57565b346101da576060806003193601126101da576103f96004356103cb565b6024356044359167ffffffffffffffff83116101da576104206104829336906004016101df565b8161043c61042d85610b92565b60208082518301019101610a32565b60005490949061046290610456906001600160a01b031681565b6001600160a01b031690565b60405180809881946333854efd60e21b8352600483019190602083019252565b03915afa801561061457600091829583926105d9575b50806020806104ac93518301019101610a17565b939194909682861160001461054c5750916104ed826104e8836104e36104fe976104d96104f5988c610aa3565b908c0151906112af565b6112af565b6112db565b505b83610afe565b93828685610d8d565b9384601319129283610541575b61029a9394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b60148612935061050b565b90929091508187111561057b57610575826104e8836104e36104fe976104d96104f5988e610aa3565b506104ef565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9095506104ac92506106019150833d851161060d575b6105f98183610171565b810190610a17565b95919290959190610498565b503d6105ef565b610a81565b9060606003198301126101da57600435610632816103cb565b916024359160443567ffffffffffffffff928382116101da57806023830112156101da5781600401359384116101da57602484830101116101da576024019190565b346101da5761068236610619565b600054929350916001600160a01b031633036107c85761078661077e61042d610779956106c0608095610743976106b7610b67565b50810190610e8c565b6020819b949a9399929b01516106e0866000526001602052604060002090565b55604081015160046106fc876000526001602052604060002090565b015580516008610716876000526001602052604060002090565b01556060810151600c610733876000526001602052604060002090565b015501516001600160a01b031690565b600d610759846000526001602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610b92565b848385610d8d565b92836013191291826107bd575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b601485129250610793565b604051636853cba760e01b8152600490fd5b346101da5760606107ea36610619565b818094509492940103126101da5780359061078661077e61042d6040602085013594013595610b92565b346101da5761082236610619565b6000549093906001600160a01b0390811633036107c857610863610456600d610855876000526001602052604060002090565b01546001600160a01b031690565b9116036109a95761087683820182610b32565b61087f81610b47565b600181036108b857506108a261089d6108b392600c94953691610193565b610fc3565b926000526001602052604060002090565b01555b005b6108c181610b47565b600381036108fd5750906108e56108e06108f8936108b6953691610193565b610f19565b9290916000526001602052604060002090565b610f41565b61090681610b47565b6004810361094057509060046109276108e061093a946108b6963691610193565b9390926000526001602052604060002090565b01610f41565b61094981610b47565b6002810361096a57509060086109276108e061093a946108b6963691610193565b80610976600592610b47565b03610997576107596108a2610992600d936108b6963691610193565b610ef1565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101da5760003660031901126101da576000546040516001600160a01b039091168152602090f35b346101da5760203660031901126101da5761029a610a03600435610b92565b6040519182916020835260208301906101fd565b908160609103126101da578051916040602083015192015190565b908160a09103126101da57608060405191610a4c83610134565b805183526020810151602084015260408101516040840152606081015160608401520151610a79816103cb565b608082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610ab057565b610a8d565b91908201809211610ab057565b90671bc16d674ec8000060008382039312818412811691841390151617610ab057565b9067119000ab100ffbff198201918213600116610ab057565b81810392916000138015828513169184121617610ab057565b600160ff1b8114610ab05760000390565b600611156101da57565b908160209103126101da57356101fa81610b28565b60061115610b5157565b634e487b7160e01b600052602160045260246000fd5b60405190610b7482610134565b60006080838281528260208201528260408201528260608201520152565b610b9a610b67565b816000526001602052610bb8610bb3604060002061029e565b610ff8565b9160208201928352806000526001602052610bdc610bb3600860406000200161029e565b8252600c610c1d610c05610bb36004610bff866000526001602052604060002090565b0161029e565b92604085019384526000526001602052604060002090565b015490606083019182526040519383516020860152516040850152516060840152516080830152608060018060a01b039101511660a082015260a081526101fa81610155565b9081672005fe4f268ea00001918212600116610ab057565b9081670dc5527f642c200001918212600116610ab057565b9081670de0b6b3a764000001918212600116610ab057565b9081670b68df18e471fbff190191821215600116610ab057565b90816714a8454c19e1ac0001918212600116610ab057565b9081670fc10e01578277ff190191821215600116610ab057565b90816703debd083b8c7c0001918212600116610ab057565b9081670295d400ea3257ff190191821215600116610ab057565b9081670157d8b2ecc7080001918212600116610ab057565b90816705310aa7d521300001918212600116610ab057565b9081670de0cc3d1561000001918212600116610ab057565b91909160008382019384129112908015821691151617610ab057565b909282821015610e47576101fa93610e0a9284670de0b6b3a76400009182610db5838361130b565b10610e3457506001600160ff1b039590505b835191610ddd610dd7838561132d565b8561130b565b10610e0f57506001600160ff1b0392610e04925090505b6040602082015191015190611286565b92610d71565b610d71565b610e0492610e23610e2992610e2e9461132d565b9061130b565b6110b3565b91610df4565b610e4191610e299161130b565b94610dc7565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b80910361010081126101da5781359260208301359260a0604082013593605f1901126101da5760e060405191610ec183610134565b606081013583526080810135602084015260a0810135604084015260c081013560608401520135610a79816103cb565b6040818051810103126101da5780610f0e60206040930151610b28565b0151610456816103cb565b6060818051810103126101da57610f336020820151610b28565b606060408201519101519091565b919042821115610fb157610f57610bb38461029e565b9081845542600385015542830391838311610ab057610f7591610afe565b428314610f9b57600160ff1b8114600019831416610ab057600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101da5780610fe060206040930151610b28565b015190565b81810292918115918404141715610ab057565b606081015160208201518082146110735780421160001461106b57905b8103908111610ab05760408201908151600081136000146110485750611042906101fa9351925190610fe5565b90610ab5565b9261105f9250611059905193610b17565b90610fe5565b8103908111610ab05790565b504290611015565b50505190565b90633b9aca0091828102928184051490151715610ab057565b60008190039190600160ff1b8114600116610ab057600019830503610ab057565b6706f05b59d3b20000811461128057670de0b6b3a76400008082121561122a57811561124b5760018260011b916002938305600203610ab05760008312801561126f575b61125d57821561122a57671bc16d674ec80000831461124b57821291821561123c57925b611124846118db565b801561122a5761119661115561115061114b61114661119b959997969961146f565b61199c565b611379565b611079565b61119161116961116483611906565b610c63565b61118b61118661118061117b86611931565b610c7b565b85611a13565b610c93565b9061197a565b610afe565b6119c4565b936000925b8184106111d257505050506101fa916111bf916000146111c4576118b4565b610b17565b6111cd90610b17565b6118b4565b90916112208661121a6111ea8561119186999b611610565b61118b61120a6112056112006111bf8780611a13565b611730565b6119ec565b6112148386611a13565b90610afe565b90610d71565b95019291906111a0565b6040516307a0212760e01b8152600490fd5b61124590610ac2565b9261111b565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec8000083136110f7565b50600090565b9061129090611379565b633b9aca0090818102918183041490151715610ab0576101fa9161132d565b8181029181830414901517600116156101da576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101da57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101da570490565b8181029181830414901517600116156101da57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517600116156101da57671bc16d674ec80000900490565b60b581600160881b811015611420575b80690100000000000000000062010000921015611413575b65010000000000811015611406575b63010000008110156113f9575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916113bd565b60201c9160101b916113b0565b60401c9160201b916113a1565b5068b500000000000000009050608082901c611389565b1561143e57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642849061149b60008213611437565b711340daa0d5f769dba1915cef59f0815a55066114b782611a5f565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b801561172357675698eef06670000081121561128057675698eef0666fffff1981131561171657600061170661164583611ad1565b6116ce61120061165f61165a6111868561134e565b61195b565b92610e0a6117016116fc6116f56116ef6116ea6116e46116df6116d96116d48d6116ce6116c96116c36116be6111806116b96116b36116ae6116a86116a38a611a34565b610cab565b89611a13565b610cc5565b87611a13565b610cdd565b610cf7565b83611a13565b610d0f565b90611a13565b610d29565b8c611a13565b610d41565b8a611a13565b610d59565b88611a13565b9380611a13565b611092565b610ae5565b9112156101fa576101fa90610ac2565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b680248ce36a70cb26b3e1981131561128057680755bf798b4a1bf1e5811215611880576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be889080820291820514600116156101da57670de0b6b3a7640000900590565b670de0b6b3a7640000908181029181830514901517600116156101da57671bc16d674ec80000900590565b6703c1665c7aab2000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b669f32752462a000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b600181151516156101da576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a764000090818102918183051490151782151516156101da570590565b671bc16d674ec7ffff198181029160019183051416156101da57670de0b6b3a7640000900590565b6709d028cc6f205fff198181029160019183051416156101da57670de0b6b3a7640000900590565b670fa8cedfc2adddfa9080820291820514600116156101da57670de0b6b3a7640000900590565b8181029181830514901517600116156101da57670de0b6b3a7640000900590565b67025f0fe105a31400908181029181830514901517600116156101da57670de0b6b3a7640000900590565b611a6a811515611437565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b600160ff1b8114611aec5760008112156101fa571960010190565b604051634d2d75b160e01b8152600490fdfea2646970667358221220b596d744fe988e0f66eb3212b01d8a9e660acea43730ff108a9b5edd5f05d2b364736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a26469706673582212207941646642db53c47110772a797d74489876be89a1f718aeb1e565458d4ceedc64736f6c63430008160033","sourceMap":"198:2085:79:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;709:579;;:::i;:::-;198:2085;;785:32;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;776:41;198:2085;;-1:-1:-1;;;;;;198:2085:79;-1:-1:-1;;;;;198:2085:79;;;;;;;;;;;836:32;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;827:41;198:2085;;-1:-1:-1;;;;;;198:2085:79;-1:-1:-1;;;;;198:2085:79;;;;;;776:41;198:2085;878:11;;198:2085;;-1:-1:-1;;;;;198:2085:79;;;878:11;:34;;;;;198:2085;;-1:-1:-1;;;878:34:79;;;898:4;198:2085;878:34;;198:2085;905:6;198:2085;;;;;;;;;;;;;;;878:34;;;;;;;;198:2085;-1:-1:-1;827:41:79;198:2085;;;922:11;;-1:-1:-1;;;;;198:2085:79;;;922:11;:34;;;;;;198:2085;;922:34;;;898:4;198:2085;922:34;;198:2085;905:6;198:2085;;;;;;;;;;;898:4;;922:34;;;;;;;;198:2085;-1:-1:-1;776:41:79;198:2085;981:15;;-1:-1:-1;;;;;198:2085:79;;;981:15;827:41;198:2085;998:15;;-1:-1:-1;;;;;198:2085:79;;;998:15;198:2085;;;973:46;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;198:2085:79;;;;;;;378:4:31;;;198:2085:79;378:4:31;;;;198:2085:79;378:4:31;;;;973:46:79;;;;;;;;;967:52;198:2085;;-1:-1:-1;;;;;;198:2085:79;-1:-1:-1;;;;;198:2085:79;;;;;;;;;;;1036:20;;;;;;;;;;;;;;;;;;;;;198:2085;;;;;;;1036:20;;;;;;;;;1029:27;198:2085;;-1:-1:-1;;;;;;198:2085:79;-1:-1:-1;;;;;198:2085:79;;;;;;;;;1092:13;;378:4:31;198:2085:79;1092:13;198:2085;;1078:28;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;198:2085:79;;;;;;;;;1078:28;;;;;;;;;1066:40;198:2085;;-1:-1:-1;;;;;;198:2085:79;-1:-1:-1;;;;;198:2085:79;;;;;;;;;1145:18;;378:4:31;198:2085:79;1145:18;198:2085;;;1125:39;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;198:2085:79;;;;;;;;;1125:39;;;;;;;;;;1116:48;1175;1116;785:32;198:2085;;;;;;;;1116:48;198:2085;;;1116:48;198:2085;;1116:48;776:41;198:2085;1175:14;;-1:-1:-1;;;;;198:2085:79;;;1175:14;1029:27;378:4:31;1190:13:79;;-1:-1:-1;;;;;198:2085:79;378:4:31;198:2085:79;1190:13;198:2085;;-1:-1:-1;;;1175:48:79;;;-1:-1:-1;;;;;198:2085:79;;;;1175:48;;198:2085;-1:-1:-1;;378:4:31;;;198:2085:79;1175:48;;198:2085;;;;1175:48;;198:2085;;1175:48;198:2085;;1175:48;;198:2085;;378:4:31;;;;;1175:48:79;;;;;;;;;;1233;1175;;;;;198:2085;-1:-1:-1;827:41:79;198:2085;1233:14;;-1:-1:-1;;;;;198:2085:79;;;1233:14;1029:27;378:4:31;;;;;;1248:13:79;;-1:-1:-1;;;;;198:2085:79;378:4:31;198:2085:79;1248:13;198:2085;;1233:48;;;-1:-1:-1;;;;;198:2085:79;;;;1233:48;;198:2085;-1:-1:-1;;378:4:31;;;198:2085:79;;;;;;;;378:4:31;;;;;1233:48:79;;;;;;;;;;;198:2085;;;1233:48;;;;;;-1:-1:-1;1233:48:79;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;198:2085;;;1233:48;;;;;;;:::i;1175:::-;;;;;;;;;;;;;:::i;:::-;;;;;1125:39;;:::i;922:34::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;198:2085;;;878:34;;;;;;:::i;:::-;;;;;198:2085;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;198:2085:79;;;;;;;378:11:59;198:2085:79;;;;;;;;;-1:-1:-1;;198:2085:79;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;198:2085:79;;;;;291:22;198:2085;;;;;;;;;;;;;-1:-1:-1;;198:2085:79;;;;992:4:59;378::31;198:2085:79;;-1:-1:-1;;;992:20:59;;198:2085:79;;;992:20:59;;;198:2085:79;;;;;;;;;;-1:-1:-1;;;;;198:2085:79;992:20:59;;;;;;;-1:-1:-1;992:20:59;;;198:2085:79;1029:19:59;;;198:2085:79;;;-1:-1:-1;;;;;198:2085:79;;;;-1:-1:-1;;;;;198:2085:79;;;;;;;;;;;;;;;;;992:20:59;;;198:2085:79;992:20:59;;198:2085:79;992:20:59;;;;;;198:2085:79;992:20:59;;;:::i;:::-;;;198:2085:79;;;;;1029:19:59;198:2085:79;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;992:20:59;;;;;;;;-1:-1:-1;992:20:59;;198:2085:79;;;;;;-1:-1:-1;;198:2085:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;198:2085:79;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;198:2085:79;;;;;;;;;;;;;;-1:-1:-1;;;198:2085:79;;;;814:2;198:2085;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;198:2085:79;;;;;;;;;;;;;;-1:-1:-1;;;198:2085:79;;;;814:2;198:2085;;;;;;;:::o;378:4:31:-;;;;;;;;;;198:2085:79;;;378:4:31;;;;;:::o;1671:64:0:-;-1:-1:-1;;;1671:64:0;;198:2085:79;;;-1:-1:-1;1671:64:0;;;;;;;;;;;;;-1:-1:-1;1671:64:0;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;198:2085:79;;;;;;;-1:-1:-1;;198:2085:79;1671:64:0;;198:2085:79;;:::i;:::-;1671:64:0;;;-1:-1:-1;1671:64:0;;;;:::o;:::-;;;:::o;1819:584::-;1873:7;198:2085:79;;;;;;1873:7:0;;;198:2085:79;;;;;1896:14:0;:::o;198:2085:79:-;1896:14:0;:::o;1869:528::-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;198:2085:79;;;;;2196:43:0;;;;;;1671:64;;;;198:2085:79;;;;1671:64:0;;;;;;198:2085:79;1671:64:0;2196:43;;;198:2085:79;;2196:43:0;;;;;;;;:::i;:::-;2086:175;198:2085:79;;2086:175:0;;;2196:43;2086:175;;;;;:::i;:::-;;;;;;;;;:::i;:::-;2047:232;;;;;2312:27;2047:232;;:::i;:::-;2196:43;198:2085:79;;;2312:27:0;;;;;;:::i;396:450:59:-;198:2085:79;;;447:32:59;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;776:41:79;198:2085;;-1:-1:-1;;;;;;198:2085:79;-1:-1:-1;;;;;198:2085:79;;;;;;;;;;;498:32:59;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;827:41:79;198:2085;;-1:-1:-1;;;;;;198:2085:79;-1:-1:-1;;;;;198:2085:79;;;;;;438:41:59;198:2085:79;540:11:59;;198:2085:79;;;540:11:59;:34;;;;;198:2085:79;;-1:-1:-1;;;540:34:59;;;560:4;540:34;;;198:2085:79;905:6;198:2085;;;;;;;;;;;;;;;540:34:59;;;;;;;;396:450;-1:-1:-1;489:41:59;198:2085:79;584:11:59;;-1:-1:-1;;;;;198:2085:79;;;584:11:59;:34;;;;;;198:2085:79;;584:34:59;;;560:4;540:34;584;;198:2085:79;905:6;198:2085;;;;;;;;;;;;;;;584:34:59;;;;;;;;396:450;-1:-1:-1;438:41:59;198:2085:79;643:15:59;;-1:-1:-1;;;;;198:2085:79;;;643:15:59;489:41;198:2085:79;660:15:59;;-1:-1:-1;;;;;198:2085:79;;;660:15:59;198:2085:79;;;635:50:59;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;198:2085:79;;;;;;;378:4:31;;;198:2085:79;378:4:31;;;;198:2085:79;378:4:31;;;;635:50:59;;;;;;;;;967:52:79;198:2085;;-1:-1:-1;;;;;;198:2085:79;-1:-1:-1;;;;;198:2085:79;;;;;;;;;;;;702:20:59;;;;;;;;;;;;;;;;;;;;198:2085:79;;;;;;;702:20:59;;;;;;;;;;695:27;733:48;695:27;785:32:79;198:2085;;;;;;;;1029:27;198:2085;;;1029:27;198:2085;;695:27:59;438:41;198:2085:79;733:14:59;;-1:-1:-1;;;;;198:2085:79;;;733:14:59;695:27;378:4:31;;;;748:13:59;;-1:-1:-1;;;;;198:2085:79;378:4:31;198:2085:79;748:13:59;198:2085:79;;-1:-1:-1;;;733:48:59;;;-1:-1:-1;;;;;198:2085:79;;;540:34:59;733:48;;198:2085:79;-1:-1:-1;;378:4:31;;;198:2085:79;733:48:59;;198:2085:79;;;;733:48:59;;198:2085:79;;733:48:59;198:2085:79;;;;;;378:4:31;;;;;733:48:59;;;;;;;;;;791;733;;;;;396:450;-1:-1:-1;489:41:59;198:2085:79;791:14:59;;-1:-1:-1;;;;;198:2085:79;;;791:14:59;695:27;378:4:31;;;;806:13:59;;-1:-1:-1;;;;;198:2085:79;378:4:31;198:2085:79;791:48:59;;;;;;;;;;;396:450;;:::o;791:48::-;;;;;;-1:-1:-1;791:48:59;;;;;;:::i;:::-;;396:450::o;733:48::-;;;;;;;;;;;;;:::i;:::-;;;;;584:34;;;;;;:::i;:::-;;;;540;;;;;;:::i;:::-;;;;;198:2085:79;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","POOL_ID()":"e0d7d0e9","TEST_SWAP_FEE()":"620a2607","failed()":"ba414fa6","getPoolLiquidityToken(uint256)":"e21485ad","setUp()":"0a9254e4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"upper\",\"type\":\"uint256\"}],\"name\":\"BisectionLib_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"lowerResult\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"upperResult\",\"type\":\"int256\"}],\"name\":\"BisectionLib_RootOutsideBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Infinity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Min\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NegativeInfinity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfBounds\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POOL_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_SWAP_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolLiquidityToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"BisectionLib_InvalidBounds(uint256,uint256)\":[{\"details\":\"Thrown when the lower bound is greater than the upper bound.\"}],\"BisectionLib_RootOutsideBounds(int256,int256)\":[{\"details\":\"Thrown when the result of the function `fx` for each input, `upper` and `lower`, is the same sign.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/unit/strategies/LogNormal/SetUp.sol\":\"LogNormalSetUp\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/lib/SignedWadMath.sol\":{\"keccak256\":\"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a\",\"dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/solvers/LogNormal/LogNormalExtendedLib.sol\":{\"keccak256\":\"0x204015cfa704225710b310e02fd4ea4648617f580cbb08fb22306357969e4a63\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0b2df304ee8a88040b573201316e12756e74c042fddbb4ec25d23ecd34971768\",\"dweb:/ipfs/QmaC4vUQY6UAD6UrEF3rvMLyYbtQKuF9Bbgr3aqkGMzSqF\"]},\"src/solvers/LogNormal/LogNormalSolver.sol\":{\"keccak256\":\"0xe97dbbad3eb6aadeaaa7c9ad82cf08a79006ad3058e6dcbc2576e17d6337cc1d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://22e41f296c3675c79ba6a670d081e073cdb935fd44f8e739a88a250be0766004\",\"dweb:/ipfs/QmZMYJq14i3q2zKTerD836DXC9deux4EggR3BNp61J4t2U\"]},\"src/strategies/LogNormal/LogNormal.sol\":{\"keccak256\":\"0xce0e14a6180d989eff4223bd173904717c745f93c7d02e972dce9d4f5a414d15\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0fe700ac552153eb030453532afdf52d7ae1b7f8ca53b0f050ab9a9e0b1f0ee9\",\"dweb:/ipfs/QmPQW7F1wUqLKs2qPmvJq5EiBfUmPGGsW4y9dUmMtDkfnt\"]},\"src/strategies/LogNormal/LogNormalLib.sol\":{\"keccak256\":\"0x208f8cd3b02d7305d4c54cf02c07f443ddfed1c6c719e752888be208c3ad3645\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://850b799c647dfbece76c7c1daad3ac375243f66daa0eb8206eeeee783982429c\",\"dweb:/ipfs/QmUrixVb4EAxccZxvZCoAJjF8YRqnMbX6cpGCwPfjZvgQk\"]},\"src/strategies/LogNormal/LogNormalMath.sol\":{\"keccak256\":\"0x5d97983f91cf766e1e87ef244a39c6ec6961de38c4c8817030b32edd72a1e65f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://df6121bf8157bad9b659d484fdcc8ebf0cd41179b323d06225d1cf6bff266663\",\"dweb:/ipfs/QmRGN6MwWZb9f6X4Xqv7f3VpUFWXFb36jDKcyEQVaFUhhz\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]},\"src/test/helpers/MockStrategy.sol\":{\"keccak256\":\"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5\",\"dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw\"]},\"src/test/helpers/SetUp.sol\":{\"keccak256\":\"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30\",\"dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14\"]},\"src/test/unit/DFMM/SetUp.sol\":{\"keccak256\":\"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4\",\"dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm\"]},\"src/test/unit/strategies/LogNormal/SetUp.sol\":{\"keccak256\":\"0x272206974452b0c363a55f2658a4c24e6355f5a06fe817532c723af8f732540d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://87550594bcc0d4b66eada3e1692ac1b15064eefee9cbb356ff8c4410f4a51e78\",\"dweb:/ipfs/QmS3HCkpwfti4ifTitYoR5sRLb8ShMDvkW9ST9Ta8cUvu5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"lower","type":"uint256"},{"internalType":"uint256","name":"upper","type":"uint256"}],"type":"error","name":"BisectionLib_InvalidBounds"},{"inputs":[{"internalType":"int256","name":"lowerResult","type":"int256"},{"internalType":"int256","name":"upperResult","type":"int256"}],"type":"error","name":"BisectionLib_RootOutsideBounds"},{"inputs":[],"type":"error","name":"Infinity"},{"inputs":[],"type":"error","name":"Min"},{"inputs":[],"type":"error","name":"NegativeInfinity"},{"inputs":[],"type":"error","name":"OutOfBounds"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"POOL_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_SWAP_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolLiquidityToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/unit/strategies/LogNormal/SetUp.sol":"LogNormalSetUp"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/lib/SignedWadMath.sol":{"keccak256":"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630","urls":["bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a","dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN"],"license":"MIT"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/solvers/LogNormal/LogNormalExtendedLib.sol":{"keccak256":"0x204015cfa704225710b310e02fd4ea4648617f580cbb08fb22306357969e4a63","urls":["bzz-raw://0b2df304ee8a88040b573201316e12756e74c042fddbb4ec25d23ecd34971768","dweb:/ipfs/QmaC4vUQY6UAD6UrEF3rvMLyYbtQKuF9Bbgr3aqkGMzSqF"],"license":"GPL-3.0-or-later"},"src/solvers/LogNormal/LogNormalSolver.sol":{"keccak256":"0xe97dbbad3eb6aadeaaa7c9ad82cf08a79006ad3058e6dcbc2576e17d6337cc1d","urls":["bzz-raw://22e41f296c3675c79ba6a670d081e073cdb935fd44f8e739a88a250be0766004","dweb:/ipfs/QmZMYJq14i3q2zKTerD836DXC9deux4EggR3BNp61J4t2U"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormal.sol":{"keccak256":"0xce0e14a6180d989eff4223bd173904717c745f93c7d02e972dce9d4f5a414d15","urls":["bzz-raw://0fe700ac552153eb030453532afdf52d7ae1b7f8ca53b0f050ab9a9e0b1f0ee9","dweb:/ipfs/QmPQW7F1wUqLKs2qPmvJq5EiBfUmPGGsW4y9dUmMtDkfnt"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormalLib.sol":{"keccak256":"0x208f8cd3b02d7305d4c54cf02c07f443ddfed1c6c719e752888be208c3ad3645","urls":["bzz-raw://850b799c647dfbece76c7c1daad3ac375243f66daa0eb8206eeeee783982429c","dweb:/ipfs/QmUrixVb4EAxccZxvZCoAJjF8YRqnMbX6cpGCwPfjZvgQk"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormalMath.sol":{"keccak256":"0x5d97983f91cf766e1e87ef244a39c6ec6961de38c4c8817030b32edd72a1e65f","urls":["bzz-raw://df6121bf8157bad9b659d484fdcc8ebf0cd41179b323d06225d1cf6bff266663","dweb:/ipfs/QmRGN6MwWZb9f6X4Xqv7f3VpUFWXFb36jDKcyEQVaFUhhz"],"license":"GPL-3.0-or-later"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"},"src/test/helpers/MockStrategy.sol":{"keccak256":"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a","urls":["bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5","dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw"],"license":"UNLICENSED"},"src/test/helpers/SetUp.sol":{"keccak256":"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb","urls":["bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30","dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14"],"license":"UNLICENSED"},"src/test/unit/DFMM/SetUp.sol":{"keccak256":"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a","urls":["bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4","dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm"],"license":"UNLICENSED"},"src/test/unit/strategies/LogNormal/SetUp.sol":{"keccak256":"0x272206974452b0c363a55f2658a4c24e6355f5a06fe817532c723af8f732540d","urls":["bzz-raw://87550594bcc0d4b66eada3e1692ac1b15064eefee9cbb356ff8c4410f4a51e78","dweb:/ipfs/QmS3HCkpwfti4ifTitYoR5sRLb8ShMDvkW9ST9Ta8cUvu5"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/unit/strategies/LogNormal/SetUp.sol","id":48577,"exportedSymbols":{"ArbiterToken":[43381],"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"DFMM":[29062],"DFMMSetUp":[45761],"DSTest":[1786],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"LPToken":[29516],"Lex":[44392],"LibString":[26659],"LogNormal":[38879],"LogNormalLib":[39517],"LogNormalSetUp":[48576],"LogNormalSolver":[36460],"MAX_ITER":[33842],"Min":[27736],"MockERC20":[25560],"MockStrategy":[44649],"ONE":[30639],"SQRT_WAD":[30630],"SafeTransferLib":[26744],"SetUp":[44852],"SignedWadMathLib":[30623],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"TWO":[30633],"Test":[8195],"TestBase":[1843],"Vm":[9352],"WETH":[26027],"ZERO":[30649],"abs":[27763],"bisection":[31118],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeD1":[34040],"computeD2":[34104],"computeHalfSigmaTauSquared":[39613],"computeInitialPoolData":[34282],"computeLGivenX":[33886],"computeLnSDivK":[39549],"computeNextLiquidity":[34383],"computeNextRx":[34484],"computeNextRy":[34585],"computeOptimalLower":[35332],"computeOptimalRaise":[35398],"computeScalingFactor":[30048],"computeSigmaSqrtTau":[39577],"computeXGivenL":[33976],"computeYGivenL":[33932],"console":[17416],"console2":[25512],"diffLower":[34961],"diffRaise":[35266],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"findRootLiquidity":[34224],"findRootLower":[34631],"findRootRaise":[34677],"findRootX":[34184],"findRootY":[34144],"muli":[27777],"muliWad":[27795],"mulidiv":[39703],"mulidivUp":[39659],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"39:2245:79","nodes":[{"id":48307,"nodeType":"PragmaDirective","src":"39:24:79","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":48308,"nodeType":"ImportDirective","src":"65:48:79","nodes":[],"absolutePath":"src/strategies/LogNormal/LogNormal.sol","file":"src/strategies/LogNormal/LogNormal.sol","nameLocation":"-1:-1:-1","scope":48577,"sourceUnit":38880,"symbolAliases":[],"unitAlias":""},{"id":48309,"nodeType":"ImportDirective","src":"114:51:79","nodes":[],"absolutePath":"src/solvers/LogNormal/LogNormalSolver.sol","file":"src/solvers/LogNormal/LogNormalSolver.sol","nameLocation":"-1:-1:-1","scope":48577,"sourceUnit":36461,"symbolAliases":[],"unitAlias":""},{"id":48310,"nodeType":"ImportDirective","src":"166:30:79","nodes":[],"absolutePath":"src/test/unit/DFMM/SetUp.sol","file":"../../DFMM/SetUp.sol","nameLocation":"-1:-1:-1","scope":48577,"sourceUnit":45762,"symbolAliases":[],"unitAlias":""},{"id":48576,"nodeType":"ContractDefinition","src":"198:2085:79","nodes":[{"id":48315,"nodeType":"VariableDeclaration","src":"237:19:79","nodes":[],"constant":false,"mutability":"mutable","name":"logNormal","nameLocation":"247:9:79","scope":48576,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"},"typeName":{"id":48314,"nodeType":"UserDefinedTypeName","pathNode":{"id":48313,"name":"LogNormal","nameLocations":["237:9:79"],"nodeType":"IdentifierPath","referencedDeclaration":38879,"src":"237:9:79"},"referencedDeclaration":38879,"src":"237:9:79","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}},"visibility":"internal"},{"id":48318,"nodeType":"VariableDeclaration","src":"262:22:79","nodes":[],"constant":false,"mutability":"mutable","name":"solver","nameLocation":"278:6:79","scope":48576,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"},"typeName":{"id":48317,"nodeType":"UserDefinedTypeName","pathNode":{"id":48316,"name":"LogNormalSolver","nameLocations":["262:15:79"],"nodeType":"IdentifierPath","referencedDeclaration":36460,"src":"262:15:79"},"referencedDeclaration":36460,"src":"262:15:79","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"visibility":"internal"},{"id":48320,"nodeType":"VariableDeclaration","src":"291:22:79","nodes":[],"constant":false,"functionSelector":"e0d7d0e9","mutability":"mutable","name":"POOL_ID","nameLocation":"306:7:79","scope":48576,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48319,"name":"uint256","nodeType":"ElementaryTypeName","src":"291:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":48334,"nodeType":"VariableDeclaration","src":"320:201:79","nodes":[],"constant":false,"mutability":"mutable","name":"defaultParams","nameLocation":"346:13:79","scope":48576,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":48322,"nodeType":"UserDefinedTypeName","pathNode":{"id":48321,"name":"LogNormal.LogNormalParams","nameLocations":["320:9:79","330:15:79"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"320:25:79"},"referencedDeclaration":38204,"src":"320:25:79","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"value":{"arguments":[{"id":48325,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"406:3:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48326,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"426:3:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48327,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"444:3:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48328,"name":"TEST_SWAP_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44731,"src":"466:13:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":48331,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"509:4:79","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSetUp_$48576","typeString":"contract LogNormalSetUp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormalSetUp_$48576","typeString":"contract LogNormalSetUp"}],"id":48330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"501:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48329,"name":"address","nodeType":"ElementaryTypeName","src":"501:7:79","typeDescriptions":{}}},"id":48332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"501:13:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48323,"name":"LogNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38879,"src":"362:9:79","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormal_$38879_$","typeString":"type(contract LogNormal)"}},"id":48324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"372:15:79","memberName":"LogNormalParams","nodeType":"MemberAccess","referencedDeclaration":38204,"src":"362:25:79","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}},"id":48333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["398:6:79","419:5:79","439:3:79","457:7:79","489:10:79"],"names":["strike","sigma","tau","swapFee","controller"],"nodeType":"FunctionCall","src":"362:159:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"visibility":"internal"},{"id":48337,"nodeType":"VariableDeclaration","src":"528:29:79","nodes":[],"constant":false,"mutability":"mutable","name":"defaultReserveX","nameLocation":"536:15:79","scope":48576,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48335,"name":"uint256","nodeType":"ElementaryTypeName","src":"528:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"id":48336,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"554:3:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":48340,"nodeType":"VariableDeclaration","src":"563:26:79","nodes":[],"constant":false,"mutability":"mutable","name":"defaultPrice","nameLocation":"571:12:79","scope":48576,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48338,"name":"uint256","nodeType":"ElementaryTypeName","src":"563:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"id":48339,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"586:3:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":48347,"nodeType":"VariableDeclaration","src":"595:107:79","nodes":[],"constant":false,"mutability":"mutable","name":"defaultInitialPoolData","nameLocation":"601:22:79","scope":48576,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":48341,"name":"bytes","nodeType":"ElementaryTypeName","src":"595:5:79","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"id":48343,"name":"defaultReserveX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48337,"src":"657:15:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48344,"name":"defaultPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48340,"src":"674:12:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48345,"name":"defaultParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48334,"src":"688:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage","typeString":"struct LogNormal.LogNormalParams storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage","typeString":"struct LogNormal.LogNormalParams storage ref"}],"id":48342,"name":"computeInitialPoolData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34282,"src":"634:22:79","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (bytes memory)"}},"id":48346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"634:68:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":48474,"nodeType":"FunctionDefinition","src":"709:579:79","nodes":[],"body":{"id":48473,"nodeType":"Block","src":"742:546:79","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":48351,"name":"SetUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44852,"src":"752:5:79","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SetUp_$44852_$","typeString":"type(contract SetUp)"}},"id":48353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"758:5:79","memberName":"setUp","nodeType":"MemberAccess","referencedDeclaration":44830,"src":"752:11:79","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":48354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"752:13:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48355,"nodeType":"ExpressionStatement","src":"752:13:79"},{"expression":{"id":48364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48356,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"776:6:79","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"746f6b656e58","id":48360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"799:8:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_6076c392819008730df70238b1f1890b3147aecb6d122c8c4b4d5aa1b5f97482","typeString":"literal_string \"tokenX\""},"value":"tokenX"},{"hexValue":"58","id":48361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"809:3:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_550c64a15031c3064454c19adc6243a6122c138a242eaa098da50bb114fc8d56","typeString":"literal_string \"X\""},"value":"X"},{"hexValue":"3138","id":48362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"814:2:79","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6076c392819008730df70238b1f1890b3147aecb6d122c8c4b4d5aa1b5f97482","typeString":"literal_string \"tokenX\""},{"typeIdentifier":"t_stringliteral_550c64a15031c3064454c19adc6243a6122c138a242eaa098da50bb114fc8d56","typeString":"literal_string \"X\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":48359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"785:13:79","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":48358,"nodeType":"UserDefinedTypeName","pathNode":{"id":48357,"name":"MockERC20","nameLocations":["789:9:79"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"789:9:79"},"referencedDeclaration":25560,"src":"789:9:79","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":48363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"785:32:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"src":"776:41:79","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":48365,"nodeType":"ExpressionStatement","src":"776:41:79"},{"expression":{"id":48374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48366,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"827:6:79","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"746f6b656e59","id":48370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"850:8:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_215291f8765d54708d051c35e3f18ebdc532df00c5f85fe5e7d65833297521e9","typeString":"literal_string \"tokenY\""},"value":"tokenY"},{"hexValue":"59","id":48371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"860:3:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a2c5f9025f1f0333863704310875ae81a574171bed5b047cfc0f50e347f630e","typeString":"literal_string \"Y\""},"value":"Y"},{"hexValue":"3138","id":48372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"865:2:79","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_215291f8765d54708d051c35e3f18ebdc532df00c5f85fe5e7d65833297521e9","typeString":"literal_string \"tokenY\""},{"typeIdentifier":"t_stringliteral_9a2c5f9025f1f0333863704310875ae81a574171bed5b047cfc0f50e347f630e","typeString":"literal_string \"Y\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":48369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"836:13:79","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":48368,"nodeType":"UserDefinedTypeName","pathNode":{"id":48367,"name":"MockERC20","nameLocations":["840:9:79"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"840:9:79"},"referencedDeclaration":25560,"src":"840:9:79","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":48373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"836:32:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"src":"827:41:79","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":48375,"nodeType":"ExpressionStatement","src":"827:41:79"},{"expression":{"arguments":[{"arguments":[{"id":48381,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"898:4:79","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSetUp_$48576","typeString":"contract LogNormalSetUp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormalSetUp_$48576","typeString":"contract LogNormalSetUp"}],"id":48380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"890:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48379,"name":"address","nodeType":"ElementaryTypeName","src":"890:7:79","typeDescriptions":{}}},"id":48382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"890:13:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030653138","id":48383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"905:6:79","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100e18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":48376,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"878:6:79","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":48378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"885:4:79","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":25546,"src":"878:11:79","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":48384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"878:34:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48385,"nodeType":"ExpressionStatement","src":"878:34:79"},{"expression":{"arguments":[{"arguments":[{"id":48391,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"942:4:79","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSetUp_$48576","typeString":"contract LogNormalSetUp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormalSetUp_$48576","typeString":"contract LogNormalSetUp"}],"id":48390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"934:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48389,"name":"address","nodeType":"ElementaryTypeName","src":"934:7:79","typeDescriptions":{}}},"id":48392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"934:13:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030653138","id":48393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"949:6:79","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100e18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":48386,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"922:6:79","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":48388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"929:4:79","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":25546,"src":"922:11:79","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":48394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"922:34:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48395,"nodeType":"ExpressionStatement","src":"922:34:79"},{"expression":{"id":48410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48396,"name":"lex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"967:3:79","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":48402,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"989:6:79","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":48401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"981:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48400,"name":"address","nodeType":"ElementaryTypeName","src":"981:7:79","typeDescriptions":{}}},"id":48403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"981:15:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":48406,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"1006:6:79","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":48405,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"998:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48404,"name":"address","nodeType":"ElementaryTypeName","src":"998:7:79","typeDescriptions":{}}},"id":48407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"998:15:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48408,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"1015:3:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"973:7:79","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_contract$_Lex_$44392_$","typeString":"function (address,address,uint256) returns (contract Lex)"},"typeName":{"id":48398,"nodeType":"UserDefinedTypeName","pathNode":{"id":48397,"name":"Lex","nameLocations":["977:3:79"],"nodeType":"IdentifierPath","referencedDeclaration":44392,"src":"977:3:79"},"referencedDeclaration":44392,"src":"977:3:79","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}}},"id":48409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"973:46:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}},"src":"967:52:79","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}},"id":48411,"nodeType":"ExpressionStatement","src":"967:52:79"},{"expression":{"id":48421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48412,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1029:4:79","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30","id":48418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1053:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":48417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1045:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48416,"name":"address","nodeType":"ElementaryTypeName","src":"1045:7:79","typeDescriptions":{}}},"id":48419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1045:10:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1036:8:79","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_DFMM_$29062_$","typeString":"function (address) returns (contract DFMM)"},"typeName":{"id":48414,"nodeType":"UserDefinedTypeName","pathNode":{"id":48413,"name":"DFMM","nameLocations":["1040:4:79"],"nodeType":"IdentifierPath","referencedDeclaration":29062,"src":"1040:4:79"},"referencedDeclaration":29062,"src":"1040:4:79","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}},"id":48420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1036:20:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"src":"1029:27:79","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":48422,"nodeType":"ExpressionStatement","src":"1029:27:79"},{"expression":{"id":48432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48423,"name":"logNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48315,"src":"1066:9:79","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":48429,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1100:4:79","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":48428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1092:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48427,"name":"address","nodeType":"ElementaryTypeName","src":"1092:7:79","typeDescriptions":{}}},"id":48430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1092:13:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1078:13:79","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_LogNormal_$38879_$","typeString":"function (address) returns (contract LogNormal)"},"typeName":{"id":48425,"nodeType":"UserDefinedTypeName","pathNode":{"id":48424,"name":"LogNormal","nameLocations":["1082:9:79"],"nodeType":"IdentifierPath","referencedDeclaration":38879,"src":"1082:9:79"},"referencedDeclaration":38879,"src":"1082:9:79","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}}},"id":48431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1078:28:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}},"src":"1066:40:79","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}},"id":48433,"nodeType":"ExpressionStatement","src":"1066:40:79"},{"expression":{"id":48443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48434,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48318,"src":"1116:6:79","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":48440,"name":"logNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48315,"src":"1153:9:79","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}],"id":48439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1145:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48438,"name":"address","nodeType":"ElementaryTypeName","src":"1145:7:79","typeDescriptions":{}}},"id":48441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1145:18:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1125:19:79","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_LogNormalSolver_$36460_$","typeString":"function (address) returns (contract LogNormalSolver)"},"typeName":{"id":48436,"nodeType":"UserDefinedTypeName","pathNode":{"id":48435,"name":"LogNormalSolver","nameLocations":["1129:15:79"],"nodeType":"IdentifierPath","referencedDeclaration":36460,"src":"1129:15:79"},"referencedDeclaration":36460,"src":"1129:15:79","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}}},"id":48442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1125:39:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"src":"1116:48:79","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":48444,"nodeType":"ExpressionStatement","src":"1116:48:79"},{"expression":{"arguments":[{"arguments":[{"id":48450,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1198:4:79","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":48449,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1190:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48448,"name":"address","nodeType":"ElementaryTypeName","src":"1190:7:79","typeDescriptions":{}}},"id":48451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1190:13:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":48454,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1210:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":48453,"name":"uint256","nodeType":"ElementaryTypeName","src":"1210:7:79","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":48452,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1205:4:79","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":48455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1205:13:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":48456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1219:3:79","memberName":"max","nodeType":"MemberAccess","src":"1205:17:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48445,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"1175:6:79","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":48447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1182:7:79","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":25665,"src":"1175:14:79","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":48457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1175:48:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48458,"nodeType":"ExpressionStatement","src":"1175:48:79"},{"expression":{"arguments":[{"arguments":[{"id":48464,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1256:4:79","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":48463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1248:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48462,"name":"address","nodeType":"ElementaryTypeName","src":"1248:7:79","typeDescriptions":{}}},"id":48465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1248:13:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":48468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1268:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":48467,"name":"uint256","nodeType":"ElementaryTypeName","src":"1268:7:79","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":48466,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1263:4:79","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":48469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1263:13:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":48470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1277:3:79","memberName":"max","nodeType":"MemberAccess","src":"1263:17:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48459,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"1233:6:79","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":48461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1240:7:79","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":25665,"src":"1233:14:79","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":48471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1233:48:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48472,"nodeType":"ExpressionStatement","src":"1233:48:79"}]},"baseFunctions":[44830],"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"718:5:79","overrides":{"id":48349,"nodeType":"OverrideSpecifier","overrides":[],"src":"733:8:79"},"parameters":{"id":48348,"nodeType":"ParameterList","parameters":[],"src":"723:2:79"},"returnParameters":{"id":48350,"nodeType":"ParameterList","parameters":[],"src":"742:0:79"},"scope":48576,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":48514,"nodeType":"ModifierDefinition","src":"1294:350:79","nodes":[],"body":{"id":48513,"nodeType":"Block","src":"1310:334:79","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"30","id":48479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1328:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":48476,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"1320:2:79","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":48478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1323:4:79","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":9034,"src":"1320:7:79","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":48480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1320:10:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48481,"nodeType":"ExpressionStatement","src":"1320:10:79"},{"assignments":[48486],"declarations":[{"constant":false,"id":48486,"mutability":"mutable","name":"defaultInitParams","nameLocation":"1365:17:79","nodeType":"VariableDeclaration","scope":48513,"src":"1341:41:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":48485,"nodeType":"UserDefinedTypeName","pathNode":{"id":48484,"name":"IDFMM.InitParams","nameLocations":["1341:5:79","1347:10:79"],"nodeType":"IdentifierPath","referencedDeclaration":29543,"src":"1341:16:79"},"referencedDeclaration":29543,"src":"1341:16:79","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"id":48503,"initialValue":{"arguments":[{"arguments":[{"id":48491,"name":"logNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48315,"src":"1434:9:79","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}],"id":48490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1426:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48489,"name":"address","nodeType":"ElementaryTypeName","src":"1426:7:79","typeDescriptions":{}}},"id":48492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1426:18:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":48495,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"1474:6:79","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":48494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1466:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48493,"name":"address","nodeType":"ElementaryTypeName","src":"1466:7:79","typeDescriptions":{}}},"id":48496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1466:15:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":48499,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"1511:6:79","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":48498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1503:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48497,"name":"address","nodeType":"ElementaryTypeName","src":"1503:7:79","typeDescriptions":{}}},"id":48500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1503:15:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48501,"name":"defaultInitialPoolData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48347,"src":"1538:22:79","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"expression":{"id":48487,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"1385:5:79","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":48488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1391:10:79","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":29543,"src":"1385:16:79","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$29543_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":48502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1416:8:79","1458:6:79","1495:6:79","1532:4:79"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"1385:186:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}},"nodeType":"VariableDeclarationStatement","src":"1341:230:79"},{"expression":{"id":48510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":48504,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"1583:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},null,null,null],"id":48505,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1582:12:79","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$__$__$__$","typeString":"tuple(uint256,,,)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48508,"name":"defaultInitParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48486,"src":"1607:17:79","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":48506,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1597:4:79","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":48507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1602:4:79","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":28091,"src":"1597:9:79","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$29543_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":48509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1597:28:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"src":"1582:43:79","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48511,"nodeType":"ExpressionStatement","src":"1582:43:79"},{"id":48512,"nodeType":"PlaceholderStatement","src":"1636:1:79"}]},"name":"init","nameLocation":"1303:4:79","parameters":{"id":48475,"nodeType":"ParameterList","parameters":[],"src":"1307:2:79"},"virtual":false,"visibility":"internal"},{"id":48575,"nodeType":"ModifierDefinition","src":"1650:631:79","nodes":[],"body":{"id":48574,"nodeType":"Block","src":"1675:606:79","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"30","id":48519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1693:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":48516,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1836,"src":"1685:2:79","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":48518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1688:4:79","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":9034,"src":"1685:7:79","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":48520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1685:10:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48521,"nodeType":"ExpressionStatement","src":"1685:10:79"},{"assignments":[48526],"declarations":[{"constant":false,"id":48526,"mutability":"mutable","name":"params","nameLocation":"1739:6:79","nodeType":"VariableDeclaration","scope":48574,"src":"1706:39:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":48525,"nodeType":"UserDefinedTypeName","pathNode":{"id":48524,"name":"LogNormal.LogNormalParams","nameLocations":["1706:9:79","1716:15:79"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"1706:25:79"},"referencedDeclaration":38204,"src":"1706:25:79","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"id":48538,"initialValue":{"arguments":[{"hexValue":"32353030","id":48529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1796:10:79","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_2500000000000000000000_by_1","typeString":"int_const 2500000000000000000000"},"value":"2500"},{"id":48530,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"1827:3:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48531,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"1849:3:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48532,"name":"TEST_SWAP_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44731,"src":"1875:13:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":48535,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1922:4:79","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSetUp_$48576","typeString":"contract LogNormalSetUp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormalSetUp_$48576","typeString":"contract LogNormalSetUp"}],"id":48534,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1914:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48533,"name":"address","nodeType":"ElementaryTypeName","src":"1914:7:79","typeDescriptions":{}}},"id":48536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1914:13:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2500000000000000000000_by_1","typeString":"int_const 2500000000000000000000"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48527,"name":"LogNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38879,"src":"1748:9:79","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LogNormal_$38879_$","typeString":"type(contract LogNormal)"}},"id":48528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1758:15:79","memberName":"LogNormalParams","nodeType":"MemberAccess","referencedDeclaration":38204,"src":"1748:25:79","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LogNormalParams_$38204_storage_ptr_$","typeString":"type(struct LogNormal.LogNormalParams storage pointer)"}},"id":48537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1788:6:79","1820:5:79","1844:3:79","1866:7:79","1902:10:79"],"names":["strike","sigma","tau","swapFee","controller"],"nodeType":"FunctionCall","src":"1748:190:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"nodeType":"VariableDeclarationStatement","src":"1706:232:79"},{"assignments":[48543],"declarations":[{"constant":false,"id":48543,"mutability":"mutable","name":"defaultInitParams","nameLocation":"1973:17:79","nodeType":"VariableDeclaration","scope":48574,"src":"1949:41:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams"},"typeName":{"id":48542,"nodeType":"UserDefinedTypeName","pathNode":{"id":48541,"name":"IDFMM.InitParams","nameLocations":["1949:5:79","1955:10:79"],"nodeType":"IdentifierPath","referencedDeclaration":29543,"src":"1949:16:79"},"referencedDeclaration":29543,"src":"1949:16:79","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_storage_ptr","typeString":"struct IDFMM.InitParams"}},"visibility":"internal"}],"id":48564,"initialValue":{"arguments":[{"arguments":[{"id":48548,"name":"logNormal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48315,"src":"2042:9:79","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormal_$38879","typeString":"contract LogNormal"}],"id":48547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2034:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48546,"name":"address","nodeType":"ElementaryTypeName","src":"2034:7:79","typeDescriptions":{}}},"id":48549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2034:18:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":48552,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"2082:6:79","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":48551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2074:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48550,"name":"address","nodeType":"ElementaryTypeName","src":"2074:7:79","typeDescriptions":{}}},"id":48553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2074:15:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":48556,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"2119:6:79","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":48555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2111:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48554,"name":"address","nodeType":"ElementaryTypeName","src":"2111:7:79","typeDescriptions":{}}},"id":48557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2111:15:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"31","id":48559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2169:7:79","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},{"hexValue":"32353030","id":48560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2178:10:79","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_2500000000000000000000_by_1","typeString":"int_const 2500000000000000000000"},"value":"2500"},{"id":48561,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48526,"src":"2190:6:79","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},{"typeIdentifier":"t_rational_2500000000000000000000_by_1","typeString":"int_const 2500000000000000000000"},{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}],"id":48558,"name":"computeInitialPoolData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34282,"src":"2146:22:79","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_struct$_LogNormalParams_$38204_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256,uint256,struct LogNormal.LogNormalParams memory) pure returns (bytes memory)"}},"id":48562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2146:51:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48544,"name":"IDFMM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"1993:5:79","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDFMM_$29730_$","typeString":"type(contract IDFMM)"}},"id":48545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1999:10:79","memberName":"InitParams","nodeType":"MemberAccess","referencedDeclaration":29543,"src":"1993:16:79","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitParams_$29543_storage_ptr_$","typeString":"type(struct IDFMM.InitParams storage pointer)"}},"id":48563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2024:8:79","2066:6:79","2103:6:79","2140:4:79"],"names":["strategy","tokenX","tokenY","data"],"nodeType":"FunctionCall","src":"1993:215:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}},"nodeType":"VariableDeclarationStatement","src":"1949:259:79"},{"expression":{"id":48571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":48565,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"2220:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},null,null,null],"id":48566,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2219:12:79","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$__$__$__$","typeString":"tuple(uint256,,,)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48569,"name":"defaultInitParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48543,"src":"2244:17:79","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitParams_$29543_memory_ptr","typeString":"struct IDFMM.InitParams memory"}],"expression":{"id":48567,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"2234:4:79","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":48568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2239:4:79","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":28091,"src":"2234:9:79","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_InitParams_$29543_memory_ptr_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (struct IDFMM.InitParams memory) payable external returns (uint256,uint256,uint256,uint256)"}},"id":48570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2234:28:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"src":"2219:43:79","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48572,"nodeType":"ExpressionStatement","src":"2219:43:79"},{"id":48573,"nodeType":"PlaceholderStatement","src":"2273:1:79"}]},"name":"initRealistic","nameLocation":"1659:13:79","parameters":{"id":48515,"nodeType":"ParameterList","parameters":[],"src":"1672:2:79"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":48311,"name":"SetUp","nameLocations":["225:5:79"],"nodeType":"IdentifierPath","referencedDeclaration":44852,"src":"225:5:79"},"id":48312,"nodeType":"InheritanceSpecifier","src":"225:5:79"}],"canonicalName":"LogNormalSetUp","contractDependencies":[25560,29062,36460,38879,44392],"contractKind":"contract","fullyImplemented":true,"internalFunctionIDs":{"34224":1},"linearizedBaseContracts":[48576,44852,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"LogNormalSetUp","nameLocation":"207:14:79","scope":48577,"usedErrors":[26761,26763,26765,27736,30985,30992],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":79} \ No newline at end of file diff --git a/out/SetUp.sol/SetUp.json b/out/SetUp.sol/SetUp.json deleted file mode 100644 index 86dc8123..00000000 --- a/out/SetUp.sol/SetUp.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"TEST_SWAP_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolLiquidityToken","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523461002357600160ff196000541617600055614d2590816100298239f35b600080fdfe60806040818152600491823610156200001757600080fd5b60009260e08435811c9283630a9254e4146200021e57508263620a260714620001f9578263ba414fa614620001ce578263e21485ad146200008a57505063fa7626d4146200006457600080fd5b34620000865781600319360112620000865760ff602092541690519015158152f35b5080fd5b90915034620001ca576020366003190112620001ca57601354835163068bcd8d60e01b81528335818501526001600160a01b0393909183908390602490829088165afa958615620001bf578096620000ee575b6020868660c08a0151169051908152f35b90919280965083813d8311620001b7575b6200010b818362000614565b81010312620001b4575083519485019085821067ffffffffffffffff8311176200019f5750936200019260c0809360209787526200014981620007b7565b845262000158888201620007b7565b8885015262000169878201620007b7565b87850152606081015160608501526080810151608085015260a081015160a085015201620007b7565b82820152933880620000dd565b604190634e487b7160e01b6000525260246000fd5b80fd5b503d620000ff565b8551903d90823e3d90fd5b8380fd5b505050346200008657816003193601126200008657602090620001f062000656565b90519015158152f35b50505034620000865781600319360112620000865760209051660aa87bee5380008152f35b8582868534620001ca5783600319360112620001ca5761106b8086019367ffffffffffffffff87861081871117620005d657620007cd97838982396060875260066060880152650e8ded6cadcb60d31b6080880152828160209860a08a820152600160a0820152600b60fb1b60c082015260128982015203019088f0928315620005cc5760018060a01b0392836bffffffffffffffffffffffff60a01b95168560155416176015558651918083019a838c10858d1117620005b9579a83918b9c839c9b9c39606081526006606082015265746f6b656e5960d01b608082015260a08b820152600160a0820152605960f81b60c082015260128982015203019087f08015620005af5782168360165416176016558160155416803b15620005ab5785516340c10f1960e01b908181523087820152888160448168056bc75e2d631000009c8d9760249e8f8401525af18015620005a15762000589575b50908991846016541690813b15620001ca5760448a918580948c51968795869485528d30908601528401525af180156200057f5762000563575b5050816015541682601654169086519161059791828401928484108685111762000551579160609391859362004759853982528b820152670de0b6b3a76400008982015203019089f0801562000547578216836014541617601455845190612f2180830191838310908311176200053557828a9493928a9262001838833985815203019083f080156200052b57828883899316806013549788161760135560448560155416918a5194859384928263095ea7b360e01b9c8d865216178c84015260001980988401525af18015620005215791899695939160449593620004ff575b5081601654169160135416988851998a97889687528601528401525af1908115620004f65750620004c3578280f35b81620004e792903d10620004ee575b620004de818362000614565b81019062000637565b5081808280f35b503d620004d2565b513d85823e3d90fd5b6200051990883d8a11620004ee57620004de818362000614565b508b62000494565b87513d86823e3d90fd5b85513d84823e3d90fd5b634e487b7160e01b8a5260418652878afd5b85513d8a823e3d90fd5b634e487b7160e01b8d52604189528a8dfd5b6200056e90620005e9565b6200057b578789620003b3565b8780fd5b87513d84823e3d90fd5b62000598909a91929a620005e9565b98908a62000379565b88513d8d823e3d90fd5b8680fd5b85513d88823e3d90fd5b634e487b7160e01b8b526041885260248bfd5b85513d89823e3d90fd5b634e487b7160e01b875260418452602487fd5b67ffffffffffffffff8111620005fe57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117620005fe57604052565b908160209103126200065157518015158103620006515790565b600080fd5b6000805460081c60ff161562000670575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6200069257505090565b90915060405160209180838301526519985a5b195960d21b604083015260408252606082019167ffffffffffffffff9281811084821117620007a35791828692936040526080840190630667f9d760e41b8252845187855b8281106200078a575050906200071760248787989488950185608482015203600481018452018262000614565b51925af1503d156200077a573d9081116200076657604051620007639392916200074b601f8201601f191684018362000614565b81528092823d92013e5b808251830101910162000637565b90565b634e487b7160e01b83526041600452602483fd5b5062000763915060609062000755565b808801808301516084909101528a9650899101620006ea565b634e487b7160e01b86526041600452602486fd5b51906001600160a01b0382168203620006515756fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a2646970667358221220a810f08bf84867e88712127870db7165f216ad1be51ff979935366d0cb03119564736f6c63430008160033","sourceMap":"236:821:59:-:0;;;;;;;1594:4:0;236:821:59;;1594:4:0;236:821:59;;;1594:4:0;236:821:59;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600491823610156200001757600080fd5b60009260e08435811c9283630a9254e4146200021e57508263620a260714620001f9578263ba414fa614620001ce578263e21485ad146200008a57505063fa7626d4146200006457600080fd5b34620000865781600319360112620000865760ff602092541690519015158152f35b5080fd5b90915034620001ca576020366003190112620001ca57601354835163068bcd8d60e01b81528335818501526001600160a01b0393909183908390602490829088165afa958615620001bf578096620000ee575b6020868660c08a0151169051908152f35b90919280965083813d8311620001b7575b6200010b818362000614565b81010312620001b4575083519485019085821067ffffffffffffffff8311176200019f5750936200019260c0809360209787526200014981620007b7565b845262000158888201620007b7565b8885015262000169878201620007b7565b87850152606081015160608501526080810151608085015260a081015160a085015201620007b7565b82820152933880620000dd565b604190634e487b7160e01b6000525260246000fd5b80fd5b503d620000ff565b8551903d90823e3d90fd5b8380fd5b505050346200008657816003193601126200008657602090620001f062000656565b90519015158152f35b50505034620000865781600319360112620000865760209051660aa87bee5380008152f35b8582868534620001ca5783600319360112620001ca5761106b8086019367ffffffffffffffff87861081871117620005d657620007cd97838982396060875260066060880152650e8ded6cadcb60d31b6080880152828160209860a08a820152600160a0820152600b60fb1b60c082015260128982015203019088f0928315620005cc5760018060a01b0392836bffffffffffffffffffffffff60a01b95168560155416176015558651918083019a838c10858d1117620005b9579a83918b9c839c9b9c39606081526006606082015265746f6b656e5960d01b608082015260a08b820152600160a0820152605960f81b60c082015260128982015203019087f08015620005af5782168360165416176016558160155416803b15620005ab5785516340c10f1960e01b908181523087820152888160448168056bc75e2d631000009c8d9760249e8f8401525af18015620005a15762000589575b50908991846016541690813b15620001ca5760448a918580948c51968795869485528d30908601528401525af180156200057f5762000563575b5050816015541682601654169086519161059791828401928484108685111762000551579160609391859362004759853982528b820152670de0b6b3a76400008982015203019089f0801562000547578216836014541617601455845190612f2180830191838310908311176200053557828a9493928a9262001838833985815203019083f080156200052b57828883899316806013549788161760135560448560155416918a5194859384928263095ea7b360e01b9c8d865216178c84015260001980988401525af18015620005215791899695939160449593620004ff575b5081601654169160135416988851998a97889687528601528401525af1908115620004f65750620004c3578280f35b81620004e792903d10620004ee575b620004de818362000614565b81019062000637565b5081808280f35b503d620004d2565b513d85823e3d90fd5b6200051990883d8a11620004ee57620004de818362000614565b508b62000494565b87513d86823e3d90fd5b85513d84823e3d90fd5b634e487b7160e01b8a5260418652878afd5b85513d8a823e3d90fd5b634e487b7160e01b8d52604189528a8dfd5b6200056e90620005e9565b6200057b578789620003b3565b8780fd5b87513d84823e3d90fd5b62000598909a91929a620005e9565b98908a62000379565b88513d8d823e3d90fd5b8680fd5b85513d88823e3d90fd5b634e487b7160e01b8b526041885260248bfd5b85513d89823e3d90fd5b634e487b7160e01b875260418452602487fd5b67ffffffffffffffff8111620005fe57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117620005fe57604052565b908160209103126200065157518015158103620006515790565b600080fd5b6000805460081c60ff161562000670575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6200069257505090565b90915060405160209180838301526519985a5b195960d21b604083015260408252606082019167ffffffffffffffff9281811084821117620007a35791828692936040526080840190630667f9d760e41b8252845187855b8281106200078a575050906200071760248787989488950185608482015203600481018452018262000614565b51925af1503d156200077a573d9081116200076657604051620007639392916200074b601f8201601f191684018362000614565b81528092823d92013e5b808251830101910162000637565b90565b634e487b7160e01b83526041600452602483fd5b5062000763915060609062000755565b808801808301516084909101528a9650899101620006ea565b634e487b7160e01b86526041600452602486fd5b51906001600160a01b0382168203620006515756fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a2646970667358221220a810f08bf84867e88712127870db7165f216ad1be51ff979935366d0cb03119564736f6c63430008160033","sourceMap":"236:821:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;236:821:59;;;;992:4;236:821;;;-1:-1:-1;;;992:20:59;;236:821;;992:20;;;236:821;-1:-1:-1;;;;;236:821:59;;;;;;;;;;;;;992:20;;;;;;;;;;;236:821;;1029:19;;;;;236:821;;;;;;;;992:20;;;;;;;;;;;;;;;;;;;:::i;:::-;;;236:821;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;992:20;;;;;236:821;;;;;;;;;;;;;;;992:20;;;;;;236:821;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11;236:821;;;;;;;;;;;;;;;;;;;447:32;;;;;;;;;;;;;;;;;;;;;236:821;;;;;;;;-1:-1:-1;;;236:821:59;;;;;;;;;;;;;;;;;;-1:-1:-1;;;236:821:59;;;;476:2;236:821;;;;447:32;;;;;;;;;;;236:821;;;;;;;;;;;;438:41;236:821;;;438:41;236:821;;;498:32;;;;;;;;;;;;;;;;;;;;;;;;236:821;;;;;;;;-1:-1:-1;;;236:821:59;;;;;;;;;;;;;;-1:-1:-1;;;236:821:59;;;;476:2;236:821;;;;498:32;;;;;;;;;236:821;;;489:41;236:821;;;489:41;236:821;;438:41;236:821;;540:34;;;;;236:821;;;;;540:34;;;;560:4;540:34;;;236:821;567:6;;236:821;567:6;;236:821;;;;;;;;;540:34;;;;;;;;236:821;;;;;;489:41;236:821;;584:34;;;;;;236:821;;;;;;;;584:34;;;;;;;560:4;;584:34;;;236:821;;;;584:34;;;;;;;;236:821;;;;438:41;236:821;;;489:41;236:821;;;;;635:50;;;;;;;;;;;;;;;;;236:821;635:50;;;;;;;236:821;;;;;;677:7;236:821;;;;635:50;;;;;;;;;236:821;;;629:56;236:821;;;629:56;236:821;;;702:20;;;;;;;;;;;;;;;;;;;;;;;;;236:821;;;702:20;;;;;;;;;236:821;;;;;;;695:27;236:821;;;;;695:27;236:821;;;438:41;236:821;;;;;;;;;;;;;;733:48;;;;236:821;;733:48;;;236:821;763:17;;236:821;;;;;733:48;;;;;;;;;;;;236:821;733:48;;;;236:821;;;489:41;236:821;;;695:27;236:821;;;;;791:48;;;;;;;;;236:821;;;;791:48;;;;;;;;;;236:821;;;791:48;;;;;;-1:-1:-1;791:48:59;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;236:821;;;791:48;;;;;;236:821;;;;;;;;733:48;;;;;;;;;;;;;:::i;:::-;;;;;;236:821;;;;;;;;;702:20;236:821;;;;;;;;;702:20;-1:-1:-1;;;236:821:59;;;;;;;;635:50;236:821;;;;;;;;;635:50;-1:-1:-1;;;236:821:59;;;;;;;;584:34;;;;:::i;:::-;236:821;;584:34;;;;236:821;;;;584:34;236:821;;;;;;;;;540:34;;;;;;;;:::i;:::-;;;;;;;236:821;;;;;;;;;540:34;236:821;;;498:32;236:821;;;;;;;;;498:32;-1:-1:-1;;;236:821:59;;;;;;;;447:32;236:821;;;;;;;;;447:32;-1:-1:-1;;;236:821:59;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;236:821:59;;1819:584:0;1873:7;236:821:59;;;;;;;;;;;;;;;1896:14:0:o;1869:528::-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;236:821:59;;;;;2196:43:0;;;;;;236:821:59;1671:64:0;;;236:821:59;1671:64:0;;236:821:59;;2196:43:0;;236:821:59;;;;;;;;;;;;;;;;;;;;;;2086:175:0;;;1671:64;;;;;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;;;;;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:0;;;;;;;;;;236:821:59;;2312:27:0;;236:821:59;;1671:64:0;236:821:59;;;-1:-1:-1;;236:821:59;1671:64:0;;236:821:59;1671:64:0;:::i;:::-;;;;;;;;;;;;;;2312:27;;;;;;:::i;:::-;2367:19;:::o;1671:64::-;-1:-1:-1;;;236:821:59;;;2086:175:0;236:821:59;1671:64:0;236:821:59;;1671:64:0;;2312:27;1671:64;;236:821:59;1671:64:0;;;;;;;;;;;;;;;;;;-1:-1:-1;1671:64:0;;;;;236:821:59;-1:-1:-1;;;236:821:59;;;;;;;;;;;-1:-1:-1;;;;;236:821:59;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","TEST_SWAP_FEE()":"620a2607","failed()":"ba414fa6","getPoolLiquidityToken(uint256)":"e21485ad","setUp()":"0a9254e4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_SWAP_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolLiquidityToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/helpers/SetUp.sol\":\"SetUp\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]},\"src/test/helpers/MockStrategy.sol\":{\"keccak256\":\"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5\",\"dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw\"]},\"src/test/helpers/SetUp.sol\":{\"keccak256\":\"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30\",\"dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_SWAP_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolLiquidityToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/helpers/SetUp.sol":"SetUp"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"},"src/test/helpers/MockStrategy.sol":{"keccak256":"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a","urls":["bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5","dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw"],"license":"UNLICENSED"},"src/test/helpers/SetUp.sol":{"keccak256":"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb","urls":["bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30","dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/helpers/SetUp.sol","id":44853,"exportedSymbols":{"ArbiterToken":[43381],"DFMM":[29062],"DSTest":[1786],"ERC20":[25948],"FixedPointMathLib":[26640],"IDFMM":[29730],"IStrategy":[29839],"LPToken":[29516],"Lex":[44392],"LibString":[26659],"Min":[27736],"MockERC20":[25560],"MockStrategy":[44649],"SafeTransferLib":[26744],"SetUp":[44852],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"Test":[8195],"TestBase":[1843],"Vm":[9352],"WETH":[26027],"abs":[27763],"computeScalingFactor":[30048],"console":[17416],"console2":[25512],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"muli":[27777],"muliWad":[27795],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"39:1019:59","nodes":[{"id":44709,"nodeType":"PragmaDirective","src":"39:24:59","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":44710,"nodeType":"ImportDirective","src":"65:28:59","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":44853,"sourceUnit":8196,"symbolAliases":[],"unitAlias":""},{"id":44711,"nodeType":"ImportDirective","src":"94:48:59","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol","file":"solmate/test/utils/mocks/MockERC20.sol","nameLocation":"-1:-1:-1","scope":44853,"sourceUnit":25561,"symbolAliases":[],"unitAlias":""},{"id":44712,"nodeType":"ImportDirective","src":"143:24:59","nodes":[],"absolutePath":"src/DFMM.sol","file":"../../DFMM.sol","nameLocation":"-1:-1:-1","scope":44853,"sourceUnit":29063,"symbolAliases":[],"unitAlias":""},{"id":44713,"nodeType":"ImportDirective","src":"168:28:59","nodes":[],"absolutePath":"src/test/helpers/Lex.sol","file":"../helpers/Lex.sol","nameLocation":"-1:-1:-1","scope":44853,"sourceUnit":44393,"symbolAliases":[],"unitAlias":""},{"id":44714,"nodeType":"ImportDirective","src":"197:37:59","nodes":[],"absolutePath":"src/test/helpers/MockStrategy.sol","file":"../helpers/MockStrategy.sol","nameLocation":"-1:-1:-1","scope":44853,"sourceUnit":44650,"symbolAliases":[],"unitAlias":""},{"id":44852,"nodeType":"ContractDefinition","src":"236:821:59","nodes":[{"id":44719,"nodeType":"VariableDeclaration","src":"265:9:59","nodes":[],"constant":false,"mutability":"mutable","name":"dfmm","nameLocation":"270:4:59","scope":44852,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"},"typeName":{"id":44718,"nodeType":"UserDefinedTypeName","pathNode":{"id":44717,"name":"DFMM","nameLocations":["265:4:59"],"nodeType":"IdentifierPath","referencedDeclaration":29062,"src":"265:4:59"},"referencedDeclaration":29062,"src":"265:4:59","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"visibility":"internal"},{"id":44722,"nodeType":"VariableDeclaration","src":"280:7:59","nodes":[],"constant":false,"mutability":"mutable","name":"lex","nameLocation":"284:3:59","scope":44852,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"},"typeName":{"id":44721,"nodeType":"UserDefinedTypeName","pathNode":{"id":44720,"name":"Lex","nameLocations":["280:3:59"],"nodeType":"IdentifierPath","referencedDeclaration":44392,"src":"280:3:59"},"referencedDeclaration":44392,"src":"280:3:59","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}},"visibility":"internal"},{"id":44725,"nodeType":"VariableDeclaration","src":"293:16:59","nodes":[],"constant":false,"mutability":"mutable","name":"tokenX","nameLocation":"303:6:59","scope":44852,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"},"typeName":{"id":44724,"nodeType":"UserDefinedTypeName","pathNode":{"id":44723,"name":"MockERC20","nameLocations":["293:9:59"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"293:9:59"},"referencedDeclaration":25560,"src":"293:9:59","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"visibility":"internal"},{"id":44728,"nodeType":"VariableDeclaration","src":"315:16:59","nodes":[],"constant":false,"mutability":"mutable","name":"tokenY","nameLocation":"325:6:59","scope":44852,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"},"typeName":{"id":44727,"nodeType":"UserDefinedTypeName","pathNode":{"id":44726,"name":"MockERC20","nameLocations":["315:9:59"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"315:9:59"},"referencedDeclaration":25560,"src":"315:9:59","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"visibility":"internal"},{"id":44731,"nodeType":"VariableDeclaration","src":"338:51:59","nodes":[],"constant":true,"functionSelector":"620a2607","mutability":"constant","name":"TEST_SWAP_FEE","nameLocation":"362:13:59","scope":44852,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44729,"name":"uint256","nodeType":"ElementaryTypeName","src":"338:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"302e303033","id":44730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"378:11:59","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_3000000000000000_by_1","typeString":"int_const 3000000000000000"},"value":"0.003"},"visibility":"public"},{"id":44830,"nodeType":"FunctionDefinition","src":"396:450:59","nodes":[],"body":{"id":44829,"nodeType":"Block","src":"428:418:59","nodes":[],"statements":[{"expression":{"id":44742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44734,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"438:6:59","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"746f6b656e58","id":44738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"461:8:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_6076c392819008730df70238b1f1890b3147aecb6d122c8c4b4d5aa1b5f97482","typeString":"literal_string \"tokenX\""},"value":"tokenX"},{"hexValue":"58","id":44739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"471:3:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_550c64a15031c3064454c19adc6243a6122c138a242eaa098da50bb114fc8d56","typeString":"literal_string \"X\""},"value":"X"},{"hexValue":"3138","id":44740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"476:2:59","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6076c392819008730df70238b1f1890b3147aecb6d122c8c4b4d5aa1b5f97482","typeString":"literal_string \"tokenX\""},{"typeIdentifier":"t_stringliteral_550c64a15031c3064454c19adc6243a6122c138a242eaa098da50bb114fc8d56","typeString":"literal_string \"X\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":44737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"447:13:59","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":44736,"nodeType":"UserDefinedTypeName","pathNode":{"id":44735,"name":"MockERC20","nameLocations":["451:9:59"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"451:9:59"},"referencedDeclaration":25560,"src":"451:9:59","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":44741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"447:32:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"src":"438:41:59","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":44743,"nodeType":"ExpressionStatement","src":"438:41:59"},{"expression":{"id":44752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44744,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"489:6:59","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"746f6b656e59","id":44748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"512:8:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_215291f8765d54708d051c35e3f18ebdc532df00c5f85fe5e7d65833297521e9","typeString":"literal_string \"tokenY\""},"value":"tokenY"},{"hexValue":"59","id":44749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"522:3:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a2c5f9025f1f0333863704310875ae81a574171bed5b047cfc0f50e347f630e","typeString":"literal_string \"Y\""},"value":"Y"},{"hexValue":"3138","id":44750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"527:2:59","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_215291f8765d54708d051c35e3f18ebdc532df00c5f85fe5e7d65833297521e9","typeString":"literal_string \"tokenY\""},{"typeIdentifier":"t_stringliteral_9a2c5f9025f1f0333863704310875ae81a574171bed5b047cfc0f50e347f630e","typeString":"literal_string \"Y\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":44747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"498:13:59","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_MockERC20_$25560_$","typeString":"function (string memory,string memory,uint8) returns (contract MockERC20)"},"typeName":{"id":44746,"nodeType":"UserDefinedTypeName","pathNode":{"id":44745,"name":"MockERC20","nameLocations":["502:9:59"],"nodeType":"IdentifierPath","referencedDeclaration":25560,"src":"502:9:59"},"referencedDeclaration":25560,"src":"502:9:59","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}},"id":44751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"498:32:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"src":"489:41:59","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":44753,"nodeType":"ExpressionStatement","src":"489:41:59"},{"expression":{"arguments":[{"arguments":[{"id":44759,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"560:4:59","typeDescriptions":{"typeIdentifier":"t_contract$_SetUp_$44852","typeString":"contract SetUp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SetUp_$44852","typeString":"contract SetUp"}],"id":44758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"552:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":44757,"name":"address","nodeType":"ElementaryTypeName","src":"552:7:59","typeDescriptions":{}}},"id":44760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"552:13:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030653138","id":44761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"567:6:59","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100e18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":44754,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"540:6:59","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":44756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"547:4:59","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":25546,"src":"540:11:59","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":44762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"540:34:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44763,"nodeType":"ExpressionStatement","src":"540:34:59"},{"expression":{"arguments":[{"arguments":[{"id":44769,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"604:4:59","typeDescriptions":{"typeIdentifier":"t_contract$_SetUp_$44852","typeString":"contract SetUp"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SetUp_$44852","typeString":"contract SetUp"}],"id":44768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"596:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":44767,"name":"address","nodeType":"ElementaryTypeName","src":"596:7:59","typeDescriptions":{}}},"id":44770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"596:13:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030653138","id":44771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"611:6:59","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100e18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":44764,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"584:6:59","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":44766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"591:4:59","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":25546,"src":"584:11:59","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":44772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"584:34:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44773,"nodeType":"ExpressionStatement","src":"584:34:59"},{"expression":{"id":44788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44774,"name":"lex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"629:3:59","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":44780,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"651:6:59","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":44779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"643:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":44778,"name":"address","nodeType":"ElementaryTypeName","src":"643:7:59","typeDescriptions":{}}},"id":44781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"643:15:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":44784,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"668:6:59","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}],"id":44783,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"660:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":44782,"name":"address","nodeType":"ElementaryTypeName","src":"660:7:59","typeDescriptions":{}}},"id":44785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"660:15:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":44786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"677:7:59","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}],"id":44777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"635:7:59","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_contract$_Lex_$44392_$","typeString":"function (address,address,uint256) returns (contract Lex)"},"typeName":{"id":44776,"nodeType":"UserDefinedTypeName","pathNode":{"id":44775,"name":"Lex","nameLocations":["639:3:59"],"nodeType":"IdentifierPath","referencedDeclaration":44392,"src":"639:3:59"},"referencedDeclaration":44392,"src":"639:3:59","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}}},"id":44787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"635:50:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}},"src":"629:56:59","typeDescriptions":{"typeIdentifier":"t_contract$_Lex_$44392","typeString":"contract Lex"}},"id":44789,"nodeType":"ExpressionStatement","src":"629:56:59"},{"expression":{"id":44799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44790,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"695:4:59","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30","id":44796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"719:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":44795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"711:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":44794,"name":"address","nodeType":"ElementaryTypeName","src":"711:7:59","typeDescriptions":{}}},"id":44797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"711:10:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"702:8:59","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_DFMM_$29062_$","typeString":"function (address) returns (contract DFMM)"},"typeName":{"id":44792,"nodeType":"UserDefinedTypeName","pathNode":{"id":44791,"name":"DFMM","nameLocations":["706:4:59"],"nodeType":"IdentifierPath","referencedDeclaration":29062,"src":"706:4:59"},"referencedDeclaration":29062,"src":"706:4:59","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}},"id":44798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"702:20:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"src":"695:27:59","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":44800,"nodeType":"ExpressionStatement","src":"695:27:59"},{"expression":{"arguments":[{"arguments":[{"id":44806,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"756:4:59","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":44805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"748:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":44804,"name":"address","nodeType":"ElementaryTypeName","src":"748:7:59","typeDescriptions":{}}},"id":44807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"748:13:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":44810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"768:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":44809,"name":"uint256","nodeType":"ElementaryTypeName","src":"768:7:59","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":44808,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"763:4:59","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":44811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"763:13:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":44812,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"777:3:59","memberName":"max","nodeType":"MemberAccess","src":"763:17:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44801,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"733:6:59","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":44803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"740:7:59","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":25665,"src":"733:14:59","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":44813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"733:48:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44814,"nodeType":"ExpressionStatement","src":"733:48:59"},{"expression":{"arguments":[{"arguments":[{"id":44820,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"814:4:59","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":44819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"806:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":44818,"name":"address","nodeType":"ElementaryTypeName","src":"806:7:59","typeDescriptions":{}}},"id":44821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"806:13:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":44824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"826:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":44823,"name":"uint256","nodeType":"ElementaryTypeName","src":"826:7:59","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":44822,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"821:4:59","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":44825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"821:13:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":44826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"835:3:59","memberName":"max","nodeType":"MemberAccess","src":"821:17:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44815,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"791:6:59","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":44817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"798:7:59","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":25665,"src":"791:14:59","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":44827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"791:48:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44828,"nodeType":"ExpressionStatement","src":"791:48:59"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"405:5:59","parameters":{"id":44732,"nodeType":"ParameterList","parameters":[],"src":"410:2:59"},"returnParameters":{"id":44733,"nodeType":"ParameterList","parameters":[],"src":"428:0:59"},"scope":44852,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":44851,"nodeType":"FunctionDefinition","src":"852:203:59","nodes":[],"body":{"id":44850,"nodeType":"Block","src":"957:98:59","nodes":[],"statements":[{"assignments":[44841],"declarations":[{"constant":false,"id":44841,"mutability":"mutable","name":"pool","nameLocation":"985:4:59","nodeType":"VariableDeclaration","scope":44850,"src":"967:22:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_memory_ptr","typeString":"struct IDFMM.Pool"},"typeName":{"id":44840,"nodeType":"UserDefinedTypeName","pathNode":{"id":44839,"name":"IDFMM.Pool","nameLocations":["967:5:59","973:4:59"],"nodeType":"IdentifierPath","referencedDeclaration":29534,"src":"967:10:59"},"referencedDeclaration":29534,"src":"967:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_storage_ptr","typeString":"struct IDFMM.Pool"}},"visibility":"internal"}],"id":44846,"initialValue":{"arguments":[{"id":44844,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44832,"src":"1005:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":44842,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"992:4:59","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":44843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"997:7:59","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":28985,"src":"992:12:59","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$29534_memory_ptr_$","typeString":"function (uint256) view external returns (struct IDFMM.Pool memory)"}},"id":44845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"992:20:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_memory_ptr","typeString":"struct IDFMM.Pool memory"}},"nodeType":"VariableDeclarationStatement","src":"967:45:59"},{"expression":{"expression":{"id":44847,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44841,"src":"1029:4:59","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$29534_memory_ptr","typeString":"struct IDFMM.Pool memory"}},"id":44848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1034:14:59","memberName":"liquidityToken","nodeType":"MemberAccess","referencedDeclaration":29533,"src":"1029:19:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":44836,"id":44849,"nodeType":"Return","src":"1022:26:59"}]},"functionSelector":"e21485ad","implemented":true,"kind":"function","modifiers":[],"name":"getPoolLiquidityToken","nameLocation":"861:21:59","parameters":{"id":44833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44832,"mutability":"mutable","name":"poolId","nameLocation":"891:6:59","nodeType":"VariableDeclaration","scope":44851,"src":"883:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44831,"name":"uint256","nodeType":"ElementaryTypeName","src":"883:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"882:16:59"},"returnParameters":{"id":44836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44835,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44851,"src":"944:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44834,"name":"address","nodeType":"ElementaryTypeName","src":"944:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"943:9:59"},"scope":44852,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":44715,"name":"Test","nameLocations":["254:4:59"],"nodeType":"IdentifierPath","referencedDeclaration":8195,"src":"254:4:59"},"id":44716,"nodeType":"InheritanceSpecifier","src":"254:4:59"}],"canonicalName":"SetUp","contractDependencies":[25560,29062,44392],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[44852,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"SetUp","nameLocation":"245:5:59","scope":44853,"usedErrors":[],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":59} \ No newline at end of file diff --git a/out/SignedWadMath.sol/SignedWadMathLib.json b/out/SignedWadMath.sol/SignedWadMathLib.json deleted file mode 100644 index 43a258c9..00000000 --- a/out/SignedWadMath.sol/SignedWadMathLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212208184a7971914a04a53219b0b4fd1384ec6bfb560b7274241e852bd38cb67ebf764736f6c63430008160033","sourceMap":"314:11789:30:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212208184a7971914a04a53219b0b4fd1384ec6bfb560b7274241e852bd38cb67ebf764736f6c63430008160033","sourceMap":"314:11789:30:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SignedWadMath.sol)Modified from Remco Bloemen (https://xn--2-umb.com/22/exp-ln/index.html)\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Signed 18 decimal fixed point (wad) arithmetic library.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/SignedWadMath.sol\":\"SignedWadMathLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"src/lib/SignedWadMath.sol\":{\"keccak256\":\"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a\",\"dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/SignedWadMath.sol":"SignedWadMathLib"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"src/lib/SignedWadMath.sol":{"keccak256":"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630","urls":["bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a","dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/lib/SignedWadMath.sol","id":30624,"exportedSymbols":{"SignedWadMathLib":[30623]},"nodeType":"SourceUnit","src":"32:12072:30","nodes":[{"id":30098,"nodeType":"PragmaDirective","src":"32:24:30","nodes":[],"literals":["solidity",">=","0.8",".0"]},{"id":30623,"nodeType":"ContractDefinition","src":"314:11789:30","nodes":[{"id":30109,"nodeType":"FunctionDefinition","src":"428:224:30","nodes":[],"body":{"id":30108,"nodeType":"Block","src":"493:159:30","nodes":[],"statements":[{"AST":{"nativeSrc":"555:91:30","nodeType":"YulBlock","src":"555:91:30","statements":[{"nativeSrc":"604:32:30","nodeType":"YulAssignment","src":"604:32:30","value":{"arguments":[{"name":"x","nativeSrc":"613:1:30","nodeType":"YulIdentifier","src":"613:1:30"},{"kind":"number","nativeSrc":"616:19:30","nodeType":"YulLiteral","src":"616:19:30","type":"","value":"1000000000000000000"}],"functionName":{"name":"mul","nativeSrc":"609:3:30","nodeType":"YulIdentifier","src":"609:3:30"},"nativeSrc":"609:27:30","nodeType":"YulFunctionCall","src":"609:27:30"},"variableNames":[{"name":"r","nativeSrc":"604:1:30","nodeType":"YulIdentifier","src":"604:1:30"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":30105,"isOffset":false,"isSlot":false,"src":"604:1:30","valueSize":1},{"declaration":30102,"isOffset":false,"isSlot":false,"src":"613:1:30","valueSize":1}],"id":30107,"nodeType":"InlineAssembly","src":"546:100:30"}]},"documentation":{"id":30100,"nodeType":"StructuredDocumentation","src":"345:78:30","text":"@dev Will not revert on overflow, only use where overflow is not possible."},"implemented":true,"kind":"function","modifiers":[],"name":"toWadUnsafe","nameLocation":"437:11:30","parameters":{"id":30103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30102,"mutability":"mutable","name":"x","nameLocation":"457:1:30","nodeType":"VariableDeclaration","scope":30109,"src":"449:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30101,"name":"uint256","nodeType":"ElementaryTypeName","src":"449:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"448:11:30"},"returnParameters":{"id":30106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30105,"mutability":"mutable","name":"r","nameLocation":"490:1:30","nodeType":"VariableDeclaration","scope":30109,"src":"483:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30104,"name":"int256","nodeType":"ElementaryTypeName","src":"483:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"482:10:30"},"scope":30623,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30119,"nodeType":"FunctionDefinition","src":"908:268:30","nodes":[],"body":{"id":30118,"nodeType":"Block","src":"977:199:30","nodes":[],"statements":[{"AST":{"nativeSrc":"1039:131:30","nodeType":"YulBlock","src":"1039:131:30","statements":[{"nativeSrc":"1116:44:30","nodeType":"YulAssignment","src":"1116:44:30","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"1129:1:30","nodeType":"YulIdentifier","src":"1129:1:30"},{"kind":"number","nativeSrc":"1132:19:30","nodeType":"YulLiteral","src":"1132:19:30","type":"","value":"1000000000000000000"}],"functionName":{"name":"mul","nativeSrc":"1125:3:30","nodeType":"YulIdentifier","src":"1125:3:30"},"nativeSrc":"1125:27:30","nodeType":"YulFunctionCall","src":"1125:27:30"},{"kind":"number","nativeSrc":"1154:5:30","nodeType":"YulLiteral","src":"1154:5:30","type":"","value":"86400"}],"functionName":{"name":"div","nativeSrc":"1121:3:30","nodeType":"YulIdentifier","src":"1121:3:30"},"nativeSrc":"1121:39:30","nodeType":"YulFunctionCall","src":"1121:39:30"},"variableNames":[{"name":"r","nativeSrc":"1116:1:30","nodeType":"YulIdentifier","src":"1116:1:30"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":30115,"isOffset":false,"isSlot":false,"src":"1116:1:30","valueSize":1},{"declaration":30112,"isOffset":false,"isSlot":false,"src":"1129:1:30","valueSize":1}],"id":30117,"nodeType":"InlineAssembly","src":"1030:140:30"}]},"documentation":{"id":30110,"nodeType":"StructuredDocumentation","src":"658:245:30","text":"@dev Takes an integer amount of seconds and converts it to a wad amount of days.\n @dev Will not revert on overflow, only use where overflow is not possible.\n @dev Not meant for negative second amounts, it assumes x is positive."},"implemented":true,"kind":"function","modifiers":[],"name":"toDaysWadUnsafe","nameLocation":"917:15:30","parameters":{"id":30113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30112,"mutability":"mutable","name":"x","nameLocation":"941:1:30","nodeType":"VariableDeclaration","scope":30119,"src":"933:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30111,"name":"uint256","nodeType":"ElementaryTypeName","src":"933:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"932:11:30"},"returnParameters":{"id":30116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30115,"mutability":"mutable","name":"r","nameLocation":"974:1:30","nodeType":"VariableDeclaration","scope":30119,"src":"967:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30114,"name":"int256","nodeType":"ElementaryTypeName","src":"967:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"966:10:30"},"scope":30623,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30129,"nodeType":"FunctionDefinition","src":"1429:270:30","nodes":[],"body":{"id":30128,"nodeType":"Block","src":"1500:199:30","nodes":[],"statements":[{"AST":{"nativeSrc":"1562:131:30","nodeType":"YulBlock","src":"1562:131:30","statements":[{"nativeSrc":"1639:44:30","nodeType":"YulAssignment","src":"1639:44:30","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"1652:1:30","nodeType":"YulIdentifier","src":"1652:1:30"},{"kind":"number","nativeSrc":"1655:5:30","nodeType":"YulLiteral","src":"1655:5:30","type":"","value":"86400"}],"functionName":{"name":"mul","nativeSrc":"1648:3:30","nodeType":"YulIdentifier","src":"1648:3:30"},"nativeSrc":"1648:13:30","nodeType":"YulFunctionCall","src":"1648:13:30"},{"kind":"number","nativeSrc":"1663:19:30","nodeType":"YulLiteral","src":"1663:19:30","type":"","value":"1000000000000000000"}],"functionName":{"name":"div","nativeSrc":"1644:3:30","nodeType":"YulIdentifier","src":"1644:3:30"},"nativeSrc":"1644:39:30","nodeType":"YulFunctionCall","src":"1644:39:30"},"variableNames":[{"name":"r","nativeSrc":"1639:1:30","nodeType":"YulIdentifier","src":"1639:1:30"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":30125,"isOffset":false,"isSlot":false,"src":"1639:1:30","valueSize":1},{"declaration":30122,"isOffset":false,"isSlot":false,"src":"1652:1:30","valueSize":1}],"id":30127,"nodeType":"InlineAssembly","src":"1553:140:30"}]},"documentation":{"id":30120,"nodeType":"StructuredDocumentation","src":"1182:242:30","text":"@dev Takes a wad amount of days and converts it to an integer amount of seconds.\n @dev Will not revert on overflow, only use where overflow is not possible.\n @dev Not meant for negative day amounts, it assumes x is positive."},"implemented":true,"kind":"function","modifiers":[],"name":"fromDaysWadUnsafe","nameLocation":"1438:17:30","parameters":{"id":30123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30122,"mutability":"mutable","name":"x","nameLocation":"1463:1:30","nodeType":"VariableDeclaration","scope":30129,"src":"1456:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30121,"name":"int256","nodeType":"ElementaryTypeName","src":"1456:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1455:10:30"},"returnParameters":{"id":30126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30125,"mutability":"mutable","name":"r","nameLocation":"1497:1:30","nodeType":"VariableDeclaration","scope":30129,"src":"1489:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30124,"name":"uint256","nodeType":"ElementaryTypeName","src":"1489:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1488:11:30"},"scope":30623,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30141,"nodeType":"FunctionDefinition","src":"1788:281:30","nodes":[],"body":{"id":30140,"nodeType":"Block","src":"1885:184:30","nodes":[],"statements":[{"AST":{"nativeSrc":"1947:116:30","nodeType":"YulBlock","src":"1947:116:30","statements":[{"nativeSrc":"2012:41:30","nodeType":"YulAssignment","src":"2012:41:30","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"2026:1:30","nodeType":"YulIdentifier","src":"2026:1:30"},{"name":"y","nativeSrc":"2029:1:30","nodeType":"YulIdentifier","src":"2029:1:30"}],"functionName":{"name":"mul","nativeSrc":"2022:3:30","nodeType":"YulIdentifier","src":"2022:3:30"},"nativeSrc":"2022:9:30","nodeType":"YulFunctionCall","src":"2022:9:30"},{"kind":"number","nativeSrc":"2033:19:30","nodeType":"YulLiteral","src":"2033:19:30","type":"","value":"1000000000000000000"}],"functionName":{"name":"sdiv","nativeSrc":"2017:4:30","nodeType":"YulIdentifier","src":"2017:4:30"},"nativeSrc":"2017:36:30","nodeType":"YulFunctionCall","src":"2017:36:30"},"variableNames":[{"name":"r","nativeSrc":"2012:1:30","nodeType":"YulIdentifier","src":"2012:1:30"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":30137,"isOffset":false,"isSlot":false,"src":"2012:1:30","valueSize":1},{"declaration":30132,"isOffset":false,"isSlot":false,"src":"2026:1:30","valueSize":1},{"declaration":30134,"isOffset":false,"isSlot":false,"src":"2029:1:30","valueSize":1}],"id":30139,"nodeType":"InlineAssembly","src":"1938:125:30"}]},"documentation":{"id":30130,"nodeType":"StructuredDocumentation","src":"1705:78:30","text":"@dev Will not revert on overflow, only use where overflow is not possible."},"implemented":true,"kind":"function","modifiers":[],"name":"unsafeWadMul","nameLocation":"1797:12:30","parameters":{"id":30135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30132,"mutability":"mutable","name":"x","nameLocation":"1826:1:30","nodeType":"VariableDeclaration","scope":30141,"src":"1819:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30131,"name":"int256","nodeType":"ElementaryTypeName","src":"1819:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":30134,"mutability":"mutable","name":"y","nameLocation":"1844:1:30","nodeType":"VariableDeclaration","scope":30141,"src":"1837:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30133,"name":"int256","nodeType":"ElementaryTypeName","src":"1837:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1809:42:30"},"returnParameters":{"id":30138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30137,"mutability":"mutable","name":"r","nameLocation":"1882:1:30","nodeType":"VariableDeclaration","scope":30141,"src":"1875:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30136,"name":"int256","nodeType":"ElementaryTypeName","src":"1875:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1874:10:30"},"scope":30623,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30153,"nodeType":"FunctionDefinition","src":"2218:284:30","nodes":[],"body":{"id":30152,"nodeType":"Block","src":"2315:187:30","nodes":[],"statements":[{"AST":{"nativeSrc":"2377:119:30","nodeType":"YulBlock","src":"2377:119:30","statements":[{"nativeSrc":"2445:41:30","nodeType":"YulAssignment","src":"2445:41:30","value":{"arguments":[{"arguments":[{"name":"x","nativeSrc":"2459:1:30","nodeType":"YulIdentifier","src":"2459:1:30"},{"kind":"number","nativeSrc":"2462:19:30","nodeType":"YulLiteral","src":"2462:19:30","type":"","value":"1000000000000000000"}],"functionName":{"name":"mul","nativeSrc":"2455:3:30","nodeType":"YulIdentifier","src":"2455:3:30"},"nativeSrc":"2455:27:30","nodeType":"YulFunctionCall","src":"2455:27:30"},{"name":"y","nativeSrc":"2484:1:30","nodeType":"YulIdentifier","src":"2484:1:30"}],"functionName":{"name":"sdiv","nativeSrc":"2450:4:30","nodeType":"YulIdentifier","src":"2450:4:30"},"nativeSrc":"2450:36:30","nodeType":"YulFunctionCall","src":"2450:36:30"},"variableNames":[{"name":"r","nativeSrc":"2445:1:30","nodeType":"YulIdentifier","src":"2445:1:30"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":30149,"isOffset":false,"isSlot":false,"src":"2445:1:30","valueSize":1},{"declaration":30144,"isOffset":false,"isSlot":false,"src":"2459:1:30","valueSize":1},{"declaration":30146,"isOffset":false,"isSlot":false,"src":"2484:1:30","valueSize":1}],"id":30151,"nodeType":"InlineAssembly","src":"2368:128:30"}]},"documentation":{"id":30142,"nodeType":"StructuredDocumentation","src":"2075:138:30","text":"@dev Will return 0 instead of reverting if y is zero and will\n not revert on overflow, only use where overflow is not possible."},"implemented":true,"kind":"function","modifiers":[],"name":"unsafeWadDiv","nameLocation":"2227:12:30","parameters":{"id":30147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30144,"mutability":"mutable","name":"x","nameLocation":"2256:1:30","nodeType":"VariableDeclaration","scope":30153,"src":"2249:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30143,"name":"int256","nodeType":"ElementaryTypeName","src":"2249:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":30146,"mutability":"mutable","name":"y","nameLocation":"2274:1:30","nodeType":"VariableDeclaration","scope":30153,"src":"2267:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30145,"name":"int256","nodeType":"ElementaryTypeName","src":"2267:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2239:42:30"},"returnParameters":{"id":30150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30149,"mutability":"mutable","name":"r","nameLocation":"2312:1:30","nodeType":"VariableDeclaration","scope":30153,"src":"2305:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30148,"name":"int256","nodeType":"ElementaryTypeName","src":"2305:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2304:10:30"},"scope":30623,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30164,"nodeType":"FunctionDefinition","src":"2508:1216:30","nodes":[],"body":{"id":30163,"nodeType":"Block","src":"2577:1147:30","nodes":[],"statements":[{"AST":{"nativeSrc":"2639:1079:30","nodeType":"YulBlock","src":"2639:1079:30","statements":[{"nativeSrc":"2694:14:30","nodeType":"YulAssignment","src":"2694:14:30","value":{"arguments":[{"name":"x","nativeSrc":"2703:1:30","nodeType":"YulIdentifier","src":"2703:1:30"},{"name":"y","nativeSrc":"2706:1:30","nodeType":"YulIdentifier","src":"2706:1:30"}],"functionName":{"name":"mul","nativeSrc":"2699:3:30","nodeType":"YulIdentifier","src":"2699:3:30"},"nativeSrc":"2699:9:30","nodeType":"YulFunctionCall","src":"2699:9:30"},"variableNames":[{"name":"r","nativeSrc":"2694:1:30","nodeType":"YulIdentifier","src":"2694:1:30"}]},{"body":{"nativeSrc":"3599:16:30","nodeType":"YulBlock","src":"3599:16:30","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3608:1:30","nodeType":"YulLiteral","src":"3608:1:30","type":"","value":"0"},{"kind":"number","nativeSrc":"3611:1:30","nodeType":"YulLiteral","src":"3611:1:30","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3601:6:30","nodeType":"YulIdentifier","src":"3601:6:30"},"nativeSrc":"3601:12:30","nodeType":"YulFunctionCall","src":"3601:12:30"},"nativeSrc":"3601:12:30","nodeType":"YulExpressionStatement","src":"3601:12:30"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"3277:1:30","nodeType":"YulIdentifier","src":"3277:1:30"}],"functionName":{"name":"iszero","nativeSrc":"3270:6:30","nodeType":"YulIdentifier","src":"3270:6:30"},"nativeSrc":"3270:9:30","nodeType":"YulFunctionCall","src":"3270:9:30"},{"arguments":[{"arguments":[{"name":"r","nativeSrc":"3289:1:30","nodeType":"YulIdentifier","src":"3289:1:30"},{"name":"x","nativeSrc":"3292:1:30","nodeType":"YulIdentifier","src":"3292:1:30"}],"functionName":{"name":"sdiv","nativeSrc":"3284:4:30","nodeType":"YulIdentifier","src":"3284:4:30"},"nativeSrc":"3284:10:30","nodeType":"YulFunctionCall","src":"3284:10:30"},{"name":"y","nativeSrc":"3296:1:30","nodeType":"YulIdentifier","src":"3296:1:30"}],"functionName":{"name":"eq","nativeSrc":"3281:2:30","nodeType":"YulIdentifier","src":"3281:2:30"},"nativeSrc":"3281:17:30","nodeType":"YulFunctionCall","src":"3281:17:30"}],"functionName":{"name":"or","nativeSrc":"3267:2:30","nodeType":"YulIdentifier","src":"3267:2:30"},"nativeSrc":"3267:32:30","nodeType":"YulFunctionCall","src":"3267:32:30"},{"arguments":[{"arguments":[{"name":"x","nativeSrc":"3352:1:30","nodeType":"YulIdentifier","src":"3352:1:30"},{"arguments":[{"kind":"number","nativeSrc":"3359:1:30","nodeType":"YulLiteral","src":"3359:1:30","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"3355:3:30","nodeType":"YulIdentifier","src":"3355:3:30"},"nativeSrc":"3355:6:30","nodeType":"YulFunctionCall","src":"3355:6:30"}],"functionName":{"name":"lt","nativeSrc":"3349:2:30","nodeType":"YulIdentifier","src":"3349:2:30"},"nativeSrc":"3349:13:30","nodeType":"YulFunctionCall","src":"3349:13:30"},{"arguments":[{"name":"y","nativeSrc":"3421:1:30","nodeType":"YulIdentifier","src":"3421:1:30"},{"kind":"number","nativeSrc":"3452:66:30","nodeType":"YulLiteral","src":"3452:66:30","type":"","value":"0x8000000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"sgt","nativeSrc":"3388:3:30","nodeType":"YulIdentifier","src":"3388:3:30"},"nativeSrc":"3388:156:30","nodeType":"YulFunctionCall","src":"3388:156:30"}],"functionName":{"name":"or","nativeSrc":"3321:2:30","nodeType":"YulIdentifier","src":"3321:2:30"},"nativeSrc":"3321:245:30","nodeType":"YulFunctionCall","src":"3321:245:30"}],"functionName":{"name":"and","nativeSrc":"3242:3:30","nodeType":"YulIdentifier","src":"3242:3:30"},"nativeSrc":"3242:342:30","nodeType":"YulFunctionCall","src":"3242:342:30"}],"functionName":{"name":"iszero","nativeSrc":"3218:6:30","nodeType":"YulIdentifier","src":"3218:6:30"},"nativeSrc":"3218:380:30","nodeType":"YulFunctionCall","src":"3218:380:30"},"nativeSrc":"3215:400:30","nodeType":"YulIf","src":"3215:400:30"},{"nativeSrc":"3675:33:30","nodeType":"YulAssignment","src":"3675:33:30","value":{"arguments":[{"name":"r","nativeSrc":"3685:1:30","nodeType":"YulIdentifier","src":"3685:1:30"},{"kind":"number","nativeSrc":"3688:19:30","nodeType":"YulLiteral","src":"3688:19:30","type":"","value":"1000000000000000000"}],"functionName":{"name":"sdiv","nativeSrc":"3680:4:30","nodeType":"YulIdentifier","src":"3680:4:30"},"nativeSrc":"3680:28:30","nodeType":"YulFunctionCall","src":"3680:28:30"},"variableNames":[{"name":"r","nativeSrc":"3675:1:30","nodeType":"YulIdentifier","src":"3675:1:30"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":30160,"isOffset":false,"isSlot":false,"src":"2694:1:30","valueSize":1},{"declaration":30160,"isOffset":false,"isSlot":false,"src":"3289:1:30","valueSize":1},{"declaration":30160,"isOffset":false,"isSlot":false,"src":"3675:1:30","valueSize":1},{"declaration":30160,"isOffset":false,"isSlot":false,"src":"3685:1:30","valueSize":1},{"declaration":30155,"isOffset":false,"isSlot":false,"src":"2703:1:30","valueSize":1},{"declaration":30155,"isOffset":false,"isSlot":false,"src":"3277:1:30","valueSize":1},{"declaration":30155,"isOffset":false,"isSlot":false,"src":"3292:1:30","valueSize":1},{"declaration":30155,"isOffset":false,"isSlot":false,"src":"3352:1:30","valueSize":1},{"declaration":30157,"isOffset":false,"isSlot":false,"src":"2706:1:30","valueSize":1},{"declaration":30157,"isOffset":false,"isSlot":false,"src":"3296:1:30","valueSize":1},{"declaration":30157,"isOffset":false,"isSlot":false,"src":"3421:1:30","valueSize":1}],"id":30162,"nodeType":"InlineAssembly","src":"2630:1088:30"}]},"implemented":true,"kind":"function","modifiers":[],"name":"wadMul","nameLocation":"2517:6:30","parameters":{"id":30158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30155,"mutability":"mutable","name":"x","nameLocation":"2531:1:30","nodeType":"VariableDeclaration","scope":30164,"src":"2524:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30154,"name":"int256","nodeType":"ElementaryTypeName","src":"2524:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":30157,"mutability":"mutable","name":"y","nameLocation":"2541:1:30","nodeType":"VariableDeclaration","scope":30164,"src":"2534:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30156,"name":"int256","nodeType":"ElementaryTypeName","src":"2534:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2523:20:30"},"returnParameters":{"id":30161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30160,"mutability":"mutable","name":"r","nameLocation":"2574:1:30","nodeType":"VariableDeclaration","scope":30164,"src":"2567:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30159,"name":"int256","nodeType":"ElementaryTypeName","src":"2567:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2566:10:30"},"scope":30623,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30175,"nodeType":"FunctionDefinition","src":"3730:500:30","nodes":[],"body":{"id":30174,"nodeType":"Block","src":"3799:431:30","nodes":[],"statements":[{"AST":{"nativeSrc":"3861:363:30","nodeType":"YulBlock","src":"3861:363:30","statements":[{"nativeSrc":"3919:32:30","nodeType":"YulAssignment","src":"3919:32:30","value":{"arguments":[{"name":"x","nativeSrc":"3928:1:30","nodeType":"YulIdentifier","src":"3928:1:30"},{"kind":"number","nativeSrc":"3931:19:30","nodeType":"YulLiteral","src":"3931:19:30","type":"","value":"1000000000000000000"}],"functionName":{"name":"mul","nativeSrc":"3924:3:30","nodeType":"YulIdentifier","src":"3924:3:30"},"nativeSrc":"3924:27:30","nodeType":"YulFunctionCall","src":"3924:27:30"},"variableNames":[{"name":"r","nativeSrc":"3919:1:30","nodeType":"YulIdentifier","src":"3919:1:30"}]},{"body":{"nativeSrc":"4139:16:30","nodeType":"YulBlock","src":"4139:16:30","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4148:1:30","nodeType":"YulLiteral","src":"4148:1:30","type":"","value":"0"},{"kind":"number","nativeSrc":"4151:1:30","nodeType":"YulLiteral","src":"4151:1:30","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4141:6:30","nodeType":"YulIdentifier","src":"4141:6:30"},"nativeSrc":"4141:12:30","nodeType":"YulFunctionCall","src":"4141:12:30"},"nativeSrc":"4141:12:30","nodeType":"YulExpressionStatement","src":"4141:12:30"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"y","nativeSrc":"4083:1:30","nodeType":"YulIdentifier","src":"4083:1:30"}],"functionName":{"name":"iszero","nativeSrc":"4076:6:30","nodeType":"YulIdentifier","src":"4076:6:30"},"nativeSrc":"4076:9:30","nodeType":"YulFunctionCall","src":"4076:9:30"}],"functionName":{"name":"iszero","nativeSrc":"4069:6:30","nodeType":"YulIdentifier","src":"4069:6:30"},"nativeSrc":"4069:17:30","nodeType":"YulFunctionCall","src":"4069:17:30"},{"arguments":[{"arguments":[{"name":"r","nativeSrc":"4096:1:30","nodeType":"YulIdentifier","src":"4096:1:30"},{"kind":"number","nativeSrc":"4099:19:30","nodeType":"YulLiteral","src":"4099:19:30","type":"","value":"1000000000000000000"}],"functionName":{"name":"sdiv","nativeSrc":"4091:4:30","nodeType":"YulIdentifier","src":"4091:4:30"},"nativeSrc":"4091:28:30","nodeType":"YulFunctionCall","src":"4091:28:30"},{"name":"x","nativeSrc":"4121:1:30","nodeType":"YulIdentifier","src":"4121:1:30"}],"functionName":{"name":"eq","nativeSrc":"4088:2:30","nodeType":"YulIdentifier","src":"4088:2:30"},"nativeSrc":"4088:35:30","nodeType":"YulFunctionCall","src":"4088:35:30"}],"functionName":{"name":"and","nativeSrc":"4065:3:30","nodeType":"YulIdentifier","src":"4065:3:30"},"nativeSrc":"4065:59:30","nodeType":"YulFunctionCall","src":"4065:59:30"}],"functionName":{"name":"iszero","nativeSrc":"4041:6:30","nodeType":"YulIdentifier","src":"4041:6:30"},"nativeSrc":"4041:97:30","nodeType":"YulFunctionCall","src":"4041:97:30"},"nativeSrc":"4038:117:30","nodeType":"YulIf","src":"4038:117:30"},{"nativeSrc":"4199:15:30","nodeType":"YulAssignment","src":"4199:15:30","value":{"arguments":[{"name":"r","nativeSrc":"4209:1:30","nodeType":"YulIdentifier","src":"4209:1:30"},{"name":"y","nativeSrc":"4212:1:30","nodeType":"YulIdentifier","src":"4212:1:30"}],"functionName":{"name":"sdiv","nativeSrc":"4204:4:30","nodeType":"YulIdentifier","src":"4204:4:30"},"nativeSrc":"4204:10:30","nodeType":"YulFunctionCall","src":"4204:10:30"},"variableNames":[{"name":"r","nativeSrc":"4199:1:30","nodeType":"YulIdentifier","src":"4199:1:30"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":30171,"isOffset":false,"isSlot":false,"src":"3919:1:30","valueSize":1},{"declaration":30171,"isOffset":false,"isSlot":false,"src":"4096:1:30","valueSize":1},{"declaration":30171,"isOffset":false,"isSlot":false,"src":"4199:1:30","valueSize":1},{"declaration":30171,"isOffset":false,"isSlot":false,"src":"4209:1:30","valueSize":1},{"declaration":30166,"isOffset":false,"isSlot":false,"src":"3928:1:30","valueSize":1},{"declaration":30166,"isOffset":false,"isSlot":false,"src":"4121:1:30","valueSize":1},{"declaration":30168,"isOffset":false,"isSlot":false,"src":"4083:1:30","valueSize":1},{"declaration":30168,"isOffset":false,"isSlot":false,"src":"4212:1:30","valueSize":1}],"id":30173,"nodeType":"InlineAssembly","src":"3852:372:30"}]},"implemented":true,"kind":"function","modifiers":[],"name":"wadDiv","nameLocation":"3739:6:30","parameters":{"id":30169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30166,"mutability":"mutable","name":"x","nameLocation":"3753:1:30","nodeType":"VariableDeclaration","scope":30175,"src":"3746:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30165,"name":"int256","nodeType":"ElementaryTypeName","src":"3746:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":30168,"mutability":"mutable","name":"y","nameLocation":"3763:1:30","nodeType":"VariableDeclaration","scope":30175,"src":"3756:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30167,"name":"int256","nodeType":"ElementaryTypeName","src":"3756:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3745:20:30"},"returnParameters":{"id":30172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30171,"mutability":"mutable","name":"r","nameLocation":"3796:1:30","nodeType":"VariableDeclaration","scope":30175,"src":"3789:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30170,"name":"int256","nodeType":"ElementaryTypeName","src":"3789:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3788:10:30"},"scope":30623,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30197,"nodeType":"FunctionDefinition","src":"4313:266:30","nodes":[],"body":{"id":30196,"nodeType":"Block","src":"4380:199:30","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":30187,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30178,"src":"4510:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":30186,"name":"wadLn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30610,"src":"4504:5:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":30188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4504:8:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30189,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30180,"src":"4515:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4504:12:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30191,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4503:14:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"31653138","id":30192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4520:4:30","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"4503:21:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":30185,"name":"wadExp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30392,"src":"4496:6:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int256_$","typeString":"function (int256) pure returns (int256)"}},"id":30194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4496:29:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":30184,"id":30195,"nodeType":"Return","src":"4489:36:30"}]},"documentation":{"id":30176,"nodeType":"StructuredDocumentation","src":"4236:72:30","text":"@dev Will not work with negative bases, only use when x is positive."},"implemented":true,"kind":"function","modifiers":[],"name":"wadPow","nameLocation":"4322:6:30","parameters":{"id":30181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30178,"mutability":"mutable","name":"x","nameLocation":"4336:1:30","nodeType":"VariableDeclaration","scope":30197,"src":"4329:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30177,"name":"int256","nodeType":"ElementaryTypeName","src":"4329:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":30180,"mutability":"mutable","name":"y","nameLocation":"4346:1:30","nodeType":"VariableDeclaration","scope":30197,"src":"4339:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30179,"name":"int256","nodeType":"ElementaryTypeName","src":"4339:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4328:20:30"},"returnParameters":{"id":30184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30183,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":30197,"src":"4372:6:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30182,"name":"int256","nodeType":"ElementaryTypeName","src":"4372:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4371:8:30"},"scope":30623,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30392,"nodeType":"FunctionDefinition","src":"4585:3461:30","nodes":[],"body":{"id":30391,"nodeType":"Block","src":"4644:3402:30","nodes":[],"statements":[{"id":30390,"nodeType":"UncheckedBlock","src":"4654:3386:30","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30204,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30199,"src":"4811:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":30206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"4816:27:30","subExpression":{"hexValue":"34325f3133395f3637385f3835345f3435325f3736375f353531","id":30205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4817:26:30","typeDescriptions":{"typeIdentifier":"t_rational_42139678854452767551_by_1","typeString":"int_const 42139678854452767551"},"value":"42_139_678_854_452_767_551"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_42139678854452767551_by_1","typeString":"int_const -42139678854452767551"}},"src":"4811:32:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":30210,"nodeType":"IfStatement","src":"4807:46:30","trueBody":{"expression":{"hexValue":"30","id":30208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4852:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":30203,"id":30209,"nodeType":"Return","src":"4845:8:30"}},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30211,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30199,"src":"5047:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3133355f3330355f3939395f3336385f3839335f3233315f353839","id":30212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5052:27:30","typeDescriptions":{"typeIdentifier":"t_rational_135305999368893231589_by_1","typeString":"int_const 135305999368893231589"},"value":"135_305_999_368_893_231_589"},"src":"5047:32:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":30218,"nodeType":"IfStatement","src":"5043:60:30","trueBody":{"expression":{"arguments":[{"hexValue":"4558505f4f564552464c4f57","id":30215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5088:14:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_f364785e6e651288224d2623ec5f083c58c85325644496b3d02635790697d3c7","typeString":"literal_string \"EXP_OVERFLOW\""},"value":"EXP_OVERFLOW"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f364785e6e651288224d2623ec5f083c58c85325644496b3d02635790697d3c7","typeString":"literal_string \"EXP_OVERFLOW\""}],"id":30214,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5081:6:30","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":30216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5081:22:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30217,"nodeType":"ExpressionStatement","src":"5081:22:30"}},{"expression":{"id":30228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30219,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30199,"src":"5360:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30220,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30199,"src":"5365:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3738","id":30221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5370:2:30","typeDescriptions":{"typeIdentifier":"t_rational_78_by_1","typeString":"int_const 78"},"value":"78"},"src":"5365:7:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30223,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5364:9:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"commonType":{"typeIdentifier":"t_rational_3814697265625_by_1","typeString":"int_const 3814697265625"},"id":30226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"35","id":30224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5376:1:30","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":30225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5381:2:30","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"5376:7:30","typeDescriptions":{"typeIdentifier":"t_rational_3814697265625_by_1","typeString":"int_const 3814697265625"}},"src":"5364:19:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5360:23:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30229,"nodeType":"ExpressionStatement","src":"5360:23:30"},{"assignments":[30231],"declarations":[{"constant":false,"id":30231,"mutability":"mutable","name":"k","nameLocation":"5654:1:30","nodeType":"VariableDeclaration","scope":30390,"src":"5647:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30230,"name":"int256","nodeType":"ElementaryTypeName","src":"5647:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":30245,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30232,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30199,"src":"5677:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3936","id":30233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5682:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"5677:7:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30235,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5676:9:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"35345f3931365f3737375f3436375f3730375f3437335f3335315f3134315f3437315f313238","id":30236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5688:38:30","typeDescriptions":{"typeIdentifier":"t_rational_54916777467707473351141471128_by_1","typeString":"int_const 54916777467707473351141471128"},"value":"54_916_777_467_707_473_351_141_471_128"},"src":"5676:50:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_rational_39614081257132168796771975168_by_1","typeString":"int_const 39614081257132168796771975168"},"id":30240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":30238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5729:1:30","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3935","id":30239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5734:2:30","typeDescriptions":{"typeIdentifier":"t_rational_95_by_1","typeString":"int_const 95"},"value":"95"},"src":"5729:7:30","typeDescriptions":{"typeIdentifier":"t_rational_39614081257132168796771975168_by_1","typeString":"int_const 39614081257132168796771975168"}},"src":"5676:60:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30242,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5658:92:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":30243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5754:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"5658:98:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"5647:109:30"},{"expression":{"id":30252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30246,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30199,"src":"5770:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30247,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30199,"src":"5774:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30248,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30231,"src":"5778:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"35345f3931365f3737375f3436375f3730375f3437335f3335315f3134315f3437315f313238","id":30249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5782:38:30","typeDescriptions":{"typeIdentifier":"t_rational_54916777467707473351141471128_by_1","typeString":"int_const 54916777467707473351141471128"},"value":"54_916_777_467_707_473_351_141_471_128"},"src":"5778:42:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5774:46:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5770:50:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30253,"nodeType":"ExpressionStatement","src":"5770:50:30"},{"assignments":[30255],"declarations":[{"constant":false,"id":30255,"mutability":"mutable","name":"y","nameLocation":"6028:1:30","nodeType":"VariableDeclaration","scope":30390,"src":"6021:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30254,"name":"int256","nodeType":"ElementaryTypeName","src":"6021:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":30259,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30256,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30199,"src":"6032:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"315f3334365f3338365f3631365f3534355f3739365f3437385f3932305f3935305f3737335f333238","id":30257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6036:41:30","typeDescriptions":{"typeIdentifier":"t_rational_1346386616545796478920950773328_by_1","typeString":"int_const 1346386616545796478920950773328"},"value":"1_346_386_616_545_796_478_920_950_773_328"},"src":"6032:45:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6021:56:30"},{"expression":{"id":30270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30260,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30255,"src":"6091:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30261,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30255,"src":"6097:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30262,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30199,"src":"6101:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6097:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30264,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6096:7:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":30265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6107:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"6096:13:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30267,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6095:15:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"35375f3135355f3432315f3232375f3535325f3335315f3038325f3232345f3330395f3735385f343432","id":30268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6113:42:30","typeDescriptions":{"typeIdentifier":"t_rational_57155421227552351082224309758442_by_1","typeString":"int_const 57155421227552351082224309758442"},"value":"57_155_421_227_552_351_082_224_309_758_442"},"src":"6095:60:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6091:64:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30271,"nodeType":"ExpressionStatement","src":"6091:64:30"},{"assignments":[30273],"declarations":[{"constant":false,"id":30273,"mutability":"mutable","name":"p","nameLocation":"6176:1:30","nodeType":"VariableDeclaration","scope":30390,"src":"6169:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30272,"name":"int256","nodeType":"ElementaryTypeName","src":"6169:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":30279,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30274,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30255,"src":"6180:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":30275,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30199,"src":"6184:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6180:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"39345f3230315f3534395f3139345f3535305f3439325f3235345f3335365f3034325f3530345f383132","id":30277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6188:42:30","typeDescriptions":{"typeIdentifier":"t_rational_94201549194550492254356042504812_by_1","typeString":"int_const 94201549194550492254356042504812"},"value":"94_201_549_194_550_492_254_356_042_504_812"},"src":"6180:50:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6169:61:30"},{"expression":{"id":30290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30280,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30273,"src":"6244:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30281,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30273,"src":"6250:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30282,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30255,"src":"6254:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6250:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30284,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6249:7:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":30285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6260:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"6249:13:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30287,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6248:15:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32385f3731395f3032315f3634345f3032395f3732365f3135335f3935365f3934345f3638305f3431325f323430","id":30288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6266:46:30","typeDescriptions":{"typeIdentifier":"t_rational_28719021644029726153956944680412240_by_1","typeString":"int_const 2871...(27 digits omitted)...2240"},"value":"28_719_021_644_029_726_153_956_944_680_412_240"},"src":"6248:64:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6244:68:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30291,"nodeType":"ExpressionStatement","src":"6244:68:30"},{"expression":{"id":30301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30292,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30273,"src":"6326:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30293,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30273,"src":"6330:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30294,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30199,"src":"6334:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6330:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_347437083999162433888837515002539729507623920905942392673140736_by_1","typeString":"int_const 3474...(55 digits omitted)...0736"},"id":30298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"345f3338355f3237325f3532315f3435345f3834375f3930345f3635395f3037365f3938355f3639335f323736","id":30296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6339:45:30","typeDescriptions":{"typeIdentifier":"t_rational_4385272521454847904659076985693276_by_1","typeString":"int_const 4385...(26 digits omitted)...3276"},"value":"4_385_272_521_454_847_904_659_076_985_693_276"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3936","id":30297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6388:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"6339:51:30","typeDescriptions":{"typeIdentifier":"t_rational_347437083999162433888837515002539729507623920905942392673140736_by_1","typeString":"int_const 3474...(55 digits omitted)...0736"}}],"id":30299,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6338:53:30","typeDescriptions":{"typeIdentifier":"t_rational_347437083999162433888837515002539729507623920905942392673140736_by_1","typeString":"int_const 3474...(55 digits omitted)...0736"}},"src":"6330:61:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6326:65:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30302,"nodeType":"ExpressionStatement","src":"6326:65:30"},{"assignments":[30304],"declarations":[{"constant":false,"id":30304,"mutability":"mutable","name":"q","nameLocation":"6510:1:30","nodeType":"VariableDeclaration","scope":30390,"src":"6503:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30303,"name":"int256","nodeType":"ElementaryTypeName","src":"6503:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":30308,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30305,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30199,"src":"6514:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"325f3835355f3938395f3339345f3930375f3232335f3236335f3933365f3438345f3035395f393030","id":30306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6518:41:30","typeDescriptions":{"typeIdentifier":"t_rational_2855989394907223263936484059900_by_1","typeString":"int_const 2855989394907223263936484059900"},"value":"2_855_989_394_907_223_263_936_484_059_900"},"src":"6514:45:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6503:56:30"},{"expression":{"id":30319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30309,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30304,"src":"6573:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30310,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30304,"src":"6579:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30311,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30199,"src":"6583:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6579:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30313,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6578:7:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":30314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6589:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"6578:13:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30316,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6577:15:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"35305f3032305f3630335f3635325f3533355f3738335f3031395f3936315f3833315f3838315f393435","id":30317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6595:42:30","typeDescriptions":{"typeIdentifier":"t_rational_50020603652535783019961831881945_by_1","typeString":"int_const 50020603652535783019961831881945"},"value":"50_020_603_652_535_783_019_961_831_881_945"},"src":"6577:60:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6573:64:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30320,"nodeType":"ExpressionStatement","src":"6573:64:30"},{"expression":{"id":30331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30321,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30304,"src":"6651:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30322,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30304,"src":"6657:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30323,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30199,"src":"6661:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6657:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30325,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6656:7:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":30326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6667:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"6656:13:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30328,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6655:15:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3533335f3834355f3033335f3538335f3432365f3730335f3238335f3633335f3433335f3732355f333830","id":30329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6673:43:30","typeDescriptions":{"typeIdentifier":"t_rational_533845033583426703283633433725380_by_1","typeString":"int_const 5338...(25 digits omitted)...5380"},"value":"533_845_033_583_426_703_283_633_433_725_380"},"src":"6655:61:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6651:65:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30332,"nodeType":"ExpressionStatement","src":"6651:65:30"},{"expression":{"id":30343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30333,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30304,"src":"6730:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30334,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30304,"src":"6736:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30335,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30199,"src":"6740:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6736:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30337,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6735:7:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":30338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6746:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"6735:13:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30340,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6734:15:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"335f3630345f3835375f3235365f3933305f3639355f3432375f3037335f3635315f3931385f3039315f343239","id":30341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6752:45:30","typeDescriptions":{"typeIdentifier":"t_rational_3604857256930695427073651918091429_by_1","typeString":"int_const 3604...(26 digits omitted)...1429"},"value":"3_604_857_256_930_695_427_073_651_918_091_429"},"src":"6734:63:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6730:67:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30344,"nodeType":"ExpressionStatement","src":"6730:67:30"},{"expression":{"id":30355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30345,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30304,"src":"6811:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30346,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30304,"src":"6817:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30347,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30199,"src":"6821:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6817:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30349,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6816:7:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":30350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6827:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"6816:13:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30352,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6815:15:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31345f3432335f3630385f3536375f3335305f3436335f3138305f3838375f3337325f3936325f3830375f353733","id":30353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6833:46:30","typeDescriptions":{"typeIdentifier":"t_rational_14423608567350463180887372962807573_by_1","typeString":"int_const 1442...(27 digits omitted)...7573"},"value":"14_423_608_567_350_463_180_887_372_962_807_573"},"src":"6815:64:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6811:68:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30356,"nodeType":"ExpressionStatement","src":"6811:68:30"},{"expression":{"id":30367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30357,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30304,"src":"6893:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30358,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30304,"src":"6899:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30359,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30199,"src":"6903:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6899:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30361,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6898:7:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":30362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6909:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"6898:13:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30364,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6897:15:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32365f3434395f3138385f3439385f3335355f3538385f3333395f3933345f3830335f3732335f3937365f303233","id":30365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6915:46:30","typeDescriptions":{"typeIdentifier":"t_rational_26449188498355588339934803723976023_by_1","typeString":"int_const 2644...(27 digits omitted)...6023"},"value":"26_449_188_498_355_588_339_934_803_723_976_023"},"src":"6897:64:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6893:68:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30368,"nodeType":"ExpressionStatement","src":"6893:68:30"},{"AST":{"nativeSrc":"7032:318:30","nodeType":"YulBlock","src":"7032:318:30","statements":[{"nativeSrc":"7321:15:30","nodeType":"YulAssignment","src":"7321:15:30","value":{"arguments":[{"name":"p","nativeSrc":"7331:1:30","nodeType":"YulIdentifier","src":"7331:1:30"},{"name":"q","nativeSrc":"7334:1:30","nodeType":"YulIdentifier","src":"7334:1:30"}],"functionName":{"name":"sdiv","nativeSrc":"7326:4:30","nodeType":"YulIdentifier","src":"7326:4:30"},"nativeSrc":"7326:10:30","nodeType":"YulFunctionCall","src":"7326:10:30"},"variableNames":[{"name":"r","nativeSrc":"7321:1:30","nodeType":"YulIdentifier","src":"7321:1:30"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":30273,"isOffset":false,"isSlot":false,"src":"7331:1:30","valueSize":1},{"declaration":30304,"isOffset":false,"isSlot":false,"src":"7334:1:30","valueSize":1},{"declaration":30202,"isOffset":false,"isSlot":false,"src":"7321:1:30","valueSize":1}],"id":30369,"nodeType":"InlineAssembly","src":"7023:327:30"},{"expression":{"id":30388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30370,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30202,"src":"7801:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":30375,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30202,"src":"7859:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":30374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7851:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":30373,"name":"uint256","nodeType":"ElementaryTypeName","src":"7851:7:30","typeDescriptions":{}}},"id":30376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7851:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"335f3832325f3833335f3037345f3936335f3233365f3435335f3034325f3733385f3235385f3930325f3135385f3030335f3135355f3431365f3631355f363637","id":30377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7912:65:30","typeDescriptions":{"typeIdentifier":"t_rational_3822833074963236453042738258902158003155416615667_by_1","typeString":"int_const 3822...(41 digits omitted)...5667"},"value":"3_822_833_074_963_236_453_042_738_258_902_158_003_155_416_615_667"},"src":"7851:126:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":30379,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7829:166:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"313935","id":30382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8007:3:30","typeDescriptions":{"typeIdentifier":"t_rational_195_by_1","typeString":"int_const 195"},"value":"195"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":30383,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30231,"src":"8013:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8007:7:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":30381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7999:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":30380,"name":"uint256","nodeType":"ElementaryTypeName","src":"7999:7:30","typeDescriptions":{}}},"id":30385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7999:16:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7829:186:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7805:6:30","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":30371,"name":"int256","nodeType":"ElementaryTypeName","src":"7805:6:30","typeDescriptions":{}}},"id":30387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7805:224:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7801:228:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30389,"nodeType":"ExpressionStatement","src":"7801:228:30"}]}]},"implemented":true,"kind":"function","modifiers":[],"name":"wadExp","nameLocation":"4594:6:30","parameters":{"id":30200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30199,"mutability":"mutable","name":"x","nameLocation":"4608:1:30","nodeType":"VariableDeclaration","scope":30392,"src":"4601:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30198,"name":"int256","nodeType":"ElementaryTypeName","src":"4601:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4600:10:30"},"returnParameters":{"id":30203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30202,"mutability":"mutable","name":"r","nameLocation":"4641:1:30","nodeType":"VariableDeclaration","scope":30392,"src":"4634:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30201,"name":"int256","nodeType":"ElementaryTypeName","src":"4634:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4633:10:30"},"scope":30623,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30610,"nodeType":"FunctionDefinition","src":"8052:3772:30","nodes":[],"body":{"id":30609,"nodeType":"Block","src":"8110:3714:30","nodes":[],"statements":[{"id":30608,"nodeType":"UncheckedBlock","src":"8120:3698:30","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30400,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30394,"src":"8152:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":30401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8156:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8152:5:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554e444546494e4544","id":30403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8159:11:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_b70f99725f613142a957aa77c3aedce39bd858a4e6387f20e61acd49274b091c","typeString":"literal_string \"UNDEFINED\""},"value":"UNDEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b70f99725f613142a957aa77c3aedce39bd858a4e6387f20e61acd49274b091c","typeString":"literal_string \"UNDEFINED\""}],"id":30399,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8144:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":30404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8144:27:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30405,"nodeType":"ExpressionStatement","src":"8144:27:30"},{"AST":{"nativeSrc":"8521:489:30","nodeType":"YulBlock","src":"8521:489:30","statements":[{"nativeSrc":"8539:54:30","nodeType":"YulAssignment","src":"8539:54:30","value":{"arguments":[{"kind":"number","nativeSrc":"8548:1:30","nodeType":"YulLiteral","src":"8548:1:30","type":"","value":"7"},{"arguments":[{"kind":"number","nativeSrc":"8554:34:30","nodeType":"YulLiteral","src":"8554:34:30","type":"","value":"0xffffffffffffffffffffffffffffffff"},{"name":"x","nativeSrc":"8590:1:30","nodeType":"YulIdentifier","src":"8590:1:30"}],"functionName":{"name":"lt","nativeSrc":"8551:2:30","nodeType":"YulIdentifier","src":"8551:2:30"},"nativeSrc":"8551:41:30","nodeType":"YulFunctionCall","src":"8551:41:30"}],"functionName":{"name":"shl","nativeSrc":"8544:3:30","nodeType":"YulIdentifier","src":"8544:3:30"},"nativeSrc":"8544:49:30","nodeType":"YulFunctionCall","src":"8544:49:30"},"variableNames":[{"name":"r","nativeSrc":"8539:1:30","nodeType":"YulIdentifier","src":"8539:1:30"}]},{"nativeSrc":"8610:53:30","nodeType":"YulAssignment","src":"8610:53:30","value":{"arguments":[{"name":"r","nativeSrc":"8618:1:30","nodeType":"YulIdentifier","src":"8618:1:30"},{"arguments":[{"kind":"number","nativeSrc":"8625:1:30","nodeType":"YulLiteral","src":"8625:1:30","type":"","value":"6"},{"arguments":[{"kind":"number","nativeSrc":"8631:18:30","nodeType":"YulLiteral","src":"8631:18:30","type":"","value":"0xffffffffffffffff"},{"arguments":[{"name":"r","nativeSrc":"8655:1:30","nodeType":"YulIdentifier","src":"8655:1:30"},{"name":"x","nativeSrc":"8658:1:30","nodeType":"YulIdentifier","src":"8658:1:30"}],"functionName":{"name":"shr","nativeSrc":"8651:3:30","nodeType":"YulIdentifier","src":"8651:3:30"},"nativeSrc":"8651:9:30","nodeType":"YulFunctionCall","src":"8651:9:30"}],"functionName":{"name":"lt","nativeSrc":"8628:2:30","nodeType":"YulIdentifier","src":"8628:2:30"},"nativeSrc":"8628:33:30","nodeType":"YulFunctionCall","src":"8628:33:30"}],"functionName":{"name":"shl","nativeSrc":"8621:3:30","nodeType":"YulIdentifier","src":"8621:3:30"},"nativeSrc":"8621:41:30","nodeType":"YulFunctionCall","src":"8621:41:30"}],"functionName":{"name":"or","nativeSrc":"8615:2:30","nodeType":"YulIdentifier","src":"8615:2:30"},"nativeSrc":"8615:48:30","nodeType":"YulFunctionCall","src":"8615:48:30"},"variableNames":[{"name":"r","nativeSrc":"8610:1:30","nodeType":"YulIdentifier","src":"8610:1:30"}]},{"nativeSrc":"8680:45:30","nodeType":"YulAssignment","src":"8680:45:30","value":{"arguments":[{"name":"r","nativeSrc":"8688:1:30","nodeType":"YulIdentifier","src":"8688:1:30"},{"arguments":[{"kind":"number","nativeSrc":"8695:1:30","nodeType":"YulLiteral","src":"8695:1:30","type":"","value":"5"},{"arguments":[{"kind":"number","nativeSrc":"8701:10:30","nodeType":"YulLiteral","src":"8701:10:30","type":"","value":"0xffffffff"},{"arguments":[{"name":"r","nativeSrc":"8717:1:30","nodeType":"YulIdentifier","src":"8717:1:30"},{"name":"x","nativeSrc":"8720:1:30","nodeType":"YulIdentifier","src":"8720:1:30"}],"functionName":{"name":"shr","nativeSrc":"8713:3:30","nodeType":"YulIdentifier","src":"8713:3:30"},"nativeSrc":"8713:9:30","nodeType":"YulFunctionCall","src":"8713:9:30"}],"functionName":{"name":"lt","nativeSrc":"8698:2:30","nodeType":"YulIdentifier","src":"8698:2:30"},"nativeSrc":"8698:25:30","nodeType":"YulFunctionCall","src":"8698:25:30"}],"functionName":{"name":"shl","nativeSrc":"8691:3:30","nodeType":"YulIdentifier","src":"8691:3:30"},"nativeSrc":"8691:33:30","nodeType":"YulFunctionCall","src":"8691:33:30"}],"functionName":{"name":"or","nativeSrc":"8685:2:30","nodeType":"YulIdentifier","src":"8685:2:30"},"nativeSrc":"8685:40:30","nodeType":"YulFunctionCall","src":"8685:40:30"},"variableNames":[{"name":"r","nativeSrc":"8680:1:30","nodeType":"YulIdentifier","src":"8680:1:30"}]},{"nativeSrc":"8742:41:30","nodeType":"YulAssignment","src":"8742:41:30","value":{"arguments":[{"name":"r","nativeSrc":"8750:1:30","nodeType":"YulIdentifier","src":"8750:1:30"},{"arguments":[{"kind":"number","nativeSrc":"8757:1:30","nodeType":"YulLiteral","src":"8757:1:30","type":"","value":"4"},{"arguments":[{"kind":"number","nativeSrc":"8763:6:30","nodeType":"YulLiteral","src":"8763:6:30","type":"","value":"0xffff"},{"arguments":[{"name":"r","nativeSrc":"8775:1:30","nodeType":"YulIdentifier","src":"8775:1:30"},{"name":"x","nativeSrc":"8778:1:30","nodeType":"YulIdentifier","src":"8778:1:30"}],"functionName":{"name":"shr","nativeSrc":"8771:3:30","nodeType":"YulIdentifier","src":"8771:3:30"},"nativeSrc":"8771:9:30","nodeType":"YulFunctionCall","src":"8771:9:30"}],"functionName":{"name":"lt","nativeSrc":"8760:2:30","nodeType":"YulIdentifier","src":"8760:2:30"},"nativeSrc":"8760:21:30","nodeType":"YulFunctionCall","src":"8760:21:30"}],"functionName":{"name":"shl","nativeSrc":"8753:3:30","nodeType":"YulIdentifier","src":"8753:3:30"},"nativeSrc":"8753:29:30","nodeType":"YulFunctionCall","src":"8753:29:30"}],"functionName":{"name":"or","nativeSrc":"8747:2:30","nodeType":"YulIdentifier","src":"8747:2:30"},"nativeSrc":"8747:36:30","nodeType":"YulFunctionCall","src":"8747:36:30"},"variableNames":[{"name":"r","nativeSrc":"8742:1:30","nodeType":"YulIdentifier","src":"8742:1:30"}]},{"nativeSrc":"8800:39:30","nodeType":"YulAssignment","src":"8800:39:30","value":{"arguments":[{"name":"r","nativeSrc":"8808:1:30","nodeType":"YulIdentifier","src":"8808:1:30"},{"arguments":[{"kind":"number","nativeSrc":"8815:1:30","nodeType":"YulLiteral","src":"8815:1:30","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"8821:4:30","nodeType":"YulLiteral","src":"8821:4:30","type":"","value":"0xff"},{"arguments":[{"name":"r","nativeSrc":"8831:1:30","nodeType":"YulIdentifier","src":"8831:1:30"},{"name":"x","nativeSrc":"8834:1:30","nodeType":"YulIdentifier","src":"8834:1:30"}],"functionName":{"name":"shr","nativeSrc":"8827:3:30","nodeType":"YulIdentifier","src":"8827:3:30"},"nativeSrc":"8827:9:30","nodeType":"YulFunctionCall","src":"8827:9:30"}],"functionName":{"name":"lt","nativeSrc":"8818:2:30","nodeType":"YulIdentifier","src":"8818:2:30"},"nativeSrc":"8818:19:30","nodeType":"YulFunctionCall","src":"8818:19:30"}],"functionName":{"name":"shl","nativeSrc":"8811:3:30","nodeType":"YulIdentifier","src":"8811:3:30"},"nativeSrc":"8811:27:30","nodeType":"YulFunctionCall","src":"8811:27:30"}],"functionName":{"name":"or","nativeSrc":"8805:2:30","nodeType":"YulIdentifier","src":"8805:2:30"},"nativeSrc":"8805:34:30","nodeType":"YulFunctionCall","src":"8805:34:30"},"variableNames":[{"name":"r","nativeSrc":"8800:1:30","nodeType":"YulIdentifier","src":"8800:1:30"}]},{"nativeSrc":"8856:38:30","nodeType":"YulAssignment","src":"8856:38:30","value":{"arguments":[{"name":"r","nativeSrc":"8864:1:30","nodeType":"YulIdentifier","src":"8864:1:30"},{"arguments":[{"kind":"number","nativeSrc":"8871:1:30","nodeType":"YulLiteral","src":"8871:1:30","type":"","value":"2"},{"arguments":[{"kind":"number","nativeSrc":"8877:3:30","nodeType":"YulLiteral","src":"8877:3:30","type":"","value":"0xf"},{"arguments":[{"name":"r","nativeSrc":"8886:1:30","nodeType":"YulIdentifier","src":"8886:1:30"},{"name":"x","nativeSrc":"8889:1:30","nodeType":"YulIdentifier","src":"8889:1:30"}],"functionName":{"name":"shr","nativeSrc":"8882:3:30","nodeType":"YulIdentifier","src":"8882:3:30"},"nativeSrc":"8882:9:30","nodeType":"YulFunctionCall","src":"8882:9:30"}],"functionName":{"name":"lt","nativeSrc":"8874:2:30","nodeType":"YulIdentifier","src":"8874:2:30"},"nativeSrc":"8874:18:30","nodeType":"YulFunctionCall","src":"8874:18:30"}],"functionName":{"name":"shl","nativeSrc":"8867:3:30","nodeType":"YulIdentifier","src":"8867:3:30"},"nativeSrc":"8867:26:30","nodeType":"YulFunctionCall","src":"8867:26:30"}],"functionName":{"name":"or","nativeSrc":"8861:2:30","nodeType":"YulIdentifier","src":"8861:2:30"},"nativeSrc":"8861:33:30","nodeType":"YulFunctionCall","src":"8861:33:30"},"variableNames":[{"name":"r","nativeSrc":"8856:1:30","nodeType":"YulIdentifier","src":"8856:1:30"}]},{"nativeSrc":"8911:38:30","nodeType":"YulAssignment","src":"8911:38:30","value":{"arguments":[{"name":"r","nativeSrc":"8919:1:30","nodeType":"YulIdentifier","src":"8919:1:30"},{"arguments":[{"kind":"number","nativeSrc":"8926:1:30","nodeType":"YulLiteral","src":"8926:1:30","type":"","value":"1"},{"arguments":[{"kind":"number","nativeSrc":"8932:3:30","nodeType":"YulLiteral","src":"8932:3:30","type":"","value":"0x3"},{"arguments":[{"name":"r","nativeSrc":"8941:1:30","nodeType":"YulIdentifier","src":"8941:1:30"},{"name":"x","nativeSrc":"8944:1:30","nodeType":"YulIdentifier","src":"8944:1:30"}],"functionName":{"name":"shr","nativeSrc":"8937:3:30","nodeType":"YulIdentifier","src":"8937:3:30"},"nativeSrc":"8937:9:30","nodeType":"YulFunctionCall","src":"8937:9:30"}],"functionName":{"name":"lt","nativeSrc":"8929:2:30","nodeType":"YulIdentifier","src":"8929:2:30"},"nativeSrc":"8929:18:30","nodeType":"YulFunctionCall","src":"8929:18:30"}],"functionName":{"name":"shl","nativeSrc":"8922:3:30","nodeType":"YulIdentifier","src":"8922:3:30"},"nativeSrc":"8922:26:30","nodeType":"YulFunctionCall","src":"8922:26:30"}],"functionName":{"name":"or","nativeSrc":"8916:2:30","nodeType":"YulIdentifier","src":"8916:2:30"},"nativeSrc":"8916:33:30","nodeType":"YulFunctionCall","src":"8916:33:30"},"variableNames":[{"name":"r","nativeSrc":"8911:1:30","nodeType":"YulIdentifier","src":"8911:1:30"}]},{"nativeSrc":"8966:30:30","nodeType":"YulAssignment","src":"8966:30:30","value":{"arguments":[{"name":"r","nativeSrc":"8974:1:30","nodeType":"YulIdentifier","src":"8974:1:30"},{"arguments":[{"kind":"number","nativeSrc":"8980:3:30","nodeType":"YulLiteral","src":"8980:3:30","type":"","value":"0x1"},{"arguments":[{"name":"r","nativeSrc":"8989:1:30","nodeType":"YulIdentifier","src":"8989:1:30"},{"name":"x","nativeSrc":"8992:1:30","nodeType":"YulIdentifier","src":"8992:1:30"}],"functionName":{"name":"shr","nativeSrc":"8985:3:30","nodeType":"YulIdentifier","src":"8985:3:30"},"nativeSrc":"8985:9:30","nodeType":"YulFunctionCall","src":"8985:9:30"}],"functionName":{"name":"lt","nativeSrc":"8977:2:30","nodeType":"YulIdentifier","src":"8977:2:30"},"nativeSrc":"8977:18:30","nodeType":"YulFunctionCall","src":"8977:18:30"}],"functionName":{"name":"or","nativeSrc":"8971:2:30","nodeType":"YulIdentifier","src":"8971:2:30"},"nativeSrc":"8971:25:30","nodeType":"YulFunctionCall","src":"8971:25:30"},"variableNames":[{"name":"r","nativeSrc":"8966:1:30","nodeType":"YulIdentifier","src":"8966:1:30"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":30397,"isOffset":false,"isSlot":false,"src":"8539:1:30","valueSize":1},{"declaration":30397,"isOffset":false,"isSlot":false,"src":"8610:1:30","valueSize":1},{"declaration":30397,"isOffset":false,"isSlot":false,"src":"8618:1:30","valueSize":1},{"declaration":30397,"isOffset":false,"isSlot":false,"src":"8655:1:30","valueSize":1},{"declaration":30397,"isOffset":false,"isSlot":false,"src":"8680:1:30","valueSize":1},{"declaration":30397,"isOffset":false,"isSlot":false,"src":"8688:1:30","valueSize":1},{"declaration":30397,"isOffset":false,"isSlot":false,"src":"8717:1:30","valueSize":1},{"declaration":30397,"isOffset":false,"isSlot":false,"src":"8742:1:30","valueSize":1},{"declaration":30397,"isOffset":false,"isSlot":false,"src":"8750:1:30","valueSize":1},{"declaration":30397,"isOffset":false,"isSlot":false,"src":"8775:1:30","valueSize":1},{"declaration":30397,"isOffset":false,"isSlot":false,"src":"8800:1:30","valueSize":1},{"declaration":30397,"isOffset":false,"isSlot":false,"src":"8808:1:30","valueSize":1},{"declaration":30397,"isOffset":false,"isSlot":false,"src":"8831:1:30","valueSize":1},{"declaration":30397,"isOffset":false,"isSlot":false,"src":"8856:1:30","valueSize":1},{"declaration":30397,"isOffset":false,"isSlot":false,"src":"8864:1:30","valueSize":1},{"declaration":30397,"isOffset":false,"isSlot":false,"src":"8886:1:30","valueSize":1},{"declaration":30397,"isOffset":false,"isSlot":false,"src":"8911:1:30","valueSize":1},{"declaration":30397,"isOffset":false,"isSlot":false,"src":"8919:1:30","valueSize":1},{"declaration":30397,"isOffset":false,"isSlot":false,"src":"8941:1:30","valueSize":1},{"declaration":30397,"isOffset":false,"isSlot":false,"src":"8966:1:30","valueSize":1},{"declaration":30397,"isOffset":false,"isSlot":false,"src":"8974:1:30","valueSize":1},{"declaration":30397,"isOffset":false,"isSlot":false,"src":"8989:1:30","valueSize":1},{"declaration":30394,"isOffset":false,"isSlot":false,"src":"8590:1:30","valueSize":1},{"declaration":30394,"isOffset":false,"isSlot":false,"src":"8658:1:30","valueSize":1},{"declaration":30394,"isOffset":false,"isSlot":false,"src":"8720:1:30","valueSize":1},{"declaration":30394,"isOffset":false,"isSlot":false,"src":"8778:1:30","valueSize":1},{"declaration":30394,"isOffset":false,"isSlot":false,"src":"8834:1:30","valueSize":1},{"declaration":30394,"isOffset":false,"isSlot":false,"src":"8889:1:30","valueSize":1},{"declaration":30394,"isOffset":false,"isSlot":false,"src":"8944:1:30","valueSize":1},{"declaration":30394,"isOffset":false,"isSlot":false,"src":"8992:1:30","valueSize":1}],"id":30406,"nodeType":"InlineAssembly","src":"8512:498:30"},{"assignments":[30408],"declarations":[{"constant":false,"id":30408,"mutability":"mutable","name":"k","nameLocation":"9129:1:30","nodeType":"VariableDeclaration","scope":30608,"src":"9122:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30407,"name":"int256","nodeType":"ElementaryTypeName","src":"9122:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":30412,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30409,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30397,"src":"9133:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3936","id":30410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9137:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"9133:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"9122:17:30"},{"expression":{"id":30420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30413,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30394,"src":"9153:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"313539","id":30416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9167:3:30","typeDescriptions":{"typeIdentifier":"t_rational_159_by_1","typeString":"int_const 159"},"value":"159"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":30417,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30408,"src":"9173:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9167:7:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":30415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9159:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":30414,"name":"uint256","nodeType":"ElementaryTypeName","src":"9159:7:30","typeDescriptions":{}}},"id":30419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9159:16:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9153:22:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30421,"nodeType":"ExpressionStatement","src":"9153:22:30"},{"expression":{"id":30432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30422,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30394,"src":"9189:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":30427,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30394,"src":"9208:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":30426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9200:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":30425,"name":"uint256","nodeType":"ElementaryTypeName","src":"9200:7:30","typeDescriptions":{}}},"id":30428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9200:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313539","id":30429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9214:3:30","typeDescriptions":{"typeIdentifier":"t_rational_159_by_1","typeString":"int_const 159"},"value":"159"},"src":"9200:17:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9193:6:30","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":30423,"name":"int256","nodeType":"ElementaryTypeName","src":"9193:6:30","typeDescriptions":{}}},"id":30431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9193:25:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9189:29:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30433,"nodeType":"ExpressionStatement","src":"9189:29:30"},{"assignments":[30435],"declarations":[{"constant":false,"id":30435,"mutability":"mutable","name":"p","nameLocation":"9382:1:30","nodeType":"VariableDeclaration","scope":30608,"src":"9375:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30434,"name":"int256","nodeType":"ElementaryTypeName","src":"9375:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":30439,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30436,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30394,"src":"9386:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"335f3237335f3238355f3435395f3633385f3532335f3834385f3633325f3235345f3036365f323936","id":30437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9390:41:30","typeDescriptions":{"typeIdentifier":"t_rational_3273285459638523848632254066296_by_1","typeString":"int_const 3273285459638523848632254066296"},"value":"3_273_285_459_638_523_848_632_254_066_296"},"src":"9386:45:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"9375:56:30"},{"expression":{"id":30450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30440,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30435,"src":"9445:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30441,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30435,"src":"9451:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30442,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30394,"src":"9455:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9451:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30444,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9450:7:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":30445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9461:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"9450:13:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30447,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9449:15:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32345f3832385f3135375f3038315f3833335f3136335f3839325f3635385f3038395f3434355f353234","id":30448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9467:42:30","typeDescriptions":{"typeIdentifier":"t_rational_24828157081833163892658089445524_by_1","typeString":"int_const 24828157081833163892658089445524"},"value":"24_828_157_081_833_163_892_658_089_445_524"},"src":"9449:60:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9445:64:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30451,"nodeType":"ExpressionStatement","src":"9445:64:30"},{"expression":{"id":30462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30452,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30435,"src":"9523:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30453,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30435,"src":"9529:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30454,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30394,"src":"9533:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9529:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30456,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9528:7:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":30457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9539:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"9528:13:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30459,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9527:15:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"34335f3435365f3438355f3732355f3733395f3033375f3935385f3734305f3337355f3734335f333933","id":30460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9545:42:30","typeDescriptions":{"typeIdentifier":"t_rational_43456485725739037958740375743393_by_1","typeString":"int_const 43456485725739037958740375743393"},"value":"43_456_485_725_739_037_958_740_375_743_393"},"src":"9527:60:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9523:64:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30463,"nodeType":"ExpressionStatement","src":"9523:64:30"},{"expression":{"id":30474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30464,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30435,"src":"9601:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30465,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30435,"src":"9607:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30466,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30394,"src":"9611:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9607:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30468,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9606:7:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":30469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9617:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"9606:13:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30471,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9605:15:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31315f3131315f3530395f3130395f3434305f3936375f3035325f3032335f3835355f3532365f393637","id":30472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9623:42:30","typeDescriptions":{"typeIdentifier":"t_rational_11111509109440967052023855526967_by_1","typeString":"int_const 11111509109440967052023855526967"},"value":"11_111_509_109_440_967_052_023_855_526_967"},"src":"9605:60:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9601:64:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30475,"nodeType":"ExpressionStatement","src":"9601:64:30"},{"expression":{"id":30486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30476,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30435,"src":"9679:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30477,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30435,"src":"9685:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30478,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30394,"src":"9689:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9685:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30480,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9684:7:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":30481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9695:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"9684:13:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30483,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9683:15:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"34355f3032335f3730395f3636375f3235345f3036335f3736335f3333365f3533345f3531355f383537","id":30484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9701:42:30","typeDescriptions":{"typeIdentifier":"t_rational_45023709667254063763336534515857_by_1","typeString":"int_const 45023709667254063763336534515857"},"value":"45_023_709_667_254_063_763_336_534_515_857"},"src":"9683:60:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9679:64:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30487,"nodeType":"ExpressionStatement","src":"9679:64:30"},{"expression":{"id":30498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30488,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30435,"src":"9757:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30489,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30435,"src":"9763:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30490,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30394,"src":"9767:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9763:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30492,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9762:7:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":30493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9773:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"9762:13:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30495,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9761:15:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31345f3730365f3737335f3431375f3337385f3630385f3738365f3730345f3633365f3138345f353236","id":30496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9779:42:30","typeDescriptions":{"typeIdentifier":"t_rational_14706773417378608786704636184526_by_1","typeString":"int_const 14706773417378608786704636184526"},"value":"14_706_773_417_378_608_786_704_636_184_526"},"src":"9761:60:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9757:64:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30499,"nodeType":"ExpressionStatement","src":"9757:64:30"},{"expression":{"id":30509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30500,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30435,"src":"9835:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30501,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30435,"src":"9839:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30502,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30394,"src":"9843:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9839:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_62999401287715976015676079709131874438408901006995465699328_by_1","typeString":"int_const 6299...(51 digits omitted)...9328"},"id":30506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3739355f3136345f3233355f3635315f3335305f3432365f3235385f3234395f3738375f343938","id":30504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9848:39:30","typeDescriptions":{"typeIdentifier":"t_rational_795164235651350426258249787498_by_1","typeString":"int_const 795164235651350426258249787498"},"value":"795_164_235_651_350_426_258_249_787_498"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3936","id":30505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9891:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"9848:45:30","typeDescriptions":{"typeIdentifier":"t_rational_62999401287715976015676079709131874438408901006995465699328_by_1","typeString":"int_const 6299...(51 digits omitted)...9328"}}],"id":30507,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"9847:47:30","typeDescriptions":{"typeIdentifier":"t_rational_62999401287715976015676079709131874438408901006995465699328_by_1","typeString":"int_const 6299...(51 digits omitted)...9328"}},"src":"9839:55:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9835:59:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30510,"nodeType":"ExpressionStatement","src":"9835:59:30"},{"assignments":[30512],"declarations":[{"constant":false,"id":30512,"mutability":"mutable","name":"q","nameLocation":"10054:1:30","nodeType":"VariableDeclaration","scope":30608,"src":"10047:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30511,"name":"int256","nodeType":"ElementaryTypeName","src":"10047:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":30516,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30513,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30394,"src":"10058:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"355f3537335f3033355f3233335f3434305f3637335f3436365f3330305f3435315f3831335f393336","id":30514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10062:41:30","typeDescriptions":{"typeIdentifier":"t_rational_5573035233440673466300451813936_by_1","typeString":"int_const 5573035233440673466300451813936"},"value":"5_573_035_233_440_673_466_300_451_813_936"},"src":"10058:45:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"10047:56:30"},{"expression":{"id":30527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30517,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30512,"src":"10117:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30518,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30512,"src":"10123:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30519,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30394,"src":"10127:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"10123:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30521,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10122:7:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":30522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10133:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"10122:13:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30524,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10121:15:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"37315f3639345f3837345f3739395f3331375f3838335f3736345f3039305f3536315f3435345f393538","id":30525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10139:42:30","typeDescriptions":{"typeIdentifier":"t_rational_71694874799317883764090561454958_by_1","typeString":"int_const 71694874799317883764090561454958"},"value":"71_694_874_799_317_883_764_090_561_454_958"},"src":"10121:60:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"10117:64:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30528,"nodeType":"ExpressionStatement","src":"10117:64:30"},{"expression":{"id":30539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30529,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30512,"src":"10195:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30530,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30512,"src":"10201:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30531,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30394,"src":"10205:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"10201:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30533,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10200:7:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":30534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10211:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"10200:13:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30536,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10199:15:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3238335f3434375f3033365f3137325f3932345f3537355f3732375f3139365f3435315f3330365f393536","id":30537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10217:43:30","typeDescriptions":{"typeIdentifier":"t_rational_283447036172924575727196451306956_by_1","typeString":"int_const 2834...(25 digits omitted)...6956"},"value":"283_447_036_172_924_575_727_196_451_306_956"},"src":"10199:61:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"10195:65:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30540,"nodeType":"ExpressionStatement","src":"10195:65:30"},{"expression":{"id":30551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30541,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30512,"src":"10274:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30542,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30512,"src":"10280:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30543,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30394,"src":"10284:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"10280:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30545,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10279:7:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":30546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10290:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"10279:13:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30548,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10278:15:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3430315f3638365f3639305f3339345f3032375f3636335f3635315f3632345f3230385f3736395f353533","id":30549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10296:43:30","typeDescriptions":{"typeIdentifier":"t_rational_401686690394027663651624208769553_by_1","typeString":"int_const 4016...(25 digits omitted)...9553"},"value":"401_686_690_394_027_663_651_624_208_769_553"},"src":"10278:61:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"10274:65:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30552,"nodeType":"ExpressionStatement","src":"10274:65:30"},{"expression":{"id":30563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30553,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30512,"src":"10353:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30554,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30512,"src":"10359:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30555,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30394,"src":"10363:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"10359:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30557,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10358:7:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":30558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10369:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"10358:13:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30560,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10357:15:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3230345f3034385f3435375f3539305f3339325f3031325f3336325f3438355f3036315f3831365f363232","id":30561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10375:43:30","typeDescriptions":{"typeIdentifier":"t_rational_204048457590392012362485061816622_by_1","typeString":"int_const 2040...(25 digits omitted)...6622"},"value":"204_048_457_590_392_012_362_485_061_816_622"},"src":"10357:61:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"10353:65:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30564,"nodeType":"ExpressionStatement","src":"10353:65:30"},{"expression":{"id":30575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30565,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30512,"src":"10432:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30566,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30512,"src":"10438:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30567,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30394,"src":"10442:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"10438:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30569,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10437:7:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":30570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10448:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"10437:13:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30572,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10436:15:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"33315f3835335f3839395f3639385f3530315f3537315f3430325f3635335f3335395f3432375f313338","id":30573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10454:42:30","typeDescriptions":{"typeIdentifier":"t_rational_31853899698501571402653359427138_by_1","typeString":"int_const 31853899698501571402653359427138"},"value":"31_853_899_698_501_571_402_653_359_427_138"},"src":"10436:60:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"10432:64:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30576,"nodeType":"ExpressionStatement","src":"10432:64:30"},{"expression":{"id":30587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30577,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30512,"src":"10510:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30578,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30512,"src":"10516:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30579,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30394,"src":"10520:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"10516:5:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30581,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10515:7:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3936","id":30582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10526:2:30","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"10515:13:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":30584,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10514:15:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3930395f3432395f3937315f3234345f3338375f3330305f3237375f3337365f3535385f333735","id":30585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10532:39:30","typeDescriptions":{"typeIdentifier":"t_rational_909429971244387300277376558375_by_1","typeString":"int_const 909429971244387300277376558375"},"value":"909_429_971_244_387_300_277_376_558_375"},"src":"10514:57:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"10510:61:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30588,"nodeType":"ExpressionStatement","src":"10510:61:30"},{"AST":{"nativeSrc":"10641:295:30","nodeType":"YulBlock","src":"10641:295:30","statements":[{"nativeSrc":"10907:15:30","nodeType":"YulAssignment","src":"10907:15:30","value":{"arguments":[{"name":"p","nativeSrc":"10917:1:30","nodeType":"YulIdentifier","src":"10917:1:30"},{"name":"q","nativeSrc":"10920:1:30","nodeType":"YulIdentifier","src":"10920:1:30"}],"functionName":{"name":"sdiv","nativeSrc":"10912:4:30","nodeType":"YulIdentifier","src":"10912:4:30"},"nativeSrc":"10912:10:30","nodeType":"YulFunctionCall","src":"10912:10:30"},"variableNames":[{"name":"r","nativeSrc":"10907:1:30","nodeType":"YulIdentifier","src":"10907:1:30"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":30435,"isOffset":false,"isSlot":false,"src":"10917:1:30","valueSize":1},{"declaration":30512,"isOffset":false,"isSlot":false,"src":"10920:1:30","valueSize":1},{"declaration":30397,"isOffset":false,"isSlot":false,"src":"10907:1:30","valueSize":1}],"id":30589,"nodeType":"InlineAssembly","src":"10632:304:30"},{"expression":{"id":30592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30590,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30397,"src":"11297:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"hexValue":"315f3637375f3230325f3131305f3939365f3731385f3538385f3334325f3832305f3936375f3036375f3434335f3936335f3531365f313636","id":30591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11302:57:30","typeDescriptions":{"typeIdentifier":"t_rational_1677202110996718588342820967067443963516166_by_1","typeString":"int_const 1677...(35 digits omitted)...6166"},"value":"1_677_202_110_996_718_588_342_820_967_067_443_963_516_166"},"src":"11297:62:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30593,"nodeType":"ExpressionStatement","src":"11297:62:30"},{"expression":{"id":30598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30594,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30397,"src":"11418:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":30597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31365f3539375f3537375f3535325f3638355f3631345f3232315f3438375f3238355f3935385f3139335f3934375f3436395f3139335f3832305f3535395f3231395f3837385f3137375f3930385f3039335f3439395f3230385f333731","id":30595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11435:94:30","typeDescriptions":{"typeIdentifier":"t_rational_16597577552685614221487285958193947469193820559219878177908093499208371_by_1","typeString":"int_const 1659...(63 digits omitted)...8371"},"value":"16_597_577_552_685_614_221_487_285_958_193_947_469_193_820_559_219_878_177_908_093_499_208_371"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":30596,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30408,"src":"11548:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11435:114:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11418:131:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30599,"nodeType":"ExpressionStatement","src":"11418:131:30"},{"expression":{"id":30602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30600,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30397,"src":"11617:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3630305f3932305f3137395f3832395f3733315f3836315f3733365f3730325f3737395f3332315f3632315f3435395f3539355f3437325f3235385f3034395f3037345f3130315f3536375f3337375f3838335f3032305f3031385f333038","id":30601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11638:95:30","typeDescriptions":{"typeIdentifier":"t_rational_600920179829731861736702779321621459595472258049074101567377883020018308_by_1","typeString":"int_const 6009...(64 digits omitted)...8308"},"value":"600_920_179_829_731_861_736_702_779_321_621_459_595_472_258_049_074_101_567_377_883_020_018_308"},"src":"11617:116:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30603,"nodeType":"ExpressionStatement","src":"11617:116:30"},{"expression":{"id":30606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30604,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30397,"src":"11798:1:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313734","id":30605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11804:3:30","typeDescriptions":{"typeIdentifier":"t_rational_174_by_1","typeString":"int_const 174"},"value":"174"},"src":"11798:9:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":30607,"nodeType":"ExpressionStatement","src":"11798:9:30"}]}]},"implemented":true,"kind":"function","modifiers":[],"name":"wadLn","nameLocation":"8061:5:30","parameters":{"id":30395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30394,"mutability":"mutable","name":"x","nameLocation":"8074:1:30","nodeType":"VariableDeclaration","scope":30610,"src":"8067:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30393,"name":"int256","nodeType":"ElementaryTypeName","src":"8067:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8066:10:30"},"returnParameters":{"id":30398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30397,"mutability":"mutable","name":"r","nameLocation":"8107:1:30","nodeType":"VariableDeclaration","scope":30610,"src":"8100:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30396,"name":"int256","nodeType":"ElementaryTypeName","src":"8100:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8099:10:30"},"scope":30623,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30622,"nodeType":"FunctionDefinition","src":"11892:209:30","nodes":[],"body":{"id":30621,"nodeType":"Block","src":"11964:137:30","nodes":[],"statements":[{"AST":{"nativeSrc":"12026:69:30","nodeType":"YulBlock","src":"12026:69:30","statements":[{"nativeSrc":"12070:15:30","nodeType":"YulAssignment","src":"12070:15:30","value":{"arguments":[{"name":"x","nativeSrc":"12080:1:30","nodeType":"YulIdentifier","src":"12080:1:30"},{"name":"y","nativeSrc":"12083:1:30","nodeType":"YulIdentifier","src":"12083:1:30"}],"functionName":{"name":"sdiv","nativeSrc":"12075:4:30","nodeType":"YulIdentifier","src":"12075:4:30"},"nativeSrc":"12075:10:30","nodeType":"YulFunctionCall","src":"12075:10:30"},"variableNames":[{"name":"r","nativeSrc":"12070:1:30","nodeType":"YulIdentifier","src":"12070:1:30"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":30618,"isOffset":false,"isSlot":false,"src":"12070:1:30","valueSize":1},{"declaration":30613,"isOffset":false,"isSlot":false,"src":"12080:1:30","valueSize":1},{"declaration":30615,"isOffset":false,"isSlot":false,"src":"12083:1:30","valueSize":1}],"id":30620,"nodeType":"InlineAssembly","src":"12017:78:30"}]},"documentation":{"id":30611,"nodeType":"StructuredDocumentation","src":"11830:57:30","text":"@dev Will return 0 instead of reverting if y is zero."},"implemented":true,"kind":"function","modifiers":[],"name":"unsafeDiv","nameLocation":"11901:9:30","parameters":{"id":30616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30613,"mutability":"mutable","name":"x","nameLocation":"11918:1:30","nodeType":"VariableDeclaration","scope":30622,"src":"11911:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30612,"name":"int256","nodeType":"ElementaryTypeName","src":"11911:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":30615,"mutability":"mutable","name":"y","nameLocation":"11928:1:30","nodeType":"VariableDeclaration","scope":30622,"src":"11921:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30614,"name":"int256","nodeType":"ElementaryTypeName","src":"11921:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"11910:20:30"},"returnParameters":{"id":30619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30618,"mutability":"mutable","name":"r","nameLocation":"11961:1:30","nodeType":"VariableDeclaration","scope":30622,"src":"11954:8:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30617,"name":"int256","nodeType":"ElementaryTypeName","src":"11954:6:30","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"11953:10:30"},"scope":30623,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SignedWadMathLib","contractDependencies":[],"contractKind":"library","documentation":{"id":30099,"nodeType":"StructuredDocumentation","src":"58:256:30","text":"@notice Signed 18 decimal fixed point (wad) arithmetic library.\n @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SignedWadMath.sol)\n @author Modified from Remco Bloemen (https://xn--2-umb.com/22/exp-ln/index.html)"},"fullyImplemented":true,"linearizedBaseContracts":[30623],"name":"SignedWadMathLib","nameLocation":"322:16:30","scope":30624,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":30} \ No newline at end of file diff --git a/out/StdAssertions.sol/StdAssertions.json b/out/StdAssertions.sol/StdAssertions.json deleted file mode 100644 index 5fae8c50..00000000 --- a/out/StdAssertions.sol/StdAssertions.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","failed()":"ba414fa6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":\"StdAssertions\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/forge-std/src/StdAssertions.sol":"StdAssertions"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/forge-std/src/StdAssertions.sol","id":2709,"exportedSymbols":{"DSTest":[1786],"StdAssertions":[2708],"stdMath":[6056]},"nodeType":"SourceUnit","src":"32:7351:3","nodes":[{"id":1894,"nodeType":"PragmaDirective","src":"32:31:3","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":1896,"nodeType":"ImportDirective","src":"65:40:3","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol","file":"ds-test/test.sol","nameLocation":"-1:-1:-1","scope":2709,"sourceUnit":1787,"symbolAliases":[{"foreign":{"id":1895,"name":"DSTest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1786,"src":"73:6:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1898,"nodeType":"ImportDirective","src":"106:38:3","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/StdMath.sol","file":"./StdMath.sol","nameLocation":"-1:-1:-1","scope":2709,"sourceUnit":6057,"symbolAliases":[{"foreign":{"id":1897,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6056,"src":"114:7:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2708,"nodeType":"ContractDefinition","src":"146:7236:3","nodes":[{"id":1905,"nodeType":"EventDefinition","src":"194:31:3","nodes":[],"anonymous":false,"eventSelector":"fb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1","name":"log_array","nameLocation":"200:9:3","parameters":{"id":1904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1903,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"220:3:3","nodeType":"VariableDeclaration","scope":1905,"src":"210:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1901,"name":"uint256","nodeType":"ElementaryTypeName","src":"210:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1902,"nodeType":"ArrayTypeName","src":"210:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"209:15:3"}},{"id":1910,"nodeType":"EventDefinition","src":"230:30:3","nodes":[],"anonymous":false,"eventSelector":"890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5","name":"log_array","nameLocation":"236:9:3","parameters":{"id":1909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1908,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"255:3:3","nodeType":"VariableDeclaration","scope":1910,"src":"246:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":1906,"name":"int256","nodeType":"ElementaryTypeName","src":"246:6:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":1907,"nodeType":"ArrayTypeName","src":"246:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"245:14:3"}},{"id":1915,"nodeType":"EventDefinition","src":"265:31:3","nodes":[],"anonymous":false,"eventSelector":"40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2","name":"log_array","nameLocation":"271:9:3","parameters":{"id":1914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1913,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"291:3:3","nodeType":"VariableDeclaration","scope":1915,"src":"281:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1911,"name":"address","nodeType":"ElementaryTypeName","src":"281:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1912,"nodeType":"ArrayTypeName","src":"281:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"280:15:3"}},{"id":1922,"nodeType":"EventDefinition","src":"301:49:3","nodes":[],"anonymous":false,"eventSelector":"00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb","name":"log_named_array","nameLocation":"307:15:3","parameters":{"id":1921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1917,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"330:3:3","nodeType":"VariableDeclaration","scope":1922,"src":"323:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1916,"name":"string","nodeType":"ElementaryTypeName","src":"323:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1920,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"345:3:3","nodeType":"VariableDeclaration","scope":1922,"src":"335:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1918,"name":"uint256","nodeType":"ElementaryTypeName","src":"335:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1919,"nodeType":"ArrayTypeName","src":"335:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"322:27:3"}},{"id":1929,"nodeType":"EventDefinition","src":"355:48:3","nodes":[],"anonymous":false,"eventSelector":"a73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57","name":"log_named_array","nameLocation":"361:15:3","parameters":{"id":1928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1924,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"384:3:3","nodeType":"VariableDeclaration","scope":1929,"src":"377:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1923,"name":"string","nodeType":"ElementaryTypeName","src":"377:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1927,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"398:3:3","nodeType":"VariableDeclaration","scope":1929,"src":"389:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":1925,"name":"int256","nodeType":"ElementaryTypeName","src":"389:6:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":1926,"nodeType":"ArrayTypeName","src":"389:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"376:26:3"}},{"id":1936,"nodeType":"EventDefinition","src":"408:49:3","nodes":[],"anonymous":false,"eventSelector":"3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd","name":"log_named_array","nameLocation":"414:15:3","parameters":{"id":1935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1931,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"437:3:3","nodeType":"VariableDeclaration","scope":1936,"src":"430:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1930,"name":"string","nodeType":"ElementaryTypeName","src":"430:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1934,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"452:3:3","nodeType":"VariableDeclaration","scope":1936,"src":"442:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1932,"name":"address","nodeType":"ElementaryTypeName","src":"442:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1933,"nodeType":"ArrayTypeName","src":"442:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"429:27:3"}},{"id":1950,"nodeType":"FunctionDefinition","src":"463:118:3","nodes":[],"body":{"id":1949,"nodeType":"Block","src":"513:68:3","nodes":[],"statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":1942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"545:7:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":1943,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1938,"src":"554:3:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1941,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"528:16:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":1944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"528:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1945,"nodeType":"EmitStatement","src":"523:35:3"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1946,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[1950,216],"referencedDeclaration":216,"src":"568:4:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"568:6:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1948,"nodeType":"ExpressionStatement","src":"568:6:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"fail","nameLocation":"472:4:3","parameters":{"id":1939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1938,"mutability":"mutable","name":"err","nameLocation":"491:3:3","nodeType":"VariableDeclaration","scope":1950,"src":"477:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1937,"name":"string","nodeType":"ElementaryTypeName","src":"477:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"476:19:3"},"returnParameters":{"id":1940,"nodeType":"ParameterList","parameters":[],"src":"513:0:3"},"scope":2708,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":1961,"nodeType":"FunctionDefinition","src":"587:83:3","nodes":[],"body":{"id":1960,"nodeType":"Block","src":"636:34:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":1957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"657:5:3","subExpression":{"id":1956,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1952,"src":"658:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1955,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[269,290],"referencedDeclaration":269,"src":"646:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$returns$__$","typeString":"function (bool)"}},"id":1958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"646:17:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1959,"nodeType":"ExpressionStatement","src":"646:17:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertFalse","nameLocation":"596:11:3","parameters":{"id":1953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1952,"mutability":"mutable","name":"data","nameLocation":"613:4:3","nodeType":"VariableDeclaration","scope":1961,"src":"608:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1951,"name":"bool","nodeType":"ElementaryTypeName","src":"608:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"607:11:3"},"returnParameters":{"id":1954,"nodeType":"ParameterList","parameters":[],"src":"636:0:3"},"scope":2708,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":1975,"nodeType":"FunctionDefinition","src":"676:107:3","nodes":[],"body":{"id":1974,"nodeType":"Block","src":"744:39:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":1970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"765:5:3","subExpression":{"id":1969,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1963,"src":"766:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1971,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1965,"src":"772:3:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1968,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[269,290],"referencedDeclaration":290,"src":"754:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory)"}},"id":1972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"754:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1973,"nodeType":"ExpressionStatement","src":"754:22:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertFalse","nameLocation":"685:11:3","parameters":{"id":1966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1963,"mutability":"mutable","name":"data","nameLocation":"702:4:3","nodeType":"VariableDeclaration","scope":1975,"src":"697:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1962,"name":"bool","nodeType":"ElementaryTypeName","src":"697:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1965,"mutability":"mutable","name":"err","nameLocation":"722:3:3","nodeType":"VariableDeclaration","scope":1975,"src":"708:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1964,"name":"string","nodeType":"ElementaryTypeName","src":"708:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"696:30:3"},"returnParameters":{"id":1967,"nodeType":"ParameterList","parameters":[],"src":"744:0:3"},"scope":2708,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2011,"nodeType":"FunctionDefinition","src":"789:312:3","nodes":[],"body":{"id":2010,"nodeType":"Block","src":"840:261:3","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1982,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1977,"src":"854:1:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1983,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1979,"src":"859:1:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"854:6:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2009,"nodeType":"IfStatement","src":"850:245:3","trueBody":{"id":2008,"nodeType":"Block","src":"862:233:3","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203d3d2062206e6f7420736174697366696564205b626f6f6c5d","id":1986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"885:36:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b48ec9ac4dc7123ad32509232067c63ebae61bff18d5e06bf4dea2a25240ed2","typeString":"literal_string \"Error: a == b not satisfied [bool]\""},"value":"Error: a == b not satisfied [bool]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b48ec9ac4dc7123ad32509232067c63ebae61bff18d5e06bf4dea2a25240ed2","typeString":"literal_string \"Error: a == b not satisfied [bool]\""}],"id":1985,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"881:3:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":1987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"881:41:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1988,"nodeType":"EmitStatement","src":"876:46:3"},{"eventCall":{"arguments":[{"hexValue":"20204578706563746564","id":1990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"958:12:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},"value":" Expected"},{"condition":{"id":1991,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1979,"src":"972:1:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"66616c7365","id":1993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"985:7:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba9154e0baa69c78e0ca563b867df81bae9d177c4ea1452c35c84386a70f0f7a","typeString":"literal_string \"false\""},"value":"false"},"id":1994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"972:20:3","trueExpression":{"hexValue":"74727565","id":1992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"976:6:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_6273151f959616268004b58dbb21e5c851b7b8d04498b4aabee12291d22fc034","typeString":"literal_string \"true\""},"value":"true"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1989,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"941:16:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":1995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"941:52:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1996,"nodeType":"EmitStatement","src":"936:57:3"},{"eventCall":{"arguments":[{"hexValue":"2020202041637475616c","id":1998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1029:12:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},"value":" Actual"},{"condition":{"id":1999,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1977,"src":"1043:1:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"66616c7365","id":2001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1056:7:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba9154e0baa69c78e0ca563b867df81bae9d177c4ea1452c35c84386a70f0f7a","typeString":"literal_string \"false\""},"value":"false"},"id":2002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1043:20:3","trueExpression":{"hexValue":"74727565","id":2000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1047:6:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_6273151f959616268004b58dbb21e5c851b7b8d04498b4aabee12291d22fc034","typeString":"literal_string \"true\""},"value":"true"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1997,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"1012:16:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":2003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1012:52:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2004,"nodeType":"EmitStatement","src":"1007:57:3"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2005,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[1950,216],"referencedDeclaration":216,"src":"1078:4:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1078:6:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2007,"nodeType":"ExpressionStatement","src":"1078:6:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"798:8:3","parameters":{"id":1980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1977,"mutability":"mutable","name":"a","nameLocation":"812:1:3","nodeType":"VariableDeclaration","scope":2011,"src":"807:6:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1976,"name":"bool","nodeType":"ElementaryTypeName","src":"807:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1979,"mutability":"mutable","name":"b","nameLocation":"820:1:3","nodeType":"VariableDeclaration","scope":2011,"src":"815:6:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1978,"name":"bool","nodeType":"ElementaryTypeName","src":"815:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"806:16:3"},"returnParameters":{"id":1981,"nodeType":"ParameterList","parameters":[],"src":"840:0:3"},"scope":2708,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2036,"nodeType":"FunctionDefinition","src":"1107:186:3","nodes":[],"body":{"id":2035,"nodeType":"Block","src":"1177:116:3","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2020,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2013,"src":"1191:1:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2021,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2015,"src":"1196:1:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1191:6:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2034,"nodeType":"IfStatement","src":"1187:100:3","trueBody":{"id":2033,"nodeType":"Block","src":"1199:88:3","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":2024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1235:7:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":2025,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2017,"src":"1244:3:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2023,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"1218:16:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":2026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1218:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2027,"nodeType":"EmitStatement","src":"1213:35:3"},{"expression":{"arguments":[{"id":2029,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2013,"src":"1271:1:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2030,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2015,"src":"1274:1:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2028,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":2011,"src":"1262:8:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$","typeString":"function (bool,bool)"}},"id":2031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1262:14:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2032,"nodeType":"ExpressionStatement","src":"1262:14:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"1116:8:3","parameters":{"id":2018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2013,"mutability":"mutable","name":"a","nameLocation":"1130:1:3","nodeType":"VariableDeclaration","scope":2036,"src":"1125:6:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2012,"name":"bool","nodeType":"ElementaryTypeName","src":"1125:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2015,"mutability":"mutable","name":"b","nameLocation":"1138:1:3","nodeType":"VariableDeclaration","scope":2036,"src":"1133:6:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2014,"name":"bool","nodeType":"ElementaryTypeName","src":"1133:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2017,"mutability":"mutable","name":"err","nameLocation":"1155:3:3","nodeType":"VariableDeclaration","scope":2036,"src":"1141:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2016,"name":"string","nodeType":"ElementaryTypeName","src":"1141:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1124:35:3"},"returnParameters":{"id":2019,"nodeType":"ParameterList","parameters":[],"src":"1177:0:3"},"scope":2708,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2049,"nodeType":"FunctionDefinition","src":"1299:99:3","nodes":[],"body":{"id":2048,"nodeType":"Block","src":"1366:32:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":2044,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2038,"src":"1386:1:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2045,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2040,"src":"1389:1:3","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"}],"id":2043,"name":"assertEq0","nodeType":"Identifier","overloadedDeclarations":[1758,1785],"referencedDeclaration":1758,"src":"1376:9:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory,bytes memory)"}},"id":2046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1376:15:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2047,"nodeType":"ExpressionStatement","src":"1376:15:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"1308:8:3","parameters":{"id":2041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2038,"mutability":"mutable","name":"a","nameLocation":"1330:1:3","nodeType":"VariableDeclaration","scope":2049,"src":"1317:14:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2037,"name":"bytes","nodeType":"ElementaryTypeName","src":"1317:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2040,"mutability":"mutable","name":"b","nameLocation":"1346:1:3","nodeType":"VariableDeclaration","scope":2049,"src":"1333:14:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2039,"name":"bytes","nodeType":"ElementaryTypeName","src":"1333:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1316:32:3"},"returnParameters":{"id":2042,"nodeType":"ParameterList","parameters":[],"src":"1366:0:3"},"scope":2708,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2065,"nodeType":"FunctionDefinition","src":"1404:123:3","nodes":[],"body":{"id":2064,"nodeType":"Block","src":"1490:37:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":2059,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2051,"src":"1510:1:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2060,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"1513:1:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2061,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2055,"src":"1516:3:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2058,"name":"assertEq0","nodeType":"Identifier","overloadedDeclarations":[1758,1785],"referencedDeclaration":1785,"src":"1500:9:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,bytes memory,string memory)"}},"id":2062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1500:20:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2063,"nodeType":"ExpressionStatement","src":"1500:20:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"1413:8:3","parameters":{"id":2056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2051,"mutability":"mutable","name":"a","nameLocation":"1435:1:3","nodeType":"VariableDeclaration","scope":2065,"src":"1422:14:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2050,"name":"bytes","nodeType":"ElementaryTypeName","src":"1422:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2053,"mutability":"mutable","name":"b","nameLocation":"1451:1:3","nodeType":"VariableDeclaration","scope":2065,"src":"1438:14:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2052,"name":"bytes","nodeType":"ElementaryTypeName","src":"1438:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2055,"mutability":"mutable","name":"err","nameLocation":"1468:3:3","nodeType":"VariableDeclaration","scope":2065,"src":"1454:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2054,"name":"string","nodeType":"ElementaryTypeName","src":"1454:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1421:51:3"},"returnParameters":{"id":2057,"nodeType":"ParameterList","parameters":[],"src":"1490:0:3"},"scope":2708,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2107,"nodeType":"FunctionDefinition","src":"1533:344:3","nodes":[],"body":{"id":2106,"nodeType":"Block","src":"1608:269:3","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":2077,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2068,"src":"1643:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"expression":{"id":2075,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1632:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1636:6:3","memberName":"encode","nodeType":"MemberAccess","src":"1632:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1632:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2074,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1622:9:3","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1622:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"arguments":[{"id":2083,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2071,"src":"1671:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"expression":{"id":2081,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1660:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1664:6:3","memberName":"encode","nodeType":"MemberAccess","src":"1660:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1660:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2080,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1650:9:3","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1650:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1622:52:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2105,"nodeType":"IfStatement","src":"1618:253:3","trueBody":{"id":2104,"nodeType":"Block","src":"1676:195:3","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e745b5d5d","id":2088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1699:38:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_521d63632bd73b6c06245b96e4e8f1b767ee309607c65899b409e5c9e6c384eb","typeString":"literal_string \"Error: a == b not satisfied [uint[]]\""},"value":"Error: a == b not satisfied [uint[]]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_521d63632bd73b6c06245b96e4e8f1b767ee309607c65899b409e5c9e6c384eb","typeString":"literal_string \"Error: a == b not satisfied [uint[]]\""}],"id":2087,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"1695:3:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":2089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1695:43:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2090,"nodeType":"EmitStatement","src":"1690:48:3"},{"eventCall":{"arguments":[{"hexValue":"20204578706563746564","id":2092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1773:12:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},"value":" Expected"},{"id":2093,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2071,"src":"1787:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":2091,"name":"log_named_array","nodeType":"Identifier","overloadedDeclarations":[1922,1929,1936],"referencedDeclaration":1922,"src":"1757:15:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory,uint256[] memory)"}},"id":2094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1757:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2095,"nodeType":"EmitStatement","src":"1752:37:3"},{"eventCall":{"arguments":[{"hexValue":"2020202041637475616c","id":2097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1824:12:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},"value":" Actual"},{"id":2098,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2068,"src":"1838:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":2096,"name":"log_named_array","nodeType":"Identifier","overloadedDeclarations":[1922,1929,1936],"referencedDeclaration":1922,"src":"1808:15:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory,uint256[] memory)"}},"id":2099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1808:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2100,"nodeType":"EmitStatement","src":"1803:37:3"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2101,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[1950,216],"referencedDeclaration":216,"src":"1854:4:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1854:6:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2103,"nodeType":"ExpressionStatement","src":"1854:6:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"1542:8:3","parameters":{"id":2072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2068,"mutability":"mutable","name":"a","nameLocation":"1568:1:3","nodeType":"VariableDeclaration","scope":2107,"src":"1551:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2066,"name":"uint256","nodeType":"ElementaryTypeName","src":"1551:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2067,"nodeType":"ArrayTypeName","src":"1551:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2071,"mutability":"mutable","name":"b","nameLocation":"1588:1:3","nodeType":"VariableDeclaration","scope":2107,"src":"1571:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2069,"name":"uint256","nodeType":"ElementaryTypeName","src":"1571:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2070,"nodeType":"ArrayTypeName","src":"1571:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1550:40:3"},"returnParameters":{"id":2073,"nodeType":"ParameterList","parameters":[],"src":"1608:0:3"},"scope":2708,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2149,"nodeType":"FunctionDefinition","src":"1883:341:3","nodes":[],"body":{"id":2148,"nodeType":"Block","src":"1956:268:3","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":2119,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2110,"src":"1991:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}],"expression":{"id":2117,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1980:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1984:6:3","memberName":"encode","nodeType":"MemberAccess","src":"1980:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1980:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2116,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1970:9:3","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1970:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"arguments":[{"id":2125,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2113,"src":"2019:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}],"expression":{"id":2123,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2008:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2012:6:3","memberName":"encode","nodeType":"MemberAccess","src":"2008:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2008:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2122,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1998:9:3","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1998:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1970:52:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2147,"nodeType":"IfStatement","src":"1966:252:3","trueBody":{"id":2146,"nodeType":"Block","src":"2024:194:3","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203d3d2062206e6f7420736174697366696564205b696e745b5d5d","id":2130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2047:37:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c8a6638f7c95c9ee18ffcfc37ffe04d6270c2db7493e9b7a14add834054a5f5","typeString":"literal_string \"Error: a == b not satisfied [int[]]\""},"value":"Error: a == b not satisfied [int[]]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6c8a6638f7c95c9ee18ffcfc37ffe04d6270c2db7493e9b7a14add834054a5f5","typeString":"literal_string \"Error: a == b not satisfied [int[]]\""}],"id":2129,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"2043:3:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":2131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2043:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2132,"nodeType":"EmitStatement","src":"2038:47:3"},{"eventCall":{"arguments":[{"hexValue":"20204578706563746564","id":2134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2120:12:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},"value":" Expected"},{"id":2135,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2113,"src":"2134:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}],"id":2133,"name":"log_named_array","nodeType":"Identifier","overloadedDeclarations":[1922,1929,1936],"referencedDeclaration":1929,"src":"2104:15:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory,int256[] memory)"}},"id":2136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2104:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2137,"nodeType":"EmitStatement","src":"2099:37:3"},{"eventCall":{"arguments":[{"hexValue":"2020202041637475616c","id":2139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2171:12:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},"value":" Actual"},{"id":2140,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2110,"src":"2185:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}],"id":2138,"name":"log_named_array","nodeType":"Identifier","overloadedDeclarations":[1922,1929,1936],"referencedDeclaration":1929,"src":"2155:15:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory,int256[] memory)"}},"id":2141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2155:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2142,"nodeType":"EmitStatement","src":"2150:37:3"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2143,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[1950,216],"referencedDeclaration":216,"src":"2201:4:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2201:6:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2145,"nodeType":"ExpressionStatement","src":"2201:6:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"1892:8:3","parameters":{"id":2114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2110,"mutability":"mutable","name":"a","nameLocation":"1917:1:3","nodeType":"VariableDeclaration","scope":2149,"src":"1901:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":2108,"name":"int256","nodeType":"ElementaryTypeName","src":"1901:6:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":2109,"nodeType":"ArrayTypeName","src":"1901:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":2113,"mutability":"mutable","name":"b","nameLocation":"1936:1:3","nodeType":"VariableDeclaration","scope":2149,"src":"1920:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":2111,"name":"int256","nodeType":"ElementaryTypeName","src":"1920:6:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":2112,"nodeType":"ArrayTypeName","src":"1920:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"1900:38:3"},"returnParameters":{"id":2115,"nodeType":"ParameterList","parameters":[],"src":"1956:0:3"},"scope":2708,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2191,"nodeType":"FunctionDefinition","src":"2230:347:3","nodes":[],"body":{"id":2190,"nodeType":"Block","src":"2305:272:3","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":2161,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2152,"src":"2340:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":2159,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2329:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2333:6:3","memberName":"encode","nodeType":"MemberAccess","src":"2329:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2329:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2158,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2319:9:3","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2319:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"arguments":[{"id":2167,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"2368:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":2165,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2357:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2361:6:3","memberName":"encode","nodeType":"MemberAccess","src":"2357:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2357:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2164,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2347:9:3","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2347:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2319:52:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2189,"nodeType":"IfStatement","src":"2315:256:3","trueBody":{"id":2188,"nodeType":"Block","src":"2373:198:3","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203d3d2062206e6f7420736174697366696564205b616464726573735b5d5d","id":2172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2396:41:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_18b6dc04296758144a4e9b271bd3d79214335bb195df00f93d1706586d5041f8","typeString":"literal_string \"Error: a == b not satisfied [address[]]\""},"value":"Error: a == b not satisfied [address[]]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_18b6dc04296758144a4e9b271bd3d79214335bb195df00f93d1706586d5041f8","typeString":"literal_string \"Error: a == b not satisfied [address[]]\""}],"id":2171,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"2392:3:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":2173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2392:46:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2174,"nodeType":"EmitStatement","src":"2387:51:3"},{"eventCall":{"arguments":[{"hexValue":"20204578706563746564","id":2176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2473:12:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},"value":" Expected"},{"id":2177,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"2487:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":2175,"name":"log_named_array","nodeType":"Identifier","overloadedDeclarations":[1922,1929,1936],"referencedDeclaration":1936,"src":"2457:15:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory,address[] memory)"}},"id":2178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2457:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2179,"nodeType":"EmitStatement","src":"2452:37:3"},{"eventCall":{"arguments":[{"hexValue":"2020202041637475616c","id":2181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2524:12:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},"value":" Actual"},{"id":2182,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2152,"src":"2538:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":2180,"name":"log_named_array","nodeType":"Identifier","overloadedDeclarations":[1922,1929,1936],"referencedDeclaration":1936,"src":"2508:15:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory,address[] memory)"}},"id":2183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2508:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2184,"nodeType":"EmitStatement","src":"2503:37:3"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2185,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[1950,216],"referencedDeclaration":216,"src":"2554:4:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2554:6:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2187,"nodeType":"ExpressionStatement","src":"2554:6:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"2239:8:3","parameters":{"id":2156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2152,"mutability":"mutable","name":"a","nameLocation":"2265:1:3","nodeType":"VariableDeclaration","scope":2191,"src":"2248:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2150,"name":"address","nodeType":"ElementaryTypeName","src":"2248:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2151,"nodeType":"ArrayTypeName","src":"2248:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2155,"mutability":"mutable","name":"b","nameLocation":"2285:1:3","nodeType":"VariableDeclaration","scope":2191,"src":"2268:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2153,"name":"address","nodeType":"ElementaryTypeName","src":"2268:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2154,"nodeType":"ArrayTypeName","src":"2268:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2247:40:3"},"returnParameters":{"id":2157,"nodeType":"ParameterList","parameters":[],"src":"2305:0:3"},"scope":2708,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2228,"nodeType":"FunctionDefinition","src":"2583:256:3","nodes":[],"body":{"id":2227,"nodeType":"Block","src":"2677:162:3","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":2205,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2194,"src":"2712:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"expression":{"id":2203,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2701:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2705:6:3","memberName":"encode","nodeType":"MemberAccess","src":"2701:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2701:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2202,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2691:9:3","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2691:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"arguments":[{"id":2211,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"2740:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"expression":{"id":2209,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2729:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2210,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2733:6:3","memberName":"encode","nodeType":"MemberAccess","src":"2729:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2729:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2208,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2719:9:3","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2719:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2691:52:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2226,"nodeType":"IfStatement","src":"2687:146:3","trueBody":{"id":2225,"nodeType":"Block","src":"2745:88:3","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":2216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2781:7:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":2217,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2199,"src":"2790:3:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2215,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"2764:16:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":2218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2764:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2219,"nodeType":"EmitStatement","src":"2759:35:3"},{"expression":{"arguments":[{"id":2221,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2194,"src":"2817:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":2222,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"2820:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":2220,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":2107,"src":"2808:8:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (uint256[] memory,uint256[] memory)"}},"id":2223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2808:14:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2224,"nodeType":"ExpressionStatement","src":"2808:14:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"2592:8:3","parameters":{"id":2200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2194,"mutability":"mutable","name":"a","nameLocation":"2618:1:3","nodeType":"VariableDeclaration","scope":2228,"src":"2601:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2192,"name":"uint256","nodeType":"ElementaryTypeName","src":"2601:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2193,"nodeType":"ArrayTypeName","src":"2601:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2197,"mutability":"mutable","name":"b","nameLocation":"2638:1:3","nodeType":"VariableDeclaration","scope":2228,"src":"2621:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2195,"name":"uint256","nodeType":"ElementaryTypeName","src":"2621:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2196,"nodeType":"ArrayTypeName","src":"2621:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2199,"mutability":"mutable","name":"err","nameLocation":"2655:3:3","nodeType":"VariableDeclaration","scope":2228,"src":"2641:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2198,"name":"string","nodeType":"ElementaryTypeName","src":"2641:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2600:59:3"},"returnParameters":{"id":2201,"nodeType":"ParameterList","parameters":[],"src":"2677:0:3"},"scope":2708,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2265,"nodeType":"FunctionDefinition","src":"2845:254:3","nodes":[],"body":{"id":2264,"nodeType":"Block","src":"2937:162:3","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":2242,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2231,"src":"2972:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}],"expression":{"id":2240,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2961:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2965:6:3","memberName":"encode","nodeType":"MemberAccess","src":"2961:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2961:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2239,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2951:9:3","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2951:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"arguments":[{"id":2248,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2234,"src":"3000:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}],"expression":{"id":2246,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2989:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2993:6:3","memberName":"encode","nodeType":"MemberAccess","src":"2989:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2989:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2245,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2979:9:3","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2979:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2951:52:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2263,"nodeType":"IfStatement","src":"2947:146:3","trueBody":{"id":2262,"nodeType":"Block","src":"3005:88:3","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":2253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3041:7:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":2254,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2236,"src":"3050:3:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2252,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"3024:16:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":2255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3024:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2256,"nodeType":"EmitStatement","src":"3019:35:3"},{"expression":{"arguments":[{"id":2258,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2231,"src":"3077:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},{"id":2259,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2234,"src":"3080:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"},{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}],"id":2257,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":2149,"src":"3068:8:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_int256_$dyn_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$returns$__$","typeString":"function (int256[] memory,int256[] memory)"}},"id":2260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3068:14:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2261,"nodeType":"ExpressionStatement","src":"3068:14:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"2854:8:3","parameters":{"id":2237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2231,"mutability":"mutable","name":"a","nameLocation":"2879:1:3","nodeType":"VariableDeclaration","scope":2265,"src":"2863:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":2229,"name":"int256","nodeType":"ElementaryTypeName","src":"2863:6:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":2230,"nodeType":"ArrayTypeName","src":"2863:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":2234,"mutability":"mutable","name":"b","nameLocation":"2898:1:3","nodeType":"VariableDeclaration","scope":2265,"src":"2882:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":2232,"name":"int256","nodeType":"ElementaryTypeName","src":"2882:6:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":2233,"nodeType":"ArrayTypeName","src":"2882:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":2236,"mutability":"mutable","name":"err","nameLocation":"2915:3:3","nodeType":"VariableDeclaration","scope":2265,"src":"2901:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2235,"name":"string","nodeType":"ElementaryTypeName","src":"2901:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2862:57:3"},"returnParameters":{"id":2238,"nodeType":"ParameterList","parameters":[],"src":"2937:0:3"},"scope":2708,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2302,"nodeType":"FunctionDefinition","src":"3105:256:3","nodes":[],"body":{"id":2301,"nodeType":"Block","src":"3199:162:3","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":2279,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2268,"src":"3234:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":2277,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3223:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3227:6:3","memberName":"encode","nodeType":"MemberAccess","src":"3223:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3223:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2276,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3213:9:3","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3213:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"arguments":[{"id":2285,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2271,"src":"3262:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":2283,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3251:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3255:6:3","memberName":"encode","nodeType":"MemberAccess","src":"3251:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3251:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2282,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3241:9:3","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3241:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3213:52:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2300,"nodeType":"IfStatement","src":"3209:146:3","trueBody":{"id":2299,"nodeType":"Block","src":"3267:88:3","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":2290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3303:7:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":2291,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2273,"src":"3312:3:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2289,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"3286:16:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":2292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3286:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2293,"nodeType":"EmitStatement","src":"3281:35:3"},{"expression":{"arguments":[{"id":2295,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2268,"src":"3339:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":2296,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2271,"src":"3342:1:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":2294,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":2191,"src":"3330:8:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,address[] memory)"}},"id":2297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3330:14:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2298,"nodeType":"ExpressionStatement","src":"3330:14:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"3114:8:3","parameters":{"id":2274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2268,"mutability":"mutable","name":"a","nameLocation":"3140:1:3","nodeType":"VariableDeclaration","scope":2302,"src":"3123:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2266,"name":"address","nodeType":"ElementaryTypeName","src":"3123:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2267,"nodeType":"ArrayTypeName","src":"3123:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2271,"mutability":"mutable","name":"b","nameLocation":"3160:1:3","nodeType":"VariableDeclaration","scope":2302,"src":"3143:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2269,"name":"address","nodeType":"ElementaryTypeName","src":"3143:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2270,"nodeType":"ArrayTypeName","src":"3143:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2273,"mutability":"mutable","name":"err","nameLocation":"3177:3:3","nodeType":"VariableDeclaration","scope":2302,"src":"3163:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2272,"name":"string","nodeType":"ElementaryTypeName","src":"3163:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3122:59:3"},"returnParameters":{"id":2275,"nodeType":"ParameterList","parameters":[],"src":"3199:0:3"},"scope":2708,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2321,"nodeType":"FunctionDefinition","src":"3388:110:3","nodes":[],"body":{"id":2320,"nodeType":"Block","src":"3449:49:3","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":2312,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"3476:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2311,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3468:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2310,"name":"uint256","nodeType":"ElementaryTypeName","src":"3468:7:3","typeDescriptions":{}}},"id":2313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3468:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":2316,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2306,"src":"3488:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3480:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2314,"name":"uint256","nodeType":"ElementaryTypeName","src":"3480:7:3","typeDescriptions":{}}},"id":2317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3480:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2309,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"3459:8:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":2318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3459:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2319,"nodeType":"ExpressionStatement","src":"3459:32:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEqUint","nameLocation":"3397:12:3","parameters":{"id":2307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2304,"mutability":"mutable","name":"a","nameLocation":"3418:1:3","nodeType":"VariableDeclaration","scope":2321,"src":"3410:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2303,"name":"uint256","nodeType":"ElementaryTypeName","src":"3410:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2306,"mutability":"mutable","name":"b","nameLocation":"3429:1:3","nodeType":"VariableDeclaration","scope":2321,"src":"3421:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2305,"name":"uint256","nodeType":"ElementaryTypeName","src":"3421:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3409:22:3"},"returnParameters":{"id":2308,"nodeType":"ParameterList","parameters":[],"src":"3449:0:3"},"scope":2708,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2371,"nodeType":"FunctionDefinition","src":"3504:470:3","nodes":[],"body":{"id":2370,"nodeType":"Block","src":"3588:386:3","nodes":[],"statements":[{"assignments":[2331],"declarations":[{"constant":false,"id":2331,"mutability":"mutable","name":"delta","nameLocation":"3606:5:3","nodeType":"VariableDeclaration","scope":2370,"src":"3598:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2330,"name":"uint256","nodeType":"ElementaryTypeName","src":"3598:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2337,"initialValue":{"arguments":[{"id":2334,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2323,"src":"3628:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2335,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2325,"src":"3631:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2332,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6056,"src":"3614:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$6056_$","typeString":"type(library stdMath)"}},"id":2333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3622:5:3","memberName":"delta","nodeType":"MemberAccess","referencedDeclaration":5967,"src":"3614:13:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3614:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3598:35:3"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2338,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2331,"src":"3648:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2339,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2327,"src":"3656:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3648:16:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2369,"nodeType":"IfStatement","src":"3644:324:3","trueBody":{"id":2368,"nodeType":"Block","src":"3666:302:3","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061207e3d2062206e6f7420736174697366696564205b75696e745d","id":2342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3689:36:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_b3cfa1421f120a399b6064fcc8d5188a4e28bcc717972b37d8e8a5e5cc07c7fe","typeString":"literal_string \"Error: a ~= b not satisfied [uint]\""},"value":"Error: a ~= b not satisfied [uint]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b3cfa1421f120a399b6064fcc8d5188a4e28bcc717972b37d8e8a5e5cc07c7fe","typeString":"literal_string \"Error: a ~= b not satisfied [uint]\""}],"id":2341,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"3685:3:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":2343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3685:41:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2344,"nodeType":"EmitStatement","src":"3680:46:3"},{"eventCall":{"arguments":[{"hexValue":"20204578706563746564","id":2346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3760:12:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},"value":" Expected"},{"id":2347,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2325,"src":"3774:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2345,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"3745:14:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":2348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3745:31:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2349,"nodeType":"EmitStatement","src":"3740:36:3"},{"eventCall":{"arguments":[{"hexValue":"2020202041637475616c","id":2351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3810:12:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},"value":" Actual"},{"id":2352,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2323,"src":"3824:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2350,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"3795:14:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":2353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3795:31:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2354,"nodeType":"EmitStatement","src":"3790:36:3"},{"eventCall":{"arguments":[{"hexValue":"204d61782044656c7461","id":2356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3860:12:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5","typeString":"literal_string \" Max Delta\""},"value":" Max Delta"},{"id":2357,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2327,"src":"3874:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5","typeString":"literal_string \" Max Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2355,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"3845:14:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":2358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3845:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2359,"nodeType":"EmitStatement","src":"3840:43:3"},{"eventCall":{"arguments":[{"hexValue":"202020202044656c7461","id":2361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3917:12:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f","typeString":"literal_string \" Delta\""},"value":" Delta"},{"id":2362,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2331,"src":"3931:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f","typeString":"literal_string \" Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2360,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"3902:14:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":2363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3902:35:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2364,"nodeType":"EmitStatement","src":"3897:40:3"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2365,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[1950,216],"referencedDeclaration":216,"src":"3951:4:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3951:6:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2367,"nodeType":"ExpressionStatement","src":"3951:6:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"3513:17:3","parameters":{"id":2328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2323,"mutability":"mutable","name":"a","nameLocation":"3539:1:3","nodeType":"VariableDeclaration","scope":2371,"src":"3531:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2322,"name":"uint256","nodeType":"ElementaryTypeName","src":"3531:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2325,"mutability":"mutable","name":"b","nameLocation":"3550:1:3","nodeType":"VariableDeclaration","scope":2371,"src":"3542:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2324,"name":"uint256","nodeType":"ElementaryTypeName","src":"3542:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2327,"mutability":"mutable","name":"maxDelta","nameLocation":"3561:8:3","nodeType":"VariableDeclaration","scope":2371,"src":"3553:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2326,"name":"uint256","nodeType":"ElementaryTypeName","src":"3553:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3530:40:3"},"returnParameters":{"id":2329,"nodeType":"ParameterList","parameters":[],"src":"3588:0:3"},"scope":2708,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2407,"nodeType":"FunctionDefinition","src":"3980:294:3","nodes":[],"body":{"id":2406,"nodeType":"Block","src":"4083:191:3","nodes":[],"statements":[{"assignments":[2383],"declarations":[{"constant":false,"id":2383,"mutability":"mutable","name":"delta","nameLocation":"4101:5:3","nodeType":"VariableDeclaration","scope":2406,"src":"4093:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2382,"name":"uint256","nodeType":"ElementaryTypeName","src":"4093:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2389,"initialValue":{"arguments":[{"id":2386,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"4123:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2387,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2375,"src":"4126:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2384,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6056,"src":"4109:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$6056_$","typeString":"type(library stdMath)"}},"id":2385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4117:5:3","memberName":"delta","nodeType":"MemberAccess","referencedDeclaration":5967,"src":"4109:13:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4109:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4093:35:3"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2390,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2383,"src":"4143:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2391,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2377,"src":"4151:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4143:16:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2405,"nodeType":"IfStatement","src":"4139:129:3","trueBody":{"id":2404,"nodeType":"Block","src":"4161:107:3","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":2394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4197:7:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":2395,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2379,"src":"4206:3:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2393,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"4180:16:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":2396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4180:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2397,"nodeType":"EmitStatement","src":"4175:35:3"},{"expression":{"arguments":[{"id":2399,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"4242:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2400,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2375,"src":"4245:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2401,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2377,"src":"4248:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2398,"name":"assertApproxEqAbs","nodeType":"Identifier","overloadedDeclarations":[2371,2407,2457,2493],"referencedDeclaration":2371,"src":"4224:17:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":2402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4224:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2403,"nodeType":"ExpressionStatement","src":"4224:33:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"3989:17:3","parameters":{"id":2380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2373,"mutability":"mutable","name":"a","nameLocation":"4015:1:3","nodeType":"VariableDeclaration","scope":2407,"src":"4007:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2372,"name":"uint256","nodeType":"ElementaryTypeName","src":"4007:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2375,"mutability":"mutable","name":"b","nameLocation":"4026:1:3","nodeType":"VariableDeclaration","scope":2407,"src":"4018:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2374,"name":"uint256","nodeType":"ElementaryTypeName","src":"4018:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2377,"mutability":"mutable","name":"maxDelta","nameLocation":"4037:8:3","nodeType":"VariableDeclaration","scope":2407,"src":"4029:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2376,"name":"uint256","nodeType":"ElementaryTypeName","src":"4029:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2379,"mutability":"mutable","name":"err","nameLocation":"4061:3:3","nodeType":"VariableDeclaration","scope":2407,"src":"4047:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2378,"name":"string","nodeType":"ElementaryTypeName","src":"4047:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4006:59:3"},"returnParameters":{"id":2381,"nodeType":"ParameterList","parameters":[],"src":"4083:0:3"},"scope":2708,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2457,"nodeType":"FunctionDefinition","src":"4280:465:3","nodes":[],"body":{"id":2456,"nodeType":"Block","src":"4362:383:3","nodes":[],"statements":[{"assignments":[2417],"declarations":[{"constant":false,"id":2417,"mutability":"mutable","name":"delta","nameLocation":"4380:5:3","nodeType":"VariableDeclaration","scope":2456,"src":"4372:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2416,"name":"uint256","nodeType":"ElementaryTypeName","src":"4372:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2423,"initialValue":{"arguments":[{"id":2420,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2409,"src":"4402:1:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2421,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2411,"src":"4405:1:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":2418,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6056,"src":"4388:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$6056_$","typeString":"type(library stdMath)"}},"id":2419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4396:5:3","memberName":"delta","nodeType":"MemberAccess","referencedDeclaration":6003,"src":"4388:13:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$","typeString":"function (int256,int256) pure returns (uint256)"}},"id":2422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4388:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4372:35:3"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2424,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2417,"src":"4422:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2425,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2413,"src":"4430:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4422:16:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2455,"nodeType":"IfStatement","src":"4418:321:3","trueBody":{"id":2454,"nodeType":"Block","src":"4440:299:3","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061207e3d2062206e6f7420736174697366696564205b696e745d","id":2428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4463:35:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_11d61c8cdd58caffa5994831eb66eb6db7a7b4d13b2c9d187ffbe992d75f810d","typeString":"literal_string \"Error: a ~= b not satisfied [int]\""},"value":"Error: a ~= b not satisfied [int]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_11d61c8cdd58caffa5994831eb66eb6db7a7b4d13b2c9d187ffbe992d75f810d","typeString":"literal_string \"Error: a ~= b not satisfied [int]\""}],"id":2427,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"4459:3:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":2429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4459:40:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2430,"nodeType":"EmitStatement","src":"4454:45:3"},{"eventCall":{"arguments":[{"hexValue":"20204578706563746564","id":2432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4532:12:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},"value":" Expected"},{"id":2433,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2411,"src":"4546:1:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2431,"name":"log_named_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"4518:13:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$","typeString":"function (string memory,int256)"}},"id":2434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4518:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2435,"nodeType":"EmitStatement","src":"4513:35:3"},{"eventCall":{"arguments":[{"hexValue":"2020202041637475616c","id":2437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4581:12:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},"value":" Actual"},{"id":2438,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2409,"src":"4595:1:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2436,"name":"log_named_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"4567:13:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$","typeString":"function (string memory,int256)"}},"id":2439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4567:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2440,"nodeType":"EmitStatement","src":"4562:35:3"},{"eventCall":{"arguments":[{"hexValue":"204d61782044656c7461","id":2442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4631:12:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5","typeString":"literal_string \" Max Delta\""},"value":" Max Delta"},{"id":2443,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2413,"src":"4645:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5","typeString":"literal_string \" Max Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2441,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"4616:14:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":2444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4616:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2445,"nodeType":"EmitStatement","src":"4611:43:3"},{"eventCall":{"arguments":[{"hexValue":"202020202044656c7461","id":2447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4688:12:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f","typeString":"literal_string \" Delta\""},"value":" Delta"},{"id":2448,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2417,"src":"4702:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f","typeString":"literal_string \" Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2446,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"4673:14:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":2449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4673:35:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2450,"nodeType":"EmitStatement","src":"4668:40:3"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2451,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[1950,216],"referencedDeclaration":216,"src":"4722:4:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4722:6:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2453,"nodeType":"ExpressionStatement","src":"4722:6:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"4289:17:3","parameters":{"id":2414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2409,"mutability":"mutable","name":"a","nameLocation":"4314:1:3","nodeType":"VariableDeclaration","scope":2457,"src":"4307:8:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2408,"name":"int256","nodeType":"ElementaryTypeName","src":"4307:6:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2411,"mutability":"mutable","name":"b","nameLocation":"4324:1:3","nodeType":"VariableDeclaration","scope":2457,"src":"4317:8:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2410,"name":"int256","nodeType":"ElementaryTypeName","src":"4317:6:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2413,"mutability":"mutable","name":"maxDelta","nameLocation":"4335:8:3","nodeType":"VariableDeclaration","scope":2457,"src":"4327:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2412,"name":"uint256","nodeType":"ElementaryTypeName","src":"4327:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4306:38:3"},"returnParameters":{"id":2415,"nodeType":"ParameterList","parameters":[],"src":"4362:0:3"},"scope":2708,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2493,"nodeType":"FunctionDefinition","src":"4751:292:3","nodes":[],"body":{"id":2492,"nodeType":"Block","src":"4852:191:3","nodes":[],"statements":[{"assignments":[2469],"declarations":[{"constant":false,"id":2469,"mutability":"mutable","name":"delta","nameLocation":"4870:5:3","nodeType":"VariableDeclaration","scope":2492,"src":"4862:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2468,"name":"uint256","nodeType":"ElementaryTypeName","src":"4862:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2475,"initialValue":{"arguments":[{"id":2472,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2459,"src":"4892:1:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2473,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2461,"src":"4895:1:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":2470,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6056,"src":"4878:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$6056_$","typeString":"type(library stdMath)"}},"id":2471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4886:5:3","memberName":"delta","nodeType":"MemberAccess","referencedDeclaration":6003,"src":"4878:13:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$","typeString":"function (int256,int256) pure returns (uint256)"}},"id":2474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4878:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4862:35:3"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2476,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2469,"src":"4912:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2477,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2463,"src":"4920:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4912:16:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2491,"nodeType":"IfStatement","src":"4908:129:3","trueBody":{"id":2490,"nodeType":"Block","src":"4930:107:3","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":2480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4966:7:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":2481,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2465,"src":"4975:3:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2479,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"4949:16:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":2482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4949:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2483,"nodeType":"EmitStatement","src":"4944:35:3"},{"expression":{"arguments":[{"id":2485,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2459,"src":"5011:1:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2486,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2461,"src":"5014:1:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2487,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2463,"src":"5017:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2484,"name":"assertApproxEqAbs","nodeType":"Identifier","overloadedDeclarations":[2371,2407,2457,2493],"referencedDeclaration":2457,"src":"4993:17:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (int256,int256,uint256)"}},"id":2488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4993:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2489,"nodeType":"ExpressionStatement","src":"4993:33:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"4760:17:3","parameters":{"id":2466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2459,"mutability":"mutable","name":"a","nameLocation":"4785:1:3","nodeType":"VariableDeclaration","scope":2493,"src":"4778:8:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2458,"name":"int256","nodeType":"ElementaryTypeName","src":"4778:6:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2461,"mutability":"mutable","name":"b","nameLocation":"4795:1:3","nodeType":"VariableDeclaration","scope":2493,"src":"4788:8:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2460,"name":"int256","nodeType":"ElementaryTypeName","src":"4788:6:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2463,"mutability":"mutable","name":"maxDelta","nameLocation":"4806:8:3","nodeType":"VariableDeclaration","scope":2493,"src":"4798:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2462,"name":"uint256","nodeType":"ElementaryTypeName","src":"4798:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2465,"mutability":"mutable","name":"err","nameLocation":"4830:3:3","nodeType":"VariableDeclaration","scope":2493,"src":"4816:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2464,"name":"string","nodeType":"ElementaryTypeName","src":"4816:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4777:57:3"},"returnParameters":{"id":2467,"nodeType":"ParameterList","parameters":[],"src":"4852:0:3"},"scope":2708,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2554,"nodeType":"FunctionDefinition","src":"5049:726:3","nodes":[],"body":{"id":2553,"nodeType":"Block","src":"5226:549:3","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2502,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2497,"src":"5240:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5245:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5240:6:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2510,"nodeType":"IfStatement","src":"5236:33:3","trueBody":{"expression":{"arguments":[{"id":2506,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2495,"src":"5264:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2507,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2497,"src":"5267:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2505,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"5255:8:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":2508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5255:14:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"functionReturnParameters":2501,"id":2509,"nodeType":"Return","src":"5248:21:3"}},{"assignments":[2512],"declarations":[{"constant":false,"id":2512,"mutability":"mutable","name":"percentDelta","nameLocation":"5333:12:3","nodeType":"VariableDeclaration","scope":2553,"src":"5325:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2511,"name":"uint256","nodeType":"ElementaryTypeName","src":"5325:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2518,"initialValue":{"arguments":[{"id":2515,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2495,"src":"5369:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2516,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2497,"src":"5372:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2513,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6056,"src":"5348:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$6056_$","typeString":"type(library stdMath)"}},"id":2514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5356:12:3","memberName":"percentDelta","nodeType":"MemberAccess","referencedDeclaration":6026,"src":"5348:20:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5348:26:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5325:49:3"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2519,"name":"percentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2512,"src":"5389:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2520,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2499,"src":"5404:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5389:30:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2552,"nodeType":"IfStatement","src":"5385:384:3","trueBody":{"id":2551,"nodeType":"Block","src":"5421:348:3","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061207e3d2062206e6f7420736174697366696564205b75696e745d","id":2523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5444:36:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_b3cfa1421f120a399b6064fcc8d5188a4e28bcc717972b37d8e8a5e5cc07c7fe","typeString":"literal_string \"Error: a ~= b not satisfied [uint]\""},"value":"Error: a ~= b not satisfied [uint]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b3cfa1421f120a399b6064fcc8d5188a4e28bcc717972b37d8e8a5e5cc07c7fe","typeString":"literal_string \"Error: a ~= b not satisfied [uint]\""}],"id":2522,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"5440:3:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":2524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5440:41:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2525,"nodeType":"EmitStatement","src":"5435:46:3"},{"eventCall":{"arguments":[{"hexValue":"202020204578706563746564","id":2527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5515:14:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e33bb6058f2c6cccd03674115e231a9d0cfe482a7efa638b81035808613e7d3","typeString":"literal_string \" Expected\""},"value":" Expected"},{"id":2528,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2497,"src":"5531:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0e33bb6058f2c6cccd03674115e231a9d0cfe482a7efa638b81035808613e7d3","typeString":"literal_string \" Expected\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2526,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"5500:14:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":2529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5500:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2530,"nodeType":"EmitStatement","src":"5495:38:3"},{"eventCall":{"arguments":[{"hexValue":"20202020202041637475616c","id":2532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5567:14:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c86931dadd9b7dcb5fe0132c9f180edb774e714bd6d32d0fc56d5f9258e30e9","typeString":"literal_string \" Actual\""},"value":" Actual"},{"id":2533,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2495,"src":"5583:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c86931dadd9b7dcb5fe0132c9f180edb774e714bd6d32d0fc56d5f9258e30e9","typeString":"literal_string \" Actual\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2531,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"5552:14:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":2534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5552:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2535,"nodeType":"EmitStatement","src":"5547:38:3"},{"eventCall":{"arguments":[{"hexValue":"204d617820252044656c7461","id":2537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5627:14:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d","typeString":"literal_string \" Max % Delta\""},"value":" Max % Delta"},{"id":2538,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2499,"src":"5643:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3138","id":2539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5660:2:3","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d","typeString":"literal_string \" Max % Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":2536,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61,"src":"5604:22:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":2540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5604:59:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2541,"nodeType":"EmitStatement","src":"5599:64:3"},{"eventCall":{"arguments":[{"hexValue":"2020202020252044656c7461","id":2543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5705:14:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7","typeString":"literal_string \" % Delta\""},"value":" % Delta"},{"id":2544,"name":"percentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2512,"src":"5721:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3138","id":2545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5735:2:3","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7","typeString":"literal_string \" % Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":2542,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61,"src":"5682:22:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":2546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5682:56:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2547,"nodeType":"EmitStatement","src":"5677:61:3"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2548,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[1950,216],"referencedDeclaration":216,"src":"5752:4:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5752:6:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2550,"nodeType":"ExpressionStatement","src":"5752:6:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"5058:17:3","parameters":{"id":2500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2495,"mutability":"mutable","name":"a","nameLocation":"5093:1:3","nodeType":"VariableDeclaration","scope":2554,"src":"5085:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2494,"name":"uint256","nodeType":"ElementaryTypeName","src":"5085:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2497,"mutability":"mutable","name":"b","nameLocation":"5112:1:3","nodeType":"VariableDeclaration","scope":2554,"src":"5104:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2496,"name":"uint256","nodeType":"ElementaryTypeName","src":"5104:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2499,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"5131:15:3","nodeType":"VariableDeclaration","scope":2554,"src":"5123:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2498,"name":"uint256","nodeType":"ElementaryTypeName","src":"5123:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5075:133:3"},"returnParameters":{"id":2501,"nodeType":"ParameterList","parameters":[],"src":"5226:0:3"},"scope":2708,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2600,"nodeType":"FunctionDefinition","src":"5781:524:3","nodes":[],"body":{"id":2599,"nodeType":"Block","src":"5985:320:3","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2565,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2558,"src":"5999:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6004:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5999:6:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2574,"nodeType":"IfStatement","src":"5995:38:3","trueBody":{"expression":{"arguments":[{"id":2569,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2556,"src":"6023:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2570,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2558,"src":"6026:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2571,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2562,"src":"6029:3:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2568,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":539,"src":"6014:8:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,string memory)"}},"id":2572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6014:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"functionReturnParameters":2564,"id":2573,"nodeType":"Return","src":"6007:26:3"}},{"assignments":[2576],"declarations":[{"constant":false,"id":2576,"mutability":"mutable","name":"percentDelta","nameLocation":"6097:12:3","nodeType":"VariableDeclaration","scope":2599,"src":"6089:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2575,"name":"uint256","nodeType":"ElementaryTypeName","src":"6089:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2582,"initialValue":{"arguments":[{"id":2579,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2556,"src":"6133:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2580,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2558,"src":"6136:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2577,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6056,"src":"6112:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$6056_$","typeString":"type(library stdMath)"}},"id":2578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6120:12:3","memberName":"percentDelta","nodeType":"MemberAccess","referencedDeclaration":6026,"src":"6112:20:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6112:26:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6089:49:3"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2583,"name":"percentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2576,"src":"6153:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2584,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2560,"src":"6168:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6153:30:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2598,"nodeType":"IfStatement","src":"6149:150:3","trueBody":{"id":2597,"nodeType":"Block","src":"6185:114:3","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":2587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6221:7:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":2588,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2562,"src":"6230:3:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2586,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"6204:16:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":2589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6204:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2590,"nodeType":"EmitStatement","src":"6199:35:3"},{"expression":{"arguments":[{"id":2592,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2556,"src":"6266:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2593,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2558,"src":"6269:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2594,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2560,"src":"6272:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2591,"name":"assertApproxEqRel","nodeType":"Identifier","overloadedDeclarations":[2554,2600,2661,2707],"referencedDeclaration":2554,"src":"6248:17:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":2595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6248:40:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2596,"nodeType":"ExpressionStatement","src":"6248:40:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"5790:17:3","parameters":{"id":2563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2556,"mutability":"mutable","name":"a","nameLocation":"5825:1:3","nodeType":"VariableDeclaration","scope":2600,"src":"5817:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2555,"name":"uint256","nodeType":"ElementaryTypeName","src":"5817:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2558,"mutability":"mutable","name":"b","nameLocation":"5844:1:3","nodeType":"VariableDeclaration","scope":2600,"src":"5836:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2557,"name":"uint256","nodeType":"ElementaryTypeName","src":"5836:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2560,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"5863:15:3","nodeType":"VariableDeclaration","scope":2600,"src":"5855:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2559,"name":"uint256","nodeType":"ElementaryTypeName","src":"5855:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2562,"mutability":"mutable","name":"err","nameLocation":"5958:3:3","nodeType":"VariableDeclaration","scope":2600,"src":"5944:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2561,"name":"string","nodeType":"ElementaryTypeName","src":"5944:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5807:160:3"},"returnParameters":{"id":2564,"nodeType":"ParameterList","parameters":[],"src":"5985:0:3"},"scope":2708,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2661,"nodeType":"FunctionDefinition","src":"6311:635:3","nodes":[],"body":{"id":2660,"nodeType":"Block","src":"6400:546:3","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2609,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2604,"src":"6414:1:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6419:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6414:6:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2617,"nodeType":"IfStatement","src":"6410:33:3","trueBody":{"expression":{"arguments":[{"id":2613,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2602,"src":"6438:1:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2614,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2604,"src":"6441:1:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2612,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":459,"src":"6429:8:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$returns$__$","typeString":"function (int256,int256)"}},"id":2615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6429:14:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"functionReturnParameters":2608,"id":2616,"nodeType":"Return","src":"6422:21:3"}},{"assignments":[2619],"declarations":[{"constant":false,"id":2619,"mutability":"mutable","name":"percentDelta","nameLocation":"6507:12:3","nodeType":"VariableDeclaration","scope":2660,"src":"6499:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2618,"name":"uint256","nodeType":"ElementaryTypeName","src":"6499:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2625,"initialValue":{"arguments":[{"id":2622,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2602,"src":"6543:1:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2623,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2604,"src":"6546:1:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":2620,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6056,"src":"6522:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$6056_$","typeString":"type(library stdMath)"}},"id":2621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6530:12:3","memberName":"percentDelta","nodeType":"MemberAccess","referencedDeclaration":6055,"src":"6522:20:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$","typeString":"function (int256,int256) pure returns (uint256)"}},"id":2624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6522:26:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6499:49:3"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2626,"name":"percentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2619,"src":"6563:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2627,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2606,"src":"6578:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6563:30:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2659,"nodeType":"IfStatement","src":"6559:381:3","trueBody":{"id":2658,"nodeType":"Block","src":"6595:345:3","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061207e3d2062206e6f7420736174697366696564205b696e745d","id":2630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6618:35:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_11d61c8cdd58caffa5994831eb66eb6db7a7b4d13b2c9d187ffbe992d75f810d","typeString":"literal_string \"Error: a ~= b not satisfied [int]\""},"value":"Error: a ~= b not satisfied [int]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_11d61c8cdd58caffa5994831eb66eb6db7a7b4d13b2c9d187ffbe992d75f810d","typeString":"literal_string \"Error: a ~= b not satisfied [int]\""}],"id":2629,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"6614:3:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":2631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6614:40:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2632,"nodeType":"EmitStatement","src":"6609:45:3"},{"eventCall":{"arguments":[{"hexValue":"202020204578706563746564","id":2634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6687:14:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e33bb6058f2c6cccd03674115e231a9d0cfe482a7efa638b81035808613e7d3","typeString":"literal_string \" Expected\""},"value":" Expected"},{"id":2635,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2604,"src":"6703:1:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0e33bb6058f2c6cccd03674115e231a9d0cfe482a7efa638b81035808613e7d3","typeString":"literal_string \" Expected\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2633,"name":"log_named_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"6673:13:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$","typeString":"function (string memory,int256)"}},"id":2636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6673:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2637,"nodeType":"EmitStatement","src":"6668:37:3"},{"eventCall":{"arguments":[{"hexValue":"20202020202041637475616c","id":2639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6738:14:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c86931dadd9b7dcb5fe0132c9f180edb774e714bd6d32d0fc56d5f9258e30e9","typeString":"literal_string \" Actual\""},"value":" Actual"},{"id":2640,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2602,"src":"6754:1:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c86931dadd9b7dcb5fe0132c9f180edb774e714bd6d32d0fc56d5f9258e30e9","typeString":"literal_string \" Actual\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2638,"name":"log_named_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"6724:13:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$","typeString":"function (string memory,int256)"}},"id":2641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6724:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2642,"nodeType":"EmitStatement","src":"6719:37:3"},{"eventCall":{"arguments":[{"hexValue":"204d617820252044656c7461","id":2644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6798:14:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d","typeString":"literal_string \" Max % Delta\""},"value":" Max % Delta"},{"id":2645,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2606,"src":"6814:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3138","id":2646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6831:2:3","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d","typeString":"literal_string \" Max % Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":2643,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61,"src":"6775:22:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":2647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6775:59:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2648,"nodeType":"EmitStatement","src":"6770:64:3"},{"eventCall":{"arguments":[{"hexValue":"2020202020252044656c7461","id":2650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6876:14:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7","typeString":"literal_string \" % Delta\""},"value":" % Delta"},{"id":2651,"name":"percentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2619,"src":"6892:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3138","id":2652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6906:2:3","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7","typeString":"literal_string \" % Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":2649,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61,"src":"6853:22:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":2653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6853:56:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2654,"nodeType":"EmitStatement","src":"6848:61:3"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2655,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[1950,216],"referencedDeclaration":216,"src":"6923:4:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6923:6:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2657,"nodeType":"ExpressionStatement","src":"6923:6:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"6320:17:3","parameters":{"id":2607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2602,"mutability":"mutable","name":"a","nameLocation":"6345:1:3","nodeType":"VariableDeclaration","scope":2661,"src":"6338:8:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2601,"name":"int256","nodeType":"ElementaryTypeName","src":"6338:6:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2604,"mutability":"mutable","name":"b","nameLocation":"6355:1:3","nodeType":"VariableDeclaration","scope":2661,"src":"6348:8:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2603,"name":"int256","nodeType":"ElementaryTypeName","src":"6348:6:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2606,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"6366:15:3","nodeType":"VariableDeclaration","scope":2661,"src":"6358:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2605,"name":"uint256","nodeType":"ElementaryTypeName","src":"6358:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6337:45:3"},"returnParameters":{"id":2608,"nodeType":"ParameterList","parameters":[],"src":"6400:0:3"},"scope":2708,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2707,"nodeType":"FunctionDefinition","src":"6952:428:3","nodes":[],"body":{"id":2706,"nodeType":"Block","src":"7060:320:3","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2672,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2665,"src":"7074:1:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7079:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7074:6:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2681,"nodeType":"IfStatement","src":"7070:38:3","trueBody":{"expression":{"arguments":[{"id":2676,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2663,"src":"7098:1:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2677,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2665,"src":"7101:1:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2678,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2669,"src":"7104:3:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2675,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":484,"src":"7089:8:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_string_memory_ptr_$returns$__$","typeString":"function (int256,int256,string memory)"}},"id":2679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7089:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"functionReturnParameters":2671,"id":2680,"nodeType":"Return","src":"7082:26:3"}},{"assignments":[2683],"declarations":[{"constant":false,"id":2683,"mutability":"mutable","name":"percentDelta","nameLocation":"7172:12:3","nodeType":"VariableDeclaration","scope":2706,"src":"7164:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2682,"name":"uint256","nodeType":"ElementaryTypeName","src":"7164:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2689,"initialValue":{"arguments":[{"id":2686,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2663,"src":"7208:1:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2687,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2665,"src":"7211:1:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":2684,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6056,"src":"7187:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$6056_$","typeString":"type(library stdMath)"}},"id":2685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7195:12:3","memberName":"percentDelta","nodeType":"MemberAccess","referencedDeclaration":6055,"src":"7187:20:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$","typeString":"function (int256,int256) pure returns (uint256)"}},"id":2688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7187:26:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7164:49:3"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2690,"name":"percentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2683,"src":"7228:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2691,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2667,"src":"7243:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7228:30:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2705,"nodeType":"IfStatement","src":"7224:150:3","trueBody":{"id":2704,"nodeType":"Block","src":"7260:114:3","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":2694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7296:7:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":2695,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2669,"src":"7305:3:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2693,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"7279:16:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":2696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7279:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2697,"nodeType":"EmitStatement","src":"7274:35:3"},{"expression":{"arguments":[{"id":2699,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2663,"src":"7341:1:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2700,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2665,"src":"7344:1:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2701,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2667,"src":"7347:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2698,"name":"assertApproxEqRel","nodeType":"Identifier","overloadedDeclarations":[2554,2600,2661,2707],"referencedDeclaration":2661,"src":"7323:17:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (int256,int256,uint256)"}},"id":2702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7323:40:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2703,"nodeType":"ExpressionStatement","src":"7323:40:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"6961:17:3","parameters":{"id":2670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2663,"mutability":"mutable","name":"a","nameLocation":"6986:1:3","nodeType":"VariableDeclaration","scope":2707,"src":"6979:8:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2662,"name":"int256","nodeType":"ElementaryTypeName","src":"6979:6:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2665,"mutability":"mutable","name":"b","nameLocation":"6996:1:3","nodeType":"VariableDeclaration","scope":2707,"src":"6989:8:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2664,"name":"int256","nodeType":"ElementaryTypeName","src":"6989:6:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2667,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"7007:15:3","nodeType":"VariableDeclaration","scope":2707,"src":"6999:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2666,"name":"uint256","nodeType":"ElementaryTypeName","src":"6999:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2669,"mutability":"mutable","name":"err","nameLocation":"7038:3:3","nodeType":"VariableDeclaration","scope":2707,"src":"7024:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2668,"name":"string","nodeType":"ElementaryTypeName","src":"7024:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6978:64:3"},"returnParameters":{"id":2671,"nodeType":"ParameterList","parameters":[],"src":"7060:0:3"},"scope":2708,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":1899,"name":"DSTest","nameLocations":["181:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":1786,"src":"181:6:3"},"id":1900,"nodeType":"InheritanceSpecifier","src":"181:6:3"}],"canonicalName":"StdAssertions","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[2708,1786],"name":"StdAssertions","nameLocation":"164:13:3","scope":2709,"usedErrors":[],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"MIT"},"id":3} \ No newline at end of file diff --git a/out/StdChains.sol/StdChains.json b/out/StdChains.sol/StdChains.json deleted file mode 100644 index a574d2be..00000000 --- a/out/StdChains.sol/StdChains.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"StdChains provides information about EVM compatible chains that can be used in scripts/tests. For each chain, the chain's name, chain ID, and a default RPC URL are provided. Chains are identified by their alias, which is the same as the alias in the `[rpc_endpoints]` section of the `foundry.toml` file. For best UX, ensure the alias in the `foundry.toml` file match the alias used in this contract, which can be found as the first argument to the `setChainWithDefaultRpcUrl` call in the `initialize` function. There are two main ways to use this contract: 1. Set a chain with `setChain(string memory chainAlias, Chain memory chain)` 2. Get a chain with `getChain(string memory chainAlias)` or `getChain(uint256 chainId)`. The first time either of those are used, chains are initialized with the default set of RPC URLs. This is done in `initialize`, which uses `setChainWithDefaultRpcUrl`. Defaults are recorded in `defaultRpcUrls`. The `setChain` function is straightforward, and it simply saves off the given chain data. The `getChain` methods use `getChainWithUpdatedRpcUrl` to return a chain. For example, let's say we want to retrieve `mainnet`'s RPC URL: - If you haven't set any mainnet chain info with `setChain` and you haven't specified that chain in `foundry.toml`, the default data and RPC URL will be returned. - If you have set a mainnet RPC URL in `foundry.toml` it will return that, if valid (e.g. if a URL is given or if an environment variable is given and that environment variable exists). Otherwise, the default data is returned. - If you specified data with `setChain` it will return that. Summarizing the above, the prioritization hierarchy is `setChain` -> `foundry.toml` -> defaults.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/forge-std/src/StdChains.sol\":\"StdChains\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/forge-std/src/StdChains.sol":"StdChains"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/forge-std/src/StdChains.sol","id":3245,"exportedSymbols":{"StdChains":[3244],"VmSafe":[9027]},"nodeType":"SourceUnit","src":"32:8898:4","nodes":[{"id":2710,"nodeType":"PragmaDirective","src":"32:31:4","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":2711,"nodeType":"PragmaDirective","src":"65:33:4","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":2713,"nodeType":"ImportDirective","src":"100:32:4","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":3245,"sourceUnit":9353,"symbolAliases":[{"foreign":{"id":2712,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9027,"src":"108:6:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3244,"nodeType":"ContractDefinition","src":"1955:6974:4","nodes":[{"id":2731,"nodeType":"VariableDeclaration","src":"1989:92:4","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"2013:2:4","scope":3244,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"},"typeName":{"id":2716,"nodeType":"UserDefinedTypeName","pathNode":{"id":2715,"name":"VmSafe","nameLocations":["1989:6:4"],"nodeType":"IdentifierPath","referencedDeclaration":9027,"src":"1989:6:4"},"referencedDeclaration":9027,"src":"1989:6:4","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":2725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2059:17:4","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":2724,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2049:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2049:28:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2041:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2722,"name":"uint256","nodeType":"ElementaryTypeName","src":"2041:7:4","typeDescriptions":{}}},"id":2727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2041:37:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2721,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2033:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":2720,"name":"uint160","nodeType":"ElementaryTypeName","src":"2033:7:4","typeDescriptions":{}}},"id":2728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2033:46:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":2719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2025:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2718,"name":"address","nodeType":"ElementaryTypeName","src":"2025:7:4","typeDescriptions":{}}},"id":2729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2025:55:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2717,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9027,"src":"2018:6:4","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$9027_$","typeString":"type(contract VmSafe)"}},"id":2730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2018:63:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"visibility":"private"},{"id":2733,"nodeType":"VariableDeclaration","src":"2088:24:4","nodes":[],"constant":false,"mutability":"mutable","name":"initialized","nameLocation":"2101:11:4","scope":3244,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2732,"name":"bool","nodeType":"ElementaryTypeName","src":"2088:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":2740,"nodeType":"StructDefinition","src":"2119:495:4","nodes":[],"canonicalName":"StdChains.Chain","members":[{"constant":false,"id":2735,"mutability":"mutable","name":"name","nameLocation":"2176:4:4","nodeType":"VariableDeclaration","scope":2740,"src":"2169:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2734,"name":"string","nodeType":"ElementaryTypeName","src":"2169:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2737,"mutability":"mutable","name":"chainId","nameLocation":"2231:7:4","nodeType":"VariableDeclaration","scope":2740,"src":"2223:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2736,"name":"uint256","nodeType":"ElementaryTypeName","src":"2223:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2739,"mutability":"mutable","name":"rpcUrl","nameLocation":"2601:6:4","nodeType":"VariableDeclaration","scope":2740,"src":"2594:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2738,"name":"string","nodeType":"ElementaryTypeName","src":"2594:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"Chain","nameLocation":"2126:5:4","scope":3244,"visibility":"public"},{"id":2745,"nodeType":"VariableDeclaration","src":"2718:39:4","nodes":[],"constant":false,"mutability":"mutable","name":"chains","nameLocation":"2751:6:4","scope":3244,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Chain_$2740_storage_$","typeString":"mapping(string => struct StdChains.Chain)"},"typeName":{"id":2744,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":2741,"name":"string","nodeType":"ElementaryTypeName","src":"2726:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"nodeType":"Mapping","src":"2718:24:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Chain_$2740_storage_$","typeString":"mapping(string => struct StdChains.Chain)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":2743,"nodeType":"UserDefinedTypeName","pathNode":{"id":2742,"name":"Chain","nameLocations":["2736:5:4"],"nodeType":"IdentifierPath","referencedDeclaration":2740,"src":"2736:5:4"},"referencedDeclaration":2740,"src":"2736:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_storage_ptr","typeString":"struct StdChains.Chain"}}},"visibility":"private"},{"id":2749,"nodeType":"VariableDeclaration","src":"2823:48:4","nodes":[],"constant":false,"mutability":"mutable","name":"defaultRpcUrls","nameLocation":"2857:14:4","scope":3244,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_string_storage_$","typeString":"mapping(string => string)"},"typeName":{"id":2748,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":2746,"name":"string","nodeType":"ElementaryTypeName","src":"2831:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"nodeType":"Mapping","src":"2823:25:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_string_storage_$","typeString":"mapping(string => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":2747,"name":"string","nodeType":"ElementaryTypeName","src":"2841:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"private"},{"id":2753,"nodeType":"VariableDeclaration","src":"2920:44:4","nodes":[],"constant":false,"mutability":"mutable","name":"idToAlias","nameLocation":"2955:9:4","scope":3244,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string)"},"typeName":{"id":2752,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":2750,"name":"uint256","nodeType":"ElementaryTypeName","src":"2928:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2920:26:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":2751,"name":"string","nodeType":"ElementaryTypeName","src":"2939:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"private"},{"id":2805,"nodeType":"FunctionDefinition","src":"3049:515:4","nodes":[],"body":{"id":2804,"nodeType":"Block","src":"3139:425:4","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":2764,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2755,"src":"3163:10:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2763,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3157:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2762,"name":"bytes","nodeType":"ElementaryTypeName","src":"3157:5:4","typeDescriptions":{}}},"id":2765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3157:17:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3175:6:4","memberName":"length","nodeType":"MemberAccess","src":"3157:24:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3185:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3157:29:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436861696e7320676574436861696e28737472696e67293a20436861696e20616c6961732063616e6e6f742062652074686520656d70747920737472696e672e","id":2769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3188:69:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d920aad82cc068f1a73b0fb2c703d0169baa46c8c67097012e1aca0cc8c8b70","typeString":"literal_string \"StdChains getChain(string): Chain alias cannot be the empty string.\""},"value":"StdChains getChain(string): Chain alias cannot be the empty string."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3d920aad82cc068f1a73b0fb2c703d0169baa46c8c67097012e1aca0cc8c8b70","typeString":"literal_string \"StdChains getChain(string): Chain alias cannot be the empty string.\""}],"id":2761,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3149:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3149:109:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2771,"nodeType":"ExpressionStatement","src":"3149:109:4"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2772,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3206,"src":"3269:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3269:12:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2774,"nodeType":"ExpressionStatement","src":"3269:12:4"},{"expression":{"id":2779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2775,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2759,"src":"3291:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":2776,"name":"chains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2745,"src":"3299:6:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Chain_$2740_storage_$","typeString":"mapping(string memory => struct StdChains.Chain storage ref)"}},"id":2778,"indexExpression":{"id":2777,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2755,"src":"3306:10:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3299:18:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_storage","typeString":"struct StdChains.Chain storage ref"}},"src":"3291:26:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":2780,"nodeType":"ExpressionStatement","src":"3291:26:4"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2782,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2759,"src":"3348:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":2783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3354:7:4","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":2737,"src":"3348:13:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3365:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3348:18:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"hexValue":"537464436861696e7320676574436861696e28737472696e67293a20436861696e207769746820616c6961732022","id":2790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3404:49:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_be183459e9329da9bfc4a2fec17224f102b8a68c1139772e954a2d6fd9877e00","typeString":"literal_string \"StdChains getChain(string): Chain with alias \"\""},"value":"StdChains getChain(string): Chain with alias \""},{"id":2791,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2755,"src":"3455:10:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"22206e6f7420666f756e642e","id":2792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3467:15:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_be956cec6682d51b49f30c9beff2857436402411b7eee4082594e44819bcd397","typeString":"literal_string \"\" not found.\""},"value":"\" not found."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be183459e9329da9bfc4a2fec17224f102b8a68c1139772e954a2d6fd9877e00","typeString":"literal_string \"StdChains getChain(string): Chain with alias \"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_be956cec6682d51b49f30c9beff2857436402411b7eee4082594e44819bcd397","typeString":"literal_string \"\" not found.\""}],"expression":{"id":2788,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3387:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3391:12:4","memberName":"encodePacked","nodeType":"MemberAccess","src":"3387:16:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3387:96:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3380:6:4","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2786,"name":"string","nodeType":"ElementaryTypeName","src":"3380:6:4","typeDescriptions":{}}},"id":2794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3380:104:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2781,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3327:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3327:167:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2796,"nodeType":"ExpressionStatement","src":"3327:167:4"},{"expression":{"id":2802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2797,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2759,"src":"3505:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2799,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2755,"src":"3539:10:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":2800,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2759,"src":"3551:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}],"id":2798,"name":"getChainWithUpdatedRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"3513:25:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_struct$_Chain_$2740_memory_ptr_$returns$_t_struct$_Chain_$2740_memory_ptr_$","typeString":"function (string memory,struct StdChains.Chain memory) view returns (struct StdChains.Chain memory)"}},"id":2801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3513:44:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"src":"3505:52:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":2803,"nodeType":"ExpressionStatement","src":"3505:52:4"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getChain","nameLocation":"3058:8:4","parameters":{"id":2756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2755,"mutability":"mutable","name":"chainAlias","nameLocation":"3081:10:4","nodeType":"VariableDeclaration","scope":2805,"src":"3067:24:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2754,"name":"string","nodeType":"ElementaryTypeName","src":"3067:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3066:26:4"},"returnParameters":{"id":2760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2759,"mutability":"mutable","name":"chain","nameLocation":"3132:5:4","nodeType":"VariableDeclaration","scope":2805,"src":"3119:18:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain"},"typeName":{"id":2758,"nodeType":"UserDefinedTypeName","pathNode":{"id":2757,"name":"Chain","nameLocations":["3119:5:4"],"nodeType":"IdentifierPath","referencedDeclaration":2740,"src":"3119:5:4"},"referencedDeclaration":2740,"src":"3119:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_storage_ptr","typeString":"struct StdChains.Chain"}},"visibility":"internal"}],"src":"3118:20:4"},"scope":3244,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2862,"nodeType":"FunctionDefinition","src":"3570:532:4","nodes":[],"body":{"id":2861,"nodeType":"Block","src":"3651:451:4","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2814,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2807,"src":"3669:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3680:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3669:12:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436861696e7320676574436861696e2875696e74323536293a20436861696e2049442063616e6e6f7420626520302e","id":2817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3683:52:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_64f1cd082b277ed92a70b6890cc1e3b6ebd77bc6c9299e7ce82305de04926a4a","typeString":"literal_string \"StdChains getChain(uint256): Chain ID cannot be 0.\""},"value":"StdChains getChain(uint256): Chain ID cannot be 0."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_64f1cd082b277ed92a70b6890cc1e3b6ebd77bc6c9299e7ce82305de04926a4a","typeString":"literal_string \"StdChains getChain(uint256): Chain ID cannot be 0.\""}],"id":2813,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3661:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3661:75:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2819,"nodeType":"ExpressionStatement","src":"3661:75:4"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2820,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3206,"src":"3746:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3746:12:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2822,"nodeType":"ExpressionStatement","src":"3746:12:4"},{"assignments":[2824],"declarations":[{"constant":false,"id":2824,"mutability":"mutable","name":"chainAlias","nameLocation":"3782:10:4","nodeType":"VariableDeclaration","scope":2861,"src":"3768:24:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2823,"name":"string","nodeType":"ElementaryTypeName","src":"3768:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2828,"initialValue":{"baseExpression":{"id":2825,"name":"idToAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2753,"src":"3795:9:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":2827,"indexExpression":{"id":2826,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2807,"src":"3805:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3795:18:4","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3768:45:4"},{"expression":{"id":2833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2829,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"3824:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":2830,"name":"chains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2745,"src":"3832:6:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Chain_$2740_storage_$","typeString":"mapping(string memory => struct StdChains.Chain storage ref)"}},"id":2832,"indexExpression":{"id":2831,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2824,"src":"3839:10:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3832:18:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_storage","typeString":"struct StdChains.Chain storage ref"}},"src":"3824:26:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":2834,"nodeType":"ExpressionStatement","src":"3824:26:4"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2836,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"3882:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":2837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3888:7:4","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":2737,"src":"3882:13:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3899:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3882:18:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"hexValue":"537464436861696e7320676574436861696e2875696e74323536293a20436861696e207769746820494420","id":2844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3938:45:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_ce7b2cad45f1a6d0b9b7bb125e9a8742fce8fed7d742c83265d4a2da4caf457d","typeString":"literal_string \"StdChains getChain(uint256): Chain with ID \""},"value":"StdChains getChain(uint256): Chain with ID "},{"arguments":[{"id":2847,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2807,"src":"3997:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2845,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2731,"src":"3985:2:4","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":2846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3988:8:4","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"3985:11:4","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":2848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3985:20:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"206e6f7420666f756e642e","id":2849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4007:13:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_f310d2efb88747fac959fa7567a0a1a161dd43a77ba9af074f6191cf5bcf4f8b","typeString":"literal_string \" not found.\""},"value":" not found."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ce7b2cad45f1a6d0b9b7bb125e9a8742fce8fed7d742c83265d4a2da4caf457d","typeString":"literal_string \"StdChains getChain(uint256): Chain with ID \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_f310d2efb88747fac959fa7567a0a1a161dd43a77ba9af074f6191cf5bcf4f8b","typeString":"literal_string \" not found.\""}],"expression":{"id":2842,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3921:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2843,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3925:12:4","memberName":"encodePacked","nodeType":"MemberAccess","src":"3921:16:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3921:100:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3914:6:4","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2840,"name":"string","nodeType":"ElementaryTypeName","src":"3914:6:4","typeDescriptions":{}}},"id":2851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3914:108:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2835,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3861:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3861:171:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2853,"nodeType":"ExpressionStatement","src":"3861:171:4"},{"expression":{"id":2859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2854,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"4043:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2856,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2824,"src":"4077:10:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":2857,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"4089:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}],"id":2855,"name":"getChainWithUpdatedRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"4051:25:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_struct$_Chain_$2740_memory_ptr_$returns$_t_struct$_Chain_$2740_memory_ptr_$","typeString":"function (string memory,struct StdChains.Chain memory) view returns (struct StdChains.Chain memory)"}},"id":2858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4051:44:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"src":"4043:52:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":2860,"nodeType":"ExpressionStatement","src":"4043:52:4"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getChain","nameLocation":"3579:8:4","parameters":{"id":2808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2807,"mutability":"mutable","name":"chainId","nameLocation":"3596:7:4","nodeType":"VariableDeclaration","scope":2862,"src":"3588:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2806,"name":"uint256","nodeType":"ElementaryTypeName","src":"3588:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3587:17:4"},"returnParameters":{"id":2812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2811,"mutability":"mutable","name":"chain","nameLocation":"3644:5:4","nodeType":"VariableDeclaration","scope":2862,"src":"3631:18:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain"},"typeName":{"id":2810,"nodeType":"UserDefinedTypeName","pathNode":{"id":2809,"name":"Chain","nameLocations":["3631:5:4"],"nodeType":"IdentifierPath","referencedDeclaration":2740,"src":"3631:5:4"},"referencedDeclaration":2740,"src":"3631:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_storage_ptr","typeString":"struct StdChains.Chain"}},"visibility":"internal"}],"src":"3630:20:4"},"scope":3244,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2964,"nodeType":"FunctionDefinition","src":"4173:1034:4","nodes":[],"body":{"id":2963,"nodeType":"Block","src":"4254:953:4","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":2873,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2864,"src":"4291:10:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4285:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2871,"name":"bytes","nodeType":"ElementaryTypeName","src":"4285:5:4","typeDescriptions":{}}},"id":2874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4285:17:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4303:6:4","memberName":"length","nodeType":"MemberAccess","src":"4285:24:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4313:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4285:29:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436861696e7320736574436861696e28737472696e672c436861696e293a20436861696e20616c6961732063616e6e6f742062652074686520656d70747920737472696e672e","id":2878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4316:75:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_e21398c76711e50ffddb49a8dba169696f3107b01de04a8e606006811695425d","typeString":"literal_string \"StdChains setChain(string,Chain): Chain alias cannot be the empty string.\""},"value":"StdChains setChain(string,Chain): Chain alias cannot be the empty string."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e21398c76711e50ffddb49a8dba169696f3107b01de04a8e606006811695425d","typeString":"literal_string \"StdChains setChain(string,Chain): Chain alias cannot be the empty string.\""}],"id":2870,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4264:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4264:137:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2880,"nodeType":"ExpressionStatement","src":"4264:137:4"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2882,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2867,"src":"4420:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":2883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4426:7:4","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":2737,"src":"4420:13:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4437:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4420:18:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436861696e7320736574436861696e28737472696e672c436861696e293a20436861696e2049442063616e6e6f7420626520302e","id":2886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4440:57:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_174ee335e250ccaa0f259972e7bba298ef9a34228d70abe11ac8a43b5a1b924b","typeString":"literal_string \"StdChains setChain(string,Chain): Chain ID cannot be 0.\""},"value":"StdChains setChain(string,Chain): Chain ID cannot be 0."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_174ee335e250ccaa0f259972e7bba298ef9a34228d70abe11ac8a43b5a1b924b","typeString":"literal_string \"StdChains setChain(string,Chain): Chain ID cannot be 0.\""}],"id":2881,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4412:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4412:86:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2888,"nodeType":"ExpressionStatement","src":"4412:86:4"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2889,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3206,"src":"4509:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4509:12:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2891,"nodeType":"ExpressionStatement","src":"4509:12:4"},{"assignments":[2893],"declarations":[{"constant":false,"id":2893,"mutability":"mutable","name":"foundAlias","nameLocation":"4545:10:4","nodeType":"VariableDeclaration","scope":2963,"src":"4531:24:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2892,"name":"string","nodeType":"ElementaryTypeName","src":"4531:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2898,"initialValue":{"baseExpression":{"id":2894,"name":"idToAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2753,"src":"4558:9:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":2897,"indexExpression":{"expression":{"id":2895,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2867,"src":"4568:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":2896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4574:7:4","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":2737,"src":"4568:13:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4558:24:4","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4531:51:4"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":2902,"name":"foundAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2893,"src":"4620:10:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4614:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2900,"name":"bytes","nodeType":"ElementaryTypeName","src":"4614:5:4","typeDescriptions":{}}},"id":2903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4614:17:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4632:6:4","memberName":"length","nodeType":"MemberAccess","src":"4614:24:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4642:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4614:29:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":2910,"name":"foundAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2893,"src":"4663:10:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4657:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2908,"name":"bytes","nodeType":"ElementaryTypeName","src":"4657:5:4","typeDescriptions":{}}},"id":2911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4657:17:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2907,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4647:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4647:28:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":2916,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2864,"src":"4695:10:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4689:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2914,"name":"bytes","nodeType":"ElementaryTypeName","src":"4689:5:4","typeDescriptions":{}}},"id":2917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4689:17:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2913,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4679:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4679:28:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4647:60:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4614:93:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"hexValue":"537464436861696e7320736574436861696e28737472696e672c436861696e293a20436861696e20494420","id":2925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4783:45:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_4bc3f1cfa13ef667e7996383ef77d643e2bd45120184408271cac80652f049d2","typeString":"literal_string \"StdChains setChain(string,Chain): Chain ID \""},"value":"StdChains setChain(string,Chain): Chain ID "},{"arguments":[{"expression":{"id":2928,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2867,"src":"4862:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":2929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4868:7:4","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":2737,"src":"4862:13:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2926,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2731,"src":"4850:2:4","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":2927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4853:8:4","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"4850:11:4","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":2930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4850:26:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"20616c726561647920757365642062792022","id":2931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4898:21:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_03dcc98944d744f10105f4b63a1d5b4f5b14493812e66201e5f21a3da2662077","typeString":"literal_string \" already used by \"\""},"value":" already used by \""},{"id":2932,"name":"foundAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2893,"src":"4941:10:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"222e","id":2933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4973:5:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb54fc3dbdac1cb7b87378fdaddeb9e7549db2a108b5270efaa4bcd576270193","typeString":"literal_string \"\".\""},"value":"\"."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4bc3f1cfa13ef667e7996383ef77d643e2bd45120184408271cac80652f049d2","typeString":"literal_string \"StdChains setChain(string,Chain): Chain ID \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_03dcc98944d744f10105f4b63a1d5b4f5b14493812e66201e5f21a3da2662077","typeString":"literal_string \" already used by \"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_cb54fc3dbdac1cb7b87378fdaddeb9e7549db2a108b5270efaa4bcd576270193","typeString":"literal_string \"\".\""}],"expression":{"id":2923,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4745:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4749:12:4","memberName":"encodePacked","nodeType":"MemberAccess","src":"4745:16:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4745:251:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4721:6:4","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2921,"name":"string","nodeType":"ElementaryTypeName","src":"4721:6:4","typeDescriptions":{}}},"id":2935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4721:289:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2899,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4593:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4593:427:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2937,"nodeType":"ExpressionStatement","src":"4593:427:4"},{"assignments":[2939],"declarations":[{"constant":false,"id":2939,"mutability":"mutable","name":"oldChainId","nameLocation":"5039:10:4","nodeType":"VariableDeclaration","scope":2963,"src":"5031:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2938,"name":"uint256","nodeType":"ElementaryTypeName","src":"5031:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2944,"initialValue":{"expression":{"baseExpression":{"id":2940,"name":"chains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2745,"src":"5052:6:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Chain_$2740_storage_$","typeString":"mapping(string memory => struct StdChains.Chain storage ref)"}},"id":2942,"indexExpression":{"id":2941,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2864,"src":"5059:10:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5052:18:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_storage","typeString":"struct StdChains.Chain storage ref"}},"id":2943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5071:7:4","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":2737,"src":"5052:26:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5031:47:4"},{"expression":{"id":2948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5088:28:4","subExpression":{"baseExpression":{"id":2945,"name":"idToAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2753,"src":"5095:9:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":2947,"indexExpression":{"id":2946,"name":"oldChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2939,"src":"5105:10:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5095:21:4","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2949,"nodeType":"ExpressionStatement","src":"5088:28:4"},{"expression":{"id":2954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2950,"name":"chains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2745,"src":"5127:6:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Chain_$2740_storage_$","typeString":"mapping(string memory => struct StdChains.Chain storage ref)"}},"id":2952,"indexExpression":{"id":2951,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2864,"src":"5134:10:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5127:18:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_storage","typeString":"struct StdChains.Chain storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2953,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2867,"src":"5148:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"src":"5127:26:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_storage","typeString":"struct StdChains.Chain storage ref"}},"id":2955,"nodeType":"ExpressionStatement","src":"5127:26:4"},{"expression":{"id":2961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2956,"name":"idToAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2753,"src":"5163:9:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":2959,"indexExpression":{"expression":{"id":2957,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2867,"src":"5173:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":2958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5179:7:4","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":2737,"src":"5173:13:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5163:24:4","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2960,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2864,"src":"5190:10:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"5163:37:4","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":2962,"nodeType":"ExpressionStatement","src":"5163:37:4"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setChain","nameLocation":"4182:8:4","parameters":{"id":2868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2864,"mutability":"mutable","name":"chainAlias","nameLocation":"4205:10:4","nodeType":"VariableDeclaration","scope":2964,"src":"4191:24:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2863,"name":"string","nodeType":"ElementaryTypeName","src":"4191:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2867,"mutability":"mutable","name":"chain","nameLocation":"4230:5:4","nodeType":"VariableDeclaration","scope":2964,"src":"4217:18:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain"},"typeName":{"id":2866,"nodeType":"UserDefinedTypeName","pathNode":{"id":2865,"name":"Chain","nameLocations":["4217:5:4"],"nodeType":"IdentifierPath","referencedDeclaration":2740,"src":"4217:5:4"},"referencedDeclaration":2740,"src":"4217:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_storage_ptr","typeString":"struct StdChains.Chain"}},"visibility":"internal"}],"src":"4190:46:4"},"returnParameters":{"id":2869,"nodeType":"ParameterList","parameters":[],"src":"4254:0:4"},"scope":3244,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":3051,"nodeType":"FunctionDefinition","src":"5319:979:4","nodes":[],"body":{"id":3050,"nodeType":"Block","src":"5464:834:4","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"expression":{"id":2977,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2969,"src":"5484:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":2978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5490:6:4","memberName":"rpcUrl","nodeType":"MemberAccess","referencedDeclaration":2739,"src":"5484:12:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5478:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2975,"name":"bytes","nodeType":"ElementaryTypeName","src":"5478:5:4","typeDescriptions":{}}},"id":2979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5478:19:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5498:6:4","memberName":"length","nodeType":"MemberAccess","src":"5478:26:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5508:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5478:31:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3047,"nodeType":"IfStatement","src":"5474:796:4","trueBody":{"id":3046,"nodeType":"Block","src":"5511:759:4","statements":[{"clauses":[{"block":{"id":2996,"nodeType":"Block","src":"5588:60:4","statements":[{"expression":{"id":2994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2990,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2969,"src":"5606:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":2992,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5612:6:4","memberName":"rpcUrl","nodeType":"MemberAccess","referencedDeclaration":2739,"src":"5606:12:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2993,"name":"configRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"5621:12:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"5606:27:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":2995,"nodeType":"ExpressionStatement","src":"5606:27:4"}]},"errorName":"","id":2997,"nodeType":"TryCatchClause","parameters":{"id":2989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2988,"mutability":"mutable","name":"configRpcUrl","nameLocation":"5574:12:4","nodeType":"VariableDeclaration","scope":2997,"src":"5560:26:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2987,"name":"string","nodeType":"ElementaryTypeName","src":"5560:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5559:28:4"},"src":"5551:97:4"},{"block":{"id":3043,"nodeType":"Block","src":"5674:586:4","statements":[{"expression":{"id":3007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3001,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2969,"src":"5692:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":3003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5698:6:4","memberName":"rpcUrl","nodeType":"MemberAccess","referencedDeclaration":2739,"src":"5692:12:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":3004,"name":"defaultRpcUrls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2749,"src":"5707:14:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_string_storage_$","typeString":"mapping(string memory => string storage ref)"}},"id":3006,"indexExpression":{"id":3005,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2966,"src":"5722:10:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5707:26:4","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"src":"5692:41:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3008,"nodeType":"ExpressionStatement","src":"5692:41:4"},{"assignments":[3010],"declarations":[{"constant":false,"id":3010,"mutability":"mutable","name":"notFoundError","nameLocation":"5826:13:4","nodeType":"VariableDeclaration","scope":3043,"src":"5813:26:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3009,"name":"bytes","nodeType":"ElementaryTypeName","src":"5813:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3023,"initialValue":{"arguments":[{"hexValue":"4368656174436f64654572726f72","id":3013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5886:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_0bc445031644df03923eb2ab981d332f4354ceab11a95efce72a938e57beaadf","typeString":"literal_string \"CheatCodeError\""},"value":"CheatCodeError"},{"arguments":[{"arguments":[{"hexValue":"696e76616c6964207270632075726c20","id":3018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5928:18:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_2baf3da7b122675739218e635e969f0d1b560b915d35635239551f70fe123eed","typeString":"literal_string \"invalid rpc url \""},"value":"invalid rpc url "},{"id":3019,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2966,"src":"5948:10:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2baf3da7b122675739218e635e969f0d1b560b915d35635239551f70fe123eed","typeString":"literal_string \"invalid rpc url \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":3016,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5911:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3017,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5915:12:4","memberName":"encodePacked","nodeType":"MemberAccess","src":"5911:16:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5911:48:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3015,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5904:6:4","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":3014,"name":"string","nodeType":"ElementaryTypeName","src":"5904:6:4","typeDescriptions":{}}},"id":3021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5904:56:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0bc445031644df03923eb2ab981d332f4354ceab11a95efce72a938e57beaadf","typeString":"literal_string \"CheatCodeError\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":3011,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5862:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5866:19:4","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5862:23:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":3022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5862:99:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5813:148:4"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3025,"name":"notFoundError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3010,"src":"5993:13:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3024,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5983:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5983:24:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":3028,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2999,"src":"6021:3:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3027,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6011:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6011:14:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5983:42:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"expression":{"id":3033,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2969,"src":"6035:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":3034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6041:6:4","memberName":"rpcUrl","nodeType":"MemberAccess","referencedDeclaration":2739,"src":"6035:12:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6029:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3031,"name":"bytes","nodeType":"ElementaryTypeName","src":"6029:5:4","typeDescriptions":{}}},"id":3035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6029:19:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6049:6:4","memberName":"length","nodeType":"MemberAccess","src":"6029:26:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6059:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6029:31:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5983:77:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3042,"nodeType":"IfStatement","src":"5979:267:4","trueBody":{"id":3041,"nodeType":"Block","src":"6062:184:4","statements":[{"AST":{"nativeSrc":"6148:80:4","nodeType":"YulBlock","src":"6148:80:4","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6185:2:4","nodeType":"YulLiteral","src":"6185:2:4","type":"","value":"32"},{"name":"err","nativeSrc":"6189:3:4","nodeType":"YulIdentifier","src":"6189:3:4"}],"functionName":{"name":"add","nativeSrc":"6181:3:4","nodeType":"YulIdentifier","src":"6181:3:4"},"nativeSrc":"6181:12:4","nodeType":"YulFunctionCall","src":"6181:12:4"},{"arguments":[{"name":"err","nativeSrc":"6201:3:4","nodeType":"YulIdentifier","src":"6201:3:4"}],"functionName":{"name":"mload","nativeSrc":"6195:5:4","nodeType":"YulIdentifier","src":"6195:5:4"},"nativeSrc":"6195:10:4","nodeType":"YulFunctionCall","src":"6195:10:4"}],"functionName":{"name":"revert","nativeSrc":"6174:6:4","nodeType":"YulIdentifier","src":"6174:6:4"},"nativeSrc":"6174:32:4","nodeType":"YulFunctionCall","src":"6174:32:4"},"nativeSrc":"6174:32:4","nodeType":"YulExpressionStatement","src":"6174:32:4"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":2999,"isOffset":false,"isSlot":false,"src":"6189:3:4","valueSize":1},{"declaration":2999,"isOffset":false,"isSlot":false,"src":"6201:3:4","valueSize":1}],"id":3040,"nodeType":"InlineAssembly","src":"6139:89:4"}]}}]},"errorName":"","id":3044,"nodeType":"TryCatchClause","parameters":{"id":3000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2999,"mutability":"mutable","name":"err","nameLocation":"5669:3:4","nodeType":"VariableDeclaration","scope":3044,"src":"5656:16:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2998,"name":"bytes","nodeType":"ElementaryTypeName","src":"5656:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5655:18:4"},"src":"5649:611:4"}],"externalCall":{"arguments":[{"id":2985,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2966,"src":"5539:10:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2983,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2731,"src":"5529:2:4","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":2984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5532:6:4","memberName":"rpcUrl","nodeType":"MemberAccess","referencedDeclaration":9000,"src":"5529:9:4","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":2986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5529:21:4","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3045,"nodeType":"TryStatement","src":"5525:735:4"}]}},{"expression":{"id":3048,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2969,"src":"6286:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"functionReturnParameters":2974,"id":3049,"nodeType":"Return","src":"6279:12:4"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getChainWithUpdatedRpcUrl","nameLocation":"5328:25:4","parameters":{"id":2970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2966,"mutability":"mutable","name":"chainAlias","nameLocation":"5368:10:4","nodeType":"VariableDeclaration","scope":3051,"src":"5354:24:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2965,"name":"string","nodeType":"ElementaryTypeName","src":"5354:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2969,"mutability":"mutable","name":"chain","nameLocation":"5393:5:4","nodeType":"VariableDeclaration","scope":3051,"src":"5380:18:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain"},"typeName":{"id":2968,"nodeType":"UserDefinedTypeName","pathNode":{"id":2967,"name":"Chain","nameLocations":["5380:5:4"],"nodeType":"IdentifierPath","referencedDeclaration":2740,"src":"5380:5:4"},"referencedDeclaration":2740,"src":"5380:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_storage_ptr","typeString":"struct StdChains.Chain"}},"visibility":"internal"}],"src":"5353:46:4"},"returnParameters":{"id":2974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2973,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3051,"src":"5446:12:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain"},"typeName":{"id":2972,"nodeType":"UserDefinedTypeName","pathNode":{"id":2971,"name":"Chain","nameLocations":["5446:5:4"],"nodeType":"IdentifierPath","referencedDeclaration":2740,"src":"5446:5:4"},"referencedDeclaration":2740,"src":"5446:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_storage_ptr","typeString":"struct StdChains.Chain"}},"visibility":"internal"}],"src":"5445:14:4"},"scope":3244,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":3206,"nodeType":"FunctionDefinition","src":"6304:2240:4","nodes":[],"body":{"id":3205,"nodeType":"Block","src":"6334:2210:4","nodes":[],"statements":[{"condition":{"id":3054,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"6348:11:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3056,"nodeType":"IfStatement","src":"6344:24:4","trueBody":{"functionReturnParameters":3053,"id":3055,"nodeType":"Return","src":"6361:7:4"}},{"expression":{"id":3059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3057,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"6378:11:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":3058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6392:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"6378:18:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3060,"nodeType":"ExpressionStatement","src":"6378:18:4"},{"expression":{"arguments":[{"hexValue":"616e76696c","id":3062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6519:7:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_a3d859b77cebfdf9da3b485434702c5090ff9e91b7b86c670ebb15f8a00eb72b","typeString":"literal_string \"anvil\""},"value":"anvil"},{"arguments":[{"hexValue":"416e76696c","id":3064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6534:7:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ab1bd2f543bf53e1036abfe292a89809c7285bff756db6e274686afe6fb41b4","typeString":"literal_string \"Anvil\""},"value":"Anvil"},{"hexValue":"3331333337","id":3065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6543:5:4","typeDescriptions":{"typeIdentifier":"t_rational_31337_by_1","typeString":"int_const 31337"},"value":"31337"},{"hexValue":"687474703a2f2f3132372e302e302e313a38353435","id":3066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6550:23:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_308a18cf3d9de3b161a842ef1e873581d7b16a5d4ea08170e123f95d25f33fe0","typeString":"literal_string \"http://127.0.0.1:8545\""},"value":"http://127.0.0.1:8545"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1ab1bd2f543bf53e1036abfe292a89809c7285bff756db6e274686afe6fb41b4","typeString":"literal_string \"Anvil\""},{"typeIdentifier":"t_rational_31337_by_1","typeString":"int_const 31337"},{"typeIdentifier":"t_stringliteral_308a18cf3d9de3b161a842ef1e873581d7b16a5d4ea08170e123f95d25f33fe0","typeString":"literal_string \"http://127.0.0.1:8545\""}],"id":3063,"name":"Chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2740,"src":"6528:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Chain_$2740_storage_ptr_$","typeString":"type(struct StdChains.Chain storage pointer)"}},"id":3067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6528:46:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a3d859b77cebfdf9da3b485434702c5090ff9e91b7b86c670ebb15f8a00eb72b","typeString":"literal_string \"anvil\""},{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}],"id":3061,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3243,"src":"6493:25:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Chain_$2740_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.Chain memory)"}},"id":3068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6493:82:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3069,"nodeType":"ExpressionStatement","src":"6493:82:4"},{"expression":{"arguments":[{"hexValue":"6d61696e6e6574","id":3071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6624:9:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_7beafa94c8bfb8f1c1a43104a34f72c524268aafbfe83bff17485539345c66ff","typeString":"literal_string \"mainnet\""},"value":"mainnet"},{"arguments":[{"hexValue":"4d61696e6e6574","id":3073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6641:9:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d646f556e5d9d6f1edcf7a39b77f5ac253776eb34efcfd688aacbee518efc26","typeString":"literal_string \"Mainnet\""},"value":"Mainnet"},{"hexValue":"31","id":3074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6652:1:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"68747470733a2f2f6d61696e6e65742e696e667572612e696f2f76332f3637373034353462633665613432633538616163313239373835333162393366","id":3075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6655:63:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_774ec9114c424c27016dfcccca26cbc2c56169b7a41cad2545127f33ebee4c93","typeString":"literal_string \"https://mainnet.infura.io/v3/6770454bc6ea42c58aac12978531b93f\""},"value":"https://mainnet.infura.io/v3/6770454bc6ea42c58aac12978531b93f"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8d646f556e5d9d6f1edcf7a39b77f5ac253776eb34efcfd688aacbee518efc26","typeString":"literal_string \"Mainnet\""},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_774ec9114c424c27016dfcccca26cbc2c56169b7a41cad2545127f33ebee4c93","typeString":"literal_string \"https://mainnet.infura.io/v3/6770454bc6ea42c58aac12978531b93f\""}],"id":3072,"name":"Chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2740,"src":"6635:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Chain_$2740_storage_ptr_$","typeString":"type(struct StdChains.Chain storage pointer)"}},"id":3076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6635:84:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7beafa94c8bfb8f1c1a43104a34f72c524268aafbfe83bff17485539345c66ff","typeString":"literal_string \"mainnet\""},{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}],"id":3070,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3243,"src":"6585:25:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Chain_$2740_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.Chain memory)"}},"id":3077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6585:144:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3078,"nodeType":"ExpressionStatement","src":"6585:144:4"},{"expression":{"arguments":[{"hexValue":"676f65726c69","id":3080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6778:8:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_e24dd81d18a6354d406364c0fc25f4237534cee10d0c3099c9c2a6aa50d7dd0a","typeString":"literal_string \"goerli\""},"value":"goerli"},{"arguments":[{"hexValue":"476f65726c69","id":3082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6794:8:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_736fc55653a3415af498a1309898240f13c5e9e33098fa3cf9e5f2a200d14c3e","typeString":"literal_string \"Goerli\""},"value":"Goerli"},{"hexValue":"35","id":3083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6804:1:4","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},{"hexValue":"68747470733a2f2f676f65726c692e696e667572612e696f2f76332f3637373034353462633665613432633538616163313239373835333162393366","id":3084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6807:62:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_809fa20d080608d8b6f3c6e91a70a9f82ae99920a2a463c52efd4970f7138a82","typeString":"literal_string \"https://goerli.infura.io/v3/6770454bc6ea42c58aac12978531b93f\""},"value":"https://goerli.infura.io/v3/6770454bc6ea42c58aac12978531b93f"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_736fc55653a3415af498a1309898240f13c5e9e33098fa3cf9e5f2a200d14c3e","typeString":"literal_string \"Goerli\""},{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},{"typeIdentifier":"t_stringliteral_809fa20d080608d8b6f3c6e91a70a9f82ae99920a2a463c52efd4970f7138a82","typeString":"literal_string \"https://goerli.infura.io/v3/6770454bc6ea42c58aac12978531b93f\""}],"id":3081,"name":"Chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2740,"src":"6788:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Chain_$2740_storage_ptr_$","typeString":"type(struct StdChains.Chain storage pointer)"}},"id":3085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6788:82:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e24dd81d18a6354d406364c0fc25f4237534cee10d0c3099c9c2a6aa50d7dd0a","typeString":"literal_string \"goerli\""},{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}],"id":3079,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3243,"src":"6739:25:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Chain_$2740_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.Chain memory)"}},"id":3086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6739:141:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3087,"nodeType":"ExpressionStatement","src":"6739:141:4"},{"expression":{"arguments":[{"hexValue":"7365706f6c6961","id":3089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6929:9:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1f58df0b51f34f4835aba989f0aa2f2e66218cab53207bafd3dbf37270bd39a","typeString":"literal_string \"sepolia\""},"value":"sepolia"},{"arguments":[{"hexValue":"5365706f6c6961","id":3091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6946:9:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_a6b54cd124a84bb64f1808905ed95fb171a09730726f85e60eefcd47a4831b27","typeString":"literal_string \"Sepolia\""},"value":"Sepolia"},{"hexValue":"3131313535313131","id":3092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6957:8:4","typeDescriptions":{"typeIdentifier":"t_rational_11155111_by_1","typeString":"int_const 11155111"},"value":"11155111"},{"hexValue":"68747470733a2f2f7365706f6c69612e696e667572612e696f2f76332f3637373034353462633665613432633538616163313239373835333162393366","id":3093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6967:63:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_5313b0eedeb4c276f1c587a739e98451ec2a65fc7c99390b9b7a46c530c86559","typeString":"literal_string \"https://sepolia.infura.io/v3/6770454bc6ea42c58aac12978531b93f\""},"value":"https://sepolia.infura.io/v3/6770454bc6ea42c58aac12978531b93f"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a6b54cd124a84bb64f1808905ed95fb171a09730726f85e60eefcd47a4831b27","typeString":"literal_string \"Sepolia\""},{"typeIdentifier":"t_rational_11155111_by_1","typeString":"int_const 11155111"},{"typeIdentifier":"t_stringliteral_5313b0eedeb4c276f1c587a739e98451ec2a65fc7c99390b9b7a46c530c86559","typeString":"literal_string \"https://sepolia.infura.io/v3/6770454bc6ea42c58aac12978531b93f\""}],"id":3090,"name":"Chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2740,"src":"6940:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Chain_$2740_storage_ptr_$","typeString":"type(struct StdChains.Chain storage pointer)"}},"id":3094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6940:91:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e1f58df0b51f34f4835aba989f0aa2f2e66218cab53207bafd3dbf37270bd39a","typeString":"literal_string \"sepolia\""},{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}],"id":3088,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3243,"src":"6890:25:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Chain_$2740_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.Chain memory)"}},"id":3095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6890:151:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3096,"nodeType":"ExpressionStatement","src":"6890:151:4"},{"expression":{"arguments":[{"hexValue":"6f7074696d69736d","id":3098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7077:10:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_09d0f27659ee556a8134fa56941e42400e672aecc2d4cfc61cdb0fcea4590e05","typeString":"literal_string \"optimism\""},"value":"optimism"},{"arguments":[{"hexValue":"4f7074696d69736d","id":3100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7095:10:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_f997187c3c319ef9e33fa05f852d1612b66e309dc48d97a4b6b39832090a3bec","typeString":"literal_string \"Optimism\""},"value":"Optimism"},{"hexValue":"3130","id":3101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7107:2:4","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},{"hexValue":"68747470733a2f2f6d61696e6e65742e6f7074696d69736d2e696f","id":3102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7111:29:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_38b9211512154272cdc8d9677b3720aef06041b8d31b5e68a6ffc7a4bb22d93e","typeString":"literal_string \"https://mainnet.optimism.io\""},"value":"https://mainnet.optimism.io"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f997187c3c319ef9e33fa05f852d1612b66e309dc48d97a4b6b39832090a3bec","typeString":"literal_string \"Optimism\""},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},{"typeIdentifier":"t_stringliteral_38b9211512154272cdc8d9677b3720aef06041b8d31b5e68a6ffc7a4bb22d93e","typeString":"literal_string \"https://mainnet.optimism.io\""}],"id":3099,"name":"Chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2740,"src":"7089:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Chain_$2740_storage_ptr_$","typeString":"type(struct StdChains.Chain storage pointer)"}},"id":3103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7089:52:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_09d0f27659ee556a8134fa56941e42400e672aecc2d4cfc61cdb0fcea4590e05","typeString":"literal_string \"optimism\""},{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}],"id":3097,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3243,"src":"7051:25:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Chain_$2740_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.Chain memory)"}},"id":3104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7051:91:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3105,"nodeType":"ExpressionStatement","src":"7051:91:4"},{"expression":{"arguments":[{"hexValue":"6f7074696d69736d5f676f65726c69","id":3107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7178:17:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_ecf3b2cc678a701bfbf2329b12e6edf723c3043a32339c2eea2efb7c9533c09c","typeString":"literal_string \"optimism_goerli\""},"value":"optimism_goerli"},{"arguments":[{"hexValue":"4f7074696d69736d20476f65726c69","id":3109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7203:17:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_6271e061a2d4ce1b6e267081a40c4dca996efe738d092d650bcfa23669d2fd24","typeString":"literal_string \"Optimism Goerli\""},"value":"Optimism Goerli"},{"hexValue":"343230","id":3110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7222:3:4","typeDescriptions":{"typeIdentifier":"t_rational_420_by_1","typeString":"int_const 420"},"value":"420"},{"hexValue":"68747470733a2f2f676f65726c692e6f7074696d69736d2e696f","id":3111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7227:28:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef3dbe59ba72d73e51c1959c67c0485880270dce59b4642a5dff6497ea5e55ad","typeString":"literal_string \"https://goerli.optimism.io\""},"value":"https://goerli.optimism.io"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6271e061a2d4ce1b6e267081a40c4dca996efe738d092d650bcfa23669d2fd24","typeString":"literal_string \"Optimism Goerli\""},{"typeIdentifier":"t_rational_420_by_1","typeString":"int_const 420"},{"typeIdentifier":"t_stringliteral_ef3dbe59ba72d73e51c1959c67c0485880270dce59b4642a5dff6497ea5e55ad","typeString":"literal_string \"https://goerli.optimism.io\""}],"id":3108,"name":"Chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2740,"src":"7197:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Chain_$2740_storage_ptr_$","typeString":"type(struct StdChains.Chain storage pointer)"}},"id":3112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7197:59:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ecf3b2cc678a701bfbf2329b12e6edf723c3043a32339c2eea2efb7c9533c09c","typeString":"literal_string \"optimism_goerli\""},{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}],"id":3106,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3243,"src":"7152:25:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Chain_$2740_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.Chain memory)"}},"id":3113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7152:105:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3114,"nodeType":"ExpressionStatement","src":"7152:105:4"},{"expression":{"arguments":[{"hexValue":"617262697472756d5f6f6e65","id":3116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7293:14:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b44cea7839e0679ac5072602932da9b25ebfb3a9ac42625d9c583a7b6b2eb4","typeString":"literal_string \"arbitrum_one\""},"value":"arbitrum_one"},{"arguments":[{"hexValue":"417262697472756d204f6e65","id":3118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7315:14:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_9e42b1aebd5463751aea2c5f6ee37505334a82b4085315a5f4b8b0f81d3b9004","typeString":"literal_string \"Arbitrum One\""},"value":"Arbitrum One"},{"hexValue":"3432313631","id":3119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7331:5:4","typeDescriptions":{"typeIdentifier":"t_rational_42161_by_1","typeString":"int_const 42161"},"value":"42161"},{"hexValue":"68747470733a2f2f617262312e617262697472756d2e696f2f727063","id":3120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7338:30:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_ff28c1a1bf3c117d5956efad529d0ee22dcfc0fe5cbf5a03e0bdfcc3c6cac126","typeString":"literal_string \"https://arb1.arbitrum.io/rpc\""},"value":"https://arb1.arbitrum.io/rpc"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9e42b1aebd5463751aea2c5f6ee37505334a82b4085315a5f4b8b0f81d3b9004","typeString":"literal_string \"Arbitrum One\""},{"typeIdentifier":"t_rational_42161_by_1","typeString":"int_const 42161"},{"typeIdentifier":"t_stringliteral_ff28c1a1bf3c117d5956efad529d0ee22dcfc0fe5cbf5a03e0bdfcc3c6cac126","typeString":"literal_string \"https://arb1.arbitrum.io/rpc\""}],"id":3117,"name":"Chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2740,"src":"7309:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Chain_$2740_storage_ptr_$","typeString":"type(struct StdChains.Chain storage pointer)"}},"id":3121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7309:60:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e4b44cea7839e0679ac5072602932da9b25ebfb3a9ac42625d9c583a7b6b2eb4","typeString":"literal_string \"arbitrum_one\""},{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}],"id":3115,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3243,"src":"7267:25:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Chain_$2740_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.Chain memory)"}},"id":3122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7267:103:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3123,"nodeType":"ExpressionStatement","src":"7267:103:4"},{"expression":{"arguments":[{"hexValue":"617262697472756d5f6f6e655f676f65726c69","id":3125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7419:21:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_9c5068a3a5cdbd747f13200fdd6f590995f99bde231a5dcfa62a5f92af1dc3d4","typeString":"literal_string \"arbitrum_one_goerli\""},"value":"arbitrum_one_goerli"},{"arguments":[{"hexValue":"417262697472756d204f6e6520476f65726c69","id":3127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7448:21:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_57f7b6894161eb541e81676f15adf1e65eee36bdcfd592f252d22d4394480f21","typeString":"literal_string \"Arbitrum One Goerli\""},"value":"Arbitrum One Goerli"},{"hexValue":"343231363133","id":3128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7471:6:4","typeDescriptions":{"typeIdentifier":"t_rational_421613_by_1","typeString":"int_const 421613"},"value":"421613"},{"hexValue":"68747470733a2f2f676f65726c692d726f6c6c75702e617262697472756d2e696f2f727063","id":3129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7479:39:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_d65fa49ed6bf0763184aace821262295f8ad23c20b74cd1f836fe5e06f5dd8ea","typeString":"literal_string \"https://goerli-rollup.arbitrum.io/rpc\""},"value":"https://goerli-rollup.arbitrum.io/rpc"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_57f7b6894161eb541e81676f15adf1e65eee36bdcfd592f252d22d4394480f21","typeString":"literal_string \"Arbitrum One Goerli\""},{"typeIdentifier":"t_rational_421613_by_1","typeString":"int_const 421613"},{"typeIdentifier":"t_stringliteral_d65fa49ed6bf0763184aace821262295f8ad23c20b74cd1f836fe5e06f5dd8ea","typeString":"literal_string \"https://goerli-rollup.arbitrum.io/rpc\""}],"id":3126,"name":"Chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2740,"src":"7442:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Chain_$2740_storage_ptr_$","typeString":"type(struct StdChains.Chain storage pointer)"}},"id":3130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7442:77:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9c5068a3a5cdbd747f13200fdd6f590995f99bde231a5dcfa62a5f92af1dc3d4","typeString":"literal_string \"arbitrum_one_goerli\""},{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}],"id":3124,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3243,"src":"7380:25:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Chain_$2740_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.Chain memory)"}},"id":3131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7380:149:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3132,"nodeType":"ExpressionStatement","src":"7380:149:4"},{"expression":{"arguments":[{"hexValue":"617262697472756d5f6e6f7661","id":3134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7565:15:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_9338ed1403277416ebb39d4e992ebf5c49e6dded5ec79963ea5fc261cbd7fdac","typeString":"literal_string \"arbitrum_nova\""},"value":"arbitrum_nova"},{"arguments":[{"hexValue":"417262697472756d204e6f7661","id":3136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7588:15:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_25c77b7679bf463420c39c7728b9f65b6a8f1ae05b3335eb9e394b1b61bf8f21","typeString":"literal_string \"Arbitrum Nova\""},"value":"Arbitrum Nova"},{"hexValue":"3432313730","id":3137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7605:5:4","typeDescriptions":{"typeIdentifier":"t_rational_42170_by_1","typeString":"int_const 42170"},"value":"42170"},{"hexValue":"68747470733a2f2f6e6f76612e617262697472756d2e696f2f727063","id":3138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7612:30:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_a77f0a686c95785c75ada33247e30dc9ac80330a7f8eb521bebdf48f492ee4ac","typeString":"literal_string \"https://nova.arbitrum.io/rpc\""},"value":"https://nova.arbitrum.io/rpc"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_25c77b7679bf463420c39c7728b9f65b6a8f1ae05b3335eb9e394b1b61bf8f21","typeString":"literal_string \"Arbitrum Nova\""},{"typeIdentifier":"t_rational_42170_by_1","typeString":"int_const 42170"},{"typeIdentifier":"t_stringliteral_a77f0a686c95785c75ada33247e30dc9ac80330a7f8eb521bebdf48f492ee4ac","typeString":"literal_string \"https://nova.arbitrum.io/rpc\""}],"id":3135,"name":"Chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2740,"src":"7582:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Chain_$2740_storage_ptr_$","typeString":"type(struct StdChains.Chain storage pointer)"}},"id":3139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7582:61:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9338ed1403277416ebb39d4e992ebf5c49e6dded5ec79963ea5fc261cbd7fdac","typeString":"literal_string \"arbitrum_nova\""},{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}],"id":3133,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3243,"src":"7539:25:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Chain_$2740_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.Chain memory)"}},"id":3140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7539:105:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3141,"nodeType":"ExpressionStatement","src":"7539:105:4"},{"expression":{"arguments":[{"hexValue":"706f6c79676f6e","id":3143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7680:9:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_ac63fa1fe369e75c38d62f0f4d465b48b3cd5159f0fb416332899402031d1408","typeString":"literal_string \"polygon\""},"value":"polygon"},{"arguments":[{"hexValue":"506f6c79676f6e","id":3145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7697:9:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_890af8db8ca1aa1e915857edbc2717639ebd8a22c786f9e0e776d6a1aacb5e71","typeString":"literal_string \"Polygon\""},"value":"Polygon"},{"hexValue":"313337","id":3146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7708:3:4","typeDescriptions":{"typeIdentifier":"t_rational_137_by_1","typeString":"int_const 137"},"value":"137"},{"hexValue":"68747470733a2f2f706f6c79676f6e2d7270632e636f6d","id":3147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7713:25:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_fda46ab670b83929623b4aa9bcfa97ff7b7376fa90a24a450a8561482232c5c0","typeString":"literal_string \"https://polygon-rpc.com\""},"value":"https://polygon-rpc.com"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_890af8db8ca1aa1e915857edbc2717639ebd8a22c786f9e0e776d6a1aacb5e71","typeString":"literal_string \"Polygon\""},{"typeIdentifier":"t_rational_137_by_1","typeString":"int_const 137"},{"typeIdentifier":"t_stringliteral_fda46ab670b83929623b4aa9bcfa97ff7b7376fa90a24a450a8561482232c5c0","typeString":"literal_string \"https://polygon-rpc.com\""}],"id":3144,"name":"Chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2740,"src":"7691:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Chain_$2740_storage_ptr_$","typeString":"type(struct StdChains.Chain storage pointer)"}},"id":3148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7691:48:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ac63fa1fe369e75c38d62f0f4d465b48b3cd5159f0fb416332899402031d1408","typeString":"literal_string \"polygon\""},{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}],"id":3142,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3243,"src":"7654:25:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Chain_$2740_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.Chain memory)"}},"id":3149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7654:86:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3150,"nodeType":"ExpressionStatement","src":"7654:86:4"},{"expression":{"arguments":[{"hexValue":"706f6c79676f6e5f6d756d626169","id":3152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7776:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_a7308364e169f5f44de3933205a00d3632b7366702c91dff3452b4dbf6ed70f0","typeString":"literal_string \"polygon_mumbai\""},"value":"polygon_mumbai"},{"arguments":[{"hexValue":"506f6c79676f6e204d756d626169","id":3154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7800:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_173b0df64039e25119e26da4408dbd53da69bf06543516209ecc66f21e0c9725","typeString":"literal_string \"Polygon Mumbai\""},"value":"Polygon Mumbai"},{"hexValue":"3830303031","id":3155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7818:5:4","typeDescriptions":{"typeIdentifier":"t_rational_80001_by_1","typeString":"int_const 80001"},"value":"80001"},{"hexValue":"68747470733a2f2f7270632d6d756d6261692e6d61746963766967696c2e636f6d","id":3156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7825:35:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_73b526a6131ddfd959c21485254bd24a6ab94de746e87b78a515c1d42c7ee121","typeString":"literal_string \"https://rpc-mumbai.maticvigil.com\""},"value":"https://rpc-mumbai.maticvigil.com"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_173b0df64039e25119e26da4408dbd53da69bf06543516209ecc66f21e0c9725","typeString":"literal_string \"Polygon Mumbai\""},{"typeIdentifier":"t_rational_80001_by_1","typeString":"int_const 80001"},{"typeIdentifier":"t_stringliteral_73b526a6131ddfd959c21485254bd24a6ab94de746e87b78a515c1d42c7ee121","typeString":"literal_string \"https://rpc-mumbai.maticvigil.com\""}],"id":3153,"name":"Chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2740,"src":"7794:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Chain_$2740_storage_ptr_$","typeString":"type(struct StdChains.Chain storage pointer)"}},"id":3157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7794:67:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a7308364e169f5f44de3933205a00d3632b7366702c91dff3452b4dbf6ed70f0","typeString":"literal_string \"polygon_mumbai\""},{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}],"id":3151,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3243,"src":"7750:25:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Chain_$2740_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.Chain memory)"}},"id":3158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7750:112:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3159,"nodeType":"ExpressionStatement","src":"7750:112:4"},{"expression":{"arguments":[{"hexValue":"6176616c616e636865","id":3161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7898:11:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e8b0d92516ee4289145e3b78cea58daac177b1c618beeedbc6cdabd388a6e55","typeString":"literal_string \"avalanche\""},"value":"avalanche"},{"arguments":[{"hexValue":"4176616c616e636865","id":3163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7917:11:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_6585177c3aba6cb7ffc0a37e831a958c4ee9278e4c62c7bdad7175ca09883c40","typeString":"literal_string \"Avalanche\""},"value":"Avalanche"},{"hexValue":"3433313134","id":3164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7930:5:4","typeDescriptions":{"typeIdentifier":"t_rational_43114_by_1","typeString":"int_const 43114"},"value":"43114"},{"hexValue":"68747470733a2f2f6170692e617661782e6e6574776f726b2f6578742f62632f432f727063","id":3165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7937:39:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_429365eac47ed6b261c38927d854e528b743fc5a678b1b4ba631c511f305886a","typeString":"literal_string \"https://api.avax.network/ext/bc/C/rpc\""},"value":"https://api.avax.network/ext/bc/C/rpc"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6585177c3aba6cb7ffc0a37e831a958c4ee9278e4c62c7bdad7175ca09883c40","typeString":"literal_string \"Avalanche\""},{"typeIdentifier":"t_rational_43114_by_1","typeString":"int_const 43114"},{"typeIdentifier":"t_stringliteral_429365eac47ed6b261c38927d854e528b743fc5a678b1b4ba631c511f305886a","typeString":"literal_string \"https://api.avax.network/ext/bc/C/rpc\""}],"id":3162,"name":"Chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2740,"src":"7911:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Chain_$2740_storage_ptr_$","typeString":"type(struct StdChains.Chain storage pointer)"}},"id":3166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7911:66:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e8b0d92516ee4289145e3b78cea58daac177b1c618beeedbc6cdabd388a6e55","typeString":"literal_string \"avalanche\""},{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}],"id":3160,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3243,"src":"7872:25:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Chain_$2740_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.Chain memory)"}},"id":3167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7872:106:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3168,"nodeType":"ExpressionStatement","src":"7872:106:4"},{"expression":{"arguments":[{"hexValue":"6176616c616e6368655f66756a69","id":3170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8027:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1920d2f80060f1c83444622c7eb5adf4484bed8a537b8d13eae53bd800aa692","typeString":"literal_string \"avalanche_fuji\""},"value":"avalanche_fuji"},{"arguments":[{"hexValue":"4176616c616e6368652046756a69","id":3172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8051:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_522b176494c651b1a4c5779e66ed19f885df62891abfb18fd5e45b69bdabe11b","typeString":"literal_string \"Avalanche Fuji\""},"value":"Avalanche Fuji"},{"hexValue":"3433313133","id":3173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8069:5:4","typeDescriptions":{"typeIdentifier":"t_rational_43113_by_1","typeString":"int_const 43113"},"value":"43113"},{"hexValue":"68747470733a2f2f6170692e617661782d746573742e6e6574776f726b2f6578742f62632f432f727063","id":3174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8076:44:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6621ea822eabf6c190358ea82de0c52d3503dcce8117b3366a8a3bd96eb422d","typeString":"literal_string \"https://api.avax-test.network/ext/bc/C/rpc\""},"value":"https://api.avax-test.network/ext/bc/C/rpc"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_522b176494c651b1a4c5779e66ed19f885df62891abfb18fd5e45b69bdabe11b","typeString":"literal_string \"Avalanche Fuji\""},{"typeIdentifier":"t_rational_43113_by_1","typeString":"int_const 43113"},{"typeIdentifier":"t_stringliteral_d6621ea822eabf6c190358ea82de0c52d3503dcce8117b3366a8a3bd96eb422d","typeString":"literal_string \"https://api.avax-test.network/ext/bc/C/rpc\""}],"id":3171,"name":"Chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2740,"src":"8045:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Chain_$2740_storage_ptr_$","typeString":"type(struct StdChains.Chain storage pointer)"}},"id":3175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8045:76:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1920d2f80060f1c83444622c7eb5adf4484bed8a537b8d13eae53bd800aa692","typeString":"literal_string \"avalanche_fuji\""},{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}],"id":3169,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3243,"src":"7988:25:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Chain_$2740_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.Chain memory)"}},"id":3176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7988:143:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3177,"nodeType":"ExpressionStatement","src":"7988:143:4"},{"expression":{"arguments":[{"hexValue":"626e625f736d6172745f636861696e","id":3179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8167:17:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_fa8b17ae9aa26749f5dc3a3bb333e0019db0c257f3541e870f73bb48b574361e","typeString":"literal_string \"bnb_smart_chain\""},"value":"bnb_smart_chain"},{"arguments":[{"hexValue":"424e4220536d61727420436861696e","id":3181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8192:17:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_3606544ee65d30d7c7f7d6a1f6618e0d836299fa5b85b88d71a59535c6a1550f","typeString":"literal_string \"BNB Smart Chain\""},"value":"BNB Smart Chain"},{"hexValue":"3536","id":3182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8211:2:4","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},{"hexValue":"68747470733a2f2f6273632d6461746173656564312e62696e616e63652e6f7267","id":3183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8215:35:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_e2b4215bd50ab260c8c9f18e36ea07b1f952450853bcf024123d5767a40d4719","typeString":"literal_string \"https://bsc-dataseed1.binance.org\""},"value":"https://bsc-dataseed1.binance.org"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3606544ee65d30d7c7f7d6a1f6618e0d836299fa5b85b88d71a59535c6a1550f","typeString":"literal_string \"BNB Smart Chain\""},{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},{"typeIdentifier":"t_stringliteral_e2b4215bd50ab260c8c9f18e36ea07b1f952450853bcf024123d5767a40d4719","typeString":"literal_string \"https://bsc-dataseed1.binance.org\""}],"id":3180,"name":"Chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2740,"src":"8186:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Chain_$2740_storage_ptr_$","typeString":"type(struct StdChains.Chain storage pointer)"}},"id":3184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8186:65:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fa8b17ae9aa26749f5dc3a3bb333e0019db0c257f3541e870f73bb48b574361e","typeString":"literal_string \"bnb_smart_chain\""},{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}],"id":3178,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3243,"src":"8141:25:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Chain_$2740_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.Chain memory)"}},"id":3185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8141:111:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3186,"nodeType":"ExpressionStatement","src":"8141:111:4"},{"expression":{"arguments":[{"hexValue":"626e625f736d6172745f636861696e5f746573746e6574","id":3188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8288:25:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_1813de9892ab9db3d0c3b0c3eed9c8b820fe0c7e205bed860e6e89f4d7f75f29","typeString":"literal_string \"bnb_smart_chain_testnet\""},"value":"bnb_smart_chain_testnet"},{"arguments":[{"hexValue":"424e4220536d61727420436861696e20546573746e6574","id":3190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8321:25:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b1d88342c4ab079c9a8243ef8dfeb0bb41e1da5dc9fe62ca728dfe4ea21092c","typeString":"literal_string \"BNB Smart Chain Testnet\""},"value":"BNB Smart Chain Testnet"},{"hexValue":"3937","id":3191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8348:2:4","typeDescriptions":{"typeIdentifier":"t_rational_97_by_1","typeString":"int_const 97"},"value":"97"},{"hexValue":"68747470733a2f2f646174612d736565642d7072656273632d312d73312e62696e616e63652e6f72673a38353435","id":3192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8352:48:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_06894ce500210f386acd0844767c4ae19c623595ce2845e4d185bcd99fc926dc","typeString":"literal_string \"https://data-seed-prebsc-1-s1.binance.org:8545\""},"value":"https://data-seed-prebsc-1-s1.binance.org:8545"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b1d88342c4ab079c9a8243ef8dfeb0bb41e1da5dc9fe62ca728dfe4ea21092c","typeString":"literal_string \"BNB Smart Chain Testnet\""},{"typeIdentifier":"t_rational_97_by_1","typeString":"int_const 97"},{"typeIdentifier":"t_stringliteral_06894ce500210f386acd0844767c4ae19c623595ce2845e4d185bcd99fc926dc","typeString":"literal_string \"https://data-seed-prebsc-1-s1.binance.org:8545\""}],"id":3189,"name":"Chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2740,"src":"8315:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Chain_$2740_storage_ptr_$","typeString":"type(struct StdChains.Chain storage pointer)"}},"id":3193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8315:86:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1813de9892ab9db3d0c3b0c3eed9c8b820fe0c7e205bed860e6e89f4d7f75f29","typeString":"literal_string \"bnb_smart_chain_testnet\""},{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}],"id":3187,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3243,"src":"8262:25:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Chain_$2740_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.Chain memory)"}},"id":3194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8262:140:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3195,"nodeType":"ExpressionStatement","src":"8262:140:4"},{"expression":{"arguments":[{"hexValue":"676e6f7369735f636861696e","id":3197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8463:14:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_847b7ed4df59b2dfcdba377bf4ac481c502926169e9af948ee2dd45c0e6df595","typeString":"literal_string \"gnosis_chain\""},"value":"gnosis_chain"},{"arguments":[{"hexValue":"476e6f73697320436861696e","id":3199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8485:14:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_9bfc6ae4a1f5d8ea33b4f631c2f7dfbfa7d613af42ef38137c06d4cd03619b02","typeString":"literal_string \"Gnosis Chain\""},"value":"Gnosis Chain"},{"hexValue":"313030","id":3200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8501:3:4","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},{"hexValue":"68747470733a2f2f7270632e676e6f736973636861696e2e636f6d","id":3201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8506:29:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_127e02590d58e22164456f76136047039faabc2ca27eb41939081a3e775b50df","typeString":"literal_string \"https://rpc.gnosischain.com\""},"value":"https://rpc.gnosischain.com"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9bfc6ae4a1f5d8ea33b4f631c2f7dfbfa7d613af42ef38137c06d4cd03619b02","typeString":"literal_string \"Gnosis Chain\""},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},{"typeIdentifier":"t_stringliteral_127e02590d58e22164456f76136047039faabc2ca27eb41939081a3e775b50df","typeString":"literal_string \"https://rpc.gnosischain.com\""}],"id":3198,"name":"Chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2740,"src":"8479:5:4","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Chain_$2740_storage_ptr_$","typeString":"type(struct StdChains.Chain storage pointer)"}},"id":3202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8479:57:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_847b7ed4df59b2dfcdba377bf4ac481c502926169e9af948ee2dd45c0e6df595","typeString":"literal_string \"gnosis_chain\""},{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}],"id":3196,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3243,"src":"8437:25:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Chain_$2740_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.Chain memory)"}},"id":3203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8437:100:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3204,"nodeType":"ExpressionStatement","src":"8437:100:4"}]},"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"6313:10:4","parameters":{"id":3052,"nodeType":"ParameterList","parameters":[],"src":"6323:2:4"},"returnParameters":{"id":3053,"nodeType":"ParameterList","parameters":[],"src":"6334:0:4"},"scope":3244,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":3243,"nodeType":"FunctionDefinition","src":"8626:301:4","nodes":[],"body":{"id":3242,"nodeType":"Block","src":"8715:212:4","nodes":[],"statements":[{"assignments":[3215],"declarations":[{"constant":false,"id":3215,"mutability":"mutable","name":"rpcUrl","nameLocation":"8739:6:4","nodeType":"VariableDeclaration","scope":3242,"src":"8725:20:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3214,"name":"string","nodeType":"ElementaryTypeName","src":"8725:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":3218,"initialValue":{"expression":{"id":3216,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3211,"src":"8748:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":3217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8754:6:4","memberName":"rpcUrl","nodeType":"MemberAccess","referencedDeclaration":2739,"src":"8748:12:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"8725:35:4"},{"expression":{"id":3223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3219,"name":"defaultRpcUrls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2749,"src":"8770:14:4","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_string_storage_$","typeString":"mapping(string memory => string storage ref)"}},"id":3221,"indexExpression":{"id":3220,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3208,"src":"8785:10:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8770:26:4","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3222,"name":"rpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3215,"src":"8799:6:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8770:35:4","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":3224,"nodeType":"ExpressionStatement","src":"8770:35:4"},{"expression":{"id":3229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3225,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3211,"src":"8815:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":3227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8821:6:4","memberName":"rpcUrl","nodeType":"MemberAccess","referencedDeclaration":2739,"src":"8815:12:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"","id":3228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8830:2:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"src":"8815:17:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3230,"nodeType":"ExpressionStatement","src":"8815:17:4"},{"expression":{"arguments":[{"id":3232,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3208,"src":"8851:10:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":3233,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3211,"src":"8863:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}],"id":3231,"name":"setChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2964,"src":"8842:8:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_Chain_$2740_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.Chain memory)"}},"id":3234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8842:27:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3235,"nodeType":"ExpressionStatement","src":"8842:27:4"},{"expression":{"id":3240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3236,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3211,"src":"8879:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":3238,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8885:6:4","memberName":"rpcUrl","nodeType":"MemberAccess","referencedDeclaration":2739,"src":"8879:12:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3239,"name":"rpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3215,"src":"8894:6:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8879:21:4","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3241,"nodeType":"ExpressionStatement","src":"8879:21:4"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setChainWithDefaultRpcUrl","nameLocation":"8635:25:4","parameters":{"id":3212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3208,"mutability":"mutable","name":"chainAlias","nameLocation":"8675:10:4","nodeType":"VariableDeclaration","scope":3243,"src":"8661:24:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3207,"name":"string","nodeType":"ElementaryTypeName","src":"8661:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3211,"mutability":"mutable","name":"chain","nameLocation":"8700:5:4","nodeType":"VariableDeclaration","scope":3243,"src":"8687:18:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_memory_ptr","typeString":"struct StdChains.Chain"},"typeName":{"id":3210,"nodeType":"UserDefinedTypeName","pathNode":{"id":3209,"name":"Chain","nameLocations":["8687:5:4"],"nodeType":"IdentifierPath","referencedDeclaration":2740,"src":"8687:5:4"},"referencedDeclaration":2740,"src":"8687:5:4","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2740_storage_ptr","typeString":"struct StdChains.Chain"}},"visibility":"internal"}],"src":"8660:46:4"},"returnParameters":{"id":3213,"nodeType":"ParameterList","parameters":[],"src":"8715:0:4"},"scope":3244,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":true,"baseContracts":[],"canonicalName":"StdChains","contractDependencies":[],"contractKind":"contract","documentation":{"id":2714,"nodeType":"StructuredDocumentation","src":"134:1820:4","text":" StdChains provides information about EVM compatible chains that can be used in scripts/tests.\n For each chain, the chain's name, chain ID, and a default RPC URL are provided. Chains are\n identified by their alias, which is the same as the alias in the `[rpc_endpoints]` section of\n the `foundry.toml` file. For best UX, ensure the alias in the `foundry.toml` file match the\n alias used in this contract, which can be found as the first argument to the\n `setChainWithDefaultRpcUrl` call in the `initialize` function.\n There are two main ways to use this contract:\n 1. Set a chain with `setChain(string memory chainAlias, Chain memory chain)`\n 2. Get a chain with `getChain(string memory chainAlias)` or `getChain(uint256 chainId)`.\n The first time either of those are used, chains are initialized with the default set of RPC URLs.\n This is done in `initialize`, which uses `setChainWithDefaultRpcUrl`. Defaults are recorded in\n `defaultRpcUrls`.\n The `setChain` function is straightforward, and it simply saves off the given chain data.\n The `getChain` methods use `getChainWithUpdatedRpcUrl` to return a chain. For example, let's say\n we want to retrieve `mainnet`'s RPC URL:\n - If you haven't set any mainnet chain info with `setChain` and you haven't specified that\n chain in `foundry.toml`, the default data and RPC URL will be returned.\n - If you have set a mainnet RPC URL in `foundry.toml` it will return that, if valid (e.g. if\n a URL is given or if an environment variable is given and that environment variable exists).\n Otherwise, the default data is returned.\n - If you specified data with `setChain` it will return that.\n Summarizing the above, the prioritization hierarchy is `setChain` -> `foundry.toml` -> defaults."},"fullyImplemented":true,"linearizedBaseContracts":[3244],"name":"StdChains","nameLocation":"1973:9:4","scope":3245,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":4} \ No newline at end of file diff --git a/out/StdCheats.sol/StdCheats.json b/out/StdCheats.sol/StdCheats.json deleted file mode 100644 index 914a5495..00000000 --- a/out/StdCheats.sol/StdCheats.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/forge-std/src/StdCheats.sol\":\"StdCheats\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/forge-std/src/StdCheats.sol":"StdCheats"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/forge-std/src/StdCheats.sol","id":5182,"exportedSymbols":{"StdCheats":[5181],"StdCheatsSafe":[4792],"StdStorage":[6088],"Vm":[9352],"stdStorage":[7522]},"nodeType":"SourceUnit","src":"32:20362:5","nodes":[{"id":3246,"nodeType":"PragmaDirective","src":"32:31:5","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":3247,"nodeType":"PragmaDirective","src":"65:33:5","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":3250,"nodeType":"ImportDirective","src":"100:56:5","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":5182,"sourceUnit":7523,"symbolAliases":[{"foreign":{"id":3248,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6088,"src":"108:10:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":3249,"name":"stdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7522,"src":"120:10:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3252,"nodeType":"ImportDirective","src":"157:28:5","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":5182,"sourceUnit":9353,"symbolAliases":[{"foreign":{"id":3251,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9352,"src":"165:2:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4792,"nodeType":"ContractDefinition","src":"187:17000:5","nodes":[{"id":3269,"nodeType":"VariableDeclaration","src":"225:84:5","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"245:2:5","scope":4792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"},"typeName":{"id":3254,"nodeType":"UserDefinedTypeName","pathNode":{"id":3253,"name":"Vm","nameLocations":["225:2:5"],"nodeType":"IdentifierPath","referencedDeclaration":9352,"src":"225:2:5"},"referencedDeclaration":9352,"src":"225:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":3263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"287:17:5","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":3262,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"277:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"277:28:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3261,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"269:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3260,"name":"uint256","nodeType":"ElementaryTypeName","src":"269:7:5","typeDescriptions":{}}},"id":3265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"269:37:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"261:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3258,"name":"uint160","nodeType":"ElementaryTypeName","src":"261:7:5","typeDescriptions":{}}},"id":3266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"261:46:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"253:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3256,"name":"address","nodeType":"ElementaryTypeName","src":"253:7:5","typeDescriptions":{}}},"id":3267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"253:55:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3255,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9352,"src":"250:2:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$9352_$","typeString":"type(contract Vm)"}},"id":3268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"250:59:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"visibility":"private"},{"id":3271,"nodeType":"VariableDeclaration","src":"316:27:5","nodes":[],"constant":false,"mutability":"mutable","name":"gasMeteringOff","nameLocation":"329:14:5","scope":4792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3270,"name":"bool","nodeType":"ElementaryTypeName","src":"316:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":3288,"nodeType":"StructDefinition","src":"588:325:5","nodes":[],"canonicalName":"StdCheatsSafe.RawTx1559","members":[{"constant":false,"id":3274,"mutability":"mutable","name":"arguments","nameLocation":"624:9:5","nodeType":"VariableDeclaration","scope":3288,"src":"615:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3272,"name":"string","nodeType":"ElementaryTypeName","src":"615:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3273,"nodeType":"ArrayTypeName","src":"615:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3276,"mutability":"mutable","name":"contractAddress","nameLocation":"651:15:5","nodeType":"VariableDeclaration","scope":3288,"src":"643:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3275,"name":"address","nodeType":"ElementaryTypeName","src":"643:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3278,"mutability":"mutable","name":"contractName","nameLocation":"683:12:5","nodeType":"VariableDeclaration","scope":3288,"src":"676:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3277,"name":"string","nodeType":"ElementaryTypeName","src":"676:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3280,"mutability":"mutable","name":"functionSig","nameLocation":"750:11:5","nodeType":"VariableDeclaration","scope":3288,"src":"743:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3279,"name":"string","nodeType":"ElementaryTypeName","src":"743:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3282,"mutability":"mutable","name":"hash","nameLocation":"779:4:5","nodeType":"VariableDeclaration","scope":3288,"src":"771:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"771:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3285,"mutability":"mutable","name":"txDetail","nameLocation":"841:8:5","nodeType":"VariableDeclaration","scope":3288,"src":"825:24:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail"},"typeName":{"id":3284,"nodeType":"UserDefinedTypeName","pathNode":{"id":3283,"name":"RawTx1559Detail","nameLocations":["825:15:5"],"nodeType":"IdentifierPath","referencedDeclaration":3307,"src":"825:15:5"},"referencedDeclaration":3307,"src":"825:15:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail"}},"visibility":"internal"},{"constant":false,"id":3287,"mutability":"mutable","name":"opcode","nameLocation":"900:6:5","nodeType":"VariableDeclaration","scope":3288,"src":"893:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3286,"name":"string","nodeType":"ElementaryTypeName","src":"893:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"RawTx1559","nameLocation":"595:9:5","scope":4792,"visibility":"public"},{"id":3307,"nodeType":"StructDefinition","src":"919:208:5","nodes":[],"canonicalName":"StdCheatsSafe.RawTx1559Detail","members":[{"constant":false,"id":3292,"mutability":"mutable","name":"accessList","nameLocation":"965:10:5","nodeType":"VariableDeclaration","scope":3307,"src":"952:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3399_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"},"typeName":{"baseType":{"id":3290,"nodeType":"UserDefinedTypeName","pathNode":{"id":3289,"name":"AccessList","nameLocations":["952:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3399,"src":"952:10:5"},"referencedDeclaration":3399,"src":"952:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_AccessList_$3399_storage_ptr","typeString":"struct StdCheatsSafe.AccessList"}},"id":3291,"nodeType":"ArrayTypeName","src":"952:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3399_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"}},"visibility":"internal"},{"constant":false,"id":3294,"mutability":"mutable","name":"data","nameLocation":"991:4:5","nodeType":"VariableDeclaration","scope":3307,"src":"985:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3293,"name":"bytes","nodeType":"ElementaryTypeName","src":"985:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3296,"mutability":"mutable","name":"from","nameLocation":"1013:4:5","nodeType":"VariableDeclaration","scope":3307,"src":"1005:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3295,"name":"address","nodeType":"ElementaryTypeName","src":"1005:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3298,"mutability":"mutable","name":"gas","nameLocation":"1033:3:5","nodeType":"VariableDeclaration","scope":3307,"src":"1027:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3297,"name":"bytes","nodeType":"ElementaryTypeName","src":"1027:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3300,"mutability":"mutable","name":"nonce","nameLocation":"1052:5:5","nodeType":"VariableDeclaration","scope":3307,"src":"1046:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3299,"name":"bytes","nodeType":"ElementaryTypeName","src":"1046:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3302,"mutability":"mutable","name":"to","nameLocation":"1075:2:5","nodeType":"VariableDeclaration","scope":3307,"src":"1067:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3301,"name":"address","nodeType":"ElementaryTypeName","src":"1067:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3304,"mutability":"mutable","name":"txType","nameLocation":"1093:6:5","nodeType":"VariableDeclaration","scope":3307,"src":"1087:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3303,"name":"bytes","nodeType":"ElementaryTypeName","src":"1087:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3306,"mutability":"mutable","name":"value","nameLocation":"1115:5:5","nodeType":"VariableDeclaration","scope":3307,"src":"1109:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3305,"name":"bytes","nodeType":"ElementaryTypeName","src":"1109:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"RawTx1559Detail","nameLocation":"926:15:5","scope":4792,"visibility":"public"},{"id":3324,"nodeType":"StructDefinition","src":"1133:215:5","nodes":[],"canonicalName":"StdCheatsSafe.Tx1559","members":[{"constant":false,"id":3310,"mutability":"mutable","name":"arguments","nameLocation":"1166:9:5","nodeType":"VariableDeclaration","scope":3324,"src":"1157:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3308,"name":"string","nodeType":"ElementaryTypeName","src":"1157:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3309,"nodeType":"ArrayTypeName","src":"1157:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3312,"mutability":"mutable","name":"contractAddress","nameLocation":"1193:15:5","nodeType":"VariableDeclaration","scope":3324,"src":"1185:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3311,"name":"address","nodeType":"ElementaryTypeName","src":"1185:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3314,"mutability":"mutable","name":"contractName","nameLocation":"1225:12:5","nodeType":"VariableDeclaration","scope":3324,"src":"1218:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3313,"name":"string","nodeType":"ElementaryTypeName","src":"1218:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3316,"mutability":"mutable","name":"functionSig","nameLocation":"1254:11:5","nodeType":"VariableDeclaration","scope":3324,"src":"1247:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3315,"name":"string","nodeType":"ElementaryTypeName","src":"1247:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3318,"mutability":"mutable","name":"hash","nameLocation":"1283:4:5","nodeType":"VariableDeclaration","scope":3324,"src":"1275:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3317,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1275:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3321,"mutability":"mutable","name":"txDetail","nameLocation":"1310:8:5","nodeType":"VariableDeclaration","scope":3324,"src":"1297:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"},"typeName":{"id":3320,"nodeType":"UserDefinedTypeName","pathNode":{"id":3319,"name":"Tx1559Detail","nameLocations":["1297:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":3343,"src":"1297:12:5"},"referencedDeclaration":3343,"src":"1297:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"}},"visibility":"internal"},{"constant":false,"id":3323,"mutability":"mutable","name":"opcode","nameLocation":"1335:6:5","nodeType":"VariableDeclaration","scope":3324,"src":"1328:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3322,"name":"string","nodeType":"ElementaryTypeName","src":"1328:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"Tx1559","nameLocation":"1140:6:5","scope":4792,"visibility":"public"},{"id":3343,"nodeType":"StructDefinition","src":"1354:213:5","nodes":[],"canonicalName":"StdCheatsSafe.Tx1559Detail","members":[{"constant":false,"id":3328,"mutability":"mutable","name":"accessList","nameLocation":"1397:10:5","nodeType":"VariableDeclaration","scope":3343,"src":"1384:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3399_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"},"typeName":{"baseType":{"id":3326,"nodeType":"UserDefinedTypeName","pathNode":{"id":3325,"name":"AccessList","nameLocations":["1384:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3399,"src":"1384:10:5"},"referencedDeclaration":3399,"src":"1384:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_AccessList_$3399_storage_ptr","typeString":"struct StdCheatsSafe.AccessList"}},"id":3327,"nodeType":"ArrayTypeName","src":"1384:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3399_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"}},"visibility":"internal"},{"constant":false,"id":3330,"mutability":"mutable","name":"data","nameLocation":"1423:4:5","nodeType":"VariableDeclaration","scope":3343,"src":"1417:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3329,"name":"bytes","nodeType":"ElementaryTypeName","src":"1417:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3332,"mutability":"mutable","name":"from","nameLocation":"1445:4:5","nodeType":"VariableDeclaration","scope":3343,"src":"1437:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3331,"name":"address","nodeType":"ElementaryTypeName","src":"1437:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3334,"mutability":"mutable","name":"gas","nameLocation":"1467:3:5","nodeType":"VariableDeclaration","scope":3343,"src":"1459:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3333,"name":"uint256","nodeType":"ElementaryTypeName","src":"1459:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3336,"mutability":"mutable","name":"nonce","nameLocation":"1488:5:5","nodeType":"VariableDeclaration","scope":3343,"src":"1480:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3335,"name":"uint256","nodeType":"ElementaryTypeName","src":"1480:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3338,"mutability":"mutable","name":"to","nameLocation":"1511:2:5","nodeType":"VariableDeclaration","scope":3343,"src":"1503:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3337,"name":"address","nodeType":"ElementaryTypeName","src":"1503:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3340,"mutability":"mutable","name":"txType","nameLocation":"1531:6:5","nodeType":"VariableDeclaration","scope":3343,"src":"1523:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3339,"name":"uint256","nodeType":"ElementaryTypeName","src":"1523:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3342,"mutability":"mutable","name":"value","nameLocation":"1555:5:5","nodeType":"VariableDeclaration","scope":3343,"src":"1547:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3341,"name":"uint256","nodeType":"ElementaryTypeName","src":"1547:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Tx1559Detail","nameLocation":"1361:12:5","scope":4792,"visibility":"public"},{"id":3360,"nodeType":"StructDefinition","src":"1818:221:5","nodes":[],"canonicalName":"StdCheatsSafe.TxLegacy","members":[{"constant":false,"id":3346,"mutability":"mutable","name":"arguments","nameLocation":"1853:9:5","nodeType":"VariableDeclaration","scope":3360,"src":"1844:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3344,"name":"string","nodeType":"ElementaryTypeName","src":"1844:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3345,"nodeType":"ArrayTypeName","src":"1844:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3348,"mutability":"mutable","name":"contractAddress","nameLocation":"1880:15:5","nodeType":"VariableDeclaration","scope":3360,"src":"1872:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3347,"name":"address","nodeType":"ElementaryTypeName","src":"1872:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3350,"mutability":"mutable","name":"contractName","nameLocation":"1912:12:5","nodeType":"VariableDeclaration","scope":3360,"src":"1905:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3349,"name":"string","nodeType":"ElementaryTypeName","src":"1905:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3352,"mutability":"mutable","name":"functionSig","nameLocation":"1941:11:5","nodeType":"VariableDeclaration","scope":3360,"src":"1934:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3351,"name":"string","nodeType":"ElementaryTypeName","src":"1934:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3354,"mutability":"mutable","name":"hash","nameLocation":"1969:4:5","nodeType":"VariableDeclaration","scope":3360,"src":"1962:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3353,"name":"string","nodeType":"ElementaryTypeName","src":"1962:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3356,"mutability":"mutable","name":"opcode","nameLocation":"1990:6:5","nodeType":"VariableDeclaration","scope":3360,"src":"1983:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3355,"name":"string","nodeType":"ElementaryTypeName","src":"1983:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3359,"mutability":"mutable","name":"transaction","nameLocation":"2021:11:5","nodeType":"VariableDeclaration","scope":3360,"src":"2006:26:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_TxDetailLegacy_$3393_storage_ptr","typeString":"struct StdCheatsSafe.TxDetailLegacy"},"typeName":{"id":3358,"nodeType":"UserDefinedTypeName","pathNode":{"id":3357,"name":"TxDetailLegacy","nameLocations":["2006:14:5"],"nodeType":"IdentifierPath","referencedDeclaration":3393,"src":"2006:14:5"},"referencedDeclaration":3393,"src":"2006:14:5","typeDescriptions":{"typeIdentifier":"t_struct$_TxDetailLegacy_$3393_storage_ptr","typeString":"struct StdCheatsSafe.TxDetailLegacy"}},"visibility":"internal"}],"name":"TxLegacy","nameLocation":"1825:8:5","scope":4792,"visibility":"public"},{"id":3393,"nodeType":"StructDefinition","src":"2045:366:5","nodes":[],"canonicalName":"StdCheatsSafe.TxDetailLegacy","members":[{"constant":false,"id":3364,"mutability":"mutable","name":"accessList","nameLocation":"2090:10:5","nodeType":"VariableDeclaration","scope":3393,"src":"2077:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3399_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"},"typeName":{"baseType":{"id":3362,"nodeType":"UserDefinedTypeName","pathNode":{"id":3361,"name":"AccessList","nameLocations":["2077:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3399,"src":"2077:10:5"},"referencedDeclaration":3399,"src":"2077:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_AccessList_$3399_storage_ptr","typeString":"struct StdCheatsSafe.AccessList"}},"id":3363,"nodeType":"ArrayTypeName","src":"2077:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3399_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"}},"visibility":"internal"},{"constant":false,"id":3366,"mutability":"mutable","name":"chainId","nameLocation":"2118:7:5","nodeType":"VariableDeclaration","scope":3393,"src":"2110:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3365,"name":"uint256","nodeType":"ElementaryTypeName","src":"2110:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3368,"mutability":"mutable","name":"data","nameLocation":"2141:4:5","nodeType":"VariableDeclaration","scope":3393,"src":"2135:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3367,"name":"bytes","nodeType":"ElementaryTypeName","src":"2135:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3370,"mutability":"mutable","name":"from","nameLocation":"2163:4:5","nodeType":"VariableDeclaration","scope":3393,"src":"2155:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3369,"name":"address","nodeType":"ElementaryTypeName","src":"2155:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3372,"mutability":"mutable","name":"gas","nameLocation":"2185:3:5","nodeType":"VariableDeclaration","scope":3393,"src":"2177:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3371,"name":"uint256","nodeType":"ElementaryTypeName","src":"2177:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3374,"mutability":"mutable","name":"gasPrice","nameLocation":"2206:8:5","nodeType":"VariableDeclaration","scope":3393,"src":"2198:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3373,"name":"uint256","nodeType":"ElementaryTypeName","src":"2198:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3376,"mutability":"mutable","name":"hash","nameLocation":"2232:4:5","nodeType":"VariableDeclaration","scope":3393,"src":"2224:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2224:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3378,"mutability":"mutable","name":"nonce","nameLocation":"2254:5:5","nodeType":"VariableDeclaration","scope":3393,"src":"2246:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3377,"name":"uint256","nodeType":"ElementaryTypeName","src":"2246:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3380,"mutability":"mutable","name":"opcode","nameLocation":"2276:6:5","nodeType":"VariableDeclaration","scope":3393,"src":"2269:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":3379,"name":"bytes1","nodeType":"ElementaryTypeName","src":"2269:6:5","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"},{"constant":false,"id":3382,"mutability":"mutable","name":"r","nameLocation":"2300:1:5","nodeType":"VariableDeclaration","scope":3393,"src":"2292:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3381,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2292:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3384,"mutability":"mutable","name":"s","nameLocation":"2319:1:5","nodeType":"VariableDeclaration","scope":3393,"src":"2311:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3383,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2311:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3386,"mutability":"mutable","name":"txType","nameLocation":"2338:6:5","nodeType":"VariableDeclaration","scope":3393,"src":"2330:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3385,"name":"uint256","nodeType":"ElementaryTypeName","src":"2330:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3388,"mutability":"mutable","name":"to","nameLocation":"2362:2:5","nodeType":"VariableDeclaration","scope":3393,"src":"2354:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3387,"name":"address","nodeType":"ElementaryTypeName","src":"2354:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3390,"mutability":"mutable","name":"v","nameLocation":"2380:1:5","nodeType":"VariableDeclaration","scope":3393,"src":"2374:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3389,"name":"uint8","nodeType":"ElementaryTypeName","src":"2374:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3392,"mutability":"mutable","name":"value","nameLocation":"2399:5:5","nodeType":"VariableDeclaration","scope":3393,"src":"2391:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3391,"name":"uint256","nodeType":"ElementaryTypeName","src":"2391:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"TxDetailLegacy","nameLocation":"2052:14:5","scope":4792,"visibility":"public"},{"id":3399,"nodeType":"StructDefinition","src":"2417:87:5","nodes":[],"canonicalName":"StdCheatsSafe.AccessList","members":[{"constant":false,"id":3395,"mutability":"mutable","name":"accessAddress","nameLocation":"2453:13:5","nodeType":"VariableDeclaration","scope":3399,"src":"2445:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3394,"name":"address","nodeType":"ElementaryTypeName","src":"2445:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3398,"mutability":"mutable","name":"storageKeys","nameLocation":"2486:11:5","nodeType":"VariableDeclaration","scope":3399,"src":"2476:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3396,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2476:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3397,"nodeType":"ArrayTypeName","src":"2476:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"name":"AccessList","nameLocation":"2424:10:5","scope":4792,"visibility":"public"},{"id":3428,"nodeType":"StructDefinition","src":"2720:385:5","nodes":[],"canonicalName":"StdCheatsSafe.RawReceipt","members":[{"constant":false,"id":3401,"mutability":"mutable","name":"blockHash","nameLocation":"2756:9:5","nodeType":"VariableDeclaration","scope":3428,"src":"2748:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3400,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2748:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3403,"mutability":"mutable","name":"blockNumber","nameLocation":"2781:11:5","nodeType":"VariableDeclaration","scope":3428,"src":"2775:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3402,"name":"bytes","nodeType":"ElementaryTypeName","src":"2775:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3405,"mutability":"mutable","name":"contractAddress","nameLocation":"2810:15:5","nodeType":"VariableDeclaration","scope":3428,"src":"2802:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3404,"name":"address","nodeType":"ElementaryTypeName","src":"2802:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3407,"mutability":"mutable","name":"cumulativeGasUsed","nameLocation":"2841:17:5","nodeType":"VariableDeclaration","scope":3428,"src":"2835:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3406,"name":"bytes","nodeType":"ElementaryTypeName","src":"2835:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3409,"mutability":"mutable","name":"effectiveGasPrice","nameLocation":"2874:17:5","nodeType":"VariableDeclaration","scope":3428,"src":"2868:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3408,"name":"bytes","nodeType":"ElementaryTypeName","src":"2868:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3411,"mutability":"mutable","name":"from","nameLocation":"2909:4:5","nodeType":"VariableDeclaration","scope":3428,"src":"2901:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3410,"name":"address","nodeType":"ElementaryTypeName","src":"2901:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3413,"mutability":"mutable","name":"gasUsed","nameLocation":"2929:7:5","nodeType":"VariableDeclaration","scope":3428,"src":"2923:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3412,"name":"bytes","nodeType":"ElementaryTypeName","src":"2923:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3417,"mutability":"mutable","name":"logs","nameLocation":"2962:4:5","nodeType":"VariableDeclaration","scope":3428,"src":"2946:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog[]"},"typeName":{"baseType":{"id":3415,"nodeType":"UserDefinedTypeName","pathNode":{"id":3414,"name":"RawReceiptLog","nameLocations":["2946:13:5"],"nodeType":"IdentifierPath","referencedDeclaration":3525,"src":"2946:13:5"},"referencedDeclaration":3525,"src":"2946:13:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3525_storage_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog"}},"id":3416,"nodeType":"ArrayTypeName","src":"2946:15:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog[]"}},"visibility":"internal"},{"constant":false,"id":3419,"mutability":"mutable","name":"logsBloom","nameLocation":"2982:9:5","nodeType":"VariableDeclaration","scope":3428,"src":"2976:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3418,"name":"bytes","nodeType":"ElementaryTypeName","src":"2976:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3421,"mutability":"mutable","name":"status","nameLocation":"3007:6:5","nodeType":"VariableDeclaration","scope":3428,"src":"3001:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3420,"name":"bytes","nodeType":"ElementaryTypeName","src":"3001:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3423,"mutability":"mutable","name":"to","nameLocation":"3031:2:5","nodeType":"VariableDeclaration","scope":3428,"src":"3023:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3422,"name":"address","nodeType":"ElementaryTypeName","src":"3023:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3425,"mutability":"mutable","name":"transactionHash","nameLocation":"3051:15:5","nodeType":"VariableDeclaration","scope":3428,"src":"3043:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3424,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3043:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3427,"mutability":"mutable","name":"transactionIndex","nameLocation":"3082:16:5","nodeType":"VariableDeclaration","scope":3428,"src":"3076:22:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3426,"name":"bytes","nodeType":"ElementaryTypeName","src":"3076:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"RawReceipt","nameLocation":"2727:10:5","scope":4792,"visibility":"public"},{"id":3457,"nodeType":"StructDefinition","src":"3111:391:5","nodes":[],"canonicalName":"StdCheatsSafe.Receipt","members":[{"constant":false,"id":3430,"mutability":"mutable","name":"blockHash","nameLocation":"3144:9:5","nodeType":"VariableDeclaration","scope":3457,"src":"3136:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3136:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3432,"mutability":"mutable","name":"blockNumber","nameLocation":"3171:11:5","nodeType":"VariableDeclaration","scope":3457,"src":"3163:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3431,"name":"uint256","nodeType":"ElementaryTypeName","src":"3163:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3434,"mutability":"mutable","name":"contractAddress","nameLocation":"3200:15:5","nodeType":"VariableDeclaration","scope":3457,"src":"3192:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3433,"name":"address","nodeType":"ElementaryTypeName","src":"3192:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3436,"mutability":"mutable","name":"cumulativeGasUsed","nameLocation":"3233:17:5","nodeType":"VariableDeclaration","scope":3457,"src":"3225:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3435,"name":"uint256","nodeType":"ElementaryTypeName","src":"3225:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3438,"mutability":"mutable","name":"effectiveGasPrice","nameLocation":"3268:17:5","nodeType":"VariableDeclaration","scope":3457,"src":"3260:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3437,"name":"uint256","nodeType":"ElementaryTypeName","src":"3260:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3440,"mutability":"mutable","name":"from","nameLocation":"3303:4:5","nodeType":"VariableDeclaration","scope":3457,"src":"3295:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3439,"name":"address","nodeType":"ElementaryTypeName","src":"3295:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3442,"mutability":"mutable","name":"gasUsed","nameLocation":"3325:7:5","nodeType":"VariableDeclaration","scope":3457,"src":"3317:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3441,"name":"uint256","nodeType":"ElementaryTypeName","src":"3317:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3446,"mutability":"mutable","name":"logs","nameLocation":"3355:4:5","nodeType":"VariableDeclaration","scope":3457,"src":"3342:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"},"typeName":{"baseType":{"id":3444,"nodeType":"UserDefinedTypeName","pathNode":{"id":3443,"name":"ReceiptLog","nameLocations":["3342:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3545,"src":"3342:10:5"},"referencedDeclaration":3545,"src":"3342:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog"}},"id":3445,"nodeType":"ArrayTypeName","src":"3342:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"}},"visibility":"internal"},{"constant":false,"id":3448,"mutability":"mutable","name":"logsBloom","nameLocation":"3375:9:5","nodeType":"VariableDeclaration","scope":3457,"src":"3369:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3447,"name":"bytes","nodeType":"ElementaryTypeName","src":"3369:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3450,"mutability":"mutable","name":"status","nameLocation":"3402:6:5","nodeType":"VariableDeclaration","scope":3457,"src":"3394:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3449,"name":"uint256","nodeType":"ElementaryTypeName","src":"3394:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3452,"mutability":"mutable","name":"to","nameLocation":"3426:2:5","nodeType":"VariableDeclaration","scope":3457,"src":"3418:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3451,"name":"address","nodeType":"ElementaryTypeName","src":"3418:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3454,"mutability":"mutable","name":"transactionHash","nameLocation":"3446:15:5","nodeType":"VariableDeclaration","scope":3457,"src":"3438:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3453,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3438:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3456,"mutability":"mutable","name":"transactionIndex","nameLocation":"3479:16:5","nodeType":"VariableDeclaration","scope":3457,"src":"3471:24:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3455,"name":"uint256","nodeType":"ElementaryTypeName","src":"3471:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Receipt","nameLocation":"3118:7:5","scope":4792,"visibility":"public"},{"id":3480,"nodeType":"StructDefinition","src":"3625:227:5","nodes":[],"canonicalName":"StdCheatsSafe.EIP1559ScriptArtifact","members":[{"constant":false,"id":3460,"mutability":"mutable","name":"libraries","nameLocation":"3673:9:5","nodeType":"VariableDeclaration","scope":3480,"src":"3664:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3458,"name":"string","nodeType":"ElementaryTypeName","src":"3664:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3459,"nodeType":"ArrayTypeName","src":"3664:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3462,"mutability":"mutable","name":"path","nameLocation":"3699:4:5","nodeType":"VariableDeclaration","scope":3480,"src":"3692:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3461,"name":"string","nodeType":"ElementaryTypeName","src":"3692:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3465,"mutability":"mutable","name":"pending","nameLocation":"3722:7:5","nodeType":"VariableDeclaration","scope":3480,"src":"3713:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3463,"name":"string","nodeType":"ElementaryTypeName","src":"3713:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3464,"nodeType":"ArrayTypeName","src":"3713:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3469,"mutability":"mutable","name":"receipts","nameLocation":"3749:8:5","nodeType":"VariableDeclaration","scope":3480,"src":"3739:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"},"typeName":{"baseType":{"id":3467,"nodeType":"UserDefinedTypeName","pathNode":{"id":3466,"name":"Receipt","nameLocations":["3739:7:5"],"nodeType":"IdentifierPath","referencedDeclaration":3457,"src":"3739:7:5"},"referencedDeclaration":3457,"src":"3739:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"id":3468,"nodeType":"ArrayTypeName","src":"3739:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"}},"visibility":"internal"},{"constant":false,"id":3471,"mutability":"mutable","name":"timestamp","nameLocation":"3775:9:5","nodeType":"VariableDeclaration","scope":3480,"src":"3767:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3470,"name":"uint256","nodeType":"ElementaryTypeName","src":"3767:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3475,"mutability":"mutable","name":"transactions","nameLocation":"3803:12:5","nodeType":"VariableDeclaration","scope":3480,"src":"3794:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"},"typeName":{"baseType":{"id":3473,"nodeType":"UserDefinedTypeName","pathNode":{"id":3472,"name":"Tx1559","nameLocations":["3794:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":3324,"src":"3794:6:5"},"referencedDeclaration":3324,"src":"3794:6:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"id":3474,"nodeType":"ArrayTypeName","src":"3794:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"}},"visibility":"internal"},{"constant":false,"id":3479,"mutability":"mutable","name":"txReturns","nameLocation":"3836:9:5","nodeType":"VariableDeclaration","scope":3480,"src":"3825:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3550_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn[]"},"typeName":{"baseType":{"id":3477,"nodeType":"UserDefinedTypeName","pathNode":{"id":3476,"name":"TxReturn","nameLocations":["3825:8:5"],"nodeType":"IdentifierPath","referencedDeclaration":3550,"src":"3825:8:5"},"referencedDeclaration":3550,"src":"3825:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_TxReturn_$3550_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn"}},"id":3478,"nodeType":"ArrayTypeName","src":"3825:10:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3550_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn[]"}},"visibility":"internal"}],"name":"EIP1559ScriptArtifact","nameLocation":"3632:21:5","scope":4792,"visibility":"public"},{"id":3503,"nodeType":"StructDefinition","src":"3858:236:5","nodes":[],"canonicalName":"StdCheatsSafe.RawEIP1559ScriptArtifact","members":[{"constant":false,"id":3483,"mutability":"mutable","name":"libraries","nameLocation":"3909:9:5","nodeType":"VariableDeclaration","scope":3503,"src":"3900:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3481,"name":"string","nodeType":"ElementaryTypeName","src":"3900:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3482,"nodeType":"ArrayTypeName","src":"3900:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3485,"mutability":"mutable","name":"path","nameLocation":"3935:4:5","nodeType":"VariableDeclaration","scope":3503,"src":"3928:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3484,"name":"string","nodeType":"ElementaryTypeName","src":"3928:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3488,"mutability":"mutable","name":"pending","nameLocation":"3958:7:5","nodeType":"VariableDeclaration","scope":3503,"src":"3949:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3486,"name":"string","nodeType":"ElementaryTypeName","src":"3949:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3487,"nodeType":"ArrayTypeName","src":"3949:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3492,"mutability":"mutable","name":"receipts","nameLocation":"3988:8:5","nodeType":"VariableDeclaration","scope":3503,"src":"3975:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"},"typeName":{"baseType":{"id":3490,"nodeType":"UserDefinedTypeName","pathNode":{"id":3489,"name":"RawReceipt","nameLocations":["3975:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3428,"src":"3975:10:5"},"referencedDeclaration":3428,"src":"3975:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt"}},"id":3491,"nodeType":"ArrayTypeName","src":"3975:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"}},"visibility":"internal"},{"constant":false,"id":3496,"mutability":"mutable","name":"txReturns","nameLocation":"4017:9:5","nodeType":"VariableDeclaration","scope":3503,"src":"4006:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3550_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn[]"},"typeName":{"baseType":{"id":3494,"nodeType":"UserDefinedTypeName","pathNode":{"id":3493,"name":"TxReturn","nameLocations":["4006:8:5"],"nodeType":"IdentifierPath","referencedDeclaration":3550,"src":"4006:8:5"},"referencedDeclaration":3550,"src":"4006:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_TxReturn_$3550_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn"}},"id":3495,"nodeType":"ArrayTypeName","src":"4006:10:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3550_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn[]"}},"visibility":"internal"},{"constant":false,"id":3498,"mutability":"mutable","name":"timestamp","nameLocation":"4044:9:5","nodeType":"VariableDeclaration","scope":3503,"src":"4036:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3497,"name":"uint256","nodeType":"ElementaryTypeName","src":"4036:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3502,"mutability":"mutable","name":"transactions","nameLocation":"4075:12:5","nodeType":"VariableDeclaration","scope":3503,"src":"4063:24:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"},"typeName":{"baseType":{"id":3500,"nodeType":"UserDefinedTypeName","pathNode":{"id":3499,"name":"RawTx1559","nameLocations":["4063:9:5"],"nodeType":"IdentifierPath","referencedDeclaration":3288,"src":"4063:9:5"},"referencedDeclaration":3288,"src":"4063:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559"}},"id":3501,"nodeType":"ArrayTypeName","src":"4063:11:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"}},"visibility":"internal"}],"name":"RawEIP1559ScriptArtifact","nameLocation":"3865:24:5","scope":4792,"visibility":"public"},{"id":3525,"nodeType":"StructDefinition","src":"4100:334:5","nodes":[],"canonicalName":"StdCheatsSafe.RawReceiptLog","members":[{"constant":false,"id":3505,"mutability":"mutable","name":"logAddress","nameLocation":"4171:10:5","nodeType":"VariableDeclaration","scope":3525,"src":"4163:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3504,"name":"address","nodeType":"ElementaryTypeName","src":"4163:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3507,"mutability":"mutable","name":"blockHash","nameLocation":"4199:9:5","nodeType":"VariableDeclaration","scope":3525,"src":"4191:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3506,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4191:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3509,"mutability":"mutable","name":"blockNumber","nameLocation":"4224:11:5","nodeType":"VariableDeclaration","scope":3525,"src":"4218:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3508,"name":"bytes","nodeType":"ElementaryTypeName","src":"4218:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3511,"mutability":"mutable","name":"data","nameLocation":"4251:4:5","nodeType":"VariableDeclaration","scope":3525,"src":"4245:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3510,"name":"bytes","nodeType":"ElementaryTypeName","src":"4245:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3513,"mutability":"mutable","name":"logIndex","nameLocation":"4271:8:5","nodeType":"VariableDeclaration","scope":3525,"src":"4265:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3512,"name":"bytes","nodeType":"ElementaryTypeName","src":"4265:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3515,"mutability":"mutable","name":"removed","nameLocation":"4294:7:5","nodeType":"VariableDeclaration","scope":3525,"src":"4289:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3514,"name":"bool","nodeType":"ElementaryTypeName","src":"4289:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3518,"mutability":"mutable","name":"topics","nameLocation":"4321:6:5","nodeType":"VariableDeclaration","scope":3525,"src":"4311:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3516,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4311:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3517,"nodeType":"ArrayTypeName","src":"4311:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":3520,"mutability":"mutable","name":"transactionHash","nameLocation":"4345:15:5","nodeType":"VariableDeclaration","scope":3525,"src":"4337:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4337:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3522,"mutability":"mutable","name":"transactionIndex","nameLocation":"4376:16:5","nodeType":"VariableDeclaration","scope":3525,"src":"4370:22:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3521,"name":"bytes","nodeType":"ElementaryTypeName","src":"4370:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3524,"mutability":"mutable","name":"transactionLogIndex","nameLocation":"4408:19:5","nodeType":"VariableDeclaration","scope":3525,"src":"4402:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3523,"name":"bytes","nodeType":"ElementaryTypeName","src":"4402:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"RawReceiptLog","nameLocation":"4107:13:5","scope":4792,"visibility":"public"},{"id":3545,"nodeType":"StructDefinition","src":"4440:306:5","nodes":[],"canonicalName":"StdCheatsSafe.ReceiptLog","members":[{"constant":false,"id":3527,"mutability":"mutable","name":"logAddress","nameLocation":"4508:10:5","nodeType":"VariableDeclaration","scope":3545,"src":"4500:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3526,"name":"address","nodeType":"ElementaryTypeName","src":"4500:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3529,"mutability":"mutable","name":"blockHash","nameLocation":"4536:9:5","nodeType":"VariableDeclaration","scope":3545,"src":"4528:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3528,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4528:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3531,"mutability":"mutable","name":"blockNumber","nameLocation":"4563:11:5","nodeType":"VariableDeclaration","scope":3545,"src":"4555:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3530,"name":"uint256","nodeType":"ElementaryTypeName","src":"4555:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3533,"mutability":"mutable","name":"data","nameLocation":"4590:4:5","nodeType":"VariableDeclaration","scope":3545,"src":"4584:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3532,"name":"bytes","nodeType":"ElementaryTypeName","src":"4584:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3535,"mutability":"mutable","name":"logIndex","nameLocation":"4612:8:5","nodeType":"VariableDeclaration","scope":3545,"src":"4604:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3534,"name":"uint256","nodeType":"ElementaryTypeName","src":"4604:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3538,"mutability":"mutable","name":"topics","nameLocation":"4640:6:5","nodeType":"VariableDeclaration","scope":3545,"src":"4630:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3536,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4630:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3537,"nodeType":"ArrayTypeName","src":"4630:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":3540,"mutability":"mutable","name":"transactionIndex","nameLocation":"4664:16:5","nodeType":"VariableDeclaration","scope":3545,"src":"4656:24:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3539,"name":"uint256","nodeType":"ElementaryTypeName","src":"4656:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3542,"mutability":"mutable","name":"transactionLogIndex","nameLocation":"4698:19:5","nodeType":"VariableDeclaration","scope":3545,"src":"4690:27:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3541,"name":"uint256","nodeType":"ElementaryTypeName","src":"4690:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3544,"mutability":"mutable","name":"removed","nameLocation":"4732:7:5","nodeType":"VariableDeclaration","scope":3545,"src":"4727:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3543,"name":"bool","nodeType":"ElementaryTypeName","src":"4727:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"ReceiptLog","nameLocation":"4447:10:5","scope":4792,"visibility":"public"},{"id":3550,"nodeType":"StructDefinition","src":"4752:74:5","nodes":[],"canonicalName":"StdCheatsSafe.TxReturn","members":[{"constant":false,"id":3547,"mutability":"mutable","name":"internalType","nameLocation":"4785:12:5","nodeType":"VariableDeclaration","scope":3550,"src":"4778:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3546,"name":"string","nodeType":"ElementaryTypeName","src":"4778:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3549,"mutability":"mutable","name":"value","nameLocation":"4814:5:5","nodeType":"VariableDeclaration","scope":3550,"src":"4807:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3548,"name":"string","nodeType":"ElementaryTypeName","src":"4807:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"TxReturn","nameLocation":"4759:8:5","scope":4792,"visibility":"public"},{"id":3565,"nodeType":"FunctionDefinition","src":"4832:274:5","nodes":[],"body":{"id":3564,"nodeType":"Block","src":"4892:214:5","nodes":[],"statements":[{"assignments":[3556],"declarations":[{"constant":false,"id":3556,"mutability":"mutable","name":"chainId","nameLocation":"4986:7:5","nodeType":"VariableDeclaration","scope":3564,"src":"4978:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3555,"name":"uint256","nodeType":"ElementaryTypeName","src":"4978:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3557,"nodeType":"VariableDeclarationStatement","src":"4978:15:5"},{"AST":{"nativeSrc":"5012:44:5","nodeType":"YulBlock","src":"5012:44:5","statements":[{"nativeSrc":"5026:20:5","nodeType":"YulAssignment","src":"5026:20:5","value":{"arguments":[],"functionName":{"name":"chainid","nativeSrc":"5037:7:5","nodeType":"YulIdentifier","src":"5037:7:5"},"nativeSrc":"5037:9:5","nodeType":"YulFunctionCall","src":"5037:9:5"},"variableNames":[{"name":"chainId","nativeSrc":"5026:7:5","nodeType":"YulIdentifier","src":"5026:7:5"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3556,"isOffset":false,"isSlot":false,"src":"5026:7:5","valueSize":1}],"id":3558,"nodeType":"InlineAssembly","src":"5003:53:5"},{"expression":{"arguments":[{"id":3560,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3552,"src":"5085:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3561,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3556,"src":"5091:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3559,"name":"assumeNoPrecompiles","nodeType":"Identifier","overloadedDeclarations":[3565,3708],"referencedDeclaration":3708,"src":"5065:19:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":3562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5065:34:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3563,"nodeType":"ExpressionStatement","src":"5065:34:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeNoPrecompiles","nameLocation":"4841:19:5","parameters":{"id":3553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3552,"mutability":"mutable","name":"addr","nameLocation":"4869:4:5","nodeType":"VariableDeclaration","scope":3565,"src":"4861:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3551,"name":"address","nodeType":"ElementaryTypeName","src":"4861:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4860:14:5"},"returnParameters":{"id":3554,"nodeType":"ParameterList","parameters":[],"src":"4892:0:5"},"scope":4792,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":3708,"nodeType":"FunctionDefinition","src":"5112:1783:5","nodes":[],"body":{"id":3707,"nodeType":"Block","src":"5189:1706:5","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3575,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"5487:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307831","id":3578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5502:3:5","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":3577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5494:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3576,"name":"address","nodeType":"ElementaryTypeName","src":"5494:7:5","typeDescriptions":{}}},"id":3579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5494:12:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5487:19:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3581,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"5510:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307839","id":3584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5525:3:5","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"0x9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"}],"id":3583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5517:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3582,"name":"address","nodeType":"ElementaryTypeName","src":"5517:7:5","typeDescriptions":{}}},"id":3585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5517:12:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5510:19:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5487:42:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3572,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"5477:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":3574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5480:6:5","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":9020,"src":"5477:9:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":3588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5477:53:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3589,"nodeType":"ExpressionStatement","src":"5477:53:5"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3590,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3569,"src":"5580:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3130","id":3591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5591:2:5","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"5580:13:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3593,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3569,"src":"5597:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"343230","id":3594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5608:3:5","typeDescriptions":{"typeIdentifier":"t_rational_420_by_1","typeString":"int_const 420"},"value":"420"},"src":"5597:14:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5580:31:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3616,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3569,"src":"5929:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3432313631","id":3617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5940:5:5","typeDescriptions":{"typeIdentifier":"t_rational_42161_by_1","typeString":"int_const 42161"},"value":"42161"},"src":"5929:16:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3619,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3569,"src":"5949:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"343231363133","id":3620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5960:6:5","typeDescriptions":{"typeIdentifier":"t_rational_421613_by_1","typeString":"int_const 421613"},"value":"421613"},"src":"5949:17:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5929:37:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3642,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3569,"src":"6243:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3433313134","id":3643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6254:5:5","typeDescriptions":{"typeIdentifier":"t_rational_43114_by_1","typeString":"int_const 43114"},"value":"43114"},"src":"6243:16:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3645,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3569,"src":"6263:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3433313133","id":3646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6274:5:5","typeDescriptions":{"typeIdentifier":"t_rational_43113_by_1","typeString":"int_const 43113"},"value":"43113"},"src":"6263:16:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6243:36:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3704,"nodeType":"IfStatement","src":"6239:617:5","trueBody":{"id":3703,"nodeType":"Block","src":"6281:575:5","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3652,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"6434:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307830313030303030303030303030303030303030303030303030303030303030303030303030303030","id":3655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6449:42:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0100000000000000000000000000000000000000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6441:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3653,"name":"address","nodeType":"ElementaryTypeName","src":"6441:7:5","typeDescriptions":{}}},"id":3656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6441:51:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6434:58:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3658,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"6496:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307830313030303030303030303030303030303030303030303030303030303030303030303030306666","id":3661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6511:42:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x01000000000000000000000000000000000000ff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6503:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3659,"name":"address","nodeType":"ElementaryTypeName","src":"6503:7:5","typeDescriptions":{}}},"id":3662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6503:51:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6496:58:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6434:120:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3649,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"6424:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":3651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6427:6:5","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":9020,"src":"6424:9:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":3665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6424:131:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3666,"nodeType":"ExpressionStatement","src":"6424:131:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3670,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"6579:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307830323030303030303030303030303030303030303030303030303030303030303030303030303030","id":3673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6594:42:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0200000000000000000000000000000000000000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3672,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6586:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3671,"name":"address","nodeType":"ElementaryTypeName","src":"6586:7:5","typeDescriptions":{}}},"id":3674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6586:51:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6579:58:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3676,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"6641:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307830323030303030303030303030303030303030303030303030303030303030303030303030304646","id":3679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6656:42:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x02000000000000000000000000000000000000FF"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6648:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3677,"name":"address","nodeType":"ElementaryTypeName","src":"6648:7:5","typeDescriptions":{}}},"id":3680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6648:51:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6641:58:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6579:120:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3667,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"6569:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":3669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6572:6:5","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":9020,"src":"6569:9:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":3683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6569:131:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3684,"nodeType":"ExpressionStatement","src":"6569:131:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3688,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"6724:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307830333030303030303030303030303030303030303030303030303030303030303030303030303030","id":3691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6739:42:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0300000000000000000000000000000000000000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3690,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6731:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3689,"name":"address","nodeType":"ElementaryTypeName","src":"6731:7:5","typeDescriptions":{}}},"id":3692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6731:51:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6724:58:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3694,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"6786:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307830333030303030303030303030303030303030303030303030303030303030303030303030304666","id":3697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6801:42:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x03000000000000000000000000000000000000Ff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3696,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6793:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3695,"name":"address","nodeType":"ElementaryTypeName","src":"6793:7:5","typeDescriptions":{}}},"id":3698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6793:51:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6786:58:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6724:120:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3685,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"6714:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":3687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6717:6:5","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":9020,"src":"6714:9:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":3701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6714:131:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3702,"nodeType":"ExpressionStatement","src":"6714:131:5"}]}},"id":3705,"nodeType":"IfStatement","src":"5925:931:5","trueBody":{"id":3641,"nodeType":"Block","src":"5968:265:5","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3626,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"6101:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307830303030303030303030303030303030303030303030303030303030303030303030303030303634","id":3629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6116:42:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0000000000000000000000000000000000000064"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6108:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3627,"name":"address","nodeType":"ElementaryTypeName","src":"6108:7:5","typeDescriptions":{}}},"id":3630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6108:51:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6101:58:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3632,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"6163:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307830303030303030303030303030303030303030303030303030303030303030303030303030303638","id":3635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6178:42:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0000000000000000000000000000000000000068"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3634,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6170:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3633,"name":"address","nodeType":"ElementaryTypeName","src":"6170:7:5","typeDescriptions":{}}},"id":3636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6170:51:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6163:58:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6101:120:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3623,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"6091:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":3625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6094:6:5","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":9020,"src":"6091:9:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":3639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6091:131:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3640,"nodeType":"ExpressionStatement","src":"6091:131:5"}]}},"id":3706,"nodeType":"IfStatement","src":"5576:1280:5","trueBody":{"id":3615,"nodeType":"Block","src":"5613:306:5","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3600,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"5787:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303030","id":3603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5802:42:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5794:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3601,"name":"address","nodeType":"ElementaryTypeName","src":"5794:7:5","typeDescriptions":{}}},"id":3604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5794:51:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5787:58:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3606,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"5849:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030383030","id":3609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5864:42:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000800"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5856:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3607,"name":"address","nodeType":"ElementaryTypeName","src":"5856:7:5","typeDescriptions":{}}},"id":3610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5856:51:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5849:58:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5787:120:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3597,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"5777:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":3599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5780:6:5","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":9020,"src":"5777:9:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":3613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5777:131:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3614,"nodeType":"ExpressionStatement","src":"5777:131:5"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeNoPrecompiles","nameLocation":"5121:19:5","parameters":{"id":3570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3567,"mutability":"mutable","name":"addr","nameLocation":"5149:4:5","nodeType":"VariableDeclaration","scope":3708,"src":"5141:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3566,"name":"address","nodeType":"ElementaryTypeName","src":"5141:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3569,"mutability":"mutable","name":"chainId","nameLocation":"5163:7:5","nodeType":"VariableDeclaration","scope":3708,"src":"5155:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3568,"name":"uint256","nodeType":"ElementaryTypeName","src":"5155:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5140:31:5"},"returnParameters":{"id":3571,"nodeType":"ParameterList","parameters":[],"src":"5189:0:5"},"scope":4792,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":3800,"nodeType":"FunctionDefinition","src":"6901:843:5","nodes":[],"body":{"id":3799,"nodeType":"Block","src":"7053:691:5","nodes":[],"statements":[{"assignments":[3717],"declarations":[{"constant":false,"id":3717,"mutability":"mutable","name":"data","nameLocation":"7077:4:5","nodeType":"VariableDeclaration","scope":3799,"src":"7063:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3716,"name":"string","nodeType":"ElementaryTypeName","src":"7063:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":3722,"initialValue":{"arguments":[{"id":3720,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3710,"src":"7096:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":3718,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"7084:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":3719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7087:8:5","memberName":"readFile","nodeType":"MemberAccess","referencedDeclaration":8621,"src":"7084:11:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":3721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7084:17:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"7063:38:5"},{"assignments":[3724],"declarations":[{"constant":false,"id":3724,"mutability":"mutable","name":"parsedData","nameLocation":"7124:10:5","nodeType":"VariableDeclaration","scope":3799,"src":"7111:23:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3723,"name":"bytes","nodeType":"ElementaryTypeName","src":"7111:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3729,"initialValue":{"arguments":[{"id":3727,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3717,"src":"7150:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":3725,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"7137:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":3726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7140:9:5","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8816,"src":"7137:12:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure external returns (bytes memory)"}},"id":3728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7137:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7111:44:5"},{"assignments":[3732],"declarations":[{"constant":false,"id":3732,"mutability":"mutable","name":"rawArtifact","nameLocation":"7197:11:5","nodeType":"VariableDeclaration","scope":3799,"src":"7165:43:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3503_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact"},"typeName":{"id":3731,"nodeType":"UserDefinedTypeName","pathNode":{"id":3730,"name":"RawEIP1559ScriptArtifact","nameLocations":["7165:24:5"],"nodeType":"IdentifierPath","referencedDeclaration":3503,"src":"7165:24:5"},"referencedDeclaration":3503,"src":"7165:24:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3503_storage_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact"}},"visibility":"internal"}],"id":3739,"initialValue":{"arguments":[{"id":3735,"name":"parsedData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3724,"src":"7222:10:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":3736,"name":"RawEIP1559ScriptArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3503,"src":"7235:24:5","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawEIP1559ScriptArtifact_$3503_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawEIP1559ScriptArtifact storage pointer)"}}],"id":3737,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"7234:26:5","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawEIP1559ScriptArtifact_$3503_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawEIP1559ScriptArtifact storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_RawEIP1559ScriptArtifact_$3503_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawEIP1559ScriptArtifact storage pointer)"}],"expression":{"id":3733,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7211:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7215:6:5","memberName":"decode","nodeType":"MemberAccess","src":"7211:10:5","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":3738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7211:50:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3503_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"nodeType":"VariableDeclarationStatement","src":"7165:96:5"},{"assignments":[3742],"declarations":[{"constant":false,"id":3742,"mutability":"mutable","name":"artifact","nameLocation":"7300:8:5","nodeType":"VariableDeclaration","scope":3799,"src":"7271:37:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact"},"typeName":{"id":3741,"nodeType":"UserDefinedTypeName","pathNode":{"id":3740,"name":"EIP1559ScriptArtifact","nameLocations":["7271:21:5"],"nodeType":"IdentifierPath","referencedDeclaration":3480,"src":"7271:21:5"},"referencedDeclaration":3480,"src":"7271:21:5","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_storage_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact"}},"visibility":"internal"}],"id":3743,"nodeType":"VariableDeclarationStatement","src":"7271:37:5"},{"expression":{"id":3749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3744,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"7318:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":3746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7327:9:5","memberName":"libraries","nodeType":"MemberAccess","referencedDeclaration":3460,"src":"7318:18:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3747,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"7339:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3503_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":3748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7351:9:5","memberName":"libraries","nodeType":"MemberAccess","referencedDeclaration":3483,"src":"7339:21:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"src":"7318:42:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":3750,"nodeType":"ExpressionStatement","src":"7318:42:5"},{"expression":{"id":3756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3751,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"7370:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":3753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7379:4:5","memberName":"path","nodeType":"MemberAccess","referencedDeclaration":3462,"src":"7370:13:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3754,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"7386:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3503_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":3755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7398:4:5","memberName":"path","nodeType":"MemberAccess","referencedDeclaration":3485,"src":"7386:16:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"7370:32:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3757,"nodeType":"ExpressionStatement","src":"7370:32:5"},{"expression":{"id":3763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3758,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"7412:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":3760,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7421:9:5","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":3471,"src":"7412:18:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3761,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"7433:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3503_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":3762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7445:9:5","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":3498,"src":"7433:21:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7412:42:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3764,"nodeType":"ExpressionStatement","src":"7412:42:5"},{"expression":{"id":3770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3765,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"7464:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":3767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7473:7:5","memberName":"pending","nodeType":"MemberAccess","referencedDeclaration":3465,"src":"7464:16:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3768,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"7483:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3503_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":3769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7495:7:5","memberName":"pending","nodeType":"MemberAccess","referencedDeclaration":3488,"src":"7483:19:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"src":"7464:38:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":3771,"nodeType":"ExpressionStatement","src":"7464:38:5"},{"expression":{"id":3777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3772,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"7512:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":3774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7521:9:5","memberName":"txReturns","nodeType":"MemberAccess","referencedDeclaration":3479,"src":"7512:18:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3550_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.TxReturn memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3775,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"7533:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3503_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":3776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7545:9:5","memberName":"txReturns","nodeType":"MemberAccess","referencedDeclaration":3496,"src":"7533:21:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3550_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.TxReturn memory[] memory"}},"src":"7512:42:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3550_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.TxReturn memory[] memory"}},"id":3778,"nodeType":"ExpressionStatement","src":"7512:42:5"},{"expression":{"id":3786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3779,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"7564:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":3781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7573:8:5","memberName":"receipts","nodeType":"MemberAccess","referencedDeclaration":3469,"src":"7564:17:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":3783,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"7607:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3503_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":3784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7619:8:5","memberName":"receipts","nodeType":"MemberAccess","referencedDeclaration":3492,"src":"7607:20:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}],"id":3782,"name":"rawToConvertedReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4232,"src":"7584:22:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawReceipt memory[] memory) pure returns (struct StdCheatsSafe.Receipt memory[] memory)"}},"id":3785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7584:44:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"src":"7564:64:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"id":3787,"nodeType":"ExpressionStatement","src":"7564:64:5"},{"expression":{"id":3795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3788,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"7638:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":3790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7647:12:5","memberName":"transactions","nodeType":"MemberAccess","referencedDeclaration":3475,"src":"7638:21:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":3792,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"7687:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3503_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":3793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7699:12:5","memberName":"transactions","nodeType":"MemberAccess","referencedDeclaration":3502,"src":"7687:24:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}],"id":3791,"name":"rawToConvertedEIPTx1559s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3849,"src":"7662:24:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawTx1559 memory[] memory) pure returns (struct StdCheatsSafe.Tx1559 memory[] memory)"}},"id":3794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:50:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"src":"7638:74:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"id":3796,"nodeType":"ExpressionStatement","src":"7638:74:5"},{"expression":{"id":3797,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"7729:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"functionReturnParameters":3715,"id":3798,"nodeType":"Return","src":"7722:15:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readEIP1559ScriptArtifact","nameLocation":"6910:25:5","parameters":{"id":3711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3710,"mutability":"mutable","name":"path","nameLocation":"6950:4:5","nodeType":"VariableDeclaration","scope":3800,"src":"6936:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3709,"name":"string","nodeType":"ElementaryTypeName","src":"6936:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6935:20:5"},"returnParameters":{"id":3715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3714,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3800,"src":"7019:28:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact"},"typeName":{"id":3713,"nodeType":"UserDefinedTypeName","pathNode":{"id":3712,"name":"EIP1559ScriptArtifact","nameLocations":["7019:21:5"],"nodeType":"IdentifierPath","referencedDeclaration":3480,"src":"7019:21:5"},"referencedDeclaration":3480,"src":"7019:21:5","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_storage_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact"}},"visibility":"internal"}],"src":"7018:30:5"},"scope":4792,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":3849,"nodeType":"FunctionDefinition","src":"7750:312:5","nodes":[],"body":{"id":3848,"nodeType":"Block","src":"7859:203:5","nodes":[],"statements":[{"assignments":[3815],"declarations":[{"constant":false,"id":3815,"mutability":"mutable","name":"txs","nameLocation":"7885:3:5","nodeType":"VariableDeclaration","scope":3848,"src":"7869:19:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"},"typeName":{"baseType":{"id":3813,"nodeType":"UserDefinedTypeName","pathNode":{"id":3812,"name":"Tx1559","nameLocations":["7869:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":3324,"src":"7869:6:5"},"referencedDeclaration":3324,"src":"7869:6:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"id":3814,"nodeType":"ArrayTypeName","src":"7869:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"}},"visibility":"internal"}],"id":3823,"initialValue":{"arguments":[{"expression":{"id":3820,"name":"rawTxs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3804,"src":"7904:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}},"id":3821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7911:6:5","memberName":"length","nodeType":"MemberAccess","src":"7904:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7891:12:5","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct StdCheatsSafe.Tx1559 memory[] memory)"},"typeName":{"baseType":{"id":3817,"nodeType":"UserDefinedTypeName","pathNode":{"id":3816,"name":"Tx1559","nameLocations":["7895:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":3324,"src":"7895:6:5"},"referencedDeclaration":3324,"src":"7895:6:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"id":3818,"nodeType":"ArrayTypeName","src":"7895:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"}}},"id":3822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7891:27:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7869:49:5"},{"body":{"id":3844,"nodeType":"Block","src":"7968:68:5","statements":[{"expression":{"id":3842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3834,"name":"txs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3815,"src":"7982:3:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"id":3836,"indexExpression":{"id":3835,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3825,"src":"7986:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7982:6:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":3838,"name":"rawTxs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3804,"src":"8015:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}},"id":3840,"indexExpression":{"id":3839,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3825,"src":"8022:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8015:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}],"id":3837,"name":"rawToConvertedEIPTx1559","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3909,"src":"7991:23:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_RawTx1559_$3288_memory_ptr_$returns$_t_struct$_Tx1559_$3324_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawTx1559 memory) pure returns (struct StdCheatsSafe.Tx1559 memory)"}},"id":3841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7991:34:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"src":"7982:43:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":3843,"nodeType":"ExpressionStatement","src":"7982:43:5"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3827,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3825,"src":"7944:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":3828,"name":"rawTxs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3804,"src":"7948:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}},"id":3829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7955:6:5","memberName":"length","nodeType":"MemberAccess","src":"7948:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7944:17:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3845,"initializationExpression":{"assignments":[3825],"declarations":[{"constant":false,"id":3825,"mutability":"mutable","name":"i","nameLocation":"7941:1:5","nodeType":"VariableDeclaration","scope":3845,"src":"7933:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3824,"name":"uint256","nodeType":"ElementaryTypeName","src":"7933:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3826,"nodeType":"VariableDeclarationStatement","src":"7933:9:5"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":3832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7963:3:5","subExpression":{"id":3831,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3825,"src":"7963:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3833,"nodeType":"ExpressionStatement","src":"7963:3:5"},"nodeType":"ForStatement","src":"7928:108:5"},{"expression":{"id":3846,"name":"txs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3815,"src":"8052:3:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"functionReturnParameters":3810,"id":3847,"nodeType":"Return","src":"8045:10:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedEIPTx1559s","nameLocation":"7759:24:5","parameters":{"id":3805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3804,"mutability":"mutable","name":"rawTxs","nameLocation":"7803:6:5","nodeType":"VariableDeclaration","scope":3849,"src":"7784:25:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"},"typeName":{"baseType":{"id":3802,"nodeType":"UserDefinedTypeName","pathNode":{"id":3801,"name":"RawTx1559","nameLocations":["7784:9:5"],"nodeType":"IdentifierPath","referencedDeclaration":3288,"src":"7784:9:5"},"referencedDeclaration":3288,"src":"7784:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559"}},"id":3803,"nodeType":"ArrayTypeName","src":"7784:11:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"}},"visibility":"internal"}],"src":"7783:27:5"},"returnParameters":{"id":3810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3809,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3849,"src":"7842:15:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"},"typeName":{"baseType":{"id":3807,"nodeType":"UserDefinedTypeName","pathNode":{"id":3806,"name":"Tx1559","nameLocations":["7842:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":3324,"src":"7842:6:5"},"referencedDeclaration":3324,"src":"7842:6:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"id":3808,"nodeType":"ArrayTypeName","src":"7842:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"}},"visibility":"internal"}],"src":"7841:17:5"},"scope":4792,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":3909,"nodeType":"FunctionDefinition","src":"8068:488:5","nodes":[],"body":{"id":3908,"nodeType":"Block","src":"8171:385:5","nodes":[],"statements":[{"assignments":[3860],"declarations":[{"constant":false,"id":3860,"mutability":"mutable","name":"transaction","nameLocation":"8195:11:5","nodeType":"VariableDeclaration","scope":3908,"src":"8181:25:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559"},"typeName":{"id":3859,"nodeType":"UserDefinedTypeName","pathNode":{"id":3858,"name":"Tx1559","nameLocations":["8181:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":3324,"src":"8181:6:5"},"referencedDeclaration":3324,"src":"8181:6:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"visibility":"internal"}],"id":3861,"nodeType":"VariableDeclarationStatement","src":"8181:25:5"},{"expression":{"id":3867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3862,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3860,"src":"8216:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":3864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8228:9:5","memberName":"arguments","nodeType":"MemberAccess","referencedDeclaration":3310,"src":"8216:21:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3865,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3852,"src":"8240:5:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":3866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8246:9:5","memberName":"arguments","nodeType":"MemberAccess","referencedDeclaration":3274,"src":"8240:15:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"src":"8216:39:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":3868,"nodeType":"ExpressionStatement","src":"8216:39:5"},{"expression":{"id":3874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3869,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3860,"src":"8265:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":3871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8277:12:5","memberName":"contractName","nodeType":"MemberAccess","referencedDeclaration":3314,"src":"8265:24:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3872,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3852,"src":"8292:5:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":3873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8298:12:5","memberName":"contractName","nodeType":"MemberAccess","referencedDeclaration":3278,"src":"8292:18:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8265:45:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3875,"nodeType":"ExpressionStatement","src":"8265:45:5"},{"expression":{"id":3881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3876,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3860,"src":"8320:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":3878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8332:11:5","memberName":"functionSig","nodeType":"MemberAccess","referencedDeclaration":3316,"src":"8320:23:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3879,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3852,"src":"8346:5:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":3880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8352:11:5","memberName":"functionSig","nodeType":"MemberAccess","referencedDeclaration":3280,"src":"8346:17:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8320:43:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3882,"nodeType":"ExpressionStatement","src":"8320:43:5"},{"expression":{"id":3888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3883,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3860,"src":"8373:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":3885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8385:4:5","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":3318,"src":"8373:16:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3886,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3852,"src":"8392:5:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":3887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8398:4:5","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":3282,"src":"8392:10:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8373:29:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3889,"nodeType":"ExpressionStatement","src":"8373:29:5"},{"expression":{"id":3897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3890,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3860,"src":"8412:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":3892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8424:8:5","memberName":"txDetail","nodeType":"MemberAccess","referencedDeclaration":3321,"src":"8412:20:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":3894,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3852,"src":"8463:5:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":3895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8469:8:5","memberName":"txDetail","nodeType":"MemberAccess","referencedDeclaration":3285,"src":"8463:14:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}],"id":3893,"name":"rawToConvertedEIP1559Detail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3989,"src":"8435:27:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_RawTx1559Detail_$3307_memory_ptr_$returns$_t_struct$_Tx1559Detail_$3343_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawTx1559Detail memory) pure returns (struct StdCheatsSafe.Tx1559Detail memory)"}},"id":3896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8435:43:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"src":"8412:66:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":3898,"nodeType":"ExpressionStatement","src":"8412:66:5"},{"expression":{"id":3904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3899,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3860,"src":"8488:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":3901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8500:6:5","memberName":"opcode","nodeType":"MemberAccess","referencedDeclaration":3323,"src":"8488:18:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3902,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3852,"src":"8509:5:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":3903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8515:6:5","memberName":"opcode","nodeType":"MemberAccess","referencedDeclaration":3287,"src":"8509:12:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8488:33:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3905,"nodeType":"ExpressionStatement","src":"8488:33:5"},{"expression":{"id":3906,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3860,"src":"8538:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"functionReturnParameters":3857,"id":3907,"nodeType":"Return","src":"8531:18:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedEIPTx1559","nameLocation":"8077:23:5","parameters":{"id":3853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3852,"mutability":"mutable","name":"rawTx","nameLocation":"8118:5:5","nodeType":"VariableDeclaration","scope":3909,"src":"8101:22:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559"},"typeName":{"id":3851,"nodeType":"UserDefinedTypeName","pathNode":{"id":3850,"name":"RawTx1559","nameLocations":["8101:9:5"],"nodeType":"IdentifierPath","referencedDeclaration":3288,"src":"8101:9:5"},"referencedDeclaration":3288,"src":"8101:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559"}},"visibility":"internal"}],"src":"8100:24:5"},"returnParameters":{"id":3857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3856,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3909,"src":"8156:13:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559"},"typeName":{"id":3855,"nodeType":"UserDefinedTypeName","pathNode":{"id":3854,"name":"Tx1559","nameLocations":["8156:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":3324,"src":"8156:6:5"},"referencedDeclaration":3324,"src":"8156:6:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"visibility":"internal"}],"src":"8155:15:5"},"scope":4792,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":3989,"nodeType":"FunctionDefinition","src":"8562:619:5","nodes":[],"body":{"id":3988,"nodeType":"Block","src":"8721:460:5","nodes":[],"statements":[{"assignments":[3920],"declarations":[{"constant":false,"id":3920,"mutability":"mutable","name":"txDetail","nameLocation":"8751:8:5","nodeType":"VariableDeclaration","scope":3988,"src":"8731:28:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"},"typeName":{"id":3919,"nodeType":"UserDefinedTypeName","pathNode":{"id":3918,"name":"Tx1559Detail","nameLocations":["8731:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":3343,"src":"8731:12:5"},"referencedDeclaration":3343,"src":"8731:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"}},"visibility":"internal"}],"id":3921,"nodeType":"VariableDeclarationStatement","src":"8731:28:5"},{"expression":{"id":3927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3922,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3920,"src":"8769:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":3924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8778:4:5","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3330,"src":"8769:13:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3925,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"8785:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":3926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8795:4:5","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3294,"src":"8785:14:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"8769:30:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3928,"nodeType":"ExpressionStatement","src":"8769:30:5"},{"expression":{"id":3934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3929,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3920,"src":"8809:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":3931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8818:4:5","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":3332,"src":"8809:13:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3932,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"8825:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":3933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8835:4:5","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":3296,"src":"8825:14:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8809:30:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3935,"nodeType":"ExpressionStatement","src":"8809:30:5"},{"expression":{"id":3941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3936,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3920,"src":"8849:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":3938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8858:2:5","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3338,"src":"8849:11:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3939,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"8863:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":3940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8873:2:5","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3302,"src":"8863:12:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8849:26:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3942,"nodeType":"ExpressionStatement","src":"8849:26:5"},{"expression":{"id":3950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3943,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3920,"src":"8885:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":3945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8894:5:5","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3336,"src":"8885:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":3947,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"8915:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":3948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8925:5:5","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3300,"src":"8915:15:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3946,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"8902:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":3949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8902:29:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8885:46:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3951,"nodeType":"ExpressionStatement","src":"8885:46:5"},{"expression":{"id":3959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3952,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3920,"src":"8941:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":3954,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8950:6:5","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3340,"src":"8941:15:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":3956,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"8972:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":3957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8982:6:5","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3304,"src":"8972:16:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3955,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"8959:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":3958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8959:30:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8941:48:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3960,"nodeType":"ExpressionStatement","src":"8941:48:5"},{"expression":{"id":3968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3961,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3920,"src":"8999:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":3963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9008:5:5","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3342,"src":"8999:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":3965,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"9029:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":3966,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9039:5:5","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3306,"src":"9029:15:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3964,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"9016:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":3967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9016:29:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8999:46:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3969,"nodeType":"ExpressionStatement","src":"8999:46:5"},{"expression":{"id":3977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3970,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3920,"src":"9055:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":3972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9064:3:5","memberName":"gas","nodeType":"MemberAccess","referencedDeclaration":3334,"src":"9055:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":3974,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"9083:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":3975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9093:3:5","memberName":"gas","nodeType":"MemberAccess","referencedDeclaration":3298,"src":"9083:13:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3973,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"9070:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":3976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9070:27:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9055:42:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3978,"nodeType":"ExpressionStatement","src":"9055:42:5"},{"expression":{"id":3984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3979,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3920,"src":"9107:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":3981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9116:10:5","memberName":"accessList","nodeType":"MemberAccess","referencedDeclaration":3328,"src":"9107:19:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3399_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.AccessList memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3982,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"9129:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":3983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9139:10:5","memberName":"accessList","nodeType":"MemberAccess","referencedDeclaration":3292,"src":"9129:20:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3399_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.AccessList memory[] memory"}},"src":"9107:42:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3399_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.AccessList memory[] memory"}},"id":3985,"nodeType":"ExpressionStatement","src":"9107:42:5"},{"expression":{"id":3986,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3920,"src":"9166:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"functionReturnParameters":3917,"id":3987,"nodeType":"Return","src":"9159:15:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedEIP1559Detail","nameLocation":"8571:27:5","parameters":{"id":3913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3912,"mutability":"mutable","name":"rawDetail","nameLocation":"8622:9:5","nodeType":"VariableDeclaration","scope":3989,"src":"8599:32:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail"},"typeName":{"id":3911,"nodeType":"UserDefinedTypeName","pathNode":{"id":3910,"name":"RawTx1559Detail","nameLocations":["8599:15:5"],"nodeType":"IdentifierPath","referencedDeclaration":3307,"src":"8599:15:5"},"referencedDeclaration":3307,"src":"8599:15:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail"}},"visibility":"internal"}],"src":"8598:34:5"},"returnParameters":{"id":3917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3916,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3989,"src":"8696:19:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"},"typeName":{"id":3915,"nodeType":"UserDefinedTypeName","pathNode":{"id":3914,"name":"Tx1559Detail","nameLocations":["8696:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":3343,"src":"8696:12:5"},"referencedDeclaration":3343,"src":"8696:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"}},"visibility":"internal"}],"src":"8695:21:5"},"scope":4792,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4031,"nodeType":"FunctionDefinition","src":"9187:363:5","nodes":[],"body":{"id":4030,"nodeType":"Block","src":"9276:274:5","nodes":[],"statements":[{"assignments":[3999],"declarations":[{"constant":false,"id":3999,"mutability":"mutable","name":"deployData","nameLocation":"9300:10:5","nodeType":"VariableDeclaration","scope":4030,"src":"9286:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3998,"name":"string","nodeType":"ElementaryTypeName","src":"9286:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4004,"initialValue":{"arguments":[{"id":4002,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3991,"src":"9325:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4000,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"9313:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9316:8:5","memberName":"readFile","nodeType":"MemberAccess","referencedDeclaration":8621,"src":"9313:11:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":4003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9313:17:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"9286:44:5"},{"assignments":[4006],"declarations":[{"constant":false,"id":4006,"mutability":"mutable","name":"parsedDeployData","nameLocation":"9353:16:5","nodeType":"VariableDeclaration","scope":4030,"src":"9340:29:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4005,"name":"bytes","nodeType":"ElementaryTypeName","src":"9340:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4012,"initialValue":{"arguments":[{"id":4009,"name":"deployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3999,"src":"9385:10:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2e7472616e73616374696f6e73","id":4010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9397:15:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b594723e6093f4c1c210e08bcd523373e89874e267b69a9d9a7cb17952e3049","typeString":"literal_string \".transactions\""},"value":".transactions"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_9b594723e6093f4c1c210e08bcd523373e89874e267b69a9d9a7cb17952e3049","typeString":"literal_string \".transactions\""}],"expression":{"id":4007,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"9372:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9375:9:5","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"9372:12:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":4011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9372:41:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"9340:73:5"},{"assignments":[4017],"declarations":[{"constant":false,"id":4017,"mutability":"mutable","name":"rawTxs","nameLocation":"9442:6:5","nodeType":"VariableDeclaration","scope":4030,"src":"9423:25:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"},"typeName":{"baseType":{"id":4015,"nodeType":"UserDefinedTypeName","pathNode":{"id":4014,"name":"RawTx1559","nameLocations":["9423:9:5"],"nodeType":"IdentifierPath","referencedDeclaration":3288,"src":"9423:9:5"},"referencedDeclaration":3288,"src":"9423:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559"}},"id":4016,"nodeType":"ArrayTypeName","src":"9423:11:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"}},"visibility":"internal"}],"id":4025,"initialValue":{"arguments":[{"id":4020,"name":"parsedDeployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4006,"src":"9462:16:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"id":4021,"name":"RawTx1559","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3288,"src":"9481:9:5","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawTx1559_$3288_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 storage pointer)"}},"id":4022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"9481:11:5","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 memory[] memory)"}}],"id":4023,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"9480:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 memory[] memory)"}],"expression":{"id":4018,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9451:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9455:6:5","memberName":"decode","nodeType":"MemberAccess","src":"9451:10:5","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9451:43:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9423:71:5"},{"expression":{"arguments":[{"id":4027,"name":"rawTxs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4017,"src":"9536:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}],"id":4026,"name":"rawToConvertedEIPTx1559s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3849,"src":"9511:24:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawTx1559 memory[] memory) pure returns (struct StdCheatsSafe.Tx1559 memory[] memory)"}},"id":4028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9511:32:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"functionReturnParameters":3997,"id":4029,"nodeType":"Return","src":"9504:39:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readTx1559s","nameLocation":"9196:11:5","parameters":{"id":3992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3991,"mutability":"mutable","name":"path","nameLocation":"9222:4:5","nodeType":"VariableDeclaration","scope":4031,"src":"9208:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3990,"name":"string","nodeType":"ElementaryTypeName","src":"9208:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9207:20:5"},"returnParameters":{"id":3997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3996,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4031,"src":"9259:15:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"},"typeName":{"baseType":{"id":3994,"nodeType":"UserDefinedTypeName","pathNode":{"id":3993,"name":"Tx1559","nameLocations":["9259:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":3324,"src":"9259:6:5"},"referencedDeclaration":3324,"src":"9259:6:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"id":3995,"nodeType":"ArrayTypeName","src":"9259:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"}},"visibility":"internal"}],"src":"9258:17:5"},"scope":4792,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":4086,"nodeType":"FunctionDefinition","src":"9556:453:5","nodes":[],"body":{"id":4085,"nodeType":"Block","src":"9657:352:5","nodes":[],"statements":[{"assignments":[4042],"declarations":[{"constant":false,"id":4042,"mutability":"mutable","name":"deployData","nameLocation":"9681:10:5","nodeType":"VariableDeclaration","scope":4085,"src":"9667:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4041,"name":"string","nodeType":"ElementaryTypeName","src":"9667:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4047,"initialValue":{"arguments":[{"id":4045,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4033,"src":"9706:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4043,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"9694:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9697:8:5","memberName":"readFile","nodeType":"MemberAccess","referencedDeclaration":8621,"src":"9694:11:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":4046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9694:17:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"9667:44:5"},{"assignments":[4049],"declarations":[{"constant":false,"id":4049,"mutability":"mutable","name":"key","nameLocation":"9735:3:5","nodeType":"VariableDeclaration","scope":4085,"src":"9721:17:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4048,"name":"string","nodeType":"ElementaryTypeName","src":"9721:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4062,"initialValue":{"arguments":[{"arguments":[{"hexValue":"2e7472616e73616374696f6e735b","id":4054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9765:16:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_7abc4cdd6094bba2d56cb8a26083c756a68ba4e3b40f345f8102e1fc2249cd5c","typeString":"literal_string \".transactions[\""},"value":".transactions["},{"arguments":[{"id":4057,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4035,"src":"9795:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4055,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"9783:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9786:8:5","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"9783:11:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":4058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9783:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"5d","id":4059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9803:3:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_b36bcf9cc1d9e7f60b1f757ebd8b4694b17fc592b16065d243c43b09fde00b29","typeString":"literal_string \"]\""},"value":"]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7abc4cdd6094bba2d56cb8a26083c756a68ba4e3b40f345f8102e1fc2249cd5c","typeString":"literal_string \".transactions[\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_b36bcf9cc1d9e7f60b1f757ebd8b4694b17fc592b16065d243c43b09fde00b29","typeString":"literal_string \"]\""}],"expression":{"id":4052,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9748:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9752:12:5","memberName":"encodePacked","nodeType":"MemberAccess","src":"9748:16:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9748:59:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9741:6:5","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4050,"name":"string","nodeType":"ElementaryTypeName","src":"9741:6:5","typeDescriptions":{}}},"id":4061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9741:67:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"9721:87:5"},{"assignments":[4064],"declarations":[{"constant":false,"id":4064,"mutability":"mutable","name":"parsedDeployData","nameLocation":"9831:16:5","nodeType":"VariableDeclaration","scope":4085,"src":"9818:29:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4063,"name":"bytes","nodeType":"ElementaryTypeName","src":"9818:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4070,"initialValue":{"arguments":[{"id":4067,"name":"deployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4042,"src":"9863:10:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4068,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4049,"src":"9875:3:5","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":4065,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"9850:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9853:9:5","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"9850:12:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":4069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9850:29:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"9818:61:5"},{"assignments":[4073],"declarations":[{"constant":false,"id":4073,"mutability":"mutable","name":"rawTx","nameLocation":"9906:5:5","nodeType":"VariableDeclaration","scope":4085,"src":"9889:22:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559"},"typeName":{"id":4072,"nodeType":"UserDefinedTypeName","pathNode":{"id":4071,"name":"RawTx1559","nameLocations":["9889:9:5"],"nodeType":"IdentifierPath","referencedDeclaration":3288,"src":"9889:9:5"},"referencedDeclaration":3288,"src":"9889:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559"}},"visibility":"internal"}],"id":4080,"initialValue":{"arguments":[{"id":4076,"name":"parsedDeployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4064,"src":"9925:16:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":4077,"name":"RawTx1559","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3288,"src":"9944:9:5","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawTx1559_$3288_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 storage pointer)"}}],"id":4078,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"9943:11:5","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawTx1559_$3288_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_RawTx1559_$3288_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 storage pointer)"}],"expression":{"id":4074,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9914:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9918:6:5","memberName":"decode","nodeType":"MemberAccess","src":"9914:10:5","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9914:41:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"nodeType":"VariableDeclarationStatement","src":"9889:66:5"},{"expression":{"arguments":[{"id":4082,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4073,"src":"9996:5:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}],"id":4081,"name":"rawToConvertedEIPTx1559","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3909,"src":"9972:23:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_RawTx1559_$3288_memory_ptr_$returns$_t_struct$_Tx1559_$3324_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawTx1559 memory) pure returns (struct StdCheatsSafe.Tx1559 memory)"}},"id":4083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9972:30:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"functionReturnParameters":4040,"id":4084,"nodeType":"Return","src":"9965:37:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readTx1559","nameLocation":"9565:10:5","parameters":{"id":4036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4033,"mutability":"mutable","name":"path","nameLocation":"9590:4:5","nodeType":"VariableDeclaration","scope":4086,"src":"9576:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4032,"name":"string","nodeType":"ElementaryTypeName","src":"9576:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4035,"mutability":"mutable","name":"index","nameLocation":"9604:5:5","nodeType":"VariableDeclaration","scope":4086,"src":"9596:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4034,"name":"uint256","nodeType":"ElementaryTypeName","src":"9596:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9575:35:5"},"returnParameters":{"id":4040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4039,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4086,"src":"9642:13:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559"},"typeName":{"id":4038,"nodeType":"UserDefinedTypeName","pathNode":{"id":4037,"name":"Tx1559","nameLocations":["9642:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":3324,"src":"9642:6:5"},"referencedDeclaration":3324,"src":"9642:6:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"visibility":"internal"}],"src":"9641:15:5"},"scope":4792,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":4128,"nodeType":"FunctionDefinition","src":"10071:371:5","nodes":[],"body":{"id":4127,"nodeType":"Block","src":"10162:280:5","nodes":[],"statements":[{"assignments":[4096],"declarations":[{"constant":false,"id":4096,"mutability":"mutable","name":"deployData","nameLocation":"10186:10:5","nodeType":"VariableDeclaration","scope":4127,"src":"10172:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4095,"name":"string","nodeType":"ElementaryTypeName","src":"10172:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4101,"initialValue":{"arguments":[{"id":4099,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"10211:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4097,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"10199:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10202:8:5","memberName":"readFile","nodeType":"MemberAccess","referencedDeclaration":8621,"src":"10199:11:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":4100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10199:17:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"10172:44:5"},{"assignments":[4103],"declarations":[{"constant":false,"id":4103,"mutability":"mutable","name":"parsedDeployData","nameLocation":"10239:16:5","nodeType":"VariableDeclaration","scope":4127,"src":"10226:29:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4102,"name":"bytes","nodeType":"ElementaryTypeName","src":"10226:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4109,"initialValue":{"arguments":[{"id":4106,"name":"deployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4096,"src":"10271:10:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2e7265636569707473","id":4107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10283:11:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_29a5d3664a45019923b250b65c7d5b7f8c019d3960761fa9ca59b9001f893261","typeString":"literal_string \".receipts\""},"value":".receipts"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_29a5d3664a45019923b250b65c7d5b7f8c019d3960761fa9ca59b9001f893261","typeString":"literal_string \".receipts\""}],"expression":{"id":4104,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"10258:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10261:9:5","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"10258:12:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":4108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10258:37:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10226:69:5"},{"assignments":[4114],"declarations":[{"constant":false,"id":4114,"mutability":"mutable","name":"rawReceipts","nameLocation":"10325:11:5","nodeType":"VariableDeclaration","scope":4127,"src":"10305:31:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"},"typeName":{"baseType":{"id":4112,"nodeType":"UserDefinedTypeName","pathNode":{"id":4111,"name":"RawReceipt","nameLocations":["10305:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3428,"src":"10305:10:5"},"referencedDeclaration":3428,"src":"10305:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt"}},"id":4113,"nodeType":"ArrayTypeName","src":"10305:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"}},"visibility":"internal"}],"id":4122,"initialValue":{"arguments":[{"id":4117,"name":"parsedDeployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4103,"src":"10350:16:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"id":4118,"name":"RawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3428,"src":"10369:10:5","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawReceipt_$3428_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt storage pointer)"}},"id":4119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"10369:12:5","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt memory[] memory)"}}],"id":4120,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"10368:14:5","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt memory[] memory)"}],"expression":{"id":4115,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10339:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4116,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10343:6:5","memberName":"decode","nodeType":"MemberAccess","src":"10339:10:5","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10339:44:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10305:78:5"},{"expression":{"arguments":[{"id":4124,"name":"rawReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4114,"src":"10423:11:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}],"id":4123,"name":"rawToConvertedReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4232,"src":"10400:22:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawReceipt memory[] memory) pure returns (struct StdCheatsSafe.Receipt memory[] memory)"}},"id":4125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10400:35:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"functionReturnParameters":4094,"id":4126,"nodeType":"Return","src":"10393:42:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readReceipts","nameLocation":"10080:12:5","parameters":{"id":4089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4088,"mutability":"mutable","name":"path","nameLocation":"10107:4:5","nodeType":"VariableDeclaration","scope":4128,"src":"10093:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4087,"name":"string","nodeType":"ElementaryTypeName","src":"10093:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10092:20:5"},"returnParameters":{"id":4094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4093,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4128,"src":"10144:16:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt[]"},"typeName":{"baseType":{"id":4091,"nodeType":"UserDefinedTypeName","pathNode":{"id":4090,"name":"Receipt","nameLocations":["10144:7:5"],"nodeType":"IdentifierPath","referencedDeclaration":3457,"src":"10144:7:5"},"referencedDeclaration":3457,"src":"10144:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"id":4092,"nodeType":"ArrayTypeName","src":"10144:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"}},"visibility":"internal"}],"src":"10143:18:5"},"scope":4792,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":4183,"nodeType":"FunctionDefinition","src":"10448:461:5","nodes":[],"body":{"id":4182,"nodeType":"Block","src":"10551:358:5","nodes":[],"statements":[{"assignments":[4139],"declarations":[{"constant":false,"id":4139,"mutability":"mutable","name":"deployData","nameLocation":"10575:10:5","nodeType":"VariableDeclaration","scope":4182,"src":"10561:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4138,"name":"string","nodeType":"ElementaryTypeName","src":"10561:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4144,"initialValue":{"arguments":[{"id":4142,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4130,"src":"10600:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4140,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"10588:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10591:8:5","memberName":"readFile","nodeType":"MemberAccess","referencedDeclaration":8621,"src":"10588:11:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":4143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10588:17:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"10561:44:5"},{"assignments":[4146],"declarations":[{"constant":false,"id":4146,"mutability":"mutable","name":"key","nameLocation":"10629:3:5","nodeType":"VariableDeclaration","scope":4182,"src":"10615:17:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4145,"name":"string","nodeType":"ElementaryTypeName","src":"10615:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4159,"initialValue":{"arguments":[{"arguments":[{"hexValue":"2e72656365697074735b","id":4151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10659:12:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_1f28b72ce547907c2ae0f1bd0fd1ff00aeea8e573cc3e4076246f258e653d170","typeString":"literal_string \".receipts[\""},"value":".receipts["},{"arguments":[{"id":4154,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4132,"src":"10685:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4152,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"10673:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10676:8:5","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"10673:11:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":4155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10673:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"5d","id":4156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10693:3:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_b36bcf9cc1d9e7f60b1f757ebd8b4694b17fc592b16065d243c43b09fde00b29","typeString":"literal_string \"]\""},"value":"]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1f28b72ce547907c2ae0f1bd0fd1ff00aeea8e573cc3e4076246f258e653d170","typeString":"literal_string \".receipts[\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_b36bcf9cc1d9e7f60b1f757ebd8b4694b17fc592b16065d243c43b09fde00b29","typeString":"literal_string \"]\""}],"expression":{"id":4149,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10642:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10646:12:5","memberName":"encodePacked","nodeType":"MemberAccess","src":"10642:16:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10642:55:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10635:6:5","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4147,"name":"string","nodeType":"ElementaryTypeName","src":"10635:6:5","typeDescriptions":{}}},"id":4158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10635:63:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"10615:83:5"},{"assignments":[4161],"declarations":[{"constant":false,"id":4161,"mutability":"mutable","name":"parsedDeployData","nameLocation":"10721:16:5","nodeType":"VariableDeclaration","scope":4182,"src":"10708:29:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4160,"name":"bytes","nodeType":"ElementaryTypeName","src":"10708:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4167,"initialValue":{"arguments":[{"id":4164,"name":"deployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4139,"src":"10753:10:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4165,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4146,"src":"10765:3:5","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":4162,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"10740:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10743:9:5","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"10740:12:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":4166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10740:29:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10708:61:5"},{"assignments":[4170],"declarations":[{"constant":false,"id":4170,"mutability":"mutable","name":"rawReceipt","nameLocation":"10797:10:5","nodeType":"VariableDeclaration","scope":4182,"src":"10779:28:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt"},"typeName":{"id":4169,"nodeType":"UserDefinedTypeName","pathNode":{"id":4168,"name":"RawReceipt","nameLocations":["10779:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3428,"src":"10779:10:5"},"referencedDeclaration":3428,"src":"10779:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt"}},"visibility":"internal"}],"id":4177,"initialValue":{"arguments":[{"id":4173,"name":"parsedDeployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4161,"src":"10821:16:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":4174,"name":"RawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3428,"src":"10840:10:5","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawReceipt_$3428_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt storage pointer)"}}],"id":4175,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"10839:12:5","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawReceipt_$3428_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_RawReceipt_$3428_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt storage pointer)"}],"expression":{"id":4171,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10810:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10814:6:5","memberName":"decode","nodeType":"MemberAccess","src":"10810:10:5","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10810:42:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"nodeType":"VariableDeclarationStatement","src":"10779:73:5"},{"expression":{"arguments":[{"id":4179,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4170,"src":"10891:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}],"id":4178,"name":"rawToConvertedReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4353,"src":"10869:21:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_RawReceipt_$3428_memory_ptr_$returns$_t_struct$_Receipt_$3457_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawReceipt memory) pure returns (struct StdCheatsSafe.Receipt memory)"}},"id":4180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10869:33:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"functionReturnParameters":4137,"id":4181,"nodeType":"Return","src":"10862:40:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readReceipt","nameLocation":"10457:11:5","parameters":{"id":4133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4130,"mutability":"mutable","name":"path","nameLocation":"10483:4:5","nodeType":"VariableDeclaration","scope":4183,"src":"10469:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4129,"name":"string","nodeType":"ElementaryTypeName","src":"10469:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4132,"mutability":"mutable","name":"index","nameLocation":"10497:5:5","nodeType":"VariableDeclaration","scope":4183,"src":"10489:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4131,"name":"uint256","nodeType":"ElementaryTypeName","src":"10489:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10468:35:5"},"returnParameters":{"id":4137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4136,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4183,"src":"10535:14:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt"},"typeName":{"id":4135,"nodeType":"UserDefinedTypeName","pathNode":{"id":4134,"name":"Receipt","nameLocations":["10535:7:5"],"nodeType":"IdentifierPath","referencedDeclaration":3457,"src":"10535:7:5"},"referencedDeclaration":3457,"src":"10535:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"visibility":"internal"}],"src":"10534:16:5"},"scope":4792,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":4232,"nodeType":"FunctionDefinition","src":"10915:347:5","nodes":[],"body":{"id":4231,"nodeType":"Block","src":"11029:233:5","nodes":[],"statements":[{"assignments":[4198],"declarations":[{"constant":false,"id":4198,"mutability":"mutable","name":"receipts","nameLocation":"11056:8:5","nodeType":"VariableDeclaration","scope":4231,"src":"11039:25:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt[]"},"typeName":{"baseType":{"id":4196,"nodeType":"UserDefinedTypeName","pathNode":{"id":4195,"name":"Receipt","nameLocations":["11039:7:5"],"nodeType":"IdentifierPath","referencedDeclaration":3457,"src":"11039:7:5"},"referencedDeclaration":3457,"src":"11039:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"id":4197,"nodeType":"ArrayTypeName","src":"11039:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"}},"visibility":"internal"}],"id":4206,"initialValue":{"arguments":[{"expression":{"id":4203,"name":"rawReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4187,"src":"11081:11:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}},"id":4204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11093:6:5","memberName":"length","nodeType":"MemberAccess","src":"11081:18:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11067:13:5","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct StdCheatsSafe.Receipt memory[] memory)"},"typeName":{"baseType":{"id":4200,"nodeType":"UserDefinedTypeName","pathNode":{"id":4199,"name":"Receipt","nameLocations":["11071:7:5"],"nodeType":"IdentifierPath","referencedDeclaration":3457,"src":"11071:7:5"},"referencedDeclaration":3457,"src":"11071:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"id":4201,"nodeType":"ArrayTypeName","src":"11071:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"}}},"id":4205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11067:33:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"11039:61:5"},{"body":{"id":4227,"nodeType":"Block","src":"11155:76:5","statements":[{"expression":{"id":4225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4217,"name":"receipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4198,"src":"11169:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"id":4219,"indexExpression":{"id":4218,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4208,"src":"11178:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11169:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":4221,"name":"rawReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4187,"src":"11205:11:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}},"id":4223,"indexExpression":{"id":4222,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4208,"src":"11217:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11205:14:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}],"id":4220,"name":"rawToConvertedReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4353,"src":"11183:21:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_RawReceipt_$3428_memory_ptr_$returns$_t_struct$_Receipt_$3457_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawReceipt memory) pure returns (struct StdCheatsSafe.Receipt memory)"}},"id":4224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:37:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"src":"11169:51:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4226,"nodeType":"ExpressionStatement","src":"11169:51:5"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4210,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4208,"src":"11126:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":4211,"name":"rawReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4187,"src":"11130:11:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}},"id":4212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11142:6:5","memberName":"length","nodeType":"MemberAccess","src":"11130:18:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11126:22:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4228,"initializationExpression":{"assignments":[4208],"declarations":[{"constant":false,"id":4208,"mutability":"mutable","name":"i","nameLocation":"11123:1:5","nodeType":"VariableDeclaration","scope":4228,"src":"11115:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4207,"name":"uint256","nodeType":"ElementaryTypeName","src":"11115:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4209,"nodeType":"VariableDeclarationStatement","src":"11115:9:5"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":4215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11150:3:5","subExpression":{"id":4214,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4208,"src":"11150:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4216,"nodeType":"ExpressionStatement","src":"11150:3:5"},"nodeType":"ForStatement","src":"11110:121:5"},{"expression":{"id":4229,"name":"receipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4198,"src":"11247:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"functionReturnParameters":4193,"id":4230,"nodeType":"Return","src":"11240:15:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedReceipts","nameLocation":"10924:22:5","parameters":{"id":4188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4187,"mutability":"mutable","name":"rawReceipts","nameLocation":"10967:11:5","nodeType":"VariableDeclaration","scope":4232,"src":"10947:31:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"},"typeName":{"baseType":{"id":4185,"nodeType":"UserDefinedTypeName","pathNode":{"id":4184,"name":"RawReceipt","nameLocations":["10947:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3428,"src":"10947:10:5"},"referencedDeclaration":3428,"src":"10947:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt"}},"id":4186,"nodeType":"ArrayTypeName","src":"10947:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"}},"visibility":"internal"}],"src":"10946:33:5"},"returnParameters":{"id":4193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4192,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4232,"src":"11011:16:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt[]"},"typeName":{"baseType":{"id":4190,"nodeType":"UserDefinedTypeName","pathNode":{"id":4189,"name":"Receipt","nameLocations":["11011:7:5"],"nodeType":"IdentifierPath","referencedDeclaration":3457,"src":"11011:7:5"},"referencedDeclaration":3457,"src":"11011:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"id":4191,"nodeType":"ArrayTypeName","src":"11011:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"}},"visibility":"internal"}],"src":"11010:18:5"},"scope":4792,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4353,"nodeType":"FunctionDefinition","src":"11268:962:5","nodes":[],"body":{"id":4352,"nodeType":"Block","src":"11376:854:5","nodes":[],"statements":[{"assignments":[4243],"declarations":[{"constant":false,"id":4243,"mutability":"mutable","name":"receipt","nameLocation":"11401:7:5","nodeType":"VariableDeclaration","scope":4352,"src":"11386:22:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt"},"typeName":{"id":4242,"nodeType":"UserDefinedTypeName","pathNode":{"id":4241,"name":"Receipt","nameLocations":["11386:7:5"],"nodeType":"IdentifierPath","referencedDeclaration":3457,"src":"11386:7:5"},"referencedDeclaration":3457,"src":"11386:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"visibility":"internal"}],"id":4244,"nodeType":"VariableDeclarationStatement","src":"11386:22:5"},{"expression":{"id":4250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4245,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"11418:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11426:9:5","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":3430,"src":"11418:17:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4248,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"11438:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11449:9:5","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":3401,"src":"11438:20:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11418:40:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4251,"nodeType":"ExpressionStatement","src":"11418:40:5"},{"expression":{"id":4257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4252,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"11468:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11476:2:5","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3452,"src":"11468:10:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4255,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"11481:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11492:2:5","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3423,"src":"11481:13:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11468:26:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4258,"nodeType":"ExpressionStatement","src":"11468:26:5"},{"expression":{"id":4264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4259,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"11504:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11512:4:5","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":3440,"src":"11504:12:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4262,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"11519:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11530:4:5","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":3411,"src":"11519:15:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11504:30:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4265,"nodeType":"ExpressionStatement","src":"11504:30:5"},{"expression":{"id":4271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4266,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"11544:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11552:15:5","memberName":"contractAddress","nodeType":"MemberAccess","referencedDeclaration":3434,"src":"11544:23:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4269,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"11570:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11581:15:5","memberName":"contractAddress","nodeType":"MemberAccess","referencedDeclaration":3405,"src":"11570:26:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11544:52:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4272,"nodeType":"ExpressionStatement","src":"11544:52:5"},{"expression":{"id":4280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4273,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"11606:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11614:17:5","memberName":"effectiveGasPrice","nodeType":"MemberAccess","referencedDeclaration":3438,"src":"11606:25:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4277,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"11647:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11658:17:5","memberName":"effectiveGasPrice","nodeType":"MemberAccess","referencedDeclaration":3409,"src":"11647:28:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4276,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"11634:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11634:42:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11606:70:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4281,"nodeType":"ExpressionStatement","src":"11606:70:5"},{"expression":{"id":4289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4282,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"11686:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4284,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11694:17:5","memberName":"cumulativeGasUsed","nodeType":"MemberAccess","referencedDeclaration":3436,"src":"11686:25:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4286,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"11727:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11738:17:5","memberName":"cumulativeGasUsed","nodeType":"MemberAccess","referencedDeclaration":3407,"src":"11727:28:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4285,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"11714:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11714:42:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11686:70:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4290,"nodeType":"ExpressionStatement","src":"11686:70:5"},{"expression":{"id":4298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4291,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"11766:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4293,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11774:7:5","memberName":"gasUsed","nodeType":"MemberAccess","referencedDeclaration":3442,"src":"11766:15:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4295,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"11797:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11808:7:5","memberName":"gasUsed","nodeType":"MemberAccess","referencedDeclaration":3413,"src":"11797:18:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4294,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"11784:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11784:32:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11766:50:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4299,"nodeType":"ExpressionStatement","src":"11766:50:5"},{"expression":{"id":4307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4300,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"11826:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4302,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11834:6:5","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":3450,"src":"11826:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4304,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"11856:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11867:6:5","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":3421,"src":"11856:17:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4303,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"11843:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11843:31:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11826:48:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4308,"nodeType":"ExpressionStatement","src":"11826:48:5"},{"expression":{"id":4316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4309,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"11884:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11892:16:5","memberName":"transactionIndex","nodeType":"MemberAccess","referencedDeclaration":3456,"src":"11884:24:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4313,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"11924:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11935:16:5","memberName":"transactionIndex","nodeType":"MemberAccess","referencedDeclaration":3427,"src":"11924:27:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4312,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"11911:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11911:41:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11884:68:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4317,"nodeType":"ExpressionStatement","src":"11884:68:5"},{"expression":{"id":4325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4318,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"11962:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11970:11:5","memberName":"blockNumber","nodeType":"MemberAccess","referencedDeclaration":3432,"src":"11962:19:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4322,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"11997:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12008:11:5","memberName":"blockNumber","nodeType":"MemberAccess","referencedDeclaration":3403,"src":"11997:22:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4321,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"11984:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11984:36:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11962:58:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4326,"nodeType":"ExpressionStatement","src":"11962:58:5"},{"expression":{"id":4334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4327,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"12030:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12038:4:5","memberName":"logs","nodeType":"MemberAccess","referencedDeclaration":3446,"src":"12030:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4331,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"12071:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12082:4:5","memberName":"logs","nodeType":"MemberAccess","referencedDeclaration":3417,"src":"12071:15:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}],"id":4330,"name":"rawToConvertedReceiptLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4490,"src":"12045:25:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawReceiptLog memory[] memory) pure returns (struct StdCheatsSafe.ReceiptLog memory[] memory)"}},"id":4333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12045:42:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"src":"12030:57:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":4335,"nodeType":"ExpressionStatement","src":"12030:57:5"},{"expression":{"id":4341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4336,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"12097:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4338,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12105:9:5","memberName":"logsBloom","nodeType":"MemberAccess","referencedDeclaration":3448,"src":"12097:17:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4339,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"12117:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12128:9:5","memberName":"logsBloom","nodeType":"MemberAccess","referencedDeclaration":3419,"src":"12117:20:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"12097:40:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4342,"nodeType":"ExpressionStatement","src":"12097:40:5"},{"expression":{"id":4348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4343,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"12147:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12155:15:5","memberName":"transactionHash","nodeType":"MemberAccess","referencedDeclaration":3454,"src":"12147:23:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4346,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"12173:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12184:15:5","memberName":"transactionHash","nodeType":"MemberAccess","referencedDeclaration":3425,"src":"12173:26:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12147:52:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4349,"nodeType":"ExpressionStatement","src":"12147:52:5"},{"expression":{"id":4350,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"12216:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"functionReturnParameters":4240,"id":4351,"nodeType":"Return","src":"12209:14:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedReceipt","nameLocation":"11277:21:5","parameters":{"id":4236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4235,"mutability":"mutable","name":"rawReceipt","nameLocation":"11317:10:5","nodeType":"VariableDeclaration","scope":4353,"src":"11299:28:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt"},"typeName":{"id":4234,"nodeType":"UserDefinedTypeName","pathNode":{"id":4233,"name":"RawReceipt","nameLocations":["11299:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3428,"src":"11299:10:5"},"referencedDeclaration":3428,"src":"11299:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt"}},"visibility":"internal"}],"src":"11298:30:5"},"returnParameters":{"id":4240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4239,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4353,"src":"11360:14:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt"},"typeName":{"id":4238,"nodeType":"UserDefinedTypeName","pathNode":{"id":4237,"name":"Receipt","nameLocations":["11360:7:5"],"nodeType":"IdentifierPath","referencedDeclaration":3457,"src":"11360:7:5"},"referencedDeclaration":3457,"src":"11360:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"visibility":"internal"}],"src":"11359:16:5"},"scope":4792,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4490,"nodeType":"FunctionDefinition","src":"12236:873:5","nodes":[],"body":{"id":4489,"nodeType":"Block","src":"12391:718:5","nodes":[],"statements":[{"assignments":[4368],"declarations":[{"constant":false,"id":4368,"mutability":"mutable","name":"logs","nameLocation":"12421:4:5","nodeType":"VariableDeclaration","scope":4489,"src":"12401:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"},"typeName":{"baseType":{"id":4366,"nodeType":"UserDefinedTypeName","pathNode":{"id":4365,"name":"ReceiptLog","nameLocations":["12401:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3545,"src":"12401:10:5"},"referencedDeclaration":3545,"src":"12401:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog"}},"id":4367,"nodeType":"ArrayTypeName","src":"12401:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"}},"visibility":"internal"}],"id":4376,"initialValue":{"arguments":[{"expression":{"id":4373,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"12445:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":4374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12453:6:5","memberName":"length","nodeType":"MemberAccess","src":"12445:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12428:16:5","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct StdCheatsSafe.ReceiptLog memory[] memory)"},"typeName":{"baseType":{"id":4370,"nodeType":"UserDefinedTypeName","pathNode":{"id":4369,"name":"ReceiptLog","nameLocations":["12432:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3545,"src":"12432:10:5"},"referencedDeclaration":3545,"src":"12432:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog"}},"id":4371,"nodeType":"ArrayTypeName","src":"12432:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"}}},"id":4375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12428:32:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12401:59:5"},{"body":{"id":4485,"nodeType":"Block","src":"12511:571:5","statements":[{"expression":{"id":4395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":4387,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"12525:4:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":4389,"indexExpression":{"id":4388,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12530:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12525:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":4390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12533:10:5","memberName":"logAddress","nodeType":"MemberAccess","referencedDeclaration":3527,"src":"12525:18:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":4391,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"12546:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":4393,"indexExpression":{"id":4392,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12554:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12546:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3525_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":4394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12557:10:5","memberName":"logAddress","nodeType":"MemberAccess","referencedDeclaration":3505,"src":"12546:21:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12525:42:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4396,"nodeType":"ExpressionStatement","src":"12525:42:5"},{"expression":{"id":4405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":4397,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"12581:4:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":4399,"indexExpression":{"id":4398,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12586:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12581:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":4400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12589:9:5","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":3529,"src":"12581:17:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":4401,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"12601:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":4403,"indexExpression":{"id":4402,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12609:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12601:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3525_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":4404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12612:9:5","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":3507,"src":"12601:20:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12581:40:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4406,"nodeType":"ExpressionStatement","src":"12581:40:5"},{"expression":{"id":4417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":4407,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"12635:4:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":4409,"indexExpression":{"id":4408,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12640:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12635:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":4410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12643:11:5","memberName":"blockNumber","nodeType":"MemberAccess","referencedDeclaration":3531,"src":"12635:19:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":4412,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"12670:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":4414,"indexExpression":{"id":4413,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12678:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12670:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3525_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":4415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12681:11:5","memberName":"blockNumber","nodeType":"MemberAccess","referencedDeclaration":3509,"src":"12670:22:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4411,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"12657:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12657:36:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12635:58:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4418,"nodeType":"ExpressionStatement","src":"12635:58:5"},{"expression":{"id":4427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":4419,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"12707:4:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":4421,"indexExpression":{"id":4420,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12712:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12707:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":4422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12715:4:5","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3533,"src":"12707:12:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":4423,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"12722:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":4425,"indexExpression":{"id":4424,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12730:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12722:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3525_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":4426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12733:4:5","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3511,"src":"12722:15:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"12707:30:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4428,"nodeType":"ExpressionStatement","src":"12707:30:5"},{"expression":{"id":4439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":4429,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"12751:4:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":4431,"indexExpression":{"id":4430,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12756:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12751:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":4432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12759:8:5","memberName":"logIndex","nodeType":"MemberAccess","referencedDeclaration":3535,"src":"12751:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":4434,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"12783:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":4436,"indexExpression":{"id":4435,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12791:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12783:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3525_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":4437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12794:8:5","memberName":"logIndex","nodeType":"MemberAccess","referencedDeclaration":3513,"src":"12783:19:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4433,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"12770:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12770:33:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12751:52:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4440,"nodeType":"ExpressionStatement","src":"12751:52:5"},{"expression":{"id":4449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":4441,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"12817:4:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":4443,"indexExpression":{"id":4442,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12822:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12817:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":4444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12825:6:5","memberName":"topics","nodeType":"MemberAccess","referencedDeclaration":3538,"src":"12817:14:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":4445,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"12834:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":4447,"indexExpression":{"id":4446,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12842:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12834:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3525_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":4448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12845:6:5","memberName":"topics","nodeType":"MemberAccess","referencedDeclaration":3518,"src":"12834:17:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"12817:34:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":4450,"nodeType":"ExpressionStatement","src":"12817:34:5"},{"expression":{"id":4461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":4451,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"12865:4:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":4453,"indexExpression":{"id":4452,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12870:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12865:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":4454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12873:16:5","memberName":"transactionIndex","nodeType":"MemberAccess","referencedDeclaration":3540,"src":"12865:24:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":4456,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"12905:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":4458,"indexExpression":{"id":4457,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12913:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12905:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3525_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":4459,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12916:16:5","memberName":"transactionIndex","nodeType":"MemberAccess","referencedDeclaration":3522,"src":"12905:27:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4455,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"12892:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12892:41:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12865:68:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4462,"nodeType":"ExpressionStatement","src":"12865:68:5"},{"expression":{"id":4473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":4463,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"12947:4:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":4465,"indexExpression":{"id":4464,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12952:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12947:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":4466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12955:19:5","memberName":"transactionLogIndex","nodeType":"MemberAccess","referencedDeclaration":3542,"src":"12947:27:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":4468,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"12990:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":4470,"indexExpression":{"id":4469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12998:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12990:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3525_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":4471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13001:19:5","memberName":"transactionLogIndex","nodeType":"MemberAccess","referencedDeclaration":3524,"src":"12990:30:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4467,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"12977:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12977:44:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12947:74:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4474,"nodeType":"ExpressionStatement","src":"12947:74:5"},{"expression":{"id":4483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":4475,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"13035:4:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":4477,"indexExpression":{"id":4476,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"13040:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13035:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":4478,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13043:7:5","memberName":"removed","nodeType":"MemberAccess","referencedDeclaration":3544,"src":"13035:15:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":4479,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"13053:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":4481,"indexExpression":{"id":4480,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"13061:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13053:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3525_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":4482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13064:7:5","memberName":"removed","nodeType":"MemberAccess","referencedDeclaration":3515,"src":"13053:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13035:36:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4484,"nodeType":"ExpressionStatement","src":"13035:36:5"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4380,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12486:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":4381,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"12490:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":4382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12498:6:5","memberName":"length","nodeType":"MemberAccess","src":"12490:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12486:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4486,"initializationExpression":{"assignments":[4378],"declarations":[{"constant":false,"id":4378,"mutability":"mutable","name":"i","nameLocation":"12483:1:5","nodeType":"VariableDeclaration","scope":4486,"src":"12475:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4377,"name":"uint256","nodeType":"ElementaryTypeName","src":"12475:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4379,"nodeType":"VariableDeclarationStatement","src":"12475:9:5"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":4385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12506:3:5","subExpression":{"id":4384,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12506:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4386,"nodeType":"ExpressionStatement","src":"12506:3:5"},"nodeType":"ForStatement","src":"12470:612:5"},{"expression":{"id":4487,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"13098:4:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"functionReturnParameters":4363,"id":4488,"nodeType":"Return","src":"13091:11:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedReceiptLogs","nameLocation":"12245:25:5","parameters":{"id":4358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4357,"mutability":"mutable","name":"rawLogs","nameLocation":"12294:7:5","nodeType":"VariableDeclaration","scope":4490,"src":"12271:30:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog[]"},"typeName":{"baseType":{"id":4355,"nodeType":"UserDefinedTypeName","pathNode":{"id":4354,"name":"RawReceiptLog","nameLocations":["12271:13:5"],"nodeType":"IdentifierPath","referencedDeclaration":3525,"src":"12271:13:5"},"referencedDeclaration":3525,"src":"12271:13:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3525_storage_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog"}},"id":4356,"nodeType":"ArrayTypeName","src":"12271:15:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog[]"}},"visibility":"internal"}],"src":"12270:32:5"},"returnParameters":{"id":4363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4490,"src":"12366:19:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"},"typeName":{"baseType":{"id":4360,"nodeType":"UserDefinedTypeName","pathNode":{"id":4359,"name":"ReceiptLog","nameLocations":["12366:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3545,"src":"12366:10:5"},"referencedDeclaration":3545,"src":"12366:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog"}},"id":4361,"nodeType":"ArrayTypeName","src":"12366:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"}},"visibility":"internal"}],"src":"12365:21:5"},"scope":4792,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4522,"nodeType":"FunctionDefinition","src":"13269:416:5","nodes":[],"body":{"id":4521,"nodeType":"Block","src":"13368:317:5","nodes":[],"statements":[{"assignments":[4500],"declarations":[{"constant":false,"id":4500,"mutability":"mutable","name":"bytecode","nameLocation":"13391:8:5","nodeType":"VariableDeclaration","scope":4521,"src":"13378:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4499,"name":"bytes","nodeType":"ElementaryTypeName","src":"13378:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4509,"initialValue":{"arguments":[{"arguments":[{"id":4505,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4492,"src":"13430:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4503,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"13419:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13422:7:5","memberName":"getCode","nodeType":"MemberAccess","referencedDeclaration":8571,"src":"13419:10:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) view external returns (bytes memory)"}},"id":4506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13419:16:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4507,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4494,"src":"13437:4:5","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":4501,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13402:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13406:12:5","memberName":"encodePacked","nodeType":"MemberAccess","src":"13402:16:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13402:40:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"13378:64:5"},{"AST":{"nativeSrc":"13504:79:5","nodeType":"YulBlock","src":"13504:79:5","statements":[{"nativeSrc":"13518:55:5","nodeType":"YulAssignment","src":"13518:55:5","value":{"arguments":[{"kind":"number","nativeSrc":"13533:1:5","nodeType":"YulLiteral","src":"13533:1:5","type":"","value":"0"},{"arguments":[{"name":"bytecode","nativeSrc":"13540:8:5","nodeType":"YulIdentifier","src":"13540:8:5"},{"kind":"number","nativeSrc":"13550:4:5","nodeType":"YulLiteral","src":"13550:4:5","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13536:3:5","nodeType":"YulIdentifier","src":"13536:3:5"},"nativeSrc":"13536:19:5","nodeType":"YulFunctionCall","src":"13536:19:5"},{"arguments":[{"name":"bytecode","nativeSrc":"13563:8:5","nodeType":"YulIdentifier","src":"13563:8:5"}],"functionName":{"name":"mload","nativeSrc":"13557:5:5","nodeType":"YulIdentifier","src":"13557:5:5"},"nativeSrc":"13557:15:5","nodeType":"YulFunctionCall","src":"13557:15:5"}],"functionName":{"name":"create","nativeSrc":"13526:6:5","nodeType":"YulIdentifier","src":"13526:6:5"},"nativeSrc":"13526:47:5","nodeType":"YulFunctionCall","src":"13526:47:5"},"variableNames":[{"name":"addr","nativeSrc":"13518:4:5","nodeType":"YulIdentifier","src":"13518:4:5"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":4497,"isOffset":false,"isSlot":false,"src":"13518:4:5","valueSize":1},{"declaration":4500,"isOffset":false,"isSlot":false,"src":"13540:8:5","valueSize":1},{"declaration":4500,"isOffset":false,"isSlot":false,"src":"13563:8:5","valueSize":1}],"id":4510,"nodeType":"InlineAssembly","src":"13495:88:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4512,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4497,"src":"13601:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13617:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13609:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4513,"name":"address","nodeType":"ElementaryTypeName","src":"13609:7:5","typeDescriptions":{}}},"id":4516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13609:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13601:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473206465706c6f79436f646528737472696e672c6279746573293a204465706c6f796d656e74206661696c65642e","id":4518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13621:56:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_a8fe98dd1d450e91397ea844d0b9cef01528a963df7b8ac4b93b8aa3ef69cfce","typeString":"literal_string \"StdCheats deployCode(string,bytes): Deployment failed.\""},"value":"StdCheats deployCode(string,bytes): Deployment failed."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a8fe98dd1d450e91397ea844d0b9cef01528a963df7b8ac4b93b8aa3ef69cfce","typeString":"literal_string \"StdCheats deployCode(string,bytes): Deployment failed.\""}],"id":4511,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13593:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13593:85:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4520,"nodeType":"ExpressionStatement","src":"13593:85:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deployCode","nameLocation":"13278:10:5","parameters":{"id":4495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4492,"mutability":"mutable","name":"what","nameLocation":"13303:4:5","nodeType":"VariableDeclaration","scope":4522,"src":"13289:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4491,"name":"string","nodeType":"ElementaryTypeName","src":"13289:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4494,"mutability":"mutable","name":"args","nameLocation":"13322:4:5","nodeType":"VariableDeclaration","scope":4522,"src":"13309:17:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4493,"name":"bytes","nodeType":"ElementaryTypeName","src":"13309:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13288:39:5"},"returnParameters":{"id":4498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4497,"mutability":"mutable","name":"addr","nameLocation":"13362:4:5","nodeType":"VariableDeclaration","scope":4522,"src":"13354:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4496,"name":"address","nodeType":"ElementaryTypeName","src":"13354:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13353:14:5"},"scope":4792,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4548,"nodeType":"FunctionDefinition","src":"13691:367:5","nodes":[],"body":{"id":4547,"nodeType":"Block","src":"13771:287:5","nodes":[],"statements":[{"assignments":[4530],"declarations":[{"constant":false,"id":4530,"mutability":"mutable","name":"bytecode","nameLocation":"13794:8:5","nodeType":"VariableDeclaration","scope":4547,"src":"13781:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4529,"name":"bytes","nodeType":"ElementaryTypeName","src":"13781:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4535,"initialValue":{"arguments":[{"id":4533,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4524,"src":"13816:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4531,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"13805:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13808:7:5","memberName":"getCode","nodeType":"MemberAccess","referencedDeclaration":8571,"src":"13805:10:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) view external returns (bytes memory)"}},"id":4534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13805:16:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"13781:40:5"},{"AST":{"nativeSrc":"13883:79:5","nodeType":"YulBlock","src":"13883:79:5","statements":[{"nativeSrc":"13897:55:5","nodeType":"YulAssignment","src":"13897:55:5","value":{"arguments":[{"kind":"number","nativeSrc":"13912:1:5","nodeType":"YulLiteral","src":"13912:1:5","type":"","value":"0"},{"arguments":[{"name":"bytecode","nativeSrc":"13919:8:5","nodeType":"YulIdentifier","src":"13919:8:5"},{"kind":"number","nativeSrc":"13929:4:5","nodeType":"YulLiteral","src":"13929:4:5","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13915:3:5","nodeType":"YulIdentifier","src":"13915:3:5"},"nativeSrc":"13915:19:5","nodeType":"YulFunctionCall","src":"13915:19:5"},{"arguments":[{"name":"bytecode","nativeSrc":"13942:8:5","nodeType":"YulIdentifier","src":"13942:8:5"}],"functionName":{"name":"mload","nativeSrc":"13936:5:5","nodeType":"YulIdentifier","src":"13936:5:5"},"nativeSrc":"13936:15:5","nodeType":"YulFunctionCall","src":"13936:15:5"}],"functionName":{"name":"create","nativeSrc":"13905:6:5","nodeType":"YulIdentifier","src":"13905:6:5"},"nativeSrc":"13905:47:5","nodeType":"YulFunctionCall","src":"13905:47:5"},"variableNames":[{"name":"addr","nativeSrc":"13897:4:5","nodeType":"YulIdentifier","src":"13897:4:5"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":4527,"isOffset":false,"isSlot":false,"src":"13897:4:5","valueSize":1},{"declaration":4530,"isOffset":false,"isSlot":false,"src":"13919:8:5","valueSize":1},{"declaration":4530,"isOffset":false,"isSlot":false,"src":"13942:8:5","valueSize":1}],"id":4536,"nodeType":"InlineAssembly","src":"13874:88:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4538,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4527,"src":"13980:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13996:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4540,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13988:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4539,"name":"address","nodeType":"ElementaryTypeName","src":"13988:7:5","typeDescriptions":{}}},"id":4542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13988:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13980:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473206465706c6f79436f646528737472696e67293a204465706c6f796d656e74206661696c65642e","id":4544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14000:50:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_f6ca2d254da27f2f7b444314e77be236e782a4d81876827dbe8fe7dcea90b371","typeString":"literal_string \"StdCheats deployCode(string): Deployment failed.\""},"value":"StdCheats deployCode(string): Deployment failed."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f6ca2d254da27f2f7b444314e77be236e782a4d81876827dbe8fe7dcea90b371","typeString":"literal_string \"StdCheats deployCode(string): Deployment failed.\""}],"id":4537,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13972:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13972:79:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4546,"nodeType":"ExpressionStatement","src":"13972:79:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deployCode","nameLocation":"13700:10:5","parameters":{"id":4525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4524,"mutability":"mutable","name":"what","nameLocation":"13725:4:5","nodeType":"VariableDeclaration","scope":4548,"src":"13711:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4523,"name":"string","nodeType":"ElementaryTypeName","src":"13711:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13710:20:5"},"returnParameters":{"id":4528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4527,"mutability":"mutable","name":"addr","nameLocation":"13765:4:5","nodeType":"VariableDeclaration","scope":4548,"src":"13757:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4526,"name":"address","nodeType":"ElementaryTypeName","src":"13757:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13756:14:5"},"scope":4792,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4583,"nodeType":"FunctionDefinition","src":"14120:439:5","nodes":[],"body":{"id":4582,"nodeType":"Block","src":"14232:327:5","nodes":[],"statements":[{"assignments":[4561],"declarations":[{"constant":false,"id":4561,"mutability":"mutable","name":"bytecode","nameLocation":"14255:8:5","nodeType":"VariableDeclaration","scope":4582,"src":"14242:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4560,"name":"bytes","nodeType":"ElementaryTypeName","src":"14242:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4570,"initialValue":{"arguments":[{"arguments":[{"id":4566,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4551,"src":"14294:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4564,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"14283:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14286:7:5","memberName":"getCode","nodeType":"MemberAccess","referencedDeclaration":8571,"src":"14283:10:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) view external returns (bytes memory)"}},"id":4567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14283:16:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4568,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4553,"src":"14301:4:5","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":4562,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14266:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14270:12:5","memberName":"encodePacked","nodeType":"MemberAccess","src":"14266:16:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14266:40:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"14242:64:5"},{"AST":{"nativeSrc":"14368:81:5","nodeType":"YulBlock","src":"14368:81:5","statements":[{"nativeSrc":"14382:57:5","nodeType":"YulAssignment","src":"14382:57:5","value":{"arguments":[{"name":"val","nativeSrc":"14397:3:5","nodeType":"YulIdentifier","src":"14397:3:5"},{"arguments":[{"name":"bytecode","nativeSrc":"14406:8:5","nodeType":"YulIdentifier","src":"14406:8:5"},{"kind":"number","nativeSrc":"14416:4:5","nodeType":"YulLiteral","src":"14416:4:5","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14402:3:5","nodeType":"YulIdentifier","src":"14402:3:5"},"nativeSrc":"14402:19:5","nodeType":"YulFunctionCall","src":"14402:19:5"},{"arguments":[{"name":"bytecode","nativeSrc":"14429:8:5","nodeType":"YulIdentifier","src":"14429:8:5"}],"functionName":{"name":"mload","nativeSrc":"14423:5:5","nodeType":"YulIdentifier","src":"14423:5:5"},"nativeSrc":"14423:15:5","nodeType":"YulFunctionCall","src":"14423:15:5"}],"functionName":{"name":"create","nativeSrc":"14390:6:5","nodeType":"YulIdentifier","src":"14390:6:5"},"nativeSrc":"14390:49:5","nodeType":"YulFunctionCall","src":"14390:49:5"},"variableNames":[{"name":"addr","nativeSrc":"14382:4:5","nodeType":"YulIdentifier","src":"14382:4:5"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":4558,"isOffset":false,"isSlot":false,"src":"14382:4:5","valueSize":1},{"declaration":4561,"isOffset":false,"isSlot":false,"src":"14406:8:5","valueSize":1},{"declaration":4561,"isOffset":false,"isSlot":false,"src":"14429:8:5","valueSize":1},{"declaration":4555,"isOffset":false,"isSlot":false,"src":"14397:3:5","valueSize":1}],"id":4571,"nodeType":"InlineAssembly","src":"14359:90:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4573,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4558,"src":"14467:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14483:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4575,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14475:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4574,"name":"address","nodeType":"ElementaryTypeName","src":"14475:7:5","typeDescriptions":{}}},"id":4577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14475:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14467:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473206465706c6f79436f646528737472696e672c62797465732c75696e74323536293a204465706c6f796d656e74206661696c65642e","id":4579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14487:64:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_b17e0074adb88d93215aea54607c780b63b16eef6aef31eb92005d5de3508fa0","typeString":"literal_string \"StdCheats deployCode(string,bytes,uint256): Deployment failed.\""},"value":"StdCheats deployCode(string,bytes,uint256): Deployment failed."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b17e0074adb88d93215aea54607c780b63b16eef6aef31eb92005d5de3508fa0","typeString":"literal_string \"StdCheats deployCode(string,bytes,uint256): Deployment failed.\""}],"id":4572,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14459:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14459:93:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4581,"nodeType":"ExpressionStatement","src":"14459:93:5"}]},"documentation":{"id":4549,"nodeType":"StructuredDocumentation","src":"14064:51:5","text":"@dev deploy contract with value on construction"},"implemented":true,"kind":"function","modifiers":[],"name":"deployCode","nameLocation":"14129:10:5","parameters":{"id":4556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4551,"mutability":"mutable","name":"what","nameLocation":"14154:4:5","nodeType":"VariableDeclaration","scope":4583,"src":"14140:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4550,"name":"string","nodeType":"ElementaryTypeName","src":"14140:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4553,"mutability":"mutable","name":"args","nameLocation":"14173:4:5","nodeType":"VariableDeclaration","scope":4583,"src":"14160:17:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4552,"name":"bytes","nodeType":"ElementaryTypeName","src":"14160:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4555,"mutability":"mutable","name":"val","nameLocation":"14187:3:5","nodeType":"VariableDeclaration","scope":4583,"src":"14179:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4554,"name":"uint256","nodeType":"ElementaryTypeName","src":"14179:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14139:52:5"},"returnParameters":{"id":4559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4558,"mutability":"mutable","name":"addr","nameLocation":"14226:4:5","nodeType":"VariableDeclaration","scope":4583,"src":"14218:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4557,"name":"address","nodeType":"ElementaryTypeName","src":"14218:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14217:14:5"},"scope":4792,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4611,"nodeType":"FunctionDefinition","src":"14565:390:5","nodes":[],"body":{"id":4610,"nodeType":"Block","src":"14658:297:5","nodes":[],"statements":[{"assignments":[4593],"declarations":[{"constant":false,"id":4593,"mutability":"mutable","name":"bytecode","nameLocation":"14681:8:5","nodeType":"VariableDeclaration","scope":4610,"src":"14668:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4592,"name":"bytes","nodeType":"ElementaryTypeName","src":"14668:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4598,"initialValue":{"arguments":[{"id":4596,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4585,"src":"14703:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4594,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"14692:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14695:7:5","memberName":"getCode","nodeType":"MemberAccess","referencedDeclaration":8571,"src":"14692:10:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) view external returns (bytes memory)"}},"id":4597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14692:16:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"14668:40:5"},{"AST":{"nativeSrc":"14770:81:5","nodeType":"YulBlock","src":"14770:81:5","statements":[{"nativeSrc":"14784:57:5","nodeType":"YulAssignment","src":"14784:57:5","value":{"arguments":[{"name":"val","nativeSrc":"14799:3:5","nodeType":"YulIdentifier","src":"14799:3:5"},{"arguments":[{"name":"bytecode","nativeSrc":"14808:8:5","nodeType":"YulIdentifier","src":"14808:8:5"},{"kind":"number","nativeSrc":"14818:4:5","nodeType":"YulLiteral","src":"14818:4:5","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14804:3:5","nodeType":"YulIdentifier","src":"14804:3:5"},"nativeSrc":"14804:19:5","nodeType":"YulFunctionCall","src":"14804:19:5"},{"arguments":[{"name":"bytecode","nativeSrc":"14831:8:5","nodeType":"YulIdentifier","src":"14831:8:5"}],"functionName":{"name":"mload","nativeSrc":"14825:5:5","nodeType":"YulIdentifier","src":"14825:5:5"},"nativeSrc":"14825:15:5","nodeType":"YulFunctionCall","src":"14825:15:5"}],"functionName":{"name":"create","nativeSrc":"14792:6:5","nodeType":"YulIdentifier","src":"14792:6:5"},"nativeSrc":"14792:49:5","nodeType":"YulFunctionCall","src":"14792:49:5"},"variableNames":[{"name":"addr","nativeSrc":"14784:4:5","nodeType":"YulIdentifier","src":"14784:4:5"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":4590,"isOffset":false,"isSlot":false,"src":"14784:4:5","valueSize":1},{"declaration":4593,"isOffset":false,"isSlot":false,"src":"14808:8:5","valueSize":1},{"declaration":4593,"isOffset":false,"isSlot":false,"src":"14831:8:5","valueSize":1},{"declaration":4587,"isOffset":false,"isSlot":false,"src":"14799:3:5","valueSize":1}],"id":4599,"nodeType":"InlineAssembly","src":"14761:90:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4601,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4590,"src":"14869:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14885:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14877:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4602,"name":"address","nodeType":"ElementaryTypeName","src":"14877:7:5","typeDescriptions":{}}},"id":4605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14877:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14869:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473206465706c6f79436f646528737472696e672c75696e74323536293a204465706c6f796d656e74206661696c65642e","id":4607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14889:58:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_cea3fb8155c56e1e84c027eaf19b7f987ed52f1b7ae1ee8bed46141b7ecf08d2","typeString":"literal_string \"StdCheats deployCode(string,uint256): Deployment failed.\""},"value":"StdCheats deployCode(string,uint256): Deployment failed."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cea3fb8155c56e1e84c027eaf19b7f987ed52f1b7ae1ee8bed46141b7ecf08d2","typeString":"literal_string \"StdCheats deployCode(string,uint256): Deployment failed.\""}],"id":4600,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14861:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14861:87:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4609,"nodeType":"ExpressionStatement","src":"14861:87:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deployCode","nameLocation":"14574:10:5","parameters":{"id":4588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4585,"mutability":"mutable","name":"what","nameLocation":"14599:4:5","nodeType":"VariableDeclaration","scope":4611,"src":"14585:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4584,"name":"string","nodeType":"ElementaryTypeName","src":"14585:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4587,"mutability":"mutable","name":"val","nameLocation":"14613:3:5","nodeType":"VariableDeclaration","scope":4611,"src":"14605:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4586,"name":"uint256","nodeType":"ElementaryTypeName","src":"14605:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14584:33:5"},"returnParameters":{"id":4591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4590,"mutability":"mutable","name":"addr","nameLocation":"14652:4:5","nodeType":"VariableDeclaration","scope":4611,"src":"14644:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4589,"name":"address","nodeType":"ElementaryTypeName","src":"14644:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14643:14:5"},"scope":4792,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4647,"nodeType":"FunctionDefinition","src":"15028:242:5","nodes":[],"body":{"id":4646,"nodeType":"Block","src":"15132:138:5","nodes":[],"statements":[{"expression":{"id":4630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4620,"name":"privateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4618,"src":"15142:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":4626,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4613,"src":"15190:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4624,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15173:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15177:12:5","memberName":"encodePacked","nodeType":"MemberAccess","src":"15173:16:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15173:22:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4623,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15163:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15163:33:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15155:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4621,"name":"uint256","nodeType":"ElementaryTypeName","src":"15155:7:5","typeDescriptions":{}}},"id":4629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15155:42:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15142:55:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4631,"nodeType":"ExpressionStatement","src":"15142:55:5"},{"expression":{"id":4637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4632,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4616,"src":"15207:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4635,"name":"privateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4618,"src":"15222:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4633,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"15214:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15217:4:5","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":8255,"src":"15214:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":4636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15214:19:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15207:26:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4638,"nodeType":"ExpressionStatement","src":"15207:26:5"},{"expression":{"arguments":[{"id":4642,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4616,"src":"15252:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4643,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4613,"src":"15258:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4639,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"15243:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15246:5:5","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":8585,"src":"15243:8:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":4644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15243:20:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4645,"nodeType":"ExpressionStatement","src":"15243:20:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"makeAddrAndKey","nameLocation":"15037:14:5","parameters":{"id":4614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4613,"mutability":"mutable","name":"name","nameLocation":"15066:4:5","nodeType":"VariableDeclaration","scope":4647,"src":"15052:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4612,"name":"string","nodeType":"ElementaryTypeName","src":"15052:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15051:20:5"},"returnParameters":{"id":4619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4616,"mutability":"mutable","name":"addr","nameLocation":"15106:4:5","nodeType":"VariableDeclaration","scope":4647,"src":"15098:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4615,"name":"address","nodeType":"ElementaryTypeName","src":"15098:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4618,"mutability":"mutable","name":"privateKey","nameLocation":"15120:10:5","nodeType":"VariableDeclaration","scope":4647,"src":"15112:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4617,"name":"uint256","nodeType":"ElementaryTypeName","src":"15112:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15097:34:5"},"scope":4792,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4662,"nodeType":"FunctionDefinition","src":"15309:125:5","nodes":[],"body":{"id":4661,"nodeType":"Block","src":"15387:47:5","nodes":[],"statements":[{"expression":{"id":4659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":4654,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4652,"src":"15398:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},null],"id":4655,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"15397:7:5","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$__$","typeString":"tuple(address,)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4657,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4649,"src":"15422:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4656,"name":"makeAddrAndKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4647,"src":"15407:14:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_address_$_t_uint256_$","typeString":"function (string memory) returns (address,uint256)"}},"id":4658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15407:20:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"src":"15397:30:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4660,"nodeType":"ExpressionStatement","src":"15397:30:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"makeAddr","nameLocation":"15318:8:5","parameters":{"id":4650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4649,"mutability":"mutable","name":"name","nameLocation":"15341:4:5","nodeType":"VariableDeclaration","scope":4662,"src":"15327:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4648,"name":"string","nodeType":"ElementaryTypeName","src":"15327:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15326:20:5"},"returnParameters":{"id":4653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4652,"mutability":"mutable","name":"addr","nameLocation":"15381:4:5","nodeType":"VariableDeclaration","scope":4662,"src":"15373:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4651,"name":"address","nodeType":"ElementaryTypeName","src":"15373:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15372:14:5"},"scope":4792,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4689,"nodeType":"FunctionDefinition","src":"15440:253:5","nodes":[],"body":{"id":4688,"nodeType":"Block","src":"15592:101:5","nodes":[],"statements":[{"expression":{"id":4679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4673,"name":"privateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4671,"src":"15602:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4676,"name":"mnemonic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4664,"src":"15628:8:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4677,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4666,"src":"15638:5:5","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"id":4674,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"15615:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15618:9:5","memberName":"deriveKey","nodeType":"MemberAccess","referencedDeclaration":8782,"src":"15615:12:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_uint32_$returns$_t_uint256_$","typeString":"function (string memory,uint32) pure external returns (uint256)"}},"id":4678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15615:29:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15602:42:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4680,"nodeType":"ExpressionStatement","src":"15602:42:5"},{"expression":{"id":4686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4681,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4669,"src":"15654:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4684,"name":"privateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4671,"src":"15675:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4682,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"15660:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15663:11:5","memberName":"rememberKey","nodeType":"MemberAccess","referencedDeclaration":8800,"src":"15660:14:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) external returns (address)"}},"id":4685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15660:26:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15654:32:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4687,"nodeType":"ExpressionStatement","src":"15654:32:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deriveRememberKey","nameLocation":"15449:17:5","parameters":{"id":4667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4664,"mutability":"mutable","name":"mnemonic","nameLocation":"15481:8:5","nodeType":"VariableDeclaration","scope":4689,"src":"15467:22:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4663,"name":"string","nodeType":"ElementaryTypeName","src":"15467:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4666,"mutability":"mutable","name":"index","nameLocation":"15498:5:5","nodeType":"VariableDeclaration","scope":4689,"src":"15491:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":4665,"name":"uint32","nodeType":"ElementaryTypeName","src":"15491:6:5","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"15466:38:5"},"returnParameters":{"id":4672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4669,"mutability":"mutable","name":"who","nameLocation":"15563:3:5","nodeType":"VariableDeclaration","scope":4689,"src":"15555:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4668,"name":"address","nodeType":"ElementaryTypeName","src":"15555:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4671,"mutability":"mutable","name":"privateKey","nameLocation":"15576:10:5","nodeType":"VariableDeclaration","scope":4689,"src":"15568:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4670,"name":"uint256","nodeType":"ElementaryTypeName","src":"15568:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15554:33:5"},"scope":4792,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4723,"nodeType":"FunctionDefinition","src":"15699:253:5","nodes":[],"body":{"id":4722,"nodeType":"Block","src":"15768:184:5","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4697,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4691,"src":"15786:1:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15788:6:5","memberName":"length","nodeType":"MemberAccess","src":"15786:8:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3332","id":4699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15798:2:5","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"15786:14:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473205f6279746573546f55696e74286279746573293a204279746573206c656e67746820657863656564732033322e","id":4701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15802:57:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4b692fb570df93e970ec8540fb3e2b3774022687951840fb5414e81f7899b71","typeString":"literal_string \"StdCheats _bytesToUint(bytes): Bytes length exceeds 32.\""},"value":"StdCheats _bytesToUint(bytes): Bytes length exceeds 32."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b4b692fb570df93e970ec8540fb3e2b3774022687951840fb5414e81f7899b71","typeString":"literal_string \"StdCheats _bytesToUint(bytes): Bytes length exceeds 32.\""}],"id":4696,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15778:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15778:82:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4703,"nodeType":"ExpressionStatement","src":"15778:82:5"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":4710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15915:2:5","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":4711,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4691,"src":"15920:1:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15922:6:5","memberName":"length","nodeType":"MemberAccess","src":"15920:8:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15915:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15905:9:5","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":4708,"name":"bytes","nodeType":"ElementaryTypeName","src":"15909:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":4714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15905:24:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4715,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4691,"src":"15931:1:5","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":4706,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15888:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4707,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15892:12:5","memberName":"encodePacked","nodeType":"MemberAccess","src":"15888:16:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15888:45:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":4718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15936:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4717,"name":"uint256","nodeType":"ElementaryTypeName","src":"15936:7:5","typeDescriptions":{}}}],"id":4719,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"15935:9:5","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":4704,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15877:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15881:6:5","memberName":"decode","nodeType":"MemberAccess","src":"15877:10:5","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15877:68:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4695,"id":4721,"nodeType":"Return","src":"15870:75:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_bytesToUint","nameLocation":"15708:12:5","parameters":{"id":4692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4691,"mutability":"mutable","name":"b","nameLocation":"15734:1:5","nodeType":"VariableDeclaration","scope":4723,"src":"15721:14:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4690,"name":"bytes","nodeType":"ElementaryTypeName","src":"15721:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15720:16:5"},"returnParameters":{"id":4695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4694,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4723,"src":"15759:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4693,"name":"uint256","nodeType":"ElementaryTypeName","src":"15759:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15758:9:5"},"scope":4792,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":4744,"nodeType":"FunctionDefinition","src":"15958:155:5","nodes":[],"body":{"id":4743,"nodeType":"Block","src":"16015:98:5","nodes":[],"statements":[{"clauses":[{"block":{"id":4735,"nodeType":"Block","src":"16045:38:5","statements":[{"expression":{"id":4733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4731,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4726,"src":"16059:6:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16068:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"16059:13:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4734,"nodeType":"ExpressionStatement","src":"16059:13:5"}]},"errorName":"","id":4736,"nodeType":"TryCatchClause","src":"16045:38:5"},{"block":{"id":4740,"nodeType":"Block","src":"16105:2:5","statements":[]},"errorName":"","id":4741,"nodeType":"TryCatchClause","parameters":{"id":4739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4738,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4741,"src":"16091:12:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4737,"name":"bytes","nodeType":"ElementaryTypeName","src":"16091:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16090:14:5"},"src":"16084:23:5"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4728,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"16029:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16032:10:5","memberName":"activeFork","nodeType":"MemberAccess","referencedDeclaration":9265,"src":"16029:13:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":4730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16029:15:5","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4742,"nodeType":"TryStatement","src":"16025:82:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isFork","nameLocation":"15967:6:5","parameters":{"id":4724,"nodeType":"ParameterList","parameters":[],"src":"15973:2:5"},"returnParameters":{"id":4727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4726,"mutability":"mutable","name":"status","nameLocation":"16007:6:5","nodeType":"VariableDeclaration","scope":4744,"src":"16002:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4725,"name":"bool","nodeType":"ElementaryTypeName","src":"16002:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16001:13:5"},"scope":4792,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4753,"nodeType":"ModifierDefinition","src":"16119:84:5","nodes":[],"body":{"id":4752,"nodeType":"Block","src":"16146:57:5","nodes":[],"statements":[{"condition":{"id":4748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16160:9:5","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":4746,"name":"isFork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4744,"src":"16161:6:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_bool_$","typeString":"function () returns (bool)"}},"id":4747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16161:8:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4751,"nodeType":"IfStatement","src":"16156:41:5","trueBody":{"id":4750,"nodeType":"Block","src":"16171:26:5","statements":[{"id":4749,"nodeType":"PlaceholderStatement","src":"16185:1:5"}]}}]},"name":"skipWhenForking","nameLocation":"16128:15:5","parameters":{"id":4745,"nodeType":"ParameterList","parameters":[],"src":"16143:2:5"},"virtual":false,"visibility":"internal"},{"id":4761,"nodeType":"ModifierDefinition","src":"16209:86:5","nodes":[],"body":{"id":4760,"nodeType":"Block","src":"16239:56:5","nodes":[],"statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":4755,"name":"isFork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4744,"src":"16253:6:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_bool_$","typeString":"function () returns (bool)"}},"id":4756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16253:8:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4759,"nodeType":"IfStatement","src":"16249:40:5","trueBody":{"id":4758,"nodeType":"Block","src":"16263:26:5","statements":[{"id":4757,"nodeType":"PlaceholderStatement","src":"16277:1:5"}]}}]},"name":"skipWhenNotForking","nameLocation":"16218:18:5","parameters":{"id":4754,"nodeType":"ParameterList","parameters":[],"src":"16236:2:5"},"virtual":false,"visibility":"internal"},{"id":4791,"nodeType":"ModifierDefinition","src":"16301:884:5","nodes":[],"body":{"id":4790,"nodeType":"Block","src":"16326:859:5","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4763,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"16336:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16339:16:5","memberName":"pauseGasMetering","nodeType":"MemberAccess","referencedDeclaration":9023,"src":"16336:19:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":4766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16336:21:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4767,"nodeType":"ExpressionStatement","src":"16336:21:5"},{"assignments":[4769],"declarations":[{"constant":false,"id":4769,"mutability":"mutable","name":"gasStartedOff","nameLocation":"16900:13:5","nodeType":"VariableDeclaration","scope":4790,"src":"16895:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4768,"name":"bool","nodeType":"ElementaryTypeName","src":"16895:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":4771,"initialValue":{"id":4770,"name":"gasMeteringOff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"16916:14:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"16895:35:5"},{"expression":{"id":4774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4772,"name":"gasMeteringOff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"16940:14:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16957:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"16940:21:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4775,"nodeType":"ExpressionStatement","src":"16940:21:5"},{"id":4776,"nodeType":"PlaceholderStatement","src":"16972:1:5"},{"condition":{"id":4778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17080:14:5","subExpression":{"id":4777,"name":"gasStartedOff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4769,"src":"17081:13:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4789,"nodeType":"IfStatement","src":"17076:103:5","trueBody":{"id":4788,"nodeType":"Block","src":"17096:83:5","statements":[{"expression":{"id":4781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4779,"name":"gasMeteringOff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"17110:14:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":4780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17127:5:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"17110:22:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4782,"nodeType":"ExpressionStatement","src":"17110:22:5"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4783,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"17146:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17149:17:5","memberName":"resumeGasMetering","nodeType":"MemberAccess","referencedDeclaration":9026,"src":"17146:20:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":4786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17146:22:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4787,"nodeType":"ExpressionStatement","src":"17146:22:5"}]}}]},"name":"noGasMetering","nameLocation":"16310:13:5","parameters":{"id":4762,"nodeType":"ParameterList","parameters":[],"src":"16323:2:5"},"virtual":false,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"StdCheatsSafe","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[4792],"name":"StdCheatsSafe","nameLocation":"205:13:5","scope":5182,"usedErrors":[],"usedEvents":[]},{"id":5181,"nodeType":"ContractDefinition","src":"17237:3156:5","nodes":[{"id":4798,"nodeType":"UsingForDirective","src":"17288:32:5","nodes":[],"global":false,"libraryName":{"id":4795,"name":"stdStorage","nameLocations":["17294:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":7522,"src":"17294:10:5"},"typeName":{"id":4797,"nodeType":"UserDefinedTypeName","pathNode":{"id":4796,"name":"StdStorage","nameLocations":["17309:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"17309:10:5"},"referencedDeclaration":6088,"src":"17309:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}}},{"id":4801,"nodeType":"VariableDeclaration","src":"17326:27:5","nodes":[],"constant":false,"mutability":"mutable","name":"stdstore","nameLocation":"17345:8:5","scope":5181,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage","typeString":"struct StdStorage"},"typeName":{"id":4800,"nodeType":"UserDefinedTypeName","pathNode":{"id":4799,"name":"StdStorage","nameLocations":["17326:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"17326:10:5"},"referencedDeclaration":6088,"src":"17326:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"private"},{"id":4818,"nodeType":"VariableDeclaration","src":"17359:84:5","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"17379:2:5","scope":5181,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"},"typeName":{"id":4803,"nodeType":"UserDefinedTypeName","pathNode":{"id":4802,"name":"Vm","nameLocations":["17359:2:5"],"nodeType":"IdentifierPath","referencedDeclaration":9352,"src":"17359:2:5"},"referencedDeclaration":9352,"src":"17359:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":4812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17421:17:5","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":4811,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17411:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17411:28:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17403:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4809,"name":"uint256","nodeType":"ElementaryTypeName","src":"17403:7:5","typeDescriptions":{}}},"id":4814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17403:37:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17395:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4807,"name":"uint160","nodeType":"ElementaryTypeName","src":"17395:7:5","typeDescriptions":{}}},"id":4815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17395:46:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4806,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17387:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4805,"name":"address","nodeType":"ElementaryTypeName","src":"17387:7:5","typeDescriptions":{}}},"id":4816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17387:55:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4804,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9352,"src":"17384:2:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$9352_$","typeString":"type(contract Vm)"}},"id":4817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17384:59:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"visibility":"private"},{"id":4833,"nodeType":"FunctionDefinition","src":"17520:93:5","nodes":[],"body":{"id":4832,"nodeType":"Block","src":"17565:48:5","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4826,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"17583:5:5","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17589:9:5","memberName":"timestamp","nodeType":"MemberAccess","src":"17583:15:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":4828,"name":"time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"17601:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17583:22:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4823,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"17575:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17578:4:5","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":9034,"src":"17575:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":4830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17575:31:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4831,"nodeType":"ExpressionStatement","src":"17575:31:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"skip","nameLocation":"17529:4:5","parameters":{"id":4821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4820,"mutability":"mutable","name":"time","nameLocation":"17542:4:5","nodeType":"VariableDeclaration","scope":4833,"src":"17534:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4819,"name":"uint256","nodeType":"ElementaryTypeName","src":"17534:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17533:14:5"},"returnParameters":{"id":4822,"nodeType":"ParameterList","parameters":[],"src":"17565:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4848,"nodeType":"FunctionDefinition","src":"17619:95:5","nodes":[],"body":{"id":4847,"nodeType":"Block","src":"17666:48:5","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4841,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"17684:5:5","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17690:9:5","memberName":"timestamp","nodeType":"MemberAccess","src":"17684:15:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":4843,"name":"time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4835,"src":"17702:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17684:22:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4838,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"17676:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17679:4:5","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":9034,"src":"17676:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":4845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17676:31:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4846,"nodeType":"ExpressionStatement","src":"17676:31:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rewind","nameLocation":"17628:6:5","parameters":{"id":4836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4835,"mutability":"mutable","name":"time","nameLocation":"17643:4:5","nodeType":"VariableDeclaration","scope":4848,"src":"17635:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4834,"name":"uint256","nodeType":"ElementaryTypeName","src":"17635:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17634:14:5"},"returnParameters":{"id":4837,"nodeType":"ParameterList","parameters":[],"src":"17666:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4869,"nodeType":"FunctionDefinition","src":"17777:106:5","nodes":[],"body":{"id":4868,"nodeType":"Block","src":"17821:62:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":4856,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4850,"src":"17839:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":4859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17844:1:5","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":4858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17849:3:5","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"17844:8:5","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}],"expression":{"id":4853,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"17831:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17834:4:5","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"17831:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":4860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17831:22:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4861,"nodeType":"ExpressionStatement","src":"17831:22:5"},{"expression":{"arguments":[{"id":4865,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4850,"src":"17872:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4862,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"17863:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17866:5:5","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":9075,"src":"17863:8:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":4866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17863:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4867,"nodeType":"ExpressionStatement","src":"17863:13:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"hoax","nameLocation":"17786:4:5","parameters":{"id":4851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4850,"mutability":"mutable","name":"who","nameLocation":"17799:3:5","nodeType":"VariableDeclaration","scope":4869,"src":"17791:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4849,"name":"address","nodeType":"ElementaryTypeName","src":"17791:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17790:13:5"},"returnParameters":{"id":4852,"nodeType":"ParameterList","parameters":[],"src":"17821:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4890,"nodeType":"FunctionDefinition","src":"17889:116:5","nodes":[],"body":{"id":4889,"nodeType":"Block","src":"17947:58:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":4879,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4871,"src":"17965:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4880,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4873,"src":"17970:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4876,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"17957:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17960:4:5","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"17957:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":4881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17957:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4882,"nodeType":"ExpressionStatement","src":"17957:18:5"},{"expression":{"arguments":[{"id":4886,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4871,"src":"17994:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4883,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"17985:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17988:5:5","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":9075,"src":"17985:8:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":4887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17985:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4888,"nodeType":"ExpressionStatement","src":"17985:13:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"hoax","nameLocation":"17898:4:5","parameters":{"id":4874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4871,"mutability":"mutable","name":"who","nameLocation":"17911:3:5","nodeType":"VariableDeclaration","scope":4890,"src":"17903:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4870,"name":"address","nodeType":"ElementaryTypeName","src":"17903:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4873,"mutability":"mutable","name":"give","nameLocation":"17924:4:5","nodeType":"VariableDeclaration","scope":4890,"src":"17916:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4872,"name":"uint256","nodeType":"ElementaryTypeName","src":"17916:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17902:27:5"},"returnParameters":{"id":4875,"nodeType":"ParameterList","parameters":[],"src":"17947:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4914,"nodeType":"FunctionDefinition","src":"18011:130:5","nodes":[],"body":{"id":4913,"nodeType":"Block","src":"18071:70:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":4900,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4892,"src":"18089:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":4903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18094:1:5","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":4902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18099:3:5","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"18094:8:5","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}],"expression":{"id":4897,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18081:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18084:4:5","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"18081:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":4904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18081:22:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4905,"nodeType":"ExpressionStatement","src":"18081:22:5"},{"expression":{"arguments":[{"id":4909,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4892,"src":"18122:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4910,"name":"origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4894,"src":"18127:6:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4906,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18113:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18116:5:5","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":9087,"src":"18113:8:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":4911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18113:21:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4912,"nodeType":"ExpressionStatement","src":"18113:21:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"hoax","nameLocation":"18020:4:5","parameters":{"id":4895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4892,"mutability":"mutable","name":"who","nameLocation":"18033:3:5","nodeType":"VariableDeclaration","scope":4914,"src":"18025:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4891,"name":"address","nodeType":"ElementaryTypeName","src":"18025:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4894,"mutability":"mutable","name":"origin","nameLocation":"18046:6:5","nodeType":"VariableDeclaration","scope":4914,"src":"18038:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4893,"name":"address","nodeType":"ElementaryTypeName","src":"18038:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18024:29:5"},"returnParameters":{"id":4896,"nodeType":"ParameterList","parameters":[],"src":"18071:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4938,"nodeType":"FunctionDefinition","src":"18147:140:5","nodes":[],"body":{"id":4937,"nodeType":"Block","src":"18221:66:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":4926,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4916,"src":"18239:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4927,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4920,"src":"18244:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4923,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18231:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18234:4:5","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"18231:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":4928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18231:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4929,"nodeType":"ExpressionStatement","src":"18231:18:5"},{"expression":{"arguments":[{"id":4933,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4916,"src":"18268:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4934,"name":"origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4918,"src":"18273:6:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4930,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18259:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18262:5:5","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":9087,"src":"18259:8:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":4935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18259:21:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4936,"nodeType":"ExpressionStatement","src":"18259:21:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"hoax","nameLocation":"18156:4:5","parameters":{"id":4921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4916,"mutability":"mutable","name":"who","nameLocation":"18169:3:5","nodeType":"VariableDeclaration","scope":4938,"src":"18161:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4915,"name":"address","nodeType":"ElementaryTypeName","src":"18161:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4918,"mutability":"mutable","name":"origin","nameLocation":"18182:6:5","nodeType":"VariableDeclaration","scope":4938,"src":"18174:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4917,"name":"address","nodeType":"ElementaryTypeName","src":"18174:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4920,"mutability":"mutable","name":"give","nameLocation":"18198:4:5","nodeType":"VariableDeclaration","scope":4938,"src":"18190:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4919,"name":"uint256","nodeType":"ElementaryTypeName","src":"18190:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18160:43:5"},"returnParameters":{"id":4922,"nodeType":"ParameterList","parameters":[],"src":"18221:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4959,"nodeType":"FunctionDefinition","src":"18358:116:5","nodes":[],"body":{"id":4958,"nodeType":"Block","src":"18407:67:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":4946,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4940,"src":"18425:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":4949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18430:1:5","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":4948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18435:3:5","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"18430:8:5","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}],"expression":{"id":4943,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18417:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18420:4:5","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"18417:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":4950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18417:22:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4951,"nodeType":"ExpressionStatement","src":"18417:22:5"},{"expression":{"arguments":[{"id":4955,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4940,"src":"18463:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4952,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18449:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18452:10:5","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":9080,"src":"18449:13:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":4956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18449:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4957,"nodeType":"ExpressionStatement","src":"18449:18:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"startHoax","nameLocation":"18367:9:5","parameters":{"id":4941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4940,"mutability":"mutable","name":"who","nameLocation":"18385:3:5","nodeType":"VariableDeclaration","scope":4959,"src":"18377:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4939,"name":"address","nodeType":"ElementaryTypeName","src":"18377:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18376:13:5"},"returnParameters":{"id":4942,"nodeType":"ParameterList","parameters":[],"src":"18407:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4980,"nodeType":"FunctionDefinition","src":"18480:126:5","nodes":[],"body":{"id":4979,"nodeType":"Block","src":"18543:63:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":4969,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4961,"src":"18561:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4970,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4963,"src":"18566:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4966,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18553:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18556:4:5","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"18553:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":4971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18553:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4972,"nodeType":"ExpressionStatement","src":"18553:18:5"},{"expression":{"arguments":[{"id":4976,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4961,"src":"18595:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4973,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18581:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18584:10:5","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":9080,"src":"18581:13:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":4977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18581:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4978,"nodeType":"ExpressionStatement","src":"18581:18:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"startHoax","nameLocation":"18489:9:5","parameters":{"id":4964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4961,"mutability":"mutable","name":"who","nameLocation":"18507:3:5","nodeType":"VariableDeclaration","scope":4980,"src":"18499:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4960,"name":"address","nodeType":"ElementaryTypeName","src":"18499:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4963,"mutability":"mutable","name":"give","nameLocation":"18520:4:5","nodeType":"VariableDeclaration","scope":4980,"src":"18512:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4962,"name":"uint256","nodeType":"ElementaryTypeName","src":"18512:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18498:27:5"},"returnParameters":{"id":4965,"nodeType":"ParameterList","parameters":[],"src":"18543:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5004,"nodeType":"FunctionDefinition","src":"18725:140:5","nodes":[],"body":{"id":5003,"nodeType":"Block","src":"18790:75:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":4990,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4982,"src":"18808:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":4993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18813:1:5","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":4992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18818:3:5","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"18813:8:5","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}],"expression":{"id":4987,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18800:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18803:4:5","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"18800:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":4994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18800:22:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4995,"nodeType":"ExpressionStatement","src":"18800:22:5"},{"expression":{"arguments":[{"id":4999,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4982,"src":"18846:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5000,"name":"origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4984,"src":"18851:6:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4996,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18832:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18835:10:5","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":9094,"src":"18832:13:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":5001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18832:26:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5002,"nodeType":"ExpressionStatement","src":"18832:26:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"startHoax","nameLocation":"18734:9:5","parameters":{"id":4985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4982,"mutability":"mutable","name":"who","nameLocation":"18752:3:5","nodeType":"VariableDeclaration","scope":5004,"src":"18744:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4981,"name":"address","nodeType":"ElementaryTypeName","src":"18744:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4984,"mutability":"mutable","name":"origin","nameLocation":"18765:6:5","nodeType":"VariableDeclaration","scope":5004,"src":"18757:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4983,"name":"address","nodeType":"ElementaryTypeName","src":"18757:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18743:29:5"},"returnParameters":{"id":4986,"nodeType":"ParameterList","parameters":[],"src":"18790:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5028,"nodeType":"FunctionDefinition","src":"18871:150:5","nodes":[],"body":{"id":5027,"nodeType":"Block","src":"18950:71:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":5016,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5006,"src":"18968:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5017,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5010,"src":"18973:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5013,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18960:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":5015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18963:4:5","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"18960:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18960:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5019,"nodeType":"ExpressionStatement","src":"18960:18:5"},{"expression":{"arguments":[{"id":5023,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5006,"src":"19002:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5024,"name":"origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5008,"src":"19007:6:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5020,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18988:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":5022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18991:10:5","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":9094,"src":"18988:13:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":5025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18988:26:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5026,"nodeType":"ExpressionStatement","src":"18988:26:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"startHoax","nameLocation":"18880:9:5","parameters":{"id":5011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5006,"mutability":"mutable","name":"who","nameLocation":"18898:3:5","nodeType":"VariableDeclaration","scope":5028,"src":"18890:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5005,"name":"address","nodeType":"ElementaryTypeName","src":"18890:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5008,"mutability":"mutable","name":"origin","nameLocation":"18911:6:5","nodeType":"VariableDeclaration","scope":5028,"src":"18903:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5007,"name":"address","nodeType":"ElementaryTypeName","src":"18903:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5010,"mutability":"mutable","name":"give","nameLocation":"18927:4:5","nodeType":"VariableDeclaration","scope":5028,"src":"18919:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5009,"name":"uint256","nodeType":"ElementaryTypeName","src":"18919:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18889:43:5"},"returnParameters":{"id":5012,"nodeType":"ParameterList","parameters":[],"src":"18950:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5045,"nodeType":"FunctionDefinition","src":"19027:110:5","nodes":[],"body":{"id":5044,"nodeType":"Block","src":"19078:59:5","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5033,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"19088:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":5035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19091:9:5","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":9097,"src":"19088:12:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":5036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19088:14:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5037,"nodeType":"ExpressionStatement","src":"19088:14:5"},{"expression":{"arguments":[{"id":5041,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5030,"src":"19126:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5038,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"19112:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":5040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19115:10:5","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":9080,"src":"19112:13:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19112:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5043,"nodeType":"ExpressionStatement","src":"19112:18:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"changePrank","nameLocation":"19036:11:5","parameters":{"id":5031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5030,"mutability":"mutable","name":"who","nameLocation":"19056:3:5","nodeType":"VariableDeclaration","scope":5045,"src":"19048:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5029,"name":"address","nodeType":"ElementaryTypeName","src":"19048:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19047:13:5"},"returnParameters":{"id":5032,"nodeType":"ParameterList","parameters":[],"src":"19078:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5060,"nodeType":"FunctionDefinition","src":"19228:91:5","nodes":[],"body":{"id":5059,"nodeType":"Block","src":"19285:34:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":5055,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5047,"src":"19303:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5056,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5049,"src":"19307:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5052,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"19295:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":5054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19298:4:5","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"19295:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19295:17:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5058,"nodeType":"ExpressionStatement","src":"19295:17:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deal","nameLocation":"19237:4:5","parameters":{"id":5050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5047,"mutability":"mutable","name":"to","nameLocation":"19250:2:5","nodeType":"VariableDeclaration","scope":5060,"src":"19242:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5046,"name":"address","nodeType":"ElementaryTypeName","src":"19242:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5049,"mutability":"mutable","name":"give","nameLocation":"19262:4:5","nodeType":"VariableDeclaration","scope":5060,"src":"19254:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5048,"name":"uint256","nodeType":"ElementaryTypeName","src":"19254:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19241:26:5"},"returnParameters":{"id":5051,"nodeType":"ParameterList","parameters":[],"src":"19285:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5077,"nodeType":"FunctionDefinition","src":"19443:117:5","nodes":[],"body":{"id":5076,"nodeType":"Block","src":"19515:45:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":5070,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5062,"src":"19530:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5071,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5064,"src":"19537:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5072,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5066,"src":"19541:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":5073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19547:5:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5069,"name":"deal","nodeType":"Identifier","overloadedDeclarations":[5060,5077,5180],"referencedDeclaration":5180,"src":"19525:4:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,address,uint256,bool)"}},"id":5074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19525:28:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5075,"nodeType":"ExpressionStatement","src":"19525:28:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deal","nameLocation":"19452:4:5","parameters":{"id":5067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5062,"mutability":"mutable","name":"token","nameLocation":"19465:5:5","nodeType":"VariableDeclaration","scope":5077,"src":"19457:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5061,"name":"address","nodeType":"ElementaryTypeName","src":"19457:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5064,"mutability":"mutable","name":"to","nameLocation":"19480:2:5","nodeType":"VariableDeclaration","scope":5077,"src":"19472:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5063,"name":"address","nodeType":"ElementaryTypeName","src":"19472:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5066,"mutability":"mutable","name":"give","nameLocation":"19492:4:5","nodeType":"VariableDeclaration","scope":5077,"src":"19484:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5065,"name":"uint256","nodeType":"ElementaryTypeName","src":"19484:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19456:41:5"},"returnParameters":{"id":5068,"nodeType":"ParameterList","parameters":[],"src":"19515:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5180,"nodeType":"FunctionDefinition","src":"19566:825:5","nodes":[],"body":{"id":5179,"nodeType":"Block","src":"19651:740:5","nodes":[],"statements":[{"assignments":[null,5089],"declarations":[null,{"constant":false,"id":5089,"mutability":"mutable","name":"balData","nameLocation":"19708:7:5","nodeType":"VariableDeclaration","scope":5179,"src":"19695:20:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5088,"name":"bytes","nodeType":"ElementaryTypeName","src":"19695:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5098,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783730613038323331","id":5094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19753:10:5","typeDescriptions":{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},"value":"0x70a08231"},{"id":5095,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5081,"src":"19765:2:5","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":5092,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19730:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19734:18:5","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"19730:22:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19730:38:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5090,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5079,"src":"19719:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19725:4:5","memberName":"call","nodeType":"MemberAccess","src":"19719:10:5","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":5097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19719:50:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"19692:77:5"},{"assignments":[5100],"declarations":[{"constant":false,"id":5100,"mutability":"mutable","name":"prevBal","nameLocation":"19787:7:5","nodeType":"VariableDeclaration","scope":5179,"src":"19779:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5099,"name":"uint256","nodeType":"ElementaryTypeName","src":"19779:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5108,"initialValue":{"arguments":[{"id":5103,"name":"balData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5089,"src":"19808:7:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19818:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5104,"name":"uint256","nodeType":"ElementaryTypeName","src":"19818:7:5","typeDescriptions":{}}}],"id":5106,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19817:9:5","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":5101,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19797:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19801:6:5","memberName":"decode","nodeType":"MemberAccess","src":"19797:10:5","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19797:30:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19779:48:5"},{"expression":{"arguments":[{"id":5121,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5083,"src":"19930:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":5118,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5081,"src":"19912:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"hexValue":"30783730613038323331","id":5115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19891:10:5","typeDescriptions":{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},"value":"0x70a08231"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"}],"expression":{"arguments":[{"id":5112,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5079,"src":"19880:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5109,"name":"stdstore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4801,"src":"19864:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage","typeString":"struct StdStorage storage ref"}},"id":5111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19873:6:5","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":7043,"src":"19864:15:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$attached_to$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":5113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19864:22:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":5114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19887:3:5","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":7061,"src":"19864:26:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$attached_to$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"}},"id":5116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19864:38:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":5117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19903:8:5","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":7097,"src":"19864:47:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$attached_to$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":5119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19864:51:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":5120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19916:13:5","memberName":"checked_write","nodeType":"MemberAccess","referencedDeclaration":7191,"src":"19864:65:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256)"}},"id":5122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19864:71:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5123,"nodeType":"ExpressionStatement","src":"19864:71:5"},{"condition":{"id":5124,"name":"adjust","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5085,"src":"19981:6:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5178,"nodeType":"IfStatement","src":"19977:408:5","trueBody":{"id":5177,"nodeType":"Block","src":"19989:396:5","statements":[{"assignments":[null,5126],"declarations":[null,{"constant":false,"id":5126,"mutability":"mutable","name":"totSupData","nameLocation":"20019:10:5","nodeType":"VariableDeclaration","scope":5177,"src":"20006:23:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5125,"name":"bytes","nodeType":"ElementaryTypeName","src":"20006:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5134,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783138313630646464","id":5131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20067:10:5","typeDescriptions":{"typeIdentifier":"t_rational_404098525_by_1","typeString":"int_const 404098525"},"value":"0x18160ddd"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_404098525_by_1","typeString":"int_const 404098525"}],"expression":{"id":5129,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20044:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20048:18:5","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"20044:22:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20044:34:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5127,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5079,"src":"20033:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20039:4:5","memberName":"call","nodeType":"MemberAccess","src":"20033:10:5","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":5133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20033:46:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"20003:76:5"},{"assignments":[5136],"declarations":[{"constant":false,"id":5136,"mutability":"mutable","name":"totSup","nameLocation":"20101:6:5","nodeType":"VariableDeclaration","scope":5177,"src":"20093:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5135,"name":"uint256","nodeType":"ElementaryTypeName","src":"20093:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5144,"initialValue":{"arguments":[{"id":5139,"name":"totSupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5126,"src":"20121:10:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20134:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5140,"name":"uint256","nodeType":"ElementaryTypeName","src":"20134:7:5","typeDescriptions":{}}}],"id":5142,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20133:9:5","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":5137,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20110:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20114:6:5","memberName":"decode","nodeType":"MemberAccess","src":"20110:10:5","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20110:33:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20093:50:5"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5145,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5083,"src":"20161:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5146,"name":"prevBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5100,"src":"20168:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20161:14:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5163,"nodeType":"Block","src":"20242:59:5","statements":[{"expression":{"id":5161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5156,"name":"totSup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5136,"src":"20260:6:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5157,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5083,"src":"20271:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5158,"name":"prevBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5100,"src":"20278:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20271:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5160,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20270:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20260:26:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5162,"nodeType":"ExpressionStatement","src":"20260:26:5"}]},"id":5164,"nodeType":"IfStatement","src":"20157:144:5","trueBody":{"id":5155,"nodeType":"Block","src":"20177:59:5","statements":[{"expression":{"id":5153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5148,"name":"totSup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5136,"src":"20195:6:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5149,"name":"prevBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5100,"src":"20206:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5150,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5083,"src":"20216:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20206:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5152,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20205:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20195:26:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5154,"nodeType":"ExpressionStatement","src":"20195:26:5"}]}},{"expression":{"arguments":[{"id":5174,"name":"totSup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5136,"src":"20367:6:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"hexValue":"30783138313630646464","id":5171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20341:10:5","typeDescriptions":{"typeIdentifier":"t_rational_404098525_by_1","typeString":"int_const 404098525"},"value":"0x18160ddd"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_404098525_by_1","typeString":"int_const 404098525"}],"expression":{"arguments":[{"id":5168,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5079,"src":"20330:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5165,"name":"stdstore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4801,"src":"20314:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage","typeString":"struct StdStorage storage ref"}},"id":5167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20323:6:5","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":7043,"src":"20314:15:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$attached_to$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":5169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20314:22:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":5170,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20337:3:5","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":7061,"src":"20314:26:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$attached_to$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"}},"id":5172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20314:38:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":5173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20353:13:5","memberName":"checked_write","nodeType":"MemberAccess","referencedDeclaration":7191,"src":"20314:52:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256)"}},"id":5175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20314:60:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5176,"nodeType":"ExpressionStatement","src":"20314:60:5"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"deal","nameLocation":"19575:4:5","parameters":{"id":5086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5079,"mutability":"mutable","name":"token","nameLocation":"19588:5:5","nodeType":"VariableDeclaration","scope":5180,"src":"19580:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5078,"name":"address","nodeType":"ElementaryTypeName","src":"19580:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5081,"mutability":"mutable","name":"to","nameLocation":"19603:2:5","nodeType":"VariableDeclaration","scope":5180,"src":"19595:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5080,"name":"address","nodeType":"ElementaryTypeName","src":"19595:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5083,"mutability":"mutable","name":"give","nameLocation":"19615:4:5","nodeType":"VariableDeclaration","scope":5180,"src":"19607:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5082,"name":"uint256","nodeType":"ElementaryTypeName","src":"19607:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5085,"mutability":"mutable","name":"adjust","nameLocation":"19626:6:5","nodeType":"VariableDeclaration","scope":5180,"src":"19621:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5084,"name":"bool","nodeType":"ElementaryTypeName","src":"19621:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19579:54:5"},"returnParameters":{"id":5087,"nodeType":"ParameterList","parameters":[],"src":"19651:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":4793,"name":"StdCheatsSafe","nameLocations":["17268:13:5"],"nodeType":"IdentifierPath","referencedDeclaration":4792,"src":"17268:13:5"},"id":4794,"nodeType":"InheritanceSpecifier","src":"17268:13:5"}],"canonicalName":"StdCheats","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[5181,4792],"name":"StdCheats","nameLocation":"17255:9:5","scope":5182,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":5} \ No newline at end of file diff --git a/out/StdCheats.sol/StdCheatsSafe.json b/out/StdCheats.sol/StdCheatsSafe.json deleted file mode 100644 index 0a86458c..00000000 --- a/out/StdCheats.sol/StdCheatsSafe.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/forge-std/src/StdCheats.sol\":\"StdCheatsSafe\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/forge-std/src/StdCheats.sol":"StdCheatsSafe"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/forge-std/src/StdCheats.sol","id":5182,"exportedSymbols":{"StdCheats":[5181],"StdCheatsSafe":[4792],"StdStorage":[6088],"Vm":[9352],"stdStorage":[7522]},"nodeType":"SourceUnit","src":"32:20362:5","nodes":[{"id":3246,"nodeType":"PragmaDirective","src":"32:31:5","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":3247,"nodeType":"PragmaDirective","src":"65:33:5","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":3250,"nodeType":"ImportDirective","src":"100:56:5","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":5182,"sourceUnit":7523,"symbolAliases":[{"foreign":{"id":3248,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6088,"src":"108:10:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":3249,"name":"stdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7522,"src":"120:10:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3252,"nodeType":"ImportDirective","src":"157:28:5","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":5182,"sourceUnit":9353,"symbolAliases":[{"foreign":{"id":3251,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9352,"src":"165:2:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4792,"nodeType":"ContractDefinition","src":"187:17000:5","nodes":[{"id":3269,"nodeType":"VariableDeclaration","src":"225:84:5","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"245:2:5","scope":4792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"},"typeName":{"id":3254,"nodeType":"UserDefinedTypeName","pathNode":{"id":3253,"name":"Vm","nameLocations":["225:2:5"],"nodeType":"IdentifierPath","referencedDeclaration":9352,"src":"225:2:5"},"referencedDeclaration":9352,"src":"225:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":3263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"287:17:5","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":3262,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"277:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"277:28:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3261,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"269:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3260,"name":"uint256","nodeType":"ElementaryTypeName","src":"269:7:5","typeDescriptions":{}}},"id":3265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"269:37:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"261:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3258,"name":"uint160","nodeType":"ElementaryTypeName","src":"261:7:5","typeDescriptions":{}}},"id":3266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"261:46:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"253:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3256,"name":"address","nodeType":"ElementaryTypeName","src":"253:7:5","typeDescriptions":{}}},"id":3267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"253:55:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3255,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9352,"src":"250:2:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$9352_$","typeString":"type(contract Vm)"}},"id":3268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"250:59:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"visibility":"private"},{"id":3271,"nodeType":"VariableDeclaration","src":"316:27:5","nodes":[],"constant":false,"mutability":"mutable","name":"gasMeteringOff","nameLocation":"329:14:5","scope":4792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3270,"name":"bool","nodeType":"ElementaryTypeName","src":"316:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":3288,"nodeType":"StructDefinition","src":"588:325:5","nodes":[],"canonicalName":"StdCheatsSafe.RawTx1559","members":[{"constant":false,"id":3274,"mutability":"mutable","name":"arguments","nameLocation":"624:9:5","nodeType":"VariableDeclaration","scope":3288,"src":"615:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3272,"name":"string","nodeType":"ElementaryTypeName","src":"615:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3273,"nodeType":"ArrayTypeName","src":"615:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3276,"mutability":"mutable","name":"contractAddress","nameLocation":"651:15:5","nodeType":"VariableDeclaration","scope":3288,"src":"643:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3275,"name":"address","nodeType":"ElementaryTypeName","src":"643:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3278,"mutability":"mutable","name":"contractName","nameLocation":"683:12:5","nodeType":"VariableDeclaration","scope":3288,"src":"676:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3277,"name":"string","nodeType":"ElementaryTypeName","src":"676:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3280,"mutability":"mutable","name":"functionSig","nameLocation":"750:11:5","nodeType":"VariableDeclaration","scope":3288,"src":"743:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3279,"name":"string","nodeType":"ElementaryTypeName","src":"743:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3282,"mutability":"mutable","name":"hash","nameLocation":"779:4:5","nodeType":"VariableDeclaration","scope":3288,"src":"771:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"771:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3285,"mutability":"mutable","name":"txDetail","nameLocation":"841:8:5","nodeType":"VariableDeclaration","scope":3288,"src":"825:24:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail"},"typeName":{"id":3284,"nodeType":"UserDefinedTypeName","pathNode":{"id":3283,"name":"RawTx1559Detail","nameLocations":["825:15:5"],"nodeType":"IdentifierPath","referencedDeclaration":3307,"src":"825:15:5"},"referencedDeclaration":3307,"src":"825:15:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail"}},"visibility":"internal"},{"constant":false,"id":3287,"mutability":"mutable","name":"opcode","nameLocation":"900:6:5","nodeType":"VariableDeclaration","scope":3288,"src":"893:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3286,"name":"string","nodeType":"ElementaryTypeName","src":"893:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"RawTx1559","nameLocation":"595:9:5","scope":4792,"visibility":"public"},{"id":3307,"nodeType":"StructDefinition","src":"919:208:5","nodes":[],"canonicalName":"StdCheatsSafe.RawTx1559Detail","members":[{"constant":false,"id":3292,"mutability":"mutable","name":"accessList","nameLocation":"965:10:5","nodeType":"VariableDeclaration","scope":3307,"src":"952:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3399_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"},"typeName":{"baseType":{"id":3290,"nodeType":"UserDefinedTypeName","pathNode":{"id":3289,"name":"AccessList","nameLocations":["952:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3399,"src":"952:10:5"},"referencedDeclaration":3399,"src":"952:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_AccessList_$3399_storage_ptr","typeString":"struct StdCheatsSafe.AccessList"}},"id":3291,"nodeType":"ArrayTypeName","src":"952:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3399_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"}},"visibility":"internal"},{"constant":false,"id":3294,"mutability":"mutable","name":"data","nameLocation":"991:4:5","nodeType":"VariableDeclaration","scope":3307,"src":"985:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3293,"name":"bytes","nodeType":"ElementaryTypeName","src":"985:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3296,"mutability":"mutable","name":"from","nameLocation":"1013:4:5","nodeType":"VariableDeclaration","scope":3307,"src":"1005:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3295,"name":"address","nodeType":"ElementaryTypeName","src":"1005:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3298,"mutability":"mutable","name":"gas","nameLocation":"1033:3:5","nodeType":"VariableDeclaration","scope":3307,"src":"1027:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3297,"name":"bytes","nodeType":"ElementaryTypeName","src":"1027:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3300,"mutability":"mutable","name":"nonce","nameLocation":"1052:5:5","nodeType":"VariableDeclaration","scope":3307,"src":"1046:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3299,"name":"bytes","nodeType":"ElementaryTypeName","src":"1046:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3302,"mutability":"mutable","name":"to","nameLocation":"1075:2:5","nodeType":"VariableDeclaration","scope":3307,"src":"1067:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3301,"name":"address","nodeType":"ElementaryTypeName","src":"1067:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3304,"mutability":"mutable","name":"txType","nameLocation":"1093:6:5","nodeType":"VariableDeclaration","scope":3307,"src":"1087:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3303,"name":"bytes","nodeType":"ElementaryTypeName","src":"1087:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3306,"mutability":"mutable","name":"value","nameLocation":"1115:5:5","nodeType":"VariableDeclaration","scope":3307,"src":"1109:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3305,"name":"bytes","nodeType":"ElementaryTypeName","src":"1109:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"RawTx1559Detail","nameLocation":"926:15:5","scope":4792,"visibility":"public"},{"id":3324,"nodeType":"StructDefinition","src":"1133:215:5","nodes":[],"canonicalName":"StdCheatsSafe.Tx1559","members":[{"constant":false,"id":3310,"mutability":"mutable","name":"arguments","nameLocation":"1166:9:5","nodeType":"VariableDeclaration","scope":3324,"src":"1157:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3308,"name":"string","nodeType":"ElementaryTypeName","src":"1157:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3309,"nodeType":"ArrayTypeName","src":"1157:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3312,"mutability":"mutable","name":"contractAddress","nameLocation":"1193:15:5","nodeType":"VariableDeclaration","scope":3324,"src":"1185:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3311,"name":"address","nodeType":"ElementaryTypeName","src":"1185:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3314,"mutability":"mutable","name":"contractName","nameLocation":"1225:12:5","nodeType":"VariableDeclaration","scope":3324,"src":"1218:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3313,"name":"string","nodeType":"ElementaryTypeName","src":"1218:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3316,"mutability":"mutable","name":"functionSig","nameLocation":"1254:11:5","nodeType":"VariableDeclaration","scope":3324,"src":"1247:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3315,"name":"string","nodeType":"ElementaryTypeName","src":"1247:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3318,"mutability":"mutable","name":"hash","nameLocation":"1283:4:5","nodeType":"VariableDeclaration","scope":3324,"src":"1275:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3317,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1275:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3321,"mutability":"mutable","name":"txDetail","nameLocation":"1310:8:5","nodeType":"VariableDeclaration","scope":3324,"src":"1297:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"},"typeName":{"id":3320,"nodeType":"UserDefinedTypeName","pathNode":{"id":3319,"name":"Tx1559Detail","nameLocations":["1297:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":3343,"src":"1297:12:5"},"referencedDeclaration":3343,"src":"1297:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"}},"visibility":"internal"},{"constant":false,"id":3323,"mutability":"mutable","name":"opcode","nameLocation":"1335:6:5","nodeType":"VariableDeclaration","scope":3324,"src":"1328:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3322,"name":"string","nodeType":"ElementaryTypeName","src":"1328:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"Tx1559","nameLocation":"1140:6:5","scope":4792,"visibility":"public"},{"id":3343,"nodeType":"StructDefinition","src":"1354:213:5","nodes":[],"canonicalName":"StdCheatsSafe.Tx1559Detail","members":[{"constant":false,"id":3328,"mutability":"mutable","name":"accessList","nameLocation":"1397:10:5","nodeType":"VariableDeclaration","scope":3343,"src":"1384:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3399_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"},"typeName":{"baseType":{"id":3326,"nodeType":"UserDefinedTypeName","pathNode":{"id":3325,"name":"AccessList","nameLocations":["1384:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3399,"src":"1384:10:5"},"referencedDeclaration":3399,"src":"1384:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_AccessList_$3399_storage_ptr","typeString":"struct StdCheatsSafe.AccessList"}},"id":3327,"nodeType":"ArrayTypeName","src":"1384:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3399_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"}},"visibility":"internal"},{"constant":false,"id":3330,"mutability":"mutable","name":"data","nameLocation":"1423:4:5","nodeType":"VariableDeclaration","scope":3343,"src":"1417:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3329,"name":"bytes","nodeType":"ElementaryTypeName","src":"1417:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3332,"mutability":"mutable","name":"from","nameLocation":"1445:4:5","nodeType":"VariableDeclaration","scope":3343,"src":"1437:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3331,"name":"address","nodeType":"ElementaryTypeName","src":"1437:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3334,"mutability":"mutable","name":"gas","nameLocation":"1467:3:5","nodeType":"VariableDeclaration","scope":3343,"src":"1459:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3333,"name":"uint256","nodeType":"ElementaryTypeName","src":"1459:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3336,"mutability":"mutable","name":"nonce","nameLocation":"1488:5:5","nodeType":"VariableDeclaration","scope":3343,"src":"1480:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3335,"name":"uint256","nodeType":"ElementaryTypeName","src":"1480:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3338,"mutability":"mutable","name":"to","nameLocation":"1511:2:5","nodeType":"VariableDeclaration","scope":3343,"src":"1503:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3337,"name":"address","nodeType":"ElementaryTypeName","src":"1503:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3340,"mutability":"mutable","name":"txType","nameLocation":"1531:6:5","nodeType":"VariableDeclaration","scope":3343,"src":"1523:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3339,"name":"uint256","nodeType":"ElementaryTypeName","src":"1523:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3342,"mutability":"mutable","name":"value","nameLocation":"1555:5:5","nodeType":"VariableDeclaration","scope":3343,"src":"1547:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3341,"name":"uint256","nodeType":"ElementaryTypeName","src":"1547:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Tx1559Detail","nameLocation":"1361:12:5","scope":4792,"visibility":"public"},{"id":3360,"nodeType":"StructDefinition","src":"1818:221:5","nodes":[],"canonicalName":"StdCheatsSafe.TxLegacy","members":[{"constant":false,"id":3346,"mutability":"mutable","name":"arguments","nameLocation":"1853:9:5","nodeType":"VariableDeclaration","scope":3360,"src":"1844:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3344,"name":"string","nodeType":"ElementaryTypeName","src":"1844:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3345,"nodeType":"ArrayTypeName","src":"1844:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3348,"mutability":"mutable","name":"contractAddress","nameLocation":"1880:15:5","nodeType":"VariableDeclaration","scope":3360,"src":"1872:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3347,"name":"address","nodeType":"ElementaryTypeName","src":"1872:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3350,"mutability":"mutable","name":"contractName","nameLocation":"1912:12:5","nodeType":"VariableDeclaration","scope":3360,"src":"1905:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3349,"name":"string","nodeType":"ElementaryTypeName","src":"1905:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3352,"mutability":"mutable","name":"functionSig","nameLocation":"1941:11:5","nodeType":"VariableDeclaration","scope":3360,"src":"1934:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3351,"name":"string","nodeType":"ElementaryTypeName","src":"1934:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3354,"mutability":"mutable","name":"hash","nameLocation":"1969:4:5","nodeType":"VariableDeclaration","scope":3360,"src":"1962:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3353,"name":"string","nodeType":"ElementaryTypeName","src":"1962:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3356,"mutability":"mutable","name":"opcode","nameLocation":"1990:6:5","nodeType":"VariableDeclaration","scope":3360,"src":"1983:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3355,"name":"string","nodeType":"ElementaryTypeName","src":"1983:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3359,"mutability":"mutable","name":"transaction","nameLocation":"2021:11:5","nodeType":"VariableDeclaration","scope":3360,"src":"2006:26:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_TxDetailLegacy_$3393_storage_ptr","typeString":"struct StdCheatsSafe.TxDetailLegacy"},"typeName":{"id":3358,"nodeType":"UserDefinedTypeName","pathNode":{"id":3357,"name":"TxDetailLegacy","nameLocations":["2006:14:5"],"nodeType":"IdentifierPath","referencedDeclaration":3393,"src":"2006:14:5"},"referencedDeclaration":3393,"src":"2006:14:5","typeDescriptions":{"typeIdentifier":"t_struct$_TxDetailLegacy_$3393_storage_ptr","typeString":"struct StdCheatsSafe.TxDetailLegacy"}},"visibility":"internal"}],"name":"TxLegacy","nameLocation":"1825:8:5","scope":4792,"visibility":"public"},{"id":3393,"nodeType":"StructDefinition","src":"2045:366:5","nodes":[],"canonicalName":"StdCheatsSafe.TxDetailLegacy","members":[{"constant":false,"id":3364,"mutability":"mutable","name":"accessList","nameLocation":"2090:10:5","nodeType":"VariableDeclaration","scope":3393,"src":"2077:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3399_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"},"typeName":{"baseType":{"id":3362,"nodeType":"UserDefinedTypeName","pathNode":{"id":3361,"name":"AccessList","nameLocations":["2077:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3399,"src":"2077:10:5"},"referencedDeclaration":3399,"src":"2077:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_AccessList_$3399_storage_ptr","typeString":"struct StdCheatsSafe.AccessList"}},"id":3363,"nodeType":"ArrayTypeName","src":"2077:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3399_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"}},"visibility":"internal"},{"constant":false,"id":3366,"mutability":"mutable","name":"chainId","nameLocation":"2118:7:5","nodeType":"VariableDeclaration","scope":3393,"src":"2110:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3365,"name":"uint256","nodeType":"ElementaryTypeName","src":"2110:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3368,"mutability":"mutable","name":"data","nameLocation":"2141:4:5","nodeType":"VariableDeclaration","scope":3393,"src":"2135:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3367,"name":"bytes","nodeType":"ElementaryTypeName","src":"2135:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3370,"mutability":"mutable","name":"from","nameLocation":"2163:4:5","nodeType":"VariableDeclaration","scope":3393,"src":"2155:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3369,"name":"address","nodeType":"ElementaryTypeName","src":"2155:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3372,"mutability":"mutable","name":"gas","nameLocation":"2185:3:5","nodeType":"VariableDeclaration","scope":3393,"src":"2177:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3371,"name":"uint256","nodeType":"ElementaryTypeName","src":"2177:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3374,"mutability":"mutable","name":"gasPrice","nameLocation":"2206:8:5","nodeType":"VariableDeclaration","scope":3393,"src":"2198:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3373,"name":"uint256","nodeType":"ElementaryTypeName","src":"2198:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3376,"mutability":"mutable","name":"hash","nameLocation":"2232:4:5","nodeType":"VariableDeclaration","scope":3393,"src":"2224:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2224:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3378,"mutability":"mutable","name":"nonce","nameLocation":"2254:5:5","nodeType":"VariableDeclaration","scope":3393,"src":"2246:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3377,"name":"uint256","nodeType":"ElementaryTypeName","src":"2246:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3380,"mutability":"mutable","name":"opcode","nameLocation":"2276:6:5","nodeType":"VariableDeclaration","scope":3393,"src":"2269:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":3379,"name":"bytes1","nodeType":"ElementaryTypeName","src":"2269:6:5","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"},{"constant":false,"id":3382,"mutability":"mutable","name":"r","nameLocation":"2300:1:5","nodeType":"VariableDeclaration","scope":3393,"src":"2292:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3381,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2292:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3384,"mutability":"mutable","name":"s","nameLocation":"2319:1:5","nodeType":"VariableDeclaration","scope":3393,"src":"2311:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3383,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2311:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3386,"mutability":"mutable","name":"txType","nameLocation":"2338:6:5","nodeType":"VariableDeclaration","scope":3393,"src":"2330:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3385,"name":"uint256","nodeType":"ElementaryTypeName","src":"2330:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3388,"mutability":"mutable","name":"to","nameLocation":"2362:2:5","nodeType":"VariableDeclaration","scope":3393,"src":"2354:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3387,"name":"address","nodeType":"ElementaryTypeName","src":"2354:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3390,"mutability":"mutable","name":"v","nameLocation":"2380:1:5","nodeType":"VariableDeclaration","scope":3393,"src":"2374:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3389,"name":"uint8","nodeType":"ElementaryTypeName","src":"2374:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3392,"mutability":"mutable","name":"value","nameLocation":"2399:5:5","nodeType":"VariableDeclaration","scope":3393,"src":"2391:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3391,"name":"uint256","nodeType":"ElementaryTypeName","src":"2391:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"TxDetailLegacy","nameLocation":"2052:14:5","scope":4792,"visibility":"public"},{"id":3399,"nodeType":"StructDefinition","src":"2417:87:5","nodes":[],"canonicalName":"StdCheatsSafe.AccessList","members":[{"constant":false,"id":3395,"mutability":"mutable","name":"accessAddress","nameLocation":"2453:13:5","nodeType":"VariableDeclaration","scope":3399,"src":"2445:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3394,"name":"address","nodeType":"ElementaryTypeName","src":"2445:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3398,"mutability":"mutable","name":"storageKeys","nameLocation":"2486:11:5","nodeType":"VariableDeclaration","scope":3399,"src":"2476:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3396,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2476:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3397,"nodeType":"ArrayTypeName","src":"2476:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"name":"AccessList","nameLocation":"2424:10:5","scope":4792,"visibility":"public"},{"id":3428,"nodeType":"StructDefinition","src":"2720:385:5","nodes":[],"canonicalName":"StdCheatsSafe.RawReceipt","members":[{"constant":false,"id":3401,"mutability":"mutable","name":"blockHash","nameLocation":"2756:9:5","nodeType":"VariableDeclaration","scope":3428,"src":"2748:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3400,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2748:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3403,"mutability":"mutable","name":"blockNumber","nameLocation":"2781:11:5","nodeType":"VariableDeclaration","scope":3428,"src":"2775:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3402,"name":"bytes","nodeType":"ElementaryTypeName","src":"2775:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3405,"mutability":"mutable","name":"contractAddress","nameLocation":"2810:15:5","nodeType":"VariableDeclaration","scope":3428,"src":"2802:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3404,"name":"address","nodeType":"ElementaryTypeName","src":"2802:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3407,"mutability":"mutable","name":"cumulativeGasUsed","nameLocation":"2841:17:5","nodeType":"VariableDeclaration","scope":3428,"src":"2835:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3406,"name":"bytes","nodeType":"ElementaryTypeName","src":"2835:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3409,"mutability":"mutable","name":"effectiveGasPrice","nameLocation":"2874:17:5","nodeType":"VariableDeclaration","scope":3428,"src":"2868:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3408,"name":"bytes","nodeType":"ElementaryTypeName","src":"2868:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3411,"mutability":"mutable","name":"from","nameLocation":"2909:4:5","nodeType":"VariableDeclaration","scope":3428,"src":"2901:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3410,"name":"address","nodeType":"ElementaryTypeName","src":"2901:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3413,"mutability":"mutable","name":"gasUsed","nameLocation":"2929:7:5","nodeType":"VariableDeclaration","scope":3428,"src":"2923:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3412,"name":"bytes","nodeType":"ElementaryTypeName","src":"2923:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3417,"mutability":"mutable","name":"logs","nameLocation":"2962:4:5","nodeType":"VariableDeclaration","scope":3428,"src":"2946:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog[]"},"typeName":{"baseType":{"id":3415,"nodeType":"UserDefinedTypeName","pathNode":{"id":3414,"name":"RawReceiptLog","nameLocations":["2946:13:5"],"nodeType":"IdentifierPath","referencedDeclaration":3525,"src":"2946:13:5"},"referencedDeclaration":3525,"src":"2946:13:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3525_storage_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog"}},"id":3416,"nodeType":"ArrayTypeName","src":"2946:15:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog[]"}},"visibility":"internal"},{"constant":false,"id":3419,"mutability":"mutable","name":"logsBloom","nameLocation":"2982:9:5","nodeType":"VariableDeclaration","scope":3428,"src":"2976:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3418,"name":"bytes","nodeType":"ElementaryTypeName","src":"2976:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3421,"mutability":"mutable","name":"status","nameLocation":"3007:6:5","nodeType":"VariableDeclaration","scope":3428,"src":"3001:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3420,"name":"bytes","nodeType":"ElementaryTypeName","src":"3001:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3423,"mutability":"mutable","name":"to","nameLocation":"3031:2:5","nodeType":"VariableDeclaration","scope":3428,"src":"3023:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3422,"name":"address","nodeType":"ElementaryTypeName","src":"3023:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3425,"mutability":"mutable","name":"transactionHash","nameLocation":"3051:15:5","nodeType":"VariableDeclaration","scope":3428,"src":"3043:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3424,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3043:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3427,"mutability":"mutable","name":"transactionIndex","nameLocation":"3082:16:5","nodeType":"VariableDeclaration","scope":3428,"src":"3076:22:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3426,"name":"bytes","nodeType":"ElementaryTypeName","src":"3076:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"RawReceipt","nameLocation":"2727:10:5","scope":4792,"visibility":"public"},{"id":3457,"nodeType":"StructDefinition","src":"3111:391:5","nodes":[],"canonicalName":"StdCheatsSafe.Receipt","members":[{"constant":false,"id":3430,"mutability":"mutable","name":"blockHash","nameLocation":"3144:9:5","nodeType":"VariableDeclaration","scope":3457,"src":"3136:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3136:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3432,"mutability":"mutable","name":"blockNumber","nameLocation":"3171:11:5","nodeType":"VariableDeclaration","scope":3457,"src":"3163:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3431,"name":"uint256","nodeType":"ElementaryTypeName","src":"3163:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3434,"mutability":"mutable","name":"contractAddress","nameLocation":"3200:15:5","nodeType":"VariableDeclaration","scope":3457,"src":"3192:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3433,"name":"address","nodeType":"ElementaryTypeName","src":"3192:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3436,"mutability":"mutable","name":"cumulativeGasUsed","nameLocation":"3233:17:5","nodeType":"VariableDeclaration","scope":3457,"src":"3225:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3435,"name":"uint256","nodeType":"ElementaryTypeName","src":"3225:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3438,"mutability":"mutable","name":"effectiveGasPrice","nameLocation":"3268:17:5","nodeType":"VariableDeclaration","scope":3457,"src":"3260:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3437,"name":"uint256","nodeType":"ElementaryTypeName","src":"3260:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3440,"mutability":"mutable","name":"from","nameLocation":"3303:4:5","nodeType":"VariableDeclaration","scope":3457,"src":"3295:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3439,"name":"address","nodeType":"ElementaryTypeName","src":"3295:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3442,"mutability":"mutable","name":"gasUsed","nameLocation":"3325:7:5","nodeType":"VariableDeclaration","scope":3457,"src":"3317:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3441,"name":"uint256","nodeType":"ElementaryTypeName","src":"3317:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3446,"mutability":"mutable","name":"logs","nameLocation":"3355:4:5","nodeType":"VariableDeclaration","scope":3457,"src":"3342:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"},"typeName":{"baseType":{"id":3444,"nodeType":"UserDefinedTypeName","pathNode":{"id":3443,"name":"ReceiptLog","nameLocations":["3342:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3545,"src":"3342:10:5"},"referencedDeclaration":3545,"src":"3342:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog"}},"id":3445,"nodeType":"ArrayTypeName","src":"3342:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"}},"visibility":"internal"},{"constant":false,"id":3448,"mutability":"mutable","name":"logsBloom","nameLocation":"3375:9:5","nodeType":"VariableDeclaration","scope":3457,"src":"3369:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3447,"name":"bytes","nodeType":"ElementaryTypeName","src":"3369:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3450,"mutability":"mutable","name":"status","nameLocation":"3402:6:5","nodeType":"VariableDeclaration","scope":3457,"src":"3394:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3449,"name":"uint256","nodeType":"ElementaryTypeName","src":"3394:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3452,"mutability":"mutable","name":"to","nameLocation":"3426:2:5","nodeType":"VariableDeclaration","scope":3457,"src":"3418:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3451,"name":"address","nodeType":"ElementaryTypeName","src":"3418:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3454,"mutability":"mutable","name":"transactionHash","nameLocation":"3446:15:5","nodeType":"VariableDeclaration","scope":3457,"src":"3438:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3453,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3438:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3456,"mutability":"mutable","name":"transactionIndex","nameLocation":"3479:16:5","nodeType":"VariableDeclaration","scope":3457,"src":"3471:24:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3455,"name":"uint256","nodeType":"ElementaryTypeName","src":"3471:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Receipt","nameLocation":"3118:7:5","scope":4792,"visibility":"public"},{"id":3480,"nodeType":"StructDefinition","src":"3625:227:5","nodes":[],"canonicalName":"StdCheatsSafe.EIP1559ScriptArtifact","members":[{"constant":false,"id":3460,"mutability":"mutable","name":"libraries","nameLocation":"3673:9:5","nodeType":"VariableDeclaration","scope":3480,"src":"3664:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3458,"name":"string","nodeType":"ElementaryTypeName","src":"3664:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3459,"nodeType":"ArrayTypeName","src":"3664:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3462,"mutability":"mutable","name":"path","nameLocation":"3699:4:5","nodeType":"VariableDeclaration","scope":3480,"src":"3692:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3461,"name":"string","nodeType":"ElementaryTypeName","src":"3692:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3465,"mutability":"mutable","name":"pending","nameLocation":"3722:7:5","nodeType":"VariableDeclaration","scope":3480,"src":"3713:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3463,"name":"string","nodeType":"ElementaryTypeName","src":"3713:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3464,"nodeType":"ArrayTypeName","src":"3713:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3469,"mutability":"mutable","name":"receipts","nameLocation":"3749:8:5","nodeType":"VariableDeclaration","scope":3480,"src":"3739:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"},"typeName":{"baseType":{"id":3467,"nodeType":"UserDefinedTypeName","pathNode":{"id":3466,"name":"Receipt","nameLocations":["3739:7:5"],"nodeType":"IdentifierPath","referencedDeclaration":3457,"src":"3739:7:5"},"referencedDeclaration":3457,"src":"3739:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"id":3468,"nodeType":"ArrayTypeName","src":"3739:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"}},"visibility":"internal"},{"constant":false,"id":3471,"mutability":"mutable","name":"timestamp","nameLocation":"3775:9:5","nodeType":"VariableDeclaration","scope":3480,"src":"3767:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3470,"name":"uint256","nodeType":"ElementaryTypeName","src":"3767:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3475,"mutability":"mutable","name":"transactions","nameLocation":"3803:12:5","nodeType":"VariableDeclaration","scope":3480,"src":"3794:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"},"typeName":{"baseType":{"id":3473,"nodeType":"UserDefinedTypeName","pathNode":{"id":3472,"name":"Tx1559","nameLocations":["3794:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":3324,"src":"3794:6:5"},"referencedDeclaration":3324,"src":"3794:6:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"id":3474,"nodeType":"ArrayTypeName","src":"3794:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"}},"visibility":"internal"},{"constant":false,"id":3479,"mutability":"mutable","name":"txReturns","nameLocation":"3836:9:5","nodeType":"VariableDeclaration","scope":3480,"src":"3825:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3550_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn[]"},"typeName":{"baseType":{"id":3477,"nodeType":"UserDefinedTypeName","pathNode":{"id":3476,"name":"TxReturn","nameLocations":["3825:8:5"],"nodeType":"IdentifierPath","referencedDeclaration":3550,"src":"3825:8:5"},"referencedDeclaration":3550,"src":"3825:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_TxReturn_$3550_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn"}},"id":3478,"nodeType":"ArrayTypeName","src":"3825:10:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3550_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn[]"}},"visibility":"internal"}],"name":"EIP1559ScriptArtifact","nameLocation":"3632:21:5","scope":4792,"visibility":"public"},{"id":3503,"nodeType":"StructDefinition","src":"3858:236:5","nodes":[],"canonicalName":"StdCheatsSafe.RawEIP1559ScriptArtifact","members":[{"constant":false,"id":3483,"mutability":"mutable","name":"libraries","nameLocation":"3909:9:5","nodeType":"VariableDeclaration","scope":3503,"src":"3900:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3481,"name":"string","nodeType":"ElementaryTypeName","src":"3900:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3482,"nodeType":"ArrayTypeName","src":"3900:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3485,"mutability":"mutable","name":"path","nameLocation":"3935:4:5","nodeType":"VariableDeclaration","scope":3503,"src":"3928:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3484,"name":"string","nodeType":"ElementaryTypeName","src":"3928:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3488,"mutability":"mutable","name":"pending","nameLocation":"3958:7:5","nodeType":"VariableDeclaration","scope":3503,"src":"3949:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3486,"name":"string","nodeType":"ElementaryTypeName","src":"3949:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3487,"nodeType":"ArrayTypeName","src":"3949:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3492,"mutability":"mutable","name":"receipts","nameLocation":"3988:8:5","nodeType":"VariableDeclaration","scope":3503,"src":"3975:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"},"typeName":{"baseType":{"id":3490,"nodeType":"UserDefinedTypeName","pathNode":{"id":3489,"name":"RawReceipt","nameLocations":["3975:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3428,"src":"3975:10:5"},"referencedDeclaration":3428,"src":"3975:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt"}},"id":3491,"nodeType":"ArrayTypeName","src":"3975:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"}},"visibility":"internal"},{"constant":false,"id":3496,"mutability":"mutable","name":"txReturns","nameLocation":"4017:9:5","nodeType":"VariableDeclaration","scope":3503,"src":"4006:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3550_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn[]"},"typeName":{"baseType":{"id":3494,"nodeType":"UserDefinedTypeName","pathNode":{"id":3493,"name":"TxReturn","nameLocations":["4006:8:5"],"nodeType":"IdentifierPath","referencedDeclaration":3550,"src":"4006:8:5"},"referencedDeclaration":3550,"src":"4006:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_TxReturn_$3550_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn"}},"id":3495,"nodeType":"ArrayTypeName","src":"4006:10:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3550_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn[]"}},"visibility":"internal"},{"constant":false,"id":3498,"mutability":"mutable","name":"timestamp","nameLocation":"4044:9:5","nodeType":"VariableDeclaration","scope":3503,"src":"4036:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3497,"name":"uint256","nodeType":"ElementaryTypeName","src":"4036:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3502,"mutability":"mutable","name":"transactions","nameLocation":"4075:12:5","nodeType":"VariableDeclaration","scope":3503,"src":"4063:24:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"},"typeName":{"baseType":{"id":3500,"nodeType":"UserDefinedTypeName","pathNode":{"id":3499,"name":"RawTx1559","nameLocations":["4063:9:5"],"nodeType":"IdentifierPath","referencedDeclaration":3288,"src":"4063:9:5"},"referencedDeclaration":3288,"src":"4063:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559"}},"id":3501,"nodeType":"ArrayTypeName","src":"4063:11:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"}},"visibility":"internal"}],"name":"RawEIP1559ScriptArtifact","nameLocation":"3865:24:5","scope":4792,"visibility":"public"},{"id":3525,"nodeType":"StructDefinition","src":"4100:334:5","nodes":[],"canonicalName":"StdCheatsSafe.RawReceiptLog","members":[{"constant":false,"id":3505,"mutability":"mutable","name":"logAddress","nameLocation":"4171:10:5","nodeType":"VariableDeclaration","scope":3525,"src":"4163:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3504,"name":"address","nodeType":"ElementaryTypeName","src":"4163:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3507,"mutability":"mutable","name":"blockHash","nameLocation":"4199:9:5","nodeType":"VariableDeclaration","scope":3525,"src":"4191:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3506,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4191:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3509,"mutability":"mutable","name":"blockNumber","nameLocation":"4224:11:5","nodeType":"VariableDeclaration","scope":3525,"src":"4218:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3508,"name":"bytes","nodeType":"ElementaryTypeName","src":"4218:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3511,"mutability":"mutable","name":"data","nameLocation":"4251:4:5","nodeType":"VariableDeclaration","scope":3525,"src":"4245:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3510,"name":"bytes","nodeType":"ElementaryTypeName","src":"4245:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3513,"mutability":"mutable","name":"logIndex","nameLocation":"4271:8:5","nodeType":"VariableDeclaration","scope":3525,"src":"4265:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3512,"name":"bytes","nodeType":"ElementaryTypeName","src":"4265:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3515,"mutability":"mutable","name":"removed","nameLocation":"4294:7:5","nodeType":"VariableDeclaration","scope":3525,"src":"4289:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3514,"name":"bool","nodeType":"ElementaryTypeName","src":"4289:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3518,"mutability":"mutable","name":"topics","nameLocation":"4321:6:5","nodeType":"VariableDeclaration","scope":3525,"src":"4311:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3516,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4311:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3517,"nodeType":"ArrayTypeName","src":"4311:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":3520,"mutability":"mutable","name":"transactionHash","nameLocation":"4345:15:5","nodeType":"VariableDeclaration","scope":3525,"src":"4337:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4337:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3522,"mutability":"mutable","name":"transactionIndex","nameLocation":"4376:16:5","nodeType":"VariableDeclaration","scope":3525,"src":"4370:22:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3521,"name":"bytes","nodeType":"ElementaryTypeName","src":"4370:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3524,"mutability":"mutable","name":"transactionLogIndex","nameLocation":"4408:19:5","nodeType":"VariableDeclaration","scope":3525,"src":"4402:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3523,"name":"bytes","nodeType":"ElementaryTypeName","src":"4402:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"RawReceiptLog","nameLocation":"4107:13:5","scope":4792,"visibility":"public"},{"id":3545,"nodeType":"StructDefinition","src":"4440:306:5","nodes":[],"canonicalName":"StdCheatsSafe.ReceiptLog","members":[{"constant":false,"id":3527,"mutability":"mutable","name":"logAddress","nameLocation":"4508:10:5","nodeType":"VariableDeclaration","scope":3545,"src":"4500:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3526,"name":"address","nodeType":"ElementaryTypeName","src":"4500:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3529,"mutability":"mutable","name":"blockHash","nameLocation":"4536:9:5","nodeType":"VariableDeclaration","scope":3545,"src":"4528:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3528,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4528:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3531,"mutability":"mutable","name":"blockNumber","nameLocation":"4563:11:5","nodeType":"VariableDeclaration","scope":3545,"src":"4555:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3530,"name":"uint256","nodeType":"ElementaryTypeName","src":"4555:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3533,"mutability":"mutable","name":"data","nameLocation":"4590:4:5","nodeType":"VariableDeclaration","scope":3545,"src":"4584:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3532,"name":"bytes","nodeType":"ElementaryTypeName","src":"4584:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3535,"mutability":"mutable","name":"logIndex","nameLocation":"4612:8:5","nodeType":"VariableDeclaration","scope":3545,"src":"4604:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3534,"name":"uint256","nodeType":"ElementaryTypeName","src":"4604:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3538,"mutability":"mutable","name":"topics","nameLocation":"4640:6:5","nodeType":"VariableDeclaration","scope":3545,"src":"4630:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3536,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4630:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3537,"nodeType":"ArrayTypeName","src":"4630:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":3540,"mutability":"mutable","name":"transactionIndex","nameLocation":"4664:16:5","nodeType":"VariableDeclaration","scope":3545,"src":"4656:24:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3539,"name":"uint256","nodeType":"ElementaryTypeName","src":"4656:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3542,"mutability":"mutable","name":"transactionLogIndex","nameLocation":"4698:19:5","nodeType":"VariableDeclaration","scope":3545,"src":"4690:27:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3541,"name":"uint256","nodeType":"ElementaryTypeName","src":"4690:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3544,"mutability":"mutable","name":"removed","nameLocation":"4732:7:5","nodeType":"VariableDeclaration","scope":3545,"src":"4727:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3543,"name":"bool","nodeType":"ElementaryTypeName","src":"4727:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"ReceiptLog","nameLocation":"4447:10:5","scope":4792,"visibility":"public"},{"id":3550,"nodeType":"StructDefinition","src":"4752:74:5","nodes":[],"canonicalName":"StdCheatsSafe.TxReturn","members":[{"constant":false,"id":3547,"mutability":"mutable","name":"internalType","nameLocation":"4785:12:5","nodeType":"VariableDeclaration","scope":3550,"src":"4778:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3546,"name":"string","nodeType":"ElementaryTypeName","src":"4778:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3549,"mutability":"mutable","name":"value","nameLocation":"4814:5:5","nodeType":"VariableDeclaration","scope":3550,"src":"4807:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3548,"name":"string","nodeType":"ElementaryTypeName","src":"4807:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"TxReturn","nameLocation":"4759:8:5","scope":4792,"visibility":"public"},{"id":3565,"nodeType":"FunctionDefinition","src":"4832:274:5","nodes":[],"body":{"id":3564,"nodeType":"Block","src":"4892:214:5","nodes":[],"statements":[{"assignments":[3556],"declarations":[{"constant":false,"id":3556,"mutability":"mutable","name":"chainId","nameLocation":"4986:7:5","nodeType":"VariableDeclaration","scope":3564,"src":"4978:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3555,"name":"uint256","nodeType":"ElementaryTypeName","src":"4978:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3557,"nodeType":"VariableDeclarationStatement","src":"4978:15:5"},{"AST":{"nativeSrc":"5012:44:5","nodeType":"YulBlock","src":"5012:44:5","statements":[{"nativeSrc":"5026:20:5","nodeType":"YulAssignment","src":"5026:20:5","value":{"arguments":[],"functionName":{"name":"chainid","nativeSrc":"5037:7:5","nodeType":"YulIdentifier","src":"5037:7:5"},"nativeSrc":"5037:9:5","nodeType":"YulFunctionCall","src":"5037:9:5"},"variableNames":[{"name":"chainId","nativeSrc":"5026:7:5","nodeType":"YulIdentifier","src":"5026:7:5"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3556,"isOffset":false,"isSlot":false,"src":"5026:7:5","valueSize":1}],"id":3558,"nodeType":"InlineAssembly","src":"5003:53:5"},{"expression":{"arguments":[{"id":3560,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3552,"src":"5085:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3561,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3556,"src":"5091:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3559,"name":"assumeNoPrecompiles","nodeType":"Identifier","overloadedDeclarations":[3565,3708],"referencedDeclaration":3708,"src":"5065:19:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":3562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5065:34:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3563,"nodeType":"ExpressionStatement","src":"5065:34:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeNoPrecompiles","nameLocation":"4841:19:5","parameters":{"id":3553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3552,"mutability":"mutable","name":"addr","nameLocation":"4869:4:5","nodeType":"VariableDeclaration","scope":3565,"src":"4861:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3551,"name":"address","nodeType":"ElementaryTypeName","src":"4861:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4860:14:5"},"returnParameters":{"id":3554,"nodeType":"ParameterList","parameters":[],"src":"4892:0:5"},"scope":4792,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":3708,"nodeType":"FunctionDefinition","src":"5112:1783:5","nodes":[],"body":{"id":3707,"nodeType":"Block","src":"5189:1706:5","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3575,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"5487:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307831","id":3578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5502:3:5","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":3577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5494:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3576,"name":"address","nodeType":"ElementaryTypeName","src":"5494:7:5","typeDescriptions":{}}},"id":3579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5494:12:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5487:19:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3581,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"5510:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307839","id":3584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5525:3:5","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"0x9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"}],"id":3583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5517:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3582,"name":"address","nodeType":"ElementaryTypeName","src":"5517:7:5","typeDescriptions":{}}},"id":3585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5517:12:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5510:19:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5487:42:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3572,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"5477:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":3574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5480:6:5","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":9020,"src":"5477:9:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":3588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5477:53:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3589,"nodeType":"ExpressionStatement","src":"5477:53:5"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3590,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3569,"src":"5580:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3130","id":3591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5591:2:5","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"5580:13:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3593,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3569,"src":"5597:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"343230","id":3594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5608:3:5","typeDescriptions":{"typeIdentifier":"t_rational_420_by_1","typeString":"int_const 420"},"value":"420"},"src":"5597:14:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5580:31:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3616,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3569,"src":"5929:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3432313631","id":3617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5940:5:5","typeDescriptions":{"typeIdentifier":"t_rational_42161_by_1","typeString":"int_const 42161"},"value":"42161"},"src":"5929:16:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3619,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3569,"src":"5949:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"343231363133","id":3620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5960:6:5","typeDescriptions":{"typeIdentifier":"t_rational_421613_by_1","typeString":"int_const 421613"},"value":"421613"},"src":"5949:17:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5929:37:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3642,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3569,"src":"6243:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3433313134","id":3643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6254:5:5","typeDescriptions":{"typeIdentifier":"t_rational_43114_by_1","typeString":"int_const 43114"},"value":"43114"},"src":"6243:16:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3645,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3569,"src":"6263:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3433313133","id":3646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6274:5:5","typeDescriptions":{"typeIdentifier":"t_rational_43113_by_1","typeString":"int_const 43113"},"value":"43113"},"src":"6263:16:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6243:36:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3704,"nodeType":"IfStatement","src":"6239:617:5","trueBody":{"id":3703,"nodeType":"Block","src":"6281:575:5","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3652,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"6434:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307830313030303030303030303030303030303030303030303030303030303030303030303030303030","id":3655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6449:42:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0100000000000000000000000000000000000000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6441:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3653,"name":"address","nodeType":"ElementaryTypeName","src":"6441:7:5","typeDescriptions":{}}},"id":3656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6441:51:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6434:58:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3658,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"6496:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307830313030303030303030303030303030303030303030303030303030303030303030303030306666","id":3661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6511:42:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x01000000000000000000000000000000000000ff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6503:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3659,"name":"address","nodeType":"ElementaryTypeName","src":"6503:7:5","typeDescriptions":{}}},"id":3662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6503:51:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6496:58:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6434:120:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3649,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"6424:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":3651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6427:6:5","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":9020,"src":"6424:9:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":3665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6424:131:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3666,"nodeType":"ExpressionStatement","src":"6424:131:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3670,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"6579:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307830323030303030303030303030303030303030303030303030303030303030303030303030303030","id":3673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6594:42:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0200000000000000000000000000000000000000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3672,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6586:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3671,"name":"address","nodeType":"ElementaryTypeName","src":"6586:7:5","typeDescriptions":{}}},"id":3674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6586:51:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6579:58:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3676,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"6641:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307830323030303030303030303030303030303030303030303030303030303030303030303030304646","id":3679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6656:42:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x02000000000000000000000000000000000000FF"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6648:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3677,"name":"address","nodeType":"ElementaryTypeName","src":"6648:7:5","typeDescriptions":{}}},"id":3680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6648:51:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6641:58:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6579:120:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3667,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"6569:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":3669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6572:6:5","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":9020,"src":"6569:9:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":3683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6569:131:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3684,"nodeType":"ExpressionStatement","src":"6569:131:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3688,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"6724:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307830333030303030303030303030303030303030303030303030303030303030303030303030303030","id":3691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6739:42:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0300000000000000000000000000000000000000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3690,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6731:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3689,"name":"address","nodeType":"ElementaryTypeName","src":"6731:7:5","typeDescriptions":{}}},"id":3692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6731:51:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6724:58:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3694,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"6786:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307830333030303030303030303030303030303030303030303030303030303030303030303030304666","id":3697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6801:42:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x03000000000000000000000000000000000000Ff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3696,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6793:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3695,"name":"address","nodeType":"ElementaryTypeName","src":"6793:7:5","typeDescriptions":{}}},"id":3698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6793:51:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6786:58:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6724:120:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3685,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"6714:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":3687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6717:6:5","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":9020,"src":"6714:9:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":3701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6714:131:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3702,"nodeType":"ExpressionStatement","src":"6714:131:5"}]}},"id":3705,"nodeType":"IfStatement","src":"5925:931:5","trueBody":{"id":3641,"nodeType":"Block","src":"5968:265:5","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3626,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"6101:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307830303030303030303030303030303030303030303030303030303030303030303030303030303634","id":3629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6116:42:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0000000000000000000000000000000000000064"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6108:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3627,"name":"address","nodeType":"ElementaryTypeName","src":"6108:7:5","typeDescriptions":{}}},"id":3630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6108:51:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6101:58:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3632,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"6163:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307830303030303030303030303030303030303030303030303030303030303030303030303030303638","id":3635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6178:42:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0000000000000000000000000000000000000068"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3634,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6170:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3633,"name":"address","nodeType":"ElementaryTypeName","src":"6170:7:5","typeDescriptions":{}}},"id":3636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6170:51:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6163:58:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6101:120:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3623,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"6091:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":3625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6094:6:5","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":9020,"src":"6091:9:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":3639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6091:131:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3640,"nodeType":"ExpressionStatement","src":"6091:131:5"}]}},"id":3706,"nodeType":"IfStatement","src":"5576:1280:5","trueBody":{"id":3615,"nodeType":"Block","src":"5613:306:5","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3600,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"5787:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303030","id":3603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5802:42:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5794:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3601,"name":"address","nodeType":"ElementaryTypeName","src":"5794:7:5","typeDescriptions":{}}},"id":3604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5794:51:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5787:58:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3606,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3567,"src":"5849:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030383030","id":3609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5864:42:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000800"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5856:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3607,"name":"address","nodeType":"ElementaryTypeName","src":"5856:7:5","typeDescriptions":{}}},"id":3610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5856:51:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5849:58:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5787:120:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3597,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"5777:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":3599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5780:6:5","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":9020,"src":"5777:9:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":3613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5777:131:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3614,"nodeType":"ExpressionStatement","src":"5777:131:5"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeNoPrecompiles","nameLocation":"5121:19:5","parameters":{"id":3570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3567,"mutability":"mutable","name":"addr","nameLocation":"5149:4:5","nodeType":"VariableDeclaration","scope":3708,"src":"5141:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3566,"name":"address","nodeType":"ElementaryTypeName","src":"5141:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3569,"mutability":"mutable","name":"chainId","nameLocation":"5163:7:5","nodeType":"VariableDeclaration","scope":3708,"src":"5155:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3568,"name":"uint256","nodeType":"ElementaryTypeName","src":"5155:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5140:31:5"},"returnParameters":{"id":3571,"nodeType":"ParameterList","parameters":[],"src":"5189:0:5"},"scope":4792,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":3800,"nodeType":"FunctionDefinition","src":"6901:843:5","nodes":[],"body":{"id":3799,"nodeType":"Block","src":"7053:691:5","nodes":[],"statements":[{"assignments":[3717],"declarations":[{"constant":false,"id":3717,"mutability":"mutable","name":"data","nameLocation":"7077:4:5","nodeType":"VariableDeclaration","scope":3799,"src":"7063:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3716,"name":"string","nodeType":"ElementaryTypeName","src":"7063:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":3722,"initialValue":{"arguments":[{"id":3720,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3710,"src":"7096:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":3718,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"7084:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":3719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7087:8:5","memberName":"readFile","nodeType":"MemberAccess","referencedDeclaration":8621,"src":"7084:11:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":3721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7084:17:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"7063:38:5"},{"assignments":[3724],"declarations":[{"constant":false,"id":3724,"mutability":"mutable","name":"parsedData","nameLocation":"7124:10:5","nodeType":"VariableDeclaration","scope":3799,"src":"7111:23:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3723,"name":"bytes","nodeType":"ElementaryTypeName","src":"7111:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3729,"initialValue":{"arguments":[{"id":3727,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3717,"src":"7150:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":3725,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"7137:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":3726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7140:9:5","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8816,"src":"7137:12:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure external returns (bytes memory)"}},"id":3728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7137:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7111:44:5"},{"assignments":[3732],"declarations":[{"constant":false,"id":3732,"mutability":"mutable","name":"rawArtifact","nameLocation":"7197:11:5","nodeType":"VariableDeclaration","scope":3799,"src":"7165:43:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3503_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact"},"typeName":{"id":3731,"nodeType":"UserDefinedTypeName","pathNode":{"id":3730,"name":"RawEIP1559ScriptArtifact","nameLocations":["7165:24:5"],"nodeType":"IdentifierPath","referencedDeclaration":3503,"src":"7165:24:5"},"referencedDeclaration":3503,"src":"7165:24:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3503_storage_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact"}},"visibility":"internal"}],"id":3739,"initialValue":{"arguments":[{"id":3735,"name":"parsedData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3724,"src":"7222:10:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":3736,"name":"RawEIP1559ScriptArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3503,"src":"7235:24:5","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawEIP1559ScriptArtifact_$3503_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawEIP1559ScriptArtifact storage pointer)"}}],"id":3737,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"7234:26:5","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawEIP1559ScriptArtifact_$3503_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawEIP1559ScriptArtifact storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_RawEIP1559ScriptArtifact_$3503_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawEIP1559ScriptArtifact storage pointer)"}],"expression":{"id":3733,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7211:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7215:6:5","memberName":"decode","nodeType":"MemberAccess","src":"7211:10:5","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":3738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7211:50:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3503_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"nodeType":"VariableDeclarationStatement","src":"7165:96:5"},{"assignments":[3742],"declarations":[{"constant":false,"id":3742,"mutability":"mutable","name":"artifact","nameLocation":"7300:8:5","nodeType":"VariableDeclaration","scope":3799,"src":"7271:37:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact"},"typeName":{"id":3741,"nodeType":"UserDefinedTypeName","pathNode":{"id":3740,"name":"EIP1559ScriptArtifact","nameLocations":["7271:21:5"],"nodeType":"IdentifierPath","referencedDeclaration":3480,"src":"7271:21:5"},"referencedDeclaration":3480,"src":"7271:21:5","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_storage_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact"}},"visibility":"internal"}],"id":3743,"nodeType":"VariableDeclarationStatement","src":"7271:37:5"},{"expression":{"id":3749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3744,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"7318:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":3746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7327:9:5","memberName":"libraries","nodeType":"MemberAccess","referencedDeclaration":3460,"src":"7318:18:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3747,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"7339:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3503_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":3748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7351:9:5","memberName":"libraries","nodeType":"MemberAccess","referencedDeclaration":3483,"src":"7339:21:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"src":"7318:42:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":3750,"nodeType":"ExpressionStatement","src":"7318:42:5"},{"expression":{"id":3756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3751,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"7370:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":3753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7379:4:5","memberName":"path","nodeType":"MemberAccess","referencedDeclaration":3462,"src":"7370:13:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3754,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"7386:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3503_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":3755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7398:4:5","memberName":"path","nodeType":"MemberAccess","referencedDeclaration":3485,"src":"7386:16:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"7370:32:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3757,"nodeType":"ExpressionStatement","src":"7370:32:5"},{"expression":{"id":3763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3758,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"7412:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":3760,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7421:9:5","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":3471,"src":"7412:18:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3761,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"7433:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3503_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":3762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7445:9:5","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":3498,"src":"7433:21:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7412:42:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3764,"nodeType":"ExpressionStatement","src":"7412:42:5"},{"expression":{"id":3770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3765,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"7464:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":3767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7473:7:5","memberName":"pending","nodeType":"MemberAccess","referencedDeclaration":3465,"src":"7464:16:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3768,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"7483:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3503_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":3769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7495:7:5","memberName":"pending","nodeType":"MemberAccess","referencedDeclaration":3488,"src":"7483:19:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"src":"7464:38:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":3771,"nodeType":"ExpressionStatement","src":"7464:38:5"},{"expression":{"id":3777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3772,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"7512:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":3774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7521:9:5","memberName":"txReturns","nodeType":"MemberAccess","referencedDeclaration":3479,"src":"7512:18:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3550_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.TxReturn memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3775,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"7533:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3503_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":3776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7545:9:5","memberName":"txReturns","nodeType":"MemberAccess","referencedDeclaration":3496,"src":"7533:21:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3550_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.TxReturn memory[] memory"}},"src":"7512:42:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3550_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.TxReturn memory[] memory"}},"id":3778,"nodeType":"ExpressionStatement","src":"7512:42:5"},{"expression":{"id":3786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3779,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"7564:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":3781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7573:8:5","memberName":"receipts","nodeType":"MemberAccess","referencedDeclaration":3469,"src":"7564:17:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":3783,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"7607:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3503_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":3784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7619:8:5","memberName":"receipts","nodeType":"MemberAccess","referencedDeclaration":3492,"src":"7607:20:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}],"id":3782,"name":"rawToConvertedReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4232,"src":"7584:22:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawReceipt memory[] memory) pure returns (struct StdCheatsSafe.Receipt memory[] memory)"}},"id":3785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7584:44:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"src":"7564:64:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"id":3787,"nodeType":"ExpressionStatement","src":"7564:64:5"},{"expression":{"id":3795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3788,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"7638:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":3790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7647:12:5","memberName":"transactions","nodeType":"MemberAccess","referencedDeclaration":3475,"src":"7638:21:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":3792,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"7687:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3503_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":3793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7699:12:5","memberName":"transactions","nodeType":"MemberAccess","referencedDeclaration":3502,"src":"7687:24:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}],"id":3791,"name":"rawToConvertedEIPTx1559s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3849,"src":"7662:24:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawTx1559 memory[] memory) pure returns (struct StdCheatsSafe.Tx1559 memory[] memory)"}},"id":3794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:50:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"src":"7638:74:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"id":3796,"nodeType":"ExpressionStatement","src":"7638:74:5"},{"expression":{"id":3797,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"7729:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"functionReturnParameters":3715,"id":3798,"nodeType":"Return","src":"7722:15:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readEIP1559ScriptArtifact","nameLocation":"6910:25:5","parameters":{"id":3711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3710,"mutability":"mutable","name":"path","nameLocation":"6950:4:5","nodeType":"VariableDeclaration","scope":3800,"src":"6936:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3709,"name":"string","nodeType":"ElementaryTypeName","src":"6936:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6935:20:5"},"returnParameters":{"id":3715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3714,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3800,"src":"7019:28:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact"},"typeName":{"id":3713,"nodeType":"UserDefinedTypeName","pathNode":{"id":3712,"name":"EIP1559ScriptArtifact","nameLocations":["7019:21:5"],"nodeType":"IdentifierPath","referencedDeclaration":3480,"src":"7019:21:5"},"referencedDeclaration":3480,"src":"7019:21:5","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3480_storage_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact"}},"visibility":"internal"}],"src":"7018:30:5"},"scope":4792,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":3849,"nodeType":"FunctionDefinition","src":"7750:312:5","nodes":[],"body":{"id":3848,"nodeType":"Block","src":"7859:203:5","nodes":[],"statements":[{"assignments":[3815],"declarations":[{"constant":false,"id":3815,"mutability":"mutable","name":"txs","nameLocation":"7885:3:5","nodeType":"VariableDeclaration","scope":3848,"src":"7869:19:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"},"typeName":{"baseType":{"id":3813,"nodeType":"UserDefinedTypeName","pathNode":{"id":3812,"name":"Tx1559","nameLocations":["7869:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":3324,"src":"7869:6:5"},"referencedDeclaration":3324,"src":"7869:6:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"id":3814,"nodeType":"ArrayTypeName","src":"7869:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"}},"visibility":"internal"}],"id":3823,"initialValue":{"arguments":[{"expression":{"id":3820,"name":"rawTxs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3804,"src":"7904:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}},"id":3821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7911:6:5","memberName":"length","nodeType":"MemberAccess","src":"7904:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7891:12:5","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct StdCheatsSafe.Tx1559 memory[] memory)"},"typeName":{"baseType":{"id":3817,"nodeType":"UserDefinedTypeName","pathNode":{"id":3816,"name":"Tx1559","nameLocations":["7895:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":3324,"src":"7895:6:5"},"referencedDeclaration":3324,"src":"7895:6:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"id":3818,"nodeType":"ArrayTypeName","src":"7895:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"}}},"id":3822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7891:27:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7869:49:5"},{"body":{"id":3844,"nodeType":"Block","src":"7968:68:5","statements":[{"expression":{"id":3842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3834,"name":"txs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3815,"src":"7982:3:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"id":3836,"indexExpression":{"id":3835,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3825,"src":"7986:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7982:6:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":3838,"name":"rawTxs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3804,"src":"8015:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}},"id":3840,"indexExpression":{"id":3839,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3825,"src":"8022:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8015:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}],"id":3837,"name":"rawToConvertedEIPTx1559","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3909,"src":"7991:23:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_RawTx1559_$3288_memory_ptr_$returns$_t_struct$_Tx1559_$3324_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawTx1559 memory) pure returns (struct StdCheatsSafe.Tx1559 memory)"}},"id":3841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7991:34:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"src":"7982:43:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":3843,"nodeType":"ExpressionStatement","src":"7982:43:5"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3827,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3825,"src":"7944:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":3828,"name":"rawTxs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3804,"src":"7948:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}},"id":3829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7955:6:5","memberName":"length","nodeType":"MemberAccess","src":"7948:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7944:17:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3845,"initializationExpression":{"assignments":[3825],"declarations":[{"constant":false,"id":3825,"mutability":"mutable","name":"i","nameLocation":"7941:1:5","nodeType":"VariableDeclaration","scope":3845,"src":"7933:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3824,"name":"uint256","nodeType":"ElementaryTypeName","src":"7933:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3826,"nodeType":"VariableDeclarationStatement","src":"7933:9:5"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":3832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7963:3:5","subExpression":{"id":3831,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3825,"src":"7963:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3833,"nodeType":"ExpressionStatement","src":"7963:3:5"},"nodeType":"ForStatement","src":"7928:108:5"},{"expression":{"id":3846,"name":"txs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3815,"src":"8052:3:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"functionReturnParameters":3810,"id":3847,"nodeType":"Return","src":"8045:10:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedEIPTx1559s","nameLocation":"7759:24:5","parameters":{"id":3805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3804,"mutability":"mutable","name":"rawTxs","nameLocation":"7803:6:5","nodeType":"VariableDeclaration","scope":3849,"src":"7784:25:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"},"typeName":{"baseType":{"id":3802,"nodeType":"UserDefinedTypeName","pathNode":{"id":3801,"name":"RawTx1559","nameLocations":["7784:9:5"],"nodeType":"IdentifierPath","referencedDeclaration":3288,"src":"7784:9:5"},"referencedDeclaration":3288,"src":"7784:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559"}},"id":3803,"nodeType":"ArrayTypeName","src":"7784:11:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"}},"visibility":"internal"}],"src":"7783:27:5"},"returnParameters":{"id":3810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3809,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3849,"src":"7842:15:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"},"typeName":{"baseType":{"id":3807,"nodeType":"UserDefinedTypeName","pathNode":{"id":3806,"name":"Tx1559","nameLocations":["7842:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":3324,"src":"7842:6:5"},"referencedDeclaration":3324,"src":"7842:6:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"id":3808,"nodeType":"ArrayTypeName","src":"7842:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"}},"visibility":"internal"}],"src":"7841:17:5"},"scope":4792,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":3909,"nodeType":"FunctionDefinition","src":"8068:488:5","nodes":[],"body":{"id":3908,"nodeType":"Block","src":"8171:385:5","nodes":[],"statements":[{"assignments":[3860],"declarations":[{"constant":false,"id":3860,"mutability":"mutable","name":"transaction","nameLocation":"8195:11:5","nodeType":"VariableDeclaration","scope":3908,"src":"8181:25:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559"},"typeName":{"id":3859,"nodeType":"UserDefinedTypeName","pathNode":{"id":3858,"name":"Tx1559","nameLocations":["8181:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":3324,"src":"8181:6:5"},"referencedDeclaration":3324,"src":"8181:6:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"visibility":"internal"}],"id":3861,"nodeType":"VariableDeclarationStatement","src":"8181:25:5"},{"expression":{"id":3867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3862,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3860,"src":"8216:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":3864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8228:9:5","memberName":"arguments","nodeType":"MemberAccess","referencedDeclaration":3310,"src":"8216:21:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3865,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3852,"src":"8240:5:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":3866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8246:9:5","memberName":"arguments","nodeType":"MemberAccess","referencedDeclaration":3274,"src":"8240:15:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"src":"8216:39:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":3868,"nodeType":"ExpressionStatement","src":"8216:39:5"},{"expression":{"id":3874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3869,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3860,"src":"8265:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":3871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8277:12:5","memberName":"contractName","nodeType":"MemberAccess","referencedDeclaration":3314,"src":"8265:24:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3872,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3852,"src":"8292:5:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":3873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8298:12:5","memberName":"contractName","nodeType":"MemberAccess","referencedDeclaration":3278,"src":"8292:18:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8265:45:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3875,"nodeType":"ExpressionStatement","src":"8265:45:5"},{"expression":{"id":3881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3876,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3860,"src":"8320:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":3878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8332:11:5","memberName":"functionSig","nodeType":"MemberAccess","referencedDeclaration":3316,"src":"8320:23:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3879,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3852,"src":"8346:5:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":3880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8352:11:5","memberName":"functionSig","nodeType":"MemberAccess","referencedDeclaration":3280,"src":"8346:17:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8320:43:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3882,"nodeType":"ExpressionStatement","src":"8320:43:5"},{"expression":{"id":3888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3883,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3860,"src":"8373:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":3885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8385:4:5","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":3318,"src":"8373:16:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3886,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3852,"src":"8392:5:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":3887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8398:4:5","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":3282,"src":"8392:10:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8373:29:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3889,"nodeType":"ExpressionStatement","src":"8373:29:5"},{"expression":{"id":3897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3890,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3860,"src":"8412:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":3892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8424:8:5","memberName":"txDetail","nodeType":"MemberAccess","referencedDeclaration":3321,"src":"8412:20:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":3894,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3852,"src":"8463:5:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":3895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8469:8:5","memberName":"txDetail","nodeType":"MemberAccess","referencedDeclaration":3285,"src":"8463:14:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}],"id":3893,"name":"rawToConvertedEIP1559Detail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3989,"src":"8435:27:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_RawTx1559Detail_$3307_memory_ptr_$returns$_t_struct$_Tx1559Detail_$3343_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawTx1559Detail memory) pure returns (struct StdCheatsSafe.Tx1559Detail memory)"}},"id":3896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8435:43:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"src":"8412:66:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":3898,"nodeType":"ExpressionStatement","src":"8412:66:5"},{"expression":{"id":3904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3899,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3860,"src":"8488:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":3901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8500:6:5","memberName":"opcode","nodeType":"MemberAccess","referencedDeclaration":3323,"src":"8488:18:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3902,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3852,"src":"8509:5:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":3903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8515:6:5","memberName":"opcode","nodeType":"MemberAccess","referencedDeclaration":3287,"src":"8509:12:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8488:33:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3905,"nodeType":"ExpressionStatement","src":"8488:33:5"},{"expression":{"id":3906,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3860,"src":"8538:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"functionReturnParameters":3857,"id":3907,"nodeType":"Return","src":"8531:18:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedEIPTx1559","nameLocation":"8077:23:5","parameters":{"id":3853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3852,"mutability":"mutable","name":"rawTx","nameLocation":"8118:5:5","nodeType":"VariableDeclaration","scope":3909,"src":"8101:22:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559"},"typeName":{"id":3851,"nodeType":"UserDefinedTypeName","pathNode":{"id":3850,"name":"RawTx1559","nameLocations":["8101:9:5"],"nodeType":"IdentifierPath","referencedDeclaration":3288,"src":"8101:9:5"},"referencedDeclaration":3288,"src":"8101:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559"}},"visibility":"internal"}],"src":"8100:24:5"},"returnParameters":{"id":3857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3856,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3909,"src":"8156:13:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559"},"typeName":{"id":3855,"nodeType":"UserDefinedTypeName","pathNode":{"id":3854,"name":"Tx1559","nameLocations":["8156:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":3324,"src":"8156:6:5"},"referencedDeclaration":3324,"src":"8156:6:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"visibility":"internal"}],"src":"8155:15:5"},"scope":4792,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":3989,"nodeType":"FunctionDefinition","src":"8562:619:5","nodes":[],"body":{"id":3988,"nodeType":"Block","src":"8721:460:5","nodes":[],"statements":[{"assignments":[3920],"declarations":[{"constant":false,"id":3920,"mutability":"mutable","name":"txDetail","nameLocation":"8751:8:5","nodeType":"VariableDeclaration","scope":3988,"src":"8731:28:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"},"typeName":{"id":3919,"nodeType":"UserDefinedTypeName","pathNode":{"id":3918,"name":"Tx1559Detail","nameLocations":["8731:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":3343,"src":"8731:12:5"},"referencedDeclaration":3343,"src":"8731:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"}},"visibility":"internal"}],"id":3921,"nodeType":"VariableDeclarationStatement","src":"8731:28:5"},{"expression":{"id":3927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3922,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3920,"src":"8769:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":3924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8778:4:5","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3330,"src":"8769:13:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3925,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"8785:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":3926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8795:4:5","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3294,"src":"8785:14:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"8769:30:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3928,"nodeType":"ExpressionStatement","src":"8769:30:5"},{"expression":{"id":3934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3929,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3920,"src":"8809:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":3931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8818:4:5","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":3332,"src":"8809:13:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3932,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"8825:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":3933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8835:4:5","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":3296,"src":"8825:14:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8809:30:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3935,"nodeType":"ExpressionStatement","src":"8809:30:5"},{"expression":{"id":3941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3936,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3920,"src":"8849:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":3938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8858:2:5","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3338,"src":"8849:11:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3939,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"8863:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":3940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8873:2:5","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3302,"src":"8863:12:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8849:26:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3942,"nodeType":"ExpressionStatement","src":"8849:26:5"},{"expression":{"id":3950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3943,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3920,"src":"8885:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":3945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8894:5:5","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3336,"src":"8885:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":3947,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"8915:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":3948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8925:5:5","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3300,"src":"8915:15:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3946,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"8902:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":3949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8902:29:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8885:46:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3951,"nodeType":"ExpressionStatement","src":"8885:46:5"},{"expression":{"id":3959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3952,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3920,"src":"8941:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":3954,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8950:6:5","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3340,"src":"8941:15:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":3956,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"8972:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":3957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8982:6:5","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3304,"src":"8972:16:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3955,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"8959:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":3958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8959:30:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8941:48:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3960,"nodeType":"ExpressionStatement","src":"8941:48:5"},{"expression":{"id":3968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3961,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3920,"src":"8999:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":3963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9008:5:5","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3342,"src":"8999:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":3965,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"9029:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":3966,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9039:5:5","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3306,"src":"9029:15:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3964,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"9016:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":3967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9016:29:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8999:46:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3969,"nodeType":"ExpressionStatement","src":"8999:46:5"},{"expression":{"id":3977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3970,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3920,"src":"9055:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":3972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9064:3:5","memberName":"gas","nodeType":"MemberAccess","referencedDeclaration":3334,"src":"9055:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":3974,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"9083:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":3975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9093:3:5","memberName":"gas","nodeType":"MemberAccess","referencedDeclaration":3298,"src":"9083:13:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3973,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"9070:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":3976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9070:27:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9055:42:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3978,"nodeType":"ExpressionStatement","src":"9055:42:5"},{"expression":{"id":3984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3979,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3920,"src":"9107:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":3981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9116:10:5","memberName":"accessList","nodeType":"MemberAccess","referencedDeclaration":3328,"src":"9107:19:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3399_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.AccessList memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3982,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3912,"src":"9129:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":3983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9139:10:5","memberName":"accessList","nodeType":"MemberAccess","referencedDeclaration":3292,"src":"9129:20:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3399_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.AccessList memory[] memory"}},"src":"9107:42:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3399_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.AccessList memory[] memory"}},"id":3985,"nodeType":"ExpressionStatement","src":"9107:42:5"},{"expression":{"id":3986,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3920,"src":"9166:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"functionReturnParameters":3917,"id":3987,"nodeType":"Return","src":"9159:15:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedEIP1559Detail","nameLocation":"8571:27:5","parameters":{"id":3913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3912,"mutability":"mutable","name":"rawDetail","nameLocation":"8622:9:5","nodeType":"VariableDeclaration","scope":3989,"src":"8599:32:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail"},"typeName":{"id":3911,"nodeType":"UserDefinedTypeName","pathNode":{"id":3910,"name":"RawTx1559Detail","nameLocations":["8599:15:5"],"nodeType":"IdentifierPath","referencedDeclaration":3307,"src":"8599:15:5"},"referencedDeclaration":3307,"src":"8599:15:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3307_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail"}},"visibility":"internal"}],"src":"8598:34:5"},"returnParameters":{"id":3917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3916,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3989,"src":"8696:19:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"},"typeName":{"id":3915,"nodeType":"UserDefinedTypeName","pathNode":{"id":3914,"name":"Tx1559Detail","nameLocations":["8696:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":3343,"src":"8696:12:5"},"referencedDeclaration":3343,"src":"8696:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3343_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"}},"visibility":"internal"}],"src":"8695:21:5"},"scope":4792,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4031,"nodeType":"FunctionDefinition","src":"9187:363:5","nodes":[],"body":{"id":4030,"nodeType":"Block","src":"9276:274:5","nodes":[],"statements":[{"assignments":[3999],"declarations":[{"constant":false,"id":3999,"mutability":"mutable","name":"deployData","nameLocation":"9300:10:5","nodeType":"VariableDeclaration","scope":4030,"src":"9286:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3998,"name":"string","nodeType":"ElementaryTypeName","src":"9286:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4004,"initialValue":{"arguments":[{"id":4002,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3991,"src":"9325:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4000,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"9313:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9316:8:5","memberName":"readFile","nodeType":"MemberAccess","referencedDeclaration":8621,"src":"9313:11:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":4003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9313:17:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"9286:44:5"},{"assignments":[4006],"declarations":[{"constant":false,"id":4006,"mutability":"mutable","name":"parsedDeployData","nameLocation":"9353:16:5","nodeType":"VariableDeclaration","scope":4030,"src":"9340:29:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4005,"name":"bytes","nodeType":"ElementaryTypeName","src":"9340:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4012,"initialValue":{"arguments":[{"id":4009,"name":"deployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3999,"src":"9385:10:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2e7472616e73616374696f6e73","id":4010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9397:15:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b594723e6093f4c1c210e08bcd523373e89874e267b69a9d9a7cb17952e3049","typeString":"literal_string \".transactions\""},"value":".transactions"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_9b594723e6093f4c1c210e08bcd523373e89874e267b69a9d9a7cb17952e3049","typeString":"literal_string \".transactions\""}],"expression":{"id":4007,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"9372:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9375:9:5","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"9372:12:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":4011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9372:41:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"9340:73:5"},{"assignments":[4017],"declarations":[{"constant":false,"id":4017,"mutability":"mutable","name":"rawTxs","nameLocation":"9442:6:5","nodeType":"VariableDeclaration","scope":4030,"src":"9423:25:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"},"typeName":{"baseType":{"id":4015,"nodeType":"UserDefinedTypeName","pathNode":{"id":4014,"name":"RawTx1559","nameLocations":["9423:9:5"],"nodeType":"IdentifierPath","referencedDeclaration":3288,"src":"9423:9:5"},"referencedDeclaration":3288,"src":"9423:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559"}},"id":4016,"nodeType":"ArrayTypeName","src":"9423:11:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"}},"visibility":"internal"}],"id":4025,"initialValue":{"arguments":[{"id":4020,"name":"parsedDeployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4006,"src":"9462:16:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"id":4021,"name":"RawTx1559","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3288,"src":"9481:9:5","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawTx1559_$3288_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 storage pointer)"}},"id":4022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"9481:11:5","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 memory[] memory)"}}],"id":4023,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"9480:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 memory[] memory)"}],"expression":{"id":4018,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9451:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9455:6:5","memberName":"decode","nodeType":"MemberAccess","src":"9451:10:5","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9451:43:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9423:71:5"},{"expression":{"arguments":[{"id":4027,"name":"rawTxs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4017,"src":"9536:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}],"id":4026,"name":"rawToConvertedEIPTx1559s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3849,"src":"9511:24:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_RawTx1559_$3288_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawTx1559 memory[] memory) pure returns (struct StdCheatsSafe.Tx1559 memory[] memory)"}},"id":4028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9511:32:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"functionReturnParameters":3997,"id":4029,"nodeType":"Return","src":"9504:39:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readTx1559s","nameLocation":"9196:11:5","parameters":{"id":3992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3991,"mutability":"mutable","name":"path","nameLocation":"9222:4:5","nodeType":"VariableDeclaration","scope":4031,"src":"9208:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3990,"name":"string","nodeType":"ElementaryTypeName","src":"9208:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9207:20:5"},"returnParameters":{"id":3997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3996,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4031,"src":"9259:15:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"},"typeName":{"baseType":{"id":3994,"nodeType":"UserDefinedTypeName","pathNode":{"id":3993,"name":"Tx1559","nameLocations":["9259:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":3324,"src":"9259:6:5"},"referencedDeclaration":3324,"src":"9259:6:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"id":3995,"nodeType":"ArrayTypeName","src":"9259:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3324_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"}},"visibility":"internal"}],"src":"9258:17:5"},"scope":4792,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":4086,"nodeType":"FunctionDefinition","src":"9556:453:5","nodes":[],"body":{"id":4085,"nodeType":"Block","src":"9657:352:5","nodes":[],"statements":[{"assignments":[4042],"declarations":[{"constant":false,"id":4042,"mutability":"mutable","name":"deployData","nameLocation":"9681:10:5","nodeType":"VariableDeclaration","scope":4085,"src":"9667:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4041,"name":"string","nodeType":"ElementaryTypeName","src":"9667:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4047,"initialValue":{"arguments":[{"id":4045,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4033,"src":"9706:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4043,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"9694:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9697:8:5","memberName":"readFile","nodeType":"MemberAccess","referencedDeclaration":8621,"src":"9694:11:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":4046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9694:17:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"9667:44:5"},{"assignments":[4049],"declarations":[{"constant":false,"id":4049,"mutability":"mutable","name":"key","nameLocation":"9735:3:5","nodeType":"VariableDeclaration","scope":4085,"src":"9721:17:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4048,"name":"string","nodeType":"ElementaryTypeName","src":"9721:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4062,"initialValue":{"arguments":[{"arguments":[{"hexValue":"2e7472616e73616374696f6e735b","id":4054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9765:16:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_7abc4cdd6094bba2d56cb8a26083c756a68ba4e3b40f345f8102e1fc2249cd5c","typeString":"literal_string \".transactions[\""},"value":".transactions["},{"arguments":[{"id":4057,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4035,"src":"9795:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4055,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"9783:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9786:8:5","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"9783:11:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":4058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9783:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"5d","id":4059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9803:3:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_b36bcf9cc1d9e7f60b1f757ebd8b4694b17fc592b16065d243c43b09fde00b29","typeString":"literal_string \"]\""},"value":"]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7abc4cdd6094bba2d56cb8a26083c756a68ba4e3b40f345f8102e1fc2249cd5c","typeString":"literal_string \".transactions[\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_b36bcf9cc1d9e7f60b1f757ebd8b4694b17fc592b16065d243c43b09fde00b29","typeString":"literal_string \"]\""}],"expression":{"id":4052,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9748:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9752:12:5","memberName":"encodePacked","nodeType":"MemberAccess","src":"9748:16:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9748:59:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9741:6:5","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4050,"name":"string","nodeType":"ElementaryTypeName","src":"9741:6:5","typeDescriptions":{}}},"id":4061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9741:67:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"9721:87:5"},{"assignments":[4064],"declarations":[{"constant":false,"id":4064,"mutability":"mutable","name":"parsedDeployData","nameLocation":"9831:16:5","nodeType":"VariableDeclaration","scope":4085,"src":"9818:29:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4063,"name":"bytes","nodeType":"ElementaryTypeName","src":"9818:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4070,"initialValue":{"arguments":[{"id":4067,"name":"deployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4042,"src":"9863:10:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4068,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4049,"src":"9875:3:5","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":4065,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"9850:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9853:9:5","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"9850:12:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":4069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9850:29:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"9818:61:5"},{"assignments":[4073],"declarations":[{"constant":false,"id":4073,"mutability":"mutable","name":"rawTx","nameLocation":"9906:5:5","nodeType":"VariableDeclaration","scope":4085,"src":"9889:22:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559"},"typeName":{"id":4072,"nodeType":"UserDefinedTypeName","pathNode":{"id":4071,"name":"RawTx1559","nameLocations":["9889:9:5"],"nodeType":"IdentifierPath","referencedDeclaration":3288,"src":"9889:9:5"},"referencedDeclaration":3288,"src":"9889:9:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559"}},"visibility":"internal"}],"id":4080,"initialValue":{"arguments":[{"id":4076,"name":"parsedDeployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4064,"src":"9925:16:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":4077,"name":"RawTx1559","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3288,"src":"9944:9:5","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawTx1559_$3288_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 storage pointer)"}}],"id":4078,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"9943:11:5","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawTx1559_$3288_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_RawTx1559_$3288_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 storage pointer)"}],"expression":{"id":4074,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9914:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9918:6:5","memberName":"decode","nodeType":"MemberAccess","src":"9914:10:5","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9914:41:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"nodeType":"VariableDeclarationStatement","src":"9889:66:5"},{"expression":{"arguments":[{"id":4082,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4073,"src":"9996:5:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RawTx1559_$3288_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}],"id":4081,"name":"rawToConvertedEIPTx1559","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3909,"src":"9972:23:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_RawTx1559_$3288_memory_ptr_$returns$_t_struct$_Tx1559_$3324_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawTx1559 memory) pure returns (struct StdCheatsSafe.Tx1559 memory)"}},"id":4083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9972:30:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"functionReturnParameters":4040,"id":4084,"nodeType":"Return","src":"9965:37:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readTx1559","nameLocation":"9565:10:5","parameters":{"id":4036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4033,"mutability":"mutable","name":"path","nameLocation":"9590:4:5","nodeType":"VariableDeclaration","scope":4086,"src":"9576:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4032,"name":"string","nodeType":"ElementaryTypeName","src":"9576:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4035,"mutability":"mutable","name":"index","nameLocation":"9604:5:5","nodeType":"VariableDeclaration","scope":4086,"src":"9596:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4034,"name":"uint256","nodeType":"ElementaryTypeName","src":"9596:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9575:35:5"},"returnParameters":{"id":4040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4039,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4086,"src":"9642:13:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559"},"typeName":{"id":4038,"nodeType":"UserDefinedTypeName","pathNode":{"id":4037,"name":"Tx1559","nameLocations":["9642:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":3324,"src":"9642:6:5"},"referencedDeclaration":3324,"src":"9642:6:5","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3324_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"visibility":"internal"}],"src":"9641:15:5"},"scope":4792,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":4128,"nodeType":"FunctionDefinition","src":"10071:371:5","nodes":[],"body":{"id":4127,"nodeType":"Block","src":"10162:280:5","nodes":[],"statements":[{"assignments":[4096],"declarations":[{"constant":false,"id":4096,"mutability":"mutable","name":"deployData","nameLocation":"10186:10:5","nodeType":"VariableDeclaration","scope":4127,"src":"10172:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4095,"name":"string","nodeType":"ElementaryTypeName","src":"10172:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4101,"initialValue":{"arguments":[{"id":4099,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"10211:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4097,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"10199:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10202:8:5","memberName":"readFile","nodeType":"MemberAccess","referencedDeclaration":8621,"src":"10199:11:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":4100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10199:17:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"10172:44:5"},{"assignments":[4103],"declarations":[{"constant":false,"id":4103,"mutability":"mutable","name":"parsedDeployData","nameLocation":"10239:16:5","nodeType":"VariableDeclaration","scope":4127,"src":"10226:29:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4102,"name":"bytes","nodeType":"ElementaryTypeName","src":"10226:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4109,"initialValue":{"arguments":[{"id":4106,"name":"deployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4096,"src":"10271:10:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2e7265636569707473","id":4107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10283:11:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_29a5d3664a45019923b250b65c7d5b7f8c019d3960761fa9ca59b9001f893261","typeString":"literal_string \".receipts\""},"value":".receipts"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_29a5d3664a45019923b250b65c7d5b7f8c019d3960761fa9ca59b9001f893261","typeString":"literal_string \".receipts\""}],"expression":{"id":4104,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"10258:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10261:9:5","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"10258:12:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":4108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10258:37:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10226:69:5"},{"assignments":[4114],"declarations":[{"constant":false,"id":4114,"mutability":"mutable","name":"rawReceipts","nameLocation":"10325:11:5","nodeType":"VariableDeclaration","scope":4127,"src":"10305:31:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"},"typeName":{"baseType":{"id":4112,"nodeType":"UserDefinedTypeName","pathNode":{"id":4111,"name":"RawReceipt","nameLocations":["10305:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3428,"src":"10305:10:5"},"referencedDeclaration":3428,"src":"10305:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt"}},"id":4113,"nodeType":"ArrayTypeName","src":"10305:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"}},"visibility":"internal"}],"id":4122,"initialValue":{"arguments":[{"id":4117,"name":"parsedDeployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4103,"src":"10350:16:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"id":4118,"name":"RawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3428,"src":"10369:10:5","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawReceipt_$3428_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt storage pointer)"}},"id":4119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"10369:12:5","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt memory[] memory)"}}],"id":4120,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"10368:14:5","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt memory[] memory)"}],"expression":{"id":4115,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10339:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4116,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10343:6:5","memberName":"decode","nodeType":"MemberAccess","src":"10339:10:5","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10339:44:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10305:78:5"},{"expression":{"arguments":[{"id":4124,"name":"rawReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4114,"src":"10423:11:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}],"id":4123,"name":"rawToConvertedReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4232,"src":"10400:22:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawReceipt memory[] memory) pure returns (struct StdCheatsSafe.Receipt memory[] memory)"}},"id":4125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10400:35:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"functionReturnParameters":4094,"id":4126,"nodeType":"Return","src":"10393:42:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readReceipts","nameLocation":"10080:12:5","parameters":{"id":4089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4088,"mutability":"mutable","name":"path","nameLocation":"10107:4:5","nodeType":"VariableDeclaration","scope":4128,"src":"10093:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4087,"name":"string","nodeType":"ElementaryTypeName","src":"10093:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10092:20:5"},"returnParameters":{"id":4094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4093,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4128,"src":"10144:16:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt[]"},"typeName":{"baseType":{"id":4091,"nodeType":"UserDefinedTypeName","pathNode":{"id":4090,"name":"Receipt","nameLocations":["10144:7:5"],"nodeType":"IdentifierPath","referencedDeclaration":3457,"src":"10144:7:5"},"referencedDeclaration":3457,"src":"10144:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"id":4092,"nodeType":"ArrayTypeName","src":"10144:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"}},"visibility":"internal"}],"src":"10143:18:5"},"scope":4792,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":4183,"nodeType":"FunctionDefinition","src":"10448:461:5","nodes":[],"body":{"id":4182,"nodeType":"Block","src":"10551:358:5","nodes":[],"statements":[{"assignments":[4139],"declarations":[{"constant":false,"id":4139,"mutability":"mutable","name":"deployData","nameLocation":"10575:10:5","nodeType":"VariableDeclaration","scope":4182,"src":"10561:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4138,"name":"string","nodeType":"ElementaryTypeName","src":"10561:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4144,"initialValue":{"arguments":[{"id":4142,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4130,"src":"10600:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4140,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"10588:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10591:8:5","memberName":"readFile","nodeType":"MemberAccess","referencedDeclaration":8621,"src":"10588:11:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":4143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10588:17:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"10561:44:5"},{"assignments":[4146],"declarations":[{"constant":false,"id":4146,"mutability":"mutable","name":"key","nameLocation":"10629:3:5","nodeType":"VariableDeclaration","scope":4182,"src":"10615:17:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4145,"name":"string","nodeType":"ElementaryTypeName","src":"10615:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4159,"initialValue":{"arguments":[{"arguments":[{"hexValue":"2e72656365697074735b","id":4151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10659:12:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_1f28b72ce547907c2ae0f1bd0fd1ff00aeea8e573cc3e4076246f258e653d170","typeString":"literal_string \".receipts[\""},"value":".receipts["},{"arguments":[{"id":4154,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4132,"src":"10685:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4152,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"10673:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10676:8:5","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":8714,"src":"10673:11:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":4155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10673:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"5d","id":4156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10693:3:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_b36bcf9cc1d9e7f60b1f757ebd8b4694b17fc592b16065d243c43b09fde00b29","typeString":"literal_string \"]\""},"value":"]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1f28b72ce547907c2ae0f1bd0fd1ff00aeea8e573cc3e4076246f258e653d170","typeString":"literal_string \".receipts[\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_b36bcf9cc1d9e7f60b1f757ebd8b4694b17fc592b16065d243c43b09fde00b29","typeString":"literal_string \"]\""}],"expression":{"id":4149,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10642:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10646:12:5","memberName":"encodePacked","nodeType":"MemberAccess","src":"10642:16:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10642:55:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10635:6:5","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4147,"name":"string","nodeType":"ElementaryTypeName","src":"10635:6:5","typeDescriptions":{}}},"id":4158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10635:63:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"10615:83:5"},{"assignments":[4161],"declarations":[{"constant":false,"id":4161,"mutability":"mutable","name":"parsedDeployData","nameLocation":"10721:16:5","nodeType":"VariableDeclaration","scope":4182,"src":"10708:29:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4160,"name":"bytes","nodeType":"ElementaryTypeName","src":"10708:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4167,"initialValue":{"arguments":[{"id":4164,"name":"deployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4139,"src":"10753:10:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4165,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4146,"src":"10765:3:5","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":4162,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"10740:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10743:9:5","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"10740:12:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":4166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10740:29:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10708:61:5"},{"assignments":[4170],"declarations":[{"constant":false,"id":4170,"mutability":"mutable","name":"rawReceipt","nameLocation":"10797:10:5","nodeType":"VariableDeclaration","scope":4182,"src":"10779:28:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt"},"typeName":{"id":4169,"nodeType":"UserDefinedTypeName","pathNode":{"id":4168,"name":"RawReceipt","nameLocations":["10779:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3428,"src":"10779:10:5"},"referencedDeclaration":3428,"src":"10779:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt"}},"visibility":"internal"}],"id":4177,"initialValue":{"arguments":[{"id":4173,"name":"parsedDeployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4161,"src":"10821:16:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":4174,"name":"RawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3428,"src":"10840:10:5","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawReceipt_$3428_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt storage pointer)"}}],"id":4175,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"10839:12:5","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawReceipt_$3428_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_RawReceipt_$3428_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt storage pointer)"}],"expression":{"id":4171,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10810:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10814:6:5","memberName":"decode","nodeType":"MemberAccess","src":"10810:10:5","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10810:42:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"nodeType":"VariableDeclarationStatement","src":"10779:73:5"},{"expression":{"arguments":[{"id":4179,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4170,"src":"10891:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}],"id":4178,"name":"rawToConvertedReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4353,"src":"10869:21:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_RawReceipt_$3428_memory_ptr_$returns$_t_struct$_Receipt_$3457_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawReceipt memory) pure returns (struct StdCheatsSafe.Receipt memory)"}},"id":4180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10869:33:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"functionReturnParameters":4137,"id":4181,"nodeType":"Return","src":"10862:40:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readReceipt","nameLocation":"10457:11:5","parameters":{"id":4133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4130,"mutability":"mutable","name":"path","nameLocation":"10483:4:5","nodeType":"VariableDeclaration","scope":4183,"src":"10469:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4129,"name":"string","nodeType":"ElementaryTypeName","src":"10469:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4132,"mutability":"mutable","name":"index","nameLocation":"10497:5:5","nodeType":"VariableDeclaration","scope":4183,"src":"10489:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4131,"name":"uint256","nodeType":"ElementaryTypeName","src":"10489:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10468:35:5"},"returnParameters":{"id":4137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4136,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4183,"src":"10535:14:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt"},"typeName":{"id":4135,"nodeType":"UserDefinedTypeName","pathNode":{"id":4134,"name":"Receipt","nameLocations":["10535:7:5"],"nodeType":"IdentifierPath","referencedDeclaration":3457,"src":"10535:7:5"},"referencedDeclaration":3457,"src":"10535:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"visibility":"internal"}],"src":"10534:16:5"},"scope":4792,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":4232,"nodeType":"FunctionDefinition","src":"10915:347:5","nodes":[],"body":{"id":4231,"nodeType":"Block","src":"11029:233:5","nodes":[],"statements":[{"assignments":[4198],"declarations":[{"constant":false,"id":4198,"mutability":"mutable","name":"receipts","nameLocation":"11056:8:5","nodeType":"VariableDeclaration","scope":4231,"src":"11039:25:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt[]"},"typeName":{"baseType":{"id":4196,"nodeType":"UserDefinedTypeName","pathNode":{"id":4195,"name":"Receipt","nameLocations":["11039:7:5"],"nodeType":"IdentifierPath","referencedDeclaration":3457,"src":"11039:7:5"},"referencedDeclaration":3457,"src":"11039:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"id":4197,"nodeType":"ArrayTypeName","src":"11039:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"}},"visibility":"internal"}],"id":4206,"initialValue":{"arguments":[{"expression":{"id":4203,"name":"rawReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4187,"src":"11081:11:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}},"id":4204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11093:6:5","memberName":"length","nodeType":"MemberAccess","src":"11081:18:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11067:13:5","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct StdCheatsSafe.Receipt memory[] memory)"},"typeName":{"baseType":{"id":4200,"nodeType":"UserDefinedTypeName","pathNode":{"id":4199,"name":"Receipt","nameLocations":["11071:7:5"],"nodeType":"IdentifierPath","referencedDeclaration":3457,"src":"11071:7:5"},"referencedDeclaration":3457,"src":"11071:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"id":4201,"nodeType":"ArrayTypeName","src":"11071:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"}}},"id":4205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11067:33:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"11039:61:5"},{"body":{"id":4227,"nodeType":"Block","src":"11155:76:5","statements":[{"expression":{"id":4225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4217,"name":"receipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4198,"src":"11169:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"id":4219,"indexExpression":{"id":4218,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4208,"src":"11178:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11169:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":4221,"name":"rawReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4187,"src":"11205:11:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}},"id":4223,"indexExpression":{"id":4222,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4208,"src":"11217:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11205:14:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}],"id":4220,"name":"rawToConvertedReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4353,"src":"11183:21:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_RawReceipt_$3428_memory_ptr_$returns$_t_struct$_Receipt_$3457_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawReceipt memory) pure returns (struct StdCheatsSafe.Receipt memory)"}},"id":4224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:37:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"src":"11169:51:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4226,"nodeType":"ExpressionStatement","src":"11169:51:5"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4210,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4208,"src":"11126:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":4211,"name":"rawReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4187,"src":"11130:11:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}},"id":4212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11142:6:5","memberName":"length","nodeType":"MemberAccess","src":"11130:18:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11126:22:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4228,"initializationExpression":{"assignments":[4208],"declarations":[{"constant":false,"id":4208,"mutability":"mutable","name":"i","nameLocation":"11123:1:5","nodeType":"VariableDeclaration","scope":4228,"src":"11115:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4207,"name":"uint256","nodeType":"ElementaryTypeName","src":"11115:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4209,"nodeType":"VariableDeclarationStatement","src":"11115:9:5"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":4215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11150:3:5","subExpression":{"id":4214,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4208,"src":"11150:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4216,"nodeType":"ExpressionStatement","src":"11150:3:5"},"nodeType":"ForStatement","src":"11110:121:5"},{"expression":{"id":4229,"name":"receipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4198,"src":"11247:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"functionReturnParameters":4193,"id":4230,"nodeType":"Return","src":"11240:15:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedReceipts","nameLocation":"10924:22:5","parameters":{"id":4188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4187,"mutability":"mutable","name":"rawReceipts","nameLocation":"10967:11:5","nodeType":"VariableDeclaration","scope":4232,"src":"10947:31:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"},"typeName":{"baseType":{"id":4185,"nodeType":"UserDefinedTypeName","pathNode":{"id":4184,"name":"RawReceipt","nameLocations":["10947:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3428,"src":"10947:10:5"},"referencedDeclaration":3428,"src":"10947:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt"}},"id":4186,"nodeType":"ArrayTypeName","src":"10947:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3428_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"}},"visibility":"internal"}],"src":"10946:33:5"},"returnParameters":{"id":4193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4192,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4232,"src":"11011:16:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt[]"},"typeName":{"baseType":{"id":4190,"nodeType":"UserDefinedTypeName","pathNode":{"id":4189,"name":"Receipt","nameLocations":["11011:7:5"],"nodeType":"IdentifierPath","referencedDeclaration":3457,"src":"11011:7:5"},"referencedDeclaration":3457,"src":"11011:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"id":4191,"nodeType":"ArrayTypeName","src":"11011:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3457_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"}},"visibility":"internal"}],"src":"11010:18:5"},"scope":4792,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4353,"nodeType":"FunctionDefinition","src":"11268:962:5","nodes":[],"body":{"id":4352,"nodeType":"Block","src":"11376:854:5","nodes":[],"statements":[{"assignments":[4243],"declarations":[{"constant":false,"id":4243,"mutability":"mutable","name":"receipt","nameLocation":"11401:7:5","nodeType":"VariableDeclaration","scope":4352,"src":"11386:22:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt"},"typeName":{"id":4242,"nodeType":"UserDefinedTypeName","pathNode":{"id":4241,"name":"Receipt","nameLocations":["11386:7:5"],"nodeType":"IdentifierPath","referencedDeclaration":3457,"src":"11386:7:5"},"referencedDeclaration":3457,"src":"11386:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"visibility":"internal"}],"id":4244,"nodeType":"VariableDeclarationStatement","src":"11386:22:5"},{"expression":{"id":4250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4245,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"11418:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11426:9:5","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":3430,"src":"11418:17:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4248,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"11438:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11449:9:5","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":3401,"src":"11438:20:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11418:40:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4251,"nodeType":"ExpressionStatement","src":"11418:40:5"},{"expression":{"id":4257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4252,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"11468:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11476:2:5","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3452,"src":"11468:10:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4255,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"11481:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11492:2:5","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3423,"src":"11481:13:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11468:26:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4258,"nodeType":"ExpressionStatement","src":"11468:26:5"},{"expression":{"id":4264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4259,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"11504:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11512:4:5","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":3440,"src":"11504:12:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4262,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"11519:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11530:4:5","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":3411,"src":"11519:15:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11504:30:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4265,"nodeType":"ExpressionStatement","src":"11504:30:5"},{"expression":{"id":4271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4266,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"11544:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11552:15:5","memberName":"contractAddress","nodeType":"MemberAccess","referencedDeclaration":3434,"src":"11544:23:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4269,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"11570:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11581:15:5","memberName":"contractAddress","nodeType":"MemberAccess","referencedDeclaration":3405,"src":"11570:26:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11544:52:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4272,"nodeType":"ExpressionStatement","src":"11544:52:5"},{"expression":{"id":4280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4273,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"11606:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11614:17:5","memberName":"effectiveGasPrice","nodeType":"MemberAccess","referencedDeclaration":3438,"src":"11606:25:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4277,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"11647:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11658:17:5","memberName":"effectiveGasPrice","nodeType":"MemberAccess","referencedDeclaration":3409,"src":"11647:28:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4276,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"11634:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11634:42:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11606:70:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4281,"nodeType":"ExpressionStatement","src":"11606:70:5"},{"expression":{"id":4289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4282,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"11686:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4284,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11694:17:5","memberName":"cumulativeGasUsed","nodeType":"MemberAccess","referencedDeclaration":3436,"src":"11686:25:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4286,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"11727:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11738:17:5","memberName":"cumulativeGasUsed","nodeType":"MemberAccess","referencedDeclaration":3407,"src":"11727:28:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4285,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"11714:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11714:42:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11686:70:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4290,"nodeType":"ExpressionStatement","src":"11686:70:5"},{"expression":{"id":4298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4291,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"11766:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4293,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11774:7:5","memberName":"gasUsed","nodeType":"MemberAccess","referencedDeclaration":3442,"src":"11766:15:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4295,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"11797:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11808:7:5","memberName":"gasUsed","nodeType":"MemberAccess","referencedDeclaration":3413,"src":"11797:18:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4294,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"11784:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11784:32:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11766:50:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4299,"nodeType":"ExpressionStatement","src":"11766:50:5"},{"expression":{"id":4307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4300,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"11826:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4302,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11834:6:5","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":3450,"src":"11826:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4304,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"11856:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11867:6:5","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":3421,"src":"11856:17:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4303,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"11843:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11843:31:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11826:48:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4308,"nodeType":"ExpressionStatement","src":"11826:48:5"},{"expression":{"id":4316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4309,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"11884:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11892:16:5","memberName":"transactionIndex","nodeType":"MemberAccess","referencedDeclaration":3456,"src":"11884:24:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4313,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"11924:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11935:16:5","memberName":"transactionIndex","nodeType":"MemberAccess","referencedDeclaration":3427,"src":"11924:27:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4312,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"11911:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11911:41:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11884:68:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4317,"nodeType":"ExpressionStatement","src":"11884:68:5"},{"expression":{"id":4325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4318,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"11962:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11970:11:5","memberName":"blockNumber","nodeType":"MemberAccess","referencedDeclaration":3432,"src":"11962:19:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4322,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"11997:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12008:11:5","memberName":"blockNumber","nodeType":"MemberAccess","referencedDeclaration":3403,"src":"11997:22:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4321,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"11984:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11984:36:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11962:58:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4326,"nodeType":"ExpressionStatement","src":"11962:58:5"},{"expression":{"id":4334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4327,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"12030:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12038:4:5","memberName":"logs","nodeType":"MemberAccess","referencedDeclaration":3446,"src":"12030:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4331,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"12071:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12082:4:5","memberName":"logs","nodeType":"MemberAccess","referencedDeclaration":3417,"src":"12071:15:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}],"id":4330,"name":"rawToConvertedReceiptLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4490,"src":"12045:25:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawReceiptLog memory[] memory) pure returns (struct StdCheatsSafe.ReceiptLog memory[] memory)"}},"id":4333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12045:42:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"src":"12030:57:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":4335,"nodeType":"ExpressionStatement","src":"12030:57:5"},{"expression":{"id":4341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4336,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"12097:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4338,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12105:9:5","memberName":"logsBloom","nodeType":"MemberAccess","referencedDeclaration":3448,"src":"12097:17:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4339,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"12117:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12128:9:5","memberName":"logsBloom","nodeType":"MemberAccess","referencedDeclaration":3419,"src":"12117:20:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"12097:40:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4342,"nodeType":"ExpressionStatement","src":"12097:40:5"},{"expression":{"id":4348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4343,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"12147:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12155:15:5","memberName":"transactionHash","nodeType":"MemberAccess","referencedDeclaration":3454,"src":"12147:23:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4346,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"12173:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12184:15:5","memberName":"transactionHash","nodeType":"MemberAccess","referencedDeclaration":3425,"src":"12173:26:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12147:52:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4349,"nodeType":"ExpressionStatement","src":"12147:52:5"},{"expression":{"id":4350,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"12216:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"functionReturnParameters":4240,"id":4351,"nodeType":"Return","src":"12209:14:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedReceipt","nameLocation":"11277:21:5","parameters":{"id":4236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4235,"mutability":"mutable","name":"rawReceipt","nameLocation":"11317:10:5","nodeType":"VariableDeclaration","scope":4353,"src":"11299:28:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt"},"typeName":{"id":4234,"nodeType":"UserDefinedTypeName","pathNode":{"id":4233,"name":"RawReceipt","nameLocations":["11299:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3428,"src":"11299:10:5"},"referencedDeclaration":3428,"src":"11299:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3428_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt"}},"visibility":"internal"}],"src":"11298:30:5"},"returnParameters":{"id":4240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4239,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4353,"src":"11360:14:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_memory_ptr","typeString":"struct StdCheatsSafe.Receipt"},"typeName":{"id":4238,"nodeType":"UserDefinedTypeName","pathNode":{"id":4237,"name":"Receipt","nameLocations":["11360:7:5"],"nodeType":"IdentifierPath","referencedDeclaration":3457,"src":"11360:7:5"},"referencedDeclaration":3457,"src":"11360:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3457_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"visibility":"internal"}],"src":"11359:16:5"},"scope":4792,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4490,"nodeType":"FunctionDefinition","src":"12236:873:5","nodes":[],"body":{"id":4489,"nodeType":"Block","src":"12391:718:5","nodes":[],"statements":[{"assignments":[4368],"declarations":[{"constant":false,"id":4368,"mutability":"mutable","name":"logs","nameLocation":"12421:4:5","nodeType":"VariableDeclaration","scope":4489,"src":"12401:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"},"typeName":{"baseType":{"id":4366,"nodeType":"UserDefinedTypeName","pathNode":{"id":4365,"name":"ReceiptLog","nameLocations":["12401:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3545,"src":"12401:10:5"},"referencedDeclaration":3545,"src":"12401:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog"}},"id":4367,"nodeType":"ArrayTypeName","src":"12401:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"}},"visibility":"internal"}],"id":4376,"initialValue":{"arguments":[{"expression":{"id":4373,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"12445:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":4374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12453:6:5","memberName":"length","nodeType":"MemberAccess","src":"12445:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12428:16:5","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct StdCheatsSafe.ReceiptLog memory[] memory)"},"typeName":{"baseType":{"id":4370,"nodeType":"UserDefinedTypeName","pathNode":{"id":4369,"name":"ReceiptLog","nameLocations":["12432:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3545,"src":"12432:10:5"},"referencedDeclaration":3545,"src":"12432:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog"}},"id":4371,"nodeType":"ArrayTypeName","src":"12432:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"}}},"id":4375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12428:32:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12401:59:5"},{"body":{"id":4485,"nodeType":"Block","src":"12511:571:5","statements":[{"expression":{"id":4395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":4387,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"12525:4:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":4389,"indexExpression":{"id":4388,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12530:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12525:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":4390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12533:10:5","memberName":"logAddress","nodeType":"MemberAccess","referencedDeclaration":3527,"src":"12525:18:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":4391,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"12546:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":4393,"indexExpression":{"id":4392,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12554:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12546:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3525_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":4394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12557:10:5","memberName":"logAddress","nodeType":"MemberAccess","referencedDeclaration":3505,"src":"12546:21:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12525:42:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4396,"nodeType":"ExpressionStatement","src":"12525:42:5"},{"expression":{"id":4405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":4397,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"12581:4:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":4399,"indexExpression":{"id":4398,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12586:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12581:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":4400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12589:9:5","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":3529,"src":"12581:17:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":4401,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"12601:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":4403,"indexExpression":{"id":4402,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12609:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12601:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3525_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":4404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12612:9:5","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":3507,"src":"12601:20:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12581:40:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4406,"nodeType":"ExpressionStatement","src":"12581:40:5"},{"expression":{"id":4417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":4407,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"12635:4:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":4409,"indexExpression":{"id":4408,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12640:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12635:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":4410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12643:11:5","memberName":"blockNumber","nodeType":"MemberAccess","referencedDeclaration":3531,"src":"12635:19:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":4412,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"12670:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":4414,"indexExpression":{"id":4413,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12678:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12670:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3525_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":4415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12681:11:5","memberName":"blockNumber","nodeType":"MemberAccess","referencedDeclaration":3509,"src":"12670:22:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4411,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"12657:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12657:36:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12635:58:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4418,"nodeType":"ExpressionStatement","src":"12635:58:5"},{"expression":{"id":4427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":4419,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"12707:4:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":4421,"indexExpression":{"id":4420,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12712:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12707:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":4422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12715:4:5","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3533,"src":"12707:12:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":4423,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"12722:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":4425,"indexExpression":{"id":4424,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12730:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12722:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3525_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":4426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12733:4:5","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3511,"src":"12722:15:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"12707:30:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4428,"nodeType":"ExpressionStatement","src":"12707:30:5"},{"expression":{"id":4439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":4429,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"12751:4:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":4431,"indexExpression":{"id":4430,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12756:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12751:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":4432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12759:8:5","memberName":"logIndex","nodeType":"MemberAccess","referencedDeclaration":3535,"src":"12751:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":4434,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"12783:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":4436,"indexExpression":{"id":4435,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12791:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12783:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3525_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":4437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12794:8:5","memberName":"logIndex","nodeType":"MemberAccess","referencedDeclaration":3513,"src":"12783:19:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4433,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"12770:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12770:33:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12751:52:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4440,"nodeType":"ExpressionStatement","src":"12751:52:5"},{"expression":{"id":4449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":4441,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"12817:4:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":4443,"indexExpression":{"id":4442,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12822:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12817:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":4444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12825:6:5","memberName":"topics","nodeType":"MemberAccess","referencedDeclaration":3538,"src":"12817:14:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":4445,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"12834:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":4447,"indexExpression":{"id":4446,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12842:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12834:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3525_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":4448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12845:6:5","memberName":"topics","nodeType":"MemberAccess","referencedDeclaration":3518,"src":"12834:17:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"12817:34:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":4450,"nodeType":"ExpressionStatement","src":"12817:34:5"},{"expression":{"id":4461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":4451,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"12865:4:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":4453,"indexExpression":{"id":4452,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12870:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12865:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":4454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12873:16:5","memberName":"transactionIndex","nodeType":"MemberAccess","referencedDeclaration":3540,"src":"12865:24:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":4456,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"12905:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":4458,"indexExpression":{"id":4457,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12913:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12905:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3525_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":4459,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12916:16:5","memberName":"transactionIndex","nodeType":"MemberAccess","referencedDeclaration":3522,"src":"12905:27:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4455,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"12892:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12892:41:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12865:68:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4462,"nodeType":"ExpressionStatement","src":"12865:68:5"},{"expression":{"id":4473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":4463,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"12947:4:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":4465,"indexExpression":{"id":4464,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12952:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12947:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":4466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12955:19:5","memberName":"transactionLogIndex","nodeType":"MemberAccess","referencedDeclaration":3542,"src":"12947:27:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":4468,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"12990:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":4470,"indexExpression":{"id":4469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12998:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12990:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3525_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":4471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13001:19:5","memberName":"transactionLogIndex","nodeType":"MemberAccess","referencedDeclaration":3524,"src":"12990:30:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4467,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4723,"src":"12977:12:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12977:44:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12947:74:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4474,"nodeType":"ExpressionStatement","src":"12947:74:5"},{"expression":{"id":4483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":4475,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"13035:4:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":4477,"indexExpression":{"id":4476,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"13040:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13035:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":4478,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13043:7:5","memberName":"removed","nodeType":"MemberAccess","referencedDeclaration":3544,"src":"13035:15:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":4479,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"13053:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":4481,"indexExpression":{"id":4480,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"13061:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13053:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3525_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":4482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13064:7:5","memberName":"removed","nodeType":"MemberAccess","referencedDeclaration":3515,"src":"13053:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13035:36:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4484,"nodeType":"ExpressionStatement","src":"13035:36:5"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4380,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12486:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":4381,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"12490:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":4382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12498:6:5","memberName":"length","nodeType":"MemberAccess","src":"12490:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12486:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4486,"initializationExpression":{"assignments":[4378],"declarations":[{"constant":false,"id":4378,"mutability":"mutable","name":"i","nameLocation":"12483:1:5","nodeType":"VariableDeclaration","scope":4486,"src":"12475:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4377,"name":"uint256","nodeType":"ElementaryTypeName","src":"12475:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4379,"nodeType":"VariableDeclarationStatement","src":"12475:9:5"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":4385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12506:3:5","subExpression":{"id":4384,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"12506:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4386,"nodeType":"ExpressionStatement","src":"12506:3:5"},"nodeType":"ForStatement","src":"12470:612:5"},{"expression":{"id":4487,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4368,"src":"13098:4:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"functionReturnParameters":4363,"id":4488,"nodeType":"Return","src":"13091:11:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedReceiptLogs","nameLocation":"12245:25:5","parameters":{"id":4358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4357,"mutability":"mutable","name":"rawLogs","nameLocation":"12294:7:5","nodeType":"VariableDeclaration","scope":4490,"src":"12271:30:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog[]"},"typeName":{"baseType":{"id":4355,"nodeType":"UserDefinedTypeName","pathNode":{"id":4354,"name":"RawReceiptLog","nameLocations":["12271:13:5"],"nodeType":"IdentifierPath","referencedDeclaration":3525,"src":"12271:13:5"},"referencedDeclaration":3525,"src":"12271:13:5","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3525_storage_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog"}},"id":4356,"nodeType":"ArrayTypeName","src":"12271:15:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3525_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog[]"}},"visibility":"internal"}],"src":"12270:32:5"},"returnParameters":{"id":4363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4490,"src":"12366:19:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"},"typeName":{"baseType":{"id":4360,"nodeType":"UserDefinedTypeName","pathNode":{"id":4359,"name":"ReceiptLog","nameLocations":["12366:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":3545,"src":"12366:10:5"},"referencedDeclaration":3545,"src":"12366:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3545_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog"}},"id":4361,"nodeType":"ArrayTypeName","src":"12366:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3545_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"}},"visibility":"internal"}],"src":"12365:21:5"},"scope":4792,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4522,"nodeType":"FunctionDefinition","src":"13269:416:5","nodes":[],"body":{"id":4521,"nodeType":"Block","src":"13368:317:5","nodes":[],"statements":[{"assignments":[4500],"declarations":[{"constant":false,"id":4500,"mutability":"mutable","name":"bytecode","nameLocation":"13391:8:5","nodeType":"VariableDeclaration","scope":4521,"src":"13378:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4499,"name":"bytes","nodeType":"ElementaryTypeName","src":"13378:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4509,"initialValue":{"arguments":[{"arguments":[{"id":4505,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4492,"src":"13430:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4503,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"13419:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13422:7:5","memberName":"getCode","nodeType":"MemberAccess","referencedDeclaration":8571,"src":"13419:10:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) view external returns (bytes memory)"}},"id":4506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13419:16:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4507,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4494,"src":"13437:4:5","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":4501,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13402:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13406:12:5","memberName":"encodePacked","nodeType":"MemberAccess","src":"13402:16:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13402:40:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"13378:64:5"},{"AST":{"nativeSrc":"13504:79:5","nodeType":"YulBlock","src":"13504:79:5","statements":[{"nativeSrc":"13518:55:5","nodeType":"YulAssignment","src":"13518:55:5","value":{"arguments":[{"kind":"number","nativeSrc":"13533:1:5","nodeType":"YulLiteral","src":"13533:1:5","type":"","value":"0"},{"arguments":[{"name":"bytecode","nativeSrc":"13540:8:5","nodeType":"YulIdentifier","src":"13540:8:5"},{"kind":"number","nativeSrc":"13550:4:5","nodeType":"YulLiteral","src":"13550:4:5","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13536:3:5","nodeType":"YulIdentifier","src":"13536:3:5"},"nativeSrc":"13536:19:5","nodeType":"YulFunctionCall","src":"13536:19:5"},{"arguments":[{"name":"bytecode","nativeSrc":"13563:8:5","nodeType":"YulIdentifier","src":"13563:8:5"}],"functionName":{"name":"mload","nativeSrc":"13557:5:5","nodeType":"YulIdentifier","src":"13557:5:5"},"nativeSrc":"13557:15:5","nodeType":"YulFunctionCall","src":"13557:15:5"}],"functionName":{"name":"create","nativeSrc":"13526:6:5","nodeType":"YulIdentifier","src":"13526:6:5"},"nativeSrc":"13526:47:5","nodeType":"YulFunctionCall","src":"13526:47:5"},"variableNames":[{"name":"addr","nativeSrc":"13518:4:5","nodeType":"YulIdentifier","src":"13518:4:5"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":4497,"isOffset":false,"isSlot":false,"src":"13518:4:5","valueSize":1},{"declaration":4500,"isOffset":false,"isSlot":false,"src":"13540:8:5","valueSize":1},{"declaration":4500,"isOffset":false,"isSlot":false,"src":"13563:8:5","valueSize":1}],"id":4510,"nodeType":"InlineAssembly","src":"13495:88:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4512,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4497,"src":"13601:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13617:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13609:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4513,"name":"address","nodeType":"ElementaryTypeName","src":"13609:7:5","typeDescriptions":{}}},"id":4516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13609:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13601:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473206465706c6f79436f646528737472696e672c6279746573293a204465706c6f796d656e74206661696c65642e","id":4518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13621:56:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_a8fe98dd1d450e91397ea844d0b9cef01528a963df7b8ac4b93b8aa3ef69cfce","typeString":"literal_string \"StdCheats deployCode(string,bytes): Deployment failed.\""},"value":"StdCheats deployCode(string,bytes): Deployment failed."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a8fe98dd1d450e91397ea844d0b9cef01528a963df7b8ac4b93b8aa3ef69cfce","typeString":"literal_string \"StdCheats deployCode(string,bytes): Deployment failed.\""}],"id":4511,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13593:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13593:85:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4520,"nodeType":"ExpressionStatement","src":"13593:85:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deployCode","nameLocation":"13278:10:5","parameters":{"id":4495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4492,"mutability":"mutable","name":"what","nameLocation":"13303:4:5","nodeType":"VariableDeclaration","scope":4522,"src":"13289:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4491,"name":"string","nodeType":"ElementaryTypeName","src":"13289:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4494,"mutability":"mutable","name":"args","nameLocation":"13322:4:5","nodeType":"VariableDeclaration","scope":4522,"src":"13309:17:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4493,"name":"bytes","nodeType":"ElementaryTypeName","src":"13309:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13288:39:5"},"returnParameters":{"id":4498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4497,"mutability":"mutable","name":"addr","nameLocation":"13362:4:5","nodeType":"VariableDeclaration","scope":4522,"src":"13354:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4496,"name":"address","nodeType":"ElementaryTypeName","src":"13354:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13353:14:5"},"scope":4792,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4548,"nodeType":"FunctionDefinition","src":"13691:367:5","nodes":[],"body":{"id":4547,"nodeType":"Block","src":"13771:287:5","nodes":[],"statements":[{"assignments":[4530],"declarations":[{"constant":false,"id":4530,"mutability":"mutable","name":"bytecode","nameLocation":"13794:8:5","nodeType":"VariableDeclaration","scope":4547,"src":"13781:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4529,"name":"bytes","nodeType":"ElementaryTypeName","src":"13781:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4535,"initialValue":{"arguments":[{"id":4533,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4524,"src":"13816:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4531,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"13805:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13808:7:5","memberName":"getCode","nodeType":"MemberAccess","referencedDeclaration":8571,"src":"13805:10:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) view external returns (bytes memory)"}},"id":4534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13805:16:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"13781:40:5"},{"AST":{"nativeSrc":"13883:79:5","nodeType":"YulBlock","src":"13883:79:5","statements":[{"nativeSrc":"13897:55:5","nodeType":"YulAssignment","src":"13897:55:5","value":{"arguments":[{"kind":"number","nativeSrc":"13912:1:5","nodeType":"YulLiteral","src":"13912:1:5","type":"","value":"0"},{"arguments":[{"name":"bytecode","nativeSrc":"13919:8:5","nodeType":"YulIdentifier","src":"13919:8:5"},{"kind":"number","nativeSrc":"13929:4:5","nodeType":"YulLiteral","src":"13929:4:5","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13915:3:5","nodeType":"YulIdentifier","src":"13915:3:5"},"nativeSrc":"13915:19:5","nodeType":"YulFunctionCall","src":"13915:19:5"},{"arguments":[{"name":"bytecode","nativeSrc":"13942:8:5","nodeType":"YulIdentifier","src":"13942:8:5"}],"functionName":{"name":"mload","nativeSrc":"13936:5:5","nodeType":"YulIdentifier","src":"13936:5:5"},"nativeSrc":"13936:15:5","nodeType":"YulFunctionCall","src":"13936:15:5"}],"functionName":{"name":"create","nativeSrc":"13905:6:5","nodeType":"YulIdentifier","src":"13905:6:5"},"nativeSrc":"13905:47:5","nodeType":"YulFunctionCall","src":"13905:47:5"},"variableNames":[{"name":"addr","nativeSrc":"13897:4:5","nodeType":"YulIdentifier","src":"13897:4:5"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":4527,"isOffset":false,"isSlot":false,"src":"13897:4:5","valueSize":1},{"declaration":4530,"isOffset":false,"isSlot":false,"src":"13919:8:5","valueSize":1},{"declaration":4530,"isOffset":false,"isSlot":false,"src":"13942:8:5","valueSize":1}],"id":4536,"nodeType":"InlineAssembly","src":"13874:88:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4538,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4527,"src":"13980:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13996:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4540,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13988:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4539,"name":"address","nodeType":"ElementaryTypeName","src":"13988:7:5","typeDescriptions":{}}},"id":4542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13988:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13980:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473206465706c6f79436f646528737472696e67293a204465706c6f796d656e74206661696c65642e","id":4544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14000:50:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_f6ca2d254da27f2f7b444314e77be236e782a4d81876827dbe8fe7dcea90b371","typeString":"literal_string \"StdCheats deployCode(string): Deployment failed.\""},"value":"StdCheats deployCode(string): Deployment failed."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f6ca2d254da27f2f7b444314e77be236e782a4d81876827dbe8fe7dcea90b371","typeString":"literal_string \"StdCheats deployCode(string): Deployment failed.\""}],"id":4537,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13972:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13972:79:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4546,"nodeType":"ExpressionStatement","src":"13972:79:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deployCode","nameLocation":"13700:10:5","parameters":{"id":4525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4524,"mutability":"mutable","name":"what","nameLocation":"13725:4:5","nodeType":"VariableDeclaration","scope":4548,"src":"13711:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4523,"name":"string","nodeType":"ElementaryTypeName","src":"13711:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13710:20:5"},"returnParameters":{"id":4528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4527,"mutability":"mutable","name":"addr","nameLocation":"13765:4:5","nodeType":"VariableDeclaration","scope":4548,"src":"13757:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4526,"name":"address","nodeType":"ElementaryTypeName","src":"13757:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13756:14:5"},"scope":4792,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4583,"nodeType":"FunctionDefinition","src":"14120:439:5","nodes":[],"body":{"id":4582,"nodeType":"Block","src":"14232:327:5","nodes":[],"statements":[{"assignments":[4561],"declarations":[{"constant":false,"id":4561,"mutability":"mutable","name":"bytecode","nameLocation":"14255:8:5","nodeType":"VariableDeclaration","scope":4582,"src":"14242:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4560,"name":"bytes","nodeType":"ElementaryTypeName","src":"14242:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4570,"initialValue":{"arguments":[{"arguments":[{"id":4566,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4551,"src":"14294:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4564,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"14283:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14286:7:5","memberName":"getCode","nodeType":"MemberAccess","referencedDeclaration":8571,"src":"14283:10:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) view external returns (bytes memory)"}},"id":4567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14283:16:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4568,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4553,"src":"14301:4:5","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":4562,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14266:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14270:12:5","memberName":"encodePacked","nodeType":"MemberAccess","src":"14266:16:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14266:40:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"14242:64:5"},{"AST":{"nativeSrc":"14368:81:5","nodeType":"YulBlock","src":"14368:81:5","statements":[{"nativeSrc":"14382:57:5","nodeType":"YulAssignment","src":"14382:57:5","value":{"arguments":[{"name":"val","nativeSrc":"14397:3:5","nodeType":"YulIdentifier","src":"14397:3:5"},{"arguments":[{"name":"bytecode","nativeSrc":"14406:8:5","nodeType":"YulIdentifier","src":"14406:8:5"},{"kind":"number","nativeSrc":"14416:4:5","nodeType":"YulLiteral","src":"14416:4:5","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14402:3:5","nodeType":"YulIdentifier","src":"14402:3:5"},"nativeSrc":"14402:19:5","nodeType":"YulFunctionCall","src":"14402:19:5"},{"arguments":[{"name":"bytecode","nativeSrc":"14429:8:5","nodeType":"YulIdentifier","src":"14429:8:5"}],"functionName":{"name":"mload","nativeSrc":"14423:5:5","nodeType":"YulIdentifier","src":"14423:5:5"},"nativeSrc":"14423:15:5","nodeType":"YulFunctionCall","src":"14423:15:5"}],"functionName":{"name":"create","nativeSrc":"14390:6:5","nodeType":"YulIdentifier","src":"14390:6:5"},"nativeSrc":"14390:49:5","nodeType":"YulFunctionCall","src":"14390:49:5"},"variableNames":[{"name":"addr","nativeSrc":"14382:4:5","nodeType":"YulIdentifier","src":"14382:4:5"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":4558,"isOffset":false,"isSlot":false,"src":"14382:4:5","valueSize":1},{"declaration":4561,"isOffset":false,"isSlot":false,"src":"14406:8:5","valueSize":1},{"declaration":4561,"isOffset":false,"isSlot":false,"src":"14429:8:5","valueSize":1},{"declaration":4555,"isOffset":false,"isSlot":false,"src":"14397:3:5","valueSize":1}],"id":4571,"nodeType":"InlineAssembly","src":"14359:90:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4573,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4558,"src":"14467:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14483:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4575,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14475:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4574,"name":"address","nodeType":"ElementaryTypeName","src":"14475:7:5","typeDescriptions":{}}},"id":4577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14475:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14467:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473206465706c6f79436f646528737472696e672c62797465732c75696e74323536293a204465706c6f796d656e74206661696c65642e","id":4579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14487:64:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_b17e0074adb88d93215aea54607c780b63b16eef6aef31eb92005d5de3508fa0","typeString":"literal_string \"StdCheats deployCode(string,bytes,uint256): Deployment failed.\""},"value":"StdCheats deployCode(string,bytes,uint256): Deployment failed."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b17e0074adb88d93215aea54607c780b63b16eef6aef31eb92005d5de3508fa0","typeString":"literal_string \"StdCheats deployCode(string,bytes,uint256): Deployment failed.\""}],"id":4572,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14459:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14459:93:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4581,"nodeType":"ExpressionStatement","src":"14459:93:5"}]},"documentation":{"id":4549,"nodeType":"StructuredDocumentation","src":"14064:51:5","text":"@dev deploy contract with value on construction"},"implemented":true,"kind":"function","modifiers":[],"name":"deployCode","nameLocation":"14129:10:5","parameters":{"id":4556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4551,"mutability":"mutable","name":"what","nameLocation":"14154:4:5","nodeType":"VariableDeclaration","scope":4583,"src":"14140:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4550,"name":"string","nodeType":"ElementaryTypeName","src":"14140:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4553,"mutability":"mutable","name":"args","nameLocation":"14173:4:5","nodeType":"VariableDeclaration","scope":4583,"src":"14160:17:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4552,"name":"bytes","nodeType":"ElementaryTypeName","src":"14160:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4555,"mutability":"mutable","name":"val","nameLocation":"14187:3:5","nodeType":"VariableDeclaration","scope":4583,"src":"14179:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4554,"name":"uint256","nodeType":"ElementaryTypeName","src":"14179:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14139:52:5"},"returnParameters":{"id":4559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4558,"mutability":"mutable","name":"addr","nameLocation":"14226:4:5","nodeType":"VariableDeclaration","scope":4583,"src":"14218:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4557,"name":"address","nodeType":"ElementaryTypeName","src":"14218:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14217:14:5"},"scope":4792,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4611,"nodeType":"FunctionDefinition","src":"14565:390:5","nodes":[],"body":{"id":4610,"nodeType":"Block","src":"14658:297:5","nodes":[],"statements":[{"assignments":[4593],"declarations":[{"constant":false,"id":4593,"mutability":"mutable","name":"bytecode","nameLocation":"14681:8:5","nodeType":"VariableDeclaration","scope":4610,"src":"14668:21:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4592,"name":"bytes","nodeType":"ElementaryTypeName","src":"14668:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4598,"initialValue":{"arguments":[{"id":4596,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4585,"src":"14703:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4594,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"14692:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14695:7:5","memberName":"getCode","nodeType":"MemberAccess","referencedDeclaration":8571,"src":"14692:10:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) view external returns (bytes memory)"}},"id":4597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14692:16:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"14668:40:5"},{"AST":{"nativeSrc":"14770:81:5","nodeType":"YulBlock","src":"14770:81:5","statements":[{"nativeSrc":"14784:57:5","nodeType":"YulAssignment","src":"14784:57:5","value":{"arguments":[{"name":"val","nativeSrc":"14799:3:5","nodeType":"YulIdentifier","src":"14799:3:5"},{"arguments":[{"name":"bytecode","nativeSrc":"14808:8:5","nodeType":"YulIdentifier","src":"14808:8:5"},{"kind":"number","nativeSrc":"14818:4:5","nodeType":"YulLiteral","src":"14818:4:5","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14804:3:5","nodeType":"YulIdentifier","src":"14804:3:5"},"nativeSrc":"14804:19:5","nodeType":"YulFunctionCall","src":"14804:19:5"},{"arguments":[{"name":"bytecode","nativeSrc":"14831:8:5","nodeType":"YulIdentifier","src":"14831:8:5"}],"functionName":{"name":"mload","nativeSrc":"14825:5:5","nodeType":"YulIdentifier","src":"14825:5:5"},"nativeSrc":"14825:15:5","nodeType":"YulFunctionCall","src":"14825:15:5"}],"functionName":{"name":"create","nativeSrc":"14792:6:5","nodeType":"YulIdentifier","src":"14792:6:5"},"nativeSrc":"14792:49:5","nodeType":"YulFunctionCall","src":"14792:49:5"},"variableNames":[{"name":"addr","nativeSrc":"14784:4:5","nodeType":"YulIdentifier","src":"14784:4:5"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":4590,"isOffset":false,"isSlot":false,"src":"14784:4:5","valueSize":1},{"declaration":4593,"isOffset":false,"isSlot":false,"src":"14808:8:5","valueSize":1},{"declaration":4593,"isOffset":false,"isSlot":false,"src":"14831:8:5","valueSize":1},{"declaration":4587,"isOffset":false,"isSlot":false,"src":"14799:3:5","valueSize":1}],"id":4599,"nodeType":"InlineAssembly","src":"14761:90:5"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4601,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4590,"src":"14869:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14885:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14877:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4602,"name":"address","nodeType":"ElementaryTypeName","src":"14877:7:5","typeDescriptions":{}}},"id":4605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14877:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14869:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473206465706c6f79436f646528737472696e672c75696e74323536293a204465706c6f796d656e74206661696c65642e","id":4607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14889:58:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_cea3fb8155c56e1e84c027eaf19b7f987ed52f1b7ae1ee8bed46141b7ecf08d2","typeString":"literal_string \"StdCheats deployCode(string,uint256): Deployment failed.\""},"value":"StdCheats deployCode(string,uint256): Deployment failed."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cea3fb8155c56e1e84c027eaf19b7f987ed52f1b7ae1ee8bed46141b7ecf08d2","typeString":"literal_string \"StdCheats deployCode(string,uint256): Deployment failed.\""}],"id":4600,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14861:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14861:87:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4609,"nodeType":"ExpressionStatement","src":"14861:87:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deployCode","nameLocation":"14574:10:5","parameters":{"id":4588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4585,"mutability":"mutable","name":"what","nameLocation":"14599:4:5","nodeType":"VariableDeclaration","scope":4611,"src":"14585:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4584,"name":"string","nodeType":"ElementaryTypeName","src":"14585:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4587,"mutability":"mutable","name":"val","nameLocation":"14613:3:5","nodeType":"VariableDeclaration","scope":4611,"src":"14605:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4586,"name":"uint256","nodeType":"ElementaryTypeName","src":"14605:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14584:33:5"},"returnParameters":{"id":4591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4590,"mutability":"mutable","name":"addr","nameLocation":"14652:4:5","nodeType":"VariableDeclaration","scope":4611,"src":"14644:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4589,"name":"address","nodeType":"ElementaryTypeName","src":"14644:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14643:14:5"},"scope":4792,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4647,"nodeType":"FunctionDefinition","src":"15028:242:5","nodes":[],"body":{"id":4646,"nodeType":"Block","src":"15132:138:5","nodes":[],"statements":[{"expression":{"id":4630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4620,"name":"privateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4618,"src":"15142:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":4626,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4613,"src":"15190:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4624,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15173:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15177:12:5","memberName":"encodePacked","nodeType":"MemberAccess","src":"15173:16:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15173:22:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4623,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15163:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15163:33:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15155:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4621,"name":"uint256","nodeType":"ElementaryTypeName","src":"15155:7:5","typeDescriptions":{}}},"id":4629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15155:42:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15142:55:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4631,"nodeType":"ExpressionStatement","src":"15142:55:5"},{"expression":{"id":4637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4632,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4616,"src":"15207:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4635,"name":"privateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4618,"src":"15222:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4633,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"15214:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15217:4:5","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":8255,"src":"15214:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":4636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15214:19:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15207:26:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4638,"nodeType":"ExpressionStatement","src":"15207:26:5"},{"expression":{"arguments":[{"id":4642,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4616,"src":"15252:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4643,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4613,"src":"15258:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4639,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"15243:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15246:5:5","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":8585,"src":"15243:8:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":4644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15243:20:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4645,"nodeType":"ExpressionStatement","src":"15243:20:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"makeAddrAndKey","nameLocation":"15037:14:5","parameters":{"id":4614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4613,"mutability":"mutable","name":"name","nameLocation":"15066:4:5","nodeType":"VariableDeclaration","scope":4647,"src":"15052:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4612,"name":"string","nodeType":"ElementaryTypeName","src":"15052:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15051:20:5"},"returnParameters":{"id":4619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4616,"mutability":"mutable","name":"addr","nameLocation":"15106:4:5","nodeType":"VariableDeclaration","scope":4647,"src":"15098:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4615,"name":"address","nodeType":"ElementaryTypeName","src":"15098:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4618,"mutability":"mutable","name":"privateKey","nameLocation":"15120:10:5","nodeType":"VariableDeclaration","scope":4647,"src":"15112:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4617,"name":"uint256","nodeType":"ElementaryTypeName","src":"15112:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15097:34:5"},"scope":4792,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4662,"nodeType":"FunctionDefinition","src":"15309:125:5","nodes":[],"body":{"id":4661,"nodeType":"Block","src":"15387:47:5","nodes":[],"statements":[{"expression":{"id":4659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":4654,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4652,"src":"15398:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},null],"id":4655,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"15397:7:5","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$__$","typeString":"tuple(address,)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4657,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4649,"src":"15422:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4656,"name":"makeAddrAndKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4647,"src":"15407:14:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_address_$_t_uint256_$","typeString":"function (string memory) returns (address,uint256)"}},"id":4658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15407:20:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"src":"15397:30:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4660,"nodeType":"ExpressionStatement","src":"15397:30:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"makeAddr","nameLocation":"15318:8:5","parameters":{"id":4650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4649,"mutability":"mutable","name":"name","nameLocation":"15341:4:5","nodeType":"VariableDeclaration","scope":4662,"src":"15327:18:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4648,"name":"string","nodeType":"ElementaryTypeName","src":"15327:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15326:20:5"},"returnParameters":{"id":4653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4652,"mutability":"mutable","name":"addr","nameLocation":"15381:4:5","nodeType":"VariableDeclaration","scope":4662,"src":"15373:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4651,"name":"address","nodeType":"ElementaryTypeName","src":"15373:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15372:14:5"},"scope":4792,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4689,"nodeType":"FunctionDefinition","src":"15440:253:5","nodes":[],"body":{"id":4688,"nodeType":"Block","src":"15592:101:5","nodes":[],"statements":[{"expression":{"id":4679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4673,"name":"privateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4671,"src":"15602:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4676,"name":"mnemonic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4664,"src":"15628:8:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4677,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4666,"src":"15638:5:5","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"id":4674,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"15615:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15618:9:5","memberName":"deriveKey","nodeType":"MemberAccess","referencedDeclaration":8782,"src":"15615:12:5","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_uint32_$returns$_t_uint256_$","typeString":"function (string memory,uint32) pure external returns (uint256)"}},"id":4678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15615:29:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15602:42:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4680,"nodeType":"ExpressionStatement","src":"15602:42:5"},{"expression":{"id":4686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4681,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4669,"src":"15654:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4684,"name":"privateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4671,"src":"15675:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4682,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"15660:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15663:11:5","memberName":"rememberKey","nodeType":"MemberAccess","referencedDeclaration":8800,"src":"15660:14:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) external returns (address)"}},"id":4685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15660:26:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15654:32:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4687,"nodeType":"ExpressionStatement","src":"15654:32:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deriveRememberKey","nameLocation":"15449:17:5","parameters":{"id":4667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4664,"mutability":"mutable","name":"mnemonic","nameLocation":"15481:8:5","nodeType":"VariableDeclaration","scope":4689,"src":"15467:22:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4663,"name":"string","nodeType":"ElementaryTypeName","src":"15467:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4666,"mutability":"mutable","name":"index","nameLocation":"15498:5:5","nodeType":"VariableDeclaration","scope":4689,"src":"15491:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":4665,"name":"uint32","nodeType":"ElementaryTypeName","src":"15491:6:5","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"15466:38:5"},"returnParameters":{"id":4672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4669,"mutability":"mutable","name":"who","nameLocation":"15563:3:5","nodeType":"VariableDeclaration","scope":4689,"src":"15555:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4668,"name":"address","nodeType":"ElementaryTypeName","src":"15555:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4671,"mutability":"mutable","name":"privateKey","nameLocation":"15576:10:5","nodeType":"VariableDeclaration","scope":4689,"src":"15568:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4670,"name":"uint256","nodeType":"ElementaryTypeName","src":"15568:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15554:33:5"},"scope":4792,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4723,"nodeType":"FunctionDefinition","src":"15699:253:5","nodes":[],"body":{"id":4722,"nodeType":"Block","src":"15768:184:5","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4697,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4691,"src":"15786:1:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15788:6:5","memberName":"length","nodeType":"MemberAccess","src":"15786:8:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3332","id":4699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15798:2:5","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"15786:14:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473205f6279746573546f55696e74286279746573293a204279746573206c656e67746820657863656564732033322e","id":4701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15802:57:5","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4b692fb570df93e970ec8540fb3e2b3774022687951840fb5414e81f7899b71","typeString":"literal_string \"StdCheats _bytesToUint(bytes): Bytes length exceeds 32.\""},"value":"StdCheats _bytesToUint(bytes): Bytes length exceeds 32."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b4b692fb570df93e970ec8540fb3e2b3774022687951840fb5414e81f7899b71","typeString":"literal_string \"StdCheats _bytesToUint(bytes): Bytes length exceeds 32.\""}],"id":4696,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15778:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15778:82:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4703,"nodeType":"ExpressionStatement","src":"15778:82:5"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":4710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15915:2:5","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":4711,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4691,"src":"15920:1:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15922:6:5","memberName":"length","nodeType":"MemberAccess","src":"15920:8:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15915:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15905:9:5","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":4708,"name":"bytes","nodeType":"ElementaryTypeName","src":"15909:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":4714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15905:24:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4715,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4691,"src":"15931:1:5","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":4706,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15888:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4707,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15892:12:5","memberName":"encodePacked","nodeType":"MemberAccess","src":"15888:16:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15888:45:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":4718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15936:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4717,"name":"uint256","nodeType":"ElementaryTypeName","src":"15936:7:5","typeDescriptions":{}}}],"id":4719,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"15935:9:5","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":4704,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15877:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15881:6:5","memberName":"decode","nodeType":"MemberAccess","src":"15877:10:5","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15877:68:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4695,"id":4721,"nodeType":"Return","src":"15870:75:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_bytesToUint","nameLocation":"15708:12:5","parameters":{"id":4692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4691,"mutability":"mutable","name":"b","nameLocation":"15734:1:5","nodeType":"VariableDeclaration","scope":4723,"src":"15721:14:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4690,"name":"bytes","nodeType":"ElementaryTypeName","src":"15721:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15720:16:5"},"returnParameters":{"id":4695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4694,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4723,"src":"15759:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4693,"name":"uint256","nodeType":"ElementaryTypeName","src":"15759:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15758:9:5"},"scope":4792,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":4744,"nodeType":"FunctionDefinition","src":"15958:155:5","nodes":[],"body":{"id":4743,"nodeType":"Block","src":"16015:98:5","nodes":[],"statements":[{"clauses":[{"block":{"id":4735,"nodeType":"Block","src":"16045:38:5","statements":[{"expression":{"id":4733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4731,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4726,"src":"16059:6:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16068:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"16059:13:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4734,"nodeType":"ExpressionStatement","src":"16059:13:5"}]},"errorName":"","id":4736,"nodeType":"TryCatchClause","src":"16045:38:5"},{"block":{"id":4740,"nodeType":"Block","src":"16105:2:5","statements":[]},"errorName":"","id":4741,"nodeType":"TryCatchClause","parameters":{"id":4739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4738,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4741,"src":"16091:12:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4737,"name":"bytes","nodeType":"ElementaryTypeName","src":"16091:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16090:14:5"},"src":"16084:23:5"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4728,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"16029:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16032:10:5","memberName":"activeFork","nodeType":"MemberAccess","referencedDeclaration":9265,"src":"16029:13:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":4730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16029:15:5","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4742,"nodeType":"TryStatement","src":"16025:82:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isFork","nameLocation":"15967:6:5","parameters":{"id":4724,"nodeType":"ParameterList","parameters":[],"src":"15973:2:5"},"returnParameters":{"id":4727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4726,"mutability":"mutable","name":"status","nameLocation":"16007:6:5","nodeType":"VariableDeclaration","scope":4744,"src":"16002:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4725,"name":"bool","nodeType":"ElementaryTypeName","src":"16002:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16001:13:5"},"scope":4792,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4753,"nodeType":"ModifierDefinition","src":"16119:84:5","nodes":[],"body":{"id":4752,"nodeType":"Block","src":"16146:57:5","nodes":[],"statements":[{"condition":{"id":4748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16160:9:5","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":4746,"name":"isFork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4744,"src":"16161:6:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_bool_$","typeString":"function () returns (bool)"}},"id":4747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16161:8:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4751,"nodeType":"IfStatement","src":"16156:41:5","trueBody":{"id":4750,"nodeType":"Block","src":"16171:26:5","statements":[{"id":4749,"nodeType":"PlaceholderStatement","src":"16185:1:5"}]}}]},"name":"skipWhenForking","nameLocation":"16128:15:5","parameters":{"id":4745,"nodeType":"ParameterList","parameters":[],"src":"16143:2:5"},"virtual":false,"visibility":"internal"},{"id":4761,"nodeType":"ModifierDefinition","src":"16209:86:5","nodes":[],"body":{"id":4760,"nodeType":"Block","src":"16239:56:5","nodes":[],"statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":4755,"name":"isFork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4744,"src":"16253:6:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_bool_$","typeString":"function () returns (bool)"}},"id":4756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16253:8:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4759,"nodeType":"IfStatement","src":"16249:40:5","trueBody":{"id":4758,"nodeType":"Block","src":"16263:26:5","statements":[{"id":4757,"nodeType":"PlaceholderStatement","src":"16277:1:5"}]}}]},"name":"skipWhenNotForking","nameLocation":"16218:18:5","parameters":{"id":4754,"nodeType":"ParameterList","parameters":[],"src":"16236:2:5"},"virtual":false,"visibility":"internal"},{"id":4791,"nodeType":"ModifierDefinition","src":"16301:884:5","nodes":[],"body":{"id":4790,"nodeType":"Block","src":"16326:859:5","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4763,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"16336:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16339:16:5","memberName":"pauseGasMetering","nodeType":"MemberAccess","referencedDeclaration":9023,"src":"16336:19:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":4766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16336:21:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4767,"nodeType":"ExpressionStatement","src":"16336:21:5"},{"assignments":[4769],"declarations":[{"constant":false,"id":4769,"mutability":"mutable","name":"gasStartedOff","nameLocation":"16900:13:5","nodeType":"VariableDeclaration","scope":4790,"src":"16895:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4768,"name":"bool","nodeType":"ElementaryTypeName","src":"16895:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":4771,"initialValue":{"id":4770,"name":"gasMeteringOff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"16916:14:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"16895:35:5"},{"expression":{"id":4774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4772,"name":"gasMeteringOff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"16940:14:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16957:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"16940:21:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4775,"nodeType":"ExpressionStatement","src":"16940:21:5"},{"id":4776,"nodeType":"PlaceholderStatement","src":"16972:1:5"},{"condition":{"id":4778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17080:14:5","subExpression":{"id":4777,"name":"gasStartedOff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4769,"src":"17081:13:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4789,"nodeType":"IfStatement","src":"17076:103:5","trueBody":{"id":4788,"nodeType":"Block","src":"17096:83:5","statements":[{"expression":{"id":4781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4779,"name":"gasMeteringOff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3271,"src":"17110:14:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":4780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17127:5:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"17110:22:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4782,"nodeType":"ExpressionStatement","src":"17110:22:5"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4783,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3269,"src":"17146:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17149:17:5","memberName":"resumeGasMetering","nodeType":"MemberAccess","referencedDeclaration":9026,"src":"17146:20:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":4786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17146:22:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4787,"nodeType":"ExpressionStatement","src":"17146:22:5"}]}}]},"name":"noGasMetering","nameLocation":"16310:13:5","parameters":{"id":4762,"nodeType":"ParameterList","parameters":[],"src":"16323:2:5"},"virtual":false,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"StdCheatsSafe","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[4792],"name":"StdCheatsSafe","nameLocation":"205:13:5","scope":5182,"usedErrors":[],"usedEvents":[]},{"id":5181,"nodeType":"ContractDefinition","src":"17237:3156:5","nodes":[{"id":4798,"nodeType":"UsingForDirective","src":"17288:32:5","nodes":[],"global":false,"libraryName":{"id":4795,"name":"stdStorage","nameLocations":["17294:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":7522,"src":"17294:10:5"},"typeName":{"id":4797,"nodeType":"UserDefinedTypeName","pathNode":{"id":4796,"name":"StdStorage","nameLocations":["17309:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"17309:10:5"},"referencedDeclaration":6088,"src":"17309:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}}},{"id":4801,"nodeType":"VariableDeclaration","src":"17326:27:5","nodes":[],"constant":false,"mutability":"mutable","name":"stdstore","nameLocation":"17345:8:5","scope":5181,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage","typeString":"struct StdStorage"},"typeName":{"id":4800,"nodeType":"UserDefinedTypeName","pathNode":{"id":4799,"name":"StdStorage","nameLocations":["17326:10:5"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"17326:10:5"},"referencedDeclaration":6088,"src":"17326:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"private"},{"id":4818,"nodeType":"VariableDeclaration","src":"17359:84:5","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"17379:2:5","scope":5181,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"},"typeName":{"id":4803,"nodeType":"UserDefinedTypeName","pathNode":{"id":4802,"name":"Vm","nameLocations":["17359:2:5"],"nodeType":"IdentifierPath","referencedDeclaration":9352,"src":"17359:2:5"},"referencedDeclaration":9352,"src":"17359:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":4812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17421:17:5","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":4811,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17411:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17411:28:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17403:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4809,"name":"uint256","nodeType":"ElementaryTypeName","src":"17403:7:5","typeDescriptions":{}}},"id":4814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17403:37:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17395:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4807,"name":"uint160","nodeType":"ElementaryTypeName","src":"17395:7:5","typeDescriptions":{}}},"id":4815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17395:46:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4806,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17387:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4805,"name":"address","nodeType":"ElementaryTypeName","src":"17387:7:5","typeDescriptions":{}}},"id":4816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17387:55:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4804,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9352,"src":"17384:2:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$9352_$","typeString":"type(contract Vm)"}},"id":4817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17384:59:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"visibility":"private"},{"id":4833,"nodeType":"FunctionDefinition","src":"17520:93:5","nodes":[],"body":{"id":4832,"nodeType":"Block","src":"17565:48:5","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4826,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"17583:5:5","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17589:9:5","memberName":"timestamp","nodeType":"MemberAccess","src":"17583:15:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":4828,"name":"time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"17601:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17583:22:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4823,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"17575:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17578:4:5","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":9034,"src":"17575:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":4830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17575:31:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4831,"nodeType":"ExpressionStatement","src":"17575:31:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"skip","nameLocation":"17529:4:5","parameters":{"id":4821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4820,"mutability":"mutable","name":"time","nameLocation":"17542:4:5","nodeType":"VariableDeclaration","scope":4833,"src":"17534:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4819,"name":"uint256","nodeType":"ElementaryTypeName","src":"17534:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17533:14:5"},"returnParameters":{"id":4822,"nodeType":"ParameterList","parameters":[],"src":"17565:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4848,"nodeType":"FunctionDefinition","src":"17619:95:5","nodes":[],"body":{"id":4847,"nodeType":"Block","src":"17666:48:5","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4841,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"17684:5:5","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17690:9:5","memberName":"timestamp","nodeType":"MemberAccess","src":"17684:15:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":4843,"name":"time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4835,"src":"17702:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17684:22:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4838,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"17676:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17679:4:5","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":9034,"src":"17676:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":4845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17676:31:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4846,"nodeType":"ExpressionStatement","src":"17676:31:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rewind","nameLocation":"17628:6:5","parameters":{"id":4836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4835,"mutability":"mutable","name":"time","nameLocation":"17643:4:5","nodeType":"VariableDeclaration","scope":4848,"src":"17635:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4834,"name":"uint256","nodeType":"ElementaryTypeName","src":"17635:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17634:14:5"},"returnParameters":{"id":4837,"nodeType":"ParameterList","parameters":[],"src":"17666:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4869,"nodeType":"FunctionDefinition","src":"17777:106:5","nodes":[],"body":{"id":4868,"nodeType":"Block","src":"17821:62:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":4856,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4850,"src":"17839:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":4859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17844:1:5","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":4858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17849:3:5","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"17844:8:5","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}],"expression":{"id":4853,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"17831:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17834:4:5","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"17831:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":4860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17831:22:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4861,"nodeType":"ExpressionStatement","src":"17831:22:5"},{"expression":{"arguments":[{"id":4865,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4850,"src":"17872:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4862,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"17863:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17866:5:5","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":9075,"src":"17863:8:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":4866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17863:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4867,"nodeType":"ExpressionStatement","src":"17863:13:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"hoax","nameLocation":"17786:4:5","parameters":{"id":4851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4850,"mutability":"mutable","name":"who","nameLocation":"17799:3:5","nodeType":"VariableDeclaration","scope":4869,"src":"17791:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4849,"name":"address","nodeType":"ElementaryTypeName","src":"17791:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17790:13:5"},"returnParameters":{"id":4852,"nodeType":"ParameterList","parameters":[],"src":"17821:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4890,"nodeType":"FunctionDefinition","src":"17889:116:5","nodes":[],"body":{"id":4889,"nodeType":"Block","src":"17947:58:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":4879,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4871,"src":"17965:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4880,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4873,"src":"17970:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4876,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"17957:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17960:4:5","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"17957:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":4881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17957:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4882,"nodeType":"ExpressionStatement","src":"17957:18:5"},{"expression":{"arguments":[{"id":4886,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4871,"src":"17994:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4883,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"17985:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17988:5:5","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":9075,"src":"17985:8:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":4887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17985:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4888,"nodeType":"ExpressionStatement","src":"17985:13:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"hoax","nameLocation":"17898:4:5","parameters":{"id":4874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4871,"mutability":"mutable","name":"who","nameLocation":"17911:3:5","nodeType":"VariableDeclaration","scope":4890,"src":"17903:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4870,"name":"address","nodeType":"ElementaryTypeName","src":"17903:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4873,"mutability":"mutable","name":"give","nameLocation":"17924:4:5","nodeType":"VariableDeclaration","scope":4890,"src":"17916:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4872,"name":"uint256","nodeType":"ElementaryTypeName","src":"17916:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17902:27:5"},"returnParameters":{"id":4875,"nodeType":"ParameterList","parameters":[],"src":"17947:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4914,"nodeType":"FunctionDefinition","src":"18011:130:5","nodes":[],"body":{"id":4913,"nodeType":"Block","src":"18071:70:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":4900,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4892,"src":"18089:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":4903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18094:1:5","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":4902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18099:3:5","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"18094:8:5","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}],"expression":{"id":4897,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18081:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18084:4:5","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"18081:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":4904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18081:22:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4905,"nodeType":"ExpressionStatement","src":"18081:22:5"},{"expression":{"arguments":[{"id":4909,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4892,"src":"18122:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4910,"name":"origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4894,"src":"18127:6:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4906,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18113:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18116:5:5","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":9087,"src":"18113:8:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":4911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18113:21:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4912,"nodeType":"ExpressionStatement","src":"18113:21:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"hoax","nameLocation":"18020:4:5","parameters":{"id":4895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4892,"mutability":"mutable","name":"who","nameLocation":"18033:3:5","nodeType":"VariableDeclaration","scope":4914,"src":"18025:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4891,"name":"address","nodeType":"ElementaryTypeName","src":"18025:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4894,"mutability":"mutable","name":"origin","nameLocation":"18046:6:5","nodeType":"VariableDeclaration","scope":4914,"src":"18038:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4893,"name":"address","nodeType":"ElementaryTypeName","src":"18038:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18024:29:5"},"returnParameters":{"id":4896,"nodeType":"ParameterList","parameters":[],"src":"18071:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4938,"nodeType":"FunctionDefinition","src":"18147:140:5","nodes":[],"body":{"id":4937,"nodeType":"Block","src":"18221:66:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":4926,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4916,"src":"18239:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4927,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4920,"src":"18244:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4923,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18231:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18234:4:5","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"18231:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":4928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18231:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4929,"nodeType":"ExpressionStatement","src":"18231:18:5"},{"expression":{"arguments":[{"id":4933,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4916,"src":"18268:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4934,"name":"origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4918,"src":"18273:6:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4930,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18259:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18262:5:5","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":9087,"src":"18259:8:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":4935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18259:21:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4936,"nodeType":"ExpressionStatement","src":"18259:21:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"hoax","nameLocation":"18156:4:5","parameters":{"id":4921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4916,"mutability":"mutable","name":"who","nameLocation":"18169:3:5","nodeType":"VariableDeclaration","scope":4938,"src":"18161:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4915,"name":"address","nodeType":"ElementaryTypeName","src":"18161:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4918,"mutability":"mutable","name":"origin","nameLocation":"18182:6:5","nodeType":"VariableDeclaration","scope":4938,"src":"18174:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4917,"name":"address","nodeType":"ElementaryTypeName","src":"18174:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4920,"mutability":"mutable","name":"give","nameLocation":"18198:4:5","nodeType":"VariableDeclaration","scope":4938,"src":"18190:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4919,"name":"uint256","nodeType":"ElementaryTypeName","src":"18190:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18160:43:5"},"returnParameters":{"id":4922,"nodeType":"ParameterList","parameters":[],"src":"18221:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4959,"nodeType":"FunctionDefinition","src":"18358:116:5","nodes":[],"body":{"id":4958,"nodeType":"Block","src":"18407:67:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":4946,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4940,"src":"18425:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":4949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18430:1:5","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":4948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18435:3:5","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"18430:8:5","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}],"expression":{"id":4943,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18417:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18420:4:5","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"18417:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":4950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18417:22:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4951,"nodeType":"ExpressionStatement","src":"18417:22:5"},{"expression":{"arguments":[{"id":4955,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4940,"src":"18463:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4952,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18449:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18452:10:5","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":9080,"src":"18449:13:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":4956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18449:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4957,"nodeType":"ExpressionStatement","src":"18449:18:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"startHoax","nameLocation":"18367:9:5","parameters":{"id":4941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4940,"mutability":"mutable","name":"who","nameLocation":"18385:3:5","nodeType":"VariableDeclaration","scope":4959,"src":"18377:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4939,"name":"address","nodeType":"ElementaryTypeName","src":"18377:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18376:13:5"},"returnParameters":{"id":4942,"nodeType":"ParameterList","parameters":[],"src":"18407:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4980,"nodeType":"FunctionDefinition","src":"18480:126:5","nodes":[],"body":{"id":4979,"nodeType":"Block","src":"18543:63:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":4969,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4961,"src":"18561:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4970,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4963,"src":"18566:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4966,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18553:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18556:4:5","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"18553:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":4971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18553:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4972,"nodeType":"ExpressionStatement","src":"18553:18:5"},{"expression":{"arguments":[{"id":4976,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4961,"src":"18595:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4973,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18581:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18584:10:5","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":9080,"src":"18581:13:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":4977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18581:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4978,"nodeType":"ExpressionStatement","src":"18581:18:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"startHoax","nameLocation":"18489:9:5","parameters":{"id":4964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4961,"mutability":"mutable","name":"who","nameLocation":"18507:3:5","nodeType":"VariableDeclaration","scope":4980,"src":"18499:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4960,"name":"address","nodeType":"ElementaryTypeName","src":"18499:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4963,"mutability":"mutable","name":"give","nameLocation":"18520:4:5","nodeType":"VariableDeclaration","scope":4980,"src":"18512:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4962,"name":"uint256","nodeType":"ElementaryTypeName","src":"18512:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18498:27:5"},"returnParameters":{"id":4965,"nodeType":"ParameterList","parameters":[],"src":"18543:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5004,"nodeType":"FunctionDefinition","src":"18725:140:5","nodes":[],"body":{"id":5003,"nodeType":"Block","src":"18790:75:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":4990,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4982,"src":"18808:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":4993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18813:1:5","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":4992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18818:3:5","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"18813:8:5","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}],"expression":{"id":4987,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18800:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18803:4:5","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"18800:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":4994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18800:22:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4995,"nodeType":"ExpressionStatement","src":"18800:22:5"},{"expression":{"arguments":[{"id":4999,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4982,"src":"18846:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5000,"name":"origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4984,"src":"18851:6:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4996,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18832:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":4998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18835:10:5","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":9094,"src":"18832:13:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":5001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18832:26:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5002,"nodeType":"ExpressionStatement","src":"18832:26:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"startHoax","nameLocation":"18734:9:5","parameters":{"id":4985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4982,"mutability":"mutable","name":"who","nameLocation":"18752:3:5","nodeType":"VariableDeclaration","scope":5004,"src":"18744:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4981,"name":"address","nodeType":"ElementaryTypeName","src":"18744:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4984,"mutability":"mutable","name":"origin","nameLocation":"18765:6:5","nodeType":"VariableDeclaration","scope":5004,"src":"18757:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4983,"name":"address","nodeType":"ElementaryTypeName","src":"18757:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18743:29:5"},"returnParameters":{"id":4986,"nodeType":"ParameterList","parameters":[],"src":"18790:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5028,"nodeType":"FunctionDefinition","src":"18871:150:5","nodes":[],"body":{"id":5027,"nodeType":"Block","src":"18950:71:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":5016,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5006,"src":"18968:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5017,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5010,"src":"18973:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5013,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18960:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":5015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18963:4:5","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"18960:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18960:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5019,"nodeType":"ExpressionStatement","src":"18960:18:5"},{"expression":{"arguments":[{"id":5023,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5006,"src":"19002:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5024,"name":"origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5008,"src":"19007:6:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5020,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"18988:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":5022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18991:10:5","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":9094,"src":"18988:13:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":5025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18988:26:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5026,"nodeType":"ExpressionStatement","src":"18988:26:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"startHoax","nameLocation":"18880:9:5","parameters":{"id":5011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5006,"mutability":"mutable","name":"who","nameLocation":"18898:3:5","nodeType":"VariableDeclaration","scope":5028,"src":"18890:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5005,"name":"address","nodeType":"ElementaryTypeName","src":"18890:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5008,"mutability":"mutable","name":"origin","nameLocation":"18911:6:5","nodeType":"VariableDeclaration","scope":5028,"src":"18903:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5007,"name":"address","nodeType":"ElementaryTypeName","src":"18903:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5010,"mutability":"mutable","name":"give","nameLocation":"18927:4:5","nodeType":"VariableDeclaration","scope":5028,"src":"18919:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5009,"name":"uint256","nodeType":"ElementaryTypeName","src":"18919:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18889:43:5"},"returnParameters":{"id":5012,"nodeType":"ParameterList","parameters":[],"src":"18950:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5045,"nodeType":"FunctionDefinition","src":"19027:110:5","nodes":[],"body":{"id":5044,"nodeType":"Block","src":"19078:59:5","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5033,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"19088:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":5035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19091:9:5","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":9097,"src":"19088:12:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":5036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19088:14:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5037,"nodeType":"ExpressionStatement","src":"19088:14:5"},{"expression":{"arguments":[{"id":5041,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5030,"src":"19126:3:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5038,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"19112:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":5040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19115:10:5","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":9080,"src":"19112:13:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19112:18:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5043,"nodeType":"ExpressionStatement","src":"19112:18:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"changePrank","nameLocation":"19036:11:5","parameters":{"id":5031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5030,"mutability":"mutable","name":"who","nameLocation":"19056:3:5","nodeType":"VariableDeclaration","scope":5045,"src":"19048:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5029,"name":"address","nodeType":"ElementaryTypeName","src":"19048:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19047:13:5"},"returnParameters":{"id":5032,"nodeType":"ParameterList","parameters":[],"src":"19078:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5060,"nodeType":"FunctionDefinition","src":"19228:91:5","nodes":[],"body":{"id":5059,"nodeType":"Block","src":"19285:34:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":5055,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5047,"src":"19303:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5056,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5049,"src":"19307:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5052,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4818,"src":"19295:2:5","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":5054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19298:4:5","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":9104,"src":"19295:7:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19295:17:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5058,"nodeType":"ExpressionStatement","src":"19295:17:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deal","nameLocation":"19237:4:5","parameters":{"id":5050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5047,"mutability":"mutable","name":"to","nameLocation":"19250:2:5","nodeType":"VariableDeclaration","scope":5060,"src":"19242:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5046,"name":"address","nodeType":"ElementaryTypeName","src":"19242:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5049,"mutability":"mutable","name":"give","nameLocation":"19262:4:5","nodeType":"VariableDeclaration","scope":5060,"src":"19254:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5048,"name":"uint256","nodeType":"ElementaryTypeName","src":"19254:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19241:26:5"},"returnParameters":{"id":5051,"nodeType":"ParameterList","parameters":[],"src":"19285:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5077,"nodeType":"FunctionDefinition","src":"19443:117:5","nodes":[],"body":{"id":5076,"nodeType":"Block","src":"19515:45:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":5070,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5062,"src":"19530:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5071,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5064,"src":"19537:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5072,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5066,"src":"19541:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":5073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19547:5:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5069,"name":"deal","nodeType":"Identifier","overloadedDeclarations":[5060,5077,5180],"referencedDeclaration":5180,"src":"19525:4:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,address,uint256,bool)"}},"id":5074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19525:28:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5075,"nodeType":"ExpressionStatement","src":"19525:28:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deal","nameLocation":"19452:4:5","parameters":{"id":5067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5062,"mutability":"mutable","name":"token","nameLocation":"19465:5:5","nodeType":"VariableDeclaration","scope":5077,"src":"19457:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5061,"name":"address","nodeType":"ElementaryTypeName","src":"19457:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5064,"mutability":"mutable","name":"to","nameLocation":"19480:2:5","nodeType":"VariableDeclaration","scope":5077,"src":"19472:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5063,"name":"address","nodeType":"ElementaryTypeName","src":"19472:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5066,"mutability":"mutable","name":"give","nameLocation":"19492:4:5","nodeType":"VariableDeclaration","scope":5077,"src":"19484:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5065,"name":"uint256","nodeType":"ElementaryTypeName","src":"19484:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19456:41:5"},"returnParameters":{"id":5068,"nodeType":"ParameterList","parameters":[],"src":"19515:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5180,"nodeType":"FunctionDefinition","src":"19566:825:5","nodes":[],"body":{"id":5179,"nodeType":"Block","src":"19651:740:5","nodes":[],"statements":[{"assignments":[null,5089],"declarations":[null,{"constant":false,"id":5089,"mutability":"mutable","name":"balData","nameLocation":"19708:7:5","nodeType":"VariableDeclaration","scope":5179,"src":"19695:20:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5088,"name":"bytes","nodeType":"ElementaryTypeName","src":"19695:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5098,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783730613038323331","id":5094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19753:10:5","typeDescriptions":{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},"value":"0x70a08231"},{"id":5095,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5081,"src":"19765:2:5","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":5092,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19730:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19734:18:5","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"19730:22:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19730:38:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5090,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5079,"src":"19719:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19725:4:5","memberName":"call","nodeType":"MemberAccess","src":"19719:10:5","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":5097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19719:50:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"19692:77:5"},{"assignments":[5100],"declarations":[{"constant":false,"id":5100,"mutability":"mutable","name":"prevBal","nameLocation":"19787:7:5","nodeType":"VariableDeclaration","scope":5179,"src":"19779:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5099,"name":"uint256","nodeType":"ElementaryTypeName","src":"19779:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5108,"initialValue":{"arguments":[{"id":5103,"name":"balData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5089,"src":"19808:7:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19818:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5104,"name":"uint256","nodeType":"ElementaryTypeName","src":"19818:7:5","typeDescriptions":{}}}],"id":5106,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19817:9:5","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":5101,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19797:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19801:6:5","memberName":"decode","nodeType":"MemberAccess","src":"19797:10:5","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19797:30:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19779:48:5"},{"expression":{"arguments":[{"id":5121,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5083,"src":"19930:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":5118,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5081,"src":"19912:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"hexValue":"30783730613038323331","id":5115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19891:10:5","typeDescriptions":{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},"value":"0x70a08231"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"}],"expression":{"arguments":[{"id":5112,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5079,"src":"19880:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5109,"name":"stdstore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4801,"src":"19864:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage","typeString":"struct StdStorage storage ref"}},"id":5111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19873:6:5","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":7043,"src":"19864:15:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$attached_to$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":5113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19864:22:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":5114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19887:3:5","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":7061,"src":"19864:26:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$attached_to$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"}},"id":5116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19864:38:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":5117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19903:8:5","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":7097,"src":"19864:47:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$attached_to$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":5119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19864:51:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":5120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19916:13:5","memberName":"checked_write","nodeType":"MemberAccess","referencedDeclaration":7191,"src":"19864:65:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256)"}},"id":5122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19864:71:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5123,"nodeType":"ExpressionStatement","src":"19864:71:5"},{"condition":{"id":5124,"name":"adjust","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5085,"src":"19981:6:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5178,"nodeType":"IfStatement","src":"19977:408:5","trueBody":{"id":5177,"nodeType":"Block","src":"19989:396:5","statements":[{"assignments":[null,5126],"declarations":[null,{"constant":false,"id":5126,"mutability":"mutable","name":"totSupData","nameLocation":"20019:10:5","nodeType":"VariableDeclaration","scope":5177,"src":"20006:23:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5125,"name":"bytes","nodeType":"ElementaryTypeName","src":"20006:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5134,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783138313630646464","id":5131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20067:10:5","typeDescriptions":{"typeIdentifier":"t_rational_404098525_by_1","typeString":"int_const 404098525"},"value":"0x18160ddd"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_404098525_by_1","typeString":"int_const 404098525"}],"expression":{"id":5129,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20044:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20048:18:5","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"20044:22:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20044:34:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5127,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5079,"src":"20033:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20039:4:5","memberName":"call","nodeType":"MemberAccess","src":"20033:10:5","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":5133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20033:46:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"20003:76:5"},{"assignments":[5136],"declarations":[{"constant":false,"id":5136,"mutability":"mutable","name":"totSup","nameLocation":"20101:6:5","nodeType":"VariableDeclaration","scope":5177,"src":"20093:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5135,"name":"uint256","nodeType":"ElementaryTypeName","src":"20093:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5144,"initialValue":{"arguments":[{"id":5139,"name":"totSupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5126,"src":"20121:10:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20134:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5140,"name":"uint256","nodeType":"ElementaryTypeName","src":"20134:7:5","typeDescriptions":{}}}],"id":5142,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20133:9:5","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":5137,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20110:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20114:6:5","memberName":"decode","nodeType":"MemberAccess","src":"20110:10:5","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20110:33:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20093:50:5"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5145,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5083,"src":"20161:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5146,"name":"prevBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5100,"src":"20168:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20161:14:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5163,"nodeType":"Block","src":"20242:59:5","statements":[{"expression":{"id":5161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5156,"name":"totSup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5136,"src":"20260:6:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5157,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5083,"src":"20271:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5158,"name":"prevBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5100,"src":"20278:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20271:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5160,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20270:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20260:26:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5162,"nodeType":"ExpressionStatement","src":"20260:26:5"}]},"id":5164,"nodeType":"IfStatement","src":"20157:144:5","trueBody":{"id":5155,"nodeType":"Block","src":"20177:59:5","statements":[{"expression":{"id":5153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5148,"name":"totSup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5136,"src":"20195:6:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5149,"name":"prevBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5100,"src":"20206:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5150,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5083,"src":"20216:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20206:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5152,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20205:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20195:26:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5154,"nodeType":"ExpressionStatement","src":"20195:26:5"}]}},{"expression":{"arguments":[{"id":5174,"name":"totSup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5136,"src":"20367:6:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"hexValue":"30783138313630646464","id":5171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20341:10:5","typeDescriptions":{"typeIdentifier":"t_rational_404098525_by_1","typeString":"int_const 404098525"},"value":"0x18160ddd"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_404098525_by_1","typeString":"int_const 404098525"}],"expression":{"arguments":[{"id":5168,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5079,"src":"20330:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5165,"name":"stdstore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4801,"src":"20314:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage","typeString":"struct StdStorage storage ref"}},"id":5167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20323:6:5","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":7043,"src":"20314:15:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$attached_to$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":5169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20314:22:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":5170,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20337:3:5","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":7061,"src":"20314:26:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$attached_to$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"}},"id":5172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20314:38:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":5173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20353:13:5","memberName":"checked_write","nodeType":"MemberAccess","referencedDeclaration":7191,"src":"20314:52:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256)"}},"id":5175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20314:60:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5176,"nodeType":"ExpressionStatement","src":"20314:60:5"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"deal","nameLocation":"19575:4:5","parameters":{"id":5086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5079,"mutability":"mutable","name":"token","nameLocation":"19588:5:5","nodeType":"VariableDeclaration","scope":5180,"src":"19580:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5078,"name":"address","nodeType":"ElementaryTypeName","src":"19580:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5081,"mutability":"mutable","name":"to","nameLocation":"19603:2:5","nodeType":"VariableDeclaration","scope":5180,"src":"19595:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5080,"name":"address","nodeType":"ElementaryTypeName","src":"19595:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5083,"mutability":"mutable","name":"give","nameLocation":"19615:4:5","nodeType":"VariableDeclaration","scope":5180,"src":"19607:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5082,"name":"uint256","nodeType":"ElementaryTypeName","src":"19607:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5085,"mutability":"mutable","name":"adjust","nameLocation":"19626:6:5","nodeType":"VariableDeclaration","scope":5180,"src":"19621:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5084,"name":"bool","nodeType":"ElementaryTypeName","src":"19621:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19579:54:5"},"returnParameters":{"id":5087,"nodeType":"ParameterList","parameters":[],"src":"19651:0:5"},"scope":5181,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":4793,"name":"StdCheatsSafe","nameLocations":["17268:13:5"],"nodeType":"IdentifierPath","referencedDeclaration":4792,"src":"17268:13:5"},"id":4794,"nodeType":"InheritanceSpecifier","src":"17268:13:5"}],"canonicalName":"StdCheats","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[5181,4792],"name":"StdCheats","nameLocation":"17255:9:5","scope":5182,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":5} \ No newline at end of file diff --git a/out/StdError.sol/stdError.json b/out/StdError.sol/stdError.json deleted file mode 100644 index 04e89e16..00000000 --- a/out/StdError.sol/stdError.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"arithmeticError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"assertionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"divisionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"encodeStorageError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"enumConversionError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"indexOOBError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"memOverflowError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"popError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"zeroVarError","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080806040523461001a5761031f9081610020823930815050f35b600080fdfe60806040818152600436101561001457600080fd5b600091823560e01c90816305ee8612146102365750806310332977146102025780631de45560146101ce5780638995290f1461019a578063986c5f6814610166578063b22dc54d14610132578063b67689da146100fe578063d160e4de146100ca5763fa784a441461008557600080fd5b816003193601126100c657806100c2915190634e487b7160e01b602083015260126024830152602482526100b88261026e565b51918291826102a0565b0390f35b5080fd5b50816003193601126100c657806100c2915190634e487b7160e01b602083015260226024830152602482526100b88261026e565b50816003193601126100c657806100c2915190634e487b7160e01b602083015260516024830152602482526100b88261026e565b50816003193601126100c657806100c2915190634e487b7160e01b602083015260316024830152602482526100b88261026e565b50816003193601126100c657806100c2915190634e487b7160e01b602083015260416024830152602482526100b88261026e565b50816003193601126100c657806100c2915190634e487b7160e01b602083015260116024830152602482526100b88261026e565b50816003193601126100c657806100c2915190634e487b7160e01b602083015260216024830152602482526100b88261026e565b50816003193601126100c657806100c2915190634e487b7160e01b602083015260016024830152602482526100b88261026e565b9190508260031936011261026a576100c29250634e487b7160e01b602083015260326024830152602482526100b88261026e565b8280fd5b6060810190811067ffffffffffffffff82111761028a57604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106102d557505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016102b356fea2646970667358221220686e354cdd3454cd11a6c21041ef99b6f23a67c222102359dc961ed185dbaa0064736f6c63430008160033","sourceMap":"162:850:6:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600436101561001457600080fd5b600091823560e01c90816305ee8612146102365750806310332977146102025780631de45560146101ce5780638995290f1461019a578063986c5f6814610166578063b22dc54d14610132578063b67689da146100fe578063d160e4de146100ca5763fa784a441461008557600080fd5b816003193601126100c657806100c2915190634e487b7160e01b602083015260126024830152602482526100b88261026e565b51918291826102a0565b0390f35b5080fd5b50816003193601126100c657806100c2915190634e487b7160e01b602083015260226024830152602482526100b88261026e565b50816003193601126100c657806100c2915190634e487b7160e01b602083015260516024830152602482526100b88261026e565b50816003193601126100c657806100c2915190634e487b7160e01b602083015260316024830152602482526100b88261026e565b50816003193601126100c657806100c2915190634e487b7160e01b602083015260416024830152602482526100b88261026e565b50816003193601126100c657806100c2915190634e487b7160e01b602083015260116024830152602482526100b88261026e565b50816003193601126100c657806100c2915190634e487b7160e01b602083015260216024830152602482526100b88261026e565b50816003193601126100c657806100c2915190634e487b7160e01b602083015260016024830152602482526100b88261026e565b9190508260031936011261026a576100c29250634e487b7160e01b602083015260326024830152602482526100b88261026e565b8280fd5b6060810190811067ffffffffffffffff82111761028a57604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106102d557505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016102b356fea2646970667358221220686e354cdd3454cd11a6c21041ef99b6f23a67c222102359dc961ed185dbaa0064736f6c63430008160033","sourceMap":"162:850:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;778:47;;;;408;;;;450:4;408:47;;;162:850;408:47;;;;;;:::i;:::-;162:850;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;778:47;;;;601;;;;643:4;601:47;;;162:850;601:47;;;;;;:::i;162:850::-;;;;;;;;;;;;;;778:47;;;;962;;;;1004:4;962:47;;;162:850;962:47;;;;;;:::i;162:850::-;;;;;;;;;;;;;;778:47;;;;687;;;;729:4;687:47;;;162:850;687:47;;;;;;:::i;162:850::-;;;;;;;;;;;;;;778:47;;;;872;;;;914:4;872:47;;;162:850;872:47;;;;;;:::i;162:850::-;;;;;;;;;;;;;;778:47;;;;317;;;;359:4;317:47;;;162:850;317:47;;;;;;:::i;162:850::-;;;;;;;;;;;;;;778:47;;;;505;;;;547:4;505:47;;;162:850;505:47;;;;;;:::i;162:850::-;;;;;;;;;;;;;;778:47;;;;224;;;;266:4;224:47;;;162:850;224:47;;;;;;:::i;162:850::-;;;;;;;;;;;;;778:47;;;;;;;;;820:4;778:47;;;162:850;778:47;;;;;;:::i;162:850::-;;;;;;;;;;;;;;;;;;;:::o;:::-;778:47;;;162:850;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;162:850:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;","linkReferences":{}},"methodIdentifiers":{"arithmeticError()":"8995290f","assertionError()":"10332977","divisionError()":"fa784a44","encodeStorageError()":"d160e4de","enumConversionError()":"1de45560","indexOOBError()":"05ee8612","memOverflowError()":"986c5f68","popError()":"b22dc54d","zeroVarError()":"b67689da"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"arithmeticError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assertionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"divisionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"encodeStorageError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enumConversionError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"indexOOBError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"memOverflowError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"popError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zeroVarError\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/forge-std/src/StdError.sol\":\"stdError\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"arithmeticError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"assertionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"divisionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"encodeStorageError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"enumConversionError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"indexOOBError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"memOverflowError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"popError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zeroVarError","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/forge-std/src/StdError.sol":"stdError"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/forge-std/src/StdError.sol","id":5248,"exportedSymbols":{"stdError":[5247]},"nodeType":"SourceUnit","src":"129:884:6","nodes":[{"id":5183,"nodeType":"PragmaDirective","src":"129:31:6","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":5247,"nodeType":"ContractDefinition","src":"162:850:6","nodes":[{"id":5190,"nodeType":"VariableDeclaration","src":"185:86:6","nodes":[],"constant":true,"functionSelector":"10332977","mutability":"constant","name":"assertionError","nameLocation":"207:14:6","scope":5247,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5184,"name":"bytes","nodeType":"ElementaryTypeName","src":"185:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":5187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"248:16:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783031","id":5188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"266:4:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":5185,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"224:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"228:19:6","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"224:23:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"224:47:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":5197,"nodeType":"VariableDeclaration","src":"277:87:6","nodes":[],"constant":true,"functionSelector":"8995290f","mutability":"constant","name":"arithmeticError","nameLocation":"299:15:6","scope":5247,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5191,"name":"bytes","nodeType":"ElementaryTypeName","src":"277:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":5194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"341:16:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783131","id":5195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"359:4:6","typeDescriptions":{"typeIdentifier":"t_rational_17_by_1","typeString":"int_const 17"},"value":"0x11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_17_by_1","typeString":"int_const 17"}],"expression":{"id":5192,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"317:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"321:19:6","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"317:23:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"317:47:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":5204,"nodeType":"VariableDeclaration","src":"370:85:6","nodes":[],"constant":true,"functionSelector":"fa784a44","mutability":"constant","name":"divisionError","nameLocation":"392:13:6","scope":5247,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5198,"name":"bytes","nodeType":"ElementaryTypeName","src":"370:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":5201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"432:16:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783132","id":5202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"450:4:6","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"0x12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"expression":{"id":5199,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"408:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"412:19:6","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"408:23:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"408:47:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":5211,"nodeType":"VariableDeclaration","src":"461:91:6","nodes":[],"constant":true,"functionSelector":"1de45560","mutability":"constant","name":"enumConversionError","nameLocation":"483:19:6","scope":5247,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5205,"name":"bytes","nodeType":"ElementaryTypeName","src":"461:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":5208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"529:16:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783231","id":5209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"547:4:6","typeDescriptions":{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"},"value":"0x21"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"}],"expression":{"id":5206,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"505:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"509:19:6","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"505:23:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"505:47:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":5218,"nodeType":"VariableDeclaration","src":"558:90:6","nodes":[],"constant":true,"functionSelector":"d160e4de","mutability":"constant","name":"encodeStorageError","nameLocation":"580:18:6","scope":5247,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5212,"name":"bytes","nodeType":"ElementaryTypeName","src":"558:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":5215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"625:16:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783232","id":5216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"643:4:6","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"0x22"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"}],"expression":{"id":5213,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"601:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"605:19:6","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"601:23:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"601:47:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":5225,"nodeType":"VariableDeclaration","src":"654:80:6","nodes":[],"constant":true,"functionSelector":"b22dc54d","mutability":"constant","name":"popError","nameLocation":"676:8:6","scope":5247,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5219,"name":"bytes","nodeType":"ElementaryTypeName","src":"654:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":5222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"711:16:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783331","id":5223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"729:4:6","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"0x31"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"}],"expression":{"id":5220,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"687:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"691:19:6","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"687:23:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"687:47:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":5232,"nodeType":"VariableDeclaration","src":"740:85:6","nodes":[],"constant":true,"functionSelector":"05ee8612","mutability":"constant","name":"indexOOBError","nameLocation":"762:13:6","scope":5247,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5226,"name":"bytes","nodeType":"ElementaryTypeName","src":"740:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":5229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"802:16:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783332","id":5230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"820:4:6","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"0x32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"}],"expression":{"id":5227,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"778:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"782:19:6","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"778:23:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"778:47:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":5239,"nodeType":"VariableDeclaration","src":"831:88:6","nodes":[],"constant":true,"functionSelector":"986c5f68","mutability":"constant","name":"memOverflowError","nameLocation":"853:16:6","scope":5247,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5233,"name":"bytes","nodeType":"ElementaryTypeName","src":"831:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":5236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"896:16:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783431","id":5237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"914:4:6","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"0x41"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"}],"expression":{"id":5234,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"872:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"876:19:6","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"872:23:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"872:47:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":5246,"nodeType":"VariableDeclaration","src":"925:84:6","nodes":[],"constant":true,"functionSelector":"b67689da","mutability":"constant","name":"zeroVarError","nameLocation":"947:12:6","scope":5247,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5240,"name":"bytes","nodeType":"ElementaryTypeName","src":"925:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":5243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"986:16:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783531","id":5244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1004:4:6","typeDescriptions":{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"},"value":"0x51"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"}],"expression":{"id":5241,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"962:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"966:19:6","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"962:23:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"962:47:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"stdError","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[5247],"name":"stdError","nameLocation":"170:8:6","scope":5248,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":6} \ No newline at end of file diff --git a/out/StdJson.sol/stdJson.json b/out/StdJson.sol/stdJson.json deleted file mode 100644 index 75d35ab6..00000000 --- a/out/StdJson.sol/stdJson.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220359e68827c2ee9c63aaed9a90e7ef01bfbd0ed8ce0f670fdf858bd347240692a64736f6c63430008160033","sourceMap":"830:5659:7:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220359e68827c2ee9c63aaed9a90e7ef01bfbd0ed8ce0f670fdf858bd347240692a64736f6c63430008160033","sourceMap":"830:5659:7:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/forge-std/src/StdJson.sol\":\"stdJson\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/forge-std/src/StdJson.sol":"stdJson"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/forge-std/src/StdJson.sol","id":5915,"exportedSymbols":{"VmSafe":[9027],"stdJson":[5914]},"nodeType":"SourceUnit","src":"32:6458:7","nodes":[{"id":5249,"nodeType":"PragmaDirective","src":"32:31:7","nodes":[],"literals":["solidity",">=","0.6",".0","<","0.9",".0"]},{"id":5250,"nodeType":"PragmaDirective","src":"65:33:7","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":5252,"nodeType":"ImportDirective","src":"100:32:7","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":5915,"sourceUnit":9353,"symbolAliases":[{"foreign":{"id":5251,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9027,"src":"108:6:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5914,"nodeType":"ContractDefinition","src":"830:5659:7","nodes":[{"id":5269,"nodeType":"VariableDeclaration","src":"852:92:7","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"876:2:7","scope":5914,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"},"typeName":{"id":5254,"nodeType":"UserDefinedTypeName","pathNode":{"id":5253,"name":"VmSafe","nameLocations":["852:6:7"],"nodeType":"IdentifierPath","referencedDeclaration":9027,"src":"852:6:7"},"referencedDeclaration":9027,"src":"852:6:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":5263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"922:17:7","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":5262,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"912:9:7","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"912:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5261,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"904:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5260,"name":"uint256","nodeType":"ElementaryTypeName","src":"904:7:7","typeDescriptions":{}}},"id":5265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"904:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"896:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":5258,"name":"uint160","nodeType":"ElementaryTypeName","src":"896:7:7","typeDescriptions":{}}},"id":5266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"896:46:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":5257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"888:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5256,"name":"address","nodeType":"ElementaryTypeName","src":"888:7:7","typeDescriptions":{}}},"id":5267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"888:55:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5255,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9027,"src":"881:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$9027_$","typeString":"type(contract VmSafe)"}},"id":5268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"881:63:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"visibility":"private"},{"id":5285,"nodeType":"FunctionDefinition","src":"951:141:7","nodes":[],"body":{"id":5284,"nodeType":"Block","src":"1045:47:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":5280,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"1075:4:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5281,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5273,"src":"1081:3:7","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":5278,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"1062:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1065:9:7","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"1062:12:7","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":5282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1062:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5277,"id":5283,"nodeType":"Return","src":"1055:30:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"parseRaw","nameLocation":"960:8:7","parameters":{"id":5274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5271,"mutability":"mutable","name":"json","nameLocation":"983:4:7","nodeType":"VariableDeclaration","scope":5285,"src":"969:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5270,"name":"string","nodeType":"ElementaryTypeName","src":"969:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5273,"mutability":"mutable","name":"key","nameLocation":"1003:3:7","nodeType":"VariableDeclaration","scope":5285,"src":"989:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5272,"name":"string","nodeType":"ElementaryTypeName","src":"989:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"968:39:7"},"returnParameters":{"id":5277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5276,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5285,"src":"1031:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5275,"name":"bytes","nodeType":"ElementaryTypeName","src":"1031:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1030:14:7"},"scope":5914,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5307,"nodeType":"FunctionDefinition","src":"1098:159:7","nodes":[],"body":{"id":5306,"nodeType":"Block","src":"1187:70:7","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":5298,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5287,"src":"1228:4:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5299,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5289,"src":"1234:3:7","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":5296,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"1215:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1218:9:7","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"1215:12:7","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":5300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1215:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5302,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1241:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5301,"name":"uint256","nodeType":"ElementaryTypeName","src":"1241:7:7","typeDescriptions":{}}}],"id":5303,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1240:9:7","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":5294,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1204:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1208:6:7","memberName":"decode","nodeType":"MemberAccess","src":"1204:10:7","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1204:46:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5293,"id":5305,"nodeType":"Return","src":"1197:53:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readUint","nameLocation":"1107:8:7","parameters":{"id":5290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5287,"mutability":"mutable","name":"json","nameLocation":"1130:4:7","nodeType":"VariableDeclaration","scope":5307,"src":"1116:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5286,"name":"string","nodeType":"ElementaryTypeName","src":"1116:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5289,"mutability":"mutable","name":"key","nameLocation":"1150:3:7","nodeType":"VariableDeclaration","scope":5307,"src":"1136:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5288,"name":"string","nodeType":"ElementaryTypeName","src":"1136:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1115:39:7"},"returnParameters":{"id":5293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5307,"src":"1178:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5291,"name":"uint256","nodeType":"ElementaryTypeName","src":"1178:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1177:9:7"},"scope":5914,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5331,"nodeType":"FunctionDefinition","src":"1263:175:7","nodes":[],"body":{"id":5330,"nodeType":"Block","src":"1366:72:7","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":5321,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5309,"src":"1407:4:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5322,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5311,"src":"1413:3:7","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":5319,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"1394:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1397:9:7","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"1394:12:7","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":5323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1394:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"id":5325,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1420:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5324,"name":"uint256","nodeType":"ElementaryTypeName","src":"1420:7:7","typeDescriptions":{}}},"id":5326,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1420:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}}],"id":5327,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1419:11:7","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"type(uint256[] memory)"}],"expression":{"id":5317,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1383:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1387:6:7","memberName":"decode","nodeType":"MemberAccess","src":"1383:10:7","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1383:48:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":5316,"id":5329,"nodeType":"Return","src":"1376:55:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readUintArray","nameLocation":"1272:13:7","parameters":{"id":5312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5309,"mutability":"mutable","name":"json","nameLocation":"1300:4:7","nodeType":"VariableDeclaration","scope":5331,"src":"1286:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5308,"name":"string","nodeType":"ElementaryTypeName","src":"1286:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5311,"mutability":"mutable","name":"key","nameLocation":"1320:3:7","nodeType":"VariableDeclaration","scope":5331,"src":"1306:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5310,"name":"string","nodeType":"ElementaryTypeName","src":"1306:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1285:39:7"},"returnParameters":{"id":5316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5331,"src":"1348:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":5313,"name":"uint256","nodeType":"ElementaryTypeName","src":"1348:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5314,"nodeType":"ArrayTypeName","src":"1348:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1347:18:7"},"scope":5914,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5353,"nodeType":"FunctionDefinition","src":"1444:156:7","nodes":[],"body":{"id":5352,"nodeType":"Block","src":"1531:69:7","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":5344,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5333,"src":"1572:4:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5345,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5335,"src":"1578:3:7","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":5342,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"1559:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1562:9:7","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"1559:12:7","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":5346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1559:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5348,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1585:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":5347,"name":"int256","nodeType":"ElementaryTypeName","src":"1585:6:7","typeDescriptions":{}}}],"id":5349,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1584:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}],"expression":{"id":5340,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1548:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1552:6:7","memberName":"decode","nodeType":"MemberAccess","src":"1548:10:7","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1548:45:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":5339,"id":5351,"nodeType":"Return","src":"1541:52:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readInt","nameLocation":"1453:7:7","parameters":{"id":5336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5333,"mutability":"mutable","name":"json","nameLocation":"1475:4:7","nodeType":"VariableDeclaration","scope":5353,"src":"1461:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5332,"name":"string","nodeType":"ElementaryTypeName","src":"1461:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5335,"mutability":"mutable","name":"key","nameLocation":"1495:3:7","nodeType":"VariableDeclaration","scope":5353,"src":"1481:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5334,"name":"string","nodeType":"ElementaryTypeName","src":"1481:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1460:39:7"},"returnParameters":{"id":5339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5338,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5353,"src":"1523:6:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5337,"name":"int256","nodeType":"ElementaryTypeName","src":"1523:6:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1522:8:7"},"scope":5914,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5377,"nodeType":"FunctionDefinition","src":"1606:172:7","nodes":[],"body":{"id":5376,"nodeType":"Block","src":"1707:71:7","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":5367,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5355,"src":"1748:4:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5368,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5357,"src":"1754:3:7","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":5365,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"1735:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1738:9:7","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"1735:12:7","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":5369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1735:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"id":5371,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1761:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":5370,"name":"int256","nodeType":"ElementaryTypeName","src":"1761:6:7","typeDescriptions":{}}},"id":5372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1761:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_int256_$dyn_memory_ptr_$","typeString":"type(int256[] memory)"}}],"id":5373,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1760:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_int256_$dyn_memory_ptr_$","typeString":"type(int256[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_int256_$dyn_memory_ptr_$","typeString":"type(int256[] memory)"}],"expression":{"id":5363,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1724:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1728:6:7","memberName":"decode","nodeType":"MemberAccess","src":"1724:10:7","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1724:47:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},"functionReturnParameters":5362,"id":5375,"nodeType":"Return","src":"1717:54:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readIntArray","nameLocation":"1615:12:7","parameters":{"id":5358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5355,"mutability":"mutable","name":"json","nameLocation":"1642:4:7","nodeType":"VariableDeclaration","scope":5377,"src":"1628:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5354,"name":"string","nodeType":"ElementaryTypeName","src":"1628:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5357,"mutability":"mutable","name":"key","nameLocation":"1662:3:7","nodeType":"VariableDeclaration","scope":5377,"src":"1648:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5356,"name":"string","nodeType":"ElementaryTypeName","src":"1648:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1627:39:7"},"returnParameters":{"id":5362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5377,"src":"1690:15:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":5359,"name":"int256","nodeType":"ElementaryTypeName","src":"1690:6:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":5360,"nodeType":"ArrayTypeName","src":"1690:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"1689:17:7"},"scope":5914,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5399,"nodeType":"FunctionDefinition","src":"1784:162:7","nodes":[],"body":{"id":5398,"nodeType":"Block","src":"1876:70:7","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":5390,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5379,"src":"1917:4:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5391,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5381,"src":"1923:3:7","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":5388,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"1904:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1907:9:7","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"1904:12:7","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":5392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1904:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1930:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":5393,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1930:7:7","typeDescriptions":{}}}],"id":5395,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1929:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}],"expression":{"id":5386,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1893:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1897:6:7","memberName":"decode","nodeType":"MemberAccess","src":"1893:10:7","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1893:46:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5385,"id":5397,"nodeType":"Return","src":"1886:53:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readBytes32","nameLocation":"1793:11:7","parameters":{"id":5382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5379,"mutability":"mutable","name":"json","nameLocation":"1819:4:7","nodeType":"VariableDeclaration","scope":5399,"src":"1805:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5378,"name":"string","nodeType":"ElementaryTypeName","src":"1805:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5381,"mutability":"mutable","name":"key","nameLocation":"1839:3:7","nodeType":"VariableDeclaration","scope":5399,"src":"1825:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5380,"name":"string","nodeType":"ElementaryTypeName","src":"1825:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1804:39:7"},"returnParameters":{"id":5385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5384,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5399,"src":"1867:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5383,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1867:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1866:9:7"},"scope":5914,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5423,"nodeType":"FunctionDefinition","src":"1952:178:7","nodes":[],"body":{"id":5422,"nodeType":"Block","src":"2058:72:7","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":5413,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5401,"src":"2099:4:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5414,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5403,"src":"2105:3:7","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":5411,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"2086:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2089:9:7","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"2086:12:7","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":5415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2086:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"id":5417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2112:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":5416,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2112:7:7","typeDescriptions":{}}},"id":5418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"2112:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"type(bytes32[] memory)"}}],"id":5419,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2111:11:7","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"type(bytes32[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"type(bytes32[] memory)"}],"expression":{"id":5409,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2075:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2079:6:7","memberName":"decode","nodeType":"MemberAccess","src":"2075:10:7","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2075:48:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":5408,"id":5421,"nodeType":"Return","src":"2068:55:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readBytes32Array","nameLocation":"1961:16:7","parameters":{"id":5404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5401,"mutability":"mutable","name":"json","nameLocation":"1992:4:7","nodeType":"VariableDeclaration","scope":5423,"src":"1978:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5400,"name":"string","nodeType":"ElementaryTypeName","src":"1978:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5403,"mutability":"mutable","name":"key","nameLocation":"2012:3:7","nodeType":"VariableDeclaration","scope":5423,"src":"1998:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5402,"name":"string","nodeType":"ElementaryTypeName","src":"1998:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1977:39:7"},"returnParameters":{"id":5408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5407,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5423,"src":"2040:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":5405,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2040:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5406,"nodeType":"ArrayTypeName","src":"2040:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"2039:18:7"},"scope":5914,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5445,"nodeType":"FunctionDefinition","src":"2136:166:7","nodes":[],"body":{"id":5444,"nodeType":"Block","src":"2233:69:7","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":5436,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5425,"src":"2274:4:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5437,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5427,"src":"2280:3:7","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":5434,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"2261:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2264:9:7","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"2261:12:7","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":5438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2261:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2287:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":5439,"name":"string","nodeType":"ElementaryTypeName","src":"2287:6:7","typeDescriptions":{}}}],"id":5441,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2286:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"}],"expression":{"id":5432,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2250:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2254:6:7","memberName":"decode","nodeType":"MemberAccess","src":"2250:10:7","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2250:45:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":5431,"id":5443,"nodeType":"Return","src":"2243:52:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readString","nameLocation":"2145:10:7","parameters":{"id":5428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5425,"mutability":"mutable","name":"json","nameLocation":"2170:4:7","nodeType":"VariableDeclaration","scope":5445,"src":"2156:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5424,"name":"string","nodeType":"ElementaryTypeName","src":"2156:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5427,"mutability":"mutable","name":"key","nameLocation":"2190:3:7","nodeType":"VariableDeclaration","scope":5445,"src":"2176:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5426,"name":"string","nodeType":"ElementaryTypeName","src":"2176:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2155:39:7"},"returnParameters":{"id":5431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5430,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5445,"src":"2218:13:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5429,"name":"string","nodeType":"ElementaryTypeName","src":"2218:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2217:15:7"},"scope":5914,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5469,"nodeType":"FunctionDefinition","src":"2308:175:7","nodes":[],"body":{"id":5468,"nodeType":"Block","src":"2412:71:7","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":5459,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5447,"src":"2453:4:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5460,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5449,"src":"2459:3:7","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":5457,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"2440:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2443:9:7","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"2440:12:7","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":5461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2440:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"id":5463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2466:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":5462,"name":"string","nodeType":"ElementaryTypeName","src":"2466:6:7","typeDescriptions":{}}},"id":5464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"2466:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"type(string memory[] memory)"}}],"id":5465,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2465:10:7","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"type(string memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"type(string memory[] memory)"}],"expression":{"id":5455,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2429:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2433:6:7","memberName":"decode","nodeType":"MemberAccess","src":"2429:10:7","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2429:47:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"functionReturnParameters":5454,"id":5467,"nodeType":"Return","src":"2422:54:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readStringArray","nameLocation":"2317:15:7","parameters":{"id":5450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5447,"mutability":"mutable","name":"json","nameLocation":"2347:4:7","nodeType":"VariableDeclaration","scope":5469,"src":"2333:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5446,"name":"string","nodeType":"ElementaryTypeName","src":"2333:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5449,"mutability":"mutable","name":"key","nameLocation":"2367:3:7","nodeType":"VariableDeclaration","scope":5469,"src":"2353:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5448,"name":"string","nodeType":"ElementaryTypeName","src":"2353:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2332:39:7"},"returnParameters":{"id":5454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5469,"src":"2395:15:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":5451,"name":"string","nodeType":"ElementaryTypeName","src":"2395:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":5452,"nodeType":"ArrayTypeName","src":"2395:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"2394:17:7"},"scope":5914,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5491,"nodeType":"FunctionDefinition","src":"2489:162:7","nodes":[],"body":{"id":5490,"nodeType":"Block","src":"2581:70:7","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":5482,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5471,"src":"2622:4:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5483,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5473,"src":"2628:3:7","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":5480,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"2609:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2612:9:7","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"2609:12:7","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":5484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2609:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2635:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5485,"name":"address","nodeType":"ElementaryTypeName","src":"2635:7:7","typeDescriptions":{}}}],"id":5487,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2634:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":5478,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2598:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2602:6:7","memberName":"decode","nodeType":"MemberAccess","src":"2598:10:7","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2598:46:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":5477,"id":5489,"nodeType":"Return","src":"2591:53:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readAddress","nameLocation":"2498:11:7","parameters":{"id":5474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5471,"mutability":"mutable","name":"json","nameLocation":"2524:4:7","nodeType":"VariableDeclaration","scope":5491,"src":"2510:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5470,"name":"string","nodeType":"ElementaryTypeName","src":"2510:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5473,"mutability":"mutable","name":"key","nameLocation":"2544:3:7","nodeType":"VariableDeclaration","scope":5491,"src":"2530:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5472,"name":"string","nodeType":"ElementaryTypeName","src":"2530:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2509:39:7"},"returnParameters":{"id":5477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5476,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5491,"src":"2572:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5475,"name":"address","nodeType":"ElementaryTypeName","src":"2572:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2571:9:7"},"scope":5914,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5515,"nodeType":"FunctionDefinition","src":"2657:178:7","nodes":[],"body":{"id":5514,"nodeType":"Block","src":"2763:72:7","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":5505,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5493,"src":"2804:4:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5506,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5495,"src":"2810:3:7","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":5503,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"2791:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2794:9:7","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"2791:12:7","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":5507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2791:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"id":5509,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2817:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5508,"name":"address","nodeType":"ElementaryTypeName","src":"2817:7:7","typeDescriptions":{}}},"id":5510,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"2817:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"type(address[] memory)"}}],"id":5511,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2816:11:7","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"type(address[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"type(address[] memory)"}],"expression":{"id":5501,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2780:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2784:6:7","memberName":"decode","nodeType":"MemberAccess","src":"2780:10:7","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2780:48:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":5500,"id":5513,"nodeType":"Return","src":"2773:55:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readAddressArray","nameLocation":"2666:16:7","parameters":{"id":5496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5493,"mutability":"mutable","name":"json","nameLocation":"2697:4:7","nodeType":"VariableDeclaration","scope":5515,"src":"2683:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5492,"name":"string","nodeType":"ElementaryTypeName","src":"2683:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5495,"mutability":"mutable","name":"key","nameLocation":"2717:3:7","nodeType":"VariableDeclaration","scope":5515,"src":"2703:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5494,"name":"string","nodeType":"ElementaryTypeName","src":"2703:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2682:39:7"},"returnParameters":{"id":5500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5515,"src":"2745:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":5497,"name":"address","nodeType":"ElementaryTypeName","src":"2745:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5498,"nodeType":"ArrayTypeName","src":"2745:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2744:18:7"},"scope":5914,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5537,"nodeType":"FunctionDefinition","src":"2841:153:7","nodes":[],"body":{"id":5536,"nodeType":"Block","src":"2927:67:7","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":5528,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5517,"src":"2968:4:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5529,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5519,"src":"2974:3:7","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":5526,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"2955:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2958:9:7","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"2955:12:7","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":5530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2955:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5532,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2981:4:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":5531,"name":"bool","nodeType":"ElementaryTypeName","src":"2981:4:7","typeDescriptions":{}}}],"id":5533,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2980:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":5524,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2944:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2948:6:7","memberName":"decode","nodeType":"MemberAccess","src":"2944:10:7","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2944:43:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5523,"id":5535,"nodeType":"Return","src":"2937:50:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readBool","nameLocation":"2850:8:7","parameters":{"id":5520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5517,"mutability":"mutable","name":"json","nameLocation":"2873:4:7","nodeType":"VariableDeclaration","scope":5537,"src":"2859:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5516,"name":"string","nodeType":"ElementaryTypeName","src":"2859:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5519,"mutability":"mutable","name":"key","nameLocation":"2893:3:7","nodeType":"VariableDeclaration","scope":5537,"src":"2879:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5518,"name":"string","nodeType":"ElementaryTypeName","src":"2879:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2858:39:7"},"returnParameters":{"id":5523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5522,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5537,"src":"2921:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5521,"name":"bool","nodeType":"ElementaryTypeName","src":"2921:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2920:6:7"},"scope":5914,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5561,"nodeType":"FunctionDefinition","src":"3000:169:7","nodes":[],"body":{"id":5560,"nodeType":"Block","src":"3100:69:7","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":5551,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5539,"src":"3141:4:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5552,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5541,"src":"3147:3:7","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":5549,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"3128:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3131:9:7","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"3128:12:7","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":5553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3128:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"id":5555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3154:4:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":5554,"name":"bool","nodeType":"ElementaryTypeName","src":"3154:4:7","typeDescriptions":{}}},"id":5556,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"3154:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"type(bool[] memory)"}}],"id":5557,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3153:8:7","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"type(bool[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"type(bool[] memory)"}],"expression":{"id":5547,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3117:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3121:6:7","memberName":"decode","nodeType":"MemberAccess","src":"3117:10:7","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3117:45:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"functionReturnParameters":5546,"id":5559,"nodeType":"Return","src":"3110:52:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readBoolArray","nameLocation":"3009:13:7","parameters":{"id":5542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5539,"mutability":"mutable","name":"json","nameLocation":"3037:4:7","nodeType":"VariableDeclaration","scope":5561,"src":"3023:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5538,"name":"string","nodeType":"ElementaryTypeName","src":"3023:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5541,"mutability":"mutable","name":"key","nameLocation":"3057:3:7","nodeType":"VariableDeclaration","scope":5561,"src":"3043:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5540,"name":"string","nodeType":"ElementaryTypeName","src":"3043:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3022:39:7"},"returnParameters":{"id":5546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5545,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5561,"src":"3085:13:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":5543,"name":"bool","nodeType":"ElementaryTypeName","src":"3085:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5544,"nodeType":"ArrayTypeName","src":"3085:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"3084:15:7"},"scope":5914,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5583,"nodeType":"FunctionDefinition","src":"3175:163:7","nodes":[],"body":{"id":5582,"nodeType":"Block","src":"3270:68:7","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":5574,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"3311:4:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5575,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5565,"src":"3317:3:7","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":5572,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"3298:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3301:9:7","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"3298:12:7","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":5576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3298:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3324:5:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":5577,"name":"bytes","nodeType":"ElementaryTypeName","src":"3324:5:7","typeDescriptions":{}}}],"id":5579,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3323:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"}],"expression":{"id":5570,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3287:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5571,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3291:6:7","memberName":"decode","nodeType":"MemberAccess","src":"3287:10:7","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3287:44:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":5569,"id":5581,"nodeType":"Return","src":"3280:51:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readBytes","nameLocation":"3184:9:7","parameters":{"id":5566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5563,"mutability":"mutable","name":"json","nameLocation":"3208:4:7","nodeType":"VariableDeclaration","scope":5583,"src":"3194:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5562,"name":"string","nodeType":"ElementaryTypeName","src":"3194:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5565,"mutability":"mutable","name":"key","nameLocation":"3228:3:7","nodeType":"VariableDeclaration","scope":5583,"src":"3214:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5564,"name":"string","nodeType":"ElementaryTypeName","src":"3214:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3193:39:7"},"returnParameters":{"id":5569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5568,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5583,"src":"3256:12:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5567,"name":"bytes","nodeType":"ElementaryTypeName","src":"3256:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3255:14:7"},"scope":5914,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5607,"nodeType":"FunctionDefinition","src":"3344:172:7","nodes":[],"body":{"id":5606,"nodeType":"Block","src":"3446:70:7","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":5597,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5585,"src":"3487:4:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5598,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5587,"src":"3493:3:7","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":5595,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"3474:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3477:9:7","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":8809,"src":"3474:12:7","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":5599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3474:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"id":5601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3500:5:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":5600,"name":"bytes","nodeType":"ElementaryTypeName","src":"3500:5:7","typeDescriptions":{}}},"id":5602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"3500:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"type(bytes memory[] memory)"}}],"id":5603,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3499:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"type(bytes memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"type(bytes memory[] memory)"}],"expression":{"id":5593,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3463:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3467:6:7","memberName":"decode","nodeType":"MemberAccess","src":"3463:10:7","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3463:46:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"functionReturnParameters":5592,"id":5605,"nodeType":"Return","src":"3456:53:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readBytesArray","nameLocation":"3353:14:7","parameters":{"id":5588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5585,"mutability":"mutable","name":"json","nameLocation":"3382:4:7","nodeType":"VariableDeclaration","scope":5607,"src":"3368:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5584,"name":"string","nodeType":"ElementaryTypeName","src":"3368:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5587,"mutability":"mutable","name":"key","nameLocation":"3402:3:7","nodeType":"VariableDeclaration","scope":5607,"src":"3388:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5586,"name":"string","nodeType":"ElementaryTypeName","src":"3388:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3367:39:7"},"returnParameters":{"id":5592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5607,"src":"3430:14:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":5589,"name":"bytes","nodeType":"ElementaryTypeName","src":"3430:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":5590,"nodeType":"ArrayTypeName","src":"3430:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"3429:16:7"},"scope":5914,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5626,"nodeType":"FunctionDefinition","src":"3522:167:7","nodes":[],"body":{"id":5625,"nodeType":"Block","src":"3628:61:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":5620,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5609,"src":"3662:7:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5621,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5611,"src":"3671:3:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5622,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5613,"src":"3676:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5618,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"3645:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3648:13:7","memberName":"serializeBool","nodeType":"MemberAccess","referencedDeclaration":8827,"src":"3645:16:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bool) external returns (string memory)"}},"id":5623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3645:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":5617,"id":5624,"nodeType":"Return","src":"3638:44:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"3531:9:7","parameters":{"id":5614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5609,"mutability":"mutable","name":"jsonKey","nameLocation":"3555:7:7","nodeType":"VariableDeclaration","scope":5626,"src":"3541:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5608,"name":"string","nodeType":"ElementaryTypeName","src":"3541:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5611,"mutability":"mutable","name":"key","nameLocation":"3578:3:7","nodeType":"VariableDeclaration","scope":5626,"src":"3564:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5610,"name":"string","nodeType":"ElementaryTypeName","src":"3564:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5613,"mutability":"mutable","name":"value","nameLocation":"3588:5:7","nodeType":"VariableDeclaration","scope":5626,"src":"3583:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5612,"name":"bool","nodeType":"ElementaryTypeName","src":"3583:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3540:54:7"},"returnParameters":{"id":5617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5626,"src":"3613:13:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5615,"name":"string","nodeType":"ElementaryTypeName","src":"3613:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3612:15:7"},"scope":5914,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5646,"nodeType":"FunctionDefinition","src":"3695:196:7","nodes":[],"body":{"id":5645,"nodeType":"Block","src":"3830:61:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":5640,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5628,"src":"3864:7:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5641,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5630,"src":"3873:3:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5642,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5633,"src":"3878:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}],"expression":{"id":5638,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"3847:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3850:13:7","memberName":"serializeBool","nodeType":"MemberAccess","referencedDeclaration":8905,"src":"3847:16:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bool[] memory) external returns (string memory)"}},"id":5643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3847:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":5637,"id":5644,"nodeType":"Return","src":"3840:44:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"3704:9:7","parameters":{"id":5634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5628,"mutability":"mutable","name":"jsonKey","nameLocation":"3728:7:7","nodeType":"VariableDeclaration","scope":5646,"src":"3714:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5627,"name":"string","nodeType":"ElementaryTypeName","src":"3714:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5630,"mutability":"mutable","name":"key","nameLocation":"3751:3:7","nodeType":"VariableDeclaration","scope":5646,"src":"3737:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5629,"name":"string","nodeType":"ElementaryTypeName","src":"3737:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5633,"mutability":"mutable","name":"value","nameLocation":"3770:5:7","nodeType":"VariableDeclaration","scope":5646,"src":"3756:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":5631,"name":"bool","nodeType":"ElementaryTypeName","src":"3756:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5632,"nodeType":"ArrayTypeName","src":"3756:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"3713:63:7"},"returnParameters":{"id":5637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5636,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5646,"src":"3811:13:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5635,"name":"string","nodeType":"ElementaryTypeName","src":"3811:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3810:15:7"},"scope":5914,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5665,"nodeType":"FunctionDefinition","src":"3897:170:7","nodes":[],"body":{"id":5664,"nodeType":"Block","src":"4006:61:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":5659,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5648,"src":"4040:7:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5660,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5650,"src":"4049:3:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5661,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5652,"src":"4054:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5657,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"4023:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4026:13:7","memberName":"serializeUint","nodeType":"MemberAccess","referencedDeclaration":8838,"src":"4023:16:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,uint256) external returns (string memory)"}},"id":5662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4023:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":5656,"id":5663,"nodeType":"Return","src":"4016:44:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"3906:9:7","parameters":{"id":5653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5648,"mutability":"mutable","name":"jsonKey","nameLocation":"3930:7:7","nodeType":"VariableDeclaration","scope":5665,"src":"3916:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5647,"name":"string","nodeType":"ElementaryTypeName","src":"3916:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5650,"mutability":"mutable","name":"key","nameLocation":"3953:3:7","nodeType":"VariableDeclaration","scope":5665,"src":"3939:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5649,"name":"string","nodeType":"ElementaryTypeName","src":"3939:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5652,"mutability":"mutable","name":"value","nameLocation":"3966:5:7","nodeType":"VariableDeclaration","scope":5665,"src":"3958:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5651,"name":"uint256","nodeType":"ElementaryTypeName","src":"3958:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3915:57:7"},"returnParameters":{"id":5656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5655,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5665,"src":"3991:13:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5654,"name":"string","nodeType":"ElementaryTypeName","src":"3991:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3990:15:7"},"scope":5914,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5685,"nodeType":"FunctionDefinition","src":"4073:199:7","nodes":[],"body":{"id":5684,"nodeType":"Block","src":"4211:61:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":5679,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5667,"src":"4245:7:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5680,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5669,"src":"4254:3:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5681,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5672,"src":"4259:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"expression":{"id":5677,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"4228:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4231:13:7","memberName":"serializeUint","nodeType":"MemberAccess","referencedDeclaration":8917,"src":"4228:16:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,uint256[] memory) external returns (string memory)"}},"id":5682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4228:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":5676,"id":5683,"nodeType":"Return","src":"4221:44:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"4082:9:7","parameters":{"id":5673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5667,"mutability":"mutable","name":"jsonKey","nameLocation":"4106:7:7","nodeType":"VariableDeclaration","scope":5685,"src":"4092:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5666,"name":"string","nodeType":"ElementaryTypeName","src":"4092:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5669,"mutability":"mutable","name":"key","nameLocation":"4129:3:7","nodeType":"VariableDeclaration","scope":5685,"src":"4115:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5668,"name":"string","nodeType":"ElementaryTypeName","src":"4115:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5672,"mutability":"mutable","name":"value","nameLocation":"4151:5:7","nodeType":"VariableDeclaration","scope":5685,"src":"4134:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":5670,"name":"uint256","nodeType":"ElementaryTypeName","src":"4134:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5671,"nodeType":"ArrayTypeName","src":"4134:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4091:66:7"},"returnParameters":{"id":5676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5675,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5685,"src":"4192:13:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5674,"name":"string","nodeType":"ElementaryTypeName","src":"4192:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4191:15:7"},"scope":5914,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5704,"nodeType":"FunctionDefinition","src":"4278:168:7","nodes":[],"body":{"id":5703,"nodeType":"Block","src":"4386:60:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":5698,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5687,"src":"4419:7:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5699,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5689,"src":"4428:3:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5700,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5691,"src":"4433:5:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":5696,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"4403:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4406:12:7","memberName":"serializeInt","nodeType":"MemberAccess","referencedDeclaration":8849,"src":"4403:15:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_int256_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,int256) external returns (string memory)"}},"id":5701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4403:36:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":5695,"id":5702,"nodeType":"Return","src":"4396:43:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"4287:9:7","parameters":{"id":5692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5687,"mutability":"mutable","name":"jsonKey","nameLocation":"4311:7:7","nodeType":"VariableDeclaration","scope":5704,"src":"4297:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5686,"name":"string","nodeType":"ElementaryTypeName","src":"4297:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5689,"mutability":"mutable","name":"key","nameLocation":"4334:3:7","nodeType":"VariableDeclaration","scope":5704,"src":"4320:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5688,"name":"string","nodeType":"ElementaryTypeName","src":"4320:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5691,"mutability":"mutable","name":"value","nameLocation":"4346:5:7","nodeType":"VariableDeclaration","scope":5704,"src":"4339:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5690,"name":"int256","nodeType":"ElementaryTypeName","src":"4339:6:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4296:56:7"},"returnParameters":{"id":5695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5694,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5704,"src":"4371:13:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5693,"name":"string","nodeType":"ElementaryTypeName","src":"4371:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4370:15:7"},"scope":5914,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5724,"nodeType":"FunctionDefinition","src":"4452:197:7","nodes":[],"body":{"id":5723,"nodeType":"Block","src":"4589:60:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":5718,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5706,"src":"4622:7:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5719,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5708,"src":"4631:3:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5720,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5711,"src":"4636:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}],"expression":{"id":5716,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"4606:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4609:12:7","memberName":"serializeInt","nodeType":"MemberAccess","referencedDeclaration":8929,"src":"4606:15:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,int256[] memory) external returns (string memory)"}},"id":5721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4606:36:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":5715,"id":5722,"nodeType":"Return","src":"4599:43:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"4461:9:7","parameters":{"id":5712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5706,"mutability":"mutable","name":"jsonKey","nameLocation":"4485:7:7","nodeType":"VariableDeclaration","scope":5724,"src":"4471:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5705,"name":"string","nodeType":"ElementaryTypeName","src":"4471:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5708,"mutability":"mutable","name":"key","nameLocation":"4508:3:7","nodeType":"VariableDeclaration","scope":5724,"src":"4494:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5707,"name":"string","nodeType":"ElementaryTypeName","src":"4494:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5711,"mutability":"mutable","name":"value","nameLocation":"4529:5:7","nodeType":"VariableDeclaration","scope":5724,"src":"4513:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":5709,"name":"int256","nodeType":"ElementaryTypeName","src":"4513:6:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":5710,"nodeType":"ArrayTypeName","src":"4513:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"4470:65:7"},"returnParameters":{"id":5715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5714,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5724,"src":"4570:13:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5713,"name":"string","nodeType":"ElementaryTypeName","src":"4570:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4569:15:7"},"scope":5914,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5743,"nodeType":"FunctionDefinition","src":"4655:173:7","nodes":[],"body":{"id":5742,"nodeType":"Block","src":"4764:64:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":5737,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5726,"src":"4801:7:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5738,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5728,"src":"4810:3:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5739,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5730,"src":"4815:5:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5735,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"4781:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4784:16:7","memberName":"serializeAddress","nodeType":"MemberAccess","referencedDeclaration":8860,"src":"4781:19:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,address) external returns (string memory)"}},"id":5740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4781:40:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":5734,"id":5741,"nodeType":"Return","src":"4774:47:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"4664:9:7","parameters":{"id":5731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5726,"mutability":"mutable","name":"jsonKey","nameLocation":"4688:7:7","nodeType":"VariableDeclaration","scope":5743,"src":"4674:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5725,"name":"string","nodeType":"ElementaryTypeName","src":"4674:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5728,"mutability":"mutable","name":"key","nameLocation":"4711:3:7","nodeType":"VariableDeclaration","scope":5743,"src":"4697:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5727,"name":"string","nodeType":"ElementaryTypeName","src":"4697:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5730,"mutability":"mutable","name":"value","nameLocation":"4724:5:7","nodeType":"VariableDeclaration","scope":5743,"src":"4716:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5729,"name":"address","nodeType":"ElementaryTypeName","src":"4716:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4673:57:7"},"returnParameters":{"id":5734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5733,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5743,"src":"4749:13:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5732,"name":"string","nodeType":"ElementaryTypeName","src":"4749:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4748:15:7"},"scope":5914,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5763,"nodeType":"FunctionDefinition","src":"4834:202:7","nodes":[],"body":{"id":5762,"nodeType":"Block","src":"4972:64:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":5757,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5745,"src":"5009:7:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5758,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5747,"src":"5018:3:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5759,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5750,"src":"5023:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":5755,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"4989:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4992:16:7","memberName":"serializeAddress","nodeType":"MemberAccess","referencedDeclaration":8941,"src":"4989:19:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,address[] memory) external returns (string memory)"}},"id":5760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4989:40:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":5754,"id":5761,"nodeType":"Return","src":"4982:47:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"4843:9:7","parameters":{"id":5751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5745,"mutability":"mutable","name":"jsonKey","nameLocation":"4867:7:7","nodeType":"VariableDeclaration","scope":5763,"src":"4853:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5744,"name":"string","nodeType":"ElementaryTypeName","src":"4853:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5747,"mutability":"mutable","name":"key","nameLocation":"4890:3:7","nodeType":"VariableDeclaration","scope":5763,"src":"4876:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5746,"name":"string","nodeType":"ElementaryTypeName","src":"4876:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5750,"mutability":"mutable","name":"value","nameLocation":"4912:5:7","nodeType":"VariableDeclaration","scope":5763,"src":"4895:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":5748,"name":"address","nodeType":"ElementaryTypeName","src":"4895:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5749,"nodeType":"ArrayTypeName","src":"4895:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4852:66:7"},"returnParameters":{"id":5754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5753,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5763,"src":"4953:13:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5752,"name":"string","nodeType":"ElementaryTypeName","src":"4953:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4952:15:7"},"scope":5914,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5782,"nodeType":"FunctionDefinition","src":"5042:173:7","nodes":[],"body":{"id":5781,"nodeType":"Block","src":"5151:64:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":5776,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5765,"src":"5188:7:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5777,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"5197:3:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5778,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5769,"src":"5202:5:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5774,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"5168:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5171:16:7","memberName":"serializeBytes32","nodeType":"MemberAccess","referencedDeclaration":8871,"src":"5168:19:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bytes32_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bytes32) external returns (string memory)"}},"id":5779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5168:40:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":5773,"id":5780,"nodeType":"Return","src":"5161:47:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"5051:9:7","parameters":{"id":5770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5765,"mutability":"mutable","name":"jsonKey","nameLocation":"5075:7:7","nodeType":"VariableDeclaration","scope":5782,"src":"5061:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5764,"name":"string","nodeType":"ElementaryTypeName","src":"5061:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5767,"mutability":"mutable","name":"key","nameLocation":"5098:3:7","nodeType":"VariableDeclaration","scope":5782,"src":"5084:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5766,"name":"string","nodeType":"ElementaryTypeName","src":"5084:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5769,"mutability":"mutable","name":"value","nameLocation":"5111:5:7","nodeType":"VariableDeclaration","scope":5782,"src":"5103:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5768,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5103:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5060:57:7"},"returnParameters":{"id":5773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5772,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5782,"src":"5136:13:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5771,"name":"string","nodeType":"ElementaryTypeName","src":"5136:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5135:15:7"},"scope":5914,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5802,"nodeType":"FunctionDefinition","src":"5221:202:7","nodes":[],"body":{"id":5801,"nodeType":"Block","src":"5359:64:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":5796,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5784,"src":"5396:7:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5797,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5786,"src":"5405:3:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5798,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5789,"src":"5410:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"expression":{"id":5794,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"5376:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5379:16:7","memberName":"serializeBytes32","nodeType":"MemberAccess","referencedDeclaration":8953,"src":"5376:19:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bytes32[] memory) external returns (string memory)"}},"id":5799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5376:40:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":5793,"id":5800,"nodeType":"Return","src":"5369:47:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"5230:9:7","parameters":{"id":5790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5784,"mutability":"mutable","name":"jsonKey","nameLocation":"5254:7:7","nodeType":"VariableDeclaration","scope":5802,"src":"5240:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5783,"name":"string","nodeType":"ElementaryTypeName","src":"5240:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5786,"mutability":"mutable","name":"key","nameLocation":"5277:3:7","nodeType":"VariableDeclaration","scope":5802,"src":"5263:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5785,"name":"string","nodeType":"ElementaryTypeName","src":"5263:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5789,"mutability":"mutable","name":"value","nameLocation":"5299:5:7","nodeType":"VariableDeclaration","scope":5802,"src":"5282:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":5787,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5282:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5788,"nodeType":"ArrayTypeName","src":"5282:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"5239:66:7"},"returnParameters":{"id":5793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5792,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5802,"src":"5340:13:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5791,"name":"string","nodeType":"ElementaryTypeName","src":"5340:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5339:15:7"},"scope":5914,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5821,"nodeType":"FunctionDefinition","src":"5429:176:7","nodes":[],"body":{"id":5820,"nodeType":"Block","src":"5543:62:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":5815,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5804,"src":"5578:7:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5816,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5806,"src":"5587:3:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5817,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5808,"src":"5592:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5813,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"5560:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5563:14:7","memberName":"serializeBytes","nodeType":"MemberAccess","referencedDeclaration":8893,"src":"5560:17:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bytes memory) external returns (string memory)"}},"id":5818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5560:38:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":5812,"id":5819,"nodeType":"Return","src":"5553:45:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"5438:9:7","parameters":{"id":5809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5804,"mutability":"mutable","name":"jsonKey","nameLocation":"5462:7:7","nodeType":"VariableDeclaration","scope":5821,"src":"5448:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5803,"name":"string","nodeType":"ElementaryTypeName","src":"5448:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5806,"mutability":"mutable","name":"key","nameLocation":"5485:3:7","nodeType":"VariableDeclaration","scope":5821,"src":"5471:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5805,"name":"string","nodeType":"ElementaryTypeName","src":"5471:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5808,"mutability":"mutable","name":"value","nameLocation":"5503:5:7","nodeType":"VariableDeclaration","scope":5821,"src":"5490:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5807,"name":"bytes","nodeType":"ElementaryTypeName","src":"5490:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5447:62:7"},"returnParameters":{"id":5812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5811,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5821,"src":"5528:13:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5810,"name":"string","nodeType":"ElementaryTypeName","src":"5528:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5527:15:7"},"scope":5914,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5841,"nodeType":"FunctionDefinition","src":"5611:198:7","nodes":[],"body":{"id":5840,"nodeType":"Block","src":"5747:62:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":5835,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5823,"src":"5782:7:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5836,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5825,"src":"5791:3:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5837,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5828,"src":"5796:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":5833,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"5764:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5767:14:7","memberName":"serializeBytes","nodeType":"MemberAccess","referencedDeclaration":8977,"src":"5764:17:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bytes memory[] memory) external returns (string memory)"}},"id":5838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5764:38:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":5832,"id":5839,"nodeType":"Return","src":"5757:45:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"5620:9:7","parameters":{"id":5829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5823,"mutability":"mutable","name":"jsonKey","nameLocation":"5644:7:7","nodeType":"VariableDeclaration","scope":5841,"src":"5630:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5822,"name":"string","nodeType":"ElementaryTypeName","src":"5630:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5825,"mutability":"mutable","name":"key","nameLocation":"5667:3:7","nodeType":"VariableDeclaration","scope":5841,"src":"5653:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5824,"name":"string","nodeType":"ElementaryTypeName","src":"5653:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5828,"mutability":"mutable","name":"value","nameLocation":"5687:5:7","nodeType":"VariableDeclaration","scope":5841,"src":"5672:20:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":5826,"name":"bytes","nodeType":"ElementaryTypeName","src":"5672:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":5827,"nodeType":"ArrayTypeName","src":"5672:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"5629:64:7"},"returnParameters":{"id":5832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5831,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5841,"src":"5728:13:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5830,"name":"string","nodeType":"ElementaryTypeName","src":"5728:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5727:15:7"},"scope":5914,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5860,"nodeType":"FunctionDefinition","src":"5815:198:7","nodes":[],"body":{"id":5859,"nodeType":"Block","src":"5950:63:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":5854,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5843,"src":"5986:7:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5855,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5845,"src":"5995:3:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5856,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5847,"src":"6000:5:7","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"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5852,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"5967:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5970:15:7","memberName":"serializeString","nodeType":"MemberAccess","referencedDeclaration":8882,"src":"5967:18:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,string memory) external returns (string memory)"}},"id":5857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5967:39:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":5851,"id":5858,"nodeType":"Return","src":"5960:46:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"5824:9:7","parameters":{"id":5848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5843,"mutability":"mutable","name":"jsonKey","nameLocation":"5848:7:7","nodeType":"VariableDeclaration","scope":5860,"src":"5834:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5842,"name":"string","nodeType":"ElementaryTypeName","src":"5834:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5845,"mutability":"mutable","name":"key","nameLocation":"5871:3:7","nodeType":"VariableDeclaration","scope":5860,"src":"5857:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5844,"name":"string","nodeType":"ElementaryTypeName","src":"5857:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5847,"mutability":"mutable","name":"value","nameLocation":"5890:5:7","nodeType":"VariableDeclaration","scope":5860,"src":"5876:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5846,"name":"string","nodeType":"ElementaryTypeName","src":"5876:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5833:63:7"},"returnParameters":{"id":5851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5850,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5860,"src":"5931:13:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5849,"name":"string","nodeType":"ElementaryTypeName","src":"5931:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5930:15:7"},"scope":5914,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5880,"nodeType":"FunctionDefinition","src":"6019:200:7","nodes":[],"body":{"id":5879,"nodeType":"Block","src":"6156:63:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":5874,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5862,"src":"6192:7:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5875,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5864,"src":"6201:3:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5876,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5867,"src":"6206:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}],"expression":{"id":5872,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"6173:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6176:15:7","memberName":"serializeString","nodeType":"MemberAccess","referencedDeclaration":8965,"src":"6173:18:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,string memory[] memory) external returns (string memory)"}},"id":5877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6173:39:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":5871,"id":5878,"nodeType":"Return","src":"6166:46:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"6028:9:7","parameters":{"id":5868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5862,"mutability":"mutable","name":"jsonKey","nameLocation":"6052:7:7","nodeType":"VariableDeclaration","scope":5880,"src":"6038:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5861,"name":"string","nodeType":"ElementaryTypeName","src":"6038:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5864,"mutability":"mutable","name":"key","nameLocation":"6075:3:7","nodeType":"VariableDeclaration","scope":5880,"src":"6061:17:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5863,"name":"string","nodeType":"ElementaryTypeName","src":"6061:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5867,"mutability":"mutable","name":"value","nameLocation":"6096:5:7","nodeType":"VariableDeclaration","scope":5880,"src":"6080:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":5865,"name":"string","nodeType":"ElementaryTypeName","src":"6080:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":5866,"nodeType":"ArrayTypeName","src":"6080:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"6037:65:7"},"returnParameters":{"id":5871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5870,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5880,"src":"6137:13:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5869,"name":"string","nodeType":"ElementaryTypeName","src":"6137:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6136:15:7"},"scope":5914,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5895,"nodeType":"FunctionDefinition","src":"6225:111:7","nodes":[],"body":{"id":5894,"nodeType":"Block","src":"6292:44:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":5890,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5882,"src":"6315:7:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5891,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5884,"src":"6324:4:7","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":5887,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"6302:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6305:9:7","memberName":"writeJson","nodeType":"MemberAccess","referencedDeclaration":8984,"src":"6302:12:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory) external"}},"id":5892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6302:27:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5893,"nodeType":"ExpressionStatement","src":"6302:27:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"write","nameLocation":"6234:5:7","parameters":{"id":5885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5882,"mutability":"mutable","name":"jsonKey","nameLocation":"6254:7:7","nodeType":"VariableDeclaration","scope":5895,"src":"6240:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5881,"name":"string","nodeType":"ElementaryTypeName","src":"6240:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5884,"mutability":"mutable","name":"path","nameLocation":"6277:4:7","nodeType":"VariableDeclaration","scope":5895,"src":"6263:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5883,"name":"string","nodeType":"ElementaryTypeName","src":"6263:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6239:43:7"},"returnParameters":{"id":5886,"nodeType":"ParameterList","parameters":[],"src":"6292:0:7"},"scope":5914,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5913,"nodeType":"FunctionDefinition","src":"6342:145:7","nodes":[],"body":{"id":5912,"nodeType":"Block","src":"6433:54:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":5907,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5897,"src":"6456:7:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5908,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5899,"src":"6465:4:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5909,"name":"valueKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5901,"src":"6471:8:7","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"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5904,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"6443:2:7","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":5906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6446:9:7","memberName":"writeJson","nodeType":"MemberAccess","referencedDeclaration":8993,"src":"6443:12:7","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory,string memory) external"}},"id":5910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6443:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5911,"nodeType":"ExpressionStatement","src":"6443:37:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"write","nameLocation":"6351:5:7","parameters":{"id":5902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5897,"mutability":"mutable","name":"jsonKey","nameLocation":"6371:7:7","nodeType":"VariableDeclaration","scope":5913,"src":"6357:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5896,"name":"string","nodeType":"ElementaryTypeName","src":"6357:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5899,"mutability":"mutable","name":"path","nameLocation":"6394:4:7","nodeType":"VariableDeclaration","scope":5913,"src":"6380:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5898,"name":"string","nodeType":"ElementaryTypeName","src":"6380:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5901,"mutability":"mutable","name":"valueKey","nameLocation":"6414:8:7","nodeType":"VariableDeclaration","scope":5913,"src":"6400:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5900,"name":"string","nodeType":"ElementaryTypeName","src":"6400:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6356:67:7"},"returnParameters":{"id":5903,"nodeType":"ParameterList","parameters":[],"src":"6433:0:7"},"scope":5914,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"stdJson","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[5914],"name":"stdJson","nameLocation":"838:7:7","scope":5915,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":7} \ No newline at end of file diff --git a/out/StdMath.sol/stdMath.json b/out/StdMath.sol/stdMath.json deleted file mode 100644 index 092da3c7..00000000 --- a/out/StdMath.sol/stdMath.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212209e56f8a0c416909c86b6c810d73d8aadaca13fc37527babaa77f8c9906b9130664736f6c63430008160033","sourceMap":"65:1294:8:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212209e56f8a0c416909c86b6c810d73d8aadaca13fc37527babaa77f8c9906b9130664736f6c63430008160033","sourceMap":"65:1294:8:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/forge-std/src/StdMath.sol\":\"stdMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/forge-std/src/StdMath.sol":"stdMath"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/forge-std/src/StdMath.sol","id":6057,"exportedSymbols":{"stdMath":[6056]},"nodeType":"SourceUnit","src":"32:1328:8","nodes":[{"id":5916,"nodeType":"PragmaDirective","src":"32:31:8","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":6056,"nodeType":"ContractDefinition","src":"65:1294:8","nodes":[{"id":5920,"nodeType":"VariableDeclaration","src":"87:115:8","nodes":[],"constant":true,"mutability":"constant","name":"INT256_MIN","nameLocation":"111:10:8","scope":6056,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5917,"name":"int256","nodeType":"ElementaryTypeName","src":"87:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"id":5919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"124:78:8","subExpression":{"hexValue":"3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638","id":5918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"125:77:8","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"value":"57896044618658097711785492504343953926634992332820282019728792003956564819968"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const -578...(70 digits omitted)...9968"}},"visibility":"private"},{"id":5946,"nodeType":"FunctionDefinition","src":"209:306:8","nodes":[],"body":{"id":5945,"nodeType":"Block","src":"264:251:8","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5927,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5922,"src":"342:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":5928,"name":"INT256_MIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5920,"src":"347:10:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"342:15:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5933,"nodeType":"IfStatement","src":"338:130:8","trueBody":{"id":5932,"nodeType":"Block","src":"359:109:8","statements":[{"expression":{"hexValue":"3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638","id":5930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"380:77:8","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"value":"57896044618658097711785492504343953926634992332820282019728792003956564819968"},"functionReturnParameters":5926,"id":5931,"nodeType":"Return","src":"373:84:8"}]}},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5936,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5922,"src":"493:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"497:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"493:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":5941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"505:2:8","subExpression":{"id":5940,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5922,"src":"506:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":5942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"493:14:8","trueExpression":{"id":5939,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5922,"src":"501:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"485:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5934,"name":"uint256","nodeType":"ElementaryTypeName","src":"485:7:8","typeDescriptions":{}}},"id":5943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"485:23:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5926,"id":5944,"nodeType":"Return","src":"478:30:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"218:3:8","parameters":{"id":5923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5922,"mutability":"mutable","name":"a","nameLocation":"229:1:8","nodeType":"VariableDeclaration","scope":5946,"src":"222:8:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5921,"name":"int256","nodeType":"ElementaryTypeName","src":"222:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"221:10:8"},"returnParameters":{"id":5926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5925,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5946,"src":"255:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5924,"name":"uint256","nodeType":"ElementaryTypeName","src":"255:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"254:9:8"},"scope":6056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":5967,"nodeType":"FunctionDefinition","src":"521:114:8","nodes":[],"body":{"id":5966,"nodeType":"Block","src":"590:45:8","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5955,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5948,"src":"607:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":5956,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5950,"src":"611:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"607:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5961,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5950,"src":"623:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5962,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5948,"src":"627:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"623:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"607:21:8","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5958,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5948,"src":"615:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5959,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5950,"src":"619:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"615:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5954,"id":5965,"nodeType":"Return","src":"600:28:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"delta","nameLocation":"530:5:8","parameters":{"id":5951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5948,"mutability":"mutable","name":"a","nameLocation":"544:1:8","nodeType":"VariableDeclaration","scope":5967,"src":"536:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5947,"name":"uint256","nodeType":"ElementaryTypeName","src":"536:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5950,"mutability":"mutable","name":"b","nameLocation":"555:1:8","nodeType":"VariableDeclaration","scope":5967,"src":"547:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5949,"name":"uint256","nodeType":"ElementaryTypeName","src":"547:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"535:22:8"},"returnParameters":{"id":5954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5953,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5967,"src":"581:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5952,"name":"uint256","nodeType":"ElementaryTypeName","src":"581:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"580:9:8"},"scope":6056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6003,"nodeType":"FunctionDefinition","src":"641:352:8","nodes":[],"body":{"id":6002,"nodeType":"Block","src":"708:285:8","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5976,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5969,"src":"847:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":5977,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5971,"src":"851:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"847:5:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":5979,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"846:7:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":5981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"856:2:8","subExpression":{"hexValue":"31","id":5980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"857:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"src":"846:12:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5993,"nodeType":"IfStatement","src":"842:71:8","trueBody":{"id":5992,"nodeType":"Block","src":"860:53:8","statements":[{"expression":{"arguments":[{"arguments":[{"id":5985,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5969,"src":"891:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5984,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5946,"src":"887:3:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":5986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"887:6:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":5988,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5971,"src":"899:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5987,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5946,"src":"895:3:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":5989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"895:6:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5983,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[5967,6003],"referencedDeclaration":5967,"src":"881:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":5990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"881:21:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5975,"id":5991,"nodeType":"Return","src":"874:28:8"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5995,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5969,"src":"975:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5994,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5946,"src":"971:3:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":5996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"971:6:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":5998,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5971,"src":"984:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5997,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5946,"src":"980:3:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":5999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"980:6:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"971:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5975,"id":6001,"nodeType":"Return","src":"964:22:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"delta","nameLocation":"650:5:8","parameters":{"id":5972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5969,"mutability":"mutable","name":"a","nameLocation":"663:1:8","nodeType":"VariableDeclaration","scope":6003,"src":"656:8:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5968,"name":"int256","nodeType":"ElementaryTypeName","src":"656:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":5971,"mutability":"mutable","name":"b","nameLocation":"673:1:8","nodeType":"VariableDeclaration","scope":6003,"src":"666:8:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5970,"name":"int256","nodeType":"ElementaryTypeName","src":"666:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"655:20:8"},"returnParameters":{"id":5975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5974,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6003,"src":"699:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5973,"name":"uint256","nodeType":"ElementaryTypeName","src":"699:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"698:9:8"},"scope":6056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6026,"nodeType":"FunctionDefinition","src":"999:160:8","nodes":[],"body":{"id":6025,"nodeType":"Block","src":"1075:84:8","nodes":[],"statements":[{"assignments":[6013],"declarations":[{"constant":false,"id":6013,"mutability":"mutable","name":"absDelta","nameLocation":"1093:8:8","nodeType":"VariableDeclaration","scope":6025,"src":"1085:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6012,"name":"uint256","nodeType":"ElementaryTypeName","src":"1085:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6018,"initialValue":{"arguments":[{"id":6015,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6005,"src":"1110:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6016,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6007,"src":"1113:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6014,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[5967,6003],"referencedDeclaration":5967,"src":"1104:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":6017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1104:11:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1085:30:8"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6019,"name":"absDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6013,"src":"1133:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31653138","id":6020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1144:4:8","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"1133:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6022,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6007,"src":"1151:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1133:19:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6011,"id":6024,"nodeType":"Return","src":"1126:26:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"percentDelta","nameLocation":"1008:12:8","parameters":{"id":6008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6005,"mutability":"mutable","name":"a","nameLocation":"1029:1:8","nodeType":"VariableDeclaration","scope":6026,"src":"1021:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6004,"name":"uint256","nodeType":"ElementaryTypeName","src":"1021:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6007,"mutability":"mutable","name":"b","nameLocation":"1040:1:8","nodeType":"VariableDeclaration","scope":6026,"src":"1032:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6006,"name":"uint256","nodeType":"ElementaryTypeName","src":"1032:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1020:22:8"},"returnParameters":{"id":6011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6010,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6026,"src":"1066:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6009,"name":"uint256","nodeType":"ElementaryTypeName","src":"1066:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1065:9:8"},"scope":6056,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6055,"nodeType":"FunctionDefinition","src":"1165:192:8","nodes":[],"body":{"id":6054,"nodeType":"Block","src":"1239:118:8","nodes":[],"statements":[{"assignments":[6036],"declarations":[{"constant":false,"id":6036,"mutability":"mutable","name":"absDelta","nameLocation":"1257:8:8","nodeType":"VariableDeclaration","scope":6054,"src":"1249:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6035,"name":"uint256","nodeType":"ElementaryTypeName","src":"1249:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6041,"initialValue":{"arguments":[{"id":6038,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6028,"src":"1274:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":6039,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6030,"src":"1277:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6037,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[5967,6003],"referencedDeclaration":6003,"src":"1268:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$","typeString":"function (int256,int256) pure returns (uint256)"}},"id":6040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1268:11:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1249:30:8"},{"assignments":[6043],"declarations":[{"constant":false,"id":6043,"mutability":"mutable","name":"absB","nameLocation":"1297:4:8","nodeType":"VariableDeclaration","scope":6054,"src":"1289:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6042,"name":"uint256","nodeType":"ElementaryTypeName","src":"1289:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6047,"initialValue":{"arguments":[{"id":6045,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6030,"src":"1308:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6044,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5946,"src":"1304:3:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":6046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1304:6:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1289:21:8"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6048,"name":"absDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6036,"src":"1328:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31653138","id":6049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1339:4:8","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"1328:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6051,"name":"absB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6043,"src":"1346:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1328:22:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6034,"id":6053,"nodeType":"Return","src":"1321:29:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"percentDelta","nameLocation":"1174:12:8","parameters":{"id":6031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6028,"mutability":"mutable","name":"a","nameLocation":"1194:1:8","nodeType":"VariableDeclaration","scope":6055,"src":"1187:8:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6027,"name":"int256","nodeType":"ElementaryTypeName","src":"1187:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":6030,"mutability":"mutable","name":"b","nameLocation":"1204:1:8","nodeType":"VariableDeclaration","scope":6055,"src":"1197:8:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6029,"name":"int256","nodeType":"ElementaryTypeName","src":"1197:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1186:20:8"},"returnParameters":{"id":6034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6033,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6055,"src":"1230:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6032,"name":"uint256","nodeType":"ElementaryTypeName","src":"1230:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1229:9:8"},"scope":6056,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"stdMath","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[6056],"name":"stdMath","nameLocation":"73:7:8","scope":6057,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":8} \ No newline at end of file diff --git a/out/StdStorage.sol/stdStorage.json b/out/StdStorage.sol/stdStorage.json deleted file mode 100644 index 82248a1a..00000000 --- a/out/StdStorage.sol/stdStorage.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220f829d201f187a639dfa79b2f4f6471daa2aa50cc0f22bfbce41b8d34b420e11d64736f6c63430008160033","sourceMap":"7347:4527:9:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220f829d201f187a639dfa79b2f4f6471daa2aa50cc0f22bfbce41b8d34b420e11d64736f6c63430008160033","sourceMap":"7347:4527:9:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/forge-std/src/StdStorage.sol\":\"stdStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/forge-std/src/StdStorage.sol":"stdStorage"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/forge-std/src/StdStorage.sol","id":7523,"exportedSymbols":{"StdStorage":[6088],"Vm":[9352],"stdStorage":[7522],"stdStorageSafe":[6981]},"nodeType":"SourceUnit","src":"32:11843:9","nodes":[{"id":6058,"nodeType":"PragmaDirective","src":"32:31:9","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":6060,"nodeType":"ImportDirective","src":"65:28:9","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":7523,"sourceUnit":9353,"symbolAliases":[{"foreign":{"id":6059,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9352,"src":"73:2:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6088,"nodeType":"StructDefinition","src":"95:271:9","nodes":[],"canonicalName":"StdStorage","members":[{"constant":false,"id":6068,"mutability":"mutable","name":"slots","nameLocation":"186:5:9","nodeType":"VariableDeclaration","scope":6088,"src":"119:72:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))"},"typeName":{"id":6067,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6061,"name":"address","nodeType":"ElementaryTypeName","src":"127:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"119:66:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6066,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6062,"name":"bytes4","nodeType":"ElementaryTypeName","src":"146:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Mapping","src":"138:46:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6065,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6063,"name":"bytes32","nodeType":"ElementaryTypeName","src":"164:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"156:27:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6064,"name":"uint256","nodeType":"ElementaryTypeName","src":"175:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}}},"visibility":"internal"},{"constant":false,"id":6076,"mutability":"mutable","name":"finds","nameLocation":"261:5:9","nodeType":"VariableDeclaration","scope":6088,"src":"197:69:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))"},"typeName":{"id":6075,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6069,"name":"address","nodeType":"ElementaryTypeName","src":"205:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"197:63:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6074,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6070,"name":"bytes4","nodeType":"ElementaryTypeName","src":"224:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Mapping","src":"216:43:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6073,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6071,"name":"bytes32","nodeType":"ElementaryTypeName","src":"242:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"234:24:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6072,"name":"bool","nodeType":"ElementaryTypeName","src":"253:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}}},"visibility":"internal"},{"constant":false,"id":6079,"mutability":"mutable","name":"_keys","nameLocation":"282:5:9","nodeType":"VariableDeclaration","scope":6088,"src":"272:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":6077,"name":"bytes32","nodeType":"ElementaryTypeName","src":"272:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6078,"nodeType":"ArrayTypeName","src":"272:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":6081,"mutability":"mutable","name":"_sig","nameLocation":"300:4:9","nodeType":"VariableDeclaration","scope":6088,"src":"293:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6080,"name":"bytes4","nodeType":"ElementaryTypeName","src":"293:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":6083,"mutability":"mutable","name":"_depth","nameLocation":"318:6:9","nodeType":"VariableDeclaration","scope":6088,"src":"310:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6082,"name":"uint256","nodeType":"ElementaryTypeName","src":"310:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6085,"mutability":"mutable","name":"_target","nameLocation":"338:7:9","nodeType":"VariableDeclaration","scope":6088,"src":"330:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6084,"name":"address","nodeType":"ElementaryTypeName","src":"330:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6087,"mutability":"mutable","name":"_set","nameLocation":"359:4:9","nodeType":"VariableDeclaration","scope":6088,"src":"351:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6086,"name":"bytes32","nodeType":"ElementaryTypeName","src":"351:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"StdStorage","nameLocation":"102:10:9","scope":7523,"visibility":"public"},{"id":6981,"nodeType":"ContractDefinition","src":"368:6977:9","nodes":[{"id":6098,"nodeType":"EventDefinition","src":"397:74:9","nodes":[],"anonymous":false,"eventSelector":"9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed","name":"SlotFound","nameLocation":"403:9:9","parameters":{"id":6097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6090,"indexed":false,"mutability":"mutable","name":"who","nameLocation":"421:3:9","nodeType":"VariableDeclaration","scope":6098,"src":"413:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6089,"name":"address","nodeType":"ElementaryTypeName","src":"413:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6092,"indexed":false,"mutability":"mutable","name":"fsig","nameLocation":"433:4:9","nodeType":"VariableDeclaration","scope":6098,"src":"426:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6091,"name":"bytes4","nodeType":"ElementaryTypeName","src":"426:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":6094,"indexed":false,"mutability":"mutable","name":"keysHash","nameLocation":"447:8:9","nodeType":"VariableDeclaration","scope":6098,"src":"439:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6093,"name":"bytes32","nodeType":"ElementaryTypeName","src":"439:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6096,"indexed":false,"mutability":"mutable","name":"slot","nameLocation":"465:4:9","nodeType":"VariableDeclaration","scope":6098,"src":"457:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6095,"name":"uint256","nodeType":"ElementaryTypeName","src":"457:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"412:58:9"}},{"id":6104,"nodeType":"EventDefinition","src":"476:54:9","nodes":[],"anonymous":false,"eventSelector":"080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5","name":"WARNING_UninitedSlot","nameLocation":"482:20:9","parameters":{"id":6103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6100,"indexed":false,"mutability":"mutable","name":"who","nameLocation":"511:3:9","nodeType":"VariableDeclaration","scope":6104,"src":"503:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6099,"name":"address","nodeType":"ElementaryTypeName","src":"503:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6102,"indexed":false,"mutability":"mutable","name":"slot","nameLocation":"524:4:9","nodeType":"VariableDeclaration","scope":6104,"src":"516:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6101,"name":"uint256","nodeType":"ElementaryTypeName","src":"516:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"502:27:9"}},{"id":6121,"nodeType":"VariableDeclaration","src":"536:84:9","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"556:2:9","scope":6981,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"},"typeName":{"id":6106,"nodeType":"UserDefinedTypeName","pathNode":{"id":6105,"name":"Vm","nameLocations":["536:2:9"],"nodeType":"IdentifierPath","referencedDeclaration":9352,"src":"536:2:9"},"referencedDeclaration":9352,"src":"536:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":6115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"598:17:9","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":6114,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"588:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"588:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"580:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6112,"name":"uint256","nodeType":"ElementaryTypeName","src":"580:7:9","typeDescriptions":{}}},"id":6117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"580:37:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"572:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":6110,"name":"uint160","nodeType":"ElementaryTypeName","src":"572:7:9","typeDescriptions":{}}},"id":6118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"572:46:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":6109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"564:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6108,"name":"address","nodeType":"ElementaryTypeName","src":"564:7:9","typeDescriptions":{}}},"id":6119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"564:55:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6107,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9352,"src":"561:2:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$9352_$","typeString":"type(contract Vm)"}},"id":6120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"561:59:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"visibility":"private"},{"id":6139,"nodeType":"FunctionDefinition","src":"627:123:9","nodes":[],"body":{"id":6138,"nodeType":"Block","src":"694:56:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":6133,"name":"sigStr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6123,"src":"734:6:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"728:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":6131,"name":"bytes","nodeType":"ElementaryTypeName","src":"728:5:9","typeDescriptions":{}}},"id":6134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"728:13:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6130,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"718:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"718:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6129,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"711:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":6128,"name":"bytes4","nodeType":"ElementaryTypeName","src":"711:6:9","typeDescriptions":{}}},"id":6136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"711:32:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":6127,"id":6137,"nodeType":"Return","src":"704:39:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sigs","nameLocation":"636:4:9","parameters":{"id":6124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6123,"mutability":"mutable","name":"sigStr","nameLocation":"655:6:9","nodeType":"VariableDeclaration","scope":6139,"src":"641:20:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6122,"name":"string","nodeType":"ElementaryTypeName","src":"641:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"640:22:9"},"returnParameters":{"id":6127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6126,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6139,"src":"686:6:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6125,"name":"bytes4","nodeType":"ElementaryTypeName","src":"686:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"685:8:9"},"scope":6981,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6584,"nodeType":"FunctionDefinition","src":"1264:3205:9","nodes":[],"body":{"id":6583,"nodeType":"Block","src":"1330:3139:9","nodes":[],"statements":[{"assignments":[6149],"declarations":[{"constant":false,"id":6149,"mutability":"mutable","name":"who","nameLocation":"1348:3:9","nodeType":"VariableDeclaration","scope":6583,"src":"1340:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6148,"name":"address","nodeType":"ElementaryTypeName","src":"1340:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6152,"initialValue":{"expression":{"id":6150,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"1354:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1359:7:9","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":6085,"src":"1354:12:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1340:26:9"},{"assignments":[6154],"declarations":[{"constant":false,"id":6154,"mutability":"mutable","name":"fsig","nameLocation":"1383:4:9","nodeType":"VariableDeclaration","scope":6583,"src":"1376:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6153,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1376:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":6157,"initialValue":{"expression":{"id":6155,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"1390:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6156,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1395:4:9","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":6081,"src":"1390:9:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"1376:23:9"},{"assignments":[6159],"declarations":[{"constant":false,"id":6159,"mutability":"mutable","name":"field_depth","nameLocation":"1417:11:9","nodeType":"VariableDeclaration","scope":6583,"src":"1409:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6158,"name":"uint256","nodeType":"ElementaryTypeName","src":"1409:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6162,"initialValue":{"expression":{"id":6160,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"1431:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1436:6:9","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":6083,"src":"1431:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1409:33:9"},{"assignments":[6167],"declarations":[{"constant":false,"id":6167,"mutability":"mutable","name":"ins","nameLocation":"1469:3:9","nodeType":"VariableDeclaration","scope":6583,"src":"1452:20:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":6165,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1452:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6166,"nodeType":"ArrayTypeName","src":"1452:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":6170,"initialValue":{"expression":{"id":6168,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"1475:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1480:5:9","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":6079,"src":"1475:10:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1452:33:9"},{"condition":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":6171,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"1536:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1541:5:9","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":6076,"src":"1536:10:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))"}},"id":6174,"indexExpression":{"id":6173,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"1547:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1536:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => bool))"}},"id":6176,"indexExpression":{"id":6175,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"1552:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1536:21:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":6184,"indexExpression":{"arguments":[{"arguments":[{"id":6180,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"1585:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":6181,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"1590:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6178,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1568:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6179,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1572:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"1568:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1568:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6177,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1558:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1558:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1536:68:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6201,"nodeType":"IfStatement","src":"1532:174:9","trueBody":{"id":6200,"nodeType":"Block","src":"1606:100:9","statements":[{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":6185,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"1627:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1632:5:9","memberName":"slots","nodeType":"MemberAccess","referencedDeclaration":6068,"src":"1627:10:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))"}},"id":6188,"indexExpression":{"id":6187,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"1638:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1627:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => uint256))"}},"id":6190,"indexExpression":{"id":6189,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"1643:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1627:21:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":6198,"indexExpression":{"arguments":[{"arguments":[{"id":6194,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"1676:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":6195,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"1681:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6192,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1659:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1663:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"1659:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1659:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6191,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1649:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1649:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1627:68:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6147,"id":6199,"nodeType":"Return","src":"1620:75:9"}]}},{"assignments":[6203],"declarations":[{"constant":false,"id":6203,"mutability":"mutable","name":"cald","nameLocation":"1728:4:9","nodeType":"VariableDeclaration","scope":6583,"src":"1715:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6202,"name":"bytes","nodeType":"ElementaryTypeName","src":"1715:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6211,"initialValue":{"arguments":[{"id":6206,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"1752:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"id":6208,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"1766:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":6207,"name":"flatten","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6980,"src":"1758:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32[] memory) pure returns (bytes memory)"}},"id":6209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1758:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6204,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1735:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1739:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"1735:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1735:36:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1715:56:9"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6212,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"1781:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":6214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1784:6:9","memberName":"record","nodeType":"MemberAccess","referencedDeclaration":8553,"src":"1781:9:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":6215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1781:11:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6216,"nodeType":"ExpressionStatement","src":"1781:11:9"},{"assignments":[6218],"declarations":[{"constant":false,"id":6218,"mutability":"mutable","name":"fdat","nameLocation":"1810:4:9","nodeType":"VariableDeclaration","scope":6583,"src":"1802:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6217,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1802:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":6219,"nodeType":"VariableDeclarationStatement","src":"1802:12:9"},{"id":6236,"nodeType":"Block","src":"1824:128:9","statements":[{"assignments":[null,6221],"declarations":[null,{"constant":false,"id":6221,"mutability":"mutable","name":"rdat","nameLocation":"1854:4:9","nodeType":"VariableDeclaration","scope":6236,"src":"1841:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6220,"name":"bytes","nodeType":"ElementaryTypeName","src":"1841:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6226,"initialValue":{"arguments":[{"id":6224,"name":"cald","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6203,"src":"1877:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6222,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"1862:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1866:10:9","memberName":"staticcall","nodeType":"MemberAccess","src":"1862:14:9","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":6225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1862:20:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1838:44:9"},{"expression":{"id":6234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6227,"name":"fdat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6218,"src":"1896:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6229,"name":"rdat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"1918:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":6230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1924:2:9","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":6231,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"1929:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1924:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6228,"name":"bytesToBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6939,"src":"1903:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (bytes memory,uint256) pure returns (bytes32)"}},"id":6233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1903:38:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1896:45:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6235,"nodeType":"ExpressionStatement","src":"1896:45:9"}]},{"assignments":[6241,null],"declarations":[{"constant":false,"id":6241,"mutability":"mutable","name":"reads","nameLocation":"1980:5:9","nodeType":"VariableDeclaration","scope":6583,"src":"1963:22:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":6239,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1963:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6240,"nodeType":"ArrayTypeName","src":"1963:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},null],"id":6249,"initialValue":{"arguments":[{"arguments":[{"id":6246,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"2010:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2002:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6244,"name":"address","nodeType":"ElementaryTypeName","src":"2002:7:9","typeDescriptions":{}}},"id":6247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2002:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6242,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"1990:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":6243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1993:8:9","memberName":"accesses","nodeType":"MemberAccess","referencedDeclaration":8564,"src":"1990:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (address) external returns (bytes32[] memory,bytes32[] memory)"}},"id":6248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1990:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"tuple(bytes32[] memory,bytes32[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"1962:53:9"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6250,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"2029:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2035:6:9","memberName":"length","nodeType":"MemberAccess","src":"2029:12:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":6252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2045:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2029:17:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6352,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"2786:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2792:6:9","memberName":"length","nodeType":"MemberAccess","src":"2786:12:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":6354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2801:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2786:16:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6531,"nodeType":"Block","src":"3986:107:9","statements":[{"expression":{"arguments":[{"hexValue":"66616c7365","id":6527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4008:5:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"73746453746f726167652066696e642853746453746f72616765293a204e6f2073746f726167652075736520646574656374656420666f72207461726765742e","id":6528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4015:66:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_328ff448bebe6b9a52a670e66989b0a23c94fd0cbd86c30e5432c6ddc5340283","typeString":"literal_string \"stdStorage find(StdStorage): No storage use detected for target.\""},"value":"stdStorage find(StdStorage): No storage use detected for target."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_328ff448bebe6b9a52a670e66989b0a23c94fd0cbd86c30e5432c6ddc5340283","typeString":"literal_string \"stdStorage find(StdStorage): No storage use detected for target.\""}],"id":6526,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4000:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4000:82:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6530,"nodeType":"ExpressionStatement","src":"4000:82:9"}]},"id":6532,"nodeType":"IfStatement","src":"2782:1311:9","trueBody":{"id":6525,"nodeType":"Block","src":"2804:1176:9","statements":[{"body":{"id":6523,"nodeType":"Block","src":"2861:1109:9","statements":[{"assignments":[6368],"declarations":[{"constant":false,"id":6368,"mutability":"mutable","name":"prev","nameLocation":"2887:4:9","nodeType":"VariableDeclaration","scope":6523,"src":"2879:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6367,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2879:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":6376,"initialValue":{"arguments":[{"id":6371,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"2902:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6372,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"2907:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6374,"indexExpression":{"id":6373,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"2913:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2907:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":6369,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"2894:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":6370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2897:4:9","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":8235,"src":"2894:7:9","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":6375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2894:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2879:37:9"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":6382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6377,"name":"prev","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6368,"src":"2938:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2954:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2946:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6378,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2946:7:9","typeDescriptions":{}}},"id":6381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2946:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2938:18:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6394,"nodeType":"IfStatement","src":"2934:114:9","trueBody":{"id":6393,"nodeType":"Block","src":"2958:90:9","statements":[{"eventCall":{"arguments":[{"id":6384,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"3006:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"baseExpression":{"id":6387,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"3019:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6389,"indexExpression":{"id":6388,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"3025:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3019:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3011:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6385,"name":"uint256","nodeType":"ElementaryTypeName","src":"3011:7:9","typeDescriptions":{}}},"id":6390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3011:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6383,"name":"WARNING_UninitedSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6104,"src":"2985:20:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2985:44:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6392,"nodeType":"EmitStatement","src":"2980:49:9"}]}},{"expression":{"arguments":[{"id":6398,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"3099:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6399,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"3104:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6401,"indexExpression":{"id":6400,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"3110:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3104:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"1337","id":6404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"3122:9:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_2636a8beb2c41b8ccafa9a55a5a5e333892a83b491df3a67d2768946a9f9c6dc","typeString":"literal_string hex\"1337\""},"value":"\u00137"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2636a8beb2c41b8ccafa9a55a5a5e333892a83b491df3a67d2768946a9f9c6dc","typeString":"literal_string hex\"1337\""}],"id":6403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3114:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6402,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3114:7:9","typeDescriptions":{}}},"id":6405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3114:18:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":6395,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"3090:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":6397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3093:5:9","memberName":"store","nodeType":"MemberAccess","referencedDeclaration":9063,"src":"3090:8:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,bytes32) external"}},"id":6406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3090:43:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6407,"nodeType":"ExpressionStatement","src":"3090:43:9"},{"assignments":[6409],"declarations":[{"constant":false,"id":6409,"mutability":"mutable","name":"success","nameLocation":"3156:7:9","nodeType":"VariableDeclaration","scope":6523,"src":"3151:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6408,"name":"bool","nodeType":"ElementaryTypeName","src":"3151:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":6410,"nodeType":"VariableDeclarationStatement","src":"3151:12:9"},{"assignments":[6412],"declarations":[{"constant":false,"id":6412,"mutability":"mutable","name":"rdat","nameLocation":"3194:4:9","nodeType":"VariableDeclaration","scope":6523,"src":"3181:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6411,"name":"bytes","nodeType":"ElementaryTypeName","src":"3181:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6413,"nodeType":"VariableDeclarationStatement","src":"3181:17:9"},{"id":6432,"nodeType":"Block","src":"3216:146:9","statements":[{"expression":{"id":6421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":6414,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6409,"src":"3239:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6415,"name":"rdat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6412,"src":"3248:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":6416,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"3238:15:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6419,"name":"cald","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6203,"src":"3271:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6417,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"3256:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3260:10:9","memberName":"staticcall","nodeType":"MemberAccess","src":"3256:14:9","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":6420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3256:20:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"3238:38:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6422,"nodeType":"ExpressionStatement","src":"3238:38:9"},{"expression":{"id":6430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6423,"name":"fdat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6218,"src":"3298:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6425,"name":"rdat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6412,"src":"3320:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":6426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3326:2:9","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":6427,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"3331:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3326:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6424,"name":"bytesToBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6939,"src":"3305:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (bytes memory,uint256) pure returns (bytes32)"}},"id":6429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3305:38:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3298:45:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6431,"nodeType":"ExpressionStatement","src":"3298:45:9"}]},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6433,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6409,"src":"3384:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":6439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6434,"name":"fdat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6218,"src":"3395:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"1337","id":6437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"3411:9:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_2636a8beb2c41b8ccafa9a55a5a5e333892a83b491df3a67d2768946a9f9c6dc","typeString":"literal_string hex\"1337\""},"value":"\u00137"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2636a8beb2c41b8ccafa9a55a5a5e333892a83b491df3a67d2768946a9f9c6dc","typeString":"literal_string hex\"1337\""}],"id":6436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3403:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6435,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3403:7:9","typeDescriptions":{}}},"id":6438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3403:18:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3395:26:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3384:37:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6512,"nodeType":"IfStatement","src":"3380:529:9","trueBody":{"id":6511,"nodeType":"Block","src":"3423:486:9","statements":[{"eventCall":{"arguments":[{"id":6442,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"3529:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6443,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"3534:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"arguments":[{"id":6447,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"3567:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":6448,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"3572:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6445,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3550:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3554:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"3550:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3550:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6444,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3540:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3540:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"baseExpression":{"id":6453,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"3595:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6455,"indexExpression":{"id":6454,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"3601:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3595:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3587:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6451,"name":"uint256","nodeType":"ElementaryTypeName","src":"3587:7:9","typeDescriptions":{}}},"id":6456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3587:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6441,"name":"SlotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6098,"src":"3519:9:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes4_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (address,bytes4,bytes32,uint256)"}},"id":6457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3519:86:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6458,"nodeType":"EmitStatement","src":"3514:91:9"},{"expression":{"id":6480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":6459,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"3627:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6470,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3632:5:9","memberName":"slots","nodeType":"MemberAccess","referencedDeclaration":6068,"src":"3627:10:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))"}},"id":6471,"indexExpression":{"id":6461,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"3638:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3627:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => uint256))"}},"id":6472,"indexExpression":{"id":6462,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"3643:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3627:21:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":6473,"indexExpression":{"arguments":[{"arguments":[{"id":6466,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"3676:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":6467,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"3681:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6464,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3659:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6465,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3663:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"3659:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3659:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6463,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3649:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3649:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3627:68:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":6476,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"3706:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6478,"indexExpression":{"id":6477,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"3712:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3706:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3698:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6474,"name":"uint256","nodeType":"ElementaryTypeName","src":"3698:7:9","typeDescriptions":{}}},"id":6479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3698:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3627:88:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6481,"nodeType":"ExpressionStatement","src":"3627:88:9"},{"expression":{"id":6498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":6482,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"3737:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3742:5:9","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":6076,"src":"3737:10:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))"}},"id":6494,"indexExpression":{"id":6484,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"3748:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3737:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => bool))"}},"id":6495,"indexExpression":{"id":6485,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"3753:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3737:21:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":6496,"indexExpression":{"arguments":[{"arguments":[{"id":6489,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"3786:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":6490,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"3791:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6487,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3769:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6488,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3773:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"3769:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3769:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6486,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3759:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3759:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3737:68:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":6497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3808:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3737:75:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6499,"nodeType":"ExpressionStatement","src":"3737:75:9"},{"expression":{"arguments":[{"id":6503,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"3843:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6504,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"3848:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6506,"indexExpression":{"id":6505,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"3854:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3848:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6507,"name":"prev","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6368,"src":"3858:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":6500,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"3834:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":6502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3837:5:9","memberName":"store","nodeType":"MemberAccess","referencedDeclaration":9063,"src":"3834:8:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,bytes32) external"}},"id":6508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3834:29:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6509,"nodeType":"ExpressionStatement","src":"3834:29:9"},{"id":6510,"nodeType":"Break","src":"3885:5:9"}]}},{"expression":{"arguments":[{"id":6516,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"3935:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6517,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"3940:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6519,"indexExpression":{"id":6518,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"3946:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3940:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6520,"name":"prev","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6368,"src":"3950:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":6513,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"3926:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":6515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3929:5:9","memberName":"store","nodeType":"MemberAccess","referencedDeclaration":9063,"src":"3926:8:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,bytes32) external"}},"id":6521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3926:29:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6522,"nodeType":"ExpressionStatement","src":"3926:29:9"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6360,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"2838:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":6361,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"2842:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2848:6:9","memberName":"length","nodeType":"MemberAccess","src":"2842:12:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2838:16:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6524,"initializationExpression":{"assignments":[6357],"declarations":[{"constant":false,"id":6357,"mutability":"mutable","name":"i","nameLocation":"2831:1:9","nodeType":"VariableDeclaration","scope":6524,"src":"2823:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6356,"name":"uint256","nodeType":"ElementaryTypeName","src":"2823:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6359,"initialValue":{"hexValue":"30","id":6358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2835:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2823:13:9"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":6365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2856:3:9","subExpression":{"id":6364,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"2856:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6366,"nodeType":"ExpressionStatement","src":"2856:3:9"},"nodeType":"ForStatement","src":"2818:1152:9"}]}},"id":6533,"nodeType":"IfStatement","src":"2025:2068:9","trueBody":{"id":6351,"nodeType":"Block","src":"2048:728:9","statements":[{"assignments":[6255],"declarations":[{"constant":false,"id":6255,"mutability":"mutable","name":"curr","nameLocation":"2070:4:9","nodeType":"VariableDeclaration","scope":6351,"src":"2062:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6254,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2062:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":6263,"initialValue":{"arguments":[{"id":6258,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"2085:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6259,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"2090:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6261,"indexExpression":{"hexValue":"30","id":6260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2096:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2090:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":6256,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"2077:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":6257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2080:4:9","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":8235,"src":"2077:7:9","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":6262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2077:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2062:37:9"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":6269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6264,"name":"curr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6255,"src":"2117:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2133:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2125:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2125:7:9","typeDescriptions":{}}},"id":6268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2125:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2117:18:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6281,"nodeType":"IfStatement","src":"2113:106:9","trueBody":{"id":6280,"nodeType":"Block","src":"2137:82:9","statements":[{"eventCall":{"arguments":[{"id":6271,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"2181:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"baseExpression":{"id":6274,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"2194:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6276,"indexExpression":{"hexValue":"30","id":6275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2200:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2194:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2186:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6272,"name":"uint256","nodeType":"ElementaryTypeName","src":"2186:7:9","typeDescriptions":{}}},"id":6277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2186:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6270,"name":"WARNING_UninitedSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6104,"src":"2160:20:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2160:44:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6279,"nodeType":"EmitStatement","src":"2155:49:9"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":6284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6282,"name":"fdat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6218,"src":"2236:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6283,"name":"curr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6255,"src":"2244:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2236:12:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6291,"nodeType":"IfStatement","src":"2232:238:9","trueBody":{"id":6290,"nodeType":"Block","src":"2250:220:9","statements":[{"expression":{"arguments":[{"hexValue":"66616c7365","id":6286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2297:5:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"73746453746f726167652066696e642853746453746f72616765293a205061636b656420736c6f742e205468697320776f756c642063617573652064616e6765726f7573206f76657277726974696e6720616e642063757272656e746c792069736e277420737570706f727465642e","id":6287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2324:113:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_4bfa78e02b745efea2b29d358f6dc28382f5209b1d2b2dbeb8ef0862e74440b3","typeString":"literal_string \"stdStorage find(StdStorage): Packed slot. This would cause dangerous overwriting and currently isn't supported.\""},"value":"stdStorage find(StdStorage): Packed slot. This would cause dangerous overwriting and currently isn't supported."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4bfa78e02b745efea2b29d358f6dc28382f5209b1d2b2dbeb8ef0862e74440b3","typeString":"literal_string \"stdStorage find(StdStorage): Packed slot. This would cause dangerous overwriting and currently isn't supported.\""}],"id":6285,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2268:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2268:187:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6289,"nodeType":"ExpressionStatement","src":"2268:187:9"}]}},{"eventCall":{"arguments":[{"id":6293,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"2498:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6294,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"2503:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"arguments":[{"id":6298,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"2536:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":6299,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"2541:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6296,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2519:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2523:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"2519:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2519:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6295,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2509:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2509:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"baseExpression":{"id":6304,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"2564:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6306,"indexExpression":{"hexValue":"30","id":6305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2570:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2564:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2556:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6302,"name":"uint256","nodeType":"ElementaryTypeName","src":"2556:7:9","typeDescriptions":{}}},"id":6307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2556:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6292,"name":"SlotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6098,"src":"2488:9:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes4_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (address,bytes4,bytes32,uint256)"}},"id":6308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2488:86:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6309,"nodeType":"EmitStatement","src":"2483:91:9"},{"expression":{"id":6331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":6310,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"2588:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2593:5:9","memberName":"slots","nodeType":"MemberAccess","referencedDeclaration":6068,"src":"2588:10:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))"}},"id":6322,"indexExpression":{"id":6312,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"2599:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2588:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => uint256))"}},"id":6323,"indexExpression":{"id":6313,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"2604:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2588:21:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":6324,"indexExpression":{"arguments":[{"arguments":[{"id":6317,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"2637:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":6318,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"2642:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6315,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2620:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2624:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"2620:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2620:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6314,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2610:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2610:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2588:68:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":6327,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"2667:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6329,"indexExpression":{"hexValue":"30","id":6328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2673:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2667:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6326,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2659:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6325,"name":"uint256","nodeType":"ElementaryTypeName","src":"2659:7:9","typeDescriptions":{}}},"id":6330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2659:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2588:88:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6332,"nodeType":"ExpressionStatement","src":"2588:88:9"},{"expression":{"id":6349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":6333,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"2690:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2695:5:9","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":6076,"src":"2690:10:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))"}},"id":6345,"indexExpression":{"id":6335,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"2701:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2690:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => bool))"}},"id":6346,"indexExpression":{"id":6336,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"2706:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2690:21:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":6347,"indexExpression":{"arguments":[{"arguments":[{"id":6340,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"2739:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":6341,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"2744:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6338,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2722:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2726:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"2722:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2722:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6337,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2712:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2712:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2690:68:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":6348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2761:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2690:75:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6350,"nodeType":"ExpressionStatement","src":"2690:75:9"}]}},{"expression":{"arguments":[{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":6535,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"4124:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6536,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4129:5:9","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":6076,"src":"4124:10:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))"}},"id":6538,"indexExpression":{"id":6537,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"4135:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4124:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => bool))"}},"id":6540,"indexExpression":{"id":6539,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"4140:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4124:21:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":6548,"indexExpression":{"arguments":[{"arguments":[{"id":6544,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"4173:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":6545,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"4178:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6542,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4156:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4160:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"4156:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4156:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6541,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4146:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4146:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4124:68:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"73746453746f726167652066696e642853746453746f72616765293a20536c6f74287329206e6f7420666f756e642e","id":6549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4206:49:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_47c274d4780c7bff83310cd576005a97888a2b2935c22f84e1e5282c1bfb39a8","typeString":"literal_string \"stdStorage find(StdStorage): Slot(s) not found.\""},"value":"stdStorage find(StdStorage): Slot(s) not found."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_47c274d4780c7bff83310cd576005a97888a2b2935c22f84e1e5282c1bfb39a8","typeString":"literal_string \"stdStorage find(StdStorage): Slot(s) not found.\""}],"id":6534,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4103:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4103:162:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6551,"nodeType":"ExpressionStatement","src":"4103:162:9"},{"expression":{"id":6554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4276:19:9","subExpression":{"expression":{"id":6552,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"4283:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6553,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4288:7:9","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":6085,"src":"4283:12:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6555,"nodeType":"ExpressionStatement","src":"4276:19:9"},{"expression":{"id":6558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4305:16:9","subExpression":{"expression":{"id":6556,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"4312:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4317:4:9","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":6081,"src":"4312:9:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6559,"nodeType":"ExpressionStatement","src":"4305:16:9"},{"expression":{"id":6562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4331:17:9","subExpression":{"expression":{"id":6560,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"4338:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4343:5:9","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":6079,"src":"4338:10:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6563,"nodeType":"ExpressionStatement","src":"4331:17:9"},{"expression":{"id":6566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4358:18:9","subExpression":{"expression":{"id":6564,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"4365:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4370:6:9","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":6083,"src":"4365:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6567,"nodeType":"ExpressionStatement","src":"4358:18:9"},{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":6568,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"4394:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4399:5:9","memberName":"slots","nodeType":"MemberAccess","referencedDeclaration":6068,"src":"4394:10:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))"}},"id":6571,"indexExpression":{"id":6570,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"4405:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4394:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => uint256))"}},"id":6573,"indexExpression":{"id":6572,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"4410:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4394:21:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":6581,"indexExpression":{"arguments":[{"arguments":[{"id":6577,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"4443:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":6578,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"4448:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6575,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4426:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4430:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"4426:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4426:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6574,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4416:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4416:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4394:68:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6147,"id":6582,"nodeType":"Return","src":"4387:75:9"}]},"documentation":{"id":6140,"nodeType":"StructuredDocumentation","src":"756:129:9","text":"@notice find an arbitrary storage slot given a function sig, input data, address of the contract and a value to check against"},"implemented":true,"kind":"function","modifiers":[],"name":"find","nameLocation":"1273:4:9","parameters":{"id":6144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6143,"mutability":"mutable","name":"self","nameLocation":"1297:4:9","nodeType":"VariableDeclaration","scope":6584,"src":"1278:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6142,"nodeType":"UserDefinedTypeName","pathNode":{"id":6141,"name":"StdStorage","nameLocations":["1278:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"1278:10:9"},"referencedDeclaration":6088,"src":"1278:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"1277:25:9"},"returnParameters":{"id":6147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6584,"src":"1321:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6145,"name":"uint256","nodeType":"ElementaryTypeName","src":"1321:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1320:9:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6604,"nodeType":"FunctionDefinition","src":"4475:156:9","nodes":[],"body":{"id":6603,"nodeType":"Block","src":"4571:60:9","nodes":[],"statements":[{"expression":{"id":6599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6595,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6587,"src":"4581:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6597,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4586:7:9","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":6085,"src":"4581:12:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6598,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6589,"src":"4596:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4581:22:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6600,"nodeType":"ExpressionStatement","src":"4581:22:9"},{"expression":{"id":6601,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6587,"src":"4620:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":6594,"id":6602,"nodeType":"Return","src":"4613:11:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"target","nameLocation":"4484:6:9","parameters":{"id":6590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6587,"mutability":"mutable","name":"self","nameLocation":"4510:4:9","nodeType":"VariableDeclaration","scope":6604,"src":"4491:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6586,"nodeType":"UserDefinedTypeName","pathNode":{"id":6585,"name":"StdStorage","nameLocations":["4491:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"4491:10:9"},"referencedDeclaration":6088,"src":"4491:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":6589,"mutability":"mutable","name":"_target","nameLocation":"4524:7:9","nodeType":"VariableDeclaration","scope":6604,"src":"4516:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6588,"name":"address","nodeType":"ElementaryTypeName","src":"4516:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4490:42:9"},"returnParameters":{"id":6594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6593,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6604,"src":"4551:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6592,"nodeType":"UserDefinedTypeName","pathNode":{"id":6591,"name":"StdStorage","nameLocations":["4551:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"4551:10:9"},"referencedDeclaration":6088,"src":"4551:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"4550:20:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6624,"nodeType":"FunctionDefinition","src":"4637:143:9","nodes":[],"body":{"id":6623,"nodeType":"Block","src":"4726:54:9","nodes":[],"statements":[{"expression":{"id":6619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6615,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6607,"src":"4736:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4741:4:9","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":6081,"src":"4736:9:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6618,"name":"_sig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6609,"src":"4748:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4736:16:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":6620,"nodeType":"ExpressionStatement","src":"4736:16:9"},{"expression":{"id":6621,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6607,"src":"4769:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":6614,"id":6622,"nodeType":"Return","src":"4762:11:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sig","nameLocation":"4646:3:9","parameters":{"id":6610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6607,"mutability":"mutable","name":"self","nameLocation":"4669:4:9","nodeType":"VariableDeclaration","scope":6624,"src":"4650:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6606,"nodeType":"UserDefinedTypeName","pathNode":{"id":6605,"name":"StdStorage","nameLocations":["4650:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"4650:10:9"},"referencedDeclaration":6088,"src":"4650:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":6609,"mutability":"mutable","name":"_sig","nameLocation":"4682:4:9","nodeType":"VariableDeclaration","scope":6624,"src":"4675:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6608,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4675:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"4649:38:9"},"returnParameters":{"id":6614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6613,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6624,"src":"4706:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6612,"nodeType":"UserDefinedTypeName","pathNode":{"id":6611,"name":"StdStorage","nameLocations":["4706:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"4706:10:9"},"referencedDeclaration":6088,"src":"4706:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"4705:20:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6646,"nodeType":"FunctionDefinition","src":"4786:156:9","nodes":[],"body":{"id":6645,"nodeType":"Block","src":"4882:60:9","nodes":[],"statements":[{"expression":{"id":6641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6635,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6627,"src":"4892:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4897:4:9","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":6081,"src":"4892:9:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6639,"name":"_sig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6629,"src":"4909:4:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6638,"name":"sigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6139,"src":"4904:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes4_$","typeString":"function (string memory) pure returns (bytes4)"}},"id":6640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4904:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4892:22:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":6642,"nodeType":"ExpressionStatement","src":"4892:22:9"},{"expression":{"id":6643,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6627,"src":"4931:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":6634,"id":6644,"nodeType":"Return","src":"4924:11:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sig","nameLocation":"4795:3:9","parameters":{"id":6630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6627,"mutability":"mutable","name":"self","nameLocation":"4818:4:9","nodeType":"VariableDeclaration","scope":6646,"src":"4799:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6626,"nodeType":"UserDefinedTypeName","pathNode":{"id":6625,"name":"StdStorage","nameLocations":["4799:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"4799:10:9"},"referencedDeclaration":6088,"src":"4799:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":6629,"mutability":"mutable","name":"_sig","nameLocation":"4838:4:9","nodeType":"VariableDeclaration","scope":6646,"src":"4824:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6628,"name":"string","nodeType":"ElementaryTypeName","src":"4824:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4798:45:9"},"returnParameters":{"id":6634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6633,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6646,"src":"4862:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6632,"nodeType":"UserDefinedTypeName","pathNode":{"id":6631,"name":"StdStorage","nameLocations":["4862:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"4862:10:9"},"referencedDeclaration":6088,"src":"4862:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"4861:20:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6677,"nodeType":"FunctionDefinition","src":"4948:179:9","nodes":[],"body":{"id":6676,"nodeType":"Block","src":"5042:85:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":6668,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6651,"src":"5092:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5084:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":6666,"name":"uint160","nodeType":"ElementaryTypeName","src":"5084:7:9","typeDescriptions":{}}},"id":6669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5084:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":6665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5076:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6664,"name":"uint256","nodeType":"ElementaryTypeName","src":"5076:7:9","typeDescriptions":{}}},"id":6670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5076:21:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5068:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5068:7:9","typeDescriptions":{}}},"id":6671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5068:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":6657,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6649,"src":"5052:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5057:5:9","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":6079,"src":"5052:10:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":6661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5063:4:9","memberName":"push","nodeType":"MemberAccess","src":"5052:15:9","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":6672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5052:47:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6673,"nodeType":"ExpressionStatement","src":"5052:47:9"},{"expression":{"id":6674,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6649,"src":"5116:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":6656,"id":6675,"nodeType":"Return","src":"5109:11:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"4957:8:9","parameters":{"id":6652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6649,"mutability":"mutable","name":"self","nameLocation":"4985:4:9","nodeType":"VariableDeclaration","scope":6677,"src":"4966:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6648,"nodeType":"UserDefinedTypeName","pathNode":{"id":6647,"name":"StdStorage","nameLocations":["4966:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"4966:10:9"},"referencedDeclaration":6088,"src":"4966:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":6651,"mutability":"mutable","name":"who","nameLocation":"4999:3:9","nodeType":"VariableDeclaration","scope":6677,"src":"4991:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6650,"name":"address","nodeType":"ElementaryTypeName","src":"4991:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4965:38:9"},"returnParameters":{"id":6656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6655,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6677,"src":"5022:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6654,"nodeType":"UserDefinedTypeName","pathNode":{"id":6653,"name":"StdStorage","nameLocations":["5022:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"5022:10:9"},"referencedDeclaration":6088,"src":"5022:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"5021:20:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6702,"nodeType":"FunctionDefinition","src":"5133:161:9","nodes":[],"body":{"id":6701,"nodeType":"Block","src":"5227:67:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":6695,"name":"amt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6682,"src":"5261:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5253:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6693,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5253:7:9","typeDescriptions":{}}},"id":6696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5253:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":6688,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6680,"src":"5237:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5242:5:9","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":6079,"src":"5237:10:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":6692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5248:4:9","memberName":"push","nodeType":"MemberAccess","src":"5237:15:9","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":6697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5237:29:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6698,"nodeType":"ExpressionStatement","src":"5237:29:9"},{"expression":{"id":6699,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6680,"src":"5283:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":6687,"id":6700,"nodeType":"Return","src":"5276:11:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"5142:8:9","parameters":{"id":6683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6680,"mutability":"mutable","name":"self","nameLocation":"5170:4:9","nodeType":"VariableDeclaration","scope":6702,"src":"5151:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6679,"nodeType":"UserDefinedTypeName","pathNode":{"id":6678,"name":"StdStorage","nameLocations":["5151:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"5151:10:9"},"referencedDeclaration":6088,"src":"5151:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":6682,"mutability":"mutable","name":"amt","nameLocation":"5184:3:9","nodeType":"VariableDeclaration","scope":6702,"src":"5176:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6681,"name":"uint256","nodeType":"ElementaryTypeName","src":"5176:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5150:38:9"},"returnParameters":{"id":6687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6686,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6702,"src":"5207:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6685,"nodeType":"UserDefinedTypeName","pathNode":{"id":6684,"name":"StdStorage","nameLocations":["5207:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"5207:10:9"},"referencedDeclaration":6088,"src":"5207:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"5206:20:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6724,"nodeType":"FunctionDefinition","src":"5300:152:9","nodes":[],"body":{"id":6723,"nodeType":"Block","src":"5394:58:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":6718,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6707,"src":"5420:3:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":6713,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6705,"src":"5404:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6716,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5409:5:9","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":6079,"src":"5404:10:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":6717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5415:4:9","memberName":"push","nodeType":"MemberAccess","src":"5404:15:9","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":6719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5404:20:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6720,"nodeType":"ExpressionStatement","src":"5404:20:9"},{"expression":{"id":6721,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6705,"src":"5441:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":6712,"id":6722,"nodeType":"Return","src":"5434:11:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"5309:8:9","parameters":{"id":6708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6705,"mutability":"mutable","name":"self","nameLocation":"5337:4:9","nodeType":"VariableDeclaration","scope":6724,"src":"5318:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6704,"nodeType":"UserDefinedTypeName","pathNode":{"id":6703,"name":"StdStorage","nameLocations":["5318:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"5318:10:9"},"referencedDeclaration":6088,"src":"5318:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":6707,"mutability":"mutable","name":"key","nameLocation":"5351:3:9","nodeType":"VariableDeclaration","scope":6724,"src":"5343:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6706,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5343:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5317:38:9"},"returnParameters":{"id":6712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6711,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6724,"src":"5374:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6710,"nodeType":"UserDefinedTypeName","pathNode":{"id":6709,"name":"StdStorage","nameLocations":["5374:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"5374:10:9"},"referencedDeclaration":6088,"src":"5374:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"5373:20:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6744,"nodeType":"FunctionDefinition","src":"5458:152:9","nodes":[],"body":{"id":6743,"nodeType":"Block","src":"5552:58:9","nodes":[],"statements":[{"expression":{"id":6739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6735,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6727,"src":"5562:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6737,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5567:6:9","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":6083,"src":"5562:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6738,"name":"_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6729,"src":"5576:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5562:20:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6740,"nodeType":"ExpressionStatement","src":"5562:20:9"},{"expression":{"id":6741,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6727,"src":"5599:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":6734,"id":6742,"nodeType":"Return","src":"5592:11:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"depth","nameLocation":"5467:5:9","parameters":{"id":6730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6727,"mutability":"mutable","name":"self","nameLocation":"5492:4:9","nodeType":"VariableDeclaration","scope":6744,"src":"5473:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6726,"nodeType":"UserDefinedTypeName","pathNode":{"id":6725,"name":"StdStorage","nameLocations":["5473:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"5473:10:9"},"referencedDeclaration":6088,"src":"5473:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":6729,"mutability":"mutable","name":"_depth","nameLocation":"5506:6:9","nodeType":"VariableDeclaration","scope":6744,"src":"5498:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6728,"name":"uint256","nodeType":"ElementaryTypeName","src":"5498:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5472:41:9"},"returnParameters":{"id":6734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6733,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6744,"src":"5532:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6732,"nodeType":"UserDefinedTypeName","pathNode":{"id":6731,"name":"StdStorage","nameLocations":["5532:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"5532:10:9"},"referencedDeclaration":6088,"src":"5532:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"5531:20:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6776,"nodeType":"FunctionDefinition","src":"5616:194:9","nodes":[],"body":{"id":6775,"nodeType":"Block","src":"5686:124:9","nodes":[],"statements":[{"assignments":[6753],"declarations":[{"constant":false,"id":6753,"mutability":"mutable","name":"t","nameLocation":"5704:1:9","nodeType":"VariableDeclaration","scope":6775,"src":"5696:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6752,"name":"address","nodeType":"ElementaryTypeName","src":"5696:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6756,"initialValue":{"expression":{"id":6754,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6747,"src":"5708:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5713:7:9","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":6085,"src":"5708:12:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5696:24:9"},{"assignments":[6758],"declarations":[{"constant":false,"id":6758,"mutability":"mutable","name":"s","nameLocation":"5738:1:9","nodeType":"VariableDeclaration","scope":6775,"src":"5730:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6757,"name":"uint256","nodeType":"ElementaryTypeName","src":"5730:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6762,"initialValue":{"arguments":[{"id":6760,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6747,"src":"5747:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":6759,"name":"find","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6584,"src":"5742:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct StdStorage storage pointer) returns (uint256)"}},"id":6761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5742:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5730:22:9"},{"expression":{"arguments":[{"arguments":[{"id":6767,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6753,"src":"5788:1:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":6770,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6758,"src":"5799:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5791:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6768,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5791:7:9","typeDescriptions":{}}},"id":6771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5791:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":6765,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"5780:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":6766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5783:4:9","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":8235,"src":"5780:7:9","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":6772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5780:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":6763,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5769:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5773:6:9","memberName":"encode","nodeType":"MemberAccess","src":"5769:10:9","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5769:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6751,"id":6774,"nodeType":"Return","src":"5762:41:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read","nameLocation":"5625:4:9","parameters":{"id":6748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6747,"mutability":"mutable","name":"self","nameLocation":"5649:4:9","nodeType":"VariableDeclaration","scope":6776,"src":"5630:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6746,"nodeType":"UserDefinedTypeName","pathNode":{"id":6745,"name":"StdStorage","nameLocations":["5630:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"5630:10:9"},"referencedDeclaration":6088,"src":"5630:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"5629:25:9"},"returnParameters":{"id":6751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6750,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6776,"src":"5672:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6749,"name":"bytes","nodeType":"ElementaryTypeName","src":"5672:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5671:14:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":6795,"nodeType":"FunctionDefinition","src":"5816:131:9","nodes":[],"body":{"id":6794,"nodeType":"Block","src":"5890:57:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":6787,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6779,"src":"5923:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":6786,"name":"read","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6776,"src":"5918:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct StdStorage storage pointer) returns (bytes memory)"}},"id":6788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5918:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5931:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5931:7:9","typeDescriptions":{}}}],"id":6791,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5930:9:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}],"expression":{"id":6784,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5907:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5911:6:9","memberName":"decode","nodeType":"MemberAccess","src":"5907:10:9","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5907:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":6783,"id":6793,"nodeType":"Return","src":"5900:40:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_bytes32","nameLocation":"5825:12:9","parameters":{"id":6780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6779,"mutability":"mutable","name":"self","nameLocation":"5857:4:9","nodeType":"VariableDeclaration","scope":6795,"src":"5838:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6778,"nodeType":"UserDefinedTypeName","pathNode":{"id":6777,"name":"StdStorage","nameLocations":["5838:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"5838:10:9"},"referencedDeclaration":6088,"src":"5838:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"5837:25:9"},"returnParameters":{"id":6783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6782,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6795,"src":"5881:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6781,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5881:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5880:9:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6826,"nodeType":"FunctionDefinition","src":"5953:279:9","nodes":[],"body":{"id":6825,"nodeType":"Block","src":"6021:211:9","nodes":[],"statements":[{"assignments":[6804],"declarations":[{"constant":false,"id":6804,"mutability":"mutable","name":"v","nameLocation":"6038:1:9","nodeType":"VariableDeclaration","scope":6825,"src":"6031:8:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6803,"name":"int256","nodeType":"ElementaryTypeName","src":"6031:6:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":6808,"initialValue":{"arguments":[{"id":6806,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6798,"src":"6051:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":6805,"name":"read_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6883,"src":"6042:8:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_int256_$","typeString":"function (struct StdStorage storage pointer) returns (int256)"}},"id":6807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6042:14:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6031:25:9"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6809,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6804,"src":"6070:1:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6075:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6070:6:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6814,"nodeType":"IfStatement","src":"6066:24:9","trueBody":{"expression":{"hexValue":"66616c7365","id":6812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6085:5:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":6802,"id":6813,"nodeType":"Return","src":"6078:12:9"}},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6815,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6804,"src":"6104:1:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":6816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6109:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6104:6:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6820,"nodeType":"IfStatement","src":"6100:23:9","trueBody":{"expression":{"hexValue":"74727565","id":6818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6119:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":6802,"id":6819,"nodeType":"Return","src":"6112:11:9"}},{"expression":{"arguments":[{"hexValue":"73746453746f7261676520726561645f626f6f6c2853746453746f72616765293a2043616e6e6f74206465636f64652e204d616b65207375726520796f75206172652072656164696e67206120626f6f6c2e","id":6822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6140:84:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_91e3b02d190bb3e407570bfe894974b331ad10ba40f732248485a8a79ed8e4f5","typeString":"literal_string \"stdStorage read_bool(StdStorage): Cannot decode. Make sure you are reading a bool.\""},"value":"stdStorage read_bool(StdStorage): Cannot decode. Make sure you are reading a bool."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91e3b02d190bb3e407570bfe894974b331ad10ba40f732248485a8a79ed8e4f5","typeString":"literal_string \"stdStorage read_bool(StdStorage): Cannot decode. Make sure you are reading a bool.\""}],"id":6821,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6133:6:9","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":6823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6133:92:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6824,"nodeType":"ExpressionStatement","src":"6133:92:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_bool","nameLocation":"5962:9:9","parameters":{"id":6799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6798,"mutability":"mutable","name":"self","nameLocation":"5991:4:9","nodeType":"VariableDeclaration","scope":6826,"src":"5972:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6797,"nodeType":"UserDefinedTypeName","pathNode":{"id":6796,"name":"StdStorage","nameLocations":["5972:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"5972:10:9"},"referencedDeclaration":6088,"src":"5972:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"5971:25:9"},"returnParameters":{"id":6802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6801,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6826,"src":"6015:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6800,"name":"bool","nodeType":"ElementaryTypeName","src":"6015:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6014:6:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6845,"nodeType":"FunctionDefinition","src":"6238:131:9","nodes":[],"body":{"id":6844,"nodeType":"Block","src":"6312:57:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":6837,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6829,"src":"6345:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":6836,"name":"read","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6776,"src":"6340:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct StdStorage storage pointer) returns (bytes memory)"}},"id":6838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6340:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6353:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6839,"name":"address","nodeType":"ElementaryTypeName","src":"6353:7:9","typeDescriptions":{}}}],"id":6841,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6352:9:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":6834,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6329:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6333:6:9","memberName":"decode","nodeType":"MemberAccess","src":"6329:10:9","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6329:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":6833,"id":6843,"nodeType":"Return","src":"6322:40:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_address","nameLocation":"6247:12:9","parameters":{"id":6830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6829,"mutability":"mutable","name":"self","nameLocation":"6279:4:9","nodeType":"VariableDeclaration","scope":6845,"src":"6260:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6828,"nodeType":"UserDefinedTypeName","pathNode":{"id":6827,"name":"StdStorage","nameLocations":["6260:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"6260:10:9"},"referencedDeclaration":6088,"src":"6260:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"6259:25:9"},"returnParameters":{"id":6833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6832,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6845,"src":"6303:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6831,"name":"address","nodeType":"ElementaryTypeName","src":"6303:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6302:9:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6864,"nodeType":"FunctionDefinition","src":"6375:128:9","nodes":[],"body":{"id":6863,"nodeType":"Block","src":"6446:57:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":6856,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"6479:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":6855,"name":"read","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6776,"src":"6474:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct StdStorage storage pointer) returns (bytes memory)"}},"id":6857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6474:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6487:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6858,"name":"uint256","nodeType":"ElementaryTypeName","src":"6487:7:9","typeDescriptions":{}}}],"id":6860,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6486:9:9","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":6853,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6463:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6467:6:9","memberName":"decode","nodeType":"MemberAccess","src":"6463:10:9","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6463:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6852,"id":6862,"nodeType":"Return","src":"6456:40:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_uint","nameLocation":"6384:9:9","parameters":{"id":6849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6848,"mutability":"mutable","name":"self","nameLocation":"6413:4:9","nodeType":"VariableDeclaration","scope":6864,"src":"6394:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6847,"nodeType":"UserDefinedTypeName","pathNode":{"id":6846,"name":"StdStorage","nameLocations":["6394:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"6394:10:9"},"referencedDeclaration":6088,"src":"6394:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"6393:25:9"},"returnParameters":{"id":6852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6851,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6864,"src":"6437:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6850,"name":"uint256","nodeType":"ElementaryTypeName","src":"6437:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6436:9:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6883,"nodeType":"FunctionDefinition","src":"6509:125:9","nodes":[],"body":{"id":6882,"nodeType":"Block","src":"6578:56:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":6875,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6867,"src":"6611:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":6874,"name":"read","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6776,"src":"6606:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct StdStorage storage pointer) returns (bytes memory)"}},"id":6876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6606:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6619:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":6877,"name":"int256","nodeType":"ElementaryTypeName","src":"6619:6:9","typeDescriptions":{}}}],"id":6879,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6618:8:9","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}],"expression":{"id":6872,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6595:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6599:6:9","memberName":"decode","nodeType":"MemberAccess","src":"6595:10:9","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6595:32:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":6871,"id":6881,"nodeType":"Return","src":"6588:39:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_int","nameLocation":"6518:8:9","parameters":{"id":6868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6867,"mutability":"mutable","name":"self","nameLocation":"6546:4:9","nodeType":"VariableDeclaration","scope":6883,"src":"6527:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6866,"nodeType":"UserDefinedTypeName","pathNode":{"id":6865,"name":"StdStorage","nameLocations":["6527:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"6527:10:9"},"referencedDeclaration":6088,"src":"6527:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"6526:25:9"},"returnParameters":{"id":6871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6870,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6883,"src":"6570:6:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6869,"name":"int256","nodeType":"ElementaryTypeName","src":"6570:6:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"6569:8:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6939,"nodeType":"FunctionDefinition","src":"6640:304:9","nodes":[],"body":{"id":6938,"nodeType":"Block","src":"6727:217:9","nodes":[],"statements":[{"assignments":[6893],"declarations":[{"constant":false,"id":6893,"mutability":"mutable","name":"out","nameLocation":"6745:3:9","nodeType":"VariableDeclaration","scope":6938,"src":"6737:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6892,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6737:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":6894,"nodeType":"VariableDeclarationStatement","src":"6737:11:9"},{"assignments":[6896],"declarations":[{"constant":false,"id":6896,"mutability":"mutable","name":"max","nameLocation":"6767:3:9","nodeType":"VariableDeclaration","scope":6938,"src":"6759:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6895,"name":"uint256","nodeType":"ElementaryTypeName","src":"6759:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6905,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6897,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6885,"src":"6773:1:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6775:6:9","memberName":"length","nodeType":"MemberAccess","src":"6773:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3332","id":6899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6784:2:9","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"6773:13:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":6902,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6885,"src":"6794:1:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6796:6:9","memberName":"length","nodeType":"MemberAccess","src":"6794:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6773:29:9","trueExpression":{"hexValue":"3332","id":6901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6789:2:9","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6759:43:9"},{"body":{"id":6934,"nodeType":"Block","src":"6846:72:9","statements":[{"expression":{"id":6932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6916,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6893,"src":"6860:3:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":6931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":6925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":6919,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6885,"src":"6875:1:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6923,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6920,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6887,"src":"6877:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":6921,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6907,"src":"6886:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6877:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6875:13:9","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30784646","id":6924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6891:4:9","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xFF"},"src":"6875:20:9","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":6918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6867:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6917,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6867:7:9","typeDescriptions":{}}},"id":6926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6867:29:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6927,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6907,"src":"6901:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":6928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6905:1:9","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"6901:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6930,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6900:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6867:40:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6860:47:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6933,"nodeType":"ExpressionStatement","src":"6860:47:9"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6910,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6907,"src":"6832:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6911,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6896,"src":"6836:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6832:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6935,"initializationExpression":{"assignments":[6907],"declarations":[{"constant":false,"id":6907,"mutability":"mutable","name":"i","nameLocation":"6825:1:9","nodeType":"VariableDeclaration","scope":6935,"src":"6817:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6906,"name":"uint256","nodeType":"ElementaryTypeName","src":"6817:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6909,"initialValue":{"hexValue":"30","id":6908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6829:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6817:13:9"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":6914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6841:3:9","subExpression":{"id":6913,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6907,"src":"6841:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6915,"nodeType":"ExpressionStatement","src":"6841:3:9"},"nodeType":"ForStatement","src":"6812:106:9"},{"expression":{"id":6936,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6893,"src":"6934:3:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":6891,"id":6937,"nodeType":"Return","src":"6927:10:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bytesToBytes32","nameLocation":"6649:14:9","parameters":{"id":6888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6885,"mutability":"mutable","name":"b","nameLocation":"6677:1:9","nodeType":"VariableDeclaration","scope":6939,"src":"6664:14:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6884,"name":"bytes","nodeType":"ElementaryTypeName","src":"6664:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6887,"mutability":"mutable","name":"offset","nameLocation":"6688:6:9","nodeType":"VariableDeclaration","scope":6939,"src":"6680:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6886,"name":"uint256","nodeType":"ElementaryTypeName","src":"6680:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6663:32:9"},"returnParameters":{"id":6891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6890,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6939,"src":"6718:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6889,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6718:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6717:9:9"},"scope":6981,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":6980,"nodeType":"FunctionDefinition","src":"6950:393:9","nodes":[],"body":{"id":6979,"nodeType":"Block","src":"7023:320:9","nodes":[],"statements":[{"assignments":[6948],"declarations":[{"constant":false,"id":6948,"mutability":"mutable","name":"result","nameLocation":"7046:6:9","nodeType":"VariableDeclaration","scope":6979,"src":"7033:19:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6947,"name":"bytes","nodeType":"ElementaryTypeName","src":"7033:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6956,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6951,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6942,"src":"7065:1:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7067:6:9","memberName":"length","nodeType":"MemberAccess","src":"7065:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":6953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7076:2:9","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"7065:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7055:9:9","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":6949,"name":"bytes","nodeType":"ElementaryTypeName","src":"7059:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":6955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7055:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7033:46:9"},{"body":{"id":6975,"nodeType":"Block","src":"7128:185:9","statements":[{"assignments":[6969],"declarations":[{"constant":false,"id":6969,"mutability":"mutable","name":"k","nameLocation":"7150:1:9","nodeType":"VariableDeclaration","scope":6975,"src":"7142:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6968,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7142:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":6973,"initialValue":{"baseExpression":{"id":6970,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6942,"src":"7154:1:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6972,"indexExpression":{"id":6971,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6958,"src":"7156:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7154:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7142:16:9"},{"AST":{"nativeSrc":"7228:75:9","nodeType":"YulBlock","src":"7228:75:9","statements":[{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"7257:6:9","nodeType":"YulIdentifier","src":"7257:6:9"},{"arguments":[{"kind":"number","nativeSrc":"7269:2:9","nodeType":"YulLiteral","src":"7269:2:9","type":"","value":"32"},{"arguments":[{"kind":"number","nativeSrc":"7277:2:9","nodeType":"YulLiteral","src":"7277:2:9","type":"","value":"32"},{"name":"i","nativeSrc":"7281:1:9","nodeType":"YulIdentifier","src":"7281:1:9"}],"functionName":{"name":"mul","nativeSrc":"7273:3:9","nodeType":"YulIdentifier","src":"7273:3:9"},"nativeSrc":"7273:10:9","nodeType":"YulFunctionCall","src":"7273:10:9"}],"functionName":{"name":"add","nativeSrc":"7265:3:9","nodeType":"YulIdentifier","src":"7265:3:9"},"nativeSrc":"7265:19:9","nodeType":"YulFunctionCall","src":"7265:19:9"}],"functionName":{"name":"add","nativeSrc":"7253:3:9","nodeType":"YulIdentifier","src":"7253:3:9"},"nativeSrc":"7253:32:9","nodeType":"YulFunctionCall","src":"7253:32:9"},{"name":"k","nativeSrc":"7287:1:9","nodeType":"YulIdentifier","src":"7287:1:9"}],"functionName":{"name":"mstore","nativeSrc":"7246:6:9","nodeType":"YulIdentifier","src":"7246:6:9"},"nativeSrc":"7246:43:9","nodeType":"YulFunctionCall","src":"7246:43:9"},"nativeSrc":"7246:43:9","nodeType":"YulExpressionStatement","src":"7246:43:9"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":6958,"isOffset":false,"isSlot":false,"src":"7281:1:9","valueSize":1},{"declaration":6969,"isOffset":false,"isSlot":false,"src":"7287:1:9","valueSize":1},{"declaration":6948,"isOffset":false,"isSlot":false,"src":"7257:6:9","valueSize":1}],"id":6974,"nodeType":"InlineAssembly","src":"7219:84:9"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6961,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6958,"src":"7109:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":6962,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6942,"src":"7113:1:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7115:6:9","memberName":"length","nodeType":"MemberAccess","src":"7113:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7109:12:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6976,"initializationExpression":{"assignments":[6958],"declarations":[{"constant":false,"id":6958,"mutability":"mutable","name":"i","nameLocation":"7102:1:9","nodeType":"VariableDeclaration","scope":6976,"src":"7094:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6957,"name":"uint256","nodeType":"ElementaryTypeName","src":"7094:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6960,"initialValue":{"hexValue":"30","id":6959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7106:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7094:13:9"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":6966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7123:3:9","subExpression":{"id":6965,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6958,"src":"7123:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6967,"nodeType":"ExpressionStatement","src":"7123:3:9"},"nodeType":"ForStatement","src":"7089:224:9"},{"expression":{"id":6977,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6948,"src":"7330:6:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6946,"id":6978,"nodeType":"Return","src":"7323:13:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"flatten","nameLocation":"6959:7:9","parameters":{"id":6943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6942,"mutability":"mutable","name":"b","nameLocation":"6984:1:9","nodeType":"VariableDeclaration","scope":6980,"src":"6967:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":6940,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6967:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6941,"nodeType":"ArrayTypeName","src":"6967:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"6966:20:9"},"returnParameters":{"id":6946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6980,"src":"7009:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6944,"name":"bytes","nodeType":"ElementaryTypeName","src":"7009:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7008:14:9"},"scope":6981,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"stdStorageSafe","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[6981],"name":"stdStorageSafe","nameLocation":"376:14:9","scope":7523,"usedErrors":[],"usedEvents":[6098,6104]},{"id":7522,"nodeType":"ContractDefinition","src":"7347:4527:9","nodes":[{"id":6998,"nodeType":"VariableDeclaration","src":"7372:84:9","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"7392:2:9","scope":7522,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"},"typeName":{"id":6983,"nodeType":"UserDefinedTypeName","pathNode":{"id":6982,"name":"Vm","nameLocations":["7372:2:9"],"nodeType":"IdentifierPath","referencedDeclaration":9352,"src":"7372:2:9"},"referencedDeclaration":9352,"src":"7372:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":6992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7434:17:9","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":6991,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7424:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7424:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7416:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6989,"name":"uint256","nodeType":"ElementaryTypeName","src":"7416:7:9","typeDescriptions":{}}},"id":6994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7416:37:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7408:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":6987,"name":"uint160","nodeType":"ElementaryTypeName","src":"7408:7:9","typeDescriptions":{}}},"id":6995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7408:46:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":6986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7400:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6985,"name":"address","nodeType":"ElementaryTypeName","src":"7400:7:9","typeDescriptions":{}}},"id":6996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7400:55:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6984,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9352,"src":"7397:2:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$9352_$","typeString":"type(contract Vm)"}},"id":6997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7397:59:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"visibility":"private"},{"id":7011,"nodeType":"FunctionDefinition","src":"7463:118:9","nodes":[],"body":{"id":7010,"nodeType":"Block","src":"7530:51:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7007,"name":"sigStr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7000,"src":"7567:6:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7005,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"7547:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7562:4:9","memberName":"sigs","nodeType":"MemberAccess","referencedDeclaration":6139,"src":"7547:19:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes4_$","typeString":"function (string memory) pure returns (bytes4)"}},"id":7008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7547:27:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":7004,"id":7009,"nodeType":"Return","src":"7540:34:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sigs","nameLocation":"7472:4:9","parameters":{"id":7001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7000,"mutability":"mutable","name":"sigStr","nameLocation":"7491:6:9","nodeType":"VariableDeclaration","scope":7011,"src":"7477:20:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6999,"name":"string","nodeType":"ElementaryTypeName","src":"7477:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7476:22:9"},"returnParameters":{"id":7004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7003,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7011,"src":"7522:6:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7002,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7522:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"7521:8:9"},"scope":7522,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7025,"nodeType":"FunctionDefinition","src":"7587:115:9","nodes":[],"body":{"id":7024,"nodeType":"Block","src":"7653:49:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7021,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7014,"src":"7690:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":7019,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"7670:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7685:4:9","memberName":"find","nodeType":"MemberAccess","referencedDeclaration":6584,"src":"7670:19:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct StdStorage storage pointer) returns (uint256)"}},"id":7022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7670:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7018,"id":7023,"nodeType":"Return","src":"7663:32:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"find","nameLocation":"7596:4:9","parameters":{"id":7015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7014,"mutability":"mutable","name":"self","nameLocation":"7620:4:9","nodeType":"VariableDeclaration","scope":7025,"src":"7601:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7013,"nodeType":"UserDefinedTypeName","pathNode":{"id":7012,"name":"StdStorage","nameLocations":["7601:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"7601:10:9"},"referencedDeclaration":6088,"src":"7601:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"7600:25:9"},"returnParameters":{"id":7018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7017,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7025,"src":"7644:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7016,"name":"uint256","nodeType":"ElementaryTypeName","src":"7644:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7643:9:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7043,"nodeType":"FunctionDefinition","src":"7708:156:9","nodes":[],"body":{"id":7042,"nodeType":"Block","src":"7804:60:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7038,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7028,"src":"7843:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":7039,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7030,"src":"7849:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7036,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"7821:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7836:6:9","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":6604,"src":"7821:21:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":7040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7821:36:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":7035,"id":7041,"nodeType":"Return","src":"7814:43:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"target","nameLocation":"7717:6:9","parameters":{"id":7031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7028,"mutability":"mutable","name":"self","nameLocation":"7743:4:9","nodeType":"VariableDeclaration","scope":7043,"src":"7724:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7027,"nodeType":"UserDefinedTypeName","pathNode":{"id":7026,"name":"StdStorage","nameLocations":["7724:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"7724:10:9"},"referencedDeclaration":6088,"src":"7724:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7030,"mutability":"mutable","name":"_target","nameLocation":"7757:7:9","nodeType":"VariableDeclaration","scope":7043,"src":"7749:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7029,"name":"address","nodeType":"ElementaryTypeName","src":"7749:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7723:42:9"},"returnParameters":{"id":7035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7034,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7043,"src":"7784:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7033,"nodeType":"UserDefinedTypeName","pathNode":{"id":7032,"name":"StdStorage","nameLocations":["7784:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"7784:10:9"},"referencedDeclaration":6088,"src":"7784:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"7783:20:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7061,"nodeType":"FunctionDefinition","src":"7870:143:9","nodes":[],"body":{"id":7060,"nodeType":"Block","src":"7959:54:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7056,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7046,"src":"7995:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":7057,"name":"_sig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7048,"src":"8001:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":7054,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"7976:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7991:3:9","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":6624,"src":"7976:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"}},"id":7058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7976:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":7053,"id":7059,"nodeType":"Return","src":"7969:37:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sig","nameLocation":"7879:3:9","parameters":{"id":7049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7046,"mutability":"mutable","name":"self","nameLocation":"7902:4:9","nodeType":"VariableDeclaration","scope":7061,"src":"7883:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7045,"nodeType":"UserDefinedTypeName","pathNode":{"id":7044,"name":"StdStorage","nameLocations":["7883:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"7883:10:9"},"referencedDeclaration":6088,"src":"7883:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7048,"mutability":"mutable","name":"_sig","nameLocation":"7915:4:9","nodeType":"VariableDeclaration","scope":7061,"src":"7908:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7047,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7908:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"7882:38:9"},"returnParameters":{"id":7053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7052,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7061,"src":"7939:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7051,"nodeType":"UserDefinedTypeName","pathNode":{"id":7050,"name":"StdStorage","nameLocations":["7939:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"7939:10:9"},"referencedDeclaration":6088,"src":"7939:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"7938:20:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7079,"nodeType":"FunctionDefinition","src":"8019:150:9","nodes":[],"body":{"id":7078,"nodeType":"Block","src":"8115:54:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7074,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7064,"src":"8151:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":7075,"name":"_sig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7066,"src":"8157:4:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7072,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"8132:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8147:3:9","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":6646,"src":"8132:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_string_memory_ptr_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,string memory) returns (struct StdStorage storage pointer)"}},"id":7076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8132:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":7071,"id":7077,"nodeType":"Return","src":"8125:37:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sig","nameLocation":"8028:3:9","parameters":{"id":7067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7064,"mutability":"mutable","name":"self","nameLocation":"8051:4:9","nodeType":"VariableDeclaration","scope":7079,"src":"8032:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7063,"nodeType":"UserDefinedTypeName","pathNode":{"id":7062,"name":"StdStorage","nameLocations":["8032:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8032:10:9"},"referencedDeclaration":6088,"src":"8032:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7066,"mutability":"mutable","name":"_sig","nameLocation":"8071:4:9","nodeType":"VariableDeclaration","scope":7079,"src":"8057:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7065,"name":"string","nodeType":"ElementaryTypeName","src":"8057:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8031:45:9"},"returnParameters":{"id":7071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7070,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7079,"src":"8095:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7069,"nodeType":"UserDefinedTypeName","pathNode":{"id":7068,"name":"StdStorage","nameLocations":["8095:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8095:10:9"},"referencedDeclaration":6088,"src":"8095:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"8094:20:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7097,"nodeType":"FunctionDefinition","src":"8175:152:9","nodes":[],"body":{"id":7096,"nodeType":"Block","src":"8269:58:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7092,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7082,"src":"8310:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":7093,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7084,"src":"8316:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7090,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"8286:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8301:8:9","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":6677,"src":"8286:23:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":7094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8286:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":7089,"id":7095,"nodeType":"Return","src":"8279:41:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"8184:8:9","parameters":{"id":7085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7082,"mutability":"mutable","name":"self","nameLocation":"8212:4:9","nodeType":"VariableDeclaration","scope":7097,"src":"8193:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7081,"nodeType":"UserDefinedTypeName","pathNode":{"id":7080,"name":"StdStorage","nameLocations":["8193:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8193:10:9"},"referencedDeclaration":6088,"src":"8193:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7084,"mutability":"mutable","name":"who","nameLocation":"8226:3:9","nodeType":"VariableDeclaration","scope":7097,"src":"8218:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7083,"name":"address","nodeType":"ElementaryTypeName","src":"8218:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8192:38:9"},"returnParameters":{"id":7089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7088,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7097,"src":"8249:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7087,"nodeType":"UserDefinedTypeName","pathNode":{"id":7086,"name":"StdStorage","nameLocations":["8249:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8249:10:9"},"referencedDeclaration":6088,"src":"8249:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"8248:20:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7115,"nodeType":"FunctionDefinition","src":"8333:152:9","nodes":[],"body":{"id":7114,"nodeType":"Block","src":"8427:58:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7110,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7100,"src":"8468:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":7111,"name":"amt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7102,"src":"8474:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7108,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"8444:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8459:8:9","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":6702,"src":"8444:23:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_uint256_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256) returns (struct StdStorage storage pointer)"}},"id":7112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8444:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":7107,"id":7113,"nodeType":"Return","src":"8437:41:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"8342:8:9","parameters":{"id":7103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7100,"mutability":"mutable","name":"self","nameLocation":"8370:4:9","nodeType":"VariableDeclaration","scope":7115,"src":"8351:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7099,"nodeType":"UserDefinedTypeName","pathNode":{"id":7098,"name":"StdStorage","nameLocations":["8351:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8351:10:9"},"referencedDeclaration":6088,"src":"8351:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7102,"mutability":"mutable","name":"amt","nameLocation":"8384:3:9","nodeType":"VariableDeclaration","scope":7115,"src":"8376:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7101,"name":"uint256","nodeType":"ElementaryTypeName","src":"8376:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8350:38:9"},"returnParameters":{"id":7107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7106,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7115,"src":"8407:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7105,"nodeType":"UserDefinedTypeName","pathNode":{"id":7104,"name":"StdStorage","nameLocations":["8407:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8407:10:9"},"referencedDeclaration":6088,"src":"8407:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"8406:20:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7133,"nodeType":"FunctionDefinition","src":"8491:152:9","nodes":[],"body":{"id":7132,"nodeType":"Block","src":"8585:58:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7128,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7118,"src":"8626:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":7129,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7120,"src":"8632:3:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7126,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"8602:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8617:8:9","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":6724,"src":"8602:23:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_bytes32_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes32) returns (struct StdStorage storage pointer)"}},"id":7130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8602:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":7125,"id":7131,"nodeType":"Return","src":"8595:41:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"8500:8:9","parameters":{"id":7121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7118,"mutability":"mutable","name":"self","nameLocation":"8528:4:9","nodeType":"VariableDeclaration","scope":7133,"src":"8509:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7117,"nodeType":"UserDefinedTypeName","pathNode":{"id":7116,"name":"StdStorage","nameLocations":["8509:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8509:10:9"},"referencedDeclaration":6088,"src":"8509:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7120,"mutability":"mutable","name":"key","nameLocation":"8542:3:9","nodeType":"VariableDeclaration","scope":7133,"src":"8534:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7119,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8534:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8508:38:9"},"returnParameters":{"id":7125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7124,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7133,"src":"8565:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7123,"nodeType":"UserDefinedTypeName","pathNode":{"id":7122,"name":"StdStorage","nameLocations":["8565:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8565:10:9"},"referencedDeclaration":6088,"src":"8565:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"8564:20:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7151,"nodeType":"FunctionDefinition","src":"8649:152:9","nodes":[],"body":{"id":7150,"nodeType":"Block","src":"8743:58:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7146,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7136,"src":"8781:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":7147,"name":"_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7138,"src":"8787:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7144,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"8760:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8775:5:9","memberName":"depth","nodeType":"MemberAccess","referencedDeclaration":6744,"src":"8760:20:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_uint256_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256) returns (struct StdStorage storage pointer)"}},"id":7148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8760:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":7143,"id":7149,"nodeType":"Return","src":"8753:41:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"depth","nameLocation":"8658:5:9","parameters":{"id":7139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7136,"mutability":"mutable","name":"self","nameLocation":"8683:4:9","nodeType":"VariableDeclaration","scope":7151,"src":"8664:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7135,"nodeType":"UserDefinedTypeName","pathNode":{"id":7134,"name":"StdStorage","nameLocations":["8664:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8664:10:9"},"referencedDeclaration":6088,"src":"8664:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7138,"mutability":"mutable","name":"_depth","nameLocation":"8697:6:9","nodeType":"VariableDeclaration","scope":7151,"src":"8689:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7137,"name":"uint256","nodeType":"ElementaryTypeName","src":"8689:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8663:41:9"},"returnParameters":{"id":7143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7142,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7151,"src":"8723:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7141,"nodeType":"UserDefinedTypeName","pathNode":{"id":7140,"name":"StdStorage","nameLocations":["8723:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8723:10:9"},"referencedDeclaration":6088,"src":"8723:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"8722:20:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7174,"nodeType":"FunctionDefinition","src":"8807:138:9","nodes":[],"body":{"id":7173,"nodeType":"Block","src":"8877:68:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7160,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7154,"src":"8901:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"arguments":[{"arguments":[{"arguments":[{"id":7167,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7156,"src":"8931:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8923:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":7165,"name":"uint160","nodeType":"ElementaryTypeName","src":"8923:7:9","typeDescriptions":{}}},"id":7168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8923:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":7164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8915:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7163,"name":"uint256","nodeType":"ElementaryTypeName","src":"8915:7:9","typeDescriptions":{}}},"id":7169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8915:21:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8907:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7161,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8907:7:9","typeDescriptions":{}}},"id":7170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8907:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7159,"name":"checked_write","nodeType":"Identifier","overloadedDeclarations":[7174,7191,7209,7354],"referencedDeclaration":7354,"src":"8887:13:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_bytes32_$returns$__$","typeString":"function (struct StdStorage storage pointer,bytes32)"}},"id":7171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8887:51:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7172,"nodeType":"ExpressionStatement","src":"8887:51:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"checked_write","nameLocation":"8816:13:9","parameters":{"id":7157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7154,"mutability":"mutable","name":"self","nameLocation":"8849:4:9","nodeType":"VariableDeclaration","scope":7174,"src":"8830:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7153,"nodeType":"UserDefinedTypeName","pathNode":{"id":7152,"name":"StdStorage","nameLocations":["8830:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8830:10:9"},"referencedDeclaration":6088,"src":"8830:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7156,"mutability":"mutable","name":"who","nameLocation":"8863:3:9","nodeType":"VariableDeclaration","scope":7174,"src":"8855:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7155,"name":"address","nodeType":"ElementaryTypeName","src":"8855:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8829:38:9"},"returnParameters":{"id":7158,"nodeType":"ParameterList","parameters":[],"src":"8877:0:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7191,"nodeType":"FunctionDefinition","src":"8951:120:9","nodes":[],"body":{"id":7190,"nodeType":"Block","src":"9021:50:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7183,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7177,"src":"9045:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"arguments":[{"id":7186,"name":"amt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7179,"src":"9059:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9051:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7184,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9051:7:9","typeDescriptions":{}}},"id":7187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9051:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7182,"name":"checked_write","nodeType":"Identifier","overloadedDeclarations":[7174,7191,7209,7354],"referencedDeclaration":7354,"src":"9031:13:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_bytes32_$returns$__$","typeString":"function (struct StdStorage storage pointer,bytes32)"}},"id":7188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9031:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7189,"nodeType":"ExpressionStatement","src":"9031:33:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"checked_write","nameLocation":"8960:13:9","parameters":{"id":7180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7177,"mutability":"mutable","name":"self","nameLocation":"8993:4:9","nodeType":"VariableDeclaration","scope":7191,"src":"8974:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7176,"nodeType":"UserDefinedTypeName","pathNode":{"id":7175,"name":"StdStorage","nameLocations":["8974:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8974:10:9"},"referencedDeclaration":6088,"src":"8974:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7179,"mutability":"mutable","name":"amt","nameLocation":"9007:3:9","nodeType":"VariableDeclaration","scope":7191,"src":"8999:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7178,"name":"uint256","nodeType":"ElementaryTypeName","src":"8999:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8973:38:9"},"returnParameters":{"id":7181,"nodeType":"ParameterList","parameters":[],"src":"9021:0:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7209,"nodeType":"FunctionDefinition","src":"9077:222:9","nodes":[],"body":{"id":7208,"nodeType":"Block","src":"9146:153:9","nodes":[],"statements":[{"assignments":[7200],"declarations":[{"constant":false,"id":7200,"mutability":"mutable","name":"t","nameLocation":"9164:1:9","nodeType":"VariableDeclaration","scope":7208,"src":"9156:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9156:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7201,"nodeType":"VariableDeclarationStatement","src":"9156:9:9"},{"AST":{"nativeSrc":"9227:34:9","nodeType":"YulBlock","src":"9227:34:9","statements":[{"nativeSrc":"9241:10:9","nodeType":"YulAssignment","src":"9241:10:9","value":{"name":"write","nativeSrc":"9246:5:9","nodeType":"YulIdentifier","src":"9246:5:9"},"variableNames":[{"name":"t","nativeSrc":"9241:1:9","nodeType":"YulIdentifier","src":"9241:1:9"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":7200,"isOffset":false,"isSlot":false,"src":"9241:1:9","valueSize":1},{"declaration":7196,"isOffset":false,"isSlot":false,"src":"9246:5:9","valueSize":1}],"id":7202,"nodeType":"InlineAssembly","src":"9218:43:9"},{"expression":{"arguments":[{"id":7204,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7194,"src":"9284:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":7205,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7200,"src":"9290:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7203,"name":"checked_write","nodeType":"Identifier","overloadedDeclarations":[7174,7191,7209,7354],"referencedDeclaration":7354,"src":"9270:13:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_bytes32_$returns$__$","typeString":"function (struct StdStorage storage pointer,bytes32)"}},"id":7206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9270:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7207,"nodeType":"ExpressionStatement","src":"9270:22:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"checked_write","nameLocation":"9086:13:9","parameters":{"id":7197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7194,"mutability":"mutable","name":"self","nameLocation":"9119:4:9","nodeType":"VariableDeclaration","scope":7209,"src":"9100:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7193,"nodeType":"UserDefinedTypeName","pathNode":{"id":7192,"name":"StdStorage","nameLocations":["9100:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"9100:10:9"},"referencedDeclaration":6088,"src":"9100:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7196,"mutability":"mutable","name":"write","nameLocation":"9130:5:9","nodeType":"VariableDeclaration","scope":7209,"src":"9125:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7195,"name":"bool","nodeType":"ElementaryTypeName","src":"9125:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9099:37:9"},"returnParameters":{"id":7198,"nodeType":"ParameterList","parameters":[],"src":"9146:0:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7354,"nodeType":"FunctionDefinition","src":"9305:1095:9","nodes":[],"body":{"id":7353,"nodeType":"Block","src":"9375:1025:9","nodes":[],"statements":[{"assignments":[7218],"declarations":[{"constant":false,"id":7218,"mutability":"mutable","name":"who","nameLocation":"9393:3:9","nodeType":"VariableDeclaration","scope":7353,"src":"9385:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7217,"name":"address","nodeType":"ElementaryTypeName","src":"9385:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":7221,"initialValue":{"expression":{"id":7219,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"9399:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9404:7:9","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":6085,"src":"9399:12:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9385:26:9"},{"assignments":[7223],"declarations":[{"constant":false,"id":7223,"mutability":"mutable","name":"fsig","nameLocation":"9428:4:9","nodeType":"VariableDeclaration","scope":7353,"src":"9421:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7222,"name":"bytes4","nodeType":"ElementaryTypeName","src":"9421:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":7226,"initialValue":{"expression":{"id":7224,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"9435:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9440:4:9","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":6081,"src":"9435:9:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"9421:23:9"},{"assignments":[7228],"declarations":[{"constant":false,"id":7228,"mutability":"mutable","name":"field_depth","nameLocation":"9462:11:9","nodeType":"VariableDeclaration","scope":7353,"src":"9454:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7227,"name":"uint256","nodeType":"ElementaryTypeName","src":"9454:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7231,"initialValue":{"expression":{"id":7229,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"9476:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9481:6:9","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":6083,"src":"9476:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9454:33:9"},{"assignments":[7236],"declarations":[{"constant":false,"id":7236,"mutability":"mutable","name":"ins","nameLocation":"9514:3:9","nodeType":"VariableDeclaration","scope":7353,"src":"9497:20:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7234,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9497:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7235,"nodeType":"ArrayTypeName","src":"9497:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":7239,"initialValue":{"expression":{"id":7237,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"9520:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7238,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9525:5:9","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":6079,"src":"9520:10:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9497:33:9"},{"assignments":[7241],"declarations":[{"constant":false,"id":7241,"mutability":"mutable","name":"cald","nameLocation":"9554:4:9","nodeType":"VariableDeclaration","scope":7353,"src":"9541:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7240,"name":"bytes","nodeType":"ElementaryTypeName","src":"9541:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7249,"initialValue":{"arguments":[{"id":7244,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7223,"src":"9578:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"id":7246,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7236,"src":"9592:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":7245,"name":"flatten","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7521,"src":"9584:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32[] memory) pure returns (bytes memory)"}},"id":7247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9584:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7242,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9561:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7243,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9565:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"9561:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9561:36:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"9541:56:9"},{"condition":{"id":7264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9611:69:9","subExpression":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":7250,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"9612:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7251,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9617:5:9","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":6076,"src":"9612:10:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))"}},"id":7253,"indexExpression":{"id":7252,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7218,"src":"9623:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9612:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => bool))"}},"id":7255,"indexExpression":{"id":7254,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7223,"src":"9628:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9612:21:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":7263,"indexExpression":{"arguments":[{"arguments":[{"id":7259,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7236,"src":"9661:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":7260,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7228,"src":"9666:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7257,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9644:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9648:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"9644:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9644:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7256,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9634:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9634:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9612:68:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7270,"nodeType":"IfStatement","src":"9607:110:9","trueBody":{"id":7269,"nodeType":"Block","src":"9682:35:9","statements":[{"expression":{"arguments":[{"id":7266,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"9701:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":7265,"name":"find","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7025,"src":"9696:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct StdStorage storage pointer) returns (uint256)"}},"id":7267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9696:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7268,"nodeType":"ExpressionStatement","src":"9696:10:9"}]}},{"assignments":[7272],"declarations":[{"constant":false,"id":7272,"mutability":"mutable","name":"slot","nameLocation":"9734:4:9","nodeType":"VariableDeclaration","scope":7353,"src":"9726:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7271,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9726:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7290,"initialValue":{"arguments":[{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":7275,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"9749:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9754:5:9","memberName":"slots","nodeType":"MemberAccess","referencedDeclaration":6068,"src":"9749:10:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))"}},"id":7278,"indexExpression":{"id":7277,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7218,"src":"9760:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9749:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => uint256))"}},"id":7280,"indexExpression":{"id":7279,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7223,"src":"9765:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9749:21:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":7288,"indexExpression":{"arguments":[{"arguments":[{"id":7284,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7236,"src":"9798:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":7285,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7228,"src":"9803:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7282,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9781:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7283,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9785:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"9781:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9781:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7281,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9771:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9771:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9749:68:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9741:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7273,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9741:7:9","typeDescriptions":{}}},"id":7289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9741:77:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9726:92:9"},{"assignments":[7292],"declarations":[{"constant":false,"id":7292,"mutability":"mutable","name":"fdat","nameLocation":"9837:4:9","nodeType":"VariableDeclaration","scope":7353,"src":"9829:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9829:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7293,"nodeType":"VariableDeclarationStatement","src":"9829:12:9"},{"id":7310,"nodeType":"Block","src":"9851:128:9","statements":[{"assignments":[null,7295],"declarations":[null,{"constant":false,"id":7295,"mutability":"mutable","name":"rdat","nameLocation":"9881:4:9","nodeType":"VariableDeclaration","scope":7310,"src":"9868:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7294,"name":"bytes","nodeType":"ElementaryTypeName","src":"9868:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7300,"initialValue":{"arguments":[{"id":7298,"name":"cald","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7241,"src":"9904:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7296,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7218,"src":"9889:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9893:10:9","memberName":"staticcall","nodeType":"MemberAccess","src":"9889:14:9","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":7299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9889:20:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"9865:44:9"},{"expression":{"id":7308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7301,"name":"fdat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7292,"src":"9923:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7303,"name":"rdat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7295,"src":"9945:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":7304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9951:2:9","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7305,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7228,"src":"9956:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9951:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7302,"name":"bytesToBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7480,"src":"9930:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (bytes memory,uint256) pure returns (bytes32)"}},"id":7307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9930:38:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9923:45:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7309,"nodeType":"ExpressionStatement","src":"9923:45:9"}]},{"assignments":[7312],"declarations":[{"constant":false,"id":7312,"mutability":"mutable","name":"curr","nameLocation":"9996:4:9","nodeType":"VariableDeclaration","scope":7353,"src":"9988:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7311,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9988:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7318,"initialValue":{"arguments":[{"id":7315,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7218,"src":"10011:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7316,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7272,"src":"10016:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7313,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6998,"src":"10003:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":7314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10006:4:9","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":8235,"src":"10003:7:9","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":7317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10003:18:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9988:33:9"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7319,"name":"fdat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7292,"src":"10036:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7320,"name":"curr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7312,"src":"10044:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10036:12:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7328,"nodeType":"IfStatement","src":"10032:218:9","trueBody":{"id":7327,"nodeType":"Block","src":"10050:200:9","statements":[{"expression":{"arguments":[{"hexValue":"66616c7365","id":7323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10089:5:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"73746453746f726167652066696e642853746453746f72616765293a205061636b656420736c6f742e205468697320776f756c642063617573652064616e6765726f7573206f76657277726974696e6720616e642063757272656e746c792069736e277420737570706f727465642e","id":7324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10112:113:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_4bfa78e02b745efea2b29d358f6dc28382f5209b1d2b2dbeb8ef0862e74440b3","typeString":"literal_string \"stdStorage find(StdStorage): Packed slot. This would cause dangerous overwriting and currently isn't supported.\""},"value":"stdStorage find(StdStorage): Packed slot. This would cause dangerous overwriting and currently isn't supported."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4bfa78e02b745efea2b29d358f6dc28382f5209b1d2b2dbeb8ef0862e74440b3","typeString":"literal_string \"stdStorage find(StdStorage): Packed slot. This would cause dangerous overwriting and currently isn't supported.\""}],"id":7322,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10064:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10064:175:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7326,"nodeType":"ExpressionStatement","src":"10064:175:9"}]}},{"expression":{"arguments":[{"id":7332,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7218,"src":"10268:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7333,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7272,"src":"10273:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7334,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7214,"src":"10279:3:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7329,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6998,"src":"10259:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":7331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10262:5:9","memberName":"store","nodeType":"MemberAccess","referencedDeclaration":9063,"src":"10259:8:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,bytes32) external"}},"id":7335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10259:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7336,"nodeType":"ExpressionStatement","src":"10259:24:9"},{"expression":{"id":7339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10293:19:9","subExpression":{"expression":{"id":7337,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"10300:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7338,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10305:7:9","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":6085,"src":"10300:12:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7340,"nodeType":"ExpressionStatement","src":"10293:19:9"},{"expression":{"id":7343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10322:16:9","subExpression":{"expression":{"id":7341,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"10329:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10334:4:9","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":6081,"src":"10329:9:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7344,"nodeType":"ExpressionStatement","src":"10322:16:9"},{"expression":{"id":7347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10348:17:9","subExpression":{"expression":{"id":7345,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"10355:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10360:5:9","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":6079,"src":"10355:10:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7348,"nodeType":"ExpressionStatement","src":"10348:17:9"},{"expression":{"id":7351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10375:18:9","subExpression":{"expression":{"id":7349,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"10382:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7350,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10387:6:9","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":6083,"src":"10382:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7352,"nodeType":"ExpressionStatement","src":"10375:18:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"checked_write","nameLocation":"9314:13:9","parameters":{"id":7215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7212,"mutability":"mutable","name":"self","nameLocation":"9347:4:9","nodeType":"VariableDeclaration","scope":7354,"src":"9328:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7211,"nodeType":"UserDefinedTypeName","pathNode":{"id":7210,"name":"StdStorage","nameLocations":["9328:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"9328:10:9"},"referencedDeclaration":6088,"src":"9328:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7214,"mutability":"mutable","name":"set","nameLocation":"9361:3:9","nodeType":"VariableDeclaration","scope":7354,"src":"9353:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9353:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9327:38:9"},"returnParameters":{"id":7216,"nodeType":"ParameterList","parameters":[],"src":"9375:0:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7368,"nodeType":"FunctionDefinition","src":"10406:131:9","nodes":[],"body":{"id":7367,"nodeType":"Block","src":"10480:57:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7364,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7357,"src":"10525:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":7362,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"10497:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10512:12:9","memberName":"read_bytes32","nodeType":"MemberAccess","referencedDeclaration":6795,"src":"10497:27:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_bytes32_$","typeString":"function (struct StdStorage storage pointer) returns (bytes32)"}},"id":7365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10497:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7361,"id":7366,"nodeType":"Return","src":"10490:40:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_bytes32","nameLocation":"10415:12:9","parameters":{"id":7358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7357,"mutability":"mutable","name":"self","nameLocation":"10447:4:9","nodeType":"VariableDeclaration","scope":7368,"src":"10428:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7356,"nodeType":"UserDefinedTypeName","pathNode":{"id":7355,"name":"StdStorage","nameLocations":["10428:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"10428:10:9"},"referencedDeclaration":6088,"src":"10428:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"10427:25:9"},"returnParameters":{"id":7361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7368,"src":"10471:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7359,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10471:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10470:9:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7382,"nodeType":"FunctionDefinition","src":"10543:122:9","nodes":[],"body":{"id":7381,"nodeType":"Block","src":"10611:54:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7378,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7371,"src":"10653:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":7376,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"10628:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10643:9:9","memberName":"read_bool","nodeType":"MemberAccess","referencedDeclaration":6826,"src":"10628:24:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_bool_$","typeString":"function (struct StdStorage storage pointer) returns (bool)"}},"id":7379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10628:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7375,"id":7380,"nodeType":"Return","src":"10621:37:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_bool","nameLocation":"10552:9:9","parameters":{"id":7372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7371,"mutability":"mutable","name":"self","nameLocation":"10581:4:9","nodeType":"VariableDeclaration","scope":7382,"src":"10562:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7370,"nodeType":"UserDefinedTypeName","pathNode":{"id":7369,"name":"StdStorage","nameLocations":["10562:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"10562:10:9"},"referencedDeclaration":6088,"src":"10562:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"10561:25:9"},"returnParameters":{"id":7375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7374,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7382,"src":"10605:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7373,"name":"bool","nodeType":"ElementaryTypeName","src":"10605:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10604:6:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7396,"nodeType":"FunctionDefinition","src":"10671:131:9","nodes":[],"body":{"id":7395,"nodeType":"Block","src":"10745:57:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7392,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7385,"src":"10790:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":7390,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"10762:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10777:12:9","memberName":"read_address","nodeType":"MemberAccess","referencedDeclaration":6845,"src":"10762:27:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_address_$","typeString":"function (struct StdStorage storage pointer) returns (address)"}},"id":7393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10762:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7389,"id":7394,"nodeType":"Return","src":"10755:40:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_address","nameLocation":"10680:12:9","parameters":{"id":7386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7385,"mutability":"mutable","name":"self","nameLocation":"10712:4:9","nodeType":"VariableDeclaration","scope":7396,"src":"10693:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7384,"nodeType":"UserDefinedTypeName","pathNode":{"id":7383,"name":"StdStorage","nameLocations":["10693:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"10693:10:9"},"referencedDeclaration":6088,"src":"10693:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"10692:25:9"},"returnParameters":{"id":7389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7388,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7396,"src":"10736:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7387,"name":"address","nodeType":"ElementaryTypeName","src":"10736:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10735:9:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7410,"nodeType":"FunctionDefinition","src":"10808:125:9","nodes":[],"body":{"id":7409,"nodeType":"Block","src":"10879:54:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7406,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7399,"src":"10921:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":7404,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"10896:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10911:9:9","memberName":"read_uint","nodeType":"MemberAccess","referencedDeclaration":6864,"src":"10896:24:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct StdStorage storage pointer) returns (uint256)"}},"id":7407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10896:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7403,"id":7408,"nodeType":"Return","src":"10889:37:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_uint","nameLocation":"10817:9:9","parameters":{"id":7400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7399,"mutability":"mutable","name":"self","nameLocation":"10846:4:9","nodeType":"VariableDeclaration","scope":7410,"src":"10827:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7398,"nodeType":"UserDefinedTypeName","pathNode":{"id":7397,"name":"StdStorage","nameLocations":["10827:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"10827:10:9"},"referencedDeclaration":6088,"src":"10827:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"10826:25:9"},"returnParameters":{"id":7403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7410,"src":"10870:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7401,"name":"uint256","nodeType":"ElementaryTypeName","src":"10870:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10869:9:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7424,"nodeType":"FunctionDefinition","src":"10939:122:9","nodes":[],"body":{"id":7423,"nodeType":"Block","src":"11008:53:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7420,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7413,"src":"11049:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":7418,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"11025:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11040:8:9","memberName":"read_int","nodeType":"MemberAccess","referencedDeclaration":6883,"src":"11025:23:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_int256_$","typeString":"function (struct StdStorage storage pointer) returns (int256)"}},"id":7421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11025:29:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":7417,"id":7422,"nodeType":"Return","src":"11018:36:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_int","nameLocation":"10948:8:9","parameters":{"id":7414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7413,"mutability":"mutable","name":"self","nameLocation":"10976:4:9","nodeType":"VariableDeclaration","scope":7424,"src":"10957:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7412,"nodeType":"UserDefinedTypeName","pathNode":{"id":7411,"name":"StdStorage","nameLocations":["10957:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"10957:10:9"},"referencedDeclaration":6088,"src":"10957:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"10956:25:9"},"returnParameters":{"id":7417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7416,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7424,"src":"11000:6:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7415,"name":"int256","nodeType":"ElementaryTypeName","src":"11000:6:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"10999:8:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7480,"nodeType":"FunctionDefinition","src":"11118:304:9","nodes":[],"body":{"id":7479,"nodeType":"Block","src":"11205:217:9","nodes":[],"statements":[{"assignments":[7434],"declarations":[{"constant":false,"id":7434,"mutability":"mutable","name":"out","nameLocation":"11223:3:9","nodeType":"VariableDeclaration","scope":7479,"src":"11215:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7433,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11215:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7435,"nodeType":"VariableDeclarationStatement","src":"11215:11:9"},{"assignments":[7437],"declarations":[{"constant":false,"id":7437,"mutability":"mutable","name":"max","nameLocation":"11245:3:9","nodeType":"VariableDeclaration","scope":7479,"src":"11237:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7436,"name":"uint256","nodeType":"ElementaryTypeName","src":"11237:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7446,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7438,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7426,"src":"11251:1:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11253:6:9","memberName":"length","nodeType":"MemberAccess","src":"11251:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3332","id":7440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11262:2:9","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11251:13:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":7443,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7426,"src":"11272:1:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11274:6:9","memberName":"length","nodeType":"MemberAccess","src":"11272:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11251:29:9","trueExpression":{"hexValue":"3332","id":7442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11267:2:9","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11237:43:9"},{"body":{"id":7475,"nodeType":"Block","src":"11324:72:9","statements":[{"expression":{"id":7473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7457,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7434,"src":"11338:3:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":7466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":7460,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7426,"src":"11353:1:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7464,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7461,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7428,"src":"11355:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":7462,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7448,"src":"11364:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11355:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11353:13:9","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30784646","id":7465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11369:4:9","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xFF"},"src":"11353:20:9","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":7459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11345:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7458,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11345:7:9","typeDescriptions":{}}},"id":7467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11345:29:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7468,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7448,"src":"11379:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":7469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11383:1:9","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11379:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7471,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11378:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11345:40:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11338:47:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7474,"nodeType":"ExpressionStatement","src":"11338:47:9"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7451,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7448,"src":"11310:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7452,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7437,"src":"11314:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11310:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7476,"initializationExpression":{"assignments":[7448],"declarations":[{"constant":false,"id":7448,"mutability":"mutable","name":"i","nameLocation":"11303:1:9","nodeType":"VariableDeclaration","scope":7476,"src":"11295:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7447,"name":"uint256","nodeType":"ElementaryTypeName","src":"11295:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7450,"initialValue":{"hexValue":"30","id":7449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11307:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11295:13:9"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":7455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11319:3:9","subExpression":{"id":7454,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7448,"src":"11319:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7456,"nodeType":"ExpressionStatement","src":"11319:3:9"},"nodeType":"ForStatement","src":"11290:106:9"},{"expression":{"id":7477,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7434,"src":"11412:3:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7432,"id":7478,"nodeType":"Return","src":"11405:10:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bytesToBytes32","nameLocation":"11127:14:9","parameters":{"id":7429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7426,"mutability":"mutable","name":"b","nameLocation":"11155:1:9","nodeType":"VariableDeclaration","scope":7480,"src":"11142:14:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7425,"name":"bytes","nodeType":"ElementaryTypeName","src":"11142:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7428,"mutability":"mutable","name":"offset","nameLocation":"11166:6:9","nodeType":"VariableDeclaration","scope":7480,"src":"11158:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7427,"name":"uint256","nodeType":"ElementaryTypeName","src":"11158:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11141:32:9"},"returnParameters":{"id":7432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7431,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7480,"src":"11196:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7430,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11196:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11195:9:9"},"scope":7522,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":7521,"nodeType":"FunctionDefinition","src":"11479:393:9","nodes":[],"body":{"id":7520,"nodeType":"Block","src":"11552:320:9","nodes":[],"statements":[{"assignments":[7489],"declarations":[{"constant":false,"id":7489,"mutability":"mutable","name":"result","nameLocation":"11575:6:9","nodeType":"VariableDeclaration","scope":7520,"src":"11562:19:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7488,"name":"bytes","nodeType":"ElementaryTypeName","src":"11562:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7497,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7492,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7483,"src":"11594:1:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11596:6:9","memberName":"length","nodeType":"MemberAccess","src":"11594:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":7494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11605:2:9","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11594:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11584:9:9","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":7490,"name":"bytes","nodeType":"ElementaryTypeName","src":"11588:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":7496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11584:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"11562:46:9"},{"body":{"id":7516,"nodeType":"Block","src":"11657:185:9","statements":[{"assignments":[7510],"declarations":[{"constant":false,"id":7510,"mutability":"mutable","name":"k","nameLocation":"11679:1:9","nodeType":"VariableDeclaration","scope":7516,"src":"11671:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7509,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11671:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7514,"initialValue":{"baseExpression":{"id":7511,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7483,"src":"11683:1:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7513,"indexExpression":{"id":7512,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7499,"src":"11685:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11683:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11671:16:9"},{"AST":{"nativeSrc":"11757:75:9","nodeType":"YulBlock","src":"11757:75:9","statements":[{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"11786:6:9","nodeType":"YulIdentifier","src":"11786:6:9"},{"arguments":[{"kind":"number","nativeSrc":"11798:2:9","nodeType":"YulLiteral","src":"11798:2:9","type":"","value":"32"},{"arguments":[{"kind":"number","nativeSrc":"11806:2:9","nodeType":"YulLiteral","src":"11806:2:9","type":"","value":"32"},{"name":"i","nativeSrc":"11810:1:9","nodeType":"YulIdentifier","src":"11810:1:9"}],"functionName":{"name":"mul","nativeSrc":"11802:3:9","nodeType":"YulIdentifier","src":"11802:3:9"},"nativeSrc":"11802:10:9","nodeType":"YulFunctionCall","src":"11802:10:9"}],"functionName":{"name":"add","nativeSrc":"11794:3:9","nodeType":"YulIdentifier","src":"11794:3:9"},"nativeSrc":"11794:19:9","nodeType":"YulFunctionCall","src":"11794:19:9"}],"functionName":{"name":"add","nativeSrc":"11782:3:9","nodeType":"YulIdentifier","src":"11782:3:9"},"nativeSrc":"11782:32:9","nodeType":"YulFunctionCall","src":"11782:32:9"},{"name":"k","nativeSrc":"11816:1:9","nodeType":"YulIdentifier","src":"11816:1:9"}],"functionName":{"name":"mstore","nativeSrc":"11775:6:9","nodeType":"YulIdentifier","src":"11775:6:9"},"nativeSrc":"11775:43:9","nodeType":"YulFunctionCall","src":"11775:43:9"},"nativeSrc":"11775:43:9","nodeType":"YulExpressionStatement","src":"11775:43:9"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":7499,"isOffset":false,"isSlot":false,"src":"11810:1:9","valueSize":1},{"declaration":7510,"isOffset":false,"isSlot":false,"src":"11816:1:9","valueSize":1},{"declaration":7489,"isOffset":false,"isSlot":false,"src":"11786:6:9","valueSize":1}],"id":7515,"nodeType":"InlineAssembly","src":"11748:84:9"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7502,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7499,"src":"11638:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7503,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7483,"src":"11642:1:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11644:6:9","memberName":"length","nodeType":"MemberAccess","src":"11642:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11638:12:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7517,"initializationExpression":{"assignments":[7499],"declarations":[{"constant":false,"id":7499,"mutability":"mutable","name":"i","nameLocation":"11631:1:9","nodeType":"VariableDeclaration","scope":7517,"src":"11623:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7498,"name":"uint256","nodeType":"ElementaryTypeName","src":"11623:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7501,"initialValue":{"hexValue":"30","id":7500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11635:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11623:13:9"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":7507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11652:3:9","subExpression":{"id":7506,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7499,"src":"11652:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7508,"nodeType":"ExpressionStatement","src":"11652:3:9"},"nodeType":"ForStatement","src":"11618:224:9"},{"expression":{"id":7518,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7489,"src":"11859:6:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7487,"id":7519,"nodeType":"Return","src":"11852:13:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"flatten","nameLocation":"11488:7:9","parameters":{"id":7484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7483,"mutability":"mutable","name":"b","nameLocation":"11513:1:9","nodeType":"VariableDeclaration","scope":7521,"src":"11496:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7481,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11496:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7482,"nodeType":"ArrayTypeName","src":"11496:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"11495:20:9"},"returnParameters":{"id":7487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7521,"src":"11538:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7485,"name":"bytes","nodeType":"ElementaryTypeName","src":"11538:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11537:14:9"},"scope":7522,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"stdStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[7522],"name":"stdStorage","nameLocation":"7355:10:9","scope":7523,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":9} \ No newline at end of file diff --git a/out/StdStorage.sol/stdStorageSafe.json b/out/StdStorage.sol/stdStorageSafe.json deleted file mode 100644 index 264809fe..00000000 --- a/out/StdStorage.sol/stdStorageSafe.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212209e4e1915a6f0e02713bc44052149a040d9e7058f990c9c42446c879af57777ec64736f6c63430008160033","sourceMap":"368:6977:9:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212209e4e1915a6f0e02713bc44052149a040d9e7058f990c9c42446c879af57777ec64736f6c63430008160033","sourceMap":"368:6977:9:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/forge-std/src/StdStorage.sol\":\"stdStorageSafe\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/forge-std/src/StdStorage.sol":"stdStorageSafe"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/forge-std/src/StdStorage.sol","id":7523,"exportedSymbols":{"StdStorage":[6088],"Vm":[9352],"stdStorage":[7522],"stdStorageSafe":[6981]},"nodeType":"SourceUnit","src":"32:11843:9","nodes":[{"id":6058,"nodeType":"PragmaDirective","src":"32:31:9","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":6060,"nodeType":"ImportDirective","src":"65:28:9","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":7523,"sourceUnit":9353,"symbolAliases":[{"foreign":{"id":6059,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9352,"src":"73:2:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6088,"nodeType":"StructDefinition","src":"95:271:9","nodes":[],"canonicalName":"StdStorage","members":[{"constant":false,"id":6068,"mutability":"mutable","name":"slots","nameLocation":"186:5:9","nodeType":"VariableDeclaration","scope":6088,"src":"119:72:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))"},"typeName":{"id":6067,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6061,"name":"address","nodeType":"ElementaryTypeName","src":"127:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"119:66:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6066,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6062,"name":"bytes4","nodeType":"ElementaryTypeName","src":"146:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Mapping","src":"138:46:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6065,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6063,"name":"bytes32","nodeType":"ElementaryTypeName","src":"164:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"156:27:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6064,"name":"uint256","nodeType":"ElementaryTypeName","src":"175:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}}},"visibility":"internal"},{"constant":false,"id":6076,"mutability":"mutable","name":"finds","nameLocation":"261:5:9","nodeType":"VariableDeclaration","scope":6088,"src":"197:69:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))"},"typeName":{"id":6075,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6069,"name":"address","nodeType":"ElementaryTypeName","src":"205:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"197:63:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6074,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6070,"name":"bytes4","nodeType":"ElementaryTypeName","src":"224:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Mapping","src":"216:43:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6073,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6071,"name":"bytes32","nodeType":"ElementaryTypeName","src":"242:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"234:24:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6072,"name":"bool","nodeType":"ElementaryTypeName","src":"253:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}}},"visibility":"internal"},{"constant":false,"id":6079,"mutability":"mutable","name":"_keys","nameLocation":"282:5:9","nodeType":"VariableDeclaration","scope":6088,"src":"272:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":6077,"name":"bytes32","nodeType":"ElementaryTypeName","src":"272:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6078,"nodeType":"ArrayTypeName","src":"272:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":6081,"mutability":"mutable","name":"_sig","nameLocation":"300:4:9","nodeType":"VariableDeclaration","scope":6088,"src":"293:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6080,"name":"bytes4","nodeType":"ElementaryTypeName","src":"293:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":6083,"mutability":"mutable","name":"_depth","nameLocation":"318:6:9","nodeType":"VariableDeclaration","scope":6088,"src":"310:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6082,"name":"uint256","nodeType":"ElementaryTypeName","src":"310:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6085,"mutability":"mutable","name":"_target","nameLocation":"338:7:9","nodeType":"VariableDeclaration","scope":6088,"src":"330:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6084,"name":"address","nodeType":"ElementaryTypeName","src":"330:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6087,"mutability":"mutable","name":"_set","nameLocation":"359:4:9","nodeType":"VariableDeclaration","scope":6088,"src":"351:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6086,"name":"bytes32","nodeType":"ElementaryTypeName","src":"351:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"StdStorage","nameLocation":"102:10:9","scope":7523,"visibility":"public"},{"id":6981,"nodeType":"ContractDefinition","src":"368:6977:9","nodes":[{"id":6098,"nodeType":"EventDefinition","src":"397:74:9","nodes":[],"anonymous":false,"eventSelector":"9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed","name":"SlotFound","nameLocation":"403:9:9","parameters":{"id":6097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6090,"indexed":false,"mutability":"mutable","name":"who","nameLocation":"421:3:9","nodeType":"VariableDeclaration","scope":6098,"src":"413:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6089,"name":"address","nodeType":"ElementaryTypeName","src":"413:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6092,"indexed":false,"mutability":"mutable","name":"fsig","nameLocation":"433:4:9","nodeType":"VariableDeclaration","scope":6098,"src":"426:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6091,"name":"bytes4","nodeType":"ElementaryTypeName","src":"426:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":6094,"indexed":false,"mutability":"mutable","name":"keysHash","nameLocation":"447:8:9","nodeType":"VariableDeclaration","scope":6098,"src":"439:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6093,"name":"bytes32","nodeType":"ElementaryTypeName","src":"439:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6096,"indexed":false,"mutability":"mutable","name":"slot","nameLocation":"465:4:9","nodeType":"VariableDeclaration","scope":6098,"src":"457:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6095,"name":"uint256","nodeType":"ElementaryTypeName","src":"457:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"412:58:9"}},{"id":6104,"nodeType":"EventDefinition","src":"476:54:9","nodes":[],"anonymous":false,"eventSelector":"080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5","name":"WARNING_UninitedSlot","nameLocation":"482:20:9","parameters":{"id":6103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6100,"indexed":false,"mutability":"mutable","name":"who","nameLocation":"511:3:9","nodeType":"VariableDeclaration","scope":6104,"src":"503:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6099,"name":"address","nodeType":"ElementaryTypeName","src":"503:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6102,"indexed":false,"mutability":"mutable","name":"slot","nameLocation":"524:4:9","nodeType":"VariableDeclaration","scope":6104,"src":"516:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6101,"name":"uint256","nodeType":"ElementaryTypeName","src":"516:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"502:27:9"}},{"id":6121,"nodeType":"VariableDeclaration","src":"536:84:9","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"556:2:9","scope":6981,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"},"typeName":{"id":6106,"nodeType":"UserDefinedTypeName","pathNode":{"id":6105,"name":"Vm","nameLocations":["536:2:9"],"nodeType":"IdentifierPath","referencedDeclaration":9352,"src":"536:2:9"},"referencedDeclaration":9352,"src":"536:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":6115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"598:17:9","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":6114,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"588:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"588:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"580:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6112,"name":"uint256","nodeType":"ElementaryTypeName","src":"580:7:9","typeDescriptions":{}}},"id":6117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"580:37:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"572:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":6110,"name":"uint160","nodeType":"ElementaryTypeName","src":"572:7:9","typeDescriptions":{}}},"id":6118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"572:46:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":6109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"564:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6108,"name":"address","nodeType":"ElementaryTypeName","src":"564:7:9","typeDescriptions":{}}},"id":6119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"564:55:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6107,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9352,"src":"561:2:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$9352_$","typeString":"type(contract Vm)"}},"id":6120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"561:59:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"visibility":"private"},{"id":6139,"nodeType":"FunctionDefinition","src":"627:123:9","nodes":[],"body":{"id":6138,"nodeType":"Block","src":"694:56:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":6133,"name":"sigStr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6123,"src":"734:6:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"728:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":6131,"name":"bytes","nodeType":"ElementaryTypeName","src":"728:5:9","typeDescriptions":{}}},"id":6134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"728:13:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6130,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"718:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"718:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6129,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"711:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":6128,"name":"bytes4","nodeType":"ElementaryTypeName","src":"711:6:9","typeDescriptions":{}}},"id":6136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"711:32:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":6127,"id":6137,"nodeType":"Return","src":"704:39:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sigs","nameLocation":"636:4:9","parameters":{"id":6124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6123,"mutability":"mutable","name":"sigStr","nameLocation":"655:6:9","nodeType":"VariableDeclaration","scope":6139,"src":"641:20:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6122,"name":"string","nodeType":"ElementaryTypeName","src":"641:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"640:22:9"},"returnParameters":{"id":6127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6126,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6139,"src":"686:6:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6125,"name":"bytes4","nodeType":"ElementaryTypeName","src":"686:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"685:8:9"},"scope":6981,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6584,"nodeType":"FunctionDefinition","src":"1264:3205:9","nodes":[],"body":{"id":6583,"nodeType":"Block","src":"1330:3139:9","nodes":[],"statements":[{"assignments":[6149],"declarations":[{"constant":false,"id":6149,"mutability":"mutable","name":"who","nameLocation":"1348:3:9","nodeType":"VariableDeclaration","scope":6583,"src":"1340:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6148,"name":"address","nodeType":"ElementaryTypeName","src":"1340:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6152,"initialValue":{"expression":{"id":6150,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"1354:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1359:7:9","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":6085,"src":"1354:12:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1340:26:9"},{"assignments":[6154],"declarations":[{"constant":false,"id":6154,"mutability":"mutable","name":"fsig","nameLocation":"1383:4:9","nodeType":"VariableDeclaration","scope":6583,"src":"1376:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6153,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1376:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":6157,"initialValue":{"expression":{"id":6155,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"1390:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6156,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1395:4:9","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":6081,"src":"1390:9:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"1376:23:9"},{"assignments":[6159],"declarations":[{"constant":false,"id":6159,"mutability":"mutable","name":"field_depth","nameLocation":"1417:11:9","nodeType":"VariableDeclaration","scope":6583,"src":"1409:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6158,"name":"uint256","nodeType":"ElementaryTypeName","src":"1409:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6162,"initialValue":{"expression":{"id":6160,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"1431:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1436:6:9","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":6083,"src":"1431:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1409:33:9"},{"assignments":[6167],"declarations":[{"constant":false,"id":6167,"mutability":"mutable","name":"ins","nameLocation":"1469:3:9","nodeType":"VariableDeclaration","scope":6583,"src":"1452:20:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":6165,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1452:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6166,"nodeType":"ArrayTypeName","src":"1452:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":6170,"initialValue":{"expression":{"id":6168,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"1475:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1480:5:9","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":6079,"src":"1475:10:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1452:33:9"},{"condition":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":6171,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"1536:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1541:5:9","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":6076,"src":"1536:10:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))"}},"id":6174,"indexExpression":{"id":6173,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"1547:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1536:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => bool))"}},"id":6176,"indexExpression":{"id":6175,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"1552:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1536:21:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":6184,"indexExpression":{"arguments":[{"arguments":[{"id":6180,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"1585:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":6181,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"1590:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6178,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1568:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6179,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1572:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"1568:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1568:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6177,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1558:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1558:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1536:68:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6201,"nodeType":"IfStatement","src":"1532:174:9","trueBody":{"id":6200,"nodeType":"Block","src":"1606:100:9","statements":[{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":6185,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"1627:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1632:5:9","memberName":"slots","nodeType":"MemberAccess","referencedDeclaration":6068,"src":"1627:10:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))"}},"id":6188,"indexExpression":{"id":6187,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"1638:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1627:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => uint256))"}},"id":6190,"indexExpression":{"id":6189,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"1643:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1627:21:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":6198,"indexExpression":{"arguments":[{"arguments":[{"id":6194,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"1676:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":6195,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"1681:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6192,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1659:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1663:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"1659:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1659:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6191,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1649:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1649:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1627:68:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6147,"id":6199,"nodeType":"Return","src":"1620:75:9"}]}},{"assignments":[6203],"declarations":[{"constant":false,"id":6203,"mutability":"mutable","name":"cald","nameLocation":"1728:4:9","nodeType":"VariableDeclaration","scope":6583,"src":"1715:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6202,"name":"bytes","nodeType":"ElementaryTypeName","src":"1715:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6211,"initialValue":{"arguments":[{"id":6206,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"1752:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"id":6208,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"1766:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":6207,"name":"flatten","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6980,"src":"1758:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32[] memory) pure returns (bytes memory)"}},"id":6209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1758:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6204,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1735:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1739:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"1735:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1735:36:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1715:56:9"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6212,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"1781:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":6214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1784:6:9","memberName":"record","nodeType":"MemberAccess","referencedDeclaration":8553,"src":"1781:9:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":6215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1781:11:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6216,"nodeType":"ExpressionStatement","src":"1781:11:9"},{"assignments":[6218],"declarations":[{"constant":false,"id":6218,"mutability":"mutable","name":"fdat","nameLocation":"1810:4:9","nodeType":"VariableDeclaration","scope":6583,"src":"1802:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6217,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1802:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":6219,"nodeType":"VariableDeclarationStatement","src":"1802:12:9"},{"id":6236,"nodeType":"Block","src":"1824:128:9","statements":[{"assignments":[null,6221],"declarations":[null,{"constant":false,"id":6221,"mutability":"mutable","name":"rdat","nameLocation":"1854:4:9","nodeType":"VariableDeclaration","scope":6236,"src":"1841:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6220,"name":"bytes","nodeType":"ElementaryTypeName","src":"1841:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6226,"initialValue":{"arguments":[{"id":6224,"name":"cald","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6203,"src":"1877:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6222,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"1862:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1866:10:9","memberName":"staticcall","nodeType":"MemberAccess","src":"1862:14:9","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":6225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1862:20:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1838:44:9"},{"expression":{"id":6234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6227,"name":"fdat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6218,"src":"1896:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6229,"name":"rdat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"1918:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":6230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1924:2:9","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":6231,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"1929:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1924:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6228,"name":"bytesToBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6939,"src":"1903:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (bytes memory,uint256) pure returns (bytes32)"}},"id":6233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1903:38:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1896:45:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6235,"nodeType":"ExpressionStatement","src":"1896:45:9"}]},{"assignments":[6241,null],"declarations":[{"constant":false,"id":6241,"mutability":"mutable","name":"reads","nameLocation":"1980:5:9","nodeType":"VariableDeclaration","scope":6583,"src":"1963:22:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":6239,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1963:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6240,"nodeType":"ArrayTypeName","src":"1963:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},null],"id":6249,"initialValue":{"arguments":[{"arguments":[{"id":6246,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"2010:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2002:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6244,"name":"address","nodeType":"ElementaryTypeName","src":"2002:7:9","typeDescriptions":{}}},"id":6247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2002:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6242,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"1990:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":6243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1993:8:9","memberName":"accesses","nodeType":"MemberAccess","referencedDeclaration":8564,"src":"1990:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (address) external returns (bytes32[] memory,bytes32[] memory)"}},"id":6248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1990:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"tuple(bytes32[] memory,bytes32[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"1962:53:9"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6250,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"2029:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2035:6:9","memberName":"length","nodeType":"MemberAccess","src":"2029:12:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":6252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2045:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2029:17:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6352,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"2786:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2792:6:9","memberName":"length","nodeType":"MemberAccess","src":"2786:12:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":6354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2801:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2786:16:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6531,"nodeType":"Block","src":"3986:107:9","statements":[{"expression":{"arguments":[{"hexValue":"66616c7365","id":6527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4008:5:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"73746453746f726167652066696e642853746453746f72616765293a204e6f2073746f726167652075736520646574656374656420666f72207461726765742e","id":6528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4015:66:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_328ff448bebe6b9a52a670e66989b0a23c94fd0cbd86c30e5432c6ddc5340283","typeString":"literal_string \"stdStorage find(StdStorage): No storage use detected for target.\""},"value":"stdStorage find(StdStorage): No storage use detected for target."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_328ff448bebe6b9a52a670e66989b0a23c94fd0cbd86c30e5432c6ddc5340283","typeString":"literal_string \"stdStorage find(StdStorage): No storage use detected for target.\""}],"id":6526,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4000:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4000:82:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6530,"nodeType":"ExpressionStatement","src":"4000:82:9"}]},"id":6532,"nodeType":"IfStatement","src":"2782:1311:9","trueBody":{"id":6525,"nodeType":"Block","src":"2804:1176:9","statements":[{"body":{"id":6523,"nodeType":"Block","src":"2861:1109:9","statements":[{"assignments":[6368],"declarations":[{"constant":false,"id":6368,"mutability":"mutable","name":"prev","nameLocation":"2887:4:9","nodeType":"VariableDeclaration","scope":6523,"src":"2879:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6367,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2879:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":6376,"initialValue":{"arguments":[{"id":6371,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"2902:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6372,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"2907:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6374,"indexExpression":{"id":6373,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"2913:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2907:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":6369,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"2894:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":6370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2897:4:9","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":8235,"src":"2894:7:9","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":6375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2894:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2879:37:9"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":6382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6377,"name":"prev","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6368,"src":"2938:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2954:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2946:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6378,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2946:7:9","typeDescriptions":{}}},"id":6381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2946:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2938:18:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6394,"nodeType":"IfStatement","src":"2934:114:9","trueBody":{"id":6393,"nodeType":"Block","src":"2958:90:9","statements":[{"eventCall":{"arguments":[{"id":6384,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"3006:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"baseExpression":{"id":6387,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"3019:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6389,"indexExpression":{"id":6388,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"3025:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3019:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3011:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6385,"name":"uint256","nodeType":"ElementaryTypeName","src":"3011:7:9","typeDescriptions":{}}},"id":6390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3011:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6383,"name":"WARNING_UninitedSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6104,"src":"2985:20:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2985:44:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6392,"nodeType":"EmitStatement","src":"2980:49:9"}]}},{"expression":{"arguments":[{"id":6398,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"3099:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6399,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"3104:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6401,"indexExpression":{"id":6400,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"3110:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3104:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"1337","id":6404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"3122:9:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_2636a8beb2c41b8ccafa9a55a5a5e333892a83b491df3a67d2768946a9f9c6dc","typeString":"literal_string hex\"1337\""},"value":"\u00137"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2636a8beb2c41b8ccafa9a55a5a5e333892a83b491df3a67d2768946a9f9c6dc","typeString":"literal_string hex\"1337\""}],"id":6403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3114:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6402,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3114:7:9","typeDescriptions":{}}},"id":6405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3114:18:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":6395,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"3090:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":6397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3093:5:9","memberName":"store","nodeType":"MemberAccess","referencedDeclaration":9063,"src":"3090:8:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,bytes32) external"}},"id":6406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3090:43:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6407,"nodeType":"ExpressionStatement","src":"3090:43:9"},{"assignments":[6409],"declarations":[{"constant":false,"id":6409,"mutability":"mutable","name":"success","nameLocation":"3156:7:9","nodeType":"VariableDeclaration","scope":6523,"src":"3151:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6408,"name":"bool","nodeType":"ElementaryTypeName","src":"3151:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":6410,"nodeType":"VariableDeclarationStatement","src":"3151:12:9"},{"assignments":[6412],"declarations":[{"constant":false,"id":6412,"mutability":"mutable","name":"rdat","nameLocation":"3194:4:9","nodeType":"VariableDeclaration","scope":6523,"src":"3181:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6411,"name":"bytes","nodeType":"ElementaryTypeName","src":"3181:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6413,"nodeType":"VariableDeclarationStatement","src":"3181:17:9"},{"id":6432,"nodeType":"Block","src":"3216:146:9","statements":[{"expression":{"id":6421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":6414,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6409,"src":"3239:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6415,"name":"rdat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6412,"src":"3248:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":6416,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"3238:15:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6419,"name":"cald","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6203,"src":"3271:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6417,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"3256:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3260:10:9","memberName":"staticcall","nodeType":"MemberAccess","src":"3256:14:9","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":6420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3256:20:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"3238:38:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6422,"nodeType":"ExpressionStatement","src":"3238:38:9"},{"expression":{"id":6430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6423,"name":"fdat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6218,"src":"3298:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6425,"name":"rdat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6412,"src":"3320:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":6426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3326:2:9","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":6427,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"3331:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3326:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6424,"name":"bytesToBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6939,"src":"3305:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (bytes memory,uint256) pure returns (bytes32)"}},"id":6429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3305:38:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3298:45:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6431,"nodeType":"ExpressionStatement","src":"3298:45:9"}]},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6433,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6409,"src":"3384:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":6439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6434,"name":"fdat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6218,"src":"3395:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"1337","id":6437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"3411:9:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_2636a8beb2c41b8ccafa9a55a5a5e333892a83b491df3a67d2768946a9f9c6dc","typeString":"literal_string hex\"1337\""},"value":"\u00137"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2636a8beb2c41b8ccafa9a55a5a5e333892a83b491df3a67d2768946a9f9c6dc","typeString":"literal_string hex\"1337\""}],"id":6436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3403:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6435,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3403:7:9","typeDescriptions":{}}},"id":6438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3403:18:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3395:26:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3384:37:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6512,"nodeType":"IfStatement","src":"3380:529:9","trueBody":{"id":6511,"nodeType":"Block","src":"3423:486:9","statements":[{"eventCall":{"arguments":[{"id":6442,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"3529:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6443,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"3534:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"arguments":[{"id":6447,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"3567:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":6448,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"3572:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6445,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3550:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3554:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"3550:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3550:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6444,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3540:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3540:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"baseExpression":{"id":6453,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"3595:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6455,"indexExpression":{"id":6454,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"3601:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3595:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3587:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6451,"name":"uint256","nodeType":"ElementaryTypeName","src":"3587:7:9","typeDescriptions":{}}},"id":6456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3587:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6441,"name":"SlotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6098,"src":"3519:9:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes4_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (address,bytes4,bytes32,uint256)"}},"id":6457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3519:86:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6458,"nodeType":"EmitStatement","src":"3514:91:9"},{"expression":{"id":6480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":6459,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"3627:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6470,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3632:5:9","memberName":"slots","nodeType":"MemberAccess","referencedDeclaration":6068,"src":"3627:10:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))"}},"id":6471,"indexExpression":{"id":6461,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"3638:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3627:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => uint256))"}},"id":6472,"indexExpression":{"id":6462,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"3643:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3627:21:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":6473,"indexExpression":{"arguments":[{"arguments":[{"id":6466,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"3676:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":6467,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"3681:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6464,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3659:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6465,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3663:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"3659:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3659:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6463,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3649:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3649:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3627:68:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":6476,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"3706:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6478,"indexExpression":{"id":6477,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"3712:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3706:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3698:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6474,"name":"uint256","nodeType":"ElementaryTypeName","src":"3698:7:9","typeDescriptions":{}}},"id":6479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3698:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3627:88:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6481,"nodeType":"ExpressionStatement","src":"3627:88:9"},{"expression":{"id":6498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":6482,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"3737:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3742:5:9","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":6076,"src":"3737:10:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))"}},"id":6494,"indexExpression":{"id":6484,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"3748:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3737:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => bool))"}},"id":6495,"indexExpression":{"id":6485,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"3753:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3737:21:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":6496,"indexExpression":{"arguments":[{"arguments":[{"id":6489,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"3786:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":6490,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"3791:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6487,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3769:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6488,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3773:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"3769:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3769:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6486,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3759:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3759:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3737:68:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":6497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3808:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3737:75:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6499,"nodeType":"ExpressionStatement","src":"3737:75:9"},{"expression":{"arguments":[{"id":6503,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"3843:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6504,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"3848:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6506,"indexExpression":{"id":6505,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"3854:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3848:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6507,"name":"prev","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6368,"src":"3858:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":6500,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"3834:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":6502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3837:5:9","memberName":"store","nodeType":"MemberAccess","referencedDeclaration":9063,"src":"3834:8:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,bytes32) external"}},"id":6508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3834:29:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6509,"nodeType":"ExpressionStatement","src":"3834:29:9"},{"id":6510,"nodeType":"Break","src":"3885:5:9"}]}},{"expression":{"arguments":[{"id":6516,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"3935:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6517,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"3940:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6519,"indexExpression":{"id":6518,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"3946:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3940:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6520,"name":"prev","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6368,"src":"3950:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":6513,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"3926:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":6515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3929:5:9","memberName":"store","nodeType":"MemberAccess","referencedDeclaration":9063,"src":"3926:8:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,bytes32) external"}},"id":6521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3926:29:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6522,"nodeType":"ExpressionStatement","src":"3926:29:9"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6360,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"2838:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":6361,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"2842:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2848:6:9","memberName":"length","nodeType":"MemberAccess","src":"2842:12:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2838:16:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6524,"initializationExpression":{"assignments":[6357],"declarations":[{"constant":false,"id":6357,"mutability":"mutable","name":"i","nameLocation":"2831:1:9","nodeType":"VariableDeclaration","scope":6524,"src":"2823:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6356,"name":"uint256","nodeType":"ElementaryTypeName","src":"2823:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6359,"initialValue":{"hexValue":"30","id":6358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2835:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2823:13:9"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":6365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2856:3:9","subExpression":{"id":6364,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"2856:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6366,"nodeType":"ExpressionStatement","src":"2856:3:9"},"nodeType":"ForStatement","src":"2818:1152:9"}]}},"id":6533,"nodeType":"IfStatement","src":"2025:2068:9","trueBody":{"id":6351,"nodeType":"Block","src":"2048:728:9","statements":[{"assignments":[6255],"declarations":[{"constant":false,"id":6255,"mutability":"mutable","name":"curr","nameLocation":"2070:4:9","nodeType":"VariableDeclaration","scope":6351,"src":"2062:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6254,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2062:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":6263,"initialValue":{"arguments":[{"id":6258,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"2085:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":6259,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"2090:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6261,"indexExpression":{"hexValue":"30","id":6260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2096:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2090:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":6256,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"2077:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":6257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2080:4:9","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":8235,"src":"2077:7:9","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":6262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2077:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2062:37:9"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":6269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6264,"name":"curr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6255,"src":"2117:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2133:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2125:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2125:7:9","typeDescriptions":{}}},"id":6268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2125:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2117:18:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6281,"nodeType":"IfStatement","src":"2113:106:9","trueBody":{"id":6280,"nodeType":"Block","src":"2137:82:9","statements":[{"eventCall":{"arguments":[{"id":6271,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"2181:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"baseExpression":{"id":6274,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"2194:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6276,"indexExpression":{"hexValue":"30","id":6275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2200:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2194:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2186:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6272,"name":"uint256","nodeType":"ElementaryTypeName","src":"2186:7:9","typeDescriptions":{}}},"id":6277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2186:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6270,"name":"WARNING_UninitedSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6104,"src":"2160:20:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2160:44:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6279,"nodeType":"EmitStatement","src":"2155:49:9"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":6284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6282,"name":"fdat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6218,"src":"2236:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6283,"name":"curr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6255,"src":"2244:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2236:12:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6291,"nodeType":"IfStatement","src":"2232:238:9","trueBody":{"id":6290,"nodeType":"Block","src":"2250:220:9","statements":[{"expression":{"arguments":[{"hexValue":"66616c7365","id":6286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2297:5:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"73746453746f726167652066696e642853746453746f72616765293a205061636b656420736c6f742e205468697320776f756c642063617573652064616e6765726f7573206f76657277726974696e6720616e642063757272656e746c792069736e277420737570706f727465642e","id":6287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2324:113:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_4bfa78e02b745efea2b29d358f6dc28382f5209b1d2b2dbeb8ef0862e74440b3","typeString":"literal_string \"stdStorage find(StdStorage): Packed slot. This would cause dangerous overwriting and currently isn't supported.\""},"value":"stdStorage find(StdStorage): Packed slot. This would cause dangerous overwriting and currently isn't supported."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4bfa78e02b745efea2b29d358f6dc28382f5209b1d2b2dbeb8ef0862e74440b3","typeString":"literal_string \"stdStorage find(StdStorage): Packed slot. This would cause dangerous overwriting and currently isn't supported.\""}],"id":6285,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2268:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2268:187:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6289,"nodeType":"ExpressionStatement","src":"2268:187:9"}]}},{"eventCall":{"arguments":[{"id":6293,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"2498:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6294,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"2503:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"arguments":[{"id":6298,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"2536:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":6299,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"2541:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6296,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2519:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2523:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"2519:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2519:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6295,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2509:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2509:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"baseExpression":{"id":6304,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"2564:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6306,"indexExpression":{"hexValue":"30","id":6305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2570:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2564:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2556:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6302,"name":"uint256","nodeType":"ElementaryTypeName","src":"2556:7:9","typeDescriptions":{}}},"id":6307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2556:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6292,"name":"SlotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6098,"src":"2488:9:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes4_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (address,bytes4,bytes32,uint256)"}},"id":6308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2488:86:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6309,"nodeType":"EmitStatement","src":"2483:91:9"},{"expression":{"id":6331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":6310,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"2588:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2593:5:9","memberName":"slots","nodeType":"MemberAccess","referencedDeclaration":6068,"src":"2588:10:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))"}},"id":6322,"indexExpression":{"id":6312,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"2599:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2588:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => uint256))"}},"id":6323,"indexExpression":{"id":6313,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"2604:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2588:21:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":6324,"indexExpression":{"arguments":[{"arguments":[{"id":6317,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"2637:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":6318,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"2642:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6315,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2620:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2624:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"2620:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2620:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6314,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2610:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2610:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2588:68:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":6327,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"2667:5:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6329,"indexExpression":{"hexValue":"30","id":6328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2673:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2667:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6326,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2659:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6325,"name":"uint256","nodeType":"ElementaryTypeName","src":"2659:7:9","typeDescriptions":{}}},"id":6330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2659:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2588:88:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6332,"nodeType":"ExpressionStatement","src":"2588:88:9"},{"expression":{"id":6349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":6333,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"2690:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2695:5:9","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":6076,"src":"2690:10:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))"}},"id":6345,"indexExpression":{"id":6335,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"2701:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2690:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => bool))"}},"id":6346,"indexExpression":{"id":6336,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"2706:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2690:21:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":6347,"indexExpression":{"arguments":[{"arguments":[{"id":6340,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"2739:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":6341,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"2744:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6338,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2722:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2726:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"2722:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2722:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6337,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2712:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2712:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2690:68:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":6348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2761:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2690:75:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6350,"nodeType":"ExpressionStatement","src":"2690:75:9"}]}},{"expression":{"arguments":[{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":6535,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"4124:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6536,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4129:5:9","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":6076,"src":"4124:10:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))"}},"id":6538,"indexExpression":{"id":6537,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"4135:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4124:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => bool))"}},"id":6540,"indexExpression":{"id":6539,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"4140:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4124:21:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":6548,"indexExpression":{"arguments":[{"arguments":[{"id":6544,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"4173:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":6545,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"4178:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6542,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4156:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4160:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"4156:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4156:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6541,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4146:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4146:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4124:68:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"73746453746f726167652066696e642853746453746f72616765293a20536c6f74287329206e6f7420666f756e642e","id":6549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4206:49:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_47c274d4780c7bff83310cd576005a97888a2b2935c22f84e1e5282c1bfb39a8","typeString":"literal_string \"stdStorage find(StdStorage): Slot(s) not found.\""},"value":"stdStorage find(StdStorage): Slot(s) not found."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_47c274d4780c7bff83310cd576005a97888a2b2935c22f84e1e5282c1bfb39a8","typeString":"literal_string \"stdStorage find(StdStorage): Slot(s) not found.\""}],"id":6534,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4103:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4103:162:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6551,"nodeType":"ExpressionStatement","src":"4103:162:9"},{"expression":{"id":6554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4276:19:9","subExpression":{"expression":{"id":6552,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"4283:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6553,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4288:7:9","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":6085,"src":"4283:12:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6555,"nodeType":"ExpressionStatement","src":"4276:19:9"},{"expression":{"id":6558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4305:16:9","subExpression":{"expression":{"id":6556,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"4312:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4317:4:9","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":6081,"src":"4312:9:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6559,"nodeType":"ExpressionStatement","src":"4305:16:9"},{"expression":{"id":6562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4331:17:9","subExpression":{"expression":{"id":6560,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"4338:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4343:5:9","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":6079,"src":"4338:10:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6563,"nodeType":"ExpressionStatement","src":"4331:17:9"},{"expression":{"id":6566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4358:18:9","subExpression":{"expression":{"id":6564,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"4365:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4370:6:9","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":6083,"src":"4365:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6567,"nodeType":"ExpressionStatement","src":"4358:18:9"},{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":6568,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6143,"src":"4394:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4399:5:9","memberName":"slots","nodeType":"MemberAccess","referencedDeclaration":6068,"src":"4394:10:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))"}},"id":6571,"indexExpression":{"id":6570,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"4405:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4394:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => uint256))"}},"id":6573,"indexExpression":{"id":6572,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6154,"src":"4410:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4394:21:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":6581,"indexExpression":{"arguments":[{"arguments":[{"id":6577,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6167,"src":"4443:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":6578,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"4448:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6575,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4426:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4430:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"4426:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4426:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6574,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4416:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4416:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4394:68:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6147,"id":6582,"nodeType":"Return","src":"4387:75:9"}]},"documentation":{"id":6140,"nodeType":"StructuredDocumentation","src":"756:129:9","text":"@notice find an arbitrary storage slot given a function sig, input data, address of the contract and a value to check against"},"implemented":true,"kind":"function","modifiers":[],"name":"find","nameLocation":"1273:4:9","parameters":{"id":6144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6143,"mutability":"mutable","name":"self","nameLocation":"1297:4:9","nodeType":"VariableDeclaration","scope":6584,"src":"1278:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6142,"nodeType":"UserDefinedTypeName","pathNode":{"id":6141,"name":"StdStorage","nameLocations":["1278:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"1278:10:9"},"referencedDeclaration":6088,"src":"1278:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"1277:25:9"},"returnParameters":{"id":6147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6584,"src":"1321:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6145,"name":"uint256","nodeType":"ElementaryTypeName","src":"1321:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1320:9:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6604,"nodeType":"FunctionDefinition","src":"4475:156:9","nodes":[],"body":{"id":6603,"nodeType":"Block","src":"4571:60:9","nodes":[],"statements":[{"expression":{"id":6599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6595,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6587,"src":"4581:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6597,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4586:7:9","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":6085,"src":"4581:12:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6598,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6589,"src":"4596:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4581:22:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6600,"nodeType":"ExpressionStatement","src":"4581:22:9"},{"expression":{"id":6601,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6587,"src":"4620:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":6594,"id":6602,"nodeType":"Return","src":"4613:11:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"target","nameLocation":"4484:6:9","parameters":{"id":6590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6587,"mutability":"mutable","name":"self","nameLocation":"4510:4:9","nodeType":"VariableDeclaration","scope":6604,"src":"4491:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6586,"nodeType":"UserDefinedTypeName","pathNode":{"id":6585,"name":"StdStorage","nameLocations":["4491:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"4491:10:9"},"referencedDeclaration":6088,"src":"4491:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":6589,"mutability":"mutable","name":"_target","nameLocation":"4524:7:9","nodeType":"VariableDeclaration","scope":6604,"src":"4516:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6588,"name":"address","nodeType":"ElementaryTypeName","src":"4516:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4490:42:9"},"returnParameters":{"id":6594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6593,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6604,"src":"4551:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6592,"nodeType":"UserDefinedTypeName","pathNode":{"id":6591,"name":"StdStorage","nameLocations":["4551:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"4551:10:9"},"referencedDeclaration":6088,"src":"4551:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"4550:20:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6624,"nodeType":"FunctionDefinition","src":"4637:143:9","nodes":[],"body":{"id":6623,"nodeType":"Block","src":"4726:54:9","nodes":[],"statements":[{"expression":{"id":6619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6615,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6607,"src":"4736:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4741:4:9","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":6081,"src":"4736:9:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6618,"name":"_sig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6609,"src":"4748:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4736:16:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":6620,"nodeType":"ExpressionStatement","src":"4736:16:9"},{"expression":{"id":6621,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6607,"src":"4769:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":6614,"id":6622,"nodeType":"Return","src":"4762:11:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sig","nameLocation":"4646:3:9","parameters":{"id":6610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6607,"mutability":"mutable","name":"self","nameLocation":"4669:4:9","nodeType":"VariableDeclaration","scope":6624,"src":"4650:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6606,"nodeType":"UserDefinedTypeName","pathNode":{"id":6605,"name":"StdStorage","nameLocations":["4650:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"4650:10:9"},"referencedDeclaration":6088,"src":"4650:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":6609,"mutability":"mutable","name":"_sig","nameLocation":"4682:4:9","nodeType":"VariableDeclaration","scope":6624,"src":"4675:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6608,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4675:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"4649:38:9"},"returnParameters":{"id":6614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6613,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6624,"src":"4706:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6612,"nodeType":"UserDefinedTypeName","pathNode":{"id":6611,"name":"StdStorage","nameLocations":["4706:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"4706:10:9"},"referencedDeclaration":6088,"src":"4706:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"4705:20:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6646,"nodeType":"FunctionDefinition","src":"4786:156:9","nodes":[],"body":{"id":6645,"nodeType":"Block","src":"4882:60:9","nodes":[],"statements":[{"expression":{"id":6641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6635,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6627,"src":"4892:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4897:4:9","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":6081,"src":"4892:9:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6639,"name":"_sig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6629,"src":"4909:4:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6638,"name":"sigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6139,"src":"4904:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes4_$","typeString":"function (string memory) pure returns (bytes4)"}},"id":6640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4904:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4892:22:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":6642,"nodeType":"ExpressionStatement","src":"4892:22:9"},{"expression":{"id":6643,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6627,"src":"4931:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":6634,"id":6644,"nodeType":"Return","src":"4924:11:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sig","nameLocation":"4795:3:9","parameters":{"id":6630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6627,"mutability":"mutable","name":"self","nameLocation":"4818:4:9","nodeType":"VariableDeclaration","scope":6646,"src":"4799:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6626,"nodeType":"UserDefinedTypeName","pathNode":{"id":6625,"name":"StdStorage","nameLocations":["4799:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"4799:10:9"},"referencedDeclaration":6088,"src":"4799:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":6629,"mutability":"mutable","name":"_sig","nameLocation":"4838:4:9","nodeType":"VariableDeclaration","scope":6646,"src":"4824:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6628,"name":"string","nodeType":"ElementaryTypeName","src":"4824:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4798:45:9"},"returnParameters":{"id":6634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6633,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6646,"src":"4862:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6632,"nodeType":"UserDefinedTypeName","pathNode":{"id":6631,"name":"StdStorage","nameLocations":["4862:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"4862:10:9"},"referencedDeclaration":6088,"src":"4862:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"4861:20:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6677,"nodeType":"FunctionDefinition","src":"4948:179:9","nodes":[],"body":{"id":6676,"nodeType":"Block","src":"5042:85:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":6668,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6651,"src":"5092:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5084:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":6666,"name":"uint160","nodeType":"ElementaryTypeName","src":"5084:7:9","typeDescriptions":{}}},"id":6669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5084:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":6665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5076:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6664,"name":"uint256","nodeType":"ElementaryTypeName","src":"5076:7:9","typeDescriptions":{}}},"id":6670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5076:21:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5068:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5068:7:9","typeDescriptions":{}}},"id":6671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5068:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":6657,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6649,"src":"5052:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5057:5:9","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":6079,"src":"5052:10:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":6661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5063:4:9","memberName":"push","nodeType":"MemberAccess","src":"5052:15:9","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":6672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5052:47:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6673,"nodeType":"ExpressionStatement","src":"5052:47:9"},{"expression":{"id":6674,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6649,"src":"5116:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":6656,"id":6675,"nodeType":"Return","src":"5109:11:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"4957:8:9","parameters":{"id":6652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6649,"mutability":"mutable","name":"self","nameLocation":"4985:4:9","nodeType":"VariableDeclaration","scope":6677,"src":"4966:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6648,"nodeType":"UserDefinedTypeName","pathNode":{"id":6647,"name":"StdStorage","nameLocations":["4966:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"4966:10:9"},"referencedDeclaration":6088,"src":"4966:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":6651,"mutability":"mutable","name":"who","nameLocation":"4999:3:9","nodeType":"VariableDeclaration","scope":6677,"src":"4991:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6650,"name":"address","nodeType":"ElementaryTypeName","src":"4991:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4965:38:9"},"returnParameters":{"id":6656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6655,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6677,"src":"5022:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6654,"nodeType":"UserDefinedTypeName","pathNode":{"id":6653,"name":"StdStorage","nameLocations":["5022:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"5022:10:9"},"referencedDeclaration":6088,"src":"5022:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"5021:20:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6702,"nodeType":"FunctionDefinition","src":"5133:161:9","nodes":[],"body":{"id":6701,"nodeType":"Block","src":"5227:67:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":6695,"name":"amt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6682,"src":"5261:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5253:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6693,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5253:7:9","typeDescriptions":{}}},"id":6696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5253:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":6688,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6680,"src":"5237:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5242:5:9","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":6079,"src":"5237:10:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":6692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5248:4:9","memberName":"push","nodeType":"MemberAccess","src":"5237:15:9","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":6697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5237:29:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6698,"nodeType":"ExpressionStatement","src":"5237:29:9"},{"expression":{"id":6699,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6680,"src":"5283:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":6687,"id":6700,"nodeType":"Return","src":"5276:11:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"5142:8:9","parameters":{"id":6683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6680,"mutability":"mutable","name":"self","nameLocation":"5170:4:9","nodeType":"VariableDeclaration","scope":6702,"src":"5151:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6679,"nodeType":"UserDefinedTypeName","pathNode":{"id":6678,"name":"StdStorage","nameLocations":["5151:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"5151:10:9"},"referencedDeclaration":6088,"src":"5151:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":6682,"mutability":"mutable","name":"amt","nameLocation":"5184:3:9","nodeType":"VariableDeclaration","scope":6702,"src":"5176:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6681,"name":"uint256","nodeType":"ElementaryTypeName","src":"5176:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5150:38:9"},"returnParameters":{"id":6687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6686,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6702,"src":"5207:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6685,"nodeType":"UserDefinedTypeName","pathNode":{"id":6684,"name":"StdStorage","nameLocations":["5207:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"5207:10:9"},"referencedDeclaration":6088,"src":"5207:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"5206:20:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6724,"nodeType":"FunctionDefinition","src":"5300:152:9","nodes":[],"body":{"id":6723,"nodeType":"Block","src":"5394:58:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":6718,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6707,"src":"5420:3:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":6713,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6705,"src":"5404:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6716,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5409:5:9","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":6079,"src":"5404:10:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":6717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5415:4:9","memberName":"push","nodeType":"MemberAccess","src":"5404:15:9","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":6719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5404:20:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6720,"nodeType":"ExpressionStatement","src":"5404:20:9"},{"expression":{"id":6721,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6705,"src":"5441:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":6712,"id":6722,"nodeType":"Return","src":"5434:11:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"5309:8:9","parameters":{"id":6708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6705,"mutability":"mutable","name":"self","nameLocation":"5337:4:9","nodeType":"VariableDeclaration","scope":6724,"src":"5318:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6704,"nodeType":"UserDefinedTypeName","pathNode":{"id":6703,"name":"StdStorage","nameLocations":["5318:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"5318:10:9"},"referencedDeclaration":6088,"src":"5318:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":6707,"mutability":"mutable","name":"key","nameLocation":"5351:3:9","nodeType":"VariableDeclaration","scope":6724,"src":"5343:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6706,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5343:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5317:38:9"},"returnParameters":{"id":6712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6711,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6724,"src":"5374:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6710,"nodeType":"UserDefinedTypeName","pathNode":{"id":6709,"name":"StdStorage","nameLocations":["5374:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"5374:10:9"},"referencedDeclaration":6088,"src":"5374:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"5373:20:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6744,"nodeType":"FunctionDefinition","src":"5458:152:9","nodes":[],"body":{"id":6743,"nodeType":"Block","src":"5552:58:9","nodes":[],"statements":[{"expression":{"id":6739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6735,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6727,"src":"5562:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6737,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5567:6:9","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":6083,"src":"5562:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6738,"name":"_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6729,"src":"5576:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5562:20:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6740,"nodeType":"ExpressionStatement","src":"5562:20:9"},{"expression":{"id":6741,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6727,"src":"5599:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":6734,"id":6742,"nodeType":"Return","src":"5592:11:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"depth","nameLocation":"5467:5:9","parameters":{"id":6730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6727,"mutability":"mutable","name":"self","nameLocation":"5492:4:9","nodeType":"VariableDeclaration","scope":6744,"src":"5473:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6726,"nodeType":"UserDefinedTypeName","pathNode":{"id":6725,"name":"StdStorage","nameLocations":["5473:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"5473:10:9"},"referencedDeclaration":6088,"src":"5473:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":6729,"mutability":"mutable","name":"_depth","nameLocation":"5506:6:9","nodeType":"VariableDeclaration","scope":6744,"src":"5498:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6728,"name":"uint256","nodeType":"ElementaryTypeName","src":"5498:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5472:41:9"},"returnParameters":{"id":6734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6733,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6744,"src":"5532:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6732,"nodeType":"UserDefinedTypeName","pathNode":{"id":6731,"name":"StdStorage","nameLocations":["5532:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"5532:10:9"},"referencedDeclaration":6088,"src":"5532:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"5531:20:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6776,"nodeType":"FunctionDefinition","src":"5616:194:9","nodes":[],"body":{"id":6775,"nodeType":"Block","src":"5686:124:9","nodes":[],"statements":[{"assignments":[6753],"declarations":[{"constant":false,"id":6753,"mutability":"mutable","name":"t","nameLocation":"5704:1:9","nodeType":"VariableDeclaration","scope":6775,"src":"5696:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6752,"name":"address","nodeType":"ElementaryTypeName","src":"5696:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6756,"initialValue":{"expression":{"id":6754,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6747,"src":"5708:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5713:7:9","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":6085,"src":"5708:12:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5696:24:9"},{"assignments":[6758],"declarations":[{"constant":false,"id":6758,"mutability":"mutable","name":"s","nameLocation":"5738:1:9","nodeType":"VariableDeclaration","scope":6775,"src":"5730:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6757,"name":"uint256","nodeType":"ElementaryTypeName","src":"5730:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6762,"initialValue":{"arguments":[{"id":6760,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6747,"src":"5747:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":6759,"name":"find","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6584,"src":"5742:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct StdStorage storage pointer) returns (uint256)"}},"id":6761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5742:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5730:22:9"},{"expression":{"arguments":[{"arguments":[{"id":6767,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6753,"src":"5788:1:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":6770,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6758,"src":"5799:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5791:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6768,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5791:7:9","typeDescriptions":{}}},"id":6771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5791:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":6765,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"5780:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":6766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5783:4:9","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":8235,"src":"5780:7:9","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":6772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5780:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":6763,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5769:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5773:6:9","memberName":"encode","nodeType":"MemberAccess","src":"5769:10:9","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5769:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6751,"id":6774,"nodeType":"Return","src":"5762:41:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read","nameLocation":"5625:4:9","parameters":{"id":6748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6747,"mutability":"mutable","name":"self","nameLocation":"5649:4:9","nodeType":"VariableDeclaration","scope":6776,"src":"5630:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6746,"nodeType":"UserDefinedTypeName","pathNode":{"id":6745,"name":"StdStorage","nameLocations":["5630:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"5630:10:9"},"referencedDeclaration":6088,"src":"5630:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"5629:25:9"},"returnParameters":{"id":6751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6750,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6776,"src":"5672:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6749,"name":"bytes","nodeType":"ElementaryTypeName","src":"5672:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5671:14:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":6795,"nodeType":"FunctionDefinition","src":"5816:131:9","nodes":[],"body":{"id":6794,"nodeType":"Block","src":"5890:57:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":6787,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6779,"src":"5923:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":6786,"name":"read","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6776,"src":"5918:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct StdStorage storage pointer) returns (bytes memory)"}},"id":6788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5918:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5931:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5931:7:9","typeDescriptions":{}}}],"id":6791,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5930:9:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}],"expression":{"id":6784,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5907:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5911:6:9","memberName":"decode","nodeType":"MemberAccess","src":"5907:10:9","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5907:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":6783,"id":6793,"nodeType":"Return","src":"5900:40:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_bytes32","nameLocation":"5825:12:9","parameters":{"id":6780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6779,"mutability":"mutable","name":"self","nameLocation":"5857:4:9","nodeType":"VariableDeclaration","scope":6795,"src":"5838:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6778,"nodeType":"UserDefinedTypeName","pathNode":{"id":6777,"name":"StdStorage","nameLocations":["5838:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"5838:10:9"},"referencedDeclaration":6088,"src":"5838:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"5837:25:9"},"returnParameters":{"id":6783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6782,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6795,"src":"5881:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6781,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5881:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5880:9:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6826,"nodeType":"FunctionDefinition","src":"5953:279:9","nodes":[],"body":{"id":6825,"nodeType":"Block","src":"6021:211:9","nodes":[],"statements":[{"assignments":[6804],"declarations":[{"constant":false,"id":6804,"mutability":"mutable","name":"v","nameLocation":"6038:1:9","nodeType":"VariableDeclaration","scope":6825,"src":"6031:8:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6803,"name":"int256","nodeType":"ElementaryTypeName","src":"6031:6:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":6808,"initialValue":{"arguments":[{"id":6806,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6798,"src":"6051:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":6805,"name":"read_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6883,"src":"6042:8:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_int256_$","typeString":"function (struct StdStorage storage pointer) returns (int256)"}},"id":6807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6042:14:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"6031:25:9"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6809,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6804,"src":"6070:1:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6075:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6070:6:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6814,"nodeType":"IfStatement","src":"6066:24:9","trueBody":{"expression":{"hexValue":"66616c7365","id":6812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6085:5:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":6802,"id":6813,"nodeType":"Return","src":"6078:12:9"}},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6815,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6804,"src":"6104:1:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":6816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6109:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6104:6:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6820,"nodeType":"IfStatement","src":"6100:23:9","trueBody":{"expression":{"hexValue":"74727565","id":6818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6119:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":6802,"id":6819,"nodeType":"Return","src":"6112:11:9"}},{"expression":{"arguments":[{"hexValue":"73746453746f7261676520726561645f626f6f6c2853746453746f72616765293a2043616e6e6f74206465636f64652e204d616b65207375726520796f75206172652072656164696e67206120626f6f6c2e","id":6822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6140:84:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_91e3b02d190bb3e407570bfe894974b331ad10ba40f732248485a8a79ed8e4f5","typeString":"literal_string \"stdStorage read_bool(StdStorage): Cannot decode. Make sure you are reading a bool.\""},"value":"stdStorage read_bool(StdStorage): Cannot decode. Make sure you are reading a bool."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91e3b02d190bb3e407570bfe894974b331ad10ba40f732248485a8a79ed8e4f5","typeString":"literal_string \"stdStorage read_bool(StdStorage): Cannot decode. Make sure you are reading a bool.\""}],"id":6821,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6133:6:9","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":6823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6133:92:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6824,"nodeType":"ExpressionStatement","src":"6133:92:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_bool","nameLocation":"5962:9:9","parameters":{"id":6799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6798,"mutability":"mutable","name":"self","nameLocation":"5991:4:9","nodeType":"VariableDeclaration","scope":6826,"src":"5972:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6797,"nodeType":"UserDefinedTypeName","pathNode":{"id":6796,"name":"StdStorage","nameLocations":["5972:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"5972:10:9"},"referencedDeclaration":6088,"src":"5972:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"5971:25:9"},"returnParameters":{"id":6802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6801,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6826,"src":"6015:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6800,"name":"bool","nodeType":"ElementaryTypeName","src":"6015:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6014:6:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6845,"nodeType":"FunctionDefinition","src":"6238:131:9","nodes":[],"body":{"id":6844,"nodeType":"Block","src":"6312:57:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":6837,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6829,"src":"6345:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":6836,"name":"read","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6776,"src":"6340:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct StdStorage storage pointer) returns (bytes memory)"}},"id":6838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6340:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6353:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6839,"name":"address","nodeType":"ElementaryTypeName","src":"6353:7:9","typeDescriptions":{}}}],"id":6841,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6352:9:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":6834,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6329:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6333:6:9","memberName":"decode","nodeType":"MemberAccess","src":"6329:10:9","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6329:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":6833,"id":6843,"nodeType":"Return","src":"6322:40:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_address","nameLocation":"6247:12:9","parameters":{"id":6830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6829,"mutability":"mutable","name":"self","nameLocation":"6279:4:9","nodeType":"VariableDeclaration","scope":6845,"src":"6260:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6828,"nodeType":"UserDefinedTypeName","pathNode":{"id":6827,"name":"StdStorage","nameLocations":["6260:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"6260:10:9"},"referencedDeclaration":6088,"src":"6260:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"6259:25:9"},"returnParameters":{"id":6833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6832,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6845,"src":"6303:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6831,"name":"address","nodeType":"ElementaryTypeName","src":"6303:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6302:9:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6864,"nodeType":"FunctionDefinition","src":"6375:128:9","nodes":[],"body":{"id":6863,"nodeType":"Block","src":"6446:57:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":6856,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"6479:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":6855,"name":"read","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6776,"src":"6474:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct StdStorage storage pointer) returns (bytes memory)"}},"id":6857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6474:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6487:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6858,"name":"uint256","nodeType":"ElementaryTypeName","src":"6487:7:9","typeDescriptions":{}}}],"id":6860,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6486:9:9","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":6853,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6463:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6467:6:9","memberName":"decode","nodeType":"MemberAccess","src":"6463:10:9","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6463:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6852,"id":6862,"nodeType":"Return","src":"6456:40:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_uint","nameLocation":"6384:9:9","parameters":{"id":6849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6848,"mutability":"mutable","name":"self","nameLocation":"6413:4:9","nodeType":"VariableDeclaration","scope":6864,"src":"6394:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6847,"nodeType":"UserDefinedTypeName","pathNode":{"id":6846,"name":"StdStorage","nameLocations":["6394:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"6394:10:9"},"referencedDeclaration":6088,"src":"6394:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"6393:25:9"},"returnParameters":{"id":6852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6851,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6864,"src":"6437:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6850,"name":"uint256","nodeType":"ElementaryTypeName","src":"6437:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6436:9:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6883,"nodeType":"FunctionDefinition","src":"6509:125:9","nodes":[],"body":{"id":6882,"nodeType":"Block","src":"6578:56:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":6875,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6867,"src":"6611:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":6874,"name":"read","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6776,"src":"6606:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct StdStorage storage pointer) returns (bytes memory)"}},"id":6876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6606:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6619:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":6877,"name":"int256","nodeType":"ElementaryTypeName","src":"6619:6:9","typeDescriptions":{}}}],"id":6879,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6618:8:9","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}],"expression":{"id":6872,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6595:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6599:6:9","memberName":"decode","nodeType":"MemberAccess","src":"6595:10:9","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6595:32:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":6871,"id":6881,"nodeType":"Return","src":"6588:39:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_int","nameLocation":"6518:8:9","parameters":{"id":6868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6867,"mutability":"mutable","name":"self","nameLocation":"6546:4:9","nodeType":"VariableDeclaration","scope":6883,"src":"6527:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":6866,"nodeType":"UserDefinedTypeName","pathNode":{"id":6865,"name":"StdStorage","nameLocations":["6527:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"6527:10:9"},"referencedDeclaration":6088,"src":"6527:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"6526:25:9"},"returnParameters":{"id":6871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6870,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6883,"src":"6570:6:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6869,"name":"int256","nodeType":"ElementaryTypeName","src":"6570:6:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"6569:8:9"},"scope":6981,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6939,"nodeType":"FunctionDefinition","src":"6640:304:9","nodes":[],"body":{"id":6938,"nodeType":"Block","src":"6727:217:9","nodes":[],"statements":[{"assignments":[6893],"declarations":[{"constant":false,"id":6893,"mutability":"mutable","name":"out","nameLocation":"6745:3:9","nodeType":"VariableDeclaration","scope":6938,"src":"6737:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6892,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6737:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":6894,"nodeType":"VariableDeclarationStatement","src":"6737:11:9"},{"assignments":[6896],"declarations":[{"constant":false,"id":6896,"mutability":"mutable","name":"max","nameLocation":"6767:3:9","nodeType":"VariableDeclaration","scope":6938,"src":"6759:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6895,"name":"uint256","nodeType":"ElementaryTypeName","src":"6759:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6905,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6897,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6885,"src":"6773:1:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6775:6:9","memberName":"length","nodeType":"MemberAccess","src":"6773:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3332","id":6899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6784:2:9","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"6773:13:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":6902,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6885,"src":"6794:1:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6796:6:9","memberName":"length","nodeType":"MemberAccess","src":"6794:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6773:29:9","trueExpression":{"hexValue":"3332","id":6901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6789:2:9","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6759:43:9"},{"body":{"id":6934,"nodeType":"Block","src":"6846:72:9","statements":[{"expression":{"id":6932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6916,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6893,"src":"6860:3:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":6931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":6925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":6919,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6885,"src":"6875:1:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6923,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6920,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6887,"src":"6877:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":6921,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6907,"src":"6886:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6877:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6875:13:9","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30784646","id":6924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6891:4:9","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xFF"},"src":"6875:20:9","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":6918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6867:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":6917,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6867:7:9","typeDescriptions":{}}},"id":6926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6867:29:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6927,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6907,"src":"6901:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":6928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6905:1:9","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"6901:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6930,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6900:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6867:40:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6860:47:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6933,"nodeType":"ExpressionStatement","src":"6860:47:9"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6910,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6907,"src":"6832:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6911,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6896,"src":"6836:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6832:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6935,"initializationExpression":{"assignments":[6907],"declarations":[{"constant":false,"id":6907,"mutability":"mutable","name":"i","nameLocation":"6825:1:9","nodeType":"VariableDeclaration","scope":6935,"src":"6817:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6906,"name":"uint256","nodeType":"ElementaryTypeName","src":"6817:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6909,"initialValue":{"hexValue":"30","id":6908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6829:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6817:13:9"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":6914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6841:3:9","subExpression":{"id":6913,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6907,"src":"6841:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6915,"nodeType":"ExpressionStatement","src":"6841:3:9"},"nodeType":"ForStatement","src":"6812:106:9"},{"expression":{"id":6936,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6893,"src":"6934:3:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":6891,"id":6937,"nodeType":"Return","src":"6927:10:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bytesToBytes32","nameLocation":"6649:14:9","parameters":{"id":6888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6885,"mutability":"mutable","name":"b","nameLocation":"6677:1:9","nodeType":"VariableDeclaration","scope":6939,"src":"6664:14:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6884,"name":"bytes","nodeType":"ElementaryTypeName","src":"6664:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6887,"mutability":"mutable","name":"offset","nameLocation":"6688:6:9","nodeType":"VariableDeclaration","scope":6939,"src":"6680:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6886,"name":"uint256","nodeType":"ElementaryTypeName","src":"6680:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6663:32:9"},"returnParameters":{"id":6891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6890,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6939,"src":"6718:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6889,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6718:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6717:9:9"},"scope":6981,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":6980,"nodeType":"FunctionDefinition","src":"6950:393:9","nodes":[],"body":{"id":6979,"nodeType":"Block","src":"7023:320:9","nodes":[],"statements":[{"assignments":[6948],"declarations":[{"constant":false,"id":6948,"mutability":"mutable","name":"result","nameLocation":"7046:6:9","nodeType":"VariableDeclaration","scope":6979,"src":"7033:19:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6947,"name":"bytes","nodeType":"ElementaryTypeName","src":"7033:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6956,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6951,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6942,"src":"7065:1:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7067:6:9","memberName":"length","nodeType":"MemberAccess","src":"7065:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":6953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7076:2:9","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"7065:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7055:9:9","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":6949,"name":"bytes","nodeType":"ElementaryTypeName","src":"7059:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":6955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7055:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7033:46:9"},{"body":{"id":6975,"nodeType":"Block","src":"7128:185:9","statements":[{"assignments":[6969],"declarations":[{"constant":false,"id":6969,"mutability":"mutable","name":"k","nameLocation":"7150:1:9","nodeType":"VariableDeclaration","scope":6975,"src":"7142:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6968,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7142:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":6973,"initialValue":{"baseExpression":{"id":6970,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6942,"src":"7154:1:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6972,"indexExpression":{"id":6971,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6958,"src":"7156:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7154:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7142:16:9"},{"AST":{"nativeSrc":"7228:75:9","nodeType":"YulBlock","src":"7228:75:9","statements":[{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"7257:6:9","nodeType":"YulIdentifier","src":"7257:6:9"},{"arguments":[{"kind":"number","nativeSrc":"7269:2:9","nodeType":"YulLiteral","src":"7269:2:9","type":"","value":"32"},{"arguments":[{"kind":"number","nativeSrc":"7277:2:9","nodeType":"YulLiteral","src":"7277:2:9","type":"","value":"32"},{"name":"i","nativeSrc":"7281:1:9","nodeType":"YulIdentifier","src":"7281:1:9"}],"functionName":{"name":"mul","nativeSrc":"7273:3:9","nodeType":"YulIdentifier","src":"7273:3:9"},"nativeSrc":"7273:10:9","nodeType":"YulFunctionCall","src":"7273:10:9"}],"functionName":{"name":"add","nativeSrc":"7265:3:9","nodeType":"YulIdentifier","src":"7265:3:9"},"nativeSrc":"7265:19:9","nodeType":"YulFunctionCall","src":"7265:19:9"}],"functionName":{"name":"add","nativeSrc":"7253:3:9","nodeType":"YulIdentifier","src":"7253:3:9"},"nativeSrc":"7253:32:9","nodeType":"YulFunctionCall","src":"7253:32:9"},{"name":"k","nativeSrc":"7287:1:9","nodeType":"YulIdentifier","src":"7287:1:9"}],"functionName":{"name":"mstore","nativeSrc":"7246:6:9","nodeType":"YulIdentifier","src":"7246:6:9"},"nativeSrc":"7246:43:9","nodeType":"YulFunctionCall","src":"7246:43:9"},"nativeSrc":"7246:43:9","nodeType":"YulExpressionStatement","src":"7246:43:9"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":6958,"isOffset":false,"isSlot":false,"src":"7281:1:9","valueSize":1},{"declaration":6969,"isOffset":false,"isSlot":false,"src":"7287:1:9","valueSize":1},{"declaration":6948,"isOffset":false,"isSlot":false,"src":"7257:6:9","valueSize":1}],"id":6974,"nodeType":"InlineAssembly","src":"7219:84:9"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6961,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6958,"src":"7109:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":6962,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6942,"src":"7113:1:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":6963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7115:6:9","memberName":"length","nodeType":"MemberAccess","src":"7113:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7109:12:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6976,"initializationExpression":{"assignments":[6958],"declarations":[{"constant":false,"id":6958,"mutability":"mutable","name":"i","nameLocation":"7102:1:9","nodeType":"VariableDeclaration","scope":6976,"src":"7094:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6957,"name":"uint256","nodeType":"ElementaryTypeName","src":"7094:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6960,"initialValue":{"hexValue":"30","id":6959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7106:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7094:13:9"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":6966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7123:3:9","subExpression":{"id":6965,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6958,"src":"7123:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6967,"nodeType":"ExpressionStatement","src":"7123:3:9"},"nodeType":"ForStatement","src":"7089:224:9"},{"expression":{"id":6977,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6948,"src":"7330:6:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6946,"id":6978,"nodeType":"Return","src":"7323:13:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"flatten","nameLocation":"6959:7:9","parameters":{"id":6943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6942,"mutability":"mutable","name":"b","nameLocation":"6984:1:9","nodeType":"VariableDeclaration","scope":6980,"src":"6967:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":6940,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6967:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6941,"nodeType":"ArrayTypeName","src":"6967:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"6966:20:9"},"returnParameters":{"id":6946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6980,"src":"7009:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6944,"name":"bytes","nodeType":"ElementaryTypeName","src":"7009:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7008:14:9"},"scope":6981,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"stdStorageSafe","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[6981],"name":"stdStorageSafe","nameLocation":"376:14:9","scope":7523,"usedErrors":[],"usedEvents":[6098,6104]},{"id":7522,"nodeType":"ContractDefinition","src":"7347:4527:9","nodes":[{"id":6998,"nodeType":"VariableDeclaration","src":"7372:84:9","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"7392:2:9","scope":7522,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"},"typeName":{"id":6983,"nodeType":"UserDefinedTypeName","pathNode":{"id":6982,"name":"Vm","nameLocations":["7372:2:9"],"nodeType":"IdentifierPath","referencedDeclaration":9352,"src":"7372:2:9"},"referencedDeclaration":9352,"src":"7372:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":6992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7434:17:9","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":6991,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7424:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7424:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7416:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6989,"name":"uint256","nodeType":"ElementaryTypeName","src":"7416:7:9","typeDescriptions":{}}},"id":6994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7416:37:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7408:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":6987,"name":"uint160","nodeType":"ElementaryTypeName","src":"7408:7:9","typeDescriptions":{}}},"id":6995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7408:46:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":6986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7400:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6985,"name":"address","nodeType":"ElementaryTypeName","src":"7400:7:9","typeDescriptions":{}}},"id":6996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7400:55:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6984,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9352,"src":"7397:2:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$9352_$","typeString":"type(contract Vm)"}},"id":6997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7397:59:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"visibility":"private"},{"id":7011,"nodeType":"FunctionDefinition","src":"7463:118:9","nodes":[],"body":{"id":7010,"nodeType":"Block","src":"7530:51:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7007,"name":"sigStr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7000,"src":"7567:6:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7005,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"7547:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7562:4:9","memberName":"sigs","nodeType":"MemberAccess","referencedDeclaration":6139,"src":"7547:19:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes4_$","typeString":"function (string memory) pure returns (bytes4)"}},"id":7008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7547:27:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":7004,"id":7009,"nodeType":"Return","src":"7540:34:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sigs","nameLocation":"7472:4:9","parameters":{"id":7001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7000,"mutability":"mutable","name":"sigStr","nameLocation":"7491:6:9","nodeType":"VariableDeclaration","scope":7011,"src":"7477:20:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6999,"name":"string","nodeType":"ElementaryTypeName","src":"7477:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7476:22:9"},"returnParameters":{"id":7004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7003,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7011,"src":"7522:6:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7002,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7522:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"7521:8:9"},"scope":7522,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7025,"nodeType":"FunctionDefinition","src":"7587:115:9","nodes":[],"body":{"id":7024,"nodeType":"Block","src":"7653:49:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7021,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7014,"src":"7690:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":7019,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"7670:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7685:4:9","memberName":"find","nodeType":"MemberAccess","referencedDeclaration":6584,"src":"7670:19:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct StdStorage storage pointer) returns (uint256)"}},"id":7022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7670:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7018,"id":7023,"nodeType":"Return","src":"7663:32:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"find","nameLocation":"7596:4:9","parameters":{"id":7015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7014,"mutability":"mutable","name":"self","nameLocation":"7620:4:9","nodeType":"VariableDeclaration","scope":7025,"src":"7601:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7013,"nodeType":"UserDefinedTypeName","pathNode":{"id":7012,"name":"StdStorage","nameLocations":["7601:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"7601:10:9"},"referencedDeclaration":6088,"src":"7601:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"7600:25:9"},"returnParameters":{"id":7018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7017,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7025,"src":"7644:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7016,"name":"uint256","nodeType":"ElementaryTypeName","src":"7644:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7643:9:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7043,"nodeType":"FunctionDefinition","src":"7708:156:9","nodes":[],"body":{"id":7042,"nodeType":"Block","src":"7804:60:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7038,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7028,"src":"7843:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":7039,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7030,"src":"7849:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7036,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"7821:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7836:6:9","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":6604,"src":"7821:21:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":7040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7821:36:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":7035,"id":7041,"nodeType":"Return","src":"7814:43:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"target","nameLocation":"7717:6:9","parameters":{"id":7031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7028,"mutability":"mutable","name":"self","nameLocation":"7743:4:9","nodeType":"VariableDeclaration","scope":7043,"src":"7724:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7027,"nodeType":"UserDefinedTypeName","pathNode":{"id":7026,"name":"StdStorage","nameLocations":["7724:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"7724:10:9"},"referencedDeclaration":6088,"src":"7724:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7030,"mutability":"mutable","name":"_target","nameLocation":"7757:7:9","nodeType":"VariableDeclaration","scope":7043,"src":"7749:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7029,"name":"address","nodeType":"ElementaryTypeName","src":"7749:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7723:42:9"},"returnParameters":{"id":7035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7034,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7043,"src":"7784:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7033,"nodeType":"UserDefinedTypeName","pathNode":{"id":7032,"name":"StdStorage","nameLocations":["7784:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"7784:10:9"},"referencedDeclaration":6088,"src":"7784:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"7783:20:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7061,"nodeType":"FunctionDefinition","src":"7870:143:9","nodes":[],"body":{"id":7060,"nodeType":"Block","src":"7959:54:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7056,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7046,"src":"7995:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":7057,"name":"_sig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7048,"src":"8001:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":7054,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"7976:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7991:3:9","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":6624,"src":"7976:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"}},"id":7058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7976:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":7053,"id":7059,"nodeType":"Return","src":"7969:37:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sig","nameLocation":"7879:3:9","parameters":{"id":7049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7046,"mutability":"mutable","name":"self","nameLocation":"7902:4:9","nodeType":"VariableDeclaration","scope":7061,"src":"7883:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7045,"nodeType":"UserDefinedTypeName","pathNode":{"id":7044,"name":"StdStorage","nameLocations":["7883:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"7883:10:9"},"referencedDeclaration":6088,"src":"7883:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7048,"mutability":"mutable","name":"_sig","nameLocation":"7915:4:9","nodeType":"VariableDeclaration","scope":7061,"src":"7908:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7047,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7908:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"7882:38:9"},"returnParameters":{"id":7053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7052,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7061,"src":"7939:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7051,"nodeType":"UserDefinedTypeName","pathNode":{"id":7050,"name":"StdStorage","nameLocations":["7939:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"7939:10:9"},"referencedDeclaration":6088,"src":"7939:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"7938:20:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7079,"nodeType":"FunctionDefinition","src":"8019:150:9","nodes":[],"body":{"id":7078,"nodeType":"Block","src":"8115:54:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7074,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7064,"src":"8151:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":7075,"name":"_sig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7066,"src":"8157:4:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7072,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"8132:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8147:3:9","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":6646,"src":"8132:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_string_memory_ptr_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,string memory) returns (struct StdStorage storage pointer)"}},"id":7076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8132:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":7071,"id":7077,"nodeType":"Return","src":"8125:37:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sig","nameLocation":"8028:3:9","parameters":{"id":7067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7064,"mutability":"mutable","name":"self","nameLocation":"8051:4:9","nodeType":"VariableDeclaration","scope":7079,"src":"8032:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7063,"nodeType":"UserDefinedTypeName","pathNode":{"id":7062,"name":"StdStorage","nameLocations":["8032:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8032:10:9"},"referencedDeclaration":6088,"src":"8032:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7066,"mutability":"mutable","name":"_sig","nameLocation":"8071:4:9","nodeType":"VariableDeclaration","scope":7079,"src":"8057:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7065,"name":"string","nodeType":"ElementaryTypeName","src":"8057:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8031:45:9"},"returnParameters":{"id":7071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7070,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7079,"src":"8095:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7069,"nodeType":"UserDefinedTypeName","pathNode":{"id":7068,"name":"StdStorage","nameLocations":["8095:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8095:10:9"},"referencedDeclaration":6088,"src":"8095:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"8094:20:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7097,"nodeType":"FunctionDefinition","src":"8175:152:9","nodes":[],"body":{"id":7096,"nodeType":"Block","src":"8269:58:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7092,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7082,"src":"8310:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":7093,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7084,"src":"8316:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7090,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"8286:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8301:8:9","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":6677,"src":"8286:23:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":7094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8286:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":7089,"id":7095,"nodeType":"Return","src":"8279:41:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"8184:8:9","parameters":{"id":7085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7082,"mutability":"mutable","name":"self","nameLocation":"8212:4:9","nodeType":"VariableDeclaration","scope":7097,"src":"8193:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7081,"nodeType":"UserDefinedTypeName","pathNode":{"id":7080,"name":"StdStorage","nameLocations":["8193:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8193:10:9"},"referencedDeclaration":6088,"src":"8193:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7084,"mutability":"mutable","name":"who","nameLocation":"8226:3:9","nodeType":"VariableDeclaration","scope":7097,"src":"8218:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7083,"name":"address","nodeType":"ElementaryTypeName","src":"8218:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8192:38:9"},"returnParameters":{"id":7089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7088,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7097,"src":"8249:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7087,"nodeType":"UserDefinedTypeName","pathNode":{"id":7086,"name":"StdStorage","nameLocations":["8249:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8249:10:9"},"referencedDeclaration":6088,"src":"8249:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"8248:20:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7115,"nodeType":"FunctionDefinition","src":"8333:152:9","nodes":[],"body":{"id":7114,"nodeType":"Block","src":"8427:58:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7110,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7100,"src":"8468:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":7111,"name":"amt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7102,"src":"8474:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7108,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"8444:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8459:8:9","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":6702,"src":"8444:23:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_uint256_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256) returns (struct StdStorage storage pointer)"}},"id":7112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8444:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":7107,"id":7113,"nodeType":"Return","src":"8437:41:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"8342:8:9","parameters":{"id":7103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7100,"mutability":"mutable","name":"self","nameLocation":"8370:4:9","nodeType":"VariableDeclaration","scope":7115,"src":"8351:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7099,"nodeType":"UserDefinedTypeName","pathNode":{"id":7098,"name":"StdStorage","nameLocations":["8351:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8351:10:9"},"referencedDeclaration":6088,"src":"8351:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7102,"mutability":"mutable","name":"amt","nameLocation":"8384:3:9","nodeType":"VariableDeclaration","scope":7115,"src":"8376:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7101,"name":"uint256","nodeType":"ElementaryTypeName","src":"8376:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8350:38:9"},"returnParameters":{"id":7107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7106,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7115,"src":"8407:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7105,"nodeType":"UserDefinedTypeName","pathNode":{"id":7104,"name":"StdStorage","nameLocations":["8407:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8407:10:9"},"referencedDeclaration":6088,"src":"8407:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"8406:20:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7133,"nodeType":"FunctionDefinition","src":"8491:152:9","nodes":[],"body":{"id":7132,"nodeType":"Block","src":"8585:58:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7128,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7118,"src":"8626:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":7129,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7120,"src":"8632:3:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7126,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"8602:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8617:8:9","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":6724,"src":"8602:23:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_bytes32_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes32) returns (struct StdStorage storage pointer)"}},"id":7130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8602:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":7125,"id":7131,"nodeType":"Return","src":"8595:41:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"8500:8:9","parameters":{"id":7121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7118,"mutability":"mutable","name":"self","nameLocation":"8528:4:9","nodeType":"VariableDeclaration","scope":7133,"src":"8509:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7117,"nodeType":"UserDefinedTypeName","pathNode":{"id":7116,"name":"StdStorage","nameLocations":["8509:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8509:10:9"},"referencedDeclaration":6088,"src":"8509:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7120,"mutability":"mutable","name":"key","nameLocation":"8542:3:9","nodeType":"VariableDeclaration","scope":7133,"src":"8534:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7119,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8534:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8508:38:9"},"returnParameters":{"id":7125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7124,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7133,"src":"8565:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7123,"nodeType":"UserDefinedTypeName","pathNode":{"id":7122,"name":"StdStorage","nameLocations":["8565:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8565:10:9"},"referencedDeclaration":6088,"src":"8565:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"8564:20:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7151,"nodeType":"FunctionDefinition","src":"8649:152:9","nodes":[],"body":{"id":7150,"nodeType":"Block","src":"8743:58:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7146,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7136,"src":"8781:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":7147,"name":"_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7138,"src":"8787:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7144,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"8760:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8775:5:9","memberName":"depth","nodeType":"MemberAccess","referencedDeclaration":6744,"src":"8760:20:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_uint256_$returns$_t_struct$_StdStorage_$6088_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256) returns (struct StdStorage storage pointer)"}},"id":7148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8760:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":7143,"id":7149,"nodeType":"Return","src":"8753:41:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"depth","nameLocation":"8658:5:9","parameters":{"id":7139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7136,"mutability":"mutable","name":"self","nameLocation":"8683:4:9","nodeType":"VariableDeclaration","scope":7151,"src":"8664:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7135,"nodeType":"UserDefinedTypeName","pathNode":{"id":7134,"name":"StdStorage","nameLocations":["8664:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8664:10:9"},"referencedDeclaration":6088,"src":"8664:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7138,"mutability":"mutable","name":"_depth","nameLocation":"8697:6:9","nodeType":"VariableDeclaration","scope":7151,"src":"8689:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7137,"name":"uint256","nodeType":"ElementaryTypeName","src":"8689:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8663:41:9"},"returnParameters":{"id":7143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7142,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7151,"src":"8723:18:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7141,"nodeType":"UserDefinedTypeName","pathNode":{"id":7140,"name":"StdStorage","nameLocations":["8723:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8723:10:9"},"referencedDeclaration":6088,"src":"8723:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"8722:20:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7174,"nodeType":"FunctionDefinition","src":"8807:138:9","nodes":[],"body":{"id":7173,"nodeType":"Block","src":"8877:68:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7160,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7154,"src":"8901:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"arguments":[{"arguments":[{"arguments":[{"id":7167,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7156,"src":"8931:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8923:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":7165,"name":"uint160","nodeType":"ElementaryTypeName","src":"8923:7:9","typeDescriptions":{}}},"id":7168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8923:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":7164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8915:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7163,"name":"uint256","nodeType":"ElementaryTypeName","src":"8915:7:9","typeDescriptions":{}}},"id":7169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8915:21:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8907:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7161,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8907:7:9","typeDescriptions":{}}},"id":7170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8907:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7159,"name":"checked_write","nodeType":"Identifier","overloadedDeclarations":[7174,7191,7209,7354],"referencedDeclaration":7354,"src":"8887:13:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_bytes32_$returns$__$","typeString":"function (struct StdStorage storage pointer,bytes32)"}},"id":7171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8887:51:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7172,"nodeType":"ExpressionStatement","src":"8887:51:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"checked_write","nameLocation":"8816:13:9","parameters":{"id":7157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7154,"mutability":"mutable","name":"self","nameLocation":"8849:4:9","nodeType":"VariableDeclaration","scope":7174,"src":"8830:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7153,"nodeType":"UserDefinedTypeName","pathNode":{"id":7152,"name":"StdStorage","nameLocations":["8830:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8830:10:9"},"referencedDeclaration":6088,"src":"8830:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7156,"mutability":"mutable","name":"who","nameLocation":"8863:3:9","nodeType":"VariableDeclaration","scope":7174,"src":"8855:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7155,"name":"address","nodeType":"ElementaryTypeName","src":"8855:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8829:38:9"},"returnParameters":{"id":7158,"nodeType":"ParameterList","parameters":[],"src":"8877:0:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7191,"nodeType":"FunctionDefinition","src":"8951:120:9","nodes":[],"body":{"id":7190,"nodeType":"Block","src":"9021:50:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7183,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7177,"src":"9045:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"arguments":[{"id":7186,"name":"amt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7179,"src":"9059:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9051:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7184,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9051:7:9","typeDescriptions":{}}},"id":7187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9051:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7182,"name":"checked_write","nodeType":"Identifier","overloadedDeclarations":[7174,7191,7209,7354],"referencedDeclaration":7354,"src":"9031:13:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_bytes32_$returns$__$","typeString":"function (struct StdStorage storage pointer,bytes32)"}},"id":7188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9031:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7189,"nodeType":"ExpressionStatement","src":"9031:33:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"checked_write","nameLocation":"8960:13:9","parameters":{"id":7180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7177,"mutability":"mutable","name":"self","nameLocation":"8993:4:9","nodeType":"VariableDeclaration","scope":7191,"src":"8974:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7176,"nodeType":"UserDefinedTypeName","pathNode":{"id":7175,"name":"StdStorage","nameLocations":["8974:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"8974:10:9"},"referencedDeclaration":6088,"src":"8974:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7179,"mutability":"mutable","name":"amt","nameLocation":"9007:3:9","nodeType":"VariableDeclaration","scope":7191,"src":"8999:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7178,"name":"uint256","nodeType":"ElementaryTypeName","src":"8999:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8973:38:9"},"returnParameters":{"id":7181,"nodeType":"ParameterList","parameters":[],"src":"9021:0:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7209,"nodeType":"FunctionDefinition","src":"9077:222:9","nodes":[],"body":{"id":7208,"nodeType":"Block","src":"9146:153:9","nodes":[],"statements":[{"assignments":[7200],"declarations":[{"constant":false,"id":7200,"mutability":"mutable","name":"t","nameLocation":"9164:1:9","nodeType":"VariableDeclaration","scope":7208,"src":"9156:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9156:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7201,"nodeType":"VariableDeclarationStatement","src":"9156:9:9"},{"AST":{"nativeSrc":"9227:34:9","nodeType":"YulBlock","src":"9227:34:9","statements":[{"nativeSrc":"9241:10:9","nodeType":"YulAssignment","src":"9241:10:9","value":{"name":"write","nativeSrc":"9246:5:9","nodeType":"YulIdentifier","src":"9246:5:9"},"variableNames":[{"name":"t","nativeSrc":"9241:1:9","nodeType":"YulIdentifier","src":"9241:1:9"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":7200,"isOffset":false,"isSlot":false,"src":"9241:1:9","valueSize":1},{"declaration":7196,"isOffset":false,"isSlot":false,"src":"9246:5:9","valueSize":1}],"id":7202,"nodeType":"InlineAssembly","src":"9218:43:9"},{"expression":{"arguments":[{"id":7204,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7194,"src":"9284:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":7205,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7200,"src":"9290:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7203,"name":"checked_write","nodeType":"Identifier","overloadedDeclarations":[7174,7191,7209,7354],"referencedDeclaration":7354,"src":"9270:13:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$_t_bytes32_$returns$__$","typeString":"function (struct StdStorage storage pointer,bytes32)"}},"id":7206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9270:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7207,"nodeType":"ExpressionStatement","src":"9270:22:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"checked_write","nameLocation":"9086:13:9","parameters":{"id":7197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7194,"mutability":"mutable","name":"self","nameLocation":"9119:4:9","nodeType":"VariableDeclaration","scope":7209,"src":"9100:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7193,"nodeType":"UserDefinedTypeName","pathNode":{"id":7192,"name":"StdStorage","nameLocations":["9100:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"9100:10:9"},"referencedDeclaration":6088,"src":"9100:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7196,"mutability":"mutable","name":"write","nameLocation":"9130:5:9","nodeType":"VariableDeclaration","scope":7209,"src":"9125:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7195,"name":"bool","nodeType":"ElementaryTypeName","src":"9125:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9099:37:9"},"returnParameters":{"id":7198,"nodeType":"ParameterList","parameters":[],"src":"9146:0:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7354,"nodeType":"FunctionDefinition","src":"9305:1095:9","nodes":[],"body":{"id":7353,"nodeType":"Block","src":"9375:1025:9","nodes":[],"statements":[{"assignments":[7218],"declarations":[{"constant":false,"id":7218,"mutability":"mutable","name":"who","nameLocation":"9393:3:9","nodeType":"VariableDeclaration","scope":7353,"src":"9385:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7217,"name":"address","nodeType":"ElementaryTypeName","src":"9385:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":7221,"initialValue":{"expression":{"id":7219,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"9399:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9404:7:9","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":6085,"src":"9399:12:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9385:26:9"},{"assignments":[7223],"declarations":[{"constant":false,"id":7223,"mutability":"mutable","name":"fsig","nameLocation":"9428:4:9","nodeType":"VariableDeclaration","scope":7353,"src":"9421:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7222,"name":"bytes4","nodeType":"ElementaryTypeName","src":"9421:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":7226,"initialValue":{"expression":{"id":7224,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"9435:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9440:4:9","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":6081,"src":"9435:9:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"9421:23:9"},{"assignments":[7228],"declarations":[{"constant":false,"id":7228,"mutability":"mutable","name":"field_depth","nameLocation":"9462:11:9","nodeType":"VariableDeclaration","scope":7353,"src":"9454:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7227,"name":"uint256","nodeType":"ElementaryTypeName","src":"9454:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7231,"initialValue":{"expression":{"id":7229,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"9476:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9481:6:9","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":6083,"src":"9476:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9454:33:9"},{"assignments":[7236],"declarations":[{"constant":false,"id":7236,"mutability":"mutable","name":"ins","nameLocation":"9514:3:9","nodeType":"VariableDeclaration","scope":7353,"src":"9497:20:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7234,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9497:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7235,"nodeType":"ArrayTypeName","src":"9497:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":7239,"initialValue":{"expression":{"id":7237,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"9520:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7238,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9525:5:9","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":6079,"src":"9520:10:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9497:33:9"},{"assignments":[7241],"declarations":[{"constant":false,"id":7241,"mutability":"mutable","name":"cald","nameLocation":"9554:4:9","nodeType":"VariableDeclaration","scope":7353,"src":"9541:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7240,"name":"bytes","nodeType":"ElementaryTypeName","src":"9541:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7249,"initialValue":{"arguments":[{"id":7244,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7223,"src":"9578:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"id":7246,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7236,"src":"9592:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":7245,"name":"flatten","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7521,"src":"9584:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32[] memory) pure returns (bytes memory)"}},"id":7247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9584:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7242,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9561:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7243,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9565:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"9561:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9561:36:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"9541:56:9"},{"condition":{"id":7264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9611:69:9","subExpression":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":7250,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"9612:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7251,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9617:5:9","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":6076,"src":"9612:10:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => bool)))"}},"id":7253,"indexExpression":{"id":7252,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7218,"src":"9623:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9612:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_bool_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => bool))"}},"id":7255,"indexExpression":{"id":7254,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7223,"src":"9628:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9612:21:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":7263,"indexExpression":{"arguments":[{"arguments":[{"id":7259,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7236,"src":"9661:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":7260,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7228,"src":"9666:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7257,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9644:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9648:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"9644:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9644:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7256,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9634:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9634:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9612:68:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7270,"nodeType":"IfStatement","src":"9607:110:9","trueBody":{"id":7269,"nodeType":"Block","src":"9682:35:9","statements":[{"expression":{"arguments":[{"id":7266,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"9701:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":7265,"name":"find","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7025,"src":"9696:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct StdStorage storage pointer) returns (uint256)"}},"id":7267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9696:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7268,"nodeType":"ExpressionStatement","src":"9696:10:9"}]}},{"assignments":[7272],"declarations":[{"constant":false,"id":7272,"mutability":"mutable","name":"slot","nameLocation":"9734:4:9","nodeType":"VariableDeclaration","scope":7353,"src":"9726:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7271,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9726:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7290,"initialValue":{"arguments":[{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":7275,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"9749:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9754:5:9","memberName":"slots","nodeType":"MemberAccess","referencedDeclaration":6068,"src":"9749:10:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => uint256)))"}},"id":7278,"indexExpression":{"id":7277,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7218,"src":"9760:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9749:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => uint256))"}},"id":7280,"indexExpression":{"id":7279,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7223,"src":"9765:4:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9749:21:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":7288,"indexExpression":{"arguments":[{"arguments":[{"id":7284,"name":"ins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7236,"src":"9798:3:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":7285,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7228,"src":"9803:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7282,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9781:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7283,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9785:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"9781:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9781:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7281,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9771:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9771:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9749:68:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9741:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7273,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9741:7:9","typeDescriptions":{}}},"id":7289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9741:77:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9726:92:9"},{"assignments":[7292],"declarations":[{"constant":false,"id":7292,"mutability":"mutable","name":"fdat","nameLocation":"9837:4:9","nodeType":"VariableDeclaration","scope":7353,"src":"9829:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9829:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7293,"nodeType":"VariableDeclarationStatement","src":"9829:12:9"},{"id":7310,"nodeType":"Block","src":"9851:128:9","statements":[{"assignments":[null,7295],"declarations":[null,{"constant":false,"id":7295,"mutability":"mutable","name":"rdat","nameLocation":"9881:4:9","nodeType":"VariableDeclaration","scope":7310,"src":"9868:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7294,"name":"bytes","nodeType":"ElementaryTypeName","src":"9868:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7300,"initialValue":{"arguments":[{"id":7298,"name":"cald","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7241,"src":"9904:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7296,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7218,"src":"9889:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9893:10:9","memberName":"staticcall","nodeType":"MemberAccess","src":"9889:14:9","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":7299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9889:20:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"9865:44:9"},{"expression":{"id":7308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7301,"name":"fdat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7292,"src":"9923:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7303,"name":"rdat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7295,"src":"9945:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":7304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9951:2:9","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":7305,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7228,"src":"9956:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9951:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7302,"name":"bytesToBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7480,"src":"9930:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (bytes memory,uint256) pure returns (bytes32)"}},"id":7307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9930:38:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9923:45:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7309,"nodeType":"ExpressionStatement","src":"9923:45:9"}]},{"assignments":[7312],"declarations":[{"constant":false,"id":7312,"mutability":"mutable","name":"curr","nameLocation":"9996:4:9","nodeType":"VariableDeclaration","scope":7353,"src":"9988:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7311,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9988:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7318,"initialValue":{"arguments":[{"id":7315,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7218,"src":"10011:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7316,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7272,"src":"10016:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7313,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6998,"src":"10003:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":7314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10006:4:9","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":8235,"src":"10003:7:9","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":7317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10003:18:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9988:33:9"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7319,"name":"fdat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7292,"src":"10036:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7320,"name":"curr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7312,"src":"10044:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10036:12:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7328,"nodeType":"IfStatement","src":"10032:218:9","trueBody":{"id":7327,"nodeType":"Block","src":"10050:200:9","statements":[{"expression":{"arguments":[{"hexValue":"66616c7365","id":7323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10089:5:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"73746453746f726167652066696e642853746453746f72616765293a205061636b656420736c6f742e205468697320776f756c642063617573652064616e6765726f7573206f76657277726974696e6720616e642063757272656e746c792069736e277420737570706f727465642e","id":7324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10112:113:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_4bfa78e02b745efea2b29d358f6dc28382f5209b1d2b2dbeb8ef0862e74440b3","typeString":"literal_string \"stdStorage find(StdStorage): Packed slot. This would cause dangerous overwriting and currently isn't supported.\""},"value":"stdStorage find(StdStorage): Packed slot. This would cause dangerous overwriting and currently isn't supported."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4bfa78e02b745efea2b29d358f6dc28382f5209b1d2b2dbeb8ef0862e74440b3","typeString":"literal_string \"stdStorage find(StdStorage): Packed slot. This would cause dangerous overwriting and currently isn't supported.\""}],"id":7322,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10064:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10064:175:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7326,"nodeType":"ExpressionStatement","src":"10064:175:9"}]}},{"expression":{"arguments":[{"id":7332,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7218,"src":"10268:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7333,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7272,"src":"10273:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7334,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7214,"src":"10279:3:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7329,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6998,"src":"10259:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$9352","typeString":"contract Vm"}},"id":7331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10262:5:9","memberName":"store","nodeType":"MemberAccess","referencedDeclaration":9063,"src":"10259:8:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,bytes32) external"}},"id":7335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10259:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7336,"nodeType":"ExpressionStatement","src":"10259:24:9"},{"expression":{"id":7339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10293:19:9","subExpression":{"expression":{"id":7337,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"10300:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7338,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10305:7:9","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":6085,"src":"10300:12:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7340,"nodeType":"ExpressionStatement","src":"10293:19:9"},{"expression":{"id":7343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10322:16:9","subExpression":{"expression":{"id":7341,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"10329:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10334:4:9","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":6081,"src":"10329:9:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7344,"nodeType":"ExpressionStatement","src":"10322:16:9"},{"expression":{"id":7347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10348:17:9","subExpression":{"expression":{"id":7345,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"10355:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10360:5:9","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":6079,"src":"10355:10:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7348,"nodeType":"ExpressionStatement","src":"10348:17:9"},{"expression":{"id":7351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10375:18:9","subExpression":{"expression":{"id":7349,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7212,"src":"10382:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7350,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10387:6:9","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":6083,"src":"10382:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7352,"nodeType":"ExpressionStatement","src":"10375:18:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"checked_write","nameLocation":"9314:13:9","parameters":{"id":7215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7212,"mutability":"mutable","name":"self","nameLocation":"9347:4:9","nodeType":"VariableDeclaration","scope":7354,"src":"9328:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7211,"nodeType":"UserDefinedTypeName","pathNode":{"id":7210,"name":"StdStorage","nameLocations":["9328:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"9328:10:9"},"referencedDeclaration":6088,"src":"9328:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7214,"mutability":"mutable","name":"set","nameLocation":"9361:3:9","nodeType":"VariableDeclaration","scope":7354,"src":"9353:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9353:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9327:38:9"},"returnParameters":{"id":7216,"nodeType":"ParameterList","parameters":[],"src":"9375:0:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7368,"nodeType":"FunctionDefinition","src":"10406:131:9","nodes":[],"body":{"id":7367,"nodeType":"Block","src":"10480:57:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7364,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7357,"src":"10525:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":7362,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"10497:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10512:12:9","memberName":"read_bytes32","nodeType":"MemberAccess","referencedDeclaration":6795,"src":"10497:27:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_bytes32_$","typeString":"function (struct StdStorage storage pointer) returns (bytes32)"}},"id":7365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10497:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7361,"id":7366,"nodeType":"Return","src":"10490:40:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_bytes32","nameLocation":"10415:12:9","parameters":{"id":7358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7357,"mutability":"mutable","name":"self","nameLocation":"10447:4:9","nodeType":"VariableDeclaration","scope":7368,"src":"10428:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7356,"nodeType":"UserDefinedTypeName","pathNode":{"id":7355,"name":"StdStorage","nameLocations":["10428:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"10428:10:9"},"referencedDeclaration":6088,"src":"10428:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"10427:25:9"},"returnParameters":{"id":7361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7368,"src":"10471:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7359,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10471:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10470:9:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7382,"nodeType":"FunctionDefinition","src":"10543:122:9","nodes":[],"body":{"id":7381,"nodeType":"Block","src":"10611:54:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7378,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7371,"src":"10653:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":7376,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"10628:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10643:9:9","memberName":"read_bool","nodeType":"MemberAccess","referencedDeclaration":6826,"src":"10628:24:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_bool_$","typeString":"function (struct StdStorage storage pointer) returns (bool)"}},"id":7379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10628:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7375,"id":7380,"nodeType":"Return","src":"10621:37:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_bool","nameLocation":"10552:9:9","parameters":{"id":7372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7371,"mutability":"mutable","name":"self","nameLocation":"10581:4:9","nodeType":"VariableDeclaration","scope":7382,"src":"10562:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7370,"nodeType":"UserDefinedTypeName","pathNode":{"id":7369,"name":"StdStorage","nameLocations":["10562:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"10562:10:9"},"referencedDeclaration":6088,"src":"10562:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"10561:25:9"},"returnParameters":{"id":7375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7374,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7382,"src":"10605:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7373,"name":"bool","nodeType":"ElementaryTypeName","src":"10605:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10604:6:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7396,"nodeType":"FunctionDefinition","src":"10671:131:9","nodes":[],"body":{"id":7395,"nodeType":"Block","src":"10745:57:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7392,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7385,"src":"10790:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":7390,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"10762:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10777:12:9","memberName":"read_address","nodeType":"MemberAccess","referencedDeclaration":6845,"src":"10762:27:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_address_$","typeString":"function (struct StdStorage storage pointer) returns (address)"}},"id":7393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10762:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7389,"id":7394,"nodeType":"Return","src":"10755:40:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_address","nameLocation":"10680:12:9","parameters":{"id":7386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7385,"mutability":"mutable","name":"self","nameLocation":"10712:4:9","nodeType":"VariableDeclaration","scope":7396,"src":"10693:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7384,"nodeType":"UserDefinedTypeName","pathNode":{"id":7383,"name":"StdStorage","nameLocations":["10693:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"10693:10:9"},"referencedDeclaration":6088,"src":"10693:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"10692:25:9"},"returnParameters":{"id":7389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7388,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7396,"src":"10736:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7387,"name":"address","nodeType":"ElementaryTypeName","src":"10736:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10735:9:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7410,"nodeType":"FunctionDefinition","src":"10808:125:9","nodes":[],"body":{"id":7409,"nodeType":"Block","src":"10879:54:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7406,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7399,"src":"10921:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":7404,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"10896:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10911:9:9","memberName":"read_uint","nodeType":"MemberAccess","referencedDeclaration":6864,"src":"10896:24:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct StdStorage storage pointer) returns (uint256)"}},"id":7407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10896:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7403,"id":7408,"nodeType":"Return","src":"10889:37:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_uint","nameLocation":"10817:9:9","parameters":{"id":7400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7399,"mutability":"mutable","name":"self","nameLocation":"10846:4:9","nodeType":"VariableDeclaration","scope":7410,"src":"10827:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7398,"nodeType":"UserDefinedTypeName","pathNode":{"id":7397,"name":"StdStorage","nameLocations":["10827:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"10827:10:9"},"referencedDeclaration":6088,"src":"10827:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"10826:25:9"},"returnParameters":{"id":7403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7410,"src":"10870:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7401,"name":"uint256","nodeType":"ElementaryTypeName","src":"10870:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10869:9:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7424,"nodeType":"FunctionDefinition","src":"10939:122:9","nodes":[],"body":{"id":7423,"nodeType":"Block","src":"11008:53:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":7420,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7413,"src":"11049:4:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":7418,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"11025:14:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$6981_$","typeString":"type(library stdStorageSafe)"}},"id":7419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11040:8:9","memberName":"read_int","nodeType":"MemberAccess","referencedDeclaration":6883,"src":"11025:23:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$6088_storage_ptr_$returns$_t_int256_$","typeString":"function (struct StdStorage storage pointer) returns (int256)"}},"id":7421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11025:29:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":7417,"id":7422,"nodeType":"Return","src":"11018:36:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_int","nameLocation":"10948:8:9","parameters":{"id":7414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7413,"mutability":"mutable","name":"self","nameLocation":"10976:4:9","nodeType":"VariableDeclaration","scope":7424,"src":"10957:23:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7412,"nodeType":"UserDefinedTypeName","pathNode":{"id":7411,"name":"StdStorage","nameLocations":["10957:10:9"],"nodeType":"IdentifierPath","referencedDeclaration":6088,"src":"10957:10:9"},"referencedDeclaration":6088,"src":"10957:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$6088_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"10956:25:9"},"returnParameters":{"id":7417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7416,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7424,"src":"11000:6:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7415,"name":"int256","nodeType":"ElementaryTypeName","src":"11000:6:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"10999:8:9"},"scope":7522,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7480,"nodeType":"FunctionDefinition","src":"11118:304:9","nodes":[],"body":{"id":7479,"nodeType":"Block","src":"11205:217:9","nodes":[],"statements":[{"assignments":[7434],"declarations":[{"constant":false,"id":7434,"mutability":"mutable","name":"out","nameLocation":"11223:3:9","nodeType":"VariableDeclaration","scope":7479,"src":"11215:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7433,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11215:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7435,"nodeType":"VariableDeclarationStatement","src":"11215:11:9"},{"assignments":[7437],"declarations":[{"constant":false,"id":7437,"mutability":"mutable","name":"max","nameLocation":"11245:3:9","nodeType":"VariableDeclaration","scope":7479,"src":"11237:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7436,"name":"uint256","nodeType":"ElementaryTypeName","src":"11237:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7446,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7438,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7426,"src":"11251:1:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11253:6:9","memberName":"length","nodeType":"MemberAccess","src":"11251:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3332","id":7440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11262:2:9","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11251:13:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":7443,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7426,"src":"11272:1:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11274:6:9","memberName":"length","nodeType":"MemberAccess","src":"11272:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11251:29:9","trueExpression":{"hexValue":"3332","id":7442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11267:2:9","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11237:43:9"},{"body":{"id":7475,"nodeType":"Block","src":"11324:72:9","statements":[{"expression":{"id":7473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7457,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7434,"src":"11338:3:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":7466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":7460,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7426,"src":"11353:1:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7464,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7461,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7428,"src":"11355:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":7462,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7448,"src":"11364:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11355:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11353:13:9","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30784646","id":7465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11369:4:9","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xFF"},"src":"11353:20:9","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":7459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11345:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7458,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11345:7:9","typeDescriptions":{}}},"id":7467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11345:29:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7468,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7448,"src":"11379:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":7469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11383:1:9","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11379:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7471,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11378:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11345:40:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11338:47:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7474,"nodeType":"ExpressionStatement","src":"11338:47:9"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7451,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7448,"src":"11310:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7452,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7437,"src":"11314:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11310:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7476,"initializationExpression":{"assignments":[7448],"declarations":[{"constant":false,"id":7448,"mutability":"mutable","name":"i","nameLocation":"11303:1:9","nodeType":"VariableDeclaration","scope":7476,"src":"11295:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7447,"name":"uint256","nodeType":"ElementaryTypeName","src":"11295:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7450,"initialValue":{"hexValue":"30","id":7449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11307:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11295:13:9"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":7455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11319:3:9","subExpression":{"id":7454,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7448,"src":"11319:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7456,"nodeType":"ExpressionStatement","src":"11319:3:9"},"nodeType":"ForStatement","src":"11290:106:9"},{"expression":{"id":7477,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7434,"src":"11412:3:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7432,"id":7478,"nodeType":"Return","src":"11405:10:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bytesToBytes32","nameLocation":"11127:14:9","parameters":{"id":7429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7426,"mutability":"mutable","name":"b","nameLocation":"11155:1:9","nodeType":"VariableDeclaration","scope":7480,"src":"11142:14:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7425,"name":"bytes","nodeType":"ElementaryTypeName","src":"11142:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7428,"mutability":"mutable","name":"offset","nameLocation":"11166:6:9","nodeType":"VariableDeclaration","scope":7480,"src":"11158:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7427,"name":"uint256","nodeType":"ElementaryTypeName","src":"11158:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11141:32:9"},"returnParameters":{"id":7432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7431,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7480,"src":"11196:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7430,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11196:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11195:9:9"},"scope":7522,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":7521,"nodeType":"FunctionDefinition","src":"11479:393:9","nodes":[],"body":{"id":7520,"nodeType":"Block","src":"11552:320:9","nodes":[],"statements":[{"assignments":[7489],"declarations":[{"constant":false,"id":7489,"mutability":"mutable","name":"result","nameLocation":"11575:6:9","nodeType":"VariableDeclaration","scope":7520,"src":"11562:19:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7488,"name":"bytes","nodeType":"ElementaryTypeName","src":"11562:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7497,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7492,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7483,"src":"11594:1:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11596:6:9","memberName":"length","nodeType":"MemberAccess","src":"11594:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":7494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11605:2:9","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11594:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11584:9:9","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":7490,"name":"bytes","nodeType":"ElementaryTypeName","src":"11588:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":7496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11584:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"11562:46:9"},{"body":{"id":7516,"nodeType":"Block","src":"11657:185:9","statements":[{"assignments":[7510],"declarations":[{"constant":false,"id":7510,"mutability":"mutable","name":"k","nameLocation":"11679:1:9","nodeType":"VariableDeclaration","scope":7516,"src":"11671:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7509,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11671:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7514,"initialValue":{"baseExpression":{"id":7511,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7483,"src":"11683:1:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7513,"indexExpression":{"id":7512,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7499,"src":"11685:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11683:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11671:16:9"},{"AST":{"nativeSrc":"11757:75:9","nodeType":"YulBlock","src":"11757:75:9","statements":[{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"11786:6:9","nodeType":"YulIdentifier","src":"11786:6:9"},{"arguments":[{"kind":"number","nativeSrc":"11798:2:9","nodeType":"YulLiteral","src":"11798:2:9","type":"","value":"32"},{"arguments":[{"kind":"number","nativeSrc":"11806:2:9","nodeType":"YulLiteral","src":"11806:2:9","type":"","value":"32"},{"name":"i","nativeSrc":"11810:1:9","nodeType":"YulIdentifier","src":"11810:1:9"}],"functionName":{"name":"mul","nativeSrc":"11802:3:9","nodeType":"YulIdentifier","src":"11802:3:9"},"nativeSrc":"11802:10:9","nodeType":"YulFunctionCall","src":"11802:10:9"}],"functionName":{"name":"add","nativeSrc":"11794:3:9","nodeType":"YulIdentifier","src":"11794:3:9"},"nativeSrc":"11794:19:9","nodeType":"YulFunctionCall","src":"11794:19:9"}],"functionName":{"name":"add","nativeSrc":"11782:3:9","nodeType":"YulIdentifier","src":"11782:3:9"},"nativeSrc":"11782:32:9","nodeType":"YulFunctionCall","src":"11782:32:9"},{"name":"k","nativeSrc":"11816:1:9","nodeType":"YulIdentifier","src":"11816:1:9"}],"functionName":{"name":"mstore","nativeSrc":"11775:6:9","nodeType":"YulIdentifier","src":"11775:6:9"},"nativeSrc":"11775:43:9","nodeType":"YulFunctionCall","src":"11775:43:9"},"nativeSrc":"11775:43:9","nodeType":"YulExpressionStatement","src":"11775:43:9"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":7499,"isOffset":false,"isSlot":false,"src":"11810:1:9","valueSize":1},{"declaration":7510,"isOffset":false,"isSlot":false,"src":"11816:1:9","valueSize":1},{"declaration":7489,"isOffset":false,"isSlot":false,"src":"11786:6:9","valueSize":1}],"id":7515,"nodeType":"InlineAssembly","src":"11748:84:9"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7502,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7499,"src":"11638:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7503,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7483,"src":"11642:1:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11644:6:9","memberName":"length","nodeType":"MemberAccess","src":"11642:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11638:12:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7517,"initializationExpression":{"assignments":[7499],"declarations":[{"constant":false,"id":7499,"mutability":"mutable","name":"i","nameLocation":"11631:1:9","nodeType":"VariableDeclaration","scope":7517,"src":"11623:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7498,"name":"uint256","nodeType":"ElementaryTypeName","src":"11623:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7501,"initialValue":{"hexValue":"30","id":7500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11635:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11623:13:9"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":7507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11652:3:9","subExpression":{"id":7506,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7499,"src":"11652:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7508,"nodeType":"ExpressionStatement","src":"11652:3:9"},"nodeType":"ForStatement","src":"11618:224:9"},{"expression":{"id":7518,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7489,"src":"11859:6:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7487,"id":7519,"nodeType":"Return","src":"11852:13:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"flatten","nameLocation":"11488:7:9","parameters":{"id":7484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7483,"mutability":"mutable","name":"b","nameLocation":"11513:1:9","nodeType":"VariableDeclaration","scope":7521,"src":"11496:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7481,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11496:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7482,"nodeType":"ArrayTypeName","src":"11496:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"11495:20:9"},"returnParameters":{"id":7487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7521,"src":"11538:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7485,"name":"bytes","nodeType":"ElementaryTypeName","src":"11538:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11537:14:9"},"scope":7522,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"stdStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[7522],"name":"stdStorage","nameLocation":"7355:10:9","scope":7523,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":9} \ No newline at end of file diff --git a/out/StdUtils.sol/StdUtils.json b/out/StdUtils.sol/StdUtils.json deleted file mode 100644 index 59b7c3ef..00000000 --- a/out/StdUtils.sol/StdUtils.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/forge-std/src/StdUtils.sol\":\"StdUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/forge-std/src/StdUtils.sol":"StdUtils"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/forge-std/src/StdUtils.sol","id":8154,"exportedSymbols":{"StdUtils":[8153],"VmSafe":[9027]},"nodeType":"SourceUnit","src":"32:6703:10","nodes":[{"id":7524,"nodeType":"PragmaDirective","src":"32:31:10","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":7526,"nodeType":"ImportDirective","src":"88:32:10","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":8154,"sourceUnit":9353,"symbolAliases":[{"foreign":{"id":7525,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9027,"src":"96:6:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8153,"nodeType":"ContractDefinition","src":"122:6612:10","nodes":[{"id":7543,"nodeType":"VariableDeclaration","src":"155:92:10","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"179:2:10","scope":8153,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"},"typeName":{"id":7528,"nodeType":"UserDefinedTypeName","pathNode":{"id":7527,"name":"VmSafe","nameLocations":["155:6:10"],"nodeType":"IdentifierPath","referencedDeclaration":9027,"src":"155:6:10"},"referencedDeclaration":9027,"src":"155:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":7537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"225:17:10","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":7536,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"215:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"215:28:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"207:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7534,"name":"uint256","nodeType":"ElementaryTypeName","src":"207:7:10","typeDescriptions":{}}},"id":7539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"207:37:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7533,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"199:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":7532,"name":"uint160","nodeType":"ElementaryTypeName","src":"199:7:10","typeDescriptions":{}}},"id":7540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"199:46:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":7531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"191:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7530,"name":"address","nodeType":"ElementaryTypeName","src":"191:7:10","typeDescriptions":{}}},"id":7541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"191:55:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7529,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9027,"src":"184:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$9027_$","typeString":"type(contract VmSafe)"}},"id":7542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"184:63:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"visibility":"private"},{"id":7546,"nodeType":"VariableDeclaration","src":"253:86:10","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE2_ADDRESS","nameLocation":"278:16:10","scope":8153,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7544,"name":"address","nodeType":"ElementaryTypeName","src":"253:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":7545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"297:42:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"private"},{"id":7549,"nodeType":"VariableDeclaration","src":"346:127:10","nodes":[],"constant":true,"mutability":"constant","name":"INT256_MIN_ABS","nameLocation":"371:14:10","scope":8153,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7547,"name":"uint256","nodeType":"ElementaryTypeName","src":"346:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638","id":7548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"396:77:10","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"value":"57896044618658097711785492504343953926634992332820282019728792003956564819968"},"visibility":"private"},{"id":7552,"nodeType":"VariableDeclaration","src":"479:125:10","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"504:11:10","scope":8153,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7550,"name":"uint256","nodeType":"ElementaryTypeName","src":"479:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":7551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"526:78:10","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"private"},{"id":7682,"nodeType":"FunctionDefinition","src":"611:1263:10","nodes":[],"body":{"id":7681,"nodeType":"Block","src":"711:1163:10","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7564,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7556,"src":"729:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":7565,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7558,"src":"736:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"729:10:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374645574696c7320626f756e642875696e743235362c75696e743235362c75696e74323536293a204d6178206973206c657373207468616e206d696e2e","id":7567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"741:64:10","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":7563,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"721:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"721:85:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7569,"nodeType":"ExpressionStatement","src":"721:85:10"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7570,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7554,"src":"1035:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":7571,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7556,"src":"1040:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1035:8:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7573,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7554,"src":"1047:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":7574,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7558,"src":"1052:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1047:8:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1035:20:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7579,"nodeType":"IfStatement","src":"1031:34:10","trueBody":{"expression":{"id":7577,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7554,"src":"1064:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7562,"id":7578,"nodeType":"Return","src":"1057:8:10"}},{"assignments":[7581],"declarations":[{"constant":false,"id":7581,"mutability":"mutable","name":"size","nameLocation":"1084:4:10","nodeType":"VariableDeclaration","scope":7681,"src":"1076:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7580,"name":"uint256","nodeType":"ElementaryTypeName","src":"1076:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7587,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7582,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7558,"src":"1091:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7583,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7556,"src":"1097:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1091:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1103:1:10","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1091:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1076:28:10"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7588,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7554,"src":"1294:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"33","id":7589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1299:1:10","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"1294:6:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7591,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7581,"src":"1304:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":7592,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7554,"src":"1311:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1304:8:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1294:18:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7599,"nodeType":"IfStatement","src":"1290:38:10","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7595,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7556,"src":"1321:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":7596,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7554,"src":"1327:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1321:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7562,"id":7598,"nodeType":"Return","src":"1314:14:10"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7600,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7554,"src":"1342:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":7601,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7552,"src":"1347:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"33","id":7602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1361:1:10","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"1347:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1342:20:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7605,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7581,"src":"1366:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7606,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7552,"src":"1373:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7607,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7554,"src":"1387:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1373:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1366:22:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1342:46:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7618,"nodeType":"IfStatement","src":"1338:82:10","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7611,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7558,"src":"1397:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7612,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7552,"src":"1404:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7613,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7554,"src":"1418:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1404:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7615,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1403:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1397:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7562,"id":7617,"nodeType":"Return","src":"1390:30:10"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7619,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7554,"src":"1520:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":7620,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7558,"src":"1524:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1520:7:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7649,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7554,"src":"1699:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7650,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7556,"src":"1703:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1699:7:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7679,"nodeType":"IfStatement","src":"1695:173:10","trueBody":{"id":7678,"nodeType":"Block","src":"1708:160:10","statements":[{"assignments":[7653],"declarations":[{"constant":false,"id":7653,"mutability":"mutable","name":"diff","nameLocation":"1730:4:10","nodeType":"VariableDeclaration","scope":7678,"src":"1722:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7652,"name":"uint256","nodeType":"ElementaryTypeName","src":"1722:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7657,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7654,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7556,"src":"1737:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7655,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7554,"src":"1743:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1737:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1722:22:10"},{"assignments":[7659],"declarations":[{"constant":false,"id":7659,"mutability":"mutable","name":"rem","nameLocation":"1766:3:10","nodeType":"VariableDeclaration","scope":7678,"src":"1758:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7658,"name":"uint256","nodeType":"ElementaryTypeName","src":"1758:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7663,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7660,"name":"diff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7653,"src":"1772:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":7661,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7581,"src":"1779:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1772:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1758:25:10"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7664,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7659,"src":"1801:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1808:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1801:8:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7669,"nodeType":"IfStatement","src":"1797:24:10","trueBody":{"expression":{"id":7667,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7556,"src":"1818:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7562,"id":7668,"nodeType":"Return","src":"1811:10:10"}},{"expression":{"id":7676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7670,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7561,"src":"1835:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7671,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7558,"src":"1844:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7672,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7659,"src":"1850:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1844:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1856:1:10","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1844:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1835:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7677,"nodeType":"ExpressionStatement","src":"1835:22:10"}]}},"id":7680,"nodeType":"IfStatement","src":"1516:352:10","trueBody":{"id":7648,"nodeType":"Block","src":"1529:160:10","statements":[{"assignments":[7623],"declarations":[{"constant":false,"id":7623,"mutability":"mutable","name":"diff","nameLocation":"1551:4:10","nodeType":"VariableDeclaration","scope":7648,"src":"1543:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7622,"name":"uint256","nodeType":"ElementaryTypeName","src":"1543:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7627,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7624,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7554,"src":"1558:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7625,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7558,"src":"1562:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1558:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1543:22:10"},{"assignments":[7629],"declarations":[{"constant":false,"id":7629,"mutability":"mutable","name":"rem","nameLocation":"1587:3:10","nodeType":"VariableDeclaration","scope":7648,"src":"1579:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7628,"name":"uint256","nodeType":"ElementaryTypeName","src":"1579:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7633,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7630,"name":"diff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7623,"src":"1593:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":7631,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7581,"src":"1600:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1593:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1579:25:10"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7634,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7629,"src":"1622:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1629:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1622:8:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7639,"nodeType":"IfStatement","src":"1618:24:10","trueBody":{"expression":{"id":7637,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7558,"src":"1639:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7562,"id":7638,"nodeType":"Return","src":"1632:10:10"}},{"expression":{"id":7646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7640,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7561,"src":"1656:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7641,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7556,"src":"1665:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":7642,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7629,"src":"1671:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1665:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1677:1:10","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1665:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1656:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7647,"nodeType":"ExpressionStatement","src":"1656:22:10"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_bound","nameLocation":"620:6:10","parameters":{"id":7559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7554,"mutability":"mutable","name":"x","nameLocation":"635:1:10","nodeType":"VariableDeclaration","scope":7682,"src":"627:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7553,"name":"uint256","nodeType":"ElementaryTypeName","src":"627:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7556,"mutability":"mutable","name":"min","nameLocation":"646:3:10","nodeType":"VariableDeclaration","scope":7682,"src":"638:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7555,"name":"uint256","nodeType":"ElementaryTypeName","src":"638:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7558,"mutability":"mutable","name":"max","nameLocation":"659:3:10","nodeType":"VariableDeclaration","scope":7682,"src":"651:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7557,"name":"uint256","nodeType":"ElementaryTypeName","src":"651:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"626:37:10"},"returnParameters":{"id":7562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7561,"mutability":"mutable","name":"result","nameLocation":"703:6:10","nodeType":"VariableDeclaration","scope":7682,"src":"695:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7560,"name":"uint256","nodeType":"ElementaryTypeName","src":"695:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"694:16:10"},"scope":8153,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":7707,"nodeType":"FunctionDefinition","src":"1880:190:10","nodes":[],"body":{"id":7706,"nodeType":"Block","src":"1979:91:10","nodes":[],"statements":[{"expression":{"id":7699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7693,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7691,"src":"1989:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7695,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7684,"src":"2005:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7696,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7686,"src":"2008:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7697,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7688,"src":"2013:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7694,"name":"_bound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7682,"src":"1998:6:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":7698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1998:19:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1989:28:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7700,"nodeType":"ExpressionStatement","src":"1989:28:10"},{"expression":{"arguments":[{"hexValue":"426f756e6420526573756c74","id":7702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2040:14:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_237b64d156191d73cf174e4433495e27feb7a7083e87d06235be591548fb5c52","typeString":"literal_string \"Bound Result\""},"value":"Bound Result"},{"id":7703,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7691,"src":"2056:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_237b64d156191d73cf174e4433495e27feb7a7083e87d06235be591548fb5c52","typeString":"literal_string \"Bound Result\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7701,"name":"console2_log","nodeType":"Identifier","overloadedDeclarations":[8127,8152],"referencedDeclaration":8127,"src":"2027:12:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":7704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2027:36:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7705,"nodeType":"ExpressionStatement","src":"2027:36:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bound","nameLocation":"1889:5:10","parameters":{"id":7689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7684,"mutability":"mutable","name":"x","nameLocation":"1903:1:10","nodeType":"VariableDeclaration","scope":7707,"src":"1895:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7683,"name":"uint256","nodeType":"ElementaryTypeName","src":"1895:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7686,"mutability":"mutable","name":"min","nameLocation":"1914:3:10","nodeType":"VariableDeclaration","scope":7707,"src":"1906:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7685,"name":"uint256","nodeType":"ElementaryTypeName","src":"1906:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7688,"mutability":"mutable","name":"max","nameLocation":"1927:3:10","nodeType":"VariableDeclaration","scope":7707,"src":"1919:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7687,"name":"uint256","nodeType":"ElementaryTypeName","src":"1919:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1894:37:10"},"returnParameters":{"id":7692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7691,"mutability":"mutable","name":"result","nameLocation":"1971:6:10","nodeType":"VariableDeclaration","scope":7707,"src":"1963:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7690,"name":"uint256","nodeType":"ElementaryTypeName","src":"1963:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1962:16:10"},"scope":8153,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":7837,"nodeType":"FunctionDefinition","src":"2076:1203:10","nodes":[],"body":{"id":7836,"nodeType":"Block","src":"2171:1108:10","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7719,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7711,"src":"2189:3:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":7720,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7713,"src":"2196:3:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2189:10:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374645574696c7320626f756e6428696e743235362c696e743235362c696e74323536293a204d6178206973206c657373207468616e206d696e2e","id":7722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2201:61:10","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":7718,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2181:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2181:82:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7724,"nodeType":"ExpressionStatement","src":"2181:82:10"},{"assignments":[7726],"declarations":[{"constant":false,"id":7726,"mutability":"mutable","name":"_x","nameLocation":"2699:2:10","nodeType":"VariableDeclaration","scope":7836,"src":"2691:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7725,"name":"uint256","nodeType":"ElementaryTypeName","src":"2691:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7748,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7727,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7709,"src":"2704:1:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":7728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2708:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2704:5:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7742,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7709,"src":"2758:1:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2750:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7740,"name":"uint256","nodeType":"ElementaryTypeName","src":"2750:7:10","typeDescriptions":{}}},"id":7743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2750:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":7744,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7549,"src":"2763:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2750:27:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7746,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2749:29:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2704:74:10","trueExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7730,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7549,"src":"2713:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"2730:11:10","subExpression":{"arguments":[{"id":7733,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7709,"src":"2739:1:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2731:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7731,"name":"uint256","nodeType":"ElementaryTypeName","src":"2731:7:10","typeDescriptions":{}}},"id":7734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2731:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2713:28:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2744:1:10","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2713:32:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7739,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2712:34:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2691:87:10"},{"assignments":[7750],"declarations":[{"constant":false,"id":7750,"mutability":"mutable","name":"_min","nameLocation":"2796:4:10","nodeType":"VariableDeclaration","scope":7836,"src":"2788:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7749,"name":"uint256","nodeType":"ElementaryTypeName","src":"2788:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7772,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7751,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7711,"src":"2803:3:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":7752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2809:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2803:7:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7766,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7711,"src":"2861:3:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2853:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7764,"name":"uint256","nodeType":"ElementaryTypeName","src":"2853:7:10","typeDescriptions":{}}},"id":7767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2853:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":7768,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7549,"src":"2868:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2853:29:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7770,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2852:31:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2803:80:10","trueExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7754,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7549,"src":"2814:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"2831:13:10","subExpression":{"arguments":[{"id":7757,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7711,"src":"2840:3:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2832:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7755,"name":"uint256","nodeType":"ElementaryTypeName","src":"2832:7:10","typeDescriptions":{}}},"id":7758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2832:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2814:30:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2847:1:10","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2814:34:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7763,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2813:36:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2788:95:10"},{"assignments":[7774],"declarations":[{"constant":false,"id":7774,"mutability":"mutable","name":"_max","nameLocation":"2901:4:10","nodeType":"VariableDeclaration","scope":7836,"src":"2893:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7773,"name":"uint256","nodeType":"ElementaryTypeName","src":"2893:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7796,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7775,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7713,"src":"2908:3:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":7776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2914:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2908:7:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7790,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7713,"src":"2966:3:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2958:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7788,"name":"uint256","nodeType":"ElementaryTypeName","src":"2958:7:10","typeDescriptions":{}}},"id":7791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2958:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":7792,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7549,"src":"2973:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2958:29:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7794,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2957:31:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2908:80:10","trueExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7778,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7549,"src":"2919:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"2936:13:10","subExpression":{"arguments":[{"id":7781,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7713,"src":"2945:3:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7780,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2937:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7779,"name":"uint256","nodeType":"ElementaryTypeName","src":"2937:7:10","typeDescriptions":{}}},"id":7782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2937:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2919:30:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2952:1:10","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2919:34:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7787,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2918:36:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2893:95:10"},{"assignments":[7798],"declarations":[{"constant":false,"id":7798,"mutability":"mutable","name":"y","nameLocation":"3007:1:10","nodeType":"VariableDeclaration","scope":7836,"src":"2999:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7797,"name":"uint256","nodeType":"ElementaryTypeName","src":"2999:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7804,"initialValue":{"arguments":[{"id":7800,"name":"_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7726,"src":"3018:2:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7801,"name":"_min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7750,"src":"3022:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7802,"name":"_max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7774,"src":"3028:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7799,"name":"_bound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7682,"src":"3011:6:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":7803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3011:22:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2999:34:10"},{"expression":{"id":7826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7805,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7716,"src":"3121:6:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7806,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7798,"src":"3130:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7807,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7549,"src":"3134:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3130:18:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7821,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7798,"src":"3194:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7822,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7549,"src":"3198:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3194:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3187:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":7819,"name":"int256","nodeType":"ElementaryTypeName","src":"3187:6:10","typeDescriptions":{}}},"id":7824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3187:26:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":7825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3130:83:10","trueExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3158:21:10","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7811,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7549,"src":"3160:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7812,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7798,"src":"3177:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3160:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7814,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3159:20:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":7816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3182:1:10","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3158:25:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3151:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":7809,"name":"int256","nodeType":"ElementaryTypeName","src":"3151:6:10","typeDescriptions":{}}},"id":7818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3151:33:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3121:92:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":7827,"nodeType":"ExpressionStatement","src":"3121:92:10"},{"expression":{"arguments":[{"hexValue":"426f756e6420726573756c74","id":7829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3236:14:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_81387530263afdcc351da6c89e6a10d49583b5beb1fecaddd0371443f1cd026f","typeString":"literal_string \"Bound result\""},"value":"Bound result"},{"arguments":[{"id":7832,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7716,"src":"3264:6:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":7830,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7543,"src":"3252:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$9027","typeString":"contract VmSafe"}},"id":7831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3255:8:10","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":8721,"src":"3252:11:10","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$returns$_t_string_memory_ptr_$","typeString":"function (int256) pure external returns (string memory)"}},"id":7833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3252:19:10","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":7828,"name":"console2_log","nodeType":"Identifier","overloadedDeclarations":[8127,8152],"referencedDeclaration":8152,"src":"3223:12:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory) view"}},"id":7834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3223:49:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7835,"nodeType":"ExpressionStatement","src":"3223:49:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bound","nameLocation":"2085:5:10","parameters":{"id":7714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7709,"mutability":"mutable","name":"x","nameLocation":"2098:1:10","nodeType":"VariableDeclaration","scope":7837,"src":"2091:8:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7708,"name":"int256","nodeType":"ElementaryTypeName","src":"2091:6:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":7711,"mutability":"mutable","name":"min","nameLocation":"2108:3:10","nodeType":"VariableDeclaration","scope":7837,"src":"2101:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7710,"name":"int256","nodeType":"ElementaryTypeName","src":"2101:6:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":7713,"mutability":"mutable","name":"max","nameLocation":"2120:3:10","nodeType":"VariableDeclaration","scope":7837,"src":"2113:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7712,"name":"int256","nodeType":"ElementaryTypeName","src":"2113:6:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2090:34:10"},"returnParameters":{"id":7717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7716,"mutability":"mutable","name":"result","nameLocation":"2163:6:10","nodeType":"VariableDeclaration","scope":7837,"src":"2156:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7715,"name":"int256","nodeType":"ElementaryTypeName","src":"2156:6:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2155:15:10"},"scope":8153,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":8022,"nodeType":"FunctionDefinition","src":"3514:1962:10","nodes":[],"body":{"id":8021,"nodeType":"Block","src":"3617:1859:10","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7847,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7842,"src":"3943:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783030","id":7848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3952:4:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"src":"3943:13:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7871,"nodeType":"IfStatement","src":"3939:134:10","trueBody":{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30786436","id":7856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4027:4:10","typeDescriptions":{"typeIdentifier":"t_rational_214_by_1","typeString":"int_const 214"},"value":"0xd6"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_214_by_1","typeString":"int_const 214"}],"id":7855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4020:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":7854,"name":"bytes1","nodeType":"ElementaryTypeName","src":"4020:6:10","typeDescriptions":{}}},"id":7857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4020:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[{"hexValue":"30783934","id":7860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4041:4:10","typeDescriptions":{"typeIdentifier":"t_rational_148_by_1","typeString":"int_const 148"},"value":"0x94"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_148_by_1","typeString":"int_const 148"}],"id":7859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4034:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":7858,"name":"bytes1","nodeType":"ElementaryTypeName","src":"4034:6:10","typeDescriptions":{}}},"id":7861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4034:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"id":7862,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7840,"src":"4048:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30783830","id":7865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4065:4:10","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"}],"id":7864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4058:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":7863,"name":"bytes1","nodeType":"ElementaryTypeName","src":"4058:6:10","typeDescriptions":{}}},"id":7866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4058:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"expression":{"id":7852,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4003:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4007:12:10","memberName":"encodePacked","nodeType":"MemberAccess","src":"4003:16:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4003:68:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7851,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3993:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3993:79:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7850,"name":"addressFromLast20Bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8102,"src":"3970:22:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) pure returns (address)"}},"id":7869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3970:103:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7846,"id":7870,"nodeType":"Return","src":"3963:110:10"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7872,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7842,"src":"4087:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30783766","id":7873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4096:4:10","typeDescriptions":{"typeIdentifier":"t_rational_127_by_1","typeString":"int_const 127"},"value":"0x7f"},"src":"4087:13:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7896,"nodeType":"IfStatement","src":"4083:134:10","trueBody":{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30786436","id":7881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4171:4:10","typeDescriptions":{"typeIdentifier":"t_rational_214_by_1","typeString":"int_const 214"},"value":"0xd6"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_214_by_1","typeString":"int_const 214"}],"id":7880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4164:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":7879,"name":"bytes1","nodeType":"ElementaryTypeName","src":"4164:6:10","typeDescriptions":{}}},"id":7882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4164:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[{"hexValue":"30783934","id":7885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4185:4:10","typeDescriptions":{"typeIdentifier":"t_rational_148_by_1","typeString":"int_const 148"},"value":"0x94"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_148_by_1","typeString":"int_const 148"}],"id":7884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4178:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":7883,"name":"bytes1","nodeType":"ElementaryTypeName","src":"4178:6:10","typeDescriptions":{}}},"id":7886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4178:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"id":7887,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7840,"src":"4192:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":7890,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7842,"src":"4208:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4202:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":7888,"name":"uint8","nodeType":"ElementaryTypeName","src":"4202:5:10","typeDescriptions":{}}},"id":7891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4202:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":7877,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4147:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4151:12:10","memberName":"encodePacked","nodeType":"MemberAccess","src":"4147:16:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4147:68:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7876,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4137:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4137:79:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7875,"name":"addressFromLast20Bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8102,"src":"4114:22:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) pure returns (address)"}},"id":7894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4114:103:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7846,"id":7895,"nodeType":"Return","src":"4107:110:10"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7897,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7842,"src":"4370:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"id":7902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"id":7900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4379:1:10","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":7899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4382:1:10","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"4379:4:10","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4386:1:10","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4379:8:10","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}},"src":"4370:17:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7929,"nodeType":"IfStatement","src":"4366:148:10","trueBody":{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30786437","id":7910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4454:4:10","typeDescriptions":{"typeIdentifier":"t_rational_215_by_1","typeString":"int_const 215"},"value":"0xd7"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_215_by_1","typeString":"int_const 215"}],"id":7909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4447:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":7908,"name":"bytes1","nodeType":"ElementaryTypeName","src":"4447:6:10","typeDescriptions":{}}},"id":7911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4447:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[{"hexValue":"30783934","id":7914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4468:4:10","typeDescriptions":{"typeIdentifier":"t_rational_148_by_1","typeString":"int_const 148"},"value":"0x94"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_148_by_1","typeString":"int_const 148"}],"id":7913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4461:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":7912,"name":"bytes1","nodeType":"ElementaryTypeName","src":"4461:6:10","typeDescriptions":{}}},"id":7915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4461:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"id":7916,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7840,"src":"4475:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30783831","id":7919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4492:4:10","typeDescriptions":{"typeIdentifier":"t_rational_129_by_1","typeString":"int_const 129"},"value":"0x81"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_129_by_1","typeString":"int_const 129"}],"id":7918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4485:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":7917,"name":"bytes1","nodeType":"ElementaryTypeName","src":"4485:6:10","typeDescriptions":{}}},"id":7920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4485:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[{"id":7923,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7842,"src":"4505:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4499:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":7921,"name":"uint8","nodeType":"ElementaryTypeName","src":"4499:5:10","typeDescriptions":{}}},"id":7924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4499:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":7906,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4430:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4434:12:10","memberName":"encodePacked","nodeType":"MemberAccess","src":"4430:16:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4430:82:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7905,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4420:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4420:93:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7904,"name":"addressFromLast20Bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8102,"src":"4397:22:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) pure returns (address)"}},"id":7927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4397:117:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7846,"id":7928,"nodeType":"Return","src":"4390:124:10"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7930,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7842,"src":"4528:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"id":7935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":7933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4537:1:10","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":7932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4540:2:10","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"4537:5:10","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4545:1:10","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4537:9:10","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"}},"src":"4528:18:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7962,"nodeType":"IfStatement","src":"4524:149:10","trueBody":{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30786438","id":7943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4612:4:10","typeDescriptions":{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},"value":"0xd8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"}],"id":7942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4605:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":7941,"name":"bytes1","nodeType":"ElementaryTypeName","src":"4605:6:10","typeDescriptions":{}}},"id":7944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4605:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[{"hexValue":"30783934","id":7947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4626:4:10","typeDescriptions":{"typeIdentifier":"t_rational_148_by_1","typeString":"int_const 148"},"value":"0x94"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_148_by_1","typeString":"int_const 148"}],"id":7946,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4619:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":7945,"name":"bytes1","nodeType":"ElementaryTypeName","src":"4619:6:10","typeDescriptions":{}}},"id":7948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4619:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"id":7949,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7840,"src":"4633:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30783832","id":7952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4650:4:10","typeDescriptions":{"typeIdentifier":"t_rational_130_by_1","typeString":"int_const 130"},"value":"0x82"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_130_by_1","typeString":"int_const 130"}],"id":7951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4643:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":7950,"name":"bytes1","nodeType":"ElementaryTypeName","src":"4643:6:10","typeDescriptions":{}}},"id":7953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4643:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[{"id":7956,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7842,"src":"4664:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4657:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":7954,"name":"uint16","nodeType":"ElementaryTypeName","src":"4657:6:10","typeDescriptions":{}}},"id":7957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4657:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":7939,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4588:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4592:12:10","memberName":"encodePacked","nodeType":"MemberAccess","src":"4588:16:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4588:83:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7938,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4578:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4578:94:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7937,"name":"addressFromLast20Bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8102,"src":"4555:22:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) pure returns (address)"}},"id":7960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4555:118:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7846,"id":7961,"nodeType":"Return","src":"4548:125:10"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7963,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7842,"src":"4687:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_16777215_by_1","typeString":"int_const 16777215"},"id":7968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_rational_16777216_by_1","typeString":"int_const 16777216"},"id":7966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":7964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4696:1:10","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3234","id":7965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4699:2:10","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"4696:5:10","typeDescriptions":{"typeIdentifier":"t_rational_16777216_by_1","typeString":"int_const 16777216"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":7967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4704:1:10","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4696:9:10","typeDescriptions":{"typeIdentifier":"t_rational_16777215_by_1","typeString":"int_const 16777215"}},"src":"4687:18:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7995,"nodeType":"IfStatement","src":"4683:149:10","trueBody":{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30786439","id":7976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4771:4:10","typeDescriptions":{"typeIdentifier":"t_rational_217_by_1","typeString":"int_const 217"},"value":"0xd9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_217_by_1","typeString":"int_const 217"}],"id":7975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4764:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":7974,"name":"bytes1","nodeType":"ElementaryTypeName","src":"4764:6:10","typeDescriptions":{}}},"id":7977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4764:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[{"hexValue":"30783934","id":7980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4785:4:10","typeDescriptions":{"typeIdentifier":"t_rational_148_by_1","typeString":"int_const 148"},"value":"0x94"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_148_by_1","typeString":"int_const 148"}],"id":7979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4778:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":7978,"name":"bytes1","nodeType":"ElementaryTypeName","src":"4778:6:10","typeDescriptions":{}}},"id":7981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4778:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"id":7982,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7840,"src":"4792:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30783833","id":7985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4809:4:10","typeDescriptions":{"typeIdentifier":"t_rational_131_by_1","typeString":"int_const 131"},"value":"0x83"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_131_by_1","typeString":"int_const 131"}],"id":7984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4802:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":7983,"name":"bytes1","nodeType":"ElementaryTypeName","src":"4802:6:10","typeDescriptions":{}}},"id":7986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4802:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[{"id":7989,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7842,"src":"4823:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4816:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":7987,"name":"uint24","nodeType":"ElementaryTypeName","src":"4816:6:10","typeDescriptions":{}}},"id":7990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4816:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_uint24","typeString":"uint24"}],"expression":{"id":7972,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4747:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4751:12:10","memberName":"encodePacked","nodeType":"MemberAccess","src":"4747:16:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4747:83:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7971,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4737:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4737:94:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7970,"name":"addressFromLast20Bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8102,"src":"4714:22:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) pure returns (address)"}},"id":7993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4714:118:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7846,"id":7994,"nodeType":"Return","src":"4707:125:10"}},{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30786461","id":8002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5399:4:10","typeDescriptions":{"typeIdentifier":"t_rational_218_by_1","typeString":"int_const 218"},"value":"0xda"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_218_by_1","typeString":"int_const 218"}],"id":8001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5392:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":8000,"name":"bytes1","nodeType":"ElementaryTypeName","src":"5392:6:10","typeDescriptions":{}}},"id":8003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5392:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[{"hexValue":"30783934","id":8006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5413:4:10","typeDescriptions":{"typeIdentifier":"t_rational_148_by_1","typeString":"int_const 148"},"value":"0x94"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_148_by_1","typeString":"int_const 148"}],"id":8005,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5406:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":8004,"name":"bytes1","nodeType":"ElementaryTypeName","src":"5406:6:10","typeDescriptions":{}}},"id":8007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5406:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"id":8008,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7840,"src":"5420:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30783834","id":8011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5437:4:10","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":8010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5430:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":8009,"name":"bytes1","nodeType":"ElementaryTypeName","src":"5430:6:10","typeDescriptions":{}}},"id":8012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5430:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[{"id":8015,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7842,"src":"5451:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5444:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":8013,"name":"uint32","nodeType":"ElementaryTypeName","src":"5444:6:10","typeDescriptions":{}}},"id":8016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5444:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"id":7998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5375:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5379:12:10","memberName":"encodePacked","nodeType":"MemberAccess","src":"5375:16:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5375:83:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7997,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5365:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5365:94:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7996,"name":"addressFromLast20Bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8102,"src":"5329:22:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) pure returns (address)"}},"id":8019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5329:140:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7846,"id":8020,"nodeType":"Return","src":"5322:147:10"}]},"documentation":{"id":7838,"nodeType":"StructuredDocumentation","src":"3285:224:10","text":"@dev Compute the address a contract will be deployed at for a given deployer address and nonce\n @notice adapated from Solmate implementation (https://github.com/Rari-Capital/solmate/blob/main/src/utils/LibRLP.sol)"},"implemented":true,"kind":"function","modifiers":[],"name":"computeCreateAddress","nameLocation":"3523:20:10","parameters":{"id":7843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7840,"mutability":"mutable","name":"deployer","nameLocation":"3552:8:10","nodeType":"VariableDeclaration","scope":8022,"src":"3544:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7839,"name":"address","nodeType":"ElementaryTypeName","src":"3544:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7842,"mutability":"mutable","name":"nonce","nameLocation":"3570:5:10","nodeType":"VariableDeclaration","scope":8022,"src":"3562:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7841,"name":"uint256","nodeType":"ElementaryTypeName","src":"3562:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3543:33:10"},"returnParameters":{"id":7846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7845,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8022,"src":"3608:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7844,"name":"address","nodeType":"ElementaryTypeName","src":"3608:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3607:9:10"},"scope":8153,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":8049,"nodeType":"FunctionDefinition","src":"5482:280:10","nodes":[],"body":{"id":8048,"nodeType":"Block","src":"5643:119:10","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30786666","id":8039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5717:4:10","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}],"id":8038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5710:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":8037,"name":"bytes1","nodeType":"ElementaryTypeName","src":"5710:6:10","typeDescriptions":{}}},"id":8040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5710:12:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"id":8041,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8028,"src":"5724:8:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8042,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8024,"src":"5734:4:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8043,"name":"initcodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8026,"src":"5740:12:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8035,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5693:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8036,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5697:12:10","memberName":"encodePacked","nodeType":"MemberAccess","src":"5693:16:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5693:60:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8034,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5683:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5683:71:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8033,"name":"addressFromLast20Bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8102,"src":"5660:22:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) pure returns (address)"}},"id":8046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5660:95:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":8032,"id":8047,"nodeType":"Return","src":"5653:102:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"computeCreate2Address","nameLocation":"5491:21:10","parameters":{"id":8029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8024,"mutability":"mutable","name":"salt","nameLocation":"5521:4:10","nodeType":"VariableDeclaration","scope":8049,"src":"5513:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8023,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5513:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8026,"mutability":"mutable","name":"initcodeHash","nameLocation":"5535:12:10","nodeType":"VariableDeclaration","scope":8049,"src":"5527:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8025,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5527:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8028,"mutability":"mutable","name":"deployer","nameLocation":"5557:8:10","nodeType":"VariableDeclaration","scope":8049,"src":"5549:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8027,"name":"address","nodeType":"ElementaryTypeName","src":"5549:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5512:54:10"},"returnParameters":{"id":8032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8031,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8049,"src":"5630:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8030,"name":"address","nodeType":"ElementaryTypeName","src":"5630:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5629:9:10"},"scope":8153,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":8083,"nodeType":"FunctionDefinition","src":"5768:259:10","nodes":[],"body":{"id":8082,"nodeType":"Block","src":"5845:182:10","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8057,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8051,"src":"5863:1:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5865:6:10","memberName":"length","nodeType":"MemberAccess","src":"5863:8:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3332","id":8059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5875:2:10","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"5863:14:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374645574696c73206279746573546f55696e74286279746573293a204279746573206c656e67746820657863656564732033322e","id":8061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5879:55:10","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":8056,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5855:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5855:80:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8063,"nodeType":"ExpressionStatement","src":"5855:80:10"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":8070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5990:2:10","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":8071,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8051,"src":"5995:1:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5997:6:10","memberName":"length","nodeType":"MemberAccess","src":"5995:8:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5990:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5980:9:10","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":8068,"name":"bytes","nodeType":"ElementaryTypeName","src":"5984:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":8074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5980:24:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":8075,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8051,"src":"6006:1:10","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":8066,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5963:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5967:12:10","memberName":"encodePacked","nodeType":"MemberAccess","src":"5963:16:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5963:45:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":8078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6011:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8077,"name":"uint256","nodeType":"ElementaryTypeName","src":"6011:7:10","typeDescriptions":{}}}],"id":8079,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6010:9:10","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":8064,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5952:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8065,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5956:6:10","memberName":"decode","nodeType":"MemberAccess","src":"5952:10:10","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":8080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5952:68:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8055,"id":8081,"nodeType":"Return","src":"5945:75:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bytesToUint","nameLocation":"5777:11:10","parameters":{"id":8052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8051,"mutability":"mutable","name":"b","nameLocation":"5802:1:10","nodeType":"VariableDeclaration","scope":8083,"src":"5789:14:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8050,"name":"bytes","nodeType":"ElementaryTypeName","src":"5789:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5788:16:10"},"returnParameters":{"id":8055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8054,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8083,"src":"5836:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8053,"name":"uint256","nodeType":"ElementaryTypeName","src":"5836:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5835:9:10"},"scope":8153,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":8102,"nodeType":"FunctionDefinition","src":"6033:144:10","nodes":[],"body":{"id":8101,"nodeType":"Block","src":"6116:61:10","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":8096,"name":"bytesValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8085,"src":"6157:10:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6149:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8094,"name":"uint256","nodeType":"ElementaryTypeName","src":"6149:7:10","typeDescriptions":{}}},"id":8097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6149:19:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6141:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":8092,"name":"uint160","nodeType":"ElementaryTypeName","src":"6141:7:10","typeDescriptions":{}}},"id":8098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6141:28:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":8091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6133:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8090,"name":"address","nodeType":"ElementaryTypeName","src":"6133:7:10","typeDescriptions":{}}},"id":8099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6133:37:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":8089,"id":8100,"nodeType":"Return","src":"6126:44:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"addressFromLast20Bytes","nameLocation":"6042:22:10","parameters":{"id":8086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8085,"mutability":"mutable","name":"bytesValue","nameLocation":"6073:10:10","nodeType":"VariableDeclaration","scope":8102,"src":"6065:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8084,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6065:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6064:20:10"},"returnParameters":{"id":8089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8088,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8102,"src":"6107:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8087,"name":"address","nodeType":"ElementaryTypeName","src":"6107:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6106:9:10"},"scope":8153,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":8127,"nodeType":"FunctionDefinition","src":"6307:207:10","nodes":[],"body":{"id":8126,"nodeType":"Block","src":"6372:142:10","nodes":[],"statements":[{"assignments":[8110,null],"declarations":[{"constant":false,"id":8110,"mutability":"mutable","name":"status","nameLocation":"6388:6:10","nodeType":"VariableDeclaration","scope":8126,"src":"6383:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8109,"name":"bool","nodeType":"ElementaryTypeName","src":"6383:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":8123,"initialValue":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e7432353629","id":8118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6460:21:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e","typeString":"literal_string \"log(string,uint256)\""},"value":"log(string,uint256)"},{"id":8119,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8104,"src":"6483:2:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8120,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8106,"src":"6487:2:10","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":8116,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6436:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6440:19:10","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6436:23:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6436:54:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":8113,"name":"CONSOLE2_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7546,"src":"6407:16:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6399:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8111,"name":"address","nodeType":"ElementaryTypeName","src":"6399:7:10","typeDescriptions":{}}},"id":8114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6399:25:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6425:10:10","memberName":"staticcall","nodeType":"MemberAccess","src":"6399:36:10","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":8122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6399:92:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6382:109:10"},{"expression":{"id":8124,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8110,"src":"6501:6:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8125,"nodeType":"ExpressionStatement","src":"6501:6:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"console2_log","nameLocation":"6316:12:10","parameters":{"id":8107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8104,"mutability":"mutable","name":"p0","nameLocation":"6343:2:10","nodeType":"VariableDeclaration","scope":8127,"src":"6329:16:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8103,"name":"string","nodeType":"ElementaryTypeName","src":"6329:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8106,"mutability":"mutable","name":"p1","nameLocation":"6355:2:10","nodeType":"VariableDeclaration","scope":8127,"src":"6347:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8105,"name":"uint256","nodeType":"ElementaryTypeName","src":"6347:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6328:30:10"},"returnParameters":{"id":8108,"nodeType":"ParameterList","parameters":[],"src":"6372:0:10"},"scope":8153,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":8152,"nodeType":"FunctionDefinition","src":"6520:212:10","nodes":[],"body":{"id":8151,"nodeType":"Block","src":"6591:141:10","nodes":[],"statements":[{"assignments":[8135,null],"declarations":[{"constant":false,"id":8135,"mutability":"mutable","name":"status","nameLocation":"6607:6:10","nodeType":"VariableDeclaration","scope":8151,"src":"6602:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8134,"name":"bool","nodeType":"ElementaryTypeName","src":"6602:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":8148,"initialValue":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e6729","id":8143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6679:20:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},"value":"log(string,string)"},{"id":8144,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8129,"src":"6701:2:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8145,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8131,"src":"6705:2:10","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":8141,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6655:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6659:19:10","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6655:23:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6655:53:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":8138,"name":"CONSOLE2_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7546,"src":"6626:16:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6618:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8136,"name":"address","nodeType":"ElementaryTypeName","src":"6618:7:10","typeDescriptions":{}}},"id":8139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6618:25:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6644:10:10","memberName":"staticcall","nodeType":"MemberAccess","src":"6618:36:10","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":8147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6618:91:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6601:108:10"},{"expression":{"id":8149,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8135,"src":"6719:6:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8150,"nodeType":"ExpressionStatement","src":"6719:6:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"console2_log","nameLocation":"6529:12:10","parameters":{"id":8132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8129,"mutability":"mutable","name":"p0","nameLocation":"6556:2:10","nodeType":"VariableDeclaration","scope":8152,"src":"6542:16:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8128,"name":"string","nodeType":"ElementaryTypeName","src":"6542:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8131,"mutability":"mutable","name":"p1","nameLocation":"6574:2:10","nodeType":"VariableDeclaration","scope":8152,"src":"6560:16:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8130,"name":"string","nodeType":"ElementaryTypeName","src":"6560:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6541:36:10"},"returnParameters":{"id":8133,"nodeType":"ParameterList","parameters":[],"src":"6591:0:10"},"scope":8153,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":true,"baseContracts":[],"canonicalName":"StdUtils","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[8153],"name":"StdUtils","nameLocation":"140:8:10","scope":8154,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":10} \ No newline at end of file diff --git a/out/StrategyLib.sol/StrategyLib.json b/out/StrategyLib.sol/StrategyLib.json deleted file mode 100644 index 0af9bbd6..00000000 --- a/out/StrategyLib.sol/StrategyLib.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/lib/StrategyLib.sol","id":30776,"exportedSymbols":{"EPSILON":[30665],"FixedPointMathLib":[26640],"Gaussian":[27374],"HALF":[30636],"INFINITY_IS_NOT_REAL":[30646],"I_ONE":[30655],"I_TWO":[30661],"Min":[27736],"ONE":[30639],"SQRT_WAD":[30630],"TWO":[30633],"ZERO":[30649],"abs":[27763],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"diviWad":[27813],"muli":[27777],"muliWad":[27795]},"nodeType":"SourceUnit","src":"45:1370:31","nodes":[{"id":30625,"nodeType":"PragmaDirective","src":"45:24:31","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":30626,"nodeType":"ImportDirective","src":"71:30:31","nodes":[],"absolutePath":"lib/solstat/src/Gaussian.sol","file":"solstat/Gaussian.sol","nameLocation":"-1:-1:-1","scope":30776,"sourceUnit":27375,"symbolAliases":[],"unitAlias":""},{"id":30630,"nodeType":"VariableDeclaration","src":"261:31:31","nodes":[],"constant":true,"mutability":"constant","name":"SQRT_WAD","nameLocation":"278:8:31","scope":30776,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30628,"name":"uint256","nodeType":"ElementaryTypeName","src":"261:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"316539","id":30629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"289:3:31","typeDescriptions":{"typeIdentifier":"t_rational_1000000000_by_1","typeString":"int_const 1000000000"},"value":"1e9"},"visibility":"internal"},{"id":30633,"nodeType":"VariableDeclaration","src":"294:27:31","nodes":[],"constant":true,"mutability":"constant","name":"TWO","nameLocation":"311:3:31","scope":30776,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30631,"name":"uint256","nodeType":"ElementaryTypeName","src":"294:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32653138","id":30632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"317:4:31","typeDescriptions":{"typeIdentifier":"t_rational_2000000000000000000_by_1","typeString":"int_const 2000000000000000000"},"value":"2e18"},"visibility":"internal"},{"id":30636,"nodeType":"VariableDeclaration","src":"323:30:31","nodes":[],"constant":true,"mutability":"constant","name":"HALF","nameLocation":"340:4:31","scope":30776,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30634,"name":"uint256","nodeType":"ElementaryTypeName","src":"323:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"302e35653138","id":30635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"347:6:31","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"value":"0.5e18"},"visibility":"internal"},{"id":30639,"nodeType":"VariableDeclaration","src":"355:27:31","nodes":[],"constant":true,"mutability":"constant","name":"ONE","nameLocation":"372:3:31","scope":30776,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30637,"name":"uint256","nodeType":"ElementaryTypeName","src":"355:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31653138","id":30638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"378:4:31","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"visibility":"internal"},{"id":30646,"nodeType":"VariableDeclaration","src":"384:57:31","nodes":[],"constant":true,"mutability":"constant","name":"INFINITY_IS_NOT_REAL","nameLocation":"401:20:31","scope":30776,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30640,"name":"uint256","nodeType":"ElementaryTypeName","src":"384:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"expression":{"arguments":[{"id":30643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"429:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":30642,"name":"uint256","nodeType":"ElementaryTypeName","src":"429:7:31","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":30641,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"424:4:31","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":30644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"424:13:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":30645,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"438:3:31","memberName":"max","nodeType":"MemberAccess","src":"424:17:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":30649,"nodeType":"VariableDeclaration","src":"443:25:31","nodes":[],"constant":true,"mutability":"constant","name":"ZERO","nameLocation":"460:4:31","scope":30776,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30647,"name":"uint256","nodeType":"ElementaryTypeName","src":"443:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":30648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"467:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"internal"},{"id":30655,"nodeType":"VariableDeclaration","src":"470:35:31","nodes":[],"constant":true,"mutability":"constant","name":"I_ONE","nameLocation":"486:5:31","scope":30776,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30650,"name":"int256","nodeType":"ElementaryTypeName","src":"470:6:31","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"arguments":[{"id":30653,"name":"ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30639,"src":"501:3:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"494:6:31","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":30651,"name":"int256","nodeType":"ElementaryTypeName","src":"494:6:31","typeDescriptions":{}}},"id":30654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"494:11:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"id":30661,"nodeType":"VariableDeclaration","src":"507:35:31","nodes":[],"constant":true,"mutability":"constant","name":"I_TWO","nameLocation":"523:5:31","scope":30776,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30656,"name":"int256","nodeType":"ElementaryTypeName","src":"507:6:31","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"arguments":[{"id":30659,"name":"TWO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30633,"src":"538:3:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":30658,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"531:6:31","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":30657,"name":"int256","nodeType":"ElementaryTypeName","src":"531:6:31","typeDescriptions":{}}},"id":30660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"531:11:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"id":30665,"nodeType":"VariableDeclaration","src":"627:28:31","nodes":[],"constant":true,"mutability":"constant","name":"EPSILON","nameLocation":"643:7:31","scope":30776,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":30663,"name":"int256","nodeType":"ElementaryTypeName","src":"627:6:31","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"hexValue":"3230","id":30664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"653:2:31","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"internal"},{"id":30668,"nodeType":"UsingForDirective","src":"658:36:31","nodes":[],"global":false,"libraryName":{"id":30666,"name":"FixedPointMathLib","nameLocations":["664:17:31"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"664:17:31"},"typeName":{"id":30667,"name":"uint256","nodeType":"ElementaryTypeName","src":"686:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":30671,"nodeType":"UsingForDirective","src":"695:35:31","nodes":[],"global":false,"libraryName":{"id":30669,"name":"FixedPointMathLib","nameLocations":["701:17:31"],"nodeType":"IdentifierPath","referencedDeclaration":26640,"src":"701:17:31"},"typeName":{"id":30670,"name":"int256","nodeType":"ElementaryTypeName","src":"723:6:31","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":30723,"nodeType":"FunctionDefinition","src":"732:340:31","nodes":[],"body":{"id":30722,"nodeType":"Block","src":"878:194:31","nodes":[],"statements":[{"assignments":[30687],"declarations":[{"constant":false,"id":30687,"mutability":"mutable","name":"liquidityPerRx","nameLocation":"892:14:31","nodeType":"VariableDeclaration","scope":30722,"src":"884:22:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30686,"name":"uint256","nodeType":"ElementaryTypeName","src":"884:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30692,"initialValue":{"arguments":[{"id":30690,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30677,"src":"920:2:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30688,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30679,"src":"909:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"911:8:31","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"909:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":30691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"909:14:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"884:39:31"},{"assignments":[30694],"declarations":[{"constant":false,"id":30694,"mutability":"mutable","name":"deltaL","nameLocation":"937:6:31","nodeType":"VariableDeclaration","scope":30722,"src":"929:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30693,"name":"uint256","nodeType":"ElementaryTypeName","src":"929:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30699,"initialValue":{"arguments":[{"id":30697,"name":"liquidityPerRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30687,"src":"963:14:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30695,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30675,"src":"946:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"954:8:31","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"946:16:31","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":30698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"946:32:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"929:49:31"},{"expression":{"id":30709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30700,"name":"nextRx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30682,"src":"984:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"id":30701,"name":"add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30673,"src":"993:3:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30705,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30677,"src":"1014:2:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":30706,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30675,"src":"1019:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1014:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"993:33:31","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30702,"name":"rx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30677,"src":"999:2:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":30703,"name":"amountX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30675,"src":"1004:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"999:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"984:42:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30710,"nodeType":"ExpressionStatement","src":"984:42:31"},{"expression":{"id":30720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30711,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30684,"src":"1032:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"id":30712,"name":"add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30673,"src":"1040:3:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30716,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30679,"src":"1059:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":30717,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30694,"src":"1063:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1059:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1040:29:31","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30713,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30679,"src":"1046:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":30714,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30694,"src":"1050:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1046:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1032:37:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30721,"nodeType":"ExpressionStatement","src":"1032:37:31"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeAllocationGivenX","nameLocation":"741:23:31","parameters":{"id":30680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30673,"mutability":"mutable","name":"add","nameLocation":"775:3:31","nodeType":"VariableDeclaration","scope":30723,"src":"770:8:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30672,"name":"bool","nodeType":"ElementaryTypeName","src":"770:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30675,"mutability":"mutable","name":"amountX","nameLocation":"792:7:31","nodeType":"VariableDeclaration","scope":30723,"src":"784:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30674,"name":"uint256","nodeType":"ElementaryTypeName","src":"784:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30677,"mutability":"mutable","name":"rx","nameLocation":"813:2:31","nodeType":"VariableDeclaration","scope":30723,"src":"805:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30676,"name":"uint256","nodeType":"ElementaryTypeName","src":"805:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30679,"mutability":"mutable","name":"L","nameLocation":"829:1:31","nodeType":"VariableDeclaration","scope":30723,"src":"821:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30678,"name":"uint256","nodeType":"ElementaryTypeName","src":"821:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"764:68:31"},"returnParameters":{"id":30685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30682,"mutability":"mutable","name":"nextRx","nameLocation":"855:6:31","nodeType":"VariableDeclaration","scope":30723,"src":"847:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30681,"name":"uint256","nodeType":"ElementaryTypeName","src":"847:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30684,"mutability":"mutable","name":"nextL","nameLocation":"871:5:31","nodeType":"VariableDeclaration","scope":30723,"src":"863:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30683,"name":"uint256","nodeType":"ElementaryTypeName","src":"863:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"846:31:31"},"scope":30776,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30775,"nodeType":"FunctionDefinition","src":"1074:340:31","nodes":[],"body":{"id":30774,"nodeType":"Block","src":"1220:194:31","nodes":[],"statements":[{"assignments":[30739],"declarations":[{"constant":false,"id":30739,"mutability":"mutable","name":"liquidityPerRy","nameLocation":"1234:14:31","nodeType":"VariableDeclaration","scope":30774,"src":"1226:22:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30738,"name":"uint256","nodeType":"ElementaryTypeName","src":"1226:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30744,"initialValue":{"arguments":[{"id":30742,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30729,"src":"1262:2:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30740,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30731,"src":"1251:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1253:8:31","memberName":"divWadUp","nodeType":"MemberAccess","referencedDeclaration":26097,"src":"1251:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":30743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1251:14:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1226:39:31"},{"assignments":[30746],"declarations":[{"constant":false,"id":30746,"mutability":"mutable","name":"deltaL","nameLocation":"1279:6:31","nodeType":"VariableDeclaration","scope":30774,"src":"1271:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30745,"name":"uint256","nodeType":"ElementaryTypeName","src":"1271:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":30751,"initialValue":{"arguments":[{"id":30749,"name":"liquidityPerRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30739,"src":"1305:14:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30747,"name":"amountY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30727,"src":"1288:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1296:8:31","memberName":"mulWadUp","nodeType":"MemberAccess","referencedDeclaration":26065,"src":"1288:16:31","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":30750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1288:32:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1271:49:31"},{"expression":{"id":30761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30752,"name":"nextRy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30734,"src":"1326:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"id":30753,"name":"add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30725,"src":"1335:3:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30757,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30729,"src":"1356:2:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":30758,"name":"amountY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30727,"src":"1361:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1356:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1335:33:31","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30754,"name":"ry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30729,"src":"1341:2:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":30755,"name":"amountY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30727,"src":"1346:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1341:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1326:42:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30762,"nodeType":"ExpressionStatement","src":"1326:42:31"},{"expression":{"id":30772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":30763,"name":"nextL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30736,"src":"1374:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"id":30764,"name":"add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30725,"src":"1382:3:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30768,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30731,"src":"1401:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":30769,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30746,"src":"1405:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1401:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1382:29:31","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":30767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30765,"name":"L","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30731,"src":"1388:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":30766,"name":"deltaL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30746,"src":"1392:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1388:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1374:37:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":30773,"nodeType":"ExpressionStatement","src":"1374:37:31"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"computeAllocationGivenY","nameLocation":"1083:23:31","parameters":{"id":30732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30725,"mutability":"mutable","name":"add","nameLocation":"1117:3:31","nodeType":"VariableDeclaration","scope":30775,"src":"1112:8:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30724,"name":"bool","nodeType":"ElementaryTypeName","src":"1112:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30727,"mutability":"mutable","name":"amountY","nameLocation":"1134:7:31","nodeType":"VariableDeclaration","scope":30775,"src":"1126:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30726,"name":"uint256","nodeType":"ElementaryTypeName","src":"1126:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30729,"mutability":"mutable","name":"ry","nameLocation":"1155:2:31","nodeType":"VariableDeclaration","scope":30775,"src":"1147:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30728,"name":"uint256","nodeType":"ElementaryTypeName","src":"1147:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30731,"mutability":"mutable","name":"L","nameLocation":"1171:1:31","nodeType":"VariableDeclaration","scope":30775,"src":"1163:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30730,"name":"uint256","nodeType":"ElementaryTypeName","src":"1163:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1106:68:31"},"returnParameters":{"id":30737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30734,"mutability":"mutable","name":"nextRy","nameLocation":"1197:6:31","nodeType":"VariableDeclaration","scope":30775,"src":"1189:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30733,"name":"uint256","nodeType":"ElementaryTypeName","src":"1189:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30736,"mutability":"mutable","name":"nextL","nameLocation":"1213:5:31","nodeType":"VariableDeclaration","scope":30775,"src":"1205:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30735,"name":"uint256","nodeType":"ElementaryTypeName","src":"1205:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1188:31:31"},"scope":30776,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"license":"GPL-3.0-or-later"},"id":31} \ No newline at end of file diff --git a/out/Swap.t.sol/DFMMSwapTest.json b/out/Swap.t.sol/DFMMSwapTest.json deleted file mode 100644 index d76302fd..00000000 --- a/out/Swap.t.sol/DFMMSwapTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"POOL_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TEST_SWAP_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolLiquidityToken","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523461002357600160ff19600054161760005561533d90816100298239f35b600080fdfe60806040818152600491823610156200001757600080fd5b60009260e08435811c9283630a9254e4146200024c57508263620a26071462000227578263ba414fa614620001fc578263e0d7d0e914620001da578263e21485ad146200009657505063fa7626d4146200007057600080fd5b34620000925781600319360112620000925760ff602092541690519015158152f35b5080fd5b90915034620001d6576020366003190112620001d657601354835163068bcd8d60e01b81528335818501526001600160a01b0393909183908390602490829088165afa958615620001cb578096620000fa575b6020868660c08a0151169051908152f35b90919280965083813d8311620001c3575b62000117818362000677565b81010312620001c0575083519485019085821067ffffffffffffffff831117620001ab5750936200019e60c08093602097875262000155816200081a565b8452620001648882016200081a565b88850152620001758782016200081a565b87850152606081015160608501526080810151608085015260a081015160a0850152016200081a565b82820152933880620000e9565b604190634e487b7160e01b6000525260246000fd5b80fd5b503d6200010b565b8551903d90823e3d90fd5b8380fd5b5050503462000092578160031936011262000092576020906018549051908152f35b5050503462000092578160031936011262000092576020906200021e620006b9565b90519015158152f35b50505034620000925781600319360112620000925760209051660aa87bee5380008152f35b84869334620006485784600319360112620006485761106b8084019067ffffffffffffffff908583108284111762000635576200083095818782396060845260066060850152650e8ded6cadcb60d31b6080850152878160209560a087820152600160a0820152600b60fb1b60c082015260128982015203019089f0968715620005ac5760018060a01b0396876bffffffffffffffffffffffff60a01b991689601554161760155586519280840191848310868411176200062257908492918339606081526006606082015265746f6b656e5960d01b608082015260a086820152600160a0820152605960f81b60c082015260128882015203019088f0801562000618578516866016541617601655846015541692833b15620005f25784516340c10f1960e01b808252308383015268056bc75e2d63100000918a816044818360249b888d8401525af18015620005a25762000600575b50908991886016541691823b15620001d65760448492838b5195869485938452308a8501528c8401525af18015620005f657620005da575b50508560155416866016541690865191610597918284019284841087851117620005c85791606093918593620047bc8539825287820152670de0b6b3a76400008982015203019089f08015620005ac5786168760145416176014558451612f218082019082821085831117620005b657859183916200189b83398b815203019089f08015620005ac5786166013548189821617601355898589601554169360448a5184819593829463095ea7b360e01b9889855216178983015260001997888d8401525af18015620005a2579086929162000580575b5060448960165416918c8b60135416938b5196879586948552898501528b8401525af18015620005765762000542575b508560135416908551946105b5918287019487861090861117620005315750509084929162004d538439815203019085f09081156200052857501690601754161760175580f35b513d85823e3d90fd5b634e487b7160e01b8b526041905289fd5b6200056690843d86116200056e575b6200055d818362000677565b8101906200069a565b5088620004e1565b503d62000551565b86513d8b823e3d90fd5b6200059a90833d85116200056e576200055d818362000677565b508b620004b1565b88513d8d823e3d90fd5b85513d8a823e3d90fd5b634e487b7160e01b8b5260418452868bfd5b634e487b7160e01b8d5260418652888dfd5b620005e5906200064c565b620005f2578789620003db565b8780fd5b87513d84823e3d90fd5b6200060f909a91929a6200064c565b98908a620003a3565b84513d89823e3d90fd5b634e487b7160e01b8c526041885260248cfd5b634e487b7160e01b885260418452602488fd5b8480fd5b67ffffffffffffffff81116200066157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176200066157604052565b90816020910312620006b457518015158103620006b45790565b600080fd5b6000805460081c60ff1615620006d3575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620006f557505090565b90915060405160209180838301526519985a5b195960d21b604083015260408252606082019167ffffffffffffffff9281811084821117620008065791828692936040526080840190630667f9d760e41b8252845187855b828110620007ed575050906200077a60248787989488950185608482015203600481018452018262000677565b51925af1503d15620007dd573d908111620007c957604051620007c6939291620007ae601f8201601f191684018362000677565b81528092823d92013e5b80825183010191016200069a565b90565b634e487b7160e01b83526041600452602483fd5b50620007c69150606090620007b8565b808801808301516084909101528a96508991016200074d565b634e487b7160e01b86526041600452602486fd5b51906001600160a01b0382168203620006b45756fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c6343000816003360a03461006957601f6105b538819003918201601f19168301916001600160401b0383118484101761006e5780849260209460405283398101031261006957516001600160a01b038116810361006957608052604051610530908161008582396080518160ef0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600436101561001457600080fd5b600091823560e01c9081622e524b146103f95750806306fdde031461035657806368bd3e381461031d57806373cb2d031461024e5780638a04bdd514610137578063acad29891461011e578063afba13c4146100db5763dc1783551461007957600080fd5b346100d7576020806003193601126100d3579181519283916020835260605191826020850152815b8381106100be575050828201840152601f01601f19168101030190f35b608081015187820187015286945081016100a1565b8280fd5b5080fd5b50346100d757816003193601126100d757517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b82346101345761012d36610493565b5050505080f35b80fd5b5090346101345761014736610493565b849350839250829182918290602090830183900312610134575035600181036101c45750505050505060016101c0670de0b6b3a7640000926802b5e3af16b188000080674563918244f40000925b51958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b0390f35b600981036102055750505050505060016101c0670de0b6b3a76400009268056bc75e2d6310000068068155a43676e0000090678ac7230489e8000092610195565b600814610218575b6101c0939495610195565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d63100000905068068155a43676e0000061020d565b5090346101345761025e36610493565b849350839250829182918290602090830183900312610134575035600181146102e8575b6002146102bb575b6101c093949551958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d6310000090508061028a565b670de0b6b3a7640000955060019450673782dace9d90000093506729a2241af62c00009250671bc16d674ec800009150610282565b50346100d75760c09161032f36610493565b505050508082519281845281602085015283015280606083015280608083015260a0820152f35b50346100d757816003193601126100d757805181810181811067ffffffffffffffff8211176103e5578252600c81526020906b4d6f636b537472617465677960a01b6020820152825193849260208452825192836020860152825b8481106103cf57505050828201840152601f01601f19168101030190f35b81810183015188820188015287955082016103b1565b634e487b7160e01b84526041600452602484fd5b8383346100d757806003193601126100d75767ffffffffffffffff9260243584811161047b573660238201121561047b5780600401359480861161047f57601f8601601f19908116603f011683019081118382101761047f578352848252366024868301011161047b5784849260209660248894018483013701015251908152f35b8380fd5b634e487b7160e01b85526041600452602485fd5b9060606003198301126104f5576004356001600160a01b03811681036104f557916024359160443567ffffffffffffffff928382116104f557806023830112156104f55781600401359384116104f557602484830101116104f5576024019190565b600080fdfea264697066735822122009a636832ec6847884e761e11e93e4c99c16c8767042c516d6f7d4bb27fb9bb064736f6c63430008160033a2646970667358221220da6f72071092b08099b7abcd7d15aa79923adf6576ec6395c75c538e78322e9564736f6c63430008160033","sourceMap":"88:38:65:-:0;;;;;;;1594:4:0;88:38:65;;1594:4:0;88:38:65;;;1594:4:0;88:38:65;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600491823610156200001757600080fd5b60009260e08435811c9283630a9254e4146200024c57508263620a26071462000227578263ba414fa614620001fc578263e0d7d0e914620001da578263e21485ad146200009657505063fa7626d4146200007057600080fd5b34620000925781600319360112620000925760ff602092541690519015158152f35b5080fd5b90915034620001d6576020366003190112620001d657601354835163068bcd8d60e01b81528335818501526001600160a01b0393909183908390602490829088165afa958615620001cb578096620000fa575b6020868660c08a0151169051908152f35b90919280965083813d8311620001c3575b62000117818362000677565b81010312620001c0575083519485019085821067ffffffffffffffff831117620001ab5750936200019e60c08093602097875262000155816200081a565b8452620001648882016200081a565b88850152620001758782016200081a565b87850152606081015160608501526080810151608085015260a081015160a0850152016200081a565b82820152933880620000e9565b604190634e487b7160e01b6000525260246000fd5b80fd5b503d6200010b565b8551903d90823e3d90fd5b8380fd5b5050503462000092578160031936011262000092576020906018549051908152f35b5050503462000092578160031936011262000092576020906200021e620006b9565b90519015158152f35b50505034620000925781600319360112620000925760209051660aa87bee5380008152f35b84869334620006485784600319360112620006485761106b8084019067ffffffffffffffff908583108284111762000635576200083095818782396060845260066060850152650e8ded6cadcb60d31b6080850152878160209560a087820152600160a0820152600b60fb1b60c082015260128982015203019089f0968715620005ac5760018060a01b0396876bffffffffffffffffffffffff60a01b991689601554161760155586519280840191848310868411176200062257908492918339606081526006606082015265746f6b656e5960d01b608082015260a086820152600160a0820152605960f81b60c082015260128882015203019088f0801562000618578516866016541617601655846015541692833b15620005f25784516340c10f1960e01b808252308383015268056bc75e2d63100000918a816044818360249b888d8401525af18015620005a25762000600575b50908991886016541691823b15620001d65760448492838b5195869485938452308a8501528c8401525af18015620005f657620005da575b50508560155416866016541690865191610597918284019284841087851117620005c85791606093918593620047bc8539825287820152670de0b6b3a76400008982015203019089f08015620005ac5786168760145416176014558451612f218082019082821085831117620005b657859183916200189b83398b815203019089f08015620005ac5786166013548189821617601355898589601554169360448a5184819593829463095ea7b360e01b9889855216178983015260001997888d8401525af18015620005a2579086929162000580575b5060448960165416918c8b60135416938b5196879586948552898501528b8401525af18015620005765762000542575b508560135416908551946105b5918287019487861090861117620005315750509084929162004d538439815203019085f09081156200052857501690601754161760175580f35b513d85823e3d90fd5b634e487b7160e01b8b526041905289fd5b6200056690843d86116200056e575b6200055d818362000677565b8101906200069a565b5088620004e1565b503d62000551565b86513d8b823e3d90fd5b6200059a90833d85116200056e576200055d818362000677565b508b620004b1565b88513d8d823e3d90fd5b85513d8a823e3d90fd5b634e487b7160e01b8b5260418452868bfd5b634e487b7160e01b8d5260418652888dfd5b620005e5906200064c565b620005f2578789620003db565b8780fd5b87513d84823e3d90fd5b6200060f909a91929a6200064c565b98908a620003a3565b84513d89823e3d90fd5b634e487b7160e01b8c526041885260248cfd5b634e487b7160e01b885260418452602488fd5b8480fd5b67ffffffffffffffff81116200066157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176200066157604052565b90816020910312620006b457518015158103620006b45790565b600080fd5b6000805460081c60ff1615620006d3575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620006f557505090565b90915060405160209180838301526519985a5b195960d21b604083015260408252606082019167ffffffffffffffff9281811084821117620008065791828692936040526080840190630667f9d760e41b8252845187855b828110620007ed575050906200077a60248787989488950185608482015203600481018452018262000677565b51925af1503d15620007dd573d908111620007c957604051620007c6939291620007ae601f8201601f191684018362000677565b81528092823d92013e5b80825183010191016200069a565b90565b634e487b7160e01b83526041600452602483fd5b50620007c69150606090620007b8565b808801808301516084909101528a96508991016200074d565b634e487b7160e01b86526041600452602486fd5b51906001600160a01b0382168203620006b45756fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c6343000816003360a03461006957601f6105b538819003918201601f19168301916001600160401b0383118484101761006e5780849260209460405283398101031261006957516001600160a01b038116810361006957608052604051610530908161008582396080518160ef0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040818152600436101561001457600080fd5b600091823560e01c9081622e524b146103f95750806306fdde031461035657806368bd3e381461031d57806373cb2d031461024e5780638a04bdd514610137578063acad29891461011e578063afba13c4146100db5763dc1783551461007957600080fd5b346100d7576020806003193601126100d3579181519283916020835260605191826020850152815b8381106100be575050828201840152601f01601f19168101030190f35b608081015187820187015286945081016100a1565b8280fd5b5080fd5b50346100d757816003193601126100d757517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b82346101345761012d36610493565b5050505080f35b80fd5b5090346101345761014736610493565b849350839250829182918290602090830183900312610134575035600181036101c45750505050505060016101c0670de0b6b3a7640000926802b5e3af16b188000080674563918244f40000925b51958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b0390f35b600981036102055750505050505060016101c0670de0b6b3a76400009268056bc75e2d6310000068068155a43676e0000090678ac7230489e8000092610195565b600814610218575b6101c0939495610195565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d63100000905068068155a43676e0000061020d565b5090346101345761025e36610493565b849350839250829182918290602090830183900312610134575035600181146102e8575b6002146102bb575b6101c093949551958695869192608093969594919660a0840197151584526020840152604083015260608201520152565b50670de0b6b3a7640000935060019250678ac7230489e80000915068056bc75e2d6310000090508061028a565b670de0b6b3a7640000955060019450673782dace9d90000093506729a2241af62c00009250671bc16d674ec800009150610282565b50346100d75760c09161032f36610493565b505050508082519281845281602085015283015280606083015280608083015260a0820152f35b50346100d757816003193601126100d757805181810181811067ffffffffffffffff8211176103e5578252600c81526020906b4d6f636b537472617465677960a01b6020820152825193849260208452825192836020860152825b8481106103cf57505050828201840152601f01601f19168101030190f35b81810183015188820188015287955082016103b1565b634e487b7160e01b84526041600452602484fd5b8383346100d757806003193601126100d75767ffffffffffffffff9260243584811161047b573660238201121561047b5780600401359480861161047f57601f8601601f19908116603f011683019081118382101761047f578352848252366024868301011161047b5784849260209660248894018483013701015251908152f35b8380fd5b634e487b7160e01b85526041600452602485fd5b9060606003198301126104f5576004356001600160a01b03811681036104f557916024359160443567ffffffffffffffff928382116104f557806023830112156104f55781600401359384116104f557602484830101116104f5576024019190565b600080fdfea264697066735822122009a636832ec6847884e761e11e93e4c99c16c8767042c516d6f7d4bb27fb9bb064736f6c63430008160033a2646970667358221220da6f72071092b08099b7abcd7d15aa79923adf6576ec6395c75c538e78322e9564736f6c63430008160033","sourceMap":"88:38:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;88:38:65;;;;992:4:59;88:38:65;;;-1:-1:-1;;;992:20:59;;88:38:65;;992:20:59;;;88:38:65;-1:-1:-1;;;;;88:38:65;;;;;;;;;;;;;992:20:59;;;;;;;;;;;88:38:65;;1029:19:59;;;;;88:38:65;;;;;;;;992:20:59;;;;;;;;;;;;;;;;;;;:::i;:::-;;;88:38:65;;;;;;;1671:64:0;;;;;;;;;;;;;;;88:38:65;;1671:64:0;;88:38:65;1671:64:0;;;88:38:65;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;992:20:59;;;;;1671:64:0;88:38:65;;;;;;;;;;;;;;992:20:59;;;;;;88:38:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;208:22:64;88:38:65;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;88:38:65;;;;;;;;;;;;;;;;;;447:32:59;;;;;;;;;;;;;;;;;;;;;;88:38:65;;;;;;;;-1:-1:-1;;;88:38:65;;;;;;;;;;;;;;;;;;-1:-1:-1;;;88:38:65;;;;476:2:59;88:38:65;;;;447:32:59;;;;;;;;;;;88:38:65;;;;;;;;;;;;438:41:59;88:38:65;;;438:41:59;88:38:65;;;498:32:59;;;;;;;;;;;;;;;;;;;;88:38:65;;;;;;;;-1:-1:-1;;;88:38:65;;;;;;;;;;;;;;-1:-1:-1;;;88:38:65;;;;476:2:59;88:38:65;;;;498:32:59;;;;;;;;;88:38:65;;;489:41:59;88:38:65;;;489:41:59;88:38:65;;438:41:59;88:38:65;;540:34:59;;;;;;88:38:65;;;;;540:34:59;;;560:4;540:34;;;88:38:65;567:6:59;88:38:65;;;;;;;;;;;;;540:34:59;;;;;;;;88:38:65;;;;;;489:41:59;88:38:65;;584:34:59;;;;;;88:38:65;;;;;;584:34:59;;;;;;;560:4;584:34;;;88:38:65;;;;;584:34:59;;;;;;;;88:38:65;;;;438:41:59;88:38:65;;;489:41:59;88:38:65;;;;;635:50:59;;;;;;;;;;;;;;;;;88:38:65;635:50:59;;;;;;;88:38:65;;;;;;677:7:59;88:38:65;;;;635:50:59;;;;;;;;;88:38:65;;;629:56:59;88:38:65;;;629:56:59;88:38:65;;;702:20:59;;;;;;;;;;;;;;;;;;;;;88:38:65;;;702:20:59;;;;;;;;;88:38:65;;695:27:59;88:38:65;;;;;;695:27:59;88:38:65;;;;438:41:59;88:38:65;;;;;;;;;;;;;;;733:48:59;;;;88:38:65;;733:48:59;;;88:38:65;763:17:59;;88:38:65;;;;;;733:48:59;;;;;;;;;;;;88:38:65;;;;489:41:59;88:38:65;;;;;695:27:59;88:38:65;;;;;791:48:59;;;;;;;;;;88:38:65;;;;;791:48:59;;;;;;;;88:38:65;;;695:27:59;88:38:65;;;;;314:31:64;;;;;;;;;;;;;;;;;;;;;;;;;88:38:65;;314:31:64;;;;;;;;;;88:38:65;;;303:42:64;88:38:65;;;303:42:64;88:38:65;;;314:31:64;88:38:65;;;;;;;;314:31:64;-1:-1:-1;;;88:38:65;;;;;;;791:48:59;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;88:38:65;;;;;;;;;733:48:59;;;;;;;;;;;;;:::i;:::-;;;;;;88:38:65;;;;;;;;;702:20:59;88:38:65;;;;;;;;;702:20:59;-1:-1:-1;;;88:38:65;;;;;;;;635:50:59;-1:-1:-1;;;88:38:65;;;;;;;;584:34:59;;;;:::i;:::-;88:38:65;;584:34:59;;;;88:38:65;;;;584:34:59;88:38:65;;;;;;;;;540:34:59;;;;;;;;:::i;:::-;;;;;;498:32;88:38:65;;;;;;;;;498:32:59;-1:-1:-1;;;88:38:65;;;;;;;;447:32:59;-1:-1:-1;;;88:38:65;;;;;;;;;;;;1671:64:0;;;;;;;;:::o;:::-;88:38:65;;;1671:64:0;88:38:65;;;;;1671:64:0;88:38:65;1671:64:0;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;88:38:65;;;1671:64:0;;;;;:::o;:::-;-1:-1:-1;1671:64:0;;1819:584;1873:7;88:38:65;;;;;;;;;;;;;;;1896:14:0:o;1869:528::-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;88:38:65;;;;;2196:43:0;;;;;;88:38:65;1671:64:0;;;88:38:65;1671:64:0;;88:38:65;;2196:43:0;;88:38:65;1671:64:0;;;;;;;;;;;;;;;;;;;88:38:65;1671:64:0;2086:175;;;1671:64;;;;;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;;;;;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:0;;;;;;;;;;88:38:65;;2312:27:0;;88:38:65;;1671:64:0;;;;-1:-1:-1;;1671:64:0;;;88:38:65;1671:64:0;:::i;:::-;;;;;;;;;;;;;;2312:27;;;;;;:::i;:::-;2367:19;:::o;1671:64::-;-1:-1:-1;;;88:38:65;;;2086:175:0;88:38:65;1671:64:0;88:38:65;;1671:64:0;;2312:27;1671:64;;88:38:65;1671:64:0;;;;;;;;;;;;;;;;;;-1:-1:-1;1671:64:0;;;;;;-1:-1:-1;;;88:38:65;;;;;;;;;;;-1:-1:-1;;;;;88:38:65;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","POOL_ID()":"e0d7d0e9","TEST_SWAP_FEE()":"620a2607","failed()":"ba414fa6","getPoolLiquidityToken(uint256)":"e21485ad","setUp()":"0a9254e4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POOL_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_SWAP_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolLiquidityToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/unit/DFMM/Swap.t.sol\":\"DFMMSwapTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]},\"src/test/helpers/MockStrategy.sol\":{\"keccak256\":\"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5\",\"dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw\"]},\"src/test/helpers/SetUp.sol\":{\"keccak256\":\"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30\",\"dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14\"]},\"src/test/unit/DFMM/SetUp.sol\":{\"keccak256\":\"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4\",\"dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm\"]},\"src/test/unit/DFMM/Swap.t.sol\":{\"keccak256\":\"0x53c71213f010cce6d751f724ead2f792e42f177ccd41cf633f6aaac3be02657d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://249d287d136292ea19ef569020ee2bdbe588e6b2ba752d12033d281cc837787e\",\"dweb:/ipfs/QmRB9jiL9uB5E7b3qaNWgS6JmhZWRLus9wod8MH3KTpmTn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"POOL_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_SWAP_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolLiquidityToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/unit/DFMM/Swap.t.sol":"DFMMSwapTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"},"src/test/helpers/MockStrategy.sol":{"keccak256":"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a","urls":["bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5","dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw"],"license":"UNLICENSED"},"src/test/helpers/SetUp.sol":{"keccak256":"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb","urls":["bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30","dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14"],"license":"UNLICENSED"},"src/test/unit/DFMM/SetUp.sol":{"keccak256":"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a","urls":["bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4","dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm"],"license":"UNLICENSED"},"src/test/unit/DFMM/Swap.t.sol":{"keccak256":"0x53c71213f010cce6d751f724ead2f792e42f177ccd41cf633f6aaac3be02657d","urls":["bzz-raw://249d287d136292ea19ef569020ee2bdbe588e6b2ba752d12033d281cc837787e","dweb:/ipfs/QmRB9jiL9uB5E7b3qaNWgS6JmhZWRLus9wod8MH3KTpmTn"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/unit/DFMM/Swap.t.sol","id":45768,"exportedSymbols":{"ArbiterToken":[43381],"DFMM":[29062],"DFMMSetUp":[45761],"DFMMSwapTest":[45767],"DSTest":[1786],"ERC20":[25948],"FixedPointMathLib":[26640],"IDFMM":[29730],"IStrategy":[29839],"LPToken":[29516],"Lex":[44392],"LibString":[26659],"Min":[27736],"MockERC20":[25560],"MockStrategy":[44649],"SafeTransferLib":[26744],"SetUp":[44852],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"Test":[8195],"TestBase":[1843],"Vm":[9352],"WETH":[26027],"abs":[27763],"computeScalingFactor":[30048],"console":[17416],"console2":[25512],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"muli":[27777],"muliWad":[27795],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"39:88:65","nodes":[{"id":45763,"nodeType":"PragmaDirective","src":"39:24:65","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":45764,"nodeType":"ImportDirective","src":"65:21:65","nodes":[],"absolutePath":"src/test/unit/DFMM/SetUp.sol","file":"./SetUp.sol","nameLocation":"-1:-1:-1","scope":45768,"sourceUnit":45762,"symbolAliases":[],"unitAlias":""},{"id":45767,"nodeType":"ContractDefinition","src":"88:38:65","nodes":[],"abstract":false,"baseContracts":[{"baseName":{"id":45765,"name":"DFMMSetUp","nameLocations":["113:9:65"],"nodeType":"IdentifierPath","referencedDeclaration":45761,"src":"113:9:65"},"id":45766,"nodeType":"InheritanceSpecifier","src":"113:9:65"}],"canonicalName":"DFMMSwapTest","contractDependencies":[25560,29062,44392,44649],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[45767,45761,44852,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"DFMMSwapTest","nameLocation":"97:12:65","scope":45768,"usedErrors":[],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":65} \ No newline at end of file diff --git a/out/Swap.t.sol/G3MSwapTest.json b/out/Swap.t.sol/G3MSwapTest.json deleted file mode 100644 index 3c97294f..00000000 --- a/out/Swap.t.sol/G3MSwapTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"POOL_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TEST_SWAP_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolLiquidityToken","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_G3M_swap_SwapsXforY","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_G3M_swap_SwapsYforX","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"BisectionLib_InvalidBounds","inputs":[{"name":"lower","type":"uint256","internalType":"uint256"},{"name":"upper","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BisectionLib_RootOutsideBounds","inputs":[{"name":"lowerResult","type":"int256","internalType":"int256"},{"name":"upperResult","type":"int256","internalType":"int256"}]}],"bytecode":{"object":"0x34620000ae57600160ff1960005416176000556101006040526706f05b59d3b20000806080528060a052660aa87bee538000908160c0523060e05280601a55601b55601c553060018060a01b0319601d541617601d5562000067670de0b6b3a7640000601e55565b62000079670de0b6b3a7640000601f55565b6200009e62000098601e54601f54620000916200010f565b91620002d3565b620001de565b604051619cd6908162000ba68239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b03821117620000e557604052565b620000b3565b601f909101601f19168101906001600160401b03821190821017620000e557604052565b604051906200011e82620000c9565b601a548252601b546020830152601c546040830152601d546001600160a01b03166060830152565b90600182811c9216801562000178575b60208310146200016257565b634e487b7160e01b600052602260045260246000fd5b91607f169162000156565b601f811162000190575050565b60009060206000526020600020906020601f850160051c83019410620001d3575b601f0160051c01915b828110620001c757505050565b818155600101620001ba565b9092508290620001b1565b80519091906001600160401b038111620000e5576020906200020c8162000206845462000146565b62000183565b81601f8211600114620002505781906200024093949560009262000244575b50508160011b916000199060031b1c19161790565b9055565b0151905038806200022b565b6020600052601f198216907fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb9160005b818110620002bb57509583600195969710620002a1575b505050811b019055565b015160001960f88460031b161c1916905538808062000297565b91928560018192868b01518155019401920162000280565b92916200031d60208201620003166200030d6200030588620002ff855198620002ff8951809b62000731565b62000754565b958862000516565b91518562000516565b90620006d9565b936200032c8286858462000496565b859060008082121562000438575b808212620004155750620003b862000405926200041296979886935b6040805160208082018a90528183018d90526060808301949094528a5160808301528a015160a08201529089015160c08201529701516001600160a01b031660e0808901919091528752601f1996620003b261010082620000eb565b620007b2565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b03908101835282620000eb565b90565b9662000422915062000776565b95620004318488878662000496565b906200033a565b9691965b8082136200045d5750620003b8620004129596976200040593869362000356565b966200046a915062000706565b95620004798488878662000496565b906200043c565b634e487b7160e01b600052601160045260246000fd5b926020620004c784620004c0620004b7620003169697620004d19962000731565b85519062000516565b9562000731565b9101519062000516565b670de0b6b3a763ffff198101908113600116620004eb5790565b62000480565b818102929160008212600160ff1b821416620004eb578184051490151715620004eb57565b620006c562000412927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284620006d3936200055160008213620008f0565b711340daa0d5f769dba1915cef59f0815a55066200056f8262000ac5565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d019160016c0504a838426634cdd8738f543560611b0319916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d620004f1565b670de0b6b3a7640000900590565b62000929565b818102918183041490151760011615620000ae576001670de0b6b3a7640000600019830104019015150290565b6103e990818102918183041490151760011615620000ae5760016103e8600019830104019015150290565b670de0b6b3a76400009081810291818304149015178215151615620000ae570490565b818102918183041490151760011615620000ae57670de0b6b3a7640000900490565b6103e790818102918183041490151760011615620000ae576103e8900490565b91908203918211620004eb57565b91908201809211620004eb57565b60009392918491838211620008d057620007cd828262000b2d565b620007d9858362000b2d565b6000620007e78284620004f1565b13620008b15750620007fc8386979662000796565b60019460009186805b62000817575b50505050505050509050565b1562000887575b50859697985080916200083c620008368b88620007a4565b60011c90565b99620008498b8762000b2d565b9083620008578784620004f1565b136200087a57505089925b876200086f888662000796565b920193999862000805565b8b97509094509262000862565b861080620008a5575b156200089d57886200081e565b80806200080b565b50610100821062000890565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b15620008f857565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131562000abf57680755bf798b4a1bf1e581121562000a8b576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b3989179d835ebba824c98fb31b83b2ca45c0000000000000000000000006060916b8000000000000000000000008582851b0501831d94850290036e0587f503bb6ea29d25fcb740196450816c10fe68e7fd37d0007b713f7650810102841d936e05180bb14799ab47a8a8cb2a527d57836e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028a1d0102881d0102861d0102841d0102821d01946d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b62000ad2811515620008f0565b8060018060801b031060071b81811c60018060401b031060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b8080518101039160e08312620000ae576020820151926080604084015191605f190112620000ae5760e06040519362000b6685620000c9565b6080810151855260a0810151602086015260c081015160408601520151936001600160a01b0385168503620000ae57620004129460608501526200049656fe60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e414620000ac575050806344743bef14620000a6578063620a260714620000a0578063ba414fa6146200009a578063d1724fd61462000094578063e0d7d0e9146200008e578063e21485ad14620000885763fa7626d4146200008257600080fd5b620009c4565b6200088c565b6200086c565b620007ac565b62000783565b6200075f565b620005a5565b346200057557816003193601126200057557620000c862001867565b805161106b8082019067ffffffffffffffff9280831084841117620005515780620000fb62001f57948486843962000ac4565b039086f080156200052957601580546001600160a01b0319166001600160a01b0390921691909117905583519181830183811085821117620005515783926200014692843962000b10565b039084f080156200052957601680546001600160a01b0319166001600160a01b039283161790556015546200018391165b6001600160a01b031690565b803b15620005905782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af18015620005295762000579575b506016548490620001e2906001600160a01b031662000177565b91823b156200057557845190815230600482015268056bc75e2d631000006024820152918290604490829084905af18015620005295762000557575b5060155462000236906001600160a01b031662000177565b6016546200024d906001600160a01b031662000177565b90835191610597908184019284841086851117620005515784936200029a936200970a86396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200052957601480546001600160a01b0319166001600160a01b039092169190911790558151612f21808201908282108483111762000551578291620002f09162002fc284396000815260200190565b039084f080156200052957601380546001600160a01b0319166001600160a01b03929092169182179055620003259062000177565b8251906112cb8083019183831085841117620005515783926200035b926200843f85396001600160a01b03909116815260200190565b039084f080156200052957601780546001600160a01b0319166001600160a01b03929092169182179055620003909062000177565b82519161255c80840192909183118484101762000551578392620003c79262005ee385396001600160a01b03909116815260200190565b039083f09081156200052957620003fe6200046a9260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b60155462000415906001600160a01b031662000177565b6013546200042c906001600160a01b031662000177565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200052957620004e29385936200052f575b506016546200049b906001600160a01b031662000177565b6013549091908790620004b7906001600160a01b031662000177565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200052957620004f6578280f35b816200051a92903d1062000521575b62000511818362000a6b565b81019062000b5e565b5081808280f35b503d62000505565b62000b04565b6200054990843d8611620005215762000511818362000a6b565b508662000483565b620009e9565b80620005676200056e92620009ff565b8062000594565b836200021e565b5080fd5b80620005676200058992620009ff565b84620001c8565b8380fd5b6000910312620005a057565b600080fd5b34620005a0576000806003193601126200075c57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000575576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620005295762000745575b506017548190608090620006e19062000627906001600160a01b031662000177565b6015546200069d9062000643906001600160a01b031662000177565b6016546200068d906200065f906001600160a01b031662000177565b916200067d6200066e62000a8e565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6001600160a01b03166040830152565b620006a762000b78565b6060820152601354620006c3906001600160a01b031662000177565b906040519485809481936305157c7f60e21b83526004830162000ceb565b03925af180156200052957620006ff9183916200070c575b50601955565b6200070962000e47565b80f35b62000733915060803d6080116200073d575b6200072a818362000a6b565b81019062000c7c565b50505038620006f9565b503d6200071e565b80620005676200075592620009ff565b3862000605565b80fd5b34620005a0576000366003190112620005a0576020604051660aa87bee5380008152f35b34620005a0576000366003190112620005a0576020620007a262001420565b6040519015158152f35b34620005a0576000806003193601126200075c57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000575576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620005295762000855575b5060175481906080906200082e9062000627906001600160a01b031662000177565b03925af1801562000529576200084b9183916200070c5750601955565b62000709620014f8565b80620005676200086592620009ff565b386200080c565b34620005a0576000366003190112620005a0576020601954604051908152f35b34620005a0576020366003190112620005a05760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa908115620005295760009162000910575b60c08201516200090c906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e011620009bb575b816200092e60e0938362000a6b565b81010312620005a057620008f260c06200090c92620009ae8260405192620009568462000a14565b620009618162000aaf565b8452620009716020820162000aaf565b6020850152620009846040820162000aaf565b6040850152606081015160608501526080810151608085015260a081015160a08501520162000aaf565b82820152925050620008de565b3d91506200091f565b34620005a0576000366003190112620005a057602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200055157604052565b60e0810190811067ffffffffffffffff8211176200055157604052565b6040810190811067ffffffffffffffff8211176200055157604052565b6080810190811067ffffffffffffffff8211176200055157604052565b90601f8019910116810190811067ffffffffffffffff8211176200055157604052565b604051906080820182811067ffffffffffffffff8211176200055157604052565b51906001600160a01b0382168203620005a057565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b6040513d6000823e3d90fd5b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b51908115158203620005a057565b90816020910312620005a05762000b759062000b50565b90565b6040519060006020906020546001928160011c936001831692831562000c71575b60208610841462000c5d5785885287949360208601939291811562000c3c575060011462000bd5575b50505062000bd39250038362000a6b565b565b92509362000c0560206000527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb90565b946000935b82851062000c255750505062000bd393500138808062000bc2565b865485850152958601958895509381019362000c0a565b9250505062000bd39491925060ff19168252151560051b0138808062000bc2565b634e487b7160e01b85526022600452602485fd5b94607f169462000b99565b9190826080910312620005a0578151916020810151916060604083015192015190565b60005b83811062000cb35750506000910152565b818101518382015260200162000ca2565b9060209162000cdf8151809281855285808601910162000c9f565b601f01601f1916010190565b60a0606062000b759360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062000cc4565b90816020910312620005a0575190565b67ffffffffffffffff81116200055157601f01601f191660200190565b608081830312620005a05762000d718162000b50565b9260208201519260408301519260608101519067ffffffffffffffff8211620005a0570181601f82011215620005a057805162000dae8162000d3e565b9262000dbe604051948562000a6b565b81845260208284010111620005a05762000b75916020808501910162000c9f565b9190826040910312620005a0576020825192015190565b60409062000b7593928152816020820152019062000cc4565b634e487b7160e01b600052601160045260246000fd5b9190820180921162000e3357565b62000e0f565b9190820391821162000e3357565b60155462000e5e906001600160a01b031662000177565b60135462000e75906001600160a01b031662000177565b604080516370a0823160e01b8082526001600160a01b03841660048084019190915260209592949390918686602481875afa958615620005295760009662001396575b5060165462000eff93929190889062000eda906001600160a01b031662000177565b83518381526001600160a01b0390981685890190815290979586918291602090910190565b0381895afa938415620005295760009462001372575b50815181815230848201908152909589918791908290819060200103915afa94851562000529576000956200134e575b50815181815230848201908152909689918891908290819060200103915afa958615620005295760009662001323575b5062000fce93949596600062000f966200017760185460018060a01b031690565b6019548551633928ff9760e01b81528781019182526001602083015267016345785d8a00006040830152978892918391829160600190565b03915afa948515620005295762001030958491600090600092620012f1575b5062000ff99062001c7b565b60135462001010906001600160a01b031662000177565b60195460008451809a8195829463bd0625ab60e01b84528c840162000df6565b03925af19586156200052957600095600097620012b5575b50601554620010a3908b9062001067906001600160a01b031662000177565b6013546200107e906001600160a01b031662000177565b87518781526001600160a01b0390911689820190815290938492918391829160200190565b03915afa92831562000529576200112e9388620010d9938e6000936200128c575b5050620010d2919262000e25565b9062001d9c565b6016548a90620010f2906001600160a01b031662000177565b60135462001109906001600160a01b031662000177565b86518681526001600160a01b0390911688820190815290948592918391829160200190565b03915afa801562000529578762001155936000926200126c575b50620010d2919262000e39565b6015546200116c906001600160a01b031662000177565b82518281523085820190815290918a918391908290819060200103915afa9687156200052957620011e3978a96620011b393600092620012455750620010d2919262000e39565b601654620011ca906001600160a01b031662000177565b9151908152309281019283529485928391829160200190565b03915afa918215620005295762000bd3946000936200120a575050620010d2919262000e25565b620010d2935090816200123592903d106200123d575b6200122c818362000a6b565b81019062000d2e565b9138620010c4565b503d62001220565b620010d292506200126590893d8b116200123d576200122c818362000a6b565b9162001148565b620010d2925062001265908d803d106200123d576200122c818362000a6b565b620010d293509081620012ad92903d106200123d576200122c818362000a6b565b918e620010c4565b909650620012de919550833d8511620012e9575b620012d5818362000a6b565b81019062000ddf565b949094953862001048565b503d620012c9565b62000ff992506200131891503d806000833e6200130f818362000a6b565b81019062000d5b565b93915062000fed9050565b62000fce949596506200134590893d8b116200123d576200122c818362000a6b565b95949362000f75565b6200136a919550883d8a116200123d576200122c818362000a6b565b933862000f45565b6200138e919450883d8a116200123d576200122c818362000a6b565b923862000f15565b62000eff9392919650620013b990883d8a116200123d576200122c818362000a6b565b9590919262000eb8565b90600491630667f9d760e41b8152620013e6825180936020868501910162000c9f565b010190565b3d156200141b573d90620013ff8262000d3e565b916200140f604051938462000a6b565b82523d6000602084013e565b606090565b6000805460081c60ff16156200143a575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6200145c57505090565b81925060405182816200149a60208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b03620014af601f199182810185528462000a6b565b620014d56040519182620014c8602082019687620013c3565b0390810183528262000a6b565b51925af15062000b75620014e8620013eb565b6020808251830101910162000b5e565b6015546200150f906001600160a01b031662000177565b60135462001526906001600160a01b031662000177565b604080516370a0823160e01b8082526001600160a01b03841660048084019190915260209592949390918686602481875afa95861562000529576000966200183a575b506016546200158b93929190889062000eda906001600160a01b031662000177565b0381895afa938415620005295760009462001816575b50815181815230848201908152909589918791908290819060200103915afa9485156200052957600095620017f2575b50815181815230848201908152909689918891908290819060200103915afa9586156200052957600096620017c7575b506200165a939495966000620016226200017760185460018060a01b031690565b6019548551633928ff9760e01b81528781019182526000602083015267016345785d8a00006040830152978892918391829160600190565b03915afa948515620005295762001684958491600090600092620012f1575062000ff99062001c7b565b03925af195861562000529576000956000976200179d575b50601654620016bb908b9062001067906001600160a01b031662000177565b03915afa9283156200052957620017029388620016e9938e6000936200128c575050620010d2919262000e25565b6015548a90620010f2906001600160a01b031662000177565b03915afa801562000529578762001728936000926200126c5750620010d2919262000e39565b6016546200173f906001600160a01b031662000177565b82518281523085820190815290918a918391908290819060200103915afa9687156200052957620011e3978a966200178693600092620012455750620010d2919262000e39565b601554620011ca906001600160a01b031662000177565b909650620017bc919550833d8511620012e957620012d5818362000a6b565b94909495386200169c565b6200165a94959650620017e990893d8b116200123d576200122c818362000a6b565b95949362001601565b6200180e919550883d8a116200123d576200122c818362000a6b565b9338620015d1565b62001832919450883d8a116200123d576200122c818362000a6b565b9238620015a1565b6200158b93929196506200185d90883d8a116200123d576200122c818362000a6b565b9590919262001569565b6040805161106b80820167ffffffffffffffff91838210838311176200055157836200189b62001f57938385843962000ac4565b0360009485f080156200052957601580546001600160a01b0319166001600160a01b039092169190911790558451918183018381108582111762000551578392620018e892843962000b10565b039083f080156200052957601680546001600160a01b0319166001600160a01b039283161790556015546200191e911662000177565b803b1562001bfd5783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af18015620005295762001be6575b506016546200197b906001600160a01b031662000177565b90813b156200059057845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af18015620005295762001bcf575b50601554620019d1906001600160a01b031662000177565b601654620019e8906001600160a01b031662000177565b908451916105979081840192848410868511176200055157849362001a35936200970a86396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200052957601480546001600160a01b0319166001600160a01b03909216919091179055825190612f21808301918211838310176200055157829162001a8b9162002fc284396000815260200190565b039082f0918215620005295762001ac262001b319360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b60155462001ad9906001600160a01b031662000177565b60135490919062001af3906001600160a01b031662000177565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af1928315620005295762001b7c94869462001bad575b5060165462001b62906001600160a01b031662000177565b601354909290620004b7906001600160a01b031662000177565b03925af18015620005295762001b90575050565b8162001baa92903d10620005215762000511818362000a6b565b50565b62001bc790853d8711620005215762000511818362000a6b565b503862001b4a565b806200056762001bdf92620009ff565b38620019b9565b806200056762001bf692620009ff565b3862001963565b8280fd5b6040519062001c108262000a31565b600582526466616c736560d81b6020830152565b6040519062001c338262000a31565b60048252637472756560e01b6020830152565b6040808252600a9082015269080808081058dd1d585b60b21b606082015260806020820181905262000b759291019062000cc4565b60018115150362001c895750565b62001d7e60407f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506080825160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b626f6f84820152616c5d60f01b6060820152a162001cfa62001c24565b9281519382855262001d26838601604090600a8152690808115e1c1958dd195960b21b60208201520190565b9480860360208201528062001d5e7f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf358397889462000cc4565b0390a11562001d8b5762001d7162001c24565b905b519182918262001c46565b0390a162000bd362001ea0565b62001d9562001c01565b9062001d73565b81810362001da8575050565b62001e92906040907f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506080835160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8582015261745d60f01b6060820152a181519382855262001e3c838601604090600a8152690808115e1c1958dd195960b21b60208201520190565b906020860152847fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89586920390a181519282849384528301604090600a815269080808081058dd1d585b60b21b60208201520190565b9060208301520390a162000bd35b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62001ecf575b5061010061ff00196000541617600055565b6000809160405182602082018381526519985a5b195960d21b6040840152600160608401526060835262001f038362000a4e565b62001f3f6024604051809362001f2e60208301976370ca10bb60e01b89525180928585019062000c9f565b810103600481018452018262000a6b565b51925af15062001f4e620013eb565b503862001ebd56fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461007457601f61255c38819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b0319169190911790556040516124cc90816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630f4166b814610167578063250968d914610162578063306db46b1461015d578063332266f3146101585780633928ff97146101535780633b4d10301461014e5780634fd67c58146101495780635a93b8ce146101445780636237569f1461013f5780637f17409c1461013a57806381b5fac214610135578063902ecaa214610130578063a8c62e761461012b578063b09d04e514610126578063cb1f553214610121578063ce153bf41461011c578063def15f9214610117578063ec29d8e614610112578063ee3e8cfb1461010d578063f2de7a7b146101085763f30d37f21461010357600080fd5b6109b2565b610996565b610962565b61094c565b6108e0565b61082f565b6107ea565b6107a6565b61077d565b610754565b610700565b6106a0565b61063f565b61061a565b6105f1565b6105bf565b61032e565b6102d6565b61029f565b610236565b346101d55760403660031901126101d55767ffffffffffffffff6024358181116101d557366023820112156101d55780600401359182116101d55736602483830101116101d5576101d19160246101c192016004356109e5565b6040519081529081906020820190565b0390f35b600080fd5b60005b8381106101ed5750506000910152565b81810151838201526020016101dd565b90602091610216815180928185528580860191016101da565b601f01601f1916010190565b9060206102339281815201906101fd565b90565b346101d55760403660031901126101d5576101d160405160026020820152600435604082015260243560608201526060815261027181610881565b6040519182916020835260208301906101fd565b60609060031901126101d557600435906024359060443590565b346101d55760206102ce6102b236610285565b906102c56102bf84610c45565b93610d72565b92919091610f1e565b604051908152f35b346101d55760206102ce6102e936610285565b906102f66102bf84610c45565b92919091611149565b801515036101d557565b90926080926102339594151583526020830152604082015281606082015201906101fd565b346101d55760603660031901126101d55760043560243561034e816102ff565b6104c46044359161035d610a11565b6103ad610368610a11565b9461037287610d72565b9491959092602096878401946040978886015285528352868a878b61039683610c45565b9889938851906103a78b5191610c45565b916112e2565b951561053b575061040c936103fe6103f96104409998956103f3866103dc610405976104199c99015187611d20565b926103ea8d518b5190611d4c565b91015190611324565b90611d20565b610a57565b9351610a7a565b8b52610a7a565b80868a015288518a610e65565b9061043761042c878a0193808552610a57565b808452825111610b21565b51905190610b14565b955b60c0865185880192610484845197610476888c015189519a8b96879485016040919493926060820195825260208201520152565b03601f1981018452836108be565b6000546104a79061049b906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610baf565b03915afa948515610536576000956104f6575b50906104eb916101d19596519051906114e4565b905194859485610309565b6101d19550906105216104eb939260c03d60c01161052f575b61051981836108be565b810190610b78565b5050505050955090916104d7565b503d61050f565b610bd3565b91966105b09561059d946105866105a59761057f6103f98c6103f36105b99f61057761056d6105909c83015188611d20565b93518b5190611d4c565b905190611324565b9451610a7a565b9401938452610a7a565b9081898d0152518c610bdf565b808a52610a57565b808952825111610a87565b51865190610b14565b95610442565b346101d55760203660031901126101d55760206102ce6004356105ea6105e482610c45565b91610d72565b50906114e4565b346101d55760206102ce61060436610285565b906106116102bf84610c45565b92919091611509565b346101d55760206102ce61063961063036610285565b91929092610c45565b916116a4565b346101d55760403660031901126101d55761067b6004356101d161068261067361066884610d72565b9190506024356116d1565b949093610c45565b84846119e2565b92604051938493846040919493926060820195825260208201520152565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36106c985610d72565b91506024356116fe565b939094610c45565b83856116a4565b91604051938493846040919493926060820195825260208201520152565b346101d55760203660031901126101d557608061071e600435610c45565b61075260405180926060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565bf35b346101d55760206102ce61076736610285565b906107746102bf84610c45565b92919091611725565b346101d55760003660031901126101d5576000546040516001600160a01b039091168152602090f35b346101d55760203660031901126101d5576101d160405160016020820152600435604082015260408152610271816108a2565b6001600160a01b038116036101d557565b346101d55760203660031901126101d5576101d160043561080a816107d9565b60408051600360208201526001600160a01b03909216828201528152610271816108a2565b346101d55760203660031901126101d5576101d161084e600435610d72565b604080519384526020840192909252908201529081906060820190565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761089d57604052565b61086b565b6060810190811067ffffffffffffffff82111761089d57604052565b90601f8019910116810190811067ffffffffffffffff82111761089d57604052565b346101d55760c03660031901126101d55760803660431901126101d5576101d161094060405161090f81610881565b60443581526064356020820152608435604082015260a435610930816107d9565b60608201526024356004356118a2565b60405191829182610222565b346101d55760206102ce6103a761063036610285565b346101d55760403660031901126101d55761067b6004356101d161068261067361098b84610d72565b9190506024356116fe565b346101d55760206102ce6109ac61063036610285565b916119e2565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36109db85610d72565b91506024356116d1565b9181606091810103126101d5576109fe61023392610c45565b9060408101359060208101359035610e8b565b604051906060820182811067ffffffffffffffff82111761089d5760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610a6557565b610a41565b906103e8918201809211610a6557565b91908201809211610a6557565b15610a8e57565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b90670de0b6b3a7640000918203918211610a6557565b906103e8918203918211610a6557565b6103e719810191908211610a6557565b91908203918211610a6557565b15610b2857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c09103126101d5578151610b8f816102ff565b9160208101519160408201519160608101519160a0608083015192015190565b610233939260609260018060a01b03168252602082015281604082015201906101fd565b6040513d6000823e3d90fd5b9161063961023393610c45565b91908260809103126101d557604051610c0481610881565b6060808294805184526020810151602085015260408101516040850152015191610c2d836107d9565b0152565b906080828203126101d55761023391610bec565b90604051610c5281610881565b600090818152816060602092828482015282604082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610536578092610cb3575b506102339293508082518301019101610c31565b9091503d8082863e610cc581866108be565b8401908285830312610d3b57845167ffffffffffffffff95868211610d3e57019082601f83011215610d3b57815195861161089d5760405192610d11601f8801601f19168601856108be565b868452848784010111610d3b57506102339394610d33918480850191016101da565b908392610c9f565b80fd5b8280fd5b908160209103126101d55751610233816107d9565b908160609103126101d5578051916040602083015192015190565b9060046020610d8e61049b61049b60005460018060a01b031690565b604051632bee84f160e21b815292839182905afa92831561053657610dd993606092600091610e36575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156105365760008093600093610dff575b50929190565b91935050610e25915060603d606011610e2f575b610e1d81836108be565b810190610d57565b9290929138610df9565b503d610e13565b610e58915060203d602011610e5e575b610e5081836108be565b810190610d42565b38610db8565b503d610e46565b916109ac61023393610c45565b81810392916000138015828513169184121617610a6557565b9260206103ea84610eae610ea66103f39697610eb499612087565b855190611324565b95612087565b670de0b6b3a763ffff198101908113600116610a655790565b908152602080820192909252604080820193909352606080820194909452845160808201529084015160a08201529083015160c08201529101516001600160a01b031660e08201526101000190565b565b909291855160208701516040880151610f3690610ade565b91610f418785612087565b610f4b8282611324565b92610f5591611324565b895185898581610f65858d6120ca565b90610f6f916120ca565b90610f79916120ca565b92610f83906120a9565b610f8c90610af4565b90610f9691610a7a565b90610fa0916120ca565b610fa986610ade565b610fb2916120ca565b92610fbc8a610a6a565b90610fc6906110f0565b610fcf91611324565b91610fd9906120a9565b610fe286610ade565b610feb916120ca565b610ff59089610a7a565b92610fff91610b14565b91611009916120ca565b895161101490610ade565b61101d90612068565b61102691611324565b61102f916120ca565b91885161103b90610ade565b61104488610a6a565b9261104f89896120ca565b90611059916120ca565b91611063866120a9565b9061106d90610ade565b611076916120ca565b92611080916120ca565b9161108a91610a7a565b611093916120ca565b9061109d846110f0565b916110a791612087565b6110b09161112d565b6000136110e557610233956110e0936110d29260405196879560208701610ecd565b03601f1981018352826108be565b611a30565b505050505050600090565b600160ff1b8114610a655760000390565b90816103e801918212600116610a6557565b9081670de0b6b3a763ffff190191821215600116610a6557565b91909160008382019384129112908015821691151617610a6557565b94939290928451906020860151604087015161116490610ade565b9261116f8787612087565b6111798282611324565b9261118391611324565b885187898581611193858c6120ca565b9061119d916120ca565b906111a7916120ca565b926111b290886120ca565b6111bc9088610b14565b906111c691610a7a565b906111d0916120ca565b6111d987610ade565b6111e2916120ca565b926111ed8a87610a7a565b906111f7906110f0565b61120091611324565b9161120b90866120ca565b61121487610ade565b61121d916120ca565b6112279088610a7a565b9261123191610b14565b9161123b916120ca565b885161124690610ade565b61124f90612068565b61125891611324565b611261916120ca565b965161126c90610ade565b936112778784610a7a565b96611281916120ca565b9061128b916120ca565b93611295916120ca565b9061129f90610ade565b6112a8916120ca565b926112b2916120ca565b916112bc91610a7a565b6112c5916120ca565b916112cf906110f0565b916112d991612087565b6102339161112d565b610233929160206112f86103f393855190611324565b93015190611324565b818102929160008212600160ff1b821416610a65578184051490151715610a6557565b6114d1610233927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642846114df9361135a60008213611dc8565b711340daa0d5f769dba1915cef59f0815a55066113768261210a565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d611301565b670de0b6b3a7640000900590565b611e00565b611503906114fb6102339493602085015190612087565b925190612087565b90612087565b90929185516040870151670de0b6b3a764000060008282039212818312811691831390151617610a655761153c83611101565b61154583611113565b61154e91611324565b908261155a8589611fa9565b9061156491611324565b61156d81611fc7565b9261157783611113565b6115819085611ff0565b61158b9089610e72565b91829161159788611101565b6115a19088611ff0565b936115ab91611ff0565b6115b487611f8a565b6115bd91611324565b926115c787611113565b6115d1908b611ff0565b91886115dc89611fc7565b906115e69161112d565b6115ef91611ff0565b6115f886611113565b61160191611ff0565b9261160b91611ff0565b926116169089611ff0565b9161162091610e72565b61162991611ff0565b6116329161112d565b9261163c85611101565b61164591611ff0565b9161164f876110f0565b9161165990611113565b61166291611ff0565b61166b9161112d565b61167491611ff0565b61167d91611fa9565b6000136110e5576102339561169f936110d29260405196879560208701610ecd565b611b55565b6116c461023393926116be6116cb93602086015190611324565b90611d4c565b9151611d7c565b90611324565b9291906116e76116e18284611d4c565b85611d20565b938103908111610a6557928103908111610a655790565b92919061170e6116e18284611d4c565b938101809111610a6557928101809111610a655790565b9293949091946040825192015193670de0b6b3a764000060008682039612818712811691871390151617610a6557828794611760868561112d565b61176983611113565b61177291611324565b9561177c91611fa9565b9061178691611324565b936117918584611ff0565b9461179b87611113565b6117a59087611ff0565b6117af9089610e72565b9283926117bc8b8761112d565b6117c69088611ff0565b946117d091611ff0565b6117d987611f8a565b6117e291611324565b936117ec87611113565b6117f6908b611ff0565b928b6118028989611ff0565b9061180c9161112d565b61181591611ff0565b61181e8a611113565b61182791611ff0565b9361183191611ff0565b9361183b91611ff0565b9161184591610e72565b61184e91611ff0565b6118579161112d565b956118619161112d565b61186a91611ff0565b92611874906110f0565b9161187e90611113565b61188791611ff0565b6118909161112d565b61189991611ff0565b61023391611fa9565b929190836118bd6118c2926118bd6020860151865190612087565b6120ca565b906118ce8183866112e2565b936118db82868584610e8b565b85906000808212156119a4575b808212611986575061192d61197a9261023396979886935b6119146040519889928c8a6020860161201f565b0396611928601f19988981018352826108be565b611c2c565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b039081018352826108be565b9661199191506120eb565b9561199e84888786610e8b565b906118e8565b9691965b8082136119c4575061192d61023395969761197a938693611900565b966119cf9150611d9e565b956119dc84888786610e8b565b906119a8565b60206119fb61023394936116be6116cb94865190611324565b920151611d7c565b9190610100838203126101d557825192602081015192610233604083015193608060608501519401610bec565b91906103e892600093600091838211611b3457611a4c8161217c565b611a5685836122d5565b6000611a628284611301565b13611b155750611a73859695610b04565b60019460009186805b611a8d575b50505050505050509050565b15611af0575b5085969798508091611aae611aa88b88610a7a565b60011c90565b99611ab98b876122d5565b9083611ac58784611301565b13611ae457505089925b87611ada8886610b14565b9201939998611a7c565b8b975090945092611acf565b861080611b0a575b15611b035788611a93565b8080611a81565b506101008210611af8565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e892600093600091838211611b3457611b71816122f6565b611b7b8583612441565b6000611b878284611301565b13611b155750611b98859695610b04565b60019460009186805b611bb15750505050505050509050565b15611c0e575b5085969798508091611bcc611aa88b88610a7a565b99611bd78b87612441565b9083611be38784611301565b13611c0257505089925b87611bf88886610b14565b9201939998611ba1565b8b975090945092611bed565b861080611c21575b15611b035788611bb7565b506101008210611c16565b60009392918491838211611d0057611c448282612462565b611c4e8583612462565b6000611c5a8284611301565b13611b155750611c6c83869796610b14565b60019460009186805b611c855750505050505050509050565b15611ce2575b5085969798508091611ca0611aa88b88610a7a565b99611cab8b87612462565b9083611cb78784611301565b13611cd657505089925b87611ccc8886610b14565b9201939998611c75565b8b975090945092611cc1565b861080611cf5575b15611b035788611c8b565b506101008210611cea565b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b8181029181830414901517600116156101d5576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101d557600190600019830104019015150290565b600181151516156101d5576ec097ce7bc90715b34b9f0fffffffff0460010190565b6103e9908181029181830414901517600116156101d55760016103e8600019830104019015150290565b15611dcf57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e19811315611f8457680755bf798b4a1bf1e5811215611f50576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029182051482151516156101d5570590565b6103e881810291600160ff1b81136001179183051416156101d557670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b9091131716156101d557670de0b6b3a7640000900590565b610f1c9360609296959360e083019783526020830152604082015201906060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000490565b670de0b6b3a764000090818102918183041490151782151516156101d5570490565b6103e89080820291820414600116156101d557670de0b6b3a7640000900490565b8181029181830414901517600116156101d557670de0b6b3a7640000900490565b6103e7908181029181830414901517600116156101d5576103e8900490565b612115811515611dc8565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b80518101602001906020019061219191611a03565b9291908351602085015160408601516121a990610ade565b916121b48686612087565b6121be8282611324565b926121c891611324565b8751868885816121d8858b6120ca565b906121e2916120ca565b906121ec916120ca565b926121f6906120a9565b6121ff90610af4565b9061220991610a7a565b90612213916120ca565b61221c86610ade565b612225916120ca565b9261222f89610a6a565b90612239906110f0565b61224291611324565b9161224c906120a9565b61225586610ade565b61225e916120ca565b6122689087610a7a565b9261227291610b14565b9161227c916120ca565b875161228790610ade565b61229090612068565b61229991611324565b6122a2916120ca565b95516122ad90610ade565b926122b786610a6a565b956122c1916120ca565b906122cb916120ca565b92611295906120a9565b906122ec6102339260208082518301019101611a03565b9493929092611149565b6123099060208082518301019101611a03565b6040819593959492945191015192670de0b6b3a764000060008582039512818612811691861390151617610a655781869361234385611101565b61234c83611113565b61235591611324565b9461235f91611fa9565b9061236991611324565b9261237384611fc7565b9361237d86611113565b6123879086611ff0565b6123919088610e72565b92839261239d8a611101565b6123a79087611ff0565b946123b191611ff0565b6123ba86611f8a565b6123c391611324565b936123cd86611113565b6123d7908a611ff0565b928a6123e288611fc7565b906123ec9161112d565b6123f591611ff0565b6123fe89611113565b61240791611ff0565b9361241191611ff0565b9361241b91611ff0565b9161242591610e72565b61242e91611ff0565b6124379161112d565b9461186190611101565b906124586102339260208082518301019101611a03565b9493929092611725565b805181019160e0828403126101d5576102339261249060208401519360806020604083015194019101610bec565b92610e8b56fea2646970667358221220ddef7f48a463f4812492c0cc35c784e857fab14e0a29d203d7aa233c67d9fa2964736f6c6343000816003360a03461007f57601f6112cb38819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f57608052604051611230908161009b82396080518181816103b701528181610612015281816107c601526109240152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b610953565b61090e565b6107ad565b610773565b6105f6565b610331565b6102ae565b610221565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101c3565b838082518301019101610986565b9061010d6100ff600435610a7f565b8680825183010191016109a1565b92610b68565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761015057604052565b61011e565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101a1601f8201601f191660200184610155565b8294818452818301116101be578281602093846000960137010152565b600080fd5b9080601f830112156101be578160206101de93359101610177565b90565b919082519283825260005b84811061020d575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101ec565b346101be5760003660031901126101be57604051604081019080821067ffffffffffffffff8311176101505761027891604052600381526247334d60e81b60208201526040519182916020835260208301906101e1565b0390f35b9060405161028981610134565b6060600382948054845260018101546020850152600281015460408501520154910152565b346101be5760203660031901126101be57600435600052600060205260c060406000206102da8161027c565b90600481015490600560018060a01b03910154169060606040519380518552602081015160208601526040810151604086015201516060840152608083015260a0820152f35b6001600160a01b038116036101be57565b346101be5760603660031901126101be5761034d600435610320565b60243560443567ffffffffffffffff81116101be576103709036906004016101c3565b9061037a81610a7f565b90610390825192602080809583010191016109a1565b6040516333854efd60e21b8152600481018390529092906060816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa948515610596576000908192829761055d575b508084806103ff93518301019101610986565b949195909787878581116000146104c45793610454869461044e866104496104769b9761044461046198604061043b61046d9f6104679f610a08565b91015190610f48565b610f48565b610f74565b50610a7f565b80518101820191016109a1565b91610bb9565b83610a27565b93828685610b68565b93846013191292836104b9575b6102789394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b601486129350610483565b5050919290938089116000146104ff5761046161046d946104546104769761044e856104498f998f61044490604061043b866104679f610a08565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9096506103ff9250610587915060603d60601161058f575b61057f8183610155565b810190610986565b9690926103ec565b503d610575565b6109e6565b9060606003198301126101be576004356105b481610320565b916024359160443567ffffffffffffffff928382116101be57806023830112156101be5781600401359384116101be57602484830101116101be576024019190565b346101be576106043661059b565b9192506001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610761578160c091810103126101be5780359160208201359160408101359460608201359060a08301359261066984610320565b670de0b6b3a764000083101561074f5761070d946107059460806106f1936106f69661069f876000526000602052604060002090565b55013560046106b8866000526000602052604060002090565b01551660056106d1846000526000602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610a7f565b602080825183010191016109a1565b848385610b68565b9283601319129182610744575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b60148512925061071a565b60405163e8a38a6160e01b8152600490fd5b604051636853cba760e01b8152600490fd5b346101be5760606107833661059b565b818094509492940103126101be5780359061070d6107056106f66040602085013594013595610a7f565b346101be576107bb3661059b565b926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610761576108236108176005610809876000526000602052604060002090565b01546001600160a01b031690565b6001600160a01b031690565b9116036108fc5761083683820182610a4a565b61083f81610a5f565b60018103610878575061086261085d61087392600494953691610177565b610caa565b926000526000602052604060002090565b01555b005b61088181610a5f565b600281036108bd5750906108a56108a06108b893610876953691610177565b610c00565b9290916000526000602052604060002090565b610c28565b806108c9600392610a5f565b036108ea576106d16108626108e5600593610876963691610177565b610bd8565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101be5760003660031901126101be576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101be5760203660031901126101be57610278610972600435610a7f565b6040519182916020835260208301906101e1565b908160609103126101be578051916040602083015192015190565b908160809103126101be576060604051916109bb83610134565b80518352602081015160208401526040810151604084015201516109de81610320565b606082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610a1557565b6109f2565b91908201809211610a1557565b81810392916000138015828513169184121617610a1557565b600411156101be57565b908160209103126101be57356101de81610a40565b60041115610a6957565b634e487b7160e01b600052602160045260246000fd5b60408051610a8c81610134565b6000918282526020820193838552818301848152606084019085825282865285602052610ac2610abd85882061027c565b610cdf565b808652670de0b6b3a7640000908103908111610a1557846101de97610b1f95610b1294600594610b5a9c5281835282602052600484842001549052815280602052200160018060a01b0390541690565b6001600160a01b03169052565b5192839160208301919091606060808201938051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b03601f198101835282610155565b926020610b9184610b8b610b83610b9a9697610ba099610fa4565b855190610d88565b95610fa4565b91015190610d88565b90610f48565b670de0b6b3a763ffff198101908113600116610a155790565b6101de92916020610bcf610b9a93855190610d88565b93015190610d88565b6040818051810103126101be5780610bf560206040930151610a40565b015161081781610320565b6060818051810103126101be57610c1a6020820151610a40565b606060408201519101519091565b919042821115610c9857610c3e610abd8461027c565b9081845542600385015542830391838311610a1557610c5c91610a27565b428314610c8257600160ff1b8114600019831416610a1557600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101be5780610cc760206040930151610a40565b015190565b81810292918115918404141715610a1557565b6060810151906020810151808314610d5e57804211600014610d5657915b8203918211610a15576040810190815160008113600014610d3057506101de92610d2a9151925190610ccc565b90610a1a565b90519150600160ff1b8114610a15576101de92610d509160000390610ccc565b90610a08565b504291610cfd565b5090505190565b818102929160008212600160ff1b821416610a15578184051490151715610a1557565b610f356101de927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284610f4393610dbe60008213610fc6565b711340daa0d5f769dba1915cef59f0815a5506610dda82611188565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d610d65565b670de0b6b3a7640000900590565b610ffe565b8181029181830414901517600116156101be576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101be57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101be570490565b15610fcd57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131561118257680755bf798b4a1bf1e581121561114e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b611193811515610fc6565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c600110179056fea26469706673582212209815df372867dd1ba42d4263690c8e70d1f8dc34ff9f897579936267cb43316764736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a26469706673582212201924abeada8c9fb3b2188edad24241576a2b4314b13afbc29f16d3ebef26a85564736f6c63430008160033","sourceMap":"88:2062:74:-:0;;;1594:4:0;88:2062:74;;1594:4:0;88:2062:74;;;1594:4:0;88:2062:74;378:11:59;88:2062:74;378:11:59;330:9:73;378:11:59;88:2062:74;378:11:59;;302:134:73;378:11:59;;;;302:134:73;378:11:59;424:4:73;302:134;378:11:59;;302:134:73;378:11:59;;;;;424:4:73;378:11:59;;;;;;;;;;;;468:7:73;;;378:11:59;;468:7:73;510;468;510;378:11:59;;510:7:73;378:11:59;554:88:73;468:7;378:11:59;510:7:73;378:11:59;;;:::i;:::-;554:88:73;;:::i;:::-;378:11:59;:::i;:::-;88:2062:74;;;;;;;;;;;;;378:11:59;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;;;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;378:11:59;;;;-1:-1:-1;;;;;378:11:59;;;;;;;;;;:::o;:::-;88:2062:74;;378:11:59;;;;:::i;:::-;302:134:73;378:11:59;;;;;;;;;;;88:2062:74;378:11:59;;;;;-1:-1:-1;;;;;378:11:59;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;378:11:59;302:134:73;-1:-1:-1;378:11:59;302:134:73;-1:-1:-1;378:11:59;;302:134:73;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;378:11:59;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;302:134:73;378:11:59;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;378:11:59;;;;;302:134:73;378:11:59;;-1:-1:-1;;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1858:513:35;;;799:19:18;1349:9:35;;;1790:35;1728;631:21:18;378:11:59;631:21:18;378:11:59;;;965:21:18;378:11:59;;965:21:18;;;:::i;:::-;631;:::i;:::-;1728:35:35;;;:::i;:::-;378:11:59;;1790:35:35;;:::i;:::-;799:19:18;;:::i;:::-;2139:69:35;;;;;;;:::i;:::-;8798:29;;-1:-1:-1;8914:21:35;;;-1:-1:-1;;;8954:21:35;;;;;;8910:600;9519:160;2296:72;8910:600;2296:72;8910:600;;;;;;88:2062:74;;;1349:9:35;9538:45;;;88:2062:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;88:2062:74;;;;;;;;9538:45:35;;-1:-1:-1;;;9538:45:35;88:2062:74;;9538:45:35;:::i;:::-;9519:160;:::i;:::-;378:11:59;;88:2062:74;2334:14:35;;;378:11:59;2350:17:35;;;;378:11:59;88:2062:74;;1349:9:35;2296:72;;88:2062:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;88:2062:74;;;;;;;;;;;;2296:72:35;;;;;;;;;:::i;:::-;1858:513;:::o;8947:268::-;8999:27;;;;;:::i;:::-;9060:144;;;;;;;:::i;:::-;8947:268;;;8910:600;9237:267;;;9244:21;;;;;;8910:600;9519:160;2296:72;8910:600;;;2296:72;8910:600;;;;;9237:267;9289:26;;;;;:::i;:::-;9349:144;;;;;;;:::i;:::-;9237:267;;;88:2062:74;378:11:59;;;88:2062:74;;;;;;;;1692:384:42;;2000:9;965:21:18;1692:384:42;1880:50;965:21:18;1961:50:42;1692:384;;799:19:18;1692:384:42;965:21:18;:::i;:::-;378:11:59;;1880:50:42;;:::i;:::-;965:21:18;;:::i;:::-;2000:9:42;;378:11:59;1961:50:42;;:::i;799:19:18:-;88:2062:74;;;;;;;;;;;1692:384:42;:::o;88:2062:74:-;;:::i;:::-;;;;;;;;;-1:-1:-1;;;88:2062:74;;;;;;;;;;;;;;;:::o;1208:273:18:-;1399:12;1391:36;1208:273;7380:72;1398:28;1208:273;4688:27;-1:-1:-1;4696:5:18;;4688:27;:::i;:::-;7125:43;5125:16;;;:::i;:::-;5145:2;88:2062:74;;;5175:3:18;88:2062:74;;378:11:59;5175:3:18;378:11:59;88:2062:74;;;;7232:71:18;88:2062:74;;6411:30:18;88:2062:74;6343:32:18;88:2062:74;6274:33:18;88:2062:74;6205:33:18;88:2062:74;6136:33:18;88:2062:74;6068:32:18;88:2062:74;6001:31:18;88:2062:74;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;88:2062:74;;;;;;;;;;;;;;;;5533:32:18;88:2062:74;5465:32:18;88:2062:74;5398:31:18;88:2062:74;;;;;;;;;;;;;;;;;;;;;;;;6455:304:18;88:2062:74;;;;;1399:12:18;:::i;:::-;491:4;88:2062:74;;;;1398:28:18;1391:36;:::i;8282:752::-;8417:611;;;;;;;;;;;;;;;;;491:4;378:11:59;;8417:611:18;;;;;;;;8282:752;:::o;:::-;9304:4:35;8417:611:18;;;;;;;;;;;;;;;;;;9310:4:35;378:11:59;;8417:611:18;;;;;;;;8282:752;:::o;7741:535::-;491:4;7878:392;;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;7878:392;;;;;;;;;;;;;;;;491:4;7878:392;;7741:535;:::o;:::-;9016:3:35;7878:392:18;;;;;;;;;;;;;;;;;9021:4:35;7878:392:18;;7741:535;:::o;88:2062:74:-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;1009:1952:33:-;378:11:59;;1009:1952:33;;378:11:59;;1239:13:33;;;1235:66;;1632:15;;;;:::i;:::-;1674;;;;:::i;:::-;378:11:59;1699:25:33;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;;:::i;:::-;9631:1:35;;378:11:59;;9631:1:35;;;;;1978:981:33;1009:1952;;;;;;;;;;:::o;1978:981::-;;;;;2909:48;;;;;;;2123:13;2122:19;2123:13;;;;:::i;:::-;88:2062:74;;;;2122:19:33;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;378:11:59;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;88:2062:74;;1978:981:33;;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;2909:18;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;;;;;;2931:26;9643:3:35;2931:26:33;;2909:48;;1695:115;88:2062:74;;-1:-1:-1;;;1747:56:33;;;;;88:2062:74;;;;;;;;;;1747:56:33;1235:66;88:2062:74;;-1:-1:-1;;;1261:40:33;;;;;88:2062:74;;;;;;;;;;;1747:56:33;88:2062:74;;;;:::o;:::-;;;-1:-1:-1;;;88:2062:74;;;;;;;;;;;;-1:-1:-1;;;88:2062:74;;;;;;;1487:3103:18;-1:-1:-1;;1713:26:18;;;1709:40;;1948:21;1943:26;;;1939:54;;2266:5;378:11:59;88:2062:74;378:11:59;88:2062:74;4502:49:18;2559:29;88:2062:74;3136:40:18;88:2062:74;378:11:59;2591:5:18;378:11:59;;;;88:2062:74;;;;;;;;;3074:35:18;88:2062:74;2874:31:18;88:2062:74;;;;;;3649:35:18;88:2062:74;;;;3508:34:18;88:2062:74;;;;3371:32:18;88:2062:74;;;;;;;;;;;;;;;;;;;;;;;;;;2941:32:18;88:2062:74;;;;;;;;;;;;;;;3699:327:18;88:2062:74;;4564:3:18;88:2062:74;378:11:59;1487:3103:18;:::o;1939:54::-;88:2062:74;;-1:-1:-1;;;1971:22:18;;88:2062:74;1971:22:18;;;88:2062:74;;;;;;-1:-1:-1;;;88:2062:74;;;;;;1747:56:33;1709:40:18;1741:8;1748:1;1741:8;:::o;15328:575::-;15397:27;15405:5;;;15397:27;:::i;:::-;15435:462;378:11:59;15435:462:18;;;;;;;;;;378:11:59;;;;;15435:462:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:575;:::o;88:2062:74:-;378:11:59;;;3862:59:35;;88:2062:74;;;;;;;3862:59:35;;;88:2062:74;;;;;;;;;;;;;;;;;378:11:59;;;;:::i;:::-;88:2062:74;;;;;;;;;;3862:59:35;88:2062:74;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;88:2062:74;;;;3934:64:35;88:2062:74;;;;;3934:64:35;:::i","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e414620000ac575050806344743bef14620000a6578063620a260714620000a0578063ba414fa6146200009a578063d1724fd61462000094578063e0d7d0e9146200008e578063e21485ad14620000885763fa7626d4146200008257600080fd5b620009c4565b6200088c565b6200086c565b620007ac565b62000783565b6200075f565b620005a5565b346200057557816003193601126200057557620000c862001867565b805161106b8082019067ffffffffffffffff9280831084841117620005515780620000fb62001f57948486843962000ac4565b039086f080156200052957601580546001600160a01b0319166001600160a01b0390921691909117905583519181830183811085821117620005515783926200014692843962000b10565b039084f080156200052957601680546001600160a01b0319166001600160a01b039283161790556015546200018391165b6001600160a01b031690565b803b15620005905782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af18015620005295762000579575b506016548490620001e2906001600160a01b031662000177565b91823b156200057557845190815230600482015268056bc75e2d631000006024820152918290604490829084905af18015620005295762000557575b5060155462000236906001600160a01b031662000177565b6016546200024d906001600160a01b031662000177565b90835191610597908184019284841086851117620005515784936200029a936200970a86396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200052957601480546001600160a01b0319166001600160a01b039092169190911790558151612f21808201908282108483111762000551578291620002f09162002fc284396000815260200190565b039084f080156200052957601380546001600160a01b0319166001600160a01b03929092169182179055620003259062000177565b8251906112cb8083019183831085841117620005515783926200035b926200843f85396001600160a01b03909116815260200190565b039084f080156200052957601780546001600160a01b0319166001600160a01b03929092169182179055620003909062000177565b82519161255c80840192909183118484101762000551578392620003c79262005ee385396001600160a01b03909116815260200190565b039083f09081156200052957620003fe6200046a9260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b60155462000415906001600160a01b031662000177565b6013546200042c906001600160a01b031662000177565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200052957620004e29385936200052f575b506016546200049b906001600160a01b031662000177565b6013549091908790620004b7906001600160a01b031662000177565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200052957620004f6578280f35b816200051a92903d1062000521575b62000511818362000a6b565b81019062000b5e565b5081808280f35b503d62000505565b62000b04565b6200054990843d8611620005215762000511818362000a6b565b508662000483565b620009e9565b80620005676200056e92620009ff565b8062000594565b836200021e565b5080fd5b80620005676200058992620009ff565b84620001c8565b8380fd5b6000910312620005a057565b600080fd5b34620005a0576000806003193601126200075c57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000575576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620005295762000745575b506017548190608090620006e19062000627906001600160a01b031662000177565b6015546200069d9062000643906001600160a01b031662000177565b6016546200068d906200065f906001600160a01b031662000177565b916200067d6200066e62000a8e565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6001600160a01b03166040830152565b620006a762000b78565b6060820152601354620006c3906001600160a01b031662000177565b906040519485809481936305157c7f60e21b83526004830162000ceb565b03925af180156200052957620006ff9183916200070c575b50601955565b6200070962000e47565b80f35b62000733915060803d6080116200073d575b6200072a818362000a6b565b81019062000c7c565b50505038620006f9565b503d6200071e565b80620005676200075592620009ff565b3862000605565b80fd5b34620005a0576000366003190112620005a0576020604051660aa87bee5380008152f35b34620005a0576000366003190112620005a0576020620007a262001420565b6040519015158152f35b34620005a0576000806003193601126200075c57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000575576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620005295762000855575b5060175481906080906200082e9062000627906001600160a01b031662000177565b03925af1801562000529576200084b9183916200070c5750601955565b62000709620014f8565b80620005676200086592620009ff565b386200080c565b34620005a0576000366003190112620005a0576020601954604051908152f35b34620005a0576020366003190112620005a05760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa908115620005295760009162000910575b60c08201516200090c906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e011620009bb575b816200092e60e0938362000a6b565b81010312620005a057620008f260c06200090c92620009ae8260405192620009568462000a14565b620009618162000aaf565b8452620009716020820162000aaf565b6020850152620009846040820162000aaf565b6040850152606081015160608501526080810151608085015260a081015160a08501520162000aaf565b82820152925050620008de565b3d91506200091f565b34620005a0576000366003190112620005a057602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200055157604052565b60e0810190811067ffffffffffffffff8211176200055157604052565b6040810190811067ffffffffffffffff8211176200055157604052565b6080810190811067ffffffffffffffff8211176200055157604052565b90601f8019910116810190811067ffffffffffffffff8211176200055157604052565b604051906080820182811067ffffffffffffffff8211176200055157604052565b51906001600160a01b0382168203620005a057565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b6040513d6000823e3d90fd5b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b51908115158203620005a057565b90816020910312620005a05762000b759062000b50565b90565b6040519060006020906020546001928160011c936001831692831562000c71575b60208610841462000c5d5785885287949360208601939291811562000c3c575060011462000bd5575b50505062000bd39250038362000a6b565b565b92509362000c0560206000527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb90565b946000935b82851062000c255750505062000bd393500138808062000bc2565b865485850152958601958895509381019362000c0a565b9250505062000bd39491925060ff19168252151560051b0138808062000bc2565b634e487b7160e01b85526022600452602485fd5b94607f169462000b99565b9190826080910312620005a0578151916020810151916060604083015192015190565b60005b83811062000cb35750506000910152565b818101518382015260200162000ca2565b9060209162000cdf8151809281855285808601910162000c9f565b601f01601f1916010190565b60a0606062000b759360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062000cc4565b90816020910312620005a0575190565b67ffffffffffffffff81116200055157601f01601f191660200190565b608081830312620005a05762000d718162000b50565b9260208201519260408301519260608101519067ffffffffffffffff8211620005a0570181601f82011215620005a057805162000dae8162000d3e565b9262000dbe604051948562000a6b565b81845260208284010111620005a05762000b75916020808501910162000c9f565b9190826040910312620005a0576020825192015190565b60409062000b7593928152816020820152019062000cc4565b634e487b7160e01b600052601160045260246000fd5b9190820180921162000e3357565b62000e0f565b9190820391821162000e3357565b60155462000e5e906001600160a01b031662000177565b60135462000e75906001600160a01b031662000177565b604080516370a0823160e01b8082526001600160a01b03841660048084019190915260209592949390918686602481875afa958615620005295760009662001396575b5060165462000eff93929190889062000eda906001600160a01b031662000177565b83518381526001600160a01b0390981685890190815290979586918291602090910190565b0381895afa938415620005295760009462001372575b50815181815230848201908152909589918791908290819060200103915afa94851562000529576000956200134e575b50815181815230848201908152909689918891908290819060200103915afa958615620005295760009662001323575b5062000fce93949596600062000f966200017760185460018060a01b031690565b6019548551633928ff9760e01b81528781019182526001602083015267016345785d8a00006040830152978892918391829160600190565b03915afa948515620005295762001030958491600090600092620012f1575b5062000ff99062001c7b565b60135462001010906001600160a01b031662000177565b60195460008451809a8195829463bd0625ab60e01b84528c840162000df6565b03925af19586156200052957600095600097620012b5575b50601554620010a3908b9062001067906001600160a01b031662000177565b6013546200107e906001600160a01b031662000177565b87518781526001600160a01b0390911689820190815290938492918391829160200190565b03915afa92831562000529576200112e9388620010d9938e6000936200128c575b5050620010d2919262000e25565b9062001d9c565b6016548a90620010f2906001600160a01b031662000177565b60135462001109906001600160a01b031662000177565b86518681526001600160a01b0390911688820190815290948592918391829160200190565b03915afa801562000529578762001155936000926200126c575b50620010d2919262000e39565b6015546200116c906001600160a01b031662000177565b82518281523085820190815290918a918391908290819060200103915afa9687156200052957620011e3978a96620011b393600092620012455750620010d2919262000e39565b601654620011ca906001600160a01b031662000177565b9151908152309281019283529485928391829160200190565b03915afa918215620005295762000bd3946000936200120a575050620010d2919262000e25565b620010d2935090816200123592903d106200123d575b6200122c818362000a6b565b81019062000d2e565b9138620010c4565b503d62001220565b620010d292506200126590893d8b116200123d576200122c818362000a6b565b9162001148565b620010d2925062001265908d803d106200123d576200122c818362000a6b565b620010d293509081620012ad92903d106200123d576200122c818362000a6b565b918e620010c4565b909650620012de919550833d8511620012e9575b620012d5818362000a6b565b81019062000ddf565b949094953862001048565b503d620012c9565b62000ff992506200131891503d806000833e6200130f818362000a6b565b81019062000d5b565b93915062000fed9050565b62000fce949596506200134590893d8b116200123d576200122c818362000a6b565b95949362000f75565b6200136a919550883d8a116200123d576200122c818362000a6b565b933862000f45565b6200138e919450883d8a116200123d576200122c818362000a6b565b923862000f15565b62000eff9392919650620013b990883d8a116200123d576200122c818362000a6b565b9590919262000eb8565b90600491630667f9d760e41b8152620013e6825180936020868501910162000c9f565b010190565b3d156200141b573d90620013ff8262000d3e565b916200140f604051938462000a6b565b82523d6000602084013e565b606090565b6000805460081c60ff16156200143a575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6200145c57505090565b81925060405182816200149a60208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b03620014af601f199182810185528462000a6b565b620014d56040519182620014c8602082019687620013c3565b0390810183528262000a6b565b51925af15062000b75620014e8620013eb565b6020808251830101910162000b5e565b6015546200150f906001600160a01b031662000177565b60135462001526906001600160a01b031662000177565b604080516370a0823160e01b8082526001600160a01b03841660048084019190915260209592949390918686602481875afa95861562000529576000966200183a575b506016546200158b93929190889062000eda906001600160a01b031662000177565b0381895afa938415620005295760009462001816575b50815181815230848201908152909589918791908290819060200103915afa9485156200052957600095620017f2575b50815181815230848201908152909689918891908290819060200103915afa9586156200052957600096620017c7575b506200165a939495966000620016226200017760185460018060a01b031690565b6019548551633928ff9760e01b81528781019182526000602083015267016345785d8a00006040830152978892918391829160600190565b03915afa948515620005295762001684958491600090600092620012f1575062000ff99062001c7b565b03925af195861562000529576000956000976200179d575b50601654620016bb908b9062001067906001600160a01b031662000177565b03915afa9283156200052957620017029388620016e9938e6000936200128c575050620010d2919262000e25565b6015548a90620010f2906001600160a01b031662000177565b03915afa801562000529578762001728936000926200126c5750620010d2919262000e39565b6016546200173f906001600160a01b031662000177565b82518281523085820190815290918a918391908290819060200103915afa9687156200052957620011e3978a966200178693600092620012455750620010d2919262000e39565b601554620011ca906001600160a01b031662000177565b909650620017bc919550833d8511620012e957620012d5818362000a6b565b94909495386200169c565b6200165a94959650620017e990893d8b116200123d576200122c818362000a6b565b95949362001601565b6200180e919550883d8a116200123d576200122c818362000a6b565b9338620015d1565b62001832919450883d8a116200123d576200122c818362000a6b565b9238620015a1565b6200158b93929196506200185d90883d8a116200123d576200122c818362000a6b565b9590919262001569565b6040805161106b80820167ffffffffffffffff91838210838311176200055157836200189b62001f57938385843962000ac4565b0360009485f080156200052957601580546001600160a01b0319166001600160a01b039092169190911790558451918183018381108582111762000551578392620018e892843962000b10565b039083f080156200052957601680546001600160a01b0319166001600160a01b039283161790556015546200191e911662000177565b803b1562001bfd5783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af18015620005295762001be6575b506016546200197b906001600160a01b031662000177565b90813b156200059057845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af18015620005295762001bcf575b50601554620019d1906001600160a01b031662000177565b601654620019e8906001600160a01b031662000177565b908451916105979081840192848410868511176200055157849362001a35936200970a86396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200052957601480546001600160a01b0319166001600160a01b03909216919091179055825190612f21808301918211838310176200055157829162001a8b9162002fc284396000815260200190565b039082f0918215620005295762001ac262001b319360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b60155462001ad9906001600160a01b031662000177565b60135490919062001af3906001600160a01b031662000177565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af1928315620005295762001b7c94869462001bad575b5060165462001b62906001600160a01b031662000177565b601354909290620004b7906001600160a01b031662000177565b03925af18015620005295762001b90575050565b8162001baa92903d10620005215762000511818362000a6b565b50565b62001bc790853d8711620005215762000511818362000a6b565b503862001b4a565b806200056762001bdf92620009ff565b38620019b9565b806200056762001bf692620009ff565b3862001963565b8280fd5b6040519062001c108262000a31565b600582526466616c736560d81b6020830152565b6040519062001c338262000a31565b60048252637472756560e01b6020830152565b6040808252600a9082015269080808081058dd1d585b60b21b606082015260806020820181905262000b759291019062000cc4565b60018115150362001c895750565b62001d7e60407f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506080825160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b626f6f84820152616c5d60f01b6060820152a162001cfa62001c24565b9281519382855262001d26838601604090600a8152690808115e1c1958dd195960b21b60208201520190565b9480860360208201528062001d5e7f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf358397889462000cc4565b0390a11562001d8b5762001d7162001c24565b905b519182918262001c46565b0390a162000bd362001ea0565b62001d9562001c01565b9062001d73565b81810362001da8575050565b62001e92906040907f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506080835160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8582015261745d60f01b6060820152a181519382855262001e3c838601604090600a8152690808115e1c1958dd195960b21b60208201520190565b906020860152847fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89586920390a181519282849384528301604090600a815269080808081058dd1d585b60b21b60208201520190565b9060208301520390a162000bd35b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62001ecf575b5061010061ff00196000541617600055565b6000809160405182602082018381526519985a5b195960d21b6040840152600160608401526060835262001f038362000a4e565b62001f3f6024604051809362001f2e60208301976370ca10bb60e01b89525180928585019062000c9f565b810103600481018452018262000a6b565b51925af15062001f4e620013eb565b503862001ebd56fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461007457601f61255c38819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b0319169190911790556040516124cc90816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630f4166b814610167578063250968d914610162578063306db46b1461015d578063332266f3146101585780633928ff97146101535780633b4d10301461014e5780634fd67c58146101495780635a93b8ce146101445780636237569f1461013f5780637f17409c1461013a57806381b5fac214610135578063902ecaa214610130578063a8c62e761461012b578063b09d04e514610126578063cb1f553214610121578063ce153bf41461011c578063def15f9214610117578063ec29d8e614610112578063ee3e8cfb1461010d578063f2de7a7b146101085763f30d37f21461010357600080fd5b6109b2565b610996565b610962565b61094c565b6108e0565b61082f565b6107ea565b6107a6565b61077d565b610754565b610700565b6106a0565b61063f565b61061a565b6105f1565b6105bf565b61032e565b6102d6565b61029f565b610236565b346101d55760403660031901126101d55767ffffffffffffffff6024358181116101d557366023820112156101d55780600401359182116101d55736602483830101116101d5576101d19160246101c192016004356109e5565b6040519081529081906020820190565b0390f35b600080fd5b60005b8381106101ed5750506000910152565b81810151838201526020016101dd565b90602091610216815180928185528580860191016101da565b601f01601f1916010190565b9060206102339281815201906101fd565b90565b346101d55760403660031901126101d5576101d160405160026020820152600435604082015260243560608201526060815261027181610881565b6040519182916020835260208301906101fd565b60609060031901126101d557600435906024359060443590565b346101d55760206102ce6102b236610285565b906102c56102bf84610c45565b93610d72565b92919091610f1e565b604051908152f35b346101d55760206102ce6102e936610285565b906102f66102bf84610c45565b92919091611149565b801515036101d557565b90926080926102339594151583526020830152604082015281606082015201906101fd565b346101d55760603660031901126101d55760043560243561034e816102ff565b6104c46044359161035d610a11565b6103ad610368610a11565b9461037287610d72565b9491959092602096878401946040978886015285528352868a878b61039683610c45565b9889938851906103a78b5191610c45565b916112e2565b951561053b575061040c936103fe6103f96104409998956103f3866103dc610405976104199c99015187611d20565b926103ea8d518b5190611d4c565b91015190611324565b90611d20565b610a57565b9351610a7a565b8b52610a7a565b80868a015288518a610e65565b9061043761042c878a0193808552610a57565b808452825111610b21565b51905190610b14565b955b60c0865185880192610484845197610476888c015189519a8b96879485016040919493926060820195825260208201520152565b03601f1981018452836108be565b6000546104a79061049b906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610baf565b03915afa948515610536576000956104f6575b50906104eb916101d19596519051906114e4565b905194859485610309565b6101d19550906105216104eb939260c03d60c01161052f575b61051981836108be565b810190610b78565b5050505050955090916104d7565b503d61050f565b610bd3565b91966105b09561059d946105866105a59761057f6103f98c6103f36105b99f61057761056d6105909c83015188611d20565b93518b5190611d4c565b905190611324565b9451610a7a565b9401938452610a7a565b9081898d0152518c610bdf565b808a52610a57565b808952825111610a87565b51865190610b14565b95610442565b346101d55760203660031901126101d55760206102ce6004356105ea6105e482610c45565b91610d72565b50906114e4565b346101d55760206102ce61060436610285565b906106116102bf84610c45565b92919091611509565b346101d55760206102ce61063961063036610285565b91929092610c45565b916116a4565b346101d55760403660031901126101d55761067b6004356101d161068261067361066884610d72565b9190506024356116d1565b949093610c45565b84846119e2565b92604051938493846040919493926060820195825260208201520152565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36106c985610d72565b91506024356116fe565b939094610c45565b83856116a4565b91604051938493846040919493926060820195825260208201520152565b346101d55760203660031901126101d557608061071e600435610c45565b61075260405180926060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565bf35b346101d55760206102ce61076736610285565b906107746102bf84610c45565b92919091611725565b346101d55760003660031901126101d5576000546040516001600160a01b039091168152602090f35b346101d55760203660031901126101d5576101d160405160016020820152600435604082015260408152610271816108a2565b6001600160a01b038116036101d557565b346101d55760203660031901126101d5576101d160043561080a816107d9565b60408051600360208201526001600160a01b03909216828201528152610271816108a2565b346101d55760203660031901126101d5576101d161084e600435610d72565b604080519384526020840192909252908201529081906060820190565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761089d57604052565b61086b565b6060810190811067ffffffffffffffff82111761089d57604052565b90601f8019910116810190811067ffffffffffffffff82111761089d57604052565b346101d55760c03660031901126101d55760803660431901126101d5576101d161094060405161090f81610881565b60443581526064356020820152608435604082015260a435610930816107d9565b60608201526024356004356118a2565b60405191829182610222565b346101d55760206102ce6103a761063036610285565b346101d55760403660031901126101d55761067b6004356101d161068261067361098b84610d72565b9190506024356116fe565b346101d55760206102ce6109ac61063036610285565b916119e2565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36109db85610d72565b91506024356116d1565b9181606091810103126101d5576109fe61023392610c45565b9060408101359060208101359035610e8b565b604051906060820182811067ffffffffffffffff82111761089d5760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610a6557565b610a41565b906103e8918201809211610a6557565b91908201809211610a6557565b15610a8e57565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b90670de0b6b3a7640000918203918211610a6557565b906103e8918203918211610a6557565b6103e719810191908211610a6557565b91908203918211610a6557565b15610b2857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c09103126101d5578151610b8f816102ff565b9160208101519160408201519160608101519160a0608083015192015190565b610233939260609260018060a01b03168252602082015281604082015201906101fd565b6040513d6000823e3d90fd5b9161063961023393610c45565b91908260809103126101d557604051610c0481610881565b6060808294805184526020810151602085015260408101516040850152015191610c2d836107d9565b0152565b906080828203126101d55761023391610bec565b90604051610c5281610881565b600090818152816060602092828482015282604082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610536578092610cb3575b506102339293508082518301019101610c31565b9091503d8082863e610cc581866108be565b8401908285830312610d3b57845167ffffffffffffffff95868211610d3e57019082601f83011215610d3b57815195861161089d5760405192610d11601f8801601f19168601856108be565b868452848784010111610d3b57506102339394610d33918480850191016101da565b908392610c9f565b80fd5b8280fd5b908160209103126101d55751610233816107d9565b908160609103126101d5578051916040602083015192015190565b9060046020610d8e61049b61049b60005460018060a01b031690565b604051632bee84f160e21b815292839182905afa92831561053657610dd993606092600091610e36575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156105365760008093600093610dff575b50929190565b91935050610e25915060603d606011610e2f575b610e1d81836108be565b810190610d57565b9290929138610df9565b503d610e13565b610e58915060203d602011610e5e575b610e5081836108be565b810190610d42565b38610db8565b503d610e46565b916109ac61023393610c45565b81810392916000138015828513169184121617610a6557565b9260206103ea84610eae610ea66103f39697610eb499612087565b855190611324565b95612087565b670de0b6b3a763ffff198101908113600116610a655790565b908152602080820192909252604080820193909352606080820194909452845160808201529084015160a08201529083015160c08201529101516001600160a01b031660e08201526101000190565b565b909291855160208701516040880151610f3690610ade565b91610f418785612087565b610f4b8282611324565b92610f5591611324565b895185898581610f65858d6120ca565b90610f6f916120ca565b90610f79916120ca565b92610f83906120a9565b610f8c90610af4565b90610f9691610a7a565b90610fa0916120ca565b610fa986610ade565b610fb2916120ca565b92610fbc8a610a6a565b90610fc6906110f0565b610fcf91611324565b91610fd9906120a9565b610fe286610ade565b610feb916120ca565b610ff59089610a7a565b92610fff91610b14565b91611009916120ca565b895161101490610ade565b61101d90612068565b61102691611324565b61102f916120ca565b91885161103b90610ade565b61104488610a6a565b9261104f89896120ca565b90611059916120ca565b91611063866120a9565b9061106d90610ade565b611076916120ca565b92611080916120ca565b9161108a91610a7a565b611093916120ca565b9061109d846110f0565b916110a791612087565b6110b09161112d565b6000136110e557610233956110e0936110d29260405196879560208701610ecd565b03601f1981018352826108be565b611a30565b505050505050600090565b600160ff1b8114610a655760000390565b90816103e801918212600116610a6557565b9081670de0b6b3a763ffff190191821215600116610a6557565b91909160008382019384129112908015821691151617610a6557565b94939290928451906020860151604087015161116490610ade565b9261116f8787612087565b6111798282611324565b9261118391611324565b885187898581611193858c6120ca565b9061119d916120ca565b906111a7916120ca565b926111b290886120ca565b6111bc9088610b14565b906111c691610a7a565b906111d0916120ca565b6111d987610ade565b6111e2916120ca565b926111ed8a87610a7a565b906111f7906110f0565b61120091611324565b9161120b90866120ca565b61121487610ade565b61121d916120ca565b6112279088610a7a565b9261123191610b14565b9161123b916120ca565b885161124690610ade565b61124f90612068565b61125891611324565b611261916120ca565b965161126c90610ade565b936112778784610a7a565b96611281916120ca565b9061128b916120ca565b93611295916120ca565b9061129f90610ade565b6112a8916120ca565b926112b2916120ca565b916112bc91610a7a565b6112c5916120ca565b916112cf906110f0565b916112d991612087565b6102339161112d565b610233929160206112f86103f393855190611324565b93015190611324565b818102929160008212600160ff1b821416610a65578184051490151715610a6557565b6114d1610233927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642846114df9361135a60008213611dc8565b711340daa0d5f769dba1915cef59f0815a55066113768261210a565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d611301565b670de0b6b3a7640000900590565b611e00565b611503906114fb6102339493602085015190612087565b925190612087565b90612087565b90929185516040870151670de0b6b3a764000060008282039212818312811691831390151617610a655761153c83611101565b61154583611113565b61154e91611324565b908261155a8589611fa9565b9061156491611324565b61156d81611fc7565b9261157783611113565b6115819085611ff0565b61158b9089610e72565b91829161159788611101565b6115a19088611ff0565b936115ab91611ff0565b6115b487611f8a565b6115bd91611324565b926115c787611113565b6115d1908b611ff0565b91886115dc89611fc7565b906115e69161112d565b6115ef91611ff0565b6115f886611113565b61160191611ff0565b9261160b91611ff0565b926116169089611ff0565b9161162091610e72565b61162991611ff0565b6116329161112d565b9261163c85611101565b61164591611ff0565b9161164f876110f0565b9161165990611113565b61166291611ff0565b61166b9161112d565b61167491611ff0565b61167d91611fa9565b6000136110e5576102339561169f936110d29260405196879560208701610ecd565b611b55565b6116c461023393926116be6116cb93602086015190611324565b90611d4c565b9151611d7c565b90611324565b9291906116e76116e18284611d4c565b85611d20565b938103908111610a6557928103908111610a655790565b92919061170e6116e18284611d4c565b938101809111610a6557928101809111610a655790565b9293949091946040825192015193670de0b6b3a764000060008682039612818712811691871390151617610a6557828794611760868561112d565b61176983611113565b61177291611324565b9561177c91611fa9565b9061178691611324565b936117918584611ff0565b9461179b87611113565b6117a59087611ff0565b6117af9089610e72565b9283926117bc8b8761112d565b6117c69088611ff0565b946117d091611ff0565b6117d987611f8a565b6117e291611324565b936117ec87611113565b6117f6908b611ff0565b928b6118028989611ff0565b9061180c9161112d565b61181591611ff0565b61181e8a611113565b61182791611ff0565b9361183191611ff0565b9361183b91611ff0565b9161184591610e72565b61184e91611ff0565b6118579161112d565b956118619161112d565b61186a91611ff0565b92611874906110f0565b9161187e90611113565b61188791611ff0565b6118909161112d565b61189991611ff0565b61023391611fa9565b929190836118bd6118c2926118bd6020860151865190612087565b6120ca565b906118ce8183866112e2565b936118db82868584610e8b565b85906000808212156119a4575b808212611986575061192d61197a9261023396979886935b6119146040519889928c8a6020860161201f565b0396611928601f19988981018352826108be565b611c2c565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b039081018352826108be565b9661199191506120eb565b9561199e84888786610e8b565b906118e8565b9691965b8082136119c4575061192d61023395969761197a938693611900565b966119cf9150611d9e565b956119dc84888786610e8b565b906119a8565b60206119fb61023394936116be6116cb94865190611324565b920151611d7c565b9190610100838203126101d557825192602081015192610233604083015193608060608501519401610bec565b91906103e892600093600091838211611b3457611a4c8161217c565b611a5685836122d5565b6000611a628284611301565b13611b155750611a73859695610b04565b60019460009186805b611a8d575b50505050505050509050565b15611af0575b5085969798508091611aae611aa88b88610a7a565b60011c90565b99611ab98b876122d5565b9083611ac58784611301565b13611ae457505089925b87611ada8886610b14565b9201939998611a7c565b8b975090945092611acf565b861080611b0a575b15611b035788611a93565b8080611a81565b506101008210611af8565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e892600093600091838211611b3457611b71816122f6565b611b7b8583612441565b6000611b878284611301565b13611b155750611b98859695610b04565b60019460009186805b611bb15750505050505050509050565b15611c0e575b5085969798508091611bcc611aa88b88610a7a565b99611bd78b87612441565b9083611be38784611301565b13611c0257505089925b87611bf88886610b14565b9201939998611ba1565b8b975090945092611bed565b861080611c21575b15611b035788611bb7565b506101008210611c16565b60009392918491838211611d0057611c448282612462565b611c4e8583612462565b6000611c5a8284611301565b13611b155750611c6c83869796610b14565b60019460009186805b611c855750505050505050509050565b15611ce2575b5085969798508091611ca0611aa88b88610a7a565b99611cab8b87612462565b9083611cb78784611301565b13611cd657505089925b87611ccc8886610b14565b9201939998611c75565b8b975090945092611cc1565b861080611cf5575b15611b035788611c8b565b506101008210611cea565b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b8181029181830414901517600116156101d5576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101d557600190600019830104019015150290565b600181151516156101d5576ec097ce7bc90715b34b9f0fffffffff0460010190565b6103e9908181029181830414901517600116156101d55760016103e8600019830104019015150290565b15611dcf57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e19811315611f8457680755bf798b4a1bf1e5811215611f50576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029182051482151516156101d5570590565b6103e881810291600160ff1b81136001179183051416156101d557670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b9091131716156101d557670de0b6b3a7640000900590565b610f1c9360609296959360e083019783526020830152604082015201906060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000490565b670de0b6b3a764000090818102918183041490151782151516156101d5570490565b6103e89080820291820414600116156101d557670de0b6b3a7640000900490565b8181029181830414901517600116156101d557670de0b6b3a7640000900490565b6103e7908181029181830414901517600116156101d5576103e8900490565b612115811515611dc8565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b80518101602001906020019061219191611a03565b9291908351602085015160408601516121a990610ade565b916121b48686612087565b6121be8282611324565b926121c891611324565b8751868885816121d8858b6120ca565b906121e2916120ca565b906121ec916120ca565b926121f6906120a9565b6121ff90610af4565b9061220991610a7a565b90612213916120ca565b61221c86610ade565b612225916120ca565b9261222f89610a6a565b90612239906110f0565b61224291611324565b9161224c906120a9565b61225586610ade565b61225e916120ca565b6122689087610a7a565b9261227291610b14565b9161227c916120ca565b875161228790610ade565b61229090612068565b61229991611324565b6122a2916120ca565b95516122ad90610ade565b926122b786610a6a565b956122c1916120ca565b906122cb916120ca565b92611295906120a9565b906122ec6102339260208082518301019101611a03565b9493929092611149565b6123099060208082518301019101611a03565b6040819593959492945191015192670de0b6b3a764000060008582039512818612811691861390151617610a655781869361234385611101565b61234c83611113565b61235591611324565b9461235f91611fa9565b9061236991611324565b9261237384611fc7565b9361237d86611113565b6123879086611ff0565b6123919088610e72565b92839261239d8a611101565b6123a79087611ff0565b946123b191611ff0565b6123ba86611f8a565b6123c391611324565b936123cd86611113565b6123d7908a611ff0565b928a6123e288611fc7565b906123ec9161112d565b6123f591611ff0565b6123fe89611113565b61240791611ff0565b9361241191611ff0565b9361241b91611ff0565b9161242591610e72565b61242e91611ff0565b6124379161112d565b9461186190611101565b906124586102339260208082518301019101611a03565b9493929092611725565b805181019160e0828403126101d5576102339261249060208401519360806020604083015194019101610bec565b92610e8b56fea2646970667358221220ddef7f48a463f4812492c0cc35c784e857fab14e0a29d203d7aa233c67d9fa2964736f6c6343000816003360a03461007f57601f6112cb38819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f57608052604051611230908161009b82396080518181816103b701528181610612015281816107c601526109240152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b610953565b61090e565b6107ad565b610773565b6105f6565b610331565b6102ae565b610221565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101c3565b838082518301019101610986565b9061010d6100ff600435610a7f565b8680825183010191016109a1565b92610b68565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761015057604052565b61011e565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101a1601f8201601f191660200184610155565b8294818452818301116101be578281602093846000960137010152565b600080fd5b9080601f830112156101be578160206101de93359101610177565b90565b919082519283825260005b84811061020d575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101ec565b346101be5760003660031901126101be57604051604081019080821067ffffffffffffffff8311176101505761027891604052600381526247334d60e81b60208201526040519182916020835260208301906101e1565b0390f35b9060405161028981610134565b6060600382948054845260018101546020850152600281015460408501520154910152565b346101be5760203660031901126101be57600435600052600060205260c060406000206102da8161027c565b90600481015490600560018060a01b03910154169060606040519380518552602081015160208601526040810151604086015201516060840152608083015260a0820152f35b6001600160a01b038116036101be57565b346101be5760603660031901126101be5761034d600435610320565b60243560443567ffffffffffffffff81116101be576103709036906004016101c3565b9061037a81610a7f565b90610390825192602080809583010191016109a1565b6040516333854efd60e21b8152600481018390529092906060816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa948515610596576000908192829761055d575b508084806103ff93518301019101610986565b949195909787878581116000146104c45793610454869461044e866104496104769b9761044461046198604061043b61046d9f6104679f610a08565b91015190610f48565b610f48565b610f74565b50610a7f565b80518101820191016109a1565b91610bb9565b83610a27565b93828685610b68565b93846013191292836104b9575b6102789394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b601486129350610483565b5050919290938089116000146104ff5761046161046d946104546104769761044e856104498f998f61044490604061043b866104679f610a08565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9096506103ff9250610587915060603d60601161058f575b61057f8183610155565b810190610986565b9690926103ec565b503d610575565b6109e6565b9060606003198301126101be576004356105b481610320565b916024359160443567ffffffffffffffff928382116101be57806023830112156101be5781600401359384116101be57602484830101116101be576024019190565b346101be576106043661059b565b9192506001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610761578160c091810103126101be5780359160208201359160408101359460608201359060a08301359261066984610320565b670de0b6b3a764000083101561074f5761070d946107059460806106f1936106f69661069f876000526000602052604060002090565b55013560046106b8866000526000602052604060002090565b01551660056106d1846000526000602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610a7f565b602080825183010191016109a1565b848385610b68565b9283601319129182610744575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b60148512925061071a565b60405163e8a38a6160e01b8152600490fd5b604051636853cba760e01b8152600490fd5b346101be5760606107833661059b565b818094509492940103126101be5780359061070d6107056106f66040602085013594013595610a7f565b346101be576107bb3661059b565b926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610761576108236108176005610809876000526000602052604060002090565b01546001600160a01b031690565b6001600160a01b031690565b9116036108fc5761083683820182610a4a565b61083f81610a5f565b60018103610878575061086261085d61087392600494953691610177565b610caa565b926000526000602052604060002090565b01555b005b61088181610a5f565b600281036108bd5750906108a56108a06108b893610876953691610177565b610c00565b9290916000526000602052604060002090565b610c28565b806108c9600392610a5f565b036108ea576106d16108626108e5600593610876963691610177565b610bd8565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101be5760003660031901126101be576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101be5760203660031901126101be57610278610972600435610a7f565b6040519182916020835260208301906101e1565b908160609103126101be578051916040602083015192015190565b908160809103126101be576060604051916109bb83610134565b80518352602081015160208401526040810151604084015201516109de81610320565b606082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610a1557565b6109f2565b91908201809211610a1557565b81810392916000138015828513169184121617610a1557565b600411156101be57565b908160209103126101be57356101de81610a40565b60041115610a6957565b634e487b7160e01b600052602160045260246000fd5b60408051610a8c81610134565b6000918282526020820193838552818301848152606084019085825282865285602052610ac2610abd85882061027c565b610cdf565b808652670de0b6b3a7640000908103908111610a1557846101de97610b1f95610b1294600594610b5a9c5281835282602052600484842001549052815280602052200160018060a01b0390541690565b6001600160a01b03169052565b5192839160208301919091606060808201938051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b03601f198101835282610155565b926020610b9184610b8b610b83610b9a9697610ba099610fa4565b855190610d88565b95610fa4565b91015190610d88565b90610f48565b670de0b6b3a763ffff198101908113600116610a155790565b6101de92916020610bcf610b9a93855190610d88565b93015190610d88565b6040818051810103126101be5780610bf560206040930151610a40565b015161081781610320565b6060818051810103126101be57610c1a6020820151610a40565b606060408201519101519091565b919042821115610c9857610c3e610abd8461027c565b9081845542600385015542830391838311610a1557610c5c91610a27565b428314610c8257600160ff1b8114600019831416610a1557600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101be5780610cc760206040930151610a40565b015190565b81810292918115918404141715610a1557565b6060810151906020810151808314610d5e57804211600014610d5657915b8203918211610a15576040810190815160008113600014610d3057506101de92610d2a9151925190610ccc565b90610a1a565b90519150600160ff1b8114610a15576101de92610d509160000390610ccc565b90610a08565b504291610cfd565b5090505190565b818102929160008212600160ff1b821416610a15578184051490151715610a1557565b610f356101de927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284610f4393610dbe60008213610fc6565b711340daa0d5f769dba1915cef59f0815a5506610dda82611188565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d610d65565b670de0b6b3a7640000900590565b610ffe565b8181029181830414901517600116156101be576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101be57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101be570490565b15610fcd57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131561118257680755bf798b4a1bf1e581121561114e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b611193811515610fc6565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c600110179056fea26469706673582212209815df372867dd1ba42d4263690c8e70d1f8dc34ff9f897579936267cb43316764736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a26469706673582212201924abeada8c9fb3b2188edad24241576a2b4314b13afbc29f16d3ebef26a85564736f6c63430008160033","sourceMap":"88:2062:74:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;649:554:73;;:::i;:::-;88:2062:74;;724:32:73;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;715:41;88:2062:74;;-1:-1:-1;;;;;;88:2062:74;-1:-1:-1;;;;;88:2062:74;;;;;;;;;;;775:32:73;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;766:41;88:2062:74;;-1:-1:-1;;;;;;88:2062:74;-1:-1:-1;;;;;88:2062:74;;;;;;715:41:73;88:2062:74;817:11:73;;88:2062:74;;-1:-1:-1;;;;;88:2062:74;;;817:11:73;:34;;;;;88:2062:74;;-1:-1:-1;;;817:34:73;;;837:4;88:2062:74;817:34:73;;88:2062:74;844:6:73;88:2062:74;;;;;;;;;;;;;;;817:34:73;;;;;;;;88:2062:74;-1:-1:-1;766:41:73;88:2062:74;;;861:11:73;;-1:-1:-1;;;;;88:2062:74;;;861:11:73;:34;;;;;;88:2062:74;;861:34:73;;;837:4;88:2062:74;861:34:73;;88:2062:74;844:6:73;88:2062:74;;;;;;;;;;;837:4:73;;861:34;;;;;;;;88:2062:74;-1:-1:-1;715:41:73;88:2062:74;920:15:73;;-1:-1:-1;;;;;88:2062:74;;;920:15:73;766:41;88:2062:74;937:15:73;;-1:-1:-1;;;;;88:2062:74;;;937:15:73;88:2062:74;;;912:46:73;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:2062:74;;;;;;;378:4:31;;;88:2062:74;378:4:31;;;;88:2062:74;378:4:31;;;;912:46:73;;;;;;;;;906:52;88:2062:74;;-1:-1:-1;;;;;;88:2062:74;-1:-1:-1;;;;;88:2062:74;;;;;;;;;;;975:20:73;;;;;;;;;;;;;;;;;;;;;88:2062:74;;;;;;;975:20:73;;;;;;;;;968:27;88:2062:74;;-1:-1:-1;;;;;;88:2062:74;-1:-1:-1;;;;;88:2062:74;;;;;;;;;1019:13:73;;378:4:31;88:2062:74;1019:13:73;88:2062:74;;1011:22:73;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:2062:74;;;;;;;;;1011:22:73;;;;;;;;;1005:28;88:2062:74;;-1:-1:-1;;;;;;88:2062:74;-1:-1:-1;;;;;88:2062:74;;;;;;;;;1066:12:73;;378:4:31;88:2062:74;1066:12:73;88:2062:74;;;1052:27:73;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:2062:74;;;;;;;;;1052:27:73;;;;;;;;;;1043:36;1090:48;1043:36;724:32;88:2062:74;;;;;;;;1043:36:73;88:2062:74;;;1043:36:73;88:2062:74;;1043:36:73;715:41;88:2062:74;1090:14:73;;-1:-1:-1;;;;;88:2062:74;;;1090:14:73;968:27;378:4:31;1105:13:73;;-1:-1:-1;;;;;88:2062:74;378:4:31;88:2062:74;1105:13:73;88:2062:74;;-1:-1:-1;;;1090:48:73;;;-1:-1:-1;;;;;88:2062:74;;;;1090:48:73;;88:2062:74;-1:-1:-1;;378:4:31;;;88:2062:74;1090:48:73;;88:2062:74;;;;1090:48:73;;88:2062:74;;1090:48:73;88:2062:74;;1090:48:73;;88:2062:74;;378:4:31;;;;;1090:48:73;;;;;;;;;;1148;1090;;;;;88:2062:74;-1:-1:-1;766:41:73;88:2062:74;1148:14:73;;-1:-1:-1;;;;;88:2062:74;;;1148:14:73;968:27;378:4:31;;;;;;1163:13:73;;-1:-1:-1;;;;;88:2062:74;378:4:31;88:2062:74;1163:13:73;88:2062:74;;1148:48:73;;;-1:-1:-1;;;;;88:2062:74;;;;1148:48:73;;88:2062:74;-1:-1:-1;;378:4:31;;;88:2062:74;;;;;;;;378:4:31;;;;;1148:48:73;;;;;;;;;;;88:2062:74;;;1148:48:73;;;;;;-1:-1:-1;1148:48:73;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;88:2062:74;;;1148:48:73;;;;;;;:::i;1090:::-;;;;;;;;;;;;;:::i;:::-;;;;;1052:27;;:::i;861:34::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;88:2062:74;;;817:34:73;;;;;;:::i;:::-;;;;;88:2062:74;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;1235:10:73;;;;;88:2062:74;;-1:-1:-1;;;1235:10:73;;88:2062:74;;1235:10:73;;88:2062:74;;;;;;;;;;;;1235:10:73;;;;;;;;88:2062:74;-1:-1:-1;1349:3:73;378:4:31;;;1057:14:1;;1506:28:73;;1341:12;;-1:-1:-1;;;;;88:2062:74;378:4:31;88:2062:74;1341:12:73;1383:6;88:2062:74;1300:180:73;;1375:15;;-1:-1:-1;;;;;88:2062:74;;;1375:15:73;1420:6;88:2062:74;1300:180:73;;1412:15;;-1:-1:-1;;;;;88:2062:74;;;1412:15:73;1057:14:1;1300:180:73;1057:14:1;;:::i;:::-;-1:-1:-1;;;;;88:2062:74;;;1057:14:1;;;1300:180:73;-1:-1:-1;;;;;88:2062:74;1447:22:73;1300:180;;1057:14:1;;1300:180:73;-1:-1:-1;;;;;88:2062:74;;1300:180:73;;1057:14:1;;1300:180:73;1057:14:1;;:::i;:::-;1300:180:73;;;1057:14:1;1506:4:73;378::31;1506:9:73;;-1:-1:-1;;;;;88:2062:74;378:4:31;88:2062:74;1506:9:73;88:2062:74;;;;;;;;;;;;1506:28:73;;88:2062:74;1506:28:73;;;:::i;:::-;;;;;;;;;1491:43;1506:28;;;;;88:2062:74;1491:43:73;;1057:14:1;;1491:43:73;1545:1;;:::i;:::-;88:2062:74;;1506:28:73;;;;1057:14:1;1506:28:73;1057:14:1;1506:28:73;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;1235:10;;;;;;:::i;:::-;;;;88:2062:74;;;;;;;;;-1:-1:-1;;88:2062:74;;;;;;;378:11:59;88:2062:74;;;;;;;;;-1:-1:-1;;88:2062:74;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1235:10:73;;;;;88:2062:74;;-1:-1:-1;;;1235:10:73;;88:2062:74;;1235:10:73;;88:2062:74;;;;;;;;;;;;1235:10:73;;;;;;;;88:2062:74;-1:-1:-1;1349:3:73;378:4:31;;;1057:14:1;;1506:28:73;;1341:12;;-1:-1:-1;;;;;88:2062:74;378:4:31;88:2062:74;1506:28:73;;;;;;;;;1491:43;1506:28;;;;;1491:43;;1057:14:1;;1491:43:73;1545:1;;:::i;1235:10::-;;;;;;:::i;:::-;;;;88:2062:74;;;;;;-1:-1:-1;;88:2062:74;;;;;243:22:73;88:2062:74;;;;;;;;;;;;;-1:-1:-1;;88:2062:74;;;;992:4:59;378::31;88:2062:74;;-1:-1:-1;;;992:20:59;;88:2062:74;;;992:20:59;;;88:2062:74;;;;;;;;;;-1:-1:-1;;;;;88:2062:74;992:20:59;;;;;;;-1:-1:-1;992:20:59;;;88:2062:74;1029:19:59;;;88:2062:74;;;-1:-1:-1;;;;;88:2062:74;;;;-1:-1:-1;;;;;88:2062:74;;;;;;;;;;;;;;;;;992:20:59;;;88:2062:74;992:20:59;;88:2062:74;992:20:59;;;;;;88:2062:74;992:20:59;;;:::i;:::-;;;88:2062:74;;;;;1029:19:59;88:2062:74;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;992:20:59;;;;;;;;-1:-1:-1;992:20:59;;88:2062:74;;;;;;-1:-1:-1;;88:2062:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;1057:14:1;88:2062:74;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;88:2062:74;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;88:2062:74;;;;;;;;;;;;;;-1:-1:-1;;;88:2062:74;;;;753:2:73;88:2062:74;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;88:2062:74;;;;;;;;;;;;;;-1:-1:-1;;;88:2062:74;;;;753:2:73;88:2062:74;;;;;;;:::o;378:4:31:-;;88:2062:74;;;;378:4:31;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;:::o;1057:14:1:-;88:2062:74;;1057:14:1;-1:-1:-1;1447:22:73;1057:14:1;1447:22:73;1057:14:1;;;;;;;;;;;;;;;;1447:22:73;1057:14:1;;;;;;88:2062:74;;;;;1057:14:1;88:2062:74;;;;1057:14:1;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;1447:22:73;1057:14:1;;;;;;;-1:-1:-1;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1057:14:1;;;;;;88:2062:74;1057:14:1;;;;;;;;;;;;;;;;;;88:2062:74;;1057:14:1;;;;88:2062:74;1057:14:1;;;;;88:2062:74;1057:14:1;;88:2062:74;1057:14:1;:::o;:::-;;;;;;;;-1:-1:-1;;1057:14:1;;;;:::o;:::-;;;;;;;;;;;;;;;88:2062:74;1057:14:1;;88:2062:74;;;;;;;;;;;1057:14:1;;;:::i;:::-;88:2062:74;;-1:-1:-1;;88:2062:74;1057:14:1;;;:::o;:::-;;;;;;;;724:32:73;88:2062:74;;;;1057:14:1;;;88:2062:74;1057:14:1;;;88:2062:74;1057:14:1;;;;;88:2062:74;1057:14:1;;;88:2062:74;1057:14:1;;;;88:2062:74;1057:14:1;;;88:2062:74;1057:14:1;;;;;;;;;;;:::i;88:2062:74:-;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;88:2062:74;;;;:::o;:::-;;;;;;;;378:4:31;;;:::i;:::-;88:2062:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::o;127:1007::-;211:6;88:2062;211:16;;-1:-1:-1;;;;;88:2062:74;;;211:16;236:4;378::31;228:13:74;;-1:-1:-1;;;;;88:2062:74;378:4:31;88:2062:74;228:13;88:2062;;;-1:-1:-1;;;211:31:74;;;-1:-1:-1;;;;;88:2062:74;;211:31;;;;88:2062;;;;211:31;;88:2062;;;211:31;;;88:2062;;;211:31;;;;;;;;-1:-1:-1;211:31:74;;;127:1007;-1:-1:-1;278:6:74;88:2062;278:31;;88:2062;;;;;278:16;;-1:-1:-1;;;;;88:2062:74;;;278:16;88:2062;;278:31;;;-1:-1:-1;;;;;88:2062:74;;;278:31;;;88:2062;;;;;;;;;;;;;;;;278:31;;;;;;;;;;;-1:-1:-1;278:31:74;;;127:1007;-1:-1:-1;88:2062:74;;346:31;;;371:4;346:31;;;88:2062;;;;;;;;;346:31;88:2062;;;;;;346:31;;;;;;;;;-1:-1:-1;346:31:74;;;127:1007;-1:-1:-1;88:2062:74;;413:31;;;371:4;413:31;;;88:2062;;;;;;;;;413:31;88:2062;;;;;;413:31;;;;;;;;;-1:-1:-1;413:31:74;;;127:1007;88:2062;576:49;88:2062;;;;-1:-1:-1;576:19:74;88:2062;576:6;88:2062;724:32:73;88:2062:74;;;;;;;576:19;596:7;88:2062;;;-1:-1:-1;;;576:49:74;;;;;88:2062;;;510:4;88:2062;;;;474:9;88:2062;;;;;;;;;;;;;;;;576:49;;;;;;;;;;724:27;576:49;;;-1:-1:-1;;;576:49:74;;;127:1007;651:4;;;;:::i;:::-;236;378::31;724:9:74;;-1:-1:-1;;;;;88:2062:74;378:4:31;88:2062:74;724:9;596:7;88:2062;-1:-1:-1;88:2062:74;;;;;;;;;;;724:27;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;724:27:74;;;127:1007;-1:-1:-1;211:6:74;88:2062;771:31;;88:2062;;771:16;;-1:-1:-1;;;;;88:2062:74;;;771:16;236:4;378::31;788:13:74;;-1:-1:-1;;;;;88:2062:74;378:4:31;88:2062:74;788:13;88:2062;;771:31;;;-1:-1:-1;;;;;88:2062:74;;;771:31;;;88:2062;;;;;;;;;;;;;;;;771:31;;;;;;;;;;866;771;;804:29;771:31;;-1:-1:-1;771:31:74;;;127:1007;804:29;;;;;;:::i;:::-;;;:::i;:::-;278:6;88:2062;;;866:16;;-1:-1:-1;;;;;88:2062:74;;;866:16;236:4;378::31;883:13:74;;-1:-1:-1;;;;;88:2062:74;378:4:31;88:2062:74;883:13;88:2062;;866:31;;;-1:-1:-1;;;;;88:2062:74;;;866:31;;;88:2062;;;;;;;;;;;;;;;;866:31;;;;;;;;;;899:30;866:31;-1:-1:-1;866:31:74;;;127:1007;899:30;;;;;:::i;:::-;211:6;88:2062;959:16;;-1:-1:-1;;;;;88:2062:74;;;959:16;88:2062;;959:31;;;371:4;959:31;;;88:2062;;;;;;;;;959:31;88:2062;;;;;;959:31;;;;;;;;;1054;959;;;992:29;959:31;-1:-1:-1;959:31:74;;;992:29;;;;;:::i;:::-;278:6;88:2062;1054:16;;-1:-1:-1;;;;;88:2062:74;;;1054:16;88:2062;;1054:31;;;371:4;1054:31;;;88:2062;;;;;;;;;;;;;;1054:31;;;;;;;;;;1087:30;1054:31;-1:-1:-1;1054:31:74;;;1087:30;;;;;;:::i;1054:31::-;1087:30;1054:31;;;;;;;;-1:-1:-1;1054:31:74;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;959;992:29;959:31;;;;;;;;;;;;;;:::i;:::-;;;;866;899:30;866:31;;;;;;;-1:-1:-1;866:31:74;;;;;;:::i;771:::-;804:29;771:31;;;;;;;;-1:-1:-1;771:31:74;;;;;;:::i;:::-;;;;;724:27;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;576:49;651:4;576:49;;;;;;;-1:-1:-1;576:49:74;;;;;;:::i;:::-;;;;;:::i;:::-;;;-1:-1:-1;576:49:74;;-1:-1:-1;576:49:74;413:31;576:49;413:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;346;;;;;;;;;;;;;;;:::i;:::-;;;;;278;;;;;;;;;;;;;;;:::i;:::-;;;;;211;278;211;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1671:64:0;;;;;;;;;;88:2062:74;;1671:64:0;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;:::i;:::-;88:2062:74;;;;;;;:::i;:::-;1671:64:0;;;-1:-1:-1;1671:64:0;;;;:::o;:::-;;;:::o;1819:584::-;1873:7;88:2062:74;;;;;;1873:7:0;;;88:2062:74;;;;;378:4:31;:::o;1869:528:0:-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;88:2062:74;;;;;2196:43:0;;;;;;1671:64;;;;88:2062:74;;;;1671:64:0;;;;;;88:2062:74;1671:64:0;2196:43;;;88:2062:74;;2196:43:0;;;;;;;;:::i;:::-;2086:175;88:2062:74;;2086:175:0;;;2196:43;2086:175;;;;;:::i;:::-;;;;;;;;;:::i;:::-;2047:232;;;;;2312:27;2047:232;;:::i;:::-;2196:43;88:2062:74;;;2312:27:0;;;;;;:::i;1140:1008:74:-;1224:6;88:2062;1224:16;;-1:-1:-1;;;;;88:2062:74;;;1224:16;1249:4;378::31;1241:13:74;;-1:-1:-1;;;;;88:2062:74;378:4:31;88:2062:74;1241:13;88:2062;;;-1:-1:-1;;;1224:31:74;;;-1:-1:-1;;;;;88:2062:74;;1224:31;;;;88:2062;;;;1224:31;;88:2062;;;1224:31;;;88:2062;;;1224:31;;;;;;;;-1:-1:-1;1224:31:74;;;1140:1008;-1:-1:-1;1291:6:74;88:2062;1291:31;;88:2062;;;;;1291:16;;-1:-1:-1;;;;;88:2062:74;;;1291:31;;;;;;;;;;;-1:-1:-1;1291:31:74;;;1140:1008;-1:-1:-1;88:2062:74;;1359:31;;;1384:4;1359:31;;;88:2062;;;;;;;;;1359:31;88:2062;;;;;;1359:31;;;;;;;;;-1:-1:-1;1359:31:74;;;1140:1008;-1:-1:-1;88:2062:74;;1426:31;;;1384:4;1426:31;;;88:2062;;;;;;;;;1426:31;88:2062;;;;;;1426:31;;;;;;;;;-1:-1:-1;1426:31:74;;;1140:1008;88:2062;1590:49;88:2062;;;;-1:-1:-1;1590:19:74;88:2062;1590:6;88:2062;724:32:73;88:2062:74;;;;;;;1590:19;1610:7;88:2062;;;-1:-1:-1;;;1590:49:74;;;;;88:2062;;;-1:-1:-1;88:2062:74;;;;1487:9;88:2062;;;;;;;;;;;;;;;;1590:49;;;;;;;;;;1738:27;1590:49;;;-1:-1:-1;;;1590:49:74;;;1665:4;;;;:::i;1738:27::-;;;;;;;;;;-1:-1:-1;;;1738:27:74;;;1140:1008;-1:-1:-1;1291:6:74;88:2062;1785:31;;88:2062;;1785:16;;-1:-1:-1;;;;;88:2062:74;;;1785:31;;;;;;;;;;1880;1785;;1818:29;1785:31;;-1:-1:-1;1785:31:74;;;1818:29;;;;;;:::i;:::-;1224:6;88:2062;;;1880:16;;-1:-1:-1;;;;;88:2062:74;;;1880:31;;;;;;;;;;1913:30;1880:31;-1:-1:-1;1880:31:74;;;1913:30;;;;;:::i;:::-;1291:6;88:2062;1973:16;;-1:-1:-1;;;;;88:2062:74;;;1973:16;88:2062;;1973:31;;;1384:4;1973:31;;;88:2062;;;;;;;;;1973:31;88:2062;;;;;;1973:31;;;;;;;;;2068;1973;;;2006:29;1973:31;-1:-1:-1;1973:31:74;;;2006:29;;;;;:::i;:::-;1224:6;88:2062;2068:16;;-1:-1:-1;;;;;88:2062:74;;;1738:27;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;1426:31;1590:49;1426:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;1359;;;;;;;;;;;;;;;:::i;:::-;;;;;1291;;;;;;;;;;;;;;;:::i;:::-;;;;;1224;1291;1224;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;396:450:59;88:2062:74;;;447:32:59;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;715:41:73;88:2062:74;;-1:-1:-1;;;;;;88:2062:74;-1:-1:-1;;;;;88:2062:74;;;;;;;;;;;498:32:59;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;766:41:73;88:2062:74;;-1:-1:-1;;;;;;88:2062:74;-1:-1:-1;;;;;88:2062:74;;;;;;438:41:59;88:2062:74;540:11:59;;88:2062:74;;;540:11:59;:34;;;;;88:2062:74;;-1:-1:-1;;;540:34:59;;;560:4;540:34;;;88:2062:74;844:6:73;88:2062:74;;;;;;;;;;;;;;;540:34:59;;;;;;;;396:450;-1:-1:-1;489:41:59;88:2062:74;584:11:59;;-1:-1:-1;;;;;88:2062:74;;;584:11:59;:34;;;;;;88:2062:74;;584:34:59;;;560:4;540:34;584;;88:2062:74;844:6:73;88:2062:74;;;;;;;;;;;;;;;584:34:59;;;;;;;;396:450;-1:-1:-1;438:41:59;88:2062:74;643:15:59;;-1:-1:-1;;;;;88:2062:74;;;643:15:59;489:41;88:2062:74;660:15:59;;-1:-1:-1;;;;;88:2062:74;;;660:15:59;88:2062:74;;;635:50:59;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:2062:74;;;;;;;378:4:31;;;88:2062:74;378:4:31;;;;88:2062:74;378:4:31;;;;635:50:59;;;;;;;;;906:52:73;88:2062:74;;-1:-1:-1;;;;;;88:2062:74;-1:-1:-1;;;;;88:2062:74;;;;;;;;;;;;702:20:59;;;;;;;;;;;;;;;;;;;;88:2062:74;;;;;;;702:20:59;;;;;;;;;;695:27;733:48;695:27;724:32:73;88:2062:74;;;;;;;;968:27:73;88:2062:74;;;968:27:73;88:2062:74;;695:27:59;438:41;88:2062:74;733:14:59;;-1:-1:-1;;;;;88:2062:74;;;733:14:59;695:27;378:4:31;;;;748:13:59;;-1:-1:-1;;;;;88:2062:74;378:4:31;88:2062:74;748:13:59;88:2062:74;;-1:-1:-1;;;733:48:59;;;-1:-1:-1;;;;;88:2062:74;;;540:34:59;733:48;;88:2062:74;-1:-1:-1;;378:4:31;;;88:2062:74;733:48:59;;88:2062:74;;;;733:48:59;;88:2062:74;;733:48:59;88:2062:74;;;;;;378:4:31;;;;;733:48:59;;;;;;;;;;791;733;;;;;396:450;-1:-1:-1;489:41:59;88:2062:74;791:14:59;;-1:-1:-1;;;;;88:2062:74;;;791:14:59;695:27;378:4:31;;;;806:13:59;;-1:-1:-1;;;;;88:2062:74;378:4:31;88:2062:74;791:48:59;;;;;;;;;;;396:450;;:::o;791:48::-;;;;;;-1:-1:-1;791:48:59;;;;;;:::i;:::-;;396:450::o;733:48::-;;;;;;;;;;;;;:::i;:::-;;;;;584:34;;;;;;:::i;:::-;;;;540;;;;;;:::i;:::-;;;;;88:2062:74;;;;;;;;;;:::i;:::-;;1671:64:0;;-1:-1:-1;;;88:2062:74;;;;:::o;:::-;;;;;;;:::i;:::-;;1671:64:0;;-1:-1:-1;;;88:2062:74;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;88:2062:74;;;;;;;;;;;;;;;;;:::i;789:312:3:-;510:4:74;88:2062;;;854:6:3;850:245;;789:312;:::o;850:245::-;1012:52;88:2062:74;881:41:3;88:2062:74;;;;;;;;;;;;;;;;-1:-1:-1;;;88:2062:74;;;;881:41:3;88:2062:74;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;88:2062:74;;;;;;;;;;;;;;;;941:52:3;88:2062:74;941:52:3;88:2062:74;;;;:::i;:::-;941:52:3;;;1043:20;;;88:2062:74;;:::i;:::-;1043:20:3;;88:2062:74;1012:52:3;;;;;:::i;:::-;;;;;;:::i;1043:20::-;88:2062:74;;:::i;:::-;1043:20:3;;;5202:262:0;5259:6;;;5255:203;;5202:262;;:::o;5255:203::-;88:2062:74;;;;5286:41:0;88:2062:74;;;;;;;;;;;;;;;;-1:-1:-1;;;88:2062:74;;;;5286:41:0;88:2062:74;;;;;;;;;;;;;;;-1:-1:-1;;;88:2062:74;;;;;;;;;;;;;5346:31:0;;;;;;;;88:2062:74;;;;;;;;;;;;;;;-1:-1:-1;;;88:2062:74;;;;;;;;;;;;;5396:31:0;;;;2410:424;2939:104;;;2445:359;;2410:424;88:2062:74;;;;2928:1:0;88:2062:74;;;2928:1:0;88:2062:74;2410:424:0:o;2445:359::-;-1:-1:-1;88:2062:74;;;;2645:67:0;;;;88:2062:74;;;1671:64:0;;;88:2062:74;;;;2705:4:0;88:2062:74;;;;;2645:67:0;;;;;:::i;:::-;2534:196;1671:64;88:2062:74;;2534:196:0;;1671:64;2645:67;2534:196;;1671:64;;;;;;88:2062:74;1671:64:0;;;;;;;:::i;:::-;;;2534:196;1671:64;2534:196;;;;;;;:::i;:::-;2499:245;;;;;;;:::i;:::-;;2445:359;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","POOL_ID()":"e0d7d0e9","TEST_SWAP_FEE()":"620a2607","failed()":"ba414fa6","getPoolLiquidityToken(uint256)":"e21485ad","setUp()":"0a9254e4","test_G3M_swap_SwapsXforY()":"44743bef","test_G3M_swap_SwapsYforX()":"d1724fd6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"upper\",\"type\":\"uint256\"}],\"name\":\"BisectionLib_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"lowerResult\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"upperResult\",\"type\":\"int256\"}],\"name\":\"BisectionLib_RootOutsideBounds\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POOL_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_SWAP_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolLiquidityToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_G3M_swap_SwapsXforY\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_G3M_swap_SwapsYforX\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"BisectionLib_InvalidBounds(uint256,uint256)\":[{\"details\":\"Thrown when the lower bound is greater than the upper bound.\"}],\"BisectionLib_RootOutsideBounds(int256,int256)\":[{\"details\":\"Thrown when the result of the function `fx` for each input, `upper` and `lower`, is the same sign.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/unit/strategies/G3M/Swap.t.sol\":\"G3MSwapTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/lib/SignedWadMath.sol\":{\"keccak256\":\"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a\",\"dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/solvers/G3M/G3MExtendedLib.sol\":{\"keccak256\":\"0xa7e4eb7172ca81b319ccb5ac248c302fb549be3eb6badda424800f73edfbc448\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2d53a62a983c65dd0b892f30d30b603fc5cf7ebb4895dbdcb0a05a9eae1a431f\",\"dweb:/ipfs/QmNXKi6XUWswwKuzaE6SorZhRvd7Nz6dxYmLmii8bVcRhK\"]},\"src/solvers/G3M/G3MSolver.sol\":{\"keccak256\":\"0x78a3ae3db50beba513113d6a79c1d29282ccc46852563237fc3852eb1390376e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://146cfcc48b6a2fd6cd392f8508232b201add90f0f4352b141bc8d25b821884da\",\"dweb:/ipfs/QmXB3vg58RwUEEMCqgvdEGfwZjTzvE9PXDEZ8XFYsmiK1s\"]},\"src/strategies/G3M/G3M.sol\":{\"keccak256\":\"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c\",\"dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE\"]},\"src/strategies/G3M/G3MLib.sol\":{\"keccak256\":\"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70\",\"dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]},\"src/test/helpers/MockStrategy.sol\":{\"keccak256\":\"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5\",\"dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw\"]},\"src/test/helpers/SetUp.sol\":{\"keccak256\":\"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30\",\"dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14\"]},\"src/test/unit/DFMM/SetUp.sol\":{\"keccak256\":\"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4\",\"dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm\"]},\"src/test/unit/strategies/G3M/SetUp.sol\":{\"keccak256\":\"0xf3df0de5242d3ce771a7d1c56bc0e6d49c33c93bd213f173ae893ffa8cb8a2db\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://15593516464636019a55cab0dfda3c32d88ce82ece50e1f6ecab55e17305042a\",\"dweb:/ipfs/QmcySG4cNFidHEpwBcuMfWVkzGPWTPyLwgwrNodUoTZips\"]},\"src/test/unit/strategies/G3M/Swap.t.sol\":{\"keccak256\":\"0x6354362a4be1292e3f91d5dba65b30d08793c369c6569e8886013e7ceb38b46a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://90b1ea644c5ddf692c2ded0ed3f88416ec162c11c39b5e55a9fef3441dc60c52\",\"dweb:/ipfs/QmQ8Bx4wiAYKW1p2edQH6YxnzYBHFUgyKRLk8xjSFkYdu3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"lower","type":"uint256"},{"internalType":"uint256","name":"upper","type":"uint256"}],"type":"error","name":"BisectionLib_InvalidBounds"},{"inputs":[{"internalType":"int256","name":"lowerResult","type":"int256"},{"internalType":"int256","name":"upperResult","type":"int256"}],"type":"error","name":"BisectionLib_RootOutsideBounds"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"POOL_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_SWAP_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolLiquidityToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_G3M_swap_SwapsXforY"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_G3M_swap_SwapsYforX"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/unit/strategies/G3M/Swap.t.sol":"G3MSwapTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/lib/SignedWadMath.sol":{"keccak256":"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630","urls":["bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a","dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN"],"license":"MIT"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/solvers/G3M/G3MExtendedLib.sol":{"keccak256":"0xa7e4eb7172ca81b319ccb5ac248c302fb549be3eb6badda424800f73edfbc448","urls":["bzz-raw://2d53a62a983c65dd0b892f30d30b603fc5cf7ebb4895dbdcb0a05a9eae1a431f","dweb:/ipfs/QmNXKi6XUWswwKuzaE6SorZhRvd7Nz6dxYmLmii8bVcRhK"],"license":"GPL-3.0-or-later"},"src/solvers/G3M/G3MSolver.sol":{"keccak256":"0x78a3ae3db50beba513113d6a79c1d29282ccc46852563237fc3852eb1390376e","urls":["bzz-raw://146cfcc48b6a2fd6cd392f8508232b201add90f0f4352b141bc8d25b821884da","dweb:/ipfs/QmXB3vg58RwUEEMCqgvdEGfwZjTzvE9PXDEZ8XFYsmiK1s"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3M.sol":{"keccak256":"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034","urls":["bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c","dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3MLib.sol":{"keccak256":"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4","urls":["bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70","dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m"],"license":"GPL-3.0-or-later"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"},"src/test/helpers/MockStrategy.sol":{"keccak256":"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a","urls":["bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5","dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw"],"license":"UNLICENSED"},"src/test/helpers/SetUp.sol":{"keccak256":"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb","urls":["bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30","dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14"],"license":"UNLICENSED"},"src/test/unit/DFMM/SetUp.sol":{"keccak256":"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a","urls":["bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4","dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm"],"license":"UNLICENSED"},"src/test/unit/strategies/G3M/SetUp.sol":{"keccak256":"0xf3df0de5242d3ce771a7d1c56bc0e6d49c33c93bd213f173ae893ffa8cb8a2db","urls":["bzz-raw://15593516464636019a55cab0dfda3c32d88ce82ece50e1f6ecab55e17305042a","dweb:/ipfs/QmcySG4cNFidHEpwBcuMfWVkzGPWTPyLwgwrNodUoTZips"],"license":"UNLICENSED"},"src/test/unit/strategies/G3M/Swap.t.sol":{"keccak256":"0x6354362a4be1292e3f91d5dba65b30d08793c369c6569e8886013e7ceb38b46a","urls":["bzz-raw://90b1ea644c5ddf692c2ded0ed3f88416ec162c11c39b5e55a9fef3441dc60c52","dweb:/ipfs/QmQ8Bx4wiAYKW1p2edQH6YxnzYBHFUgyKRLk8xjSFkYdu3"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/unit/strategies/G3M/Swap.t.sol","id":47795,"exportedSymbols":{"ArbiterToken":[43381],"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"DFMM":[29062],"DFMMSetUp":[45761],"DSTest":[1786],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"G3M":[37911],"G3MLib":[38158],"G3MSetUp":[47524],"G3MSolver":[33820],"G3MSwapTest":[47794],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"LPToken":[29516],"Lex":[44392],"LibString":[26659],"Min":[27736],"MockERC20":[25560],"MockStrategy":[44649],"ONE":[30639],"SQRT_WAD":[30630],"SafeTransferLib":[26744],"SetUp":[44852],"SignedWadMathLib":[30623],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"TWO":[30633],"Test":[8195],"TestBase":[1843],"Vm":[9352],"WETH":[26027],"ZERO":[30649],"abs":[27763],"bisection":[31118],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeInitialPoolData":[31906],"computeL":[31844],"computeLGivenX":[31662],"computeLGivenY":[31688],"computeNextLiquidity":[32899],"computeNextRx":[32006],"computeNextRy":[31956],"computeOptimalLower":[32732],"computeOptimalRaise":[32798],"computePrice":[32043],"computeScalingFactor":[30048],"computeX":[31792],"computeXGivenL":[31714],"computeY":[31766],"computeYGivenL":[31740],"console":[17416],"console2":[25512],"diffLower":[32419],"diffRaise":[32666],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"findRootLiquidity":[32083],"findRootLower":[32129],"findRootRaise":[32175],"muli":[27777],"muliWad":[27795],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"39:2112:74","nodes":[{"id":47526,"nodeType":"PragmaDirective","src":"39:24:74","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":47527,"nodeType":"ImportDirective","src":"65:21:74","nodes":[],"absolutePath":"src/test/unit/strategies/G3M/SetUp.sol","file":"./SetUp.sol","nameLocation":"-1:-1:-1","scope":47795,"sourceUnit":47525,"symbolAliases":[],"unitAlias":""},{"id":47794,"nodeType":"ContractDefinition","src":"88:2062:74","nodes":[{"id":47661,"nodeType":"FunctionDefinition","src":"127:1007:74","nodes":[],"body":{"id":47660,"nodeType":"Block","src":"175:959:74","nodes":[],"statements":[{"assignments":[47535],"declarations":[{"constant":false,"id":47535,"mutability":"mutable","name":"preDfmmBalanceX","nameLocation":"193:15:74","nodeType":"VariableDeclaration","scope":47660,"src":"185:23:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47534,"name":"uint256","nodeType":"ElementaryTypeName","src":"185:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47543,"initialValue":{"arguments":[{"arguments":[{"id":47540,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"236:4:74","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":47539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"228:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47538,"name":"address","nodeType":"ElementaryTypeName","src":"228:7:74","typeDescriptions":{}}},"id":47541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"228:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47536,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"211:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":47537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"218:9:74","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"211:16:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":47542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"211:31:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"185:57:74"},{"assignments":[47545],"declarations":[{"constant":false,"id":47545,"mutability":"mutable","name":"preDfmmBalanceY","nameLocation":"260:15:74","nodeType":"VariableDeclaration","scope":47660,"src":"252:23:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47544,"name":"uint256","nodeType":"ElementaryTypeName","src":"252:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47553,"initialValue":{"arguments":[{"arguments":[{"id":47550,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"303:4:74","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":47549,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"295:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47548,"name":"address","nodeType":"ElementaryTypeName","src":"295:7:74","typeDescriptions":{}}},"id":47551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"295:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47546,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"278:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":47547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"285:9:74","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"278:16:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":47552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"278:31:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"252:57:74"},{"assignments":[47555],"declarations":[{"constant":false,"id":47555,"mutability":"mutable","name":"preUserBalanceX","nameLocation":"328:15:74","nodeType":"VariableDeclaration","scope":47660,"src":"320:23:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47554,"name":"uint256","nodeType":"ElementaryTypeName","src":"320:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47563,"initialValue":{"arguments":[{"arguments":[{"id":47560,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"371:4:74","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSwapTest_$47794","typeString":"contract G3MSwapTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MSwapTest_$47794","typeString":"contract G3MSwapTest"}],"id":47559,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"363:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47558,"name":"address","nodeType":"ElementaryTypeName","src":"363:7:74","typeDescriptions":{}}},"id":47561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"363:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47556,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"346:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":47557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"353:9:74","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"346:16:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":47562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"346:31:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"320:57:74"},{"assignments":[47565],"declarations":[{"constant":false,"id":47565,"mutability":"mutable","name":"preUserBalanceY","nameLocation":"395:15:74","nodeType":"VariableDeclaration","scope":47660,"src":"387:23:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47564,"name":"uint256","nodeType":"ElementaryTypeName","src":"387:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47573,"initialValue":{"arguments":[{"arguments":[{"id":47570,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"438:4:74","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSwapTest_$47794","typeString":"contract G3MSwapTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MSwapTest_$47794","typeString":"contract G3MSwapTest"}],"id":47569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"430:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47568,"name":"address","nodeType":"ElementaryTypeName","src":"430:7:74","typeDescriptions":{}}},"id":47571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"430:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47566,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"413:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":47567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"420:9:74","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"413:16:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":47572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"413:31:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"387:57:74"},{"assignments":[47575],"declarations":[{"constant":false,"id":47575,"mutability":"mutable","name":"amountIn","nameLocation":"463:8:74","nodeType":"VariableDeclaration","scope":47660,"src":"455:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47574,"name":"uint256","nodeType":"ElementaryTypeName","src":"455:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47577,"initialValue":{"hexValue":"302e31","id":47576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"474:9:74","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"455:28:74"},{"assignments":[47579],"declarations":[{"constant":false,"id":47579,"mutability":"mutable","name":"swapXForY","nameLocation":"498:9:74","nodeType":"VariableDeclaration","scope":47660,"src":"493:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47578,"name":"bool","nodeType":"ElementaryTypeName","src":"493:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":47581,"initialValue":{"hexValue":"74727565","id":47580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"510:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"493:21:74"},{"assignments":[47583,null,null,47585],"declarations":[{"constant":false,"id":47583,"mutability":"mutable","name":"valid","nameLocation":"531:5:74","nodeType":"VariableDeclaration","scope":47660,"src":"526:10:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47582,"name":"bool","nodeType":"ElementaryTypeName","src":"526:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null,null,{"constant":false,"id":47585,"mutability":"mutable","name":"payload","nameLocation":"553:7:74","nodeType":"VariableDeclaration","scope":47660,"src":"540:20:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47584,"name":"bytes","nodeType":"ElementaryTypeName","src":"540:5:74","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":47592,"initialValue":{"arguments":[{"id":47588,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"596:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47589,"name":"swapXForY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47579,"src":"605:9:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47590,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47575,"src":"616:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47586,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47328,"src":"576:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":47587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"583:12:74","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":33580,"src":"576:19:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,uint256,bytes memory)"}},"id":47591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"576:49:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"525:100:74"},{"expression":{"arguments":[{"id":47594,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47583,"src":"644:5:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"74727565","id":47595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"651:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":47593,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":2011,"src":"635:8:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$","typeString":"function (bool,bool)"}},"id":47596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"635:21:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47597,"nodeType":"ExpressionStatement","src":"635:21:74"},{"assignments":[47599,47601],"declarations":[{"constant":false,"id":47599,"mutability":"mutable","name":"inputAmount","nameLocation":"675:11:74","nodeType":"VariableDeclaration","scope":47660,"src":"667:19:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47598,"name":"uint256","nodeType":"ElementaryTypeName","src":"667:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47601,"mutability":"mutable","name":"outputAmount","nameLocation":"696:12:74","nodeType":"VariableDeclaration","scope":47660,"src":"688:20:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47600,"name":"uint256","nodeType":"ElementaryTypeName","src":"688:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47607,"initialValue":{"arguments":[{"id":47604,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"734:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47605,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47585,"src":"743:7:74","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":47602,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"724:4:74","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":47603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"729:4:74","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":28371,"src":"724:9:74","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256,uint256)"}},"id":47606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"724:27:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"666:85:74"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":47613,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"796:4:74","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":47612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"788:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47611,"name":"address","nodeType":"ElementaryTypeName","src":"788:7:74","typeDescriptions":{}}},"id":47614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"788:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47609,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"771:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":47610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"778:9:74","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"771:16:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":47615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"771:31:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47616,"name":"preDfmmBalanceX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47535,"src":"804:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":47617,"name":"inputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47599,"src":"822:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"804:29:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47608,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"762:8:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":47619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"762:72:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47620,"nodeType":"ExpressionStatement","src":"762:72:74"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":47626,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"891:4:74","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":47625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"883:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47624,"name":"address","nodeType":"ElementaryTypeName","src":"883:7:74","typeDescriptions":{}}},"id":47627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"883:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47622,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"866:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":47623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"873:9:74","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"866:16:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":47628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"866:31:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47629,"name":"preDfmmBalanceY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47545,"src":"899:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":47630,"name":"outputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47601,"src":"917:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"899:30:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47621,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"844:8:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":47632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"844:95:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47633,"nodeType":"ExpressionStatement","src":"844:95:74"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":47639,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"984:4:74","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSwapTest_$47794","typeString":"contract G3MSwapTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MSwapTest_$47794","typeString":"contract G3MSwapTest"}],"id":47638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"976:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47637,"name":"address","nodeType":"ElementaryTypeName","src":"976:7:74","typeDescriptions":{}}},"id":47640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"976:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47635,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"959:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":47636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"966:9:74","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"959:16:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":47641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"959:31:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47642,"name":"preUserBalanceX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47555,"src":"992:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":47643,"name":"inputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47599,"src":"1010:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"992:29:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47634,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"950:8:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":47645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"950:72:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47646,"nodeType":"ExpressionStatement","src":"950:72:74"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":47652,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1079:4:74","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSwapTest_$47794","typeString":"contract G3MSwapTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MSwapTest_$47794","typeString":"contract G3MSwapTest"}],"id":47651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1071:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47650,"name":"address","nodeType":"ElementaryTypeName","src":"1071:7:74","typeDescriptions":{}}},"id":47653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1071:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47648,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"1054:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":47649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1061:9:74","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"1054:16:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":47654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1054:31:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47655,"name":"preUserBalanceY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47565,"src":"1087:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":47656,"name":"outputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47601,"src":"1105:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1087:30:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47647,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"1032:8:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":47658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1032:95:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47659,"nodeType":"ExpressionStatement","src":"1032:95:74"}]},"functionSelector":"44743bef","implemented":true,"kind":"function","modifiers":[{"id":47532,"kind":"modifierInvocation","modifierName":{"id":47531,"name":"init","nameLocations":["170:4:74"],"nodeType":"IdentifierPath","referencedDeclaration":47523,"src":"170:4:74"},"nodeType":"ModifierInvocation","src":"170:4:74"}],"name":"test_G3M_swap_SwapsXforY","nameLocation":"136:24:74","parameters":{"id":47530,"nodeType":"ParameterList","parameters":[],"src":"160:2:74"},"returnParameters":{"id":47533,"nodeType":"ParameterList","parameters":[],"src":"175:0:74"},"scope":47794,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":47793,"nodeType":"FunctionDefinition","src":"1140:1008:74","nodes":[],"body":{"id":47792,"nodeType":"Block","src":"1188:960:74","nodes":[],"statements":[{"assignments":[47667],"declarations":[{"constant":false,"id":47667,"mutability":"mutable","name":"preDfmmBalanceX","nameLocation":"1206:15:74","nodeType":"VariableDeclaration","scope":47792,"src":"1198:23:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47666,"name":"uint256","nodeType":"ElementaryTypeName","src":"1198:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47675,"initialValue":{"arguments":[{"arguments":[{"id":47672,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1249:4:74","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":47671,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1241:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47670,"name":"address","nodeType":"ElementaryTypeName","src":"1241:7:74","typeDescriptions":{}}},"id":47673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1241:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47668,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"1224:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":47669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1231:9:74","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"1224:16:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":47674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1224:31:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1198:57:74"},{"assignments":[47677],"declarations":[{"constant":false,"id":47677,"mutability":"mutable","name":"preDfmmBalanceY","nameLocation":"1273:15:74","nodeType":"VariableDeclaration","scope":47792,"src":"1265:23:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47676,"name":"uint256","nodeType":"ElementaryTypeName","src":"1265:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47685,"initialValue":{"arguments":[{"arguments":[{"id":47682,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1316:4:74","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":47681,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1308:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47680,"name":"address","nodeType":"ElementaryTypeName","src":"1308:7:74","typeDescriptions":{}}},"id":47683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1308:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47678,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"1291:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":47679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1298:9:74","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"1291:16:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":47684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1291:31:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1265:57:74"},{"assignments":[47687],"declarations":[{"constant":false,"id":47687,"mutability":"mutable","name":"preUserBalanceX","nameLocation":"1341:15:74","nodeType":"VariableDeclaration","scope":47792,"src":"1333:23:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47686,"name":"uint256","nodeType":"ElementaryTypeName","src":"1333:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47695,"initialValue":{"arguments":[{"arguments":[{"id":47692,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1384:4:74","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSwapTest_$47794","typeString":"contract G3MSwapTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MSwapTest_$47794","typeString":"contract G3MSwapTest"}],"id":47691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1376:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47690,"name":"address","nodeType":"ElementaryTypeName","src":"1376:7:74","typeDescriptions":{}}},"id":47693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1376:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47688,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"1359:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":47689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1366:9:74","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"1359:16:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":47694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1359:31:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1333:57:74"},{"assignments":[47697],"declarations":[{"constant":false,"id":47697,"mutability":"mutable","name":"preUserBalanceY","nameLocation":"1408:15:74","nodeType":"VariableDeclaration","scope":47792,"src":"1400:23:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47696,"name":"uint256","nodeType":"ElementaryTypeName","src":"1400:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47705,"initialValue":{"arguments":[{"arguments":[{"id":47702,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1451:4:74","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSwapTest_$47794","typeString":"contract G3MSwapTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MSwapTest_$47794","typeString":"contract G3MSwapTest"}],"id":47701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1443:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47700,"name":"address","nodeType":"ElementaryTypeName","src":"1443:7:74","typeDescriptions":{}}},"id":47703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1443:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47698,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"1426:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":47699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1433:9:74","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"1426:16:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":47704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1426:31:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1400:57:74"},{"assignments":[47707],"declarations":[{"constant":false,"id":47707,"mutability":"mutable","name":"amountIn","nameLocation":"1476:8:74","nodeType":"VariableDeclaration","scope":47792,"src":"1468:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47706,"name":"uint256","nodeType":"ElementaryTypeName","src":"1468:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47709,"initialValue":{"hexValue":"302e31","id":47708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1487:9:74","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"1468:28:74"},{"assignments":[47711],"declarations":[{"constant":false,"id":47711,"mutability":"mutable","name":"swapXForY","nameLocation":"1511:9:74","nodeType":"VariableDeclaration","scope":47792,"src":"1506:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47710,"name":"bool","nodeType":"ElementaryTypeName","src":"1506:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":47713,"initialValue":{"hexValue":"66616c7365","id":47712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1523:5:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"1506:22:74"},{"assignments":[47715,null,null,47717],"declarations":[{"constant":false,"id":47715,"mutability":"mutable","name":"valid","nameLocation":"1545:5:74","nodeType":"VariableDeclaration","scope":47792,"src":"1540:10:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47714,"name":"bool","nodeType":"ElementaryTypeName","src":"1540:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null,null,{"constant":false,"id":47717,"mutability":"mutable","name":"payload","nameLocation":"1567:7:74","nodeType":"VariableDeclaration","scope":47792,"src":"1554:20:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47716,"name":"bytes","nodeType":"ElementaryTypeName","src":"1554:5:74","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":47724,"initialValue":{"arguments":[{"id":47720,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"1610:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47721,"name":"swapXForY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47711,"src":"1619:9:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":47722,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47707,"src":"1630:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47718,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47328,"src":"1590:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":47719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1597:12:74","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":33580,"src":"1590:19:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,uint256,bytes memory)"}},"id":47723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1590:49:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1539:100:74"},{"expression":{"arguments":[{"id":47726,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47715,"src":"1658:5:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"74727565","id":47727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1665:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":47725,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":2011,"src":"1649:8:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$","typeString":"function (bool,bool)"}},"id":47728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1649:21:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47729,"nodeType":"ExpressionStatement","src":"1649:21:74"},{"assignments":[47731,47733],"declarations":[{"constant":false,"id":47731,"mutability":"mutable","name":"inputAmount","nameLocation":"1689:11:74","nodeType":"VariableDeclaration","scope":47792,"src":"1681:19:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47730,"name":"uint256","nodeType":"ElementaryTypeName","src":"1681:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47733,"mutability":"mutable","name":"outputAmount","nameLocation":"1710:12:74","nodeType":"VariableDeclaration","scope":47792,"src":"1702:20:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47732,"name":"uint256","nodeType":"ElementaryTypeName","src":"1702:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47739,"initialValue":{"arguments":[{"id":47736,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"1748:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47737,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47717,"src":"1757:7:74","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":47734,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1738:4:74","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":47735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1743:4:74","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":28371,"src":"1738:9:74","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256,uint256)"}},"id":47738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1738:27:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1680:85:74"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":47745,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1810:4:74","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":47744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1802:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47743,"name":"address","nodeType":"ElementaryTypeName","src":"1802:7:74","typeDescriptions":{}}},"id":47746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1802:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47741,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"1785:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":47742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1792:9:74","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"1785:16:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":47747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1785:31:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47748,"name":"preDfmmBalanceX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47667,"src":"1818:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":47749,"name":"inputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47731,"src":"1836:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1818:29:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47740,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"1776:8:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":47751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1776:72:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47752,"nodeType":"ExpressionStatement","src":"1776:72:74"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":47758,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1905:4:74","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":47757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1897:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47756,"name":"address","nodeType":"ElementaryTypeName","src":"1897:7:74","typeDescriptions":{}}},"id":47759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1897:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47754,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"1880:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":47755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1887:9:74","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"1880:16:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":47760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1880:31:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47761,"name":"preDfmmBalanceY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47677,"src":"1913:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":47762,"name":"outputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47733,"src":"1931:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1913:30:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47753,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"1858:8:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":47764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1858:95:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47765,"nodeType":"ExpressionStatement","src":"1858:95:74"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":47771,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1998:4:74","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSwapTest_$47794","typeString":"contract G3MSwapTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MSwapTest_$47794","typeString":"contract G3MSwapTest"}],"id":47770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1990:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47769,"name":"address","nodeType":"ElementaryTypeName","src":"1990:7:74","typeDescriptions":{}}},"id":47772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1990:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47767,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"1973:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":47768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1980:9:74","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"1973:16:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":47773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1973:31:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47774,"name":"preUserBalanceX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47687,"src":"2006:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":47775,"name":"inputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47731,"src":"2024:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2006:29:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47766,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"1964:8:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":47777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1964:72:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47778,"nodeType":"ExpressionStatement","src":"1964:72:74"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":47784,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2093:4:74","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSwapTest_$47794","typeString":"contract G3MSwapTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_G3MSwapTest_$47794","typeString":"contract G3MSwapTest"}],"id":47783,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2085:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47782,"name":"address","nodeType":"ElementaryTypeName","src":"2085:7:74","typeDescriptions":{}}},"id":47785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2085:13:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47780,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"2068:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":47781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2075:9:74","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"2068:16:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":47786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2068:31:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47787,"name":"preUserBalanceY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47697,"src":"2101:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":47788,"name":"outputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47733,"src":"2119:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2101:30:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47779,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"2046:8:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":47790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2046:95:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47791,"nodeType":"ExpressionStatement","src":"2046:95:74"}]},"functionSelector":"d1724fd6","implemented":true,"kind":"function","modifiers":[{"id":47664,"kind":"modifierInvocation","modifierName":{"id":47663,"name":"init","nameLocations":["1183:4:74"],"nodeType":"IdentifierPath","referencedDeclaration":47523,"src":"1183:4:74"},"nodeType":"ModifierInvocation","src":"1183:4:74"}],"name":"test_G3M_swap_SwapsYforX","nameLocation":"1149:24:74","parameters":{"id":47662,"nodeType":"ParameterList","parameters":[],"src":"1173:2:74"},"returnParameters":{"id":47665,"nodeType":"ParameterList","parameters":[],"src":"1188:0:74"},"scope":47794,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":47528,"name":"G3MSetUp","nameLocations":["112:8:74"],"nodeType":"IdentifierPath","referencedDeclaration":47524,"src":"112:8:74"},"id":47529,"nodeType":"InheritanceSpecifier","src":"112:8:74"}],"canonicalName":"G3MSwapTest","contractDependencies":[25560,29062,33820,37911,44392],"contractKind":"contract","fullyImplemented":true,"internalFunctionIDs":{"32083":1},"linearizedBaseContracts":[47794,47524,44852,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"G3MSwapTest","nameLocation":"97:11:74","scope":47795,"usedErrors":[30985,30992],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":74} \ No newline at end of file diff --git a/out/Swap.t.sol/LogNormalSwapTest.json b/out/Swap.t.sol/LogNormalSwapTest.json deleted file mode 100644 index ca3e3254..00000000 --- a/out/Swap.t.sol/LogNormalSwapTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"POOL_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TEST_SWAP_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolLiquidityToken","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_LogNormal_swap_SwapsXforY","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_LogNormal_swap_SwapsYforX","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"BisectionLib_InvalidBounds","inputs":[{"name":"lower","type":"uint256","internalType":"uint256"},{"name":"upper","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BisectionLib_RootOutsideBounds","inputs":[{"name":"lowerResult","type":"int256","internalType":"int256"},{"name":"upperResult","type":"int256","internalType":"int256"}]},{"type":"error","name":"Infinity","inputs":[]},{"type":"error","name":"Min","inputs":[]},{"type":"error","name":"NegativeInfinity","inputs":[]},{"type":"error","name":"OutOfBounds","inputs":[]}],"bytecode":{"object":"0x34620000b757600160ff196000541617600055610120604052670de0b6b3a7640000806080528060a0528060c052660aa87bee538000908160e052306101005280601a5580601b55601c55601d553060018060a01b0319601e541617601e5562000070670de0b6b3a7640000601f55565b62000082670de0b6b3a7640000602055565b620000a7620000a1601f546020546200009a62000118565b91620002ea565b620001ef565b60405161b7639081620017578239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b60a081019081106001600160401b03821117620000ee57604052565b620000bc565b601f909101601f19168101906001600160401b03821190821017620000ee57604052565b604051906200012782620000d2565b601a548252601b546020830152601c546040830152601d546060830152601e546001600160a01b03166080830152565b90600182811c9216801562000189575b60208310146200017357565b634e487b7160e01b600052602260045260246000fd5b91607f169162000167565b601f8111620001a1575050565b60009060216000526020600020906020601f850160051c83019410620001e4575b601f0160051c01915b828110620001d857505050565b818155600101620001cb565b9092508290620001c2565b80519091906001600160401b038111620000ee576200021b816200021560215462000157565b62000194565b602080601f8311600114620002625750819062000251939460009262000256575b50508160011b916000199060031b1c19161790565b602155565b0151905038806200023c565b6021600052601f198316949091907f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b570926000905b878210620002d1575050836001959610620002b7575b505050811b01602155565b015160001960f88460031b161c19169055388080620002ac565b8060018596829496860151815501950193019062000296565b825160208401908151936040860191825162000307818862000c6a565b9162000314908462000c98565b6200031f9062001151565b90670de0b6b3a764000062000335819962001151565b6200034090620008b1565b056200034c906200131f565b90620003589162000d39565b620003639062000d5b565b6200036e9162000635565b620003799062000893565b90620003859162000931565b620003909062000976565b6200039b90620009b6565b8503858111620004f257620003b1908562000c98565b9486519351925191620003c5838562000c6a565b94620003d19162000c98565b620003dc9062001151565b92620003e89062001151565b620003f390620008b1565b05620003ff906200131f565b906200040b9162000d39565b620004169062000d5b565b620004219162000a38565b6200042c9062000893565b90620004389162000931565b620004439062000976565b6200044e90620009b6565b828451906200045d9162000cc9565b90620004699162000cc9565b9183620004798183868662000652565b91620004879285856200076c565b604080516020808201949094528082019490945260608085019290925284516080808601919091529285015160a085015284015160c084015283015160e0830152909101516001600160a01b0316610100808301919091528152620004ef61012082620000f4565b90565b634e487b7160e01b600052601160045260246000fd5b919082039182116200051657565b620004f2565b9081670de0b6b3a7640000019182126001166200051657565b9081670b68df18e471fbff1901918212156001166200051657565b90816714a8454c19e1ac00019182126001166200051657565b9081670fc10e01578277ff1901918212156001166200051657565b90816703debd083b8c7c00019182126001166200051657565b9081670295d400ea3257ff1901918212156001166200051657565b9081670157d8b2ecc70800019182126001166200051657565b90816705310aa7d5213000019182126001166200051657565b9081670de0cc3d15610000019182126001166200051657565b9081672005fe4f268ea000019182126001166200051657565b9081670dc5527f642c2000019182126001166200051657565b919091600083820193841291129080158216911516176200051657565b9092828210156200072757620004ef93620006dd9284670de0b6b3a764000091826200067f838362000cf6565b106200071057506001600160ff1b039590505b835191620006ac620006a5838562000d39565b8562000cf6565b10620006e357506001600160ff1b0392620006d6925090505b604060208201519101519062000c6a565b9262000635565b62000635565b620006d692620006fc6200070392620007099462000d39565b9062000cf6565b62000a52565b91620006c5565b6200072091620007039162000cf6565b9462000692565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b929493859391926000808212156200082e575b8082126200080b575091620007f66200080592620004ef979895945b604051958694602086019260e092959491956101008501968552602085015260408401528051606084015260208101516080840152604081015160a0840152606081015160c0840152608060018060a01b0391015116910152565b03601f198101835282620000f4565b62000dbd565b9662000818915062000d19565b95620008278288868662000652565b906200077f565b8082136200084f575091620007f66200080592620004ef979895946200079b565b9490506103e980820291600191818404149015178116156200088f576103e8600019830104019015150293620008888286868662000652565b906200082e565b8580fd5b90670de0b6b3a7640000918281029281840514901517156200051657565b90671bc16d674ec80000918281029281840514901517156200051657565b60008190039190600160ff1b811460011662000516576000198305036200051657565b90633b9aca00918281029281840514901517156200051657565b818102929160008212600160ff1b821416620005165781840514901517156200051657565b81156200094e57600160ff1b811460001983141662000516570590565b634e487b7160e01b600052601260045260246000fd5b600160ff1b8114620005165760000390565b620009b2620009ac620009a66713a04bbdfdc9be886200099f671bc16d674ec800009562000893565b0562000964565b62000efb565b62000893565b0590565b60008112620009c25790565b60405162461bcd60e51b815260206004820152601060248201526f746f55696e743a206e6567617469766560801b6044820152606490fd5b9067119000ab100ffbff1982019182136001166200051657565b90671bc16d674ec80000600083820393128184128116918413901516176200051657565b818103929160001380158285131691841216176200051657565b6706f05b59d3b20000811462000c6457670de0b6b3a76400008082121562000c0a57811562000c2e5760018260011b916002938305600203620005165760008312801562000c52575b62000c4057821562000c0a57671bc16d674ec80000831462000c2e57821291821562000c1c57925b62000ace84620015a5565b801562000c0a5762000b5a62000b0a62000b0462000afe62000af862000b60959997969962001151565b62001509565b62001052565b620008f2565b62000b5462000b2362000b1d83620015d1565b62000603565b62000b4d62000b4762000b4062000b3a86620015fd565b6200061c565b8562001583565b6200051c565b9062001648565b62000a38565b62001532565b936000925b81841062000ba05750505050620004ef9162000b899160001462000b8f57620014b5565b62000964565b62000b9a9062000964565b620014b5565b909162000bff8662000bf862000bbd8562000b5486999b62000efb565b62000b4d62000be562000bdf62000bd962000b89878062001583565b6200131f565b6200155b565b62000bf1838662001583565b9062000a38565b9062000635565b950192919062000b65565b6040516307a0212760e01b8152600490fd5b62000c279062000a14565b9262000ac3565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec80000831362000a9b565b50600090565b9062000c769062001052565b633b9aca00908181029181830414901517156200051657620004ef9162000d39565b90670de0b6b3a76400009182810292818404149015178115151615620000b757600190600019830104019015150290565b818102918183041490151760011615620000b7576001670de0b6b3a7640000600019830104019015150290565b670de0b6b3a76400009081810291818304149015178215151615620000b7570490565b6103e790818102918183041490151760011615620000b7576103e8900490565b818102918183041490151760011615620000b757670de0b6b3a7640000900490565b6706f05b59d3b20000908082029182041460011615620000b757670de0b6b3a7640000900490565b670de0b6b3a764000090818102918183041490151760011615620000b757671bc16d674ec80000900490565b919082018092116200051657565b6000939291849183821162000edb5762000dd88282620016d3565b62000de48583620016d3565b600062000df282846200090c565b1362000ebc575062000e078386979662000508565b60019460009186805b62000e22575b50505050505050509050565b1562000e92575b508596979850809162000e4762000e418b8862000daf565b60011c90565b9962000e548b87620016d3565b908362000e6287846200090c565b1362000e8557505089925b8762000e7a888662000508565b920193999862000e10565b8b97509094509262000e6d565b6014108062000eb1575b1562000ea9578862000e29565b808062000e16565b506040821062000e9c565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b80156200104557675698eef06670000081121562000c6457675698eef0666fffff19811315620010385760006200102562000f3683620012f0565b62000fe362000bd962000f5762000f5162000b478562000d83565b62001628565b92620006dd6200101f62001019620010116200100a6200100462000ffd62000ff762000ff062000fea8d62000fe362000fdd62000fd662000fd062000b4062000fca62000fc362000fbd62000fb662000fb08a620014dd565b62000535565b8962001583565b62000550565b8762001583565b62000569565b62000584565b8362001583565b6200059d565b9062001583565b620005b8565b8c62001583565b620005d1565b8a62001583565b620005ea565b8862001583565b938062001583565b620008cf565b620009fa565b911215620004ef57620004ef9062000a14565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b60b581600160881b81101562001100575b80690100000000000000000062010000921015620010f2575b65010000000000811015620010e4575b6301000000811015620010d6575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916200109a565b60201c9160101b916200108c565b60401c9160201b916200107c565b5068b500000000000000009050608082901c62001063565b156200112057565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284906200117f6000821362001118565b711340daa0d5f769dba1915cef59f0815a55066200119d826200166b565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d019160016c0504a838426634cdd8738f543560611b0319916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b600160ff1b81146200130d576000811215620004ef571960010190565b604051634d2d75b160e01b8152600490fd5b680248ce36a70cb26b3e1981131562000c6457680755bf798b4a1bf1e581121562001481576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b3989179d835ebba824c98fb31b83b2ca45c0000000000000000000000006060916b8000000000000000000000008582851b0501831d94850290036e0587f503bb6ea29d25fcb740196450816c10fe68e7fd37d0007b713f7650810102841d936e05180bb14799ab47a8a8cb2a527d57836e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028a1d0102881d0102861d0102841d0102821d01946d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be88908082029182051460011615620000b757670de0b6b3a7640000900590565b67025f0fe105a3140090818102918183051490151760011615620000b757670de0b6b3a7640000900590565b671bc16d674ec7ffff19818102916001918305141615620000b757670de0b6b3a7640000900590565b6709d028cc6f205fff19818102916001918305141615620000b757670de0b6b3a7640000900590565b670fa8cedfc2adddfa908082029182051460011615620000b757670de0b6b3a7640000900590565b818102918183051490151760011615620000b757670de0b6b3a7640000900590565b670de0b6b3a764000090818102918183051490151760011615620000b757671bc16d674ec80000900590565b6703c1665c7aab200090818102918183051490151760011615620000b757670de0b6b3a7640000900590565b669f32752462a00090818102918183051490151760011615620000b757670de0b6b3a7640000900590565b60018115151615620000b7576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a76400009081810291818305149015178215151615620000b7570590565b6200167881151562001118565b8060018060801b031060071b81811c60018060401b031060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b8080518101039161010092838112620000b75760208301519360a0604085015192605f190112620000b757604051936200170d85620000d2565b6080810151855260a0810151602086015260c0810151604086015260e081015160608601520151936001600160a01b0385168503620000b757620004ef9460808501526200065256fe60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e414620000ac5750508063620a260714620000a657806390c03eee14620000a0578063ba414fa6146200009a578063dd969c971462000094578063e0d7d0e9146200008e578063e21485ad14620000885763fa7626d4146200008257600080fd5b620009c4565b6200088c565b6200086c565b620007ac565b62000783565b620005c9565b620005a5565b346200057557816003193601126200057557620000c8620017b7565b805161106b8082019067ffffffffffffffff9280831084841117620005515780620000fb62001ea7948486843962000ac4565b039086f080156200052957601580546001600160a01b0319166001600160a01b0390921691909117905583519181830183811085821117620005515783926200014692843962000b10565b039084f080156200052957601680546001600160a01b0319166001600160a01b039283161790556015546200018391165b6001600160a01b031690565b803b15620005905782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af18015620005295762000579575b506016548490620001e2906001600160a01b031662000177565b91823b156200057557845190815230600482015268056bc75e2d631000006024820152918290604490829084905af18015620005295762000557575b5060155462000236906001600160a01b031662000177565b6016546200024d906001600160a01b031662000177565b90835191610597908184019284841086851117620005515784936200029a936200b19786396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200052957601480546001600160a01b0319166001600160a01b039092169190911790558151612f21808201908282108483111762000551578291620002f09162002f1284396000815260200190565b039084f080156200052957601380546001600160a01b0319166001600160a01b03929092169182179055620003259062000177565b825190611bc48083019183831085841117620005515783926200035b92620095d385396001600160a01b03909116815260200190565b039084f080156200052957601780546001600160a01b0319166001600160a01b03929092169182179055620003909062000177565b8251916137a080840192909183118484101762000551578392620003c79262005e3385396001600160a01b03909116815260200190565b039083f09081156200052957620003fe6200046a9260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b60155462000415906001600160a01b031662000177565b6013546200042c906001600160a01b031662000177565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200052957620004e29385936200052f575b506016546200049b906001600160a01b031662000177565b6013549091908790620004b7906001600160a01b031662000177565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200052957620004f6578280f35b816200051a92903d1062000521575b62000511818362000a6b565b81019062000b5e565b5081808280f35b503d62000505565b62000b04565b6200054990843d8611620005215762000511818362000a6b565b508662000483565b620009e9565b80620005676200056e92620009ff565b8062000594565b836200021e565b5080fd5b80620005676200058992620009ff565b84620001c8565b8380fd5b6000910312620005a057565b600080fd5b34620005a0576000366003190112620005a0576020604051660aa87bee5380008152f35b34620005a0576000806003193601126200078057737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000575576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620005295762000769575b50601754819060809062000705906200064b906001600160a01b031662000177565b601554620006c19062000667906001600160a01b031662000177565b601654620006b19062000683906001600160a01b031662000177565b91620006a16200069262000a8e565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6001600160a01b03166040830152565b620006cb62000b78565b6060820152601354620006e7906001600160a01b031662000177565b906040519485809481936305157c7f60e21b83526004830162000ceb565b03925af1801562000529576200072391839162000730575b50601955565b6200072d62000e47565b80f35b62000757915060803d60801162000761575b6200074e818362000a6b565b81019062000c7c565b505050386200071d565b503d62000742565b80620005676200077992620009ff565b3862000629565b80fd5b34620005a0576000366003190112620005a0576020620007a262001420565b6040519015158152f35b34620005a0576000806003193601126200078057737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000575576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620005295762000855575b5060175481906080906200082e906200064b906001600160a01b031662000177565b03925af1801562000529576200084b918391620007305750601955565b6200072d620014f8565b80620005676200086592620009ff565b386200080c565b34620005a0576000366003190112620005a0576020601954604051908152f35b34620005a0576020366003190112620005a05760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa908115620005295760009162000910575b60c08201516200090c906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e011620009bb575b816200092e60e0938362000a6b565b81010312620005a057620008f260c06200090c92620009ae8260405192620009568462000a14565b620009618162000aaf565b8452620009716020820162000aaf565b6020850152620009846040820162000aaf565b6040850152606081015160608501526080810151608085015260a081015160a08501520162000aaf565b82820152925050620008de565b3d91506200091f565b34620005a0576000366003190112620005a057602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200055157604052565b60e0810190811067ffffffffffffffff8211176200055157604052565b6040810190811067ffffffffffffffff8211176200055157604052565b6080810190811067ffffffffffffffff8211176200055157604052565b90601f8019910116810190811067ffffffffffffffff8211176200055157604052565b604051906080820182811067ffffffffffffffff8211176200055157604052565b51906001600160a01b0382168203620005a057565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b6040513d6000823e3d90fd5b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b51908115158203620005a057565b90816020910312620005a05762000b759062000b50565b90565b6040519060006021549060018260011c926001811691821562000c71575b60209160208610841462000c5d5785885287949360208601939291811562000c3c575060011462000bd5575b50505062000bd39250038362000a6b565b565b92509362000c0560216000527f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b57090565b946000935b82851062000c255750505062000bd393500138808062000bc2565b865485850152958601958895509381019362000c0a565b9250505062000bd39491925060ff19168252151560051b0138808062000bc2565b634e487b7160e01b85526022600452602485fd5b93607f169362000b96565b9190826080910312620005a0578151916020810151916060604083015192015190565b60005b83811062000cb35750506000910152565b818101518382015260200162000ca2565b9060209162000cdf8151809281855285808601910162000c9f565b601f01601f1916010190565b60a0606062000b759360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062000cc4565b90816020910312620005a0575190565b67ffffffffffffffff81116200055157601f01601f191660200190565b608081830312620005a05762000d718162000b50565b9260208201519260408301519260608101519067ffffffffffffffff8211620005a0570181601f82011215620005a057805162000dae8162000d3e565b9262000dbe604051948562000a6b565b81845260208284010111620005a05762000b75916020808501910162000c9f565b9190826040910312620005a0576020825192015190565b60409062000b7593928152816020820152019062000cc4565b634e487b7160e01b600052601160045260246000fd5b9190820180921162000e3357565b62000e0f565b9190820391821162000e3357565b60155462000e5e906001600160a01b031662000177565b60135462000e75906001600160a01b031662000177565b604080516370a0823160e01b8082526001600160a01b03841660048084019190915260209592949390918686602481875afa958615620005295760009662001396575b5060165462000eff93929190889062000eda906001600160a01b031662000177565b83518381526001600160a01b0390981685890190815290979586918291602090910190565b0381895afa938415620005295760009462001372575b50815181815230848201908152909589918791908290819060200103915afa94851562000529576000956200134e575b50815181815230848201908152909689918891908290819060200103915afa958615620005295760009662001323575b5062000fce93949596600062000f966200017760185460018060a01b031690565b6019548551633928ff9760e01b81528781019182526001602083015267016345785d8a00006040830152978892918391829160600190565b03915afa948515620005295762001030958491600090600092620012f1575b5062000ff99062001bcb565b60135462001010906001600160a01b031662000177565b60195460008451809a8195829463bd0625ab60e01b84528c840162000df6565b03925af19586156200052957600095600097620012b5575b50601554620010a3908b9062001067906001600160a01b031662000177565b6013546200107e906001600160a01b031662000177565b87518781526001600160a01b0390911689820190815290938492918391829160200190565b03915afa92831562000529576200112e9388620010d9938e6000936200128c575b5050620010d2919262000e25565b9062001cec565b6016548a90620010f2906001600160a01b031662000177565b60135462001109906001600160a01b031662000177565b86518681526001600160a01b0390911688820190815290948592918391829160200190565b03915afa801562000529578762001155936000926200126c575b50620010d2919262000e39565b6015546200116c906001600160a01b031662000177565b82518281523085820190815290918a918391908290819060200103915afa9687156200052957620011e3978a96620011b393600092620012455750620010d2919262000e39565b601654620011ca906001600160a01b031662000177565b9151908152309281019283529485928391829160200190565b03915afa918215620005295762000bd3946000936200120a575050620010d2919262000e25565b620010d2935090816200123592903d106200123d575b6200122c818362000a6b565b81019062000d2e565b9138620010c4565b503d62001220565b620010d292506200126590893d8b116200123d576200122c818362000a6b565b9162001148565b620010d2925062001265908d803d106200123d576200122c818362000a6b565b620010d293509081620012ad92903d106200123d576200122c818362000a6b565b918e620010c4565b909650620012de919550833d8511620012e9575b620012d5818362000a6b565b81019062000ddf565b949094953862001048565b503d620012c9565b62000ff992506200131891503d806000833e6200130f818362000a6b565b81019062000d5b565b93915062000fed9050565b62000fce949596506200134590893d8b116200123d576200122c818362000a6b565b95949362000f75565b6200136a919550883d8a116200123d576200122c818362000a6b565b933862000f45565b6200138e919450883d8a116200123d576200122c818362000a6b565b923862000f15565b62000eff9392919650620013b990883d8a116200123d576200122c818362000a6b565b9590919262000eb8565b90600491630667f9d760e41b8152620013e6825180936020868501910162000c9f565b010190565b3d156200141b573d90620013ff8262000d3e565b916200140f604051938462000a6b565b82523d6000602084013e565b606090565b6000805460081c60ff16156200143a575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6200145c57505090565b81925060405182816200149a60208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b03620014af601f199182810185528462000a6b565b620014d56040519182620014c8602082019687620013c3565b0390810183528262000a6b565b51925af15062000b75620014e8620013eb565b6020808251830101910162000b5e565b6015546200150f906001600160a01b031662000177565b60135462001526906001600160a01b031662000177565b604080516370a0823160e01b8082526001600160a01b0384166004808401919091529294929360209390929091908481602481865afa8015620005295762001795575b50601654620015ad90859062001588906001600160a01b031662000177565b88518481526001600160a01b0390961688870190815290959283918291602090910190565b0381875afa8015620005295762001773575b50855181815230868201908152909285918491908290819060200103915afa9182156200052957849262001751575b50855190815230858201908152909283918290819060200103915afa801562000529576200172e575b5050601854620016709060009062001638906001600160a01b031662000177565b6019548551633928ff9760e01b81528581019182526000602083015267016345785d8a00006040830152938492918391829160600190565b03915afa80156200052957620016d392849260009060009362001705575b506200169a9062001bcb565b601354620016b1906001600160a01b031662000177565b9060006019549185519687958694859363bd0625ab60e01b8552840162000df6565b03925af180156200052957620016e7575050565b816200170192903d10620012e957620012d5818362000a6b565b5050565b6200169a93506200172391503d806000833e6200130f818362000a6b565b9491506200168e9050565b816200174892903d106200123d576200122c818362000a6b565b50388062001617565b6200176b90833d85116200123d576200122c818362000a6b565b5038620015ee565b6200178d90853d87116200123d576200122c818362000a6b565b5038620015bf565b620017af90853d87116200123d576200122c818362000a6b565b503862001569565b6040805161106b80820167ffffffffffffffff9183821083831117620005515783620017eb62001ea7938385843962000ac4565b0360009485f080156200052957601580546001600160a01b0319166001600160a01b0390921691909117905584519181830183811085821117620005515783926200183892843962000b10565b039083f080156200052957601680546001600160a01b0319166001600160a01b039283161790556015546200186e911662000177565b803b1562001b4d5783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af18015620005295762001b36575b50601654620018cb906001600160a01b031662000177565b90813b156200059057845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af18015620005295762001b1f575b5060155462001921906001600160a01b031662000177565b60165462001938906001600160a01b031662000177565b908451916105979081840192848410868511176200055157849362001985936200b19786396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200052957601480546001600160a01b0319166001600160a01b03909216919091179055825190612f218083019182118383101762000551578291620019db9162002f1284396000815260200190565b039082f0918215620005295762001a1262001a819360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b60155462001a29906001600160a01b031662000177565b60135490919062001a43906001600160a01b031662000177565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af1928315620005295762001acc94869462001afd575b5060165462001ab2906001600160a01b031662000177565b601354909290620004b7906001600160a01b031662000177565b03925af18015620005295762001ae0575050565b8162001afa92903d10620005215762000511818362000a6b565b50565b62001b1790853d8711620005215762000511818362000a6b565b503862001a9a565b806200056762001b2f92620009ff565b3862001909565b806200056762001b4692620009ff565b38620018b3565b8280fd5b6040519062001b608262000a31565b600582526466616c736560d81b6020830152565b6040519062001b838262000a31565b60048252637472756560e01b6020830152565b6040808252600a9082015269080808081058dd1d585b60b21b606082015260806020820181905262000b759291019062000cc4565b60018115150362001bd95750565b62001cce60407f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506080825160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b626f6f84820152616c5d60f01b6060820152a162001c4a62001b74565b9281519382855262001c76838601604090600a8152690808115e1c1958dd195960b21b60208201520190565b9480860360208201528062001cae7f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf358397889462000cc4565b0390a11562001cdb5762001cc162001b74565b905b519182918262001b96565b0390a162000bd362001df0565b62001ce562001b51565b9062001cc3565b81810362001cf8575050565b62001de2906040907f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506080835160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8582015261745d60f01b6060820152a181519382855262001d8c838601604090600a8152690808115e1c1958dd195960b21b60208201520190565b906020860152847fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89586920390a181519282849384528301604090600a815269080808081058dd1d585b60b21b60208201520190565b9060208301520390a162000bd35b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62001e1f575b5061010061ff00196000541617600055565b6000809160405182602082018381526519985a5b195960d21b6040840152600160608401526060835262001e538362000a4e565b62001e8f6024604051809362001e7e60208301976370ca10bb60e01b89525180928585019062000c9f565b810103600481018452018262000a6b565b51925af15062001e9e620013eb565b503862001e0d56fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c634300081600336080346200007a57601f620037a038819003918201601f19168301916001600160401b038311848410176200007f578084926020946040528339810103126200007a57516001600160a01b038116908190036200007a57600080546001600160a01b03191691909117905560405161370a9081620000968239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630420580a146101b7578063120649c5146101b2578063134ead12146101ad5780631e978cb0146101a8578063306db46b146101a3578063332266f31461019e5780633928ff97146101995780633b268d5d146101945780633b4d10301461018f5780634e817fd91461018a5780634fd67c58146101855780635eb408fc146101805780636237569f1461017b5780636d652299146101765780637f17409c1461017157806381b5fac21461016c578063902ecaa214610167578063a8c62e7614610162578063af4e437f1461015d578063b09d04e514610158578063cb1f553214610153578063ce153bf41461014e578063e94716d514610149578063ee3e8cfb14610144578063f30d37f21461013f5763f9c282111461013a57600080fd5b610aff565b610acf565b610a9e565b610a63565b610a27565b6109e2565b6109af565b610993565b61096a565b610941565b610914565b610872565b610856565b6107e9565b6107cd565b6107a4565b610788565b610759565b61071e565b61048d565b610436565b610407565b6103e2565b610354565b61028e565b610218565b60005b8381106101cf5750506000910152565b81810151838201526020016101bf565b906020916101f8815180928185528580860191016101bc565b601f01601f1916010190565b9060206102159281815201906101df565b90565b3461026b57604036600319011261026b57610267604051600260208201526004356040820152602435606082015260608152610253816102e9565b6040519182916020835260208301906101df565b0390f35b600080fd5b608090600319011261026b5760043590602435906044359060643590565b3461026b5760206102aa6102a136610270565b92919091610b4d565b604051908152f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff8211176102e457604052565b6102b2565b6080810190811067ffffffffffffffff8211176102e457604052565b6060810190811067ffffffffffffffff8211176102e457604052565b90601f8019910116810190811067ffffffffffffffff8211176102e457604052565b6001600160a01b0381160361026b57565b3461026b5760e036600319011261026b5760a036604319011261026b576102676103bc604051610383816102c8565b60443581526064356020820152608435604082015260a435606082015260c4356103ac81610343565b608082015260243560043561139a565b60405191829182610204565b606090600319011261026b57600435906024359060443590565b3461026b5760206102aa6104016103f8366103c8565b91929092610f06565b91611583565b3461026b5760206102aa61041a366103c8565b9061042d61042784610f06565b936110d9565b92919091611670565b3461026b5760206102aa610449366103c8565b9061045661042784610f06565b9290506119da565b8015150361026b57565b90926080926102159594151583526020830152604082015281606082015201906101df565b3461026b57606036600319011261026b5761050360243561061f6004356104b38361045e565b604435926104bf610c57565b936104c8610c57565b946104d2846110d9565b60208496939592960194604096878601928352865284526104f287610f06565b998a9185519087519051918a611009565b921561069657928261054a6105519361054361053e61053661056f9861053160606105979d9c0151866125a2565b6125a2565b8651906125f8565b610c9d565b9351610cb0565b8a52610cb0565b61056385890191808352895188610c4a565b90885190519087610b4d565b9061058e6105836020890193808552610c9d565b808452825111610d31565b51905190610d24565b945b84519260c06020870151848801926105df8451976105d18851998a958693602085016040919493926060820195825260208201520152565b03601f198101845283610321565b600054610602906105f6906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610dbf565b03915afa94851561069157600095610651575b509061064691610267959651905190611583565b905194859485610468565b61026795509061067c610646939260c03d60c01161068a575b6106748183610321565b810190610d88565b505050505095509091610632565b503d61066a565b610b41565b826106df610718966106d2610704956106cb61053e6106c361070f9a61053160606106fc9b0151866125a2565b8551906125f8565b9251610cb0565b9260208d01938452610cb0565b6106f1888c019180835283518b610de3565b915190519089610df0565b808952610c9d565b808852825111610cbd565b51855190610d24565b94610599565b3461026b57604036600319011261026b57610267604051600460208201526004356040820152602435606082015260608152610253816102e9565b3461026b57602036600319011261026b5760206102aa60043561040161077e826110d9565b9291939050610f06565b3461026b5760206102aa61079e6103f8366103c8565b91611b9c565b3461026b5760206102aa6107b7366103c8565b906107c461042784610f06565b92919091611c16565b3461026b5760206102aa6107e036610270565b92919091610df0565b3461026b57604036600319011261026b5761083860043561026761081a61080f836110d9565b919050602435611f7a565b939092848461083261082b84610f06565b8383611583565b92610b4d565b92604051938493846040919493926060820195825260208201520152565b3461026b57600036600319011261026b57602060405160008152f35b3461026b57604036600319011261026b576004356108c06102676108a2610898846110d9565b9150602435611fa7565b92909383856108ba6108b384610f06565b8383611b9c565b92610df0565b91604051938493846040919493926060820195825260208201520152565b805182526020808201519083015260408082015190830152606080820151908301526080908101516001600160a01b0316910152565b3461026b57602036600319011261026b5760a0610932600435610f06565b61093f60405180926108de565bf35b3461026b5760206102aa610954366103c8565b9061096161042784610f06565b92909150611fce565b3461026b57600036600319011261026b576000546040516001600160a01b039091168152602090f35b3461026b5760206102aa6109a636610270565b92919091611009565b3461026b57602036600319011261026b576102676040516001602082015260043560408201526040815261025381610305565b3461026b57602036600319011261026b57610267600435610a0281610343565b60408051600560208201526001600160a01b0390921682820152815261025381610305565b3461026b57602036600319011261026b57610267610a466004356110d9565b604080519384526020840192909252908201529081906060820190565b3461026b57604036600319011261026b57610267604051600360208201526004356040820152602435606082015260608152610253816102e9565b3461026b57604036600319011261026b5761083860043561026761081a610ac4836110d9565b919050602435611fa7565b3461026b57604036600319011261026b576004356108c06102676108a2610af5846110d9565b9150602435611f7a565b3461026b57600036600319011261026b57602060405160788152f35b9081602091031261026b575190565b6040906102159392815281602082015201906101df565b6040513d6000823e3d90fd5b610b85610bee9493929361053184610b7e610b79610b74610b6d88610f06565b809661230a565b61237f565b6123b2565b92516125a2565b916020604051610bbc81610bae85888a8785016040919493926060820195825260208201520152565b03601f198101835282610321565b600054610bd3906105f6906001600160a01b031681565b6040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093610c15575b50610c0f90610f06565b936111f1565b610c0f919350610c3c9060203d602011610c43575b610c348183610321565b810190610b1b565b9290610c05565b503d610c2a565b9161040161021593610f06565b604051906060820182811067ffffffffffffffff8211176102e45760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610cab57565b610c87565b91908201809211610cab57565b15610cc457565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b6103e719810191908211610cab57565b91908203918211610cab57565b15610d3857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c091031261026b578151610d9f8161045e565b9160208101519160408201519160608101519160a0608083015192015190565b610215939260609260018060a01b03168252602082015281604082015201906101df565b9161079e61021593610f06565b92610b79610b74610e0d92949394610e0787610f06565b90612f44565b92670de0b6b3a7640000938403938411610cab57610e2e610e5794836125a2565b916020604051610bbc81610bae8589898785016040919493926060820195825260208201520152565b03915afa9182156106915761021595600093610e7e575b50610e7890610f06565b93611e24565b610e78919350610e9c9060203d602011610c4357610c348183610321565b9290610e6e565b91908260a091031261026b57604051610ebb816102c8565b608080829480518452602081015160208501526040810151604085015260608101516060850152015191610eee83610343565b0152565b9060a08282031261026b5761021591610ea3565b90604051610f13816102c8565b600090818152816080602092828482015282604082015282606082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610691578092610f7a575b506102159293508082518301019101610ef2565b9091503d8082863e610f8c8186610321565b840190828583031261100257845167ffffffffffffffff9586821161100557019082601f830112156110025781519586116102e45760405192610fd8601f8801601f1916860185610321565b86845284878401011161100257506102159394610ffa918480850191016101bc565b908392610f66565b80fd5b8280fd5b61105d939192602060405161103781610bae87868a8785016040919493926060820195825260208201520152565b60018060a01b03600054166040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093611084575b5061107e90610f06565b936121b4565b61107e9193506110a29060203d602011610c4357610c348183610321565b9290611074565b9081602091031261026b575161021581610343565b9081606091031261026b578051916040602083015192015190565b90600460206110f56105f66105f660005460018060a01b031690565b604051632bee84f160e21b815292839182905afa928315610691576111409360609260009161119d575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156106915760008093600093611166575b50929190565b9193505061118c915060603d606011611196575b6111848183610321565b8101906110be565b9290929138611160565b503d61117a565b6111bf915060203d6020116111c5575b6111b78183610321565b8101906110a9565b3861111f565b503d6111ad565b6111ef9360609296959361010083019783526020830152604082015201906108de565b565b929360009385929185851215611367575b8585126113485790610bae611224925b604096604051958694602086016111cc565b81859285968281116113255761123a818561337f565b92611245818661337f565b88611250828761152f565b136113045750906112649197969297610d24565b60019591829187805b61127f575b5050505050505050505090565b156112e0575b5086979850819261129f6112998b89610cb0565b60011c90565b996112aa8b8861337f565b90846112b6888461152f565b136112d457505089935b886112cb8987610d24565b9201949961126d565b8b9850909550936112c0565b601410806112fb575b156112f45788611285565b8080611272565b508083106112e9565b6040516306f1be5d60e21b8152600481018690526024810191909152604490fd5b604051633082dfdb60e11b81526004810191909152602481019290925250604490fd5b935091611354906125ce565b91611361848385846124a9565b93611202565b85851361137b5790610bae61122492611212565b935094611387906123f5565b94611394848388846124a9565b93611367565b916113ab610b79610b748385612f44565b91670de0b6b3a7640000928303928311610cab57611402826113ee6113e3610b79610b74846113dd6114209a8c6125f8565b9761230a565b6105318584516125a2565b926113fb8282868a6124a9565b84886121b4565b906040519460208601526040850152606084015260808301906108de565b6101008152610120810181811067ffffffffffffffff8211176102e45760405290565b90670de0b6b3a764000060008382039312818412811691841390151617610cab57565b90671bc16d674ec8000060008382039312818412811691841390151617610cab57565b9067119000ab100ffbff198201918213600116610cab57565b81810392916000138015828513169184121617610cab57565b90670de0b6b3a764000091828102928184051490151715610cab57565b90671bc16d674ec8000091828102928184051490151715610cab57565b90633b9aca0091828102928184051490151715610cab57565b60008190039190600160ff1b8114600116610cab57600019830503610cab57565b818102929160008212600160ff1b821416610cab578184051490151715610cab57565b811561156d57600160ff1b8114600019831416610cab570590565b634e487b7160e01b600052601260045260246000fd5b9190916115be60208301936115b885516115b06115a66040880192835190612843565b975182519061286c565b905190612414565b92612435565b92670de0b6b3a76400008085121561163c5760008513156116315760008582039512818612811691861390151617610cab5761162561162a92611620611612610b799461160d6102159961288b565b61152f565b670de0b6b3a7640000900590565b6114a2565b612917565b90516125a2565b505050505060001990565b5050505050600090565b90959492936111ef94608093610120840198845260208401526040830152606082015201906108de565b909291828651602088015160408901519060608a01519261169083612ac8565b6116999061185a565b936116a390611443565b906116ad8a612b86565b6116b68b611981565b6116bf91612c38565b6116c88b611981565b6116d184612bb5565b6116da916114a2565b6116e49088612c38565b6116ed91612cb5565b6116f690612cd3565b9361170084612fbb565b611709906114d8565b670de0b6b3a7640000900561171d90612917565b9061172791612c38565b61173090612c67565b611739906119c9565b848661174486612c09565b9061174e91612c38565b9061175891612c38565b611761916119ad565b61176a90612917565b826117758c84612c38565b9061177f91612c38565b61178891612c38565b6117918b611981565b61179a84612bb5565b6117a3916114a2565b6117ac91612cb5565b956117b691612c38565b906117c090611993565b6117c991612c38565b926117d391612c38565b6117dc90612c8e565b906117e6916114a2565b6117ef90612e24565b6117f891612c38565b61180186612b86565b61180a91612cb5565b90611814846119c9565b9061181e916119ad565b90611828916119ad565b60001361184f576102159561184a93610bae9260405196879560208701611646565b61264d565b505050505050600090565b90633b9aca0091828102928184041490151715610cab57565b9081672005fe4f268ea00001918212600116610cab57565b9081670dc5527f642c200001918212600116610cab57565b9081670de0b6b3a764000001918212600116610cab57565b9081670b68df18e471fbff190191821215600116610cab57565b90816714a8454c19e1ac0001918212600116610cab57565b9081670fc10e01578277ff190191821215600116610cab57565b90816703debd083b8c7c0001918212600116610cab57565b9081670295d400ea3257ff190191821215600116610cab57565b9081670157d8b2ecc7080001918212600116610cab57565b90816705310aa7d521300001918212600116610cab57565b9081670de0cc3d1561000001918212600116610cab57565b90816103e801918212600116610cab57565b9081670de0b6b3a763ffff190191821215600116610cab57565b91909160008382019384129112908015821691151617610cab57565b600160ff1b8114610cab5760000390565b939290919280519160208201519060408301519260600151936119fc84612ac8565b611a059061185a565b94611a0f90611443565b9182611a1a88612b86565b611a2489846119ad565b611a2d91612c38565b611a3789846119ad565b611a418385612c38565b611a4a916114a2565b611a54908b612c38565b611a5d91612cb5565b611a6690612cd3565b95611a7086612fbb565b611a79906114d8565b670de0b6b3a76400009005611a8d90612917565b90611a9791612c38565b611aa090612c67565b611aa9906119c9565b8688611ab488612c09565b90611abe91612c38565b90611ac891612c38565b611ad1916119ad565b611ada90612917565b81611ae58a86612c38565b90611aef91612c38565b611af891612c38565b91611b0389826119ad565b91611b0d91612c38565b611b16916114a2565b611b1f91612cb5565b96611b2991612c38565b90611b3390611993565b611b3c91612c38565b92611b4691612c38565b611b4f90612c8e565b90611b59916114a2565b611b6290612e24565b611b6b91612c38565b90611b7590612b86565b611b7e91612cb5565b91611b88906119c9565b90611b92916119ad565b90610215916119ad565b919091611bda6020830191611bd4611bcc84516115b0611bc26040890192835190612843565b965182519061286c565b958551612414565b90612435565b670de0b6b3a7640000918282121561163c576000821315611631576102159461162a93611c106116259361160d610b799661288b565b056119ad565b909291855160208701516040880151606089015191611c3482612ac8565b611c3d9061185a565b92611c4790611443565b93611c5186612b86565b611c5a87611981565b611c6391612c38565b611c6d8983612c38565b611c7688611981565b611c7f91612c38565b611c88906119c9565b86611c938b85612c38565b611c9c90612bde565b90611ca691612c38565b611caf916119ad565b611cb891612cb5565b611cc1906119c9565b611cca90612cd3565b92611cd483612fbb565b611cdd906114d8565b670de0b6b3a76400009005611cf190612917565b90611cfb91612c38565b611d0490612c67565b611d0d906119c9565b8385611d1885612c09565b90611d2291612c38565b90611d2c91612c38565b611d35916119ad565b611d3e90612917565b85611d49888a612c38565b90611d5391612c38565b611d5c91612c38565b90611d6687611981565b611d6f87612bb5565b611d78916114a2565b611d8191612c38565b611d8a91612cb5565b93611d958789612c38565b90611d9f90611993565b611da891612c38565b92611db291612c38565b611dbb90612c8e565b90611dc5916114a2565b611dce90612e24565b611dd791612c38565b611de083612b86565b611de991612cb5565b90611df390611993565b90611dfd916119ad565b60001361184f5761021595611e1f93610bae9260405196879560208701611646565b61276c565b929360009385929185851215611f47575b858512611f285790610bae611e5692604096604051958694602086016111cc565b818592859682811161132557611e6c81856133a0565b92611e7781866133a0565b88611e82828761152f565b13611304575090611e969197969297610d24565b60019591829187805b611eb0575050505050505050505090565b15611f0b575b50869798508192611eca6112998b89610cb0565b99611ed58b886133a0565b9084611ee1888461152f565b13611eff57505089935b88611ef68987610d24565b92019499611e9f565b8b985090955093611eeb565b60141080611f1f575b156112f45788611eb6565b50808310611f14565b935091611f34906125ce565b91611f41848383866124a9565b93611e35565b858513611f5b5790610bae611e5692611212565b935094611f67906123f5565b94611f74848383896124a9565b93611f47565b929190611f90611f8a82846125f8565b856125a2565b938103908111610cab57928103908111610cab5790565b929190611fb7611f8a82846125f8565b938101809111610cab57928101809111610cab5790565b9390929181516020830151916040840151936060015194611fee85612ac8565b611ff79061185a565b9561200190611443565b928361200c89612b86565b6120168a856119ad565b61201f91612c38565b6120298584612c38565b6120338b866119ad565b61203c91612c38565b612045906119c9565b82856120518887612c38565b9061205b91612c38565b9061206591612c38565b61206e916119ad565b61207791612cb5565b612080906119c9565b61208990612cd3565b9661209387612fbb565b61209c906114d8565b670de0b6b3a764000090056120b090612917565b906120ba91612c38565b6120c390612c67565b6120cc906119c9565b87896120d789612c09565b906120e191612c38565b906120eb91612c38565b6120f4916119ad565b6120fd90612917565b816121088b8d612c38565b9061211291612c38565b61211b91612c38565b926121268a826119ad565b9161213091612c38565b612139916114a2565b61214291612c38565b61214b91612cb5565b9661215591612c38565b9061215f90611993565b61216891612c38565b9261217291612c38565b61217b90612c8e565b90612185916114a2565b61218e90612e24565b61219791612c38565b906121a190612b86565b6121aa91612cb5565b90611b9290611993565b9293600093859291858512156122d7575b8585126122b85790610bae6121e692604096604051958694602086016111cc565b8185928596828111611325576121fc81856133c2565b9261220781866133c2565b88612212828761152f565b136113045750906122269197969297610d24565b60019591829187805b612240575050505050505050505090565b1561229b575b5086979850819261225a6112998b89610cb0565b996122658b886133c2565b9084612271888461152f565b1361228f57505089935b886122868987610d24565b9201949961222f565b8b98509095509361227b565b601410806122af575b156112f45788612246565b508083106122a4565b9350946122c4906123f5565b946122d1848784846124a9565b936121c5565b8585136122eb5790610bae6121e692611212565b9350916122f7906125ce565b91612304848484846124a9565b936122d7565b61237a6123756102159361236f61236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b9d6125f8565b612fbb565b97612fbb565b6114d8565b05612917565b612414565b612457565b906114a2565b6114bb565b611552565b6123ae6123756123a96713a04bbdfdc9be886123a3671bc16d674ec80000956114bb565b056119c9565b612e24565b0590565b600081126123bd5790565b60405162461bcd60e51b815260206004820152601060248201526f746f55696e743a206e6567617469766560801b6044820152606490fd5b6103e79081810291818304149015176001161561026b576103e8900490565b81810291818304149015176001161561026b57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517821515161561026b570490565b6706f05b59d3b2000090808202918204146001161561026b57670de0b6b3a7640000900490565b670de0b6b3a76400009081810291818304149015176001161561026b57671bc16d674ec80000900490565b90928282101561255d57610215936125269284670de0b6b3a764000091826124d18383612435565b1061254a57506001600160ff1b039590505b8351916124f96124f38385612414565b85612435565b1061252b57506001600160ff1b0392612520925090505b6040602082015191015190612843565b926119ad565b6119ad565b61252092611bd461253f9261254494612414565b61288b565b91612510565b6125579161253f91612435565b946124e3565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b81810291818304149015176001161561026b576001670de0b6b3a7640000600019830104019015150290565b6103e99081810291818304149015176001161561026b5760016103e8600019830104019015150290565b90670de0b6b3a7640000918281029281840414901517811515161561026b57600190600019830104019015150290565b6101008183031261026b57805192610215602083015193606060408501519401610ea3565b91906103e89260009360009183821161274b57612669816133e2565b6126738583613521565b600061267f828461152f565b1361272c5750612690859695610d14565b60019460009186805b6126aa575b50505050505050509050565b15612707575b50859697985080916126c56112998b88610cb0565b996126d08b87613521565b90836126dc878461152f565b136126fb57505089925b876126f18886610d24565b9201939998612699565b8b9750909450926126e6565b861080612721575b1561271a57886126b0565b808061269e565b50610100821061270f565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e89260009360009183821161274b5761278881613543565b61279285836136b3565b600061279e828461152f565b1361272c57506127af859695610d14565b60019460009186805b6127c85750505050505050509050565b15612825575b50859697985080916127e36112998b88610cb0565b996127ee8b876136b3565b90836127fa878461152f565b1361281957505089925b8761280f8886610d24565b92019399986127b8565b8b975090945092612804565b861080612838575b1561271a57886127ce565b50610100821061282d565b9061284d90612ac8565b633b9aca0090818102918183041490151715610cab5761021591612414565b61021591612365670de0b6b3a764000061235f61235a61236a95612fbb565b6706f05b59d3b20000811461291157670de0b6b3a764000090818112156128ff5780156128ed578060011b908105600203610cab576128c990612cd3565b906713a04bbdfdc9be8891808302928305146001161561026b5761021591056119c9565b6040516322ed598560e21b8152600490fd5b6040516307a0212760e01b8152600490fd5b50600090565b680248ce36a70cb26b3e1981131561291157680755bf798b4a1bf1e5811215612a67576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b91906101208382031261026b57825192602081015192610215604083015193608060608501519401610ea3565b60b581600160881b811015612b6f575b80690100000000000000000062010000921015612b62575b65010000000000811015612b55575b6301000000811015612b48575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b91612b0c565b60201c9160101b91612aff565b60401c9160201b91612af0565b5068b500000000000000009050608082901c612ad8565b671bc16d674ec8000081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e881810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e88082029160016000198210179181840514901517161561026b57670de0b6b3a7640000900590565b6713a04bbde78cc40081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b90911317161561026b57670de0b6b3a7640000900590565b670de0b6b3a764000090818102918205146001161561026b57671bc16d674ec80000900590565b670de0b6b3a764000090818102918205146001161561026b576713a04bbde78cc400900590565b670de0b6b3a76400009081810291820514821515161561026b570590565b600081128015612e13575b612e015780156128ff57671bc16d674ec8000081146128ed57670de0b6b3a76400008112908115612df257905b612d1482613189565b80156128ff57612d7d612d41612d3c612d37612d32612d8295612fbb565b61324a565b612ac8565b6114f5565b611620612d55612d50836131b4565b611873565b612d77612d72612d6c612d67866131df565b61188b565b856132c1565b6118a3565b90613228565b613272565b916000905b60028210612da257505015612d995790565b610215906119c9565b9092612dea81612de4612dba85611620600196612e24565b612d77612dda612dd5611625612dd087806132c1565b6119c9565b61329a565b61236f83866132c1565b906119ad565b930190612d87565b612dfb90611466565b90612d0b565b604051632d0483c560e21b8152600490fd5b50671bc16d674ec800008113612cde565b8015612f3757675698eef06670000081121561291157675698eef0666fffff19811315612f2a576000612f1a612e598361315c565b612ee2611625612e73612e6e612d728561247e565b613209565b92612526612f15612f10612f09612f03612efe612ef8612ef3612eed612ee88d612ee2612edd612ed7612ed2612d6c612ecd612ec7612ec2612ebc612eb78a6132e2565b6118bb565b896132c1565b6118d5565b876132c1565b6118ed565b611907565b836132c1565b61191f565b906132c1565b611939565b8c6132c1565b611951565b8a6132c1565b611969565b886132c1565b93806132c1565b61150e565b611489565b9112156102155761021590611466565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b61237a61237561021593612de461236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b15612f8a57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b886428490612fe760008213612f83565b711340daa0d5f769dba1915cef59f0815a55066130038261330d565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b600160ff1b8114613177576000811215610215571960010190565b604051634d2d75b160e01b8152600490fd5b670de0b6b3a76400009081810291818305149015176001161561026b57671bc16d674ec80000900590565b6703c1665c7aab20009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b669f32752462a0009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b6001811515161561026b576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029181830514901517821515161561026b570590565b671bc16d674ec7ffff1981810291600191830514161561026b57670de0b6b3a7640000900590565b6709d028cc6f205fff1981810291600191830514161561026b57670de0b6b3a7640000900590565b670fa8cedfc2adddfa90808202918205146001161561026b57670de0b6b3a7640000900590565b81810291818305149015176001161561026b57670de0b6b3a7640000900590565b67025f0fe105a314009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b613318811515612f83565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b906133966102159260208082518301019101612628565b93919290506124a9565b906133b76102159260208082518301019101612628565b9390509190916124a9565b906133d96102159260208082518301019101612628565b939290506124a9565b8051810160200190602001906133f791612a9b565b809193925051906020810151604082015191606001519261341783612ac8565b6134209061185a565b9361342a90611443565b9061343486612b86565b61343d87611981565b61344691612c38565b61344f87611981565b61345884612bb5565b613461916114a2565b61346b9089612c38565b61347491612cb5565b61347d90612cd3565b9361348784612fbb565b613490906114d8565b670de0b6b3a764000090056134a490612917565b906134ae91612c38565b6134b790612c67565b6134c0906119c9565b84866134cb86612c09565b906134d591612c38565b906134df91612c38565b6134e8916119ad565b6134f190612917565b826134fc8884612c38565b9061350691612c38565b61350f91612c38565b61351887611981565b611b0d84612bb5565b906135386102159260208082518301019101612a9b565b9493909291506119da565b80518101602001906020019061355891612a9b565b809192935051602082015190604083015192606001519361357884612ac8565b6135819061185a565b9461358b90611443565b9161359587612b86565b61359e88611981565b6135a791612c38565b6135b18383612c38565b6135ba89611981565b6135c391612c38565b6135cc906119c9565b846135d78585612c38565b6135e090612bde565b906135ea91612c38565b6135f3916119ad565b6135fc91612cb5565b613605906119c9565b61360e90612cd3565b9461361885612fbb565b613621906114d8565b670de0b6b3a7640000900561363590612917565b9061363f91612c38565b61364890612c67565b613651906119c9565b858761365c87612c09565b9061366691612c38565b9061367091612c38565b613679916119ad565b61368290612917565b8361368d898b612c38565b9061369791612c38565b6136a091612c38565b906136aa88611981565b61213085612bb5565b906136ca6102159260208082518301019101612a9b565b9493909250611fce56fea2646970667358221220f3e875cd9c43c4535da38090630f644037f96036f7dad55519e2d7d792047e4b64736f6c6343000816003360803461007457601f611bc438819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051611b3490816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b6109e4565b6109bb565b610814565b6107da565b610674565b6103dc565b6102e1565b61023d565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101df565b838082518301019101610a17565b9061010d6100ff600435610b92565b868082518301019101610a32565b92610d8d565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761015057604052565b61011e565b60c0810190811067ffffffffffffffff82111761015057604052565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101bd601f8201601f191660200184610171565b8294818452818301116101da578281602093846000960137010152565b600080fd5b9080601f830112156101da578160206101fa93359101610193565b90565b919082519283825260005b848110610229575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610208565b346101da5760003660031901126101da57604051604081019080821067ffffffffffffffff8311176101505761029a916040526009815268131bd9d39bdc9b585b60ba1b60208201526040519182916020835260208301906101fd565b0390f35b906040516080810181811067ffffffffffffffff821117610150576040526060600382948054845260018101546020850152600281015460408501520154910152565b346101da5760203660031901126101da5760043560005260016020526101c0604060002061030e8161029e565b9061031b6004820161029e565b906103bd61032b6008830161029e565b610393600c84015493600d60018060a01b03910154169461036d6040518098606080918051845260208101516020850152604081015160408501520151910152565b80516080880152602081015160a0880152604081015160c08801526060015160e0870152565b80516101008601526020810151610120860152604081015161014086015260600151610160850152565b6101808301526101a0820152f35b6001600160a01b038116036101da57565b346101da576060806003193601126101da576103f96004356103cb565b6024356044359167ffffffffffffffff83116101da576104206104829336906004016101df565b8161043c61042d85610b92565b60208082518301019101610a32565b60005490949061046290610456906001600160a01b031681565b6001600160a01b031690565b60405180809881946333854efd60e21b8352600483019190602083019252565b03915afa801561061457600091829583926105d9575b50806020806104ac93518301019101610a17565b939194909682861160001461054c5750916104ed826104e8836104e36104fe976104d96104f5988c610aa3565b908c0151906112af565b6112af565b6112db565b505b83610afe565b93828685610d8d565b9384601319129283610541575b61029a9394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b60148612935061050b565b90929091508187111561057b57610575826104e8836104e36104fe976104d96104f5988e610aa3565b506104ef565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9095506104ac92506106019150833d851161060d575b6105f98183610171565b810190610a17565b95919290959190610498565b503d6105ef565b610a81565b9060606003198301126101da57600435610632816103cb565b916024359160443567ffffffffffffffff928382116101da57806023830112156101da5781600401359384116101da57602484830101116101da576024019190565b346101da5761068236610619565b600054929350916001600160a01b031633036107c85761078661077e61042d610779956106c0608095610743976106b7610b67565b50810190610e8c565b6020819b949a9399929b01516106e0866000526001602052604060002090565b55604081015160046106fc876000526001602052604060002090565b015580516008610716876000526001602052604060002090565b01556060810151600c610733876000526001602052604060002090565b015501516001600160a01b031690565b600d610759846000526001602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610b92565b848385610d8d565b92836013191291826107bd575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b601485129250610793565b604051636853cba760e01b8152600490fd5b346101da5760606107ea36610619565b818094509492940103126101da5780359061078661077e61042d6040602085013594013595610b92565b346101da5761082236610619565b6000549093906001600160a01b0390811633036107c857610863610456600d610855876000526001602052604060002090565b01546001600160a01b031690565b9116036109a95761087683820182610b32565b61087f81610b47565b600181036108b857506108a261089d6108b392600c94953691610193565b610fc3565b926000526001602052604060002090565b01555b005b6108c181610b47565b600381036108fd5750906108e56108e06108f8936108b6953691610193565b610f19565b9290916000526001602052604060002090565b610f41565b61090681610b47565b6004810361094057509060046109276108e061093a946108b6963691610193565b9390926000526001602052604060002090565b01610f41565b61094981610b47565b6002810361096a57509060086109276108e061093a946108b6963691610193565b80610976600592610b47565b03610997576107596108a2610992600d936108b6963691610193565b610ef1565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101da5760003660031901126101da576000546040516001600160a01b039091168152602090f35b346101da5760203660031901126101da5761029a610a03600435610b92565b6040519182916020835260208301906101fd565b908160609103126101da578051916040602083015192015190565b908160a09103126101da57608060405191610a4c83610134565b805183526020810151602084015260408101516040840152606081015160608401520151610a79816103cb565b608082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610ab057565b610a8d565b91908201809211610ab057565b90671bc16d674ec8000060008382039312818412811691841390151617610ab057565b9067119000ab100ffbff198201918213600116610ab057565b81810392916000138015828513169184121617610ab057565b600160ff1b8114610ab05760000390565b600611156101da57565b908160209103126101da57356101fa81610b28565b60061115610b5157565b634e487b7160e01b600052602160045260246000fd5b60405190610b7482610134565b60006080838281528260208201528260408201528260608201520152565b610b9a610b67565b816000526001602052610bb8610bb3604060002061029e565b610ff8565b9160208201928352806000526001602052610bdc610bb3600860406000200161029e565b8252600c610c1d610c05610bb36004610bff866000526001602052604060002090565b0161029e565b92604085019384526000526001602052604060002090565b015490606083019182526040519383516020860152516040850152516060840152516080830152608060018060a01b039101511660a082015260a081526101fa81610155565b9081672005fe4f268ea00001918212600116610ab057565b9081670dc5527f642c200001918212600116610ab057565b9081670de0b6b3a764000001918212600116610ab057565b9081670b68df18e471fbff190191821215600116610ab057565b90816714a8454c19e1ac0001918212600116610ab057565b9081670fc10e01578277ff190191821215600116610ab057565b90816703debd083b8c7c0001918212600116610ab057565b9081670295d400ea3257ff190191821215600116610ab057565b9081670157d8b2ecc7080001918212600116610ab057565b90816705310aa7d521300001918212600116610ab057565b9081670de0cc3d1561000001918212600116610ab057565b91909160008382019384129112908015821691151617610ab057565b909282821015610e47576101fa93610e0a9284670de0b6b3a76400009182610db5838361130b565b10610e3457506001600160ff1b039590505b835191610ddd610dd7838561132d565b8561130b565b10610e0f57506001600160ff1b0392610e04925090505b6040602082015191015190611286565b92610d71565b610d71565b610e0492610e23610e2992610e2e9461132d565b9061130b565b6110b3565b91610df4565b610e4191610e299161130b565b94610dc7565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b80910361010081126101da5781359260208301359260a0604082013593605f1901126101da5760e060405191610ec183610134565b606081013583526080810135602084015260a0810135604084015260c081013560608401520135610a79816103cb565b6040818051810103126101da5780610f0e60206040930151610b28565b0151610456816103cb565b6060818051810103126101da57610f336020820151610b28565b606060408201519101519091565b919042821115610fb157610f57610bb38461029e565b9081845542600385015542830391838311610ab057610f7591610afe565b428314610f9b57600160ff1b8114600019831416610ab057600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101da5780610fe060206040930151610b28565b015190565b81810292918115918404141715610ab057565b606081015160208201518082146110735780421160001461106b57905b8103908111610ab05760408201908151600081136000146110485750611042906101fa9351925190610fe5565b90610ab5565b9261105f9250611059905193610b17565b90610fe5565b8103908111610ab05790565b504290611015565b50505190565b90633b9aca0091828102928184051490151715610ab057565b60008190039190600160ff1b8114600116610ab057600019830503610ab057565b6706f05b59d3b20000811461128057670de0b6b3a76400008082121561122a57811561124b5760018260011b916002938305600203610ab05760008312801561126f575b61125d57821561122a57671bc16d674ec80000831461124b57821291821561123c57925b611124846118db565b801561122a5761119661115561115061114b61114661119b959997969961146f565b61199c565b611379565b611079565b61119161116961116483611906565b610c63565b61118b61118661118061117b86611931565b610c7b565b85611a13565b610c93565b9061197a565b610afe565b6119c4565b936000925b8184106111d257505050506101fa916111bf916000146111c4576118b4565b610b17565b6111cd90610b17565b6118b4565b90916112208661121a6111ea8561119186999b611610565b61118b61120a6112056112006111bf8780611a13565b611730565b6119ec565b6112148386611a13565b90610afe565b90610d71565b95019291906111a0565b6040516307a0212760e01b8152600490fd5b61124590610ac2565b9261111b565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec8000083136110f7565b50600090565b9061129090611379565b633b9aca0090818102918183041490151715610ab0576101fa9161132d565b8181029181830414901517600116156101da576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101da57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101da570490565b8181029181830414901517600116156101da57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517600116156101da57671bc16d674ec80000900490565b60b581600160881b811015611420575b80690100000000000000000062010000921015611413575b65010000000000811015611406575b63010000008110156113f9575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916113bd565b60201c9160101b916113b0565b60401c9160201b916113a1565b5068b500000000000000009050608082901c611389565b1561143e57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642849061149b60008213611437565b711340daa0d5f769dba1915cef59f0815a55066114b782611a5f565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b801561172357675698eef06670000081121561128057675698eef0666fffff1981131561171657600061170661164583611ad1565b6116ce61120061165f61165a6111868561134e565b61195b565b92610e0a6117016116fc6116f56116ef6116ea6116e46116df6116d96116d48d6116ce6116c96116c36116be6111806116b96116b36116ae6116a86116a38a611a34565b610cab565b89611a13565b610cc5565b87611a13565b610cdd565b610cf7565b83611a13565b610d0f565b90611a13565b610d29565b8c611a13565b610d41565b8a611a13565b610d59565b88611a13565b9380611a13565b611092565b610ae5565b9112156101fa576101fa90610ac2565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b680248ce36a70cb26b3e1981131561128057680755bf798b4a1bf1e5811215611880576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be889080820291820514600116156101da57670de0b6b3a7640000900590565b670de0b6b3a7640000908181029181830514901517600116156101da57671bc16d674ec80000900590565b6703c1665c7aab2000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b669f32752462a000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b600181151516156101da576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a764000090818102918183051490151782151516156101da570590565b671bc16d674ec7ffff198181029160019183051416156101da57670de0b6b3a7640000900590565b6709d028cc6f205fff198181029160019183051416156101da57670de0b6b3a7640000900590565b670fa8cedfc2adddfa9080820291820514600116156101da57670de0b6b3a7640000900590565b8181029181830514901517600116156101da57670de0b6b3a7640000900590565b67025f0fe105a31400908181029181830514901517600116156101da57670de0b6b3a7640000900590565b611a6a811515611437565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b600160ff1b8114611aec5760008112156101fa571960010190565b604051634d2d75b160e01b8152600490fdfea2646970667358221220b596d744fe988e0f66eb3212b01d8a9e660acea43730ff108a9b5edd5f05d2b364736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a264697066735822122022a4e39d35d5d289e76a1826edf762819d94a525bc2d556348a2d56f042ef3e264736f6c63430008160033","sourceMap":"88:2108:80:-:0;;;1594:4:0;88:2108:80;;1594:4:0;88:2108:80;;;1594:4:0;88:2108:80;378:11:59;88:2108:80;378:11:59;:4:31;:11:59;88:2108:80;378:11:59;;362:159:79;378:11:59;;362:159:79;378:11:59;;;;362:159:79;378:11:59;509:4:79;362:159;378:11:59;;362:159:79;378:11:59;;;;;;;;509:4:79;378:11:59;;;;;;;;;;;;554:3:79;378:4:31;554:3:79;378:11:59;;554:3:79;586;378:4:31;362:159:79;378:11:59;;586:3:79;378:11:59;634:68:79;554:3;378:11:59;362:159:79;378:11:59;;;:::i;:::-;634:68:79;;:::i;:::-;378:11:59;:::i;:::-;88:2108:80;;;;;;;;;;;;;378:11:59;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;;;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;378:11:59;;;;-1:-1:-1;;;;;378:11:59;;;;;;;;;;:::o;:::-;88:2108:80;;378:11:59;;;;:::i;:::-;362:159:79;378:11:59;;;;;;;;;;;88:2108:80;378:11:59;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;378:11:59;634:68:79;-1:-1:-1;378:11:59;;-1:-1:-1;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;378:11:59;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;;;634:68:79;378:11:59;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:68:79;378:11:59;:::o;:::-;;;;-1:-1:-1;378:11:59;;;;;634:68:79;378:11:59;;-1:-1:-1;;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:68:79;378:11:59;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5320:526:37;378:11:59;;2443:12:37;;;378:11:59;;;2457:10:37;;;;378:11:59;;;2497:31:37;;;;:::i;:::-;1133:19:18;;;;;:::i;:::-;303:29:45;;;:::i;:::-;378:4:31;;1399:8:18;;;;:::i;:::-;:12;;;:::i;:::-;88:2108:80;1391:36:18;;;:::i;:::-;631:21;;;;:::i;:::-;;;;:::i;:::-;2657:36:37;;;:::i;:::-;2656:45;;;:::i;:::-;:68;;;;:::i;:::-;1009:16;;;:::i;:::-;1053:24;;;:::i;:::-;88:2108:80;;;;;;;1133:19:18;;;;:::i;:::-;378:11:59;;;;;;;3255:31:37;;;;;:::i;:::-;1133:19:18;;;;:::i;:::-;303:29:45;;;:::i;:::-;1399:8:18;;;;:::i;:::-;:12;;;:::i;:::-;88:2108:80;1391:36:18;;;:::i;:::-;631:21;;;;:::i;:::-;;;;:::i;:::-;3415:36:37;;;:::i;:::-;3414:45;;;:::i;:::-;:68;;;;:::i;:::-;1444:16;;;:::i;:::-;1488:24;;;:::i;:::-;378:11:59;;;799:19:18;;;;:::i;:::-;;;;;:::i;:::-;5620:111:37;;;;;;;;:::i;:::-;5741:55;;;;;;:::i;:::-;2457:10;88:2108:80;;2443:12:37;5809:34;;;88:2108:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;88:2108:80;;;;;;;;5809:34:37;;;88:2108:80;;5809:34:37;:::i;:::-;5320:526;:::o;88:2108:80:-;378:11:59;;;88:2108:80;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;1905:7:21;88:2108:80;;;;;;;;:::o;:::-;;2650:19:21;;;88:2108:80;;;;;;;;;:::o;:::-;;;2590:20:21;88:2108:80;;;;;;;;:::o;:::-;;2529:21:21;;;88:2108:80;;;;;;;;;:::o;:::-;;;2463:18:21;88:2108:80;;;;;;;;:::o;:::-;;2396:19:21;;;88:2108:80;;;;;;;;;:::o;:::-;;;2331:17:21;88:2108:80;;;;;;;;:::o;:::-;;;2265:18:21;88:2108:80;;;;;;;;:::o;:::-;;;2205:20:21;88:2108:80;;;;;;;;:::o;:::-;;;2852:20:21;88:2108:80;;;;;;;;:::o;:::-;;;2980:18:21;88:2108:80;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;2719:1063:44:-;;;2907:6;;;88:2108:80;;;3754:21:44;2955:12;3754:13;2955:12;378:4:31;;965:21:18;;;;;;:::i;:::-;3003:42:44;378:4:31;;-1:-1:-1;;;;;;3076:12:44;2999:197;-1:-1:-1;2999:197:44;378:11:59;;631:21:18;965;631;;;;:::i;:::-;965;;:::i;:::-;3222:117:44;378:4:31;;-1:-1:-1;;;;;;3076:12:44;3690:45;;-1:-1:-1;3205:453:44;-1:-1:-1;3205:453:44;3724:10;3710:12;;;378:11:59;3724:10:44;;378:11:59;3690:45:44;;:::i;:::-;3754:13;;:::i;:::-;:21;:::i;3205:453::-;3690:45;631:21:18;;965;631;3431:216:44;631:21:18;;:::i;:::-;965;;:::i;:::-;3431:216:44;:::i;:::-;3205:453;;;2999:197;3128:57;965:21:18;;;;:::i;3128:57:44:-;2999:197;;;88:2108:80;;;-1:-1:-1;;;88:2108:80;;;;;;;;;;;;;;;;;;;;5848:1096:37;6037:29;;5848:1096;6037:29;;5848:1096;;6173:1;6153:21;;;6173:1;;;6193:21;;;;;;6149:612;;6789:45;;6149:612;6770:171;6149:612;;;;;88:2108:80;;6789:45:37;;;;;;88:2108:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;;;;;88:2108:80;;;378:11:59;88:2108:80;;;;6789:45:37;;378:11:59;;6789:45:37;;;;;;:::i;:::-;6770:171;:::i;6186:274::-;6238:27;;;;;:::i;:::-;6299:150;;;;;;;:::i;:::-;6186:274;;;6149:612;6489:21;;;;;6149:612;;6789:45;;6149:612;6770:171;6149:612;;;;;;6482:273;6549:4;;;;8417:611:18;;;;;;;;;;;;;;;;;;6555:4:37;378:11:59;;8417:611:18;;;;;;;;6594:150:37;;;;;;;:::i;:::-;6482:273;;;8417:611:18;;;;88:2108:80;;378:4:31;88:2108:80;;;;;;;;;;;;;;;:::o;:::-;;317:4:31;88:2108:80;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;88:2108:80;;378:11:59;88:2108:80;;;-1:-1:-1;;88:2108:80;;;;;:::o;:::-;;1774:3:21;88:2108:80;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;;88:2108:80;;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;88:2108:80;;-1:-1:-1;;88:2108:80;;;;;;;:::o;:::-;378:11:59;;;88:2108:80;;;;;;;;2046:20:21;-1:-1:-1;;;2046:20:21;;;;;;;:::o;7612:209::-;7796:11;7768:13;7737:6;2046:20;7694:7;1949;7612:209;7694:7;:::i;:::-;88:2108:80;7737:6:21;:::i;:::-;7768:13;:::i;:::-;7796:11;:::i;:::-;88:2108:80;7612:209:21;:::o;7135:175:44:-;7240:1;7235:6;;88:2108:80;;7135:175:44;:::o;88:2108:80:-;;;-1:-1:-1;;;88:2108:80;;;;;;;;;;;;-1:-1:-1;;;88:2108:80;;;;;;;;;;;;;;;;;;;;:::o;:::-;;317:4:31;88:2108:80;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;88:2108:80;;;;;;;;;;;;;:::o;9402:337:21:-;1324:9;9472:21;;9468:43;;1905:7;9525:8;;;;9521:31;;9566:6;;9562:37;;88:2108:80;;;;9629:1:21;;88:2108:80;;;9629:1:21;88:2108:80;;;-1:-1:-1;5990:5:21;;:20;;;;9402:337;5986:46;;6046:6;;6042:29;;6090:7;6085:12;;6081:43;;6178:7;;;6177:23;;;;;;1053:19:23;;;:::i;:::-;6257:13:21;;6253:36;;6632:35;6363:55;6370:33;958:19:23;6311:16:21;958:19:23;6311:16:21;;;;;;:::i;:::-;958:19:23;:::i;:::-;6370:33:21;:::i;:::-;6363:55;:::i;:::-;1053:19:23;6481:29:21;958:19:23;;;:::i;:::-;6481:29:21;:::i;:::-;6547:49;958:19:23;6565:29:21;958:19:23;;;:::i;:::-;6565:29:21;:::i;:::-;958:19:23;;:::i;:::-;6547:49:21;:::i;:::-;1053:19:23;;:::i;:::-;6632:35:21;:::i;:::-;958:19:23;:::i;:::-;6689:9:21;-1:-1:-1;6708:336:21;6715:5;;;;;;7058:16;;;;9728:4;7058:16;958:19:23;7058:16:21;;;;;958:19:23;:::i;:::-;9728:4:21;:::i;7058:16::-;7072:2;;;:::i;:::-;958:19:23;:::i;6708:336:21:-;6749:7;;6951:23;6749:7;1053:19:23;6749:12:21;:7;;;;;;:::i;:12::-;6891:42;958:19:23;6848:14:21;6790:16;958:19:23;;;;:::i;6790:16:21:-;6848:14;:::i;:::-;958:19:23;:::i;:::-;;;;;:::i;:::-;6891:42:21;;:::i;1053:19:23:-;6951:23:21;;:::i;:::-;88:2108:80;;;6708:336:21;;;;6253:36;88:2108:80;;-1:-1:-1;;;6279:10:21;;;;;6177:23;6193:7;;;:::i;:::-;6177:23;;;6081:43;88:2108:80;;-1:-1:-1;;;6106:18:21;;;;;5986:46;88:2108:80;;-1:-1:-1;;;6019:13:21;;;;;5990:20;5999:11;6003:7;5999:11;;5990:20;;9468:43;9495:16;9509:1;9495:16;:::o;337:213:45:-;;464:27;337:213;464:27;:::i;:::-;494:7;88:2108:80;;;;;;;;;;;;;;;631:21:18;;;:::i;8282:752::-;;378:4:31;8417:611:18;;;;;;;;;;;;;;;;;;;;378:11:59;;;8417:611:18;;;;;;;;8282:752;:::o;:::-;8417:611;;;;;;;;;;;;;;;;;378:4:31;:11:59;;8417:611:18;;;;;;;;8282:752;:::o;7741:535::-;378:4:31;7878:392:18;;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;6255:3:37;7878:392:18;;;;;;;;;;;;;;;;;6260:4:37;7878:392:18;;7741:535;:::o;:::-;7878:392;;;;;;;;;;;;;;;;378:4:31;7878:392:18;;7741:535;:::o;:::-;1324:9:21;7878:392:18;;;;;;;;;;;;;378:4:31;7878:392:18;;7741:535;:::o;:::-;1905:7:21;7878:392:18;;;;;;;;;;;;;;;;;317:4:31;7878:392:18;;7741:535;:::o;88:2108:80:-;;;;;;;;;;:::o;1009:1952:33:-;378:11:59;;1009:1952:33;;378:11:59;;1239:13:33;;;1235:66;;1632:15;;;;:::i;:::-;1674;;;;:::i;:::-;378:11:59;1699:25:33;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;;:::i;:::-;6918:17:37;;378:11:59;;6918:17:37;;;;;1978:981:33;1009:1952;;;;;;;;;;:::o;1978:981::-;;;;;2909:48;;;;;;;2123:13;2122:19;2123:13;;;;:::i;:::-;88:2108:80;;;;2122:19:33;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;378:11:59;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;88:2108:80;;1978:981:33;;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;653:2:31;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;;;;;;2931:26;88:2108:80;2931:26:33;;2909:48;;1695:115;88:2108:80;;-1:-1:-1;;;1747:56:33;;;;;88:2108:80;;;;;;;;;;1747:56:33;1235:66;88:2108:80;;-1:-1:-1;;;1261:40:33;;;;;88:2108:80;;;;;;;;;;;1747:56:33;4268:1017:21;4348:10;;4344:26;;1500:10;4384:26;;;4380:40;;-1:-1:-1;;4434:26:21;;;4430:42;;-1:-1:-1;958:19:23;4495:11:21;;;:::i;:::-;5188:10;5094:60;1053:19:23;4548:38:21;965:21:18;;;:::i;4548:38:21:-;1053:19:23;:::i;:::-;958;5095:51:21;:42;958:19:23;;4962:98:21;958:19:23;4984:74:21;958:19:23;5006:50:21;958:19:23;;5028:26:21;958:19:23;4762:100:21;958:19:23;4784:76:21;958:19:23;4806:52:21;958:19:23;4828:28:21;958:19:23;;;:::i;:::-;4828:28:21;:::i;:::-;958:19:23;;:::i;:::-;4806:52:21;:::i;:::-;958:19:23;;:::i;:::-;4784:76:21;:::i;958:19:23:-;4762:100:21;:::i;:::-;958:19:23;;:::i;:::-;5028:26:21;:::i;:::-;958:19:23;;:::i;:::-;5006:50:21;:::i;:::-;958:19:23;;:::i;:::-;4984:74:21;:::i;:::-;958:19:23;;:::i;:::-;4962:98:21;:::i;:::-;958:19:23;;:::i;:::-;;;;:::i;:::-;5095:42:21;:::i;:::-;:51;:::i;958:19:23:-;5253:25:21;5254:9;-1:-1:-1;;;5267:7:21;;;:::i;4430:42::-;4462:10;1949:7;4462:10;:::o;4344:26::-;4360:10;1905:7;4360:10;:::o;11969:3353:18:-;12038:3278;;-1:-1:-1;;;12038:3278:18;;;;;11969:3353;12038:3278;;;;;;;;11969:3353;12038:3278;;;;;;11969:3353;12038:3278;;;;;;11969:3353;12038:3278;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11969:3353;:::o;12038:3278::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12038:3278:18;;-1:-1:-1;12038:3278:18;;;;;;88:2108:80;;;;:::o;:::-;;;-1:-1:-1;;;88:2108:80;;;;;;;;;;;;-1:-1:-1;;;88:2108:80;;;;;;;4596:2947:18;7380:72;4596:2947;4688:27;4700:1;4696:5;;4688:27;:::i;:::-;7125:43;5125:16;;;:::i;:::-;5145:2;88:2108:80;;;5175:3:18;88:2108:80;;378:11:59;5175:3:18;378:11:59;88:2108:80;;;;7232:71:18;88:2108:80;;6411:30:18;88:2108:80;6343:32:18;88:2108:80;6274:33:18;88:2108:80;6205:33:18;88:2108:80;6136:33:18;88:2108:80;6068:32:18;88:2108:80;6001:31:18;88:2108:80;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;88:2108:80;;;;;;;;;;;;;;;;5533:32:18;88:2108:80;5465:32:18;88:2108:80;5398:31:18;88:2108:80;;;;;;;;;;;;;;;;;;;;;;;;6455:304:18;88:2108:80;;;;;4596:2947:18;:::o;71:276:23:-;-1:-1:-1;;;138:25:23;;134:43;;195:1;187:9;;195:1;;;208:61;;;;71:276::o;134:43::-;88:2108:80;;-1:-1:-1;;;172:5:23;;;;;1487:3103:18;-1:-1:-1;;1713:26:18;;;1709:40;;1948:21;1943:26;;;1939:54;;2266:5;378:11:59;88:2108:80;378:11:59;88:2108:80;4502:49:18;2559:29;88:2108:80;3136:40:18;88:2108:80;378:11:59;2591:5:18;378:11:59;;;;88:2108:80;;;;;;;;;3074:35:18;88:2108:80;2874:31:18;88:2108:80;;;;;;3649:35:18;88:2108:80;;;;3508:34:18;88:2108:80;;;;3371:32:18;88:2108:80;;;;;;;;;;;;;;;;;;;;;;;;;;2941:32:18;88:2108:80;;;;;;;;;;;;;;;3699:327:18;88:2108:80;;4564:3:18;88:2108:80;378:11:59;1487:3103:18;:::o;1939:54::-;88:2108:80;;-1:-1:-1;;;1971:22:18;;88:2108:80;1971:22:18;;;88:2108:80;;;;;;-1:-1:-1;;;88:2108:80;;;;;;1747:56:33;405:480:23;2046:20:21;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;2717:18:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;-1:-1:-1;;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;-1:-1:-1;;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;3113:20:21;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;503:380;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;1905:7:21;503:380:23;;;;;;;;;;;;;;;;;6090:7:21;503:380:23;;405:480;:::o;:::-;2913:18:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;3047:17:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;503:380;;;;;;;;;;405:480;:::o;:::-;1905:7:21;503:380:23;;;;;;;;;;;;;;;;;;;;405:480;:::o;15328:575:18:-;15397:27;15405:5;;;15397:27;:::i;:::-;15435:462;378:11:59;15435:462:18;;;;;;;;;;378:11:59;;;;;15435:462:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:575;:::o;88:2108:80:-;378:11:59;;;5076:71:37;;88:2108:80;;;;;;;;;5076:71:37;;;88:2108:80;;;;;;;;;;;;;;;;378:11:59;;;;:::i;:::-;88:2108:80;;;;;;;;;;5076:71:37;88:2108:80;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;88:2108:80;;;;5168:70:37;88:2108:80;;;;;5168:70:37;:::i","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e414620000ac5750508063620a260714620000a657806390c03eee14620000a0578063ba414fa6146200009a578063dd969c971462000094578063e0d7d0e9146200008e578063e21485ad14620000885763fa7626d4146200008257600080fd5b620009c4565b6200088c565b6200086c565b620007ac565b62000783565b620005c9565b620005a5565b346200057557816003193601126200057557620000c8620017b7565b805161106b8082019067ffffffffffffffff9280831084841117620005515780620000fb62001ea7948486843962000ac4565b039086f080156200052957601580546001600160a01b0319166001600160a01b0390921691909117905583519181830183811085821117620005515783926200014692843962000b10565b039084f080156200052957601680546001600160a01b0319166001600160a01b039283161790556015546200018391165b6001600160a01b031690565b803b15620005905782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af18015620005295762000579575b506016548490620001e2906001600160a01b031662000177565b91823b156200057557845190815230600482015268056bc75e2d631000006024820152918290604490829084905af18015620005295762000557575b5060155462000236906001600160a01b031662000177565b6016546200024d906001600160a01b031662000177565b90835191610597908184019284841086851117620005515784936200029a936200b19786396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200052957601480546001600160a01b0319166001600160a01b039092169190911790558151612f21808201908282108483111762000551578291620002f09162002f1284396000815260200190565b039084f080156200052957601380546001600160a01b0319166001600160a01b03929092169182179055620003259062000177565b825190611bc48083019183831085841117620005515783926200035b92620095d385396001600160a01b03909116815260200190565b039084f080156200052957601780546001600160a01b0319166001600160a01b03929092169182179055620003909062000177565b8251916137a080840192909183118484101762000551578392620003c79262005e3385396001600160a01b03909116815260200190565b039083f09081156200052957620003fe6200046a9260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b60155462000415906001600160a01b031662000177565b6013546200042c906001600160a01b031662000177565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200052957620004e29385936200052f575b506016546200049b906001600160a01b031662000177565b6013549091908790620004b7906001600160a01b031662000177565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200052957620004f6578280f35b816200051a92903d1062000521575b62000511818362000a6b565b81019062000b5e565b5081808280f35b503d62000505565b62000b04565b6200054990843d8611620005215762000511818362000a6b565b508662000483565b620009e9565b80620005676200056e92620009ff565b8062000594565b836200021e565b5080fd5b80620005676200058992620009ff565b84620001c8565b8380fd5b6000910312620005a057565b600080fd5b34620005a0576000366003190112620005a0576020604051660aa87bee5380008152f35b34620005a0576000806003193601126200078057737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000575576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620005295762000769575b50601754819060809062000705906200064b906001600160a01b031662000177565b601554620006c19062000667906001600160a01b031662000177565b601654620006b19062000683906001600160a01b031662000177565b91620006a16200069262000a8e565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6001600160a01b03166040830152565b620006cb62000b78565b6060820152601354620006e7906001600160a01b031662000177565b906040519485809481936305157c7f60e21b83526004830162000ceb565b03925af1801562000529576200072391839162000730575b50601955565b6200072d62000e47565b80f35b62000757915060803d60801162000761575b6200074e818362000a6b565b81019062000c7c565b505050386200071d565b503d62000742565b80620005676200077992620009ff565b3862000629565b80fd5b34620005a0576000366003190112620005a0576020620007a262001420565b6040519015158152f35b34620005a0576000806003193601126200078057737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000575576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620005295762000855575b5060175481906080906200082e906200064b906001600160a01b031662000177565b03925af1801562000529576200084b918391620007305750601955565b6200072d620014f8565b80620005676200086592620009ff565b386200080c565b34620005a0576000366003190112620005a0576020601954604051908152f35b34620005a0576020366003190112620005a05760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa908115620005295760009162000910575b60c08201516200090c906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e011620009bb575b816200092e60e0938362000a6b565b81010312620005a057620008f260c06200090c92620009ae8260405192620009568462000a14565b620009618162000aaf565b8452620009716020820162000aaf565b6020850152620009846040820162000aaf565b6040850152606081015160608501526080810151608085015260a081015160a08501520162000aaf565b82820152925050620008de565b3d91506200091f565b34620005a0576000366003190112620005a057602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200055157604052565b60e0810190811067ffffffffffffffff8211176200055157604052565b6040810190811067ffffffffffffffff8211176200055157604052565b6080810190811067ffffffffffffffff8211176200055157604052565b90601f8019910116810190811067ffffffffffffffff8211176200055157604052565b604051906080820182811067ffffffffffffffff8211176200055157604052565b51906001600160a01b0382168203620005a057565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b6040513d6000823e3d90fd5b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b51908115158203620005a057565b90816020910312620005a05762000b759062000b50565b90565b6040519060006021549060018260011c926001811691821562000c71575b60209160208610841462000c5d5785885287949360208601939291811562000c3c575060011462000bd5575b50505062000bd39250038362000a6b565b565b92509362000c0560216000527f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b57090565b946000935b82851062000c255750505062000bd393500138808062000bc2565b865485850152958601958895509381019362000c0a565b9250505062000bd39491925060ff19168252151560051b0138808062000bc2565b634e487b7160e01b85526022600452602485fd5b93607f169362000b96565b9190826080910312620005a0578151916020810151916060604083015192015190565b60005b83811062000cb35750506000910152565b818101518382015260200162000ca2565b9060209162000cdf8151809281855285808601910162000c9f565b601f01601f1916010190565b60a0606062000b759360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062000cc4565b90816020910312620005a0575190565b67ffffffffffffffff81116200055157601f01601f191660200190565b608081830312620005a05762000d718162000b50565b9260208201519260408301519260608101519067ffffffffffffffff8211620005a0570181601f82011215620005a057805162000dae8162000d3e565b9262000dbe604051948562000a6b565b81845260208284010111620005a05762000b75916020808501910162000c9f565b9190826040910312620005a0576020825192015190565b60409062000b7593928152816020820152019062000cc4565b634e487b7160e01b600052601160045260246000fd5b9190820180921162000e3357565b62000e0f565b9190820391821162000e3357565b60155462000e5e906001600160a01b031662000177565b60135462000e75906001600160a01b031662000177565b604080516370a0823160e01b8082526001600160a01b03841660048084019190915260209592949390918686602481875afa958615620005295760009662001396575b5060165462000eff93929190889062000eda906001600160a01b031662000177565b83518381526001600160a01b0390981685890190815290979586918291602090910190565b0381895afa938415620005295760009462001372575b50815181815230848201908152909589918791908290819060200103915afa94851562000529576000956200134e575b50815181815230848201908152909689918891908290819060200103915afa958615620005295760009662001323575b5062000fce93949596600062000f966200017760185460018060a01b031690565b6019548551633928ff9760e01b81528781019182526001602083015267016345785d8a00006040830152978892918391829160600190565b03915afa948515620005295762001030958491600090600092620012f1575b5062000ff99062001bcb565b60135462001010906001600160a01b031662000177565b60195460008451809a8195829463bd0625ab60e01b84528c840162000df6565b03925af19586156200052957600095600097620012b5575b50601554620010a3908b9062001067906001600160a01b031662000177565b6013546200107e906001600160a01b031662000177565b87518781526001600160a01b0390911689820190815290938492918391829160200190565b03915afa92831562000529576200112e9388620010d9938e6000936200128c575b5050620010d2919262000e25565b9062001cec565b6016548a90620010f2906001600160a01b031662000177565b60135462001109906001600160a01b031662000177565b86518681526001600160a01b0390911688820190815290948592918391829160200190565b03915afa801562000529578762001155936000926200126c575b50620010d2919262000e39565b6015546200116c906001600160a01b031662000177565b82518281523085820190815290918a918391908290819060200103915afa9687156200052957620011e3978a96620011b393600092620012455750620010d2919262000e39565b601654620011ca906001600160a01b031662000177565b9151908152309281019283529485928391829160200190565b03915afa918215620005295762000bd3946000936200120a575050620010d2919262000e25565b620010d2935090816200123592903d106200123d575b6200122c818362000a6b565b81019062000d2e565b9138620010c4565b503d62001220565b620010d292506200126590893d8b116200123d576200122c818362000a6b565b9162001148565b620010d2925062001265908d803d106200123d576200122c818362000a6b565b620010d293509081620012ad92903d106200123d576200122c818362000a6b565b918e620010c4565b909650620012de919550833d8511620012e9575b620012d5818362000a6b565b81019062000ddf565b949094953862001048565b503d620012c9565b62000ff992506200131891503d806000833e6200130f818362000a6b565b81019062000d5b565b93915062000fed9050565b62000fce949596506200134590893d8b116200123d576200122c818362000a6b565b95949362000f75565b6200136a919550883d8a116200123d576200122c818362000a6b565b933862000f45565b6200138e919450883d8a116200123d576200122c818362000a6b565b923862000f15565b62000eff9392919650620013b990883d8a116200123d576200122c818362000a6b565b9590919262000eb8565b90600491630667f9d760e41b8152620013e6825180936020868501910162000c9f565b010190565b3d156200141b573d90620013ff8262000d3e565b916200140f604051938462000a6b565b82523d6000602084013e565b606090565b6000805460081c60ff16156200143a575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6200145c57505090565b81925060405182816200149a60208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b03620014af601f199182810185528462000a6b565b620014d56040519182620014c8602082019687620013c3565b0390810183528262000a6b565b51925af15062000b75620014e8620013eb565b6020808251830101910162000b5e565b6015546200150f906001600160a01b031662000177565b60135462001526906001600160a01b031662000177565b604080516370a0823160e01b8082526001600160a01b0384166004808401919091529294929360209390929091908481602481865afa8015620005295762001795575b50601654620015ad90859062001588906001600160a01b031662000177565b88518481526001600160a01b0390961688870190815290959283918291602090910190565b0381875afa8015620005295762001773575b50855181815230868201908152909285918491908290819060200103915afa9182156200052957849262001751575b50855190815230858201908152909283918290819060200103915afa801562000529576200172e575b5050601854620016709060009062001638906001600160a01b031662000177565b6019548551633928ff9760e01b81528581019182526000602083015267016345785d8a00006040830152938492918391829160600190565b03915afa80156200052957620016d392849260009060009362001705575b506200169a9062001bcb565b601354620016b1906001600160a01b031662000177565b9060006019549185519687958694859363bd0625ab60e01b8552840162000df6565b03925af180156200052957620016e7575050565b816200170192903d10620012e957620012d5818362000a6b565b5050565b6200169a93506200172391503d806000833e6200130f818362000a6b565b9491506200168e9050565b816200174892903d106200123d576200122c818362000a6b565b50388062001617565b6200176b90833d85116200123d576200122c818362000a6b565b5038620015ee565b6200178d90853d87116200123d576200122c818362000a6b565b5038620015bf565b620017af90853d87116200123d576200122c818362000a6b565b503862001569565b6040805161106b80820167ffffffffffffffff9183821083831117620005515783620017eb62001ea7938385843962000ac4565b0360009485f080156200052957601580546001600160a01b0319166001600160a01b0390921691909117905584519181830183811085821117620005515783926200183892843962000b10565b039083f080156200052957601680546001600160a01b0319166001600160a01b039283161790556015546200186e911662000177565b803b1562001b4d5783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af18015620005295762001b36575b50601654620018cb906001600160a01b031662000177565b90813b156200059057845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af18015620005295762001b1f575b5060155462001921906001600160a01b031662000177565b60165462001938906001600160a01b031662000177565b908451916105979081840192848410868511176200055157849362001985936200b19786396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200052957601480546001600160a01b0319166001600160a01b03909216919091179055825190612f218083019182118383101762000551578291620019db9162002f1284396000815260200190565b039082f0918215620005295762001a1262001a819360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b60155462001a29906001600160a01b031662000177565b60135490919062001a43906001600160a01b031662000177565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af1928315620005295762001acc94869462001afd575b5060165462001ab2906001600160a01b031662000177565b601354909290620004b7906001600160a01b031662000177565b03925af18015620005295762001ae0575050565b8162001afa92903d10620005215762000511818362000a6b565b50565b62001b1790853d8711620005215762000511818362000a6b565b503862001a9a565b806200056762001b2f92620009ff565b3862001909565b806200056762001b4692620009ff565b38620018b3565b8280fd5b6040519062001b608262000a31565b600582526466616c736560d81b6020830152565b6040519062001b838262000a31565b60048252637472756560e01b6020830152565b6040808252600a9082015269080808081058dd1d585b60b21b606082015260806020820181905262000b759291019062000cc4565b60018115150362001bd95750565b62001cce60407f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506080825160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b626f6f84820152616c5d60f01b6060820152a162001c4a62001b74565b9281519382855262001c76838601604090600a8152690808115e1c1958dd195960b21b60208201520190565b9480860360208201528062001cae7f280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf358397889462000cc4565b0390a11562001cdb5762001cc162001b74565b905b519182918262001b96565b0390a162000bd362001df0565b62001ce562001b51565b9062001cc3565b81810362001cf8575050565b62001de2906040907f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f506080835160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8582015261745d60f01b6060820152a181519382855262001d8c838601604090600a8152690808115e1c1958dd195960b21b60208201520190565b906020860152847fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a89586920390a181519282849384528301604090600a815269080808081058dd1d585b60b21b60208201520190565b9060208301520390a162000bd35b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62001e1f575b5061010061ff00196000541617600055565b6000809160405182602082018381526519985a5b195960d21b6040840152600160608401526060835262001e538362000a4e565b62001e8f6024604051809362001e7e60208301976370ca10bb60e01b89525180928585019062000c9f565b810103600481018452018262000a6b565b51925af15062001e9e620013eb565b503862001e0d56fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c634300081600336080346200007a57601f620037a038819003918201601f19168301916001600160401b038311848410176200007f578084926020946040528339810103126200007a57516001600160a01b038116908190036200007a57600080546001600160a01b03191691909117905560405161370a9081620000968239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630420580a146101b7578063120649c5146101b2578063134ead12146101ad5780631e978cb0146101a8578063306db46b146101a3578063332266f31461019e5780633928ff97146101995780633b268d5d146101945780633b4d10301461018f5780634e817fd91461018a5780634fd67c58146101855780635eb408fc146101805780636237569f1461017b5780636d652299146101765780637f17409c1461017157806381b5fac21461016c578063902ecaa214610167578063a8c62e7614610162578063af4e437f1461015d578063b09d04e514610158578063cb1f553214610153578063ce153bf41461014e578063e94716d514610149578063ee3e8cfb14610144578063f30d37f21461013f5763f9c282111461013a57600080fd5b610aff565b610acf565b610a9e565b610a63565b610a27565b6109e2565b6109af565b610993565b61096a565b610941565b610914565b610872565b610856565b6107e9565b6107cd565b6107a4565b610788565b610759565b61071e565b61048d565b610436565b610407565b6103e2565b610354565b61028e565b610218565b60005b8381106101cf5750506000910152565b81810151838201526020016101bf565b906020916101f8815180928185528580860191016101bc565b601f01601f1916010190565b9060206102159281815201906101df565b90565b3461026b57604036600319011261026b57610267604051600260208201526004356040820152602435606082015260608152610253816102e9565b6040519182916020835260208301906101df565b0390f35b600080fd5b608090600319011261026b5760043590602435906044359060643590565b3461026b5760206102aa6102a136610270565b92919091610b4d565b604051908152f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff8211176102e457604052565b6102b2565b6080810190811067ffffffffffffffff8211176102e457604052565b6060810190811067ffffffffffffffff8211176102e457604052565b90601f8019910116810190811067ffffffffffffffff8211176102e457604052565b6001600160a01b0381160361026b57565b3461026b5760e036600319011261026b5760a036604319011261026b576102676103bc604051610383816102c8565b60443581526064356020820152608435604082015260a435606082015260c4356103ac81610343565b608082015260243560043561139a565b60405191829182610204565b606090600319011261026b57600435906024359060443590565b3461026b5760206102aa6104016103f8366103c8565b91929092610f06565b91611583565b3461026b5760206102aa61041a366103c8565b9061042d61042784610f06565b936110d9565b92919091611670565b3461026b5760206102aa610449366103c8565b9061045661042784610f06565b9290506119da565b8015150361026b57565b90926080926102159594151583526020830152604082015281606082015201906101df565b3461026b57606036600319011261026b5761050360243561061f6004356104b38361045e565b604435926104bf610c57565b936104c8610c57565b946104d2846110d9565b60208496939592960194604096878601928352865284526104f287610f06565b998a9185519087519051918a611009565b921561069657928261054a6105519361054361053e61053661056f9861053160606105979d9c0151866125a2565b6125a2565b8651906125f8565b610c9d565b9351610cb0565b8a52610cb0565b61056385890191808352895188610c4a565b90885190519087610b4d565b9061058e6105836020890193808552610c9d565b808452825111610d31565b51905190610d24565b945b84519260c06020870151848801926105df8451976105d18851998a958693602085016040919493926060820195825260208201520152565b03601f198101845283610321565b600054610602906105f6906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610dbf565b03915afa94851561069157600095610651575b509061064691610267959651905190611583565b905194859485610468565b61026795509061067c610646939260c03d60c01161068a575b6106748183610321565b810190610d88565b505050505095509091610632565b503d61066a565b610b41565b826106df610718966106d2610704956106cb61053e6106c361070f9a61053160606106fc9b0151866125a2565b8551906125f8565b9251610cb0565b9260208d01938452610cb0565b6106f1888c019180835283518b610de3565b915190519089610df0565b808952610c9d565b808852825111610cbd565b51855190610d24565b94610599565b3461026b57604036600319011261026b57610267604051600460208201526004356040820152602435606082015260608152610253816102e9565b3461026b57602036600319011261026b5760206102aa60043561040161077e826110d9565b9291939050610f06565b3461026b5760206102aa61079e6103f8366103c8565b91611b9c565b3461026b5760206102aa6107b7366103c8565b906107c461042784610f06565b92919091611c16565b3461026b5760206102aa6107e036610270565b92919091610df0565b3461026b57604036600319011261026b5761083860043561026761081a61080f836110d9565b919050602435611f7a565b939092848461083261082b84610f06565b8383611583565b92610b4d565b92604051938493846040919493926060820195825260208201520152565b3461026b57600036600319011261026b57602060405160008152f35b3461026b57604036600319011261026b576004356108c06102676108a2610898846110d9565b9150602435611fa7565b92909383856108ba6108b384610f06565b8383611b9c565b92610df0565b91604051938493846040919493926060820195825260208201520152565b805182526020808201519083015260408082015190830152606080820151908301526080908101516001600160a01b0316910152565b3461026b57602036600319011261026b5760a0610932600435610f06565b61093f60405180926108de565bf35b3461026b5760206102aa610954366103c8565b9061096161042784610f06565b92909150611fce565b3461026b57600036600319011261026b576000546040516001600160a01b039091168152602090f35b3461026b5760206102aa6109a636610270565b92919091611009565b3461026b57602036600319011261026b576102676040516001602082015260043560408201526040815261025381610305565b3461026b57602036600319011261026b57610267600435610a0281610343565b60408051600560208201526001600160a01b0390921682820152815261025381610305565b3461026b57602036600319011261026b57610267610a466004356110d9565b604080519384526020840192909252908201529081906060820190565b3461026b57604036600319011261026b57610267604051600360208201526004356040820152602435606082015260608152610253816102e9565b3461026b57604036600319011261026b5761083860043561026761081a610ac4836110d9565b919050602435611fa7565b3461026b57604036600319011261026b576004356108c06102676108a2610af5846110d9565b9150602435611f7a565b3461026b57600036600319011261026b57602060405160788152f35b9081602091031261026b575190565b6040906102159392815281602082015201906101df565b6040513d6000823e3d90fd5b610b85610bee9493929361053184610b7e610b79610b74610b6d88610f06565b809661230a565b61237f565b6123b2565b92516125a2565b916020604051610bbc81610bae85888a8785016040919493926060820195825260208201520152565b03601f198101835282610321565b600054610bd3906105f6906001600160a01b031681565b6040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093610c15575b50610c0f90610f06565b936111f1565b610c0f919350610c3c9060203d602011610c43575b610c348183610321565b810190610b1b565b9290610c05565b503d610c2a565b9161040161021593610f06565b604051906060820182811067ffffffffffffffff8211176102e45760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610cab57565b610c87565b91908201809211610cab57565b15610cc457565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b6103e719810191908211610cab57565b91908203918211610cab57565b15610d3857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c091031261026b578151610d9f8161045e565b9160208101519160408201519160608101519160a0608083015192015190565b610215939260609260018060a01b03168252602082015281604082015201906101df565b9161079e61021593610f06565b92610b79610b74610e0d92949394610e0787610f06565b90612f44565b92670de0b6b3a7640000938403938411610cab57610e2e610e5794836125a2565b916020604051610bbc81610bae8589898785016040919493926060820195825260208201520152565b03915afa9182156106915761021595600093610e7e575b50610e7890610f06565b93611e24565b610e78919350610e9c9060203d602011610c4357610c348183610321565b9290610e6e565b91908260a091031261026b57604051610ebb816102c8565b608080829480518452602081015160208501526040810151604085015260608101516060850152015191610eee83610343565b0152565b9060a08282031261026b5761021591610ea3565b90604051610f13816102c8565b600090818152816080602092828482015282604082015282606082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610691578092610f7a575b506102159293508082518301019101610ef2565b9091503d8082863e610f8c8186610321565b840190828583031261100257845167ffffffffffffffff9586821161100557019082601f830112156110025781519586116102e45760405192610fd8601f8801601f1916860185610321565b86845284878401011161100257506102159394610ffa918480850191016101bc565b908392610f66565b80fd5b8280fd5b61105d939192602060405161103781610bae87868a8785016040919493926060820195825260208201520152565b60018060a01b03600054166040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093611084575b5061107e90610f06565b936121b4565b61107e9193506110a29060203d602011610c4357610c348183610321565b9290611074565b9081602091031261026b575161021581610343565b9081606091031261026b578051916040602083015192015190565b90600460206110f56105f66105f660005460018060a01b031690565b604051632bee84f160e21b815292839182905afa928315610691576111409360609260009161119d575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156106915760008093600093611166575b50929190565b9193505061118c915060603d606011611196575b6111848183610321565b8101906110be565b9290929138611160565b503d61117a565b6111bf915060203d6020116111c5575b6111b78183610321565b8101906110a9565b3861111f565b503d6111ad565b6111ef9360609296959361010083019783526020830152604082015201906108de565b565b929360009385929185851215611367575b8585126113485790610bae611224925b604096604051958694602086016111cc565b81859285968281116113255761123a818561337f565b92611245818661337f565b88611250828761152f565b136113045750906112649197969297610d24565b60019591829187805b61127f575b5050505050505050505090565b156112e0575b5086979850819261129f6112998b89610cb0565b60011c90565b996112aa8b8861337f565b90846112b6888461152f565b136112d457505089935b886112cb8987610d24565b9201949961126d565b8b9850909550936112c0565b601410806112fb575b156112f45788611285565b8080611272565b508083106112e9565b6040516306f1be5d60e21b8152600481018690526024810191909152604490fd5b604051633082dfdb60e11b81526004810191909152602481019290925250604490fd5b935091611354906125ce565b91611361848385846124a9565b93611202565b85851361137b5790610bae61122492611212565b935094611387906123f5565b94611394848388846124a9565b93611367565b916113ab610b79610b748385612f44565b91670de0b6b3a7640000928303928311610cab57611402826113ee6113e3610b79610b74846113dd6114209a8c6125f8565b9761230a565b6105318584516125a2565b926113fb8282868a6124a9565b84886121b4565b906040519460208601526040850152606084015260808301906108de565b6101008152610120810181811067ffffffffffffffff8211176102e45760405290565b90670de0b6b3a764000060008382039312818412811691841390151617610cab57565b90671bc16d674ec8000060008382039312818412811691841390151617610cab57565b9067119000ab100ffbff198201918213600116610cab57565b81810392916000138015828513169184121617610cab57565b90670de0b6b3a764000091828102928184051490151715610cab57565b90671bc16d674ec8000091828102928184051490151715610cab57565b90633b9aca0091828102928184051490151715610cab57565b60008190039190600160ff1b8114600116610cab57600019830503610cab57565b818102929160008212600160ff1b821416610cab578184051490151715610cab57565b811561156d57600160ff1b8114600019831416610cab570590565b634e487b7160e01b600052601260045260246000fd5b9190916115be60208301936115b885516115b06115a66040880192835190612843565b975182519061286c565b905190612414565b92612435565b92670de0b6b3a76400008085121561163c5760008513156116315760008582039512818612811691861390151617610cab5761162561162a92611620611612610b799461160d6102159961288b565b61152f565b670de0b6b3a7640000900590565b6114a2565b612917565b90516125a2565b505050505060001990565b5050505050600090565b90959492936111ef94608093610120840198845260208401526040830152606082015201906108de565b909291828651602088015160408901519060608a01519261169083612ac8565b6116999061185a565b936116a390611443565b906116ad8a612b86565b6116b68b611981565b6116bf91612c38565b6116c88b611981565b6116d184612bb5565b6116da916114a2565b6116e49088612c38565b6116ed91612cb5565b6116f690612cd3565b9361170084612fbb565b611709906114d8565b670de0b6b3a7640000900561171d90612917565b9061172791612c38565b61173090612c67565b611739906119c9565b848661174486612c09565b9061174e91612c38565b9061175891612c38565b611761916119ad565b61176a90612917565b826117758c84612c38565b9061177f91612c38565b61178891612c38565b6117918b611981565b61179a84612bb5565b6117a3916114a2565b6117ac91612cb5565b956117b691612c38565b906117c090611993565b6117c991612c38565b926117d391612c38565b6117dc90612c8e565b906117e6916114a2565b6117ef90612e24565b6117f891612c38565b61180186612b86565b61180a91612cb5565b90611814846119c9565b9061181e916119ad565b90611828916119ad565b60001361184f576102159561184a93610bae9260405196879560208701611646565b61264d565b505050505050600090565b90633b9aca0091828102928184041490151715610cab57565b9081672005fe4f268ea00001918212600116610cab57565b9081670dc5527f642c200001918212600116610cab57565b9081670de0b6b3a764000001918212600116610cab57565b9081670b68df18e471fbff190191821215600116610cab57565b90816714a8454c19e1ac0001918212600116610cab57565b9081670fc10e01578277ff190191821215600116610cab57565b90816703debd083b8c7c0001918212600116610cab57565b9081670295d400ea3257ff190191821215600116610cab57565b9081670157d8b2ecc7080001918212600116610cab57565b90816705310aa7d521300001918212600116610cab57565b9081670de0cc3d1561000001918212600116610cab57565b90816103e801918212600116610cab57565b9081670de0b6b3a763ffff190191821215600116610cab57565b91909160008382019384129112908015821691151617610cab57565b600160ff1b8114610cab5760000390565b939290919280519160208201519060408301519260600151936119fc84612ac8565b611a059061185a565b94611a0f90611443565b9182611a1a88612b86565b611a2489846119ad565b611a2d91612c38565b611a3789846119ad565b611a418385612c38565b611a4a916114a2565b611a54908b612c38565b611a5d91612cb5565b611a6690612cd3565b95611a7086612fbb565b611a79906114d8565b670de0b6b3a76400009005611a8d90612917565b90611a9791612c38565b611aa090612c67565b611aa9906119c9565b8688611ab488612c09565b90611abe91612c38565b90611ac891612c38565b611ad1916119ad565b611ada90612917565b81611ae58a86612c38565b90611aef91612c38565b611af891612c38565b91611b0389826119ad565b91611b0d91612c38565b611b16916114a2565b611b1f91612cb5565b96611b2991612c38565b90611b3390611993565b611b3c91612c38565b92611b4691612c38565b611b4f90612c8e565b90611b59916114a2565b611b6290612e24565b611b6b91612c38565b90611b7590612b86565b611b7e91612cb5565b91611b88906119c9565b90611b92916119ad565b90610215916119ad565b919091611bda6020830191611bd4611bcc84516115b0611bc26040890192835190612843565b965182519061286c565b958551612414565b90612435565b670de0b6b3a7640000918282121561163c576000821315611631576102159461162a93611c106116259361160d610b799661288b565b056119ad565b909291855160208701516040880151606089015191611c3482612ac8565b611c3d9061185a565b92611c4790611443565b93611c5186612b86565b611c5a87611981565b611c6391612c38565b611c6d8983612c38565b611c7688611981565b611c7f91612c38565b611c88906119c9565b86611c938b85612c38565b611c9c90612bde565b90611ca691612c38565b611caf916119ad565b611cb891612cb5565b611cc1906119c9565b611cca90612cd3565b92611cd483612fbb565b611cdd906114d8565b670de0b6b3a76400009005611cf190612917565b90611cfb91612c38565b611d0490612c67565b611d0d906119c9565b8385611d1885612c09565b90611d2291612c38565b90611d2c91612c38565b611d35916119ad565b611d3e90612917565b85611d49888a612c38565b90611d5391612c38565b611d5c91612c38565b90611d6687611981565b611d6f87612bb5565b611d78916114a2565b611d8191612c38565b611d8a91612cb5565b93611d958789612c38565b90611d9f90611993565b611da891612c38565b92611db291612c38565b611dbb90612c8e565b90611dc5916114a2565b611dce90612e24565b611dd791612c38565b611de083612b86565b611de991612cb5565b90611df390611993565b90611dfd916119ad565b60001361184f5761021595611e1f93610bae9260405196879560208701611646565b61276c565b929360009385929185851215611f47575b858512611f285790610bae611e5692604096604051958694602086016111cc565b818592859682811161132557611e6c81856133a0565b92611e7781866133a0565b88611e82828761152f565b13611304575090611e969197969297610d24565b60019591829187805b611eb0575050505050505050505090565b15611f0b575b50869798508192611eca6112998b89610cb0565b99611ed58b886133a0565b9084611ee1888461152f565b13611eff57505089935b88611ef68987610d24565b92019499611e9f565b8b985090955093611eeb565b60141080611f1f575b156112f45788611eb6565b50808310611f14565b935091611f34906125ce565b91611f41848383866124a9565b93611e35565b858513611f5b5790610bae611e5692611212565b935094611f67906123f5565b94611f74848383896124a9565b93611f47565b929190611f90611f8a82846125f8565b856125a2565b938103908111610cab57928103908111610cab5790565b929190611fb7611f8a82846125f8565b938101809111610cab57928101809111610cab5790565b9390929181516020830151916040840151936060015194611fee85612ac8565b611ff79061185a565b9561200190611443565b928361200c89612b86565b6120168a856119ad565b61201f91612c38565b6120298584612c38565b6120338b866119ad565b61203c91612c38565b612045906119c9565b82856120518887612c38565b9061205b91612c38565b9061206591612c38565b61206e916119ad565b61207791612cb5565b612080906119c9565b61208990612cd3565b9661209387612fbb565b61209c906114d8565b670de0b6b3a764000090056120b090612917565b906120ba91612c38565b6120c390612c67565b6120cc906119c9565b87896120d789612c09565b906120e191612c38565b906120eb91612c38565b6120f4916119ad565b6120fd90612917565b816121088b8d612c38565b9061211291612c38565b61211b91612c38565b926121268a826119ad565b9161213091612c38565b612139916114a2565b61214291612c38565b61214b91612cb5565b9661215591612c38565b9061215f90611993565b61216891612c38565b9261217291612c38565b61217b90612c8e565b90612185916114a2565b61218e90612e24565b61219791612c38565b906121a190612b86565b6121aa91612cb5565b90611b9290611993565b9293600093859291858512156122d7575b8585126122b85790610bae6121e692604096604051958694602086016111cc565b8185928596828111611325576121fc81856133c2565b9261220781866133c2565b88612212828761152f565b136113045750906122269197969297610d24565b60019591829187805b612240575050505050505050505090565b1561229b575b5086979850819261225a6112998b89610cb0565b996122658b886133c2565b9084612271888461152f565b1361228f57505089935b886122868987610d24565b9201949961222f565b8b98509095509361227b565b601410806122af575b156112f45788612246565b508083106122a4565b9350946122c4906123f5565b946122d1848784846124a9565b936121c5565b8585136122eb5790610bae6121e692611212565b9350916122f7906125ce565b91612304848484846124a9565b936122d7565b61237a6123756102159361236f61236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b9d6125f8565b612fbb565b97612fbb565b6114d8565b05612917565b612414565b612457565b906114a2565b6114bb565b611552565b6123ae6123756123a96713a04bbdfdc9be886123a3671bc16d674ec80000956114bb565b056119c9565b612e24565b0590565b600081126123bd5790565b60405162461bcd60e51b815260206004820152601060248201526f746f55696e743a206e6567617469766560801b6044820152606490fd5b6103e79081810291818304149015176001161561026b576103e8900490565b81810291818304149015176001161561026b57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517821515161561026b570490565b6706f05b59d3b2000090808202918204146001161561026b57670de0b6b3a7640000900490565b670de0b6b3a76400009081810291818304149015176001161561026b57671bc16d674ec80000900490565b90928282101561255d57610215936125269284670de0b6b3a764000091826124d18383612435565b1061254a57506001600160ff1b039590505b8351916124f96124f38385612414565b85612435565b1061252b57506001600160ff1b0392612520925090505b6040602082015191015190612843565b926119ad565b6119ad565b61252092611bd461253f9261254494612414565b61288b565b91612510565b6125579161253f91612435565b946124e3565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b81810291818304149015176001161561026b576001670de0b6b3a7640000600019830104019015150290565b6103e99081810291818304149015176001161561026b5760016103e8600019830104019015150290565b90670de0b6b3a7640000918281029281840414901517811515161561026b57600190600019830104019015150290565b6101008183031261026b57805192610215602083015193606060408501519401610ea3565b91906103e89260009360009183821161274b57612669816133e2565b6126738583613521565b600061267f828461152f565b1361272c5750612690859695610d14565b60019460009186805b6126aa575b50505050505050509050565b15612707575b50859697985080916126c56112998b88610cb0565b996126d08b87613521565b90836126dc878461152f565b136126fb57505089925b876126f18886610d24565b9201939998612699565b8b9750909450926126e6565b861080612721575b1561271a57886126b0565b808061269e565b50610100821061270f565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e89260009360009183821161274b5761278881613543565b61279285836136b3565b600061279e828461152f565b1361272c57506127af859695610d14565b60019460009186805b6127c85750505050505050509050565b15612825575b50859697985080916127e36112998b88610cb0565b996127ee8b876136b3565b90836127fa878461152f565b1361281957505089925b8761280f8886610d24565b92019399986127b8565b8b975090945092612804565b861080612838575b1561271a57886127ce565b50610100821061282d565b9061284d90612ac8565b633b9aca0090818102918183041490151715610cab5761021591612414565b61021591612365670de0b6b3a764000061235f61235a61236a95612fbb565b6706f05b59d3b20000811461291157670de0b6b3a764000090818112156128ff5780156128ed578060011b908105600203610cab576128c990612cd3565b906713a04bbdfdc9be8891808302928305146001161561026b5761021591056119c9565b6040516322ed598560e21b8152600490fd5b6040516307a0212760e01b8152600490fd5b50600090565b680248ce36a70cb26b3e1981131561291157680755bf798b4a1bf1e5811215612a67576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b91906101208382031261026b57825192602081015192610215604083015193608060608501519401610ea3565b60b581600160881b811015612b6f575b80690100000000000000000062010000921015612b62575b65010000000000811015612b55575b6301000000811015612b48575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b91612b0c565b60201c9160101b91612aff565b60401c9160201b91612af0565b5068b500000000000000009050608082901c612ad8565b671bc16d674ec8000081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e881810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e88082029160016000198210179181840514901517161561026b57670de0b6b3a7640000900590565b6713a04bbde78cc40081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b90911317161561026b57670de0b6b3a7640000900590565b670de0b6b3a764000090818102918205146001161561026b57671bc16d674ec80000900590565b670de0b6b3a764000090818102918205146001161561026b576713a04bbde78cc400900590565b670de0b6b3a76400009081810291820514821515161561026b570590565b600081128015612e13575b612e015780156128ff57671bc16d674ec8000081146128ed57670de0b6b3a76400008112908115612df257905b612d1482613189565b80156128ff57612d7d612d41612d3c612d37612d32612d8295612fbb565b61324a565b612ac8565b6114f5565b611620612d55612d50836131b4565b611873565b612d77612d72612d6c612d67866131df565b61188b565b856132c1565b6118a3565b90613228565b613272565b916000905b60028210612da257505015612d995790565b610215906119c9565b9092612dea81612de4612dba85611620600196612e24565b612d77612dda612dd5611625612dd087806132c1565b6119c9565b61329a565b61236f83866132c1565b906119ad565b930190612d87565b612dfb90611466565b90612d0b565b604051632d0483c560e21b8152600490fd5b50671bc16d674ec800008113612cde565b8015612f3757675698eef06670000081121561291157675698eef0666fffff19811315612f2a576000612f1a612e598361315c565b612ee2611625612e73612e6e612d728561247e565b613209565b92612526612f15612f10612f09612f03612efe612ef8612ef3612eed612ee88d612ee2612edd612ed7612ed2612d6c612ecd612ec7612ec2612ebc612eb78a6132e2565b6118bb565b896132c1565b6118d5565b876132c1565b6118ed565b611907565b836132c1565b61191f565b906132c1565b611939565b8c6132c1565b611951565b8a6132c1565b611969565b886132c1565b93806132c1565b61150e565b611489565b9112156102155761021590611466565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b61237a61237561021593612de461236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b15612f8a57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b886428490612fe760008213612f83565b711340daa0d5f769dba1915cef59f0815a55066130038261330d565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b600160ff1b8114613177576000811215610215571960010190565b604051634d2d75b160e01b8152600490fd5b670de0b6b3a76400009081810291818305149015176001161561026b57671bc16d674ec80000900590565b6703c1665c7aab20009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b669f32752462a0009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b6001811515161561026b576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029181830514901517821515161561026b570590565b671bc16d674ec7ffff1981810291600191830514161561026b57670de0b6b3a7640000900590565b6709d028cc6f205fff1981810291600191830514161561026b57670de0b6b3a7640000900590565b670fa8cedfc2adddfa90808202918205146001161561026b57670de0b6b3a7640000900590565b81810291818305149015176001161561026b57670de0b6b3a7640000900590565b67025f0fe105a314009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b613318811515612f83565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b906133966102159260208082518301019101612628565b93919290506124a9565b906133b76102159260208082518301019101612628565b9390509190916124a9565b906133d96102159260208082518301019101612628565b939290506124a9565b8051810160200190602001906133f791612a9b565b809193925051906020810151604082015191606001519261341783612ac8565b6134209061185a565b9361342a90611443565b9061343486612b86565b61343d87611981565b61344691612c38565b61344f87611981565b61345884612bb5565b613461916114a2565b61346b9089612c38565b61347491612cb5565b61347d90612cd3565b9361348784612fbb565b613490906114d8565b670de0b6b3a764000090056134a490612917565b906134ae91612c38565b6134b790612c67565b6134c0906119c9565b84866134cb86612c09565b906134d591612c38565b906134df91612c38565b6134e8916119ad565b6134f190612917565b826134fc8884612c38565b9061350691612c38565b61350f91612c38565b61351887611981565b611b0d84612bb5565b906135386102159260208082518301019101612a9b565b9493909291506119da565b80518101602001906020019061355891612a9b565b809192935051602082015190604083015192606001519361357884612ac8565b6135819061185a565b9461358b90611443565b9161359587612b86565b61359e88611981565b6135a791612c38565b6135b18383612c38565b6135ba89611981565b6135c391612c38565b6135cc906119c9565b846135d78585612c38565b6135e090612bde565b906135ea91612c38565b6135f3916119ad565b6135fc91612cb5565b613605906119c9565b61360e90612cd3565b9461361885612fbb565b613621906114d8565b670de0b6b3a7640000900561363590612917565b9061363f91612c38565b61364890612c67565b613651906119c9565b858761365c87612c09565b9061366691612c38565b9061367091612c38565b613679916119ad565b61368290612917565b8361368d898b612c38565b9061369791612c38565b6136a091612c38565b906136aa88611981565b61213085612bb5565b906136ca6102159260208082518301019101612a9b565b9493909250611fce56fea2646970667358221220f3e875cd9c43c4535da38090630f644037f96036f7dad55519e2d7d792047e4b64736f6c6343000816003360803461007457601f611bc438819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051611b3490816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b6109e4565b6109bb565b610814565b6107da565b610674565b6103dc565b6102e1565b61023d565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101df565b838082518301019101610a17565b9061010d6100ff600435610b92565b868082518301019101610a32565b92610d8d565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761015057604052565b61011e565b60c0810190811067ffffffffffffffff82111761015057604052565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101bd601f8201601f191660200184610171565b8294818452818301116101da578281602093846000960137010152565b600080fd5b9080601f830112156101da578160206101fa93359101610193565b90565b919082519283825260005b848110610229575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610208565b346101da5760003660031901126101da57604051604081019080821067ffffffffffffffff8311176101505761029a916040526009815268131bd9d39bdc9b585b60ba1b60208201526040519182916020835260208301906101fd565b0390f35b906040516080810181811067ffffffffffffffff821117610150576040526060600382948054845260018101546020850152600281015460408501520154910152565b346101da5760203660031901126101da5760043560005260016020526101c0604060002061030e8161029e565b9061031b6004820161029e565b906103bd61032b6008830161029e565b610393600c84015493600d60018060a01b03910154169461036d6040518098606080918051845260208101516020850152604081015160408501520151910152565b80516080880152602081015160a0880152604081015160c08801526060015160e0870152565b80516101008601526020810151610120860152604081015161014086015260600151610160850152565b6101808301526101a0820152f35b6001600160a01b038116036101da57565b346101da576060806003193601126101da576103f96004356103cb565b6024356044359167ffffffffffffffff83116101da576104206104829336906004016101df565b8161043c61042d85610b92565b60208082518301019101610a32565b60005490949061046290610456906001600160a01b031681565b6001600160a01b031690565b60405180809881946333854efd60e21b8352600483019190602083019252565b03915afa801561061457600091829583926105d9575b50806020806104ac93518301019101610a17565b939194909682861160001461054c5750916104ed826104e8836104e36104fe976104d96104f5988c610aa3565b908c0151906112af565b6112af565b6112db565b505b83610afe565b93828685610d8d565b9384601319129283610541575b61029a9394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b60148612935061050b565b90929091508187111561057b57610575826104e8836104e36104fe976104d96104f5988e610aa3565b506104ef565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9095506104ac92506106019150833d851161060d575b6105f98183610171565b810190610a17565b95919290959190610498565b503d6105ef565b610a81565b9060606003198301126101da57600435610632816103cb565b916024359160443567ffffffffffffffff928382116101da57806023830112156101da5781600401359384116101da57602484830101116101da576024019190565b346101da5761068236610619565b600054929350916001600160a01b031633036107c85761078661077e61042d610779956106c0608095610743976106b7610b67565b50810190610e8c565b6020819b949a9399929b01516106e0866000526001602052604060002090565b55604081015160046106fc876000526001602052604060002090565b015580516008610716876000526001602052604060002090565b01556060810151600c610733876000526001602052604060002090565b015501516001600160a01b031690565b600d610759846000526001602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610b92565b848385610d8d565b92836013191291826107bd575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b601485129250610793565b604051636853cba760e01b8152600490fd5b346101da5760606107ea36610619565b818094509492940103126101da5780359061078661077e61042d6040602085013594013595610b92565b346101da5761082236610619565b6000549093906001600160a01b0390811633036107c857610863610456600d610855876000526001602052604060002090565b01546001600160a01b031690565b9116036109a95761087683820182610b32565b61087f81610b47565b600181036108b857506108a261089d6108b392600c94953691610193565b610fc3565b926000526001602052604060002090565b01555b005b6108c181610b47565b600381036108fd5750906108e56108e06108f8936108b6953691610193565b610f19565b9290916000526001602052604060002090565b610f41565b61090681610b47565b6004810361094057509060046109276108e061093a946108b6963691610193565b9390926000526001602052604060002090565b01610f41565b61094981610b47565b6002810361096a57509060086109276108e061093a946108b6963691610193565b80610976600592610b47565b03610997576107596108a2610992600d936108b6963691610193565b610ef1565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101da5760003660031901126101da576000546040516001600160a01b039091168152602090f35b346101da5760203660031901126101da5761029a610a03600435610b92565b6040519182916020835260208301906101fd565b908160609103126101da578051916040602083015192015190565b908160a09103126101da57608060405191610a4c83610134565b805183526020810151602084015260408101516040840152606081015160608401520151610a79816103cb565b608082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610ab057565b610a8d565b91908201809211610ab057565b90671bc16d674ec8000060008382039312818412811691841390151617610ab057565b9067119000ab100ffbff198201918213600116610ab057565b81810392916000138015828513169184121617610ab057565b600160ff1b8114610ab05760000390565b600611156101da57565b908160209103126101da57356101fa81610b28565b60061115610b5157565b634e487b7160e01b600052602160045260246000fd5b60405190610b7482610134565b60006080838281528260208201528260408201528260608201520152565b610b9a610b67565b816000526001602052610bb8610bb3604060002061029e565b610ff8565b9160208201928352806000526001602052610bdc610bb3600860406000200161029e565b8252600c610c1d610c05610bb36004610bff866000526001602052604060002090565b0161029e565b92604085019384526000526001602052604060002090565b015490606083019182526040519383516020860152516040850152516060840152516080830152608060018060a01b039101511660a082015260a081526101fa81610155565b9081672005fe4f268ea00001918212600116610ab057565b9081670dc5527f642c200001918212600116610ab057565b9081670de0b6b3a764000001918212600116610ab057565b9081670b68df18e471fbff190191821215600116610ab057565b90816714a8454c19e1ac0001918212600116610ab057565b9081670fc10e01578277ff190191821215600116610ab057565b90816703debd083b8c7c0001918212600116610ab057565b9081670295d400ea3257ff190191821215600116610ab057565b9081670157d8b2ecc7080001918212600116610ab057565b90816705310aa7d521300001918212600116610ab057565b9081670de0cc3d1561000001918212600116610ab057565b91909160008382019384129112908015821691151617610ab057565b909282821015610e47576101fa93610e0a9284670de0b6b3a76400009182610db5838361130b565b10610e3457506001600160ff1b039590505b835191610ddd610dd7838561132d565b8561130b565b10610e0f57506001600160ff1b0392610e04925090505b6040602082015191015190611286565b92610d71565b610d71565b610e0492610e23610e2992610e2e9461132d565b9061130b565b6110b3565b91610df4565b610e4191610e299161130b565b94610dc7565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b80910361010081126101da5781359260208301359260a0604082013593605f1901126101da5760e060405191610ec183610134565b606081013583526080810135602084015260a0810135604084015260c081013560608401520135610a79816103cb565b6040818051810103126101da5780610f0e60206040930151610b28565b0151610456816103cb565b6060818051810103126101da57610f336020820151610b28565b606060408201519101519091565b919042821115610fb157610f57610bb38461029e565b9081845542600385015542830391838311610ab057610f7591610afe565b428314610f9b57600160ff1b8114600019831416610ab057600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101da5780610fe060206040930151610b28565b015190565b81810292918115918404141715610ab057565b606081015160208201518082146110735780421160001461106b57905b8103908111610ab05760408201908151600081136000146110485750611042906101fa9351925190610fe5565b90610ab5565b9261105f9250611059905193610b17565b90610fe5565b8103908111610ab05790565b504290611015565b50505190565b90633b9aca0091828102928184051490151715610ab057565b60008190039190600160ff1b8114600116610ab057600019830503610ab057565b6706f05b59d3b20000811461128057670de0b6b3a76400008082121561122a57811561124b5760018260011b916002938305600203610ab05760008312801561126f575b61125d57821561122a57671bc16d674ec80000831461124b57821291821561123c57925b611124846118db565b801561122a5761119661115561115061114b61114661119b959997969961146f565b61199c565b611379565b611079565b61119161116961116483611906565b610c63565b61118b61118661118061117b86611931565b610c7b565b85611a13565b610c93565b9061197a565b610afe565b6119c4565b936000925b8184106111d257505050506101fa916111bf916000146111c4576118b4565b610b17565b6111cd90610b17565b6118b4565b90916112208661121a6111ea8561119186999b611610565b61118b61120a6112056112006111bf8780611a13565b611730565b6119ec565b6112148386611a13565b90610afe565b90610d71565b95019291906111a0565b6040516307a0212760e01b8152600490fd5b61124590610ac2565b9261111b565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec8000083136110f7565b50600090565b9061129090611379565b633b9aca0090818102918183041490151715610ab0576101fa9161132d565b8181029181830414901517600116156101da576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101da57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101da570490565b8181029181830414901517600116156101da57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517600116156101da57671bc16d674ec80000900490565b60b581600160881b811015611420575b80690100000000000000000062010000921015611413575b65010000000000811015611406575b63010000008110156113f9575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916113bd565b60201c9160101b916113b0565b60401c9160201b916113a1565b5068b500000000000000009050608082901c611389565b1561143e57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642849061149b60008213611437565b711340daa0d5f769dba1915cef59f0815a55066114b782611a5f565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b801561172357675698eef06670000081121561128057675698eef0666fffff1981131561171657600061170661164583611ad1565b6116ce61120061165f61165a6111868561134e565b61195b565b92610e0a6117016116fc6116f56116ef6116ea6116e46116df6116d96116d48d6116ce6116c96116c36116be6111806116b96116b36116ae6116a86116a38a611a34565b610cab565b89611a13565b610cc5565b87611a13565b610cdd565b610cf7565b83611a13565b610d0f565b90611a13565b610d29565b8c611a13565b610d41565b8a611a13565b610d59565b88611a13565b9380611a13565b611092565b610ae5565b9112156101fa576101fa90610ac2565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b680248ce36a70cb26b3e1981131561128057680755bf798b4a1bf1e5811215611880576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be889080820291820514600116156101da57670de0b6b3a7640000900590565b670de0b6b3a7640000908181029181830514901517600116156101da57671bc16d674ec80000900590565b6703c1665c7aab2000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b669f32752462a000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b600181151516156101da576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a764000090818102918183051490151782151516156101da570590565b671bc16d674ec7ffff198181029160019183051416156101da57670de0b6b3a7640000900590565b6709d028cc6f205fff198181029160019183051416156101da57670de0b6b3a7640000900590565b670fa8cedfc2adddfa9080820291820514600116156101da57670de0b6b3a7640000900590565b8181029181830514901517600116156101da57670de0b6b3a7640000900590565b67025f0fe105a31400908181029181830514901517600116156101da57670de0b6b3a7640000900590565b611a6a811515611437565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b600160ff1b8114611aec5760008112156101fa571960010190565b604051634d2d75b160e01b8152600490fdfea2646970667358221220b596d744fe988e0f66eb3212b01d8a9e660acea43730ff108a9b5edd5f05d2b364736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a264697066735822122022a4e39d35d5d289e76a1826edf762819d94a525bc2d556348a2d56f042ef3e264736f6c63430008160033","sourceMap":"88:2108:80:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;709:579:79;;:::i;:::-;88:2108:80;;785:32:79;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;776:41;88:2108:80;;-1:-1:-1;;;;;;88:2108:80;-1:-1:-1;;;;;88:2108:80;;;;;;;;;;;836:32:79;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;827:41;88:2108:80;;-1:-1:-1;;;;;;88:2108:80;-1:-1:-1;;;;;88:2108:80;;;;;;776:41:79;88:2108:80;878:11:79;;88:2108:80;;-1:-1:-1;;;;;88:2108:80;;;878:11:79;:34;;;;;88:2108:80;;-1:-1:-1;;;878:34:79;;;898:4;88:2108:80;878:34:79;;88:2108:80;905:6:79;88:2108:80;;;;;;;;;;;;;;;878:34:79;;;;;;;;88:2108:80;-1:-1:-1;827:41:79;88:2108:80;;;922:11:79;;-1:-1:-1;;;;;88:2108:80;;;922:11:79;:34;;;;;;88:2108:80;;922:34:79;;;898:4;88:2108:80;922:34:79;;88:2108:80;905:6:79;88:2108:80;;;;;;;;;;;898:4:79;;922:34;;;;;;;;88:2108:80;-1:-1:-1;776:41:79;88:2108:80;981:15:79;;-1:-1:-1;;;;;88:2108:80;;;981:15:79;827:41;88:2108:80;998:15:79;;-1:-1:-1;;;;;88:2108:80;;;998:15:79;88:2108:80;;;973:46:79;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:2108:80;;;;;;;378:4:31;;;88:2108:80;378:4:31;;;;88:2108:80;378:4:31;;;;973:46:79;;;;;;;;;967:52;88:2108:80;;-1:-1:-1;;;;;;88:2108:80;-1:-1:-1;;;;;88:2108:80;;;;;;;;;;;1036:20:79;;;;;;;;;;;;;;;;;;;;;88:2108:80;;;;;;;1036:20:79;;;;;;;;;1029:27;88:2108:80;;-1:-1:-1;;;;;;88:2108:80;-1:-1:-1;;;;;88:2108:80;;;;;;;;;1092:13:79;;378:4:31;88:2108:80;1092:13:79;88:2108:80;;1078:28:79;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:2108:80;;;;;;;;;1078:28:79;;;;;;;;;1066:40;88:2108:80;;-1:-1:-1;;;;;;88:2108:80;-1:-1:-1;;;;;88:2108:80;;;;;;;;;1145:18:79;;378:4:31;88:2108:80;1145:18:79;88:2108:80;;;1125:39:79;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:2108:80;;;;;;;;;1125:39:79;;;;;;;;;;1116:48;1175;1116;785:32;88:2108:80;;;;;;;;1116:48:79;88:2108:80;;;1116:48:79;88:2108:80;;1116:48:79;776:41;88:2108:80;1175:14:79;;-1:-1:-1;;;;;88:2108:80;;;1175:14:79;1029:27;378:4:31;1190:13:79;;-1:-1:-1;;;;;88:2108:80;378:4:31;88:2108:80;1190:13:79;88:2108:80;;-1:-1:-1;;;1175:48:79;;;-1:-1:-1;;;;;88:2108:80;;;;1175:48:79;;88:2108:80;-1:-1:-1;;378:4:31;;;88:2108:80;1175:48:79;;88:2108:80;;;;1175:48:79;;88:2108:80;;1175:48:79;88:2108:80;;1175:48:79;;88:2108:80;;378:4:31;;;;;1175:48:79;;;;;;;;;;1233;1175;;;;;88:2108:80;-1:-1:-1;827:41:79;88:2108:80;1233:14:79;;-1:-1:-1;;;;;88:2108:80;;;1233:14:79;1029:27;378:4:31;;;;;;1248:13:79;;-1:-1:-1;;;;;88:2108:80;378:4:31;88:2108:80;1248:13:79;88:2108:80;;1233:48:79;;;-1:-1:-1;;;;;88:2108:80;;;;1233:48:79;;88:2108:80;-1:-1:-1;;378:4:31;;;88:2108:80;;;;;;;;378:4:31;;;;;1233:48:79;;;;;;;;;;;88:2108:80;;;1233:48:79;;;;;;-1:-1:-1;1233:48:79;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;88:2108:80;;;1233:48:79;;;;;;;:::i;1175:::-;;;;;;;;;;;;;:::i;:::-;;;;;1125:39;;:::i;922:34::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;88:2108:80;;;878:34:79;;;;;;:::i;:::-;;;;;88:2108:80;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;88:2108:80;;;;;;;378:11:59;88:2108:80;;;;;;;;;;;;;;;;;1320:10:79;;;;;88:2108:80;;-1:-1:-1;;;1320:10:79;;88:2108:80;;1320:10:79;;88:2108:80;;;;;;;;;;;;1320:10:79;;;;;;;;88:2108:80;-1:-1:-1;1434:9:79;378:4:31;;;1057:14:1;;1597:28:79;;1426:18;;-1:-1:-1;;;;;88:2108:80;378:4:31;88:2108:80;1426:18:79;1474:6;88:2108:80;1385:186:79;;1466:15;;-1:-1:-1;;;;;88:2108:80;;;1466:15:79;1511:6;88:2108:80;1385:186:79;;1503:15;;-1:-1:-1;;;;;88:2108:80;;;1503:15:79;1057:14:1;1385:186:79;1057:14:1;;:::i;:::-;-1:-1:-1;;;;;88:2108:80;;;1057:14:1;;;1385:186:79;-1:-1:-1;;;;;88:2108:80;1385:186:79;;;1057:14:1;;1385:186:79;-1:-1:-1;;;;;88:2108:80;;1385:186:79;;1057:14:1;;1385:186:79;1057:14:1;;:::i;:::-;1385:186:79;;;1057:14:1;1597:4:79;378::31;1597:9:79;;-1:-1:-1;;;;;88:2108:80;378:4:31;88:2108:80;1597:9:79;88:2108:80;;;;;;;;;;;;1597:28:79;;88:2108:80;1597:28:79;;;:::i;:::-;;;;;;;;;1582:43;1597:28;;;;;88:2108:80;1582:43:79;;1057:14:1;;1582:43:79;1636:1;;:::i;:::-;88:2108:80;;1597:28:79;;;;1057:14:1;1597:28:79;1057:14:1;1597:28:79;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;1320:10;;;;;;:::i;:::-;;;;88:2108:80;;;;;;;;;-1:-1:-1;;88:2108:80;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1320:10:79;;;;;88:2108:80;;-1:-1:-1;;;1320:10:79;;88:2108:80;;1320:10:79;;88:2108:80;;;;;;;;;;;;1320:10:79;;;;;;;;88:2108:80;-1:-1:-1;1434:9:79;378:4:31;;;1057:14:1;;1597:28:79;;1426:18;;-1:-1:-1;;;;;88:2108:80;378:4:31;88:2108:80;1597:28:79;;;;;;;;;1582:43;1597:28;;;;;1582:43;;1057:14:1;;1582:43:79;1636:1;;:::i;1320:10::-;;;;;;:::i;:::-;;;;88:2108:80;;;;;;-1:-1:-1;;88:2108:80;;;;;291:22:79;88:2108:80;;;;;;;;;;;;;-1:-1:-1;;88:2108:80;;;;992:4:59;378::31;88:2108:80;;-1:-1:-1;;;992:20:59;;88:2108:80;;;992:20:59;;;88:2108:80;;;;;;;;;;-1:-1:-1;;;;;88:2108:80;992:20:59;;;;;;;-1:-1:-1;992:20:59;;;88:2108:80;1029:19:59;;;88:2108:80;;;-1:-1:-1;;;;;88:2108:80;;;;-1:-1:-1;;;;;88:2108:80;;;;;;;;;;;;;;;;;992:20:59;;;88:2108:80;992:20:59;;88:2108:80;992:20:59;;;;;;88:2108:80;992:20:59;;;:::i;:::-;;;88:2108:80;;;;;1029:19:59;88:2108:80;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;992:20:59;;;;;;;;-1:-1:-1;992:20:59;;88:2108:80;;;;;;-1:-1:-1;;88:2108:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;1057:14:1;88:2108:80;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;88:2108:80;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;88:2108:80;;;;;;;;;;;;;;-1:-1:-1;;;88:2108:80;;;;814:2:79;88:2108:80;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;88:2108:80;;;;;;;;;;;;;;-1:-1:-1;;;88:2108:80;;;;814:2:79;88:2108:80;;;;;;;:::o;378:4:31:-;;88:2108:80;;;;378:4:31;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;:::o;1057:14:1:-;88:2108:80;;1057:14:1;-1:-1:-1;1538:22:79;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;88:2108:80;;;;;1057:14:1;88:2108:80;;;;1057:14:1;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;1538:22:79;1057:14:1;;;;;;;-1:-1:-1;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1057:14:1;;;;;;88:2108:80;1057:14:1;;;;;;;;;;;;;;;;;;88:2108:80;;1057:14:1;;;;88:2108:80;1057:14:1;;;;;88:2108:80;1057:14:1;;88:2108:80;1057:14:1;:::o;:::-;;;;;;;;-1:-1:-1;;1057:14:1;;;;:::o;:::-;;;;;;;;;;;;;;;88:2108:80;1057:14:1;;88:2108:80;;;;;;;;;;;1057:14:1;;;:::i;:::-;88:2108:80;;-1:-1:-1;;88:2108:80;1057:14:1;;;:::o;:::-;;;;;;;;785:32:79;88:2108:80;;;;1057:14:1;;;88:2108:80;1057:14:1;;;88:2108:80;1057:14:1;;;;;88:2108:80;1057:14:1;;;88:2108:80;1057:14:1;;;;88:2108:80;1057:14:1;;;88:2108:80;1057:14:1;;;;;;;;;;;:::i;88:2108:80:-;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;88:2108:80;;;;:::o;:::-;;;;;;;;378:4:31;;;:::i;:::-;88:2108:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;:::o;139:1013::-;229:6;88:2108;229:16;;-1:-1:-1;;;;;88:2108:80;;;229:16;254:4;378::31;246:13:80;;-1:-1:-1;;;;;88:2108:80;378:4:31;88:2108:80;246:13;88:2108;;;-1:-1:-1;;;229:31:80;;;-1:-1:-1;;;;;88:2108:80;;229:31;;;;88:2108;;;;229:31;;88:2108;;;229:31;;;88:2108;;;229:31;;;;;;;;-1:-1:-1;229:31:80;;;139:1013;-1:-1:-1;296:6:80;88:2108;296:31;;88:2108;;;;;296:16;;-1:-1:-1;;;;;88:2108:80;;;296:16;88:2108;;296:31;;;-1:-1:-1;;;;;88:2108:80;;;296:31;;;88:2108;;;;;;;;;;;;;;;;296:31;;;;;;;;;;;-1:-1:-1;296:31:80;;;139:1013;-1:-1:-1;88:2108:80;;364:31;;;389:4;364:31;;;88:2108;;;;;;;;;364:31;88:2108;;;;;;364:31;;;;;;;;;-1:-1:-1;364:31:80;;;139:1013;-1:-1:-1;88:2108:80;;431:31;;;389:4;431:31;;;88:2108;;;;;;;;;431:31;88:2108;;;;;;431:31;;;;;;;;;-1:-1:-1;431:31:80;;;139:1013;88:2108;594:49;88:2108;;;;-1:-1:-1;594:19:80;88:2108;594:6;88:2108;785:32:79;88:2108:80;;;;;;;594:19;614:7;88:2108;;;-1:-1:-1;;;594:49:80;;;;;88:2108;;;528:4;88:2108;;;;492:9;88:2108;;;;;;;;;;;;;;;;594:49;;;;;;;;;;742:27;594:49;;;-1:-1:-1;;;594:49:80;;;139:1013;669:4;;;;:::i;:::-;254;378::31;742:9:80;;-1:-1:-1;;;;;88:2108:80;378:4:31;88:2108:80;742:9;614:7;88:2108;-1:-1:-1;88:2108:80;;;;;;;;;;;742:27;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;742:27:80;;;139:1013;-1:-1:-1;229:6:80;88:2108;789:31;;88:2108;;789:16;;-1:-1:-1;;;;;88:2108:80;;;789:16;254:4;378::31;806:13:80;;-1:-1:-1;;;;;88:2108:80;378:4:31;88:2108:80;806:13;88:2108;;789:31;;;-1:-1:-1;;;;;88:2108:80;;;789:31;;;88:2108;;;;;;;;;;;;;;;;789:31;;;;;;;;;;884;789;;822:29;789:31;;-1:-1:-1;789:31:80;;;139:1013;822:29;;;;;;:::i;:::-;;;:::i;:::-;296:6;88:2108;;;884:16;;-1:-1:-1;;;;;88:2108:80;;;884:16;254:4;378::31;901:13:80;;-1:-1:-1;;;;;88:2108:80;378:4:31;88:2108:80;901:13;88:2108;;884:31;;;-1:-1:-1;;;;;88:2108:80;;;884:31;;;88:2108;;;;;;;;;;;;;;;;884:31;;;;;;;;;;917:30;884:31;-1:-1:-1;884:31:80;;;139:1013;917:30;;;;;:::i;:::-;229:6;88:2108;977:16;;-1:-1:-1;;;;;88:2108:80;;;977:16;88:2108;;977:31;;;389:4;977:31;;;88:2108;;;;;;;;;977:31;88:2108;;;;;;977:31;;;;;;;;;1072;977;;;1010:29;977:31;-1:-1:-1;977:31:80;;;1010:29;;;;;:::i;:::-;296:6;88:2108;1072:16;;-1:-1:-1;;;;;88:2108:80;;;1072:16;88:2108;;1072:31;;;389:4;1072:31;;;88:2108;;;;;;;;;;;;;;1072:31;;;;;;;;;;1105:30;1072:31;-1:-1:-1;1072:31:80;;;1105:30;;;;;;:::i;1072:31::-;1105:30;1072:31;;;;;;;;-1:-1:-1;1072:31:80;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;977;1010:29;977:31;;;;;;;;;;;;;;:::i;:::-;;;;884;917:30;884:31;;;;;;;-1:-1:-1;884:31:80;;;;;;:::i;789:::-;822:29;789:31;;;;;;;;-1:-1:-1;789:31:80;;;;;;:::i;:::-;;;;;742:27;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;594:49;669:4;594:49;;;;;;;-1:-1:-1;594:49:80;;;;;;:::i;:::-;;;;;:::i;:::-;;;-1:-1:-1;594:49:80;;-1:-1:-1;594:49:80;431:31;594:49;431:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;364;;;;;;;;;;;;;;;:::i;:::-;;;;;296;;;;;;;;;;;;;;;:::i;:::-;;;;;229;296;229;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1671:64:0;;;;;;;;;;88:2108:80;;1671:64:0;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;:::i;:::-;88:2108:80;;;;;;;:::i;:::-;1671:64:0;;;-1:-1:-1;1671:64:0;;;;:::o;:::-;;;:::o;1819:584::-;1873:7;88:2108:80;;;;;;1873:7:0;;;88:2108:80;;;;;378:4:31;:::o;1869:528:0:-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;88:2108:80;;;;;2196:43:0;;;;;;1671:64;;;;88:2108:80;;;;1671:64:0;;;;;;88:2108:80;1671:64:0;2196:43;;;88:2108:80;;2196:43:0;;;;;;;;:::i;:::-;2086:175;88:2108:80;;2086:175:0;;;2196:43;2086:175;;;;;:::i;:::-;;;;;;;;;:::i;:::-;2047:232;;;;;2312:27;2047:232;;:::i;:::-;2196:43;88:2108:80;;;2312:27:0;;;;;;:::i;1158:1036:80:-;1248:6;88:2108;1248:16;;-1:-1:-1;;;;;88:2108:80;;;1248:16;1273:4;378::31;1265:13:80;;-1:-1:-1;;;;;88:2108:80;378:4:31;88:2108:80;1265:13;88:2108;;;-1:-1:-1;;;1248:31:80;;;-1:-1:-1;;;;;88:2108:80;;1248:31;;;;88:2108;;;;;;1248:31;;;;88:2108;;;;;1248:31;88:2108;;;;1248:31;;;;;;;;1158:1036;-1:-1:-1;1315:6:80;88:2108;1315:31;;88:2108;;1315:16;;-1:-1:-1;;;;;88:2108:80;;;1315:16;88:2108;;1315:31;;;-1:-1:-1;;;;;88:2108:80;;;1315:31;;;88:2108;;;;;;;;;;;;;;;;1315:31;;;;;;;;;;;;1158:1036;-1:-1:-1;88:2108:80;;1383:31;;;1408:4;1383:31;;;88:2108;;;;;;;;;1383:31;88:2108;;;;;;1383:31;;;;;;;;;;;;;1158:1036;-1:-1:-1;88:2108:80;;1450:31;;;1408:4;1450:31;;;88:2108;;;;;;;;;;;;;1450:31;;;;;;;;;;1158:1036;-1:-1:-1;;1614:6:80;88:2108;1614:49;;-1:-1:-1;;1614:19:80;;-1:-1:-1;;;;;88:2108:80;;;1614:19;1634:7;88:2108;;;-1:-1:-1;;;1614:49:80;;;;;88:2108;;;-1:-1:-1;88:2108:80;;;;1511:9;88:2108;;;;;;;;;;;;;;;;1614:49;;;;;;;;;1762:27;1614:49;;;-1:-1:-1;;;1614:49:80;;;1158:1036;1689:4;;;;:::i;:::-;1273;378::31;1762:9:80;;-1:-1:-1;;;;;88:2108:80;378:4:31;88:2108:80;1762:9;88:2108;-1:-1:-1;1634:7:80;88:2108;;;;;;;;;;;;;;1762:27;;;;;:::i;:::-;;;;;;;;;;;1158:1036;;:::o;1762:27::-;;;;;;-1:-1:-1;1762:27:80;;;;;;:::i;:::-;1158:1036;;:::o;1614:49::-;1689:4;1614:49;;;;;;;-1:-1:-1;1614:49:80;;;;;;:::i;:::-;;;-1:-1:-1;1614:49:80;;-1:-1:-1;1614:49:80;1450:31;;;;;;-1:-1:-1;1450:31:80;;;;;;:::i;:::-;;;;;;1383;;;;;;;;;;;;;:::i;:::-;;;;;1315;;;;;;;;;;;;;:::i;:::-;;;;;1248;;;;;;;;;;;;;:::i;:::-;;;;;396:450:59;88:2108:80;;;447:32:59;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;776:41:79;88:2108:80;;-1:-1:-1;;;;;;88:2108:80;-1:-1:-1;;;;;88:2108:80;;;;;;;;;;;498:32:59;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;827:41:79;88:2108:80;;-1:-1:-1;;;;;;88:2108:80;-1:-1:-1;;;;;88:2108:80;;;;;;438:41:59;88:2108:80;540:11:59;;88:2108:80;;;540:11:59;:34;;;;;88:2108:80;;-1:-1:-1;;;540:34:59;;;560:4;540:34;;;88:2108:80;905:6:79;88:2108:80;;;;;;;;;;;;;;;540:34:59;;;;;;;;396:450;-1:-1:-1;489:41:59;88:2108:80;584:11:59;;-1:-1:-1;;;;;88:2108:80;;;584:11:59;:34;;;;;;88:2108:80;;584:34:59;;;560:4;540:34;584;;88:2108:80;905:6:79;88:2108:80;;;;;;;;;;;;;;;584:34:59;;;;;;;;396:450;-1:-1:-1;438:41:59;88:2108:80;643:15:59;;-1:-1:-1;;;;;88:2108:80;;;643:15:59;489:41;88:2108:80;660:15:59;;-1:-1:-1;;;;;88:2108:80;;;660:15:59;88:2108:80;;;635:50:59;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:2108:80;;;;;;;378:4:31;;;88:2108:80;378:4:31;;;;88:2108:80;378:4:31;;;;635:50:59;;;;;;;;;967:52:79;88:2108:80;;-1:-1:-1;;;;;;88:2108:80;-1:-1:-1;;;;;88:2108:80;;;;;;;;;;;;702:20:59;;;;;;;;;;;;;;;;;;;;88:2108:80;;;;;;;702:20:59;;;;;;;;;;695:27;733:48;695:27;785:32:79;88:2108:80;;;;;;;;1029:27:79;88:2108:80;;;1029:27:79;88:2108:80;;695:27:59;438:41;88:2108:80;733:14:59;;-1:-1:-1;;;;;88:2108:80;;;733:14:59;695:27;378:4:31;;;;748:13:59;;-1:-1:-1;;;;;88:2108:80;378:4:31;88:2108:80;748:13:59;88:2108:80;;-1:-1:-1;;;733:48:59;;;-1:-1:-1;;;;;88:2108:80;;;540:34:59;733:48;;88:2108:80;-1:-1:-1;;378:4:31;;;88:2108:80;733:48:59;;88:2108:80;;;;733:48:59;;88:2108:80;;733:48:59;88:2108:80;;;;;;378:4:31;;;;;733:48:59;;;;;;;;;;791;733;;;;;396:450;-1:-1:-1;489:41:59;88:2108:80;791:14:59;;-1:-1:-1;;;;;88:2108:80;;;791:14:59;695:27;378:4:31;;;;806:13:59;;-1:-1:-1;;;;;88:2108:80;378:4:31;88:2108:80;791:48:59;;;;;;;;;;;396:450;;:::o;791:48::-;;;;;;-1:-1:-1;791:48:59;;;;;;:::i;:::-;;396:450::o;733:48::-;;;;;;;;;;;;;:::i;:::-;;;;;584:34;;;;;;:::i;:::-;;;;540;;;;;;:::i;:::-;;;;;88:2108:80;;;;;;;;;;:::i;:::-;;1671:64:0;;-1:-1:-1;;;88:2108:80;;;;:::o;:::-;;;;;;;:::i;:::-;;1671:64:0;;-1:-1:-1;;;88:2108:80;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;88:2108:80;;;;;;;;;;;;;;;;;:::i;789:312:3:-;528:4:80;88:2108;;;854:6:3;850:245;;789:312;:::o;850:245::-;1012:52;88:2108:80;881:41:3;88:2108:80;;;;;;;;;;;;;;;;-1:-1:-1;;;88:2108:80;;;;881:41:3;88:2108:80;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;88:2108:80;;;;;;;;;;;;;;;;941:52:3;88:2108:80;941:52:3;88:2108:80;;;;:::i;:::-;941:52:3;;;1043:20;;;88:2108:80;;:::i;:::-;1043:20:3;;88:2108:80;1012:52:3;;;;;:::i;:::-;;;;;;:::i;1043:20::-;88:2108:80;;:::i;:::-;1043:20:3;;;5202:262:0;5259:6;;;5255:203;;5202:262;;:::o;5255:203::-;88:2108:80;;;;5286:41:0;88:2108:80;;;;;;;;;;;;;;;;-1:-1:-1;;;88:2108:80;;;;5286:41:0;88:2108:80;;;;;;;;;;;;;;;-1:-1:-1;;;88:2108:80;;;;;;;;;;;;;5346:31:0;;;;;;;;88:2108:80;;;;;;;;;;;;;;;-1:-1:-1;;;88:2108:80;;;;;;;;;;;;;5396:31:0;;;;2410:424;2939:104;;;2445:359;;2410:424;88:2108:80;;;;2928:1:0;88:2108:80;;;2928:1:0;88:2108:80;2410:424:0:o;2445:359::-;-1:-1:-1;88:2108:80;;;;2645:67:0;;;;88:2108:80;;;1671:64:0;;;88:2108:80;;;;2705:4:0;88:2108:80;;;;;2645:67:0;;;;;:::i;:::-;2534:196;1671:64;88:2108:80;;2534:196:0;;1671:64;2645:67;2534:196;;1671:64;;;;;;88:2108:80;1671:64:0;;;;;;;:::i;:::-;;;2534:196;1671:64;2534:196;;;;;;;:::i;:::-;2499:245;;;;;;;:::i;:::-;;2445:359;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","POOL_ID()":"e0d7d0e9","TEST_SWAP_FEE()":"620a2607","failed()":"ba414fa6","getPoolLiquidityToken(uint256)":"e21485ad","setUp()":"0a9254e4","test_LogNormal_swap_SwapsXforY()":"90c03eee","test_LogNormal_swap_SwapsYforX()":"dd969c97"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"upper\",\"type\":\"uint256\"}],\"name\":\"BisectionLib_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"lowerResult\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"upperResult\",\"type\":\"int256\"}],\"name\":\"BisectionLib_RootOutsideBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Infinity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Min\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NegativeInfinity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfBounds\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POOL_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_SWAP_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolLiquidityToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_LogNormal_swap_SwapsXforY\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_LogNormal_swap_SwapsYforX\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"BisectionLib_InvalidBounds(uint256,uint256)\":[{\"details\":\"Thrown when the lower bound is greater than the upper bound.\"}],\"BisectionLib_RootOutsideBounds(int256,int256)\":[{\"details\":\"Thrown when the result of the function `fx` for each input, `upper` and `lower`, is the same sign.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/unit/strategies/LogNormal/Swap.t.sol\":\"LogNormalSwapTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/lib/SignedWadMath.sol\":{\"keccak256\":\"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a\",\"dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/solvers/LogNormal/LogNormalExtendedLib.sol\":{\"keccak256\":\"0x204015cfa704225710b310e02fd4ea4648617f580cbb08fb22306357969e4a63\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0b2df304ee8a88040b573201316e12756e74c042fddbb4ec25d23ecd34971768\",\"dweb:/ipfs/QmaC4vUQY6UAD6UrEF3rvMLyYbtQKuF9Bbgr3aqkGMzSqF\"]},\"src/solvers/LogNormal/LogNormalSolver.sol\":{\"keccak256\":\"0xe97dbbad3eb6aadeaaa7c9ad82cf08a79006ad3058e6dcbc2576e17d6337cc1d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://22e41f296c3675c79ba6a670d081e073cdb935fd44f8e739a88a250be0766004\",\"dweb:/ipfs/QmZMYJq14i3q2zKTerD836DXC9deux4EggR3BNp61J4t2U\"]},\"src/strategies/LogNormal/LogNormal.sol\":{\"keccak256\":\"0xce0e14a6180d989eff4223bd173904717c745f93c7d02e972dce9d4f5a414d15\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0fe700ac552153eb030453532afdf52d7ae1b7f8ca53b0f050ab9a9e0b1f0ee9\",\"dweb:/ipfs/QmPQW7F1wUqLKs2qPmvJq5EiBfUmPGGsW4y9dUmMtDkfnt\"]},\"src/strategies/LogNormal/LogNormalLib.sol\":{\"keccak256\":\"0x208f8cd3b02d7305d4c54cf02c07f443ddfed1c6c719e752888be208c3ad3645\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://850b799c647dfbece76c7c1daad3ac375243f66daa0eb8206eeeee783982429c\",\"dweb:/ipfs/QmUrixVb4EAxccZxvZCoAJjF8YRqnMbX6cpGCwPfjZvgQk\"]},\"src/strategies/LogNormal/LogNormalMath.sol\":{\"keccak256\":\"0x5d97983f91cf766e1e87ef244a39c6ec6961de38c4c8817030b32edd72a1e65f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://df6121bf8157bad9b659d484fdcc8ebf0cd41179b323d06225d1cf6bff266663\",\"dweb:/ipfs/QmRGN6MwWZb9f6X4Xqv7f3VpUFWXFb36jDKcyEQVaFUhhz\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]},\"src/test/helpers/MockStrategy.sol\":{\"keccak256\":\"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5\",\"dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw\"]},\"src/test/helpers/SetUp.sol\":{\"keccak256\":\"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30\",\"dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14\"]},\"src/test/unit/DFMM/SetUp.sol\":{\"keccak256\":\"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4\",\"dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm\"]},\"src/test/unit/strategies/LogNormal/SetUp.sol\":{\"keccak256\":\"0x272206974452b0c363a55f2658a4c24e6355f5a06fe817532c723af8f732540d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://87550594bcc0d4b66eada3e1692ac1b15064eefee9cbb356ff8c4410f4a51e78\",\"dweb:/ipfs/QmS3HCkpwfti4ifTitYoR5sRLb8ShMDvkW9ST9Ta8cUvu5\"]},\"src/test/unit/strategies/LogNormal/Swap.t.sol\":{\"keccak256\":\"0x5f0312f5d80e7cf7f4700bb2b60b7a61cb18bbee743b0e51d6329a5eaaa46431\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ea3376e0485a32388066ae1a748bacd430c4822f9ba1f8f4f4b5d63b021cf166\",\"dweb:/ipfs/QmVLL72u4G7X7V1B2qfUDu6BDXCsghCoFYneamfJDCNQxr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"lower","type":"uint256"},{"internalType":"uint256","name":"upper","type":"uint256"}],"type":"error","name":"BisectionLib_InvalidBounds"},{"inputs":[{"internalType":"int256","name":"lowerResult","type":"int256"},{"internalType":"int256","name":"upperResult","type":"int256"}],"type":"error","name":"BisectionLib_RootOutsideBounds"},{"inputs":[],"type":"error","name":"Infinity"},{"inputs":[],"type":"error","name":"Min"},{"inputs":[],"type":"error","name":"NegativeInfinity"},{"inputs":[],"type":"error","name":"OutOfBounds"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"POOL_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_SWAP_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolLiquidityToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_LogNormal_swap_SwapsXforY"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_LogNormal_swap_SwapsYforX"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/unit/strategies/LogNormal/Swap.t.sol":"LogNormalSwapTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/lib/SignedWadMath.sol":{"keccak256":"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630","urls":["bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a","dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN"],"license":"MIT"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/solvers/LogNormal/LogNormalExtendedLib.sol":{"keccak256":"0x204015cfa704225710b310e02fd4ea4648617f580cbb08fb22306357969e4a63","urls":["bzz-raw://0b2df304ee8a88040b573201316e12756e74c042fddbb4ec25d23ecd34971768","dweb:/ipfs/QmaC4vUQY6UAD6UrEF3rvMLyYbtQKuF9Bbgr3aqkGMzSqF"],"license":"GPL-3.0-or-later"},"src/solvers/LogNormal/LogNormalSolver.sol":{"keccak256":"0xe97dbbad3eb6aadeaaa7c9ad82cf08a79006ad3058e6dcbc2576e17d6337cc1d","urls":["bzz-raw://22e41f296c3675c79ba6a670d081e073cdb935fd44f8e739a88a250be0766004","dweb:/ipfs/QmZMYJq14i3q2zKTerD836DXC9deux4EggR3BNp61J4t2U"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormal.sol":{"keccak256":"0xce0e14a6180d989eff4223bd173904717c745f93c7d02e972dce9d4f5a414d15","urls":["bzz-raw://0fe700ac552153eb030453532afdf52d7ae1b7f8ca53b0f050ab9a9e0b1f0ee9","dweb:/ipfs/QmPQW7F1wUqLKs2qPmvJq5EiBfUmPGGsW4y9dUmMtDkfnt"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormalLib.sol":{"keccak256":"0x208f8cd3b02d7305d4c54cf02c07f443ddfed1c6c719e752888be208c3ad3645","urls":["bzz-raw://850b799c647dfbece76c7c1daad3ac375243f66daa0eb8206eeeee783982429c","dweb:/ipfs/QmUrixVb4EAxccZxvZCoAJjF8YRqnMbX6cpGCwPfjZvgQk"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormalMath.sol":{"keccak256":"0x5d97983f91cf766e1e87ef244a39c6ec6961de38c4c8817030b32edd72a1e65f","urls":["bzz-raw://df6121bf8157bad9b659d484fdcc8ebf0cd41179b323d06225d1cf6bff266663","dweb:/ipfs/QmRGN6MwWZb9f6X4Xqv7f3VpUFWXFb36jDKcyEQVaFUhhz"],"license":"GPL-3.0-or-later"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"},"src/test/helpers/MockStrategy.sol":{"keccak256":"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a","urls":["bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5","dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw"],"license":"UNLICENSED"},"src/test/helpers/SetUp.sol":{"keccak256":"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb","urls":["bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30","dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14"],"license":"UNLICENSED"},"src/test/unit/DFMM/SetUp.sol":{"keccak256":"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a","urls":["bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4","dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm"],"license":"UNLICENSED"},"src/test/unit/strategies/LogNormal/SetUp.sol":{"keccak256":"0x272206974452b0c363a55f2658a4c24e6355f5a06fe817532c723af8f732540d","urls":["bzz-raw://87550594bcc0d4b66eada3e1692ac1b15064eefee9cbb356ff8c4410f4a51e78","dweb:/ipfs/QmS3HCkpwfti4ifTitYoR5sRLb8ShMDvkW9ST9Ta8cUvu5"],"license":"UNLICENSED"},"src/test/unit/strategies/LogNormal/Swap.t.sol":{"keccak256":"0x5f0312f5d80e7cf7f4700bb2b60b7a61cb18bbee743b0e51d6329a5eaaa46431","urls":["bzz-raw://ea3376e0485a32388066ae1a748bacd430c4822f9ba1f8f4f4b5d63b021cf166","dweb:/ipfs/QmVLL72u4G7X7V1B2qfUDu6BDXCsghCoFYneamfJDCNQxr"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/unit/strategies/LogNormal/Swap.t.sol","id":48795,"exportedSymbols":{"ArbiterToken":[43381],"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"DFMM":[29062],"DFMMSetUp":[45761],"DSTest":[1786],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"LPToken":[29516],"Lex":[44392],"LibString":[26659],"LogNormal":[38879],"LogNormalLib":[39517],"LogNormalSetUp":[48576],"LogNormalSolver":[36460],"LogNormalSwapTest":[48794],"MAX_ITER":[33842],"Min":[27736],"MockERC20":[25560],"MockStrategy":[44649],"ONE":[30639],"SQRT_WAD":[30630],"SafeTransferLib":[26744],"SetUp":[44852],"SignedWadMathLib":[30623],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"TWO":[30633],"Test":[8195],"TestBase":[1843],"Vm":[9352],"WETH":[26027],"ZERO":[30649],"abs":[27763],"bisection":[31118],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeD1":[34040],"computeD2":[34104],"computeHalfSigmaTauSquared":[39613],"computeInitialPoolData":[34282],"computeLGivenX":[33886],"computeLnSDivK":[39549],"computeNextLiquidity":[34383],"computeNextRx":[34484],"computeNextRy":[34585],"computeOptimalLower":[35332],"computeOptimalRaise":[35398],"computeScalingFactor":[30048],"computeSigmaSqrtTau":[39577],"computeXGivenL":[33976],"computeYGivenL":[33932],"console":[17416],"console2":[25512],"diffLower":[34961],"diffRaise":[35266],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"findRootLiquidity":[34224],"findRootLower":[34631],"findRootRaise":[34677],"findRootX":[34184],"findRootY":[34144],"muli":[27777],"muliWad":[27795],"mulidiv":[39703],"mulidivUp":[39659],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"39:2158:80","nodes":[{"id":48578,"nodeType":"PragmaDirective","src":"39:24:80","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":48579,"nodeType":"ImportDirective","src":"65:21:80","nodes":[],"absolutePath":"src/test/unit/strategies/LogNormal/SetUp.sol","file":"./SetUp.sol","nameLocation":"-1:-1:-1","scope":48795,"sourceUnit":48577,"symbolAliases":[],"unitAlias":""},{"id":48794,"nodeType":"ContractDefinition","src":"88:2108:80","nodes":[{"id":48713,"nodeType":"FunctionDefinition","src":"139:1013:80","nodes":[],"body":{"id":48712,"nodeType":"Block","src":"193:959:80","nodes":[],"statements":[{"assignments":[48587],"declarations":[{"constant":false,"id":48587,"mutability":"mutable","name":"preDfmmBalanceX","nameLocation":"211:15:80","nodeType":"VariableDeclaration","scope":48712,"src":"203:23:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48586,"name":"uint256","nodeType":"ElementaryTypeName","src":"203:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48595,"initialValue":{"arguments":[{"arguments":[{"id":48592,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"254:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":48591,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"246:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48590,"name":"address","nodeType":"ElementaryTypeName","src":"246:7:80","typeDescriptions":{}}},"id":48593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"246:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48588,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"229:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":48589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"236:9:80","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"229:16:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":48594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"229:31:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"203:57:80"},{"assignments":[48597],"declarations":[{"constant":false,"id":48597,"mutability":"mutable","name":"preDfmmBalanceY","nameLocation":"278:15:80","nodeType":"VariableDeclaration","scope":48712,"src":"270:23:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48596,"name":"uint256","nodeType":"ElementaryTypeName","src":"270:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48605,"initialValue":{"arguments":[{"arguments":[{"id":48602,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"321:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":48601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"313:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48600,"name":"address","nodeType":"ElementaryTypeName","src":"313:7:80","typeDescriptions":{}}},"id":48603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"313:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48598,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"296:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":48599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"303:9:80","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"296:16:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":48604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296:31:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"270:57:80"},{"assignments":[48607],"declarations":[{"constant":false,"id":48607,"mutability":"mutable","name":"preUserBalanceX","nameLocation":"346:15:80","nodeType":"VariableDeclaration","scope":48712,"src":"338:23:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48606,"name":"uint256","nodeType":"ElementaryTypeName","src":"338:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48615,"initialValue":{"arguments":[{"arguments":[{"id":48612,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"389:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSwapTest_$48794","typeString":"contract LogNormalSwapTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormalSwapTest_$48794","typeString":"contract LogNormalSwapTest"}],"id":48611,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"381:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48610,"name":"address","nodeType":"ElementaryTypeName","src":"381:7:80","typeDescriptions":{}}},"id":48613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"381:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48608,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"364:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":48609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"371:9:80","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"364:16:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":48614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"364:31:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"338:57:80"},{"assignments":[48617],"declarations":[{"constant":false,"id":48617,"mutability":"mutable","name":"preUserBalanceY","nameLocation":"413:15:80","nodeType":"VariableDeclaration","scope":48712,"src":"405:23:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48616,"name":"uint256","nodeType":"ElementaryTypeName","src":"405:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48625,"initialValue":{"arguments":[{"arguments":[{"id":48622,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"456:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSwapTest_$48794","typeString":"contract LogNormalSwapTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormalSwapTest_$48794","typeString":"contract LogNormalSwapTest"}],"id":48621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"448:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48620,"name":"address","nodeType":"ElementaryTypeName","src":"448:7:80","typeDescriptions":{}}},"id":48623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"448:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48618,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"431:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":48619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"438:9:80","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"431:16:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":48624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"431:31:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"405:57:80"},{"assignments":[48627],"declarations":[{"constant":false,"id":48627,"mutability":"mutable","name":"amountIn","nameLocation":"481:8:80","nodeType":"VariableDeclaration","scope":48712,"src":"473:16:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48626,"name":"uint256","nodeType":"ElementaryTypeName","src":"473:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48629,"initialValue":{"hexValue":"302e31","id":48628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"492:9:80","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"473:28:80"},{"assignments":[48631],"declarations":[{"constant":false,"id":48631,"mutability":"mutable","name":"swapXForY","nameLocation":"516:9:80","nodeType":"VariableDeclaration","scope":48712,"src":"511:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48630,"name":"bool","nodeType":"ElementaryTypeName","src":"511:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":48633,"initialValue":{"hexValue":"74727565","id":48632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"528:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"511:21:80"},{"assignments":[48635,null,null,48637],"declarations":[{"constant":false,"id":48635,"mutability":"mutable","name":"valid","nameLocation":"549:5:80","nodeType":"VariableDeclaration","scope":48712,"src":"544:10:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48634,"name":"bool","nodeType":"ElementaryTypeName","src":"544:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null,null,{"constant":false,"id":48637,"mutability":"mutable","name":"payload","nameLocation":"571:7:80","nodeType":"VariableDeclaration","scope":48712,"src":"558:20:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48636,"name":"bytes","nodeType":"ElementaryTypeName","src":"558:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":48644,"initialValue":{"arguments":[{"id":48640,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"614:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48641,"name":"swapXForY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48631,"src":"623:9:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":48642,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48627,"src":"634:8:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48638,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48318,"src":"594:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":48639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"601:12:80","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":36225,"src":"594:19:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,uint256,bytes memory)"}},"id":48643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"594:49:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"543:100:80"},{"expression":{"arguments":[{"id":48646,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48635,"src":"662:5:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"74727565","id":48647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"669:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":48645,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":2011,"src":"653:8:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$","typeString":"function (bool,bool)"}},"id":48648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"653:21:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48649,"nodeType":"ExpressionStatement","src":"653:21:80"},{"assignments":[48651,48653],"declarations":[{"constant":false,"id":48651,"mutability":"mutable","name":"inputAmount","nameLocation":"693:11:80","nodeType":"VariableDeclaration","scope":48712,"src":"685:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48650,"name":"uint256","nodeType":"ElementaryTypeName","src":"685:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48653,"mutability":"mutable","name":"outputAmount","nameLocation":"714:12:80","nodeType":"VariableDeclaration","scope":48712,"src":"706:20:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48652,"name":"uint256","nodeType":"ElementaryTypeName","src":"706:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48659,"initialValue":{"arguments":[{"id":48656,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"752:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48657,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48637,"src":"761:7:80","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48654,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"742:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":48655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"747:4:80","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":28371,"src":"742:9:80","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256,uint256)"}},"id":48658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"742:27:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"684:85:80"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":48665,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"814:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":48664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"806:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48663,"name":"address","nodeType":"ElementaryTypeName","src":"806:7:80","typeDescriptions":{}}},"id":48666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"806:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48661,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"789:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":48662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"796:9:80","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"789:16:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":48667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"789:31:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48668,"name":"preDfmmBalanceX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48587,"src":"822:15:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":48669,"name":"inputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48651,"src":"840:11:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"822:29:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48660,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"780:8:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":48671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"780:72:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48672,"nodeType":"ExpressionStatement","src":"780:72:80"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":48678,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"909:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":48677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"901:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48676,"name":"address","nodeType":"ElementaryTypeName","src":"901:7:80","typeDescriptions":{}}},"id":48679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"901:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48674,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"884:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":48675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"891:9:80","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"884:16:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":48680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"884:31:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48681,"name":"preDfmmBalanceY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48597,"src":"917:15:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":48682,"name":"outputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48653,"src":"935:12:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"917:30:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48673,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"862:8:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":48684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"862:95:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48685,"nodeType":"ExpressionStatement","src":"862:95:80"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":48691,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1002:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSwapTest_$48794","typeString":"contract LogNormalSwapTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormalSwapTest_$48794","typeString":"contract LogNormalSwapTest"}],"id":48690,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"994:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48689,"name":"address","nodeType":"ElementaryTypeName","src":"994:7:80","typeDescriptions":{}}},"id":48692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"994:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48687,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"977:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":48688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"984:9:80","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"977:16:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":48693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"977:31:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48694,"name":"preUserBalanceX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48607,"src":"1010:15:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":48695,"name":"inputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48651,"src":"1028:11:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1010:29:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48686,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"968:8:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":48697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"968:72:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48698,"nodeType":"ExpressionStatement","src":"968:72:80"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":48704,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1097:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSwapTest_$48794","typeString":"contract LogNormalSwapTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormalSwapTest_$48794","typeString":"contract LogNormalSwapTest"}],"id":48703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1089:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48702,"name":"address","nodeType":"ElementaryTypeName","src":"1089:7:80","typeDescriptions":{}}},"id":48705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1089:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48700,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"1072:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":48701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1079:9:80","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"1072:16:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":48706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1072:31:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48707,"name":"preUserBalanceY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48617,"src":"1105:15:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":48708,"name":"outputAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48653,"src":"1123:12:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1105:30:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48699,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"1050:8:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":48710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1050:95:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48711,"nodeType":"ExpressionStatement","src":"1050:95:80"}]},"functionSelector":"90c03eee","implemented":true,"kind":"function","modifiers":[{"id":48584,"kind":"modifierInvocation","modifierName":{"id":48583,"name":"init","nameLocations":["188:4:80"],"nodeType":"IdentifierPath","referencedDeclaration":48514,"src":"188:4:80"},"nodeType":"ModifierInvocation","src":"188:4:80"}],"name":"test_LogNormal_swap_SwapsXforY","nameLocation":"148:30:80","parameters":{"id":48582,"nodeType":"ParameterList","parameters":[],"src":"178:2:80"},"returnParameters":{"id":48585,"nodeType":"ParameterList","parameters":[],"src":"193:0:80"},"scope":48794,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":48793,"nodeType":"FunctionDefinition","src":"1158:1036:80","nodes":[],"body":{"id":48792,"nodeType":"Block","src":"1212:982:80","nodes":[],"statements":[{"assignments":[48719],"declarations":[{"constant":false,"id":48719,"mutability":"mutable","name":"preDfmmBalanceX","nameLocation":"1230:15:80","nodeType":"VariableDeclaration","scope":48792,"src":"1222:23:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48718,"name":"uint256","nodeType":"ElementaryTypeName","src":"1222:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48727,"initialValue":{"arguments":[{"arguments":[{"id":48724,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1273:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":48723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1265:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48722,"name":"address","nodeType":"ElementaryTypeName","src":"1265:7:80","typeDescriptions":{}}},"id":48725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1265:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48720,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"1248:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":48721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1255:9:80","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"1248:16:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":48726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1248:31:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1222:57:80"},{"assignments":[48729],"declarations":[{"constant":false,"id":48729,"mutability":"mutable","name":"preDfmmBalanceY","nameLocation":"1297:15:80","nodeType":"VariableDeclaration","scope":48792,"src":"1289:23:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48728,"name":"uint256","nodeType":"ElementaryTypeName","src":"1289:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48737,"initialValue":{"arguments":[{"arguments":[{"id":48734,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1340:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}],"id":48733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1332:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48732,"name":"address","nodeType":"ElementaryTypeName","src":"1332:7:80","typeDescriptions":{}}},"id":48735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1332:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48730,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"1315:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":48731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1322:9:80","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"1315:16:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":48736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1315:31:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1289:57:80"},{"assignments":[48739],"declarations":[{"constant":false,"id":48739,"mutability":"mutable","name":"preUserBalanceX","nameLocation":"1365:15:80","nodeType":"VariableDeclaration","scope":48792,"src":"1357:23:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48738,"name":"uint256","nodeType":"ElementaryTypeName","src":"1357:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48747,"initialValue":{"arguments":[{"arguments":[{"id":48744,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1408:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSwapTest_$48794","typeString":"contract LogNormalSwapTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormalSwapTest_$48794","typeString":"contract LogNormalSwapTest"}],"id":48743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1400:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48742,"name":"address","nodeType":"ElementaryTypeName","src":"1400:7:80","typeDescriptions":{}}},"id":48745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1400:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48740,"name":"tokenX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44725,"src":"1383:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":48741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1390:9:80","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"1383:16:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":48746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1383:31:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1357:57:80"},{"assignments":[48749],"declarations":[{"constant":false,"id":48749,"mutability":"mutable","name":"preUserBalanceY","nameLocation":"1432:15:80","nodeType":"VariableDeclaration","scope":48792,"src":"1424:23:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48748,"name":"uint256","nodeType":"ElementaryTypeName","src":"1424:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48757,"initialValue":{"arguments":[{"arguments":[{"id":48754,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1475:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSwapTest_$48794","typeString":"contract LogNormalSwapTest"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LogNormalSwapTest_$48794","typeString":"contract LogNormalSwapTest"}],"id":48753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1467:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48752,"name":"address","nodeType":"ElementaryTypeName","src":"1467:7:80","typeDescriptions":{}}},"id":48755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1467:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48750,"name":"tokenY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44728,"src":"1450:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$25560","typeString":"contract MockERC20"}},"id":48751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1457:9:80","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":25591,"src":"1450:16:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":48756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1450:31:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1424:57:80"},{"assignments":[48759],"declarations":[{"constant":false,"id":48759,"mutability":"mutable","name":"amountIn","nameLocation":"1500:8:80","nodeType":"VariableDeclaration","scope":48792,"src":"1492:16:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48758,"name":"uint256","nodeType":"ElementaryTypeName","src":"1492:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48761,"initialValue":{"hexValue":"302e31","id":48760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1511:9:80","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"nodeType":"VariableDeclarationStatement","src":"1492:28:80"},{"assignments":[48763],"declarations":[{"constant":false,"id":48763,"mutability":"mutable","name":"swapXForY","nameLocation":"1535:9:80","nodeType":"VariableDeclaration","scope":48792,"src":"1530:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48762,"name":"bool","nodeType":"ElementaryTypeName","src":"1530:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":48765,"initialValue":{"hexValue":"66616c7365","id":48764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1547:5:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"1530:22:80"},{"assignments":[48767,null,null,48769],"declarations":[{"constant":false,"id":48767,"mutability":"mutable","name":"valid","nameLocation":"1569:5:80","nodeType":"VariableDeclaration","scope":48792,"src":"1564:10:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48766,"name":"bool","nodeType":"ElementaryTypeName","src":"1564:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null,null,{"constant":false,"id":48769,"mutability":"mutable","name":"payload","nameLocation":"1591:7:80","nodeType":"VariableDeclaration","scope":48792,"src":"1578:20:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48768,"name":"bytes","nodeType":"ElementaryTypeName","src":"1578:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":48776,"initialValue":{"arguments":[{"id":48772,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"1634:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48773,"name":"swapXForY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48763,"src":"1643:9:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":48774,"name":"amountIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48759,"src":"1654:8:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48770,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48318,"src":"1614:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":48771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1621:12:80","memberName":"simulateSwap","nodeType":"MemberAccess","referencedDeclaration":36225,"src":"1614:19:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256,bool,uint256) view external returns (bool,uint256,uint256,bytes memory)"}},"id":48775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1614:49:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,uint256,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1563:100:80"},{"expression":{"arguments":[{"id":48778,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48767,"src":"1682:5:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"74727565","id":48779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1689:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":48777,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":2011,"src":"1673:8:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$","typeString":"function (bool,bool)"}},"id":48780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1673:21:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48781,"nodeType":"ExpressionStatement","src":"1673:21:80"},{"assignments":[48783,48785],"declarations":[{"constant":false,"id":48783,"mutability":"mutable","name":"inputAmount","nameLocation":"1713:11:80","nodeType":"VariableDeclaration","scope":48792,"src":"1705:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48782,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48785,"mutability":"mutable","name":"outputAmount","nameLocation":"1734:12:80","nodeType":"VariableDeclaration","scope":48792,"src":"1726:20:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48784,"name":"uint256","nodeType":"ElementaryTypeName","src":"1726:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48791,"initialValue":{"arguments":[{"id":48788,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"1772:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48789,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48769,"src":"1781:7:80","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48786,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"1762:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":48787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1767:4:80","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":28371,"src":"1762:9:80","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256,uint256)"}},"id":48790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1762:27:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1704:85:80"}]},"functionSelector":"dd969c97","implemented":true,"kind":"function","modifiers":[{"id":48716,"kind":"modifierInvocation","modifierName":{"id":48715,"name":"init","nameLocations":["1207:4:80"],"nodeType":"IdentifierPath","referencedDeclaration":48514,"src":"1207:4:80"},"nodeType":"ModifierInvocation","src":"1207:4:80"}],"name":"test_LogNormal_swap_SwapsYforX","nameLocation":"1167:30:80","parameters":{"id":48714,"nodeType":"ParameterList","parameters":[],"src":"1197:2:80"},"returnParameters":{"id":48717,"nodeType":"ParameterList","parameters":[],"src":"1212:0:80"},"scope":48794,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":48580,"name":"LogNormalSetUp","nameLocations":["118:14:80"],"nodeType":"IdentifierPath","referencedDeclaration":48576,"src":"118:14:80"},"id":48581,"nodeType":"InheritanceSpecifier","src":"118:14:80"}],"canonicalName":"LogNormalSwapTest","contractDependencies":[25560,29062,36460,38879,44392],"contractKind":"contract","fullyImplemented":true,"internalFunctionIDs":{"34224":1},"linearizedBaseContracts":[48794,48576,44852,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"LogNormalSwapTest","nameLocation":"97:17:80","scope":48795,"usedErrors":[26761,26763,26765,27736,30985,30992],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":80} \ No newline at end of file diff --git a/out/Test.sol/Test.json b/out/Test.sol/Test.json deleted file mode 100644 index 3c380d0f..00000000 --- a/out/Test.sol/Test.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","failed()":"ba414fa6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/forge-std/src/Test.sol\":\"Test\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/forge-std/src/Test.sol":"Test"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/forge-std/src/Test.sol","id":8196,"exportedSymbols":{"DSTest":[1786],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"Test":[8195],"TestBase":[1843],"Vm":[9352],"console":[17416],"console2":[25512],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522]},"nodeType":"SourceUnit","src":"32:946:11","nodes":[{"id":8155,"nodeType":"PragmaDirective","src":"32:31:11","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":8157,"nodeType":"ImportDirective","src":"131:38:11","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/console.sol","file":"./console.sol","nameLocation":"-1:-1:-1","scope":8196,"sourceUnit":17417,"symbolAliases":[{"foreign":{"id":8156,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17416,"src":"139:7:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8159,"nodeType":"ImportDirective","src":"170:40:11","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/console2.sol","file":"./console2.sol","nameLocation":"-1:-1:-1","scope":8196,"sourceUnit":25513,"symbolAliases":[{"foreign":{"id":8158,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25512,"src":"178:8:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8161,"nodeType":"ImportDirective","src":"211:50:11","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/StdAssertions.sol","file":"./StdAssertions.sol","nameLocation":"-1:-1:-1","scope":8196,"sourceUnit":2709,"symbolAliases":[{"foreign":{"id":8160,"name":"StdAssertions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2708,"src":"219:13:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8163,"nodeType":"ImportDirective","src":"262:42:11","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/StdChains.sol","file":"./StdChains.sol","nameLocation":"-1:-1:-1","scope":8196,"sourceUnit":3245,"symbolAliases":[{"foreign":{"id":8162,"name":"StdChains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3244,"src":"270:9:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8165,"nodeType":"ImportDirective","src":"305:42:11","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/StdCheats.sol","file":"./StdCheats.sol","nameLocation":"-1:-1:-1","scope":8196,"sourceUnit":5182,"symbolAliases":[{"foreign":{"id":8164,"name":"StdCheats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5181,"src":"313:9:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8167,"nodeType":"ImportDirective","src":"348:40:11","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/StdError.sol","file":"./StdError.sol","nameLocation":"-1:-1:-1","scope":8196,"sourceUnit":5248,"symbolAliases":[{"foreign":{"id":8166,"name":"stdError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5247,"src":"356:8:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8169,"nodeType":"ImportDirective","src":"389:38:11","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/StdJson.sol","file":"./StdJson.sol","nameLocation":"-1:-1:-1","scope":8196,"sourceUnit":5915,"symbolAliases":[{"foreign":{"id":8168,"name":"stdJson","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5914,"src":"397:7:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8171,"nodeType":"ImportDirective","src":"428:38:11","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/StdMath.sol","file":"./StdMath.sol","nameLocation":"-1:-1:-1","scope":8196,"sourceUnit":6057,"symbolAliases":[{"foreign":{"id":8170,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6056,"src":"436:7:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8174,"nodeType":"ImportDirective","src":"467:56:11","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":8196,"sourceUnit":7523,"symbolAliases":[{"foreign":{"id":8172,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6088,"src":"475:10:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":8173,"name":"stdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7522,"src":"487:10:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8176,"nodeType":"ImportDirective","src":"524:40:11","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/StdUtils.sol","file":"./StdUtils.sol","nameLocation":"-1:-1:-1","scope":8196,"sourceUnit":8154,"symbolAliases":[{"foreign":{"id":8175,"name":"StdUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8153,"src":"532:8:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8178,"nodeType":"ImportDirective","src":"565:28:11","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":8196,"sourceUnit":9353,"symbolAliases":[{"foreign":{"id":8177,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9352,"src":"573:2:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8180,"nodeType":"ImportDirective","src":"615:36:11","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/src/Base.sol","file":"./Base.sol","nameLocation":"-1:-1:-1","scope":8196,"sourceUnit":1856,"symbolAliases":[{"foreign":{"id":8179,"name":"TestBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1843,"src":"623:8:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8182,"nodeType":"ImportDirective","src":"652:40:11","nodes":[],"absolutePath":"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol","file":"ds-test/test.sol","nameLocation":"-1:-1:-1","scope":8196,"sourceUnit":1787,"symbolAliases":[{"foreign":{"id":8181,"name":"DSTest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1786,"src":"660:6:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":8195,"nodeType":"ContractDefinition","src":"709:268:11","nodes":[],"abstract":true,"baseContracts":[{"baseName":{"id":8183,"name":"DSTest","nameLocations":["735:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":1786,"src":"735:6:11"},"id":8184,"nodeType":"InheritanceSpecifier","src":"735:6:11"},{"baseName":{"id":8185,"name":"StdAssertions","nameLocations":["743:13:11"],"nodeType":"IdentifierPath","referencedDeclaration":2708,"src":"743:13:11"},"id":8186,"nodeType":"InheritanceSpecifier","src":"743:13:11"},{"baseName":{"id":8187,"name":"StdChains","nameLocations":["758:9:11"],"nodeType":"IdentifierPath","referencedDeclaration":3244,"src":"758:9:11"},"id":8188,"nodeType":"InheritanceSpecifier","src":"758:9:11"},{"baseName":{"id":8189,"name":"StdCheats","nameLocations":["769:9:11"],"nodeType":"IdentifierPath","referencedDeclaration":5181,"src":"769:9:11"},"id":8190,"nodeType":"InheritanceSpecifier","src":"769:9:11"},{"baseName":{"id":8191,"name":"StdUtils","nameLocations":["780:8:11"],"nodeType":"IdentifierPath","referencedDeclaration":8153,"src":"780:8:11"},"id":8192,"nodeType":"InheritanceSpecifier","src":"780:8:11"},{"baseName":{"id":8193,"name":"TestBase","nameLocations":["790:8:11"],"nodeType":"IdentifierPath","referencedDeclaration":1843,"src":"790:8:11"},"id":8194,"nodeType":"InheritanceSpecifier","src":"790:8:11"}],"canonicalName":"Test","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"Test","nameLocation":"727:4:11","scope":8196,"usedErrors":[],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"MIT"},"id":11} \ No newline at end of file diff --git a/out/Units.sol/Units.json b/out/Units.sol/Units.json deleted file mode 100644 index 11e7ec05..00000000 --- a/out/Units.sol/Units.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"lib/solstat/src/Units.sol","id":27814,"exportedSymbols":{"Min":[27736],"abs":[27763],"diviWad":[27813],"muli":[27777],"muliWad":[27795]},"nodeType":"SourceUnit","src":"32:1044:23","nodes":[{"id":27734,"nodeType":"PragmaDirective","src":"32:23:23","nodes":[],"literals":["solidity","^","0.8",".4"]},{"id":27736,"nodeType":"ErrorDefinition","src":"57:12:23","nodes":[],"errorSelector":"4d2d75b1","name":"Min","nameLocation":"63:3:23","parameters":{"id":27735,"nodeType":"ParameterList","parameters":[],"src":"66:2:23"}},{"id":27763,"nodeType":"FunctionDefinition","src":"71:276:23","nodes":[],"body":{"id":27762,"nodeType":"Block","src":"128:219:23","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27743,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27738,"src":"138:5:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":27746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"152:6:23","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":27745,"name":"int256","nodeType":"ElementaryTypeName","src":"152:6:23","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}],"id":27744,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"147:4:23","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":27747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"147:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int256","typeString":"type(int256)"}},"id":27748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"160:3:23","memberName":"min","nodeType":"MemberAccess","src":"147:16:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"138:25:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27753,"nodeType":"IfStatement","src":"134:43:23","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":27750,"name":"Min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27736,"src":"172:3:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":27751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"172:5:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27752,"nodeType":"RevertStatement","src":"165:12:23"}},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":27756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27754,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27738,"src":"187:5:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":27755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"195:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"187:9:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":27760,"nodeType":"Block","src":"281:64:23","statements":[{"AST":{"nativeSrc":"300:39:23","nodeType":"YulBlock","src":"300:39:23","statements":[{"nativeSrc":"314:15:23","nodeType":"YulAssignment","src":"314:15:23","value":{"name":"input","nativeSrc":"324:5:23","nodeType":"YulIdentifier","src":"324:5:23"},"variableNames":[{"name":"output","nativeSrc":"314:6:23","nodeType":"YulIdentifier","src":"314:6:23"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":27738,"isOffset":false,"isSlot":false,"src":"324:5:23","valueSize":1},{"declaration":27741,"isOffset":false,"isSlot":false,"src":"314:6:23","valueSize":1}],"id":27759,"nodeType":"InlineAssembly","src":"291:48:23"}]},"id":27761,"nodeType":"IfStatement","src":"183:162:23","trueBody":{"id":27758,"nodeType":"Block","src":"198:77:23","statements":[{"AST":{"nativeSrc":"217:52:23","nodeType":"YulBlock","src":"217:52:23","statements":[{"nativeSrc":"231:28:23","nodeType":"YulAssignment","src":"231:28:23","value":{"arguments":[{"arguments":[{"name":"input","nativeSrc":"249:5:23","nodeType":"YulIdentifier","src":"249:5:23"}],"functionName":{"name":"not","nativeSrc":"245:3:23","nodeType":"YulIdentifier","src":"245:3:23"},"nativeSrc":"245:10:23","nodeType":"YulFunctionCall","src":"245:10:23"},{"kind":"number","nativeSrc":"257:1:23","nodeType":"YulLiteral","src":"257:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"241:3:23","nodeType":"YulIdentifier","src":"241:3:23"},"nativeSrc":"241:18:23","nodeType":"YulFunctionCall","src":"241:18:23"},"variableNames":[{"name":"output","nativeSrc":"231:6:23","nodeType":"YulIdentifier","src":"231:6:23"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":27738,"isOffset":false,"isSlot":false,"src":"249:5:23","valueSize":1},{"declaration":27741,"isOffset":false,"isSlot":false,"src":"231:6:23","valueSize":1}],"id":27757,"nodeType":"InlineAssembly","src":"208:61:23"}]}}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"abs","nameLocation":"80:3:23","parameters":{"id":27739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27738,"mutability":"mutable","name":"input","nameLocation":"91:5:23","nodeType":"VariableDeclaration","scope":27763,"src":"84:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27737,"name":"int256","nodeType":"ElementaryTypeName","src":"84:6:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"83:14:23"},"returnParameters":{"id":27742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27741,"mutability":"mutable","name":"output","nameLocation":"120:6:23","nodeType":"VariableDeclaration","scope":27763,"src":"112:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27740,"name":"uint256","nodeType":"ElementaryTypeName","src":"112:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"111:16:23"},"scope":27814,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27777,"nodeType":"FunctionDefinition","src":"405:480:23","nodes":[],"body":{"id":27776,"nodeType":"Block","src":"497:388:23","nodes":[],"statements":[{"AST":{"nativeSrc":"512:371:23","nodeType":"YulBlock","src":"512:371:23","statements":[{"nativeSrc":"559:14:23","nodeType":"YulAssignment","src":"559:14:23","value":{"arguments":[{"name":"x","nativeSrc":"568:1:23","nodeType":"YulIdentifier","src":"568:1:23"},{"name":"y","nativeSrc":"571:1:23","nodeType":"YulIdentifier","src":"571:1:23"}],"functionName":{"name":"mul","nativeSrc":"564:3:23","nodeType":"YulIdentifier","src":"564:3:23"},"nativeSrc":"564:9:23","nodeType":"YulFunctionCall","src":"564:9:23"},"variableNames":[{"name":"z","nativeSrc":"559:1:23","nodeType":"YulIdentifier","src":"559:1:23"}]},{"body":{"nativeSrc":"766:36:23","nodeType":"YulBlock","src":"766:36:23","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"787:1:23","nodeType":"YulLiteral","src":"787:1:23","type":"","value":"0"},{"kind":"number","nativeSrc":"790:1:23","nodeType":"YulLiteral","src":"790:1:23","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"780:6:23","nodeType":"YulIdentifier","src":"780:6:23"},"nativeSrc":"780:12:23","nodeType":"YulFunctionCall","src":"780:12:23"},"nativeSrc":"780:12:23","nodeType":"YulExpressionStatement","src":"780:12:23"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"denominator","nativeSrc":"707:11:23","nodeType":"YulIdentifier","src":"707:11:23"}],"functionName":{"name":"iszero","nativeSrc":"700:6:23","nodeType":"YulIdentifier","src":"700:6:23"},"nativeSrc":"700:19:23","nodeType":"YulFunctionCall","src":"700:19:23"}],"functionName":{"name":"iszero","nativeSrc":"693:6:23","nodeType":"YulIdentifier","src":"693:6:23"},"nativeSrc":"693:27:23","nodeType":"YulFunctionCall","src":"693:27:23"},{"arguments":[{"arguments":[{"name":"x","nativeSrc":"732:1:23","nodeType":"YulIdentifier","src":"732:1:23"}],"functionName":{"name":"iszero","nativeSrc":"725:6:23","nodeType":"YulIdentifier","src":"725:6:23"},"nativeSrc":"725:9:23","nodeType":"YulFunctionCall","src":"725:9:23"},{"arguments":[{"arguments":[{"name":"z","nativeSrc":"744:1:23","nodeType":"YulIdentifier","src":"744:1:23"},{"name":"x","nativeSrc":"747:1:23","nodeType":"YulIdentifier","src":"747:1:23"}],"functionName":{"name":"sdiv","nativeSrc":"739:4:23","nodeType":"YulIdentifier","src":"739:4:23"},"nativeSrc":"739:10:23","nodeType":"YulFunctionCall","src":"739:10:23"},{"name":"y","nativeSrc":"751:1:23","nodeType":"YulIdentifier","src":"751:1:23"}],"functionName":{"name":"eq","nativeSrc":"736:2:23","nodeType":"YulIdentifier","src":"736:2:23"},"nativeSrc":"736:17:23","nodeType":"YulFunctionCall","src":"736:17:23"}],"functionName":{"name":"or","nativeSrc":"722:2:23","nodeType":"YulIdentifier","src":"722:2:23"},"nativeSrc":"722:32:23","nodeType":"YulFunctionCall","src":"722:32:23"}],"functionName":{"name":"and","nativeSrc":"689:3:23","nodeType":"YulIdentifier","src":"689:3:23"},"nativeSrc":"689:66:23","nodeType":"YulFunctionCall","src":"689:66:23"}],"functionName":{"name":"iszero","nativeSrc":"669:6:23","nodeType":"YulIdentifier","src":"669:6:23"},"nativeSrc":"669:96:23","nodeType":"YulFunctionCall","src":"669:96:23"},"nativeSrc":"666:136:23","nodeType":"YulIf","src":"666:136:23"},{"nativeSrc":"852:25:23","nodeType":"YulAssignment","src":"852:25:23","value":{"arguments":[{"name":"z","nativeSrc":"862:1:23","nodeType":"YulIdentifier","src":"862:1:23"},{"name":"denominator","nativeSrc":"865:11:23","nodeType":"YulIdentifier","src":"865:11:23"}],"functionName":{"name":"sdiv","nativeSrc":"857:4:23","nodeType":"YulIdentifier","src":"857:4:23"},"nativeSrc":"857:20:23","nodeType":"YulFunctionCall","src":"857:20:23"},"variableNames":[{"name":"z","nativeSrc":"852:1:23","nodeType":"YulIdentifier","src":"852:1:23"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":27770,"isOffset":false,"isSlot":false,"src":"707:11:23","valueSize":1},{"declaration":27770,"isOffset":false,"isSlot":false,"src":"865:11:23","valueSize":1},{"declaration":27766,"isOffset":false,"isSlot":false,"src":"568:1:23","valueSize":1},{"declaration":27766,"isOffset":false,"isSlot":false,"src":"732:1:23","valueSize":1},{"declaration":27766,"isOffset":false,"isSlot":false,"src":"747:1:23","valueSize":1},{"declaration":27768,"isOffset":false,"isSlot":false,"src":"571:1:23","valueSize":1},{"declaration":27768,"isOffset":false,"isSlot":false,"src":"751:1:23","valueSize":1},{"declaration":27773,"isOffset":false,"isSlot":false,"src":"559:1:23","valueSize":1},{"declaration":27773,"isOffset":false,"isSlot":false,"src":"744:1:23","valueSize":1},{"declaration":27773,"isOffset":false,"isSlot":false,"src":"852:1:23","valueSize":1},{"declaration":27773,"isOffset":false,"isSlot":false,"src":"862:1:23","valueSize":1}],"id":27775,"nodeType":"InlineAssembly","src":"503:380:23"}]},"documentation":{"id":27764,"nodeType":"StructuredDocumentation","src":"349:56:23","text":"@dev From solmate@v7, changes last `div` to `sdiv`."},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"muli","nameLocation":"414:4:23","parameters":{"id":27771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27766,"mutability":"mutable","name":"x","nameLocation":"431:1:23","nodeType":"VariableDeclaration","scope":27777,"src":"424:8:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27765,"name":"int256","nodeType":"ElementaryTypeName","src":"424:6:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":27768,"mutability":"mutable","name":"y","nameLocation":"445:1:23","nodeType":"VariableDeclaration","scope":27777,"src":"438:8:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27767,"name":"int256","nodeType":"ElementaryTypeName","src":"438:6:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":27770,"mutability":"mutable","name":"denominator","nameLocation":"459:11:23","nodeType":"VariableDeclaration","scope":27777,"src":"452:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27769,"name":"int256","nodeType":"ElementaryTypeName","src":"452:6:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"418:54:23"},"returnParameters":{"id":27774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27773,"mutability":"mutable","name":"z","nameLocation":"494:1:23","nodeType":"VariableDeclaration","scope":27777,"src":"487:8:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27772,"name":"int256","nodeType":"ElementaryTypeName","src":"487:6:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"486:10:23"},"scope":27814,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27795,"nodeType":"FunctionDefinition","src":"887:93:23","nodes":[],"body":{"id":27794,"nodeType":"Block","src":"948:32:23","nodes":[],"statements":[{"expression":{"id":27792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27786,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27784,"src":"954:1:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27788,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27779,"src":"963:1:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":27789,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27781,"src":"966:1:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"hexValue":"31","id":27790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"969:7:23","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}],"id":27787,"name":"muli","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27777,"src":"958:4:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256,int256) pure returns (int256)"}},"id":27791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"958:19:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"954:23:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27793,"nodeType":"ExpressionStatement","src":"954:23:23"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"muliWad","nameLocation":"896:7:23","parameters":{"id":27782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27779,"mutability":"mutable","name":"x","nameLocation":"911:1:23","nodeType":"VariableDeclaration","scope":27795,"src":"904:8:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27778,"name":"int256","nodeType":"ElementaryTypeName","src":"904:6:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":27781,"mutability":"mutable","name":"y","nameLocation":"921:1:23","nodeType":"VariableDeclaration","scope":27795,"src":"914:8:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27780,"name":"int256","nodeType":"ElementaryTypeName","src":"914:6:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"903:20:23"},"returnParameters":{"id":27785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27784,"mutability":"mutable","name":"z","nameLocation":"945:1:23","nodeType":"VariableDeclaration","scope":27795,"src":"938:8:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27783,"name":"int256","nodeType":"ElementaryTypeName","src":"938:6:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"937:10:23"},"scope":27814,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27813,"nodeType":"FunctionDefinition","src":"982:93:23","nodes":[],"body":{"id":27812,"nodeType":"Block","src":"1043:32:23","nodes":[],"statements":[{"expression":{"id":27810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27804,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27802,"src":"1049:1:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27806,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27797,"src":"1058:1:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"hexValue":"31","id":27807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1061:7:23","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},{"id":27808,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27799,"src":"1070:1:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":27805,"name":"muli","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27777,"src":"1053:4:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256,int256) pure returns (int256)"}},"id":27809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1053:19:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1049:23:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":27811,"nodeType":"ExpressionStatement","src":"1049:23:23"}]},"implemented":true,"kind":"freeFunction","modifiers":[],"name":"diviWad","nameLocation":"991:7:23","parameters":{"id":27800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27797,"mutability":"mutable","name":"x","nameLocation":"1006:1:23","nodeType":"VariableDeclaration","scope":27813,"src":"999:8:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27796,"name":"int256","nodeType":"ElementaryTypeName","src":"999:6:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":27799,"mutability":"mutable","name":"y","nameLocation":"1016:1:23","nodeType":"VariableDeclaration","scope":27813,"src":"1009:8:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27798,"name":"int256","nodeType":"ElementaryTypeName","src":"1009:6:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"998:20:23"},"returnParameters":{"id":27803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27802,"mutability":"mutable","name":"z","nameLocation":"1040:1:23","nodeType":"VariableDeclaration","scope":27813,"src":"1033:8:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":27801,"name":"int256","nodeType":"ElementaryTypeName","src":"1033:6:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1032:10:23"},"scope":27814,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"license":"MIT"},"id":23} \ No newline at end of file diff --git a/out/Update.t.sol/G3MUpdateTest.json b/out/Update.t.sol/G3MUpdateTest.json deleted file mode 100644 index c8d91f19..00000000 --- a/out/Update.t.sol/G3MUpdateTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"POOL_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TEST_SWAP_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolLiquidityToken","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_G3M_update_UpdatesSwapFee","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"BisectionLib_InvalidBounds","inputs":[{"name":"lower","type":"uint256","internalType":"uint256"},{"name":"upper","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BisectionLib_RootOutsideBounds","inputs":[{"name":"lowerResult","type":"int256","internalType":"int256"},{"name":"upperResult","type":"int256","internalType":"int256"}]}],"bytecode":{"object":"0x34620000ae57600160ff1960005416176000556101006040526706f05b59d3b20000806080528060a052660aa87bee538000908160c0523060e05280601a55601b55601c553060018060a01b0319601d541617601d5562000067670de0b6b3a7640000601e55565b62000079670de0b6b3a7640000601f55565b6200009e62000098601e54601f54620000916200010f565b91620002d3565b620001de565b604051619358908162000ba68239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b03821117620000e557604052565b620000b3565b601f909101601f19168101906001600160401b03821190821017620000e557604052565b604051906200011e82620000c9565b601a548252601b546020830152601c546040830152601d546001600160a01b03166060830152565b90600182811c9216801562000178575b60208310146200016257565b634e487b7160e01b600052602260045260246000fd5b91607f169162000156565b601f811162000190575050565b60009060206000526020600020906020601f850160051c83019410620001d3575b601f0160051c01915b828110620001c757505050565b818155600101620001ba565b9092508290620001b1565b80519091906001600160401b038111620000e5576020906200020c8162000206845462000146565b62000183565b81601f8211600114620002505781906200024093949560009262000244575b50508160011b916000199060031b1c19161790565b9055565b0151905038806200022b565b6020600052601f198216907fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb9160005b818110620002bb57509583600195969710620002a1575b505050811b019055565b015160001960f88460031b161c1916905538808062000297565b91928560018192868b01518155019401920162000280565b92916200031d60208201620003166200030d6200030588620002ff855198620002ff8951809b62000731565b62000754565b958862000516565b91518562000516565b90620006d9565b936200032c8286858462000496565b859060008082121562000438575b808212620004155750620003b862000405926200041296979886935b6040805160208082018a90528183018d90526060808301949094528a5160808301528a015160a08201529089015160c08201529701516001600160a01b031660e0808901919091528752601f1996620003b261010082620000eb565b620007b2565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b03908101835282620000eb565b90565b9662000422915062000776565b95620004318488878662000496565b906200033a565b9691965b8082136200045d5750620003b8620004129596976200040593869362000356565b966200046a915062000706565b95620004798488878662000496565b906200043c565b634e487b7160e01b600052601160045260246000fd5b926020620004c784620004c0620004b7620003169697620004d19962000731565b85519062000516565b9562000731565b9101519062000516565b670de0b6b3a763ffff198101908113600116620004eb5790565b62000480565b818102929160008212600160ff1b821416620004eb578184051490151715620004eb57565b620006c562000412927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284620006d3936200055160008213620008f0565b711340daa0d5f769dba1915cef59f0815a55066200056f8262000ac5565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d019160016c0504a838426634cdd8738f543560611b0319916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d620004f1565b670de0b6b3a7640000900590565b62000929565b818102918183041490151760011615620000ae576001670de0b6b3a7640000600019830104019015150290565b6103e990818102918183041490151760011615620000ae5760016103e8600019830104019015150290565b670de0b6b3a76400009081810291818304149015178215151615620000ae570490565b818102918183041490151760011615620000ae57670de0b6b3a7640000900490565b6103e790818102918183041490151760011615620000ae576103e8900490565b91908203918211620004eb57565b91908201809211620004eb57565b60009392918491838211620008d057620007cd828262000b2d565b620007d9858362000b2d565b6000620007e78284620004f1565b13620008b15750620007fc8386979662000796565b60019460009186805b62000817575b50505050505050509050565b1562000887575b50859697985080916200083c620008368b88620007a4565b60011c90565b99620008498b8762000b2d565b9083620008578784620004f1565b136200087a57505089925b876200086f888662000796565b920193999862000805565b8b97509094509262000862565b861080620008a5575b156200089d57886200081e565b80806200080b565b50610100821062000890565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b15620008f857565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131562000abf57680755bf798b4a1bf1e581121562000a8b576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b3989179d835ebba824c98fb31b83b2ca45c0000000000000000000000006060916b8000000000000000000000008582851b0501831d94850290036e0587f503bb6ea29d25fcb740196450816c10fe68e7fd37d0007b713f7650810102841d936e05180bb14799ab47a8a8cb2a527d57836e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028a1d0102881d0102861d0102841d0102821d01946d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b62000ad2811515620008f0565b8060018060801b031060071b81811c60018060401b031060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b8080518101039160e08312620000ae576020820151926080604084015191605f190112620000ae5760e06040519362000b6685620000c9565b6080810151855260a0810151602086015260c081015160408601520151936001600160a01b0385168503620000ae57620004129460608501526200049656fe60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e4146200009a5750508063620a260714620000945780637b5de387146200008e578063ba414fa61462000088578063e0d7d0e91462000082578063e21485ad146200007c5763fa7626d4146200007657600080fd5b620008f2565b620007ba565b6200079a565b62000771565b620005b7565b62000593565b346200056357816003193601126200056357620000b66200106f565b805161106b8082019067ffffffffffffffff92808310848411176200053f5780620000e9620015d99484868439620009d5565b039086f080156200051757601580546001600160a01b0319166001600160a01b03909216919091179055835191818301838110858211176200053f5783926200013492843962000a21565b039084f080156200051757601680546001600160a01b0319166001600160a01b039283161790556015546200017191165b6001600160a01b031690565b803b156200057e5782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af18015620005175762000567575b506016548490620001d0906001600160a01b031662000165565b91823b156200056357845190815230600482015268056bc75e2d631000006024820152918290604490829084905af18015620005175762000545575b5060155462000224906001600160a01b031662000165565b6016546200023b906001600160a01b031662000165565b908351916105979081840192848410868511176200053f578493620002889362008d8c86396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200051757601480546001600160a01b0319166001600160a01b039092169190911790558151612f2180820190828210848311176200053f578291620002de916200264484396000815260200190565b039084f080156200051757601380546001600160a01b0319166001600160a01b03929092169182179055620003139062000165565b8251906112cb80830191838310858411176200053f578392620003499262007ac185396001600160a01b03909116815260200190565b039084f080156200051757601780546001600160a01b0319166001600160a01b039290921691821790556200037e9062000165565b82519161255c8084019290918311848410176200053f578392620003b5926200556585396001600160a01b03909116815260200190565b039083f09081156200051757620003ec620004589260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b60155462000403906001600160a01b031662000165565b6013546200041a906001600160a01b031662000165565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200051757620004d09385936200051d575b5060165462000489906001600160a01b031662000165565b6013549091908790620004a5906001600160a01b031662000165565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200051757620004e4578280f35b816200050892903d106200050f575b620004ff81836200097c565b81019062000a61565b5081808280f35b503d620004f3565b62000a15565b6200053790843d86116200050f57620004ff81836200097c565b508662000471565b62000917565b80620005556200055c926200092d565b8062000582565b836200020c565b5080fd5b806200055562000577926200092d565b84620001b6565b8380fd5b60009103126200058e57565b600080fd5b346200058e5760003660031901126200058e576020604051660aa87bee5380008152f35b346200058e576000806003193601126200076e57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000563576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620005175762000757575b506017548190608090620006f39062000639906001600160a01b031662000165565b601554620006af9062000655906001600160a01b031662000165565b6016546200069f9062000671906001600160a01b031662000165565b916200068f620006806200099f565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6001600160a01b03166040830152565b620006b962000a7b565b6060820152601354620006d5906001600160a01b031662000165565b906040519485809481936305157c7f60e21b83526004830162000bee565b03925af180156200051757620007119183916200071e575b50601955565b6200071b62000d2d565b80f35b62000745915060803d6080116200074f575b6200073c81836200097c565b81019062000b7f565b505050386200070b565b503d62000730565b806200055562000767926200092d565b3862000617565b80fd5b346200058e5760003660031901126200058e5760206200079062000f97565b6040519015158152f35b346200058e5760003660031901126200058e576020601954604051908152f35b346200058e5760203660031901126200058e5760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa90811562000517576000916200083e575b60c08201516200083a906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e011620008e9575b816200085c60e093836200097c565b810103126200058e576200082060c06200083a92620008dc8260405192620008848462000942565b6200088f81620009c0565b84526200089f60208201620009c0565b6020850152620008b260408201620009c0565b6040850152606081015160608501526080810151608085015260a081015160a085015201620009c0565b828201529250506200080c565b3d91506200084d565b346200058e5760003660031901126200058e57602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200053f57604052565b60e0810190811067ffffffffffffffff8211176200053f57604052565b6080810190811067ffffffffffffffff8211176200053f57604052565b90601f8019910116810190811067ffffffffffffffff8211176200053f57604052565b604051906080820182811067ffffffffffffffff8211176200053f57604052565b51906001600160a01b03821682036200058e57565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b6040513d6000823e3d90fd5b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b908160209103126200058e575180151581036200058e5790565b6040519060006020906020546001928160011c936001831692831562000b74575b60208610841462000b605785885287949360208601939291811562000b3f575060011462000ad8575b50505062000ad6925003836200097c565b565b92509362000b0860206000527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb90565b946000935b82851062000b285750505062000ad693500138808062000ac5565b865485850152958601958895509381019362000b0d565b9250505062000ad69491925060ff19168252151560051b0138808062000ac5565b634e487b7160e01b85526022600452602485fd5b94607f169462000a9c565b91908260809103126200058e578151916020810151916060604083015192015190565b60005b83811062000bb65750506000910152565b818101518382015260200162000ba5565b9060209162000be28151809281855285808601910162000ba2565b601f01601f1916010190565b60a0606062000c319360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062000bc7565b90565b908160809103126200058e57604051906080820182811067ffffffffffffffff8211176200053f5762000c869160609160405280518452602081015160208501526040810151604085015201620009c0565b606082015290565b67ffffffffffffffff81116200053f57601f01601f191660200190565b6020818303126200058e5780519067ffffffffffffffff82116200058e570181601f820112156200058e57805162000ce38162000c8e565b9262000cf360405194856200097c565b818452602082840101116200058e5762000c31916020808501910162000ba2565b60409062000c3193928152816020820152019062000bc7565b60185462000d759062000d49906001600160a01b031662000165565b60195490604091825190816340dafd6160e11b9384825281806080988995600483019190602083019252565b03915afa908115620005175762000d9a91849160009162000f18575b50015162001409565b60185462000db1906001600160a01b031662000165565b825163b09d04e560e01b8152660e35fa931a000060048201529190600090839060249082905afa918215620005175760009262000eee575b5060135462000e01906001600160a01b031662000165565b9160195490833b156200058e5762000e32936000928387518097819582946242d70760e31b84526004840162000d14565b03925af1908115620005175762000e7f92859262000ed7575b5060185462000e63906001600160a01b031662000165565b6019549185518095819482938352600483019190602083019252565b03915afa908115620005175762000ad69360009262000ea3575b505001516200150e565b62000ec79250803d1062000ecf575b62000ebe81836200097c565b81019062000c34565b388062000e99565b503d62000eb2565b806200055562000ee7926200092d565b3862000e4b565b62000f109192503d806000833e62000f0781836200097c565b81019062000cab565b903862000de9565b62000f339150863d881162000ecf5762000ebe81836200097c565b3862000d91565b90600491630667f9d760e41b815262000f5d825180936020868501910162000ba2565b010190565b3d1562000f92573d9062000f768262000c8e565b9162000f8660405193846200097c565b82523d6000602084013e565b606090565b6000805460081c60ff161562000fb1575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62000fd357505090565b81925060405182816200101160208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b0362001026601f19918281018552846200097c565b6200104c60405191826200103f60208201968762000f3a565b039081018352826200097c565b51925af15062000c316200105f62000f62565b6020808251830101910162000a61565b6040805161106b80820167ffffffffffffffff91838210838311176200053f5783620010a3620015d99383858439620009d5565b0360009485f080156200051757601580546001600160a01b0319166001600160a01b03909216919091179055845191818301838110858211176200053f578392620010f092843962000a21565b039083f080156200051757601680546001600160a01b0319166001600160a01b0392831617905560155462001126911662000165565b803b15620014055783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af180156200051757620013ee575b5060165462001183906001600160a01b031662000165565b90813b156200057e57845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af180156200051757620013d7575b50601554620011d9906001600160a01b031662000165565b601654620011f0906001600160a01b031662000165565b908451916105979081840192848410868511176200053f5784936200123d9362008d8c86396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200051757601480546001600160a01b0319166001600160a01b03909216919091179055825190612f21808301918211838310176200053f57829162001293916200264484396000815260200190565b039082f09182156200051757620012ca620013399360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b601554620012e1906001600160a01b031662000165565b601354909190620012fb906001600160a01b031662000165565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af1928315620005175762001384948694620013b5575b506016546200136a906001600160a01b031662000165565b601354909290620004a5906001600160a01b031662000165565b03925af18015620005175762001398575050565b81620013b292903d106200050f57620004ff81836200097c565b50565b620013cf90853d87116200050f57620004ff81836200097c565b503862001352565b8062000555620013e7926200092d565b38620011c1565b8062000555620013fe926200092d565b386200116b565b8280fd5b660aa87bee5380008082036200141d575050565b60809162001501916040907f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f5085835160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8582015261745d60f01b6060820152a1815190828252600a83830152690808115e1c1958dd195960b21b606083015260208201527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8948591a15191829182919060408352600a604084015269080808081058dd1d585b60b21b6060840152602060808401930152565b0390a162000ad662001522565b660e35fa931a00008082036200141d575050565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62001551575b5061010061ff00196000541617600055565b6000809160405182602082018381526519985a5b195960d21b6040840152600160608401526060835262001585836200095f565b620015c160246040518093620015b060208301976370ca10bb60e01b89525180928585019062000ba2565b81010360048101845201826200097c565b51925af150620015d062000f62565b50386200153f56fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461007457601f61255c38819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b0319169190911790556040516124cc90816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630f4166b814610167578063250968d914610162578063306db46b1461015d578063332266f3146101585780633928ff97146101535780633b4d10301461014e5780634fd67c58146101495780635a93b8ce146101445780636237569f1461013f5780637f17409c1461013a57806381b5fac214610135578063902ecaa214610130578063a8c62e761461012b578063b09d04e514610126578063cb1f553214610121578063ce153bf41461011c578063def15f9214610117578063ec29d8e614610112578063ee3e8cfb1461010d578063f2de7a7b146101085763f30d37f21461010357600080fd5b6109b2565b610996565b610962565b61094c565b6108e0565b61082f565b6107ea565b6107a6565b61077d565b610754565b610700565b6106a0565b61063f565b61061a565b6105f1565b6105bf565b61032e565b6102d6565b61029f565b610236565b346101d55760403660031901126101d55767ffffffffffffffff6024358181116101d557366023820112156101d55780600401359182116101d55736602483830101116101d5576101d19160246101c192016004356109e5565b6040519081529081906020820190565b0390f35b600080fd5b60005b8381106101ed5750506000910152565b81810151838201526020016101dd565b90602091610216815180928185528580860191016101da565b601f01601f1916010190565b9060206102339281815201906101fd565b90565b346101d55760403660031901126101d5576101d160405160026020820152600435604082015260243560608201526060815261027181610881565b6040519182916020835260208301906101fd565b60609060031901126101d557600435906024359060443590565b346101d55760206102ce6102b236610285565b906102c56102bf84610c45565b93610d72565b92919091610f1e565b604051908152f35b346101d55760206102ce6102e936610285565b906102f66102bf84610c45565b92919091611149565b801515036101d557565b90926080926102339594151583526020830152604082015281606082015201906101fd565b346101d55760603660031901126101d55760043560243561034e816102ff565b6104c46044359161035d610a11565b6103ad610368610a11565b9461037287610d72565b9491959092602096878401946040978886015285528352868a878b61039683610c45565b9889938851906103a78b5191610c45565b916112e2565b951561053b575061040c936103fe6103f96104409998956103f3866103dc610405976104199c99015187611d20565b926103ea8d518b5190611d4c565b91015190611324565b90611d20565b610a57565b9351610a7a565b8b52610a7a565b80868a015288518a610e65565b9061043761042c878a0193808552610a57565b808452825111610b21565b51905190610b14565b955b60c0865185880192610484845197610476888c015189519a8b96879485016040919493926060820195825260208201520152565b03601f1981018452836108be565b6000546104a79061049b906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610baf565b03915afa948515610536576000956104f6575b50906104eb916101d19596519051906114e4565b905194859485610309565b6101d19550906105216104eb939260c03d60c01161052f575b61051981836108be565b810190610b78565b5050505050955090916104d7565b503d61050f565b610bd3565b91966105b09561059d946105866105a59761057f6103f98c6103f36105b99f61057761056d6105909c83015188611d20565b93518b5190611d4c565b905190611324565b9451610a7a565b9401938452610a7a565b9081898d0152518c610bdf565b808a52610a57565b808952825111610a87565b51865190610b14565b95610442565b346101d55760203660031901126101d55760206102ce6004356105ea6105e482610c45565b91610d72565b50906114e4565b346101d55760206102ce61060436610285565b906106116102bf84610c45565b92919091611509565b346101d55760206102ce61063961063036610285565b91929092610c45565b916116a4565b346101d55760403660031901126101d55761067b6004356101d161068261067361066884610d72565b9190506024356116d1565b949093610c45565b84846119e2565b92604051938493846040919493926060820195825260208201520152565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36106c985610d72565b91506024356116fe565b939094610c45565b83856116a4565b91604051938493846040919493926060820195825260208201520152565b346101d55760203660031901126101d557608061071e600435610c45565b61075260405180926060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565bf35b346101d55760206102ce61076736610285565b906107746102bf84610c45565b92919091611725565b346101d55760003660031901126101d5576000546040516001600160a01b039091168152602090f35b346101d55760203660031901126101d5576101d160405160016020820152600435604082015260408152610271816108a2565b6001600160a01b038116036101d557565b346101d55760203660031901126101d5576101d160043561080a816107d9565b60408051600360208201526001600160a01b03909216828201528152610271816108a2565b346101d55760203660031901126101d5576101d161084e600435610d72565b604080519384526020840192909252908201529081906060820190565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761089d57604052565b61086b565b6060810190811067ffffffffffffffff82111761089d57604052565b90601f8019910116810190811067ffffffffffffffff82111761089d57604052565b346101d55760c03660031901126101d55760803660431901126101d5576101d161094060405161090f81610881565b60443581526064356020820152608435604082015260a435610930816107d9565b60608201526024356004356118a2565b60405191829182610222565b346101d55760206102ce6103a761063036610285565b346101d55760403660031901126101d55761067b6004356101d161068261067361098b84610d72565b9190506024356116fe565b346101d55760206102ce6109ac61063036610285565b916119e2565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36109db85610d72565b91506024356116d1565b9181606091810103126101d5576109fe61023392610c45565b9060408101359060208101359035610e8b565b604051906060820182811067ffffffffffffffff82111761089d5760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610a6557565b610a41565b906103e8918201809211610a6557565b91908201809211610a6557565b15610a8e57565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b90670de0b6b3a7640000918203918211610a6557565b906103e8918203918211610a6557565b6103e719810191908211610a6557565b91908203918211610a6557565b15610b2857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c09103126101d5578151610b8f816102ff565b9160208101519160408201519160608101519160a0608083015192015190565b610233939260609260018060a01b03168252602082015281604082015201906101fd565b6040513d6000823e3d90fd5b9161063961023393610c45565b91908260809103126101d557604051610c0481610881565b6060808294805184526020810151602085015260408101516040850152015191610c2d836107d9565b0152565b906080828203126101d55761023391610bec565b90604051610c5281610881565b600090818152816060602092828482015282604082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610536578092610cb3575b506102339293508082518301019101610c31565b9091503d8082863e610cc581866108be565b8401908285830312610d3b57845167ffffffffffffffff95868211610d3e57019082601f83011215610d3b57815195861161089d5760405192610d11601f8801601f19168601856108be565b868452848784010111610d3b57506102339394610d33918480850191016101da565b908392610c9f565b80fd5b8280fd5b908160209103126101d55751610233816107d9565b908160609103126101d5578051916040602083015192015190565b9060046020610d8e61049b61049b60005460018060a01b031690565b604051632bee84f160e21b815292839182905afa92831561053657610dd993606092600091610e36575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156105365760008093600093610dff575b50929190565b91935050610e25915060603d606011610e2f575b610e1d81836108be565b810190610d57565b9290929138610df9565b503d610e13565b610e58915060203d602011610e5e575b610e5081836108be565b810190610d42565b38610db8565b503d610e46565b916109ac61023393610c45565b81810392916000138015828513169184121617610a6557565b9260206103ea84610eae610ea66103f39697610eb499612087565b855190611324565b95612087565b670de0b6b3a763ffff198101908113600116610a655790565b908152602080820192909252604080820193909352606080820194909452845160808201529084015160a08201529083015160c08201529101516001600160a01b031660e08201526101000190565b565b909291855160208701516040880151610f3690610ade565b91610f418785612087565b610f4b8282611324565b92610f5591611324565b895185898581610f65858d6120ca565b90610f6f916120ca565b90610f79916120ca565b92610f83906120a9565b610f8c90610af4565b90610f9691610a7a565b90610fa0916120ca565b610fa986610ade565b610fb2916120ca565b92610fbc8a610a6a565b90610fc6906110f0565b610fcf91611324565b91610fd9906120a9565b610fe286610ade565b610feb916120ca565b610ff59089610a7a565b92610fff91610b14565b91611009916120ca565b895161101490610ade565b61101d90612068565b61102691611324565b61102f916120ca565b91885161103b90610ade565b61104488610a6a565b9261104f89896120ca565b90611059916120ca565b91611063866120a9565b9061106d90610ade565b611076916120ca565b92611080916120ca565b9161108a91610a7a565b611093916120ca565b9061109d846110f0565b916110a791612087565b6110b09161112d565b6000136110e557610233956110e0936110d29260405196879560208701610ecd565b03601f1981018352826108be565b611a30565b505050505050600090565b600160ff1b8114610a655760000390565b90816103e801918212600116610a6557565b9081670de0b6b3a763ffff190191821215600116610a6557565b91909160008382019384129112908015821691151617610a6557565b94939290928451906020860151604087015161116490610ade565b9261116f8787612087565b6111798282611324565b9261118391611324565b885187898581611193858c6120ca565b9061119d916120ca565b906111a7916120ca565b926111b290886120ca565b6111bc9088610b14565b906111c691610a7a565b906111d0916120ca565b6111d987610ade565b6111e2916120ca565b926111ed8a87610a7a565b906111f7906110f0565b61120091611324565b9161120b90866120ca565b61121487610ade565b61121d916120ca565b6112279088610a7a565b9261123191610b14565b9161123b916120ca565b885161124690610ade565b61124f90612068565b61125891611324565b611261916120ca565b965161126c90610ade565b936112778784610a7a565b96611281916120ca565b9061128b916120ca565b93611295916120ca565b9061129f90610ade565b6112a8916120ca565b926112b2916120ca565b916112bc91610a7a565b6112c5916120ca565b916112cf906110f0565b916112d991612087565b6102339161112d565b610233929160206112f86103f393855190611324565b93015190611324565b818102929160008212600160ff1b821416610a65578184051490151715610a6557565b6114d1610233927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642846114df9361135a60008213611dc8565b711340daa0d5f769dba1915cef59f0815a55066113768261210a565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d611301565b670de0b6b3a7640000900590565b611e00565b611503906114fb6102339493602085015190612087565b925190612087565b90612087565b90929185516040870151670de0b6b3a764000060008282039212818312811691831390151617610a655761153c83611101565b61154583611113565b61154e91611324565b908261155a8589611fa9565b9061156491611324565b61156d81611fc7565b9261157783611113565b6115819085611ff0565b61158b9089610e72565b91829161159788611101565b6115a19088611ff0565b936115ab91611ff0565b6115b487611f8a565b6115bd91611324565b926115c787611113565b6115d1908b611ff0565b91886115dc89611fc7565b906115e69161112d565b6115ef91611ff0565b6115f886611113565b61160191611ff0565b9261160b91611ff0565b926116169089611ff0565b9161162091610e72565b61162991611ff0565b6116329161112d565b9261163c85611101565b61164591611ff0565b9161164f876110f0565b9161165990611113565b61166291611ff0565b61166b9161112d565b61167491611ff0565b61167d91611fa9565b6000136110e5576102339561169f936110d29260405196879560208701610ecd565b611b55565b6116c461023393926116be6116cb93602086015190611324565b90611d4c565b9151611d7c565b90611324565b9291906116e76116e18284611d4c565b85611d20565b938103908111610a6557928103908111610a655790565b92919061170e6116e18284611d4c565b938101809111610a6557928101809111610a655790565b9293949091946040825192015193670de0b6b3a764000060008682039612818712811691871390151617610a6557828794611760868561112d565b61176983611113565b61177291611324565b9561177c91611fa9565b9061178691611324565b936117918584611ff0565b9461179b87611113565b6117a59087611ff0565b6117af9089610e72565b9283926117bc8b8761112d565b6117c69088611ff0565b946117d091611ff0565b6117d987611f8a565b6117e291611324565b936117ec87611113565b6117f6908b611ff0565b928b6118028989611ff0565b9061180c9161112d565b61181591611ff0565b61181e8a611113565b61182791611ff0565b9361183191611ff0565b9361183b91611ff0565b9161184591610e72565b61184e91611ff0565b6118579161112d565b956118619161112d565b61186a91611ff0565b92611874906110f0565b9161187e90611113565b61188791611ff0565b6118909161112d565b61189991611ff0565b61023391611fa9565b929190836118bd6118c2926118bd6020860151865190612087565b6120ca565b906118ce8183866112e2565b936118db82868584610e8b565b85906000808212156119a4575b808212611986575061192d61197a9261023396979886935b6119146040519889928c8a6020860161201f565b0396611928601f19988981018352826108be565b611c2c565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b039081018352826108be565b9661199191506120eb565b9561199e84888786610e8b565b906118e8565b9691965b8082136119c4575061192d61023395969761197a938693611900565b966119cf9150611d9e565b956119dc84888786610e8b565b906119a8565b60206119fb61023394936116be6116cb94865190611324565b920151611d7c565b9190610100838203126101d557825192602081015192610233604083015193608060608501519401610bec565b91906103e892600093600091838211611b3457611a4c8161217c565b611a5685836122d5565b6000611a628284611301565b13611b155750611a73859695610b04565b60019460009186805b611a8d575b50505050505050509050565b15611af0575b5085969798508091611aae611aa88b88610a7a565b60011c90565b99611ab98b876122d5565b9083611ac58784611301565b13611ae457505089925b87611ada8886610b14565b9201939998611a7c565b8b975090945092611acf565b861080611b0a575b15611b035788611a93565b8080611a81565b506101008210611af8565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e892600093600091838211611b3457611b71816122f6565b611b7b8583612441565b6000611b878284611301565b13611b155750611b98859695610b04565b60019460009186805b611bb15750505050505050509050565b15611c0e575b5085969798508091611bcc611aa88b88610a7a565b99611bd78b87612441565b9083611be38784611301565b13611c0257505089925b87611bf88886610b14565b9201939998611ba1565b8b975090945092611bed565b861080611c21575b15611b035788611bb7565b506101008210611c16565b60009392918491838211611d0057611c448282612462565b611c4e8583612462565b6000611c5a8284611301565b13611b155750611c6c83869796610b14565b60019460009186805b611c855750505050505050509050565b15611ce2575b5085969798508091611ca0611aa88b88610a7a565b99611cab8b87612462565b9083611cb78784611301565b13611cd657505089925b87611ccc8886610b14565b9201939998611c75565b8b975090945092611cc1565b861080611cf5575b15611b035788611c8b565b506101008210611cea565b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b8181029181830414901517600116156101d5576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101d557600190600019830104019015150290565b600181151516156101d5576ec097ce7bc90715b34b9f0fffffffff0460010190565b6103e9908181029181830414901517600116156101d55760016103e8600019830104019015150290565b15611dcf57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e19811315611f8457680755bf798b4a1bf1e5811215611f50576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029182051482151516156101d5570590565b6103e881810291600160ff1b81136001179183051416156101d557670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b9091131716156101d557670de0b6b3a7640000900590565b610f1c9360609296959360e083019783526020830152604082015201906060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000490565b670de0b6b3a764000090818102918183041490151782151516156101d5570490565b6103e89080820291820414600116156101d557670de0b6b3a7640000900490565b8181029181830414901517600116156101d557670de0b6b3a7640000900490565b6103e7908181029181830414901517600116156101d5576103e8900490565b612115811515611dc8565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b80518101602001906020019061219191611a03565b9291908351602085015160408601516121a990610ade565b916121b48686612087565b6121be8282611324565b926121c891611324565b8751868885816121d8858b6120ca565b906121e2916120ca565b906121ec916120ca565b926121f6906120a9565b6121ff90610af4565b9061220991610a7a565b90612213916120ca565b61221c86610ade565b612225916120ca565b9261222f89610a6a565b90612239906110f0565b61224291611324565b9161224c906120a9565b61225586610ade565b61225e916120ca565b6122689087610a7a565b9261227291610b14565b9161227c916120ca565b875161228790610ade565b61229090612068565b61229991611324565b6122a2916120ca565b95516122ad90610ade565b926122b786610a6a565b956122c1916120ca565b906122cb916120ca565b92611295906120a9565b906122ec6102339260208082518301019101611a03565b9493929092611149565b6123099060208082518301019101611a03565b6040819593959492945191015192670de0b6b3a764000060008582039512818612811691861390151617610a655781869361234385611101565b61234c83611113565b61235591611324565b9461235f91611fa9565b9061236991611324565b9261237384611fc7565b9361237d86611113565b6123879086611ff0565b6123919088610e72565b92839261239d8a611101565b6123a79087611ff0565b946123b191611ff0565b6123ba86611f8a565b6123c391611324565b936123cd86611113565b6123d7908a611ff0565b928a6123e288611fc7565b906123ec9161112d565b6123f591611ff0565b6123fe89611113565b61240791611ff0565b9361241191611ff0565b9361241b91611ff0565b9161242591610e72565b61242e91611ff0565b6124379161112d565b9461186190611101565b906124586102339260208082518301019101611a03565b9493929092611725565b805181019160e0828403126101d5576102339261249060208401519360806020604083015194019101610bec565b92610e8b56fea2646970667358221220ddef7f48a463f4812492c0cc35c784e857fab14e0a29d203d7aa233c67d9fa2964736f6c6343000816003360a03461007f57601f6112cb38819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f57608052604051611230908161009b82396080518181816103b701528181610612015281816107c601526109240152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b610953565b61090e565b6107ad565b610773565b6105f6565b610331565b6102ae565b610221565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101c3565b838082518301019101610986565b9061010d6100ff600435610a7f565b8680825183010191016109a1565b92610b68565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761015057604052565b61011e565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101a1601f8201601f191660200184610155565b8294818452818301116101be578281602093846000960137010152565b600080fd5b9080601f830112156101be578160206101de93359101610177565b90565b919082519283825260005b84811061020d575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101ec565b346101be5760003660031901126101be57604051604081019080821067ffffffffffffffff8311176101505761027891604052600381526247334d60e81b60208201526040519182916020835260208301906101e1565b0390f35b9060405161028981610134565b6060600382948054845260018101546020850152600281015460408501520154910152565b346101be5760203660031901126101be57600435600052600060205260c060406000206102da8161027c565b90600481015490600560018060a01b03910154169060606040519380518552602081015160208601526040810151604086015201516060840152608083015260a0820152f35b6001600160a01b038116036101be57565b346101be5760603660031901126101be5761034d600435610320565b60243560443567ffffffffffffffff81116101be576103709036906004016101c3565b9061037a81610a7f565b90610390825192602080809583010191016109a1565b6040516333854efd60e21b8152600481018390529092906060816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa948515610596576000908192829761055d575b508084806103ff93518301019101610986565b949195909787878581116000146104c45793610454869461044e866104496104769b9761044461046198604061043b61046d9f6104679f610a08565b91015190610f48565b610f48565b610f74565b50610a7f565b80518101820191016109a1565b91610bb9565b83610a27565b93828685610b68565b93846013191292836104b9575b6102789394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b601486129350610483565b5050919290938089116000146104ff5761046161046d946104546104769761044e856104498f998f61044490604061043b866104679f610a08565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9096506103ff9250610587915060603d60601161058f575b61057f8183610155565b810190610986565b9690926103ec565b503d610575565b6109e6565b9060606003198301126101be576004356105b481610320565b916024359160443567ffffffffffffffff928382116101be57806023830112156101be5781600401359384116101be57602484830101116101be576024019190565b346101be576106043661059b565b9192506001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610761578160c091810103126101be5780359160208201359160408101359460608201359060a08301359261066984610320565b670de0b6b3a764000083101561074f5761070d946107059460806106f1936106f69661069f876000526000602052604060002090565b55013560046106b8866000526000602052604060002090565b01551660056106d1846000526000602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610a7f565b602080825183010191016109a1565b848385610b68565b9283601319129182610744575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b60148512925061071a565b60405163e8a38a6160e01b8152600490fd5b604051636853cba760e01b8152600490fd5b346101be5760606107833661059b565b818094509492940103126101be5780359061070d6107056106f66040602085013594013595610a7f565b346101be576107bb3661059b565b926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610761576108236108176005610809876000526000602052604060002090565b01546001600160a01b031690565b6001600160a01b031690565b9116036108fc5761083683820182610a4a565b61083f81610a5f565b60018103610878575061086261085d61087392600494953691610177565b610caa565b926000526000602052604060002090565b01555b005b61088181610a5f565b600281036108bd5750906108a56108a06108b893610876953691610177565b610c00565b9290916000526000602052604060002090565b610c28565b806108c9600392610a5f565b036108ea576106d16108626108e5600593610876963691610177565b610bd8565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101be5760003660031901126101be576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101be5760203660031901126101be57610278610972600435610a7f565b6040519182916020835260208301906101e1565b908160609103126101be578051916040602083015192015190565b908160809103126101be576060604051916109bb83610134565b80518352602081015160208401526040810151604084015201516109de81610320565b606082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610a1557565b6109f2565b91908201809211610a1557565b81810392916000138015828513169184121617610a1557565b600411156101be57565b908160209103126101be57356101de81610a40565b60041115610a6957565b634e487b7160e01b600052602160045260246000fd5b60408051610a8c81610134565b6000918282526020820193838552818301848152606084019085825282865285602052610ac2610abd85882061027c565b610cdf565b808652670de0b6b3a7640000908103908111610a1557846101de97610b1f95610b1294600594610b5a9c5281835282602052600484842001549052815280602052200160018060a01b0390541690565b6001600160a01b03169052565b5192839160208301919091606060808201938051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b03601f198101835282610155565b926020610b9184610b8b610b83610b9a9697610ba099610fa4565b855190610d88565b95610fa4565b91015190610d88565b90610f48565b670de0b6b3a763ffff198101908113600116610a155790565b6101de92916020610bcf610b9a93855190610d88565b93015190610d88565b6040818051810103126101be5780610bf560206040930151610a40565b015161081781610320565b6060818051810103126101be57610c1a6020820151610a40565b606060408201519101519091565b919042821115610c9857610c3e610abd8461027c565b9081845542600385015542830391838311610a1557610c5c91610a27565b428314610c8257600160ff1b8114600019831416610a1557600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101be5780610cc760206040930151610a40565b015190565b81810292918115918404141715610a1557565b6060810151906020810151808314610d5e57804211600014610d5657915b8203918211610a15576040810190815160008113600014610d3057506101de92610d2a9151925190610ccc565b90610a1a565b90519150600160ff1b8114610a15576101de92610d509160000390610ccc565b90610a08565b504291610cfd565b5090505190565b818102929160008212600160ff1b821416610a15578184051490151715610a1557565b610f356101de927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284610f4393610dbe60008213610fc6565b711340daa0d5f769dba1915cef59f0815a5506610dda82611188565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d610d65565b670de0b6b3a7640000900590565b610ffe565b8181029181830414901517600116156101be576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101be57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101be570490565b15610fcd57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131561118257680755bf798b4a1bf1e581121561114e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b611193811515610fc6565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c600110179056fea26469706673582212209815df372867dd1ba42d4263690c8e70d1f8dc34ff9f897579936267cb43316764736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a2646970667358221220af4649de0038820d165cff31940b364f1bd9ee976f613a25f4d7f8975e17cda064736f6c63430008160033","sourceMap":"88:465:75:-:0;;;1594:4:0;88:465:75;;1594:4:0;88:465:75;;;1594:4:0;88:465:75;378:11:59;88:465:75;378:11:59;330:9:73;378:11:59;88:465:75;378:11:59;;302:134:73;378:11:59;;;;302:134:73;378:11:59;424:4:73;302:134;378:11:59;;302:134:73;378:11:59;;;;;424:4:73;378:11:59;;;;;;;;;;;;468:7:73;;;378:11:59;;468:7:73;510;468;510;378:11:59;;510:7:73;378:11:59;554:88:73;468:7;378:11:59;510:7:73;378:11:59;;;:::i;:::-;554:88:73;;:::i;:::-;378:11:59;:::i;:::-;88:465:75;;;;;;;;;;;;;378:11:59;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;;;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;378:11:59;;;;-1:-1:-1;;;;;378:11:59;;;;;;;;;;:::o;:::-;88:465:75;;378:11:59;;;;:::i;:::-;302:134:73;378:11:59;;;;;;;;;;;88:465:75;378:11:59;;;;;-1:-1:-1;;;;;378:11:59;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;378:11:59;302:134:73;-1:-1:-1;378:11:59;302:134:73;-1:-1:-1;378:11:59;;302:134:73;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;378:11:59;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;302:134:73;378:11:59;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;378:11:59;;;;;302:134:73;378:11:59;;-1:-1:-1;;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1858:513:35;;;799:19:18;1349:9:35;;;1790:35;1728;631:21:18;378:11:59;631:21:18;378:11:59;;;965:21:18;378:11:59;;965:21:18;;;:::i;:::-;631;:::i;:::-;1728:35:35;;;:::i;:::-;378:11:59;;1790:35:35;;:::i;:::-;799:19:18;;:::i;:::-;2139:69:35;;;;;;;:::i;:::-;8798:29;;-1:-1:-1;8914:21:35;;;-1:-1:-1;;;8954:21:35;;;;;;8910:600;9519:160;2296:72;8910:600;2296:72;8910:600;;;;;;88:465:75;;;1349:9:35;9538:45;;;88:465:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;88:465:75;;;;;;;;9538:45:35;;-1:-1:-1;;;9538:45:35;88:465:75;;9538:45:35;:::i;:::-;9519:160;:::i;:::-;378:11:59;;88:465:75;2334:14:35;;;378:11:59;2350:17:35;;;;378:11:59;88:465:75;;1349:9:35;2296:72;;88:465:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;88:465:75;;;;;;;;;;;;2296:72:35;;;;;;;;;:::i;:::-;1858:513;:::o;8947:268::-;8999:27;;;;;:::i;:::-;9060:144;;;;;;;:::i;:::-;8947:268;;;8910:600;9237:267;;;9244:21;;;;;;8910:600;9519:160;2296:72;8910:600;;;2296:72;8910:600;;;;;9237:267;9289:26;;;;;:::i;:::-;9349:144;;;;;;;:::i;:::-;9237:267;;;88:465:75;378:11:59;;;88:465:75;;;;;;;;1692:384:42;;2000:9;965:21:18;1692:384:42;1880:50;965:21:18;1961:50:42;1692:384;;799:19:18;1692:384:42;965:21:18;:::i;:::-;378:11:59;;1880:50:42;;:::i;:::-;965:21:18;;:::i;:::-;2000:9:42;;378:11:59;1961:50:42;;:::i;799:19:18:-;88:465:75;;;;;;;;;;;1692:384:42;:::o;88:465:75:-;;:::i;:::-;;;;;;;;;-1:-1:-1;;;88:465:75;;;;;;;;;;;;;;;:::o;1208:273:18:-;1399:12;1391:36;1208:273;7380:72;1398:28;1208:273;4688:27;-1:-1:-1;4696:5:18;;4688:27;:::i;:::-;7125:43;5125:16;;;:::i;:::-;5145:2;88:465:75;;;5175:3:18;88:465:75;;378:11:59;5175:3:18;378:11:59;88:465:75;;;;7232:71:18;88:465:75;;6411:30:18;88:465:75;6343:32:18;88:465:75;6274:33:18;88:465:75;6205:33:18;88:465:75;6136:33:18;88:465:75;6068:32:18;88:465:75;6001:31:18;88:465:75;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;88:465:75;;;;;;;;;;;;;;;;5533:32:18;88:465:75;5465:32:18;88:465:75;5398:31:18;88:465:75;;;;;;;;;;;;;;;;;;;;;;;;6455:304:18;88:465:75;;;;;1399:12:18;:::i;:::-;491:4;88:465:75;;;;1398:28:18;1391:36;:::i;8282:752::-;8417:611;;;;;;;;;;;;;;;;;491:4;378:11:59;;8417:611:18;;;;;;;;8282:752;:::o;:::-;9304:4:35;8417:611:18;;;;;;;;;;;;;;;;;;9310:4:35;378:11:59;;8417:611:18;;;;;;;;8282:752;:::o;7741:535::-;491:4;7878:392;;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;7878:392;;;;;;;;;;;;;;;;491:4;7878:392;;7741:535;:::o;:::-;9016:3:35;7878:392:18;;;;;;;;;;;;;;;;;9021:4:35;7878:392:18;;7741:535;:::o;88:465:75:-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;1009:1952:33:-;378:11:59;;1009:1952:33;;378:11:59;;1239:13:33;;;1235:66;;1632:15;;;;:::i;:::-;1674;;;;:::i;:::-;378:11:59;1699:25:33;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;;:::i;:::-;9631:1:35;;378:11:59;;9631:1:35;;;;;1978:981:33;1009:1952;;;;;;;;;;:::o;1978:981::-;;;;;2909:48;;;;;;;2123:13;2122:19;2123:13;;;;:::i;:::-;88:465:75;;;;2122:19:33;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;378:11:59;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;88:465:75;;1978:981:33;;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;2909:18;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;;;;;;2931:26;9643:3:35;2931:26:33;;2909:48;;1695:115;88:465:75;;-1:-1:-1;;;1747:56:33;;;;;88:465:75;;;;;;;;;;1747:56:33;1235:66;88:465:75;;-1:-1:-1;;;1261:40:33;;;;;88:465:75;;;;;;;;;;;1747:56:33;88:465:75;;;;:::o;:::-;;;-1:-1:-1;;;88:465:75;;;;;;;;;;;;-1:-1:-1;;;88:465:75;;;;;;;1487:3103:18;-1:-1:-1;;1713:26:18;;;1709:40;;1948:21;1943:26;;;1939:54;;2266:5;378:11:59;88:465:75;378:11:59;88:465:75;4502:49:18;2559:29;88:465:75;3136:40:18;88:465:75;378:11:59;2591:5:18;378:11:59;;;;88:465:75;;;;;;;;;3074:35:18;88:465:75;2874:31:18;88:465:75;;;;;;3649:35:18;88:465:75;;;;3508:34:18;88:465:75;;;;3371:32:18;88:465:75;;;;;;;;;;;;;;;;;;;;;;;;;;2941:32:18;88:465:75;;;;;;;;;;;;;;;3699:327:18;88:465:75;;4564:3:18;88:465:75;378:11:59;1487:3103:18;:::o;1939:54::-;88:465:75;;-1:-1:-1;;;1971:22:18;;88:465:75;1971:22:18;;;88:465:75;;;;;;-1:-1:-1;;;88:465:75;;;;;;1747:56:33;1709:40:18;1741:8;1748:1;1741:8;:::o;15328:575::-;15397:27;15405:5;;;15397:27;:::i;:::-;15435:462;378:11:59;15435:462:18;;;;;;;;;;378:11:59;;;;;15435:462:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:575;:::o;88:465:75:-;378:11:59;;;3862:59:35;;88:465:75;;;;;;;3862:59:35;;;88:465:75;;;;;;;;;;;;;;;;;378:11:59;;;;:::i;:::-;88:465:75;;;;;;;;;;3862:59:35;88:465:75;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;88:465:75;;;;3934:64:35;88:465:75;;;;;3934:64:35;:::i","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e4146200009a5750508063620a260714620000945780637b5de387146200008e578063ba414fa61462000088578063e0d7d0e91462000082578063e21485ad146200007c5763fa7626d4146200007657600080fd5b620008f2565b620007ba565b6200079a565b62000771565b620005b7565b62000593565b346200056357816003193601126200056357620000b66200106f565b805161106b8082019067ffffffffffffffff92808310848411176200053f5780620000e9620015d99484868439620009d5565b039086f080156200051757601580546001600160a01b0319166001600160a01b03909216919091179055835191818301838110858211176200053f5783926200013492843962000a21565b039084f080156200051757601680546001600160a01b0319166001600160a01b039283161790556015546200017191165b6001600160a01b031690565b803b156200057e5782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af18015620005175762000567575b506016548490620001d0906001600160a01b031662000165565b91823b156200056357845190815230600482015268056bc75e2d631000006024820152918290604490829084905af18015620005175762000545575b5060155462000224906001600160a01b031662000165565b6016546200023b906001600160a01b031662000165565b908351916105979081840192848410868511176200053f578493620002889362008d8c86396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200051757601480546001600160a01b0319166001600160a01b039092169190911790558151612f2180820190828210848311176200053f578291620002de916200264484396000815260200190565b039084f080156200051757601380546001600160a01b0319166001600160a01b03929092169182179055620003139062000165565b8251906112cb80830191838310858411176200053f578392620003499262007ac185396001600160a01b03909116815260200190565b039084f080156200051757601780546001600160a01b0319166001600160a01b039290921691821790556200037e9062000165565b82519161255c8084019290918311848410176200053f578392620003b5926200556585396001600160a01b03909116815260200190565b039083f09081156200051757620003ec620004589260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b60155462000403906001600160a01b031662000165565b6013546200041a906001600160a01b031662000165565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200051757620004d09385936200051d575b5060165462000489906001600160a01b031662000165565b6013549091908790620004a5906001600160a01b031662000165565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200051757620004e4578280f35b816200050892903d106200050f575b620004ff81836200097c565b81019062000a61565b5081808280f35b503d620004f3565b62000a15565b6200053790843d86116200050f57620004ff81836200097c565b508662000471565b62000917565b80620005556200055c926200092d565b8062000582565b836200020c565b5080fd5b806200055562000577926200092d565b84620001b6565b8380fd5b60009103126200058e57565b600080fd5b346200058e5760003660031901126200058e576020604051660aa87bee5380008152f35b346200058e576000806003193601126200076e57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000563576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620005175762000757575b506017548190608090620006f39062000639906001600160a01b031662000165565b601554620006af9062000655906001600160a01b031662000165565b6016546200069f9062000671906001600160a01b031662000165565b916200068f620006806200099f565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6001600160a01b03166040830152565b620006b962000a7b565b6060820152601354620006d5906001600160a01b031662000165565b906040519485809481936305157c7f60e21b83526004830162000bee565b03925af180156200051757620007119183916200071e575b50601955565b6200071b62000d2d565b80f35b62000745915060803d6080116200074f575b6200073c81836200097c565b81019062000b7f565b505050386200070b565b503d62000730565b806200055562000767926200092d565b3862000617565b80fd5b346200058e5760003660031901126200058e5760206200079062000f97565b6040519015158152f35b346200058e5760003660031901126200058e576020601954604051908152f35b346200058e5760203660031901126200058e5760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa90811562000517576000916200083e575b60c08201516200083a906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e011620008e9575b816200085c60e093836200097c565b810103126200058e576200082060c06200083a92620008dc8260405192620008848462000942565b6200088f81620009c0565b84526200089f60208201620009c0565b6020850152620008b260408201620009c0565b6040850152606081015160608501526080810151608085015260a081015160a085015201620009c0565b828201529250506200080c565b3d91506200084d565b346200058e5760003660031901126200058e57602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200053f57604052565b60e0810190811067ffffffffffffffff8211176200053f57604052565b6080810190811067ffffffffffffffff8211176200053f57604052565b90601f8019910116810190811067ffffffffffffffff8211176200053f57604052565b604051906080820182811067ffffffffffffffff8211176200053f57604052565b51906001600160a01b03821682036200058e57565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b6040513d6000823e3d90fd5b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b908160209103126200058e575180151581036200058e5790565b6040519060006020906020546001928160011c936001831692831562000b74575b60208610841462000b605785885287949360208601939291811562000b3f575060011462000ad8575b50505062000ad6925003836200097c565b565b92509362000b0860206000527fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb90565b946000935b82851062000b285750505062000ad693500138808062000ac5565b865485850152958601958895509381019362000b0d565b9250505062000ad69491925060ff19168252151560051b0138808062000ac5565b634e487b7160e01b85526022600452602485fd5b94607f169462000a9c565b91908260809103126200058e578151916020810151916060604083015192015190565b60005b83811062000bb65750506000910152565b818101518382015260200162000ba5565b9060209162000be28151809281855285808601910162000ba2565b601f01601f1916010190565b60a0606062000c319360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062000bc7565b90565b908160809103126200058e57604051906080820182811067ffffffffffffffff8211176200053f5762000c869160609160405280518452602081015160208501526040810151604085015201620009c0565b606082015290565b67ffffffffffffffff81116200053f57601f01601f191660200190565b6020818303126200058e5780519067ffffffffffffffff82116200058e570181601f820112156200058e57805162000ce38162000c8e565b9262000cf360405194856200097c565b818452602082840101116200058e5762000c31916020808501910162000ba2565b60409062000c3193928152816020820152019062000bc7565b60185462000d759062000d49906001600160a01b031662000165565b60195490604091825190816340dafd6160e11b9384825281806080988995600483019190602083019252565b03915afa908115620005175762000d9a91849160009162000f18575b50015162001409565b60185462000db1906001600160a01b031662000165565b825163b09d04e560e01b8152660e35fa931a000060048201529190600090839060249082905afa918215620005175760009262000eee575b5060135462000e01906001600160a01b031662000165565b9160195490833b156200058e5762000e32936000928387518097819582946242d70760e31b84526004840162000d14565b03925af1908115620005175762000e7f92859262000ed7575b5060185462000e63906001600160a01b031662000165565b6019549185518095819482938352600483019190602083019252565b03915afa908115620005175762000ad69360009262000ea3575b505001516200150e565b62000ec79250803d1062000ecf575b62000ebe81836200097c565b81019062000c34565b388062000e99565b503d62000eb2565b806200055562000ee7926200092d565b3862000e4b565b62000f109192503d806000833e62000f0781836200097c565b81019062000cab565b903862000de9565b62000f339150863d881162000ecf5762000ebe81836200097c565b3862000d91565b90600491630667f9d760e41b815262000f5d825180936020868501910162000ba2565b010190565b3d1562000f92573d9062000f768262000c8e565b9162000f8660405193846200097c565b82523d6000602084013e565b606090565b6000805460081c60ff161562000fb1575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62000fd357505090565b81925060405182816200101160208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b0362001026601f19918281018552846200097c565b6200104c60405191826200103f60208201968762000f3a565b039081018352826200097c565b51925af15062000c316200105f62000f62565b6020808251830101910162000a61565b6040805161106b80820167ffffffffffffffff91838210838311176200053f5783620010a3620015d99383858439620009d5565b0360009485f080156200051757601580546001600160a01b0319166001600160a01b03909216919091179055845191818301838110858211176200053f578392620010f092843962000a21565b039083f080156200051757601680546001600160a01b0319166001600160a01b0392831617905560155462001126911662000165565b803b15620014055783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af180156200051757620013ee575b5060165462001183906001600160a01b031662000165565b90813b156200057e57845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af180156200051757620013d7575b50601554620011d9906001600160a01b031662000165565b601654620011f0906001600160a01b031662000165565b908451916105979081840192848410868511176200053f5784936200123d9362008d8c86396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200051757601480546001600160a01b0319166001600160a01b03909216919091179055825190612f21808301918211838310176200053f57829162001293916200264484396000815260200190565b039082f09182156200051757620012ca620013399360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b601554620012e1906001600160a01b031662000165565b601354909190620012fb906001600160a01b031662000165565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af1928315620005175762001384948694620013b5575b506016546200136a906001600160a01b031662000165565b601354909290620004a5906001600160a01b031662000165565b03925af18015620005175762001398575050565b81620013b292903d106200050f57620004ff81836200097c565b50565b620013cf90853d87116200050f57620004ff81836200097c565b503862001352565b8062000555620013e7926200092d565b38620011c1565b8062000555620013fe926200092d565b386200116b565b8280fd5b660aa87bee5380008082036200141d575050565b60809162001501916040907f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f5085835160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8582015261745d60f01b6060820152a1815190828252600a83830152690808115e1c1958dd195960b21b606083015260208201527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8948591a15191829182919060408352600a604084015269080808081058dd1d585b60b21b6060840152602060808401930152565b0390a162000ad662001522565b660e35fa931a00008082036200141d575050565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62001551575b5061010061ff00196000541617600055565b6000809160405182602082018381526519985a5b195960d21b6040840152600160608401526060835262001585836200095f565b620015c160246040518093620015b060208301976370ca10bb60e01b89525180928585019062000ba2565b81010360048101845201826200097c565b51925af150620015d062000f62565b50386200153f56fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c6343000816003360803461007457601f61255c38819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b0319169190911790556040516124cc90816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630f4166b814610167578063250968d914610162578063306db46b1461015d578063332266f3146101585780633928ff97146101535780633b4d10301461014e5780634fd67c58146101495780635a93b8ce146101445780636237569f1461013f5780637f17409c1461013a57806381b5fac214610135578063902ecaa214610130578063a8c62e761461012b578063b09d04e514610126578063cb1f553214610121578063ce153bf41461011c578063def15f9214610117578063ec29d8e614610112578063ee3e8cfb1461010d578063f2de7a7b146101085763f30d37f21461010357600080fd5b6109b2565b610996565b610962565b61094c565b6108e0565b61082f565b6107ea565b6107a6565b61077d565b610754565b610700565b6106a0565b61063f565b61061a565b6105f1565b6105bf565b61032e565b6102d6565b61029f565b610236565b346101d55760403660031901126101d55767ffffffffffffffff6024358181116101d557366023820112156101d55780600401359182116101d55736602483830101116101d5576101d19160246101c192016004356109e5565b6040519081529081906020820190565b0390f35b600080fd5b60005b8381106101ed5750506000910152565b81810151838201526020016101dd565b90602091610216815180928185528580860191016101da565b601f01601f1916010190565b9060206102339281815201906101fd565b90565b346101d55760403660031901126101d5576101d160405160026020820152600435604082015260243560608201526060815261027181610881565b6040519182916020835260208301906101fd565b60609060031901126101d557600435906024359060443590565b346101d55760206102ce6102b236610285565b906102c56102bf84610c45565b93610d72565b92919091610f1e565b604051908152f35b346101d55760206102ce6102e936610285565b906102f66102bf84610c45565b92919091611149565b801515036101d557565b90926080926102339594151583526020830152604082015281606082015201906101fd565b346101d55760603660031901126101d55760043560243561034e816102ff565b6104c46044359161035d610a11565b6103ad610368610a11565b9461037287610d72565b9491959092602096878401946040978886015285528352868a878b61039683610c45565b9889938851906103a78b5191610c45565b916112e2565b951561053b575061040c936103fe6103f96104409998956103f3866103dc610405976104199c99015187611d20565b926103ea8d518b5190611d4c565b91015190611324565b90611d20565b610a57565b9351610a7a565b8b52610a7a565b80868a015288518a610e65565b9061043761042c878a0193808552610a57565b808452825111610b21565b51905190610b14565b955b60c0865185880192610484845197610476888c015189519a8b96879485016040919493926060820195825260208201520152565b03601f1981018452836108be565b6000546104a79061049b906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610baf565b03915afa948515610536576000956104f6575b50906104eb916101d19596519051906114e4565b905194859485610309565b6101d19550906105216104eb939260c03d60c01161052f575b61051981836108be565b810190610b78565b5050505050955090916104d7565b503d61050f565b610bd3565b91966105b09561059d946105866105a59761057f6103f98c6103f36105b99f61057761056d6105909c83015188611d20565b93518b5190611d4c565b905190611324565b9451610a7a565b9401938452610a7a565b9081898d0152518c610bdf565b808a52610a57565b808952825111610a87565b51865190610b14565b95610442565b346101d55760203660031901126101d55760206102ce6004356105ea6105e482610c45565b91610d72565b50906114e4565b346101d55760206102ce61060436610285565b906106116102bf84610c45565b92919091611509565b346101d55760206102ce61063961063036610285565b91929092610c45565b916116a4565b346101d55760403660031901126101d55761067b6004356101d161068261067361066884610d72565b9190506024356116d1565b949093610c45565b84846119e2565b92604051938493846040919493926060820195825260208201520152565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36106c985610d72565b91506024356116fe565b939094610c45565b83856116a4565b91604051938493846040919493926060820195825260208201520152565b346101d55760203660031901126101d557608061071e600435610c45565b61075260405180926060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565bf35b346101d55760206102ce61076736610285565b906107746102bf84610c45565b92919091611725565b346101d55760003660031901126101d5576000546040516001600160a01b039091168152602090f35b346101d55760203660031901126101d5576101d160405160016020820152600435604082015260408152610271816108a2565b6001600160a01b038116036101d557565b346101d55760203660031901126101d5576101d160043561080a816107d9565b60408051600360208201526001600160a01b03909216828201528152610271816108a2565b346101d55760203660031901126101d5576101d161084e600435610d72565b604080519384526020840192909252908201529081906060820190565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761089d57604052565b61086b565b6060810190811067ffffffffffffffff82111761089d57604052565b90601f8019910116810190811067ffffffffffffffff82111761089d57604052565b346101d55760c03660031901126101d55760803660431901126101d5576101d161094060405161090f81610881565b60443581526064356020820152608435604082015260a435610930816107d9565b60608201526024356004356118a2565b60405191829182610222565b346101d55760206102ce6103a761063036610285565b346101d55760403660031901126101d55761067b6004356101d161068261067361098b84610d72565b9190506024356116fe565b346101d55760206102ce6109ac61063036610285565b916119e2565b346101d55760403660031901126101d5576004356106db6101d16106e26106d36109db85610d72565b91506024356116d1565b9181606091810103126101d5576109fe61023392610c45565b9060408101359060208101359035610e8b565b604051906060820182811067ffffffffffffffff82111761089d5760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610a6557565b610a41565b906103e8918201809211610a6557565b91908201809211610a6557565b15610a8e57565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b90670de0b6b3a7640000918203918211610a6557565b906103e8918203918211610a6557565b6103e719810191908211610a6557565b91908203918211610a6557565b15610b2857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c09103126101d5578151610b8f816102ff565b9160208101519160408201519160608101519160a0608083015192015190565b610233939260609260018060a01b03168252602082015281604082015201906101fd565b6040513d6000823e3d90fd5b9161063961023393610c45565b91908260809103126101d557604051610c0481610881565b6060808294805184526020810151602085015260408101516040850152015191610c2d836107d9565b0152565b906080828203126101d55761023391610bec565b90604051610c5281610881565b600090818152816060602092828482015282604082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610536578092610cb3575b506102339293508082518301019101610c31565b9091503d8082863e610cc581866108be565b8401908285830312610d3b57845167ffffffffffffffff95868211610d3e57019082601f83011215610d3b57815195861161089d5760405192610d11601f8801601f19168601856108be565b868452848784010111610d3b57506102339394610d33918480850191016101da565b908392610c9f565b80fd5b8280fd5b908160209103126101d55751610233816107d9565b908160609103126101d5578051916040602083015192015190565b9060046020610d8e61049b61049b60005460018060a01b031690565b604051632bee84f160e21b815292839182905afa92831561053657610dd993606092600091610e36575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156105365760008093600093610dff575b50929190565b91935050610e25915060603d606011610e2f575b610e1d81836108be565b810190610d57565b9290929138610df9565b503d610e13565b610e58915060203d602011610e5e575b610e5081836108be565b810190610d42565b38610db8565b503d610e46565b916109ac61023393610c45565b81810392916000138015828513169184121617610a6557565b9260206103ea84610eae610ea66103f39697610eb499612087565b855190611324565b95612087565b670de0b6b3a763ffff198101908113600116610a655790565b908152602080820192909252604080820193909352606080820194909452845160808201529084015160a08201529083015160c08201529101516001600160a01b031660e08201526101000190565b565b909291855160208701516040880151610f3690610ade565b91610f418785612087565b610f4b8282611324565b92610f5591611324565b895185898581610f65858d6120ca565b90610f6f916120ca565b90610f79916120ca565b92610f83906120a9565b610f8c90610af4565b90610f9691610a7a565b90610fa0916120ca565b610fa986610ade565b610fb2916120ca565b92610fbc8a610a6a565b90610fc6906110f0565b610fcf91611324565b91610fd9906120a9565b610fe286610ade565b610feb916120ca565b610ff59089610a7a565b92610fff91610b14565b91611009916120ca565b895161101490610ade565b61101d90612068565b61102691611324565b61102f916120ca565b91885161103b90610ade565b61104488610a6a565b9261104f89896120ca565b90611059916120ca565b91611063866120a9565b9061106d90610ade565b611076916120ca565b92611080916120ca565b9161108a91610a7a565b611093916120ca565b9061109d846110f0565b916110a791612087565b6110b09161112d565b6000136110e557610233956110e0936110d29260405196879560208701610ecd565b03601f1981018352826108be565b611a30565b505050505050600090565b600160ff1b8114610a655760000390565b90816103e801918212600116610a6557565b9081670de0b6b3a763ffff190191821215600116610a6557565b91909160008382019384129112908015821691151617610a6557565b94939290928451906020860151604087015161116490610ade565b9261116f8787612087565b6111798282611324565b9261118391611324565b885187898581611193858c6120ca565b9061119d916120ca565b906111a7916120ca565b926111b290886120ca565b6111bc9088610b14565b906111c691610a7a565b906111d0916120ca565b6111d987610ade565b6111e2916120ca565b926111ed8a87610a7a565b906111f7906110f0565b61120091611324565b9161120b90866120ca565b61121487610ade565b61121d916120ca565b6112279088610a7a565b9261123191610b14565b9161123b916120ca565b885161124690610ade565b61124f90612068565b61125891611324565b611261916120ca565b965161126c90610ade565b936112778784610a7a565b96611281916120ca565b9061128b916120ca565b93611295916120ca565b9061129f90610ade565b6112a8916120ca565b926112b2916120ca565b916112bc91610a7a565b6112c5916120ca565b916112cf906110f0565b916112d991612087565b6102339161112d565b610233929160206112f86103f393855190611324565b93015190611324565b818102929160008212600160ff1b821416610a65578184051490151715610a6557565b6114d1610233927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642846114df9361135a60008213611dc8565b711340daa0d5f769dba1915cef59f0815a55066113768261210a565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d611301565b670de0b6b3a7640000900590565b611e00565b611503906114fb6102339493602085015190612087565b925190612087565b90612087565b90929185516040870151670de0b6b3a764000060008282039212818312811691831390151617610a655761153c83611101565b61154583611113565b61154e91611324565b908261155a8589611fa9565b9061156491611324565b61156d81611fc7565b9261157783611113565b6115819085611ff0565b61158b9089610e72565b91829161159788611101565b6115a19088611ff0565b936115ab91611ff0565b6115b487611f8a565b6115bd91611324565b926115c787611113565b6115d1908b611ff0565b91886115dc89611fc7565b906115e69161112d565b6115ef91611ff0565b6115f886611113565b61160191611ff0565b9261160b91611ff0565b926116169089611ff0565b9161162091610e72565b61162991611ff0565b6116329161112d565b9261163c85611101565b61164591611ff0565b9161164f876110f0565b9161165990611113565b61166291611ff0565b61166b9161112d565b61167491611ff0565b61167d91611fa9565b6000136110e5576102339561169f936110d29260405196879560208701610ecd565b611b55565b6116c461023393926116be6116cb93602086015190611324565b90611d4c565b9151611d7c565b90611324565b9291906116e76116e18284611d4c565b85611d20565b938103908111610a6557928103908111610a655790565b92919061170e6116e18284611d4c565b938101809111610a6557928101809111610a655790565b9293949091946040825192015193670de0b6b3a764000060008682039612818712811691871390151617610a6557828794611760868561112d565b61176983611113565b61177291611324565b9561177c91611fa9565b9061178691611324565b936117918584611ff0565b9461179b87611113565b6117a59087611ff0565b6117af9089610e72565b9283926117bc8b8761112d565b6117c69088611ff0565b946117d091611ff0565b6117d987611f8a565b6117e291611324565b936117ec87611113565b6117f6908b611ff0565b928b6118028989611ff0565b9061180c9161112d565b61181591611ff0565b61181e8a611113565b61182791611ff0565b9361183191611ff0565b9361183b91611ff0565b9161184591610e72565b61184e91611ff0565b6118579161112d565b956118619161112d565b61186a91611ff0565b92611874906110f0565b9161187e90611113565b61188791611ff0565b6118909161112d565b61189991611ff0565b61023391611fa9565b929190836118bd6118c2926118bd6020860151865190612087565b6120ca565b906118ce8183866112e2565b936118db82868584610e8b565b85906000808212156119a4575b808212611986575061192d61197a9261023396979886935b6119146040519889928c8a6020860161201f565b0396611928601f19988981018352826108be565b611c2c565b8151604080840151606094850151825160208101989098529187019990995292850191909152608084015260a08301959095526001600160a01b0390941660c082015292839060e0820190565b039081018352826108be565b9661199191506120eb565b9561199e84888786610e8b565b906118e8565b9691965b8082136119c4575061192d61023395969761197a938693611900565b966119cf9150611d9e565b956119dc84888786610e8b565b906119a8565b60206119fb61023394936116be6116cb94865190611324565b920151611d7c565b9190610100838203126101d557825192602081015192610233604083015193608060608501519401610bec565b91906103e892600093600091838211611b3457611a4c8161217c565b611a5685836122d5565b6000611a628284611301565b13611b155750611a73859695610b04565b60019460009186805b611a8d575b50505050505050509050565b15611af0575b5085969798508091611aae611aa88b88610a7a565b60011c90565b99611ab98b876122d5565b9083611ac58784611301565b13611ae457505089925b87611ada8886610b14565b9201939998611a7c565b8b975090945092611acf565b861080611b0a575b15611b035788611a93565b8080611a81565b506101008210611af8565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e892600093600091838211611b3457611b71816122f6565b611b7b8583612441565b6000611b878284611301565b13611b155750611b98859695610b04565b60019460009186805b611bb15750505050505050509050565b15611c0e575b5085969798508091611bcc611aa88b88610a7a565b99611bd78b87612441565b9083611be38784611301565b13611c0257505089925b87611bf88886610b14565b9201939998611ba1565b8b975090945092611bed565b861080611c21575b15611b035788611bb7565b506101008210611c16565b60009392918491838211611d0057611c448282612462565b611c4e8583612462565b6000611c5a8284611301565b13611b155750611c6c83869796610b14565b60019460009186805b611c855750505050505050509050565b15611ce2575b5085969798508091611ca0611aa88b88610a7a565b99611cab8b87612462565b9083611cb78784611301565b13611cd657505089925b87611ccc8886610b14565b9201939998611c75565b8b975090945092611cc1565b861080611cf5575b15611b035788611c8b565b506101008210611cea565b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b8181029181830414901517600116156101d5576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101d557600190600019830104019015150290565b600181151516156101d5576ec097ce7bc90715b34b9f0fffffffff0460010190565b6103e9908181029181830414901517600116156101d55760016103e8600019830104019015150290565b15611dcf57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e19811315611f8457680755bf798b4a1bf1e5811215611f50576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029182051482151516156101d5570590565b6103e881810291600160ff1b81136001179183051416156101d557670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b9091131716156101d557670de0b6b3a7640000900590565b610f1c9360609296959360e083019783526020830152604082015201906060908051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b600181151516156101d5576ec097ce7bc90715b34b9f10000000000490565b670de0b6b3a764000090818102918183041490151782151516156101d5570490565b6103e89080820291820414600116156101d557670de0b6b3a7640000900490565b8181029181830414901517600116156101d557670de0b6b3a7640000900490565b6103e7908181029181830414901517600116156101d5576103e8900490565b612115811515611dc8565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b80518101602001906020019061219191611a03565b9291908351602085015160408601516121a990610ade565b916121b48686612087565b6121be8282611324565b926121c891611324565b8751868885816121d8858b6120ca565b906121e2916120ca565b906121ec916120ca565b926121f6906120a9565b6121ff90610af4565b9061220991610a7a565b90612213916120ca565b61221c86610ade565b612225916120ca565b9261222f89610a6a565b90612239906110f0565b61224291611324565b9161224c906120a9565b61225586610ade565b61225e916120ca565b6122689087610a7a565b9261227291610b14565b9161227c916120ca565b875161228790610ade565b61229090612068565b61229991611324565b6122a2916120ca565b95516122ad90610ade565b926122b786610a6a565b956122c1916120ca565b906122cb916120ca565b92611295906120a9565b906122ec6102339260208082518301019101611a03565b9493929092611149565b6123099060208082518301019101611a03565b6040819593959492945191015192670de0b6b3a764000060008582039512818612811691861390151617610a655781869361234385611101565b61234c83611113565b61235591611324565b9461235f91611fa9565b9061236991611324565b9261237384611fc7565b9361237d86611113565b6123879086611ff0565b6123919088610e72565b92839261239d8a611101565b6123a79087611ff0565b946123b191611ff0565b6123ba86611f8a565b6123c391611324565b936123cd86611113565b6123d7908a611ff0565b928a6123e288611fc7565b906123ec9161112d565b6123f591611ff0565b6123fe89611113565b61240791611ff0565b9361241191611ff0565b9361241b91611ff0565b9161242591610e72565b61242e91611ff0565b6124379161112d565b9461186190611101565b906124586102339260208082518301019101611a03565b9493929092611725565b805181019160e0828403126101d5576102339261249060208401519360806020604083015194019101610bec565b92610e8b56fea2646970667358221220ddef7f48a463f4812492c0cc35c784e857fab14e0a29d203d7aa233c67d9fa2964736f6c6343000816003360a03461007f57601f6112cb38819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f57608052604051611230908161009b82396080518181816103b701528181610612015281816107c601526109240152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b610953565b61090e565b6107ad565b610773565b6105f6565b610331565b6102ae565b610221565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101c3565b838082518301019101610986565b9061010d6100ff600435610a7f565b8680825183010191016109a1565b92610b68565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761015057604052565b61011e565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101a1601f8201601f191660200184610155565b8294818452818301116101be578281602093846000960137010152565b600080fd5b9080601f830112156101be578160206101de93359101610177565b90565b919082519283825260005b84811061020d575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101ec565b346101be5760003660031901126101be57604051604081019080821067ffffffffffffffff8311176101505761027891604052600381526247334d60e81b60208201526040519182916020835260208301906101e1565b0390f35b9060405161028981610134565b6060600382948054845260018101546020850152600281015460408501520154910152565b346101be5760203660031901126101be57600435600052600060205260c060406000206102da8161027c565b90600481015490600560018060a01b03910154169060606040519380518552602081015160208601526040810151604086015201516060840152608083015260a0820152f35b6001600160a01b038116036101be57565b346101be5760603660031901126101be5761034d600435610320565b60243560443567ffffffffffffffff81116101be576103709036906004016101c3565b9061037a81610a7f565b90610390825192602080809583010191016109a1565b6040516333854efd60e21b8152600481018390529092906060816024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa948515610596576000908192829761055d575b508084806103ff93518301019101610986565b949195909787878581116000146104c45793610454869461044e866104496104769b9761044461046198604061043b61046d9f6104679f610a08565b91015190610f48565b610f48565b610f74565b50610a7f565b80518101820191016109a1565b91610bb9565b83610a27565b93828685610b68565b93846013191292836104b9575b6102789394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b601486129350610483565b5050919290938089116000146104ff5761046161046d946104546104769761044e856104498f998f61044490604061043b866104679f610a08565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9096506103ff9250610587915060603d60601161058f575b61057f8183610155565b810190610986565b9690926103ec565b503d610575565b6109e6565b9060606003198301126101be576004356105b481610320565b916024359160443567ffffffffffffffff928382116101be57806023830112156101be5781600401359384116101be57602484830101116101be576024019190565b346101be576106043661059b565b9192506001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083163303610761578160c091810103126101be5780359160208201359160408101359460608201359060a08301359261066984610320565b670de0b6b3a764000083101561074f5761070d946107059460806106f1936106f69661069f876000526000602052604060002090565b55013560046106b8866000526000602052604060002090565b01551660056106d1846000526000602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610a7f565b602080825183010191016109a1565b848385610b68565b9283601319129182610744575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b60148512925061071a565b60405163e8a38a6160e01b8152600490fd5b604051636853cba760e01b8152600490fd5b346101be5760606107833661059b565b818094509492940103126101be5780359061070d6107056106f66040602085013594013595610a7f565b346101be576107bb3661059b565b926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163303610761576108236108176005610809876000526000602052604060002090565b01546001600160a01b031690565b6001600160a01b031690565b9116036108fc5761083683820182610a4a565b61083f81610a5f565b60018103610878575061086261085d61087392600494953691610177565b610caa565b926000526000602052604060002090565b01555b005b61088181610a5f565b600281036108bd5750906108a56108a06108b893610876953691610177565b610c00565b9290916000526000602052604060002090565b610c28565b806108c9600392610a5f565b036108ea576106d16108626108e5600593610876963691610177565b610bd8565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101be5760003660031901126101be576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101be5760203660031901126101be57610278610972600435610a7f565b6040519182916020835260208301906101e1565b908160609103126101be578051916040602083015192015190565b908160809103126101be576060604051916109bb83610134565b80518352602081015160208401526040810151604084015201516109de81610320565b606082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610a1557565b6109f2565b91908201809211610a1557565b81810392916000138015828513169184121617610a1557565b600411156101be57565b908160209103126101be57356101de81610a40565b60041115610a6957565b634e487b7160e01b600052602160045260246000fd5b60408051610a8c81610134565b6000918282526020820193838552818301848152606084019085825282865285602052610ac2610abd85882061027c565b610cdf565b808652670de0b6b3a7640000908103908111610a1557846101de97610b1f95610b1294600594610b5a9c5281835282602052600484842001549052815280602052200160018060a01b0390541690565b6001600160a01b03169052565b5192839160208301919091606060808201938051835260208101516020840152604081015160408401528160018060a01b0391015116910152565b03601f198101835282610155565b926020610b9184610b8b610b83610b9a9697610ba099610fa4565b855190610d88565b95610fa4565b91015190610d88565b90610f48565b670de0b6b3a763ffff198101908113600116610a155790565b6101de92916020610bcf610b9a93855190610d88565b93015190610d88565b6040818051810103126101be5780610bf560206040930151610a40565b015161081781610320565b6060818051810103126101be57610c1a6020820151610a40565b606060408201519101519091565b919042821115610c9857610c3e610abd8461027c565b9081845542600385015542830391838311610a1557610c5c91610a27565b428314610c8257600160ff1b8114600019831416610a1557600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101be5780610cc760206040930151610a40565b015190565b81810292918115918404141715610a1557565b6060810151906020810151808314610d5e57804211600014610d5657915b8203918211610a15576040810190815160008113600014610d3057506101de92610d2a9151925190610ccc565b90610a1a565b90519150600160ff1b8114610a15576101de92610d509160000390610ccc565b90610a08565b504291610cfd565b5090505190565b818102929160008212600160ff1b821416610a15578184051490151715610a1557565b610f356101de927d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284610f4393610dbe60008213610fc6565b711340daa0d5f769dba1915cef59f0815a5506610dda82611188565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d610d65565b670de0b6b3a7640000900590565b610ffe565b8181029181830414901517600116156101be576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101be57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101be570490565b15610fcd57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b680248ce36a70cb26b3e1981131561118257680755bf798b4a1bf1e581121561114e576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b50600090565b611193811515610fc6565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c600110179056fea26469706673582212209815df372867dd1ba42d4263690c8e70d1f8dc34ff9f897579936267cb43316764736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a2646970667358221220af4649de0038820d165cff31940b364f1bd9ee976f613a25f4d7f8975e17cda064736f6c63430008160033","sourceMap":"88:465:75:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;649:554:73;;:::i;:::-;88:465:75;;724:32:73;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;715:41;88:465:75;;-1:-1:-1;;;;;;88:465:75;-1:-1:-1;;;;;88:465:75;;;;;;;;;;;775:32:73;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;766:41;88:465:75;;-1:-1:-1;;;;;;88:465:75;-1:-1:-1;;;;;88:465:75;;;;;;715:41:73;88:465:75;817:11:73;;88:465:75;;-1:-1:-1;;;;;88:465:75;;;817:11:73;:34;;;;;88:465:75;;-1:-1:-1;;;817:34:73;;;837:4;88:465:75;817:34:73;;88:465:75;844:6:73;88:465:75;;;;;;;;;;;;;;;817:34:73;;;;;;;;88:465:75;-1:-1:-1;766:41:73;88:465:75;;;861:11:73;;-1:-1:-1;;;;;88:465:75;;;861:11:73;:34;;;;;;88:465:75;;861:34:73;;;837:4;88:465:75;861:34:73;;88:465:75;844:6:73;88:465:75;;;;;;;;;;;837:4:73;;861:34;;;;;;;;88:465:75;-1:-1:-1;715:41:73;88:465:75;920:15:73;;-1:-1:-1;;;;;88:465:75;;;920:15:73;766:41;88:465:75;937:15:73;;-1:-1:-1;;;;;88:465:75;;;937:15:73;88:465:75;;;912:46:73;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:465:75;;;;;;;378:4:31;;;88:465:75;378:4:31;;;;88:465:75;378:4:31;;;;912:46:73;;;;;;;;;906:52;88:465:75;;-1:-1:-1;;;;;;88:465:75;-1:-1:-1;;;;;88:465:75;;;;;;;;;;;975:20:73;;;;;;;;;;;;;;;;;;;;;88:465:75;;;;;;;975:20:73;;;;;;;;;968:27;88:465:75;;-1:-1:-1;;;;;;88:465:75;-1:-1:-1;;;;;88:465:75;;;;;;;;;1019:13:73;;378:4:31;88:465:75;1019:13:73;88:465:75;;1011:22:73;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:465:75;;;;;;;;;1011:22:73;;;;;;;;;1005:28;88:465:75;;-1:-1:-1;;;;;;88:465:75;-1:-1:-1;;;;;88:465:75;;;;;;;;;1066:12:73;;378:4:31;88:465:75;1066:12:73;88:465:75;;;1052:27:73;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:465:75;;;;;;;;;1052:27:73;;;;;;;;;;1043:36;1090:48;1043:36;724:32;88:465:75;;;;;;;;1043:36:73;88:465:75;;;1043:36:73;88:465:75;;1043:36:73;715:41;88:465:75;1090:14:73;;-1:-1:-1;;;;;88:465:75;;;1090:14:73;968:27;378:4:31;1105:13:73;;-1:-1:-1;;;;;88:465:75;378:4:31;88:465:75;1105:13:73;88:465:75;;-1:-1:-1;;;1090:48:73;;;-1:-1:-1;;;;;88:465:75;;;;1090:48:73;;88:465:75;-1:-1:-1;;378:4:31;;;88:465:75;1090:48:73;;88:465:75;;;;1090:48:73;;88:465:75;;1090:48:73;88:465:75;;1090:48:73;;88:465:75;;378:4:31;;;;;1090:48:73;;;;;;;;;;1148;1090;;;;;88:465:75;-1:-1:-1;766:41:73;88:465:75;1148:14:73;;-1:-1:-1;;;;;88:465:75;;;1148:14:73;968:27;378:4:31;;;;;;1163:13:73;;-1:-1:-1;;;;;88:465:75;378:4:31;88:465:75;1163:13:73;88:465:75;;1148:48:73;;;-1:-1:-1;;;;;88:465:75;;;;1148:48:73;;88:465:75;-1:-1:-1;;378:4:31;;;88:465:75;;;;;;;;378:4:31;;;;;1148:48:73;;;;;;;;;;;88:465:75;;;1148:48:73;;;;;;-1:-1:-1;1148:48:73;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;88:465:75;;;1148:48:73;;;;;;;:::i;1090:::-;;;;;;;;;;;;;:::i;:::-;;;;;1052:27;;:::i;861:34::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;88:465:75;;;817:34:73;;;;;;:::i;:::-;;;;;88:465:75;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;88:465:75;;;;;;;378:11:59;88:465:75;;;;;;;;;;;;;;;;;1235:10:73;;;;;88:465:75;;-1:-1:-1;;;1235:10:73;;88:465:75;;1235:10:73;;88:465:75;;;;;;;;;;;;1235:10:73;;;;;;;;88:465:75;-1:-1:-1;1349:3:73;378:4:31;;;1057:14:1;;1506:28:73;;1341:12;;-1:-1:-1;;;;;88:465:75;378:4:31;88:465:75;1341:12:73;1383:6;88:465:75;1300:180:73;;1375:15;;-1:-1:-1;;;;;88:465:75;;;1375:15:73;1420:6;88:465:75;1300:180:73;;1412:15;;-1:-1:-1;;;;;88:465:75;;;1412:15:73;1057:14:1;1300:180:73;1057:14:1;;:::i;:::-;-1:-1:-1;;;;;88:465:75;;;1057:14:1;;;1300:180:73;-1:-1:-1;;;;;88:465:75;1447:22:73;1300:180;;1057:14:1;;1300:180:73;-1:-1:-1;;;;;88:465:75;;1300:180:73;;1057:14:1;;1300:180:73;1057:14:1;;:::i;:::-;1300:180:73;;;1057:14:1;1506:4:73;378::31;1506:9:73;;-1:-1:-1;;;;;88:465:75;378:4:31;88:465:75;1506:9:73;88:465:75;;;;;;;;;;;;1506:28:73;;88:465:75;1506:28:73;;;:::i;:::-;;;;;;;;;1491:43;1506:28;;;;;88:465:75;1491:43:73;;1057:14:1;;1491:43:73;1545:1;;:::i;:::-;88:465:75;;1506:28:73;;;;1057:14:1;1506:28:73;1057:14:1;1506:28:73;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;1235:10;;;;;;:::i;:::-;;;;88:465:75;;;;;;;;;-1:-1:-1;;88:465:75;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;88:465:75;;;;;243:22:73;88:465:75;;;;;;;;;;;;;-1:-1:-1;;88:465:75;;;;992:4:59;378::31;88:465:75;;-1:-1:-1;;;992:20:59;;88:465:75;;;992:20:59;;;88:465:75;;;;;;;;;;-1:-1:-1;;;;;88:465:75;992:20:59;;;;;;;-1:-1:-1;992:20:59;;;88:465:75;1029:19:59;;;88:465:75;;;-1:-1:-1;;;;;88:465:75;;;;-1:-1:-1;;;;;88:465:75;;;;;;;;;;;;;;;;;992:20:59;;;88:465:75;992:20:59;;88:465:75;992:20:59;;;;;;88:465:75;992:20:59;;;:::i;:::-;;;88:465:75;;;;;1029:19:59;88:465:75;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;992:20:59;;;;;;;;-1:-1:-1;992:20:59;;88:465:75;;;;;;-1:-1:-1;;88:465:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;1057:14:1;88:465:75;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;88:465:75;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;88:465:75;;;;;;;;;;;;;;-1:-1:-1;;;88:465:75;;;;753:2:73;88:465:75;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;88:465:75;;;;;;;;;;;;;;-1:-1:-1;;;88:465:75;;;;753:2:73;88:465:75;;;;;;;:::o;378:4:31:-;;;;;;;;;;88:465:75;;;378:4:31;;;;;:::o;1057:14:1:-;88:465:75;;1057:14:1;-1:-1:-1;1447:22:73;1057:14:1;1447:22:73;1057:14:1;;;;;;;;;;;;;;;;1447:22:73;1057:14:1;;;;;;88:465:75;;;;;1057:14:1;88:465:75;;;;1057:14:1;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;1447:22:73;1057:14:1;;;;;;;-1:-1:-1;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1057:14:1;;;;;;88:465:75;1057:14:1;;;;;;;;;;;;;;;;;;88:465:75;;1057:14:1;;;;88:465:75;1057:14:1;;;;;88:465:75;1057:14:1;;88:465:75;1057:14:1;:::o;:::-;;;;;;;;-1:-1:-1;;1057:14:1;;;;:::o;:::-;;;;;;;;;;;;;;;88:465:75;1057:14:1;;88:465:75;;;;;;;;;;;1057:14:1;;;:::i;:::-;88:465:75;;-1:-1:-1;;88:465:75;1057:14:1;;;:::o;:::-;;;;;;;;724:32:73;88:465:75;;;;1057:14:1;;;88:465:75;1057:14:1;;;88:465:75;1057:14:1;;;;;88:465:75;1057:14:1;;;88:465:75;1057:14:1;;;;88:465:75;1057:14:1;;;88:465:75;1057:14:1;;;;;;;;;;;:::i;:::-;;:::o;88:465:75:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;88:465:75;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;129:422::-;223:6;88:465;223:31;;:22;;-1:-1:-1;;;;;88:465:75;;;223:22;246:7;88:465;;;;;;;;;;;223:31;;;;;;;;;;;;;88:465;;;;;;;;223:31;;;;;;;;;;289:13;223:31;;;-1:-1:-1;223:31:75;;;129:422;273:14;;88:465;289:13;:::i;:::-;223:6;88:465;376:23;;-1:-1:-1;;;;;88:465:75;;;376:23;88:465;;-1:-1:-1;;;376:35:75;;335:11;223:31;376:35;;88:465;;;-1:-1:-1;;88:465:75;;;;;;376:35;;;;;;;-1:-1:-1;376:35:75;;;129:422;-1:-1:-1;421:4:75;378::31;421:11:75;;-1:-1:-1;;;;;88:465:75;378:4:31;88:465:75;421:11;88:465;246:7;88:465;421:26;;;;;;;88:465;-1:-1:-1;88:465:75;;;;;;;;;;;;;421:26;;223:31;421:26;;;:::i;:::-;;;;;;;;;;467:31;421:26;;;;;129:422;-1:-1:-1;223:6:75;88:465;467:22;;-1:-1:-1;;;;;88:465:75;;;467:22;246:7;88:465;;;;467:31;;;;;;;;223;467;;88:465;;;;;;;;467:31;;;;;;;;;;533:10;467:31;-1:-1:-1;467:31:75;;;129:422;517:14;;;88:465;533:10;:::i;467:31::-;;;;;;-1:-1:-1;467:31:75;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;421:26;;;;;;:::i;:::-;;;;376:35;;;;;;;-1:-1:-1;376:35:75;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;223:31;;;;;;;;;;;;;;:::i;:::-;;;;1671:64:0;;;;;;;;;;88:465:75;;1671:64:0;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;:::i;:::-;88:465:75;;;;;;;:::i;:::-;1671:64:0;;;-1:-1:-1;1671:64:0;;;;:::o;:::-;;;:::o;1819:584::-;1873:7;88:465:75;;;;;;1873:7:0;;;88:465:75;;;;;1057:14:1;:::o;1869:528:0:-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;88:465:75;;;;;2196:43:0;;;;;;1671:64;;;;88:465:75;;;;1671:64:0;;;;;;88:465:75;1671:64:0;2196:43;;;88:465:75;;2196:43:0;;;;;;;;:::i;:::-;2086:175;88:465:75;;2086:175:0;;;2196:43;2086:175;;;;;:::i;:::-;;;;;;;;;:::i;:::-;2047:232;;;;;2312:27;2047:232;;:::i;:::-;2196:43;88:465:75;;;2312:27:0;;;;;;:::i;396:450:59:-;88:465:75;;;447:32:59;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;715:41:73;88:465:75;;-1:-1:-1;;;;;;88:465:75;-1:-1:-1;;;;;88:465:75;;;;;;;;;;;498:32:59;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;766:41:73;88:465:75;;-1:-1:-1;;;;;;88:465:75;-1:-1:-1;;;;;88:465:75;;;;;;438:41:59;88:465:75;540:11:59;;88:465:75;;;540:11:59;:34;;;;;88:465:75;;-1:-1:-1;;;540:34:59;;;560:4;540:34;;;88:465:75;844:6:73;88:465:75;;;;;;;;;;;;;;;540:34:59;;;;;;;;396:450;-1:-1:-1;489:41:59;88:465:75;584:11:59;;-1:-1:-1;;;;;88:465:75;;;584:11:59;:34;;;;;;88:465:75;;584:34:59;;;560:4;540:34;584;;88:465:75;844:6:73;88:465:75;;;;;;;;;;;;;;;584:34:59;;;;;;;;396:450;-1:-1:-1;438:41:59;88:465:75;643:15:59;;-1:-1:-1;;;;;88:465:75;;;643:15:59;489:41;88:465:75;660:15:59;;-1:-1:-1;;;;;88:465:75;;;660:15:59;88:465:75;;;635:50:59;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:465:75;;;;;;;378:4:31;;;88:465:75;378:4:31;;;;88:465:75;378:4:31;;;;635:50:59;;;;;;;;;906:52:73;88:465:75;;-1:-1:-1;;;;;;88:465:75;-1:-1:-1;;;;;88:465:75;;;;;;;;;;;;702:20:59;;;;;;;;;;;;;;;;;;;;88:465:75;;;;;;;702:20:59;;;;;;;;;;695:27;733:48;695:27;724:32:73;88:465:75;;;;;;;;968:27:73;88:465:75;;;968:27:73;88:465:75;;695:27:59;438:41;88:465:75;733:14:59;;-1:-1:-1;;;;;88:465:75;;;733:14:59;695:27;378:4:31;;;;748:13:59;;-1:-1:-1;;;;;88:465:75;378:4:31;88:465:75;748:13:59;88:465:75;;-1:-1:-1;;;733:48:59;;;-1:-1:-1;;;;;88:465:75;;;540:34:59;733:48;;88:465:75;-1:-1:-1;;378:4:31;;;88:465:75;733:48:59;;88:465:75;;;;733:48:59;;88:465:75;;733:48:59;88:465:75;;;;;;378:4:31;;;;;733:48:59;;;;;;;;;;791;733;;;;;396:450;-1:-1:-1;489:41:59;88:465:75;791:14:59;;-1:-1:-1;;;;;88:465:75;;;791:14:59;695:27;378:4:31;;;;806:13:59;;-1:-1:-1;;;;;88:465:75;378:4:31;88:465:75;791:48:59;;;;;;;;;;;396:450;;:::o;791:48::-;;;;;;-1:-1:-1;791:48:59;;;;;;:::i;:::-;;396:450::o;733:48::-;;;;;;;;;;;;;:::i;:::-;;;;;584:34;;;;;;:::i;:::-;;;;540;;;;;;:::i;:::-;;;;;88:465:75;;;5202:262:0;378:11:59;5259:6:0;;;5255:203;;5202:262;;:::o;5255:203::-;88:465:75;;5396:31:0;88:465:75;;;5286:41:0;88:465:75;;;;;;;;;;;;;;;;-1:-1:-1;;;88:465:75;;;;5286:41:0;88:465:75;;;;;;;;;;;-1:-1:-1;;;88:465:75;;;;;;;;5346:31:0;;;;;88:465:75;5396:31:0;;;;88:465:75;;;;;;;;;;-1:-1:-1;;;88:465:75;;;;;;;;;;;;5396:31:0;;;;;;:::i;5202:262::-;335:11:75;5259:6:0;;;5255:203;;5202:262;;:::o;2410:424::-;2939:104;;;2445:359;;2410:424;88:465:75;;;;2928:1:0;88:465:75;;;2928:1:0;88:465:75;2410:424:0:o;2445:359::-;-1:-1:-1;88:465:75;;;;2645:67:0;;;;88:465:75;;;1671:64:0;;;88:465:75;;;;2705:4:0;88:465:75;;;;;2645:67:0;;;;;:::i;:::-;2534:196;1671:64;88:465:75;;2534:196:0;;1671:64;2645:67;2534:196;;1671:64;;;;;;88:465:75;1671:64:0;;;;;;;:::i;:::-;;;2534:196;1671:64;2534:196;;;;;;;:::i;:::-;2499:245;;;;;;;:::i;:::-;;2445:359;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","POOL_ID()":"e0d7d0e9","TEST_SWAP_FEE()":"620a2607","failed()":"ba414fa6","getPoolLiquidityToken(uint256)":"e21485ad","setUp()":"0a9254e4","test_G3M_update_UpdatesSwapFee()":"7b5de387"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"upper\",\"type\":\"uint256\"}],\"name\":\"BisectionLib_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"lowerResult\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"upperResult\",\"type\":\"int256\"}],\"name\":\"BisectionLib_RootOutsideBounds\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POOL_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_SWAP_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolLiquidityToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_G3M_update_UpdatesSwapFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"BisectionLib_InvalidBounds(uint256,uint256)\":[{\"details\":\"Thrown when the lower bound is greater than the upper bound.\"}],\"BisectionLib_RootOutsideBounds(int256,int256)\":[{\"details\":\"Thrown when the result of the function `fx` for each input, `upper` and `lower`, is the same sign.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/unit/strategies/G3M/Update.t.sol\":\"G3MUpdateTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/lib/SignedWadMath.sol\":{\"keccak256\":\"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a\",\"dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/solvers/G3M/G3MExtendedLib.sol\":{\"keccak256\":\"0xa7e4eb7172ca81b319ccb5ac248c302fb549be3eb6badda424800f73edfbc448\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2d53a62a983c65dd0b892f30d30b603fc5cf7ebb4895dbdcb0a05a9eae1a431f\",\"dweb:/ipfs/QmNXKi6XUWswwKuzaE6SorZhRvd7Nz6dxYmLmii8bVcRhK\"]},\"src/solvers/G3M/G3MSolver.sol\":{\"keccak256\":\"0x78a3ae3db50beba513113d6a79c1d29282ccc46852563237fc3852eb1390376e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://146cfcc48b6a2fd6cd392f8508232b201add90f0f4352b141bc8d25b821884da\",\"dweb:/ipfs/QmXB3vg58RwUEEMCqgvdEGfwZjTzvE9PXDEZ8XFYsmiK1s\"]},\"src/strategies/G3M/G3M.sol\":{\"keccak256\":\"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c\",\"dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE\"]},\"src/strategies/G3M/G3MLib.sol\":{\"keccak256\":\"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70\",\"dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]},\"src/test/helpers/MockStrategy.sol\":{\"keccak256\":\"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5\",\"dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw\"]},\"src/test/helpers/SetUp.sol\":{\"keccak256\":\"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30\",\"dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14\"]},\"src/test/unit/DFMM/SetUp.sol\":{\"keccak256\":\"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4\",\"dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm\"]},\"src/test/unit/strategies/G3M/SetUp.sol\":{\"keccak256\":\"0xf3df0de5242d3ce771a7d1c56bc0e6d49c33c93bd213f173ae893ffa8cb8a2db\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://15593516464636019a55cab0dfda3c32d88ce82ece50e1f6ecab55e17305042a\",\"dweb:/ipfs/QmcySG4cNFidHEpwBcuMfWVkzGPWTPyLwgwrNodUoTZips\"]},\"src/test/unit/strategies/G3M/Update.t.sol\":{\"keccak256\":\"0x0fa97f7ac291292d04188cad460f4119273a2999e099617d30127b4604e43872\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5232da02a187e20922a0001689950fe23069ee9a54fd45ba7be53a60ecb9e84b\",\"dweb:/ipfs/QmPQPxKt62mGKdBDopzVshWKpoycApbTirQZAzZVyHHc1r\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"lower","type":"uint256"},{"internalType":"uint256","name":"upper","type":"uint256"}],"type":"error","name":"BisectionLib_InvalidBounds"},{"inputs":[{"internalType":"int256","name":"lowerResult","type":"int256"},{"internalType":"int256","name":"upperResult","type":"int256"}],"type":"error","name":"BisectionLib_RootOutsideBounds"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"POOL_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_SWAP_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolLiquidityToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_G3M_update_UpdatesSwapFee"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/unit/strategies/G3M/Update.t.sol":"G3MUpdateTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/lib/SignedWadMath.sol":{"keccak256":"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630","urls":["bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a","dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN"],"license":"MIT"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/solvers/G3M/G3MExtendedLib.sol":{"keccak256":"0xa7e4eb7172ca81b319ccb5ac248c302fb549be3eb6badda424800f73edfbc448","urls":["bzz-raw://2d53a62a983c65dd0b892f30d30b603fc5cf7ebb4895dbdcb0a05a9eae1a431f","dweb:/ipfs/QmNXKi6XUWswwKuzaE6SorZhRvd7Nz6dxYmLmii8bVcRhK"],"license":"GPL-3.0-or-later"},"src/solvers/G3M/G3MSolver.sol":{"keccak256":"0x78a3ae3db50beba513113d6a79c1d29282ccc46852563237fc3852eb1390376e","urls":["bzz-raw://146cfcc48b6a2fd6cd392f8508232b201add90f0f4352b141bc8d25b821884da","dweb:/ipfs/QmXB3vg58RwUEEMCqgvdEGfwZjTzvE9PXDEZ8XFYsmiK1s"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3M.sol":{"keccak256":"0x81119b2dd014acbccedb80565cd1ccf37a5b204a2e50af740b41c01e71880034","urls":["bzz-raw://ac4d2e16221cc5063cc9c30213b90145c3ac086ca07846e850e747b01b0acc5c","dweb:/ipfs/QmWfHSHAgM5kyma2nrcwdX3AcXGRio8TB7dVQWUeeuXmdE"],"license":"GPL-3.0-or-later"},"src/strategies/G3M/G3MLib.sol":{"keccak256":"0x1f3a64647506091bb1ac870261f18d8b7cfaedece9beba042c3119cd4a1ffca4","urls":["bzz-raw://b75cf68591287ffc079cb98a9663c23d031d91301e2c2b3bdfe48efc79ef1c70","dweb:/ipfs/QmVStc4AVRyVU7axeUxFDonEbVztM6e2te2f3S2v4uHD2m"],"license":"GPL-3.0-or-later"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"},"src/test/helpers/MockStrategy.sol":{"keccak256":"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a","urls":["bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5","dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw"],"license":"UNLICENSED"},"src/test/helpers/SetUp.sol":{"keccak256":"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb","urls":["bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30","dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14"],"license":"UNLICENSED"},"src/test/unit/DFMM/SetUp.sol":{"keccak256":"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a","urls":["bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4","dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm"],"license":"UNLICENSED"},"src/test/unit/strategies/G3M/SetUp.sol":{"keccak256":"0xf3df0de5242d3ce771a7d1c56bc0e6d49c33c93bd213f173ae893ffa8cb8a2db","urls":["bzz-raw://15593516464636019a55cab0dfda3c32d88ce82ece50e1f6ecab55e17305042a","dweb:/ipfs/QmcySG4cNFidHEpwBcuMfWVkzGPWTPyLwgwrNodUoTZips"],"license":"UNLICENSED"},"src/test/unit/strategies/G3M/Update.t.sol":{"keccak256":"0x0fa97f7ac291292d04188cad460f4119273a2999e099617d30127b4604e43872","urls":["bzz-raw://5232da02a187e20922a0001689950fe23069ee9a54fd45ba7be53a60ecb9e84b","dweb:/ipfs/QmPQPxKt62mGKdBDopzVshWKpoycApbTirQZAzZVyHHc1r"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/unit/strategies/G3M/Update.t.sol","id":47854,"exportedSymbols":{"ArbiterToken":[43381],"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"DFMM":[29062],"DFMMSetUp":[45761],"DSTest":[1786],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"G3M":[37911],"G3MLib":[38158],"G3MSetUp":[47524],"G3MSolver":[33820],"G3MUpdateTest":[47853],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"LPToken":[29516],"Lex":[44392],"LibString":[26659],"Min":[27736],"MockERC20":[25560],"MockStrategy":[44649],"ONE":[30639],"SQRT_WAD":[30630],"SafeTransferLib":[26744],"SetUp":[44852],"SignedWadMathLib":[30623],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"TWO":[30633],"Test":[8195],"TestBase":[1843],"Vm":[9352],"WETH":[26027],"ZERO":[30649],"abs":[27763],"bisection":[31118],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeInitialPoolData":[31906],"computeL":[31844],"computeLGivenX":[31662],"computeLGivenY":[31688],"computeNextLiquidity":[32899],"computeNextRx":[32006],"computeNextRy":[31956],"computeOptimalLower":[32732],"computeOptimalRaise":[32798],"computePrice":[32043],"computeScalingFactor":[30048],"computeX":[31792],"computeXGivenL":[31714],"computeY":[31766],"computeYGivenL":[31740],"console":[17416],"console2":[25512],"diffLower":[32419],"diffRaise":[32666],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"findRootLiquidity":[32083],"findRootLower":[32129],"findRootRaise":[32175],"muli":[27777],"muliWad":[27795],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"39:515:75","nodes":[{"id":47796,"nodeType":"PragmaDirective","src":"39:24:75","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":47797,"nodeType":"ImportDirective","src":"65:21:75","nodes":[],"absolutePath":"src/test/unit/strategies/G3M/SetUp.sol","file":"./SetUp.sol","nameLocation":"-1:-1:-1","scope":47854,"sourceUnit":47525,"symbolAliases":[],"unitAlias":""},{"id":47853,"nodeType":"ContractDefinition","src":"88:465:75","nodes":[{"id":47852,"nodeType":"FunctionDefinition","src":"129:422:75","nodes":[],"body":{"id":47851,"nodeType":"Block","src":"183:368:75","nodes":[],"statements":[{"assignments":[47808],"declarations":[{"constant":false,"id":47808,"mutability":"mutable","name":"params","nameLocation":"214:6:75","nodeType":"VariableDeclaration","scope":47851,"src":"193:27:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams"},"typeName":{"id":47807,"nodeType":"UserDefinedTypeName","pathNode":{"id":47806,"name":"G3M.G3MParams","nameLocations":["193:3:75","197:9:75"],"nodeType":"IdentifierPath","referencedDeclaration":37272,"src":"193:13:75"},"referencedDeclaration":37272,"src":"193:13:75","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_storage_ptr","typeString":"struct G3M.G3MParams"}},"visibility":"internal"}],"id":47813,"initialValue":{"arguments":[{"id":47811,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"246:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47809,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47328,"src":"223:6:75","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":47810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"230:15:75","memberName":"fetchPoolParams","nodeType":"MemberAccess","referencedDeclaration":32995,"src":"223:22:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_G3MParams_$37272_memory_ptr_$","typeString":"function (uint256) view external returns (struct G3M.G3MParams memory)"}},"id":47812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"223:31:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"nodeType":"VariableDeclarationStatement","src":"193:61:75"},{"expression":{"arguments":[{"expression":{"id":47815,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47808,"src":"273:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":47816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"280:7:75","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":37269,"src":"273:14:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47817,"name":"TEST_SWAP_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44731,"src":"289:13:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47814,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"264:8:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":47818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"264:39:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47819,"nodeType":"ExpressionStatement","src":"264:39:75"},{"assignments":[47821],"declarations":[{"constant":false,"id":47821,"mutability":"mutable","name":"newSwapFee","nameLocation":"322:10:75","nodeType":"VariableDeclaration","scope":47851,"src":"314:18:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47820,"name":"uint256","nodeType":"ElementaryTypeName","src":"314:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47823,"initialValue":{"hexValue":"302e303034","id":47822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"335:11:75","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_4000000000000000_by_1","typeString":"int_const 4000000000000000"},"value":"0.004"},"nodeType":"VariableDeclarationStatement","src":"314:32:75"},{"assignments":[47825],"declarations":[{"constant":false,"id":47825,"mutability":"mutable","name":"data","nameLocation":"369:4:75","nodeType":"VariableDeclaration","scope":47851,"src":"356:17:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47824,"name":"bytes","nodeType":"ElementaryTypeName","src":"356:5:75","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":47830,"initialValue":{"arguments":[{"id":47828,"name":"newSwapFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47821,"src":"400:10:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47826,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47328,"src":"376:6:75","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":47827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"383:16:75","memberName":"prepareFeeUpdate","nodeType":"MemberAccess","referencedDeclaration":32944,"src":"376:23:75","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure external returns (bytes memory)"}},"id":47829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"376:35:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"356:55:75"},{"expression":{"arguments":[{"id":47834,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"433:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47835,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47825,"src":"442:4:75","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":47831,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"421:4:75","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":47833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"426:6:75","memberName":"update","nodeType":"MemberAccess","referencedDeclaration":28395,"src":"421:11:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory) external"}},"id":47836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"421:26:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47837,"nodeType":"ExpressionStatement","src":"421:26:75"},{"expression":{"id":47843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47838,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47808,"src":"458:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":47841,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47330,"src":"490:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47839,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47328,"src":"467:6:75","typeDescriptions":{"typeIdentifier":"t_contract$_G3MSolver_$33820","typeString":"contract G3MSolver"}},"id":47840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"474:15:75","memberName":"fetchPoolParams","nodeType":"MemberAccess","referencedDeclaration":32995,"src":"467:22:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_G3MParams_$37272_memory_ptr_$","typeString":"function (uint256) view external returns (struct G3M.G3MParams memory)"}},"id":47842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"467:31:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"src":"458:40:75","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":47844,"nodeType":"ExpressionStatement","src":"458:40:75"},{"expression":{"arguments":[{"expression":{"id":47846,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47808,"src":"517:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_G3MParams_$37272_memory_ptr","typeString":"struct G3M.G3MParams memory"}},"id":47847,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"524:7:75","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":37269,"src":"517:14:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47848,"name":"newSwapFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47821,"src":"533:10:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47845,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"508:8:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":47849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"508:36:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47850,"nodeType":"ExpressionStatement","src":"508:36:75"}]},"functionSelector":"7b5de387","implemented":true,"kind":"function","modifiers":[{"id":47802,"kind":"modifierInvocation","modifierName":{"id":47801,"name":"init","nameLocations":["178:4:75"],"nodeType":"IdentifierPath","referencedDeclaration":47523,"src":"178:4:75"},"nodeType":"ModifierInvocation","src":"178:4:75"}],"name":"test_G3M_update_UpdatesSwapFee","nameLocation":"138:30:75","parameters":{"id":47800,"nodeType":"ParameterList","parameters":[],"src":"168:2:75"},"returnParameters":{"id":47803,"nodeType":"ParameterList","parameters":[],"src":"183:0:75"},"scope":47853,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":47798,"name":"G3MSetUp","nameLocations":["114:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":47524,"src":"114:8:75"},"id":47799,"nodeType":"InheritanceSpecifier","src":"114:8:75"}],"canonicalName":"G3MUpdateTest","contractDependencies":[25560,29062,33820,37911,44392],"contractKind":"contract","fullyImplemented":true,"internalFunctionIDs":{"32083":1},"linearizedBaseContracts":[47853,47524,44852,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"G3MUpdateTest","nameLocation":"97:13:75","scope":47854,"usedErrors":[30985,30992],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":75} \ No newline at end of file diff --git a/out/Update.t.sol/LogNormalUpdateTest.json b/out/Update.t.sol/LogNormalUpdateTest.json deleted file mode 100644 index 16ff4959..00000000 --- a/out/Update.t.sol/LogNormalUpdateTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"POOL_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TEST_SWAP_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPoolLiquidityToken","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_LogNormal_update_UpdatesSwapFee","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"BisectionLib_InvalidBounds","inputs":[{"name":"lower","type":"uint256","internalType":"uint256"},{"name":"upper","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"BisectionLib_RootOutsideBounds","inputs":[{"name":"lowerResult","type":"int256","internalType":"int256"},{"name":"upperResult","type":"int256","internalType":"int256"}]},{"type":"error","name":"Infinity","inputs":[]},{"type":"error","name":"Min","inputs":[]},{"type":"error","name":"NegativeInfinity","inputs":[]},{"type":"error","name":"OutOfBounds","inputs":[]}],"bytecode":{"object":"0x34620000b757600160ff196000541617600055610120604052670de0b6b3a7640000806080528060a0528060c052660aa87bee538000908160e052306101005280601a5580601b55601c55601d553060018060a01b0319601e541617601e5562000070670de0b6b3a7640000601f55565b62000082670de0b6b3a7640000602055565b620000a7620000a1601f546020546200009a62000118565b91620002ea565b620001ef565b60405161aea19081620017578239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b60a081019081106001600160401b03821117620000ee57604052565b620000bc565b601f909101601f19168101906001600160401b03821190821017620000ee57604052565b604051906200012782620000d2565b601a548252601b546020830152601c546040830152601d546060830152601e546001600160a01b03166080830152565b90600182811c9216801562000189575b60208310146200017357565b634e487b7160e01b600052602260045260246000fd5b91607f169162000167565b601f8111620001a1575050565b60009060216000526020600020906020601f850160051c83019410620001e4575b601f0160051c01915b828110620001d857505050565b818155600101620001cb565b9092508290620001c2565b80519091906001600160401b038111620000ee576200021b816200021560215462000157565b62000194565b602080601f8311600114620002625750819062000251939460009262000256575b50508160011b916000199060031b1c19161790565b602155565b0151905038806200023c565b6021600052601f198316949091907f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b570926000905b878210620002d1575050836001959610620002b7575b505050811b01602155565b015160001960f88460031b161c19169055388080620002ac565b8060018596829496860151815501950193019062000296565b825160208401908151936040860191825162000307818862000c6a565b9162000314908462000c98565b6200031f9062001151565b90670de0b6b3a764000062000335819962001151565b6200034090620008b1565b056200034c906200131f565b90620003589162000d39565b620003639062000d5b565b6200036e9162000635565b620003799062000893565b90620003859162000931565b620003909062000976565b6200039b90620009b6565b8503858111620004f257620003b1908562000c98565b9486519351925191620003c5838562000c6a565b94620003d19162000c98565b620003dc9062001151565b92620003e89062001151565b620003f390620008b1565b05620003ff906200131f565b906200040b9162000d39565b620004169062000d5b565b620004219162000a38565b6200042c9062000893565b90620004389162000931565b620004439062000976565b6200044e90620009b6565b828451906200045d9162000cc9565b90620004699162000cc9565b9183620004798183868662000652565b91620004879285856200076c565b604080516020808201949094528082019490945260608085019290925284516080808601919091529285015160a085015284015160c084015283015160e0830152909101516001600160a01b0316610100808301919091528152620004ef61012082620000f4565b90565b634e487b7160e01b600052601160045260246000fd5b919082039182116200051657565b620004f2565b9081670de0b6b3a7640000019182126001166200051657565b9081670b68df18e471fbff1901918212156001166200051657565b90816714a8454c19e1ac00019182126001166200051657565b9081670fc10e01578277ff1901918212156001166200051657565b90816703debd083b8c7c00019182126001166200051657565b9081670295d400ea3257ff1901918212156001166200051657565b9081670157d8b2ecc70800019182126001166200051657565b90816705310aa7d5213000019182126001166200051657565b9081670de0cc3d15610000019182126001166200051657565b9081672005fe4f268ea000019182126001166200051657565b9081670dc5527f642c2000019182126001166200051657565b919091600083820193841291129080158216911516176200051657565b9092828210156200072757620004ef93620006dd9284670de0b6b3a764000091826200067f838362000cf6565b106200071057506001600160ff1b039590505b835191620006ac620006a5838562000d39565b8562000cf6565b10620006e357506001600160ff1b0392620006d6925090505b604060208201519101519062000c6a565b9262000635565b62000635565b620006d692620006fc6200070392620007099462000d39565b9062000cf6565b62000a52565b91620006c5565b6200072091620007039162000cf6565b9462000692565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b929493859391926000808212156200082e575b8082126200080b575091620007f66200080592620004ef979895945b604051958694602086019260e092959491956101008501968552602085015260408401528051606084015260208101516080840152604081015160a0840152606081015160c0840152608060018060a01b0391015116910152565b03601f198101835282620000f4565b62000dbd565b9662000818915062000d19565b95620008278288868662000652565b906200077f565b8082136200084f575091620007f66200080592620004ef979895946200079b565b9490506103e980820291600191818404149015178116156200088f576103e8600019830104019015150293620008888286868662000652565b906200082e565b8580fd5b90670de0b6b3a7640000918281029281840514901517156200051657565b90671bc16d674ec80000918281029281840514901517156200051657565b60008190039190600160ff1b811460011662000516576000198305036200051657565b90633b9aca00918281029281840514901517156200051657565b818102929160008212600160ff1b821416620005165781840514901517156200051657565b81156200094e57600160ff1b811460001983141662000516570590565b634e487b7160e01b600052601260045260246000fd5b600160ff1b8114620005165760000390565b620009b2620009ac620009a66713a04bbdfdc9be886200099f671bc16d674ec800009562000893565b0562000964565b62000efb565b62000893565b0590565b60008112620009c25790565b60405162461bcd60e51b815260206004820152601060248201526f746f55696e743a206e6567617469766560801b6044820152606490fd5b9067119000ab100ffbff1982019182136001166200051657565b90671bc16d674ec80000600083820393128184128116918413901516176200051657565b818103929160001380158285131691841216176200051657565b6706f05b59d3b20000811462000c6457670de0b6b3a76400008082121562000c0a57811562000c2e5760018260011b916002938305600203620005165760008312801562000c52575b62000c4057821562000c0a57671bc16d674ec80000831462000c2e57821291821562000c1c57925b62000ace84620015a5565b801562000c0a5762000b5a62000b0a62000b0462000afe62000af862000b60959997969962001151565b62001509565b62001052565b620008f2565b62000b5462000b2362000b1d83620015d1565b62000603565b62000b4d62000b4762000b4062000b3a86620015fd565b6200061c565b8562001583565b6200051c565b9062001648565b62000a38565b62001532565b936000925b81841062000ba05750505050620004ef9162000b899160001462000b8f57620014b5565b62000964565b62000b9a9062000964565b620014b5565b909162000bff8662000bf862000bbd8562000b5486999b62000efb565b62000b4d62000be562000bdf62000bd962000b89878062001583565b6200131f565b6200155b565b62000bf1838662001583565b9062000a38565b9062000635565b950192919062000b65565b6040516307a0212760e01b8152600490fd5b62000c279062000a14565b9262000ac3565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec80000831362000a9b565b50600090565b9062000c769062001052565b633b9aca00908181029181830414901517156200051657620004ef9162000d39565b90670de0b6b3a76400009182810292818404149015178115151615620000b757600190600019830104019015150290565b818102918183041490151760011615620000b7576001670de0b6b3a7640000600019830104019015150290565b670de0b6b3a76400009081810291818304149015178215151615620000b7570490565b6103e790818102918183041490151760011615620000b7576103e8900490565b818102918183041490151760011615620000b757670de0b6b3a7640000900490565b6706f05b59d3b20000908082029182041460011615620000b757670de0b6b3a7640000900490565b670de0b6b3a764000090818102918183041490151760011615620000b757671bc16d674ec80000900490565b919082018092116200051657565b6000939291849183821162000edb5762000dd88282620016d3565b62000de48583620016d3565b600062000df282846200090c565b1362000ebc575062000e078386979662000508565b60019460009186805b62000e22575b50505050505050509050565b1562000e92575b508596979850809162000e4762000e418b8862000daf565b60011c90565b9962000e548b87620016d3565b908362000e6287846200090c565b1362000e8557505089925b8762000e7a888662000508565b920193999862000e10565b8b97509094509262000e6d565b6014108062000eb1575b1562000ea9578862000e29565b808062000e16565b506040821062000e9c565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526004810183905260248101859052604490fd5b80156200104557675698eef06670000081121562000c6457675698eef0666fffff19811315620010385760006200102562000f3683620012f0565b62000fe362000bd962000f5762000f5162000b478562000d83565b62001628565b92620006dd6200101f62001019620010116200100a6200100462000ffd62000ff762000ff062000fea8d62000fe362000fdd62000fd662000fd062000b4062000fca62000fc362000fbd62000fb662000fb08a620014dd565b62000535565b8962001583565b62000550565b8762001583565b62000569565b62000584565b8362001583565b6200059d565b9062001583565b620005b8565b8c62001583565b620005d1565b8a62001583565b620005ea565b8862001583565b938062001583565b620008cf565b620009fa565b911215620004ef57620004ef9062000a14565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b60b581600160881b81101562001100575b80690100000000000000000062010000921015620010f2575b65010000000000811015620010e4575b6301000000811015620010d6575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916200109a565b60201c9160101b916200108c565b60401c9160201b916200107c565b5068b500000000000000009050608082901c62001063565b156200112057565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b8864284906200117f6000821362001118565b711340daa0d5f769dba1915cef59f0815a55066200119d826200166b565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d019160016c0504a838426634cdd8738f543560611b0319916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b600160ff1b81146200130d576000811215620004ef571960010190565b604051634d2d75b160e01b8152600490fd5b680248ce36a70cb26b3e1981131562000c6457680755bf798b4a1bf1e581121562001481576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b3989179d835ebba824c98fb31b83b2ca45c0000000000000000000000006060916b8000000000000000000000008582851b0501831d94850290036e0587f503bb6ea29d25fcb740196450816c10fe68e7fd37d0007b713f7650810102841d936e05180bb14799ab47a8a8cb2a527d57836e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028a1d0102881d0102861d0102841d0102821d01946d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be88908082029182051460011615620000b757670de0b6b3a7640000900590565b67025f0fe105a3140090818102918183051490151760011615620000b757670de0b6b3a7640000900590565b671bc16d674ec7ffff19818102916001918305141615620000b757670de0b6b3a7640000900590565b6709d028cc6f205fff19818102916001918305141615620000b757670de0b6b3a7640000900590565b670fa8cedfc2adddfa908082029182051460011615620000b757670de0b6b3a7640000900590565b818102918183051490151760011615620000b757670de0b6b3a7640000900590565b670de0b6b3a764000090818102918183051490151760011615620000b757671bc16d674ec80000900590565b6703c1665c7aab200090818102918183051490151760011615620000b757670de0b6b3a7640000900590565b669f32752462a00090818102918183051490151760011615620000b757670de0b6b3a7640000900590565b60018115151615620000b7576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a76400009081810291818305149015178215151615620000b7570590565b6200167881151562001118565b8060018060801b031060071b81811c60018060401b031060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b8080518101039161010092838112620000b75760208301519360a0604085015192605f190112620000b757604051936200170d85620000d2565b6080810151855260a0810151602086015260c0810151604086015260e081015160608601520151936001600160a01b0385168503620000b757620004ef9460808501526200065256fe60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e4146200009a575050806358f3fd381462000094578063620a2607146200008e578063ba414fa61462000088578063e0d7d0e91462000082578063e21485ad146200007c5763fa7626d4146200007657600080fd5b620008f2565b620007ba565b6200079a565b62000771565b6200074d565b62000593565b346200056357816003193601126200056357620000b66200107b565b805161106b8082019067ffffffffffffffff92808310848411176200053f5780620000e9620015e59484868439620009d5565b039086f080156200051757601580546001600160a01b0319166001600160a01b03909216919091179055835191818301838110858211176200053f5783926200013492843962000a21565b039084f080156200051757601680546001600160a01b0319166001600160a01b039283161790556015546200017191165b6001600160a01b031690565b803b156200057e5782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af18015620005175762000567575b506016548490620001d0906001600160a01b031662000165565b91823b156200056357845190815230600482015268056bc75e2d631000006024820152918290604490829084905af18015620005175762000545575b5060155462000224906001600160a01b031662000165565b6016546200023b906001600160a01b031662000165565b908351916105979081840192848410868511176200053f57849362000288936200a8d586396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200051757601480546001600160a01b0319166001600160a01b039092169190911790558151612f2180820190828210848311176200053f578291620002de916200265084396000815260200190565b039084f080156200051757601380546001600160a01b0319166001600160a01b03929092169182179055620003139062000165565b825190611bc480830191838310858411176200053f578392620003499262008d1185396001600160a01b03909116815260200190565b039084f080156200051757601780546001600160a01b0319166001600160a01b039290921691821790556200037e9062000165565b8251916137a08084019290918311848410176200053f578392620003b5926200557185396001600160a01b03909116815260200190565b039083f09081156200051757620003ec620004589260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b60155462000403906001600160a01b031662000165565b6013546200041a906001600160a01b031662000165565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200051757620004d09385936200051d575b5060165462000489906001600160a01b031662000165565b6013549091908790620004a5906001600160a01b031662000165565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200051757620004e4578280f35b816200050892903d106200050f575b620004ff81836200097c565b81019062000a61565b5081808280f35b503d620004f3565b62000a15565b6200053790843d86116200050f57620004ff81836200097c565b508662000471565b62000917565b80620005556200055c926200092d565b8062000582565b836200020c565b5080fd5b806200055562000577926200092d565b84620001b6565b8380fd5b60009103126200058e57565b600080fd5b346200058e576000806003193601126200074a57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000563576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620005175762000733575b506017548190608090620006cf9062000615906001600160a01b031662000165565b6015546200068b9062000631906001600160a01b031662000165565b6016546200067b906200064d906001600160a01b031662000165565b916200066b6200065c6200099f565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6001600160a01b03166040830152565b6200069562000a7b565b6060820152601354620006b1906001600160a01b031662000165565b906040519485809481936305157c7f60e21b83526004830162000bee565b03925af180156200051757620006ed918391620006fa575b50601955565b620006f762000d37565b80f35b62000721915060803d6080116200072b575b6200071881836200097c565b81019062000b7f565b50505038620006e7565b503d6200070c565b806200055562000743926200092d565b38620005f3565b80fd5b346200058e5760003660031901126200058e576020604051660aa87bee5380008152f35b346200058e5760003660031901126200058e5760206200079062000fa3565b6040519015158152f35b346200058e5760003660031901126200058e576020601954604051908152f35b346200058e5760203660031901126200058e5760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa90811562000517576000916200083e575b60c08201516200083a906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e011620008e9575b816200085c60e093836200097c565b810103126200058e576200082060c06200083a92620008dc8260405192620008848462000942565b6200088f81620009c0565b84526200089f60208201620009c0565b6020850152620008b260408201620009c0565b6040850152606081015160608501526080810151608085015260a081015160a085015201620009c0565b828201529250506200080c565b3d91506200084d565b346200058e5760003660031901126200058e57602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200053f57604052565b60e0810190811067ffffffffffffffff8211176200053f57604052565b6080810190811067ffffffffffffffff8211176200053f57604052565b90601f8019910116810190811067ffffffffffffffff8211176200053f57604052565b604051906080820182811067ffffffffffffffff8211176200053f57604052565b51906001600160a01b03821682036200058e57565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b6040513d6000823e3d90fd5b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b908160209103126200058e575180151581036200058e5790565b6040519060006021549060018260011c926001811691821562000b74575b60209160208610841462000b605785885287949360208601939291811562000b3f575060011462000ad8575b50505062000ad6925003836200097c565b565b92509362000b0860216000527f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b57090565b946000935b82851062000b285750505062000ad693500138808062000ac5565b865485850152958601958895509381019362000b0d565b9250505062000ad69491925060ff19168252151560051b0138808062000ac5565b634e487b7160e01b85526022600452602485fd5b93607f169362000a99565b91908260809103126200058e578151916020810151916060604083015192015190565b60005b83811062000bb65750506000910152565b818101518382015260200162000ba5565b9060209162000be28151809281855285808601910162000ba2565b601f01601f1916010190565b60a0606062000c319360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062000bc7565b90565b908160a09103126200058e576040519060a0820182811067ffffffffffffffff8211176200053f5762000c90916080916040528051845260208101516020850152604081015160408501526060810151606085015201620009c0565b608082015290565b67ffffffffffffffff81116200053f57601f01601f191660200190565b6020818303126200058e5780519067ffffffffffffffff82116200058e570181601f820112156200058e57805162000ced8162000c98565b9262000cfd60405194856200097c565b818452602082840101116200058e5762000c31916020808501910162000ba2565b60409062000c3193928152816020820152019062000bc7565b60185462000d4e906001600160a01b031662000165565b62000d7b60195460405190816340dafd6160e11b94858252818060a0968795600483019190602083019252565b03915afa908115620005175762000da19160609160009162000f24575b50015162001415565b60185462000db8906001600160a01b031662000165565b60405163b09d04e560e01b8152660e35fa931a000060048201529290600090849060249082905afa928315620005175760009362000efa575b5060135462000e09906001600160a01b031662000165565b9260195490843b156200058e5762000e3b94600092836040518098819582946242d70760e31b84526004840162000d1e565b03925af1908115620005175762000e8993839262000ee3575b5060185462000e6c906001600160a01b031662000165565b601954916040518096819482938352600483019190602083019252565b03915afa8015620005175762000ad69260609260009262000eaf575b505001516200151a565b62000ed39250803d1062000edb575b62000eca81836200097c565b81019062000c34565b388062000ea5565b503d62000ebe565b806200055562000ef3926200092d565b3862000e54565b62000f1c9193503d806000833e62000f1381836200097c565b81019062000cb5565b913862000df1565b62000f3f9150843d861162000edb5762000eca81836200097c565b3862000d98565b90600491630667f9d760e41b815262000f69825180936020868501910162000ba2565b010190565b3d1562000f9e573d9062000f828262000c98565b9162000f9260405193846200097c565b82523d6000602084013e565b606090565b6000805460081c60ff161562000fbd575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62000fdf57505090565b81925060405182816200101d60208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b0362001032601f19918281018552846200097c565b6200105860405191826200104b60208201968762000f46565b039081018352826200097c565b51925af15062000c316200106b62000f6e565b6020808251830101910162000a61565b6040805161106b80820167ffffffffffffffff91838210838311176200053f5783620010af620015e59383858439620009d5565b0360009485f080156200051757601580546001600160a01b0319166001600160a01b03909216919091179055845191818301838110858211176200053f578392620010fc92843962000a21565b039083f080156200051757601680546001600160a01b0319166001600160a01b0392831617905560155462001132911662000165565b803b15620014115783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af180156200051757620013fa575b506016546200118f906001600160a01b031662000165565b90813b156200057e57845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af180156200051757620013e3575b50601554620011e5906001600160a01b031662000165565b601654620011fc906001600160a01b031662000165565b908451916105979081840192848410868511176200053f57849362001249936200a8d586396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200051757601480546001600160a01b0319166001600160a01b03909216919091179055825190612f21808301918211838310176200053f5782916200129f916200265084396000815260200190565b039082f09182156200051757620012d6620013459360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b601554620012ed906001600160a01b031662000165565b60135490919062001307906001600160a01b031662000165565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af1928315620005175762001390948694620013c1575b5060165462001376906001600160a01b031662000165565b601354909290620004a5906001600160a01b031662000165565b03925af180156200051757620013a4575050565b81620013be92903d106200050f57620004ff81836200097c565b50565b620013db90853d87116200050f57620004ff81836200097c565b50386200135e565b8062000555620013f3926200092d565b38620011cd565b80620005556200140a926200092d565b3862001177565b8280fd5b660aa87bee53800080820362001429575050565b6080916200150d916040907f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f5085835160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8582015261745d60f01b6060820152a1815190828252600a83830152690808115e1c1958dd195960b21b606083015260208201527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8948591a15191829182919060408352600a604084015269080808081058dd1d585b60b21b6060840152602060808401930152565b0390a162000ad66200152e565b660e35fa931a000080820362001429575050565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6200155d575b5061010061ff00196000541617600055565b6000809160405182602082018381526519985a5b195960d21b6040840152600160608401526060835262001591836200095f565b620015cd60246040518093620015bc60208301976370ca10bb60e01b89525180928585019062000ba2565b81010360048101845201826200097c565b51925af150620015dc62000f6e565b50386200154b56fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c634300081600336080346200007a57601f620037a038819003918201601f19168301916001600160401b038311848410176200007f578084926020946040528339810103126200007a57516001600160a01b038116908190036200007a57600080546001600160a01b03191691909117905560405161370a9081620000968239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630420580a146101b7578063120649c5146101b2578063134ead12146101ad5780631e978cb0146101a8578063306db46b146101a3578063332266f31461019e5780633928ff97146101995780633b268d5d146101945780633b4d10301461018f5780634e817fd91461018a5780634fd67c58146101855780635eb408fc146101805780636237569f1461017b5780636d652299146101765780637f17409c1461017157806381b5fac21461016c578063902ecaa214610167578063a8c62e7614610162578063af4e437f1461015d578063b09d04e514610158578063cb1f553214610153578063ce153bf41461014e578063e94716d514610149578063ee3e8cfb14610144578063f30d37f21461013f5763f9c282111461013a57600080fd5b610aff565b610acf565b610a9e565b610a63565b610a27565b6109e2565b6109af565b610993565b61096a565b610941565b610914565b610872565b610856565b6107e9565b6107cd565b6107a4565b610788565b610759565b61071e565b61048d565b610436565b610407565b6103e2565b610354565b61028e565b610218565b60005b8381106101cf5750506000910152565b81810151838201526020016101bf565b906020916101f8815180928185528580860191016101bc565b601f01601f1916010190565b9060206102159281815201906101df565b90565b3461026b57604036600319011261026b57610267604051600260208201526004356040820152602435606082015260608152610253816102e9565b6040519182916020835260208301906101df565b0390f35b600080fd5b608090600319011261026b5760043590602435906044359060643590565b3461026b5760206102aa6102a136610270565b92919091610b4d565b604051908152f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff8211176102e457604052565b6102b2565b6080810190811067ffffffffffffffff8211176102e457604052565b6060810190811067ffffffffffffffff8211176102e457604052565b90601f8019910116810190811067ffffffffffffffff8211176102e457604052565b6001600160a01b0381160361026b57565b3461026b5760e036600319011261026b5760a036604319011261026b576102676103bc604051610383816102c8565b60443581526064356020820152608435604082015260a435606082015260c4356103ac81610343565b608082015260243560043561139a565b60405191829182610204565b606090600319011261026b57600435906024359060443590565b3461026b5760206102aa6104016103f8366103c8565b91929092610f06565b91611583565b3461026b5760206102aa61041a366103c8565b9061042d61042784610f06565b936110d9565b92919091611670565b3461026b5760206102aa610449366103c8565b9061045661042784610f06565b9290506119da565b8015150361026b57565b90926080926102159594151583526020830152604082015281606082015201906101df565b3461026b57606036600319011261026b5761050360243561061f6004356104b38361045e565b604435926104bf610c57565b936104c8610c57565b946104d2846110d9565b60208496939592960194604096878601928352865284526104f287610f06565b998a9185519087519051918a611009565b921561069657928261054a6105519361054361053e61053661056f9861053160606105979d9c0151866125a2565b6125a2565b8651906125f8565b610c9d565b9351610cb0565b8a52610cb0565b61056385890191808352895188610c4a565b90885190519087610b4d565b9061058e6105836020890193808552610c9d565b808452825111610d31565b51905190610d24565b945b84519260c06020870151848801926105df8451976105d18851998a958693602085016040919493926060820195825260208201520152565b03601f198101845283610321565b600054610602906105f6906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610dbf565b03915afa94851561069157600095610651575b509061064691610267959651905190611583565b905194859485610468565b61026795509061067c610646939260c03d60c01161068a575b6106748183610321565b810190610d88565b505050505095509091610632565b503d61066a565b610b41565b826106df610718966106d2610704956106cb61053e6106c361070f9a61053160606106fc9b0151866125a2565b8551906125f8565b9251610cb0565b9260208d01938452610cb0565b6106f1888c019180835283518b610de3565b915190519089610df0565b808952610c9d565b808852825111610cbd565b51855190610d24565b94610599565b3461026b57604036600319011261026b57610267604051600460208201526004356040820152602435606082015260608152610253816102e9565b3461026b57602036600319011261026b5760206102aa60043561040161077e826110d9565b9291939050610f06565b3461026b5760206102aa61079e6103f8366103c8565b91611b9c565b3461026b5760206102aa6107b7366103c8565b906107c461042784610f06565b92919091611c16565b3461026b5760206102aa6107e036610270565b92919091610df0565b3461026b57604036600319011261026b5761083860043561026761081a61080f836110d9565b919050602435611f7a565b939092848461083261082b84610f06565b8383611583565b92610b4d565b92604051938493846040919493926060820195825260208201520152565b3461026b57600036600319011261026b57602060405160008152f35b3461026b57604036600319011261026b576004356108c06102676108a2610898846110d9565b9150602435611fa7565b92909383856108ba6108b384610f06565b8383611b9c565b92610df0565b91604051938493846040919493926060820195825260208201520152565b805182526020808201519083015260408082015190830152606080820151908301526080908101516001600160a01b0316910152565b3461026b57602036600319011261026b5760a0610932600435610f06565b61093f60405180926108de565bf35b3461026b5760206102aa610954366103c8565b9061096161042784610f06565b92909150611fce565b3461026b57600036600319011261026b576000546040516001600160a01b039091168152602090f35b3461026b5760206102aa6109a636610270565b92919091611009565b3461026b57602036600319011261026b576102676040516001602082015260043560408201526040815261025381610305565b3461026b57602036600319011261026b57610267600435610a0281610343565b60408051600560208201526001600160a01b0390921682820152815261025381610305565b3461026b57602036600319011261026b57610267610a466004356110d9565b604080519384526020840192909252908201529081906060820190565b3461026b57604036600319011261026b57610267604051600360208201526004356040820152602435606082015260608152610253816102e9565b3461026b57604036600319011261026b5761083860043561026761081a610ac4836110d9565b919050602435611fa7565b3461026b57604036600319011261026b576004356108c06102676108a2610af5846110d9565b9150602435611f7a565b3461026b57600036600319011261026b57602060405160788152f35b9081602091031261026b575190565b6040906102159392815281602082015201906101df565b6040513d6000823e3d90fd5b610b85610bee9493929361053184610b7e610b79610b74610b6d88610f06565b809661230a565b61237f565b6123b2565b92516125a2565b916020604051610bbc81610bae85888a8785016040919493926060820195825260208201520152565b03601f198101835282610321565b600054610bd3906105f6906001600160a01b031681565b6040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093610c15575b50610c0f90610f06565b936111f1565b610c0f919350610c3c9060203d602011610c43575b610c348183610321565b810190610b1b565b9290610c05565b503d610c2a565b9161040161021593610f06565b604051906060820182811067ffffffffffffffff8211176102e45760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610cab57565b610c87565b91908201809211610cab57565b15610cc457565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b6103e719810191908211610cab57565b91908203918211610cab57565b15610d3857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c091031261026b578151610d9f8161045e565b9160208101519160408201519160608101519160a0608083015192015190565b610215939260609260018060a01b03168252602082015281604082015201906101df565b9161079e61021593610f06565b92610b79610b74610e0d92949394610e0787610f06565b90612f44565b92670de0b6b3a7640000938403938411610cab57610e2e610e5794836125a2565b916020604051610bbc81610bae8589898785016040919493926060820195825260208201520152565b03915afa9182156106915761021595600093610e7e575b50610e7890610f06565b93611e24565b610e78919350610e9c9060203d602011610c4357610c348183610321565b9290610e6e565b91908260a091031261026b57604051610ebb816102c8565b608080829480518452602081015160208501526040810151604085015260608101516060850152015191610eee83610343565b0152565b9060a08282031261026b5761021591610ea3565b90604051610f13816102c8565b600090818152816080602092828482015282604082015282606082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610691578092610f7a575b506102159293508082518301019101610ef2565b9091503d8082863e610f8c8186610321565b840190828583031261100257845167ffffffffffffffff9586821161100557019082601f830112156110025781519586116102e45760405192610fd8601f8801601f1916860185610321565b86845284878401011161100257506102159394610ffa918480850191016101bc565b908392610f66565b80fd5b8280fd5b61105d939192602060405161103781610bae87868a8785016040919493926060820195825260208201520152565b60018060a01b03600054166040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093611084575b5061107e90610f06565b936121b4565b61107e9193506110a29060203d602011610c4357610c348183610321565b9290611074565b9081602091031261026b575161021581610343565b9081606091031261026b578051916040602083015192015190565b90600460206110f56105f66105f660005460018060a01b031690565b604051632bee84f160e21b815292839182905afa928315610691576111409360609260009161119d575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156106915760008093600093611166575b50929190565b9193505061118c915060603d606011611196575b6111848183610321565b8101906110be565b9290929138611160565b503d61117a565b6111bf915060203d6020116111c5575b6111b78183610321565b8101906110a9565b3861111f565b503d6111ad565b6111ef9360609296959361010083019783526020830152604082015201906108de565b565b929360009385929185851215611367575b8585126113485790610bae611224925b604096604051958694602086016111cc565b81859285968281116113255761123a818561337f565b92611245818661337f565b88611250828761152f565b136113045750906112649197969297610d24565b60019591829187805b61127f575b5050505050505050505090565b156112e0575b5086979850819261129f6112998b89610cb0565b60011c90565b996112aa8b8861337f565b90846112b6888461152f565b136112d457505089935b886112cb8987610d24565b9201949961126d565b8b9850909550936112c0565b601410806112fb575b156112f45788611285565b8080611272565b508083106112e9565b6040516306f1be5d60e21b8152600481018690526024810191909152604490fd5b604051633082dfdb60e11b81526004810191909152602481019290925250604490fd5b935091611354906125ce565b91611361848385846124a9565b93611202565b85851361137b5790610bae61122492611212565b935094611387906123f5565b94611394848388846124a9565b93611367565b916113ab610b79610b748385612f44565b91670de0b6b3a7640000928303928311610cab57611402826113ee6113e3610b79610b74846113dd6114209a8c6125f8565b9761230a565b6105318584516125a2565b926113fb8282868a6124a9565b84886121b4565b906040519460208601526040850152606084015260808301906108de565b6101008152610120810181811067ffffffffffffffff8211176102e45760405290565b90670de0b6b3a764000060008382039312818412811691841390151617610cab57565b90671bc16d674ec8000060008382039312818412811691841390151617610cab57565b9067119000ab100ffbff198201918213600116610cab57565b81810392916000138015828513169184121617610cab57565b90670de0b6b3a764000091828102928184051490151715610cab57565b90671bc16d674ec8000091828102928184051490151715610cab57565b90633b9aca0091828102928184051490151715610cab57565b60008190039190600160ff1b8114600116610cab57600019830503610cab57565b818102929160008212600160ff1b821416610cab578184051490151715610cab57565b811561156d57600160ff1b8114600019831416610cab570590565b634e487b7160e01b600052601260045260246000fd5b9190916115be60208301936115b885516115b06115a66040880192835190612843565b975182519061286c565b905190612414565b92612435565b92670de0b6b3a76400008085121561163c5760008513156116315760008582039512818612811691861390151617610cab5761162561162a92611620611612610b799461160d6102159961288b565b61152f565b670de0b6b3a7640000900590565b6114a2565b612917565b90516125a2565b505050505060001990565b5050505050600090565b90959492936111ef94608093610120840198845260208401526040830152606082015201906108de565b909291828651602088015160408901519060608a01519261169083612ac8565b6116999061185a565b936116a390611443565b906116ad8a612b86565b6116b68b611981565b6116bf91612c38565b6116c88b611981565b6116d184612bb5565b6116da916114a2565b6116e49088612c38565b6116ed91612cb5565b6116f690612cd3565b9361170084612fbb565b611709906114d8565b670de0b6b3a7640000900561171d90612917565b9061172791612c38565b61173090612c67565b611739906119c9565b848661174486612c09565b9061174e91612c38565b9061175891612c38565b611761916119ad565b61176a90612917565b826117758c84612c38565b9061177f91612c38565b61178891612c38565b6117918b611981565b61179a84612bb5565b6117a3916114a2565b6117ac91612cb5565b956117b691612c38565b906117c090611993565b6117c991612c38565b926117d391612c38565b6117dc90612c8e565b906117e6916114a2565b6117ef90612e24565b6117f891612c38565b61180186612b86565b61180a91612cb5565b90611814846119c9565b9061181e916119ad565b90611828916119ad565b60001361184f576102159561184a93610bae9260405196879560208701611646565b61264d565b505050505050600090565b90633b9aca0091828102928184041490151715610cab57565b9081672005fe4f268ea00001918212600116610cab57565b9081670dc5527f642c200001918212600116610cab57565b9081670de0b6b3a764000001918212600116610cab57565b9081670b68df18e471fbff190191821215600116610cab57565b90816714a8454c19e1ac0001918212600116610cab57565b9081670fc10e01578277ff190191821215600116610cab57565b90816703debd083b8c7c0001918212600116610cab57565b9081670295d400ea3257ff190191821215600116610cab57565b9081670157d8b2ecc7080001918212600116610cab57565b90816705310aa7d521300001918212600116610cab57565b9081670de0cc3d1561000001918212600116610cab57565b90816103e801918212600116610cab57565b9081670de0b6b3a763ffff190191821215600116610cab57565b91909160008382019384129112908015821691151617610cab57565b600160ff1b8114610cab5760000390565b939290919280519160208201519060408301519260600151936119fc84612ac8565b611a059061185a565b94611a0f90611443565b9182611a1a88612b86565b611a2489846119ad565b611a2d91612c38565b611a3789846119ad565b611a418385612c38565b611a4a916114a2565b611a54908b612c38565b611a5d91612cb5565b611a6690612cd3565b95611a7086612fbb565b611a79906114d8565b670de0b6b3a76400009005611a8d90612917565b90611a9791612c38565b611aa090612c67565b611aa9906119c9565b8688611ab488612c09565b90611abe91612c38565b90611ac891612c38565b611ad1916119ad565b611ada90612917565b81611ae58a86612c38565b90611aef91612c38565b611af891612c38565b91611b0389826119ad565b91611b0d91612c38565b611b16916114a2565b611b1f91612cb5565b96611b2991612c38565b90611b3390611993565b611b3c91612c38565b92611b4691612c38565b611b4f90612c8e565b90611b59916114a2565b611b6290612e24565b611b6b91612c38565b90611b7590612b86565b611b7e91612cb5565b91611b88906119c9565b90611b92916119ad565b90610215916119ad565b919091611bda6020830191611bd4611bcc84516115b0611bc26040890192835190612843565b965182519061286c565b958551612414565b90612435565b670de0b6b3a7640000918282121561163c576000821315611631576102159461162a93611c106116259361160d610b799661288b565b056119ad565b909291855160208701516040880151606089015191611c3482612ac8565b611c3d9061185a565b92611c4790611443565b93611c5186612b86565b611c5a87611981565b611c6391612c38565b611c6d8983612c38565b611c7688611981565b611c7f91612c38565b611c88906119c9565b86611c938b85612c38565b611c9c90612bde565b90611ca691612c38565b611caf916119ad565b611cb891612cb5565b611cc1906119c9565b611cca90612cd3565b92611cd483612fbb565b611cdd906114d8565b670de0b6b3a76400009005611cf190612917565b90611cfb91612c38565b611d0490612c67565b611d0d906119c9565b8385611d1885612c09565b90611d2291612c38565b90611d2c91612c38565b611d35916119ad565b611d3e90612917565b85611d49888a612c38565b90611d5391612c38565b611d5c91612c38565b90611d6687611981565b611d6f87612bb5565b611d78916114a2565b611d8191612c38565b611d8a91612cb5565b93611d958789612c38565b90611d9f90611993565b611da891612c38565b92611db291612c38565b611dbb90612c8e565b90611dc5916114a2565b611dce90612e24565b611dd791612c38565b611de083612b86565b611de991612cb5565b90611df390611993565b90611dfd916119ad565b60001361184f5761021595611e1f93610bae9260405196879560208701611646565b61276c565b929360009385929185851215611f47575b858512611f285790610bae611e5692604096604051958694602086016111cc565b818592859682811161132557611e6c81856133a0565b92611e7781866133a0565b88611e82828761152f565b13611304575090611e969197969297610d24565b60019591829187805b611eb0575050505050505050505090565b15611f0b575b50869798508192611eca6112998b89610cb0565b99611ed58b886133a0565b9084611ee1888461152f565b13611eff57505089935b88611ef68987610d24565b92019499611e9f565b8b985090955093611eeb565b60141080611f1f575b156112f45788611eb6565b50808310611f14565b935091611f34906125ce565b91611f41848383866124a9565b93611e35565b858513611f5b5790610bae611e5692611212565b935094611f67906123f5565b94611f74848383896124a9565b93611f47565b929190611f90611f8a82846125f8565b856125a2565b938103908111610cab57928103908111610cab5790565b929190611fb7611f8a82846125f8565b938101809111610cab57928101809111610cab5790565b9390929181516020830151916040840151936060015194611fee85612ac8565b611ff79061185a565b9561200190611443565b928361200c89612b86565b6120168a856119ad565b61201f91612c38565b6120298584612c38565b6120338b866119ad565b61203c91612c38565b612045906119c9565b82856120518887612c38565b9061205b91612c38565b9061206591612c38565b61206e916119ad565b61207791612cb5565b612080906119c9565b61208990612cd3565b9661209387612fbb565b61209c906114d8565b670de0b6b3a764000090056120b090612917565b906120ba91612c38565b6120c390612c67565b6120cc906119c9565b87896120d789612c09565b906120e191612c38565b906120eb91612c38565b6120f4916119ad565b6120fd90612917565b816121088b8d612c38565b9061211291612c38565b61211b91612c38565b926121268a826119ad565b9161213091612c38565b612139916114a2565b61214291612c38565b61214b91612cb5565b9661215591612c38565b9061215f90611993565b61216891612c38565b9261217291612c38565b61217b90612c8e565b90612185916114a2565b61218e90612e24565b61219791612c38565b906121a190612b86565b6121aa91612cb5565b90611b9290611993565b9293600093859291858512156122d7575b8585126122b85790610bae6121e692604096604051958694602086016111cc565b8185928596828111611325576121fc81856133c2565b9261220781866133c2565b88612212828761152f565b136113045750906122269197969297610d24565b60019591829187805b612240575050505050505050505090565b1561229b575b5086979850819261225a6112998b89610cb0565b996122658b886133c2565b9084612271888461152f565b1361228f57505089935b886122868987610d24565b9201949961222f565b8b98509095509361227b565b601410806122af575b156112f45788612246565b508083106122a4565b9350946122c4906123f5565b946122d1848784846124a9565b936121c5565b8585136122eb5790610bae6121e692611212565b9350916122f7906125ce565b91612304848484846124a9565b936122d7565b61237a6123756102159361236f61236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b9d6125f8565b612fbb565b97612fbb565b6114d8565b05612917565b612414565b612457565b906114a2565b6114bb565b611552565b6123ae6123756123a96713a04bbdfdc9be886123a3671bc16d674ec80000956114bb565b056119c9565b612e24565b0590565b600081126123bd5790565b60405162461bcd60e51b815260206004820152601060248201526f746f55696e743a206e6567617469766560801b6044820152606490fd5b6103e79081810291818304149015176001161561026b576103e8900490565b81810291818304149015176001161561026b57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517821515161561026b570490565b6706f05b59d3b2000090808202918204146001161561026b57670de0b6b3a7640000900490565b670de0b6b3a76400009081810291818304149015176001161561026b57671bc16d674ec80000900490565b90928282101561255d57610215936125269284670de0b6b3a764000091826124d18383612435565b1061254a57506001600160ff1b039590505b8351916124f96124f38385612414565b85612435565b1061252b57506001600160ff1b0392612520925090505b6040602082015191015190612843565b926119ad565b6119ad565b61252092611bd461253f9261254494612414565b61288b565b91612510565b6125579161253f91612435565b946124e3565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b81810291818304149015176001161561026b576001670de0b6b3a7640000600019830104019015150290565b6103e99081810291818304149015176001161561026b5760016103e8600019830104019015150290565b90670de0b6b3a7640000918281029281840414901517811515161561026b57600190600019830104019015150290565b6101008183031261026b57805192610215602083015193606060408501519401610ea3565b91906103e89260009360009183821161274b57612669816133e2565b6126738583613521565b600061267f828461152f565b1361272c5750612690859695610d14565b60019460009186805b6126aa575b50505050505050509050565b15612707575b50859697985080916126c56112998b88610cb0565b996126d08b87613521565b90836126dc878461152f565b136126fb57505089925b876126f18886610d24565b9201939998612699565b8b9750909450926126e6565b861080612721575b1561271a57886126b0565b808061269e565b50610100821061270f565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e89260009360009183821161274b5761278881613543565b61279285836136b3565b600061279e828461152f565b1361272c57506127af859695610d14565b60019460009186805b6127c85750505050505050509050565b15612825575b50859697985080916127e36112998b88610cb0565b996127ee8b876136b3565b90836127fa878461152f565b1361281957505089925b8761280f8886610d24565b92019399986127b8565b8b975090945092612804565b861080612838575b1561271a57886127ce565b50610100821061282d565b9061284d90612ac8565b633b9aca0090818102918183041490151715610cab5761021591612414565b61021591612365670de0b6b3a764000061235f61235a61236a95612fbb565b6706f05b59d3b20000811461291157670de0b6b3a764000090818112156128ff5780156128ed578060011b908105600203610cab576128c990612cd3565b906713a04bbdfdc9be8891808302928305146001161561026b5761021591056119c9565b6040516322ed598560e21b8152600490fd5b6040516307a0212760e01b8152600490fd5b50600090565b680248ce36a70cb26b3e1981131561291157680755bf798b4a1bf1e5811215612a67576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b91906101208382031261026b57825192602081015192610215604083015193608060608501519401610ea3565b60b581600160881b811015612b6f575b80690100000000000000000062010000921015612b62575b65010000000000811015612b55575b6301000000811015612b48575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b91612b0c565b60201c9160101b91612aff565b60401c9160201b91612af0565b5068b500000000000000009050608082901c612ad8565b671bc16d674ec8000081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e881810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e88082029160016000198210179181840514901517161561026b57670de0b6b3a7640000900590565b6713a04bbde78cc40081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b90911317161561026b57670de0b6b3a7640000900590565b670de0b6b3a764000090818102918205146001161561026b57671bc16d674ec80000900590565b670de0b6b3a764000090818102918205146001161561026b576713a04bbde78cc400900590565b670de0b6b3a76400009081810291820514821515161561026b570590565b600081128015612e13575b612e015780156128ff57671bc16d674ec8000081146128ed57670de0b6b3a76400008112908115612df257905b612d1482613189565b80156128ff57612d7d612d41612d3c612d37612d32612d8295612fbb565b61324a565b612ac8565b6114f5565b611620612d55612d50836131b4565b611873565b612d77612d72612d6c612d67866131df565b61188b565b856132c1565b6118a3565b90613228565b613272565b916000905b60028210612da257505015612d995790565b610215906119c9565b9092612dea81612de4612dba85611620600196612e24565b612d77612dda612dd5611625612dd087806132c1565b6119c9565b61329a565b61236f83866132c1565b906119ad565b930190612d87565b612dfb90611466565b90612d0b565b604051632d0483c560e21b8152600490fd5b50671bc16d674ec800008113612cde565b8015612f3757675698eef06670000081121561291157675698eef0666fffff19811315612f2a576000612f1a612e598361315c565b612ee2611625612e73612e6e612d728561247e565b613209565b92612526612f15612f10612f09612f03612efe612ef8612ef3612eed612ee88d612ee2612edd612ed7612ed2612d6c612ecd612ec7612ec2612ebc612eb78a6132e2565b6118bb565b896132c1565b6118d5565b876132c1565b6118ed565b611907565b836132c1565b61191f565b906132c1565b611939565b8c6132c1565b611951565b8a6132c1565b611969565b886132c1565b93806132c1565b61150e565b611489565b9112156102155761021590611466565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b61237a61237561021593612de461236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b15612f8a57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b886428490612fe760008213612f83565b711340daa0d5f769dba1915cef59f0815a55066130038261330d565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b600160ff1b8114613177576000811215610215571960010190565b604051634d2d75b160e01b8152600490fd5b670de0b6b3a76400009081810291818305149015176001161561026b57671bc16d674ec80000900590565b6703c1665c7aab20009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b669f32752462a0009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b6001811515161561026b576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029181830514901517821515161561026b570590565b671bc16d674ec7ffff1981810291600191830514161561026b57670de0b6b3a7640000900590565b6709d028cc6f205fff1981810291600191830514161561026b57670de0b6b3a7640000900590565b670fa8cedfc2adddfa90808202918205146001161561026b57670de0b6b3a7640000900590565b81810291818305149015176001161561026b57670de0b6b3a7640000900590565b67025f0fe105a314009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b613318811515612f83565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b906133966102159260208082518301019101612628565b93919290506124a9565b906133b76102159260208082518301019101612628565b9390509190916124a9565b906133d96102159260208082518301019101612628565b939290506124a9565b8051810160200190602001906133f791612a9b565b809193925051906020810151604082015191606001519261341783612ac8565b6134209061185a565b9361342a90611443565b9061343486612b86565b61343d87611981565b61344691612c38565b61344f87611981565b61345884612bb5565b613461916114a2565b61346b9089612c38565b61347491612cb5565b61347d90612cd3565b9361348784612fbb565b613490906114d8565b670de0b6b3a764000090056134a490612917565b906134ae91612c38565b6134b790612c67565b6134c0906119c9565b84866134cb86612c09565b906134d591612c38565b906134df91612c38565b6134e8916119ad565b6134f190612917565b826134fc8884612c38565b9061350691612c38565b61350f91612c38565b61351887611981565b611b0d84612bb5565b906135386102159260208082518301019101612a9b565b9493909291506119da565b80518101602001906020019061355891612a9b565b809192935051602082015190604083015192606001519361357884612ac8565b6135819061185a565b9461358b90611443565b9161359587612b86565b61359e88611981565b6135a791612c38565b6135b18383612c38565b6135ba89611981565b6135c391612c38565b6135cc906119c9565b846135d78585612c38565b6135e090612bde565b906135ea91612c38565b6135f3916119ad565b6135fc91612cb5565b613605906119c9565b61360e90612cd3565b9461361885612fbb565b613621906114d8565b670de0b6b3a7640000900561363590612917565b9061363f91612c38565b61364890612c67565b613651906119c9565b858761365c87612c09565b9061366691612c38565b9061367091612c38565b613679916119ad565b61368290612917565b8361368d898b612c38565b9061369791612c38565b6136a091612c38565b906136aa88611981565b61213085612bb5565b906136ca6102159260208082518301019101612a9b565b9493909250611fce56fea2646970667358221220f3e875cd9c43c4535da38090630f644037f96036f7dad55519e2d7d792047e4b64736f6c6343000816003360803461007457601f611bc438819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051611b3490816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b6109e4565b6109bb565b610814565b6107da565b610674565b6103dc565b6102e1565b61023d565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101df565b838082518301019101610a17565b9061010d6100ff600435610b92565b868082518301019101610a32565b92610d8d565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761015057604052565b61011e565b60c0810190811067ffffffffffffffff82111761015057604052565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101bd601f8201601f191660200184610171565b8294818452818301116101da578281602093846000960137010152565b600080fd5b9080601f830112156101da578160206101fa93359101610193565b90565b919082519283825260005b848110610229575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610208565b346101da5760003660031901126101da57604051604081019080821067ffffffffffffffff8311176101505761029a916040526009815268131bd9d39bdc9b585b60ba1b60208201526040519182916020835260208301906101fd565b0390f35b906040516080810181811067ffffffffffffffff821117610150576040526060600382948054845260018101546020850152600281015460408501520154910152565b346101da5760203660031901126101da5760043560005260016020526101c0604060002061030e8161029e565b9061031b6004820161029e565b906103bd61032b6008830161029e565b610393600c84015493600d60018060a01b03910154169461036d6040518098606080918051845260208101516020850152604081015160408501520151910152565b80516080880152602081015160a0880152604081015160c08801526060015160e0870152565b80516101008601526020810151610120860152604081015161014086015260600151610160850152565b6101808301526101a0820152f35b6001600160a01b038116036101da57565b346101da576060806003193601126101da576103f96004356103cb565b6024356044359167ffffffffffffffff83116101da576104206104829336906004016101df565b8161043c61042d85610b92565b60208082518301019101610a32565b60005490949061046290610456906001600160a01b031681565b6001600160a01b031690565b60405180809881946333854efd60e21b8352600483019190602083019252565b03915afa801561061457600091829583926105d9575b50806020806104ac93518301019101610a17565b939194909682861160001461054c5750916104ed826104e8836104e36104fe976104d96104f5988c610aa3565b908c0151906112af565b6112af565b6112db565b505b83610afe565b93828685610d8d565b9384601319129283610541575b61029a9394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b60148612935061050b565b90929091508187111561057b57610575826104e8836104e36104fe976104d96104f5988e610aa3565b506104ef565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9095506104ac92506106019150833d851161060d575b6105f98183610171565b810190610a17565b95919290959190610498565b503d6105ef565b610a81565b9060606003198301126101da57600435610632816103cb565b916024359160443567ffffffffffffffff928382116101da57806023830112156101da5781600401359384116101da57602484830101116101da576024019190565b346101da5761068236610619565b600054929350916001600160a01b031633036107c85761078661077e61042d610779956106c0608095610743976106b7610b67565b50810190610e8c565b6020819b949a9399929b01516106e0866000526001602052604060002090565b55604081015160046106fc876000526001602052604060002090565b015580516008610716876000526001602052604060002090565b01556060810151600c610733876000526001602052604060002090565b015501516001600160a01b031690565b600d610759846000526001602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610b92565b848385610d8d565b92836013191291826107bd575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b601485129250610793565b604051636853cba760e01b8152600490fd5b346101da5760606107ea36610619565b818094509492940103126101da5780359061078661077e61042d6040602085013594013595610b92565b346101da5761082236610619565b6000549093906001600160a01b0390811633036107c857610863610456600d610855876000526001602052604060002090565b01546001600160a01b031690565b9116036109a95761087683820182610b32565b61087f81610b47565b600181036108b857506108a261089d6108b392600c94953691610193565b610fc3565b926000526001602052604060002090565b01555b005b6108c181610b47565b600381036108fd5750906108e56108e06108f8936108b6953691610193565b610f19565b9290916000526001602052604060002090565b610f41565b61090681610b47565b6004810361094057509060046109276108e061093a946108b6963691610193565b9390926000526001602052604060002090565b01610f41565b61094981610b47565b6002810361096a57509060086109276108e061093a946108b6963691610193565b80610976600592610b47565b03610997576107596108a2610992600d936108b6963691610193565b610ef1565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101da5760003660031901126101da576000546040516001600160a01b039091168152602090f35b346101da5760203660031901126101da5761029a610a03600435610b92565b6040519182916020835260208301906101fd565b908160609103126101da578051916040602083015192015190565b908160a09103126101da57608060405191610a4c83610134565b805183526020810151602084015260408101516040840152606081015160608401520151610a79816103cb565b608082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610ab057565b610a8d565b91908201809211610ab057565b90671bc16d674ec8000060008382039312818412811691841390151617610ab057565b9067119000ab100ffbff198201918213600116610ab057565b81810392916000138015828513169184121617610ab057565b600160ff1b8114610ab05760000390565b600611156101da57565b908160209103126101da57356101fa81610b28565b60061115610b5157565b634e487b7160e01b600052602160045260246000fd5b60405190610b7482610134565b60006080838281528260208201528260408201528260608201520152565b610b9a610b67565b816000526001602052610bb8610bb3604060002061029e565b610ff8565b9160208201928352806000526001602052610bdc610bb3600860406000200161029e565b8252600c610c1d610c05610bb36004610bff866000526001602052604060002090565b0161029e565b92604085019384526000526001602052604060002090565b015490606083019182526040519383516020860152516040850152516060840152516080830152608060018060a01b039101511660a082015260a081526101fa81610155565b9081672005fe4f268ea00001918212600116610ab057565b9081670dc5527f642c200001918212600116610ab057565b9081670de0b6b3a764000001918212600116610ab057565b9081670b68df18e471fbff190191821215600116610ab057565b90816714a8454c19e1ac0001918212600116610ab057565b9081670fc10e01578277ff190191821215600116610ab057565b90816703debd083b8c7c0001918212600116610ab057565b9081670295d400ea3257ff190191821215600116610ab057565b9081670157d8b2ecc7080001918212600116610ab057565b90816705310aa7d521300001918212600116610ab057565b9081670de0cc3d1561000001918212600116610ab057565b91909160008382019384129112908015821691151617610ab057565b909282821015610e47576101fa93610e0a9284670de0b6b3a76400009182610db5838361130b565b10610e3457506001600160ff1b039590505b835191610ddd610dd7838561132d565b8561130b565b10610e0f57506001600160ff1b0392610e04925090505b6040602082015191015190611286565b92610d71565b610d71565b610e0492610e23610e2992610e2e9461132d565b9061130b565b6110b3565b91610df4565b610e4191610e299161130b565b94610dc7565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b80910361010081126101da5781359260208301359260a0604082013593605f1901126101da5760e060405191610ec183610134565b606081013583526080810135602084015260a0810135604084015260c081013560608401520135610a79816103cb565b6040818051810103126101da5780610f0e60206040930151610b28565b0151610456816103cb565b6060818051810103126101da57610f336020820151610b28565b606060408201519101519091565b919042821115610fb157610f57610bb38461029e565b9081845542600385015542830391838311610ab057610f7591610afe565b428314610f9b57600160ff1b8114600019831416610ab057600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101da5780610fe060206040930151610b28565b015190565b81810292918115918404141715610ab057565b606081015160208201518082146110735780421160001461106b57905b8103908111610ab05760408201908151600081136000146110485750611042906101fa9351925190610fe5565b90610ab5565b9261105f9250611059905193610b17565b90610fe5565b8103908111610ab05790565b504290611015565b50505190565b90633b9aca0091828102928184051490151715610ab057565b60008190039190600160ff1b8114600116610ab057600019830503610ab057565b6706f05b59d3b20000811461128057670de0b6b3a76400008082121561122a57811561124b5760018260011b916002938305600203610ab05760008312801561126f575b61125d57821561122a57671bc16d674ec80000831461124b57821291821561123c57925b611124846118db565b801561122a5761119661115561115061114b61114661119b959997969961146f565b61199c565b611379565b611079565b61119161116961116483611906565b610c63565b61118b61118661118061117b86611931565b610c7b565b85611a13565b610c93565b9061197a565b610afe565b6119c4565b936000925b8184106111d257505050506101fa916111bf916000146111c4576118b4565b610b17565b6111cd90610b17565b6118b4565b90916112208661121a6111ea8561119186999b611610565b61118b61120a6112056112006111bf8780611a13565b611730565b6119ec565b6112148386611a13565b90610afe565b90610d71565b95019291906111a0565b6040516307a0212760e01b8152600490fd5b61124590610ac2565b9261111b565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec8000083136110f7565b50600090565b9061129090611379565b633b9aca0090818102918183041490151715610ab0576101fa9161132d565b8181029181830414901517600116156101da576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101da57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101da570490565b8181029181830414901517600116156101da57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517600116156101da57671bc16d674ec80000900490565b60b581600160881b811015611420575b80690100000000000000000062010000921015611413575b65010000000000811015611406575b63010000008110156113f9575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916113bd565b60201c9160101b916113b0565b60401c9160201b916113a1565b5068b500000000000000009050608082901c611389565b1561143e57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642849061149b60008213611437565b711340daa0d5f769dba1915cef59f0815a55066114b782611a5f565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b801561172357675698eef06670000081121561128057675698eef0666fffff1981131561171657600061170661164583611ad1565b6116ce61120061165f61165a6111868561134e565b61195b565b92610e0a6117016116fc6116f56116ef6116ea6116e46116df6116d96116d48d6116ce6116c96116c36116be6111806116b96116b36116ae6116a86116a38a611a34565b610cab565b89611a13565b610cc5565b87611a13565b610cdd565b610cf7565b83611a13565b610d0f565b90611a13565b610d29565b8c611a13565b610d41565b8a611a13565b610d59565b88611a13565b9380611a13565b611092565b610ae5565b9112156101fa576101fa90610ac2565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b680248ce36a70cb26b3e1981131561128057680755bf798b4a1bf1e5811215611880576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be889080820291820514600116156101da57670de0b6b3a7640000900590565b670de0b6b3a7640000908181029181830514901517600116156101da57671bc16d674ec80000900590565b6703c1665c7aab2000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b669f32752462a000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b600181151516156101da576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a764000090818102918183051490151782151516156101da570590565b671bc16d674ec7ffff198181029160019183051416156101da57670de0b6b3a7640000900590565b6709d028cc6f205fff198181029160019183051416156101da57670de0b6b3a7640000900590565b670fa8cedfc2adddfa9080820291820514600116156101da57670de0b6b3a7640000900590565b8181029181830514901517600116156101da57670de0b6b3a7640000900590565b67025f0fe105a31400908181029181830514901517600116156101da57670de0b6b3a7640000900590565b611a6a811515611437565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b600160ff1b8114611aec5760008112156101fa571960010190565b604051634d2d75b160e01b8152600490fdfea2646970667358221220b596d744fe988e0f66eb3212b01d8a9e660acea43730ff108a9b5edd5f05d2b364736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a26469706673582212202df74938d9f952b732cfcd8d2995c02962a8bf4c276848720e72bcf5e9379f1364736f6c63430008160033","sourceMap":"88:507:81:-:0;;;1594:4:0;88:507:81;;1594:4:0;88:507:81;;;1594:4:0;88:507:81;378:11:59;88:507:81;378:11:59;:4:31;:11:59;88:507:81;378:11:59;;362:159:79;378:11:59;;362:159:79;378:11:59;;;;362:159:79;378:11:59;509:4:79;362:159;378:11:59;;362:159:79;378:11:59;;;;;;;;509:4:79;378:11:59;;;;;;;;;;;;554:3:79;378:4:31;554:3:79;378:11:59;;554:3:79;586;378:4:31;362:159:79;378:11:59;;586:3:79;378:11:59;634:68:79;554:3;378:11:59;362:159:79;378:11:59;;;:::i;:::-;634:68:79;;:::i;:::-;378:11:59;:::i;:::-;88:507:81;;;;;;;;;;;;;378:11:59;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;;;:::o;:::-;;:::i;:::-;;;;;-1:-1:-1;;378:11:59;;;;-1:-1:-1;;;;;378:11:59;;;;;;;;;;:::o;:::-;88:507:81;;378:11:59;;;;:::i;:::-;362:159:79;378:11:59;;;;;;;;;;;88:507:81;378:11:59;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;378:11:59;634:68:79;-1:-1:-1;378:11:59;;-1:-1:-1;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;378:11:59;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;;;;;;634:68:79;378:11:59;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:68:79;378:11:59;:::o;:::-;;;;-1:-1:-1;378:11:59;;;;;634:68:79;378:11:59;;-1:-1:-1;;378:11:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:68:79;378:11:59;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5320:526:37;378:11:59;;2443:12:37;;;378:11:59;;;2457:10:37;;;;378:11:59;;;2497:31:37;;;;:::i;:::-;1133:19:18;;;;;:::i;:::-;303:29:45;;;:::i;:::-;378:4:31;;1399:8:18;;;;:::i;:::-;:12;;;:::i;:::-;88:507:81;1391:36:18;;;:::i;:::-;631:21;;;;:::i;:::-;;;;:::i;:::-;2657:36:37;;;:::i;:::-;2656:45;;;:::i;:::-;:68;;;;:::i;:::-;1009:16;;;:::i;:::-;1053:24;;;:::i;:::-;88:507:81;;;;;;;1133:19:18;;;;:::i;:::-;378:11:59;;;;;;;3255:31:37;;;;;:::i;:::-;1133:19:18;;;;:::i;:::-;303:29:45;;;:::i;:::-;1399:8:18;;;;:::i;:::-;:12;;;:::i;:::-;88:507:81;1391:36:18;;;:::i;:::-;631:21;;;;:::i;:::-;;;;:::i;:::-;3415:36:37;;;:::i;:::-;3414:45;;;:::i;:::-;:68;;;;:::i;:::-;1444:16;;;:::i;:::-;1488:24;;;:::i;:::-;378:11:59;;;799:19:18;;;;:::i;:::-;;;;;:::i;:::-;5620:111:37;;;;;;;;:::i;:::-;5741:55;;;;;;:::i;:::-;2457:10;88:507:81;;2443:12:37;5809:34;;;88:507:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;88:507:81;;;;;;;;5809:34:37;;;88:507:81;;5809:34:37;:::i;:::-;5320:526;:::o;88:507:81:-;378:11:59;;;88:507:81;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;1905:7:21;88:507:81;;;;;;;;:::o;:::-;;2650:19:21;;;88:507:81;;;;;;;;;:::o;:::-;;;2590:20:21;88:507:81;;;;;;;;:::o;:::-;;2529:21:21;;;88:507:81;;;;;;;;;:::o;:::-;;;2463:18:21;88:507:81;;;;;;;;:::o;:::-;;2396:19:21;;;88:507:81;;;;;;;;;:::o;:::-;;;2331:17:21;88:507:81;;;;;;;;:::o;:::-;;;2265:18:21;88:507:81;;;;;;;;:::o;:::-;;;2205:20:21;88:507:81;;;;;;;;:::o;:::-;;;2852:20:21;88:507:81;;;;;;;;:::o;:::-;;;2980:18:21;88:507:81;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;2719:1063:44:-;;;2907:6;;;88:507:81;;;3754:21:44;2955:12;3754:13;2955:12;378:4:31;;965:21:18;;;;;;:::i;:::-;3003:42:44;378:4:31;;-1:-1:-1;;;;;;3076:12:44;2999:197;-1:-1:-1;2999:197:44;378:11:59;;631:21:18;965;631;;;;:::i;:::-;965;;:::i;:::-;3222:117:44;378:4:31;;-1:-1:-1;;;;;;3076:12:44;3690:45;;-1:-1:-1;3205:453:44;-1:-1:-1;3205:453:44;3724:10;3710:12;;;378:11:59;3724:10:44;;378:11:59;3690:45:44;;:::i;:::-;3754:13;;:::i;:::-;:21;:::i;3205:453::-;3690:45;631:21:18;;965;631;3431:216:44;631:21:18;;:::i;:::-;965;;:::i;:::-;3431:216:44;:::i;:::-;3205:453;;;2999:197;3128:57;965:21:18;;;;:::i;3128:57:44:-;2999:197;;;88:507:81;;;-1:-1:-1;;;88:507:81;;;;;;;;;;;;;;;;;;;;5848:1096:37;6037:29;;5848:1096;6037:29;;5848:1096;;6173:1;6153:21;;;6173:1;;;6193:21;;;;;;6149:612;;6789:45;;6149:612;6770:171;6149:612;;;;;88:507:81;;6789:45:37;;;;;;88:507:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;;;;;88:507:81;;;378:11:59;88:507:81;;;;6789:45:37;;378:11:59;;6789:45:37;;;;;;:::i;:::-;6770:171;:::i;6186:274::-;6238:27;;;;;:::i;:::-;6299:150;;;;;;;:::i;:::-;6186:274;;;6149:612;6489:21;;;;;6149:612;;6789:45;;6149:612;6770:171;6149:612;;;;;;6482:273;6549:4;;;;8417:611:18;;;;;;;;;;;;;;;;;;6555:4:37;378:11:59;;8417:611:18;;;;;;;;6594:150:37;;;;;;;:::i;:::-;6482:273;;;8417:611:18;;;;88:507:81;;378:4:31;88:507:81;;;;;;;;;;;;;;;:::o;:::-;;317:4:31;88:507:81;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;88:507:81;;378:11:59;88:507:81;;;-1:-1:-1;;88:507:81;;;;;:::o;:::-;;1774:3:21;88:507:81;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;;88:507:81;;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;88:507:81;;-1:-1:-1;;88:507:81;;;;;;;:::o;:::-;378:11:59;;;88:507:81;;;;;;;;2046:20:21;-1:-1:-1;;;2046:20:21;;;;;;;:::o;7612:209::-;7796:11;7768:13;7737:6;2046:20;7694:7;1949;7612:209;7694:7;:::i;:::-;88:507:81;7737:6:21;:::i;:::-;7768:13;:::i;:::-;7796:11;:::i;:::-;88:507:81;7612:209:21;:::o;7135:175:44:-;7240:1;7235:6;;88:507:81;;7135:175:44;:::o;88:507:81:-;;;-1:-1:-1;;;88:507:81;;;;;;;;;;;;-1:-1:-1;;;88:507:81;;;;;;;;;;;;;;;;;;;;:::o;:::-;;317:4:31;88:507:81;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;88:507:81;;;;;;;;;;;;;:::o;9402:337:21:-;1324:9;9472:21;;9468:43;;1905:7;9525:8;;;;9521:31;;9566:6;;9562:37;;88:507:81;;;;9629:1:21;;88:507:81;;;9629:1:21;88:507:81;;;-1:-1:-1;5990:5:21;;:20;;;;9402:337;5986:46;;6046:6;;6042:29;;6090:7;6085:12;;6081:43;;6178:7;;;6177:23;;;;;;1053:19:23;;;:::i;:::-;6257:13:21;;6253:36;;6632:35;6363:55;6370:33;958:19:23;6311:16:21;958:19:23;6311:16:21;;;;;;:::i;:::-;958:19:23;:::i;:::-;6370:33:21;:::i;:::-;6363:55;:::i;:::-;1053:19:23;6481:29:21;958:19:23;;;:::i;:::-;6481:29:21;:::i;:::-;6547:49;958:19:23;6565:29:21;958:19:23;;;:::i;:::-;6565:29:21;:::i;:::-;958:19:23;;:::i;:::-;6547:49:21;:::i;:::-;1053:19:23;;:::i;:::-;6632:35:21;:::i;:::-;958:19:23;:::i;:::-;6689:9:21;-1:-1:-1;6708:336:21;6715:5;;;;;;7058:16;;;;9728:4;7058:16;958:19:23;7058:16:21;;;;;958:19:23;:::i;:::-;9728:4:21;:::i;7058:16::-;7072:2;;;:::i;:::-;958:19:23;:::i;6708:336:21:-;6749:7;;6951:23;6749:7;1053:19:23;6749:12:21;:7;;;;;;:::i;:12::-;6891:42;958:19:23;6848:14:21;6790:16;958:19:23;;;;:::i;6790:16:21:-;6848:14;:::i;:::-;958:19:23;:::i;:::-;;;;;:::i;:::-;6891:42:21;;:::i;1053:19:23:-;6951:23:21;;:::i;:::-;88:507:81;;;6708:336:21;;;;6253:36;88:507:81;;-1:-1:-1;;;6279:10:21;;;;;6177:23;6193:7;;;:::i;:::-;6177:23;;;6081:43;88:507:81;;-1:-1:-1;;;6106:18:21;;;;;5986:46;88:507:81;;-1:-1:-1;;;6019:13:21;;;;;5990:20;5999:11;6003:7;5999:11;;5990:20;;9468:43;9495:16;9509:1;9495:16;:::o;337:213:45:-;;464:27;337:213;464:27;:::i;:::-;494:7;88:507:81;;;;;;;;;;;;;;;631:21:18;;;:::i;8282:752::-;;378:4:31;8417:611:18;;;;;;;;;;;;;;;;;;;;378:11:59;;;8417:611:18;;;;;;;;8282:752;:::o;:::-;8417:611;;;;;;;;;;;;;;;;;378:4:31;:11:59;;8417:611:18;;;;;;;;8282:752;:::o;7741:535::-;378:4:31;7878:392:18;;;;;;;;;;;;;;;;;;;;7741:535;:::o;:::-;6255:3:37;7878:392:18;;;;;;;;;;;;;;;;;6260:4:37;7878:392:18;;7741:535;:::o;:::-;7878:392;;;;;;;;;;;;;;;;378:4:31;7878:392:18;;7741:535;:::o;:::-;1324:9:21;7878:392:18;;;;;;;;;;;;;378:4:31;7878:392:18;;7741:535;:::o;:::-;1905:7:21;7878:392:18;;;;;;;;;;;;;;;;;317:4:31;7878:392:18;;7741:535;:::o;88:507:81:-;;;;;;;;;;:::o;1009:1952:33:-;378:11:59;;1009:1952:33;;378:11:59;;1239:13:33;;;1235:66;;1632:15;;;;:::i;:::-;1674;;;;:::i;:::-;378:11:59;1699:25:33;;;;:::i;:::-;:29;1695:115;;1884:13;;;;;;;:::i;:::-;6918:17:37;;378:11:59;;6918:17:37;;;;;1978:981:33;1009:1952;;;;;;;;;;:::o;1978:981::-;;;;;2909:48;;;;;;;2123:13;2122:19;2123:13;;;;:::i;:::-;88:507:81;;;;2122:19:33;2168:14;;;;;:::i;:::-;2355:20;;;;;;:::i;:::-;:25;378:11:59;;2396:12:33;;;2351:373;;2797:13;;;;;:::i;:::-;88:507:81;;1978:981:33;;;;;2351:373;2526:12;;-1:-1:-1;2526:12:33;;-1:-1:-1;2526:12:33;2351:373;;1978:981;653:2:31;-1:-1:-1;2909:48:33;;;1978:981;2909:48;;;1978:981;;;2909:48;;;;;;2931:26;88:507:81;2931:26:33;;2909:48;;1695:115;88:507:81;;-1:-1:-1;;;1747:56:33;;;;;88:507:81;;;;;;;;;;1747:56:33;1235:66;88:507:81;;-1:-1:-1;;;1261:40:33;;;;;88:507:81;;;;;;;;;;;1747:56:33;4268:1017:21;4348:10;;4344:26;;1500:10;4384:26;;;4380:40;;-1:-1:-1;;4434:26:21;;;4430:42;;-1:-1:-1;958:19:23;4495:11:21;;;:::i;:::-;5188:10;5094:60;1053:19:23;4548:38:21;965:21:18;;;:::i;4548:38:21:-;1053:19:23;:::i;:::-;958;5095:51:21;:42;958:19:23;;4962:98:21;958:19:23;4984:74:21;958:19:23;5006:50:21;958:19:23;;5028:26:21;958:19:23;4762:100:21;958:19:23;4784:76:21;958:19:23;4806:52:21;958:19:23;4828:28:21;958:19:23;;;:::i;:::-;4828:28:21;:::i;:::-;958:19:23;;:::i;:::-;4806:52:21;:::i;:::-;958:19:23;;:::i;:::-;4784:76:21;:::i;958:19:23:-;4762:100:21;:::i;:::-;958:19:23;;:::i;:::-;5028:26:21;:::i;:::-;958:19:23;;:::i;:::-;5006:50:21;:::i;:::-;958:19:23;;:::i;:::-;4984:74:21;:::i;:::-;958:19:23;;:::i;:::-;4962:98:21;:::i;:::-;958:19:23;;:::i;:::-;;;;:::i;:::-;5095:42:21;:::i;:::-;:51;:::i;958:19:23:-;5253:25:21;5254:9;-1:-1:-1;;;5267:7:21;;;:::i;4430:42::-;4462:10;1949:7;4462:10;:::o;4344:26::-;4360:10;1905:7;4360:10;:::o;11969:3353:18:-;12038:3278;;-1:-1:-1;;;12038:3278:18;;;;;11969:3353;12038:3278;;;;;;;;11969:3353;12038:3278;;;;;;11969:3353;12038:3278;;;;;;11969:3353;12038:3278;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11969:3353;:::o;12038:3278::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12038:3278:18;;-1:-1:-1;12038:3278:18;;;;;;88:507:81;;;;:::o;:::-;;;-1:-1:-1;;;88:507:81;;;;;;;;;;;;-1:-1:-1;;;88:507:81;;;;;;;4596:2947:18;7380:72;4596:2947;4688:27;4700:1;4696:5;;4688:27;:::i;:::-;7125:43;5125:16;;;:::i;:::-;5145:2;88:507:81;;;5175:3:18;88:507:81;;378:11:59;5175:3:18;378:11:59;88:507:81;;;;7232:71:18;88:507:81;;6411:30:18;88:507:81;6343:32:18;88:507:81;6274:33:18;88:507:81;6205:33:18;88:507:81;6136:33:18;88:507:81;6068:32:18;88:507:81;6001:31:18;88:507:81;;;;;;;;;;;;;;;;;;;;;;;;;;;378:11:59;88:507:81;;;;;;;;;;;;;;;;5533:32:18;88:507:81;5465:32:18;88:507:81;5398:31:18;88:507:81;;;;;;;;;;;;;;;;;;;;;;;;6455:304:18;88:507:81;;;;;4596:2947:18;:::o;71:276:23:-;-1:-1:-1;;;138:25:23;;134:43;;195:1;187:9;;195:1;;;208:61;;;;71:276::o;134:43::-;88:507:81;;-1:-1:-1;;;172:5:23;;;;;1487:3103:18;-1:-1:-1;;1713:26:18;;;1709:40;;1948:21;1943:26;;;1939:54;;2266:5;378:11:59;88:507:81;378:11:59;88:507:81;4502:49:18;2559:29;88:507:81;3136:40:18;88:507:81;378:11:59;2591:5:18;378:11:59;;;;88:507:81;;;;;;;;;3074:35:18;88:507:81;2874:31:18;88:507:81;;;;;;3649:35:18;88:507:81;;;;3508:34:18;88:507:81;;;;3371:32:18;88:507:81;;;;;;;;;;;;;;;;;;;;;;;;;;2941:32:18;88:507:81;;;;;;;;;;;;;;;3699:327:18;88:507:81;;4564:3:18;88:507:81;378:11:59;1487:3103:18;:::o;1939:54::-;88:507:81;;-1:-1:-1;;;1971:22:18;;88:507:81;1971:22:18;;;88:507:81;;;;;;-1:-1:-1;;;88:507:81;;;;;;1747:56:33;405:480:23;2046:20:21;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;2717:18:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;-1:-1:-1;;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;-1:-1:-1;;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;3113:20:21;503:380:23;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;503:380;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;1905:7:21;503:380:23;;;;;;;;;;;;;;;;;6090:7:21;503:380:23;;405:480;:::o;:::-;2913:18:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;3047:17:21;503:380:23;;;;;;;;;;;;;;;;;1905:7:21;503:380:23;;405:480;:::o;:::-;503:380;;;;;;;;;;405:480;:::o;:::-;1905:7:21;503:380:23;;;;;;;;;;;;;;;;;;;;405:480;:::o;15328:575:18:-;15397:27;15405:5;;;15397:27;:::i;:::-;15435:462;378:11:59;15435:462:18;;;;;;;;;;378:11:59;;;;;15435:462:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15328:575;:::o;88:507:81:-;378:11:59;;;5076:71:37;;88:507:81;;;;;;;;;5076:71:37;;;88:507:81;;;;;;;;;;;;;;;;378:11:59;;;;:::i;:::-;88:507:81;;;;;;;;;;5076:71:37;88:507:81;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;378:11:59;;88:507:81;;;;5168:70:37;88:507:81;;;;;5168:70:37;:::i","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260043610156200001457600080fd5b6000803560e01c9182630a9254e4146200009a575050806358f3fd381462000094578063620a2607146200008e578063ba414fa61462000088578063e0d7d0e91462000082578063e21485ad146200007c5763fa7626d4146200007657600080fd5b620008f2565b620007ba565b6200079a565b62000771565b6200074d565b62000593565b346200056357816003193601126200056357620000b66200107b565b805161106b8082019067ffffffffffffffff92808310848411176200053f5780620000e9620015e59484868439620009d5565b039086f080156200051757601580546001600160a01b0319166001600160a01b03909216919091179055835191818301838110858211176200053f5783926200013492843962000a21565b039084f080156200051757601680546001600160a01b0319166001600160a01b039283161790556015546200017191165b6001600160a01b031690565b803b156200057e5782516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529185908290604490829084905af18015620005175762000567575b506016548490620001d0906001600160a01b031662000165565b91823b156200056357845190815230600482015268056bc75e2d631000006024820152918290604490829084905af18015620005175762000545575b5060155462000224906001600160a01b031662000165565b6016546200023b906001600160a01b031662000165565b908351916105979081840192848410868511176200053f57849362000288936200a8d586396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039084f080156200051757601480546001600160a01b0319166001600160a01b039092169190911790558151612f2180820190828210848311176200053f578291620002de916200265084396000815260200190565b039084f080156200051757601380546001600160a01b0319166001600160a01b03929092169182179055620003139062000165565b825190611bc480830191838310858411176200053f578392620003499262008d1185396001600160a01b03909116815260200190565b039084f080156200051757601780546001600160a01b0319166001600160a01b039290921691821790556200037e9062000165565b8251916137a08084019290918311848410176200053f578392620003b5926200557185396001600160a01b03909116815260200190565b039083f09081156200051757620003ec620004589260018060a01b03166bffffffffffffffffffffffff60a01b6018541617601855565b60155462000403906001600160a01b031662000165565b6013546200041a906001600160a01b031662000165565b825163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020949093919285918591908290899082906044820190565b03925af19182156200051757620004d09385936200051d575b5060165462000489906001600160a01b031662000165565b6013549091908790620004a5906001600160a01b031662000165565b93519182526001600160a01b0390931660048201526000196024820152938492839182906044820190565b03925af180156200051757620004e4578280f35b816200050892903d106200050f575b620004ff81836200097c565b81019062000a61565b5081808280f35b503d620004f3565b62000a15565b6200053790843d86116200050f57620004ff81836200097c565b508662000471565b62000917565b80620005556200055c926200092d565b8062000582565b836200020c565b5080fd5b806200055562000577926200092d565b84620001b6565b8380fd5b60009103126200058e57565b600080fd5b346200058e576000806003193601126200074a57737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000563576040516372eb5f8160e11b8152600060048201529082908290602490829084905af18015620005175762000733575b506017548190608090620006cf9062000615906001600160a01b031662000165565b6015546200068b9062000631906001600160a01b031662000165565b6016546200067b906200064d906001600160a01b031662000165565b916200066b6200065c6200099f565b6001600160a01b039096168652565b6001600160a01b03166020850152565b6001600160a01b03166040830152565b6200069562000a7b565b6060820152601354620006b1906001600160a01b031662000165565b906040519485809481936305157c7f60e21b83526004830162000bee565b03925af180156200051757620006ed918391620006fa575b50601955565b620006f762000d37565b80f35b62000721915060803d6080116200072b575b6200071881836200097c565b81019062000b7f565b50505038620006e7565b503d6200070c565b806200055562000743926200092d565b38620005f3565b80fd5b346200058e5760003660031901126200058e576020604051660aa87bee5380008152f35b346200058e5760003660031901126200058e5760206200079062000fa3565b6040519015158152f35b346200058e5760003660031901126200058e576020601954604051908152f35b346200058e5760203660031901126200058e5760135460405163068bcd8d60e01b815260048035908201529060e090829060249082906001600160a01b03165afa90811562000517576000916200083e575b60c08201516200083a906001600160a01b03165b6040516001600160a01b0390911681529081906020820190565b0390f35b905060e0813d60e011620008e9575b816200085c60e093836200097c565b810103126200058e576200082060c06200083a92620008dc8260405192620008848462000942565b6200088f81620009c0565b84526200089f60208201620009c0565b6020850152620008b260408201620009c0565b6040850152606081015160608501526080810151608085015260a081015160a085015201620009c0565b828201529250506200080c565b3d91506200084d565b346200058e5760003660031901126200058e57602060ff600054166040519015158152f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116200053f57604052565b60e0810190811067ffffffffffffffff8211176200053f57604052565b6080810190811067ffffffffffffffff8211176200053f57604052565b90601f8019910116810190811067ffffffffffffffff8211176200053f57604052565b604051906080820182811067ffffffffffffffff8211176200053f57604052565b51906001600160a01b03821682036200058e57565b906060825260066060830152650e8ded6cadcb60d31b608083015260a06020830152600160a0830152600b60fb1b60c08301526012604060e08401930152565b6040513d6000823e3d90fd5b90606082526006606083015265746f6b656e5960d01b608083015260a06020830152600160a0830152605960f81b60c08301526012604060e08401930152565b908160209103126200058e575180151581036200058e5790565b6040519060006021549060018260011c926001811691821562000b74575b60209160208610841462000b605785885287949360208601939291811562000b3f575060011462000ad8575b50505062000ad6925003836200097c565b565b92509362000b0860216000527f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b57090565b946000935b82851062000b285750505062000ad693500138808062000ac5565b865485850152958601958895509381019362000b0d565b9250505062000ad69491925060ff19168252151560051b0138808062000ac5565b634e487b7160e01b85526022600452602485fd5b93607f169362000a99565b91908260809103126200058e578151916020810151916060604083015192015190565b60005b83811062000bb65750506000910152565b818101518382015260200162000ba5565b9060209162000be28151809281855285808601910162000ba2565b601f01601f1916010190565b60a0606062000c319360208452600180841b0380825116602086015280602083015116604086015260408201511682850152015191608080820152019062000bc7565b90565b908160a09103126200058e576040519060a0820182811067ffffffffffffffff8211176200053f5762000c90916080916040528051845260208101516020850152604081015160408501526060810151606085015201620009c0565b608082015290565b67ffffffffffffffff81116200053f57601f01601f191660200190565b6020818303126200058e5780519067ffffffffffffffff82116200058e570181601f820112156200058e57805162000ced8162000c98565b9262000cfd60405194856200097c565b818452602082840101116200058e5762000c31916020808501910162000ba2565b60409062000c3193928152816020820152019062000bc7565b60185462000d4e906001600160a01b031662000165565b62000d7b60195460405190816340dafd6160e11b94858252818060a0968795600483019190602083019252565b03915afa908115620005175762000da19160609160009162000f24575b50015162001415565b60185462000db8906001600160a01b031662000165565b60405163b09d04e560e01b8152660e35fa931a000060048201529290600090849060249082905afa928315620005175760009362000efa575b5060135462000e09906001600160a01b031662000165565b9260195490843b156200058e5762000e3b94600092836040518098819582946242d70760e31b84526004840162000d1e565b03925af1908115620005175762000e8993839262000ee3575b5060185462000e6c906001600160a01b031662000165565b601954916040518096819482938352600483019190602083019252565b03915afa8015620005175762000ad69260609260009262000eaf575b505001516200151a565b62000ed39250803d1062000edb575b62000eca81836200097c565b81019062000c34565b388062000ea5565b503d62000ebe565b806200055562000ef3926200092d565b3862000e54565b62000f1c9193503d806000833e62000f1381836200097c565b81019062000cb5565b913862000df1565b62000f3f9150843d861162000edb5762000eca81836200097c565b3862000d98565b90600491630667f9d760e41b815262000f69825180936020868501910162000ba2565b010190565b3d1562000f9e573d9062000f828262000c98565b9162000f9260405193846200097c565b82523d6000602084013e565b606090565b6000805460081c60ff161562000fbd575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62000fdf57505090565b81925060405182816200101d60208201906040820191737109709ecfa91a80626ff3989d68f67f5b1dd12d815260206519985a5b195960d21b910152565b0362001032601f19918281018552846200097c565b6200105860405191826200104b60208201968762000f46565b039081018352826200097c565b51925af15062000c316200106b62000f6e565b6020808251830101910162000a61565b6040805161106b80820167ffffffffffffffff91838210838311176200053f5783620010af620015e59383858439620009d5565b0360009485f080156200051757601580546001600160a01b0319166001600160a01b03909216919091179055845191818301838110858211176200053f578392620010fc92843962000a21565b039083f080156200051757601680546001600160a01b0319166001600160a01b0392831617905560155462001132911662000165565b803b15620014115783516340c10f1960e01b80825230600483015268056bc75e2d6310000060248301529184908290604490829084905af180156200051757620013fa575b506016546200118f906001600160a01b031662000165565b90813b156200057e57845190815230600482015268056bc75e2d6310000060248201529083908290604490829084905af180156200051757620013e3575b50601554620011e5906001600160a01b031662000165565b601654620011fc906001600160a01b031662000165565b908451916105979081840192848410868511176200053f57849362001249936200a8d586396001600160a01b03918216815291166020820152670de0b6b3a7640000604082015260600190565b039083f080156200051757601480546001600160a01b0319166001600160a01b03909216919091179055825190612f21808301918211838310176200053f5782916200129f916200265084396000815260200190565b039082f09182156200051757620012d6620013459360018060a01b03166bffffffffffffffffffffffff60a01b6013541617601355565b601554620012ed906001600160a01b031662000165565b60135490919062001307906001600160a01b031662000165565b815163095ea7b360e01b8082526001600160a01b03909216600482015260001960248201526020959094919386918691908290859082906044820190565b03925af1928315620005175762001390948694620013c1575b5060165462001376906001600160a01b031662000165565b601354909290620004a5906001600160a01b031662000165565b03925af180156200051757620013a4575050565b81620013be92903d106200050f57620004ff81836200097c565b50565b620013db90853d87116200050f57620004ff81836200097c565b50386200135e565b8062000555620013f3926200092d565b38620011cd565b80620005556200140a926200092d565b3862001177565b8280fd5b660aa87bee53800080820362001429575050565b6080916200150d916040907f41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f5085835160208152602260208201527f4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e8582015261745d60f01b6060820152a1815190828252600a83830152690808115e1c1958dd195960b21b606083015260208201527fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8948591a15191829182919060408352600a604084015269080808081058dd1d585b60b21b6060840152602060808401930152565b0390a162000ad66200152e565b660e35fa931a000080820362001429575050565b737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6200155d575b5061010061ff00196000541617600055565b6000809160405182602082018381526519985a5b195960d21b6040840152600160608401526060835262001591836200095f565b620015cd60246040518093620015bc60208301976370ca10bb60e01b89525180928585019062000ba2565b81010360048101845201826200097c565b51925af150620015dc62000f6e565b50386200154b56fe60e0604090808252346200043c576200106b803803809162000022828562000441565b833981016060828203126200043c5781516001600160401b0393908481116200043c57826200005391850162000465565b92602092838201518681116200043c5783916200007291840162000465565b91015160ff811681036200043c578451948686116200042657600095806200009b8854620004db565b92601f93848111620003d5575b5087908483116001146200036d57899262000361575b50508160011b916000199060031b1c19161786555b8251908782116200034d578190600194620000ef8654620004db565b828111620002f8575b50879183116001146200029457889262000288575b5050600019600383901b1c191690831b1782555b6080524660a052815184549181866200013a85620004db565b92838352878301958882821691826000146200026857505060011462000228575b506200016a9250038262000441565b519020928151928301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c08301948386109086111762000214575083905251902060c052610b52908162000519823960805181610631015260a0518161095a015260c051816109810152f35b634e487b7160e01b81526041600452602490fd5b8791508880528189209089915b8583106200024f5750506200016a9350820101386200015b565b8054838801850152869450899390920191810162000235565b60ff191688526200016a95151560051b85010192503891506200015b9050565b0151905038806200010d565b8589528789208694509190601f1984168a5b8a828210620002e15750508411620002c7575b505050811b01825562000121565b015160001960f88460031b161c19169055388080620002b9565b8385015186558997909501949384019301620002a6565b909192508589528789208380860160051c8201928a871062000343575b91869589929594930160051c01915b82811062000334575050620000f8565b8b815586955088910162000324565b9250819262000315565b634e487b7160e01b87526041600452602487fd5b015190503880620000be565b898052888a209250601f1984168a5b8a828210620003be575050908460019594939210620003a4575b505050811b018655620000d3565b015160001960f88460031b161c1916905538808062000396565b60018596829396860151815501950193016200037c565b9091508880528789208480850160051c8201928a86106200041c575b9085949392910160051c01905b8181106200040d5750620000a8565b8a8155849350600101620003fe565b92508192620003f1565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200042657604052565b919080601f840112156200043c5782516001600160401b038111620004265760209060405192620004a083601f19601f850116018562000441565b8184528282870101116200043c5760005b818110620004c757508260009394955001015290565b8581018301518482018401528201620004b1565b90600182811c921680156200050d575b6020831014620004f757565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004eb56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde03146107a357508063095ea7b31461073557806318160ddd1461071657806323b872dd14610655578063313ce567146106175780633644e515146105f357806340c10f191461057857806370a08231146105405780637ecebe001461050857806395d89b4114610422578381639dc29fac146103c057508063a9059cbb1461034e578063d505accf1461010a5763dd62ed3e146100bf57600080fd5b3461010657816003193601126101065760209282916100dc610901565b6100e461091c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b5091903461034a5760e036600319011261034a57610126610901565b9061012f61091c565b91604435606435926084359260ff84168094036103465742851061030357610155610955565b9560018060a01b038092169586895260209560058752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff94848210868311176102ef578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102dc57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102d25786511696871515806102c9575b156102975786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610254565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461034a578060031936011261034a5760209161036b610901565b826024359133845260038652818420610385848254610932565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610afd833981519152908590a35160018152f35b80843461041f578060031936011261041f57600080516020610afd83398151915260206103eb610901565b6024359060018060a01b0316938486526003835280862061040d838254610932565b9055816002540360025551908152a380f35b50fd5b82843461050557806003193601126105055781519080600180549061044682610846565b80865292602092600181169081156104d85750600114610480575b61047c868861047282890383610880565b51918291826108b8565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106104c5575050505081016020016104728261047c86610461565b80548686018401529382019381016104a8565b905061047c9795508693506020925061047294915060ff191682840152151560051b820101929486610461565b80fd5b50503461034a57602036600319011261034a5760209181906001600160a01b03610530610901565b1681526005845220549051908152f35b50503461034a57602036600319011261034a5760209181906001600160a01b03610568610901565b1681526003845220549051908152f35b5034610106578160031936011261010657610591610901565b60243591600254908382018092116105e057506002556001600160a01b0316808452600360209081528385208054840190559251918252918391600080516020610afd8339815191529190a380f35b634e487b7160e01b865260119052602485fd5b50503461034a578160031936011261034a57602090610610610955565b9051908152f35b50503461034a578160031936011261034a576020905160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50913461050557606036600319011261050557610670610901565b600080516020610afd83398151915261068761091c565b6001600160a01b03928316808552602087815286862033875281528686205490979194889360443593899385600182016106f3575b505050868852600385528288206106d4858254610932565b9055169586815260038452208181540190558551908152a35160018152f35b6106fc91610932565b90888a528652838920338a528652838920553880856106bc565b50503461034a578160031936011261034a576020906002549051908152f35b5034610106578160031936011261010657602092610751610901565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b839085346105055780600319360112610505578054816107c282610846565b808552916020916001918281169081156104d857506001146107ef5761047c868861047282890383610880565b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610833575050505081016020016104728261047c86610461565b8054868601840152938201938101610816565b90600182811c92168015610876575b602083101461086057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610855565b90601f8019910116810190811067ffffffffffffffff8211176108a257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106108ed57505060409293506000838284010152601f8019910116010190565b8181018601518482016040015285016108cb565b600435906001600160a01b038216820361091757565b600080fd5b602435906001600160a01b038216820361091757565b9190820391821161093f57565b634e487b7160e01b600052601160045260246000fd5b6000467f0000000000000000000000000000000000000000000000000000000000000000036109a357507f000000000000000000000000000000000000000000000000000000000000000090565b604051815482916109b382610846565b808252816020948582019460019087600182169182600014610ade575050600114610a85575b506109e692500382610880565b51902091604051918201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845260408301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a083015260a0825260c082019082821067ffffffffffffffff831117610a71575060405251902090565b634e487b7160e01b81526041600452602490fd5b87805286915087907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610ac65750506109e69350820101386109d9565b80548388018501528694508893909201918101610aaf565b60ff191688526109e695151560051b85010192503891506109d9905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a4cc1df665177715f6c217e4fbdb571eeec05dd4be27444f46ac886653c443a664736f6c6343000816003360c0346200016d57601f62002f2138819003918201601f19168301926001600160401b0392909183851183861017620001575781602092849260409788528339810103126200016d57516001600160a01b03919082811681036200016d576001805560a052825191610f0d928381019381851084861117620001575762002014823980600094039084f080156200014d571680608052803b15620001495790828092608486518096819363266c45bb60e11b8352896004840152816044840152606060248401528160648401525af180156200013f5762000118575b8351611ea1908162000173823960805181818161037c0152610c92015260a0518181816109d60152818161123f0152818161151b01526116ab0152f35b82116200012b57508152388080620000db565b634e487b7160e01b81526041600452602490fd5b84513d84823e3d90fd5b8280fd5b84513d85823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60806040526004361015610023575b361561001957600080fd5b61002161123d565b005b60003560e01c80630216b838146100e3578063068bcd8d146100de5780631455f1fc146100d95780632ec38188146100d45780633be6a341146100cf5780633fc8cef3146100ca5780639d942f9a146100c5578063ac4afa38146100c0578063affed0e0146100bb578063b462cd25146100b6578063bd0625ab146100b15763ce153bf40361000e57610e05565b610cc1565b610c7c565b610c5e565b610bd1565b610a05565b6109c0565b610885565b610678565b610293565b6101e4565b61013a565b6040600319820112610135576004359160243567ffffffffffffffff9283821161013557806023830112156101355781600401359384116101355760248483010111610135576024019190565b600080fd5b3461013557610148366100e8565b9190600154926002600094146101d2578391600260015561016884610b83565b50546001600160a01b031690813b156101ce578361019e956040519687958694859363acad298960e01b85523360048601610eec565b03925af180156101c9576101ba575b506101b760018055565b80f35b6101c390610e79565b386101ad565b610f27565b8380fd5b6040516303cb96db60e21b8152600490fd5b346101355760203660031901126101355760405161020181610e92565b60c06000918281528260208201528260408201528260608201528260808201528260a0820152015260e061023f610239600435610b83565b50610f42565b6040519060c060018060a01b0391828151168452826020820151166020850152826040820151166040850152606081015160608501526080810151608085015260a081015160a085015201511660c0820152f35b600319602036820112610135576004803567ffffffffffffffff81116101355760808183019382360301126101355760026001541461066857600260015560248101906102df82610fd3565b604482016102fb6102ef82610fd3565b6001600160a01b031690565b6001600160a01b03928316146106575761031a6102ef6102ef88610fd3565b9160009660a061032f60648a54970183610fe0565b956040978b8b6103548b519a8b96879586946373cb2d0360e01b865233908601610eec565b03925af19182156101c9578897898a998b978c96610615575b50156105df57506103a06102ef7f00000000000000000000000000000000000000000000000000000000000000006112ae565b916103c56103ad85610fd3565b6103b68b610fd3565b6103bf89610fd3565b91611417565b9216918a833b156105dc57885163266c45bb60e11b815291829081906103ee9080878401611096565b038183875af180156101c9576105c9575b50610409846110d1565b823b156105b25787516340c10f1960e01b808252338483019081526020810193909352918c9082908190604001038183885af180156101c9576105b6575b50823b156105b257998091610476999a9b89519a8b92839283528201906103e860206040840193600081520152565b038183865af19283156101c95761054461056a966105498d61054461053e8f976105959f8f998f9961054e9b6104c66105659f61050f93610538966104c092610599575b50610fd3565b93610fd3565b906104fe6104d38c610fd3565b926104ee6104df610f33565b6001600160a01b039097168752565b6001600160a01b03166020860152565b6001600160a01b0390911690830152565b60608101869052608081018a905260a081018e90526001600160a01b038c1660c0820152611102565b546110e6565b9e610fd3565b611511565b610fd3565b61055881896115bb565b6105606111c0565b61163e565b6110d1565b9161057460018055565b51948594859094939260609260808301968352602083015260408201520152565b0390f35b806105a66105ac92610e79565b806109b5565b386104ba565b8a80fd5b806105a66105c392610e79565b38610447565b806105a66105d692610e79565b386103ff565b80fd5b610611888c936105ee84611281565b91516377606d2960e11b8152949093129284019283526020830152829160400190565b0390fd5b939a505050925061063f91945060a03d60a011610650575b6106378183610eca565b810190611020565b91999096919491939092903861036d565b503d61062d565b6040516333910aef60e11b81528590fd5b506040516303cb96db60e21b8152fd5b610681366100e8565b91906002600154146101d2576106d89260a09160026001556106b96102ef6102ef6106ab87610b83565b50546001600160a01b031690565b90604051809681948293638a04bdd560e01b8452883360048601610eec565b03915afa9081156101c957600090818280958195610847575b501561081157509081610714600361070b61059595610b83565b500154836110f5565b9361072c600461072384610b83565b500154876110f5565b9561073b600561070b85610b83565b936107468585611c48565b600361075185610b83565b500155600461075f84610b83565b500155600561076d83610b83565b5001556107a98560016107958761078386610b83565b50838060a01b03938491015416611511565b60026107a085610b83565b50015416611511565b604080519182526020820185905281018590526060810182905233907f9597577f339320775e63d3fed7d5dde6365badcc9fccdb66b34894630ca98b6f9080608081015b0390a260018055604051938493846040919493926060820195825260208201520152565b80610611610820600093611281565b6040516377606d2960e11b8152939092126004840152602483019190915281906044820190565b935050509250610866915060a03d60a011610650576106378183610eca565b9491909290929493386106f1565b6001600160a01b0381160361013557565b34610135576040366003190112610135576004356108a281610874565b602435906108c96102ef6102ef60066108ba86610b83565b5001546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0392909216600483015260208083602481855afa9182156101c957600493600093610994575b508190604051948580926318160ddd60e01b82525afa80156101c9576105959461094e946109489360009361095e575b5050610940600591610b83565b500154611dcc565b90611dee565b6040519081529081906020820190565b6005929350610940918161098692903d1061098d575b61097e8183610eca565b8101906111f9565b9291610933565b503d610974565b829193506109ae90823d841161098d5761097e8183610eca565b9290610903565b600091031261013557565b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610a13366100e8565b91906002600154146101d257610a3d9260a09160026001556106b96102ef6102ef6106ab87610b83565b03915afa9081156101c957600090818280958195610b56575b501561081157509081610a79826003610a7161059596610b83565b5001546110f5565b93610a89866004610a7185610b83565b95610a99826005610a7186610b83565b93610aa48585611d14565b6003610aaf85610b83565b5001556004610abd84610b83565b5001556005610acb83610b83565b500155610b0e85610adb83610b83565b50600101546001600160a01b0390610af8908890339084166116a1565b610b0184610b83565b50600201543391166116a1565b604080519182526020820185905281018590526060810182905233907facbe127e93a8a0b278d8e06e27205b3df9d1f3812414bc8917c774a83710316e9080608081016107ed565b935050509250610b75915060a03d60a011610650576106378183610eca565b949190929092949338610a56565b906000918254811015610bbd57600790838052027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563019190565b634e487b7160e01b83526032600452602483fd5b346101355760203660031901126101355760043560005481101561013557610bf890610b83565b50805460018201546002830154600384015460048501546005860154600690960154604080516001600160a01b0397881681529587166020870152938616938501939093526060840191909152608083015260a0820193909352911660c082015260e090f35b34610135576000366003190112610135576020600054604051908152f35b34610135576000366003190112610135576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461013557610ccf366100e8565b91906002600154146101d257610d189260c0916002600155610cf96102ef6102ef6106ab87610b83565b90604051809681948293630d17a7c760e31b8452883360048601610eec565b03915afa9182156101c957600080938180938192610dc8575b5015610db9578394506005610d48610d5195610b83565b500155836117c7565b9492509290507f4c7def84e42b2bc0a5aab222868dd7a092b53377a4b537abcd94345a7a8527ed60405180610d9c878733968460409194939260608201951515825260208201520152565b0390a3610da860018055565b604080519182526020820192909252f35b60008561061161082082611281565b9350505050610df091925060c03d60c011610dfe575b610de88183610eca565b810190611208565b939594909391925038610d31565b503d610dde565b34610135576020366003190112610135576004356003610e2482610b83565b5001546105956005610e436004610e3a86610b83565b50015494610b83565b500154604051938493846040919493926060820195825260208201520152565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8d57604052565b610e63565b60e0810190811067ffffffffffffffff821117610e8d57604052565b6040810190811067ffffffffffffffff821117610e8d57604052565b90601f8019910116810190811067ffffffffffffffff821117610e8d57604052565b9284926080959260018060a01b03168552602085015260606040850152816060850152848401376000828201840152601f01601f1916010190565b6040513d6000823e3d90fd5b60405190610f4082610e92565b565b90610f40604051610f5281610e92565b60c0610fc56006839660018060a01b038082541686526001820154166020860152610f99610f89600283015460018060a01b031690565b6001600160a01b03166040870152565b6003810154606086015260048101546080860152600581015460a086015201546001600160a01b031690565b6001600160a01b0316910152565b35610fdd81610874565b90565b903590601e1981360301821215610135570180359067ffffffffffffffff82116101355760200191813603831361013557565b5190811515820361013557565b908160a09103126101355761103481611013565b916020820151916040810151916080606083015192015190565b60005b8381106110615750506000910152565b8181015183820152602001611051565b9060209161108a8151809281855285808601910161104e565b601f01601f1916010190565b90916110ad610fdd93604084526040840190611071565b916020818403910152611071565b634e487b7160e01b600052601160045260246000fd5b6103e7198101919082116110e157565b6110bb565b6000198101919082116110e157565b919082039182116110e157565b60005468010000000000000000811015610e8d578060016111269201600055610b83565b6111aa57815181546001600160a01b039182166001600160a01b0319918216178355602084015160018401805491841691831691909117905560408401516002840180548316918416919091179055606084015160038401556080840151600484015560a0840151600584015560c090930151600690920180549093169116179055565b634e487b7160e01b600052600060045260246000fd5b604051906111cd82610eae565b601982527f6c697175696469747920746f6b656e20616464726573733a20000000000000006020830152565b90816020910312610135575190565b91908260c09103126101355761121d82611013565b9160208101519160408201519160608101519160a0608083015192015190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361126f57565b6040516301f180c960e01b8152600490fd5b600160ff1b811461129c576000811215610fdd571960010190565b604051634d2d75b160e01b8152600490fd5b6e5af43d82803e903d91602b57fd5bf390763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c161760005260781b17602052603760096000f0906001600160a01b0382161561130457565b6040516330be1a3d60e21b8152600490fd5b60208183031261013557805167ffffffffffffffff9182821161013557019082601f83011215610135578151908111610e8d5760405192611361601f8301601f191660200185610eca565b8184526020828401011161013557610fdd916020808501910161104e565b610f409294936028926040519687936444464d4d2d60d81b60208601526113b081518092602060258901910161104e565b840191602d60f81b928360258201526113d382518093602060268501910161104e565b018260268201526113ee82518093602060278501910161104e565b01906027820152611408825180936020878501910161104e565b01036008810185520183610eca565b6040516306fdde0360e01b81526001600160a01b0393909260009290919083908590600490829089165afa9384156101c95783946114f5575b50604051908382600481896395d89b4160e01b97888352165afa9283156101c957849283946114d6575b5060049060405197889384928352165afa9182156101c957610fdd9481936114ae575b506114a89054611a61565b9261137f565b6114a89193506114cf903d8086833e6114c78183610eca565b810190611316565b929061149d565b60049194506114ee903d8086833e6114c78183610eca565b939061147a565b61150a9194503d8085833e6114c78183610eca565b9238611450565b47821161159257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561013557600090600460405180948193630d0e30db60e41b83525af180156101c95761157f575b504761157557565b610f404733611bfd565b806105a661158c92610e79565b3861156d565b6115a8610f40926115a283611ae9565b90611e0f565b90309033906001600160a01b0316611b7c565b906115c861023983610b83565b60018060a01b039182825116918360208201511693806040830151169560608301519160a060808501519401519460405196875216602086015260408501526060840152608083015260a08201527f460b3f468ae9cc90b3d7770815de570a1877e219d99c9cdd0a66b40410ff818e60c03392a4565b60009190829161168e604051809261166f602083019563319af33360e01b8752604060248501526064840190611071565b6001600160a01b0391909116604483015203601f198101835282610eca565b51906a636f6e736f6c652e6c6f675afa50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169392919081169081850361172f575050823b1561013557604051632e1a7d4d60e01b815260048101839052926000908490602490829084905af19283156101c957610f409361171c575b50611bfd565b806105a661172992610e79565b38611716565b6020929450926117426117489294611ae9565b90611dcc565b604460405194600080958194829363a9059cbb60e01b84526004526024525af13d15601f3d1160018451141617169060605281604052156117865750565b62461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b919082018092116110e157565b92919060036117d585610b83565b500154926117e285610b83565b506004908101549385841191908215611a215785811015611a11578161184761180f60016108ba8c610b83565b996118328461182c61182560026108ba86610b83565b9c8b6110f5565b9a6110f5565b975b600361183f83610b83565b500155610b83565b500155604080516370a0823160e01b808252308483019081526001600160a01b038b8116916020919082908690819083010381865afa9485156101c9576000956119f2575b50855184815230888201908152918d1695909490918390869081906020010381895afa9485156101c9578d8f8e908e936000996119c5575b506118db9392916118d491611511565b33906116a1565b865181815230898201908152909484918691908290819060200103915afa9384156101c9576000946119a4575b50865190815230888201908152909583918791908290819060200103915afa9485156101c9578b9260009661197d575b505090611944916117ba565b1161196e5786611953916110f5565b116119615750509493929190565b5163f3cbbc8760e01b8152fd5b50505163203d901d60e21b8152fd5b61194493929650908161199b92903d1061098d5761097e8183610eca565b94909138611938565b839194506119be90823d841161098d5761097e8183610eca565b9390611908565b6118d4919950916119e76118db959493893d8b1161098d5761097e8183610eca565b9991509192936118c4565b611a0a919550823d841161098d5761097e8183610eca565b933861188c565b50604051631115766760e01b8152fd5b86859796971015611a115781611847611a3e60026108ba8c610b83565b99611a5b8861182c611a5460016108ba86610b83565b9c876110f5565b97611834565b908115611aa457604e916040519083825280608083016040525b611a8a5750820191604e038252565b92600a908185066030018184015260001901930480611a7b565b9050604051611ab281610eae565b60018152600360fc1b602082015290565b604d81116110e157600a0a90565b90670de0b6b3a764000091808302928304036110e157565b60405163313ce56760e01b815290602090829060049082906001600160a01b03165afa9081156101c957600091611b3b575b5060ff16601203601281116110e157611b36610fdd91611ac3565b611ad1565b6020813d602011611b74575b81611b5460209383610eca565b81010312611b7057519060ff821682036105dc575060ff611b1b565b5080fd5b3d9150611b47565b9192606460209294604051956000958694859384936323b872dd60e01b85526004526024526044525af13d15601f3d116001845114161716906060528160405215611bc45750565b62461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b600080809381935af115611c0d57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b611c5c6102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611c9e9361094892600092611cec575b50611c95600591610b83565b50015490611dcc565b90803b15610135576040516340c10f1960e01b815233600482015260248101929092526000908290818381604481015b03925af180156101c957611cdf5750565b806105a6610f4092610e79565b6005919250611d0c611c959160203d60201161098d5761097e8183610eca565b929150611c89565b611d286102ef6102ef60066108ba85610b83565b916040516318160ddd60e01b8152602081600481875afa80156101c957611d7093611d6a92600092611da4575b50611d61600591610b83565b50015490611e0f565b90611e3f565b90803b1561013557604051632770a7eb60e21b81523360048201526024810192909252600090829081838160448101611cce565b6005919250611dc4611d619160203d60201161098d5761097e8183610eca565b929150611d55565b670de0b6b3a76400009081810291818304149015178215151615610135570490565b81810291818304149015176001161561013557670de0b6b3a7640000900490565b90670de0b6b3a7640000918281029281840414901517811515161561013557600190600019830104019015150290565b818102918183041490151760011615610135576001670de0b6b3a764000060001983010401901515029056fea2646970667358221220b3acac306d707466f101b443c2e8fd12f9be7209082ccbf5d21b056ca2d0e86764736f6c634300081600336080806040523461001657610ef1908161001c8239f35b600080fdfe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde0314610b3557508063095ea7b314610ac7578063158ef93e14610aa057806318160ddd14610a8157806323b872dd146109c0578063313ce567146109a45780633644e5151461098057806340c10f19146108f95780634cd88b76146105de57806370a08231146105a65780637ecebe001461056e57806395d89b41146104885780639dc29fac14610408578063a9059cbb14610396578063afba13c41461036d578063d505accf146101295763dd62ed3e146100de57600080fd5b3461012557816003193601126101255760209282916100fb610c81565b610103610c9c565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b509190346103695760e036600319011261036957610145610c81565b9061014e610c9c565b91604435606435926084359260ff84168094036103655742851061032257610174610d2c565b9560018060a01b038092169586895260209560078752848a209889549960018b01905585519285898501957f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c987528b89870152169a8b606086015288608086015260a085015260c084015260c0835260e0830167ffffffffffffffff948482108683111761030e578188528451902061010085019261190160f01b845261010286015261012285015260428152610160840194818610908611176102fb57848752519020835261018082015260a4356101a082015260c4356101c0909101528780528490889060809060015afa156102f15786511696871515806102e8575b156102b65786977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259596975283528087208688528352818188205551908152a380f35b83606492519162461bcd60e51b8352820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152fd5b50848814610273565b81513d88823e3d90fd5b634e487b7160e01b8c5260418d5260248cfd5b50634e487b7160e01b8c5260418d5260248cfd5b815162461bcd60e51b81526020818a0152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b8680fd5b5080fd5b50503461036957816003193601126103695760085490516001600160a01b039091168152602090f35b5050346103695780600319360112610369576020916103b3610c81565b8260243591338452600386528184206103cd848254610d09565b90556001600160a01b031680845260038652922080548201905582519081523390600080516020610e9c833981519152908590a35160018152f35b5034610125578160031936011261012557610421610c81565b600854602435926001600160a01b0392918316330361047a5750849392600080516020610e9c83398151915292602092169384865260038352808620610468838254610d09565b9055816002540360025551908152a380f35b8451636853cba760e01b8152fd5b82843461056b578060031936011261056b578151908060018054906104ac82610bc6565b808652926020926001811690811561053e57506001146104e6575b6104e286886104d882890383610c00565b5191829182610c38565b0390f35b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b83851061052b575050505081016020016104d8826104e2866104c7565b805486860184015293820193810161050e565b90506104e2979550869350602092506104d894915060ff191682840152151560051b8201019294866104c7565b80fd5b5050346103695760203660031901126103695760209181906001600160a01b03610596610c81565b1681526007845220549051908152f35b5050346103695760203660031901126103695760209181906001600160a01b036105ce610c81565b1681526003845220549051908152f35b5082903461036957826003193601126103695767ffffffffffffffff81358181116108f5576106109036908401610cb2565b916024358281116108f1576106289036908301610cb2565b946008549060ff8260a01c166108e357506001600160a01b031916331760085582518281116108d0578061065c8654610bc6565b94601f95868111610877575b506020908683116001146108085787926107fd575b50508160011b916000199060031b1c19161784555b84519182116107ea57506001916106a98354610bc6565b818111610788575b50602090821160011461070d57839482939492610702575b5050600019600383901b1c191690821b1790555b466005556106e9610d46565b6006556008805460ff60a01b1916600160a01b17905580f35b0151905084806106c9565b8284527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690601f198316855b8181106107725750958385969710610759575b505050811b0190556106dd565b015160001960f88460031b161c1916905584808061074c565b8783015184559285019260209283019201610739565b8385527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68280850160051c820192602086106107e1575b0160051c019084905b8281106107d65750506106b1565b8681550184906107c8565b925081926107bf565b634e487b7160e01b845260419052602483fd5b01519050878061067d565b878052600080516020610e7c8339815191529250601f198416885b81811061085f5750908460019594939210610846575b505050811b018455610692565b015160001960f88460031b161c19169055878080610839565b92936020600181928786015181550195019301610823565b909150868052600080516020610e7c8339815191528680850160051c820192602086106108c7575b9085949392910160051c01905b8181106108b95750610668565b8881558493506001016108ac565b9250819261089f565b634e487b7160e01b855260418252602485fd5b5162dc149f60e41b81529050fd5b8480fd5b8380fd5b5034610125578160031936011261012557610912610c81565b600854602435926001600160a01b0392918316330361047a576002549084820180921161096d575092600080516020610e9c83398151915292602092879560025516948585526003835280852082815401905551908152a380f35b634e487b7160e01b875260119052602486fd5b50503461036957816003193601126103695760209061099d610d2c565b9051908152f35b5050346103695781600319360112610369576020905160128152f35b50913461056b57606036600319011261056b576109db610c81565b600080516020610e9c8339815191526109f2610c9c565b6001600160a01b0392831680855260208781528686203387528152868620549097919488936044359389938560018201610a5e575b50505086885260038552828820610a3f858254610d09565b9055169586815260038452208181540190558551908152a35160018152f35b610a6791610d09565b90888a528652838920338a52865283892055388085610a27565b5050346103695781600319360112610369576020906002549051908152f35b50503461036957816003193601126103695760209060ff60085460a01c1690519015158152f35b5034610125578160031936011261012557602092610ae3610c81565b918360243592839233825287528181209460018060a01b0316948582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8390853461056b578060031936011261056b57805481610b5482610bc6565b8085529160209160019182811690811561053e5750600114610b81576104e286886104d882890383610c00565b8080955052600080516020610e7c8339815191525b838510610bb3575050505081016020016104d8826104e2866104c7565b8054868601840152938201938101610b96565b90600182811c92168015610bf6575b6020831014610be057565b634e487b7160e01b600052602260045260246000fd5b91607f1691610bd5565b90601f8019910116810190811067ffffffffffffffff821117610c2257604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610c6d57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610c4b565b600435906001600160a01b0382168203610c9757565b600080fd5b602435906001600160a01b0382168203610c9757565b81601f82011215610c975780359067ffffffffffffffff8211610c225760405192610ce7601f8401601f191660200185610c00565b82845260208383010111610c9757816000926020809301838601378301015290565b91908203918211610d1657565b634e487b7160e01b600052601160045260246000fd5b6005544603610d3b5760065490565b610d43610d46565b90565b60405160009060005490610d5982610bc6565b808252816020948582019460019087600182169182600014610e5d575050600114610e15575b50610d8c92500382610c00565b51902090604051908101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610c225760405251902090565b600080805287925090600080516020610e7c8339815191525b858310610e45575050610d8c935082010138610d7f565b80548388018501528694508893909201918101610e2e565b60ff19168852610d8c95151560051b8501019250389150610d7f905056fe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220cb98d0e2a923f06208a7d95352c1e293c1ab04b4c62a0981e8484a4726b12c0c64736f6c634300081600336080346200007a57601f620037a038819003918201601f19168301916001600160401b038311848410176200007f578084926020946040528339810103126200007a57516001600160a01b038116908190036200007a57600080546001600160a01b03191691909117905560405161370a9081620000968239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c80630420580a146101b7578063120649c5146101b2578063134ead12146101ad5780631e978cb0146101a8578063306db46b146101a3578063332266f31461019e5780633928ff97146101995780633b268d5d146101945780633b4d10301461018f5780634e817fd91461018a5780634fd67c58146101855780635eb408fc146101805780636237569f1461017b5780636d652299146101765780637f17409c1461017157806381b5fac21461016c578063902ecaa214610167578063a8c62e7614610162578063af4e437f1461015d578063b09d04e514610158578063cb1f553214610153578063ce153bf41461014e578063e94716d514610149578063ee3e8cfb14610144578063f30d37f21461013f5763f9c282111461013a57600080fd5b610aff565b610acf565b610a9e565b610a63565b610a27565b6109e2565b6109af565b610993565b61096a565b610941565b610914565b610872565b610856565b6107e9565b6107cd565b6107a4565b610788565b610759565b61071e565b61048d565b610436565b610407565b6103e2565b610354565b61028e565b610218565b60005b8381106101cf5750506000910152565b81810151838201526020016101bf565b906020916101f8815180928185528580860191016101bc565b601f01601f1916010190565b9060206102159281815201906101df565b90565b3461026b57604036600319011261026b57610267604051600260208201526004356040820152602435606082015260608152610253816102e9565b6040519182916020835260208301906101df565b0390f35b600080fd5b608090600319011261026b5760043590602435906044359060643590565b3461026b5760206102aa6102a136610270565b92919091610b4d565b604051908152f35b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff8211176102e457604052565b6102b2565b6080810190811067ffffffffffffffff8211176102e457604052565b6060810190811067ffffffffffffffff8211176102e457604052565b90601f8019910116810190811067ffffffffffffffff8211176102e457604052565b6001600160a01b0381160361026b57565b3461026b5760e036600319011261026b5760a036604319011261026b576102676103bc604051610383816102c8565b60443581526064356020820152608435604082015260a435606082015260c4356103ac81610343565b608082015260243560043561139a565b60405191829182610204565b606090600319011261026b57600435906024359060443590565b3461026b5760206102aa6104016103f8366103c8565b91929092610f06565b91611583565b3461026b5760206102aa61041a366103c8565b9061042d61042784610f06565b936110d9565b92919091611670565b3461026b5760206102aa610449366103c8565b9061045661042784610f06565b9290506119da565b8015150361026b57565b90926080926102159594151583526020830152604082015281606082015201906101df565b3461026b57606036600319011261026b5761050360243561061f6004356104b38361045e565b604435926104bf610c57565b936104c8610c57565b946104d2846110d9565b60208496939592960194604096878601928352865284526104f287610f06565b998a9185519087519051918a611009565b921561069657928261054a6105519361054361053e61053661056f9861053160606105979d9c0151866125a2565b6125a2565b8651906125f8565b610c9d565b9351610cb0565b8a52610cb0565b61056385890191808352895188610c4a565b90885190519087610b4d565b9061058e6105836020890193808552610c9d565b808452825111610d31565b51905190610d24565b945b84519260c06020870151848801926105df8451976105d18851998a958693602085016040919493926060820195825260208201520152565b03601f198101845283610321565b600054610602906105f6906001600160a01b031681565b6001600160a01b031690565b908651809981948293630d17a7c760e31b84523060048501610dbf565b03915afa94851561069157600095610651575b509061064691610267959651905190611583565b905194859485610468565b61026795509061067c610646939260c03d60c01161068a575b6106748183610321565b810190610d88565b505050505095509091610632565b503d61066a565b610b41565b826106df610718966106d2610704956106cb61053e6106c361070f9a61053160606106fc9b0151866125a2565b8551906125f8565b9251610cb0565b9260208d01938452610cb0565b6106f1888c019180835283518b610de3565b915190519089610df0565b808952610c9d565b808852825111610cbd565b51855190610d24565b94610599565b3461026b57604036600319011261026b57610267604051600460208201526004356040820152602435606082015260608152610253816102e9565b3461026b57602036600319011261026b5760206102aa60043561040161077e826110d9565b9291939050610f06565b3461026b5760206102aa61079e6103f8366103c8565b91611b9c565b3461026b5760206102aa6107b7366103c8565b906107c461042784610f06565b92919091611c16565b3461026b5760206102aa6107e036610270565b92919091610df0565b3461026b57604036600319011261026b5761083860043561026761081a61080f836110d9565b919050602435611f7a565b939092848461083261082b84610f06565b8383611583565b92610b4d565b92604051938493846040919493926060820195825260208201520152565b3461026b57600036600319011261026b57602060405160008152f35b3461026b57604036600319011261026b576004356108c06102676108a2610898846110d9565b9150602435611fa7565b92909383856108ba6108b384610f06565b8383611b9c565b92610df0565b91604051938493846040919493926060820195825260208201520152565b805182526020808201519083015260408082015190830152606080820151908301526080908101516001600160a01b0316910152565b3461026b57602036600319011261026b5760a0610932600435610f06565b61093f60405180926108de565bf35b3461026b5760206102aa610954366103c8565b9061096161042784610f06565b92909150611fce565b3461026b57600036600319011261026b576000546040516001600160a01b039091168152602090f35b3461026b5760206102aa6109a636610270565b92919091611009565b3461026b57602036600319011261026b576102676040516001602082015260043560408201526040815261025381610305565b3461026b57602036600319011261026b57610267600435610a0281610343565b60408051600560208201526001600160a01b0390921682820152815261025381610305565b3461026b57602036600319011261026b57610267610a466004356110d9565b604080519384526020840192909252908201529081906060820190565b3461026b57604036600319011261026b57610267604051600360208201526004356040820152602435606082015260608152610253816102e9565b3461026b57604036600319011261026b5761083860043561026761081a610ac4836110d9565b919050602435611fa7565b3461026b57604036600319011261026b576004356108c06102676108a2610af5846110d9565b9150602435611f7a565b3461026b57600036600319011261026b57602060405160788152f35b9081602091031261026b575190565b6040906102159392815281602082015201906101df565b6040513d6000823e3d90fd5b610b85610bee9493929361053184610b7e610b79610b74610b6d88610f06565b809661230a565b61237f565b6123b2565b92516125a2565b916020604051610bbc81610bae85888a8785016040919493926060820195825260208201520152565b03601f198101835282610321565b600054610bd3906105f6906001600160a01b031681565b6040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093610c15575b50610c0f90610f06565b936111f1565b610c0f919350610c3c9060203d602011610c43575b610c348183610321565b810190610b1b565b9290610c05565b503d610c2a565b9161040161021593610f06565b604051906060820182811067ffffffffffffffff8211176102e45760405260006040838281528260208201520152565b634e487b7160e01b600052601160045260246000fd5b9060018201809211610cab57565b610c87565b91908201809211610cab57565b15610cc457565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2078207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b6103e719810191908211610cab57565b91908203918211610cab57565b15610d3857565b60405162461bcd60e51b815260206004820152602260248201527f696e76616c696420737761703a2079207265736572766520696e637265617365604482015261642160f01b6064820152608490fd5b91908260c091031261026b578151610d9f8161045e565b9160208101519160408201519160608101519160a0608083015192015190565b610215939260609260018060a01b03168252602082015281604082015201906101df565b9161079e61021593610f06565b92610b79610b74610e0d92949394610e0787610f06565b90612f44565b92670de0b6b3a7640000938403938411610cab57610e2e610e5794836125a2565b916020604051610bbc81610bae8589898785016040919493926060820195825260208201520152565b03915afa9182156106915761021595600093610e7e575b50610e7890610f06565b93611e24565b610e78919350610e9c9060203d602011610c4357610c348183610321565b9290610e6e565b91908260a091031261026b57604051610ebb816102c8565b608080829480518452602081015160208501526040810151604085015260608101516060850152015191610eee83610343565b0152565b9060a08282031261026b5761021591610ea3565b90604051610f13816102c8565b600090818152816080602092828482015282604082015282606082015201528160018060a01b038154169460246040518097819363dc17835560e01b835260048301525afa918215610691578092610f7a575b506102159293508082518301019101610ef2565b9091503d8082863e610f8c8186610321565b840190828583031261100257845167ffffffffffffffff9586821161100557019082601f830112156110025781519586116102e45760405192610fd8601f8801601f1916860185610321565b86845284878401011161100257506102159394610ffa918480850191016101bc565b908392610f66565b80fd5b8280fd5b61105d939192602060405161103781610bae87868a8785016040919493926060820195825260208201520152565b60018060a01b03600054166040518080998194622e524b60e01b83528860048401610b2a565b03915afa9182156106915761021595600093611084575b5061107e90610f06565b936121b4565b61107e9193506110a29060203d602011610c4357610c348183610321565b9290611074565b9081602091031261026b575161021581610343565b9081606091031261026b578051916040602083015192015190565b90600460206110f56105f66105f660005460018060a01b031690565b604051632bee84f160e21b815292839182905afa928315610691576111409360609260009161119d575b5060405180809681946333854efd60e21b8352600483019190602083019252565b03916001600160a01b03165afa9081156106915760008093600093611166575b50929190565b9193505061118c915060603d606011611196575b6111848183610321565b8101906110be565b9290929138611160565b503d61117a565b6111bf915060203d6020116111c5575b6111b78183610321565b8101906110a9565b3861111f565b503d6111ad565b6111ef9360609296959361010083019783526020830152604082015201906108de565b565b929360009385929185851215611367575b8585126113485790610bae611224925b604096604051958694602086016111cc565b81859285968281116113255761123a818561337f565b92611245818661337f565b88611250828761152f565b136113045750906112649197969297610d24565b60019591829187805b61127f575b5050505050505050505090565b156112e0575b5086979850819261129f6112998b89610cb0565b60011c90565b996112aa8b8861337f565b90846112b6888461152f565b136112d457505089935b886112cb8987610d24565b9201949961126d565b8b9850909550936112c0565b601410806112fb575b156112f45788611285565b8080611272565b508083106112e9565b6040516306f1be5d60e21b8152600481018690526024810191909152604490fd5b604051633082dfdb60e11b81526004810191909152602481019290925250604490fd5b935091611354906125ce565b91611361848385846124a9565b93611202565b85851361137b5790610bae61122492611212565b935094611387906123f5565b94611394848388846124a9565b93611367565b916113ab610b79610b748385612f44565b91670de0b6b3a7640000928303928311610cab57611402826113ee6113e3610b79610b74846113dd6114209a8c6125f8565b9761230a565b6105318584516125a2565b926113fb8282868a6124a9565b84886121b4565b906040519460208601526040850152606084015260808301906108de565b6101008152610120810181811067ffffffffffffffff8211176102e45760405290565b90670de0b6b3a764000060008382039312818412811691841390151617610cab57565b90671bc16d674ec8000060008382039312818412811691841390151617610cab57565b9067119000ab100ffbff198201918213600116610cab57565b81810392916000138015828513169184121617610cab57565b90670de0b6b3a764000091828102928184051490151715610cab57565b90671bc16d674ec8000091828102928184051490151715610cab57565b90633b9aca0091828102928184051490151715610cab57565b60008190039190600160ff1b8114600116610cab57600019830503610cab57565b818102929160008212600160ff1b821416610cab578184051490151715610cab57565b811561156d57600160ff1b8114600019831416610cab570590565b634e487b7160e01b600052601260045260246000fd5b9190916115be60208301936115b885516115b06115a66040880192835190612843565b975182519061286c565b905190612414565b92612435565b92670de0b6b3a76400008085121561163c5760008513156116315760008582039512818612811691861390151617610cab5761162561162a92611620611612610b799461160d6102159961288b565b61152f565b670de0b6b3a7640000900590565b6114a2565b612917565b90516125a2565b505050505060001990565b5050505050600090565b90959492936111ef94608093610120840198845260208401526040830152606082015201906108de565b909291828651602088015160408901519060608a01519261169083612ac8565b6116999061185a565b936116a390611443565b906116ad8a612b86565b6116b68b611981565b6116bf91612c38565b6116c88b611981565b6116d184612bb5565b6116da916114a2565b6116e49088612c38565b6116ed91612cb5565b6116f690612cd3565b9361170084612fbb565b611709906114d8565b670de0b6b3a7640000900561171d90612917565b9061172791612c38565b61173090612c67565b611739906119c9565b848661174486612c09565b9061174e91612c38565b9061175891612c38565b611761916119ad565b61176a90612917565b826117758c84612c38565b9061177f91612c38565b61178891612c38565b6117918b611981565b61179a84612bb5565b6117a3916114a2565b6117ac91612cb5565b956117b691612c38565b906117c090611993565b6117c991612c38565b926117d391612c38565b6117dc90612c8e565b906117e6916114a2565b6117ef90612e24565b6117f891612c38565b61180186612b86565b61180a91612cb5565b90611814846119c9565b9061181e916119ad565b90611828916119ad565b60001361184f576102159561184a93610bae9260405196879560208701611646565b61264d565b505050505050600090565b90633b9aca0091828102928184041490151715610cab57565b9081672005fe4f268ea00001918212600116610cab57565b9081670dc5527f642c200001918212600116610cab57565b9081670de0b6b3a764000001918212600116610cab57565b9081670b68df18e471fbff190191821215600116610cab57565b90816714a8454c19e1ac0001918212600116610cab57565b9081670fc10e01578277ff190191821215600116610cab57565b90816703debd083b8c7c0001918212600116610cab57565b9081670295d400ea3257ff190191821215600116610cab57565b9081670157d8b2ecc7080001918212600116610cab57565b90816705310aa7d521300001918212600116610cab57565b9081670de0cc3d1561000001918212600116610cab57565b90816103e801918212600116610cab57565b9081670de0b6b3a763ffff190191821215600116610cab57565b91909160008382019384129112908015821691151617610cab57565b600160ff1b8114610cab5760000390565b939290919280519160208201519060408301519260600151936119fc84612ac8565b611a059061185a565b94611a0f90611443565b9182611a1a88612b86565b611a2489846119ad565b611a2d91612c38565b611a3789846119ad565b611a418385612c38565b611a4a916114a2565b611a54908b612c38565b611a5d91612cb5565b611a6690612cd3565b95611a7086612fbb565b611a79906114d8565b670de0b6b3a76400009005611a8d90612917565b90611a9791612c38565b611aa090612c67565b611aa9906119c9565b8688611ab488612c09565b90611abe91612c38565b90611ac891612c38565b611ad1916119ad565b611ada90612917565b81611ae58a86612c38565b90611aef91612c38565b611af891612c38565b91611b0389826119ad565b91611b0d91612c38565b611b16916114a2565b611b1f91612cb5565b96611b2991612c38565b90611b3390611993565b611b3c91612c38565b92611b4691612c38565b611b4f90612c8e565b90611b59916114a2565b611b6290612e24565b611b6b91612c38565b90611b7590612b86565b611b7e91612cb5565b91611b88906119c9565b90611b92916119ad565b90610215916119ad565b919091611bda6020830191611bd4611bcc84516115b0611bc26040890192835190612843565b965182519061286c565b958551612414565b90612435565b670de0b6b3a7640000918282121561163c576000821315611631576102159461162a93611c106116259361160d610b799661288b565b056119ad565b909291855160208701516040880151606089015191611c3482612ac8565b611c3d9061185a565b92611c4790611443565b93611c5186612b86565b611c5a87611981565b611c6391612c38565b611c6d8983612c38565b611c7688611981565b611c7f91612c38565b611c88906119c9565b86611c938b85612c38565b611c9c90612bde565b90611ca691612c38565b611caf916119ad565b611cb891612cb5565b611cc1906119c9565b611cca90612cd3565b92611cd483612fbb565b611cdd906114d8565b670de0b6b3a76400009005611cf190612917565b90611cfb91612c38565b611d0490612c67565b611d0d906119c9565b8385611d1885612c09565b90611d2291612c38565b90611d2c91612c38565b611d35916119ad565b611d3e90612917565b85611d49888a612c38565b90611d5391612c38565b611d5c91612c38565b90611d6687611981565b611d6f87612bb5565b611d78916114a2565b611d8191612c38565b611d8a91612cb5565b93611d958789612c38565b90611d9f90611993565b611da891612c38565b92611db291612c38565b611dbb90612c8e565b90611dc5916114a2565b611dce90612e24565b611dd791612c38565b611de083612b86565b611de991612cb5565b90611df390611993565b90611dfd916119ad565b60001361184f5761021595611e1f93610bae9260405196879560208701611646565b61276c565b929360009385929185851215611f47575b858512611f285790610bae611e5692604096604051958694602086016111cc565b818592859682811161132557611e6c81856133a0565b92611e7781866133a0565b88611e82828761152f565b13611304575090611e969197969297610d24565b60019591829187805b611eb0575050505050505050505090565b15611f0b575b50869798508192611eca6112998b89610cb0565b99611ed58b886133a0565b9084611ee1888461152f565b13611eff57505089935b88611ef68987610d24565b92019499611e9f565b8b985090955093611eeb565b60141080611f1f575b156112f45788611eb6565b50808310611f14565b935091611f34906125ce565b91611f41848383866124a9565b93611e35565b858513611f5b5790610bae611e5692611212565b935094611f67906123f5565b94611f74848383896124a9565b93611f47565b929190611f90611f8a82846125f8565b856125a2565b938103908111610cab57928103908111610cab5790565b929190611fb7611f8a82846125f8565b938101809111610cab57928101809111610cab5790565b9390929181516020830151916040840151936060015194611fee85612ac8565b611ff79061185a565b9561200190611443565b928361200c89612b86565b6120168a856119ad565b61201f91612c38565b6120298584612c38565b6120338b866119ad565b61203c91612c38565b612045906119c9565b82856120518887612c38565b9061205b91612c38565b9061206591612c38565b61206e916119ad565b61207791612cb5565b612080906119c9565b61208990612cd3565b9661209387612fbb565b61209c906114d8565b670de0b6b3a764000090056120b090612917565b906120ba91612c38565b6120c390612c67565b6120cc906119c9565b87896120d789612c09565b906120e191612c38565b906120eb91612c38565b6120f4916119ad565b6120fd90612917565b816121088b8d612c38565b9061211291612c38565b61211b91612c38565b926121268a826119ad565b9161213091612c38565b612139916114a2565b61214291612c38565b61214b91612cb5565b9661215591612c38565b9061215f90611993565b61216891612c38565b9261217291612c38565b61217b90612c8e565b90612185916114a2565b61218e90612e24565b61219791612c38565b906121a190612b86565b6121aa91612cb5565b90611b9290611993565b9293600093859291858512156122d7575b8585126122b85790610bae6121e692604096604051958694602086016111cc565b8185928596828111611325576121fc81856133c2565b9261220781866133c2565b88612212828761152f565b136113045750906122269197969297610d24565b60019591829187805b612240575050505050505050505090565b1561229b575b5086979850819261225a6112998b89610cb0565b996122658b886133c2565b9084612271888461152f565b1361228f57505089935b886122868987610d24565b9201949961222f565b8b98509095509361227b565b601410806122af575b156112f45788612246565b508083106122a4565b9350946122c4906123f5565b946122d1848784846124a9565b936121c5565b8585136122eb5790610bae6121e692611212565b9350916122f7906125ce565b91612304848484846124a9565b936122d7565b61237a6123756102159361236f61236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b9d6125f8565b612fbb565b97612fbb565b6114d8565b05612917565b612414565b612457565b906114a2565b6114bb565b611552565b6123ae6123756123a96713a04bbdfdc9be886123a3671bc16d674ec80000956114bb565b056119c9565b612e24565b0590565b600081126123bd5790565b60405162461bcd60e51b815260206004820152601060248201526f746f55696e743a206e6567617469766560801b6044820152606490fd5b6103e79081810291818304149015176001161561026b576103e8900490565b81810291818304149015176001161561026b57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517821515161561026b570490565b6706f05b59d3b2000090808202918204146001161561026b57670de0b6b3a7640000900490565b670de0b6b3a76400009081810291818304149015176001161561026b57671bc16d674ec80000900490565b90928282101561255d57610215936125269284670de0b6b3a764000091826124d18383612435565b1061254a57506001600160ff1b039590505b8351916124f96124f38385612414565b85612435565b1061252b57506001600160ff1b0392612520925090505b6040602082015191015190612843565b926119ad565b6119ad565b61252092611bd461253f9261254494612414565b61288b565b91612510565b6125579161253f91612435565b946124e3565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b81810291818304149015176001161561026b576001670de0b6b3a7640000600019830104019015150290565b6103e99081810291818304149015176001161561026b5760016103e8600019830104019015150290565b90670de0b6b3a7640000918281029281840414901517811515161561026b57600190600019830104019015150290565b6101008183031261026b57805192610215602083015193606060408501519401610ea3565b91906103e89260009360009183821161274b57612669816133e2565b6126738583613521565b600061267f828461152f565b1361272c5750612690859695610d14565b60019460009186805b6126aa575b50505050505050509050565b15612707575b50859697985080916126c56112998b88610cb0565b996126d08b87613521565b90836126dc878461152f565b136126fb57505089925b876126f18886610d24565b9201939998612699565b8b9750909450926126e6565b861080612721575b1561271a57886126b0565b808061269e565b50610100821061270f565b6040516306f1be5d60e21b815260048101929092526024820152604490fd5b604051633082dfdb60e11b81526103e8600482015260248101859052604490fd5b91906103e89260009360009183821161274b5761278881613543565b61279285836136b3565b600061279e828461152f565b1361272c57506127af859695610d14565b60019460009186805b6127c85750505050505050509050565b15612825575b50859697985080916127e36112998b88610cb0565b996127ee8b876136b3565b90836127fa878461152f565b1361281957505089925b8761280f8886610d24565b92019399986127b8565b8b975090945092612804565b861080612838575b1561271a57886127ce565b50610100821061282d565b9061284d90612ac8565b633b9aca0090818102918183041490151715610cab5761021591612414565b61021591612365670de0b6b3a764000061235f61235a61236a95612fbb565b6706f05b59d3b20000811461291157670de0b6b3a764000090818112156128ff5780156128ed578060011b908105600203610cab576128c990612cd3565b906713a04bbdfdc9be8891808302928305146001161561026b5761021591056119c9565b6040516322ed598560e21b8152600490fd5b6040516307a0212760e01b8152600490fd5b50600090565b680248ce36a70cb26b3e1981131561291157680755bf798b4a1bf1e5811215612a67576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b91906101208382031261026b57825192602081015192610215604083015193608060608501519401610ea3565b60b581600160881b811015612b6f575b80690100000000000000000062010000921015612b62575b65010000000000811015612b55575b6301000000811015612b48575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b91612b0c565b60201c9160101b91612aff565b60401c9160201b91612af0565b5068b500000000000000009050608082901c612ad8565b671bc16d674ec8000081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e881810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b6103e88082029160016000198210179181840514901517161561026b57670de0b6b3a7640000900590565b6713a04bbde78cc40081810291600160ff1b811360011791830514161561026b57670de0b6b3a7640000900590565b818102918115828405821417600019909210600160ff1b90911317161561026b57670de0b6b3a7640000900590565b670de0b6b3a764000090818102918205146001161561026b57671bc16d674ec80000900590565b670de0b6b3a764000090818102918205146001161561026b576713a04bbde78cc400900590565b670de0b6b3a76400009081810291820514821515161561026b570590565b600081128015612e13575b612e015780156128ff57671bc16d674ec8000081146128ed57670de0b6b3a76400008112908115612df257905b612d1482613189565b80156128ff57612d7d612d41612d3c612d37612d32612d8295612fbb565b61324a565b612ac8565b6114f5565b611620612d55612d50836131b4565b611873565b612d77612d72612d6c612d67866131df565b61188b565b856132c1565b6118a3565b90613228565b613272565b916000905b60028210612da257505015612d995790565b610215906119c9565b9092612dea81612de4612dba85611620600196612e24565b612d77612dda612dd5611625612dd087806132c1565b6119c9565b61329a565b61236f83866132c1565b906119ad565b930190612d87565b612dfb90611466565b90612d0b565b604051632d0483c560e21b8152600490fd5b50671bc16d674ec800008113612cde565b8015612f3757675698eef06670000081121561291157675698eef0666fffff19811315612f2a576000612f1a612e598361315c565b612ee2611625612e73612e6e612d728561247e565b613209565b92612526612f15612f10612f09612f03612efe612ef8612ef3612eed612ee88d612ee2612edd612ed7612ed2612d6c612ecd612ec7612ec2612ebc612eb78a6132e2565b6118bb565b896132c1565b6118d5565b876132c1565b6118ed565b611907565b836132c1565b61191f565b906132c1565b611939565b8c6132c1565b611951565b8a6132c1565b611969565b886132c1565b93806132c1565b61150e565b611489565b9112156102155761021590611466565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b61237a61237561021593612de461236a8251612365670de0b6b3a764000061235f61235a61235461234f604060208b01519a015196612349888c612843565b15612f8a57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b886428490612fe760008213612f83565b711340daa0d5f769dba1915cef59f0815a55066130038261330d565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b600160ff1b8114613177576000811215610215571960010190565b604051634d2d75b160e01b8152600490fd5b670de0b6b3a76400009081810291818305149015176001161561026b57671bc16d674ec80000900590565b6703c1665c7aab20009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b669f32752462a0009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b6001811515161561026b576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a7640000908181029181830514901517821515161561026b570590565b671bc16d674ec7ffff1981810291600191830514161561026b57670de0b6b3a7640000900590565b6709d028cc6f205fff1981810291600191830514161561026b57670de0b6b3a7640000900590565b670fa8cedfc2adddfa90808202918205146001161561026b57670de0b6b3a7640000900590565b81810291818305149015176001161561026b57670de0b6b3a7640000900590565b67025f0fe105a314009081810291818305149015176001161561026b57670de0b6b3a7640000900590565b613318811515612f83565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b906133966102159260208082518301019101612628565b93919290506124a9565b906133b76102159260208082518301019101612628565b9390509190916124a9565b906133d96102159260208082518301019101612628565b939290506124a9565b8051810160200190602001906133f791612a9b565b809193925051906020810151604082015191606001519261341783612ac8565b6134209061185a565b9361342a90611443565b9061343486612b86565b61343d87611981565b61344691612c38565b61344f87611981565b61345884612bb5565b613461916114a2565b61346b9089612c38565b61347491612cb5565b61347d90612cd3565b9361348784612fbb565b613490906114d8565b670de0b6b3a764000090056134a490612917565b906134ae91612c38565b6134b790612c67565b6134c0906119c9565b84866134cb86612c09565b906134d591612c38565b906134df91612c38565b6134e8916119ad565b6134f190612917565b826134fc8884612c38565b9061350691612c38565b61350f91612c38565b61351887611981565b611b0d84612bb5565b906135386102159260208082518301019101612a9b565b9493909291506119da565b80518101602001906020019061355891612a9b565b809192935051602082015190604083015192606001519361357884612ac8565b6135819061185a565b9461358b90611443565b9161359587612b86565b61359e88611981565b6135a791612c38565b6135b18383612c38565b6135ba89611981565b6135c391612c38565b6135cc906119c9565b846135d78585612c38565b6135e090612bde565b906135ea91612c38565b6135f3916119ad565b6135fc91612cb5565b613605906119c9565b61360e90612cd3565b9461361885612fbb565b613621906114d8565b670de0b6b3a7640000900561363590612917565b9061363f91612c38565b61364890612c67565b613651906119c9565b858761365c87612c09565b9061366691612c38565b9061367091612c38565b613679916119ad565b61368290612917565b8361368d898b612c38565b9061369791612c38565b6136a091612c38565b906136aa88611981565b61213085612bb5565b906136ca6102159260208082518301019101612a9b565b9493909250611fce56fea2646970667358221220f3e875cd9c43c4535da38090630f644037f96036f7dad55519e2d7d792047e4b64736f6c6343000816003360803461007457601f611bc438819003918201601f19168301916001600160401b038311848410176100795780849260209460405283398101031261007457516001600160a01b0381169081900361007457600080546001600160a01b031916919091179055604051611b3490816100908239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c9081622e524b146100a95750806306fdde03146100a45780631edb71e51461009f57806368bd3e381461009a57806373cb2d03146100955780638a04bdd514610090578063acad29891461008b578063afba13c4146100865763dc1783551461008157600080fd5b6109e4565b6109bb565b610814565b6107da565b610674565b6103dc565b6102e1565b61023d565b3461011b57604036600319011261011b576024359067ffffffffffffffff821161011b5760206101136100f06100e236600487016101df565b838082518301019101610a17565b9061010d6100ff600435610b92565b868082518301019101610a32565b92610d8d565b604051908152f35b80fd5b634e487b7160e01b600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761015057604052565b61011e565b60c0810190811067ffffffffffffffff82111761015057604052565b90601f8019910116810190811067ffffffffffffffff82111761015057604052565b92919267ffffffffffffffff821161015057604051916101bd601f8201601f191660200184610171565b8294818452818301116101da578281602093846000960137010152565b600080fd5b9080601f830112156101da578160206101fa93359101610193565b90565b919082519283825260005b848110610229575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610208565b346101da5760003660031901126101da57604051604081019080821067ffffffffffffffff8311176101505761029a916040526009815268131bd9d39bdc9b585b60ba1b60208201526040519182916020835260208301906101fd565b0390f35b906040516080810181811067ffffffffffffffff821117610150576040526060600382948054845260018101546020850152600281015460408501520154910152565b346101da5760203660031901126101da5760043560005260016020526101c0604060002061030e8161029e565b9061031b6004820161029e565b906103bd61032b6008830161029e565b610393600c84015493600d60018060a01b03910154169461036d6040518098606080918051845260208101516020850152604081015160408501520151910152565b80516080880152602081015160a0880152604081015160c08801526060015160e0870152565b80516101008601526020810151610120860152604081015161014086015260600151610160850152565b6101808301526101a0820152f35b6001600160a01b038116036101da57565b346101da576060806003193601126101da576103f96004356103cb565b6024356044359167ffffffffffffffff83116101da576104206104829336906004016101df565b8161043c61042d85610b92565b60208082518301019101610a32565b60005490949061046290610456906001600160a01b031681565b6001600160a01b031690565b60405180809881946333854efd60e21b8352600483019190602083019252565b03915afa801561061457600091829583926105d9575b50806020806104ac93518301019101610a17565b939194909682861160001461054c5750916104ed826104e8836104e36104fe976104d96104f5988c610aa3565b908c0151906112af565b6112af565b6112db565b505b83610afe565b93828685610d8d565b9384601319129283610541575b61029a9394604051968796879260a094919796959260c08501981515855260208501526040840152606083015260808201520152565b60148612935061050b565b90929091508187111561057b57610575826104e8836104e36104fe976104d96104f5988e610aa3565b506104ef565b60405162461bcd60e51b815260206004820152603060248201527f696e76616c696420737761703a20696e70757473207820616e6420792068617660448201526f65207468652073616d65207369676e2160801b6064820152608490fd5b9095506104ac92506106019150833d851161060d575b6105f98183610171565b810190610a17565b95919290959190610498565b503d6105ef565b610a81565b9060606003198301126101da57600435610632816103cb565b916024359160443567ffffffffffffffff928382116101da57806023830112156101da5781600401359384116101da57602484830101116101da576024019190565b346101da5761068236610619565b600054929350916001600160a01b031633036107c85761078661077e61042d610779956106c0608095610743976106b7610b67565b50810190610e8c565b6020819b949a9399929b01516106e0866000526001602052604060002090565b55604081015160046106fc876000526001602052604060002090565b015580516008610716876000526001602052604060002090565b01556060810151600c610733876000526001602052604060002090565b015501516001600160a01b031690565b600d610759846000526001602052604060002090565b0180546001600160a01b0319166001600160a01b03909216919091179055565b610b92565b848385610d8d565b92836013191291826107bd575b6040805193151584526020840195909552938201929092526060810192909252608082015260a090f35b601485129250610793565b604051636853cba760e01b8152600490fd5b346101da5760606107ea36610619565b818094509492940103126101da5780359061078661077e61042d6040602085013594013595610b92565b346101da5761082236610619565b6000549093906001600160a01b0390811633036107c857610863610456600d610855876000526001602052604060002090565b01546001600160a01b031690565b9116036109a95761087683820182610b32565b61087f81610b47565b600181036108b857506108a261089d6108b392600c94953691610193565b610fc3565b926000526001602052604060002090565b01555b005b6108c181610b47565b600381036108fd5750906108e56108e06108f8936108b6953691610193565b610f19565b9290916000526001602052604060002090565b610f41565b61090681610b47565b6004810361094057509060046109276108e061093a946108b6963691610193565b9390926000526001602052604060002090565b01610f41565b61094981610b47565b6002810361096a57509060086109276108e061093a946108b6963691610193565b80610976600592610b47565b03610997576107596108a2610992600d936108b6963691610193565b610ef1565b60405163235d2b3d60e01b8152600490fd5b604051636edaef2f60e11b8152600490fd5b346101da5760003660031901126101da576000546040516001600160a01b039091168152602090f35b346101da5760203660031901126101da5761029a610a03600435610b92565b6040519182916020835260208301906101fd565b908160609103126101da578051916040602083015192015190565b908160a09103126101da57608060405191610a4c83610134565b805183526020810151602084015260408101516040840152606081015160608401520151610a79816103cb565b608082015290565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b91908203918211610ab057565b610a8d565b91908201809211610ab057565b90671bc16d674ec8000060008382039312818412811691841390151617610ab057565b9067119000ab100ffbff198201918213600116610ab057565b81810392916000138015828513169184121617610ab057565b600160ff1b8114610ab05760000390565b600611156101da57565b908160209103126101da57356101fa81610b28565b60061115610b5157565b634e487b7160e01b600052602160045260246000fd5b60405190610b7482610134565b60006080838281528260208201528260408201528260608201520152565b610b9a610b67565b816000526001602052610bb8610bb3604060002061029e565b610ff8565b9160208201928352806000526001602052610bdc610bb3600860406000200161029e565b8252600c610c1d610c05610bb36004610bff866000526001602052604060002090565b0161029e565b92604085019384526000526001602052604060002090565b015490606083019182526040519383516020860152516040850152516060840152516080830152608060018060a01b039101511660a082015260a081526101fa81610155565b9081672005fe4f268ea00001918212600116610ab057565b9081670dc5527f642c200001918212600116610ab057565b9081670de0b6b3a764000001918212600116610ab057565b9081670b68df18e471fbff190191821215600116610ab057565b90816714a8454c19e1ac0001918212600116610ab057565b9081670fc10e01578277ff190191821215600116610ab057565b90816703debd083b8c7c0001918212600116610ab057565b9081670295d400ea3257ff190191821215600116610ab057565b9081670157d8b2ecc7080001918212600116610ab057565b90816705310aa7d521300001918212600116610ab057565b9081670de0cc3d1561000001918212600116610ab057565b91909160008382019384129112908015821691151617610ab057565b909282821015610e47576101fa93610e0a9284670de0b6b3a76400009182610db5838361130b565b10610e3457506001600160ff1b039590505b835191610ddd610dd7838561132d565b8561130b565b10610e0f57506001600160ff1b0392610e04925090505b6040602082015191015190611286565b92610d71565b610d71565b610e0492610e23610e2992610e2e9461132d565b9061130b565b6110b3565b91610df4565b610e4191610e299161130b565b94610dc7565b60405162461bcd60e51b815260206004820152601a60248201527f74726164696e6746756e6374696f6e3a20696e76616c696420780000000000006044820152606490fd5b80910361010081126101da5781359260208301359260a0604082013593605f1901126101da5760e060405191610ec183610134565b606081013583526080810135602084015260a0810135604084015260c081013560608401520135610a79816103cb565b6040818051810103126101da5780610f0e60206040930151610b28565b0151610456816103cb565b6060818051810103126101da57610f336020820151610b28565b606060408201519101519091565b919042821115610fb157610f57610bb38461029e565b9081845542600385015542830391838311610ab057610f7591610afe565b428314610f9b57600160ff1b8114600019831416610ab057600292600185015505910155565b634e487b7160e01b600052601260045260246000fd5b6040516366f102ed60e11b8152600490fd5b6040818051810103126101da5780610fe060206040930151610b28565b015190565b81810292918115918404141715610ab057565b606081015160208201518082146110735780421160001461106b57905b8103908111610ab05760408201908151600081136000146110485750611042906101fa9351925190610fe5565b90610ab5565b9261105f9250611059905193610b17565b90610fe5565b8103908111610ab05790565b504290611015565b50505190565b90633b9aca0091828102928184051490151715610ab057565b60008190039190600160ff1b8114600116610ab057600019830503610ab057565b6706f05b59d3b20000811461128057670de0b6b3a76400008082121561122a57811561124b5760018260011b916002938305600203610ab05760008312801561126f575b61125d57821561122a57671bc16d674ec80000831461124b57821291821561123c57925b611124846118db565b801561122a5761119661115561115061114b61114661119b959997969961146f565b61199c565b611379565b611079565b61119161116961116483611906565b610c63565b61118b61118661118061117b86611931565b610c7b565b85611a13565b610c93565b9061197a565b610afe565b6119c4565b936000925b8184106111d257505050506101fa916111bf916000146111c4576118b4565b610b17565b6111cd90610b17565b6118b4565b90916112208661121a6111ea8561119186999b611610565b61118b61120a6112056112006111bf8780611a13565b611730565b6119ec565b6112148386611a13565b90610afe565b90610d71565b95019291906111a0565b6040516307a0212760e01b8152600490fd5b61124590610ac2565b9261111b565b6040516322ed598560e21b8152600490fd5b604051632d0483c560e21b8152600490fd5b50671bc16d674ec8000083136110f7565b50600090565b9061129090611379565b633b9aca0090818102918183041490151715610ab0576101fa9161132d565b8181029181830414901517600116156101da576001670de0b6b3a7640000600019830104019015150290565b90670de0b6b3a764000091828102928184041490151781151516156101da57600190600019830104019015150290565b670de0b6b3a764000090818102918183041490151782151516156101da570490565b8181029181830414901517600116156101da57670de0b6b3a7640000900490565b670de0b6b3a7640000908181029181830414901517600116156101da57671bc16d674ec80000900490565b60b581600160881b811015611420575b80690100000000000000000062010000921015611413575b65010000000000811015611406575b63010000008110156113f9575b010260121c60019080830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c8080920410900390565b60101c9160081b916113bd565b60201c9160101b916113b0565b60401c9160201b916113a1565b5068b500000000000000009050608082901c611389565b1561143e57565b60405162461bcd60e51b815260206004820152600960248201526815539111519253915160ba1b6044820152606490fd5b7d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642849061149b60008213611437565b711340daa0d5f769dba1915cef59f0815a55066114b782611a5f565b6060928382609f03011b609f1c90605f19017d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302926c0b7a86d7375468fac667a0a527826d01920d8043ca89b5239253284e42816d0a0f742023def783a307a986912e816d13cdffb29d51d99322bdff5f2211816d0df99ac502031bf953eff472fdcc816d0388eaa27412d5aca026815d636e816c465772b2bbbb5f824b15207a308101028c1d01028a1d0102881d0102861d0102841d0102821d0191780a09507084cc699bb0e71ea869ffffffffffffffffffffffff19916cb9a025d814b29c212b8b1a07cd1990826d02384773bdf1ac5676facced609019816c8c3f38e95a6b1ff2ab1c3b343619816d02247f7a7b6594320649aa03aba1816d0139601a2efabe717e604cbb4894816c29508e458543d8aa4df2abee78810102891d0102871d0102851d0102831d0102901d0102010502010160ae1d90565b801561172357675698eef06670000081121561128057675698eef0666fffff1981131561171657600061170661164583611ad1565b6116ce61120061165f61165a6111868561134e565b61195b565b92610e0a6117016116fc6116f56116ef6116ea6116e46116df6116d96116d48d6116ce6116c96116c36116be6111806116b96116b36116ae6116a86116a38a611a34565b610cab565b89611a13565b610cc5565b87611a13565b610cdd565b610cf7565b83611a13565b610d0f565b90611a13565b610d29565b8c611a13565b610d41565b8a611a13565b610d59565b88611a13565b9380611a13565b611092565b610ae5565b9112156101fa576101fa90610ac2565b50671bc16d674ec8000090565b50670de0b6b3a764000090565b680248ce36a70cb26b3e1981131561128057680755bf798b4a1bf1e5811215611880576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b398916060906001605f1b8482841b0501821d9384029003806c10fe68e7fd37d0007b713f7650810102821d906e0587f503bb6ea29d25fcb7401964506e05180bb14799ab47a8a8cb2a527d57826e02c72388d9f74f51a9331fed693f1419816db1bbb201f443cf962f1a1d3db4a5816d1a521255e34f6a5061b25ef1c9c319816d0277594991cfc85f6e2461837cd9816c240c330e9fb2d9cbaf0fd5aafb198101028d1d01028b1d0102891d0102871d0102851d01936d360d7aeea093263ecc6e0ecb291760621b936d02d16720577bd19bf614176fe9ea810190846d01d3967ed30fc4f89c02bab570811991010102901d01020105029060c3031c90565b60405162461bcd60e51b815260206004820152600c60248201526b4558505f4f564552464c4f5760a01b6044820152606490fd5b6713a04bbdfdc9be889080820291820514600116156101da57670de0b6b3a7640000900590565b670de0b6b3a7640000908181029181830514901517600116156101da57671bc16d674ec80000900590565b6703c1665c7aab2000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b669f32752462a000908181029181830514901517600116156101da57670de0b6b3a7640000900590565b600181151516156101da576ec097ce7bc90715b34b9f10000000000590565b670de0b6b3a764000090818102918183051490151782151516156101da570590565b671bc16d674ec7ffff198181029160019183051416156101da57670de0b6b3a7640000900590565b6709d028cc6f205fff198181029160019183051416156101da57670de0b6b3a7640000900590565b670fa8cedfc2adddfa9080820291820514600116156101da57670de0b6b3a7640000900590565b8181029181830514901517600116156101da57670de0b6b3a7640000900590565b67025f0fe105a31400908181029181830514901517600116156101da57670de0b6b3a7640000900590565b611a6a811515611437565b806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b600160ff1b8114611aec5760008112156101fa571960010190565b604051634d2d75b160e01b8152600490fdfea2646970667358221220b596d744fe988e0f66eb3212b01d8a9e660acea43730ff108a9b5edd5f05d2b364736f6c6343000816003360803461009c57601f61059738819003918201601f19168301916001600160401b038311848410176100a15780849260609460405283398101031261009c57610047816100b7565b906040610056602083016100b7565b9101519160018060a01b0319913383600054161760005560018060a01b03809216836001541617600155169060025416176002556003556040516104cb90816100cc8239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361009c5756fe6080604052600436101561001257600080fd5b6000803560e01c9081633b2049481461007a5750806391b7f5ed14610075578063a035b1fe14610070578063d004f0f71461006b578063d0c472ec146100665763f851a4401461006157600080fd5b61038f565b610366565b610172565b610154565b6100a3565b346100a057806003193601126100a0576001546001600160a01b03166080908152602090f35b80fd5b3461014f57602036600319011261014f57600054600435906001600160a01b03163303610100576040817ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d926003558151908152426020820152a1005b60405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b6064820152608490fd5b600080fd5b3461014f57600036600319011261014f576020600354604051908152f35b3461014f57604036600319011261014f576004356001600160a01b038181169182810361014f5760015460243592906001600160a01b0316808216850361030d57506002546001600160a01b0316916101cd60035485610474565b6040516323b872dd60e01b8152336004820152306024820152604481018690526020968790829060649082906000905af180156102eb57610216916000916102f0575b50610414565b60405163a9059cbb60e01b8152336004820152602481018290529286908490604490829060009089165af19586156102eb577fb39c9bc43f811e1a7ce159c5f147458fdb80266bf23c17322013316e27e086d0966102b994610281926000926102be575b5050610414565b604080516001600160a01b039384168152929094166020830152928101939093526060830191909152336080830152819060a0820190565b0390a1005b6102dd9250803d106102e4575b6102d581836103b8565b8101906103f0565b388061027a565b503d6102cb565b610408565b6103079150883d8a116102e4576102d581836103b8565b38610210565b6002546001600160a01b03168503610331579161032c60035485610452565b6101cd565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606490fd5b3461014f57600036600319011261014f576002546040516001600160a01b039091168152602090f35b3461014f57600036600319011261014f576000546040516001600160a01b039091168152602090f35b90601f8019910116810190811067ffffffffffffffff8211176103da57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261014f5751801515810361014f5790565b6040513d6000823e3d90fd5b1561041b57565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b670de0b6b3a7640000908181029181830414901517821515161561014f570490565b81810291818304149015176001161561014f57670de0b6b3a764000090049056fea26469706673582212200d2b1dc63a9605ce9c6e57eb9201d1add3a8c26642e5ad3e572012f6c24cba0864736f6c63430008160033a26469706673582212202df74938d9f952b732cfcd8d2995c02962a8bf4c276848720e72bcf5e9379f1364736f6c63430008160033","sourceMap":"88:507:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;709:579:79;;:::i;:::-;88:507:81;;785:32:79;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;776:41;88:507:81;;-1:-1:-1;;;;;;88:507:81;-1:-1:-1;;;;;88:507:81;;;;;;;;;;;836:32:79;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;827:41;88:507:81;;-1:-1:-1;;;;;;88:507:81;-1:-1:-1;;;;;88:507:81;;;;;;776:41:79;88:507:81;878:11:79;;88:507:81;;-1:-1:-1;;;;;88:507:81;;;878:11:79;:34;;;;;88:507:81;;-1:-1:-1;;;878:34:79;;;898:4;88:507:81;878:34:79;;88:507:81;905:6:79;88:507:81;;;;;;;;;;;;;;;878:34:79;;;;;;;;88:507:81;-1:-1:-1;827:41:79;88:507:81;;;922:11:79;;-1:-1:-1;;;;;88:507:81;;;922:11:79;:34;;;;;;88:507:81;;922:34:79;;;898:4;88:507:81;922:34:79;;88:507:81;905:6:79;88:507:81;;;;;;;;;;;898:4:79;;922:34;;;;;;;;88:507:81;-1:-1:-1;776:41:79;88:507:81;981:15:79;;-1:-1:-1;;;;;88:507:81;;;981:15:79;827:41;88:507:81;998:15:79;;-1:-1:-1;;;;;88:507:81;;;998:15:79;88:507:81;;;973:46:79;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:507:81;;;;;;;378:4:31;;;88:507:81;378:4:31;;;;88:507:81;378:4:31;;;;973:46:79;;;;;;;;;967:52;88:507:81;;-1:-1:-1;;;;;;88:507:81;-1:-1:-1;;;;;88:507:81;;;;;;;;;;;1036:20:79;;;;;;;;;;;;;;;;;;;;;88:507:81;;;;;;;1036:20:79;;;;;;;;;1029:27;88:507:81;;-1:-1:-1;;;;;;88:507:81;-1:-1:-1;;;;;88:507:81;;;;;;;;;1092:13:79;;378:4:31;88:507:81;1092:13:79;88:507:81;;1078:28:79;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:507:81;;;;;;;;;1078:28:79;;;;;;;;;1066:40;88:507:81;;-1:-1:-1;;;;;;88:507:81;-1:-1:-1;;;;;88:507:81;;;;;;;;;1145:18:79;;378:4:31;88:507:81;1145:18:79;88:507:81;;;1125:39:79;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:507:81;;;;;;;;;1125:39:79;;;;;;;;;;1116:48;1175;1116;785:32;88:507:81;;;;;;;;1116:48:79;88:507:81;;;1116:48:79;88:507:81;;1116:48:79;776:41;88:507:81;1175:14:79;;-1:-1:-1;;;;;88:507:81;;;1175:14:79;1029:27;378:4:31;1190:13:79;;-1:-1:-1;;;;;88:507:81;378:4:31;88:507:81;1190:13:79;88:507:81;;-1:-1:-1;;;1175:48:79;;;-1:-1:-1;;;;;88:507:81;;;;1175:48:79;;88:507:81;-1:-1:-1;;378:4:31;;;88:507:81;1175:48:79;;88:507:81;;;;1175:48:79;;88:507:81;;1175:48:79;88:507:81;;1175:48:79;;88:507:81;;378:4:31;;;;;1175:48:79;;;;;;;;;;1233;1175;;;;;88:507:81;-1:-1:-1;827:41:79;88:507:81;1233:14:79;;-1:-1:-1;;;;;88:507:81;;;1233:14:79;1029:27;378:4:31;;;;;;1248:13:79;;-1:-1:-1;;;;;88:507:81;378:4:31;88:507:81;1248:13:79;88:507:81;;1233:48:79;;;-1:-1:-1;;;;;88:507:81;;;;1233:48:79;;88:507:81;-1:-1:-1;;378:4:31;;;88:507:81;;;;;;;;378:4:31;;;;;1233:48:79;;;;;;;;;;;88:507:81;;;1233:48:79;;;;;;-1:-1:-1;1233:48:79;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;88:507:81;;;1233:48:79;;;;;;;:::i;1175:::-;;;;;;;;;;;;;:::i;:::-;;;;;1125:39;;:::i;922:34::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;88:507:81;;;878:34:79;;;;;;:::i;:::-;;;;;88:507:81;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;1320:10:79;;;;;88:507:81;;-1:-1:-1;;;1320:10:79;;88:507:81;;1320:10:79;;88:507:81;;;;;;;;;;;;1320:10:79;;;;;;;;88:507:81;-1:-1:-1;1434:9:79;378:4:31;;;1057:14:1;;1597:28:79;;1426:18;;-1:-1:-1;;;;;88:507:81;378:4:31;88:507:81;1426:18:79;1474:6;88:507:81;1385:186:79;;1466:15;;-1:-1:-1;;;;;88:507:81;;;1466:15:79;1511:6;88:507:81;1385:186:79;;1503:15;;-1:-1:-1;;;;;88:507:81;;;1503:15:79;1057:14:1;1385:186:79;1057:14:1;;:::i;:::-;-1:-1:-1;;;;;88:507:81;;;1057:14:1;;;1385:186:79;-1:-1:-1;;;;;88:507:81;1385:186:79;;;1057:14:1;;1385:186:79;-1:-1:-1;;;;;88:507:81;;1385:186:79;;1057:14:1;;1385:186:79;1057:14:1;;:::i;:::-;1385:186:79;;;1057:14:1;1597:4:79;378::31;1597:9:79;;-1:-1:-1;;;;;88:507:81;378:4:31;88:507:81;1597:9:79;88:507:81;;;;;;;;;;;;1597:28:79;;88:507:81;1597:28:79;;;:::i;:::-;;;;;;;;;1582:43;1597:28;;;;;88:507:81;1582:43:79;;1057:14:1;;1582:43:79;1636:1;;:::i;:::-;88:507:81;;1597:28:79;;;;1057:14:1;1597:28:79;1057:14:1;1597:28:79;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;1320:10;;;;;;:::i;:::-;;;;88:507:81;;;;;;;;;-1:-1:-1;;88:507:81;;;;;;;378:11:59;88:507:81;;;;;;;;;-1:-1:-1;;88:507:81;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;88:507:81;;;;;291:22:79;88:507:81;;;;;;;;;;;;;-1:-1:-1;;88:507:81;;;;992:4:59;378::31;88:507:81;;-1:-1:-1;;;992:20:59;;88:507:81;;;992:20:59;;;88:507:81;;;;;;;;;;-1:-1:-1;;;;;88:507:81;992:20:59;;;;;;;-1:-1:-1;992:20:59;;;88:507:81;1029:19:59;;;88:507:81;;;-1:-1:-1;;;;;88:507:81;;;;-1:-1:-1;;;;;88:507:81;;;;;;;;;;;;;;;;;992:20:59;;;88:507:81;992:20:59;;88:507:81;992:20:59;;;;;;88:507:81;992:20:59;;;:::i;:::-;;;88:507:81;;;;;1029:19:59;88:507:81;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;992:20:59;;;;;;;;-1:-1:-1;992:20:59;;88:507:81;;;;;;-1:-1:-1;;88:507:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;1057:14:1;88:507:81;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;88:507:81;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;88:507:81;;;;;;;;;;;;;;-1:-1:-1;;;88:507:81;;;;814:2:79;88:507:81;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;88:507:81;;;;;;;;;;;;;;-1:-1:-1;;;88:507:81;;;;814:2:79;88:507:81;;;;;;;:::o;378:4:31:-;;;;;;;;;;88:507:81;;;378:4:31;;;;;:::o;1057:14:1:-;88:507:81;;1057:14:1;-1:-1:-1;1538:22:79;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;88:507:81;;;;;1057:14:1;88:507:81;;;;1057:14:1;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;1538:22:79;1057:14:1;;;;;;;-1:-1:-1;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1057:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1057:14:1;;;;;;88:507:81;1057:14:1;;;;;;;;;;;;;;;;;;88:507:81;;1057:14:1;;;;88:507:81;1057:14:1;;;;;88:507:81;1057:14:1;;88:507:81;1057:14:1;:::o;:::-;;;;;;;;-1:-1:-1;;1057:14:1;;;;:::o;:::-;;;;;;;;;;;;;;;88:507:81;1057:14:1;;88:507:81;;;;;;;;;;;1057:14:1;;;:::i;:::-;88:507:81;;-1:-1:-1;;88:507:81;1057:14:1;;;:::o;:::-;;;;;;;;785:32:79;88:507:81;;;;1057:14:1;;;88:507:81;1057:14:1;;;88:507:81;1057:14:1;;;;;88:507:81;1057:14:1;;;88:507:81;1057:14:1;;;;88:507:81;1057:14:1;;;88:507:81;1057:14:1;;;;;;;;;;;:::i;:::-;;:::o;88:507:81:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;88:507:81;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;141:452::-;265:6;88:507;265:22;;-1:-1:-1;;;;;88:507:81;;;265:22;:31;288:7;88:507;;;;;;;;265:31;;;;;;;;;;;;;88:507;;;;;;;;265:31;;;;;;;;;;331:13;265:31;315:14;265:31;-1:-1:-1;265:31:81;;;141:452;315:14;;88:507;331:13;:::i;:::-;265:6;88:507;418:23;;-1:-1:-1;;;;;88:507:81;;;418:23;88:507;;-1:-1:-1;;;418:35:81;;377:11;265:31;418:35;;88:507;;;-1:-1:-1;;88:507:81;;;;;;418:35;;;;;;;-1:-1:-1;418:35:81;;;141:452;-1:-1:-1;463:4:81;378::31;463:11:81;;-1:-1:-1;;;;;88:507:81;378:4:31;88:507:81;463:11;88:507;288:7;88:507;463:26;;;;;;;88:507;-1:-1:-1;88:507:81;;;;;;;;;;;;;463:26;;265:31;463:26;;;:::i;:::-;;;;;;;;;;509:31;463:26;;;;;141:452;-1:-1:-1;265:6:81;88:507;509:22;;-1:-1:-1;;;;;88:507:81;;;509:22;288:7;88:507;;;;509:31;;;;;;;;265;509;;88:507;;;;;;;;509:31;;;;;;;;;575:10;509:31;315:14;509:31;-1:-1:-1;509:31:81;;;141:452;559:14;;;88:507;575:10;:::i;509:31::-;;;;;;-1:-1:-1;509:31:81;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;463:26;;;;;;:::i;:::-;;;;418:35;;;;;;;-1:-1:-1;418:35:81;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;265:31;;;;;;;;;;;;;;:::i;:::-;;;;1671:64:0;;;;;;;;;;88:507:81;;1671:64:0;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;:::i;:::-;88:507:81;;;;;;;:::i;:::-;1671:64:0;;;-1:-1:-1;1671:64:0;;;;:::o;:::-;;;:::o;1819:584::-;1873:7;88:507:81;;;;;;1873:7:0;;;88:507:81;;;;;1057:14:1;:::o;1869:528:0:-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;88:507:81;;;;;2196:43:0;;;;;;1671:64;;;;88:507:81;;;;1671:64:0;;;;;;88:507:81;1671:64:0;2196:43;;;88:507:81;;2196:43:0;;;;;;;;:::i;:::-;2086:175;88:507:81;;2086:175:0;;;2196:43;2086:175;;;;;:::i;:::-;;;;;;;;;:::i;:::-;2047:232;;;;;2312:27;2047:232;;:::i;:::-;2196:43;88:507:81;;;2312:27:0;;;;;;:::i;396:450:59:-;88:507:81;;;447:32:59;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;776:41:79;88:507:81;;-1:-1:-1;;;;;;88:507:81;-1:-1:-1;;;;;88:507:81;;;;;;;;;;;498:32:59;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;827:41:79;88:507:81;;-1:-1:-1;;;;;;88:507:81;-1:-1:-1;;;;;88:507:81;;;;;;438:41:59;88:507:81;540:11:59;;88:507:81;;;540:11:59;:34;;;;;88:507:81;;-1:-1:-1;;;540:34:59;;;560:4;540:34;;;88:507:81;905:6:79;88:507:81;;;;;;;;;;;;;;;540:34:59;;;;;;;;396:450;-1:-1:-1;489:41:59;88:507:81;584:11:59;;-1:-1:-1;;;;;88:507:81;;;584:11:59;:34;;;;;;88:507:81;;584:34:59;;;560:4;540:34;584;;88:507:81;905:6:79;88:507:81;;;;;;;;;;;;;;;584:34:59;;;;;;;;396:450;-1:-1:-1;438:41:59;88:507:81;643:15:59;;-1:-1:-1;;;;;88:507:81;;;643:15:59;489:41;88:507:81;660:15:59;;-1:-1:-1;;;;;88:507:81;;;660:15:59;88:507:81;;;635:50:59;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;88:507:81;;;;;;;378:4:31;;;88:507:81;378:4:31;;;;88:507:81;378:4:31;;;;635:50:59;;;;;;;;;967:52:79;88:507:81;;-1:-1:-1;;;;;;88:507:81;-1:-1:-1;;;;;88:507:81;;;;;;;;;;;;702:20:59;;;;;;;;;;;;;;;;;;;;88:507:81;;;;;;;702:20:59;;;;;;;;;;695:27;733:48;695:27;785:32:79;88:507:81;;;;;;;;1029:27:79;88:507:81;;;1029:27:79;88:507:81;;695:27:59;438:41;88:507:81;733:14:59;;-1:-1:-1;;;;;88:507:81;;;733:14:59;695:27;378:4:31;;;;748:13:59;;-1:-1:-1;;;;;88:507:81;378:4:31;88:507:81;748:13:59;88:507:81;;-1:-1:-1;;;733:48:59;;;-1:-1:-1;;;;;88:507:81;;;540:34:59;733:48;;88:507:81;-1:-1:-1;;378:4:31;;;88:507:81;733:48:59;;88:507:81;;;;733:48:59;;88:507:81;;733:48:59;88:507:81;;;;;;378:4:31;;;;;733:48:59;;;;;;;;;;791;733;;;;;396:450;-1:-1:-1;489:41:59;88:507:81;791:14:59;;-1:-1:-1;;;;;88:507:81;;;791:14:59;695:27;378:4:31;;;;806:13:59;;-1:-1:-1;;;;;88:507:81;378:4:31;88:507:81;791:48:59;;;;;;;;;;;396:450;;:::o;791:48::-;;;;;;-1:-1:-1;791:48:59;;;;;;:::i;:::-;;396:450::o;733:48::-;;;;;;;;;;;;;:::i;:::-;;;;;584:34;;;;;;:::i;:::-;;;;540;;;;;;:::i;:::-;;;;;88:507:81;;;5202:262:0;378:11:59;5259:6:0;;;5255:203;;5202:262;;:::o;5255:203::-;88:507:81;;5396:31:0;88:507:81;;;5286:41:0;88:507:81;;;;;;;;;;;;;;;;-1:-1:-1;;;88:507:81;;;;5286:41:0;88:507:81;;;;;;;;;;;-1:-1:-1;;;88:507:81;;;;;;;;5346:31:0;;;;;88:507:81;5396:31:0;;;;88:507:81;;;;;;;;;;-1:-1:-1;;;88:507:81;;;;;;;;;;;;5396:31:0;;;;;;:::i;5202:262::-;377:11:81;5259:6:0;;;5255:203;;5202:262;;:::o;2410:424::-;2939:104;;;2445:359;;2410:424;88:507:81;;;;2928:1:0;88:507:81;;;2928:1:0;88:507:81;2410:424:0:o;2445:359::-;-1:-1:-1;88:507:81;;;;2645:67:0;;;;88:507:81;;;1671:64:0;;;88:507:81;;;;2705:4:0;88:507:81;;;;;2645:67:0;;;;;:::i;:::-;2534:196;1671:64;88:507:81;;2534:196:0;;1671:64;2645:67;2534:196;;1671:64;;;;;;88:507:81;1671:64:0;;;;;;;:::i;:::-;;;2534:196;1671:64;2534:196;;;;;;;:::i;:::-;2499:245;;;;;;;:::i;:::-;;2445:359;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","POOL_ID()":"e0d7d0e9","TEST_SWAP_FEE()":"620a2607","failed()":"ba414fa6","getPoolLiquidityToken(uint256)":"e21485ad","setUp()":"0a9254e4","test_LogNormal_update_UpdatesSwapFee()":"58f3fd38"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"upper\",\"type\":\"uint256\"}],\"name\":\"BisectionLib_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"lowerResult\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"upperResult\",\"type\":\"int256\"}],\"name\":\"BisectionLib_RootOutsideBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Infinity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Min\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NegativeInfinity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfBounds\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POOL_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TEST_SWAP_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"getPoolLiquidityToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_LogNormal_update_UpdatesSwapFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"BisectionLib_InvalidBounds(uint256,uint256)\":[{\"details\":\"Thrown when the lower bound is greater than the upper bound.\"}],\"BisectionLib_RootOutsideBounds(int256,int256)\":[{\"details\":\"Thrown when the result of the function `fx` for each input, `upper` and `lower`, is the same sign.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/unit/strategies/LogNormal/Update.t.sol\":\"LogNormalUpdateTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/solstat/lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd\",\"dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4\"]},\"lib/solstat/lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec\",\"dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw\"]},\"lib/solstat/lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0\",\"dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes\"]},\"lib/solstat/lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc\",\"dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio\"]},\"lib/solstat/lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/solstat/lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f\",\"dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz\"]},\"lib/solstat/lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/solstat/lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3\",\"dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p\"]},\"lib/solstat/lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc\",\"dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH\"]},\"lib/solstat/lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51\",\"dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd\"]},\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]},\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol\":{\"keccak256\":\"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8\",\"dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW\"]},\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257\",\"dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ\"]},\"lib/solstat/lib/solmate/src/utils/LibString.sol\":{\"keccak256\":\"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d\",\"dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]},\"lib/solstat/src/Gaussian.sol\":{\"keccak256\":\"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9\",\"dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs\"]},\"lib/solstat/src/Units.sol\":{\"keccak256\":\"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e\",\"dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2\"]},\"src/DFMM.sol\":{\"keccak256\":\"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c\",\"dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR\"]},\"src/LPToken.sol\":{\"keccak256\":\"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd\",\"dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e\"]},\"src/interfaces/IDFMM.sol\":{\"keccak256\":\"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad\",\"dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv\"]},\"src/interfaces/IStrategy.sol\":{\"keccak256\":\"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca\",\"dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS\"]},\"src/lib/DynamicParamLib.sol\":{\"keccak256\":\"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5\",\"dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ\"]},\"src/lib/ScalingLib.sol\":{\"keccak256\":\"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c\",\"dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp\"]},\"src/lib/SignedWadMath.sol\":{\"keccak256\":\"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a\",\"dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN\"]},\"src/lib/StrategyLib.sol\":{\"keccak256\":\"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc\",\"dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd\"]},\"src/solvers/BisectionLib.sol\":{\"keccak256\":\"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8\",\"dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k\"]},\"src/solvers/LogNormal/LogNormalExtendedLib.sol\":{\"keccak256\":\"0x204015cfa704225710b310e02fd4ea4648617f580cbb08fb22306357969e4a63\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0b2df304ee8a88040b573201316e12756e74c042fddbb4ec25d23ecd34971768\",\"dweb:/ipfs/QmaC4vUQY6UAD6UrEF3rvMLyYbtQKuF9Bbgr3aqkGMzSqF\"]},\"src/solvers/LogNormal/LogNormalSolver.sol\":{\"keccak256\":\"0xe97dbbad3eb6aadeaaa7c9ad82cf08a79006ad3058e6dcbc2576e17d6337cc1d\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://22e41f296c3675c79ba6a670d081e073cdb935fd44f8e739a88a250be0766004\",\"dweb:/ipfs/QmZMYJq14i3q2zKTerD836DXC9deux4EggR3BNp61J4t2U\"]},\"src/strategies/LogNormal/LogNormal.sol\":{\"keccak256\":\"0xce0e14a6180d989eff4223bd173904717c745f93c7d02e972dce9d4f5a414d15\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0fe700ac552153eb030453532afdf52d7ae1b7f8ca53b0f050ab9a9e0b1f0ee9\",\"dweb:/ipfs/QmPQW7F1wUqLKs2qPmvJq5EiBfUmPGGsW4y9dUmMtDkfnt\"]},\"src/strategies/LogNormal/LogNormalLib.sol\":{\"keccak256\":\"0x208f8cd3b02d7305d4c54cf02c07f443ddfed1c6c719e752888be208c3ad3645\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://850b799c647dfbece76c7c1daad3ac375243f66daa0eb8206eeeee783982429c\",\"dweb:/ipfs/QmUrixVb4EAxccZxvZCoAJjF8YRqnMbX6cpGCwPfjZvgQk\"]},\"src/strategies/LogNormal/LogNormalMath.sol\":{\"keccak256\":\"0x5d97983f91cf766e1e87ef244a39c6ec6961de38c4c8817030b32edd72a1e65f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://df6121bf8157bad9b659d484fdcc8ebf0cd41179b323d06225d1cf6bff266663\",\"dweb:/ipfs/QmRGN6MwWZb9f6X4Xqv7f3VpUFWXFb36jDKcyEQVaFUhhz\"]},\"src/test/helpers/ArbiterToken.sol\":{\"keccak256\":\"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a\",\"dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg\"]},\"src/test/helpers/Lex.sol\":{\"keccak256\":\"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252\",\"dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC\"]},\"src/test/helpers/MockStrategy.sol\":{\"keccak256\":\"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5\",\"dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw\"]},\"src/test/helpers/SetUp.sol\":{\"keccak256\":\"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30\",\"dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14\"]},\"src/test/unit/DFMM/SetUp.sol\":{\"keccak256\":\"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4\",\"dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm\"]},\"src/test/unit/strategies/LogNormal/SetUp.sol\":{\"keccak256\":\"0x272206974452b0c363a55f2658a4c24e6355f5a06fe817532c723af8f732540d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://87550594bcc0d4b66eada3e1692ac1b15064eefee9cbb356ff8c4410f4a51e78\",\"dweb:/ipfs/QmS3HCkpwfti4ifTitYoR5sRLb8ShMDvkW9ST9Ta8cUvu5\"]},\"src/test/unit/strategies/LogNormal/Update.t.sol\":{\"keccak256\":\"0x7e0025bcd9e05eb0ca66d453c551fdd98d2b8a06ab2e195755daeb5dd31fd762\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6723de61c79c97dedd3c08192d3846f3ee422215d67d2269c575fb305f14f538\",\"dweb:/ipfs/QmfN55f7VWc5Hks4upYgSRM9Xt1vopfuTf4R2NJPLLf6Cp\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"lower","type":"uint256"},{"internalType":"uint256","name":"upper","type":"uint256"}],"type":"error","name":"BisectionLib_InvalidBounds"},{"inputs":[{"internalType":"int256","name":"lowerResult","type":"int256"},{"internalType":"int256","name":"upperResult","type":"int256"}],"type":"error","name":"BisectionLib_RootOutsideBounds"},{"inputs":[],"type":"error","name":"Infinity"},{"inputs":[],"type":"error","name":"Min"},{"inputs":[],"type":"error","name":"NegativeInfinity"},{"inputs":[],"type":"error","name":"OutOfBounds"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"POOL_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TEST_SWAP_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPoolLiquidityToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_LogNormal_update_UpdatesSwapFee"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/test/unit/strategies/LogNormal/Update.t.sol":"LogNormalUpdateTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"lib/solstat/lib/forge-std/src/Base.sol":{"keccak256":"0x7f6016716c0c6f49e8163af625290c7ef270a045d9b82be04e269035726d3213","urls":["bzz-raw://bd050537b58640f8545b319928ee66bef9649d1ebd68a3afa1d28a1ce8cea3dd","dweb:/ipfs/QmbBVxERnZ2ciQuRuZ45czd2DRgouCLEhibLWtC2CrH2j4"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x9d53fb0317c888ed0ef4a8476883d4304f5e7e6fa0161d84d18fa27a63875524","urls":["bzz-raw://9638e9a042f5b7695953ea394072f90b814ac98312e447f45c4f2f6cdb22c3ec","dweb:/ipfs/QmPvKu8hyzB2og54Lecmb2DvEiAgM9o5UC2gGgRQJ42PQw"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdChains.sol":{"keccak256":"0xd9f9791f56c2afcd841237417d5a55fa8b69de2c1b528ddbfc7d7823fe136606","urls":["bzz-raw://f66271850d38488984ec1e38aeb57df1cda53538b2ddd19e2164c767792905f0","dweb:/ipfs/QmetNJMTfgJ7SCNMwfLrZEwnL3xdNaBY5vMiqrRrUWjjes"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdCheats.sol":{"keccak256":"0x94d97a78c720a10212552c5f7f27c61ea58eb027bd51dd054efae6925e785269","urls":["bzz-raw://563fd7373c84d700606fc113d535b1a103e7bad4b0412e6cb515d927fb8f57bc","dweb:/ipfs/QmQEjP2DXCXRC4bxXPonLfF8cq1UvMhdQu5X1JynPntvio"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdJson.sol":{"keccak256":"0x113bce4d6d0fe7c4e1e3bf2760ba21c075448660a8dae6003f27b9ff86890612","urls":["bzz-raw://8c8a169ea47398b475696e66d07e354d9997680b5f954418caeeaec5427a131f","dweb:/ipfs/QmSTK6XmjgYZ2CCGZ87AVTowNL3UWfRvqhT6DTbZoKyJzz"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb31c4ee03d05c6202f6e354245ac3ab883d954f9f36074902089e1b3e645273d","urls":["bzz-raw://33bd98bde50b840b8d7d5cebf818176b9f219345078ed5d3bd0071f035efb2e3","dweb:/ipfs/QmPYC7FZvCWCPF2qWg6TXXTTPGEdnT4y5nebPn1AoZ1H4p"],"license":"MIT"},"lib/solstat/lib/forge-std/src/StdUtils.sol":{"keccak256":"0xc3222299fd637498c81ab5c8e15c9327289d3708fb8a7063dd10a55a8813c9cf","urls":["bzz-raw://b6f5f818e75e8ae5a67b58cff9b351dd790a72d0a5332fb6f425a3561801b6cc","dweb:/ipfs/QmXJEPtMM1AzwCh6u1o1wL2xdi1qRyxsTLt1eVgeC8Y1QH"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Test.sol":{"keccak256":"0xb7004fe1ceab4a20ae13baec8732a5414b28d5ddb06f9f4184b49c1fc1d61521","urls":["bzz-raw://5a60b5d84bd7d7e455f4a1ca1d260f6b50c419e4c4e7196ef32fd77d0f480d51","dweb:/ipfs/QmYwRMAYYsQuvvM4mnagYs8Zhqm5VXicXmxoqEvkiUzQSd"],"license":"MIT"},"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/solstat/lib/solmate/src/test/utils/mocks/MockERC20.sol":{"keccak256":"0x8c182806df355c780d3e0b5e7975b32e312e961f0d51f30ba46732bd7b7ba23d","urls":["bzz-raw://17cd328d8e73eec3b40c4ff19f766e3d991740cafddcc1f4def587ec6862e4f8","dweb:/ipfs/QmSzbMf2oP5ziqQZGRngAerQvEvtkjzXJFpuu2PmhF24BW"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x0bf1d4f3999a4471e0fded0a2f67e7fe328e2a27385348571b1fc0a8d9c9f62e","urls":["bzz-raw://737232ccd46bfbe6f34a3e5bc24c345777da47e6ea27bcc46d2c3931883c2257","dweb:/ipfs/QmeA6ikG9dQKZgkJYUVGXcApuCii34h7qtmguToRdSU3qZ"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/LibString.sol":{"keccak256":"0x69f3e19d8a6f9e625d865feb389b7bdf78412ece18dec66229783ae613a2a6db","urls":["bzz-raw://4af2d0cfae75af3d0c5ae78b14e5820e11997f9b93370d00a47faffbc8853e2d","dweb:/ipfs/QmY4mdNQ5jjB7ZZpCu2LgFV8vS6pFUxiA66L1h8f9eLGdc"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"},"lib/solstat/src/Gaussian.sol":{"keccak256":"0x6d8461cfbbcd52f15b35af8e5d3fdf67a544bcf3a20db2e00fdfee9f538489ec","urls":["bzz-raw://169aac115f217f00d741e3b63413df28f540e33d3b628a6f42a5ef4ed8af8bd9","dweb:/ipfs/QmTHwgyiPgygMWnW5vTem1ARicssoBNw69ASMrCdgEPdKs"],"license":"MIT"},"lib/solstat/src/Units.sol":{"keccak256":"0x7bd75c8513c11a58e3afd88cc083318e27453ae5545db3023b07de2cd0a672a5","urls":["bzz-raw://0ae27dbbd82b4dea4afb0caf04dcab5bcea62790e46b785bd752a11e98d0fc1e","dweb:/ipfs/QmbF9xjLJSE6h3v1qMVYhBYY1PksgfgBkVMhefsxrA8cP2"],"license":"MIT"},"src/DFMM.sol":{"keccak256":"0xde89fed9dcf72da87a816c564eea506efa3323dd6af448bac394cca21f013708","urls":["bzz-raw://47d396f68a663f321618648cd28f381377a82aa7ada03ffa0c1313a39eaf533c","dweb:/ipfs/QmdzouVnoqcFBizciojGSACdvjHZMacquw4qpcWyq9zvTR"],"license":"GPL-3.0-or-later"},"src/LPToken.sol":{"keccak256":"0x889ae4c907e8c359f9ed7efa3331fe848ef1d4253bd05dfe9255fd1a5c173fdd","urls":["bzz-raw://60e8f45982c89dcd2527c1a473c51e6196e2e3de77ea948b1cac733503a862cd","dweb:/ipfs/QmSJaj5JM3bUkCjh2xYznammH9isoRAKZ7p9LZrgtUFf6e"],"license":"GPL-3.0-or-later"},"src/interfaces/IDFMM.sol":{"keccak256":"0xd5b5452996dda5edf737d0aff0753b241d5209af867cf21d235288b2786b6826","urls":["bzz-raw://35b24ba013cf67d1d887abf1872f18fe91dc8951c21470590a4341c82e5af1ad","dweb:/ipfs/QmSHMfk6v8Z9UmDmfzKGezJqbgV4nostapBfMJiqG67Syv"],"license":"GPL-3.0-or-later"},"src/interfaces/IStrategy.sol":{"keccak256":"0xffe5e42cb4b35fcd34eec76c3af4f71b806ff818d3ef29d1bb88854dc987b1c9","urls":["bzz-raw://d3416b7a2ffeba44c08e99829fa36a51141feed449077f263e4c08bb0e9ed4ca","dweb:/ipfs/QmYKj3Q5uQ1TojRp6urNQFJXadVwDeQqms8MHaMGXy5DGS"],"license":"GPL-3.0-or-later"},"src/lib/DynamicParamLib.sol":{"keccak256":"0x3b6e3212336e9ea98f15dedd38ba356e3ca97e3a10cb2fdb11df0056fc40126a","urls":["bzz-raw://9bddae3638de314e1c0046caf4974e65f6e68e64a3dd31fe5cf0330e9ebdf7d5","dweb:/ipfs/QmNPhHmQ68apS4eWvYBHe17qeSEQicgcAUkCfHC9KaLzDJ"],"license":"GPL-3.0-or-later"},"src/lib/ScalingLib.sol":{"keccak256":"0x42382f8b54b89847eeee6681f4d104f02c369ede7eb43953e24f87774a3948ee","urls":["bzz-raw://7b1427be24cdf61029a935c0ef527e734648d8a8b0c05ce23d08da22efa4686c","dweb:/ipfs/QmafSPksGDmYosuAdD9YR92BLtX4uaCVDwHjb4f2Y7LgXp"],"license":"GPL-3.0-or-later"},"src/lib/SignedWadMath.sol":{"keccak256":"0x82567fd3aff4232f78748b7b5ba863303360a72cc96969193716ae23150a5630","urls":["bzz-raw://d300c1fcc03607059fcdc1924e20dc99cc8bfe43785b8f04822cd51da169637a","dweb:/ipfs/QmYJr5vK3CMvT4b9R7QLvj12z28iyNWRodZKpiFxcaXRcN"],"license":"MIT"},"src/lib/StrategyLib.sol":{"keccak256":"0xd85613792edcfb6ae0d3514b24ae556fb00ea626ab5b8b4e74a49b33b639fb6c","urls":["bzz-raw://5b11c21bd4c718d0430363807b7bcc145133382e1480129e1bbffcba178365cc","dweb:/ipfs/QmduNUCbUJJnxy75fuewpwX2GuwYb56ji44usYtEA5rnFd"],"license":"GPL-3.0-or-later"},"src/solvers/BisectionLib.sol":{"keccak256":"0x602e903ad5ceda3d82e8d289e1da09ecdcedac83ed9042e7a1af616bf5cb5294","urls":["bzz-raw://b58506f2da560ec466644ea3b26d417f40065196ca0fc53245114a1a52723aa8","dweb:/ipfs/QmacSemwiBVV43Q3Uk3efk3nGHAKt6o9WpS58hHoDrL36k"],"license":"GPL-3.0-or-later"},"src/solvers/LogNormal/LogNormalExtendedLib.sol":{"keccak256":"0x204015cfa704225710b310e02fd4ea4648617f580cbb08fb22306357969e4a63","urls":["bzz-raw://0b2df304ee8a88040b573201316e12756e74c042fddbb4ec25d23ecd34971768","dweb:/ipfs/QmaC4vUQY6UAD6UrEF3rvMLyYbtQKuF9Bbgr3aqkGMzSqF"],"license":"GPL-3.0-or-later"},"src/solvers/LogNormal/LogNormalSolver.sol":{"keccak256":"0xe97dbbad3eb6aadeaaa7c9ad82cf08a79006ad3058e6dcbc2576e17d6337cc1d","urls":["bzz-raw://22e41f296c3675c79ba6a670d081e073cdb935fd44f8e739a88a250be0766004","dweb:/ipfs/QmZMYJq14i3q2zKTerD836DXC9deux4EggR3BNp61J4t2U"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormal.sol":{"keccak256":"0xce0e14a6180d989eff4223bd173904717c745f93c7d02e972dce9d4f5a414d15","urls":["bzz-raw://0fe700ac552153eb030453532afdf52d7ae1b7f8ca53b0f050ab9a9e0b1f0ee9","dweb:/ipfs/QmPQW7F1wUqLKs2qPmvJq5EiBfUmPGGsW4y9dUmMtDkfnt"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormalLib.sol":{"keccak256":"0x208f8cd3b02d7305d4c54cf02c07f443ddfed1c6c719e752888be208c3ad3645","urls":["bzz-raw://850b799c647dfbece76c7c1daad3ac375243f66daa0eb8206eeeee783982429c","dweb:/ipfs/QmUrixVb4EAxccZxvZCoAJjF8YRqnMbX6cpGCwPfjZvgQk"],"license":"GPL-3.0-or-later"},"src/strategies/LogNormal/LogNormalMath.sol":{"keccak256":"0x5d97983f91cf766e1e87ef244a39c6ec6961de38c4c8817030b32edd72a1e65f","urls":["bzz-raw://df6121bf8157bad9b659d484fdcc8ebf0cd41179b323d06225d1cf6bff266663","dweb:/ipfs/QmRGN6MwWZb9f6X4Xqv7f3VpUFWXFb36jDKcyEQVaFUhhz"],"license":"GPL-3.0-or-later"},"src/test/helpers/ArbiterToken.sol":{"keccak256":"0xe561e001c52c9dec20a7ea5f965dba2d33154c0b23ac6bc0f6ee894c23a2ae39","urls":["bzz-raw://e96a2d59ca5f6ac4e89964e8b0fc7ce25690a903a81457f50a52d6bc1f0ceb7a","dweb:/ipfs/QmfKR3jWp21voKgUtbQoTnQituGj7RUSk56JrTeJAwkVdg"],"license":"UNLICENSED"},"src/test/helpers/Lex.sol":{"keccak256":"0x90831c5a9d28faa10722e9bebe06847952f011e4ad474afc8f716514bed34028","urls":["bzz-raw://c8f6c2ff4dd1f468eebf17e1f4b72deb8d25fa5d22a81ad23e887ea627a0f252","dweb:/ipfs/Qmc6dpUpP5hLfQBDqZCbM4LYe3s8Tc7sA2eAy3BXSdVBNC"],"license":"UNLICENSED"},"src/test/helpers/MockStrategy.sol":{"keccak256":"0xdbe4b63dc426d4be75374894312f471b8e10494f3f2849ebf5963bab6f26bb8a","urls":["bzz-raw://9914e1a27927abe1e665da2373f89c8b7c864a1103b445a577a5ebf00dd0c0c5","dweb:/ipfs/QmVQ61g7sunwgN47179hbCZKmgUZ3xzS5etc9hW1XPhzgw"],"license":"UNLICENSED"},"src/test/helpers/SetUp.sol":{"keccak256":"0xa6d8d6fd4cb3a270885c15239d09cd4ee68aea4c1424cb4c5f9c26e1171733eb","urls":["bzz-raw://0c6585e0f9e5e858326448bcf86fd76660358a3566f804f624e8fa099f3b6f30","dweb:/ipfs/QmVU23pwd69Pz3Gr4gYRe9CBfU5VW1Vmg9gJKPPecqRE14"],"license":"UNLICENSED"},"src/test/unit/DFMM/SetUp.sol":{"keccak256":"0xbb140afb30a9c346ca2ba8ad88bd00510adbcfee9123c4b577bb0e395c01535a","urls":["bzz-raw://3cf77ef9a6d60f4079f05f911c29b39f8f011d2e504f0402bd6d6f1cb5f19bb4","dweb:/ipfs/QmWJ9AaBE5hZqK8PRaMDsdyV2e4h6iezcXC5L3sLovdvvm"],"license":"UNLICENSED"},"src/test/unit/strategies/LogNormal/SetUp.sol":{"keccak256":"0x272206974452b0c363a55f2658a4c24e6355f5a06fe817532c723af8f732540d","urls":["bzz-raw://87550594bcc0d4b66eada3e1692ac1b15064eefee9cbb356ff8c4410f4a51e78","dweb:/ipfs/QmS3HCkpwfti4ifTitYoR5sRLb8ShMDvkW9ST9Ta8cUvu5"],"license":"UNLICENSED"},"src/test/unit/strategies/LogNormal/Update.t.sol":{"keccak256":"0x7e0025bcd9e05eb0ca66d453c551fdd98d2b8a06ab2e195755daeb5dd31fd762","urls":["bzz-raw://6723de61c79c97dedd3c08192d3846f3ee422215d67d2269c575fb305f14f538","dweb:/ipfs/QmfN55f7VWc5Hks4upYgSRM9Xt1vopfuTf4R2NJPLLf6Cp"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/test/unit/strategies/LogNormal/Update.t.sol","id":48854,"exportedSymbols":{"ArbiterToken":[43381],"BisectionLib_InvalidBounds":[30985],"BisectionLib_RootOutsideBounds":[30992],"DFMM":[29062],"DFMMSetUp":[45761],"DSTest":[1786],"DynamicParam":[29851],"DynamicParamLib":[30012],"EPSILON":[30665],"ERC20":[25948],"FixedPointMathLib":[26640],"Gaussian":[27374],"HALF":[30636],"IDFMM":[29730],"INFINITY_IS_NOT_REAL":[30646],"IStrategy":[29839],"I_ONE":[30655],"I_TWO":[30661],"LPToken":[29516],"Lex":[44392],"LibString":[26659],"LogNormal":[38879],"LogNormalLib":[39517],"LogNormalSetUp":[48576],"LogNormalSolver":[36460],"LogNormalUpdateTest":[48853],"MAX_ITER":[33842],"Min":[27736],"MockERC20":[25560],"MockStrategy":[44649],"ONE":[30639],"SQRT_WAD":[30630],"SafeTransferLib":[26744],"SetUp":[44852],"SignedWadMathLib":[30623],"StdAssertions":[2708],"StdChains":[3244],"StdCheats":[5181],"StdStorage":[6088],"StdUtils":[8153],"TWO":[30633],"Test":[8195],"TestBase":[1843],"Vm":[9352],"WETH":[26027],"ZERO":[30649],"abs":[27763],"bisection":[31118],"computeAllocationGivenX":[30723],"computeAllocationGivenY":[30775],"computeD1":[34040],"computeD2":[34104],"computeHalfSigmaTauSquared":[39613],"computeInitialPoolData":[34282],"computeLGivenX":[33886],"computeLnSDivK":[39549],"computeNextLiquidity":[34383],"computeNextRx":[34484],"computeNextRy":[34585],"computeOptimalLower":[35332],"computeOptimalRaise":[35398],"computeScalingFactor":[30048],"computeSigmaSqrtTau":[39577],"computeXGivenL":[33976],"computeYGivenL":[33932],"console":[17416],"console2":[25512],"diffLower":[34961],"diffRaise":[35266],"diviWad":[27813],"downscaleDown":[30080],"downscaleUp":[30096],"findRootLiquidity":[34224],"findRootLower":[34631],"findRootRaise":[34677],"findRootX":[34184],"findRootY":[34144],"muli":[27777],"muliWad":[27795],"mulidiv":[39703],"mulidivUp":[39659],"stdError":[5247],"stdJson":[5914],"stdMath":[6056],"stdStorage":[7522],"upscale":[30064]},"nodeType":"SourceUnit","src":"39:557:81","nodes":[{"id":48796,"nodeType":"PragmaDirective","src":"39:24:81","nodes":[],"literals":["solidity","^","0.8",".13"]},{"id":48797,"nodeType":"ImportDirective","src":"65:21:81","nodes":[],"absolutePath":"src/test/unit/strategies/LogNormal/SetUp.sol","file":"./SetUp.sol","nameLocation":"-1:-1:-1","scope":48854,"sourceUnit":48577,"symbolAliases":[],"unitAlias":""},{"id":48853,"nodeType":"ContractDefinition","src":"88:507:81","nodes":[{"id":48852,"nodeType":"FunctionDefinition","src":"141:452:81","nodes":[],"body":{"id":48851,"nodeType":"Block","src":"201:392:81","nodes":[],"statements":[{"assignments":[48808],"declarations":[{"constant":false,"id":48808,"mutability":"mutable","name":"params","nameLocation":"244:6:81","nodeType":"VariableDeclaration","scope":48851,"src":"211:39:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams"},"typeName":{"id":48807,"nodeType":"UserDefinedTypeName","pathNode":{"id":48806,"name":"LogNormal.LogNormalParams","nameLocations":["211:9:81","221:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":38204,"src":"211:25:81"},"referencedDeclaration":38204,"src":"211:25:81","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_storage_ptr","typeString":"struct LogNormal.LogNormalParams"}},"visibility":"internal"}],"id":48813,"initialValue":{"arguments":[{"id":48811,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"288:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48809,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48318,"src":"265:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":48810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"272:15:81","memberName":"fetchPoolParams","nodeType":"MemberAccess","referencedDeclaration":35460,"src":"265:22:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"function (uint256) view external returns (struct LogNormal.LogNormalParams memory)"}},"id":48812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"265:31:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"nodeType":"VariableDeclarationStatement","src":"211:85:81"},{"expression":{"arguments":[{"expression":{"id":48815,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"315:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":48816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"322:7:81","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":38201,"src":"315:14:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48817,"name":"TEST_SWAP_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44731,"src":"331:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48814,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"306:8:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":48818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"306:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48819,"nodeType":"ExpressionStatement","src":"306:39:81"},{"assignments":[48821],"declarations":[{"constant":false,"id":48821,"mutability":"mutable","name":"newSwapFee","nameLocation":"364:10:81","nodeType":"VariableDeclaration","scope":48851,"src":"356:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48820,"name":"uint256","nodeType":"ElementaryTypeName","src":"356:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48823,"initialValue":{"hexValue":"302e303034","id":48822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"377:11:81","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_4000000000000000_by_1","typeString":"int_const 4000000000000000"},"value":"0.004"},"nodeType":"VariableDeclarationStatement","src":"356:32:81"},{"assignments":[48825],"declarations":[{"constant":false,"id":48825,"mutability":"mutable","name":"data","nameLocation":"411:4:81","nodeType":"VariableDeclaration","scope":48851,"src":"398:17:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48824,"name":"bytes","nodeType":"ElementaryTypeName","src":"398:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":48830,"initialValue":{"arguments":[{"id":48828,"name":"newSwapFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48821,"src":"442:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48826,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48318,"src":"418:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":48827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"425:16:81","memberName":"prepareFeeUpdate","nodeType":"MemberAccess","referencedDeclaration":35473,"src":"418:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure external returns (bytes memory)"}},"id":48829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"418:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"398:55:81"},{"expression":{"arguments":[{"id":48834,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"475:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48835,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48825,"src":"484:4:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48831,"name":"dfmm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44719,"src":"463:4:81","typeDescriptions":{"typeIdentifier":"t_contract$_DFMM_$29062","typeString":"contract DFMM"}},"id":48833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"468:6:81","memberName":"update","nodeType":"MemberAccess","referencedDeclaration":28395,"src":"463:11:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory) external"}},"id":48836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"463:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48837,"nodeType":"ExpressionStatement","src":"463:26:81"},{"expression":{"id":48843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48838,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"500:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48841,"name":"POOL_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48320,"src":"532:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48839,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48318,"src":"509:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_LogNormalSolver_$36460","typeString":"contract LogNormalSolver"}},"id":48840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"516:15:81","memberName":"fetchPoolParams","nodeType":"MemberAccess","referencedDeclaration":35460,"src":"509:22:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_LogNormalParams_$38204_memory_ptr_$","typeString":"function (uint256) view external returns (struct LogNormal.LogNormalParams memory)"}},"id":48842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"509:31:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"src":"500:40:81","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":48844,"nodeType":"ExpressionStatement","src":"500:40:81"},{"expression":{"arguments":[{"expression":{"id":48846,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"559:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_LogNormalParams_$38204_memory_ptr","typeString":"struct LogNormal.LogNormalParams memory"}},"id":48847,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"566:7:81","memberName":"swapFee","nodeType":"MemberAccess","referencedDeclaration":38201,"src":"559:14:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48848,"name":"newSwapFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48821,"src":"575:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48845,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[2011,2036,2049,2065,2107,2149,2191,2228,2265,2302,320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"550:8:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":48849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"550:36:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48850,"nodeType":"ExpressionStatement","src":"550:36:81"}]},"functionSelector":"58f3fd38","implemented":true,"kind":"function","modifiers":[{"id":48802,"kind":"modifierInvocation","modifierName":{"id":48801,"name":"init","nameLocations":["196:4:81"],"nodeType":"IdentifierPath","referencedDeclaration":48514,"src":"196:4:81"},"nodeType":"ModifierInvocation","src":"196:4:81"}],"name":"test_LogNormal_update_UpdatesSwapFee","nameLocation":"150:36:81","parameters":{"id":48800,"nodeType":"ParameterList","parameters":[],"src":"186:2:81"},"returnParameters":{"id":48803,"nodeType":"ParameterList","parameters":[],"src":"201:0:81"},"scope":48853,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":48798,"name":"LogNormalSetUp","nameLocations":["120:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":48576,"src":"120:14:81"},"id":48799,"nodeType":"InheritanceSpecifier","src":"120:14:81"}],"canonicalName":"LogNormalUpdateTest","contractDependencies":[25560,29062,36460,38879,44392],"contractKind":"contract","fullyImplemented":true,"internalFunctionIDs":{"34224":1},"linearizedBaseContracts":[48853,48576,44852,8195,1843,1840,8153,5181,4792,3244,2708,1786],"name":"LogNormalUpdateTest","nameLocation":"97:19:81","scope":48854,"usedErrors":[26761,26763,26765,27736,30985,30992],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85,1905,1910,1915,1922,1929,1936]}],"license":"UNLICENSED"},"id":81} \ No newline at end of file diff --git a/out/Vm.sol/Vm.json b/out/Vm.sol/Vm.json deleted file mode 100644 index e376d4c3..00000000 --- a/out/Vm.sol/Vm.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"accesses","inputs":[{"name":"target","type":"address","internalType":"address"}],"outputs":[{"name":"readSlots","type":"bytes32[]","internalType":"bytes32[]"},{"name":"writeSlots","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"activeFork","inputs":[],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"addr","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"allowCheatcodes","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"assume","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"broadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"chainId","inputs":[{"name":"newChainId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"clearMockedCalls","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"closeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"coinbase","inputs":[{"name":"newCoinbase","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSelectFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSelectFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSelectFork","inputs":[{"name":"urlOrAlias","type":"string","internalType":"string"}],"outputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"deal","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newBalance","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"difficulty","inputs":[{"name":"newDifficulty","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool","internalType":"bool"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256","internalType":"int256"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"etch","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"newRuntimeBytecode","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"checkTopic1","type":"bool","internalType":"bool"},{"name":"checkTopic2","type":"bool","internalType":"bool"},{"name":"checkTopic3","type":"bool","internalType":"bool"},{"name":"checkData","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectEmit","inputs":[{"name":"checkTopic1","type":"bool","internalType":"bool"},{"name":"checkTopic2","type":"bool","internalType":"bool"},{"name":"checkTopic3","type":"bool","internalType":"bool"},{"name":"checkData","type":"bool","internalType":"bool"},{"name":"emitter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes4","internalType":"bytes4"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[{"name":"revertData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"expectRevert","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fee","inputs":[{"name":"newBasefee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"ffi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"fsMetadata","inputs":[{"name":"fileOrDir","type":"string","internalType":"string"}],"outputs":[{"name":"metadata","type":"tuple","internalType":"struct VmSafe.FsMetadata","components":[{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"readOnly","type":"bool","internalType":"bool"},{"name":"modified","type":"uint256","internalType":"uint256"},{"name":"accessed","type":"uint256","internalType":"uint256"},{"name":"created","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"getCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"creationBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDeployedCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"runtimeBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getNonce","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getRecordedLogs","inputs":[],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.Log[]","components":[{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"emitter","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"isPersistent","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"persistent","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"label","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newLabel","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"load","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"data","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"makePersistent","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"account0","type":"address","internalType":"address"},{"name":"account1","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makePersistent","inputs":[{"name":"account0","type":"address","internalType":"address"},{"name":"account1","type":"address","internalType":"address"},{"name":"account2","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"msgValue","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"returnData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mockCall","inputs":[{"name":"callee","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"returnData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"parseAddress","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseBool","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes32","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseInt","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseUint","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"pauseGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prank","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"txOrigin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"prank","inputs":[{"name":"msgSender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"projectRoot","inputs":[],"outputs":[{"name":"path","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"readLine","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"line","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"record","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recordLogs","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rememberKey","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"resumeGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revertTo","inputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"revokePersistent","inputs":[{"name":"accounts","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokePersistent","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"roll","inputs":[{"name":"newHeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rollFork","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rpcUrl","inputs":[{"name":"rpcAlias","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"rpcUrlStructs","inputs":[],"outputs":[{"name":"urls","type":"tuple[]","internalType":"struct VmSafe.Rpc[]","components":[{"name":"key","type":"string","internalType":"string"},{"name":"url","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"rpcUrls","inputs":[],"outputs":[{"name":"urls","type":"string[2][]","internalType":"string[2][]"}],"stateMutability":"view"},{"type":"function","name":"selectFork","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"setEnv","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newNonce","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"snapshot","inputs":[],"outputs":[{"name":"snapshotId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startPrank","inputs":[{"name":"msgSender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startPrank","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"txOrigin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopPrank","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"store","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"transact","inputs":[{"name":"forkId","type":"uint256","internalType":"uint256"},{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transact","inputs":[{"name":"txHash","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"warp","inputs":[{"name":"newTimestamp","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeFile","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeLine","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"accesses(address)":"65bc9481","activeFork()":"2f103f22","addr(uint256)":"ffa18649","allowCheatcodes(address)":"ea060291","assume(bool)":"4c63e562","broadcast()":"afc98040","broadcast(address)":"e6962cdb","broadcast(uint256)":"f67a965b","chainId(uint256)":"4049ddd2","clearMockedCalls()":"3fdf4e15","closeFile(string)":"48c3241f","coinbase(address)":"ff483c54","createFork(string)":"31ba3498","createFork(string,bytes32)":"7ca29682","createFork(string,uint256)":"6ba3ba2b","createSelectFork(string)":"98680034","createSelectFork(string,bytes32)":"84d52b7a","createSelectFork(string,uint256)":"71ee464d","deal(address,uint256)":"c88a5e6d","deriveKey(string,string,uint32)":"6bcb2c1b","deriveKey(string,uint32)":"6229498b","difficulty(uint256)":"46cc92d9","envAddress(string)":"350d56bf","envAddress(string,string)":"ad31b9fa","envBool(string)":"7ed1ec7d","envBool(string,string)":"aaaddeaf","envBytes(string)":"4d7baf06","envBytes(string,string)":"ddc2651b","envBytes32(string)":"97949042","envBytes32(string,string)":"5af231c1","envInt(string)":"892a0c61","envInt(string,string)":"42181150","envOr(string,address)":"561fe540","envOr(string,bool)":"4777f3cf","envOr(string,bytes)":"b3e47705","envOr(string,bytes32)":"b4a85892","envOr(string,int256)":"bbcb713e","envOr(string,string)":"d145736c","envOr(string,string,address[])":"c74e9deb","envOr(string,string,bool[])":"eb85e83b","envOr(string,string,bytes32[])":"2281f367","envOr(string,string,bytes[])":"64bc3e64","envOr(string,string,int256[])":"4700d74b","envOr(string,string,string[])":"859216bc","envOr(string,string,uint256[])":"74318528","envOr(string,uint256)":"5e97348f","envString(string)":"f877cb19","envString(string,string)":"14b02bc9","envUint(string)":"c1978d1f","envUint(string,string)":"f3dec099","etch(address,bytes)":"b4d6c782","expectCall(address,bytes)":"bd6af434","expectCall(address,uint256,bytes)":"f30c7ba3","expectEmit(bool,bool,bool,bool)":"491cc7c2","expectEmit(bool,bool,bool,bool,address)":"81bad6f3","expectRevert()":"f4844814","expectRevert(bytes)":"f28dceb3","expectRevert(bytes4)":"c31eb0e0","fee(uint256)":"39b37ab0","ffi(string[])":"89160467","fsMetadata(string)":"af368a08","getCode(string)":"8d1cc925","getDeployedCode(string)":"3ebf73b4","getNonce(address)":"2d0335ab","getRecordedLogs()":"191553a4","isPersistent(address)":"d92d8efd","label(address,string)":"c657c718","load(address,bytes32)":"667f9d70","makePersistent(address)":"57e22dde","makePersistent(address,address)":"4074e0a8","makePersistent(address,address,address)":"efb77a75","makePersistent(address[])":"1d9e269e","mockCall(address,bytes,bytes)":"b96213e4","mockCall(address,uint256,bytes,bytes)":"81409b91","parseAddress(string)":"c6ce059d","parseBool(string)":"974ef924","parseBytes(string)":"8f5d232d","parseBytes32(string)":"087e6e81","parseInt(string)":"42346c5e","parseJson(string)":"6a82600a","parseJson(string,string)":"85940ef1","parseUint(string)":"fa91454d","pauseGasMetering()":"d1a5b36f","prank(address)":"ca669fa7","prank(address,address)":"47e50cce","projectRoot()":"d930a0e6","readFile(string)":"60f9bb11","readFileBinary(string)":"16ed7bc4","readLine(string)":"70f55728","record()":"266cf109","recordLogs()":"41af2f52","rememberKey(uint256)":"22100064","removeFile(string)":"f1afe04d","resumeGasMetering()":"2bcd50e0","revertTo(uint256)":"44d7f0a4","revokePersistent(address)":"997a0222","revokePersistent(address[])":"3ce969e6","roll(uint256)":"1f7b4f30","rollFork(bytes32)":"0f29772b","rollFork(uint256)":"d9bbf3a1","rollFork(uint256,bytes32)":"f2830f7b","rollFork(uint256,uint256)":"d74c83a4","rpcUrl(string)":"975a6ce9","rpcUrlStructs()":"9d2ad72a","rpcUrls()":"a85a8418","selectFork(uint256)":"9ebf6827","serializeAddress(string,string,address)":"972c6062","serializeAddress(string,string,address[])":"1e356e1a","serializeBool(string,string,bool)":"ac22e971","serializeBool(string,string,bool[])":"92925aa1","serializeBytes(string,string,bytes)":"f21d52c7","serializeBytes(string,string,bytes[])":"9884b232","serializeBytes32(string,string,bytes32)":"2d812b44","serializeBytes32(string,string,bytes32[])":"201e43e2","serializeInt(string,string,int256)":"3f33db60","serializeInt(string,string,int256[])":"7676e127","serializeString(string,string,string)":"88da6d35","serializeString(string,string,string[])":"561cd6f3","serializeUint(string,string,uint256)":"129e9002","serializeUint(string,string,uint256[])":"fee9a469","setEnv(string,string)":"3d5923ee","setNonce(address,uint64)":"f8e18b57","sign(uint256,bytes32)":"e341eaa4","snapshot()":"9711715a","startBroadcast()":"7fb5297f","startBroadcast(address)":"7fec2a8d","startBroadcast(uint256)":"ce817d47","startPrank(address)":"06447d56","startPrank(address,address)":"45b56078","stopBroadcast()":"76eadd36","stopPrank()":"90c5013b","store(address,bytes32,bytes32)":"70ca10bb","toString(address)":"56ca623e","toString(bool)":"71dce7da","toString(bytes)":"71aad10d","toString(bytes32)":"b11a19e8","toString(int256)":"a322c40e","toString(uint256)":"6900a3ae","transact(bytes32)":"be646da1","transact(uint256,bytes32)":"4d8abc4b","warp(uint256)":"e5d6bf02","writeFile(string,string)":"897e0a97","writeFileBinary(string,bytes)":"1f21fc80","writeJson(string,string)":"e23cd19f","writeJson(string,string,string)":"35d6ad46","writeLine(string,string)":"619d897f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"accesses\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"readSlots\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"writeSlots\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"addr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"allowCheatcodes\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assume\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newChainId\",\"type\":\"uint256\"}],\"name\":\"chainId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"clearMockedCalls\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"closeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newCoinbase\",\"type\":\"address\"}],\"name\":\"coinbase\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"}],\"name\":\"createFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"createFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"createFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"createSelectFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"createSelectFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"urlOrAlias\",\"type\":\"string\"}],\"name\":\"createSelectFork\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"deal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDifficulty\",\"type\":\"uint256\"}],\"name\":\"difficulty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"defaultValue\",\"type\":\"bytes32[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"defaultValue\",\"type\":\"int256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"defaultValue\",\"type\":\"bool\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"defaultValue\",\"type\":\"address\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"defaultValue\",\"type\":\"uint256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"defaultValue\",\"type\":\"bytes[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"defaultValue\",\"type\":\"uint256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"defaultValue\",\"type\":\"string[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"defaultValue\",\"type\":\"bytes\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"defaultValue\",\"type\":\"bytes32\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"defaultValue\",\"type\":\"int256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"defaultValue\",\"type\":\"address[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"defaultValue\",\"type\":\"string\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"defaultValue\",\"type\":\"bool[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"newRuntimeBytecode\",\"type\":\"bytes\"}],\"name\":\"etch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"expectCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"checkTopic1\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic2\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkTopic3\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"checkData\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"name\":\"expectEmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"revertData\",\"type\":\"bytes4\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"revertData\",\"type\":\"bytes\"}],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"expectRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBasefee\",\"type\":\"uint256\"}],\"name\":\"fee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"ffi\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"fileOrDir\",\"type\":\"string\"}],\"name\":\"fsMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"readOnly\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"modified\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"created\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.FsMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"creationBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getDeployedCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"runtimeBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRecordedLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.Log[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isPersistent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"persistent\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"newLabel\",\"type\":\"string\"}],\"name\":\"label\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"load\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account1\",\"type\":\"address\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account1\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account2\",\"type\":\"address\"}],\"name\":\"makePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"mockCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callee\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"mockCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"parsedValue\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"parsedValue\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"parsedValue\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"parsedValue\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"parsedValue\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"parsedValue\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"}],\"name\":\"prank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"prank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"projectRoot\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFile\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFileBinary\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readLine\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"line\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"record\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recordLogs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"rememberKey\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"removeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"name\":\"revertTo\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"}],\"name\":\"revokePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokePersistent\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newHeight\",\"type\":\"uint256\"}],\"name\":\"roll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"rollFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"rpcAlias\",\"type\":\"string\"}],\"name\":\"rpcUrl\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrlStructs\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"}],\"internalType\":\"struct VmSafe.Rpc[]\",\"name\":\"urls\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrls\",\"outputs\":[{\"internalType\":\"string[2][]\",\"name\":\"urls\",\"type\":\"string[2][]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"}],\"name\":\"selectFork\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"values\",\"type\":\"address[]\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"values\",\"type\":\"bool[]\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"values\",\"type\":\"bytes[]\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"values\",\"type\":\"bytes32[]\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"values\",\"type\":\"int256[]\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"values\",\"type\":\"string[]\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"setEnv\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"newNonce\",\"type\":\"uint64\"}],\"name\":\"setNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"snapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"startPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"txOrigin\",\"type\":\"address\"}],\"name\":\"startPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopPrank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"store\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"forkId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"transact\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"transact\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newTimestamp\",\"type\":\"uint256\"}],\"name\":\"warp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"writeFileBinary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeLine\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"activeFork()\":{\"notice\":\"Returns the identifier of the currently active fork. Reverts if no fork is currently active.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/forge-std/src/Vm.sol\":\"Vm\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"accesses","outputs":[{"internalType":"bytes32[]","name":"readSlots","type":"bytes32[]"},{"internalType":"bytes32[]","name":"writeSlots","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"activeFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"addr","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"allowCheatcodes"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assume"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"uint256","name":"newChainId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"chainId"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"clearMockedCalls"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"closeFile"},{"inputs":[{"internalType":"address","name":"newCoinbase","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"coinbase"},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"createFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createSelectFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"createSelectFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"urlOrAlias","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createSelectFork","outputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"newBalance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deal"},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"newDifficulty","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"difficulty"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes32[]","name":"defaultValue","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"int256[]","name":"defaultValue","type":"int256[]"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"defaultValue","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"defaultValue","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"defaultValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes[]","name":"defaultValue","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"uint256[]","name":"defaultValue","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"string[]","name":"defaultValue","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes","name":"defaultValue","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"defaultValue","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"int256","name":"defaultValue","type":"int256"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"address[]","name":"defaultValue","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"defaultValue","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bool[]","name":"defaultValue","type":"bool[]"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"newRuntimeBytecode","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"etch"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectCall"},{"inputs":[{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"bool","name":"checkTopic1","type":"bool"},{"internalType":"bool","name":"checkTopic2","type":"bool"},{"internalType":"bool","name":"checkTopic3","type":"bool"},{"internalType":"bool","name":"checkData","type":"bool"},{"internalType":"address","name":"emitter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"expectEmit"},{"inputs":[{"internalType":"bytes4","name":"revertData","type":"bytes4"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"bytes","name":"revertData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"expectRevert"},{"inputs":[{"internalType":"uint256","name":"newBasefee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"fee"},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"ffi","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"fileOrDir","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"fsMetadata","outputs":[{"internalType":"struct VmSafe.FsMetadata","name":"metadata","type":"tuple","components":[{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"readOnly","type":"bool"},{"internalType":"uint256","name":"modified","type":"uint256"},{"internalType":"uint256","name":"accessed","type":"uint256"},{"internalType":"uint256","name":"created","type":"uint256"}]}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getCode","outputs":[{"internalType":"bytes","name":"creationBytecode","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getDeployedCode","outputs":[{"internalType":"bytes","name":"runtimeBytecode","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getRecordedLogs","outputs":[{"internalType":"struct VmSafe.Log[]","name":"logs","type":"tuple[]","components":[{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"address","name":"emitter","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isPersistent","outputs":[{"internalType":"bool","name":"persistent","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"string","name":"newLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"label"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"load","outputs":[{"internalType":"bytes32","name":"data","type":"bytes32"}]},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"account0","type":"address"},{"internalType":"address","name":"account1","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"account0","type":"address"},{"internalType":"address","name":"account1","type":"address"},{"internalType":"address","name":"account2","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"makePersistent"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCall"},{"inputs":[{"internalType":"address","name":"callee","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"mockCall"},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseAddress","outputs":[{"internalType":"address","name":"parsedValue","type":"address"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBool","outputs":[{"internalType":"bool","name":"parsedValue","type":"bool"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes","outputs":[{"internalType":"bytes","name":"parsedValue","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes32","outputs":[{"internalType":"bytes32","name":"parsedValue","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseInt","outputs":[{"internalType":"int256","name":"parsedValue","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseUint","outputs":[{"internalType":"uint256","name":"parsedValue","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pauseGasMetering"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"prank"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"prank"},{"inputs":[],"stateMutability":"view","type":"function","name":"projectRoot","outputs":[{"internalType":"string","name":"path","type":"string"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFile","outputs":[{"internalType":"string","name":"data","type":"string"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFileBinary","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readLine","outputs":[{"internalType":"string","name":"line","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"record"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recordLogs"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rememberKey","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"removeFile"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resumeGasMetering"},{"inputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"revertTo","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"revokePersistent"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokePersistent"},{"inputs":[{"internalType":"uint256","name":"newHeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"roll"},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"rollFork"},{"inputs":[{"internalType":"string","name":"rpcAlias","type":"string"}],"stateMutability":"view","type":"function","name":"rpcUrl","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrlStructs","outputs":[{"internalType":"struct VmSafe.Rpc[]","name":"urls","type":"tuple[]","components":[{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"url","type":"string"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrls","outputs":[{"internalType":"string[2][]","name":"urls","type":"string[2][]"}]},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"selectFork"},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address[]","name":"values","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address","name":"value","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool[]","name":"values","type":"bool[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes[]","name":"values","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32[]","name":"values","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256[]","name":"values","type":"int256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string[]","name":"values","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setEnv"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint64","name":"newNonce","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"setNonce"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"snapshot","outputs":[{"internalType":"uint256","name":"snapshotId","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startPrank"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"address","name":"txOrigin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startPrank"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopPrank"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"store"},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"forkId","type":"uint256"},{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"transact"},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"transact"},{"inputs":[{"internalType":"uint256","name":"newTimestamp","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"warp"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeFile"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"writeFileBinary"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeLine"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"activeFork()":{"notice":"Returns the identifier of the currently active fork. Reverts if no fork is currently active."}},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/forge-std/src/Vm.sol":"Vm"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/forge-std/src/Vm.sol","id":9353,"exportedSymbols":{"Vm":[9352],"VmSafe":[9027]},"nodeType":"SourceUnit","src":"32:24959:12","nodes":[{"id":8197,"nodeType":"PragmaDirective","src":"32:31:12","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":8198,"nodeType":"PragmaDirective","src":"65:33:12","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":9027,"nodeType":"ContractDefinition","src":"571:16550:12","nodes":[{"id":8206,"nodeType":"StructDefinition","src":"594:89:12","nodes":[],"canonicalName":"VmSafe.Log","members":[{"constant":false,"id":8201,"mutability":"mutable","name":"topics","nameLocation":"625:6:12","nodeType":"VariableDeclaration","scope":8206,"src":"615:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"615:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8200,"nodeType":"ArrayTypeName","src":"615:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":8203,"mutability":"mutable","name":"data","nameLocation":"647:4:12","nodeType":"VariableDeclaration","scope":8206,"src":"641:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":8202,"name":"bytes","nodeType":"ElementaryTypeName","src":"641:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8205,"mutability":"mutable","name":"emitter","nameLocation":"669:7:12","nodeType":"VariableDeclaration","scope":8206,"src":"661:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8204,"name":"address","nodeType":"ElementaryTypeName","src":"661:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Log","nameLocation":"601:3:12","scope":9027,"visibility":"public"},{"id":8211,"nodeType":"StructDefinition","src":"689:58:12","nodes":[],"canonicalName":"VmSafe.Rpc","members":[{"constant":false,"id":8208,"mutability":"mutable","name":"key","nameLocation":"717:3:12","nodeType":"VariableDeclaration","scope":8211,"src":"710:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":8207,"name":"string","nodeType":"ElementaryTypeName","src":"710:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8210,"mutability":"mutable","name":"url","nameLocation":"737:3:12","nodeType":"VariableDeclaration","scope":8211,"src":"730:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":8209,"name":"string","nodeType":"ElementaryTypeName","src":"730:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"Rpc","nameLocation":"696:3:12","scope":9027,"visibility":"public"},{"id":8226,"nodeType":"StructDefinition","src":"753:193:12","nodes":[],"canonicalName":"VmSafe.FsMetadata","members":[{"constant":false,"id":8213,"mutability":"mutable","name":"isDir","nameLocation":"786:5:12","nodeType":"VariableDeclaration","scope":8226,"src":"781:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8212,"name":"bool","nodeType":"ElementaryTypeName","src":"781:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8215,"mutability":"mutable","name":"isSymlink","nameLocation":"806:9:12","nodeType":"VariableDeclaration","scope":8226,"src":"801:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8214,"name":"bool","nodeType":"ElementaryTypeName","src":"801:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8217,"mutability":"mutable","name":"length","nameLocation":"833:6:12","nodeType":"VariableDeclaration","scope":8226,"src":"825:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8216,"name":"uint256","nodeType":"ElementaryTypeName","src":"825:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8219,"mutability":"mutable","name":"readOnly","nameLocation":"854:8:12","nodeType":"VariableDeclaration","scope":8226,"src":"849:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8218,"name":"bool","nodeType":"ElementaryTypeName","src":"849:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8221,"mutability":"mutable","name":"modified","nameLocation":"880:8:12","nodeType":"VariableDeclaration","scope":8226,"src":"872:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8220,"name":"uint256","nodeType":"ElementaryTypeName","src":"872:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8223,"mutability":"mutable","name":"accessed","nameLocation":"906:8:12","nodeType":"VariableDeclaration","scope":8226,"src":"898:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8222,"name":"uint256","nodeType":"ElementaryTypeName","src":"898:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8225,"mutability":"mutable","name":"created","nameLocation":"932:7:12","nodeType":"VariableDeclaration","scope":8226,"src":"924:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8224,"name":"uint256","nodeType":"ElementaryTypeName","src":"924:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"FsMetadata","nameLocation":"760:10:12","scope":9027,"visibility":"public"},{"id":8235,"nodeType":"FunctionDefinition","src":"996:81:12","nodes":[],"functionSelector":"667f9d70","implemented":false,"kind":"function","modifiers":[],"name":"load","nameLocation":"1005:4:12","parameters":{"id":8231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8228,"mutability":"mutable","name":"target","nameLocation":"1018:6:12","nodeType":"VariableDeclaration","scope":8235,"src":"1010:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8227,"name":"address","nodeType":"ElementaryTypeName","src":"1010:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8230,"mutability":"mutable","name":"slot","nameLocation":"1034:4:12","nodeType":"VariableDeclaration","scope":8235,"src":"1026:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8229,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1026:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1009:30:12"},"returnParameters":{"id":8234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8233,"mutability":"mutable","name":"data","nameLocation":"1071:4:12","nodeType":"VariableDeclaration","scope":8235,"src":"1063:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8232,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1063:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1062:14:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8248,"nodeType":"FunctionDefinition","src":"1100:104:12","nodes":[],"functionSelector":"e341eaa4","implemented":false,"kind":"function","modifiers":[],"name":"sign","nameLocation":"1109:4:12","parameters":{"id":8240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8237,"mutability":"mutable","name":"privateKey","nameLocation":"1122:10:12","nodeType":"VariableDeclaration","scope":8248,"src":"1114:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8236,"name":"uint256","nodeType":"ElementaryTypeName","src":"1114:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8239,"mutability":"mutable","name":"digest","nameLocation":"1142:6:12","nodeType":"VariableDeclaration","scope":8248,"src":"1134:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8238,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1134:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1113:36:12"},"returnParameters":{"id":8247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8242,"mutability":"mutable","name":"v","nameLocation":"1179:1:12","nodeType":"VariableDeclaration","scope":8248,"src":"1173:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8241,"name":"uint8","nodeType":"ElementaryTypeName","src":"1173:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":8244,"mutability":"mutable","name":"r","nameLocation":"1190:1:12","nodeType":"VariableDeclaration","scope":8248,"src":"1182:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8243,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1182:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8246,"mutability":"mutable","name":"s","nameLocation":"1201:1:12","nodeType":"VariableDeclaration","scope":8248,"src":"1193:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8245,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1193:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1172:31:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8255,"nodeType":"FunctionDefinition","src":"1257:71:12","nodes":[],"functionSelector":"ffa18649","implemented":false,"kind":"function","modifiers":[],"name":"addr","nameLocation":"1266:4:12","parameters":{"id":8251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8250,"mutability":"mutable","name":"privateKey","nameLocation":"1279:10:12","nodeType":"VariableDeclaration","scope":8255,"src":"1271:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8249,"name":"uint256","nodeType":"ElementaryTypeName","src":"1271:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1270:20:12"},"returnParameters":{"id":8254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8253,"mutability":"mutable","name":"addr","nameLocation":"1322:4:12","nodeType":"VariableDeclaration","scope":8255,"src":"1314:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8252,"name":"address","nodeType":"ElementaryTypeName","src":"1314:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1313:14:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8262,"nodeType":"FunctionDefinition","src":"1369:72:12","nodes":[],"functionSelector":"2d0335ab","implemented":false,"kind":"function","modifiers":[],"name":"getNonce","nameLocation":"1378:8:12","parameters":{"id":8258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8257,"mutability":"mutable","name":"account","nameLocation":"1395:7:12","nodeType":"VariableDeclaration","scope":8262,"src":"1387:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8256,"name":"address","nodeType":"ElementaryTypeName","src":"1387:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1386:17:12"},"returnParameters":{"id":8261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8260,"mutability":"mutable","name":"nonce","nameLocation":"1434:5:12","nodeType":"VariableDeclaration","scope":8262,"src":"1427:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":8259,"name":"uint64","nodeType":"ElementaryTypeName","src":"1427:6:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1426:14:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8270,"nodeType":"FunctionDefinition","src":"1503:84:12","nodes":[],"functionSelector":"89160467","implemented":false,"kind":"function","modifiers":[],"name":"ffi","nameLocation":"1512:3:12","parameters":{"id":8266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8265,"mutability":"mutable","name":"commandInput","nameLocation":"1534:12:12","nodeType":"VariableDeclaration","scope":8270,"src":"1516:30:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":8263,"name":"string","nodeType":"ElementaryTypeName","src":"1516:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":8264,"nodeType":"ArrayTypeName","src":"1516:8:12","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"1515:32:12"},"returnParameters":{"id":8269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8268,"mutability":"mutable","name":"result","nameLocation":"1579:6:12","nodeType":"VariableDeclaration","scope":8270,"src":"1566:19:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8267,"name":"bytes","nodeType":"ElementaryTypeName","src":"1566:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1565:21:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8277,"nodeType":"FunctionDefinition","src":"1626:70:12","nodes":[],"functionSelector":"3d5923ee","implemented":false,"kind":"function","modifiers":[],"name":"setEnv","nameLocation":"1635:6:12","parameters":{"id":8275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8272,"mutability":"mutable","name":"name","nameLocation":"1658:4:12","nodeType":"VariableDeclaration","scope":8277,"src":"1642:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8271,"name":"string","nodeType":"ElementaryTypeName","src":"1642:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8274,"mutability":"mutable","name":"value","nameLocation":"1680:5:12","nodeType":"VariableDeclaration","scope":8277,"src":"1664:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8273,"name":"string","nodeType":"ElementaryTypeName","src":"1664:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1641:45:12"},"returnParameters":{"id":8276,"nodeType":"ParameterList","parameters":[],"src":"1695:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8284,"nodeType":"FunctionDefinition","src":"1755:74:12","nodes":[],"functionSelector":"7ed1ec7d","implemented":false,"kind":"function","modifiers":[],"name":"envBool","nameLocation":"1764:7:12","parameters":{"id":8280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8279,"mutability":"mutable","name":"name","nameLocation":"1788:4:12","nodeType":"VariableDeclaration","scope":8284,"src":"1772:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8278,"name":"string","nodeType":"ElementaryTypeName","src":"1772:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1771:22:12"},"returnParameters":{"id":8283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8282,"mutability":"mutable","name":"value","nameLocation":"1822:5:12","nodeType":"VariableDeclaration","scope":8284,"src":"1817:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8281,"name":"bool","nodeType":"ElementaryTypeName","src":"1817:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1816:12:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8291,"nodeType":"FunctionDefinition","src":"1834:77:12","nodes":[],"functionSelector":"c1978d1f","implemented":false,"kind":"function","modifiers":[],"name":"envUint","nameLocation":"1843:7:12","parameters":{"id":8287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8286,"mutability":"mutable","name":"name","nameLocation":"1867:4:12","nodeType":"VariableDeclaration","scope":8291,"src":"1851:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8285,"name":"string","nodeType":"ElementaryTypeName","src":"1851:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1850:22:12"},"returnParameters":{"id":8290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8289,"mutability":"mutable","name":"value","nameLocation":"1904:5:12","nodeType":"VariableDeclaration","scope":8291,"src":"1896:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8288,"name":"uint256","nodeType":"ElementaryTypeName","src":"1896:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1895:15:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8298,"nodeType":"FunctionDefinition","src":"1916:75:12","nodes":[],"functionSelector":"892a0c61","implemented":false,"kind":"function","modifiers":[],"name":"envInt","nameLocation":"1925:6:12","parameters":{"id":8294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8293,"mutability":"mutable","name":"name","nameLocation":"1948:4:12","nodeType":"VariableDeclaration","scope":8298,"src":"1932:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8292,"name":"string","nodeType":"ElementaryTypeName","src":"1932:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1931:22:12"},"returnParameters":{"id":8297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8296,"mutability":"mutable","name":"value","nameLocation":"1984:5:12","nodeType":"VariableDeclaration","scope":8298,"src":"1977:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8295,"name":"int256","nodeType":"ElementaryTypeName","src":"1977:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1976:14:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8305,"nodeType":"FunctionDefinition","src":"1996:80:12","nodes":[],"functionSelector":"350d56bf","implemented":false,"kind":"function","modifiers":[],"name":"envAddress","nameLocation":"2005:10:12","parameters":{"id":8301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8300,"mutability":"mutable","name":"name","nameLocation":"2032:4:12","nodeType":"VariableDeclaration","scope":8305,"src":"2016:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8299,"name":"string","nodeType":"ElementaryTypeName","src":"2016:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2015:22:12"},"returnParameters":{"id":8304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8303,"mutability":"mutable","name":"value","nameLocation":"2069:5:12","nodeType":"VariableDeclaration","scope":8305,"src":"2061:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8302,"name":"address","nodeType":"ElementaryTypeName","src":"2061:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2060:15:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8312,"nodeType":"FunctionDefinition","src":"2081:80:12","nodes":[],"functionSelector":"97949042","implemented":false,"kind":"function","modifiers":[],"name":"envBytes32","nameLocation":"2090:10:12","parameters":{"id":8308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8307,"mutability":"mutable","name":"name","nameLocation":"2117:4:12","nodeType":"VariableDeclaration","scope":8312,"src":"2101:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8306,"name":"string","nodeType":"ElementaryTypeName","src":"2101:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2100:22:12"},"returnParameters":{"id":8311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8310,"mutability":"mutable","name":"value","nameLocation":"2154:5:12","nodeType":"VariableDeclaration","scope":8312,"src":"2146:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2146:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2145:15:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8319,"nodeType":"FunctionDefinition","src":"2166:85:12","nodes":[],"functionSelector":"f877cb19","implemented":false,"kind":"function","modifiers":[],"name":"envString","nameLocation":"2175:9:12","parameters":{"id":8315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8314,"mutability":"mutable","name":"name","nameLocation":"2201:4:12","nodeType":"VariableDeclaration","scope":8319,"src":"2185:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8313,"name":"string","nodeType":"ElementaryTypeName","src":"2185:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2184:22:12"},"returnParameters":{"id":8318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8317,"mutability":"mutable","name":"value","nameLocation":"2244:5:12","nodeType":"VariableDeclaration","scope":8319,"src":"2230:19:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8316,"name":"string","nodeType":"ElementaryTypeName","src":"2230:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2229:21:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8326,"nodeType":"FunctionDefinition","src":"2256:83:12","nodes":[],"functionSelector":"4d7baf06","implemented":false,"kind":"function","modifiers":[],"name":"envBytes","nameLocation":"2265:8:12","parameters":{"id":8322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8321,"mutability":"mutable","name":"name","nameLocation":"2290:4:12","nodeType":"VariableDeclaration","scope":8326,"src":"2274:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8320,"name":"string","nodeType":"ElementaryTypeName","src":"2274:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2273:22:12"},"returnParameters":{"id":8325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8324,"mutability":"mutable","name":"value","nameLocation":"2332:5:12","nodeType":"VariableDeclaration","scope":8326,"src":"2319:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8323,"name":"bytes","nodeType":"ElementaryTypeName","src":"2319:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2318:20:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8336,"nodeType":"FunctionDefinition","src":"2389:106:12","nodes":[],"functionSelector":"aaaddeaf","implemented":false,"kind":"function","modifiers":[],"name":"envBool","nameLocation":"2398:7:12","parameters":{"id":8331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8328,"mutability":"mutable","name":"name","nameLocation":"2422:4:12","nodeType":"VariableDeclaration","scope":8336,"src":"2406:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8327,"name":"string","nodeType":"ElementaryTypeName","src":"2406:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8330,"mutability":"mutable","name":"delim","nameLocation":"2444:5:12","nodeType":"VariableDeclaration","scope":8336,"src":"2428:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8329,"name":"string","nodeType":"ElementaryTypeName","src":"2428:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2405:45:12"},"returnParameters":{"id":8335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8334,"mutability":"mutable","name":"value","nameLocation":"2488:5:12","nodeType":"VariableDeclaration","scope":8336,"src":"2474:19:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":8332,"name":"bool","nodeType":"ElementaryTypeName","src":"2474:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8333,"nodeType":"ArrayTypeName","src":"2474:6:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"2473:21:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8346,"nodeType":"FunctionDefinition","src":"2500:109:12","nodes":[],"functionSelector":"f3dec099","implemented":false,"kind":"function","modifiers":[],"name":"envUint","nameLocation":"2509:7:12","parameters":{"id":8341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8338,"mutability":"mutable","name":"name","nameLocation":"2533:4:12","nodeType":"VariableDeclaration","scope":8346,"src":"2517:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8337,"name":"string","nodeType":"ElementaryTypeName","src":"2517:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8340,"mutability":"mutable","name":"delim","nameLocation":"2555:5:12","nodeType":"VariableDeclaration","scope":8346,"src":"2539:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8339,"name":"string","nodeType":"ElementaryTypeName","src":"2539:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2516:45:12"},"returnParameters":{"id":8345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8344,"mutability":"mutable","name":"value","nameLocation":"2602:5:12","nodeType":"VariableDeclaration","scope":8346,"src":"2585:22:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8342,"name":"uint256","nodeType":"ElementaryTypeName","src":"2585:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8343,"nodeType":"ArrayTypeName","src":"2585:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2584:24:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8356,"nodeType":"FunctionDefinition","src":"2614:107:12","nodes":[],"functionSelector":"42181150","implemented":false,"kind":"function","modifiers":[],"name":"envInt","nameLocation":"2623:6:12","parameters":{"id":8351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8348,"mutability":"mutable","name":"name","nameLocation":"2646:4:12","nodeType":"VariableDeclaration","scope":8356,"src":"2630:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8347,"name":"string","nodeType":"ElementaryTypeName","src":"2630:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8350,"mutability":"mutable","name":"delim","nameLocation":"2668:5:12","nodeType":"VariableDeclaration","scope":8356,"src":"2652:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8349,"name":"string","nodeType":"ElementaryTypeName","src":"2652:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2629:45:12"},"returnParameters":{"id":8355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8354,"mutability":"mutable","name":"value","nameLocation":"2714:5:12","nodeType":"VariableDeclaration","scope":8356,"src":"2698:21:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":8352,"name":"int256","nodeType":"ElementaryTypeName","src":"2698:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":8353,"nodeType":"ArrayTypeName","src":"2698:8:12","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"2697:23:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8366,"nodeType":"FunctionDefinition","src":"2726:112:12","nodes":[],"functionSelector":"ad31b9fa","implemented":false,"kind":"function","modifiers":[],"name":"envAddress","nameLocation":"2735:10:12","parameters":{"id":8361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8358,"mutability":"mutable","name":"name","nameLocation":"2762:4:12","nodeType":"VariableDeclaration","scope":8366,"src":"2746:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8357,"name":"string","nodeType":"ElementaryTypeName","src":"2746:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8360,"mutability":"mutable","name":"delim","nameLocation":"2784:5:12","nodeType":"VariableDeclaration","scope":8366,"src":"2768:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8359,"name":"string","nodeType":"ElementaryTypeName","src":"2768:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2745:45:12"},"returnParameters":{"id":8365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8364,"mutability":"mutable","name":"value","nameLocation":"2831:5:12","nodeType":"VariableDeclaration","scope":8366,"src":"2814:22:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8362,"name":"address","nodeType":"ElementaryTypeName","src":"2814:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8363,"nodeType":"ArrayTypeName","src":"2814:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2813:24:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8376,"nodeType":"FunctionDefinition","src":"2843:112:12","nodes":[],"functionSelector":"5af231c1","implemented":false,"kind":"function","modifiers":[],"name":"envBytes32","nameLocation":"2852:10:12","parameters":{"id":8371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8368,"mutability":"mutable","name":"name","nameLocation":"2879:4:12","nodeType":"VariableDeclaration","scope":8376,"src":"2863:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8367,"name":"string","nodeType":"ElementaryTypeName","src":"2863:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8370,"mutability":"mutable","name":"delim","nameLocation":"2901:5:12","nodeType":"VariableDeclaration","scope":8376,"src":"2885:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8369,"name":"string","nodeType":"ElementaryTypeName","src":"2885:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2862:45:12"},"returnParameters":{"id":8375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8374,"mutability":"mutable","name":"value","nameLocation":"2948:5:12","nodeType":"VariableDeclaration","scope":8376,"src":"2931:22:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8372,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2931:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8373,"nodeType":"ArrayTypeName","src":"2931:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"2930:24:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8386,"nodeType":"FunctionDefinition","src":"2960:110:12","nodes":[],"functionSelector":"14b02bc9","implemented":false,"kind":"function","modifiers":[],"name":"envString","nameLocation":"2969:9:12","parameters":{"id":8381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8378,"mutability":"mutable","name":"name","nameLocation":"2995:4:12","nodeType":"VariableDeclaration","scope":8386,"src":"2979:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8377,"name":"string","nodeType":"ElementaryTypeName","src":"2979:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8380,"mutability":"mutable","name":"delim","nameLocation":"3017:5:12","nodeType":"VariableDeclaration","scope":8386,"src":"3001:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8379,"name":"string","nodeType":"ElementaryTypeName","src":"3001:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2978:45:12"},"returnParameters":{"id":8385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8384,"mutability":"mutable","name":"value","nameLocation":"3063:5:12","nodeType":"VariableDeclaration","scope":8386,"src":"3047:21:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":8382,"name":"string","nodeType":"ElementaryTypeName","src":"3047:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":8383,"nodeType":"ArrayTypeName","src":"3047:8:12","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"3046:23:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8396,"nodeType":"FunctionDefinition","src":"3075:108:12","nodes":[],"functionSelector":"ddc2651b","implemented":false,"kind":"function","modifiers":[],"name":"envBytes","nameLocation":"3084:8:12","parameters":{"id":8391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8388,"mutability":"mutable","name":"name","nameLocation":"3109:4:12","nodeType":"VariableDeclaration","scope":8396,"src":"3093:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8387,"name":"string","nodeType":"ElementaryTypeName","src":"3093:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8390,"mutability":"mutable","name":"delim","nameLocation":"3131:5:12","nodeType":"VariableDeclaration","scope":8396,"src":"3115:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8389,"name":"string","nodeType":"ElementaryTypeName","src":"3115:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3092:45:12"},"returnParameters":{"id":8395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8394,"mutability":"mutable","name":"value","nameLocation":"3176:5:12","nodeType":"VariableDeclaration","scope":8396,"src":"3161:20:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":8392,"name":"bytes","nodeType":"ElementaryTypeName","src":"3161:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":8393,"nodeType":"ArrayTypeName","src":"3161:7:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"3160:22:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8405,"nodeType":"FunctionDefinition","src":"3241:86:12","nodes":[],"functionSelector":"4777f3cf","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"3250:5:12","parameters":{"id":8401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8398,"mutability":"mutable","name":"name","nameLocation":"3272:4:12","nodeType":"VariableDeclaration","scope":8405,"src":"3256:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8397,"name":"string","nodeType":"ElementaryTypeName","src":"3256:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8400,"mutability":"mutable","name":"defaultValue","nameLocation":"3283:12:12","nodeType":"VariableDeclaration","scope":8405,"src":"3278:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8399,"name":"bool","nodeType":"ElementaryTypeName","src":"3278:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3255:41:12"},"returnParameters":{"id":8404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8403,"mutability":"mutable","name":"value","nameLocation":"3320:5:12","nodeType":"VariableDeclaration","scope":8405,"src":"3315:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8402,"name":"bool","nodeType":"ElementaryTypeName","src":"3315:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3314:12:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8414,"nodeType":"FunctionDefinition","src":"3332:92:12","nodes":[],"functionSelector":"5e97348f","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"3341:5:12","parameters":{"id":8410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8407,"mutability":"mutable","name":"name","nameLocation":"3363:4:12","nodeType":"VariableDeclaration","scope":8414,"src":"3347:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8406,"name":"string","nodeType":"ElementaryTypeName","src":"3347:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8409,"mutability":"mutable","name":"defaultValue","nameLocation":"3377:12:12","nodeType":"VariableDeclaration","scope":8414,"src":"3369:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8408,"name":"uint256","nodeType":"ElementaryTypeName","src":"3369:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3346:44:12"},"returnParameters":{"id":8413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8412,"mutability":"mutable","name":"value","nameLocation":"3417:5:12","nodeType":"VariableDeclaration","scope":8414,"src":"3409:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8411,"name":"uint256","nodeType":"ElementaryTypeName","src":"3409:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3408:15:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8423,"nodeType":"FunctionDefinition","src":"3429:90:12","nodes":[],"functionSelector":"bbcb713e","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"3438:5:12","parameters":{"id":8419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8416,"mutability":"mutable","name":"name","nameLocation":"3460:4:12","nodeType":"VariableDeclaration","scope":8423,"src":"3444:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8415,"name":"string","nodeType":"ElementaryTypeName","src":"3444:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8418,"mutability":"mutable","name":"defaultValue","nameLocation":"3473:12:12","nodeType":"VariableDeclaration","scope":8423,"src":"3466:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8417,"name":"int256","nodeType":"ElementaryTypeName","src":"3466:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3443:43:12"},"returnParameters":{"id":8422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8421,"mutability":"mutable","name":"value","nameLocation":"3512:5:12","nodeType":"VariableDeclaration","scope":8423,"src":"3505:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8420,"name":"int256","nodeType":"ElementaryTypeName","src":"3505:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3504:14:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8432,"nodeType":"FunctionDefinition","src":"3524:92:12","nodes":[],"functionSelector":"561fe540","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"3533:5:12","parameters":{"id":8428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8425,"mutability":"mutable","name":"name","nameLocation":"3555:4:12","nodeType":"VariableDeclaration","scope":8432,"src":"3539:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8424,"name":"string","nodeType":"ElementaryTypeName","src":"3539:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8427,"mutability":"mutable","name":"defaultValue","nameLocation":"3569:12:12","nodeType":"VariableDeclaration","scope":8432,"src":"3561:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8426,"name":"address","nodeType":"ElementaryTypeName","src":"3561:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3538:44:12"},"returnParameters":{"id":8431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8430,"mutability":"mutable","name":"value","nameLocation":"3609:5:12","nodeType":"VariableDeclaration","scope":8432,"src":"3601:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8429,"name":"address","nodeType":"ElementaryTypeName","src":"3601:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3600:15:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8441,"nodeType":"FunctionDefinition","src":"3621:92:12","nodes":[],"functionSelector":"b4a85892","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"3630:5:12","parameters":{"id":8437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8434,"mutability":"mutable","name":"name","nameLocation":"3652:4:12","nodeType":"VariableDeclaration","scope":8441,"src":"3636:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8433,"name":"string","nodeType":"ElementaryTypeName","src":"3636:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8436,"mutability":"mutable","name":"defaultValue","nameLocation":"3666:12:12","nodeType":"VariableDeclaration","scope":8441,"src":"3658:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8435,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3658:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3635:44:12"},"returnParameters":{"id":8440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8439,"mutability":"mutable","name":"value","nameLocation":"3706:5:12","nodeType":"VariableDeclaration","scope":8441,"src":"3698:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8438,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3698:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3697:15:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8450,"nodeType":"FunctionDefinition","src":"3718:106:12","nodes":[],"functionSelector":"d145736c","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"3727:5:12","parameters":{"id":8446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8443,"mutability":"mutable","name":"name","nameLocation":"3749:4:12","nodeType":"VariableDeclaration","scope":8450,"src":"3733:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8442,"name":"string","nodeType":"ElementaryTypeName","src":"3733:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8445,"mutability":"mutable","name":"defaultValue","nameLocation":"3771:12:12","nodeType":"VariableDeclaration","scope":8450,"src":"3755:28:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8444,"name":"string","nodeType":"ElementaryTypeName","src":"3755:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3732:52:12"},"returnParameters":{"id":8449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8448,"mutability":"mutable","name":"value","nameLocation":"3817:5:12","nodeType":"VariableDeclaration","scope":8450,"src":"3803:19:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8447,"name":"string","nodeType":"ElementaryTypeName","src":"3803:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3802:21:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8459,"nodeType":"FunctionDefinition","src":"3829:104:12","nodes":[],"functionSelector":"b3e47705","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"3838:5:12","parameters":{"id":8455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8452,"mutability":"mutable","name":"name","nameLocation":"3860:4:12","nodeType":"VariableDeclaration","scope":8459,"src":"3844:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8451,"name":"string","nodeType":"ElementaryTypeName","src":"3844:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8454,"mutability":"mutable","name":"defaultValue","nameLocation":"3881:12:12","nodeType":"VariableDeclaration","scope":8459,"src":"3866:27:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8453,"name":"bytes","nodeType":"ElementaryTypeName","src":"3866:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3843:51:12"},"returnParameters":{"id":8458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8457,"mutability":"mutable","name":"value","nameLocation":"3926:5:12","nodeType":"VariableDeclaration","scope":8459,"src":"3913:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8456,"name":"bytes","nodeType":"ElementaryTypeName","src":"3913:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3912:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8472,"nodeType":"FunctionDefinition","src":"4001:145:12","nodes":[],"functionSelector":"eb85e83b","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"4010:5:12","parameters":{"id":8467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8461,"mutability":"mutable","name":"name","nameLocation":"4032:4:12","nodeType":"VariableDeclaration","scope":8472,"src":"4016:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8460,"name":"string","nodeType":"ElementaryTypeName","src":"4016:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8463,"mutability":"mutable","name":"delim","nameLocation":"4054:5:12","nodeType":"VariableDeclaration","scope":8472,"src":"4038:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8462,"name":"string","nodeType":"ElementaryTypeName","src":"4038:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8466,"mutability":"mutable","name":"defaultValue","nameLocation":"4077:12:12","nodeType":"VariableDeclaration","scope":8472,"src":"4061:28:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":8464,"name":"bool","nodeType":"ElementaryTypeName","src":"4061:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8465,"nodeType":"ArrayTypeName","src":"4061:6:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"4015:75:12"},"returnParameters":{"id":8471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8470,"mutability":"mutable","name":"value","nameLocation":"4139:5:12","nodeType":"VariableDeclaration","scope":8472,"src":"4125:19:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":8468,"name":"bool","nodeType":"ElementaryTypeName","src":"4125:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8469,"nodeType":"ArrayTypeName","src":"4125:6:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"4124:21:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8485,"nodeType":"FunctionDefinition","src":"4151:151:12","nodes":[],"functionSelector":"74318528","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"4160:5:12","parameters":{"id":8480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8474,"mutability":"mutable","name":"name","nameLocation":"4182:4:12","nodeType":"VariableDeclaration","scope":8485,"src":"4166:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8473,"name":"string","nodeType":"ElementaryTypeName","src":"4166:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8476,"mutability":"mutable","name":"delim","nameLocation":"4204:5:12","nodeType":"VariableDeclaration","scope":8485,"src":"4188:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8475,"name":"string","nodeType":"ElementaryTypeName","src":"4188:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8479,"mutability":"mutable","name":"defaultValue","nameLocation":"4230:12:12","nodeType":"VariableDeclaration","scope":8485,"src":"4211:31:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8477,"name":"uint256","nodeType":"ElementaryTypeName","src":"4211:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8478,"nodeType":"ArrayTypeName","src":"4211:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4165:78:12"},"returnParameters":{"id":8484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8483,"mutability":"mutable","name":"value","nameLocation":"4295:5:12","nodeType":"VariableDeclaration","scope":8485,"src":"4278:22:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8481,"name":"uint256","nodeType":"ElementaryTypeName","src":"4278:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8482,"nodeType":"ArrayTypeName","src":"4278:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4277:24:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8498,"nodeType":"FunctionDefinition","src":"4307:149:12","nodes":[],"functionSelector":"4700d74b","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"4316:5:12","parameters":{"id":8493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8487,"mutability":"mutable","name":"name","nameLocation":"4338:4:12","nodeType":"VariableDeclaration","scope":8498,"src":"4322:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8486,"name":"string","nodeType":"ElementaryTypeName","src":"4322:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8489,"mutability":"mutable","name":"delim","nameLocation":"4360:5:12","nodeType":"VariableDeclaration","scope":8498,"src":"4344:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8488,"name":"string","nodeType":"ElementaryTypeName","src":"4344:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8492,"mutability":"mutable","name":"defaultValue","nameLocation":"4385:12:12","nodeType":"VariableDeclaration","scope":8498,"src":"4367:30:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":8490,"name":"int256","nodeType":"ElementaryTypeName","src":"4367:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":8491,"nodeType":"ArrayTypeName","src":"4367:8:12","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"4321:77:12"},"returnParameters":{"id":8497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8496,"mutability":"mutable","name":"value","nameLocation":"4449:5:12","nodeType":"VariableDeclaration","scope":8498,"src":"4433:21:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":8494,"name":"int256","nodeType":"ElementaryTypeName","src":"4433:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":8495,"nodeType":"ArrayTypeName","src":"4433:8:12","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"4432:23:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8511,"nodeType":"FunctionDefinition","src":"4461:151:12","nodes":[],"functionSelector":"c74e9deb","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"4470:5:12","parameters":{"id":8506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8500,"mutability":"mutable","name":"name","nameLocation":"4492:4:12","nodeType":"VariableDeclaration","scope":8511,"src":"4476:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8499,"name":"string","nodeType":"ElementaryTypeName","src":"4476:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8502,"mutability":"mutable","name":"delim","nameLocation":"4514:5:12","nodeType":"VariableDeclaration","scope":8511,"src":"4498:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8501,"name":"string","nodeType":"ElementaryTypeName","src":"4498:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8505,"mutability":"mutable","name":"defaultValue","nameLocation":"4540:12:12","nodeType":"VariableDeclaration","scope":8511,"src":"4521:31:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8503,"name":"address","nodeType":"ElementaryTypeName","src":"4521:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8504,"nodeType":"ArrayTypeName","src":"4521:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4475:78:12"},"returnParameters":{"id":8510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8509,"mutability":"mutable","name":"value","nameLocation":"4605:5:12","nodeType":"VariableDeclaration","scope":8511,"src":"4588:22:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8507,"name":"address","nodeType":"ElementaryTypeName","src":"4588:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8508,"nodeType":"ArrayTypeName","src":"4588:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4587:24:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8524,"nodeType":"FunctionDefinition","src":"4617:151:12","nodes":[],"functionSelector":"2281f367","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"4626:5:12","parameters":{"id":8519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8513,"mutability":"mutable","name":"name","nameLocation":"4648:4:12","nodeType":"VariableDeclaration","scope":8524,"src":"4632:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8512,"name":"string","nodeType":"ElementaryTypeName","src":"4632:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8515,"mutability":"mutable","name":"delim","nameLocation":"4670:5:12","nodeType":"VariableDeclaration","scope":8524,"src":"4654:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8514,"name":"string","nodeType":"ElementaryTypeName","src":"4654:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8518,"mutability":"mutable","name":"defaultValue","nameLocation":"4696:12:12","nodeType":"VariableDeclaration","scope":8524,"src":"4677:31:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8516,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4677:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8517,"nodeType":"ArrayTypeName","src":"4677:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"4631:78:12"},"returnParameters":{"id":8523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8522,"mutability":"mutable","name":"value","nameLocation":"4761:5:12","nodeType":"VariableDeclaration","scope":8524,"src":"4744:22:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8520,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4744:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8521,"nodeType":"ArrayTypeName","src":"4744:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"4743:24:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8537,"nodeType":"FunctionDefinition","src":"4773:149:12","nodes":[],"functionSelector":"859216bc","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"4782:5:12","parameters":{"id":8532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8526,"mutability":"mutable","name":"name","nameLocation":"4804:4:12","nodeType":"VariableDeclaration","scope":8537,"src":"4788:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8525,"name":"string","nodeType":"ElementaryTypeName","src":"4788:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8528,"mutability":"mutable","name":"delim","nameLocation":"4826:5:12","nodeType":"VariableDeclaration","scope":8537,"src":"4810:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8527,"name":"string","nodeType":"ElementaryTypeName","src":"4810:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8531,"mutability":"mutable","name":"defaultValue","nameLocation":"4851:12:12","nodeType":"VariableDeclaration","scope":8537,"src":"4833:30:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":8529,"name":"string","nodeType":"ElementaryTypeName","src":"4833:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":8530,"nodeType":"ArrayTypeName","src":"4833:8:12","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"4787:77:12"},"returnParameters":{"id":8536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8535,"mutability":"mutable","name":"value","nameLocation":"4915:5:12","nodeType":"VariableDeclaration","scope":8537,"src":"4899:21:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":8533,"name":"string","nodeType":"ElementaryTypeName","src":"4899:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":8534,"nodeType":"ArrayTypeName","src":"4899:8:12","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"4898:23:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8550,"nodeType":"FunctionDefinition","src":"4927:147:12","nodes":[],"functionSelector":"64bc3e64","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"4936:5:12","parameters":{"id":8545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8539,"mutability":"mutable","name":"name","nameLocation":"4958:4:12","nodeType":"VariableDeclaration","scope":8550,"src":"4942:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8538,"name":"string","nodeType":"ElementaryTypeName","src":"4942:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8541,"mutability":"mutable","name":"delim","nameLocation":"4980:5:12","nodeType":"VariableDeclaration","scope":8550,"src":"4964:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8540,"name":"string","nodeType":"ElementaryTypeName","src":"4964:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8544,"mutability":"mutable","name":"defaultValue","nameLocation":"5004:12:12","nodeType":"VariableDeclaration","scope":8550,"src":"4987:29:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":8542,"name":"bytes","nodeType":"ElementaryTypeName","src":"4987:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":8543,"nodeType":"ArrayTypeName","src":"4987:7:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"4941:76:12"},"returnParameters":{"id":8549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8548,"mutability":"mutable","name":"value","nameLocation":"5067:5:12","nodeType":"VariableDeclaration","scope":8550,"src":"5052:20:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":8546,"name":"bytes","nodeType":"ElementaryTypeName","src":"5052:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":8547,"nodeType":"ArrayTypeName","src":"5052:7:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"5051:22:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8553,"nodeType":"FunctionDefinition","src":"5123:27:12","nodes":[],"functionSelector":"266cf109","implemented":false,"kind":"function","modifiers":[],"name":"record","nameLocation":"5132:6:12","parameters":{"id":8551,"nodeType":"ParameterList","parameters":[],"src":"5138:2:12"},"returnParameters":{"id":8552,"nodeType":"ParameterList","parameters":[],"src":"5149:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8564,"nodeType":"FunctionDefinition","src":"5247:109:12","nodes":[],"functionSelector":"65bc9481","implemented":false,"kind":"function","modifiers":[],"name":"accesses","nameLocation":"5256:8:12","parameters":{"id":8556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8555,"mutability":"mutable","name":"target","nameLocation":"5273:6:12","nodeType":"VariableDeclaration","scope":8564,"src":"5265:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8554,"name":"address","nodeType":"ElementaryTypeName","src":"5265:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5264:16:12"},"returnParameters":{"id":8563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8559,"mutability":"mutable","name":"readSlots","nameLocation":"5316:9:12","nodeType":"VariableDeclaration","scope":8564,"src":"5299:26:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5299:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8558,"nodeType":"ArrayTypeName","src":"5299:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":8562,"mutability":"mutable","name":"writeSlots","nameLocation":"5344:10:12","nodeType":"VariableDeclaration","scope":8564,"src":"5327:27:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8560,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5327:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8561,"nodeType":"ArrayTypeName","src":"5327:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"5298:57:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8571,"nodeType":"FunctionDefinition","src":"5464:101:12","nodes":[],"functionSelector":"8d1cc925","implemented":false,"kind":"function","modifiers":[],"name":"getCode","nameLocation":"5473:7:12","parameters":{"id":8567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8566,"mutability":"mutable","name":"artifactPath","nameLocation":"5497:12:12","nodeType":"VariableDeclaration","scope":8571,"src":"5481:28:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8565,"name":"string","nodeType":"ElementaryTypeName","src":"5481:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5480:30:12"},"returnParameters":{"id":8570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8569,"mutability":"mutable","name":"creationBytecode","nameLocation":"5547:16:12","nodeType":"VariableDeclaration","scope":8571,"src":"5534:29:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8568,"name":"bytes","nodeType":"ElementaryTypeName","src":"5534:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5533:31:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8578,"nodeType":"FunctionDefinition","src":"5673:108:12","nodes":[],"functionSelector":"3ebf73b4","implemented":false,"kind":"function","modifiers":[],"name":"getDeployedCode","nameLocation":"5682:15:12","parameters":{"id":8574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8573,"mutability":"mutable","name":"artifactPath","nameLocation":"5714:12:12","nodeType":"VariableDeclaration","scope":8578,"src":"5698:28:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8572,"name":"string","nodeType":"ElementaryTypeName","src":"5698:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5697:30:12"},"returnParameters":{"id":8577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8576,"mutability":"mutable","name":"runtimeBytecode","nameLocation":"5764:15:12","nodeType":"VariableDeclaration","scope":8578,"src":"5751:28:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8575,"name":"bytes","nodeType":"ElementaryTypeName","src":"5751:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5750:30:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8585,"nodeType":"FunctionDefinition","src":"5826:67:12","nodes":[],"functionSelector":"c657c718","implemented":false,"kind":"function","modifiers":[],"name":"label","nameLocation":"5835:5:12","parameters":{"id":8583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8580,"mutability":"mutable","name":"account","nameLocation":"5849:7:12","nodeType":"VariableDeclaration","scope":8585,"src":"5841:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8579,"name":"address","nodeType":"ElementaryTypeName","src":"5841:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8582,"mutability":"mutable","name":"newLabel","nameLocation":"5874:8:12","nodeType":"VariableDeclaration","scope":8585,"src":"5858:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8581,"name":"string","nodeType":"ElementaryTypeName","src":"5858:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5840:43:12"},"returnParameters":{"id":8584,"nodeType":"ParameterList","parameters":[],"src":"5892:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8588,"nodeType":"FunctionDefinition","src":"6060:30:12","nodes":[],"functionSelector":"afc98040","implemented":false,"kind":"function","modifiers":[],"name":"broadcast","nameLocation":"6069:9:12","parameters":{"id":8586,"nodeType":"ParameterList","parameters":[],"src":"6078:2:12"},"returnParameters":{"id":8587,"nodeType":"ParameterList","parameters":[],"src":"6089:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8593,"nodeType":"FunctionDefinition","src":"6249:44:12","nodes":[],"functionSelector":"e6962cdb","implemented":false,"kind":"function","modifiers":[],"name":"broadcast","nameLocation":"6258:9:12","parameters":{"id":8591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8590,"mutability":"mutable","name":"signer","nameLocation":"6276:6:12","nodeType":"VariableDeclaration","scope":8593,"src":"6268:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8589,"name":"address","nodeType":"ElementaryTypeName","src":"6268:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6267:16:12"},"returnParameters":{"id":8592,"nodeType":"ParameterList","parameters":[],"src":"6292:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8598,"nodeType":"FunctionDefinition","src":"6456:48:12","nodes":[],"functionSelector":"f67a965b","implemented":false,"kind":"function","modifiers":[],"name":"broadcast","nameLocation":"6465:9:12","parameters":{"id":8596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8595,"mutability":"mutable","name":"privateKey","nameLocation":"6483:10:12","nodeType":"VariableDeclaration","scope":8598,"src":"6475:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8594,"name":"uint256","nodeType":"ElementaryTypeName","src":"6475:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6474:20:12"},"returnParameters":{"id":8597,"nodeType":"ParameterList","parameters":[],"src":"6503:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8601,"nodeType":"FunctionDefinition","src":"6677:35:12","nodes":[],"functionSelector":"7fb5297f","implemented":false,"kind":"function","modifiers":[],"name":"startBroadcast","nameLocation":"6686:14:12","parameters":{"id":8599,"nodeType":"ParameterList","parameters":[],"src":"6700:2:12"},"returnParameters":{"id":8600,"nodeType":"ParameterList","parameters":[],"src":"6711:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8606,"nodeType":"FunctionDefinition","src":"6863:49:12","nodes":[],"functionSelector":"7fec2a8d","implemented":false,"kind":"function","modifiers":[],"name":"startBroadcast","nameLocation":"6872:14:12","parameters":{"id":8604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8603,"mutability":"mutable","name":"signer","nameLocation":"6895:6:12","nodeType":"VariableDeclaration","scope":8606,"src":"6887:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8602,"name":"address","nodeType":"ElementaryTypeName","src":"6887:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6886:16:12"},"returnParameters":{"id":8605,"nodeType":"ParameterList","parameters":[],"src":"6911:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8611,"nodeType":"FunctionDefinition","src":"7067:53:12","nodes":[],"functionSelector":"ce817d47","implemented":false,"kind":"function","modifiers":[],"name":"startBroadcast","nameLocation":"7076:14:12","parameters":{"id":8609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8608,"mutability":"mutable","name":"privateKey","nameLocation":"7099:10:12","nodeType":"VariableDeclaration","scope":8611,"src":"7091:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8607,"name":"uint256","nodeType":"ElementaryTypeName","src":"7091:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7090:20:12"},"returnParameters":{"id":8610,"nodeType":"ParameterList","parameters":[],"src":"7119:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8614,"nodeType":"FunctionDefinition","src":"7170:34:12","nodes":[],"functionSelector":"76eadd36","implemented":false,"kind":"function","modifiers":[],"name":"stopBroadcast","nameLocation":"7179:13:12","parameters":{"id":8612,"nodeType":"ParameterList","parameters":[],"src":"7192:2:12"},"returnParameters":{"id":8613,"nodeType":"ParameterList","parameters":[],"src":"7203:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8621,"nodeType":"FunctionDefinition","src":"7259:83:12","nodes":[],"functionSelector":"60f9bb11","implemented":false,"kind":"function","modifiers":[],"name":"readFile","nameLocation":"7268:8:12","parameters":{"id":8617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8616,"mutability":"mutable","name":"path","nameLocation":"7293:4:12","nodeType":"VariableDeclaration","scope":8621,"src":"7277:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8615,"name":"string","nodeType":"ElementaryTypeName","src":"7277:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7276:22:12"},"returnParameters":{"id":8620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8619,"mutability":"mutable","name":"data","nameLocation":"7336:4:12","nodeType":"VariableDeclaration","scope":8621,"src":"7322:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8618,"name":"string","nodeType":"ElementaryTypeName","src":"7322:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7321:20:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8628,"nodeType":"FunctionDefinition","src":"7436:88:12","nodes":[],"functionSelector":"16ed7bc4","implemented":false,"kind":"function","modifiers":[],"name":"readFileBinary","nameLocation":"7445:14:12","parameters":{"id":8624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8623,"mutability":"mutable","name":"path","nameLocation":"7476:4:12","nodeType":"VariableDeclaration","scope":8628,"src":"7460:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8622,"name":"string","nodeType":"ElementaryTypeName","src":"7460:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7459:22:12"},"returnParameters":{"id":8627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8626,"mutability":"mutable","name":"data","nameLocation":"7518:4:12","nodeType":"VariableDeclaration","scope":8628,"src":"7505:17:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8625,"name":"bytes","nodeType":"ElementaryTypeName","src":"7505:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7504:19:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8633,"nodeType":"FunctionDefinition","src":"7577:66:12","nodes":[],"functionSelector":"d930a0e6","implemented":false,"kind":"function","modifiers":[],"name":"projectRoot","nameLocation":"7586:11:12","parameters":{"id":8629,"nodeType":"ParameterList","parameters":[],"src":"7597:2:12"},"returnParameters":{"id":8632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8631,"mutability":"mutable","name":"path","nameLocation":"7637:4:12","nodeType":"VariableDeclaration","scope":8633,"src":"7623:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8630,"name":"string","nodeType":"ElementaryTypeName","src":"7623:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7622:20:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8641,"nodeType":"FunctionDefinition","src":"7693:93:12","nodes":[],"functionSelector":"af368a08","implemented":false,"kind":"function","modifiers":[],"name":"fsMetadata","nameLocation":"7702:10:12","parameters":{"id":8636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8635,"mutability":"mutable","name":"fileOrDir","nameLocation":"7729:9:12","nodeType":"VariableDeclaration","scope":8641,"src":"7713:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8634,"name":"string","nodeType":"ElementaryTypeName","src":"7713:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7712:27:12"},"returnParameters":{"id":8640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8639,"mutability":"mutable","name":"metadata","nameLocation":"7776:8:12","nodeType":"VariableDeclaration","scope":8641,"src":"7758:26:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FsMetadata_$8226_memory_ptr","typeString":"struct VmSafe.FsMetadata"},"typeName":{"id":8638,"nodeType":"UserDefinedTypeName","pathNode":{"id":8637,"name":"FsMetadata","nameLocations":["7758:10:12"],"nodeType":"IdentifierPath","referencedDeclaration":8226,"src":"7758:10:12"},"referencedDeclaration":8226,"src":"7758:10:12","typeDescriptions":{"typeIdentifier":"t_struct$_FsMetadata_$8226_storage_ptr","typeString":"struct VmSafe.FsMetadata"}},"visibility":"internal"}],"src":"7757:28:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8648,"nodeType":"FunctionDefinition","src":"7832:83:12","nodes":[],"functionSelector":"70f55728","implemented":false,"kind":"function","modifiers":[],"name":"readLine","nameLocation":"7841:8:12","parameters":{"id":8644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8643,"mutability":"mutable","name":"path","nameLocation":"7866:4:12","nodeType":"VariableDeclaration","scope":8648,"src":"7850:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8642,"name":"string","nodeType":"ElementaryTypeName","src":"7850:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7849:22:12"},"returnParameters":{"id":8647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8646,"mutability":"mutable","name":"line","nameLocation":"7909:4:12","nodeType":"VariableDeclaration","scope":8648,"src":"7895:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8645,"name":"string","nodeType":"ElementaryTypeName","src":"7895:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7894:20:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8655,"nodeType":"FunctionDefinition","src":"8034:72:12","nodes":[],"functionSelector":"897e0a97","implemented":false,"kind":"function","modifiers":[],"name":"writeFile","nameLocation":"8043:9:12","parameters":{"id":8653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8650,"mutability":"mutable","name":"path","nameLocation":"8069:4:12","nodeType":"VariableDeclaration","scope":8655,"src":"8053:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8649,"name":"string","nodeType":"ElementaryTypeName","src":"8053:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8652,"mutability":"mutable","name":"data","nameLocation":"8091:4:12","nodeType":"VariableDeclaration","scope":8655,"src":"8075:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8651,"name":"string","nodeType":"ElementaryTypeName","src":"8075:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8052:44:12"},"returnParameters":{"id":8654,"nodeType":"ParameterList","parameters":[],"src":"8105:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8662,"nodeType":"FunctionDefinition","src":"8279:77:12","nodes":[],"functionSelector":"1f21fc80","implemented":false,"kind":"function","modifiers":[],"name":"writeFileBinary","nameLocation":"8288:15:12","parameters":{"id":8660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8657,"mutability":"mutable","name":"path","nameLocation":"8320:4:12","nodeType":"VariableDeclaration","scope":8662,"src":"8304:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8656,"name":"string","nodeType":"ElementaryTypeName","src":"8304:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8659,"mutability":"mutable","name":"data","nameLocation":"8341:4:12","nodeType":"VariableDeclaration","scope":8662,"src":"8326:19:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8658,"name":"bytes","nodeType":"ElementaryTypeName","src":"8326:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8303:43:12"},"returnParameters":{"id":8661,"nodeType":"ParameterList","parameters":[],"src":"8355:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8669,"nodeType":"FunctionDefinition","src":"8427:72:12","nodes":[],"functionSelector":"619d897f","implemented":false,"kind":"function","modifiers":[],"name":"writeLine","nameLocation":"8436:9:12","parameters":{"id":8667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8664,"mutability":"mutable","name":"path","nameLocation":"8462:4:12","nodeType":"VariableDeclaration","scope":8669,"src":"8446:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8663,"name":"string","nodeType":"ElementaryTypeName","src":"8446:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8666,"mutability":"mutable","name":"data","nameLocation":"8484:4:12","nodeType":"VariableDeclaration","scope":8669,"src":"8468:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8665,"name":"string","nodeType":"ElementaryTypeName","src":"8468:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8445:44:12"},"returnParameters":{"id":8668,"nodeType":"ParameterList","parameters":[],"src":"8498:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8674,"nodeType":"FunctionDefinition","src":"8611:50:12","nodes":[],"functionSelector":"48c3241f","implemented":false,"kind":"function","modifiers":[],"name":"closeFile","nameLocation":"8620:9:12","parameters":{"id":8672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8671,"mutability":"mutable","name":"path","nameLocation":"8646:4:12","nodeType":"VariableDeclaration","scope":8674,"src":"8630:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8670,"name":"string","nodeType":"ElementaryTypeName","src":"8630:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8629:22:12"},"returnParameters":{"id":8673,"nodeType":"ParameterList","parameters":[],"src":"8660:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8679,"nodeType":"FunctionDefinition","src":"8909:51:12","nodes":[],"functionSelector":"f1afe04d","implemented":false,"kind":"function","modifiers":[],"name":"removeFile","nameLocation":"8918:10:12","parameters":{"id":8677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8676,"mutability":"mutable","name":"path","nameLocation":"8945:4:12","nodeType":"VariableDeclaration","scope":8679,"src":"8929:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8675,"name":"string","nodeType":"ElementaryTypeName","src":"8929:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8928:22:12"},"returnParameters":{"id":8678,"nodeType":"ParameterList","parameters":[],"src":"8959:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8686,"nodeType":"FunctionDefinition","src":"8999:88:12","nodes":[],"functionSelector":"56ca623e","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"9008:8:12","parameters":{"id":8682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8681,"mutability":"mutable","name":"value","nameLocation":"9025:5:12","nodeType":"VariableDeclaration","scope":8686,"src":"9017:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8680,"name":"address","nodeType":"ElementaryTypeName","src":"9017:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9016:15:12"},"returnParameters":{"id":8685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8684,"mutability":"mutable","name":"stringifiedValue","nameLocation":"9069:16:12","nodeType":"VariableDeclaration","scope":8686,"src":"9055:30:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8683,"name":"string","nodeType":"ElementaryTypeName","src":"9055:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9054:32:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8693,"nodeType":"FunctionDefinition","src":"9092:95:12","nodes":[],"functionSelector":"71aad10d","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"9101:8:12","parameters":{"id":8689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8688,"mutability":"mutable","name":"value","nameLocation":"9125:5:12","nodeType":"VariableDeclaration","scope":8693,"src":"9110:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8687,"name":"bytes","nodeType":"ElementaryTypeName","src":"9110:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9109:22:12"},"returnParameters":{"id":8692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8691,"mutability":"mutable","name":"stringifiedValue","nameLocation":"9169:16:12","nodeType":"VariableDeclaration","scope":8693,"src":"9155:30:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8690,"name":"string","nodeType":"ElementaryTypeName","src":"9155:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9154:32:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8700,"nodeType":"FunctionDefinition","src":"9192:88:12","nodes":[],"functionSelector":"b11a19e8","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"9201:8:12","parameters":{"id":8696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8695,"mutability":"mutable","name":"value","nameLocation":"9218:5:12","nodeType":"VariableDeclaration","scope":8700,"src":"9210:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8694,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9210:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9209:15:12"},"returnParameters":{"id":8699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8698,"mutability":"mutable","name":"stringifiedValue","nameLocation":"9262:16:12","nodeType":"VariableDeclaration","scope":8700,"src":"9248:30:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8697,"name":"string","nodeType":"ElementaryTypeName","src":"9248:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9247:32:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8707,"nodeType":"FunctionDefinition","src":"9285:85:12","nodes":[],"functionSelector":"71dce7da","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"9294:8:12","parameters":{"id":8703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8702,"mutability":"mutable","name":"value","nameLocation":"9308:5:12","nodeType":"VariableDeclaration","scope":8707,"src":"9303:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8701,"name":"bool","nodeType":"ElementaryTypeName","src":"9303:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9302:12:12"},"returnParameters":{"id":8706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8705,"mutability":"mutable","name":"stringifiedValue","nameLocation":"9352:16:12","nodeType":"VariableDeclaration","scope":8707,"src":"9338:30:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8704,"name":"string","nodeType":"ElementaryTypeName","src":"9338:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9337:32:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8714,"nodeType":"FunctionDefinition","src":"9375:88:12","nodes":[],"functionSelector":"6900a3ae","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"9384:8:12","parameters":{"id":8710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8709,"mutability":"mutable","name":"value","nameLocation":"9401:5:12","nodeType":"VariableDeclaration","scope":8714,"src":"9393:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8708,"name":"uint256","nodeType":"ElementaryTypeName","src":"9393:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9392:15:12"},"returnParameters":{"id":8713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8712,"mutability":"mutable","name":"stringifiedValue","nameLocation":"9445:16:12","nodeType":"VariableDeclaration","scope":8714,"src":"9431:30:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8711,"name":"string","nodeType":"ElementaryTypeName","src":"9431:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9430:32:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8721,"nodeType":"FunctionDefinition","src":"9468:87:12","nodes":[],"functionSelector":"a322c40e","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"9477:8:12","parameters":{"id":8717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8716,"mutability":"mutable","name":"value","nameLocation":"9493:5:12","nodeType":"VariableDeclaration","scope":8721,"src":"9486:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8715,"name":"int256","nodeType":"ElementaryTypeName","src":"9486:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9485:14:12"},"returnParameters":{"id":8720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8719,"mutability":"mutable","name":"stringifiedValue","nameLocation":"9537:16:12","nodeType":"VariableDeclaration","scope":8721,"src":"9523:30:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8718,"name":"string","nodeType":"ElementaryTypeName","src":"9523:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9522:32:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8728,"nodeType":"FunctionDefinition","src":"9596:103:12","nodes":[],"functionSelector":"8f5d232d","implemented":false,"kind":"function","modifiers":[],"name":"parseBytes","nameLocation":"9605:10:12","parameters":{"id":8724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8723,"mutability":"mutable","name":"stringifiedValue","nameLocation":"9632:16:12","nodeType":"VariableDeclaration","scope":8728,"src":"9616:32:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8722,"name":"string","nodeType":"ElementaryTypeName","src":"9616:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9615:34:12"},"returnParameters":{"id":8727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8726,"mutability":"mutable","name":"parsedValue","nameLocation":"9686:11:12","nodeType":"VariableDeclaration","scope":8728,"src":"9673:24:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8725,"name":"bytes","nodeType":"ElementaryTypeName","src":"9673:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9672:26:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8735,"nodeType":"FunctionDefinition","src":"9704:100:12","nodes":[],"functionSelector":"c6ce059d","implemented":false,"kind":"function","modifiers":[],"name":"parseAddress","nameLocation":"9713:12:12","parameters":{"id":8731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8730,"mutability":"mutable","name":"stringifiedValue","nameLocation":"9742:16:12","nodeType":"VariableDeclaration","scope":8735,"src":"9726:32:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8729,"name":"string","nodeType":"ElementaryTypeName","src":"9726:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9725:34:12"},"returnParameters":{"id":8734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8733,"mutability":"mutable","name":"parsedValue","nameLocation":"9791:11:12","nodeType":"VariableDeclaration","scope":8735,"src":"9783:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8732,"name":"address","nodeType":"ElementaryTypeName","src":"9783:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9782:21:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8742,"nodeType":"FunctionDefinition","src":"9809:97:12","nodes":[],"functionSelector":"fa91454d","implemented":false,"kind":"function","modifiers":[],"name":"parseUint","nameLocation":"9818:9:12","parameters":{"id":8738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8737,"mutability":"mutable","name":"stringifiedValue","nameLocation":"9844:16:12","nodeType":"VariableDeclaration","scope":8742,"src":"9828:32:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8736,"name":"string","nodeType":"ElementaryTypeName","src":"9828:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9827:34:12"},"returnParameters":{"id":8741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8740,"mutability":"mutable","name":"parsedValue","nameLocation":"9893:11:12","nodeType":"VariableDeclaration","scope":8742,"src":"9885:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8739,"name":"uint256","nodeType":"ElementaryTypeName","src":"9885:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9884:21:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8749,"nodeType":"FunctionDefinition","src":"9911:95:12","nodes":[],"functionSelector":"42346c5e","implemented":false,"kind":"function","modifiers":[],"name":"parseInt","nameLocation":"9920:8:12","parameters":{"id":8745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8744,"mutability":"mutable","name":"stringifiedValue","nameLocation":"9945:16:12","nodeType":"VariableDeclaration","scope":8749,"src":"9929:32:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8743,"name":"string","nodeType":"ElementaryTypeName","src":"9929:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9928:34:12"},"returnParameters":{"id":8748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8747,"mutability":"mutable","name":"parsedValue","nameLocation":"9993:11:12","nodeType":"VariableDeclaration","scope":8749,"src":"9986:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8746,"name":"int256","nodeType":"ElementaryTypeName","src":"9986:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9985:20:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8756,"nodeType":"FunctionDefinition","src":"10011:100:12","nodes":[],"functionSelector":"087e6e81","implemented":false,"kind":"function","modifiers":[],"name":"parseBytes32","nameLocation":"10020:12:12","parameters":{"id":8752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8751,"mutability":"mutable","name":"stringifiedValue","nameLocation":"10049:16:12","nodeType":"VariableDeclaration","scope":8756,"src":"10033:32:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8750,"name":"string","nodeType":"ElementaryTypeName","src":"10033:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10032:34:12"},"returnParameters":{"id":8755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8754,"mutability":"mutable","name":"parsedValue","nameLocation":"10098:11:12","nodeType":"VariableDeclaration","scope":8756,"src":"10090:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8753,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10090:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10089:21:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8763,"nodeType":"FunctionDefinition","src":"10116:94:12","nodes":[],"functionSelector":"974ef924","implemented":false,"kind":"function","modifiers":[],"name":"parseBool","nameLocation":"10125:9:12","parameters":{"id":8759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8758,"mutability":"mutable","name":"stringifiedValue","nameLocation":"10151:16:12","nodeType":"VariableDeclaration","scope":8763,"src":"10135:32:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8757,"name":"string","nodeType":"ElementaryTypeName","src":"10135:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10134:34:12"},"returnParameters":{"id":8762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8761,"mutability":"mutable","name":"parsedValue","nameLocation":"10197:11:12","nodeType":"VariableDeclaration","scope":8763,"src":"10192:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8760,"name":"bool","nodeType":"ElementaryTypeName","src":"10192:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10191:18:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8766,"nodeType":"FunctionDefinition","src":"10254:31:12","nodes":[],"functionSelector":"41af2f52","implemented":false,"kind":"function","modifiers":[],"name":"recordLogs","nameLocation":"10263:10:12","parameters":{"id":8764,"nodeType":"ParameterList","parameters":[],"src":"10273:2:12"},"returnParameters":{"id":8765,"nodeType":"ParameterList","parameters":[],"src":"10284:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8773,"nodeType":"FunctionDefinition","src":"10324:64:12","nodes":[],"functionSelector":"191553a4","implemented":false,"kind":"function","modifiers":[],"name":"getRecordedLogs","nameLocation":"10333:15:12","parameters":{"id":8767,"nodeType":"ParameterList","parameters":[],"src":"10348:2:12"},"returnParameters":{"id":8772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8771,"mutability":"mutable","name":"logs","nameLocation":"10382:4:12","nodeType":"VariableDeclaration","scope":8773,"src":"10369:17:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$8206_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log[]"},"typeName":{"baseType":{"id":8769,"nodeType":"UserDefinedTypeName","pathNode":{"id":8768,"name":"Log","nameLocations":["10369:3:12"],"nodeType":"IdentifierPath","referencedDeclaration":8206,"src":"10369:3:12"},"referencedDeclaration":8206,"src":"10369:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_Log_$8206_storage_ptr","typeString":"struct VmSafe.Log"}},"id":8770,"nodeType":"ArrayTypeName","src":"10369:5:12","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$8206_storage_$dyn_storage_ptr","typeString":"struct VmSafe.Log[]"}},"visibility":"internal"}],"src":"10368:19:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8782,"nodeType":"FunctionDefinition","src":"10523:102:12","nodes":[],"functionSelector":"6229498b","implemented":false,"kind":"function","modifiers":[],"name":"deriveKey","nameLocation":"10532:9:12","parameters":{"id":8778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8775,"mutability":"mutable","name":"mnemonic","nameLocation":"10558:8:12","nodeType":"VariableDeclaration","scope":8782,"src":"10542:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8774,"name":"string","nodeType":"ElementaryTypeName","src":"10542:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8777,"mutability":"mutable","name":"index","nameLocation":"10575:5:12","nodeType":"VariableDeclaration","scope":8782,"src":"10568:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":8776,"name":"uint32","nodeType":"ElementaryTypeName","src":"10568:6:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"10541:40:12"},"returnParameters":{"id":8781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8780,"mutability":"mutable","name":"privateKey","nameLocation":"10613:10:12","nodeType":"VariableDeclaration","scope":8782,"src":"10605:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8779,"name":"uint256","nodeType":"ElementaryTypeName","src":"10605:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10604:20:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8793,"nodeType":"FunctionDefinition","src":"10741:158:12","nodes":[],"functionSelector":"6bcb2c1b","implemented":false,"kind":"function","modifiers":[],"name":"deriveKey","nameLocation":"10750:9:12","parameters":{"id":8789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8784,"mutability":"mutable","name":"mnemonic","nameLocation":"10776:8:12","nodeType":"VariableDeclaration","scope":8793,"src":"10760:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8783,"name":"string","nodeType":"ElementaryTypeName","src":"10760:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8786,"mutability":"mutable","name":"derivationPath","nameLocation":"10802:14:12","nodeType":"VariableDeclaration","scope":8793,"src":"10786:30:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8785,"name":"string","nodeType":"ElementaryTypeName","src":"10786:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8788,"mutability":"mutable","name":"index","nameLocation":"10825:5:12","nodeType":"VariableDeclaration","scope":8793,"src":"10818:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":8787,"name":"uint32","nodeType":"ElementaryTypeName","src":"10818:6:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"10759:72:12"},"returnParameters":{"id":8792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8791,"mutability":"mutable","name":"privateKey","nameLocation":"10887:10:12","nodeType":"VariableDeclaration","scope":8793,"src":"10879:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8790,"name":"uint256","nodeType":"ElementaryTypeName","src":"10879:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10878:20:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8800,"nodeType":"FunctionDefinition","src":"10980:73:12","nodes":[],"functionSelector":"22100064","implemented":false,"kind":"function","modifiers":[],"name":"rememberKey","nameLocation":"10989:11:12","parameters":{"id":8796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8795,"mutability":"mutable","name":"privateKey","nameLocation":"11009:10:12","nodeType":"VariableDeclaration","scope":8800,"src":"11001:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8794,"name":"uint256","nodeType":"ElementaryTypeName","src":"11001:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11000:20:12"},"returnParameters":{"id":8799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8798,"mutability":"mutable","name":"addr","nameLocation":"11047:4:12","nodeType":"VariableDeclaration","scope":8800,"src":"11039:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8797,"name":"address","nodeType":"ElementaryTypeName","src":"11039:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11038:14:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8809,"nodeType":"FunctionDefinition","src":"12086:114:12","nodes":[],"functionSelector":"85940ef1","implemented":false,"kind":"function","modifiers":[],"name":"parseJson","nameLocation":"12095:9:12","parameters":{"id":8805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8802,"mutability":"mutable","name":"json","nameLocation":"12121:4:12","nodeType":"VariableDeclaration","scope":8809,"src":"12105:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8801,"name":"string","nodeType":"ElementaryTypeName","src":"12105:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8804,"mutability":"mutable","name":"key","nameLocation":"12143:3:12","nodeType":"VariableDeclaration","scope":8809,"src":"12127:19:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8803,"name":"string","nodeType":"ElementaryTypeName","src":"12127:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12104:43:12"},"returnParameters":{"id":8808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8807,"mutability":"mutable","name":"abiEncodedData","nameLocation":"12184:14:12","nodeType":"VariableDeclaration","scope":8809,"src":"12171:27:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8806,"name":"bytes","nodeType":"ElementaryTypeName","src":"12171:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12170:29:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8816,"nodeType":"FunctionDefinition","src":"12205:93:12","nodes":[],"functionSelector":"6a82600a","implemented":false,"kind":"function","modifiers":[],"name":"parseJson","nameLocation":"12214:9:12","parameters":{"id":8812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8811,"mutability":"mutable","name":"json","nameLocation":"12240:4:12","nodeType":"VariableDeclaration","scope":8816,"src":"12224:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8810,"name":"string","nodeType":"ElementaryTypeName","src":"12224:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12223:22:12"},"returnParameters":{"id":8815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8814,"mutability":"mutable","name":"abiEncodedData","nameLocation":"12282:14:12","nodeType":"VariableDeclaration","scope":8816,"src":"12269:27:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8813,"name":"bytes","nodeType":"ElementaryTypeName","src":"12269:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12268:29:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8827,"nodeType":"FunctionDefinition","src":"12494:142:12","nodes":[],"functionSelector":"ac22e971","implemented":false,"kind":"function","modifiers":[],"name":"serializeBool","nameLocation":"12503:13:12","parameters":{"id":8823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8818,"mutability":"mutable","name":"objectKey","nameLocation":"12533:9:12","nodeType":"VariableDeclaration","scope":8827,"src":"12517:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8817,"name":"string","nodeType":"ElementaryTypeName","src":"12517:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8820,"mutability":"mutable","name":"valueKey","nameLocation":"12560:8:12","nodeType":"VariableDeclaration","scope":8827,"src":"12544:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8819,"name":"string","nodeType":"ElementaryTypeName","src":"12544:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8822,"mutability":"mutable","name":"value","nameLocation":"12575:5:12","nodeType":"VariableDeclaration","scope":8827,"src":"12570:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8821,"name":"bool","nodeType":"ElementaryTypeName","src":"12570:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12516:65:12"},"returnParameters":{"id":8826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8825,"mutability":"mutable","name":"json","nameLocation":"12630:4:12","nodeType":"VariableDeclaration","scope":8827,"src":"12616:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8824,"name":"string","nodeType":"ElementaryTypeName","src":"12616:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12615:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8838,"nodeType":"FunctionDefinition","src":"12641:145:12","nodes":[],"functionSelector":"129e9002","implemented":false,"kind":"function","modifiers":[],"name":"serializeUint","nameLocation":"12650:13:12","parameters":{"id":8834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8829,"mutability":"mutable","name":"objectKey","nameLocation":"12680:9:12","nodeType":"VariableDeclaration","scope":8838,"src":"12664:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8828,"name":"string","nodeType":"ElementaryTypeName","src":"12664:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8831,"mutability":"mutable","name":"valueKey","nameLocation":"12707:8:12","nodeType":"VariableDeclaration","scope":8838,"src":"12691:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8830,"name":"string","nodeType":"ElementaryTypeName","src":"12691:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8833,"mutability":"mutable","name":"value","nameLocation":"12725:5:12","nodeType":"VariableDeclaration","scope":8838,"src":"12717:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8832,"name":"uint256","nodeType":"ElementaryTypeName","src":"12717:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12663:68:12"},"returnParameters":{"id":8837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8836,"mutability":"mutable","name":"json","nameLocation":"12780:4:12","nodeType":"VariableDeclaration","scope":8838,"src":"12766:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8835,"name":"string","nodeType":"ElementaryTypeName","src":"12766:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12765:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8849,"nodeType":"FunctionDefinition","src":"12791:143:12","nodes":[],"functionSelector":"3f33db60","implemented":false,"kind":"function","modifiers":[],"name":"serializeInt","nameLocation":"12800:12:12","parameters":{"id":8845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8840,"mutability":"mutable","name":"objectKey","nameLocation":"12829:9:12","nodeType":"VariableDeclaration","scope":8849,"src":"12813:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8839,"name":"string","nodeType":"ElementaryTypeName","src":"12813:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8842,"mutability":"mutable","name":"valueKey","nameLocation":"12856:8:12","nodeType":"VariableDeclaration","scope":8849,"src":"12840:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8841,"name":"string","nodeType":"ElementaryTypeName","src":"12840:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8844,"mutability":"mutable","name":"value","nameLocation":"12873:5:12","nodeType":"VariableDeclaration","scope":8849,"src":"12866:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8843,"name":"int256","nodeType":"ElementaryTypeName","src":"12866:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"12812:67:12"},"returnParameters":{"id":8848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8847,"mutability":"mutable","name":"json","nameLocation":"12928:4:12","nodeType":"VariableDeclaration","scope":8849,"src":"12914:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8846,"name":"string","nodeType":"ElementaryTypeName","src":"12914:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12913:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8860,"nodeType":"FunctionDefinition","src":"12939:148:12","nodes":[],"functionSelector":"972c6062","implemented":false,"kind":"function","modifiers":[],"name":"serializeAddress","nameLocation":"12948:16:12","parameters":{"id":8856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8851,"mutability":"mutable","name":"objectKey","nameLocation":"12981:9:12","nodeType":"VariableDeclaration","scope":8860,"src":"12965:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8850,"name":"string","nodeType":"ElementaryTypeName","src":"12965:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8853,"mutability":"mutable","name":"valueKey","nameLocation":"13008:8:12","nodeType":"VariableDeclaration","scope":8860,"src":"12992:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8852,"name":"string","nodeType":"ElementaryTypeName","src":"12992:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8855,"mutability":"mutable","name":"value","nameLocation":"13026:5:12","nodeType":"VariableDeclaration","scope":8860,"src":"13018:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8854,"name":"address","nodeType":"ElementaryTypeName","src":"13018:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12964:68:12"},"returnParameters":{"id":8859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8858,"mutability":"mutable","name":"json","nameLocation":"13081:4:12","nodeType":"VariableDeclaration","scope":8860,"src":"13067:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8857,"name":"string","nodeType":"ElementaryTypeName","src":"13067:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13066:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8871,"nodeType":"FunctionDefinition","src":"13092:148:12","nodes":[],"functionSelector":"2d812b44","implemented":false,"kind":"function","modifiers":[],"name":"serializeBytes32","nameLocation":"13101:16:12","parameters":{"id":8867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8862,"mutability":"mutable","name":"objectKey","nameLocation":"13134:9:12","nodeType":"VariableDeclaration","scope":8871,"src":"13118:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8861,"name":"string","nodeType":"ElementaryTypeName","src":"13118:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8864,"mutability":"mutable","name":"valueKey","nameLocation":"13161:8:12","nodeType":"VariableDeclaration","scope":8871,"src":"13145:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8863,"name":"string","nodeType":"ElementaryTypeName","src":"13145:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8866,"mutability":"mutable","name":"value","nameLocation":"13179:5:12","nodeType":"VariableDeclaration","scope":8871,"src":"13171:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8865,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13171:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13117:68:12"},"returnParameters":{"id":8870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8869,"mutability":"mutable","name":"json","nameLocation":"13234:4:12","nodeType":"VariableDeclaration","scope":8871,"src":"13220:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8868,"name":"string","nodeType":"ElementaryTypeName","src":"13220:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13219:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8882,"nodeType":"FunctionDefinition","src":"13245:155:12","nodes":[],"functionSelector":"88da6d35","implemented":false,"kind":"function","modifiers":[],"name":"serializeString","nameLocation":"13254:15:12","parameters":{"id":8878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8873,"mutability":"mutable","name":"objectKey","nameLocation":"13286:9:12","nodeType":"VariableDeclaration","scope":8882,"src":"13270:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8872,"name":"string","nodeType":"ElementaryTypeName","src":"13270:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8875,"mutability":"mutable","name":"valueKey","nameLocation":"13313:8:12","nodeType":"VariableDeclaration","scope":8882,"src":"13297:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8874,"name":"string","nodeType":"ElementaryTypeName","src":"13297:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8877,"mutability":"mutable","name":"value","nameLocation":"13339:5:12","nodeType":"VariableDeclaration","scope":8882,"src":"13323:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8876,"name":"string","nodeType":"ElementaryTypeName","src":"13323:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13269:76:12"},"returnParameters":{"id":8881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8880,"mutability":"mutable","name":"json","nameLocation":"13394:4:12","nodeType":"VariableDeclaration","scope":8882,"src":"13380:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8879,"name":"string","nodeType":"ElementaryTypeName","src":"13380:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13379:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8893,"nodeType":"FunctionDefinition","src":"13405:153:12","nodes":[],"functionSelector":"f21d52c7","implemented":false,"kind":"function","modifiers":[],"name":"serializeBytes","nameLocation":"13414:14:12","parameters":{"id":8889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8884,"mutability":"mutable","name":"objectKey","nameLocation":"13445:9:12","nodeType":"VariableDeclaration","scope":8893,"src":"13429:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8883,"name":"string","nodeType":"ElementaryTypeName","src":"13429:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8886,"mutability":"mutable","name":"valueKey","nameLocation":"13472:8:12","nodeType":"VariableDeclaration","scope":8893,"src":"13456:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8885,"name":"string","nodeType":"ElementaryTypeName","src":"13456:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8888,"mutability":"mutable","name":"value","nameLocation":"13497:5:12","nodeType":"VariableDeclaration","scope":8893,"src":"13482:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8887,"name":"bytes","nodeType":"ElementaryTypeName","src":"13482:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13428:75:12"},"returnParameters":{"id":8892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8891,"mutability":"mutable","name":"json","nameLocation":"13552:4:12","nodeType":"VariableDeclaration","scope":8893,"src":"13538:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8890,"name":"string","nodeType":"ElementaryTypeName","src":"13538:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13537:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8905,"nodeType":"FunctionDefinition","src":"13564:154:12","nodes":[],"functionSelector":"92925aa1","implemented":false,"kind":"function","modifiers":[],"name":"serializeBool","nameLocation":"13573:13:12","parameters":{"id":8901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8895,"mutability":"mutable","name":"objectKey","nameLocation":"13603:9:12","nodeType":"VariableDeclaration","scope":8905,"src":"13587:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8894,"name":"string","nodeType":"ElementaryTypeName","src":"13587:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8897,"mutability":"mutable","name":"valueKey","nameLocation":"13630:8:12","nodeType":"VariableDeclaration","scope":8905,"src":"13614:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8896,"name":"string","nodeType":"ElementaryTypeName","src":"13614:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8900,"mutability":"mutable","name":"values","nameLocation":"13656:6:12","nodeType":"VariableDeclaration","scope":8905,"src":"13640:22:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":8898,"name":"bool","nodeType":"ElementaryTypeName","src":"13640:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8899,"nodeType":"ArrayTypeName","src":"13640:6:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"13586:77:12"},"returnParameters":{"id":8904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8903,"mutability":"mutable","name":"json","nameLocation":"13712:4:12","nodeType":"VariableDeclaration","scope":8905,"src":"13698:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8902,"name":"string","nodeType":"ElementaryTypeName","src":"13698:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13697:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8917,"nodeType":"FunctionDefinition","src":"13723:157:12","nodes":[],"functionSelector":"fee9a469","implemented":false,"kind":"function","modifiers":[],"name":"serializeUint","nameLocation":"13732:13:12","parameters":{"id":8913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8907,"mutability":"mutable","name":"objectKey","nameLocation":"13762:9:12","nodeType":"VariableDeclaration","scope":8917,"src":"13746:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8906,"name":"string","nodeType":"ElementaryTypeName","src":"13746:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8909,"mutability":"mutable","name":"valueKey","nameLocation":"13789:8:12","nodeType":"VariableDeclaration","scope":8917,"src":"13773:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8908,"name":"string","nodeType":"ElementaryTypeName","src":"13773:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8912,"mutability":"mutable","name":"values","nameLocation":"13818:6:12","nodeType":"VariableDeclaration","scope":8917,"src":"13799:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8910,"name":"uint256","nodeType":"ElementaryTypeName","src":"13799:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8911,"nodeType":"ArrayTypeName","src":"13799:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"13745:80:12"},"returnParameters":{"id":8916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8915,"mutability":"mutable","name":"json","nameLocation":"13874:4:12","nodeType":"VariableDeclaration","scope":8917,"src":"13860:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8914,"name":"string","nodeType":"ElementaryTypeName","src":"13860:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13859:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8929,"nodeType":"FunctionDefinition","src":"13885:155:12","nodes":[],"functionSelector":"7676e127","implemented":false,"kind":"function","modifiers":[],"name":"serializeInt","nameLocation":"13894:12:12","parameters":{"id":8925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8919,"mutability":"mutable","name":"objectKey","nameLocation":"13923:9:12","nodeType":"VariableDeclaration","scope":8929,"src":"13907:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8918,"name":"string","nodeType":"ElementaryTypeName","src":"13907:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8921,"mutability":"mutable","name":"valueKey","nameLocation":"13950:8:12","nodeType":"VariableDeclaration","scope":8929,"src":"13934:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8920,"name":"string","nodeType":"ElementaryTypeName","src":"13934:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8924,"mutability":"mutable","name":"values","nameLocation":"13978:6:12","nodeType":"VariableDeclaration","scope":8929,"src":"13960:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":8922,"name":"int256","nodeType":"ElementaryTypeName","src":"13960:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":8923,"nodeType":"ArrayTypeName","src":"13960:8:12","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"13906:79:12"},"returnParameters":{"id":8928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8927,"mutability":"mutable","name":"json","nameLocation":"14034:4:12","nodeType":"VariableDeclaration","scope":8929,"src":"14020:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8926,"name":"string","nodeType":"ElementaryTypeName","src":"14020:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14019:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8941,"nodeType":"FunctionDefinition","src":"14045:160:12","nodes":[],"functionSelector":"1e356e1a","implemented":false,"kind":"function","modifiers":[],"name":"serializeAddress","nameLocation":"14054:16:12","parameters":{"id":8937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8931,"mutability":"mutable","name":"objectKey","nameLocation":"14087:9:12","nodeType":"VariableDeclaration","scope":8941,"src":"14071:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8930,"name":"string","nodeType":"ElementaryTypeName","src":"14071:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8933,"mutability":"mutable","name":"valueKey","nameLocation":"14114:8:12","nodeType":"VariableDeclaration","scope":8941,"src":"14098:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8932,"name":"string","nodeType":"ElementaryTypeName","src":"14098:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8936,"mutability":"mutable","name":"values","nameLocation":"14143:6:12","nodeType":"VariableDeclaration","scope":8941,"src":"14124:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8934,"name":"address","nodeType":"ElementaryTypeName","src":"14124:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8935,"nodeType":"ArrayTypeName","src":"14124:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"14070:80:12"},"returnParameters":{"id":8940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8939,"mutability":"mutable","name":"json","nameLocation":"14199:4:12","nodeType":"VariableDeclaration","scope":8941,"src":"14185:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8938,"name":"string","nodeType":"ElementaryTypeName","src":"14185:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14184:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8953,"nodeType":"FunctionDefinition","src":"14210:160:12","nodes":[],"functionSelector":"201e43e2","implemented":false,"kind":"function","modifiers":[],"name":"serializeBytes32","nameLocation":"14219:16:12","parameters":{"id":8949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8943,"mutability":"mutable","name":"objectKey","nameLocation":"14252:9:12","nodeType":"VariableDeclaration","scope":8953,"src":"14236:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8942,"name":"string","nodeType":"ElementaryTypeName","src":"14236:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8945,"mutability":"mutable","name":"valueKey","nameLocation":"14279:8:12","nodeType":"VariableDeclaration","scope":8953,"src":"14263:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8944,"name":"string","nodeType":"ElementaryTypeName","src":"14263:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8948,"mutability":"mutable","name":"values","nameLocation":"14308:6:12","nodeType":"VariableDeclaration","scope":8953,"src":"14289:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8946,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14289:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8947,"nodeType":"ArrayTypeName","src":"14289:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"14235:80:12"},"returnParameters":{"id":8952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8951,"mutability":"mutable","name":"json","nameLocation":"14364:4:12","nodeType":"VariableDeclaration","scope":8953,"src":"14350:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8950,"name":"string","nodeType":"ElementaryTypeName","src":"14350:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14349:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8965,"nodeType":"FunctionDefinition","src":"14375:158:12","nodes":[],"functionSelector":"561cd6f3","implemented":false,"kind":"function","modifiers":[],"name":"serializeString","nameLocation":"14384:15:12","parameters":{"id":8961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8955,"mutability":"mutable","name":"objectKey","nameLocation":"14416:9:12","nodeType":"VariableDeclaration","scope":8965,"src":"14400:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8954,"name":"string","nodeType":"ElementaryTypeName","src":"14400:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8957,"mutability":"mutable","name":"valueKey","nameLocation":"14443:8:12","nodeType":"VariableDeclaration","scope":8965,"src":"14427:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8956,"name":"string","nodeType":"ElementaryTypeName","src":"14427:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8960,"mutability":"mutable","name":"values","nameLocation":"14471:6:12","nodeType":"VariableDeclaration","scope":8965,"src":"14453:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":8958,"name":"string","nodeType":"ElementaryTypeName","src":"14453:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":8959,"nodeType":"ArrayTypeName","src":"14453:8:12","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"14399:79:12"},"returnParameters":{"id":8964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8963,"mutability":"mutable","name":"json","nameLocation":"14527:4:12","nodeType":"VariableDeclaration","scope":8965,"src":"14513:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8962,"name":"string","nodeType":"ElementaryTypeName","src":"14513:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14512:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8977,"nodeType":"FunctionDefinition","src":"14538:156:12","nodes":[],"functionSelector":"9884b232","implemented":false,"kind":"function","modifiers":[],"name":"serializeBytes","nameLocation":"14547:14:12","parameters":{"id":8973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8967,"mutability":"mutable","name":"objectKey","nameLocation":"14578:9:12","nodeType":"VariableDeclaration","scope":8977,"src":"14562:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8966,"name":"string","nodeType":"ElementaryTypeName","src":"14562:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8969,"mutability":"mutable","name":"valueKey","nameLocation":"14605:8:12","nodeType":"VariableDeclaration","scope":8977,"src":"14589:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8968,"name":"string","nodeType":"ElementaryTypeName","src":"14589:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8972,"mutability":"mutable","name":"values","nameLocation":"14632:6:12","nodeType":"VariableDeclaration","scope":8977,"src":"14615:23:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":8970,"name":"bytes","nodeType":"ElementaryTypeName","src":"14615:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":8971,"nodeType":"ArrayTypeName","src":"14615:7:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"14561:78:12"},"returnParameters":{"id":8976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8975,"mutability":"mutable","name":"json","nameLocation":"14688:4:12","nodeType":"VariableDeclaration","scope":8977,"src":"14674:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8974,"name":"string","nodeType":"ElementaryTypeName","src":"14674:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14673:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8984,"nodeType":"FunctionDefinition","src":"15935:72:12","nodes":[],"functionSelector":"e23cd19f","implemented":false,"kind":"function","modifiers":[],"name":"writeJson","nameLocation":"15944:9:12","parameters":{"id":8982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8979,"mutability":"mutable","name":"json","nameLocation":"15970:4:12","nodeType":"VariableDeclaration","scope":8984,"src":"15954:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8978,"name":"string","nodeType":"ElementaryTypeName","src":"15954:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8981,"mutability":"mutable","name":"path","nameLocation":"15992:4:12","nodeType":"VariableDeclaration","scope":8984,"src":"15976:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8980,"name":"string","nodeType":"ElementaryTypeName","src":"15976:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15953:44:12"},"returnParameters":{"id":8983,"nodeType":"ParameterList","parameters":[],"src":"16006:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8993,"nodeType":"FunctionDefinition","src":"16228:98:12","nodes":[],"functionSelector":"35d6ad46","implemented":false,"kind":"function","modifiers":[],"name":"writeJson","nameLocation":"16237:9:12","parameters":{"id":8991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8986,"mutability":"mutable","name":"json","nameLocation":"16263:4:12","nodeType":"VariableDeclaration","scope":8993,"src":"16247:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8985,"name":"string","nodeType":"ElementaryTypeName","src":"16247:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8988,"mutability":"mutable","name":"path","nameLocation":"16285:4:12","nodeType":"VariableDeclaration","scope":8993,"src":"16269:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8987,"name":"string","nodeType":"ElementaryTypeName","src":"16269:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8990,"mutability":"mutable","name":"valueKey","nameLocation":"16307:8:12","nodeType":"VariableDeclaration","scope":8993,"src":"16291:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8989,"name":"string","nodeType":"ElementaryTypeName","src":"16291:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16246:70:12"},"returnParameters":{"id":8992,"nodeType":"ParameterList","parameters":[],"src":"16325:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9000,"nodeType":"FunctionDefinition","src":"16378:85:12","nodes":[],"functionSelector":"975a6ce9","implemented":false,"kind":"function","modifiers":[],"name":"rpcUrl","nameLocation":"16387:6:12","parameters":{"id":8996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8995,"mutability":"mutable","name":"rpcAlias","nameLocation":"16410:8:12","nodeType":"VariableDeclaration","scope":9000,"src":"16394:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8994,"name":"string","nodeType":"ElementaryTypeName","src":"16394:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16393:26:12"},"returnParameters":{"id":8999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8998,"mutability":"mutable","name":"json","nameLocation":"16457:4:12","nodeType":"VariableDeclaration","scope":9000,"src":"16443:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8997,"name":"string","nodeType":"ElementaryTypeName","src":"16443:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16442:20:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9008,"nodeType":"FunctionDefinition","src":"16531:67:12","nodes":[],"functionSelector":"a85a8418","implemented":false,"kind":"function","modifiers":[],"name":"rpcUrls","nameLocation":"16540:7:12","parameters":{"id":9001,"nodeType":"ParameterList","parameters":[],"src":"16547:2:12"},"returnParameters":{"id":9007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9006,"mutability":"mutable","name":"urls","nameLocation":"16592:4:12","nodeType":"VariableDeclaration","scope":9008,"src":"16573:23:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr","typeString":"string[2][]"},"typeName":{"baseType":{"baseType":{"id":9002,"name":"string","nodeType":"ElementaryTypeName","src":"16573:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":9004,"length":{"hexValue":"32","id":9003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16580:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"ArrayTypeName","src":"16573:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$2_storage_ptr","typeString":"string[2]"}},"id":9005,"nodeType":"ArrayTypeName","src":"16573:11:12","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr","typeString":"string[2][]"}},"visibility":"internal"}],"src":"16572:25:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9015,"nodeType":"FunctionDefinition","src":"16661:67:12","nodes":[],"functionSelector":"9d2ad72a","implemented":false,"kind":"function","modifiers":[],"name":"rpcUrlStructs","nameLocation":"16670:13:12","parameters":{"id":9009,"nodeType":"ParameterList","parameters":[],"src":"16683:2:12"},"returnParameters":{"id":9014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9013,"mutability":"mutable","name":"urls","nameLocation":"16722:4:12","nodeType":"VariableDeclaration","scope":9015,"src":"16709:17:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Rpc_$8211_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Rpc[]"},"typeName":{"baseType":{"id":9011,"nodeType":"UserDefinedTypeName","pathNode":{"id":9010,"name":"Rpc","nameLocations":["16709:3:12"],"nodeType":"IdentifierPath","referencedDeclaration":8211,"src":"16709:3:12"},"referencedDeclaration":8211,"src":"16709:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_Rpc_$8211_storage_ptr","typeString":"struct VmSafe.Rpc"}},"id":9012,"nodeType":"ArrayTypeName","src":"16709:5:12","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Rpc_$8211_storage_$dyn_storage_ptr","typeString":"struct VmSafe.Rpc[]"}},"visibility":"internal"}],"src":"16708:19:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9020,"nodeType":"FunctionDefinition","src":"16821:46:12","nodes":[],"functionSelector":"4c63e562","implemented":false,"kind":"function","modifiers":[],"name":"assume","nameLocation":"16830:6:12","parameters":{"id":9018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9017,"mutability":"mutable","name":"condition","nameLocation":"16842:9:12","nodeType":"VariableDeclaration","scope":9020,"src":"16837:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9016,"name":"bool","nodeType":"ElementaryTypeName","src":"16837:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16836:16:12"},"returnParameters":{"id":9019,"nodeType":"ParameterList","parameters":[],"src":"16866:0:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":9023,"nodeType":"FunctionDefinition","src":"16956:37:12","nodes":[],"functionSelector":"d1a5b36f","implemented":false,"kind":"function","modifiers":[],"name":"pauseGasMetering","nameLocation":"16965:16:12","parameters":{"id":9021,"nodeType":"ParameterList","parameters":[],"src":"16981:2:12"},"returnParameters":{"id":9022,"nodeType":"ParameterList","parameters":[],"src":"16992:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9026,"nodeType":"FunctionDefinition","src":"17081:38:12","nodes":[],"functionSelector":"2bcd50e0","implemented":false,"kind":"function","modifiers":[],"name":"resumeGasMetering","nameLocation":"17090:17:12","parameters":{"id":9024,"nodeType":"ParameterList","parameters":[],"src":"17107:2:12"},"returnParameters":{"id":9025,"nodeType":"ParameterList","parameters":[],"src":"17118:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"VmSafe","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[9027],"name":"VmSafe","nameLocation":"581:6:12","scope":9353,"usedErrors":[],"usedEvents":[]},{"id":9352,"nodeType":"ContractDefinition","src":"17123:7867:12","nodes":[{"id":9034,"nodeType":"FunctionDefinition","src":"17180:45:12","nodes":[],"functionSelector":"e5d6bf02","implemented":false,"kind":"function","modifiers":[],"name":"warp","nameLocation":"17189:4:12","parameters":{"id":9032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9031,"mutability":"mutable","name":"newTimestamp","nameLocation":"17202:12:12","nodeType":"VariableDeclaration","scope":9034,"src":"17194:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9030,"name":"uint256","nodeType":"ElementaryTypeName","src":"17194:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17193:22:12"},"returnParameters":{"id":9033,"nodeType":"ParameterList","parameters":[],"src":"17224:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9039,"nodeType":"FunctionDefinition","src":"17255:42:12","nodes":[],"functionSelector":"1f7b4f30","implemented":false,"kind":"function","modifiers":[],"name":"roll","nameLocation":"17264:4:12","parameters":{"id":9037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9036,"mutability":"mutable","name":"newHeight","nameLocation":"17277:9:12","nodeType":"VariableDeclaration","scope":9039,"src":"17269:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9035,"name":"uint256","nodeType":"ElementaryTypeName","src":"17269:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17268:19:12"},"returnParameters":{"id":9038,"nodeType":"ParameterList","parameters":[],"src":"17296:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9044,"nodeType":"FunctionDefinition","src":"17328:42:12","nodes":[],"functionSelector":"39b37ab0","implemented":false,"kind":"function","modifiers":[],"name":"fee","nameLocation":"17337:3:12","parameters":{"id":9042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9041,"mutability":"mutable","name":"newBasefee","nameLocation":"17349:10:12","nodeType":"VariableDeclaration","scope":9044,"src":"17341:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9040,"name":"uint256","nodeType":"ElementaryTypeName","src":"17341:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17340:20:12"},"returnParameters":{"id":9043,"nodeType":"ParameterList","parameters":[],"src":"17369:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9049,"nodeType":"FunctionDefinition","src":"17404:52:12","nodes":[],"functionSelector":"46cc92d9","implemented":false,"kind":"function","modifiers":[],"name":"difficulty","nameLocation":"17413:10:12","parameters":{"id":9047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9046,"mutability":"mutable","name":"newDifficulty","nameLocation":"17432:13:12","nodeType":"VariableDeclaration","scope":9049,"src":"17424:21:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9045,"name":"uint256","nodeType":"ElementaryTypeName","src":"17424:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17423:23:12"},"returnParameters":{"id":9048,"nodeType":"ParameterList","parameters":[],"src":"17455:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9054,"nodeType":"FunctionDefinition","src":"17487:46:12","nodes":[],"functionSelector":"4049ddd2","implemented":false,"kind":"function","modifiers":[],"name":"chainId","nameLocation":"17496:7:12","parameters":{"id":9052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9051,"mutability":"mutable","name":"newChainId","nameLocation":"17512:10:12","nodeType":"VariableDeclaration","scope":9054,"src":"17504:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9050,"name":"uint256","nodeType":"ElementaryTypeName","src":"17504:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17503:20:12"},"returnParameters":{"id":9053,"nodeType":"ParameterList","parameters":[],"src":"17532:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9063,"nodeType":"FunctionDefinition","src":"17589:69:12","nodes":[],"functionSelector":"70ca10bb","implemented":false,"kind":"function","modifiers":[],"name":"store","nameLocation":"17598:5:12","parameters":{"id":9061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9056,"mutability":"mutable","name":"target","nameLocation":"17612:6:12","nodeType":"VariableDeclaration","scope":9063,"src":"17604:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9055,"name":"address","nodeType":"ElementaryTypeName","src":"17604:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9058,"mutability":"mutable","name":"slot","nameLocation":"17628:4:12","nodeType":"VariableDeclaration","scope":9063,"src":"17620:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9057,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17620:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9060,"mutability":"mutable","name":"value","nameLocation":"17642:5:12","nodeType":"VariableDeclaration","scope":9063,"src":"17634:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9059,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17634:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17603:45:12"},"returnParameters":{"id":9062,"nodeType":"ParameterList","parameters":[],"src":"17657:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9070,"nodeType":"FunctionDefinition","src":"17753:61:12","nodes":[],"functionSelector":"f8e18b57","implemented":false,"kind":"function","modifiers":[],"name":"setNonce","nameLocation":"17762:8:12","parameters":{"id":9068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9065,"mutability":"mutable","name":"account","nameLocation":"17779:7:12","nodeType":"VariableDeclaration","scope":9070,"src":"17771:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9064,"name":"address","nodeType":"ElementaryTypeName","src":"17771:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9067,"mutability":"mutable","name":"newNonce","nameLocation":"17795:8:12","nodeType":"VariableDeclaration","scope":9070,"src":"17788:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9066,"name":"uint64","nodeType":"ElementaryTypeName","src":"17788:6:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"17770:34:12"},"returnParameters":{"id":9069,"nodeType":"ParameterList","parameters":[],"src":"17813:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9075,"nodeType":"FunctionDefinition","src":"17884:43:12","nodes":[],"functionSelector":"ca669fa7","implemented":false,"kind":"function","modifiers":[],"name":"prank","nameLocation":"17893:5:12","parameters":{"id":9073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9072,"mutability":"mutable","name":"msgSender","nameLocation":"17907:9:12","nodeType":"VariableDeclaration","scope":9075,"src":"17899:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9071,"name":"address","nodeType":"ElementaryTypeName","src":"17899:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17898:19:12"},"returnParameters":{"id":9074,"nodeType":"ParameterList","parameters":[],"src":"17926:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9080,"nodeType":"FunctionDefinition","src":"18029:48:12","nodes":[],"functionSelector":"06447d56","implemented":false,"kind":"function","modifiers":[],"name":"startPrank","nameLocation":"18038:10:12","parameters":{"id":9078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9077,"mutability":"mutable","name":"msgSender","nameLocation":"18057:9:12","nodeType":"VariableDeclaration","scope":9080,"src":"18049:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9076,"name":"address","nodeType":"ElementaryTypeName","src":"18049:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18048:19:12"},"returnParameters":{"id":9079,"nodeType":"ParameterList","parameters":[],"src":"18076:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9087,"nodeType":"FunctionDefinition","src":"18189:61:12","nodes":[],"functionSelector":"47e50cce","implemented":false,"kind":"function","modifiers":[],"name":"prank","nameLocation":"18198:5:12","parameters":{"id":9085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9082,"mutability":"mutable","name":"msgSender","nameLocation":"18212:9:12","nodeType":"VariableDeclaration","scope":9087,"src":"18204:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9081,"name":"address","nodeType":"ElementaryTypeName","src":"18204:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9084,"mutability":"mutable","name":"txOrigin","nameLocation":"18231:8:12","nodeType":"VariableDeclaration","scope":9087,"src":"18223:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9083,"name":"address","nodeType":"ElementaryTypeName","src":"18223:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18203:37:12"},"returnParameters":{"id":9086,"nodeType":"ParameterList","parameters":[],"src":"18249:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9094,"nodeType":"FunctionDefinition","src":"18394:66:12","nodes":[],"functionSelector":"45b56078","implemented":false,"kind":"function","modifiers":[],"name":"startPrank","nameLocation":"18403:10:12","parameters":{"id":9092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9089,"mutability":"mutable","name":"msgSender","nameLocation":"18422:9:12","nodeType":"VariableDeclaration","scope":9094,"src":"18414:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9088,"name":"address","nodeType":"ElementaryTypeName","src":"18414:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9091,"mutability":"mutable","name":"txOrigin","nameLocation":"18441:8:12","nodeType":"VariableDeclaration","scope":9094,"src":"18433:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9090,"name":"address","nodeType":"ElementaryTypeName","src":"18433:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18413:37:12"},"returnParameters":{"id":9093,"nodeType":"ParameterList","parameters":[],"src":"18459:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9097,"nodeType":"FunctionDefinition","src":"18530:30:12","nodes":[],"functionSelector":"90c5013b","implemented":false,"kind":"function","modifiers":[],"name":"stopPrank","nameLocation":"18539:9:12","parameters":{"id":9095,"nodeType":"ParameterList","parameters":[],"src":"18548:2:12"},"returnParameters":{"id":9096,"nodeType":"ParameterList","parameters":[],"src":"18559:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9104,"nodeType":"FunctionDefinition","src":"18597:60:12","nodes":[],"functionSelector":"c88a5e6d","implemented":false,"kind":"function","modifiers":[],"name":"deal","nameLocation":"18606:4:12","parameters":{"id":9102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9099,"mutability":"mutable","name":"account","nameLocation":"18619:7:12","nodeType":"VariableDeclaration","scope":9104,"src":"18611:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9098,"name":"address","nodeType":"ElementaryTypeName","src":"18611:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9101,"mutability":"mutable","name":"newBalance","nameLocation":"18636:10:12","nodeType":"VariableDeclaration","scope":9104,"src":"18628:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9100,"name":"uint256","nodeType":"ElementaryTypeName","src":"18628:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18610:37:12"},"returnParameters":{"id":9103,"nodeType":"ParameterList","parameters":[],"src":"18656:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9111,"nodeType":"FunctionDefinition","src":"18691:74:12","nodes":[],"functionSelector":"b4d6c782","implemented":false,"kind":"function","modifiers":[],"name":"etch","nameLocation":"18700:4:12","parameters":{"id":9109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9106,"mutability":"mutable","name":"target","nameLocation":"18713:6:12","nodeType":"VariableDeclaration","scope":9111,"src":"18705:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9105,"name":"address","nodeType":"ElementaryTypeName","src":"18705:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9108,"mutability":"mutable","name":"newRuntimeBytecode","nameLocation":"18736:18:12","nodeType":"VariableDeclaration","scope":9111,"src":"18721:33:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9107,"name":"bytes","nodeType":"ElementaryTypeName","src":"18721:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18704:51:12"},"returnParameters":{"id":9110,"nodeType":"ParameterList","parameters":[],"src":"18764:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9116,"nodeType":"FunctionDefinition","src":"18807:58:12","nodes":[],"functionSelector":"f28dceb3","implemented":false,"kind":"function","modifiers":[],"name":"expectRevert","nameLocation":"18816:12:12","parameters":{"id":9114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9113,"mutability":"mutable","name":"revertData","nameLocation":"18844:10:12","nodeType":"VariableDeclaration","scope":9116,"src":"18829:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9112,"name":"bytes","nodeType":"ElementaryTypeName","src":"18829:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18828:27:12"},"returnParameters":{"id":9115,"nodeType":"ParameterList","parameters":[],"src":"18864:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9121,"nodeType":"FunctionDefinition","src":"18870:50:12","nodes":[],"functionSelector":"c31eb0e0","implemented":false,"kind":"function","modifiers":[],"name":"expectRevert","nameLocation":"18879:12:12","parameters":{"id":9119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9118,"mutability":"mutable","name":"revertData","nameLocation":"18899:10:12","nodeType":"VariableDeclaration","scope":9121,"src":"18892:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9117,"name":"bytes4","nodeType":"ElementaryTypeName","src":"18892:6:12","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"18891:19:12"},"returnParameters":{"id":9120,"nodeType":"ParameterList","parameters":[],"src":"18919:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9124,"nodeType":"FunctionDefinition","src":"18925:33:12","nodes":[],"functionSelector":"f4844814","implemented":false,"kind":"function","modifiers":[],"name":"expectRevert","nameLocation":"18934:12:12","parameters":{"id":9122,"nodeType":"ParameterList","parameters":[],"src":"18946:2:12"},"returnParameters":{"id":9123,"nodeType":"ParameterList","parameters":[],"src":"18957:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9135,"nodeType":"FunctionDefinition","src":"19291:99:12","nodes":[],"functionSelector":"491cc7c2","implemented":false,"kind":"function","modifiers":[],"name":"expectEmit","nameLocation":"19300:10:12","parameters":{"id":9133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9126,"mutability":"mutable","name":"checkTopic1","nameLocation":"19316:11:12","nodeType":"VariableDeclaration","scope":9135,"src":"19311:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9125,"name":"bool","nodeType":"ElementaryTypeName","src":"19311:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9128,"mutability":"mutable","name":"checkTopic2","nameLocation":"19334:11:12","nodeType":"VariableDeclaration","scope":9135,"src":"19329:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9127,"name":"bool","nodeType":"ElementaryTypeName","src":"19329:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9130,"mutability":"mutable","name":"checkTopic3","nameLocation":"19352:11:12","nodeType":"VariableDeclaration","scope":9135,"src":"19347:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9129,"name":"bool","nodeType":"ElementaryTypeName","src":"19347:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9132,"mutability":"mutable","name":"checkData","nameLocation":"19370:9:12","nodeType":"VariableDeclaration","scope":9135,"src":"19365:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9131,"name":"bool","nodeType":"ElementaryTypeName","src":"19365:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19310:70:12"},"returnParameters":{"id":9134,"nodeType":"ParameterList","parameters":[],"src":"19389:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9148,"nodeType":"FunctionDefinition","src":"19395:124:12","nodes":[],"functionSelector":"81bad6f3","implemented":false,"kind":"function","modifiers":[],"name":"expectEmit","nameLocation":"19404:10:12","parameters":{"id":9146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9137,"mutability":"mutable","name":"checkTopic1","nameLocation":"19420:11:12","nodeType":"VariableDeclaration","scope":9148,"src":"19415:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9136,"name":"bool","nodeType":"ElementaryTypeName","src":"19415:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9139,"mutability":"mutable","name":"checkTopic2","nameLocation":"19438:11:12","nodeType":"VariableDeclaration","scope":9148,"src":"19433:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9138,"name":"bool","nodeType":"ElementaryTypeName","src":"19433:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9141,"mutability":"mutable","name":"checkTopic3","nameLocation":"19456:11:12","nodeType":"VariableDeclaration","scope":9148,"src":"19451:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9140,"name":"bool","nodeType":"ElementaryTypeName","src":"19451:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9143,"mutability":"mutable","name":"checkData","nameLocation":"19474:9:12","nodeType":"VariableDeclaration","scope":9148,"src":"19469:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9142,"name":"bool","nodeType":"ElementaryTypeName","src":"19469:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9145,"mutability":"mutable","name":"emitter","nameLocation":"19493:7:12","nodeType":"VariableDeclaration","scope":9148,"src":"19485:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9144,"name":"address","nodeType":"ElementaryTypeName","src":"19485:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19414:87:12"},"returnParameters":{"id":9147,"nodeType":"ParameterList","parameters":[],"src":"19518:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9157,"nodeType":"FunctionDefinition","src":"19774:91:12","nodes":[],"functionSelector":"b96213e4","implemented":false,"kind":"function","modifiers":[],"name":"mockCall","nameLocation":"19783:8:12","parameters":{"id":9155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9150,"mutability":"mutable","name":"callee","nameLocation":"19800:6:12","nodeType":"VariableDeclaration","scope":9157,"src":"19792:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9149,"name":"address","nodeType":"ElementaryTypeName","src":"19792:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9152,"mutability":"mutable","name":"data","nameLocation":"19823:4:12","nodeType":"VariableDeclaration","scope":9157,"src":"19808:19:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9151,"name":"bytes","nodeType":"ElementaryTypeName","src":"19808:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9154,"mutability":"mutable","name":"returnData","nameLocation":"19844:10:12","nodeType":"VariableDeclaration","scope":9157,"src":"19829:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9153,"name":"bytes","nodeType":"ElementaryTypeName","src":"19829:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19791:64:12"},"returnParameters":{"id":9156,"nodeType":"ParameterList","parameters":[],"src":"19864:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9168,"nodeType":"FunctionDefinition","src":"20033:109:12","nodes":[],"functionSelector":"81409b91","implemented":false,"kind":"function","modifiers":[],"name":"mockCall","nameLocation":"20042:8:12","parameters":{"id":9166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9159,"mutability":"mutable","name":"callee","nameLocation":"20059:6:12","nodeType":"VariableDeclaration","scope":9168,"src":"20051:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9158,"name":"address","nodeType":"ElementaryTypeName","src":"20051:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9161,"mutability":"mutable","name":"msgValue","nameLocation":"20075:8:12","nodeType":"VariableDeclaration","scope":9168,"src":"20067:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9160,"name":"uint256","nodeType":"ElementaryTypeName","src":"20067:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9163,"mutability":"mutable","name":"data","nameLocation":"20100:4:12","nodeType":"VariableDeclaration","scope":9168,"src":"20085:19:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9162,"name":"bytes","nodeType":"ElementaryTypeName","src":"20085:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9165,"mutability":"mutable","name":"returnData","nameLocation":"20121:10:12","nodeType":"VariableDeclaration","scope":9168,"src":"20106:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9164,"name":"bytes","nodeType":"ElementaryTypeName","src":"20106:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"20050:82:12"},"returnParameters":{"id":9167,"nodeType":"ParameterList","parameters":[],"src":"20141:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9171,"nodeType":"FunctionDefinition","src":"20178:37:12","nodes":[],"functionSelector":"3fdf4e15","implemented":false,"kind":"function","modifiers":[],"name":"clearMockedCalls","nameLocation":"20187:16:12","parameters":{"id":9169,"nodeType":"ParameterList","parameters":[],"src":"20203:2:12"},"returnParameters":{"id":9170,"nodeType":"ParameterList","parameters":[],"src":"20214:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9178,"nodeType":"FunctionDefinition","src":"20343:66:12","nodes":[],"functionSelector":"bd6af434","implemented":false,"kind":"function","modifiers":[],"name":"expectCall","nameLocation":"20352:10:12","parameters":{"id":9176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9173,"mutability":"mutable","name":"callee","nameLocation":"20371:6:12","nodeType":"VariableDeclaration","scope":9178,"src":"20363:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9172,"name":"address","nodeType":"ElementaryTypeName","src":"20363:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9175,"mutability":"mutable","name":"data","nameLocation":"20394:4:12","nodeType":"VariableDeclaration","scope":9178,"src":"20379:19:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9174,"name":"bytes","nodeType":"ElementaryTypeName","src":"20379:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"20362:37:12"},"returnParameters":{"id":9177,"nodeType":"ParameterList","parameters":[],"src":"20408:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9187,"nodeType":"FunctionDefinition","src":"20492:84:12","nodes":[],"functionSelector":"f30c7ba3","implemented":false,"kind":"function","modifiers":[],"name":"expectCall","nameLocation":"20501:10:12","parameters":{"id":9185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9180,"mutability":"mutable","name":"callee","nameLocation":"20520:6:12","nodeType":"VariableDeclaration","scope":9187,"src":"20512:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9179,"name":"address","nodeType":"ElementaryTypeName","src":"20512:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9182,"mutability":"mutable","name":"msgValue","nameLocation":"20536:8:12","nodeType":"VariableDeclaration","scope":9187,"src":"20528:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9181,"name":"uint256","nodeType":"ElementaryTypeName","src":"20528:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9184,"mutability":"mutable","name":"data","nameLocation":"20561:4:12","nodeType":"VariableDeclaration","scope":9187,"src":"20546:19:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9183,"name":"bytes","nodeType":"ElementaryTypeName","src":"20546:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"20511:55:12"},"returnParameters":{"id":9186,"nodeType":"ParameterList","parameters":[],"src":"20575:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9192,"nodeType":"FunctionDefinition","src":"20608:48:12","nodes":[],"functionSelector":"ff483c54","implemented":false,"kind":"function","modifiers":[],"name":"coinbase","nameLocation":"20617:8:12","parameters":{"id":9190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9189,"mutability":"mutable","name":"newCoinbase","nameLocation":"20634:11:12","nodeType":"VariableDeclaration","scope":9192,"src":"20626:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9188,"name":"address","nodeType":"ElementaryTypeName","src":"20626:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20625:21:12"},"returnParameters":{"id":9191,"nodeType":"ParameterList","parameters":[],"src":"20655:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9197,"nodeType":"FunctionDefinition","src":"20806:58:12","nodes":[],"functionSelector":"9711715a","implemented":false,"kind":"function","modifiers":[],"name":"snapshot","nameLocation":"20815:8:12","parameters":{"id":9193,"nodeType":"ParameterList","parameters":[],"src":"20823:2:12"},"returnParameters":{"id":9196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9195,"mutability":"mutable","name":"snapshotId","nameLocation":"20852:10:12","nodeType":"VariableDeclaration","scope":9197,"src":"20844:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9194,"name":"uint256","nodeType":"ElementaryTypeName","src":"20844:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20843:20:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9204,"nodeType":"FunctionDefinition","src":"21056:70:12","nodes":[],"functionSelector":"44d7f0a4","implemented":false,"kind":"function","modifiers":[],"name":"revertTo","nameLocation":"21065:8:12","parameters":{"id":9200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9199,"mutability":"mutable","name":"snapshotId","nameLocation":"21082:10:12","nodeType":"VariableDeclaration","scope":9204,"src":"21074:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9198,"name":"uint256","nodeType":"ElementaryTypeName","src":"21074:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21073:20:12"},"returnParameters":{"id":9203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9202,"mutability":"mutable","name":"success","nameLocation":"21117:7:12","nodeType":"VariableDeclaration","scope":9204,"src":"21112:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9201,"name":"bool","nodeType":"ElementaryTypeName","src":"21112:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21111:14:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9213,"nodeType":"FunctionDefinition","src":"21230:103:12","nodes":[],"functionSelector":"6ba3ba2b","implemented":false,"kind":"function","modifiers":[],"name":"createFork","nameLocation":"21239:10:12","parameters":{"id":9209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9206,"mutability":"mutable","name":"urlOrAlias","nameLocation":"21266:10:12","nodeType":"VariableDeclaration","scope":9213,"src":"21250:26:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":9205,"name":"string","nodeType":"ElementaryTypeName","src":"21250:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9208,"mutability":"mutable","name":"blockNumber","nameLocation":"21286:11:12","nodeType":"VariableDeclaration","scope":9213,"src":"21278:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9207,"name":"uint256","nodeType":"ElementaryTypeName","src":"21278:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21249:49:12"},"returnParameters":{"id":9212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9211,"mutability":"mutable","name":"forkId","nameLocation":"21325:6:12","nodeType":"VariableDeclaration","scope":9213,"src":"21317:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9210,"name":"uint256","nodeType":"ElementaryTypeName","src":"21317:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21316:16:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9220,"nodeType":"FunctionDefinition","src":"21450:82:12","nodes":[],"functionSelector":"31ba3498","implemented":false,"kind":"function","modifiers":[],"name":"createFork","nameLocation":"21459:10:12","parameters":{"id":9216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9215,"mutability":"mutable","name":"urlOrAlias","nameLocation":"21486:10:12","nodeType":"VariableDeclaration","scope":9220,"src":"21470:26:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":9214,"name":"string","nodeType":"ElementaryTypeName","src":"21470:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21469:28:12"},"returnParameters":{"id":9219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9218,"mutability":"mutable","name":"forkId","nameLocation":"21524:6:12","nodeType":"VariableDeclaration","scope":9220,"src":"21516:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9217,"name":"uint256","nodeType":"ElementaryTypeName","src":"21516:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21515:16:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9229,"nodeType":"FunctionDefinition","src":"21753:98:12","nodes":[],"functionSelector":"7ca29682","implemented":false,"kind":"function","modifiers":[],"name":"createFork","nameLocation":"21762:10:12","parameters":{"id":9225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9222,"mutability":"mutable","name":"urlOrAlias","nameLocation":"21789:10:12","nodeType":"VariableDeclaration","scope":9229,"src":"21773:26:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":9221,"name":"string","nodeType":"ElementaryTypeName","src":"21773:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9224,"mutability":"mutable","name":"txHash","nameLocation":"21809:6:12","nodeType":"VariableDeclaration","scope":9229,"src":"21801:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9223,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21801:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21772:44:12"},"returnParameters":{"id":9228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9227,"mutability":"mutable","name":"forkId","nameLocation":"21843:6:12","nodeType":"VariableDeclaration","scope":9229,"src":"21835:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9226,"name":"uint256","nodeType":"ElementaryTypeName","src":"21835:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21834:16:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9238,"nodeType":"FunctionDefinition","src":"21974:109:12","nodes":[],"functionSelector":"71ee464d","implemented":false,"kind":"function","modifiers":[],"name":"createSelectFork","nameLocation":"21983:16:12","parameters":{"id":9234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9231,"mutability":"mutable","name":"urlOrAlias","nameLocation":"22016:10:12","nodeType":"VariableDeclaration","scope":9238,"src":"22000:26:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":9230,"name":"string","nodeType":"ElementaryTypeName","src":"22000:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9233,"mutability":"mutable","name":"blockNumber","nameLocation":"22036:11:12","nodeType":"VariableDeclaration","scope":9238,"src":"22028:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9232,"name":"uint256","nodeType":"ElementaryTypeName","src":"22028:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21999:49:12"},"returnParameters":{"id":9237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9236,"mutability":"mutable","name":"forkId","nameLocation":"22075:6:12","nodeType":"VariableDeclaration","scope":9238,"src":"22067:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9235,"name":"uint256","nodeType":"ElementaryTypeName","src":"22067:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22066:16:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9247,"nodeType":"FunctionDefinition","src":"22317:104:12","nodes":[],"functionSelector":"84d52b7a","implemented":false,"kind":"function","modifiers":[],"name":"createSelectFork","nameLocation":"22326:16:12","parameters":{"id":9243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9240,"mutability":"mutable","name":"urlOrAlias","nameLocation":"22359:10:12","nodeType":"VariableDeclaration","scope":9247,"src":"22343:26:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":9239,"name":"string","nodeType":"ElementaryTypeName","src":"22343:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9242,"mutability":"mutable","name":"txHash","nameLocation":"22379:6:12","nodeType":"VariableDeclaration","scope":9247,"src":"22371:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9241,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22371:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22342:44:12"},"returnParameters":{"id":9246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9245,"mutability":"mutable","name":"forkId","nameLocation":"22413:6:12","nodeType":"VariableDeclaration","scope":9247,"src":"22405:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9244,"name":"uint256","nodeType":"ElementaryTypeName","src":"22405:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22404:16:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9254,"nodeType":"FunctionDefinition","src":"22555:88:12","nodes":[],"functionSelector":"98680034","implemented":false,"kind":"function","modifiers":[],"name":"createSelectFork","nameLocation":"22564:16:12","parameters":{"id":9250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9249,"mutability":"mutable","name":"urlOrAlias","nameLocation":"22597:10:12","nodeType":"VariableDeclaration","scope":9254,"src":"22581:26:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":9248,"name":"string","nodeType":"ElementaryTypeName","src":"22581:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22580:28:12"},"returnParameters":{"id":9253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9252,"mutability":"mutable","name":"forkId","nameLocation":"22635:6:12","nodeType":"VariableDeclaration","scope":9254,"src":"22627:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9251,"name":"uint256","nodeType":"ElementaryTypeName","src":"22627:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22626:16:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9259,"nodeType":"FunctionDefinition","src":"22754:45:12","nodes":[],"functionSelector":"9ebf6827","implemented":false,"kind":"function","modifiers":[],"name":"selectFork","nameLocation":"22763:10:12","parameters":{"id":9257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9256,"mutability":"mutable","name":"forkId","nameLocation":"22782:6:12","nodeType":"VariableDeclaration","scope":9259,"src":"22774:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9255,"name":"uint256","nodeType":"ElementaryTypeName","src":"22774:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22773:16:12"},"returnParameters":{"id":9258,"nodeType":"ParameterList","parameters":[],"src":"22798:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9265,"nodeType":"FunctionDefinition","src":"22905:61:12","nodes":[],"documentation":{"id":9260,"nodeType":"StructuredDocumentation","src":"22804:96:12","text":"Returns the identifier of the currently active fork. Reverts if no fork is currently active."},"functionSelector":"2f103f22","implemented":false,"kind":"function","modifiers":[],"name":"activeFork","nameLocation":"22914:10:12","parameters":{"id":9261,"nodeType":"ParameterList","parameters":[],"src":"22924:2:12"},"returnParameters":{"id":9264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9263,"mutability":"mutable","name":"forkId","nameLocation":"22958:6:12","nodeType":"VariableDeclaration","scope":9265,"src":"22950:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9262,"name":"uint256","nodeType":"ElementaryTypeName","src":"22950:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22949:16:12"},"scope":9352,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9270,"nodeType":"FunctionDefinition","src":"23101:48:12","nodes":[],"functionSelector":"d9bbf3a1","implemented":false,"kind":"function","modifiers":[],"name":"rollFork","nameLocation":"23110:8:12","parameters":{"id":9268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9267,"mutability":"mutable","name":"blockNumber","nameLocation":"23127:11:12","nodeType":"VariableDeclaration","scope":9270,"src":"23119:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9266,"name":"uint256","nodeType":"ElementaryTypeName","src":"23119:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23118:21:12"},"returnParameters":{"id":9269,"nodeType":"ParameterList","parameters":[],"src":"23148:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9275,"nodeType":"FunctionDefinition","src":"23359:43:12","nodes":[],"functionSelector":"0f29772b","implemented":false,"kind":"function","modifiers":[],"name":"rollFork","nameLocation":"23368:8:12","parameters":{"id":9273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9272,"mutability":"mutable","name":"txHash","nameLocation":"23385:6:12","nodeType":"VariableDeclaration","scope":9275,"src":"23377:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9271,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23377:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23376:16:12"},"returnParameters":{"id":9274,"nodeType":"ParameterList","parameters":[],"src":"23401:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9282,"nodeType":"FunctionDefinition","src":"23459:64:12","nodes":[],"functionSelector":"d74c83a4","implemented":false,"kind":"function","modifiers":[],"name":"rollFork","nameLocation":"23468:8:12","parameters":{"id":9280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9277,"mutability":"mutable","name":"forkId","nameLocation":"23485:6:12","nodeType":"VariableDeclaration","scope":9282,"src":"23477:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9276,"name":"uint256","nodeType":"ElementaryTypeName","src":"23477:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9279,"mutability":"mutable","name":"blockNumber","nameLocation":"23501:11:12","nodeType":"VariableDeclaration","scope":9282,"src":"23493:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9278,"name":"uint256","nodeType":"ElementaryTypeName","src":"23493:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23476:37:12"},"returnParameters":{"id":9281,"nodeType":"ParameterList","parameters":[],"src":"23522:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9289,"nodeType":"FunctionDefinition","src":"23656:59:12","nodes":[],"functionSelector":"f2830f7b","implemented":false,"kind":"function","modifiers":[],"name":"rollFork","nameLocation":"23665:8:12","parameters":{"id":9287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9284,"mutability":"mutable","name":"forkId","nameLocation":"23682:6:12","nodeType":"VariableDeclaration","scope":9289,"src":"23674:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9283,"name":"uint256","nodeType":"ElementaryTypeName","src":"23674:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9286,"mutability":"mutable","name":"txHash","nameLocation":"23698:6:12","nodeType":"VariableDeclaration","scope":9289,"src":"23690:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9285,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23690:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23673:32:12"},"returnParameters":{"id":9288,"nodeType":"ParameterList","parameters":[],"src":"23714:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9294,"nodeType":"FunctionDefinition","src":"23914:50:12","nodes":[],"functionSelector":"57e22dde","implemented":false,"kind":"function","modifiers":[],"name":"makePersistent","nameLocation":"23923:14:12","parameters":{"id":9292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9291,"mutability":"mutable","name":"account","nameLocation":"23946:7:12","nodeType":"VariableDeclaration","scope":9294,"src":"23938:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9290,"name":"address","nodeType":"ElementaryTypeName","src":"23938:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23937:17:12"},"returnParameters":{"id":9293,"nodeType":"ParameterList","parameters":[],"src":"23963:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9301,"nodeType":"FunctionDefinition","src":"23969:69:12","nodes":[],"functionSelector":"4074e0a8","implemented":false,"kind":"function","modifiers":[],"name":"makePersistent","nameLocation":"23978:14:12","parameters":{"id":9299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9296,"mutability":"mutable","name":"account0","nameLocation":"24001:8:12","nodeType":"VariableDeclaration","scope":9301,"src":"23993:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9295,"name":"address","nodeType":"ElementaryTypeName","src":"23993:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9298,"mutability":"mutable","name":"account1","nameLocation":"24019:8:12","nodeType":"VariableDeclaration","scope":9301,"src":"24011:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9297,"name":"address","nodeType":"ElementaryTypeName","src":"24011:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23992:36:12"},"returnParameters":{"id":9300,"nodeType":"ParameterList","parameters":[],"src":"24037:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9310,"nodeType":"FunctionDefinition","src":"24043:87:12","nodes":[],"functionSelector":"efb77a75","implemented":false,"kind":"function","modifiers":[],"name":"makePersistent","nameLocation":"24052:14:12","parameters":{"id":9308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9303,"mutability":"mutable","name":"account0","nameLocation":"24075:8:12","nodeType":"VariableDeclaration","scope":9310,"src":"24067:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9302,"name":"address","nodeType":"ElementaryTypeName","src":"24067:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9305,"mutability":"mutable","name":"account1","nameLocation":"24093:8:12","nodeType":"VariableDeclaration","scope":9310,"src":"24085:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9304,"name":"address","nodeType":"ElementaryTypeName","src":"24085:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9307,"mutability":"mutable","name":"account2","nameLocation":"24111:8:12","nodeType":"VariableDeclaration","scope":9310,"src":"24103:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9306,"name":"address","nodeType":"ElementaryTypeName","src":"24103:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24066:54:12"},"returnParameters":{"id":9309,"nodeType":"ParameterList","parameters":[],"src":"24129:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9316,"nodeType":"FunctionDefinition","src":"24135:62:12","nodes":[],"functionSelector":"1d9e269e","implemented":false,"kind":"function","modifiers":[],"name":"makePersistent","nameLocation":"24144:14:12","parameters":{"id":9314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9313,"mutability":"mutable","name":"accounts","nameLocation":"24178:8:12","nodeType":"VariableDeclaration","scope":9316,"src":"24159:27:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":9311,"name":"address","nodeType":"ElementaryTypeName","src":"24159:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9312,"nodeType":"ArrayTypeName","src":"24159:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"24158:29:12"},"returnParameters":{"id":9315,"nodeType":"ParameterList","parameters":[],"src":"24196:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9321,"nodeType":"FunctionDefinition","src":"24291:52:12","nodes":[],"functionSelector":"997a0222","implemented":false,"kind":"function","modifiers":[],"name":"revokePersistent","nameLocation":"24300:16:12","parameters":{"id":9319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9318,"mutability":"mutable","name":"account","nameLocation":"24325:7:12","nodeType":"VariableDeclaration","scope":9321,"src":"24317:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9317,"name":"address","nodeType":"ElementaryTypeName","src":"24317:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24316:17:12"},"returnParameters":{"id":9320,"nodeType":"ParameterList","parameters":[],"src":"24342:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9327,"nodeType":"FunctionDefinition","src":"24348:64:12","nodes":[],"functionSelector":"3ce969e6","implemented":false,"kind":"function","modifiers":[],"name":"revokePersistent","nameLocation":"24357:16:12","parameters":{"id":9325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9324,"mutability":"mutable","name":"accounts","nameLocation":"24393:8:12","nodeType":"VariableDeclaration","scope":9327,"src":"24374:27:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":9322,"name":"address","nodeType":"ElementaryTypeName","src":"24374:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9323,"nodeType":"ArrayTypeName","src":"24374:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"24373:29:12"},"returnParameters":{"id":9326,"nodeType":"ParameterList","parameters":[],"src":"24411:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9334,"nodeType":"FunctionDefinition","src":"24476:79:12","nodes":[],"functionSelector":"d92d8efd","implemented":false,"kind":"function","modifiers":[],"name":"isPersistent","nameLocation":"24485:12:12","parameters":{"id":9330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9329,"mutability":"mutable","name":"account","nameLocation":"24506:7:12","nodeType":"VariableDeclaration","scope":9334,"src":"24498:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9328,"name":"address","nodeType":"ElementaryTypeName","src":"24498:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24497:17:12"},"returnParameters":{"id":9333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9332,"mutability":"mutable","name":"persistent","nameLocation":"24543:10:12","nodeType":"VariableDeclaration","scope":9334,"src":"24538:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9331,"name":"bool","nodeType":"ElementaryTypeName","src":"24538:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"24537:17:12"},"scope":9352,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9339,"nodeType":"FunctionDefinition","src":"24636:51:12","nodes":[],"functionSelector":"ea060291","implemented":false,"kind":"function","modifiers":[],"name":"allowCheatcodes","nameLocation":"24645:15:12","parameters":{"id":9337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9336,"mutability":"mutable","name":"account","nameLocation":"24669:7:12","nodeType":"VariableDeclaration","scope":9339,"src":"24661:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9335,"name":"address","nodeType":"ElementaryTypeName","src":"24661:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24660:17:12"},"returnParameters":{"id":9338,"nodeType":"ParameterList","parameters":[],"src":"24686:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9344,"nodeType":"FunctionDefinition","src":"24787:43:12","nodes":[],"functionSelector":"be646da1","implemented":false,"kind":"function","modifiers":[],"name":"transact","nameLocation":"24796:8:12","parameters":{"id":9342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9341,"mutability":"mutable","name":"txHash","nameLocation":"24813:6:12","nodeType":"VariableDeclaration","scope":9344,"src":"24805:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9340,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24805:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24804:16:12"},"returnParameters":{"id":9343,"nodeType":"ParameterList","parameters":[],"src":"24829:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9351,"nodeType":"FunctionDefinition","src":"24929:59:12","nodes":[],"functionSelector":"4d8abc4b","implemented":false,"kind":"function","modifiers":[],"name":"transact","nameLocation":"24938:8:12","parameters":{"id":9349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9346,"mutability":"mutable","name":"forkId","nameLocation":"24955:6:12","nodeType":"VariableDeclaration","scope":9351,"src":"24947:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9345,"name":"uint256","nodeType":"ElementaryTypeName","src":"24947:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9348,"mutability":"mutable","name":"txHash","nameLocation":"24971:6:12","nodeType":"VariableDeclaration","scope":9351,"src":"24963:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24963:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24946:32:12"},"returnParameters":{"id":9350,"nodeType":"ParameterList","parameters":[],"src":"24987:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":9028,"name":"VmSafe","nameLocations":["17139:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":9027,"src":"17139:6:12"},"id":9029,"nodeType":"InheritanceSpecifier","src":"17139:6:12"}],"canonicalName":"Vm","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[9352,9027],"name":"Vm","nameLocation":"17133:2:12","scope":9353,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":12} \ No newline at end of file diff --git a/out/Vm.sol/VmSafe.json b/out/Vm.sol/VmSafe.json deleted file mode 100644 index 43b00c1d..00000000 --- a/out/Vm.sol/VmSafe.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"accesses","inputs":[{"name":"target","type":"address","internalType":"address"}],"outputs":[{"name":"readSlots","type":"bytes32[]","internalType":"bytes32[]"},{"name":"writeSlots","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"addr","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"assume","inputs":[{"name":"condition","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"broadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"broadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"closeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"deriveKey","inputs":[{"name":"mnemonic","type":"string","internalType":"string"},{"name":"derivationPath","type":"string","internalType":"string"},{"name":"index","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"envAddress","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"envBool","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"envBytes","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"envBytes32","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"view"},{"type":"function","name":"envInt","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"view"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"value","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"value","type":"int256[]","internalType":"int256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool","internalType":"bool"}],"outputs":[{"name":"value","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"address","internalType":"address"}],"outputs":[{"name":"value","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"value","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"int256","internalType":"int256"}],"outputs":[{"name":"value","type":"int256","internalType":"int256"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"value","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"defaultValue","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"envOr","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"},{"name":"defaultValue","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"value","type":"bool[]","internalType":"bool[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"envString","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"envUint","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"delim","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"ffi","inputs":[{"name":"commandInput","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"fsMetadata","inputs":[{"name":"fileOrDir","type":"string","internalType":"string"}],"outputs":[{"name":"metadata","type":"tuple","internalType":"struct VmSafe.FsMetadata","components":[{"name":"isDir","type":"bool","internalType":"bool"},{"name":"isSymlink","type":"bool","internalType":"bool"},{"name":"length","type":"uint256","internalType":"uint256"},{"name":"readOnly","type":"bool","internalType":"bool"},{"name":"modified","type":"uint256","internalType":"uint256"},{"name":"accessed","type":"uint256","internalType":"uint256"},{"name":"created","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"getCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"creationBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDeployedCode","inputs":[{"name":"artifactPath","type":"string","internalType":"string"}],"outputs":[{"name":"runtimeBytecode","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getNonce","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getRecordedLogs","inputs":[],"outputs":[{"name":"logs","type":"tuple[]","internalType":"struct VmSafe.Log[]","components":[{"name":"topics","type":"bytes32[]","internalType":"bytes32[]"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"emitter","type":"address","internalType":"address"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"label","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"newLabel","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"load","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"slot","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"data","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"parseAddress","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"parseBool","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseBytes32","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"parseInt","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"int256","internalType":"int256"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"key","type":"string","internalType":"string"}],"outputs":[{"name":"abiEncodedData","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"parseUint","inputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"outputs":[{"name":"parsedValue","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"pauseGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"projectRoot","inputs":[],"outputs":[{"name":"path","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"readFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"readLine","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[{"name":"line","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"record","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recordLogs","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rememberKey","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"removeFile","inputs":[{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"resumeGasMetering","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rpcUrl","inputs":[{"name":"rpcAlias","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"rpcUrlStructs","inputs":[],"outputs":[{"name":"urls","type":"tuple[]","internalType":"struct VmSafe.Rpc[]","components":[{"name":"key","type":"string","internalType":"string"},{"name":"url","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"rpcUrls","inputs":[],"outputs":[{"name":"urls","type":"string[2][]","internalType":"string[2][]"}],"stateMutability":"view"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeAddress","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bool[]","internalType":"bool[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBool","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeBytes32","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeInt","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"int256[]","internalType":"int256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"string[]","internalType":"string[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeString","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"serializeUint","inputs":[{"name":"objectKey","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"},{"name":"values","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"json","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"setEnv","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"value","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sign","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"},{"name":"digest","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"startBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"signer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startBroadcast","inputs":[{"name":"privateKey","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stopBroadcast","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"address","internalType":"address"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bool","internalType":"bool"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"int256","internalType":"int256"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"stringifiedValue","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"writeFile","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeFileBinary","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"},{"name":"valueKey","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeJson","inputs":[{"name":"json","type":"string","internalType":"string"},{"name":"path","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"writeLine","inputs":[{"name":"path","type":"string","internalType":"string"},{"name":"data","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"accesses(address)":"65bc9481","addr(uint256)":"ffa18649","assume(bool)":"4c63e562","broadcast()":"afc98040","broadcast(address)":"e6962cdb","broadcast(uint256)":"f67a965b","closeFile(string)":"48c3241f","deriveKey(string,string,uint32)":"6bcb2c1b","deriveKey(string,uint32)":"6229498b","envAddress(string)":"350d56bf","envAddress(string,string)":"ad31b9fa","envBool(string)":"7ed1ec7d","envBool(string,string)":"aaaddeaf","envBytes(string)":"4d7baf06","envBytes(string,string)":"ddc2651b","envBytes32(string)":"97949042","envBytes32(string,string)":"5af231c1","envInt(string)":"892a0c61","envInt(string,string)":"42181150","envOr(string,address)":"561fe540","envOr(string,bool)":"4777f3cf","envOr(string,bytes)":"b3e47705","envOr(string,bytes32)":"b4a85892","envOr(string,int256)":"bbcb713e","envOr(string,string)":"d145736c","envOr(string,string,address[])":"c74e9deb","envOr(string,string,bool[])":"eb85e83b","envOr(string,string,bytes32[])":"2281f367","envOr(string,string,bytes[])":"64bc3e64","envOr(string,string,int256[])":"4700d74b","envOr(string,string,string[])":"859216bc","envOr(string,string,uint256[])":"74318528","envOr(string,uint256)":"5e97348f","envString(string)":"f877cb19","envString(string,string)":"14b02bc9","envUint(string)":"c1978d1f","envUint(string,string)":"f3dec099","ffi(string[])":"89160467","fsMetadata(string)":"af368a08","getCode(string)":"8d1cc925","getDeployedCode(string)":"3ebf73b4","getNonce(address)":"2d0335ab","getRecordedLogs()":"191553a4","label(address,string)":"c657c718","load(address,bytes32)":"667f9d70","parseAddress(string)":"c6ce059d","parseBool(string)":"974ef924","parseBytes(string)":"8f5d232d","parseBytes32(string)":"087e6e81","parseInt(string)":"42346c5e","parseJson(string)":"6a82600a","parseJson(string,string)":"85940ef1","parseUint(string)":"fa91454d","pauseGasMetering()":"d1a5b36f","projectRoot()":"d930a0e6","readFile(string)":"60f9bb11","readFileBinary(string)":"16ed7bc4","readLine(string)":"70f55728","record()":"266cf109","recordLogs()":"41af2f52","rememberKey(uint256)":"22100064","removeFile(string)":"f1afe04d","resumeGasMetering()":"2bcd50e0","rpcUrl(string)":"975a6ce9","rpcUrlStructs()":"9d2ad72a","rpcUrls()":"a85a8418","serializeAddress(string,string,address)":"972c6062","serializeAddress(string,string,address[])":"1e356e1a","serializeBool(string,string,bool)":"ac22e971","serializeBool(string,string,bool[])":"92925aa1","serializeBytes(string,string,bytes)":"f21d52c7","serializeBytes(string,string,bytes[])":"9884b232","serializeBytes32(string,string,bytes32)":"2d812b44","serializeBytes32(string,string,bytes32[])":"201e43e2","serializeInt(string,string,int256)":"3f33db60","serializeInt(string,string,int256[])":"7676e127","serializeString(string,string,string)":"88da6d35","serializeString(string,string,string[])":"561cd6f3","serializeUint(string,string,uint256)":"129e9002","serializeUint(string,string,uint256[])":"fee9a469","setEnv(string,string)":"3d5923ee","sign(uint256,bytes32)":"e341eaa4","startBroadcast()":"7fb5297f","startBroadcast(address)":"7fec2a8d","startBroadcast(uint256)":"ce817d47","stopBroadcast()":"76eadd36","toString(address)":"56ca623e","toString(bool)":"71dce7da","toString(bytes)":"71aad10d","toString(bytes32)":"b11a19e8","toString(int256)":"a322c40e","toString(uint256)":"6900a3ae","writeFile(string,string)":"897e0a97","writeFileBinary(string,bytes)":"1f21fc80","writeJson(string,string)":"e23cd19f","writeJson(string,string,string)":"35d6ad46","writeLine(string,string)":"619d897f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"accesses\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"readSlots\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"writeSlots\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"addr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"condition\",\"type\":\"bool\"}],\"name\":\"assume\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"broadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"closeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"mnemonic\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"derivationPath\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"}],\"name\":\"deriveKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envAddress\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBool\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"defaultValue\",\"type\":\"bytes32[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"value\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"defaultValue\",\"type\":\"int256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256[]\",\"name\":\"value\",\"type\":\"int256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"defaultValue\",\"type\":\"bool\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"defaultValue\",\"type\":\"address\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"defaultValue\",\"type\":\"uint256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"defaultValue\",\"type\":\"bytes[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"value\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"defaultValue\",\"type\":\"uint256[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"defaultValue\",\"type\":\"string[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"defaultValue\",\"type\":\"bytes\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"defaultValue\",\"type\":\"bytes32\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"defaultValue\",\"type\":\"int256\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"defaultValue\",\"type\":\"address[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"value\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"defaultValue\",\"type\":\"string\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"defaultValue\",\"type\":\"bool[]\"}],\"name\":\"envOr\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"value\",\"type\":\"bool[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"value\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"delim\",\"type\":\"string\"}],\"name\":\"envUint\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"value\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"commandInput\",\"type\":\"string[]\"}],\"name\":\"ffi\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"fileOrDir\",\"type\":\"string\"}],\"name\":\"fsMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isDir\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isSymlink\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"readOnly\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"modified\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"created\",\"type\":\"uint256\"}],\"internalType\":\"struct VmSafe.FsMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"creationBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"artifactPath\",\"type\":\"string\"}],\"name\":\"getDeployedCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"runtimeBytecode\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRecordedLogs\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"topics\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"emitter\",\"type\":\"address\"}],\"internalType\":\"struct VmSafe.Log[]\",\"name\":\"logs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"newLabel\",\"type\":\"string\"}],\"name\":\"label\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"load\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"parsedValue\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"parsedValue\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"parsedValue\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"parsedValue\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseInt\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"parsedValue\",\"type\":\"int256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"parseJson\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"abiEncodedData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"name\":\"parseUint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"parsedValue\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"projectRoot\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFile\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readFileBinary\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"readLine\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"line\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"record\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recordLogs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"rememberKey\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"removeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeGasMetering\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"rpcAlias\",\"type\":\"string\"}],\"name\":\"rpcUrl\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrlStructs\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"}],\"internalType\":\"struct VmSafe.Rpc[]\",\"name\":\"urls\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rpcUrls\",\"outputs\":[{\"internalType\":\"string[2][]\",\"name\":\"urls\",\"type\":\"string[2][]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"values\",\"type\":\"address[]\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"serializeAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool[]\",\"name\":\"values\",\"type\":\"bool[]\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"serializeBool\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes[]\",\"name\":\"values\",\"type\":\"bytes[]\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"serializeBytes\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"values\",\"type\":\"bytes32[]\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"serializeBytes32\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"int256[]\",\"name\":\"values\",\"type\":\"int256[]\"}],\"name\":\"serializeInt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"values\",\"type\":\"string[]\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"serializeString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"objectKey\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"serializeUint\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"setEnv\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"sign\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privateKey\",\"type\":\"uint256\"}],\"name\":\"startBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stopBroadcast\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"stringifiedValue\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeFile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"writeFileBinary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"valueKey\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"json\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"writeJson\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"}],\"name\":\"writeLine\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/forge-std/src/Vm.sol\":\"VmSafe\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9\",\"dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"accesses","outputs":[{"internalType":"bytes32[]","name":"readSlots","type":"bytes32[]"},{"internalType":"bytes32[]","name":"writeSlots","type":"bytes32[]"}]},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"addr","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"}],"stateMutability":"pure","type":"function","name":"assume"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"broadcast"},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"closeFile"},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"mnemonic","type":"string"},{"internalType":"string","name":"derivationPath","type":"string"},{"internalType":"uint32","name":"index","type":"uint32"}],"stateMutability":"pure","type":"function","name":"deriveKey","outputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envAddress","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBool","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envBytes32","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envInt","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes32[]","name":"defaultValue","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"bytes32[]","name":"value","type":"bytes32[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"int256[]","name":"defaultValue","type":"int256[]"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"int256[]","name":"value","type":"int256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"defaultValue","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"bool","name":"value","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"defaultValue","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"address","name":"value","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"defaultValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bytes[]","name":"defaultValue","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"bytes[]","name":"value","type":"bytes[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"uint256[]","name":"defaultValue","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"string[]","name":"defaultValue","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes","name":"defaultValue","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"bytes","name":"value","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bytes32","name":"defaultValue","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"int256","name":"defaultValue","type":"int256"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"int256","name":"value","type":"int256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"address[]","name":"defaultValue","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"address[]","name":"value","type":"address[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"defaultValue","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"},{"internalType":"bool[]","name":"defaultValue","type":"bool[]"}],"stateMutability":"nonpayable","type":"function","name":"envOr","outputs":[{"internalType":"bool[]","name":"value","type":"bool[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string[]","name":"value","type":"string[]"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envString","outputs":[{"internalType":"string","name":"value","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"delim","type":"string"}],"stateMutability":"view","type":"function","name":"envUint","outputs":[{"internalType":"uint256[]","name":"value","type":"uint256[]"}]},{"inputs":[{"internalType":"string[]","name":"commandInput","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"ffi","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"fileOrDir","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"fsMetadata","outputs":[{"internalType":"struct VmSafe.FsMetadata","name":"metadata","type":"tuple","components":[{"internalType":"bool","name":"isDir","type":"bool"},{"internalType":"bool","name":"isSymlink","type":"bool"},{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"bool","name":"readOnly","type":"bool"},{"internalType":"uint256","name":"modified","type":"uint256"},{"internalType":"uint256","name":"accessed","type":"uint256"},{"internalType":"uint256","name":"created","type":"uint256"}]}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getCode","outputs":[{"internalType":"bytes","name":"creationBytecode","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"artifactPath","type":"string"}],"stateMutability":"view","type":"function","name":"getDeployedCode","outputs":[{"internalType":"bytes","name":"runtimeBytecode","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getRecordedLogs","outputs":[{"internalType":"struct VmSafe.Log[]","name":"logs","type":"tuple[]","components":[{"internalType":"bytes32[]","name":"topics","type":"bytes32[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"address","name":"emitter","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"string","name":"newLabel","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"label"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes32","name":"slot","type":"bytes32"}],"stateMutability":"view","type":"function","name":"load","outputs":[{"internalType":"bytes32","name":"data","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseAddress","outputs":[{"internalType":"address","name":"parsedValue","type":"address"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBool","outputs":[{"internalType":"bool","name":"parsedValue","type":"bool"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes","outputs":[{"internalType":"bytes","name":"parsedValue","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseBytes32","outputs":[{"internalType":"bytes32","name":"parsedValue","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseInt","outputs":[{"internalType":"int256","name":"parsedValue","type":"int256"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"key","type":"string"}],"stateMutability":"pure","type":"function","name":"parseJson","outputs":[{"internalType":"bytes","name":"abiEncodedData","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}],"stateMutability":"pure","type":"function","name":"parseUint","outputs":[{"internalType":"uint256","name":"parsedValue","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pauseGasMetering"},{"inputs":[],"stateMutability":"view","type":"function","name":"projectRoot","outputs":[{"internalType":"string","name":"path","type":"string"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFile","outputs":[{"internalType":"string","name":"data","type":"string"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readFileBinary","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"view","type":"function","name":"readLine","outputs":[{"internalType":"string","name":"line","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"record"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recordLogs"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rememberKey","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"removeFile"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"resumeGasMetering"},{"inputs":[{"internalType":"string","name":"rpcAlias","type":"string"}],"stateMutability":"view","type":"function","name":"rpcUrl","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrlStructs","outputs":[{"internalType":"struct VmSafe.Rpc[]","name":"urls","type":"tuple[]","components":[{"internalType":"string","name":"key","type":"string"},{"internalType":"string","name":"url","type":"string"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"rpcUrls","outputs":[{"internalType":"string[2][]","name":"urls","type":"string[2][]"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address[]","name":"values","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"address","name":"value","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"serializeAddress","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool[]","name":"values","type":"bool[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"serializeBool","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes[]","name":"values","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32[]","name":"values","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"serializeBytes32","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"int256[]","name":"values","type":"int256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeInt","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string[]","name":"values","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"serializeString","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"objectKey","type":"string"},{"internalType":"string","name":"valueKey","type":"string"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"serializeUint","outputs":[{"internalType":"string","name":"json","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"value","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setEnv"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"},{"internalType":"bytes32","name":"digest","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"sign","outputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[{"internalType":"uint256","name":"privateKey","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"startBroadcast"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stopBroadcast"},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"stringifiedValue","type":"string"}]},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeFile"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"writeFileBinary"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"valueKey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"json","type":"string"},{"internalType":"string","name":"path","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeJson"},{"inputs":[{"internalType":"string","name":"path","type":"string"},{"internalType":"string","name":"data","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"writeLine"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/forge-std/src/Vm.sol":"VmSafe"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/Vm.sol":{"keccak256":"0xfd793ebfb854f707ccf9dfec320b3b75d0d73ba54af0dfae727862fe93bc1cfd","urls":["bzz-raw://9a0a39917aabf39d981b17d1a06c9b82377917c3a0eedce8e9dc00df5c096bf9","dweb:/ipfs/Qme7GpiHd32FFKYNbY4vdhiiciWPV1z1Uwtj1KDQAusxki"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/forge-std/src/Vm.sol","id":9353,"exportedSymbols":{"Vm":[9352],"VmSafe":[9027]},"nodeType":"SourceUnit","src":"32:24959:12","nodes":[{"id":8197,"nodeType":"PragmaDirective","src":"32:31:12","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":8198,"nodeType":"PragmaDirective","src":"65:33:12","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":9027,"nodeType":"ContractDefinition","src":"571:16550:12","nodes":[{"id":8206,"nodeType":"StructDefinition","src":"594:89:12","nodes":[],"canonicalName":"VmSafe.Log","members":[{"constant":false,"id":8201,"mutability":"mutable","name":"topics","nameLocation":"625:6:12","nodeType":"VariableDeclaration","scope":8206,"src":"615:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"615:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8200,"nodeType":"ArrayTypeName","src":"615:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":8203,"mutability":"mutable","name":"data","nameLocation":"647:4:12","nodeType":"VariableDeclaration","scope":8206,"src":"641:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":8202,"name":"bytes","nodeType":"ElementaryTypeName","src":"641:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8205,"mutability":"mutable","name":"emitter","nameLocation":"669:7:12","nodeType":"VariableDeclaration","scope":8206,"src":"661:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8204,"name":"address","nodeType":"ElementaryTypeName","src":"661:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Log","nameLocation":"601:3:12","scope":9027,"visibility":"public"},{"id":8211,"nodeType":"StructDefinition","src":"689:58:12","nodes":[],"canonicalName":"VmSafe.Rpc","members":[{"constant":false,"id":8208,"mutability":"mutable","name":"key","nameLocation":"717:3:12","nodeType":"VariableDeclaration","scope":8211,"src":"710:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":8207,"name":"string","nodeType":"ElementaryTypeName","src":"710:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8210,"mutability":"mutable","name":"url","nameLocation":"737:3:12","nodeType":"VariableDeclaration","scope":8211,"src":"730:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":8209,"name":"string","nodeType":"ElementaryTypeName","src":"730:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"Rpc","nameLocation":"696:3:12","scope":9027,"visibility":"public"},{"id":8226,"nodeType":"StructDefinition","src":"753:193:12","nodes":[],"canonicalName":"VmSafe.FsMetadata","members":[{"constant":false,"id":8213,"mutability":"mutable","name":"isDir","nameLocation":"786:5:12","nodeType":"VariableDeclaration","scope":8226,"src":"781:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8212,"name":"bool","nodeType":"ElementaryTypeName","src":"781:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8215,"mutability":"mutable","name":"isSymlink","nameLocation":"806:9:12","nodeType":"VariableDeclaration","scope":8226,"src":"801:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8214,"name":"bool","nodeType":"ElementaryTypeName","src":"801:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8217,"mutability":"mutable","name":"length","nameLocation":"833:6:12","nodeType":"VariableDeclaration","scope":8226,"src":"825:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8216,"name":"uint256","nodeType":"ElementaryTypeName","src":"825:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8219,"mutability":"mutable","name":"readOnly","nameLocation":"854:8:12","nodeType":"VariableDeclaration","scope":8226,"src":"849:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8218,"name":"bool","nodeType":"ElementaryTypeName","src":"849:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8221,"mutability":"mutable","name":"modified","nameLocation":"880:8:12","nodeType":"VariableDeclaration","scope":8226,"src":"872:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8220,"name":"uint256","nodeType":"ElementaryTypeName","src":"872:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8223,"mutability":"mutable","name":"accessed","nameLocation":"906:8:12","nodeType":"VariableDeclaration","scope":8226,"src":"898:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8222,"name":"uint256","nodeType":"ElementaryTypeName","src":"898:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8225,"mutability":"mutable","name":"created","nameLocation":"932:7:12","nodeType":"VariableDeclaration","scope":8226,"src":"924:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8224,"name":"uint256","nodeType":"ElementaryTypeName","src":"924:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"FsMetadata","nameLocation":"760:10:12","scope":9027,"visibility":"public"},{"id":8235,"nodeType":"FunctionDefinition","src":"996:81:12","nodes":[],"functionSelector":"667f9d70","implemented":false,"kind":"function","modifiers":[],"name":"load","nameLocation":"1005:4:12","parameters":{"id":8231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8228,"mutability":"mutable","name":"target","nameLocation":"1018:6:12","nodeType":"VariableDeclaration","scope":8235,"src":"1010:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8227,"name":"address","nodeType":"ElementaryTypeName","src":"1010:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8230,"mutability":"mutable","name":"slot","nameLocation":"1034:4:12","nodeType":"VariableDeclaration","scope":8235,"src":"1026:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8229,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1026:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1009:30:12"},"returnParameters":{"id":8234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8233,"mutability":"mutable","name":"data","nameLocation":"1071:4:12","nodeType":"VariableDeclaration","scope":8235,"src":"1063:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8232,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1063:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1062:14:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8248,"nodeType":"FunctionDefinition","src":"1100:104:12","nodes":[],"functionSelector":"e341eaa4","implemented":false,"kind":"function","modifiers":[],"name":"sign","nameLocation":"1109:4:12","parameters":{"id":8240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8237,"mutability":"mutable","name":"privateKey","nameLocation":"1122:10:12","nodeType":"VariableDeclaration","scope":8248,"src":"1114:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8236,"name":"uint256","nodeType":"ElementaryTypeName","src":"1114:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8239,"mutability":"mutable","name":"digest","nameLocation":"1142:6:12","nodeType":"VariableDeclaration","scope":8248,"src":"1134:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8238,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1134:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1113:36:12"},"returnParameters":{"id":8247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8242,"mutability":"mutable","name":"v","nameLocation":"1179:1:12","nodeType":"VariableDeclaration","scope":8248,"src":"1173:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8241,"name":"uint8","nodeType":"ElementaryTypeName","src":"1173:5:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":8244,"mutability":"mutable","name":"r","nameLocation":"1190:1:12","nodeType":"VariableDeclaration","scope":8248,"src":"1182:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8243,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1182:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8246,"mutability":"mutable","name":"s","nameLocation":"1201:1:12","nodeType":"VariableDeclaration","scope":8248,"src":"1193:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8245,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1193:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1172:31:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8255,"nodeType":"FunctionDefinition","src":"1257:71:12","nodes":[],"functionSelector":"ffa18649","implemented":false,"kind":"function","modifiers":[],"name":"addr","nameLocation":"1266:4:12","parameters":{"id":8251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8250,"mutability":"mutable","name":"privateKey","nameLocation":"1279:10:12","nodeType":"VariableDeclaration","scope":8255,"src":"1271:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8249,"name":"uint256","nodeType":"ElementaryTypeName","src":"1271:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1270:20:12"},"returnParameters":{"id":8254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8253,"mutability":"mutable","name":"addr","nameLocation":"1322:4:12","nodeType":"VariableDeclaration","scope":8255,"src":"1314:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8252,"name":"address","nodeType":"ElementaryTypeName","src":"1314:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1313:14:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8262,"nodeType":"FunctionDefinition","src":"1369:72:12","nodes":[],"functionSelector":"2d0335ab","implemented":false,"kind":"function","modifiers":[],"name":"getNonce","nameLocation":"1378:8:12","parameters":{"id":8258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8257,"mutability":"mutable","name":"account","nameLocation":"1395:7:12","nodeType":"VariableDeclaration","scope":8262,"src":"1387:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8256,"name":"address","nodeType":"ElementaryTypeName","src":"1387:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1386:17:12"},"returnParameters":{"id":8261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8260,"mutability":"mutable","name":"nonce","nameLocation":"1434:5:12","nodeType":"VariableDeclaration","scope":8262,"src":"1427:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":8259,"name":"uint64","nodeType":"ElementaryTypeName","src":"1427:6:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1426:14:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8270,"nodeType":"FunctionDefinition","src":"1503:84:12","nodes":[],"functionSelector":"89160467","implemented":false,"kind":"function","modifiers":[],"name":"ffi","nameLocation":"1512:3:12","parameters":{"id":8266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8265,"mutability":"mutable","name":"commandInput","nameLocation":"1534:12:12","nodeType":"VariableDeclaration","scope":8270,"src":"1516:30:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":8263,"name":"string","nodeType":"ElementaryTypeName","src":"1516:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":8264,"nodeType":"ArrayTypeName","src":"1516:8:12","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"1515:32:12"},"returnParameters":{"id":8269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8268,"mutability":"mutable","name":"result","nameLocation":"1579:6:12","nodeType":"VariableDeclaration","scope":8270,"src":"1566:19:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8267,"name":"bytes","nodeType":"ElementaryTypeName","src":"1566:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1565:21:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8277,"nodeType":"FunctionDefinition","src":"1626:70:12","nodes":[],"functionSelector":"3d5923ee","implemented":false,"kind":"function","modifiers":[],"name":"setEnv","nameLocation":"1635:6:12","parameters":{"id":8275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8272,"mutability":"mutable","name":"name","nameLocation":"1658:4:12","nodeType":"VariableDeclaration","scope":8277,"src":"1642:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8271,"name":"string","nodeType":"ElementaryTypeName","src":"1642:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8274,"mutability":"mutable","name":"value","nameLocation":"1680:5:12","nodeType":"VariableDeclaration","scope":8277,"src":"1664:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8273,"name":"string","nodeType":"ElementaryTypeName","src":"1664:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1641:45:12"},"returnParameters":{"id":8276,"nodeType":"ParameterList","parameters":[],"src":"1695:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8284,"nodeType":"FunctionDefinition","src":"1755:74:12","nodes":[],"functionSelector":"7ed1ec7d","implemented":false,"kind":"function","modifiers":[],"name":"envBool","nameLocation":"1764:7:12","parameters":{"id":8280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8279,"mutability":"mutable","name":"name","nameLocation":"1788:4:12","nodeType":"VariableDeclaration","scope":8284,"src":"1772:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8278,"name":"string","nodeType":"ElementaryTypeName","src":"1772:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1771:22:12"},"returnParameters":{"id":8283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8282,"mutability":"mutable","name":"value","nameLocation":"1822:5:12","nodeType":"VariableDeclaration","scope":8284,"src":"1817:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8281,"name":"bool","nodeType":"ElementaryTypeName","src":"1817:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1816:12:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8291,"nodeType":"FunctionDefinition","src":"1834:77:12","nodes":[],"functionSelector":"c1978d1f","implemented":false,"kind":"function","modifiers":[],"name":"envUint","nameLocation":"1843:7:12","parameters":{"id":8287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8286,"mutability":"mutable","name":"name","nameLocation":"1867:4:12","nodeType":"VariableDeclaration","scope":8291,"src":"1851:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8285,"name":"string","nodeType":"ElementaryTypeName","src":"1851:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1850:22:12"},"returnParameters":{"id":8290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8289,"mutability":"mutable","name":"value","nameLocation":"1904:5:12","nodeType":"VariableDeclaration","scope":8291,"src":"1896:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8288,"name":"uint256","nodeType":"ElementaryTypeName","src":"1896:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1895:15:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8298,"nodeType":"FunctionDefinition","src":"1916:75:12","nodes":[],"functionSelector":"892a0c61","implemented":false,"kind":"function","modifiers":[],"name":"envInt","nameLocation":"1925:6:12","parameters":{"id":8294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8293,"mutability":"mutable","name":"name","nameLocation":"1948:4:12","nodeType":"VariableDeclaration","scope":8298,"src":"1932:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8292,"name":"string","nodeType":"ElementaryTypeName","src":"1932:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1931:22:12"},"returnParameters":{"id":8297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8296,"mutability":"mutable","name":"value","nameLocation":"1984:5:12","nodeType":"VariableDeclaration","scope":8298,"src":"1977:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8295,"name":"int256","nodeType":"ElementaryTypeName","src":"1977:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1976:14:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8305,"nodeType":"FunctionDefinition","src":"1996:80:12","nodes":[],"functionSelector":"350d56bf","implemented":false,"kind":"function","modifiers":[],"name":"envAddress","nameLocation":"2005:10:12","parameters":{"id":8301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8300,"mutability":"mutable","name":"name","nameLocation":"2032:4:12","nodeType":"VariableDeclaration","scope":8305,"src":"2016:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8299,"name":"string","nodeType":"ElementaryTypeName","src":"2016:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2015:22:12"},"returnParameters":{"id":8304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8303,"mutability":"mutable","name":"value","nameLocation":"2069:5:12","nodeType":"VariableDeclaration","scope":8305,"src":"2061:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8302,"name":"address","nodeType":"ElementaryTypeName","src":"2061:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2060:15:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8312,"nodeType":"FunctionDefinition","src":"2081:80:12","nodes":[],"functionSelector":"97949042","implemented":false,"kind":"function","modifiers":[],"name":"envBytes32","nameLocation":"2090:10:12","parameters":{"id":8308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8307,"mutability":"mutable","name":"name","nameLocation":"2117:4:12","nodeType":"VariableDeclaration","scope":8312,"src":"2101:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8306,"name":"string","nodeType":"ElementaryTypeName","src":"2101:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2100:22:12"},"returnParameters":{"id":8311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8310,"mutability":"mutable","name":"value","nameLocation":"2154:5:12","nodeType":"VariableDeclaration","scope":8312,"src":"2146:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2146:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2145:15:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8319,"nodeType":"FunctionDefinition","src":"2166:85:12","nodes":[],"functionSelector":"f877cb19","implemented":false,"kind":"function","modifiers":[],"name":"envString","nameLocation":"2175:9:12","parameters":{"id":8315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8314,"mutability":"mutable","name":"name","nameLocation":"2201:4:12","nodeType":"VariableDeclaration","scope":8319,"src":"2185:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8313,"name":"string","nodeType":"ElementaryTypeName","src":"2185:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2184:22:12"},"returnParameters":{"id":8318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8317,"mutability":"mutable","name":"value","nameLocation":"2244:5:12","nodeType":"VariableDeclaration","scope":8319,"src":"2230:19:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8316,"name":"string","nodeType":"ElementaryTypeName","src":"2230:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2229:21:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8326,"nodeType":"FunctionDefinition","src":"2256:83:12","nodes":[],"functionSelector":"4d7baf06","implemented":false,"kind":"function","modifiers":[],"name":"envBytes","nameLocation":"2265:8:12","parameters":{"id":8322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8321,"mutability":"mutable","name":"name","nameLocation":"2290:4:12","nodeType":"VariableDeclaration","scope":8326,"src":"2274:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8320,"name":"string","nodeType":"ElementaryTypeName","src":"2274:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2273:22:12"},"returnParameters":{"id":8325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8324,"mutability":"mutable","name":"value","nameLocation":"2332:5:12","nodeType":"VariableDeclaration","scope":8326,"src":"2319:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8323,"name":"bytes","nodeType":"ElementaryTypeName","src":"2319:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2318:20:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8336,"nodeType":"FunctionDefinition","src":"2389:106:12","nodes":[],"functionSelector":"aaaddeaf","implemented":false,"kind":"function","modifiers":[],"name":"envBool","nameLocation":"2398:7:12","parameters":{"id":8331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8328,"mutability":"mutable","name":"name","nameLocation":"2422:4:12","nodeType":"VariableDeclaration","scope":8336,"src":"2406:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8327,"name":"string","nodeType":"ElementaryTypeName","src":"2406:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8330,"mutability":"mutable","name":"delim","nameLocation":"2444:5:12","nodeType":"VariableDeclaration","scope":8336,"src":"2428:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8329,"name":"string","nodeType":"ElementaryTypeName","src":"2428:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2405:45:12"},"returnParameters":{"id":8335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8334,"mutability":"mutable","name":"value","nameLocation":"2488:5:12","nodeType":"VariableDeclaration","scope":8336,"src":"2474:19:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":8332,"name":"bool","nodeType":"ElementaryTypeName","src":"2474:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8333,"nodeType":"ArrayTypeName","src":"2474:6:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"2473:21:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8346,"nodeType":"FunctionDefinition","src":"2500:109:12","nodes":[],"functionSelector":"f3dec099","implemented":false,"kind":"function","modifiers":[],"name":"envUint","nameLocation":"2509:7:12","parameters":{"id":8341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8338,"mutability":"mutable","name":"name","nameLocation":"2533:4:12","nodeType":"VariableDeclaration","scope":8346,"src":"2517:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8337,"name":"string","nodeType":"ElementaryTypeName","src":"2517:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8340,"mutability":"mutable","name":"delim","nameLocation":"2555:5:12","nodeType":"VariableDeclaration","scope":8346,"src":"2539:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8339,"name":"string","nodeType":"ElementaryTypeName","src":"2539:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2516:45:12"},"returnParameters":{"id":8345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8344,"mutability":"mutable","name":"value","nameLocation":"2602:5:12","nodeType":"VariableDeclaration","scope":8346,"src":"2585:22:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8342,"name":"uint256","nodeType":"ElementaryTypeName","src":"2585:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8343,"nodeType":"ArrayTypeName","src":"2585:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2584:24:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8356,"nodeType":"FunctionDefinition","src":"2614:107:12","nodes":[],"functionSelector":"42181150","implemented":false,"kind":"function","modifiers":[],"name":"envInt","nameLocation":"2623:6:12","parameters":{"id":8351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8348,"mutability":"mutable","name":"name","nameLocation":"2646:4:12","nodeType":"VariableDeclaration","scope":8356,"src":"2630:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8347,"name":"string","nodeType":"ElementaryTypeName","src":"2630:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8350,"mutability":"mutable","name":"delim","nameLocation":"2668:5:12","nodeType":"VariableDeclaration","scope":8356,"src":"2652:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8349,"name":"string","nodeType":"ElementaryTypeName","src":"2652:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2629:45:12"},"returnParameters":{"id":8355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8354,"mutability":"mutable","name":"value","nameLocation":"2714:5:12","nodeType":"VariableDeclaration","scope":8356,"src":"2698:21:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":8352,"name":"int256","nodeType":"ElementaryTypeName","src":"2698:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":8353,"nodeType":"ArrayTypeName","src":"2698:8:12","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"2697:23:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8366,"nodeType":"FunctionDefinition","src":"2726:112:12","nodes":[],"functionSelector":"ad31b9fa","implemented":false,"kind":"function","modifiers":[],"name":"envAddress","nameLocation":"2735:10:12","parameters":{"id":8361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8358,"mutability":"mutable","name":"name","nameLocation":"2762:4:12","nodeType":"VariableDeclaration","scope":8366,"src":"2746:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8357,"name":"string","nodeType":"ElementaryTypeName","src":"2746:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8360,"mutability":"mutable","name":"delim","nameLocation":"2784:5:12","nodeType":"VariableDeclaration","scope":8366,"src":"2768:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8359,"name":"string","nodeType":"ElementaryTypeName","src":"2768:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2745:45:12"},"returnParameters":{"id":8365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8364,"mutability":"mutable","name":"value","nameLocation":"2831:5:12","nodeType":"VariableDeclaration","scope":8366,"src":"2814:22:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8362,"name":"address","nodeType":"ElementaryTypeName","src":"2814:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8363,"nodeType":"ArrayTypeName","src":"2814:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2813:24:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8376,"nodeType":"FunctionDefinition","src":"2843:112:12","nodes":[],"functionSelector":"5af231c1","implemented":false,"kind":"function","modifiers":[],"name":"envBytes32","nameLocation":"2852:10:12","parameters":{"id":8371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8368,"mutability":"mutable","name":"name","nameLocation":"2879:4:12","nodeType":"VariableDeclaration","scope":8376,"src":"2863:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8367,"name":"string","nodeType":"ElementaryTypeName","src":"2863:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8370,"mutability":"mutable","name":"delim","nameLocation":"2901:5:12","nodeType":"VariableDeclaration","scope":8376,"src":"2885:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8369,"name":"string","nodeType":"ElementaryTypeName","src":"2885:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2862:45:12"},"returnParameters":{"id":8375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8374,"mutability":"mutable","name":"value","nameLocation":"2948:5:12","nodeType":"VariableDeclaration","scope":8376,"src":"2931:22:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8372,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2931:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8373,"nodeType":"ArrayTypeName","src":"2931:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"2930:24:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8386,"nodeType":"FunctionDefinition","src":"2960:110:12","nodes":[],"functionSelector":"14b02bc9","implemented":false,"kind":"function","modifiers":[],"name":"envString","nameLocation":"2969:9:12","parameters":{"id":8381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8378,"mutability":"mutable","name":"name","nameLocation":"2995:4:12","nodeType":"VariableDeclaration","scope":8386,"src":"2979:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8377,"name":"string","nodeType":"ElementaryTypeName","src":"2979:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8380,"mutability":"mutable","name":"delim","nameLocation":"3017:5:12","nodeType":"VariableDeclaration","scope":8386,"src":"3001:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8379,"name":"string","nodeType":"ElementaryTypeName","src":"3001:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2978:45:12"},"returnParameters":{"id":8385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8384,"mutability":"mutable","name":"value","nameLocation":"3063:5:12","nodeType":"VariableDeclaration","scope":8386,"src":"3047:21:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":8382,"name":"string","nodeType":"ElementaryTypeName","src":"3047:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":8383,"nodeType":"ArrayTypeName","src":"3047:8:12","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"3046:23:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8396,"nodeType":"FunctionDefinition","src":"3075:108:12","nodes":[],"functionSelector":"ddc2651b","implemented":false,"kind":"function","modifiers":[],"name":"envBytes","nameLocation":"3084:8:12","parameters":{"id":8391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8388,"mutability":"mutable","name":"name","nameLocation":"3109:4:12","nodeType":"VariableDeclaration","scope":8396,"src":"3093:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8387,"name":"string","nodeType":"ElementaryTypeName","src":"3093:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8390,"mutability":"mutable","name":"delim","nameLocation":"3131:5:12","nodeType":"VariableDeclaration","scope":8396,"src":"3115:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8389,"name":"string","nodeType":"ElementaryTypeName","src":"3115:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3092:45:12"},"returnParameters":{"id":8395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8394,"mutability":"mutable","name":"value","nameLocation":"3176:5:12","nodeType":"VariableDeclaration","scope":8396,"src":"3161:20:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":8392,"name":"bytes","nodeType":"ElementaryTypeName","src":"3161:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":8393,"nodeType":"ArrayTypeName","src":"3161:7:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"3160:22:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8405,"nodeType":"FunctionDefinition","src":"3241:86:12","nodes":[],"functionSelector":"4777f3cf","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"3250:5:12","parameters":{"id":8401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8398,"mutability":"mutable","name":"name","nameLocation":"3272:4:12","nodeType":"VariableDeclaration","scope":8405,"src":"3256:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8397,"name":"string","nodeType":"ElementaryTypeName","src":"3256:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8400,"mutability":"mutable","name":"defaultValue","nameLocation":"3283:12:12","nodeType":"VariableDeclaration","scope":8405,"src":"3278:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8399,"name":"bool","nodeType":"ElementaryTypeName","src":"3278:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3255:41:12"},"returnParameters":{"id":8404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8403,"mutability":"mutable","name":"value","nameLocation":"3320:5:12","nodeType":"VariableDeclaration","scope":8405,"src":"3315:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8402,"name":"bool","nodeType":"ElementaryTypeName","src":"3315:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3314:12:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8414,"nodeType":"FunctionDefinition","src":"3332:92:12","nodes":[],"functionSelector":"5e97348f","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"3341:5:12","parameters":{"id":8410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8407,"mutability":"mutable","name":"name","nameLocation":"3363:4:12","nodeType":"VariableDeclaration","scope":8414,"src":"3347:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8406,"name":"string","nodeType":"ElementaryTypeName","src":"3347:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8409,"mutability":"mutable","name":"defaultValue","nameLocation":"3377:12:12","nodeType":"VariableDeclaration","scope":8414,"src":"3369:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8408,"name":"uint256","nodeType":"ElementaryTypeName","src":"3369:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3346:44:12"},"returnParameters":{"id":8413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8412,"mutability":"mutable","name":"value","nameLocation":"3417:5:12","nodeType":"VariableDeclaration","scope":8414,"src":"3409:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8411,"name":"uint256","nodeType":"ElementaryTypeName","src":"3409:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3408:15:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8423,"nodeType":"FunctionDefinition","src":"3429:90:12","nodes":[],"functionSelector":"bbcb713e","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"3438:5:12","parameters":{"id":8419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8416,"mutability":"mutable","name":"name","nameLocation":"3460:4:12","nodeType":"VariableDeclaration","scope":8423,"src":"3444:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8415,"name":"string","nodeType":"ElementaryTypeName","src":"3444:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8418,"mutability":"mutable","name":"defaultValue","nameLocation":"3473:12:12","nodeType":"VariableDeclaration","scope":8423,"src":"3466:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8417,"name":"int256","nodeType":"ElementaryTypeName","src":"3466:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3443:43:12"},"returnParameters":{"id":8422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8421,"mutability":"mutable","name":"value","nameLocation":"3512:5:12","nodeType":"VariableDeclaration","scope":8423,"src":"3505:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8420,"name":"int256","nodeType":"ElementaryTypeName","src":"3505:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3504:14:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8432,"nodeType":"FunctionDefinition","src":"3524:92:12","nodes":[],"functionSelector":"561fe540","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"3533:5:12","parameters":{"id":8428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8425,"mutability":"mutable","name":"name","nameLocation":"3555:4:12","nodeType":"VariableDeclaration","scope":8432,"src":"3539:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8424,"name":"string","nodeType":"ElementaryTypeName","src":"3539:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8427,"mutability":"mutable","name":"defaultValue","nameLocation":"3569:12:12","nodeType":"VariableDeclaration","scope":8432,"src":"3561:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8426,"name":"address","nodeType":"ElementaryTypeName","src":"3561:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3538:44:12"},"returnParameters":{"id":8431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8430,"mutability":"mutable","name":"value","nameLocation":"3609:5:12","nodeType":"VariableDeclaration","scope":8432,"src":"3601:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8429,"name":"address","nodeType":"ElementaryTypeName","src":"3601:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3600:15:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8441,"nodeType":"FunctionDefinition","src":"3621:92:12","nodes":[],"functionSelector":"b4a85892","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"3630:5:12","parameters":{"id":8437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8434,"mutability":"mutable","name":"name","nameLocation":"3652:4:12","nodeType":"VariableDeclaration","scope":8441,"src":"3636:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8433,"name":"string","nodeType":"ElementaryTypeName","src":"3636:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8436,"mutability":"mutable","name":"defaultValue","nameLocation":"3666:12:12","nodeType":"VariableDeclaration","scope":8441,"src":"3658:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8435,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3658:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3635:44:12"},"returnParameters":{"id":8440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8439,"mutability":"mutable","name":"value","nameLocation":"3706:5:12","nodeType":"VariableDeclaration","scope":8441,"src":"3698:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8438,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3698:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3697:15:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8450,"nodeType":"FunctionDefinition","src":"3718:106:12","nodes":[],"functionSelector":"d145736c","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"3727:5:12","parameters":{"id":8446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8443,"mutability":"mutable","name":"name","nameLocation":"3749:4:12","nodeType":"VariableDeclaration","scope":8450,"src":"3733:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8442,"name":"string","nodeType":"ElementaryTypeName","src":"3733:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8445,"mutability":"mutable","name":"defaultValue","nameLocation":"3771:12:12","nodeType":"VariableDeclaration","scope":8450,"src":"3755:28:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8444,"name":"string","nodeType":"ElementaryTypeName","src":"3755:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3732:52:12"},"returnParameters":{"id":8449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8448,"mutability":"mutable","name":"value","nameLocation":"3817:5:12","nodeType":"VariableDeclaration","scope":8450,"src":"3803:19:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8447,"name":"string","nodeType":"ElementaryTypeName","src":"3803:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3802:21:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8459,"nodeType":"FunctionDefinition","src":"3829:104:12","nodes":[],"functionSelector":"b3e47705","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"3838:5:12","parameters":{"id":8455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8452,"mutability":"mutable","name":"name","nameLocation":"3860:4:12","nodeType":"VariableDeclaration","scope":8459,"src":"3844:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8451,"name":"string","nodeType":"ElementaryTypeName","src":"3844:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8454,"mutability":"mutable","name":"defaultValue","nameLocation":"3881:12:12","nodeType":"VariableDeclaration","scope":8459,"src":"3866:27:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8453,"name":"bytes","nodeType":"ElementaryTypeName","src":"3866:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3843:51:12"},"returnParameters":{"id":8458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8457,"mutability":"mutable","name":"value","nameLocation":"3926:5:12","nodeType":"VariableDeclaration","scope":8459,"src":"3913:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8456,"name":"bytes","nodeType":"ElementaryTypeName","src":"3913:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3912:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8472,"nodeType":"FunctionDefinition","src":"4001:145:12","nodes":[],"functionSelector":"eb85e83b","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"4010:5:12","parameters":{"id":8467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8461,"mutability":"mutable","name":"name","nameLocation":"4032:4:12","nodeType":"VariableDeclaration","scope":8472,"src":"4016:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8460,"name":"string","nodeType":"ElementaryTypeName","src":"4016:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8463,"mutability":"mutable","name":"delim","nameLocation":"4054:5:12","nodeType":"VariableDeclaration","scope":8472,"src":"4038:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8462,"name":"string","nodeType":"ElementaryTypeName","src":"4038:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8466,"mutability":"mutable","name":"defaultValue","nameLocation":"4077:12:12","nodeType":"VariableDeclaration","scope":8472,"src":"4061:28:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":8464,"name":"bool","nodeType":"ElementaryTypeName","src":"4061:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8465,"nodeType":"ArrayTypeName","src":"4061:6:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"4015:75:12"},"returnParameters":{"id":8471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8470,"mutability":"mutable","name":"value","nameLocation":"4139:5:12","nodeType":"VariableDeclaration","scope":8472,"src":"4125:19:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":8468,"name":"bool","nodeType":"ElementaryTypeName","src":"4125:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8469,"nodeType":"ArrayTypeName","src":"4125:6:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"4124:21:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8485,"nodeType":"FunctionDefinition","src":"4151:151:12","nodes":[],"functionSelector":"74318528","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"4160:5:12","parameters":{"id":8480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8474,"mutability":"mutable","name":"name","nameLocation":"4182:4:12","nodeType":"VariableDeclaration","scope":8485,"src":"4166:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8473,"name":"string","nodeType":"ElementaryTypeName","src":"4166:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8476,"mutability":"mutable","name":"delim","nameLocation":"4204:5:12","nodeType":"VariableDeclaration","scope":8485,"src":"4188:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8475,"name":"string","nodeType":"ElementaryTypeName","src":"4188:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8479,"mutability":"mutable","name":"defaultValue","nameLocation":"4230:12:12","nodeType":"VariableDeclaration","scope":8485,"src":"4211:31:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8477,"name":"uint256","nodeType":"ElementaryTypeName","src":"4211:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8478,"nodeType":"ArrayTypeName","src":"4211:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4165:78:12"},"returnParameters":{"id":8484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8483,"mutability":"mutable","name":"value","nameLocation":"4295:5:12","nodeType":"VariableDeclaration","scope":8485,"src":"4278:22:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8481,"name":"uint256","nodeType":"ElementaryTypeName","src":"4278:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8482,"nodeType":"ArrayTypeName","src":"4278:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4277:24:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8498,"nodeType":"FunctionDefinition","src":"4307:149:12","nodes":[],"functionSelector":"4700d74b","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"4316:5:12","parameters":{"id":8493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8487,"mutability":"mutable","name":"name","nameLocation":"4338:4:12","nodeType":"VariableDeclaration","scope":8498,"src":"4322:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8486,"name":"string","nodeType":"ElementaryTypeName","src":"4322:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8489,"mutability":"mutable","name":"delim","nameLocation":"4360:5:12","nodeType":"VariableDeclaration","scope":8498,"src":"4344:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8488,"name":"string","nodeType":"ElementaryTypeName","src":"4344:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8492,"mutability":"mutable","name":"defaultValue","nameLocation":"4385:12:12","nodeType":"VariableDeclaration","scope":8498,"src":"4367:30:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":8490,"name":"int256","nodeType":"ElementaryTypeName","src":"4367:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":8491,"nodeType":"ArrayTypeName","src":"4367:8:12","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"4321:77:12"},"returnParameters":{"id":8497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8496,"mutability":"mutable","name":"value","nameLocation":"4449:5:12","nodeType":"VariableDeclaration","scope":8498,"src":"4433:21:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":8494,"name":"int256","nodeType":"ElementaryTypeName","src":"4433:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":8495,"nodeType":"ArrayTypeName","src":"4433:8:12","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"4432:23:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8511,"nodeType":"FunctionDefinition","src":"4461:151:12","nodes":[],"functionSelector":"c74e9deb","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"4470:5:12","parameters":{"id":8506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8500,"mutability":"mutable","name":"name","nameLocation":"4492:4:12","nodeType":"VariableDeclaration","scope":8511,"src":"4476:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8499,"name":"string","nodeType":"ElementaryTypeName","src":"4476:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8502,"mutability":"mutable","name":"delim","nameLocation":"4514:5:12","nodeType":"VariableDeclaration","scope":8511,"src":"4498:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8501,"name":"string","nodeType":"ElementaryTypeName","src":"4498:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8505,"mutability":"mutable","name":"defaultValue","nameLocation":"4540:12:12","nodeType":"VariableDeclaration","scope":8511,"src":"4521:31:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8503,"name":"address","nodeType":"ElementaryTypeName","src":"4521:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8504,"nodeType":"ArrayTypeName","src":"4521:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4475:78:12"},"returnParameters":{"id":8510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8509,"mutability":"mutable","name":"value","nameLocation":"4605:5:12","nodeType":"VariableDeclaration","scope":8511,"src":"4588:22:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8507,"name":"address","nodeType":"ElementaryTypeName","src":"4588:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8508,"nodeType":"ArrayTypeName","src":"4588:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4587:24:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8524,"nodeType":"FunctionDefinition","src":"4617:151:12","nodes":[],"functionSelector":"2281f367","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"4626:5:12","parameters":{"id":8519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8513,"mutability":"mutable","name":"name","nameLocation":"4648:4:12","nodeType":"VariableDeclaration","scope":8524,"src":"4632:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8512,"name":"string","nodeType":"ElementaryTypeName","src":"4632:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8515,"mutability":"mutable","name":"delim","nameLocation":"4670:5:12","nodeType":"VariableDeclaration","scope":8524,"src":"4654:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8514,"name":"string","nodeType":"ElementaryTypeName","src":"4654:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8518,"mutability":"mutable","name":"defaultValue","nameLocation":"4696:12:12","nodeType":"VariableDeclaration","scope":8524,"src":"4677:31:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8516,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4677:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8517,"nodeType":"ArrayTypeName","src":"4677:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"4631:78:12"},"returnParameters":{"id":8523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8522,"mutability":"mutable","name":"value","nameLocation":"4761:5:12","nodeType":"VariableDeclaration","scope":8524,"src":"4744:22:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8520,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4744:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8521,"nodeType":"ArrayTypeName","src":"4744:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"4743:24:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8537,"nodeType":"FunctionDefinition","src":"4773:149:12","nodes":[],"functionSelector":"859216bc","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"4782:5:12","parameters":{"id":8532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8526,"mutability":"mutable","name":"name","nameLocation":"4804:4:12","nodeType":"VariableDeclaration","scope":8537,"src":"4788:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8525,"name":"string","nodeType":"ElementaryTypeName","src":"4788:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8528,"mutability":"mutable","name":"delim","nameLocation":"4826:5:12","nodeType":"VariableDeclaration","scope":8537,"src":"4810:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8527,"name":"string","nodeType":"ElementaryTypeName","src":"4810:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8531,"mutability":"mutable","name":"defaultValue","nameLocation":"4851:12:12","nodeType":"VariableDeclaration","scope":8537,"src":"4833:30:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":8529,"name":"string","nodeType":"ElementaryTypeName","src":"4833:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":8530,"nodeType":"ArrayTypeName","src":"4833:8:12","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"4787:77:12"},"returnParameters":{"id":8536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8535,"mutability":"mutable","name":"value","nameLocation":"4915:5:12","nodeType":"VariableDeclaration","scope":8537,"src":"4899:21:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":8533,"name":"string","nodeType":"ElementaryTypeName","src":"4899:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":8534,"nodeType":"ArrayTypeName","src":"4899:8:12","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"4898:23:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8550,"nodeType":"FunctionDefinition","src":"4927:147:12","nodes":[],"functionSelector":"64bc3e64","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"4936:5:12","parameters":{"id":8545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8539,"mutability":"mutable","name":"name","nameLocation":"4958:4:12","nodeType":"VariableDeclaration","scope":8550,"src":"4942:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8538,"name":"string","nodeType":"ElementaryTypeName","src":"4942:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8541,"mutability":"mutable","name":"delim","nameLocation":"4980:5:12","nodeType":"VariableDeclaration","scope":8550,"src":"4964:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8540,"name":"string","nodeType":"ElementaryTypeName","src":"4964:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8544,"mutability":"mutable","name":"defaultValue","nameLocation":"5004:12:12","nodeType":"VariableDeclaration","scope":8550,"src":"4987:29:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":8542,"name":"bytes","nodeType":"ElementaryTypeName","src":"4987:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":8543,"nodeType":"ArrayTypeName","src":"4987:7:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"4941:76:12"},"returnParameters":{"id":8549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8548,"mutability":"mutable","name":"value","nameLocation":"5067:5:12","nodeType":"VariableDeclaration","scope":8550,"src":"5052:20:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":8546,"name":"bytes","nodeType":"ElementaryTypeName","src":"5052:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":8547,"nodeType":"ArrayTypeName","src":"5052:7:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"5051:22:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8553,"nodeType":"FunctionDefinition","src":"5123:27:12","nodes":[],"functionSelector":"266cf109","implemented":false,"kind":"function","modifiers":[],"name":"record","nameLocation":"5132:6:12","parameters":{"id":8551,"nodeType":"ParameterList","parameters":[],"src":"5138:2:12"},"returnParameters":{"id":8552,"nodeType":"ParameterList","parameters":[],"src":"5149:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8564,"nodeType":"FunctionDefinition","src":"5247:109:12","nodes":[],"functionSelector":"65bc9481","implemented":false,"kind":"function","modifiers":[],"name":"accesses","nameLocation":"5256:8:12","parameters":{"id":8556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8555,"mutability":"mutable","name":"target","nameLocation":"5273:6:12","nodeType":"VariableDeclaration","scope":8564,"src":"5265:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8554,"name":"address","nodeType":"ElementaryTypeName","src":"5265:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5264:16:12"},"returnParameters":{"id":8563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8559,"mutability":"mutable","name":"readSlots","nameLocation":"5316:9:12","nodeType":"VariableDeclaration","scope":8564,"src":"5299:26:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5299:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8558,"nodeType":"ArrayTypeName","src":"5299:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":8562,"mutability":"mutable","name":"writeSlots","nameLocation":"5344:10:12","nodeType":"VariableDeclaration","scope":8564,"src":"5327:27:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8560,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5327:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8561,"nodeType":"ArrayTypeName","src":"5327:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"5298:57:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8571,"nodeType":"FunctionDefinition","src":"5464:101:12","nodes":[],"functionSelector":"8d1cc925","implemented":false,"kind":"function","modifiers":[],"name":"getCode","nameLocation":"5473:7:12","parameters":{"id":8567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8566,"mutability":"mutable","name":"artifactPath","nameLocation":"5497:12:12","nodeType":"VariableDeclaration","scope":8571,"src":"5481:28:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8565,"name":"string","nodeType":"ElementaryTypeName","src":"5481:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5480:30:12"},"returnParameters":{"id":8570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8569,"mutability":"mutable","name":"creationBytecode","nameLocation":"5547:16:12","nodeType":"VariableDeclaration","scope":8571,"src":"5534:29:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8568,"name":"bytes","nodeType":"ElementaryTypeName","src":"5534:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5533:31:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8578,"nodeType":"FunctionDefinition","src":"5673:108:12","nodes":[],"functionSelector":"3ebf73b4","implemented":false,"kind":"function","modifiers":[],"name":"getDeployedCode","nameLocation":"5682:15:12","parameters":{"id":8574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8573,"mutability":"mutable","name":"artifactPath","nameLocation":"5714:12:12","nodeType":"VariableDeclaration","scope":8578,"src":"5698:28:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8572,"name":"string","nodeType":"ElementaryTypeName","src":"5698:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5697:30:12"},"returnParameters":{"id":8577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8576,"mutability":"mutable","name":"runtimeBytecode","nameLocation":"5764:15:12","nodeType":"VariableDeclaration","scope":8578,"src":"5751:28:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8575,"name":"bytes","nodeType":"ElementaryTypeName","src":"5751:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5750:30:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8585,"nodeType":"FunctionDefinition","src":"5826:67:12","nodes":[],"functionSelector":"c657c718","implemented":false,"kind":"function","modifiers":[],"name":"label","nameLocation":"5835:5:12","parameters":{"id":8583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8580,"mutability":"mutable","name":"account","nameLocation":"5849:7:12","nodeType":"VariableDeclaration","scope":8585,"src":"5841:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8579,"name":"address","nodeType":"ElementaryTypeName","src":"5841:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8582,"mutability":"mutable","name":"newLabel","nameLocation":"5874:8:12","nodeType":"VariableDeclaration","scope":8585,"src":"5858:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8581,"name":"string","nodeType":"ElementaryTypeName","src":"5858:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5840:43:12"},"returnParameters":{"id":8584,"nodeType":"ParameterList","parameters":[],"src":"5892:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8588,"nodeType":"FunctionDefinition","src":"6060:30:12","nodes":[],"functionSelector":"afc98040","implemented":false,"kind":"function","modifiers":[],"name":"broadcast","nameLocation":"6069:9:12","parameters":{"id":8586,"nodeType":"ParameterList","parameters":[],"src":"6078:2:12"},"returnParameters":{"id":8587,"nodeType":"ParameterList","parameters":[],"src":"6089:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8593,"nodeType":"FunctionDefinition","src":"6249:44:12","nodes":[],"functionSelector":"e6962cdb","implemented":false,"kind":"function","modifiers":[],"name":"broadcast","nameLocation":"6258:9:12","parameters":{"id":8591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8590,"mutability":"mutable","name":"signer","nameLocation":"6276:6:12","nodeType":"VariableDeclaration","scope":8593,"src":"6268:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8589,"name":"address","nodeType":"ElementaryTypeName","src":"6268:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6267:16:12"},"returnParameters":{"id":8592,"nodeType":"ParameterList","parameters":[],"src":"6292:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8598,"nodeType":"FunctionDefinition","src":"6456:48:12","nodes":[],"functionSelector":"f67a965b","implemented":false,"kind":"function","modifiers":[],"name":"broadcast","nameLocation":"6465:9:12","parameters":{"id":8596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8595,"mutability":"mutable","name":"privateKey","nameLocation":"6483:10:12","nodeType":"VariableDeclaration","scope":8598,"src":"6475:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8594,"name":"uint256","nodeType":"ElementaryTypeName","src":"6475:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6474:20:12"},"returnParameters":{"id":8597,"nodeType":"ParameterList","parameters":[],"src":"6503:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8601,"nodeType":"FunctionDefinition","src":"6677:35:12","nodes":[],"functionSelector":"7fb5297f","implemented":false,"kind":"function","modifiers":[],"name":"startBroadcast","nameLocation":"6686:14:12","parameters":{"id":8599,"nodeType":"ParameterList","parameters":[],"src":"6700:2:12"},"returnParameters":{"id":8600,"nodeType":"ParameterList","parameters":[],"src":"6711:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8606,"nodeType":"FunctionDefinition","src":"6863:49:12","nodes":[],"functionSelector":"7fec2a8d","implemented":false,"kind":"function","modifiers":[],"name":"startBroadcast","nameLocation":"6872:14:12","parameters":{"id":8604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8603,"mutability":"mutable","name":"signer","nameLocation":"6895:6:12","nodeType":"VariableDeclaration","scope":8606,"src":"6887:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8602,"name":"address","nodeType":"ElementaryTypeName","src":"6887:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6886:16:12"},"returnParameters":{"id":8605,"nodeType":"ParameterList","parameters":[],"src":"6911:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8611,"nodeType":"FunctionDefinition","src":"7067:53:12","nodes":[],"functionSelector":"ce817d47","implemented":false,"kind":"function","modifiers":[],"name":"startBroadcast","nameLocation":"7076:14:12","parameters":{"id":8609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8608,"mutability":"mutable","name":"privateKey","nameLocation":"7099:10:12","nodeType":"VariableDeclaration","scope":8611,"src":"7091:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8607,"name":"uint256","nodeType":"ElementaryTypeName","src":"7091:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7090:20:12"},"returnParameters":{"id":8610,"nodeType":"ParameterList","parameters":[],"src":"7119:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8614,"nodeType":"FunctionDefinition","src":"7170:34:12","nodes":[],"functionSelector":"76eadd36","implemented":false,"kind":"function","modifiers":[],"name":"stopBroadcast","nameLocation":"7179:13:12","parameters":{"id":8612,"nodeType":"ParameterList","parameters":[],"src":"7192:2:12"},"returnParameters":{"id":8613,"nodeType":"ParameterList","parameters":[],"src":"7203:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8621,"nodeType":"FunctionDefinition","src":"7259:83:12","nodes":[],"functionSelector":"60f9bb11","implemented":false,"kind":"function","modifiers":[],"name":"readFile","nameLocation":"7268:8:12","parameters":{"id":8617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8616,"mutability":"mutable","name":"path","nameLocation":"7293:4:12","nodeType":"VariableDeclaration","scope":8621,"src":"7277:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8615,"name":"string","nodeType":"ElementaryTypeName","src":"7277:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7276:22:12"},"returnParameters":{"id":8620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8619,"mutability":"mutable","name":"data","nameLocation":"7336:4:12","nodeType":"VariableDeclaration","scope":8621,"src":"7322:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8618,"name":"string","nodeType":"ElementaryTypeName","src":"7322:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7321:20:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8628,"nodeType":"FunctionDefinition","src":"7436:88:12","nodes":[],"functionSelector":"16ed7bc4","implemented":false,"kind":"function","modifiers":[],"name":"readFileBinary","nameLocation":"7445:14:12","parameters":{"id":8624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8623,"mutability":"mutable","name":"path","nameLocation":"7476:4:12","nodeType":"VariableDeclaration","scope":8628,"src":"7460:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8622,"name":"string","nodeType":"ElementaryTypeName","src":"7460:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7459:22:12"},"returnParameters":{"id":8627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8626,"mutability":"mutable","name":"data","nameLocation":"7518:4:12","nodeType":"VariableDeclaration","scope":8628,"src":"7505:17:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8625,"name":"bytes","nodeType":"ElementaryTypeName","src":"7505:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7504:19:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8633,"nodeType":"FunctionDefinition","src":"7577:66:12","nodes":[],"functionSelector":"d930a0e6","implemented":false,"kind":"function","modifiers":[],"name":"projectRoot","nameLocation":"7586:11:12","parameters":{"id":8629,"nodeType":"ParameterList","parameters":[],"src":"7597:2:12"},"returnParameters":{"id":8632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8631,"mutability":"mutable","name":"path","nameLocation":"7637:4:12","nodeType":"VariableDeclaration","scope":8633,"src":"7623:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8630,"name":"string","nodeType":"ElementaryTypeName","src":"7623:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7622:20:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8641,"nodeType":"FunctionDefinition","src":"7693:93:12","nodes":[],"functionSelector":"af368a08","implemented":false,"kind":"function","modifiers":[],"name":"fsMetadata","nameLocation":"7702:10:12","parameters":{"id":8636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8635,"mutability":"mutable","name":"fileOrDir","nameLocation":"7729:9:12","nodeType":"VariableDeclaration","scope":8641,"src":"7713:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8634,"name":"string","nodeType":"ElementaryTypeName","src":"7713:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7712:27:12"},"returnParameters":{"id":8640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8639,"mutability":"mutable","name":"metadata","nameLocation":"7776:8:12","nodeType":"VariableDeclaration","scope":8641,"src":"7758:26:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FsMetadata_$8226_memory_ptr","typeString":"struct VmSafe.FsMetadata"},"typeName":{"id":8638,"nodeType":"UserDefinedTypeName","pathNode":{"id":8637,"name":"FsMetadata","nameLocations":["7758:10:12"],"nodeType":"IdentifierPath","referencedDeclaration":8226,"src":"7758:10:12"},"referencedDeclaration":8226,"src":"7758:10:12","typeDescriptions":{"typeIdentifier":"t_struct$_FsMetadata_$8226_storage_ptr","typeString":"struct VmSafe.FsMetadata"}},"visibility":"internal"}],"src":"7757:28:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8648,"nodeType":"FunctionDefinition","src":"7832:83:12","nodes":[],"functionSelector":"70f55728","implemented":false,"kind":"function","modifiers":[],"name":"readLine","nameLocation":"7841:8:12","parameters":{"id":8644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8643,"mutability":"mutable","name":"path","nameLocation":"7866:4:12","nodeType":"VariableDeclaration","scope":8648,"src":"7850:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8642,"name":"string","nodeType":"ElementaryTypeName","src":"7850:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7849:22:12"},"returnParameters":{"id":8647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8646,"mutability":"mutable","name":"line","nameLocation":"7909:4:12","nodeType":"VariableDeclaration","scope":8648,"src":"7895:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8645,"name":"string","nodeType":"ElementaryTypeName","src":"7895:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7894:20:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":8655,"nodeType":"FunctionDefinition","src":"8034:72:12","nodes":[],"functionSelector":"897e0a97","implemented":false,"kind":"function","modifiers":[],"name":"writeFile","nameLocation":"8043:9:12","parameters":{"id":8653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8650,"mutability":"mutable","name":"path","nameLocation":"8069:4:12","nodeType":"VariableDeclaration","scope":8655,"src":"8053:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8649,"name":"string","nodeType":"ElementaryTypeName","src":"8053:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8652,"mutability":"mutable","name":"data","nameLocation":"8091:4:12","nodeType":"VariableDeclaration","scope":8655,"src":"8075:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8651,"name":"string","nodeType":"ElementaryTypeName","src":"8075:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8052:44:12"},"returnParameters":{"id":8654,"nodeType":"ParameterList","parameters":[],"src":"8105:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8662,"nodeType":"FunctionDefinition","src":"8279:77:12","nodes":[],"functionSelector":"1f21fc80","implemented":false,"kind":"function","modifiers":[],"name":"writeFileBinary","nameLocation":"8288:15:12","parameters":{"id":8660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8657,"mutability":"mutable","name":"path","nameLocation":"8320:4:12","nodeType":"VariableDeclaration","scope":8662,"src":"8304:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8656,"name":"string","nodeType":"ElementaryTypeName","src":"8304:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8659,"mutability":"mutable","name":"data","nameLocation":"8341:4:12","nodeType":"VariableDeclaration","scope":8662,"src":"8326:19:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8658,"name":"bytes","nodeType":"ElementaryTypeName","src":"8326:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8303:43:12"},"returnParameters":{"id":8661,"nodeType":"ParameterList","parameters":[],"src":"8355:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8669,"nodeType":"FunctionDefinition","src":"8427:72:12","nodes":[],"functionSelector":"619d897f","implemented":false,"kind":"function","modifiers":[],"name":"writeLine","nameLocation":"8436:9:12","parameters":{"id":8667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8664,"mutability":"mutable","name":"path","nameLocation":"8462:4:12","nodeType":"VariableDeclaration","scope":8669,"src":"8446:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8663,"name":"string","nodeType":"ElementaryTypeName","src":"8446:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8666,"mutability":"mutable","name":"data","nameLocation":"8484:4:12","nodeType":"VariableDeclaration","scope":8669,"src":"8468:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8665,"name":"string","nodeType":"ElementaryTypeName","src":"8468:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8445:44:12"},"returnParameters":{"id":8668,"nodeType":"ParameterList","parameters":[],"src":"8498:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8674,"nodeType":"FunctionDefinition","src":"8611:50:12","nodes":[],"functionSelector":"48c3241f","implemented":false,"kind":"function","modifiers":[],"name":"closeFile","nameLocation":"8620:9:12","parameters":{"id":8672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8671,"mutability":"mutable","name":"path","nameLocation":"8646:4:12","nodeType":"VariableDeclaration","scope":8674,"src":"8630:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8670,"name":"string","nodeType":"ElementaryTypeName","src":"8630:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8629:22:12"},"returnParameters":{"id":8673,"nodeType":"ParameterList","parameters":[],"src":"8660:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8679,"nodeType":"FunctionDefinition","src":"8909:51:12","nodes":[],"functionSelector":"f1afe04d","implemented":false,"kind":"function","modifiers":[],"name":"removeFile","nameLocation":"8918:10:12","parameters":{"id":8677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8676,"mutability":"mutable","name":"path","nameLocation":"8945:4:12","nodeType":"VariableDeclaration","scope":8679,"src":"8929:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8675,"name":"string","nodeType":"ElementaryTypeName","src":"8929:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8928:22:12"},"returnParameters":{"id":8678,"nodeType":"ParameterList","parameters":[],"src":"8959:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8686,"nodeType":"FunctionDefinition","src":"8999:88:12","nodes":[],"functionSelector":"56ca623e","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"9008:8:12","parameters":{"id":8682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8681,"mutability":"mutable","name":"value","nameLocation":"9025:5:12","nodeType":"VariableDeclaration","scope":8686,"src":"9017:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8680,"name":"address","nodeType":"ElementaryTypeName","src":"9017:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9016:15:12"},"returnParameters":{"id":8685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8684,"mutability":"mutable","name":"stringifiedValue","nameLocation":"9069:16:12","nodeType":"VariableDeclaration","scope":8686,"src":"9055:30:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8683,"name":"string","nodeType":"ElementaryTypeName","src":"9055:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9054:32:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8693,"nodeType":"FunctionDefinition","src":"9092:95:12","nodes":[],"functionSelector":"71aad10d","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"9101:8:12","parameters":{"id":8689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8688,"mutability":"mutable","name":"value","nameLocation":"9125:5:12","nodeType":"VariableDeclaration","scope":8693,"src":"9110:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8687,"name":"bytes","nodeType":"ElementaryTypeName","src":"9110:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9109:22:12"},"returnParameters":{"id":8692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8691,"mutability":"mutable","name":"stringifiedValue","nameLocation":"9169:16:12","nodeType":"VariableDeclaration","scope":8693,"src":"9155:30:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8690,"name":"string","nodeType":"ElementaryTypeName","src":"9155:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9154:32:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8700,"nodeType":"FunctionDefinition","src":"9192:88:12","nodes":[],"functionSelector":"b11a19e8","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"9201:8:12","parameters":{"id":8696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8695,"mutability":"mutable","name":"value","nameLocation":"9218:5:12","nodeType":"VariableDeclaration","scope":8700,"src":"9210:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8694,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9210:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9209:15:12"},"returnParameters":{"id":8699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8698,"mutability":"mutable","name":"stringifiedValue","nameLocation":"9262:16:12","nodeType":"VariableDeclaration","scope":8700,"src":"9248:30:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8697,"name":"string","nodeType":"ElementaryTypeName","src":"9248:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9247:32:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8707,"nodeType":"FunctionDefinition","src":"9285:85:12","nodes":[],"functionSelector":"71dce7da","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"9294:8:12","parameters":{"id":8703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8702,"mutability":"mutable","name":"value","nameLocation":"9308:5:12","nodeType":"VariableDeclaration","scope":8707,"src":"9303:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8701,"name":"bool","nodeType":"ElementaryTypeName","src":"9303:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9302:12:12"},"returnParameters":{"id":8706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8705,"mutability":"mutable","name":"stringifiedValue","nameLocation":"9352:16:12","nodeType":"VariableDeclaration","scope":8707,"src":"9338:30:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8704,"name":"string","nodeType":"ElementaryTypeName","src":"9338:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9337:32:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8714,"nodeType":"FunctionDefinition","src":"9375:88:12","nodes":[],"functionSelector":"6900a3ae","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"9384:8:12","parameters":{"id":8710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8709,"mutability":"mutable","name":"value","nameLocation":"9401:5:12","nodeType":"VariableDeclaration","scope":8714,"src":"9393:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8708,"name":"uint256","nodeType":"ElementaryTypeName","src":"9393:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9392:15:12"},"returnParameters":{"id":8713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8712,"mutability":"mutable","name":"stringifiedValue","nameLocation":"9445:16:12","nodeType":"VariableDeclaration","scope":8714,"src":"9431:30:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8711,"name":"string","nodeType":"ElementaryTypeName","src":"9431:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9430:32:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8721,"nodeType":"FunctionDefinition","src":"9468:87:12","nodes":[],"functionSelector":"a322c40e","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"9477:8:12","parameters":{"id":8717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8716,"mutability":"mutable","name":"value","nameLocation":"9493:5:12","nodeType":"VariableDeclaration","scope":8721,"src":"9486:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8715,"name":"int256","nodeType":"ElementaryTypeName","src":"9486:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9485:14:12"},"returnParameters":{"id":8720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8719,"mutability":"mutable","name":"stringifiedValue","nameLocation":"9537:16:12","nodeType":"VariableDeclaration","scope":8721,"src":"9523:30:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8718,"name":"string","nodeType":"ElementaryTypeName","src":"9523:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9522:32:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8728,"nodeType":"FunctionDefinition","src":"9596:103:12","nodes":[],"functionSelector":"8f5d232d","implemented":false,"kind":"function","modifiers":[],"name":"parseBytes","nameLocation":"9605:10:12","parameters":{"id":8724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8723,"mutability":"mutable","name":"stringifiedValue","nameLocation":"9632:16:12","nodeType":"VariableDeclaration","scope":8728,"src":"9616:32:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8722,"name":"string","nodeType":"ElementaryTypeName","src":"9616:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9615:34:12"},"returnParameters":{"id":8727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8726,"mutability":"mutable","name":"parsedValue","nameLocation":"9686:11:12","nodeType":"VariableDeclaration","scope":8728,"src":"9673:24:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8725,"name":"bytes","nodeType":"ElementaryTypeName","src":"9673:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9672:26:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8735,"nodeType":"FunctionDefinition","src":"9704:100:12","nodes":[],"functionSelector":"c6ce059d","implemented":false,"kind":"function","modifiers":[],"name":"parseAddress","nameLocation":"9713:12:12","parameters":{"id":8731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8730,"mutability":"mutable","name":"stringifiedValue","nameLocation":"9742:16:12","nodeType":"VariableDeclaration","scope":8735,"src":"9726:32:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8729,"name":"string","nodeType":"ElementaryTypeName","src":"9726:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9725:34:12"},"returnParameters":{"id":8734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8733,"mutability":"mutable","name":"parsedValue","nameLocation":"9791:11:12","nodeType":"VariableDeclaration","scope":8735,"src":"9783:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8732,"name":"address","nodeType":"ElementaryTypeName","src":"9783:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9782:21:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8742,"nodeType":"FunctionDefinition","src":"9809:97:12","nodes":[],"functionSelector":"fa91454d","implemented":false,"kind":"function","modifiers":[],"name":"parseUint","nameLocation":"9818:9:12","parameters":{"id":8738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8737,"mutability":"mutable","name":"stringifiedValue","nameLocation":"9844:16:12","nodeType":"VariableDeclaration","scope":8742,"src":"9828:32:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8736,"name":"string","nodeType":"ElementaryTypeName","src":"9828:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9827:34:12"},"returnParameters":{"id":8741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8740,"mutability":"mutable","name":"parsedValue","nameLocation":"9893:11:12","nodeType":"VariableDeclaration","scope":8742,"src":"9885:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8739,"name":"uint256","nodeType":"ElementaryTypeName","src":"9885:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9884:21:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8749,"nodeType":"FunctionDefinition","src":"9911:95:12","nodes":[],"functionSelector":"42346c5e","implemented":false,"kind":"function","modifiers":[],"name":"parseInt","nameLocation":"9920:8:12","parameters":{"id":8745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8744,"mutability":"mutable","name":"stringifiedValue","nameLocation":"9945:16:12","nodeType":"VariableDeclaration","scope":8749,"src":"9929:32:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8743,"name":"string","nodeType":"ElementaryTypeName","src":"9929:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9928:34:12"},"returnParameters":{"id":8748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8747,"mutability":"mutable","name":"parsedValue","nameLocation":"9993:11:12","nodeType":"VariableDeclaration","scope":8749,"src":"9986:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8746,"name":"int256","nodeType":"ElementaryTypeName","src":"9986:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9985:20:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8756,"nodeType":"FunctionDefinition","src":"10011:100:12","nodes":[],"functionSelector":"087e6e81","implemented":false,"kind":"function","modifiers":[],"name":"parseBytes32","nameLocation":"10020:12:12","parameters":{"id":8752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8751,"mutability":"mutable","name":"stringifiedValue","nameLocation":"10049:16:12","nodeType":"VariableDeclaration","scope":8756,"src":"10033:32:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8750,"name":"string","nodeType":"ElementaryTypeName","src":"10033:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10032:34:12"},"returnParameters":{"id":8755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8754,"mutability":"mutable","name":"parsedValue","nameLocation":"10098:11:12","nodeType":"VariableDeclaration","scope":8756,"src":"10090:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8753,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10090:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10089:21:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8763,"nodeType":"FunctionDefinition","src":"10116:94:12","nodes":[],"functionSelector":"974ef924","implemented":false,"kind":"function","modifiers":[],"name":"parseBool","nameLocation":"10125:9:12","parameters":{"id":8759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8758,"mutability":"mutable","name":"stringifiedValue","nameLocation":"10151:16:12","nodeType":"VariableDeclaration","scope":8763,"src":"10135:32:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8757,"name":"string","nodeType":"ElementaryTypeName","src":"10135:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10134:34:12"},"returnParameters":{"id":8762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8761,"mutability":"mutable","name":"parsedValue","nameLocation":"10197:11:12","nodeType":"VariableDeclaration","scope":8763,"src":"10192:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8760,"name":"bool","nodeType":"ElementaryTypeName","src":"10192:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10191:18:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8766,"nodeType":"FunctionDefinition","src":"10254:31:12","nodes":[],"functionSelector":"41af2f52","implemented":false,"kind":"function","modifiers":[],"name":"recordLogs","nameLocation":"10263:10:12","parameters":{"id":8764,"nodeType":"ParameterList","parameters":[],"src":"10273:2:12"},"returnParameters":{"id":8765,"nodeType":"ParameterList","parameters":[],"src":"10284:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8773,"nodeType":"FunctionDefinition","src":"10324:64:12","nodes":[],"functionSelector":"191553a4","implemented":false,"kind":"function","modifiers":[],"name":"getRecordedLogs","nameLocation":"10333:15:12","parameters":{"id":8767,"nodeType":"ParameterList","parameters":[],"src":"10348:2:12"},"returnParameters":{"id":8772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8771,"mutability":"mutable","name":"logs","nameLocation":"10382:4:12","nodeType":"VariableDeclaration","scope":8773,"src":"10369:17:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$8206_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log[]"},"typeName":{"baseType":{"id":8769,"nodeType":"UserDefinedTypeName","pathNode":{"id":8768,"name":"Log","nameLocations":["10369:3:12"],"nodeType":"IdentifierPath","referencedDeclaration":8206,"src":"10369:3:12"},"referencedDeclaration":8206,"src":"10369:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_Log_$8206_storage_ptr","typeString":"struct VmSafe.Log"}},"id":8770,"nodeType":"ArrayTypeName","src":"10369:5:12","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$8206_storage_$dyn_storage_ptr","typeString":"struct VmSafe.Log[]"}},"visibility":"internal"}],"src":"10368:19:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8782,"nodeType":"FunctionDefinition","src":"10523:102:12","nodes":[],"functionSelector":"6229498b","implemented":false,"kind":"function","modifiers":[],"name":"deriveKey","nameLocation":"10532:9:12","parameters":{"id":8778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8775,"mutability":"mutable","name":"mnemonic","nameLocation":"10558:8:12","nodeType":"VariableDeclaration","scope":8782,"src":"10542:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8774,"name":"string","nodeType":"ElementaryTypeName","src":"10542:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8777,"mutability":"mutable","name":"index","nameLocation":"10575:5:12","nodeType":"VariableDeclaration","scope":8782,"src":"10568:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":8776,"name":"uint32","nodeType":"ElementaryTypeName","src":"10568:6:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"10541:40:12"},"returnParameters":{"id":8781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8780,"mutability":"mutable","name":"privateKey","nameLocation":"10613:10:12","nodeType":"VariableDeclaration","scope":8782,"src":"10605:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8779,"name":"uint256","nodeType":"ElementaryTypeName","src":"10605:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10604:20:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8793,"nodeType":"FunctionDefinition","src":"10741:158:12","nodes":[],"functionSelector":"6bcb2c1b","implemented":false,"kind":"function","modifiers":[],"name":"deriveKey","nameLocation":"10750:9:12","parameters":{"id":8789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8784,"mutability":"mutable","name":"mnemonic","nameLocation":"10776:8:12","nodeType":"VariableDeclaration","scope":8793,"src":"10760:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8783,"name":"string","nodeType":"ElementaryTypeName","src":"10760:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8786,"mutability":"mutable","name":"derivationPath","nameLocation":"10802:14:12","nodeType":"VariableDeclaration","scope":8793,"src":"10786:30:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8785,"name":"string","nodeType":"ElementaryTypeName","src":"10786:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8788,"mutability":"mutable","name":"index","nameLocation":"10825:5:12","nodeType":"VariableDeclaration","scope":8793,"src":"10818:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":8787,"name":"uint32","nodeType":"ElementaryTypeName","src":"10818:6:12","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"10759:72:12"},"returnParameters":{"id":8792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8791,"mutability":"mutable","name":"privateKey","nameLocation":"10887:10:12","nodeType":"VariableDeclaration","scope":8793,"src":"10879:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8790,"name":"uint256","nodeType":"ElementaryTypeName","src":"10879:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10878:20:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8800,"nodeType":"FunctionDefinition","src":"10980:73:12","nodes":[],"functionSelector":"22100064","implemented":false,"kind":"function","modifiers":[],"name":"rememberKey","nameLocation":"10989:11:12","parameters":{"id":8796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8795,"mutability":"mutable","name":"privateKey","nameLocation":"11009:10:12","nodeType":"VariableDeclaration","scope":8800,"src":"11001:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8794,"name":"uint256","nodeType":"ElementaryTypeName","src":"11001:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11000:20:12"},"returnParameters":{"id":8799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8798,"mutability":"mutable","name":"addr","nameLocation":"11047:4:12","nodeType":"VariableDeclaration","scope":8800,"src":"11039:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8797,"name":"address","nodeType":"ElementaryTypeName","src":"11039:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11038:14:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8809,"nodeType":"FunctionDefinition","src":"12086:114:12","nodes":[],"functionSelector":"85940ef1","implemented":false,"kind":"function","modifiers":[],"name":"parseJson","nameLocation":"12095:9:12","parameters":{"id":8805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8802,"mutability":"mutable","name":"json","nameLocation":"12121:4:12","nodeType":"VariableDeclaration","scope":8809,"src":"12105:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8801,"name":"string","nodeType":"ElementaryTypeName","src":"12105:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8804,"mutability":"mutable","name":"key","nameLocation":"12143:3:12","nodeType":"VariableDeclaration","scope":8809,"src":"12127:19:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8803,"name":"string","nodeType":"ElementaryTypeName","src":"12127:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12104:43:12"},"returnParameters":{"id":8808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8807,"mutability":"mutable","name":"abiEncodedData","nameLocation":"12184:14:12","nodeType":"VariableDeclaration","scope":8809,"src":"12171:27:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8806,"name":"bytes","nodeType":"ElementaryTypeName","src":"12171:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12170:29:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8816,"nodeType":"FunctionDefinition","src":"12205:93:12","nodes":[],"functionSelector":"6a82600a","implemented":false,"kind":"function","modifiers":[],"name":"parseJson","nameLocation":"12214:9:12","parameters":{"id":8812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8811,"mutability":"mutable","name":"json","nameLocation":"12240:4:12","nodeType":"VariableDeclaration","scope":8816,"src":"12224:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8810,"name":"string","nodeType":"ElementaryTypeName","src":"12224:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12223:22:12"},"returnParameters":{"id":8815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8814,"mutability":"mutable","name":"abiEncodedData","nameLocation":"12282:14:12","nodeType":"VariableDeclaration","scope":8816,"src":"12269:27:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8813,"name":"bytes","nodeType":"ElementaryTypeName","src":"12269:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12268:29:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":8827,"nodeType":"FunctionDefinition","src":"12494:142:12","nodes":[],"functionSelector":"ac22e971","implemented":false,"kind":"function","modifiers":[],"name":"serializeBool","nameLocation":"12503:13:12","parameters":{"id":8823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8818,"mutability":"mutable","name":"objectKey","nameLocation":"12533:9:12","nodeType":"VariableDeclaration","scope":8827,"src":"12517:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8817,"name":"string","nodeType":"ElementaryTypeName","src":"12517:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8820,"mutability":"mutable","name":"valueKey","nameLocation":"12560:8:12","nodeType":"VariableDeclaration","scope":8827,"src":"12544:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8819,"name":"string","nodeType":"ElementaryTypeName","src":"12544:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8822,"mutability":"mutable","name":"value","nameLocation":"12575:5:12","nodeType":"VariableDeclaration","scope":8827,"src":"12570:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8821,"name":"bool","nodeType":"ElementaryTypeName","src":"12570:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12516:65:12"},"returnParameters":{"id":8826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8825,"mutability":"mutable","name":"json","nameLocation":"12630:4:12","nodeType":"VariableDeclaration","scope":8827,"src":"12616:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8824,"name":"string","nodeType":"ElementaryTypeName","src":"12616:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12615:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8838,"nodeType":"FunctionDefinition","src":"12641:145:12","nodes":[],"functionSelector":"129e9002","implemented":false,"kind":"function","modifiers":[],"name":"serializeUint","nameLocation":"12650:13:12","parameters":{"id":8834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8829,"mutability":"mutable","name":"objectKey","nameLocation":"12680:9:12","nodeType":"VariableDeclaration","scope":8838,"src":"12664:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8828,"name":"string","nodeType":"ElementaryTypeName","src":"12664:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8831,"mutability":"mutable","name":"valueKey","nameLocation":"12707:8:12","nodeType":"VariableDeclaration","scope":8838,"src":"12691:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8830,"name":"string","nodeType":"ElementaryTypeName","src":"12691:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8833,"mutability":"mutable","name":"value","nameLocation":"12725:5:12","nodeType":"VariableDeclaration","scope":8838,"src":"12717:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8832,"name":"uint256","nodeType":"ElementaryTypeName","src":"12717:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12663:68:12"},"returnParameters":{"id":8837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8836,"mutability":"mutable","name":"json","nameLocation":"12780:4:12","nodeType":"VariableDeclaration","scope":8838,"src":"12766:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8835,"name":"string","nodeType":"ElementaryTypeName","src":"12766:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12765:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8849,"nodeType":"FunctionDefinition","src":"12791:143:12","nodes":[],"functionSelector":"3f33db60","implemented":false,"kind":"function","modifiers":[],"name":"serializeInt","nameLocation":"12800:12:12","parameters":{"id":8845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8840,"mutability":"mutable","name":"objectKey","nameLocation":"12829:9:12","nodeType":"VariableDeclaration","scope":8849,"src":"12813:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8839,"name":"string","nodeType":"ElementaryTypeName","src":"12813:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8842,"mutability":"mutable","name":"valueKey","nameLocation":"12856:8:12","nodeType":"VariableDeclaration","scope":8849,"src":"12840:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8841,"name":"string","nodeType":"ElementaryTypeName","src":"12840:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8844,"mutability":"mutable","name":"value","nameLocation":"12873:5:12","nodeType":"VariableDeclaration","scope":8849,"src":"12866:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8843,"name":"int256","nodeType":"ElementaryTypeName","src":"12866:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"12812:67:12"},"returnParameters":{"id":8848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8847,"mutability":"mutable","name":"json","nameLocation":"12928:4:12","nodeType":"VariableDeclaration","scope":8849,"src":"12914:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8846,"name":"string","nodeType":"ElementaryTypeName","src":"12914:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12913:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8860,"nodeType":"FunctionDefinition","src":"12939:148:12","nodes":[],"functionSelector":"972c6062","implemented":false,"kind":"function","modifiers":[],"name":"serializeAddress","nameLocation":"12948:16:12","parameters":{"id":8856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8851,"mutability":"mutable","name":"objectKey","nameLocation":"12981:9:12","nodeType":"VariableDeclaration","scope":8860,"src":"12965:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8850,"name":"string","nodeType":"ElementaryTypeName","src":"12965:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8853,"mutability":"mutable","name":"valueKey","nameLocation":"13008:8:12","nodeType":"VariableDeclaration","scope":8860,"src":"12992:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8852,"name":"string","nodeType":"ElementaryTypeName","src":"12992:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8855,"mutability":"mutable","name":"value","nameLocation":"13026:5:12","nodeType":"VariableDeclaration","scope":8860,"src":"13018:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8854,"name":"address","nodeType":"ElementaryTypeName","src":"13018:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12964:68:12"},"returnParameters":{"id":8859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8858,"mutability":"mutable","name":"json","nameLocation":"13081:4:12","nodeType":"VariableDeclaration","scope":8860,"src":"13067:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8857,"name":"string","nodeType":"ElementaryTypeName","src":"13067:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13066:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8871,"nodeType":"FunctionDefinition","src":"13092:148:12","nodes":[],"functionSelector":"2d812b44","implemented":false,"kind":"function","modifiers":[],"name":"serializeBytes32","nameLocation":"13101:16:12","parameters":{"id":8867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8862,"mutability":"mutable","name":"objectKey","nameLocation":"13134:9:12","nodeType":"VariableDeclaration","scope":8871,"src":"13118:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8861,"name":"string","nodeType":"ElementaryTypeName","src":"13118:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8864,"mutability":"mutable","name":"valueKey","nameLocation":"13161:8:12","nodeType":"VariableDeclaration","scope":8871,"src":"13145:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8863,"name":"string","nodeType":"ElementaryTypeName","src":"13145:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8866,"mutability":"mutable","name":"value","nameLocation":"13179:5:12","nodeType":"VariableDeclaration","scope":8871,"src":"13171:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8865,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13171:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13117:68:12"},"returnParameters":{"id":8870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8869,"mutability":"mutable","name":"json","nameLocation":"13234:4:12","nodeType":"VariableDeclaration","scope":8871,"src":"13220:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8868,"name":"string","nodeType":"ElementaryTypeName","src":"13220:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13219:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8882,"nodeType":"FunctionDefinition","src":"13245:155:12","nodes":[],"functionSelector":"88da6d35","implemented":false,"kind":"function","modifiers":[],"name":"serializeString","nameLocation":"13254:15:12","parameters":{"id":8878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8873,"mutability":"mutable","name":"objectKey","nameLocation":"13286:9:12","nodeType":"VariableDeclaration","scope":8882,"src":"13270:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8872,"name":"string","nodeType":"ElementaryTypeName","src":"13270:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8875,"mutability":"mutable","name":"valueKey","nameLocation":"13313:8:12","nodeType":"VariableDeclaration","scope":8882,"src":"13297:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8874,"name":"string","nodeType":"ElementaryTypeName","src":"13297:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8877,"mutability":"mutable","name":"value","nameLocation":"13339:5:12","nodeType":"VariableDeclaration","scope":8882,"src":"13323:21:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8876,"name":"string","nodeType":"ElementaryTypeName","src":"13323:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13269:76:12"},"returnParameters":{"id":8881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8880,"mutability":"mutable","name":"json","nameLocation":"13394:4:12","nodeType":"VariableDeclaration","scope":8882,"src":"13380:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8879,"name":"string","nodeType":"ElementaryTypeName","src":"13380:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13379:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8893,"nodeType":"FunctionDefinition","src":"13405:153:12","nodes":[],"functionSelector":"f21d52c7","implemented":false,"kind":"function","modifiers":[],"name":"serializeBytes","nameLocation":"13414:14:12","parameters":{"id":8889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8884,"mutability":"mutable","name":"objectKey","nameLocation":"13445:9:12","nodeType":"VariableDeclaration","scope":8893,"src":"13429:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8883,"name":"string","nodeType":"ElementaryTypeName","src":"13429:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8886,"mutability":"mutable","name":"valueKey","nameLocation":"13472:8:12","nodeType":"VariableDeclaration","scope":8893,"src":"13456:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8885,"name":"string","nodeType":"ElementaryTypeName","src":"13456:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8888,"mutability":"mutable","name":"value","nameLocation":"13497:5:12","nodeType":"VariableDeclaration","scope":8893,"src":"13482:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8887,"name":"bytes","nodeType":"ElementaryTypeName","src":"13482:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13428:75:12"},"returnParameters":{"id":8892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8891,"mutability":"mutable","name":"json","nameLocation":"13552:4:12","nodeType":"VariableDeclaration","scope":8893,"src":"13538:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8890,"name":"string","nodeType":"ElementaryTypeName","src":"13538:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13537:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8905,"nodeType":"FunctionDefinition","src":"13564:154:12","nodes":[],"functionSelector":"92925aa1","implemented":false,"kind":"function","modifiers":[],"name":"serializeBool","nameLocation":"13573:13:12","parameters":{"id":8901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8895,"mutability":"mutable","name":"objectKey","nameLocation":"13603:9:12","nodeType":"VariableDeclaration","scope":8905,"src":"13587:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8894,"name":"string","nodeType":"ElementaryTypeName","src":"13587:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8897,"mutability":"mutable","name":"valueKey","nameLocation":"13630:8:12","nodeType":"VariableDeclaration","scope":8905,"src":"13614:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8896,"name":"string","nodeType":"ElementaryTypeName","src":"13614:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8900,"mutability":"mutable","name":"values","nameLocation":"13656:6:12","nodeType":"VariableDeclaration","scope":8905,"src":"13640:22:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":8898,"name":"bool","nodeType":"ElementaryTypeName","src":"13640:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8899,"nodeType":"ArrayTypeName","src":"13640:6:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"13586:77:12"},"returnParameters":{"id":8904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8903,"mutability":"mutable","name":"json","nameLocation":"13712:4:12","nodeType":"VariableDeclaration","scope":8905,"src":"13698:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8902,"name":"string","nodeType":"ElementaryTypeName","src":"13698:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13697:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8917,"nodeType":"FunctionDefinition","src":"13723:157:12","nodes":[],"functionSelector":"fee9a469","implemented":false,"kind":"function","modifiers":[],"name":"serializeUint","nameLocation":"13732:13:12","parameters":{"id":8913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8907,"mutability":"mutable","name":"objectKey","nameLocation":"13762:9:12","nodeType":"VariableDeclaration","scope":8917,"src":"13746:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8906,"name":"string","nodeType":"ElementaryTypeName","src":"13746:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8909,"mutability":"mutable","name":"valueKey","nameLocation":"13789:8:12","nodeType":"VariableDeclaration","scope":8917,"src":"13773:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8908,"name":"string","nodeType":"ElementaryTypeName","src":"13773:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8912,"mutability":"mutable","name":"values","nameLocation":"13818:6:12","nodeType":"VariableDeclaration","scope":8917,"src":"13799:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8910,"name":"uint256","nodeType":"ElementaryTypeName","src":"13799:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8911,"nodeType":"ArrayTypeName","src":"13799:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"13745:80:12"},"returnParameters":{"id":8916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8915,"mutability":"mutable","name":"json","nameLocation":"13874:4:12","nodeType":"VariableDeclaration","scope":8917,"src":"13860:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8914,"name":"string","nodeType":"ElementaryTypeName","src":"13860:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13859:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8929,"nodeType":"FunctionDefinition","src":"13885:155:12","nodes":[],"functionSelector":"7676e127","implemented":false,"kind":"function","modifiers":[],"name":"serializeInt","nameLocation":"13894:12:12","parameters":{"id":8925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8919,"mutability":"mutable","name":"objectKey","nameLocation":"13923:9:12","nodeType":"VariableDeclaration","scope":8929,"src":"13907:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8918,"name":"string","nodeType":"ElementaryTypeName","src":"13907:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8921,"mutability":"mutable","name":"valueKey","nameLocation":"13950:8:12","nodeType":"VariableDeclaration","scope":8929,"src":"13934:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8920,"name":"string","nodeType":"ElementaryTypeName","src":"13934:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8924,"mutability":"mutable","name":"values","nameLocation":"13978:6:12","nodeType":"VariableDeclaration","scope":8929,"src":"13960:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":8922,"name":"int256","nodeType":"ElementaryTypeName","src":"13960:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":8923,"nodeType":"ArrayTypeName","src":"13960:8:12","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"13906:79:12"},"returnParameters":{"id":8928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8927,"mutability":"mutable","name":"json","nameLocation":"14034:4:12","nodeType":"VariableDeclaration","scope":8929,"src":"14020:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8926,"name":"string","nodeType":"ElementaryTypeName","src":"14020:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14019:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8941,"nodeType":"FunctionDefinition","src":"14045:160:12","nodes":[],"functionSelector":"1e356e1a","implemented":false,"kind":"function","modifiers":[],"name":"serializeAddress","nameLocation":"14054:16:12","parameters":{"id":8937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8931,"mutability":"mutable","name":"objectKey","nameLocation":"14087:9:12","nodeType":"VariableDeclaration","scope":8941,"src":"14071:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8930,"name":"string","nodeType":"ElementaryTypeName","src":"14071:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8933,"mutability":"mutable","name":"valueKey","nameLocation":"14114:8:12","nodeType":"VariableDeclaration","scope":8941,"src":"14098:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8932,"name":"string","nodeType":"ElementaryTypeName","src":"14098:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8936,"mutability":"mutable","name":"values","nameLocation":"14143:6:12","nodeType":"VariableDeclaration","scope":8941,"src":"14124:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8934,"name":"address","nodeType":"ElementaryTypeName","src":"14124:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8935,"nodeType":"ArrayTypeName","src":"14124:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"14070:80:12"},"returnParameters":{"id":8940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8939,"mutability":"mutable","name":"json","nameLocation":"14199:4:12","nodeType":"VariableDeclaration","scope":8941,"src":"14185:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8938,"name":"string","nodeType":"ElementaryTypeName","src":"14185:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14184:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8953,"nodeType":"FunctionDefinition","src":"14210:160:12","nodes":[],"functionSelector":"201e43e2","implemented":false,"kind":"function","modifiers":[],"name":"serializeBytes32","nameLocation":"14219:16:12","parameters":{"id":8949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8943,"mutability":"mutable","name":"objectKey","nameLocation":"14252:9:12","nodeType":"VariableDeclaration","scope":8953,"src":"14236:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8942,"name":"string","nodeType":"ElementaryTypeName","src":"14236:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8945,"mutability":"mutable","name":"valueKey","nameLocation":"14279:8:12","nodeType":"VariableDeclaration","scope":8953,"src":"14263:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8944,"name":"string","nodeType":"ElementaryTypeName","src":"14263:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8948,"mutability":"mutable","name":"values","nameLocation":"14308:6:12","nodeType":"VariableDeclaration","scope":8953,"src":"14289:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8946,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14289:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8947,"nodeType":"ArrayTypeName","src":"14289:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"14235:80:12"},"returnParameters":{"id":8952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8951,"mutability":"mutable","name":"json","nameLocation":"14364:4:12","nodeType":"VariableDeclaration","scope":8953,"src":"14350:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8950,"name":"string","nodeType":"ElementaryTypeName","src":"14350:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14349:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8965,"nodeType":"FunctionDefinition","src":"14375:158:12","nodes":[],"functionSelector":"561cd6f3","implemented":false,"kind":"function","modifiers":[],"name":"serializeString","nameLocation":"14384:15:12","parameters":{"id":8961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8955,"mutability":"mutable","name":"objectKey","nameLocation":"14416:9:12","nodeType":"VariableDeclaration","scope":8965,"src":"14400:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8954,"name":"string","nodeType":"ElementaryTypeName","src":"14400:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8957,"mutability":"mutable","name":"valueKey","nameLocation":"14443:8:12","nodeType":"VariableDeclaration","scope":8965,"src":"14427:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8956,"name":"string","nodeType":"ElementaryTypeName","src":"14427:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8960,"mutability":"mutable","name":"values","nameLocation":"14471:6:12","nodeType":"VariableDeclaration","scope":8965,"src":"14453:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":8958,"name":"string","nodeType":"ElementaryTypeName","src":"14453:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":8959,"nodeType":"ArrayTypeName","src":"14453:8:12","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"14399:79:12"},"returnParameters":{"id":8964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8963,"mutability":"mutable","name":"json","nameLocation":"14527:4:12","nodeType":"VariableDeclaration","scope":8965,"src":"14513:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8962,"name":"string","nodeType":"ElementaryTypeName","src":"14513:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14512:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8977,"nodeType":"FunctionDefinition","src":"14538:156:12","nodes":[],"functionSelector":"9884b232","implemented":false,"kind":"function","modifiers":[],"name":"serializeBytes","nameLocation":"14547:14:12","parameters":{"id":8973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8967,"mutability":"mutable","name":"objectKey","nameLocation":"14578:9:12","nodeType":"VariableDeclaration","scope":8977,"src":"14562:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8966,"name":"string","nodeType":"ElementaryTypeName","src":"14562:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8969,"mutability":"mutable","name":"valueKey","nameLocation":"14605:8:12","nodeType":"VariableDeclaration","scope":8977,"src":"14589:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8968,"name":"string","nodeType":"ElementaryTypeName","src":"14589:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8972,"mutability":"mutable","name":"values","nameLocation":"14632:6:12","nodeType":"VariableDeclaration","scope":8977,"src":"14615:23:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":8970,"name":"bytes","nodeType":"ElementaryTypeName","src":"14615:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":8971,"nodeType":"ArrayTypeName","src":"14615:7:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"14561:78:12"},"returnParameters":{"id":8976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8975,"mutability":"mutable","name":"json","nameLocation":"14688:4:12","nodeType":"VariableDeclaration","scope":8977,"src":"14674:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8974,"name":"string","nodeType":"ElementaryTypeName","src":"14674:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14673:20:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8984,"nodeType":"FunctionDefinition","src":"15935:72:12","nodes":[],"functionSelector":"e23cd19f","implemented":false,"kind":"function","modifiers":[],"name":"writeJson","nameLocation":"15944:9:12","parameters":{"id":8982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8979,"mutability":"mutable","name":"json","nameLocation":"15970:4:12","nodeType":"VariableDeclaration","scope":8984,"src":"15954:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8978,"name":"string","nodeType":"ElementaryTypeName","src":"15954:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8981,"mutability":"mutable","name":"path","nameLocation":"15992:4:12","nodeType":"VariableDeclaration","scope":8984,"src":"15976:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8980,"name":"string","nodeType":"ElementaryTypeName","src":"15976:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15953:44:12"},"returnParameters":{"id":8983,"nodeType":"ParameterList","parameters":[],"src":"16006:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":8993,"nodeType":"FunctionDefinition","src":"16228:98:12","nodes":[],"functionSelector":"35d6ad46","implemented":false,"kind":"function","modifiers":[],"name":"writeJson","nameLocation":"16237:9:12","parameters":{"id":8991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8986,"mutability":"mutable","name":"json","nameLocation":"16263:4:12","nodeType":"VariableDeclaration","scope":8993,"src":"16247:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8985,"name":"string","nodeType":"ElementaryTypeName","src":"16247:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8988,"mutability":"mutable","name":"path","nameLocation":"16285:4:12","nodeType":"VariableDeclaration","scope":8993,"src":"16269:20:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8987,"name":"string","nodeType":"ElementaryTypeName","src":"16269:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8990,"mutability":"mutable","name":"valueKey","nameLocation":"16307:8:12","nodeType":"VariableDeclaration","scope":8993,"src":"16291:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8989,"name":"string","nodeType":"ElementaryTypeName","src":"16291:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16246:70:12"},"returnParameters":{"id":8992,"nodeType":"ParameterList","parameters":[],"src":"16325:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9000,"nodeType":"FunctionDefinition","src":"16378:85:12","nodes":[],"functionSelector":"975a6ce9","implemented":false,"kind":"function","modifiers":[],"name":"rpcUrl","nameLocation":"16387:6:12","parameters":{"id":8996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8995,"mutability":"mutable","name":"rpcAlias","nameLocation":"16410:8:12","nodeType":"VariableDeclaration","scope":9000,"src":"16394:24:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8994,"name":"string","nodeType":"ElementaryTypeName","src":"16394:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16393:26:12"},"returnParameters":{"id":8999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8998,"mutability":"mutable","name":"json","nameLocation":"16457:4:12","nodeType":"VariableDeclaration","scope":9000,"src":"16443:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8997,"name":"string","nodeType":"ElementaryTypeName","src":"16443:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16442:20:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9008,"nodeType":"FunctionDefinition","src":"16531:67:12","nodes":[],"functionSelector":"a85a8418","implemented":false,"kind":"function","modifiers":[],"name":"rpcUrls","nameLocation":"16540:7:12","parameters":{"id":9001,"nodeType":"ParameterList","parameters":[],"src":"16547:2:12"},"returnParameters":{"id":9007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9006,"mutability":"mutable","name":"urls","nameLocation":"16592:4:12","nodeType":"VariableDeclaration","scope":9008,"src":"16573:23:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr","typeString":"string[2][]"},"typeName":{"baseType":{"baseType":{"id":9002,"name":"string","nodeType":"ElementaryTypeName","src":"16573:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":9004,"length":{"hexValue":"32","id":9003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16580:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"ArrayTypeName","src":"16573:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$2_storage_ptr","typeString":"string[2]"}},"id":9005,"nodeType":"ArrayTypeName","src":"16573:11:12","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr","typeString":"string[2][]"}},"visibility":"internal"}],"src":"16572:25:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9015,"nodeType":"FunctionDefinition","src":"16661:67:12","nodes":[],"functionSelector":"9d2ad72a","implemented":false,"kind":"function","modifiers":[],"name":"rpcUrlStructs","nameLocation":"16670:13:12","parameters":{"id":9009,"nodeType":"ParameterList","parameters":[],"src":"16683:2:12"},"returnParameters":{"id":9014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9013,"mutability":"mutable","name":"urls","nameLocation":"16722:4:12","nodeType":"VariableDeclaration","scope":9015,"src":"16709:17:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Rpc_$8211_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Rpc[]"},"typeName":{"baseType":{"id":9011,"nodeType":"UserDefinedTypeName","pathNode":{"id":9010,"name":"Rpc","nameLocations":["16709:3:12"],"nodeType":"IdentifierPath","referencedDeclaration":8211,"src":"16709:3:12"},"referencedDeclaration":8211,"src":"16709:3:12","typeDescriptions":{"typeIdentifier":"t_struct$_Rpc_$8211_storage_ptr","typeString":"struct VmSafe.Rpc"}},"id":9012,"nodeType":"ArrayTypeName","src":"16709:5:12","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Rpc_$8211_storage_$dyn_storage_ptr","typeString":"struct VmSafe.Rpc[]"}},"visibility":"internal"}],"src":"16708:19:12"},"scope":9027,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9020,"nodeType":"FunctionDefinition","src":"16821:46:12","nodes":[],"functionSelector":"4c63e562","implemented":false,"kind":"function","modifiers":[],"name":"assume","nameLocation":"16830:6:12","parameters":{"id":9018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9017,"mutability":"mutable","name":"condition","nameLocation":"16842:9:12","nodeType":"VariableDeclaration","scope":9020,"src":"16837:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9016,"name":"bool","nodeType":"ElementaryTypeName","src":"16837:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16836:16:12"},"returnParameters":{"id":9019,"nodeType":"ParameterList","parameters":[],"src":"16866:0:12"},"scope":9027,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":9023,"nodeType":"FunctionDefinition","src":"16956:37:12","nodes":[],"functionSelector":"d1a5b36f","implemented":false,"kind":"function","modifiers":[],"name":"pauseGasMetering","nameLocation":"16965:16:12","parameters":{"id":9021,"nodeType":"ParameterList","parameters":[],"src":"16981:2:12"},"returnParameters":{"id":9022,"nodeType":"ParameterList","parameters":[],"src":"16992:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9026,"nodeType":"FunctionDefinition","src":"17081:38:12","nodes":[],"functionSelector":"2bcd50e0","implemented":false,"kind":"function","modifiers":[],"name":"resumeGasMetering","nameLocation":"17090:17:12","parameters":{"id":9024,"nodeType":"ParameterList","parameters":[],"src":"17107:2:12"},"returnParameters":{"id":9025,"nodeType":"ParameterList","parameters":[],"src":"17118:0:12"},"scope":9027,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"VmSafe","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[9027],"name":"VmSafe","nameLocation":"581:6:12","scope":9353,"usedErrors":[],"usedEvents":[]},{"id":9352,"nodeType":"ContractDefinition","src":"17123:7867:12","nodes":[{"id":9034,"nodeType":"FunctionDefinition","src":"17180:45:12","nodes":[],"functionSelector":"e5d6bf02","implemented":false,"kind":"function","modifiers":[],"name":"warp","nameLocation":"17189:4:12","parameters":{"id":9032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9031,"mutability":"mutable","name":"newTimestamp","nameLocation":"17202:12:12","nodeType":"VariableDeclaration","scope":9034,"src":"17194:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9030,"name":"uint256","nodeType":"ElementaryTypeName","src":"17194:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17193:22:12"},"returnParameters":{"id":9033,"nodeType":"ParameterList","parameters":[],"src":"17224:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9039,"nodeType":"FunctionDefinition","src":"17255:42:12","nodes":[],"functionSelector":"1f7b4f30","implemented":false,"kind":"function","modifiers":[],"name":"roll","nameLocation":"17264:4:12","parameters":{"id":9037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9036,"mutability":"mutable","name":"newHeight","nameLocation":"17277:9:12","nodeType":"VariableDeclaration","scope":9039,"src":"17269:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9035,"name":"uint256","nodeType":"ElementaryTypeName","src":"17269:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17268:19:12"},"returnParameters":{"id":9038,"nodeType":"ParameterList","parameters":[],"src":"17296:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9044,"nodeType":"FunctionDefinition","src":"17328:42:12","nodes":[],"functionSelector":"39b37ab0","implemented":false,"kind":"function","modifiers":[],"name":"fee","nameLocation":"17337:3:12","parameters":{"id":9042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9041,"mutability":"mutable","name":"newBasefee","nameLocation":"17349:10:12","nodeType":"VariableDeclaration","scope":9044,"src":"17341:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9040,"name":"uint256","nodeType":"ElementaryTypeName","src":"17341:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17340:20:12"},"returnParameters":{"id":9043,"nodeType":"ParameterList","parameters":[],"src":"17369:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9049,"nodeType":"FunctionDefinition","src":"17404:52:12","nodes":[],"functionSelector":"46cc92d9","implemented":false,"kind":"function","modifiers":[],"name":"difficulty","nameLocation":"17413:10:12","parameters":{"id":9047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9046,"mutability":"mutable","name":"newDifficulty","nameLocation":"17432:13:12","nodeType":"VariableDeclaration","scope":9049,"src":"17424:21:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9045,"name":"uint256","nodeType":"ElementaryTypeName","src":"17424:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17423:23:12"},"returnParameters":{"id":9048,"nodeType":"ParameterList","parameters":[],"src":"17455:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9054,"nodeType":"FunctionDefinition","src":"17487:46:12","nodes":[],"functionSelector":"4049ddd2","implemented":false,"kind":"function","modifiers":[],"name":"chainId","nameLocation":"17496:7:12","parameters":{"id":9052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9051,"mutability":"mutable","name":"newChainId","nameLocation":"17512:10:12","nodeType":"VariableDeclaration","scope":9054,"src":"17504:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9050,"name":"uint256","nodeType":"ElementaryTypeName","src":"17504:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17503:20:12"},"returnParameters":{"id":9053,"nodeType":"ParameterList","parameters":[],"src":"17532:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9063,"nodeType":"FunctionDefinition","src":"17589:69:12","nodes":[],"functionSelector":"70ca10bb","implemented":false,"kind":"function","modifiers":[],"name":"store","nameLocation":"17598:5:12","parameters":{"id":9061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9056,"mutability":"mutable","name":"target","nameLocation":"17612:6:12","nodeType":"VariableDeclaration","scope":9063,"src":"17604:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9055,"name":"address","nodeType":"ElementaryTypeName","src":"17604:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9058,"mutability":"mutable","name":"slot","nameLocation":"17628:4:12","nodeType":"VariableDeclaration","scope":9063,"src":"17620:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9057,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17620:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9060,"mutability":"mutable","name":"value","nameLocation":"17642:5:12","nodeType":"VariableDeclaration","scope":9063,"src":"17634:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9059,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17634:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17603:45:12"},"returnParameters":{"id":9062,"nodeType":"ParameterList","parameters":[],"src":"17657:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9070,"nodeType":"FunctionDefinition","src":"17753:61:12","nodes":[],"functionSelector":"f8e18b57","implemented":false,"kind":"function","modifiers":[],"name":"setNonce","nameLocation":"17762:8:12","parameters":{"id":9068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9065,"mutability":"mutable","name":"account","nameLocation":"17779:7:12","nodeType":"VariableDeclaration","scope":9070,"src":"17771:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9064,"name":"address","nodeType":"ElementaryTypeName","src":"17771:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9067,"mutability":"mutable","name":"newNonce","nameLocation":"17795:8:12","nodeType":"VariableDeclaration","scope":9070,"src":"17788:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9066,"name":"uint64","nodeType":"ElementaryTypeName","src":"17788:6:12","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"17770:34:12"},"returnParameters":{"id":9069,"nodeType":"ParameterList","parameters":[],"src":"17813:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9075,"nodeType":"FunctionDefinition","src":"17884:43:12","nodes":[],"functionSelector":"ca669fa7","implemented":false,"kind":"function","modifiers":[],"name":"prank","nameLocation":"17893:5:12","parameters":{"id":9073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9072,"mutability":"mutable","name":"msgSender","nameLocation":"17907:9:12","nodeType":"VariableDeclaration","scope":9075,"src":"17899:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9071,"name":"address","nodeType":"ElementaryTypeName","src":"17899:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17898:19:12"},"returnParameters":{"id":9074,"nodeType":"ParameterList","parameters":[],"src":"17926:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9080,"nodeType":"FunctionDefinition","src":"18029:48:12","nodes":[],"functionSelector":"06447d56","implemented":false,"kind":"function","modifiers":[],"name":"startPrank","nameLocation":"18038:10:12","parameters":{"id":9078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9077,"mutability":"mutable","name":"msgSender","nameLocation":"18057:9:12","nodeType":"VariableDeclaration","scope":9080,"src":"18049:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9076,"name":"address","nodeType":"ElementaryTypeName","src":"18049:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18048:19:12"},"returnParameters":{"id":9079,"nodeType":"ParameterList","parameters":[],"src":"18076:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9087,"nodeType":"FunctionDefinition","src":"18189:61:12","nodes":[],"functionSelector":"47e50cce","implemented":false,"kind":"function","modifiers":[],"name":"prank","nameLocation":"18198:5:12","parameters":{"id":9085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9082,"mutability":"mutable","name":"msgSender","nameLocation":"18212:9:12","nodeType":"VariableDeclaration","scope":9087,"src":"18204:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9081,"name":"address","nodeType":"ElementaryTypeName","src":"18204:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9084,"mutability":"mutable","name":"txOrigin","nameLocation":"18231:8:12","nodeType":"VariableDeclaration","scope":9087,"src":"18223:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9083,"name":"address","nodeType":"ElementaryTypeName","src":"18223:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18203:37:12"},"returnParameters":{"id":9086,"nodeType":"ParameterList","parameters":[],"src":"18249:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9094,"nodeType":"FunctionDefinition","src":"18394:66:12","nodes":[],"functionSelector":"45b56078","implemented":false,"kind":"function","modifiers":[],"name":"startPrank","nameLocation":"18403:10:12","parameters":{"id":9092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9089,"mutability":"mutable","name":"msgSender","nameLocation":"18422:9:12","nodeType":"VariableDeclaration","scope":9094,"src":"18414:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9088,"name":"address","nodeType":"ElementaryTypeName","src":"18414:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9091,"mutability":"mutable","name":"txOrigin","nameLocation":"18441:8:12","nodeType":"VariableDeclaration","scope":9094,"src":"18433:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9090,"name":"address","nodeType":"ElementaryTypeName","src":"18433:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18413:37:12"},"returnParameters":{"id":9093,"nodeType":"ParameterList","parameters":[],"src":"18459:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9097,"nodeType":"FunctionDefinition","src":"18530:30:12","nodes":[],"functionSelector":"90c5013b","implemented":false,"kind":"function","modifiers":[],"name":"stopPrank","nameLocation":"18539:9:12","parameters":{"id":9095,"nodeType":"ParameterList","parameters":[],"src":"18548:2:12"},"returnParameters":{"id":9096,"nodeType":"ParameterList","parameters":[],"src":"18559:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9104,"nodeType":"FunctionDefinition","src":"18597:60:12","nodes":[],"functionSelector":"c88a5e6d","implemented":false,"kind":"function","modifiers":[],"name":"deal","nameLocation":"18606:4:12","parameters":{"id":9102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9099,"mutability":"mutable","name":"account","nameLocation":"18619:7:12","nodeType":"VariableDeclaration","scope":9104,"src":"18611:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9098,"name":"address","nodeType":"ElementaryTypeName","src":"18611:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9101,"mutability":"mutable","name":"newBalance","nameLocation":"18636:10:12","nodeType":"VariableDeclaration","scope":9104,"src":"18628:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9100,"name":"uint256","nodeType":"ElementaryTypeName","src":"18628:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18610:37:12"},"returnParameters":{"id":9103,"nodeType":"ParameterList","parameters":[],"src":"18656:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9111,"nodeType":"FunctionDefinition","src":"18691:74:12","nodes":[],"functionSelector":"b4d6c782","implemented":false,"kind":"function","modifiers":[],"name":"etch","nameLocation":"18700:4:12","parameters":{"id":9109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9106,"mutability":"mutable","name":"target","nameLocation":"18713:6:12","nodeType":"VariableDeclaration","scope":9111,"src":"18705:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9105,"name":"address","nodeType":"ElementaryTypeName","src":"18705:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9108,"mutability":"mutable","name":"newRuntimeBytecode","nameLocation":"18736:18:12","nodeType":"VariableDeclaration","scope":9111,"src":"18721:33:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9107,"name":"bytes","nodeType":"ElementaryTypeName","src":"18721:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18704:51:12"},"returnParameters":{"id":9110,"nodeType":"ParameterList","parameters":[],"src":"18764:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9116,"nodeType":"FunctionDefinition","src":"18807:58:12","nodes":[],"functionSelector":"f28dceb3","implemented":false,"kind":"function","modifiers":[],"name":"expectRevert","nameLocation":"18816:12:12","parameters":{"id":9114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9113,"mutability":"mutable","name":"revertData","nameLocation":"18844:10:12","nodeType":"VariableDeclaration","scope":9116,"src":"18829:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9112,"name":"bytes","nodeType":"ElementaryTypeName","src":"18829:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18828:27:12"},"returnParameters":{"id":9115,"nodeType":"ParameterList","parameters":[],"src":"18864:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9121,"nodeType":"FunctionDefinition","src":"18870:50:12","nodes":[],"functionSelector":"c31eb0e0","implemented":false,"kind":"function","modifiers":[],"name":"expectRevert","nameLocation":"18879:12:12","parameters":{"id":9119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9118,"mutability":"mutable","name":"revertData","nameLocation":"18899:10:12","nodeType":"VariableDeclaration","scope":9121,"src":"18892:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9117,"name":"bytes4","nodeType":"ElementaryTypeName","src":"18892:6:12","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"18891:19:12"},"returnParameters":{"id":9120,"nodeType":"ParameterList","parameters":[],"src":"18919:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9124,"nodeType":"FunctionDefinition","src":"18925:33:12","nodes":[],"functionSelector":"f4844814","implemented":false,"kind":"function","modifiers":[],"name":"expectRevert","nameLocation":"18934:12:12","parameters":{"id":9122,"nodeType":"ParameterList","parameters":[],"src":"18946:2:12"},"returnParameters":{"id":9123,"nodeType":"ParameterList","parameters":[],"src":"18957:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9135,"nodeType":"FunctionDefinition","src":"19291:99:12","nodes":[],"functionSelector":"491cc7c2","implemented":false,"kind":"function","modifiers":[],"name":"expectEmit","nameLocation":"19300:10:12","parameters":{"id":9133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9126,"mutability":"mutable","name":"checkTopic1","nameLocation":"19316:11:12","nodeType":"VariableDeclaration","scope":9135,"src":"19311:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9125,"name":"bool","nodeType":"ElementaryTypeName","src":"19311:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9128,"mutability":"mutable","name":"checkTopic2","nameLocation":"19334:11:12","nodeType":"VariableDeclaration","scope":9135,"src":"19329:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9127,"name":"bool","nodeType":"ElementaryTypeName","src":"19329:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9130,"mutability":"mutable","name":"checkTopic3","nameLocation":"19352:11:12","nodeType":"VariableDeclaration","scope":9135,"src":"19347:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9129,"name":"bool","nodeType":"ElementaryTypeName","src":"19347:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9132,"mutability":"mutable","name":"checkData","nameLocation":"19370:9:12","nodeType":"VariableDeclaration","scope":9135,"src":"19365:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9131,"name":"bool","nodeType":"ElementaryTypeName","src":"19365:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19310:70:12"},"returnParameters":{"id":9134,"nodeType":"ParameterList","parameters":[],"src":"19389:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9148,"nodeType":"FunctionDefinition","src":"19395:124:12","nodes":[],"functionSelector":"81bad6f3","implemented":false,"kind":"function","modifiers":[],"name":"expectEmit","nameLocation":"19404:10:12","parameters":{"id":9146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9137,"mutability":"mutable","name":"checkTopic1","nameLocation":"19420:11:12","nodeType":"VariableDeclaration","scope":9148,"src":"19415:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9136,"name":"bool","nodeType":"ElementaryTypeName","src":"19415:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9139,"mutability":"mutable","name":"checkTopic2","nameLocation":"19438:11:12","nodeType":"VariableDeclaration","scope":9148,"src":"19433:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9138,"name":"bool","nodeType":"ElementaryTypeName","src":"19433:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9141,"mutability":"mutable","name":"checkTopic3","nameLocation":"19456:11:12","nodeType":"VariableDeclaration","scope":9148,"src":"19451:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9140,"name":"bool","nodeType":"ElementaryTypeName","src":"19451:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9143,"mutability":"mutable","name":"checkData","nameLocation":"19474:9:12","nodeType":"VariableDeclaration","scope":9148,"src":"19469:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9142,"name":"bool","nodeType":"ElementaryTypeName","src":"19469:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9145,"mutability":"mutable","name":"emitter","nameLocation":"19493:7:12","nodeType":"VariableDeclaration","scope":9148,"src":"19485:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9144,"name":"address","nodeType":"ElementaryTypeName","src":"19485:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19414:87:12"},"returnParameters":{"id":9147,"nodeType":"ParameterList","parameters":[],"src":"19518:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9157,"nodeType":"FunctionDefinition","src":"19774:91:12","nodes":[],"functionSelector":"b96213e4","implemented":false,"kind":"function","modifiers":[],"name":"mockCall","nameLocation":"19783:8:12","parameters":{"id":9155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9150,"mutability":"mutable","name":"callee","nameLocation":"19800:6:12","nodeType":"VariableDeclaration","scope":9157,"src":"19792:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9149,"name":"address","nodeType":"ElementaryTypeName","src":"19792:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9152,"mutability":"mutable","name":"data","nameLocation":"19823:4:12","nodeType":"VariableDeclaration","scope":9157,"src":"19808:19:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9151,"name":"bytes","nodeType":"ElementaryTypeName","src":"19808:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9154,"mutability":"mutable","name":"returnData","nameLocation":"19844:10:12","nodeType":"VariableDeclaration","scope":9157,"src":"19829:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9153,"name":"bytes","nodeType":"ElementaryTypeName","src":"19829:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19791:64:12"},"returnParameters":{"id":9156,"nodeType":"ParameterList","parameters":[],"src":"19864:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9168,"nodeType":"FunctionDefinition","src":"20033:109:12","nodes":[],"functionSelector":"81409b91","implemented":false,"kind":"function","modifiers":[],"name":"mockCall","nameLocation":"20042:8:12","parameters":{"id":9166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9159,"mutability":"mutable","name":"callee","nameLocation":"20059:6:12","nodeType":"VariableDeclaration","scope":9168,"src":"20051:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9158,"name":"address","nodeType":"ElementaryTypeName","src":"20051:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9161,"mutability":"mutable","name":"msgValue","nameLocation":"20075:8:12","nodeType":"VariableDeclaration","scope":9168,"src":"20067:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9160,"name":"uint256","nodeType":"ElementaryTypeName","src":"20067:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9163,"mutability":"mutable","name":"data","nameLocation":"20100:4:12","nodeType":"VariableDeclaration","scope":9168,"src":"20085:19:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9162,"name":"bytes","nodeType":"ElementaryTypeName","src":"20085:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9165,"mutability":"mutable","name":"returnData","nameLocation":"20121:10:12","nodeType":"VariableDeclaration","scope":9168,"src":"20106:25:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9164,"name":"bytes","nodeType":"ElementaryTypeName","src":"20106:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"20050:82:12"},"returnParameters":{"id":9167,"nodeType":"ParameterList","parameters":[],"src":"20141:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9171,"nodeType":"FunctionDefinition","src":"20178:37:12","nodes":[],"functionSelector":"3fdf4e15","implemented":false,"kind":"function","modifiers":[],"name":"clearMockedCalls","nameLocation":"20187:16:12","parameters":{"id":9169,"nodeType":"ParameterList","parameters":[],"src":"20203:2:12"},"returnParameters":{"id":9170,"nodeType":"ParameterList","parameters":[],"src":"20214:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9178,"nodeType":"FunctionDefinition","src":"20343:66:12","nodes":[],"functionSelector":"bd6af434","implemented":false,"kind":"function","modifiers":[],"name":"expectCall","nameLocation":"20352:10:12","parameters":{"id":9176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9173,"mutability":"mutable","name":"callee","nameLocation":"20371:6:12","nodeType":"VariableDeclaration","scope":9178,"src":"20363:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9172,"name":"address","nodeType":"ElementaryTypeName","src":"20363:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9175,"mutability":"mutable","name":"data","nameLocation":"20394:4:12","nodeType":"VariableDeclaration","scope":9178,"src":"20379:19:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9174,"name":"bytes","nodeType":"ElementaryTypeName","src":"20379:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"20362:37:12"},"returnParameters":{"id":9177,"nodeType":"ParameterList","parameters":[],"src":"20408:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9187,"nodeType":"FunctionDefinition","src":"20492:84:12","nodes":[],"functionSelector":"f30c7ba3","implemented":false,"kind":"function","modifiers":[],"name":"expectCall","nameLocation":"20501:10:12","parameters":{"id":9185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9180,"mutability":"mutable","name":"callee","nameLocation":"20520:6:12","nodeType":"VariableDeclaration","scope":9187,"src":"20512:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9179,"name":"address","nodeType":"ElementaryTypeName","src":"20512:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9182,"mutability":"mutable","name":"msgValue","nameLocation":"20536:8:12","nodeType":"VariableDeclaration","scope":9187,"src":"20528:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9181,"name":"uint256","nodeType":"ElementaryTypeName","src":"20528:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9184,"mutability":"mutable","name":"data","nameLocation":"20561:4:12","nodeType":"VariableDeclaration","scope":9187,"src":"20546:19:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9183,"name":"bytes","nodeType":"ElementaryTypeName","src":"20546:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"20511:55:12"},"returnParameters":{"id":9186,"nodeType":"ParameterList","parameters":[],"src":"20575:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9192,"nodeType":"FunctionDefinition","src":"20608:48:12","nodes":[],"functionSelector":"ff483c54","implemented":false,"kind":"function","modifiers":[],"name":"coinbase","nameLocation":"20617:8:12","parameters":{"id":9190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9189,"mutability":"mutable","name":"newCoinbase","nameLocation":"20634:11:12","nodeType":"VariableDeclaration","scope":9192,"src":"20626:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9188,"name":"address","nodeType":"ElementaryTypeName","src":"20626:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20625:21:12"},"returnParameters":{"id":9191,"nodeType":"ParameterList","parameters":[],"src":"20655:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9197,"nodeType":"FunctionDefinition","src":"20806:58:12","nodes":[],"functionSelector":"9711715a","implemented":false,"kind":"function","modifiers":[],"name":"snapshot","nameLocation":"20815:8:12","parameters":{"id":9193,"nodeType":"ParameterList","parameters":[],"src":"20823:2:12"},"returnParameters":{"id":9196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9195,"mutability":"mutable","name":"snapshotId","nameLocation":"20852:10:12","nodeType":"VariableDeclaration","scope":9197,"src":"20844:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9194,"name":"uint256","nodeType":"ElementaryTypeName","src":"20844:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20843:20:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9204,"nodeType":"FunctionDefinition","src":"21056:70:12","nodes":[],"functionSelector":"44d7f0a4","implemented":false,"kind":"function","modifiers":[],"name":"revertTo","nameLocation":"21065:8:12","parameters":{"id":9200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9199,"mutability":"mutable","name":"snapshotId","nameLocation":"21082:10:12","nodeType":"VariableDeclaration","scope":9204,"src":"21074:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9198,"name":"uint256","nodeType":"ElementaryTypeName","src":"21074:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21073:20:12"},"returnParameters":{"id":9203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9202,"mutability":"mutable","name":"success","nameLocation":"21117:7:12","nodeType":"VariableDeclaration","scope":9204,"src":"21112:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9201,"name":"bool","nodeType":"ElementaryTypeName","src":"21112:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21111:14:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9213,"nodeType":"FunctionDefinition","src":"21230:103:12","nodes":[],"functionSelector":"6ba3ba2b","implemented":false,"kind":"function","modifiers":[],"name":"createFork","nameLocation":"21239:10:12","parameters":{"id":9209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9206,"mutability":"mutable","name":"urlOrAlias","nameLocation":"21266:10:12","nodeType":"VariableDeclaration","scope":9213,"src":"21250:26:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":9205,"name":"string","nodeType":"ElementaryTypeName","src":"21250:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9208,"mutability":"mutable","name":"blockNumber","nameLocation":"21286:11:12","nodeType":"VariableDeclaration","scope":9213,"src":"21278:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9207,"name":"uint256","nodeType":"ElementaryTypeName","src":"21278:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21249:49:12"},"returnParameters":{"id":9212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9211,"mutability":"mutable","name":"forkId","nameLocation":"21325:6:12","nodeType":"VariableDeclaration","scope":9213,"src":"21317:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9210,"name":"uint256","nodeType":"ElementaryTypeName","src":"21317:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21316:16:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9220,"nodeType":"FunctionDefinition","src":"21450:82:12","nodes":[],"functionSelector":"31ba3498","implemented":false,"kind":"function","modifiers":[],"name":"createFork","nameLocation":"21459:10:12","parameters":{"id":9216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9215,"mutability":"mutable","name":"urlOrAlias","nameLocation":"21486:10:12","nodeType":"VariableDeclaration","scope":9220,"src":"21470:26:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":9214,"name":"string","nodeType":"ElementaryTypeName","src":"21470:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21469:28:12"},"returnParameters":{"id":9219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9218,"mutability":"mutable","name":"forkId","nameLocation":"21524:6:12","nodeType":"VariableDeclaration","scope":9220,"src":"21516:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9217,"name":"uint256","nodeType":"ElementaryTypeName","src":"21516:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21515:16:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9229,"nodeType":"FunctionDefinition","src":"21753:98:12","nodes":[],"functionSelector":"7ca29682","implemented":false,"kind":"function","modifiers":[],"name":"createFork","nameLocation":"21762:10:12","parameters":{"id":9225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9222,"mutability":"mutable","name":"urlOrAlias","nameLocation":"21789:10:12","nodeType":"VariableDeclaration","scope":9229,"src":"21773:26:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":9221,"name":"string","nodeType":"ElementaryTypeName","src":"21773:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9224,"mutability":"mutable","name":"txHash","nameLocation":"21809:6:12","nodeType":"VariableDeclaration","scope":9229,"src":"21801:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9223,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21801:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21772:44:12"},"returnParameters":{"id":9228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9227,"mutability":"mutable","name":"forkId","nameLocation":"21843:6:12","nodeType":"VariableDeclaration","scope":9229,"src":"21835:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9226,"name":"uint256","nodeType":"ElementaryTypeName","src":"21835:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21834:16:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9238,"nodeType":"FunctionDefinition","src":"21974:109:12","nodes":[],"functionSelector":"71ee464d","implemented":false,"kind":"function","modifiers":[],"name":"createSelectFork","nameLocation":"21983:16:12","parameters":{"id":9234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9231,"mutability":"mutable","name":"urlOrAlias","nameLocation":"22016:10:12","nodeType":"VariableDeclaration","scope":9238,"src":"22000:26:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":9230,"name":"string","nodeType":"ElementaryTypeName","src":"22000:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9233,"mutability":"mutable","name":"blockNumber","nameLocation":"22036:11:12","nodeType":"VariableDeclaration","scope":9238,"src":"22028:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9232,"name":"uint256","nodeType":"ElementaryTypeName","src":"22028:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21999:49:12"},"returnParameters":{"id":9237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9236,"mutability":"mutable","name":"forkId","nameLocation":"22075:6:12","nodeType":"VariableDeclaration","scope":9238,"src":"22067:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9235,"name":"uint256","nodeType":"ElementaryTypeName","src":"22067:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22066:16:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9247,"nodeType":"FunctionDefinition","src":"22317:104:12","nodes":[],"functionSelector":"84d52b7a","implemented":false,"kind":"function","modifiers":[],"name":"createSelectFork","nameLocation":"22326:16:12","parameters":{"id":9243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9240,"mutability":"mutable","name":"urlOrAlias","nameLocation":"22359:10:12","nodeType":"VariableDeclaration","scope":9247,"src":"22343:26:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":9239,"name":"string","nodeType":"ElementaryTypeName","src":"22343:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9242,"mutability":"mutable","name":"txHash","nameLocation":"22379:6:12","nodeType":"VariableDeclaration","scope":9247,"src":"22371:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9241,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22371:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22342:44:12"},"returnParameters":{"id":9246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9245,"mutability":"mutable","name":"forkId","nameLocation":"22413:6:12","nodeType":"VariableDeclaration","scope":9247,"src":"22405:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9244,"name":"uint256","nodeType":"ElementaryTypeName","src":"22405:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22404:16:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9254,"nodeType":"FunctionDefinition","src":"22555:88:12","nodes":[],"functionSelector":"98680034","implemented":false,"kind":"function","modifiers":[],"name":"createSelectFork","nameLocation":"22564:16:12","parameters":{"id":9250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9249,"mutability":"mutable","name":"urlOrAlias","nameLocation":"22597:10:12","nodeType":"VariableDeclaration","scope":9254,"src":"22581:26:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":9248,"name":"string","nodeType":"ElementaryTypeName","src":"22581:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22580:28:12"},"returnParameters":{"id":9253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9252,"mutability":"mutable","name":"forkId","nameLocation":"22635:6:12","nodeType":"VariableDeclaration","scope":9254,"src":"22627:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9251,"name":"uint256","nodeType":"ElementaryTypeName","src":"22627:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22626:16:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9259,"nodeType":"FunctionDefinition","src":"22754:45:12","nodes":[],"functionSelector":"9ebf6827","implemented":false,"kind":"function","modifiers":[],"name":"selectFork","nameLocation":"22763:10:12","parameters":{"id":9257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9256,"mutability":"mutable","name":"forkId","nameLocation":"22782:6:12","nodeType":"VariableDeclaration","scope":9259,"src":"22774:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9255,"name":"uint256","nodeType":"ElementaryTypeName","src":"22774:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22773:16:12"},"returnParameters":{"id":9258,"nodeType":"ParameterList","parameters":[],"src":"22798:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9265,"nodeType":"FunctionDefinition","src":"22905:61:12","nodes":[],"documentation":{"id":9260,"nodeType":"StructuredDocumentation","src":"22804:96:12","text":"Returns the identifier of the currently active fork. Reverts if no fork is currently active."},"functionSelector":"2f103f22","implemented":false,"kind":"function","modifiers":[],"name":"activeFork","nameLocation":"22914:10:12","parameters":{"id":9261,"nodeType":"ParameterList","parameters":[],"src":"22924:2:12"},"returnParameters":{"id":9264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9263,"mutability":"mutable","name":"forkId","nameLocation":"22958:6:12","nodeType":"VariableDeclaration","scope":9265,"src":"22950:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9262,"name":"uint256","nodeType":"ElementaryTypeName","src":"22950:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22949:16:12"},"scope":9352,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9270,"nodeType":"FunctionDefinition","src":"23101:48:12","nodes":[],"functionSelector":"d9bbf3a1","implemented":false,"kind":"function","modifiers":[],"name":"rollFork","nameLocation":"23110:8:12","parameters":{"id":9268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9267,"mutability":"mutable","name":"blockNumber","nameLocation":"23127:11:12","nodeType":"VariableDeclaration","scope":9270,"src":"23119:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9266,"name":"uint256","nodeType":"ElementaryTypeName","src":"23119:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23118:21:12"},"returnParameters":{"id":9269,"nodeType":"ParameterList","parameters":[],"src":"23148:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9275,"nodeType":"FunctionDefinition","src":"23359:43:12","nodes":[],"functionSelector":"0f29772b","implemented":false,"kind":"function","modifiers":[],"name":"rollFork","nameLocation":"23368:8:12","parameters":{"id":9273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9272,"mutability":"mutable","name":"txHash","nameLocation":"23385:6:12","nodeType":"VariableDeclaration","scope":9275,"src":"23377:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9271,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23377:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23376:16:12"},"returnParameters":{"id":9274,"nodeType":"ParameterList","parameters":[],"src":"23401:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9282,"nodeType":"FunctionDefinition","src":"23459:64:12","nodes":[],"functionSelector":"d74c83a4","implemented":false,"kind":"function","modifiers":[],"name":"rollFork","nameLocation":"23468:8:12","parameters":{"id":9280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9277,"mutability":"mutable","name":"forkId","nameLocation":"23485:6:12","nodeType":"VariableDeclaration","scope":9282,"src":"23477:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9276,"name":"uint256","nodeType":"ElementaryTypeName","src":"23477:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9279,"mutability":"mutable","name":"blockNumber","nameLocation":"23501:11:12","nodeType":"VariableDeclaration","scope":9282,"src":"23493:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9278,"name":"uint256","nodeType":"ElementaryTypeName","src":"23493:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23476:37:12"},"returnParameters":{"id":9281,"nodeType":"ParameterList","parameters":[],"src":"23522:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9289,"nodeType":"FunctionDefinition","src":"23656:59:12","nodes":[],"functionSelector":"f2830f7b","implemented":false,"kind":"function","modifiers":[],"name":"rollFork","nameLocation":"23665:8:12","parameters":{"id":9287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9284,"mutability":"mutable","name":"forkId","nameLocation":"23682:6:12","nodeType":"VariableDeclaration","scope":9289,"src":"23674:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9283,"name":"uint256","nodeType":"ElementaryTypeName","src":"23674:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9286,"mutability":"mutable","name":"txHash","nameLocation":"23698:6:12","nodeType":"VariableDeclaration","scope":9289,"src":"23690:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9285,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23690:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23673:32:12"},"returnParameters":{"id":9288,"nodeType":"ParameterList","parameters":[],"src":"23714:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9294,"nodeType":"FunctionDefinition","src":"23914:50:12","nodes":[],"functionSelector":"57e22dde","implemented":false,"kind":"function","modifiers":[],"name":"makePersistent","nameLocation":"23923:14:12","parameters":{"id":9292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9291,"mutability":"mutable","name":"account","nameLocation":"23946:7:12","nodeType":"VariableDeclaration","scope":9294,"src":"23938:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9290,"name":"address","nodeType":"ElementaryTypeName","src":"23938:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23937:17:12"},"returnParameters":{"id":9293,"nodeType":"ParameterList","parameters":[],"src":"23963:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9301,"nodeType":"FunctionDefinition","src":"23969:69:12","nodes":[],"functionSelector":"4074e0a8","implemented":false,"kind":"function","modifiers":[],"name":"makePersistent","nameLocation":"23978:14:12","parameters":{"id":9299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9296,"mutability":"mutable","name":"account0","nameLocation":"24001:8:12","nodeType":"VariableDeclaration","scope":9301,"src":"23993:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9295,"name":"address","nodeType":"ElementaryTypeName","src":"23993:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9298,"mutability":"mutable","name":"account1","nameLocation":"24019:8:12","nodeType":"VariableDeclaration","scope":9301,"src":"24011:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9297,"name":"address","nodeType":"ElementaryTypeName","src":"24011:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23992:36:12"},"returnParameters":{"id":9300,"nodeType":"ParameterList","parameters":[],"src":"24037:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9310,"nodeType":"FunctionDefinition","src":"24043:87:12","nodes":[],"functionSelector":"efb77a75","implemented":false,"kind":"function","modifiers":[],"name":"makePersistent","nameLocation":"24052:14:12","parameters":{"id":9308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9303,"mutability":"mutable","name":"account0","nameLocation":"24075:8:12","nodeType":"VariableDeclaration","scope":9310,"src":"24067:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9302,"name":"address","nodeType":"ElementaryTypeName","src":"24067:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9305,"mutability":"mutable","name":"account1","nameLocation":"24093:8:12","nodeType":"VariableDeclaration","scope":9310,"src":"24085:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9304,"name":"address","nodeType":"ElementaryTypeName","src":"24085:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9307,"mutability":"mutable","name":"account2","nameLocation":"24111:8:12","nodeType":"VariableDeclaration","scope":9310,"src":"24103:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9306,"name":"address","nodeType":"ElementaryTypeName","src":"24103:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24066:54:12"},"returnParameters":{"id":9309,"nodeType":"ParameterList","parameters":[],"src":"24129:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9316,"nodeType":"FunctionDefinition","src":"24135:62:12","nodes":[],"functionSelector":"1d9e269e","implemented":false,"kind":"function","modifiers":[],"name":"makePersistent","nameLocation":"24144:14:12","parameters":{"id":9314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9313,"mutability":"mutable","name":"accounts","nameLocation":"24178:8:12","nodeType":"VariableDeclaration","scope":9316,"src":"24159:27:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":9311,"name":"address","nodeType":"ElementaryTypeName","src":"24159:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9312,"nodeType":"ArrayTypeName","src":"24159:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"24158:29:12"},"returnParameters":{"id":9315,"nodeType":"ParameterList","parameters":[],"src":"24196:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9321,"nodeType":"FunctionDefinition","src":"24291:52:12","nodes":[],"functionSelector":"997a0222","implemented":false,"kind":"function","modifiers":[],"name":"revokePersistent","nameLocation":"24300:16:12","parameters":{"id":9319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9318,"mutability":"mutable","name":"account","nameLocation":"24325:7:12","nodeType":"VariableDeclaration","scope":9321,"src":"24317:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9317,"name":"address","nodeType":"ElementaryTypeName","src":"24317:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24316:17:12"},"returnParameters":{"id":9320,"nodeType":"ParameterList","parameters":[],"src":"24342:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9327,"nodeType":"FunctionDefinition","src":"24348:64:12","nodes":[],"functionSelector":"3ce969e6","implemented":false,"kind":"function","modifiers":[],"name":"revokePersistent","nameLocation":"24357:16:12","parameters":{"id":9325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9324,"mutability":"mutable","name":"accounts","nameLocation":"24393:8:12","nodeType":"VariableDeclaration","scope":9327,"src":"24374:27:12","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":9322,"name":"address","nodeType":"ElementaryTypeName","src":"24374:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9323,"nodeType":"ArrayTypeName","src":"24374:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"24373:29:12"},"returnParameters":{"id":9326,"nodeType":"ParameterList","parameters":[],"src":"24411:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9334,"nodeType":"FunctionDefinition","src":"24476:79:12","nodes":[],"functionSelector":"d92d8efd","implemented":false,"kind":"function","modifiers":[],"name":"isPersistent","nameLocation":"24485:12:12","parameters":{"id":9330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9329,"mutability":"mutable","name":"account","nameLocation":"24506:7:12","nodeType":"VariableDeclaration","scope":9334,"src":"24498:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9328,"name":"address","nodeType":"ElementaryTypeName","src":"24498:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24497:17:12"},"returnParameters":{"id":9333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9332,"mutability":"mutable","name":"persistent","nameLocation":"24543:10:12","nodeType":"VariableDeclaration","scope":9334,"src":"24538:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9331,"name":"bool","nodeType":"ElementaryTypeName","src":"24538:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"24537:17:12"},"scope":9352,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":9339,"nodeType":"FunctionDefinition","src":"24636:51:12","nodes":[],"functionSelector":"ea060291","implemented":false,"kind":"function","modifiers":[],"name":"allowCheatcodes","nameLocation":"24645:15:12","parameters":{"id":9337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9336,"mutability":"mutable","name":"account","nameLocation":"24669:7:12","nodeType":"VariableDeclaration","scope":9339,"src":"24661:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9335,"name":"address","nodeType":"ElementaryTypeName","src":"24661:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24660:17:12"},"returnParameters":{"id":9338,"nodeType":"ParameterList","parameters":[],"src":"24686:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9344,"nodeType":"FunctionDefinition","src":"24787:43:12","nodes":[],"functionSelector":"be646da1","implemented":false,"kind":"function","modifiers":[],"name":"transact","nameLocation":"24796:8:12","parameters":{"id":9342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9341,"mutability":"mutable","name":"txHash","nameLocation":"24813:6:12","nodeType":"VariableDeclaration","scope":9344,"src":"24805:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9340,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24805:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24804:16:12"},"returnParameters":{"id":9343,"nodeType":"ParameterList","parameters":[],"src":"24829:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":9351,"nodeType":"FunctionDefinition","src":"24929:59:12","nodes":[],"functionSelector":"4d8abc4b","implemented":false,"kind":"function","modifiers":[],"name":"transact","nameLocation":"24938:8:12","parameters":{"id":9349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9346,"mutability":"mutable","name":"forkId","nameLocation":"24955:6:12","nodeType":"VariableDeclaration","scope":9351,"src":"24947:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9345,"name":"uint256","nodeType":"ElementaryTypeName","src":"24947:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9348,"mutability":"mutable","name":"txHash","nameLocation":"24971:6:12","nodeType":"VariableDeclaration","scope":9351,"src":"24963:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24963:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24946:32:12"},"returnParameters":{"id":9350,"nodeType":"ParameterList","parameters":[],"src":"24987:0:12"},"scope":9352,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":9028,"name":"VmSafe","nameLocations":["17139:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":9027,"src":"17139:6:12"},"id":9029,"nodeType":"InheritanceSpecifier","src":"17139:6:12"}],"canonicalName":"Vm","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[9352,9027],"name":"Vm","nameLocation":"17133:2:12","scope":9353,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":12} \ No newline at end of file diff --git a/out/WETH.sol/WETH.json b/out/WETH.sol/WETH.json deleted file mode 100644 index 41d15046..00000000 --- a/out/WETH.sol/WETH.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60e0604081815234620004285762000017826200042d565b600d825260206c2bb930b83832b21022ba3432b960991b8184015281519262000040846200042d565b60048452630ae8aa8960e31b8285015280516001600160401b03939084811162000412576000908062000074835462000449565b94601f95868111620003c1575b508690868311600114620003595784926200034d575b50508160011b916000199060031b1c19161781555b85518581116200033957600190620000c5825462000449565b858111620002f1575b50858582116001146200028c578394959697988293949262000280575b5050600019600383901b1c191690821b1781555b60126080524660a05282519382908354926200011b8462000449565b90818852888801948982821691826000146200026357505060011462000227575b505085601f1992030116840193808510878611176200021357848452519020938301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8552828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401524660808401523060a084015260a0835260c083019483861090861117620001ff575083905251902060c052610cef908162000487823960805181610597015260a051816109fe015260c05181610a250152f35b634e487b7160e01b81526041600452602490fd5b634e487b7160e01b83526041600452602483fd5b90889293508580528286209186925b8284106200024d575050508601019038806200013c565b80548a85018601528a9490930192810162000236565b92509394505060ff19168452151560051b8601019038806200013c565b015190503880620000eb565b82845286842090601f198316855b818110620002db5750998385969798999a9b10620002c1575b505050811b018155620000ff565b015160001960f88460031b161c19169055388080620002b3565b8b8301518455928501929189019189016200029a565b8284528684208680840160051c8201928985106200032f575b0160051c019083905b82811062000323575050620000ce565b85815501839062000313565b925081926200030a565b634e487b7160e01b82526041600452602482fd5b01519050388062000097565b8480528785209250601f198416855b89828210620003aa57505090846001959493921062000390575b505050811b018155620000ac565b015160001960f88460031b161c1916905538808062000382565b600185968293968601518155019501930162000368565b9091508380528684208680850160051c82019289861062000408575b9085949392910160051c01905b818110620003f9575062000081565b858155849350600101620003ea565b92508192620003dd565b634e487b7160e01b600052604160045260246000fd5b600080fd5b604081019081106001600160401b038211176200041257604052565b90600182811c921680156200047b575b60208310146200046557565b634e487b7160e01b600052602260045260246000fd5b91607f16916200045956fe60806040526004361015610023575b361561001957600080fd5b610021610b96565b005b60003560e01c806306fdde0314610103578063095ea7b3146100fe57806318160ddd146100f957806323b872dd146100f45780632e1a7d4d146100ef578063313ce567146100ea5780633644e515146100e557806370a08231146100e05780637ecebe00146100db57806395d89b41146100d6578063a9059cbb146100d1578063d0e30db0146100cc578063d505accf146100c75763dd62ed3e0361000e5761097e565b610788565b610774565b6106f9565b610652565b610618565b6105de565b6105bb565b61057d565b6104af565b610384565b610366565b6102db565b6101c3565b90600182811c92168015610138575b602083101461012257565b634e487b7160e01b600052602260045260246000fd5b91607f1691610117565b90601f8019910116810190811067ffffffffffffffff82111761016457604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106101af57505060409293506000838284010152601f8019910116010190565b81810186015184820160400152850161018d565b346102aa576000806003193601126102a75760405190808054906101e682610108565b8085529160209160019182811690811561027a5750600114610223575b61021f8661021381880382610142565b6040519182918261017a565b0390f35b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610267575050505081016020016102138261021f38610203565b805486860184015293820193810161024a565b905086955061021f9693506020925061021394915060ff191682840152151560051b820101929338610203565b80fd5b600080fd5b600435906001600160a01b03821682036102aa57565b602435906001600160a01b03821682036102aa57565b346102aa5760403660031901126102aa576102f46102af565b60243590336000526004602052816103228260406000209060018060a01b0316600052602052604060002090565b556040519182526001600160a01b03169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3602060405160018152f35b346102aa5760003660031901126102aa576020600254604051908152f35b346102aa5760603660031901126102aa5761039d6102af565b6103a56102c5565b6001600160a01b038083166000818152600460209081526040808320338452909152902060443594919391929190546001810161044d575b50610409600080516020610c9a8339815191529360018060a01b03166000526003602052604060002090565b6104148682546109ec565b90556001600160a01b0381166000908152600360209081526040918290208054880190559051958652911693a360405160018152602090f35b8581039081116104aa57600080516020610c9a83398151915293610409916104a23361048b8460018060a01b03166000526004602052604060002090565b9060018060a01b0316600052602052604060002090565b5593506103dd565b6109d6565b346102aa5760203660031901126102aa576004356000903382526003602052604082209081548181039081116104aa57838080809481948755806002540360025581604051828152600080516020610c9a83398151915260203392a36040518181527f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6560203392a2335af1156105425780f35b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b346102aa5760003660031901126102aa57602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102aa5760003660031901126102aa5760206105d66109f9565b604051908152f35b346102aa5760203660031901126102aa576001600160a01b036105ff6102af565b1660005260036020526020604060002054604051908152f35b346102aa5760203660031901126102aa576001600160a01b036106396102af565b1660005260056020526020604060002054604051908152f35b346102aa576000806003193601126102a7576040519080600180549061067782610108565b808652926020926001811690811561027a57506001146106a15761021f8661021381880382610142565b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106106e6575050505081016020016102138261021f38610203565b80548686018401529382019381016106c9565b346102aa5760403660031901126102aa576107126102af565b6024359033600052600360205260406000208054908382039182116104aa575560018060a01b0316908160005260036020526040600020818154019055604051908152600080516020610c9a83398151915260203392a3602060405160018152f35b60003660031901126102aa57610021610b96565b346102aa5760e03660031901126102aa576107a16102af565b6107a96102c5565b90604435606435926084359360ff851685036102aa576108dd6020916107d142821015610c04565b6108a46108b06107df6109f9565b92886107fd8160018060a01b03166000526005602052604060002090565b805460018101909155604080517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a82019081526001600160a01b039485166020820152938b1691840191909152606083018b9052608083019190915260a08201929092528160c08201039161087b601f1993848101835282610142565b5190206040519384918883019687909160429261190160f01b8352600283015260228201520190565b03908101835282610142565b5190206040805191825260ff909716602082015260a4359681019690965260c43560608701526080860190565b856000968792838052039060015afa156109795783517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916001600160a01b0391849061095a90839061048b90610940878216801515908161096d575b50610c5c565b6001600160a01b0316600090815260046020526040902090565b556040519384528116931691602090a380f35b9050888c16143861093a565b610c50565b346102aa5760403660031901126102aa5760206109cd61099c6102af565b6109a46102c5565b6001600160a01b0391821660009081526004855260408082209290931681526020919091522090565b54604051908152f35b634e487b7160e01b600052601160045260246000fd5b919082039182116104aa57565b6000467f000000000000000000000000000000000000000000000000000000000000000003610a4757507f000000000000000000000000000000000000000000000000000000000000000090565b6040518154919081610a5884610108565b8083526020948584019460019187600182169182600014610b71575050600114610b19575b5050509181610a94610b1393610b05950382610142565b519020604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f95810195865260208601929092527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc69085015246606085015230608085015291829060a0850190565b03601f198101835282610142565b51902090565b91908693508280527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b828410610b5c5750505082010181610a94610b13610a7d565b80548685018601528794909301928101610b43565b60ff1916885293151560051b86019093019350849250610a949150610b139050610a7d565b6002543481018091116104aa5760025533600052600360205260406000203481540190556040513481526000600080516020610c9a83398151915260203393a36040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a2565b15610c0b57565b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b6040513d6000823e3d90fd5b15610c6357565b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e2c89f20a3186bd00a15b6a9db0c6517d9bd6f92df9703dd9ee286a75c8e0b6c64736f6c63430008160033","sourceMap":"406:605:17:-:0;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;406:605:17;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;406:605:17;;;;;;-1:-1:-1;;;;;406:605:17;;;;;;;-1:-1:-1;406:605:17;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;406:605:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2103:16:16;406:605:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;406:605:17;;;;;;;;;;;;;;454:2;2129:20:16;;2179:13;2160:32;;406:605:17;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2103:16:16;;406:605:17;2103:16:16;;;406:605:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5776:22:16;;5627:295;;;406:605:17;5659:95:16;406:605:17;;;;;;5820:14:16;406:605:17;;;;2179:13:16;2129:20;406:605:17;;;5899:4:16;2160:32;406:605:17;;;2160:32:16;5627:295;;406:605:17;;;;;;;;;;;;;;;;;;5600:336:16;;406:605:17;2202:51:16;406:605:17;;;;;;2129:20:16;406:605:17;;;;;2160:32:16;406:605:17;;;;;;;;;;;;;-1:-1:-1;;;406:605:17;;;;;;;;;-1:-1:-1;;;406:605:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;406:605:17;;;;;;;;;;;;-1:-1:-1;;406:605:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;406:605:17;;;;;;;;;;;;-1:-1:-1;406:605:17;;;;;;;;;;;;-1:-1:-1;;;406:605:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;406:605:17;;;;;;;;;;;;;;;-1:-1:-1;406:605:17;;;;;-1:-1:-1;406:605:17;;;;;;;;;;;;-1:-1:-1;;;;;406:605:17;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610023575b361561001957600080fd5b610021610b96565b005b60003560e01c806306fdde0314610103578063095ea7b3146100fe57806318160ddd146100f957806323b872dd146100f45780632e1a7d4d146100ef578063313ce567146100ea5780633644e515146100e557806370a08231146100e05780637ecebe00146100db57806395d89b41146100d6578063a9059cbb146100d1578063d0e30db0146100cc578063d505accf146100c75763dd62ed3e0361000e5761097e565b610788565b610774565b6106f9565b610652565b610618565b6105de565b6105bb565b61057d565b6104af565b610384565b610366565b6102db565b6101c3565b90600182811c92168015610138575b602083101461012257565b634e487b7160e01b600052602260045260246000fd5b91607f1691610117565b90601f8019910116810190811067ffffffffffffffff82111761016457604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b8281106101af57505060409293506000838284010152601f8019910116010190565b81810186015184820160400152850161018d565b346102aa576000806003193601126102a75760405190808054906101e682610108565b8085529160209160019182811690811561027a5750600114610223575b61021f8661021381880382610142565b6040519182918261017a565b0390f35b80809550527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b838510610267575050505081016020016102138261021f38610203565b805486860184015293820193810161024a565b905086955061021f9693506020925061021394915060ff191682840152151560051b820101929338610203565b80fd5b600080fd5b600435906001600160a01b03821682036102aa57565b602435906001600160a01b03821682036102aa57565b346102aa5760403660031901126102aa576102f46102af565b60243590336000526004602052816103228260406000209060018060a01b0316600052602052604060002090565b556040519182526001600160a01b03169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3602060405160018152f35b346102aa5760003660031901126102aa576020600254604051908152f35b346102aa5760603660031901126102aa5761039d6102af565b6103a56102c5565b6001600160a01b038083166000818152600460209081526040808320338452909152902060443594919391929190546001810161044d575b50610409600080516020610c9a8339815191529360018060a01b03166000526003602052604060002090565b6104148682546109ec565b90556001600160a01b0381166000908152600360209081526040918290208054880190559051958652911693a360405160018152602090f35b8581039081116104aa57600080516020610c9a83398151915293610409916104a23361048b8460018060a01b03166000526004602052604060002090565b9060018060a01b0316600052602052604060002090565b5593506103dd565b6109d6565b346102aa5760203660031901126102aa576004356000903382526003602052604082209081548181039081116104aa57838080809481948755806002540360025581604051828152600080516020610c9a83398151915260203392a36040518181527f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6560203392a2335af1156105425780f35b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b346102aa5760003660031901126102aa57602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102aa5760003660031901126102aa5760206105d66109f9565b604051908152f35b346102aa5760203660031901126102aa576001600160a01b036105ff6102af565b1660005260036020526020604060002054604051908152f35b346102aa5760203660031901126102aa576001600160a01b036106396102af565b1660005260056020526020604060002054604051908152f35b346102aa576000806003193601126102a7576040519080600180549061067782610108565b808652926020926001811690811561027a57506001146106a15761021f8661021381880382610142565b9350600184527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8385106106e6575050505081016020016102138261021f38610203565b80548686018401529382019381016106c9565b346102aa5760403660031901126102aa576107126102af565b6024359033600052600360205260406000208054908382039182116104aa575560018060a01b0316908160005260036020526040600020818154019055604051908152600080516020610c9a83398151915260203392a3602060405160018152f35b60003660031901126102aa57610021610b96565b346102aa5760e03660031901126102aa576107a16102af565b6107a96102c5565b90604435606435926084359360ff851685036102aa576108dd6020916107d142821015610c04565b6108a46108b06107df6109f9565b92886107fd8160018060a01b03166000526005602052604060002090565b805460018101909155604080517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a82019081526001600160a01b039485166020820152938b1691840191909152606083018b9052608083019190915260a08201929092528160c08201039161087b601f1993848101835282610142565b5190206040519384918883019687909160429261190160f01b8352600283015260228201520190565b03908101835282610142565b5190206040805191825260ff909716602082015260a4359681019690965260c43560608701526080860190565b856000968792838052039060015afa156109795783517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916001600160a01b0391849061095a90839061048b90610940878216801515908161096d575b50610c5c565b6001600160a01b0316600090815260046020526040902090565b556040519384528116931691602090a380f35b9050888c16143861093a565b610c50565b346102aa5760403660031901126102aa5760206109cd61099c6102af565b6109a46102c5565b6001600160a01b0391821660009081526004855260408082209290931681526020919091522090565b54604051908152f35b634e487b7160e01b600052601160045260246000fd5b919082039182116104aa57565b6000467f000000000000000000000000000000000000000000000000000000000000000003610a4757507f000000000000000000000000000000000000000000000000000000000000000090565b6040518154919081610a5884610108565b8083526020948584019460019187600182169182600014610b71575050600114610b19575b5050509181610a94610b1393610b05950382610142565b519020604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f95810195865260208601929092527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc69085015246606085015230608085015291829060a0850190565b03601f198101835282610142565b51902090565b91908693508280527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b828410610b5c5750505082010181610a94610b13610a7d565b80548685018601528794909301928101610b43565b60ff1916885293151560051b86019093019350849250610a949150610b139050610a7d565b6002543481018091116104aa5760025533600052600360205260406000203481540190556040513481526000600080516020610c9a83398151915260203393a36040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a2565b15610c0b57565b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b6040513d6000823e3d90fd5b15610c6357565b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220e2c89f20a3186bd00a15b6a9db0c6517d9bd6f92df9703dd9ee286a75c8e0b6c64736f6c63430008160033","sourceMap":"406:605:17:-:0;;;;;;;;;-1:-1:-1;406:605:17;;;;;;;;948:61;;:::i;:::-;406:605;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;406:605:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;406:605:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;406:605:17;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;406:605:17;;;;;;:::o;:::-;;;;;;-1:-1:-1;;406:605:17;;;;;;:::i;:::-;;;2548:10:16;;-1:-1:-1;406:605:17;;;;;2538:30:16;406:605:17;;-1:-1:-1;406:605:17;;;;;;;;;;;;;;;;;2538:30:16;406:605:17;;;;;;-1:-1:-1;;;;;406:605:17;;2548:10:16;;2593:37;;406:605:17;;2593:37:16;406:605:17;;;2648:4:16;406:605:17;;;;;;;;;-1:-1:-1;;406:605:17;;;;;1291:26:16;406:605:17;;;;;;;;;;;;;-1:-1:-1;;406:605:17;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;406:605:17;;;-1:-1:-1;406:605:17;;;;;;;;;;;;3212:10:16;406:605:17;;;;;;;;;;;;;;;;;3274:28:16;;;3270:80;;406:605:17;3361:15:16;;-1:-1:-1;;;;;;;;;;;3361:15:16;406:605:17;;;;;;;;3361:9:16;406:605:17;;;;;;;3361:15:16;:25;406:605:17;;;3361:25:16;:::i;:::-;406:605:17;;-1:-1:-1;;;;;406:605:17;;;;;;3361:9:16;406:605:17;;;;;;;;;;;;;;;;;;;;;;;3581:26:16;406:605:17;;2648:4:16;406:605:17;;;;;3270:80:16;406:605:17;;;;;;;;-1:-1:-1;;;;;;;;;;;3212:10:16;3361:15;3212:10;3304:27;3212:10;3304:15;;406:605:17;;;;;;;;;;;;;;;;3304:15:16;406:605:17;;;;;;;;;;;;;;;;3304:27:16;406:605:17;3270:80:16;;;;406:605:17;;:::i;:::-;;;;;;-1:-1:-1;;406:605:17;;;;;;-1:-1:-1;825:10:17;;406:605;;6540:9:16;406:605:17;;;;;;;;;;;;;;;;;;;;;;;;;;6708:21:16;406:605:17;;6708:21:16;406:605:17;;;;;;;-1:-1:-1;;;;;;;;;;;406:605:17;825:10;6755:34:16;;406:605:17;;;;;860:30;406:605;825:10;860:30;;825:10;716:145:20;;406:605:17;;;;;;;;-1:-1:-1;;;406:605:17;;;;;;;;;;;;-1:-1:-1;;;406:605:17;;;;;;;;;;;;;-1:-1:-1;;406:605:17;;;;;;;;1070:31:16;406:605:17;;;;;;;;;;-1:-1:-1;;406:605:17;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;406:605:17;;;;-1:-1:-1;;;;;406:605:17;;:::i;:::-;;-1:-1:-1;406:605:17;1324:44:16;406:605:17;;;;-1:-1:-1;406:605:17;;;;;;;;;;;;;;-1:-1:-1;;406:605:17;;;;-1:-1:-1;;;;;406:605:17;;:::i;:::-;;-1:-1:-1;406:605:17;1738:41:16;406:605:17;;;;-1:-1:-1;406:605:17;;;;;;;;;;;;;;;;;;;;;;;;;1043:20:16;;406:605:17;;;;;:::i;:::-;;;;;;;1043:20:16;406:605:17;;;1043:20:16;;;;406:605:17;;;;;;;;;;;;;:::i;:::-;;;1043:20:16;406:605:17;;;;;;;;;-1:-1:-1;;;;406:605:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;406:605:17;;;;;;:::i;:::-;;;2761:10:16;;-1:-1:-1;406:605:17;2751:9:16;406:605:17;;;-1:-1:-1;406:605:17;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;406:605:17;2751:9:16;406:605:17;;;-1:-1:-1;406:605:17;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;406:605:17;2761:10:16;2977:32;;406:605:17;;;2648:4:16;406:605:17;;;;;;-1:-1:-1;;406:605:17;;;;;;:::i;:::-;;;;;;-1:-1:-1;;406:605:17;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;4279:805:16;406:605:17;4044:15:16;4024:63;4044:15;4032:27;;;4024:63;:::i;:::-;4337:658;;4415:18;;:::i;:::-;4860:13;;;;406:605:17;;;;;;;;4860:6:16;406:605:17;;;;;;;4860:13:16;406:605:17;;;;;;;;;;;4542:165:16;4498:449;;;406:605:17;;;-1:-1:-1;;;;;406:605:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4498:449:16;406:605:17;4498:449:16;406:605:17;;4498:449:16;;;;;;;;:::i;:::-;406:605:17;4459:514:16;;406:605:17;;4337:658:16;;;;;;;;406:605:17;;;;;;;;;;;;;;;;;;;;4337:658:16;;;;;;;;;:::i;:::-;406:605:17;4306:707:16;;406:605:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4279:805:16;-1:-1:-1;;4279:805:16;;;;;;;;406:605:17;4279:805:16;;;;;;;5270:31;;-1:-1:-1;;;;;406:605:17;;;5200:36:16;;4279:805;;5200:27;;5099:86;406:605:17;;;5107:30:16;;;;;:59;;406:605:17;5099:86:16;;:::i;:::-;-1:-1:-1;;;;;406:605:17;;;;;;;;;;;;;5200:36:16;406:605:17;;;;;;;;;;;;;5270:31:16;406:605:17;;5107:59:16;406:605:17;;;;;5141:25:16;5107:59;;;4279:805;;:::i;406:605:17:-;;;;;;-1:-1:-1;;406:605:17;;;;;1375:64:16;406:605:17;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;406:605:17;;;-1:-1:-1;406:605:17;;;;;;;;;;;;;;;;-1:-1:-1;406:605:17;;;;;;;1375:64:16;406:605:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5314:177:16:-;-1:-1:-1;5397:13:16;5414:16;5397:33;5414:16;;5433:24;;5314:177;:::o;5397:87::-;406:605:17;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5627:295:16;406:605:17;5627:295:16;406:605:17;;;;:::i;:::-;;5776:22:16;;406:605:17;;;5659:95:16;5627:295;;;406:605:17;;;;;;;;;;5820:14:16;406:605:17;;;;5397:13:16;406:605:17;;;;5899:4:16;406:605:17;;;;;;;;;;;;5627:295:16;;406:605:17;;5627:295:16;;;;;;:::i;:::-;406:605:17;5600:336:16;;5314:177;:::o;406:605:17:-;;;;;;;;;;;;;;;;-1:-1:-1;;;406:605:17;;;;;5627:295:16;406:605:17;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;406:605:17;;;;;;;;;;;;;;-1:-1:-1;406:605:17;;-1:-1:-1;406:605:17;;-1:-1:-1;5627:295:16;;-1:-1:-1;406:605:17;;621:133;6207:21:16;406:605:17;691:9;406:605;;;;;;;6207:21:16;406:605:17;679:10;-1:-1:-1;406:605:17;6374:9:16;406:605:17;;;-1:-1:-1;406:605:17;691:9;406:605;;;;;;;691:9;406:605;;-1:-1:-1;;;;;;;;;;;;406:605:17;679:10;6423:32:16;;406:605:17;;691:9;406:605;;717:30;406:605;679:10;717:30;;621:133::o;406:605::-;;;;:::o;:::-;;;-1:-1:-1;;;406:605:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;406:605:17;;;;;;;;;;;;-1:-1:-1;;;406:605:17;;;;;;","linkReferences":{},"immutableReferences":{"25585":[{"start":1431,"length":32}],"25599":[{"start":2558,"length":32}],"25601":[{"start":2597,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","deposit()":"d0e30db0","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256)":"2e1a7d4d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/WETH.sol)Inspired by WETH9 (https://github.com/dapphub/ds-weth/blob/master/src/weth9.sol)\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Minimalist and modern Wrapped Ether implementation.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":\"WETH\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solstat/lib/solmate/src/tokens/WETH.sol\":{\"keccak256\":\"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272\",\"dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH\"]},\"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969\",\"dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Withdrawal","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/solmate/src/tokens/WETH.sol":"WETH"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solstat/lib/solmate/src/tokens/WETH.sol":{"keccak256":"0x9b7c1a6a154f8298c26ca09a868d5352de6006c07091dd9a90e5d4069a3a57b0","urls":["bzz-raw://3c2507104931e101e5fa0f8e80b352e04f1ad7a90eb1dbfbce59f956bfae7272","dweb:/ipfs/Qma89Py3L5UmsqtkjXQf99PnddFkYAqnQUd9siQNRdDeMH"],"license":"MIT"},"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol":{"keccak256":"0x5f2e1158c68c1f3d15b80e8a7dd92b6849f873066969562ad33c0abb80e536ff","urls":["bzz-raw://8c829a9d77ae852541d7ed1492cad93c371907f45b8f85134683b76ec62d4969","dweb:/ipfs/QmX5dry5ofeGfGaC8GpDyCx3RHYf3CFpVftc517PVkuRSL"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/solmate/src/tokens/WETH.sol","id":26028,"exportedSymbols":{"ERC20":[25948],"SafeTransferLib":[26744],"WETH":[26027]},"nodeType":"SourceUnit","src":"32:980:17","nodes":[{"id":25950,"nodeType":"PragmaDirective","src":"32:24:17","nodes":[],"literals":["solidity",">=","0.8",".0"]},{"id":25952,"nodeType":"ImportDirective","src":"58:34:17","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/tokens/ERC20.sol","file":"./ERC20.sol","nameLocation":"-1:-1:-1","scope":26028,"sourceUnit":25949,"symbolAliases":[{"foreign":{"id":25951,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25948,"src":"66:5:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":25954,"nodeType":"ImportDirective","src":"94:61:17","nodes":[],"absolutePath":"lib/solstat/lib/solmate/src/utils/SafeTransferLib.sol","file":"../utils/SafeTransferLib.sol","nameLocation":"-1:-1:-1","scope":26028,"sourceUnit":26745,"symbolAliases":[{"foreign":{"id":25953,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26744,"src":"102:15:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":26027,"nodeType":"ContractDefinition","src":"406:605:17","nodes":[{"id":25963,"nodeType":"UsingForDirective","src":"464:34:17","nodes":[],"global":false,"libraryName":{"id":25961,"name":"SafeTransferLib","nameLocations":["470:15:17"],"nodeType":"IdentifierPath","referencedDeclaration":26744,"src":"470:15:17"},"typeName":{"id":25962,"name":"address","nodeType":"ElementaryTypeName","src":"490:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":25969,"nodeType":"EventDefinition","src":"504:52:17","nodes":[],"anonymous":false,"eventSelector":"e1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c","name":"Deposit","nameLocation":"510:7:17","parameters":{"id":25968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25965,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"534:4:17","nodeType":"VariableDeclaration","scope":25969,"src":"518:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25964,"name":"address","nodeType":"ElementaryTypeName","src":"518:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25967,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"548:6:17","nodeType":"VariableDeclaration","scope":25969,"src":"540:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25966,"name":"uint256","nodeType":"ElementaryTypeName","src":"540:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"517:38:17"}},{"id":25975,"nodeType":"EventDefinition","src":"562:53:17","nodes":[],"anonymous":false,"eventSelector":"7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65","name":"Withdrawal","nameLocation":"568:10:17","parameters":{"id":25974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25971,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"595:2:17","nodeType":"VariableDeclaration","scope":25975,"src":"579:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25970,"name":"address","nodeType":"ElementaryTypeName","src":"579:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25973,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"607:6:17","nodeType":"VariableDeclaration","scope":25975,"src":"599:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25972,"name":"uint256","nodeType":"ElementaryTypeName","src":"599:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"578:36:17"}},{"id":25993,"nodeType":"FunctionDefinition","src":"621:133:17","nodes":[],"body":{"id":25992,"nodeType":"Block","src":"663:91:17","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":25979,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"679:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":25980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"683:6:17","memberName":"sender","nodeType":"MemberAccess","src":"679:10:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":25981,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"691:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":25982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"695:5:17","memberName":"value","nodeType":"MemberAccess","src":"691:9:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25978,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25919,"src":"673:5:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":25983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"673:28:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25984,"nodeType":"ExpressionStatement","src":"673:28:17"},{"eventCall":{"arguments":[{"expression":{"id":25986,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"725:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":25987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"729:6:17","memberName":"sender","nodeType":"MemberAccess","src":"725:10:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":25988,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"737:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":25989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"741:5:17","memberName":"value","nodeType":"MemberAccess","src":"737:9:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25985,"name":"Deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25969,"src":"717:7:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":25990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"717:30:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25991,"nodeType":"EmitStatement","src":"712:35:17"}]},"functionSelector":"d0e30db0","implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"630:7:17","parameters":{"id":25976,"nodeType":"ParameterList","parameters":[],"src":"637:2:17"},"returnParameters":{"id":25977,"nodeType":"ParameterList","parameters":[],"src":"663:0:17"},"scope":26027,"stateMutability":"payable","virtual":true,"visibility":"public"},{"id":26019,"nodeType":"FunctionDefinition","src":"760:182:17","nodes":[],"body":{"id":26018,"nodeType":"Block","src":"809:133:17","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":25999,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"825:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":26000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"829:6:17","memberName":"sender","nodeType":"MemberAccess","src":"825:10:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26001,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25995,"src":"837:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":25998,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25947,"src":"819:5:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":26002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"819:25:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26003,"nodeType":"ExpressionStatement","src":"819:25:17"},{"eventCall":{"arguments":[{"expression":{"id":26005,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"871:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":26006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"875:6:17","memberName":"sender","nodeType":"MemberAccess","src":"871:10:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26007,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25995,"src":"883:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26004,"name":"Withdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25975,"src":"860:10:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":26008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"860:30:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26009,"nodeType":"EmitStatement","src":"855:35:17"},{"expression":{"arguments":[{"id":26015,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25995,"src":"928:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":26010,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"901:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":26013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"905:6:17","memberName":"sender","nodeType":"MemberAccess","src":"901:10:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":26014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"912:15:17","memberName":"safeTransferETH","nodeType":"MemberAccess","referencedDeclaration":26681,"src":"901:26:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,uint256)"}},"id":26016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"901:34:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26017,"nodeType":"ExpressionStatement","src":"901:34:17"}]},"functionSelector":"2e1a7d4d","implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"769:8:17","parameters":{"id":25996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25995,"mutability":"mutable","name":"amount","nameLocation":"786:6:17","nodeType":"VariableDeclaration","scope":26019,"src":"778:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25994,"name":"uint256","nodeType":"ElementaryTypeName","src":"778:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"777:16:17"},"returnParameters":{"id":25997,"nodeType":"ParameterList","parameters":[],"src":"809:0:17"},"scope":26027,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":26026,"nodeType":"FunctionDefinition","src":"948:61:17","nodes":[],"body":{"id":26025,"nodeType":"Block","src":"983:26:17","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":26022,"name":"deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25993,"src":"993:7:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":26023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"993:9:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26024,"nodeType":"ExpressionStatement","src":"993:9:17"}]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":26020,"nodeType":"ParameterList","parameters":[],"src":"955:2:17"},"returnParameters":{"id":26021,"nodeType":"ParameterList","parameters":[],"src":"983:0:17"},"scope":26027,"stateMutability":"payable","virtual":true,"visibility":"external"}],"abstract":false,"baseContracts":[{"arguments":[{"hexValue":"57726170706564204574686572","id":25957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"429:15:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_00cd3d46df44f2cbb950cf84eb2e92aa2ddd23195b1a009173ea59a063357ed3","typeString":"literal_string \"Wrapped Ether\""},"value":"Wrapped Ether"},{"hexValue":"57455448","id":25958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"446:6:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_0f8a193ff464434486c0daf7db2a895884365d2bc84ba47a68fcf89c1b14b5b8","typeString":"literal_string \"WETH\""},"value":"WETH"},{"hexValue":"3138","id":25959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"454:2:17","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"baseName":{"id":25956,"name":"ERC20","nameLocations":["423:5:17"],"nodeType":"IdentifierPath","referencedDeclaration":25948,"src":"423:5:17"},"id":25960,"nodeType":"InheritanceSpecifier","src":"423:34:17"}],"canonicalName":"WETH","contractDependencies":[],"contractKind":"contract","documentation":{"id":25955,"nodeType":"StructuredDocumentation","src":"157:249:17","text":"@notice Minimalist and modern Wrapped Ether implementation.\n @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/WETH.sol)\n @author Inspired by WETH9 (https://github.com/dapphub/ds-weth/blob/master/src/weth9.sol)"},"fullyImplemented":true,"linearizedBaseContracts":[26027,25948],"name":"WETH","nameLocation":"415:4:17","scope":26028,"usedErrors":[],"usedEvents":[25571,25579,25969,25975]}],"license":"MIT"},"id":17} \ No newline at end of file diff --git a/out/console.sol/console.json b/out/console.sol/console.json deleted file mode 100644 index c95cea54..00000000 --- a/out/console.sol/console.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220b3407371d7ffa42573922bd4585138a286ee0cc86de1f944e9fa7ea3928affe764736f6c63430008160033","sourceMap":"66:66622:13:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220b3407371d7ffa42573922bd4585138a286ee0cc86de1f944e9fa7ea3928affe764736f6c63430008160033","sourceMap":"66:66622:13:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/forge-std/src/console.sol\":\"console\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/forge-std/src/console.sol":"console"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/forge-std/src/console.sol","id":17417,"exportedSymbols":{"console":[17416]},"nodeType":"SourceUnit","src":"32:66656:13","nodes":[{"id":9354,"nodeType":"PragmaDirective","src":"32:32:13","nodes":[],"literals":["solidity",">=","0.4",".22","<","0.9",".0"]},{"id":17416,"nodeType":"ContractDefinition","src":"66:66622:13","nodes":[{"id":9360,"nodeType":"VariableDeclaration","src":"88:86:13","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE_ADDRESS","nameLocation":"105:15:13","scope":17416,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9355,"name":"address","nodeType":"ElementaryTypeName","src":"88:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":9358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"131:42:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"123:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9356,"name":"address","nodeType":"ElementaryTypeName","src":"123:7:13","typeDescriptions":{}}},"id":9359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"123:51:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":9376,"nodeType":"FunctionDefinition","src":"181:376:13","nodes":[],"body":{"id":9375,"nodeType":"Block","src":"241:316:13","nodes":[],"statements":[{"assignments":[9366],"declarations":[{"constant":false,"id":9366,"mutability":"mutable","name":"payloadLength","nameLocation":"259:13:13","nodeType":"VariableDeclaration","scope":9375,"src":"251:21:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9365,"name":"uint256","nodeType":"ElementaryTypeName","src":"251:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9369,"initialValue":{"expression":{"id":9367,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9362,"src":"275:7:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"283:6:13","memberName":"length","nodeType":"MemberAccess","src":"275:14:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"251:38:13"},{"assignments":[9371],"declarations":[{"constant":false,"id":9371,"mutability":"mutable","name":"consoleAddress","nameLocation":"307:14:13","nodeType":"VariableDeclaration","scope":9375,"src":"299:22:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9370,"name":"address","nodeType":"ElementaryTypeName","src":"299:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9373,"initialValue":{"id":9372,"name":"CONSOLE_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9360,"src":"324:15:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"299:40:13"},{"AST":{"nativeSrc":"401:150:13","nodeType":"YulBlock","src":"401:150:13","statements":[{"nativeSrc":"415:36:13","nodeType":"YulVariableDeclaration","src":"415:36:13","value":{"arguments":[{"name":"payload","nativeSrc":"439:7:13","nodeType":"YulIdentifier","src":"439:7:13"},{"kind":"number","nativeSrc":"448:2:13","nodeType":"YulLiteral","src":"448:2:13","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"435:3:13","nodeType":"YulIdentifier","src":"435:3:13"},"nativeSrc":"435:16:13","nodeType":"YulFunctionCall","src":"435:16:13"},"variables":[{"name":"payloadStart","nativeSrc":"419:12:13","nodeType":"YulTypedName","src":"419:12:13","type":""}]},{"nativeSrc":"464:77:13","nodeType":"YulVariableDeclaration","src":"464:77:13","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"484:3:13","nodeType":"YulIdentifier","src":"484:3:13"},"nativeSrc":"484:5:13","nodeType":"YulFunctionCall","src":"484:5:13"},{"name":"consoleAddress","nativeSrc":"491:14:13","nodeType":"YulIdentifier","src":"491:14:13"},{"name":"payloadStart","nativeSrc":"507:12:13","nodeType":"YulIdentifier","src":"507:12:13"},{"name":"payloadLength","nativeSrc":"521:13:13","nodeType":"YulIdentifier","src":"521:13:13"},{"kind":"number","nativeSrc":"536:1:13","nodeType":"YulLiteral","src":"536:1:13","type":"","value":"0"},{"kind":"number","nativeSrc":"539:1:13","nodeType":"YulLiteral","src":"539:1:13","type":"","value":"0"}],"functionName":{"name":"staticcall","nativeSrc":"473:10:13","nodeType":"YulIdentifier","src":"473:10:13"},"nativeSrc":"473:68:13","nodeType":"YulFunctionCall","src":"473:68:13"},"variables":[{"name":"r","nativeSrc":"468:1:13","nodeType":"YulTypedName","src":"468:1:13","type":""}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":9371,"isOffset":false,"isSlot":false,"src":"491:14:13","valueSize":1},{"declaration":9362,"isOffset":false,"isSlot":false,"src":"439:7:13","valueSize":1},{"declaration":9366,"isOffset":false,"isSlot":false,"src":"521:13:13","valueSize":1}],"id":9374,"nodeType":"InlineAssembly","src":"392:159:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayload","nameLocation":"190:15:13","parameters":{"id":9363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9362,"mutability":"mutable","name":"payload","nameLocation":"219:7:13","nodeType":"VariableDeclaration","scope":9376,"src":"206:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9361,"name":"bytes","nodeType":"ElementaryTypeName","src":"206:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"205:22:13"},"returnParameters":{"id":9364,"nodeType":"ParameterList","parameters":[],"src":"241:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":9387,"nodeType":"FunctionDefinition","src":"563:95:13","nodes":[],"body":{"id":9386,"nodeType":"Block","src":"592:66:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672829","id":9382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"642:7:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39","typeString":"literal_string \"log()\""},"value":"log()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39","typeString":"literal_string \"log()\""}],"expression":{"id":9380,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"618:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"622:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"618:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"618:32:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9379,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"602:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"602:49:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9385,"nodeType":"ExpressionStatement","src":"602:49:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"572:3:13","parameters":{"id":9377,"nodeType":"ParameterList","parameters":[],"src":"575:2:13"},"returnParameters":{"id":9378,"nodeType":"ParameterList","parameters":[],"src":"592:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9401,"nodeType":"FunctionDefinition","src":"664:111:13","nodes":[],"body":{"id":9400,"nodeType":"Block","src":"702:73:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728696e7429","id":9395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"752:10:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e0c1d1dcf573259576e2a7e591d366143f88fb7f7e57df09852da9c36797f2e","typeString":"literal_string \"log(int)\""},"value":"log(int)"},{"id":9396,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9389,"src":"764:2:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e0c1d1dcf573259576e2a7e591d366143f88fb7f7e57df09852da9c36797f2e","typeString":"literal_string \"log(int)\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":9393,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"728:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"732:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"728:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"728:39:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9392,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"712:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"712:56:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9399,"nodeType":"ExpressionStatement","src":"712:56:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logInt","nameLocation":"673:6:13","parameters":{"id":9390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9389,"mutability":"mutable","name":"p0","nameLocation":"684:2:13","nodeType":"VariableDeclaration","scope":9401,"src":"680:6:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9388,"name":"int","nodeType":"ElementaryTypeName","src":"680:3:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"679:8:13"},"returnParameters":{"id":9391,"nodeType":"ParameterList","parameters":[],"src":"702:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9415,"nodeType":"FunctionDefinition","src":"781:114:13","nodes":[],"body":{"id":9414,"nodeType":"Block","src":"821:74:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e7429","id":9409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"871:11:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5b1bba92d8f98cf25e27c94d7fc7cbfbae95a49dfe5ab0cdf64ddd7181bb984","typeString":"literal_string \"log(uint)\""},"value":"log(uint)"},{"id":9410,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9403,"src":"884:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f5b1bba92d8f98cf25e27c94d7fc7cbfbae95a49dfe5ab0cdf64ddd7181bb984","typeString":"literal_string \"log(uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9407,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"847:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"851:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"847:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"847:40:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9406,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"831:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"831:57:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9413,"nodeType":"ExpressionStatement","src":"831:57:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logUint","nameLocation":"790:7:13","parameters":{"id":9404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9403,"mutability":"mutable","name":"p0","nameLocation":"803:2:13","nodeType":"VariableDeclaration","scope":9415,"src":"798:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9402,"name":"uint","nodeType":"ElementaryTypeName","src":"798:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"797:9:13"},"returnParameters":{"id":9405,"nodeType":"ParameterList","parameters":[],"src":"821:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9429,"nodeType":"FunctionDefinition","src":"901:127:13","nodes":[],"body":{"id":9428,"nodeType":"Block","src":"952:76:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":9423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1002:13:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":9424,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9417,"src":"1017:2:13","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":9421,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"978:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"982:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"978:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"978:42:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9420,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"962:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"962:59:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9427,"nodeType":"ExpressionStatement","src":"962:59:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logString","nameLocation":"910:9:13","parameters":{"id":9418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9417,"mutability":"mutable","name":"p0","nameLocation":"934:2:13","nodeType":"VariableDeclaration","scope":9429,"src":"920:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9416,"name":"string","nodeType":"ElementaryTypeName","src":"920:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"919:18:13"},"returnParameters":{"id":9419,"nodeType":"ParameterList","parameters":[],"src":"952:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9443,"nodeType":"FunctionDefinition","src":"1034:114:13","nodes":[],"body":{"id":9442,"nodeType":"Block","src":"1074:74:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c29","id":9437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1124:11:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},"value":"log(bool)"},{"id":9438,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9431,"src":"1137:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9435,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1100:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1104:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1100:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1100:40:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9434,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"1084:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1084:57:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9441,"nodeType":"ExpressionStatement","src":"1084:57:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBool","nameLocation":"1043:7:13","parameters":{"id":9432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9431,"mutability":"mutable","name":"p0","nameLocation":"1056:2:13","nodeType":"VariableDeclaration","scope":9443,"src":"1051:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9430,"name":"bool","nodeType":"ElementaryTypeName","src":"1051:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1050:9:13"},"returnParameters":{"id":9433,"nodeType":"ParameterList","parameters":[],"src":"1074:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9457,"nodeType":"FunctionDefinition","src":"1154:123:13","nodes":[],"body":{"id":9456,"nodeType":"Block","src":"1200:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286164647265737329","id":9451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1250:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},"value":"log(address)"},{"id":9452,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9445,"src":"1266:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9449,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1226:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1230:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1226:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1226:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9448,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"1210:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1210:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9455,"nodeType":"ExpressionStatement","src":"1210:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logAddress","nameLocation":"1163:10:13","parameters":{"id":9446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9445,"mutability":"mutable","name":"p0","nameLocation":"1182:2:13","nodeType":"VariableDeclaration","scope":9457,"src":"1174:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9444,"name":"address","nodeType":"ElementaryTypeName","src":"1174:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1173:12:13"},"returnParameters":{"id":9447,"nodeType":"ParameterList","parameters":[],"src":"1200:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9471,"nodeType":"FunctionDefinition","src":"1283:124:13","nodes":[],"body":{"id":9470,"nodeType":"Block","src":"1332:75:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728627974657329","id":9465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1382:12:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238","typeString":"literal_string \"log(bytes)\""},"value":"log(bytes)"},{"id":9466,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9459,"src":"1396:2:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238","typeString":"literal_string \"log(bytes)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":9463,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1358:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1362:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1358:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1358:41:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9462,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"1342:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1342:58:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9469,"nodeType":"ExpressionStatement","src":"1342:58:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes","nameLocation":"1292:8:13","parameters":{"id":9460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9459,"mutability":"mutable","name":"p0","nameLocation":"1314:2:13","nodeType":"VariableDeclaration","scope":9471,"src":"1301:15:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9458,"name":"bytes","nodeType":"ElementaryTypeName","src":"1301:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1300:17:13"},"returnParameters":{"id":9461,"nodeType":"ParameterList","parameters":[],"src":"1332:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9485,"nodeType":"FunctionDefinition","src":"1413:120:13","nodes":[],"body":{"id":9484,"nodeType":"Block","src":"1457:76:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733129","id":9479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1507:13:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041","typeString":"literal_string \"log(bytes1)\""},"value":"log(bytes1)"},{"id":9480,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9473,"src":"1522:2:13","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041","typeString":"literal_string \"log(bytes1)\""},{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"expression":{"id":9477,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1483:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1487:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1483:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1483:42:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9476,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"1467:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1467:59:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9483,"nodeType":"ExpressionStatement","src":"1467:59:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes1","nameLocation":"1422:9:13","parameters":{"id":9474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9473,"mutability":"mutable","name":"p0","nameLocation":"1439:2:13","nodeType":"VariableDeclaration","scope":9485,"src":"1432:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":9472,"name":"bytes1","nodeType":"ElementaryTypeName","src":"1432:6:13","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"}],"src":"1431:11:13"},"returnParameters":{"id":9475,"nodeType":"ParameterList","parameters":[],"src":"1457:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9499,"nodeType":"FunctionDefinition","src":"1539:120:13","nodes":[],"body":{"id":9498,"nodeType":"Block","src":"1583:76:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733229","id":9493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1633:13:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224","typeString":"literal_string \"log(bytes2)\""},"value":"log(bytes2)"},{"id":9494,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9487,"src":"1648:2:13","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224","typeString":"literal_string \"log(bytes2)\""},{"typeIdentifier":"t_bytes2","typeString":"bytes2"}],"expression":{"id":9491,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1609:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1613:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1609:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1609:42:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9490,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"1593:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1593:59:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9497,"nodeType":"ExpressionStatement","src":"1593:59:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes2","nameLocation":"1548:9:13","parameters":{"id":9488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9487,"mutability":"mutable","name":"p0","nameLocation":"1565:2:13","nodeType":"VariableDeclaration","scope":9499,"src":"1558:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"},"typeName":{"id":9486,"name":"bytes2","nodeType":"ElementaryTypeName","src":"1558:6:13","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}},"visibility":"internal"}],"src":"1557:11:13"},"returnParameters":{"id":9489,"nodeType":"ParameterList","parameters":[],"src":"1583:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9513,"nodeType":"FunctionDefinition","src":"1665:120:13","nodes":[],"body":{"id":9512,"nodeType":"Block","src":"1709:76:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733329","id":9507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1759:13:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee","typeString":"literal_string \"log(bytes3)\""},"value":"log(bytes3)"},{"id":9508,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9501,"src":"1774:2:13","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee","typeString":"literal_string \"log(bytes3)\""},{"typeIdentifier":"t_bytes3","typeString":"bytes3"}],"expression":{"id":9505,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1735:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1739:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1735:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1735:42:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9504,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"1719:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1719:59:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9511,"nodeType":"ExpressionStatement","src":"1719:59:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes3","nameLocation":"1674:9:13","parameters":{"id":9502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9501,"mutability":"mutable","name":"p0","nameLocation":"1691:2:13","nodeType":"VariableDeclaration","scope":9513,"src":"1684:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"},"typeName":{"id":9500,"name":"bytes3","nodeType":"ElementaryTypeName","src":"1684:6:13","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"}},"visibility":"internal"}],"src":"1683:11:13"},"returnParameters":{"id":9503,"nodeType":"ParameterList","parameters":[],"src":"1709:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9527,"nodeType":"FunctionDefinition","src":"1791:120:13","nodes":[],"body":{"id":9526,"nodeType":"Block","src":"1835:76:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733429","id":9521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1885:13:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55","typeString":"literal_string \"log(bytes4)\""},"value":"log(bytes4)"},{"id":9522,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9515,"src":"1900:2:13","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55","typeString":"literal_string \"log(bytes4)\""},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":9519,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1861:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9520,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1865:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1861:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1861:42:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9518,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"1845:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1845:59:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9525,"nodeType":"ExpressionStatement","src":"1845:59:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes4","nameLocation":"1800:9:13","parameters":{"id":9516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9515,"mutability":"mutable","name":"p0","nameLocation":"1817:2:13","nodeType":"VariableDeclaration","scope":9527,"src":"1810:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9514,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1810:6:13","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1809:11:13"},"returnParameters":{"id":9517,"nodeType":"ParameterList","parameters":[],"src":"1835:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9541,"nodeType":"FunctionDefinition","src":"1917:120:13","nodes":[],"body":{"id":9540,"nodeType":"Block","src":"1961:76:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733529","id":9535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2011:13:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a","typeString":"literal_string \"log(bytes5)\""},"value":"log(bytes5)"},{"id":9536,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9529,"src":"2026:2:13","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a","typeString":"literal_string \"log(bytes5)\""},{"typeIdentifier":"t_bytes5","typeString":"bytes5"}],"expression":{"id":9533,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1987:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9534,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1991:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1987:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1987:42:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9532,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"1971:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1971:59:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9539,"nodeType":"ExpressionStatement","src":"1971:59:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes5","nameLocation":"1926:9:13","parameters":{"id":9530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9529,"mutability":"mutable","name":"p0","nameLocation":"1943:2:13","nodeType":"VariableDeclaration","scope":9541,"src":"1936:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"},"typeName":{"id":9528,"name":"bytes5","nodeType":"ElementaryTypeName","src":"1936:6:13","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"}},"visibility":"internal"}],"src":"1935:11:13"},"returnParameters":{"id":9531,"nodeType":"ParameterList","parameters":[],"src":"1961:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9555,"nodeType":"FunctionDefinition","src":"2043:120:13","nodes":[],"body":{"id":9554,"nodeType":"Block","src":"2087:76:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733629","id":9549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2137:13:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330","typeString":"literal_string \"log(bytes6)\""},"value":"log(bytes6)"},{"id":9550,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9543,"src":"2152:2:13","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330","typeString":"literal_string \"log(bytes6)\""},{"typeIdentifier":"t_bytes6","typeString":"bytes6"}],"expression":{"id":9547,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2113:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2117:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2113:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2113:42:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9546,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"2097:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2097:59:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9553,"nodeType":"ExpressionStatement","src":"2097:59:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes6","nameLocation":"2052:9:13","parameters":{"id":9544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9543,"mutability":"mutable","name":"p0","nameLocation":"2069:2:13","nodeType":"VariableDeclaration","scope":9555,"src":"2062:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"},"typeName":{"id":9542,"name":"bytes6","nodeType":"ElementaryTypeName","src":"2062:6:13","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"}},"visibility":"internal"}],"src":"2061:11:13"},"returnParameters":{"id":9545,"nodeType":"ParameterList","parameters":[],"src":"2087:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9569,"nodeType":"FunctionDefinition","src":"2169:120:13","nodes":[],"body":{"id":9568,"nodeType":"Block","src":"2213:76:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733729","id":9563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2263:13:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29","typeString":"literal_string \"log(bytes7)\""},"value":"log(bytes7)"},{"id":9564,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9557,"src":"2278:2:13","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29","typeString":"literal_string \"log(bytes7)\""},{"typeIdentifier":"t_bytes7","typeString":"bytes7"}],"expression":{"id":9561,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2239:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2243:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2239:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2239:42:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9560,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"2223:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2223:59:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9567,"nodeType":"ExpressionStatement","src":"2223:59:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes7","nameLocation":"2178:9:13","parameters":{"id":9558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9557,"mutability":"mutable","name":"p0","nameLocation":"2195:2:13","nodeType":"VariableDeclaration","scope":9569,"src":"2188:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"},"typeName":{"id":9556,"name":"bytes7","nodeType":"ElementaryTypeName","src":"2188:6:13","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},"visibility":"internal"}],"src":"2187:11:13"},"returnParameters":{"id":9559,"nodeType":"ParameterList","parameters":[],"src":"2213:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9583,"nodeType":"FunctionDefinition","src":"2295:120:13","nodes":[],"body":{"id":9582,"nodeType":"Block","src":"2339:76:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733829","id":9577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2389:13:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3","typeString":"literal_string \"log(bytes8)\""},"value":"log(bytes8)"},{"id":9578,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9571,"src":"2404:2:13","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3","typeString":"literal_string \"log(bytes8)\""},{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"expression":{"id":9575,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2365:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2369:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2365:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2365:42:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9574,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"2349:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2349:59:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9581,"nodeType":"ExpressionStatement","src":"2349:59:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes8","nameLocation":"2304:9:13","parameters":{"id":9572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9571,"mutability":"mutable","name":"p0","nameLocation":"2321:2:13","nodeType":"VariableDeclaration","scope":9583,"src":"2314:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"},"typeName":{"id":9570,"name":"bytes8","nodeType":"ElementaryTypeName","src":"2314:6:13","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"visibility":"internal"}],"src":"2313:11:13"},"returnParameters":{"id":9573,"nodeType":"ParameterList","parameters":[],"src":"2339:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9597,"nodeType":"FunctionDefinition","src":"2421:120:13","nodes":[],"body":{"id":9596,"nodeType":"Block","src":"2465:76:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733929","id":9591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2515:13:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667","typeString":"literal_string \"log(bytes9)\""},"value":"log(bytes9)"},{"id":9592,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9585,"src":"2530:2:13","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667","typeString":"literal_string \"log(bytes9)\""},{"typeIdentifier":"t_bytes9","typeString":"bytes9"}],"expression":{"id":9589,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2491:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9590,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2495:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2491:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2491:42:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9588,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"2475:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2475:59:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9595,"nodeType":"ExpressionStatement","src":"2475:59:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes9","nameLocation":"2430:9:13","parameters":{"id":9586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9585,"mutability":"mutable","name":"p0","nameLocation":"2447:2:13","nodeType":"VariableDeclaration","scope":9597,"src":"2440:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"},"typeName":{"id":9584,"name":"bytes9","nodeType":"ElementaryTypeName","src":"2440:6:13","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"}},"visibility":"internal"}],"src":"2439:11:13"},"returnParameters":{"id":9587,"nodeType":"ParameterList","parameters":[],"src":"2465:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9611,"nodeType":"FunctionDefinition","src":"2547:123:13","nodes":[],"body":{"id":9610,"nodeType":"Block","src":"2593:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313029","id":9605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2643:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66","typeString":"literal_string \"log(bytes10)\""},"value":"log(bytes10)"},{"id":9606,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9599,"src":"2659:2:13","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66","typeString":"literal_string \"log(bytes10)\""},{"typeIdentifier":"t_bytes10","typeString":"bytes10"}],"expression":{"id":9603,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2619:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2623:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2619:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2619:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9602,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"2603:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2603:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9609,"nodeType":"ExpressionStatement","src":"2603:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes10","nameLocation":"2556:10:13","parameters":{"id":9600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9599,"mutability":"mutable","name":"p0","nameLocation":"2575:2:13","nodeType":"VariableDeclaration","scope":9611,"src":"2567:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"},"typeName":{"id":9598,"name":"bytes10","nodeType":"ElementaryTypeName","src":"2567:7:13","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"}},"visibility":"internal"}],"src":"2566:12:13"},"returnParameters":{"id":9601,"nodeType":"ParameterList","parameters":[],"src":"2593:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9625,"nodeType":"FunctionDefinition","src":"2676:123:13","nodes":[],"body":{"id":9624,"nodeType":"Block","src":"2722:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313129","id":9619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2772:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9","typeString":"literal_string \"log(bytes11)\""},"value":"log(bytes11)"},{"id":9620,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9613,"src":"2788:2:13","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9","typeString":"literal_string \"log(bytes11)\""},{"typeIdentifier":"t_bytes11","typeString":"bytes11"}],"expression":{"id":9617,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2748:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2752:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2748:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2748:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9616,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"2732:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2732:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9623,"nodeType":"ExpressionStatement","src":"2732:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes11","nameLocation":"2685:10:13","parameters":{"id":9614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9613,"mutability":"mutable","name":"p0","nameLocation":"2704:2:13","nodeType":"VariableDeclaration","scope":9625,"src":"2696:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"},"typeName":{"id":9612,"name":"bytes11","nodeType":"ElementaryTypeName","src":"2696:7:13","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"}},"visibility":"internal"}],"src":"2695:12:13"},"returnParameters":{"id":9615,"nodeType":"ParameterList","parameters":[],"src":"2722:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9639,"nodeType":"FunctionDefinition","src":"2805:123:13","nodes":[],"body":{"id":9638,"nodeType":"Block","src":"2851:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313229","id":9633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2901:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2","typeString":"literal_string \"log(bytes12)\""},"value":"log(bytes12)"},{"id":9634,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9627,"src":"2917:2:13","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2","typeString":"literal_string \"log(bytes12)\""},{"typeIdentifier":"t_bytes12","typeString":"bytes12"}],"expression":{"id":9631,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2877:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2881:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2877:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2877:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9630,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"2861:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2861:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9637,"nodeType":"ExpressionStatement","src":"2861:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes12","nameLocation":"2814:10:13","parameters":{"id":9628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9627,"mutability":"mutable","name":"p0","nameLocation":"2833:2:13","nodeType":"VariableDeclaration","scope":9639,"src":"2825:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"},"typeName":{"id":9626,"name":"bytes12","nodeType":"ElementaryTypeName","src":"2825:7:13","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"visibility":"internal"}],"src":"2824:12:13"},"returnParameters":{"id":9629,"nodeType":"ParameterList","parameters":[],"src":"2851:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9653,"nodeType":"FunctionDefinition","src":"2934:123:13","nodes":[],"body":{"id":9652,"nodeType":"Block","src":"2980:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313329","id":9647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3030:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec","typeString":"literal_string \"log(bytes13)\""},"value":"log(bytes13)"},{"id":9648,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9641,"src":"3046:2:13","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec","typeString":"literal_string \"log(bytes13)\""},{"typeIdentifier":"t_bytes13","typeString":"bytes13"}],"expression":{"id":9645,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3006:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3010:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3006:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3006:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9644,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"2990:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2990:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9651,"nodeType":"ExpressionStatement","src":"2990:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes13","nameLocation":"2943:10:13","parameters":{"id":9642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9641,"mutability":"mutable","name":"p0","nameLocation":"2962:2:13","nodeType":"VariableDeclaration","scope":9653,"src":"2954:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"},"typeName":{"id":9640,"name":"bytes13","nodeType":"ElementaryTypeName","src":"2954:7:13","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"}},"visibility":"internal"}],"src":"2953:12:13"},"returnParameters":{"id":9643,"nodeType":"ParameterList","parameters":[],"src":"2980:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9667,"nodeType":"FunctionDefinition","src":"3063:123:13","nodes":[],"body":{"id":9666,"nodeType":"Block","src":"3109:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313429","id":9661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3159:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278","typeString":"literal_string \"log(bytes14)\""},"value":"log(bytes14)"},{"id":9662,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9655,"src":"3175:2:13","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278","typeString":"literal_string \"log(bytes14)\""},{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"expression":{"id":9659,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3135:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3139:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3135:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3135:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9658,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"3119:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3119:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9665,"nodeType":"ExpressionStatement","src":"3119:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes14","nameLocation":"3072:10:13","parameters":{"id":9656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9655,"mutability":"mutable","name":"p0","nameLocation":"3091:2:13","nodeType":"VariableDeclaration","scope":9667,"src":"3083:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":9654,"name":"bytes14","nodeType":"ElementaryTypeName","src":"3083:7:13","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"}],"src":"3082:12:13"},"returnParameters":{"id":9657,"nodeType":"ParameterList","parameters":[],"src":"3109:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9681,"nodeType":"FunctionDefinition","src":"3192:123:13","nodes":[],"body":{"id":9680,"nodeType":"Block","src":"3238:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313529","id":9675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3288:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606","typeString":"literal_string \"log(bytes15)\""},"value":"log(bytes15)"},{"id":9676,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9669,"src":"3304:2:13","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606","typeString":"literal_string \"log(bytes15)\""},{"typeIdentifier":"t_bytes15","typeString":"bytes15"}],"expression":{"id":9673,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3264:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3268:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3264:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3264:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9672,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"3248:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3248:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9679,"nodeType":"ExpressionStatement","src":"3248:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes15","nameLocation":"3201:10:13","parameters":{"id":9670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9669,"mutability":"mutable","name":"p0","nameLocation":"3220:2:13","nodeType":"VariableDeclaration","scope":9681,"src":"3212:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"},"typeName":{"id":9668,"name":"bytes15","nodeType":"ElementaryTypeName","src":"3212:7:13","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"}},"visibility":"internal"}],"src":"3211:12:13"},"returnParameters":{"id":9671,"nodeType":"ParameterList","parameters":[],"src":"3238:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9695,"nodeType":"FunctionDefinition","src":"3321:123:13","nodes":[],"body":{"id":9694,"nodeType":"Block","src":"3367:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313629","id":9689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3417:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3","typeString":"literal_string \"log(bytes16)\""},"value":"log(bytes16)"},{"id":9690,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9683,"src":"3433:2:13","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3","typeString":"literal_string \"log(bytes16)\""},{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":9687,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3393:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3397:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3393:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3393:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9686,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"3377:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3377:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9693,"nodeType":"ExpressionStatement","src":"3377:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes16","nameLocation":"3330:10:13","parameters":{"id":9684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9683,"mutability":"mutable","name":"p0","nameLocation":"3349:2:13","nodeType":"VariableDeclaration","scope":9695,"src":"3341:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":9682,"name":"bytes16","nodeType":"ElementaryTypeName","src":"3341:7:13","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"3340:12:13"},"returnParameters":{"id":9685,"nodeType":"ParameterList","parameters":[],"src":"3367:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9709,"nodeType":"FunctionDefinition","src":"3450:123:13","nodes":[],"body":{"id":9708,"nodeType":"Block","src":"3496:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313729","id":9703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3546:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3","typeString":"literal_string \"log(bytes17)\""},"value":"log(bytes17)"},{"id":9704,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9697,"src":"3562:2:13","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3","typeString":"literal_string \"log(bytes17)\""},{"typeIdentifier":"t_bytes17","typeString":"bytes17"}],"expression":{"id":9701,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3522:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3526:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3522:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3522:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9700,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"3506:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3506:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9707,"nodeType":"ExpressionStatement","src":"3506:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes17","nameLocation":"3459:10:13","parameters":{"id":9698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9697,"mutability":"mutable","name":"p0","nameLocation":"3478:2:13","nodeType":"VariableDeclaration","scope":9709,"src":"3470:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"},"typeName":{"id":9696,"name":"bytes17","nodeType":"ElementaryTypeName","src":"3470:7:13","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"}},"visibility":"internal"}],"src":"3469:12:13"},"returnParameters":{"id":9699,"nodeType":"ParameterList","parameters":[],"src":"3496:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9723,"nodeType":"FunctionDefinition","src":"3579:123:13","nodes":[],"body":{"id":9722,"nodeType":"Block","src":"3625:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313829","id":9717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3675:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116","typeString":"literal_string \"log(bytes18)\""},"value":"log(bytes18)"},{"id":9718,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9711,"src":"3691:2:13","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116","typeString":"literal_string \"log(bytes18)\""},{"typeIdentifier":"t_bytes18","typeString":"bytes18"}],"expression":{"id":9715,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3651:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9716,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3655:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3651:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3651:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9714,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"3635:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3635:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9721,"nodeType":"ExpressionStatement","src":"3635:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes18","nameLocation":"3588:10:13","parameters":{"id":9712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9711,"mutability":"mutable","name":"p0","nameLocation":"3607:2:13","nodeType":"VariableDeclaration","scope":9723,"src":"3599:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"},"typeName":{"id":9710,"name":"bytes18","nodeType":"ElementaryTypeName","src":"3599:7:13","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"}},"visibility":"internal"}],"src":"3598:12:13"},"returnParameters":{"id":9713,"nodeType":"ParameterList","parameters":[],"src":"3625:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9737,"nodeType":"FunctionDefinition","src":"3708:123:13","nodes":[],"body":{"id":9736,"nodeType":"Block","src":"3754:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313929","id":9731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3804:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada","typeString":"literal_string \"log(bytes19)\""},"value":"log(bytes19)"},{"id":9732,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9725,"src":"3820:2:13","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada","typeString":"literal_string \"log(bytes19)\""},{"typeIdentifier":"t_bytes19","typeString":"bytes19"}],"expression":{"id":9729,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3780:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3784:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3780:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3780:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9728,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"3764:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3764:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9735,"nodeType":"ExpressionStatement","src":"3764:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes19","nameLocation":"3717:10:13","parameters":{"id":9726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9725,"mutability":"mutable","name":"p0","nameLocation":"3736:2:13","nodeType":"VariableDeclaration","scope":9737,"src":"3728:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"},"typeName":{"id":9724,"name":"bytes19","nodeType":"ElementaryTypeName","src":"3728:7:13","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"}},"visibility":"internal"}],"src":"3727:12:13"},"returnParameters":{"id":9727,"nodeType":"ParameterList","parameters":[],"src":"3754:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9751,"nodeType":"FunctionDefinition","src":"3837:123:13","nodes":[],"body":{"id":9750,"nodeType":"Block","src":"3883:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323029","id":9745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3933:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231","typeString":"literal_string \"log(bytes20)\""},"value":"log(bytes20)"},{"id":9746,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9739,"src":"3949:2:13","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231","typeString":"literal_string \"log(bytes20)\""},{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"expression":{"id":9743,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3909:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3913:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3909:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3909:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9742,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"3893:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3893:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9749,"nodeType":"ExpressionStatement","src":"3893:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes20","nameLocation":"3846:10:13","parameters":{"id":9740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9739,"mutability":"mutable","name":"p0","nameLocation":"3865:2:13","nodeType":"VariableDeclaration","scope":9751,"src":"3857:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":9738,"name":"bytes20","nodeType":"ElementaryTypeName","src":"3857:7:13","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"3856:12:13"},"returnParameters":{"id":9741,"nodeType":"ParameterList","parameters":[],"src":"3883:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9765,"nodeType":"FunctionDefinition","src":"3966:123:13","nodes":[],"body":{"id":9764,"nodeType":"Block","src":"4012:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323129","id":9759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4062:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7","typeString":"literal_string \"log(bytes21)\""},"value":"log(bytes21)"},{"id":9760,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9753,"src":"4078:2:13","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7","typeString":"literal_string \"log(bytes21)\""},{"typeIdentifier":"t_bytes21","typeString":"bytes21"}],"expression":{"id":9757,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4038:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4042:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4038:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4038:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9756,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"4022:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4022:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9763,"nodeType":"ExpressionStatement","src":"4022:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes21","nameLocation":"3975:10:13","parameters":{"id":9754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9753,"mutability":"mutable","name":"p0","nameLocation":"3994:2:13","nodeType":"VariableDeclaration","scope":9765,"src":"3986:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"},"typeName":{"id":9752,"name":"bytes21","nodeType":"ElementaryTypeName","src":"3986:7:13","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"}},"visibility":"internal"}],"src":"3985:12:13"},"returnParameters":{"id":9755,"nodeType":"ParameterList","parameters":[],"src":"4012:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9779,"nodeType":"FunctionDefinition","src":"4095:123:13","nodes":[],"body":{"id":9778,"nodeType":"Block","src":"4141:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323229","id":9773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4191:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575","typeString":"literal_string \"log(bytes22)\""},"value":"log(bytes22)"},{"id":9774,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9767,"src":"4207:2:13","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575","typeString":"literal_string \"log(bytes22)\""},{"typeIdentifier":"t_bytes22","typeString":"bytes22"}],"expression":{"id":9771,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4167:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9772,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4171:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4167:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4167:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9770,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"4151:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4151:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9777,"nodeType":"ExpressionStatement","src":"4151:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes22","nameLocation":"4104:10:13","parameters":{"id":9768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9767,"mutability":"mutable","name":"p0","nameLocation":"4123:2:13","nodeType":"VariableDeclaration","scope":9779,"src":"4115:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"},"typeName":{"id":9766,"name":"bytes22","nodeType":"ElementaryTypeName","src":"4115:7:13","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"}},"visibility":"internal"}],"src":"4114:12:13"},"returnParameters":{"id":9769,"nodeType":"ParameterList","parameters":[],"src":"4141:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9793,"nodeType":"FunctionDefinition","src":"4224:123:13","nodes":[],"body":{"id":9792,"nodeType":"Block","src":"4270:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323329","id":9787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4320:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061","typeString":"literal_string \"log(bytes23)\""},"value":"log(bytes23)"},{"id":9788,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9781,"src":"4336:2:13","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061","typeString":"literal_string \"log(bytes23)\""},{"typeIdentifier":"t_bytes23","typeString":"bytes23"}],"expression":{"id":9785,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4296:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4300:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4296:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4296:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9784,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"4280:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4280:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9791,"nodeType":"ExpressionStatement","src":"4280:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes23","nameLocation":"4233:10:13","parameters":{"id":9782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9781,"mutability":"mutable","name":"p0","nameLocation":"4252:2:13","nodeType":"VariableDeclaration","scope":9793,"src":"4244:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"},"typeName":{"id":9780,"name":"bytes23","nodeType":"ElementaryTypeName","src":"4244:7:13","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"}},"visibility":"internal"}],"src":"4243:12:13"},"returnParameters":{"id":9783,"nodeType":"ParameterList","parameters":[],"src":"4270:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9807,"nodeType":"FunctionDefinition","src":"4353:123:13","nodes":[],"body":{"id":9806,"nodeType":"Block","src":"4399:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323429","id":9801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4449:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4","typeString":"literal_string \"log(bytes24)\""},"value":"log(bytes24)"},{"id":9802,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9795,"src":"4465:2:13","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4","typeString":"literal_string \"log(bytes24)\""},{"typeIdentifier":"t_bytes24","typeString":"bytes24"}],"expression":{"id":9799,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4425:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4429:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4425:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4425:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9798,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"4409:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4409:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9805,"nodeType":"ExpressionStatement","src":"4409:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes24","nameLocation":"4362:10:13","parameters":{"id":9796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9795,"mutability":"mutable","name":"p0","nameLocation":"4381:2:13","nodeType":"VariableDeclaration","scope":9807,"src":"4373:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"},"typeName":{"id":9794,"name":"bytes24","nodeType":"ElementaryTypeName","src":"4373:7:13","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"}},"visibility":"internal"}],"src":"4372:12:13"},"returnParameters":{"id":9797,"nodeType":"ParameterList","parameters":[],"src":"4399:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9821,"nodeType":"FunctionDefinition","src":"4482:123:13","nodes":[],"body":{"id":9820,"nodeType":"Block","src":"4528:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323529","id":9815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4578:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25","typeString":"literal_string \"log(bytes25)\""},"value":"log(bytes25)"},{"id":9816,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9809,"src":"4594:2:13","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25","typeString":"literal_string \"log(bytes25)\""},{"typeIdentifier":"t_bytes25","typeString":"bytes25"}],"expression":{"id":9813,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4554:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4558:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4554:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4554:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9812,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"4538:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4538:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9819,"nodeType":"ExpressionStatement","src":"4538:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes25","nameLocation":"4491:10:13","parameters":{"id":9810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9809,"mutability":"mutable","name":"p0","nameLocation":"4510:2:13","nodeType":"VariableDeclaration","scope":9821,"src":"4502:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"},"typeName":{"id":9808,"name":"bytes25","nodeType":"ElementaryTypeName","src":"4502:7:13","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"}},"visibility":"internal"}],"src":"4501:12:13"},"returnParameters":{"id":9811,"nodeType":"ParameterList","parameters":[],"src":"4528:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9835,"nodeType":"FunctionDefinition","src":"4611:123:13","nodes":[],"body":{"id":9834,"nodeType":"Block","src":"4657:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323629","id":9829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4707:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b","typeString":"literal_string \"log(bytes26)\""},"value":"log(bytes26)"},{"id":9830,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9823,"src":"4723:2:13","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b","typeString":"literal_string \"log(bytes26)\""},{"typeIdentifier":"t_bytes26","typeString":"bytes26"}],"expression":{"id":9827,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4683:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4687:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4683:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4683:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9826,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"4667:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4667:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9833,"nodeType":"ExpressionStatement","src":"4667:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes26","nameLocation":"4620:10:13","parameters":{"id":9824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9823,"mutability":"mutable","name":"p0","nameLocation":"4639:2:13","nodeType":"VariableDeclaration","scope":9835,"src":"4631:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"},"typeName":{"id":9822,"name":"bytes26","nodeType":"ElementaryTypeName","src":"4631:7:13","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"}},"visibility":"internal"}],"src":"4630:12:13"},"returnParameters":{"id":9825,"nodeType":"ParameterList","parameters":[],"src":"4657:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9849,"nodeType":"FunctionDefinition","src":"4740:123:13","nodes":[],"body":{"id":9848,"nodeType":"Block","src":"4786:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323729","id":9843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4836:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6","typeString":"literal_string \"log(bytes27)\""},"value":"log(bytes27)"},{"id":9844,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9837,"src":"4852:2:13","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6","typeString":"literal_string \"log(bytes27)\""},{"typeIdentifier":"t_bytes27","typeString":"bytes27"}],"expression":{"id":9841,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4812:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4816:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4812:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4812:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9840,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"4796:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4796:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9847,"nodeType":"ExpressionStatement","src":"4796:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes27","nameLocation":"4749:10:13","parameters":{"id":9838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9837,"mutability":"mutable","name":"p0","nameLocation":"4768:2:13","nodeType":"VariableDeclaration","scope":9849,"src":"4760:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"},"typeName":{"id":9836,"name":"bytes27","nodeType":"ElementaryTypeName","src":"4760:7:13","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"}},"visibility":"internal"}],"src":"4759:12:13"},"returnParameters":{"id":9839,"nodeType":"ParameterList","parameters":[],"src":"4786:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9863,"nodeType":"FunctionDefinition","src":"4869:123:13","nodes":[],"body":{"id":9862,"nodeType":"Block","src":"4915:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323829","id":9857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4965:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042","typeString":"literal_string \"log(bytes28)\""},"value":"log(bytes28)"},{"id":9858,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9851,"src":"4981:2:13","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042","typeString":"literal_string \"log(bytes28)\""},{"typeIdentifier":"t_bytes28","typeString":"bytes28"}],"expression":{"id":9855,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4941:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4945:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4941:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4941:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9854,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"4925:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4925:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9861,"nodeType":"ExpressionStatement","src":"4925:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes28","nameLocation":"4878:10:13","parameters":{"id":9852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9851,"mutability":"mutable","name":"p0","nameLocation":"4897:2:13","nodeType":"VariableDeclaration","scope":9863,"src":"4889:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"},"typeName":{"id":9850,"name":"bytes28","nodeType":"ElementaryTypeName","src":"4889:7:13","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"}},"visibility":"internal"}],"src":"4888:12:13"},"returnParameters":{"id":9853,"nodeType":"ParameterList","parameters":[],"src":"4915:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9877,"nodeType":"FunctionDefinition","src":"4998:123:13","nodes":[],"body":{"id":9876,"nodeType":"Block","src":"5044:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323929","id":9871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5094:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667","typeString":"literal_string \"log(bytes29)\""},"value":"log(bytes29)"},{"id":9872,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9865,"src":"5110:2:13","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667","typeString":"literal_string \"log(bytes29)\""},{"typeIdentifier":"t_bytes29","typeString":"bytes29"}],"expression":{"id":9869,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5070:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5074:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5070:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5070:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9868,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"5054:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5054:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9875,"nodeType":"ExpressionStatement","src":"5054:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes29","nameLocation":"5007:10:13","parameters":{"id":9866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9865,"mutability":"mutable","name":"p0","nameLocation":"5026:2:13","nodeType":"VariableDeclaration","scope":9877,"src":"5018:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"},"typeName":{"id":9864,"name":"bytes29","nodeType":"ElementaryTypeName","src":"5018:7:13","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"}},"visibility":"internal"}],"src":"5017:12:13"},"returnParameters":{"id":9867,"nodeType":"ParameterList","parameters":[],"src":"5044:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9891,"nodeType":"FunctionDefinition","src":"5127:123:13","nodes":[],"body":{"id":9890,"nodeType":"Block","src":"5173:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333029","id":9885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5223:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad","typeString":"literal_string \"log(bytes30)\""},"value":"log(bytes30)"},{"id":9886,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9879,"src":"5239:2:13","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad","typeString":"literal_string \"log(bytes30)\""},{"typeIdentifier":"t_bytes30","typeString":"bytes30"}],"expression":{"id":9883,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5199:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5203:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5199:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5199:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9882,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"5183:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5183:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9889,"nodeType":"ExpressionStatement","src":"5183:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes30","nameLocation":"5136:10:13","parameters":{"id":9880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9879,"mutability":"mutable","name":"p0","nameLocation":"5155:2:13","nodeType":"VariableDeclaration","scope":9891,"src":"5147:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"},"typeName":{"id":9878,"name":"bytes30","nodeType":"ElementaryTypeName","src":"5147:7:13","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}},"visibility":"internal"}],"src":"5146:12:13"},"returnParameters":{"id":9881,"nodeType":"ParameterList","parameters":[],"src":"5173:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9905,"nodeType":"FunctionDefinition","src":"5256:123:13","nodes":[],"body":{"id":9904,"nodeType":"Block","src":"5302:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333129","id":9899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5352:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce","typeString":"literal_string \"log(bytes31)\""},"value":"log(bytes31)"},{"id":9900,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9893,"src":"5368:2:13","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce","typeString":"literal_string \"log(bytes31)\""},{"typeIdentifier":"t_bytes31","typeString":"bytes31"}],"expression":{"id":9897,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5328:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5332:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5328:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9896,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"5312:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5312:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9903,"nodeType":"ExpressionStatement","src":"5312:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes31","nameLocation":"5265:10:13","parameters":{"id":9894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9893,"mutability":"mutable","name":"p0","nameLocation":"5284:2:13","nodeType":"VariableDeclaration","scope":9905,"src":"5276:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"typeName":{"id":9892,"name":"bytes31","nodeType":"ElementaryTypeName","src":"5276:7:13","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"visibility":"internal"}],"src":"5275:12:13"},"returnParameters":{"id":9895,"nodeType":"ParameterList","parameters":[],"src":"5302:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9919,"nodeType":"FunctionDefinition","src":"5385:123:13","nodes":[],"body":{"id":9918,"nodeType":"Block","src":"5431:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333229","id":9913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5481:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da","typeString":"literal_string \"log(bytes32)\""},"value":"log(bytes32)"},{"id":9914,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9907,"src":"5497:2:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da","typeString":"literal_string \"log(bytes32)\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9911,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5457:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9912,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5461:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5457:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5457:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9910,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"5441:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5441:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9917,"nodeType":"ExpressionStatement","src":"5441:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes32","nameLocation":"5394:10:13","parameters":{"id":9908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9907,"mutability":"mutable","name":"p0","nameLocation":"5413:2:13","nodeType":"VariableDeclaration","scope":9919,"src":"5405:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9906,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5405:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5404:12:13"},"returnParameters":{"id":9909,"nodeType":"ParameterList","parameters":[],"src":"5431:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9933,"nodeType":"FunctionDefinition","src":"5514:110:13","nodes":[],"body":{"id":9932,"nodeType":"Block","src":"5550:74:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e7429","id":9927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5600:11:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5b1bba92d8f98cf25e27c94d7fc7cbfbae95a49dfe5ab0cdf64ddd7181bb984","typeString":"literal_string \"log(uint)\""},"value":"log(uint)"},{"id":9928,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9921,"src":"5613:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f5b1bba92d8f98cf25e27c94d7fc7cbfbae95a49dfe5ab0cdf64ddd7181bb984","typeString":"literal_string \"log(uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9925,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5576:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5580:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5576:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5576:40:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9924,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"5560:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5560:57:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9931,"nodeType":"ExpressionStatement","src":"5560:57:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"5523:3:13","parameters":{"id":9922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9921,"mutability":"mutable","name":"p0","nameLocation":"5532:2:13","nodeType":"VariableDeclaration","scope":9933,"src":"5527:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9920,"name":"uint","nodeType":"ElementaryTypeName","src":"5527:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5526:9:13"},"returnParameters":{"id":9923,"nodeType":"ParameterList","parameters":[],"src":"5550:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9947,"nodeType":"FunctionDefinition","src":"5630:121:13","nodes":[],"body":{"id":9946,"nodeType":"Block","src":"5675:76:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":9941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5725:13:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":9942,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9935,"src":"5740:2:13","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":9939,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5701:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5705:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5701:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5701:42:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9938,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"5685:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5685:59:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9945,"nodeType":"ExpressionStatement","src":"5685:59:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"5639:3:13","parameters":{"id":9936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9935,"mutability":"mutable","name":"p0","nameLocation":"5657:2:13","nodeType":"VariableDeclaration","scope":9947,"src":"5643:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9934,"name":"string","nodeType":"ElementaryTypeName","src":"5643:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5642:18:13"},"returnParameters":{"id":9937,"nodeType":"ParameterList","parameters":[],"src":"5675:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9961,"nodeType":"FunctionDefinition","src":"5757:110:13","nodes":[],"body":{"id":9960,"nodeType":"Block","src":"5793:74:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c29","id":9955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5843:11:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},"value":"log(bool)"},{"id":9956,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9949,"src":"5856:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9953,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5819:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5823:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5819:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5819:40:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9952,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"5803:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5803:57:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9959,"nodeType":"ExpressionStatement","src":"5803:57:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"5766:3:13","parameters":{"id":9950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9949,"mutability":"mutable","name":"p0","nameLocation":"5775:2:13","nodeType":"VariableDeclaration","scope":9961,"src":"5770:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9948,"name":"bool","nodeType":"ElementaryTypeName","src":"5770:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5769:9:13"},"returnParameters":{"id":9951,"nodeType":"ParameterList","parameters":[],"src":"5793:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9975,"nodeType":"FunctionDefinition","src":"5873:116:13","nodes":[],"body":{"id":9974,"nodeType":"Block","src":"5912:77:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286164647265737329","id":9969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5962:14:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},"value":"log(address)"},{"id":9970,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9963,"src":"5978:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9967,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5938:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5942:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5938:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5938:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9966,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"5922:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5922:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9973,"nodeType":"ExpressionStatement","src":"5922:60:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"5882:3:13","parameters":{"id":9964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9963,"mutability":"mutable","name":"p0","nameLocation":"5894:2:13","nodeType":"VariableDeclaration","scope":9975,"src":"5886:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9962,"name":"address","nodeType":"ElementaryTypeName","src":"5886:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5885:12:13"},"returnParameters":{"id":9965,"nodeType":"ParameterList","parameters":[],"src":"5912:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":9992,"nodeType":"FunctionDefinition","src":"5995:128:13","nodes":[],"body":{"id":9991,"nodeType":"Block","src":"6040:83:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e7429","id":9985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6090:16:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c0f69806b714804c91bc48c3b408dde7373841a86e55c9ea3ee0c5945b4bc32","typeString":"literal_string \"log(uint,uint)\""},"value":"log(uint,uint)"},{"id":9986,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9977,"src":"6108:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9987,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9979,"src":"6112:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6c0f69806b714804c91bc48c3b408dde7373841a86e55c9ea3ee0c5945b4bc32","typeString":"literal_string \"log(uint,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9983,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6066:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6070:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6066:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6066:49:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9982,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"6050:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":9989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6050:66:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9990,"nodeType":"ExpressionStatement","src":"6050:66:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6004:3:13","parameters":{"id":9980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9977,"mutability":"mutable","name":"p0","nameLocation":"6013:2:13","nodeType":"VariableDeclaration","scope":9992,"src":"6008:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9976,"name":"uint","nodeType":"ElementaryTypeName","src":"6008:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9979,"mutability":"mutable","name":"p1","nameLocation":"6022:2:13","nodeType":"VariableDeclaration","scope":9992,"src":"6017:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9978,"name":"uint","nodeType":"ElementaryTypeName","src":"6017:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6007:18:13"},"returnParameters":{"id":9981,"nodeType":"ParameterList","parameters":[],"src":"6040:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10009,"nodeType":"FunctionDefinition","src":"6129:139:13","nodes":[],"body":{"id":10008,"nodeType":"Block","src":"6183:85:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e6729","id":10002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6233:18:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_0fa3f345ed69310615f27bede4ec80a963e2134dd287fa93c82b0c1eefe029a8","typeString":"literal_string \"log(uint,string)\""},"value":"log(uint,string)"},{"id":10003,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9994,"src":"6253:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10004,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9996,"src":"6257:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0fa3f345ed69310615f27bede4ec80a963e2134dd287fa93c82b0c1eefe029a8","typeString":"literal_string \"log(uint,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10000,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6209:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6213:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6209:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6209:51:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9999,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"6193:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6193:68:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10007,"nodeType":"ExpressionStatement","src":"6193:68:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6138:3:13","parameters":{"id":9997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9994,"mutability":"mutable","name":"p0","nameLocation":"6147:2:13","nodeType":"VariableDeclaration","scope":10009,"src":"6142:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9993,"name":"uint","nodeType":"ElementaryTypeName","src":"6142:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9996,"mutability":"mutable","name":"p1","nameLocation":"6165:2:13","nodeType":"VariableDeclaration","scope":10009,"src":"6151:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9995,"name":"string","nodeType":"ElementaryTypeName","src":"6151:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6141:27:13"},"returnParameters":{"id":9998,"nodeType":"ParameterList","parameters":[],"src":"6183:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10026,"nodeType":"FunctionDefinition","src":"6274:128:13","nodes":[],"body":{"id":10025,"nodeType":"Block","src":"6319:83:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c29","id":10019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6369:16:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6dd4ecaf57d2ec6eb02f2f993c53040200a16451fba718b7e8b170825fd172","typeString":"literal_string \"log(uint,bool)\""},"value":"log(uint,bool)"},{"id":10020,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10011,"src":"6387:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10021,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10013,"src":"6391:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e6dd4ecaf57d2ec6eb02f2f993c53040200a16451fba718b7e8b170825fd172","typeString":"literal_string \"log(uint,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10017,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6345:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6349:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6345:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6345:49:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10016,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"6329:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6329:66:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10024,"nodeType":"ExpressionStatement","src":"6329:66:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6283:3:13","parameters":{"id":10014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10011,"mutability":"mutable","name":"p0","nameLocation":"6292:2:13","nodeType":"VariableDeclaration","scope":10026,"src":"6287:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10010,"name":"uint","nodeType":"ElementaryTypeName","src":"6287:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10013,"mutability":"mutable","name":"p1","nameLocation":"6301:2:13","nodeType":"VariableDeclaration","scope":10026,"src":"6296:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10012,"name":"bool","nodeType":"ElementaryTypeName","src":"6296:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6286:18:13"},"returnParameters":{"id":10015,"nodeType":"ParameterList","parameters":[],"src":"6319:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10043,"nodeType":"FunctionDefinition","src":"6408:134:13","nodes":[],"body":{"id":10042,"nodeType":"Block","src":"6456:86:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c6164647265737329","id":10036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6506:19:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_58eb860cb5df2c2db83667a7ce62ef14d1323e0f3e304ea316fb64cd2c6fd3b2","typeString":"literal_string \"log(uint,address)\""},"value":"log(uint,address)"},{"id":10037,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10028,"src":"6527:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10038,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10030,"src":"6531:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_58eb860cb5df2c2db83667a7ce62ef14d1323e0f3e304ea316fb64cd2c6fd3b2","typeString":"literal_string \"log(uint,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10034,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6482:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6486:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6482:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6482:52:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10033,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"6466:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6466:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10041,"nodeType":"ExpressionStatement","src":"6466:69:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6417:3:13","parameters":{"id":10031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10028,"mutability":"mutable","name":"p0","nameLocation":"6426:2:13","nodeType":"VariableDeclaration","scope":10043,"src":"6421:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10027,"name":"uint","nodeType":"ElementaryTypeName","src":"6421:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10030,"mutability":"mutable","name":"p1","nameLocation":"6438:2:13","nodeType":"VariableDeclaration","scope":10043,"src":"6430:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10029,"name":"address","nodeType":"ElementaryTypeName","src":"6430:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6420:21:13"},"returnParameters":{"id":10032,"nodeType":"ParameterList","parameters":[],"src":"6456:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10060,"nodeType":"FunctionDefinition","src":"6548:139:13","nodes":[],"body":{"id":10059,"nodeType":"Block","src":"6602:85:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e7429","id":10053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6652:18:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_9710a9d00d210736b1ce918b483e56000e2885769da8118b2fbf9fe33949d3bd","typeString":"literal_string \"log(string,uint)\""},"value":"log(string,uint)"},{"id":10054,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10045,"src":"6672:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10055,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10047,"src":"6676:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9710a9d00d210736b1ce918b483e56000e2885769da8118b2fbf9fe33949d3bd","typeString":"literal_string \"log(string,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10051,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6628:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6632:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6628:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6628:51:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10050,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"6612:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6612:68:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10058,"nodeType":"ExpressionStatement","src":"6612:68:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6557:3:13","parameters":{"id":10048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10045,"mutability":"mutable","name":"p0","nameLocation":"6575:2:13","nodeType":"VariableDeclaration","scope":10060,"src":"6561:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10044,"name":"string","nodeType":"ElementaryTypeName","src":"6561:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10047,"mutability":"mutable","name":"p1","nameLocation":"6584:2:13","nodeType":"VariableDeclaration","scope":10060,"src":"6579:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10046,"name":"uint","nodeType":"ElementaryTypeName","src":"6579:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6560:27:13"},"returnParameters":{"id":10049,"nodeType":"ParameterList","parameters":[],"src":"6602:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10077,"nodeType":"FunctionDefinition","src":"6693:150:13","nodes":[],"body":{"id":10076,"nodeType":"Block","src":"6756:87:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e6729","id":10070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6806:20:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},"value":"log(string,string)"},{"id":10071,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10062,"src":"6828:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10072,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10064,"src":"6832:2:13","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":10068,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6782:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6786:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6782:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6782:53:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10067,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"6766:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6766:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10075,"nodeType":"ExpressionStatement","src":"6766:70:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6702:3:13","parameters":{"id":10065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10062,"mutability":"mutable","name":"p0","nameLocation":"6720:2:13","nodeType":"VariableDeclaration","scope":10077,"src":"6706:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10061,"name":"string","nodeType":"ElementaryTypeName","src":"6706:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10064,"mutability":"mutable","name":"p1","nameLocation":"6738:2:13","nodeType":"VariableDeclaration","scope":10077,"src":"6724:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10063,"name":"string","nodeType":"ElementaryTypeName","src":"6724:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6705:36:13"},"returnParameters":{"id":10066,"nodeType":"ParameterList","parameters":[],"src":"6756:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10094,"nodeType":"FunctionDefinition","src":"6849:139:13","nodes":[],"body":{"id":10093,"nodeType":"Block","src":"6903:85:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c29","id":10087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6953:18:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870","typeString":"literal_string \"log(string,bool)\""},"value":"log(string,bool)"},{"id":10088,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10079,"src":"6973:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10089,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10081,"src":"6977:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870","typeString":"literal_string \"log(string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10085,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6929:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10086,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6933:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6929:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6929:51:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10084,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"6913:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6913:68:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10092,"nodeType":"ExpressionStatement","src":"6913:68:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6858:3:13","parameters":{"id":10082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10079,"mutability":"mutable","name":"p0","nameLocation":"6876:2:13","nodeType":"VariableDeclaration","scope":10094,"src":"6862:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10078,"name":"string","nodeType":"ElementaryTypeName","src":"6862:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10081,"mutability":"mutable","name":"p1","nameLocation":"6885:2:13","nodeType":"VariableDeclaration","scope":10094,"src":"6880:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10080,"name":"bool","nodeType":"ElementaryTypeName","src":"6880:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6861:27:13"},"returnParameters":{"id":10083,"nodeType":"ParameterList","parameters":[],"src":"6903:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10111,"nodeType":"FunctionDefinition","src":"6994:145:13","nodes":[],"body":{"id":10110,"nodeType":"Block","src":"7051:88:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c6164647265737329","id":10104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7101:21:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72","typeString":"literal_string \"log(string,address)\""},"value":"log(string,address)"},{"id":10105,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10096,"src":"7124:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10106,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10098,"src":"7128:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72","typeString":"literal_string \"log(string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10102,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7077:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7081:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7077:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7077:54:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10101,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"7061:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7061:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10109,"nodeType":"ExpressionStatement","src":"7061:71:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7003:3:13","parameters":{"id":10099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10096,"mutability":"mutable","name":"p0","nameLocation":"7021:2:13","nodeType":"VariableDeclaration","scope":10111,"src":"7007:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10095,"name":"string","nodeType":"ElementaryTypeName","src":"7007:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10098,"mutability":"mutable","name":"p1","nameLocation":"7033:2:13","nodeType":"VariableDeclaration","scope":10111,"src":"7025:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10097,"name":"address","nodeType":"ElementaryTypeName","src":"7025:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7006:30:13"},"returnParameters":{"id":10100,"nodeType":"ParameterList","parameters":[],"src":"7051:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10128,"nodeType":"FunctionDefinition","src":"7145:128:13","nodes":[],"body":{"id":10127,"nodeType":"Block","src":"7190:83:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e7429","id":10121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7240:16:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_364b6a921e139cbe48176ce2b1f6700c7e568330bc5da26f60350cc33cf2a299","typeString":"literal_string \"log(bool,uint)\""},"value":"log(bool,uint)"},{"id":10122,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10113,"src":"7258:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10123,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10115,"src":"7262:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_364b6a921e139cbe48176ce2b1f6700c7e568330bc5da26f60350cc33cf2a299","typeString":"literal_string \"log(bool,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10119,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7216:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10120,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7220:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7216:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7216:49:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10118,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"7200:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7200:66:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10126,"nodeType":"ExpressionStatement","src":"7200:66:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7154:3:13","parameters":{"id":10116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10113,"mutability":"mutable","name":"p0","nameLocation":"7163:2:13","nodeType":"VariableDeclaration","scope":10128,"src":"7158:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10112,"name":"bool","nodeType":"ElementaryTypeName","src":"7158:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10115,"mutability":"mutable","name":"p1","nameLocation":"7172:2:13","nodeType":"VariableDeclaration","scope":10128,"src":"7167:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10114,"name":"uint","nodeType":"ElementaryTypeName","src":"7167:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7157:18:13"},"returnParameters":{"id":10117,"nodeType":"ParameterList","parameters":[],"src":"7190:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10145,"nodeType":"FunctionDefinition","src":"7279:139:13","nodes":[],"body":{"id":10144,"nodeType":"Block","src":"7333:85:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e6729","id":10138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7383:18:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84","typeString":"literal_string \"log(bool,string)\""},"value":"log(bool,string)"},{"id":10139,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10130,"src":"7403:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10140,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10132,"src":"7407:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84","typeString":"literal_string \"log(bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10136,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7359:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7363:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7359:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7359:51:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10135,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"7343:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7343:68:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10143,"nodeType":"ExpressionStatement","src":"7343:68:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7288:3:13","parameters":{"id":10133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10130,"mutability":"mutable","name":"p0","nameLocation":"7297:2:13","nodeType":"VariableDeclaration","scope":10145,"src":"7292:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10129,"name":"bool","nodeType":"ElementaryTypeName","src":"7292:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10132,"mutability":"mutable","name":"p1","nameLocation":"7315:2:13","nodeType":"VariableDeclaration","scope":10145,"src":"7301:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10131,"name":"string","nodeType":"ElementaryTypeName","src":"7301:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7291:27:13"},"returnParameters":{"id":10134,"nodeType":"ParameterList","parameters":[],"src":"7333:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10162,"nodeType":"FunctionDefinition","src":"7424:128:13","nodes":[],"body":{"id":10161,"nodeType":"Block","src":"7469:83:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c29","id":10155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7519:16:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15","typeString":"literal_string \"log(bool,bool)\""},"value":"log(bool,bool)"},{"id":10156,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10147,"src":"7537:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10157,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10149,"src":"7541:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15","typeString":"literal_string \"log(bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10153,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7495:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7499:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7495:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7495:49:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10152,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"7479:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7479:66:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10160,"nodeType":"ExpressionStatement","src":"7479:66:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7433:3:13","parameters":{"id":10150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10147,"mutability":"mutable","name":"p0","nameLocation":"7442:2:13","nodeType":"VariableDeclaration","scope":10162,"src":"7437:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10146,"name":"bool","nodeType":"ElementaryTypeName","src":"7437:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10149,"mutability":"mutable","name":"p1","nameLocation":"7451:2:13","nodeType":"VariableDeclaration","scope":10162,"src":"7446:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10148,"name":"bool","nodeType":"ElementaryTypeName","src":"7446:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7436:18:13"},"returnParameters":{"id":10151,"nodeType":"ParameterList","parameters":[],"src":"7469:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10179,"nodeType":"FunctionDefinition","src":"7558:134:13","nodes":[],"body":{"id":10178,"nodeType":"Block","src":"7606:86:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c6164647265737329","id":10172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7656:19:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55","typeString":"literal_string \"log(bool,address)\""},"value":"log(bool,address)"},{"id":10173,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10164,"src":"7677:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10174,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10166,"src":"7681:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55","typeString":"literal_string \"log(bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10170,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7632:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7636:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7632:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7632:52:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10169,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"7616:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7616:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10177,"nodeType":"ExpressionStatement","src":"7616:69:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7567:3:13","parameters":{"id":10167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10164,"mutability":"mutable","name":"p0","nameLocation":"7576:2:13","nodeType":"VariableDeclaration","scope":10179,"src":"7571:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10163,"name":"bool","nodeType":"ElementaryTypeName","src":"7571:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10166,"mutability":"mutable","name":"p1","nameLocation":"7588:2:13","nodeType":"VariableDeclaration","scope":10179,"src":"7580:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10165,"name":"address","nodeType":"ElementaryTypeName","src":"7580:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7570:21:13"},"returnParameters":{"id":10168,"nodeType":"ParameterList","parameters":[],"src":"7606:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10196,"nodeType":"FunctionDefinition","src":"7698:134:13","nodes":[],"body":{"id":10195,"nodeType":"Block","src":"7746:86:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e7429","id":10189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7796:19:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_2243cfa3a64f0f85afef83b08ba731ebd8a4b1053fdc66eb414b069452c9f133","typeString":"literal_string \"log(address,uint)\""},"value":"log(address,uint)"},{"id":10190,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10181,"src":"7817:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10191,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10183,"src":"7821:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2243cfa3a64f0f85afef83b08ba731ebd8a4b1053fdc66eb414b069452c9f133","typeString":"literal_string \"log(address,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10187,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7772:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7776:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7772:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7772:52:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10186,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"7756:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7756:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10194,"nodeType":"ExpressionStatement","src":"7756:69:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7707:3:13","parameters":{"id":10184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10181,"mutability":"mutable","name":"p0","nameLocation":"7719:2:13","nodeType":"VariableDeclaration","scope":10196,"src":"7711:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10180,"name":"address","nodeType":"ElementaryTypeName","src":"7711:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10183,"mutability":"mutable","name":"p1","nameLocation":"7728:2:13","nodeType":"VariableDeclaration","scope":10196,"src":"7723:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10182,"name":"uint","nodeType":"ElementaryTypeName","src":"7723:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7710:21:13"},"returnParameters":{"id":10185,"nodeType":"ParameterList","parameters":[],"src":"7746:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10213,"nodeType":"FunctionDefinition","src":"7838:145:13","nodes":[],"body":{"id":10212,"nodeType":"Block","src":"7895:88:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e6729","id":10206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7945:21:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab","typeString":"literal_string \"log(address,string)\""},"value":"log(address,string)"},{"id":10207,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10198,"src":"7968:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10208,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"7972:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab","typeString":"literal_string \"log(address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10204,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7921:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7925:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7921:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7921:54:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10203,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"7905:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7905:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10211,"nodeType":"ExpressionStatement","src":"7905:71:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7847:3:13","parameters":{"id":10201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10198,"mutability":"mutable","name":"p0","nameLocation":"7859:2:13","nodeType":"VariableDeclaration","scope":10213,"src":"7851:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10197,"name":"address","nodeType":"ElementaryTypeName","src":"7851:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10200,"mutability":"mutable","name":"p1","nameLocation":"7877:2:13","nodeType":"VariableDeclaration","scope":10213,"src":"7863:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10199,"name":"string","nodeType":"ElementaryTypeName","src":"7863:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7850:30:13"},"returnParameters":{"id":10202,"nodeType":"ParameterList","parameters":[],"src":"7895:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10230,"nodeType":"FunctionDefinition","src":"7989:134:13","nodes":[],"body":{"id":10229,"nodeType":"Block","src":"8037:86:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c29","id":10223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8087:19:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b","typeString":"literal_string \"log(address,bool)\""},"value":"log(address,bool)"},{"id":10224,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10215,"src":"8108:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10225,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10217,"src":"8112:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b","typeString":"literal_string \"log(address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10221,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8063:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8067:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8063:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8063:52:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10220,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"8047:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8047:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10228,"nodeType":"ExpressionStatement","src":"8047:69:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7998:3:13","parameters":{"id":10218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10215,"mutability":"mutable","name":"p0","nameLocation":"8010:2:13","nodeType":"VariableDeclaration","scope":10230,"src":"8002:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10214,"name":"address","nodeType":"ElementaryTypeName","src":"8002:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10217,"mutability":"mutable","name":"p1","nameLocation":"8019:2:13","nodeType":"VariableDeclaration","scope":10230,"src":"8014:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10216,"name":"bool","nodeType":"ElementaryTypeName","src":"8014:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8001:21:13"},"returnParameters":{"id":10219,"nodeType":"ParameterList","parameters":[],"src":"8037:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10247,"nodeType":"FunctionDefinition","src":"8129:140:13","nodes":[],"body":{"id":10246,"nodeType":"Block","src":"8180:89:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c6164647265737329","id":10240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8230:22:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161","typeString":"literal_string \"log(address,address)\""},"value":"log(address,address)"},{"id":10241,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10232,"src":"8254:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10242,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10234,"src":"8258:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161","typeString":"literal_string \"log(address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10238,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8206:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8210:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8206:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8206:55:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10237,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"8190:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8190:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10245,"nodeType":"ExpressionStatement","src":"8190:72:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8138:3:13","parameters":{"id":10235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10232,"mutability":"mutable","name":"p0","nameLocation":"8150:2:13","nodeType":"VariableDeclaration","scope":10247,"src":"8142:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10231,"name":"address","nodeType":"ElementaryTypeName","src":"8142:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10234,"mutability":"mutable","name":"p1","nameLocation":"8162:2:13","nodeType":"VariableDeclaration","scope":10247,"src":"8154:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10233,"name":"address","nodeType":"ElementaryTypeName","src":"8154:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8141:24:13"},"returnParameters":{"id":10236,"nodeType":"ParameterList","parameters":[],"src":"8180:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10267,"nodeType":"FunctionDefinition","src":"8275:146:13","nodes":[],"body":{"id":10266,"nodeType":"Block","src":"8329:92:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c75696e7429","id":10259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8379:21:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_e7820a7400e33a94b0ae6f00adee99b97ebef8b77c9e38dd555c2f6b541dee17","typeString":"literal_string \"log(uint,uint,uint)\""},"value":"log(uint,uint,uint)"},{"id":10260,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10249,"src":"8402:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10261,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10251,"src":"8406:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10262,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10253,"src":"8410:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e7820a7400e33a94b0ae6f00adee99b97ebef8b77c9e38dd555c2f6b541dee17","typeString":"literal_string \"log(uint,uint,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10257,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8355:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8359:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8355:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8355:58:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10256,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"8339:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8339:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10265,"nodeType":"ExpressionStatement","src":"8339:75:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8284:3:13","parameters":{"id":10254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10249,"mutability":"mutable","name":"p0","nameLocation":"8293:2:13","nodeType":"VariableDeclaration","scope":10267,"src":"8288:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10248,"name":"uint","nodeType":"ElementaryTypeName","src":"8288:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10251,"mutability":"mutable","name":"p1","nameLocation":"8302:2:13","nodeType":"VariableDeclaration","scope":10267,"src":"8297:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10250,"name":"uint","nodeType":"ElementaryTypeName","src":"8297:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10253,"mutability":"mutable","name":"p2","nameLocation":"8311:2:13","nodeType":"VariableDeclaration","scope":10267,"src":"8306:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10252,"name":"uint","nodeType":"ElementaryTypeName","src":"8306:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8287:27:13"},"returnParameters":{"id":10255,"nodeType":"ParameterList","parameters":[],"src":"8329:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10287,"nodeType":"FunctionDefinition","src":"8427:157:13","nodes":[],"body":{"id":10286,"nodeType":"Block","src":"8490:94:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c737472696e6729","id":10279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8540:23:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d690ee617a4217569e96b85c815115b0eee15407adaa46490ed719a45458699","typeString":"literal_string \"log(uint,uint,string)\""},"value":"log(uint,uint,string)"},{"id":10280,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10269,"src":"8565:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10281,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10271,"src":"8569:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10282,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10273,"src":"8573:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7d690ee617a4217569e96b85c815115b0eee15407adaa46490ed719a45458699","typeString":"literal_string \"log(uint,uint,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10277,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8516:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8520:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8516:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8516:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10276,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"8500:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8500:77:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10285,"nodeType":"ExpressionStatement","src":"8500:77:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8436:3:13","parameters":{"id":10274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10269,"mutability":"mutable","name":"p0","nameLocation":"8445:2:13","nodeType":"VariableDeclaration","scope":10287,"src":"8440:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10268,"name":"uint","nodeType":"ElementaryTypeName","src":"8440:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10271,"mutability":"mutable","name":"p1","nameLocation":"8454:2:13","nodeType":"VariableDeclaration","scope":10287,"src":"8449:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10270,"name":"uint","nodeType":"ElementaryTypeName","src":"8449:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10273,"mutability":"mutable","name":"p2","nameLocation":"8472:2:13","nodeType":"VariableDeclaration","scope":10287,"src":"8458:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10272,"name":"string","nodeType":"ElementaryTypeName","src":"8458:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8439:36:13"},"returnParameters":{"id":10275,"nodeType":"ParameterList","parameters":[],"src":"8490:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10307,"nodeType":"FunctionDefinition","src":"8590:146:13","nodes":[],"body":{"id":10306,"nodeType":"Block","src":"8644:92:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c626f6f6c29","id":10299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8694:21:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_67570ff704783f5d282b26317dc28aeb4fe23c085020ec6e580604c709916fa8","typeString":"literal_string \"log(uint,uint,bool)\""},"value":"log(uint,uint,bool)"},{"id":10300,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10289,"src":"8717:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10301,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10291,"src":"8721:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10302,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10293,"src":"8725:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_67570ff704783f5d282b26317dc28aeb4fe23c085020ec6e580604c709916fa8","typeString":"literal_string \"log(uint,uint,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10297,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8670:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8674:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8670:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8670:58:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10296,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"8654:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8654:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10305,"nodeType":"ExpressionStatement","src":"8654:75:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8599:3:13","parameters":{"id":10294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10289,"mutability":"mutable","name":"p0","nameLocation":"8608:2:13","nodeType":"VariableDeclaration","scope":10307,"src":"8603:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10288,"name":"uint","nodeType":"ElementaryTypeName","src":"8603:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10291,"mutability":"mutable","name":"p1","nameLocation":"8617:2:13","nodeType":"VariableDeclaration","scope":10307,"src":"8612:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10290,"name":"uint","nodeType":"ElementaryTypeName","src":"8612:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10293,"mutability":"mutable","name":"p2","nameLocation":"8626:2:13","nodeType":"VariableDeclaration","scope":10307,"src":"8621:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10292,"name":"bool","nodeType":"ElementaryTypeName","src":"8621:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8602:27:13"},"returnParameters":{"id":10295,"nodeType":"ParameterList","parameters":[],"src":"8644:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10327,"nodeType":"FunctionDefinition","src":"8742:152:13","nodes":[],"body":{"id":10326,"nodeType":"Block","src":"8799:95:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c6164647265737329","id":10319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8849:24:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_be33491b8b53b7f3deae2959d1f4b0a22e6967a778c50f03dc188de84a207616","typeString":"literal_string \"log(uint,uint,address)\""},"value":"log(uint,uint,address)"},{"id":10320,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10309,"src":"8875:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10321,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10311,"src":"8879:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10322,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10313,"src":"8883:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be33491b8b53b7f3deae2959d1f4b0a22e6967a778c50f03dc188de84a207616","typeString":"literal_string \"log(uint,uint,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10317,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8825:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8829:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8825:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8825:61:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10316,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"8809:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8809:78:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10325,"nodeType":"ExpressionStatement","src":"8809:78:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8751:3:13","parameters":{"id":10314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10309,"mutability":"mutable","name":"p0","nameLocation":"8760:2:13","nodeType":"VariableDeclaration","scope":10327,"src":"8755:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10308,"name":"uint","nodeType":"ElementaryTypeName","src":"8755:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10311,"mutability":"mutable","name":"p1","nameLocation":"8769:2:13","nodeType":"VariableDeclaration","scope":10327,"src":"8764:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10310,"name":"uint","nodeType":"ElementaryTypeName","src":"8764:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10313,"mutability":"mutable","name":"p2","nameLocation":"8781:2:13","nodeType":"VariableDeclaration","scope":10327,"src":"8773:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10312,"name":"address","nodeType":"ElementaryTypeName","src":"8773:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8754:30:13"},"returnParameters":{"id":10315,"nodeType":"ParameterList","parameters":[],"src":"8799:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10347,"nodeType":"FunctionDefinition","src":"8900:157:13","nodes":[],"body":{"id":10346,"nodeType":"Block","src":"8963:94:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c75696e7429","id":10339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9013:23:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_5b6de83ff0d95cd44df8bb8bfd95aa0a6291cab3b8502d85b1dcfd35a64c81cd","typeString":"literal_string \"log(uint,string,uint)\""},"value":"log(uint,string,uint)"},{"id":10340,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10329,"src":"9038:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10341,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10331,"src":"9042:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10342,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10333,"src":"9046:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5b6de83ff0d95cd44df8bb8bfd95aa0a6291cab3b8502d85b1dcfd35a64c81cd","typeString":"literal_string \"log(uint,string,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10337,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8989:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8993:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8989:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8989:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10336,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"8973:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8973:77:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10345,"nodeType":"ExpressionStatement","src":"8973:77:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8909:3:13","parameters":{"id":10334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10329,"mutability":"mutable","name":"p0","nameLocation":"8918:2:13","nodeType":"VariableDeclaration","scope":10347,"src":"8913:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10328,"name":"uint","nodeType":"ElementaryTypeName","src":"8913:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10331,"mutability":"mutable","name":"p1","nameLocation":"8936:2:13","nodeType":"VariableDeclaration","scope":10347,"src":"8922:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10330,"name":"string","nodeType":"ElementaryTypeName","src":"8922:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10333,"mutability":"mutable","name":"p2","nameLocation":"8945:2:13","nodeType":"VariableDeclaration","scope":10347,"src":"8940:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10332,"name":"uint","nodeType":"ElementaryTypeName","src":"8940:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8912:36:13"},"returnParameters":{"id":10335,"nodeType":"ParameterList","parameters":[],"src":"8963:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10367,"nodeType":"FunctionDefinition","src":"9063:168:13","nodes":[],"body":{"id":10366,"nodeType":"Block","src":"9135:96:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c737472696e6729","id":10359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9185:25:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f57c295245f8891b303347a08039155dde08dde601649242724a0ce876bcc65","typeString":"literal_string \"log(uint,string,string)\""},"value":"log(uint,string,string)"},{"id":10360,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10349,"src":"9212:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10361,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10351,"src":"9216:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10362,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"9220:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3f57c295245f8891b303347a08039155dde08dde601649242724a0ce876bcc65","typeString":"literal_string \"log(uint,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10357,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9161:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9165:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9161:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9161:62:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10356,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"9145:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9145:79:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10365,"nodeType":"ExpressionStatement","src":"9145:79:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9072:3:13","parameters":{"id":10354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10349,"mutability":"mutable","name":"p0","nameLocation":"9081:2:13","nodeType":"VariableDeclaration","scope":10367,"src":"9076:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10348,"name":"uint","nodeType":"ElementaryTypeName","src":"9076:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10351,"mutability":"mutable","name":"p1","nameLocation":"9099:2:13","nodeType":"VariableDeclaration","scope":10367,"src":"9085:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10350,"name":"string","nodeType":"ElementaryTypeName","src":"9085:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10353,"mutability":"mutable","name":"p2","nameLocation":"9117:2:13","nodeType":"VariableDeclaration","scope":10367,"src":"9103:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10352,"name":"string","nodeType":"ElementaryTypeName","src":"9103:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9075:45:13"},"returnParameters":{"id":10355,"nodeType":"ParameterList","parameters":[],"src":"9135:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10387,"nodeType":"FunctionDefinition","src":"9237:157:13","nodes":[],"body":{"id":10386,"nodeType":"Block","src":"9300:94:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c626f6f6c29","id":10379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9350:23:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_46a7d0ce13c2c26d158d9defa8ce488dbeb81d3c852592fb370bd45953199485","typeString":"literal_string \"log(uint,string,bool)\""},"value":"log(uint,string,bool)"},{"id":10380,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10369,"src":"9375:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10381,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10371,"src":"9379:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10382,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10373,"src":"9383:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46a7d0ce13c2c26d158d9defa8ce488dbeb81d3c852592fb370bd45953199485","typeString":"literal_string \"log(uint,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10377,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9326:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9330:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9326:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9326:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10376,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"9310:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9310:77:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10385,"nodeType":"ExpressionStatement","src":"9310:77:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9246:3:13","parameters":{"id":10374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10369,"mutability":"mutable","name":"p0","nameLocation":"9255:2:13","nodeType":"VariableDeclaration","scope":10387,"src":"9250:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10368,"name":"uint","nodeType":"ElementaryTypeName","src":"9250:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10371,"mutability":"mutable","name":"p1","nameLocation":"9273:2:13","nodeType":"VariableDeclaration","scope":10387,"src":"9259:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10370,"name":"string","nodeType":"ElementaryTypeName","src":"9259:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10373,"mutability":"mutable","name":"p2","nameLocation":"9282:2:13","nodeType":"VariableDeclaration","scope":10387,"src":"9277:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10372,"name":"bool","nodeType":"ElementaryTypeName","src":"9277:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9249:36:13"},"returnParameters":{"id":10375,"nodeType":"ParameterList","parameters":[],"src":"9300:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10407,"nodeType":"FunctionDefinition","src":"9400:163:13","nodes":[],"body":{"id":10406,"nodeType":"Block","src":"9466:97:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c6164647265737329","id":10399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9516:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_1f90f24a472e5198a9eef41600323c8a476ef0a1db1496125f7d053a74d474ac","typeString":"literal_string \"log(uint,string,address)\""},"value":"log(uint,string,address)"},{"id":10400,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10389,"src":"9544:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10401,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10391,"src":"9548:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10402,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10393,"src":"9552:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1f90f24a472e5198a9eef41600323c8a476ef0a1db1496125f7d053a74d474ac","typeString":"literal_string \"log(uint,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10397,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9492:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9496:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9492:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9492:63:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10396,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"9476:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9476:80:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10405,"nodeType":"ExpressionStatement","src":"9476:80:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9409:3:13","parameters":{"id":10394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10389,"mutability":"mutable","name":"p0","nameLocation":"9418:2:13","nodeType":"VariableDeclaration","scope":10407,"src":"9413:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10388,"name":"uint","nodeType":"ElementaryTypeName","src":"9413:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10391,"mutability":"mutable","name":"p1","nameLocation":"9436:2:13","nodeType":"VariableDeclaration","scope":10407,"src":"9422:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10390,"name":"string","nodeType":"ElementaryTypeName","src":"9422:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10393,"mutability":"mutable","name":"p2","nameLocation":"9448:2:13","nodeType":"VariableDeclaration","scope":10407,"src":"9440:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10392,"name":"address","nodeType":"ElementaryTypeName","src":"9440:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9412:39:13"},"returnParameters":{"id":10395,"nodeType":"ParameterList","parameters":[],"src":"9466:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10427,"nodeType":"FunctionDefinition","src":"9569:146:13","nodes":[],"body":{"id":10426,"nodeType":"Block","src":"9623:92:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c75696e7429","id":10419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9673:21:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a4d9922ab81f1126dafac21c1ce3fb483db2e4898341fe0758315eb5f3054d6","typeString":"literal_string \"log(uint,bool,uint)\""},"value":"log(uint,bool,uint)"},{"id":10420,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10409,"src":"9696:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10421,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10411,"src":"9700:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10422,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10413,"src":"9704:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a4d9922ab81f1126dafac21c1ce3fb483db2e4898341fe0758315eb5f3054d6","typeString":"literal_string \"log(uint,bool,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10417,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9649:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9653:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9649:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9649:58:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10416,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"9633:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9633:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10425,"nodeType":"ExpressionStatement","src":"9633:75:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9578:3:13","parameters":{"id":10414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10409,"mutability":"mutable","name":"p0","nameLocation":"9587:2:13","nodeType":"VariableDeclaration","scope":10427,"src":"9582:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10408,"name":"uint","nodeType":"ElementaryTypeName","src":"9582:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10411,"mutability":"mutable","name":"p1","nameLocation":"9596:2:13","nodeType":"VariableDeclaration","scope":10427,"src":"9591:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10410,"name":"bool","nodeType":"ElementaryTypeName","src":"9591:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10413,"mutability":"mutable","name":"p2","nameLocation":"9605:2:13","nodeType":"VariableDeclaration","scope":10427,"src":"9600:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10412,"name":"uint","nodeType":"ElementaryTypeName","src":"9600:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9581:27:13"},"returnParameters":{"id":10415,"nodeType":"ParameterList","parameters":[],"src":"9623:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10447,"nodeType":"FunctionDefinition","src":"9721:157:13","nodes":[],"body":{"id":10446,"nodeType":"Block","src":"9784:94:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c737472696e6729","id":10439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9834:23:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b0e14fe247223cbba6a19a2fac250db70b4f126d0f3f63ac9c3f080885b9f82","typeString":"literal_string \"log(uint,bool,string)\""},"value":"log(uint,bool,string)"},{"id":10440,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10429,"src":"9859:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10441,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10431,"src":"9863:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10442,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10433,"src":"9867:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b0e14fe247223cbba6a19a2fac250db70b4f126d0f3f63ac9c3f080885b9f82","typeString":"literal_string \"log(uint,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10437,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9810:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9814:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9810:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9810:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10436,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"9794:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9794:77:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10445,"nodeType":"ExpressionStatement","src":"9794:77:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9730:3:13","parameters":{"id":10434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10429,"mutability":"mutable","name":"p0","nameLocation":"9739:2:13","nodeType":"VariableDeclaration","scope":10447,"src":"9734:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10428,"name":"uint","nodeType":"ElementaryTypeName","src":"9734:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10431,"mutability":"mutable","name":"p1","nameLocation":"9748:2:13","nodeType":"VariableDeclaration","scope":10447,"src":"9743:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10430,"name":"bool","nodeType":"ElementaryTypeName","src":"9743:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10433,"mutability":"mutable","name":"p2","nameLocation":"9766:2:13","nodeType":"VariableDeclaration","scope":10447,"src":"9752:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10432,"name":"string","nodeType":"ElementaryTypeName","src":"9752:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9733:36:13"},"returnParameters":{"id":10435,"nodeType":"ParameterList","parameters":[],"src":"9784:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10467,"nodeType":"FunctionDefinition","src":"9884:146:13","nodes":[],"body":{"id":10466,"nodeType":"Block","src":"9938:92:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c626f6f6c29","id":10459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9988:21:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5ceace024d24c243571d0b2393ca9fb37aa961a0e028332e72cd7dfb84c0971","typeString":"literal_string \"log(uint,bool,bool)\""},"value":"log(uint,bool,bool)"},{"id":10460,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10449,"src":"10011:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10461,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10451,"src":"10015:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10462,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10453,"src":"10019:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d5ceace024d24c243571d0b2393ca9fb37aa961a0e028332e72cd7dfb84c0971","typeString":"literal_string \"log(uint,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10457,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9964:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9968:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9964:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9964:58:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10456,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"9948:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9948:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10465,"nodeType":"ExpressionStatement","src":"9948:75:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9893:3:13","parameters":{"id":10454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10449,"mutability":"mutable","name":"p0","nameLocation":"9902:2:13","nodeType":"VariableDeclaration","scope":10467,"src":"9897:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10448,"name":"uint","nodeType":"ElementaryTypeName","src":"9897:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10451,"mutability":"mutable","name":"p1","nameLocation":"9911:2:13","nodeType":"VariableDeclaration","scope":10467,"src":"9906:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10450,"name":"bool","nodeType":"ElementaryTypeName","src":"9906:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10453,"mutability":"mutable","name":"p2","nameLocation":"9920:2:13","nodeType":"VariableDeclaration","scope":10467,"src":"9915:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10452,"name":"bool","nodeType":"ElementaryTypeName","src":"9915:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9896:27:13"},"returnParameters":{"id":10455,"nodeType":"ParameterList","parameters":[],"src":"9938:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10487,"nodeType":"FunctionDefinition","src":"10036:152:13","nodes":[],"body":{"id":10486,"nodeType":"Block","src":"10093:95:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c6164647265737329","id":10479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10143:24:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_424effbf6346b3a7c79debdbad20f804c7961e0193d509136d2bb7c09c7ff9b2","typeString":"literal_string \"log(uint,bool,address)\""},"value":"log(uint,bool,address)"},{"id":10480,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10469,"src":"10169:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10481,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10471,"src":"10173:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10482,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10473,"src":"10177:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_424effbf6346b3a7c79debdbad20f804c7961e0193d509136d2bb7c09c7ff9b2","typeString":"literal_string \"log(uint,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10477,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10119:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10123:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10119:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10119:61:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10476,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"10103:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10103:78:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10485,"nodeType":"ExpressionStatement","src":"10103:78:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10045:3:13","parameters":{"id":10474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10469,"mutability":"mutable","name":"p0","nameLocation":"10054:2:13","nodeType":"VariableDeclaration","scope":10487,"src":"10049:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10468,"name":"uint","nodeType":"ElementaryTypeName","src":"10049:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10471,"mutability":"mutable","name":"p1","nameLocation":"10063:2:13","nodeType":"VariableDeclaration","scope":10487,"src":"10058:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10470,"name":"bool","nodeType":"ElementaryTypeName","src":"10058:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10473,"mutability":"mutable","name":"p2","nameLocation":"10075:2:13","nodeType":"VariableDeclaration","scope":10487,"src":"10067:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10472,"name":"address","nodeType":"ElementaryTypeName","src":"10067:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10048:30:13"},"returnParameters":{"id":10475,"nodeType":"ParameterList","parameters":[],"src":"10093:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10507,"nodeType":"FunctionDefinition","src":"10194:152:13","nodes":[],"body":{"id":10506,"nodeType":"Block","src":"10251:95:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c75696e7429","id":10499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10301:24:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_884343aaf095a99f79852cd574543144a9a04148c5eb5687826e5e86a2554617","typeString":"literal_string \"log(uint,address,uint)\""},"value":"log(uint,address,uint)"},{"id":10500,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10489,"src":"10327:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10501,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10491,"src":"10331:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10502,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10493,"src":"10335:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_884343aaf095a99f79852cd574543144a9a04148c5eb5687826e5e86a2554617","typeString":"literal_string \"log(uint,address,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10497,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10277:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10281:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10277:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10277:61:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10496,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"10261:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10261:78:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10505,"nodeType":"ExpressionStatement","src":"10261:78:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10203:3:13","parameters":{"id":10494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10489,"mutability":"mutable","name":"p0","nameLocation":"10212:2:13","nodeType":"VariableDeclaration","scope":10507,"src":"10207:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10488,"name":"uint","nodeType":"ElementaryTypeName","src":"10207:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10491,"mutability":"mutable","name":"p1","nameLocation":"10224:2:13","nodeType":"VariableDeclaration","scope":10507,"src":"10216:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10490,"name":"address","nodeType":"ElementaryTypeName","src":"10216:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10493,"mutability":"mutable","name":"p2","nameLocation":"10233:2:13","nodeType":"VariableDeclaration","scope":10507,"src":"10228:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10492,"name":"uint","nodeType":"ElementaryTypeName","src":"10228:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10206:30:13"},"returnParameters":{"id":10495,"nodeType":"ParameterList","parameters":[],"src":"10251:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10527,"nodeType":"FunctionDefinition","src":"10352:163:13","nodes":[],"body":{"id":10526,"nodeType":"Block","src":"10418:97:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c737472696e6729","id":10519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10468:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_ce83047b6eeeca52b57db5064e316bb4dc615477077814d1a191d68a4818cbed","typeString":"literal_string \"log(uint,address,string)\""},"value":"log(uint,address,string)"},{"id":10520,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10509,"src":"10496:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10521,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10511,"src":"10500:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10522,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10513,"src":"10504:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ce83047b6eeeca52b57db5064e316bb4dc615477077814d1a191d68a4818cbed","typeString":"literal_string \"log(uint,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10517,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10444:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10448:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10444:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10444:63:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10516,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"10428:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10428:80:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10525,"nodeType":"ExpressionStatement","src":"10428:80:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10361:3:13","parameters":{"id":10514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10509,"mutability":"mutable","name":"p0","nameLocation":"10370:2:13","nodeType":"VariableDeclaration","scope":10527,"src":"10365:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10508,"name":"uint","nodeType":"ElementaryTypeName","src":"10365:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10511,"mutability":"mutable","name":"p1","nameLocation":"10382:2:13","nodeType":"VariableDeclaration","scope":10527,"src":"10374:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10510,"name":"address","nodeType":"ElementaryTypeName","src":"10374:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10513,"mutability":"mutable","name":"p2","nameLocation":"10400:2:13","nodeType":"VariableDeclaration","scope":10527,"src":"10386:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10512,"name":"string","nodeType":"ElementaryTypeName","src":"10386:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10364:39:13"},"returnParameters":{"id":10515,"nodeType":"ParameterList","parameters":[],"src":"10418:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10547,"nodeType":"FunctionDefinition","src":"10521:152:13","nodes":[],"body":{"id":10546,"nodeType":"Block","src":"10578:95:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c626f6f6c29","id":10539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10628:24:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_7ad0128e41690364edd967a051c6d9cea9f7c322246c5ed2ebc0083265828a80","typeString":"literal_string \"log(uint,address,bool)\""},"value":"log(uint,address,bool)"},{"id":10540,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10529,"src":"10654:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10541,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10531,"src":"10658:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10542,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10533,"src":"10662:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7ad0128e41690364edd967a051c6d9cea9f7c322246c5ed2ebc0083265828a80","typeString":"literal_string \"log(uint,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10537,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10604:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10608:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10604:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10604:61:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10536,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"10588:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10588:78:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10545,"nodeType":"ExpressionStatement","src":"10588:78:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10530:3:13","parameters":{"id":10534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10529,"mutability":"mutable","name":"p0","nameLocation":"10539:2:13","nodeType":"VariableDeclaration","scope":10547,"src":"10534:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10528,"name":"uint","nodeType":"ElementaryTypeName","src":"10534:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10531,"mutability":"mutable","name":"p1","nameLocation":"10551:2:13","nodeType":"VariableDeclaration","scope":10547,"src":"10543:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10530,"name":"address","nodeType":"ElementaryTypeName","src":"10543:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10533,"mutability":"mutable","name":"p2","nameLocation":"10560:2:13","nodeType":"VariableDeclaration","scope":10547,"src":"10555:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10532,"name":"bool","nodeType":"ElementaryTypeName","src":"10555:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10533:30:13"},"returnParameters":{"id":10535,"nodeType":"ParameterList","parameters":[],"src":"10578:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10567,"nodeType":"FunctionDefinition","src":"10679:158:13","nodes":[],"body":{"id":10566,"nodeType":"Block","src":"10739:98:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c6164647265737329","id":10559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10789:27:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d77a61be18c592527fe1ce89d591c1badea18ef3198dacc513c5ba08449fd7b","typeString":"literal_string \"log(uint,address,address)\""},"value":"log(uint,address,address)"},{"id":10560,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10549,"src":"10818:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10561,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10551,"src":"10822:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10562,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10553,"src":"10826:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7d77a61be18c592527fe1ce89d591c1badea18ef3198dacc513c5ba08449fd7b","typeString":"literal_string \"log(uint,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10557,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10765:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10769:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10765:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10765:64:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10556,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"10749:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10749:81:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10565,"nodeType":"ExpressionStatement","src":"10749:81:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10688:3:13","parameters":{"id":10554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10549,"mutability":"mutable","name":"p0","nameLocation":"10697:2:13","nodeType":"VariableDeclaration","scope":10567,"src":"10692:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10548,"name":"uint","nodeType":"ElementaryTypeName","src":"10692:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10551,"mutability":"mutable","name":"p1","nameLocation":"10709:2:13","nodeType":"VariableDeclaration","scope":10567,"src":"10701:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10550,"name":"address","nodeType":"ElementaryTypeName","src":"10701:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10553,"mutability":"mutable","name":"p2","nameLocation":"10721:2:13","nodeType":"VariableDeclaration","scope":10567,"src":"10713:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10552,"name":"address","nodeType":"ElementaryTypeName","src":"10713:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10691:33:13"},"returnParameters":{"id":10555,"nodeType":"ParameterList","parameters":[],"src":"10739:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10587,"nodeType":"FunctionDefinition","src":"10843:157:13","nodes":[],"body":{"id":10586,"nodeType":"Block","src":"10906:94:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c75696e7429","id":10579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10956:23:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_969cdd03749f5aa30c7fce9178272cdca616cb2cc28128d3b9824be8046f827e","typeString":"literal_string \"log(string,uint,uint)\""},"value":"log(string,uint,uint)"},{"id":10580,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10569,"src":"10981:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10581,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10571,"src":"10985:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10582,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10573,"src":"10989:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_969cdd03749f5aa30c7fce9178272cdca616cb2cc28128d3b9824be8046f827e","typeString":"literal_string \"log(string,uint,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10577,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10932:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10936:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10932:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10932:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10576,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"10916:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10916:77:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10585,"nodeType":"ExpressionStatement","src":"10916:77:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10852:3:13","parameters":{"id":10574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10569,"mutability":"mutable","name":"p0","nameLocation":"10870:2:13","nodeType":"VariableDeclaration","scope":10587,"src":"10856:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10568,"name":"string","nodeType":"ElementaryTypeName","src":"10856:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10571,"mutability":"mutable","name":"p1","nameLocation":"10879:2:13","nodeType":"VariableDeclaration","scope":10587,"src":"10874:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10570,"name":"uint","nodeType":"ElementaryTypeName","src":"10874:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10573,"mutability":"mutable","name":"p2","nameLocation":"10888:2:13","nodeType":"VariableDeclaration","scope":10587,"src":"10883:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10572,"name":"uint","nodeType":"ElementaryTypeName","src":"10883:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10855:36:13"},"returnParameters":{"id":10575,"nodeType":"ParameterList","parameters":[],"src":"10906:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10607,"nodeType":"FunctionDefinition","src":"11006:168:13","nodes":[],"body":{"id":10606,"nodeType":"Block","src":"11078:96:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c737472696e6729","id":10599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11128:25:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a3f5c739d439f7a3912e960230088fb752539d00203d48771c643a12b26892ec","typeString":"literal_string \"log(string,uint,string)\""},"value":"log(string,uint,string)"},{"id":10600,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10589,"src":"11155:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10601,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10591,"src":"11159:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10602,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10593,"src":"11163:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a3f5c739d439f7a3912e960230088fb752539d00203d48771c643a12b26892ec","typeString":"literal_string \"log(string,uint,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10597,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11104:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11108:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11104:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11104:62:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10596,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"11088:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11088:79:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10605,"nodeType":"ExpressionStatement","src":"11088:79:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11015:3:13","parameters":{"id":10594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10589,"mutability":"mutable","name":"p0","nameLocation":"11033:2:13","nodeType":"VariableDeclaration","scope":10607,"src":"11019:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10588,"name":"string","nodeType":"ElementaryTypeName","src":"11019:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10591,"mutability":"mutable","name":"p1","nameLocation":"11042:2:13","nodeType":"VariableDeclaration","scope":10607,"src":"11037:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10590,"name":"uint","nodeType":"ElementaryTypeName","src":"11037:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10593,"mutability":"mutable","name":"p2","nameLocation":"11060:2:13","nodeType":"VariableDeclaration","scope":10607,"src":"11046:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10592,"name":"string","nodeType":"ElementaryTypeName","src":"11046:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11018:45:13"},"returnParameters":{"id":10595,"nodeType":"ParameterList","parameters":[],"src":"11078:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10627,"nodeType":"FunctionDefinition","src":"11180:157:13","nodes":[],"body":{"id":10626,"nodeType":"Block","src":"11243:94:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c626f6f6c29","id":10619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11293:23:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_f102ee05f3b79d3bc2ba0350401e35479d9f95705fb40abfaeb49d12355695b3","typeString":"literal_string \"log(string,uint,bool)\""},"value":"log(string,uint,bool)"},{"id":10620,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10609,"src":"11318:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10621,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10611,"src":"11322:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10622,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10613,"src":"11326:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f102ee05f3b79d3bc2ba0350401e35479d9f95705fb40abfaeb49d12355695b3","typeString":"literal_string \"log(string,uint,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10617,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11269:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11273:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11269:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11269:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10616,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"11253:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11253:77:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10625,"nodeType":"ExpressionStatement","src":"11253:77:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11189:3:13","parameters":{"id":10614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10609,"mutability":"mutable","name":"p0","nameLocation":"11207:2:13","nodeType":"VariableDeclaration","scope":10627,"src":"11193:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10608,"name":"string","nodeType":"ElementaryTypeName","src":"11193:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10611,"mutability":"mutable","name":"p1","nameLocation":"11216:2:13","nodeType":"VariableDeclaration","scope":10627,"src":"11211:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10610,"name":"uint","nodeType":"ElementaryTypeName","src":"11211:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10613,"mutability":"mutable","name":"p2","nameLocation":"11225:2:13","nodeType":"VariableDeclaration","scope":10627,"src":"11220:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10612,"name":"bool","nodeType":"ElementaryTypeName","src":"11220:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11192:36:13"},"returnParameters":{"id":10615,"nodeType":"ParameterList","parameters":[],"src":"11243:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10647,"nodeType":"FunctionDefinition","src":"11343:163:13","nodes":[],"body":{"id":10646,"nodeType":"Block","src":"11409:97:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c6164647265737329","id":10639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11459:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_e3849f79a3c07bea1bae0837bfeee5da2531684b262865f1541a60df4fcd512a","typeString":"literal_string \"log(string,uint,address)\""},"value":"log(string,uint,address)"},{"id":10640,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10629,"src":"11487:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10641,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10631,"src":"11491:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10642,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10633,"src":"11495:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e3849f79a3c07bea1bae0837bfeee5da2531684b262865f1541a60df4fcd512a","typeString":"literal_string \"log(string,uint,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10637,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11435:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11439:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11435:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11435:63:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10636,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"11419:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11419:80:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10645,"nodeType":"ExpressionStatement","src":"11419:80:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11352:3:13","parameters":{"id":10634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10629,"mutability":"mutable","name":"p0","nameLocation":"11370:2:13","nodeType":"VariableDeclaration","scope":10647,"src":"11356:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10628,"name":"string","nodeType":"ElementaryTypeName","src":"11356:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10631,"mutability":"mutable","name":"p1","nameLocation":"11379:2:13","nodeType":"VariableDeclaration","scope":10647,"src":"11374:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10630,"name":"uint","nodeType":"ElementaryTypeName","src":"11374:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10633,"mutability":"mutable","name":"p2","nameLocation":"11391:2:13","nodeType":"VariableDeclaration","scope":10647,"src":"11383:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10632,"name":"address","nodeType":"ElementaryTypeName","src":"11383:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11355:39:13"},"returnParameters":{"id":10635,"nodeType":"ParameterList","parameters":[],"src":"11409:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10667,"nodeType":"FunctionDefinition","src":"11512:168:13","nodes":[],"body":{"id":10666,"nodeType":"Block","src":"11584:96:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e7429","id":10659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11634:25:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_f362ca59af8dc58335601f00e8a4f3f8cd0c03c9716c1459118a41613b5e0147","typeString":"literal_string \"log(string,string,uint)\""},"value":"log(string,string,uint)"},{"id":10660,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10649,"src":"11661:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10661,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10651,"src":"11665:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10662,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10653,"src":"11669:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f362ca59af8dc58335601f00e8a4f3f8cd0c03c9716c1459118a41613b5e0147","typeString":"literal_string \"log(string,string,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10657,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11610:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10658,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11614:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11610:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11610:62:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10656,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"11594:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11594:79:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10665,"nodeType":"ExpressionStatement","src":"11594:79:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11521:3:13","parameters":{"id":10654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10649,"mutability":"mutable","name":"p0","nameLocation":"11539:2:13","nodeType":"VariableDeclaration","scope":10667,"src":"11525:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10648,"name":"string","nodeType":"ElementaryTypeName","src":"11525:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10651,"mutability":"mutable","name":"p1","nameLocation":"11557:2:13","nodeType":"VariableDeclaration","scope":10667,"src":"11543:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10650,"name":"string","nodeType":"ElementaryTypeName","src":"11543:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10653,"mutability":"mutable","name":"p2","nameLocation":"11566:2:13","nodeType":"VariableDeclaration","scope":10667,"src":"11561:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10652,"name":"uint","nodeType":"ElementaryTypeName","src":"11561:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11524:45:13"},"returnParameters":{"id":10655,"nodeType":"ParameterList","parameters":[],"src":"11584:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10687,"nodeType":"FunctionDefinition","src":"11686:179:13","nodes":[],"body":{"id":10686,"nodeType":"Block","src":"11767:98:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e6729","id":10679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11817:27:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f","typeString":"literal_string \"log(string,string,string)\""},"value":"log(string,string,string)"},{"id":10680,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10669,"src":"11846:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10681,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10671,"src":"11850:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10682,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10673,"src":"11854:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f","typeString":"literal_string \"log(string,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10677,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11793:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11797:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11793:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11793:64:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10676,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"11777:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11777:81:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10685,"nodeType":"ExpressionStatement","src":"11777:81:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11695:3:13","parameters":{"id":10674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10669,"mutability":"mutable","name":"p0","nameLocation":"11713:2:13","nodeType":"VariableDeclaration","scope":10687,"src":"11699:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10668,"name":"string","nodeType":"ElementaryTypeName","src":"11699:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10671,"mutability":"mutable","name":"p1","nameLocation":"11731:2:13","nodeType":"VariableDeclaration","scope":10687,"src":"11717:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10670,"name":"string","nodeType":"ElementaryTypeName","src":"11717:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10673,"mutability":"mutable","name":"p2","nameLocation":"11749:2:13","nodeType":"VariableDeclaration","scope":10687,"src":"11735:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10672,"name":"string","nodeType":"ElementaryTypeName","src":"11735:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11698:54:13"},"returnParameters":{"id":10675,"nodeType":"ParameterList","parameters":[],"src":"11767:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10707,"nodeType":"FunctionDefinition","src":"11871:168:13","nodes":[],"body":{"id":10706,"nodeType":"Block","src":"11943:96:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c29","id":10699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11993:25:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb","typeString":"literal_string \"log(string,string,bool)\""},"value":"log(string,string,bool)"},{"id":10700,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10689,"src":"12020:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10701,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10691,"src":"12024:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10702,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10693,"src":"12028:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb","typeString":"literal_string \"log(string,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10697,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11969:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11973:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11969:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11969:62:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10696,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"11953:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11953:79:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10705,"nodeType":"ExpressionStatement","src":"11953:79:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11880:3:13","parameters":{"id":10694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10689,"mutability":"mutable","name":"p0","nameLocation":"11898:2:13","nodeType":"VariableDeclaration","scope":10707,"src":"11884:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10688,"name":"string","nodeType":"ElementaryTypeName","src":"11884:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10691,"mutability":"mutable","name":"p1","nameLocation":"11916:2:13","nodeType":"VariableDeclaration","scope":10707,"src":"11902:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10690,"name":"string","nodeType":"ElementaryTypeName","src":"11902:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10693,"mutability":"mutable","name":"p2","nameLocation":"11925:2:13","nodeType":"VariableDeclaration","scope":10707,"src":"11920:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10692,"name":"bool","nodeType":"ElementaryTypeName","src":"11920:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11883:45:13"},"returnParameters":{"id":10695,"nodeType":"ParameterList","parameters":[],"src":"11943:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10727,"nodeType":"FunctionDefinition","src":"12045:174:13","nodes":[],"body":{"id":10726,"nodeType":"Block","src":"12120:99:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c6164647265737329","id":10719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12170:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768","typeString":"literal_string \"log(string,string,address)\""},"value":"log(string,string,address)"},{"id":10720,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10709,"src":"12200:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10721,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10711,"src":"12204:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10722,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10713,"src":"12208:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768","typeString":"literal_string \"log(string,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10717,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12146:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12150:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12146:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12146:65:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10716,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"12130:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12130:82:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10725,"nodeType":"ExpressionStatement","src":"12130:82:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12054:3:13","parameters":{"id":10714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10709,"mutability":"mutable","name":"p0","nameLocation":"12072:2:13","nodeType":"VariableDeclaration","scope":10727,"src":"12058:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10708,"name":"string","nodeType":"ElementaryTypeName","src":"12058:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10711,"mutability":"mutable","name":"p1","nameLocation":"12090:2:13","nodeType":"VariableDeclaration","scope":10727,"src":"12076:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10710,"name":"string","nodeType":"ElementaryTypeName","src":"12076:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10713,"mutability":"mutable","name":"p2","nameLocation":"12102:2:13","nodeType":"VariableDeclaration","scope":10727,"src":"12094:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10712,"name":"address","nodeType":"ElementaryTypeName","src":"12094:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12057:48:13"},"returnParameters":{"id":10715,"nodeType":"ParameterList","parameters":[],"src":"12120:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10747,"nodeType":"FunctionDefinition","src":"12225:157:13","nodes":[],"body":{"id":10746,"nodeType":"Block","src":"12288:94:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e7429","id":10739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12338:23:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_291bb9d00defdc1b95c66c8b4bc10ef714a549c4f22fb190fe687dc5e85a4db1","typeString":"literal_string \"log(string,bool,uint)\""},"value":"log(string,bool,uint)"},{"id":10740,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10729,"src":"12363:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10741,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10731,"src":"12367:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10742,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10733,"src":"12371:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_291bb9d00defdc1b95c66c8b4bc10ef714a549c4f22fb190fe687dc5e85a4db1","typeString":"literal_string \"log(string,bool,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10737,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12314:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12318:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12314:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12314:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10736,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"12298:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12298:77:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10745,"nodeType":"ExpressionStatement","src":"12298:77:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12234:3:13","parameters":{"id":10734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10729,"mutability":"mutable","name":"p0","nameLocation":"12252:2:13","nodeType":"VariableDeclaration","scope":10747,"src":"12238:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10728,"name":"string","nodeType":"ElementaryTypeName","src":"12238:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10731,"mutability":"mutable","name":"p1","nameLocation":"12261:2:13","nodeType":"VariableDeclaration","scope":10747,"src":"12256:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10730,"name":"bool","nodeType":"ElementaryTypeName","src":"12256:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10733,"mutability":"mutable","name":"p2","nameLocation":"12270:2:13","nodeType":"VariableDeclaration","scope":10747,"src":"12265:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10732,"name":"uint","nodeType":"ElementaryTypeName","src":"12265:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12237:36:13"},"returnParameters":{"id":10735,"nodeType":"ParameterList","parameters":[],"src":"12288:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10767,"nodeType":"FunctionDefinition","src":"12388:168:13","nodes":[],"body":{"id":10766,"nodeType":"Block","src":"12460:96:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e6729","id":10759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12510:25:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7","typeString":"literal_string \"log(string,bool,string)\""},"value":"log(string,bool,string)"},{"id":10760,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10749,"src":"12537:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10761,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10751,"src":"12541:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10762,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10753,"src":"12545:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7","typeString":"literal_string \"log(string,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10757,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12486:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12490:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12486:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12486:62:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10756,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"12470:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12470:79:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10765,"nodeType":"ExpressionStatement","src":"12470:79:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12397:3:13","parameters":{"id":10754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10749,"mutability":"mutable","name":"p0","nameLocation":"12415:2:13","nodeType":"VariableDeclaration","scope":10767,"src":"12401:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10748,"name":"string","nodeType":"ElementaryTypeName","src":"12401:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10751,"mutability":"mutable","name":"p1","nameLocation":"12424:2:13","nodeType":"VariableDeclaration","scope":10767,"src":"12419:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10750,"name":"bool","nodeType":"ElementaryTypeName","src":"12419:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10753,"mutability":"mutable","name":"p2","nameLocation":"12442:2:13","nodeType":"VariableDeclaration","scope":10767,"src":"12428:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10752,"name":"string","nodeType":"ElementaryTypeName","src":"12428:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12400:45:13"},"returnParameters":{"id":10755,"nodeType":"ParameterList","parameters":[],"src":"12460:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10787,"nodeType":"FunctionDefinition","src":"12562:157:13","nodes":[],"body":{"id":10786,"nodeType":"Block","src":"12625:94:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c29","id":10779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12675:23:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d","typeString":"literal_string \"log(string,bool,bool)\""},"value":"log(string,bool,bool)"},{"id":10780,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10769,"src":"12700:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10781,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10771,"src":"12704:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10782,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10773,"src":"12708:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d","typeString":"literal_string \"log(string,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10777,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12651:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12655:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12651:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12651:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10776,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"12635:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12635:77:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10785,"nodeType":"ExpressionStatement","src":"12635:77:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12571:3:13","parameters":{"id":10774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10769,"mutability":"mutable","name":"p0","nameLocation":"12589:2:13","nodeType":"VariableDeclaration","scope":10787,"src":"12575:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10768,"name":"string","nodeType":"ElementaryTypeName","src":"12575:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10771,"mutability":"mutable","name":"p1","nameLocation":"12598:2:13","nodeType":"VariableDeclaration","scope":10787,"src":"12593:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10770,"name":"bool","nodeType":"ElementaryTypeName","src":"12593:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10773,"mutability":"mutable","name":"p2","nameLocation":"12607:2:13","nodeType":"VariableDeclaration","scope":10787,"src":"12602:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10772,"name":"bool","nodeType":"ElementaryTypeName","src":"12602:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12574:36:13"},"returnParameters":{"id":10775,"nodeType":"ParameterList","parameters":[],"src":"12625:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10807,"nodeType":"FunctionDefinition","src":"12725:163:13","nodes":[],"body":{"id":10806,"nodeType":"Block","src":"12791:97:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c6164647265737329","id":10799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12841:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f","typeString":"literal_string \"log(string,bool,address)\""},"value":"log(string,bool,address)"},{"id":10800,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10789,"src":"12869:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10801,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10791,"src":"12873:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10802,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10793,"src":"12877:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f","typeString":"literal_string \"log(string,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10797,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12817:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12821:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12817:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12817:63:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10796,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"12801:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12801:80:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10805,"nodeType":"ExpressionStatement","src":"12801:80:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12734:3:13","parameters":{"id":10794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10789,"mutability":"mutable","name":"p0","nameLocation":"12752:2:13","nodeType":"VariableDeclaration","scope":10807,"src":"12738:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10788,"name":"string","nodeType":"ElementaryTypeName","src":"12738:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10791,"mutability":"mutable","name":"p1","nameLocation":"12761:2:13","nodeType":"VariableDeclaration","scope":10807,"src":"12756:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10790,"name":"bool","nodeType":"ElementaryTypeName","src":"12756:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10793,"mutability":"mutable","name":"p2","nameLocation":"12773:2:13","nodeType":"VariableDeclaration","scope":10807,"src":"12765:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10792,"name":"address","nodeType":"ElementaryTypeName","src":"12765:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12737:39:13"},"returnParameters":{"id":10795,"nodeType":"ParameterList","parameters":[],"src":"12791:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10827,"nodeType":"FunctionDefinition","src":"12894:163:13","nodes":[],"body":{"id":10826,"nodeType":"Block","src":"12960:97:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e7429","id":10819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13010:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_07c81217b9c48682941345dce61bbd916a12dd883642c9077891090a71c93a13","typeString":"literal_string \"log(string,address,uint)\""},"value":"log(string,address,uint)"},{"id":10820,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10809,"src":"13038:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10821,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10811,"src":"13042:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10822,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10813,"src":"13046:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07c81217b9c48682941345dce61bbd916a12dd883642c9077891090a71c93a13","typeString":"literal_string \"log(string,address,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10817,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12986:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12990:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12986:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12986:63:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10816,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"12970:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12970:80:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10825,"nodeType":"ExpressionStatement","src":"12970:80:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12903:3:13","parameters":{"id":10814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10809,"mutability":"mutable","name":"p0","nameLocation":"12921:2:13","nodeType":"VariableDeclaration","scope":10827,"src":"12907:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10808,"name":"string","nodeType":"ElementaryTypeName","src":"12907:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10811,"mutability":"mutable","name":"p1","nameLocation":"12933:2:13","nodeType":"VariableDeclaration","scope":10827,"src":"12925:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10810,"name":"address","nodeType":"ElementaryTypeName","src":"12925:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10813,"mutability":"mutable","name":"p2","nameLocation":"12942:2:13","nodeType":"VariableDeclaration","scope":10827,"src":"12937:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10812,"name":"uint","nodeType":"ElementaryTypeName","src":"12937:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12906:39:13"},"returnParameters":{"id":10815,"nodeType":"ParameterList","parameters":[],"src":"12960:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10847,"nodeType":"FunctionDefinition","src":"13063:174:13","nodes":[],"body":{"id":10846,"nodeType":"Block","src":"13138:99:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e6729","id":10839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13188:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634","typeString":"literal_string \"log(string,address,string)\""},"value":"log(string,address,string)"},{"id":10840,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10829,"src":"13218:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10841,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10831,"src":"13222:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10842,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10833,"src":"13226:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634","typeString":"literal_string \"log(string,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10837,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13164:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10838,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13168:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13164:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13164:65:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10836,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"13148:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13148:82:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10845,"nodeType":"ExpressionStatement","src":"13148:82:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13072:3:13","parameters":{"id":10834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10829,"mutability":"mutable","name":"p0","nameLocation":"13090:2:13","nodeType":"VariableDeclaration","scope":10847,"src":"13076:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10828,"name":"string","nodeType":"ElementaryTypeName","src":"13076:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10831,"mutability":"mutable","name":"p1","nameLocation":"13102:2:13","nodeType":"VariableDeclaration","scope":10847,"src":"13094:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10830,"name":"address","nodeType":"ElementaryTypeName","src":"13094:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10833,"mutability":"mutable","name":"p2","nameLocation":"13120:2:13","nodeType":"VariableDeclaration","scope":10847,"src":"13106:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10832,"name":"string","nodeType":"ElementaryTypeName","src":"13106:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13075:48:13"},"returnParameters":{"id":10835,"nodeType":"ParameterList","parameters":[],"src":"13138:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10867,"nodeType":"FunctionDefinition","src":"13243:163:13","nodes":[],"body":{"id":10866,"nodeType":"Block","src":"13309:97:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c29","id":10859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13359:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8","typeString":"literal_string \"log(string,address,bool)\""},"value":"log(string,address,bool)"},{"id":10860,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10849,"src":"13387:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10861,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10851,"src":"13391:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10862,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10853,"src":"13395:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8","typeString":"literal_string \"log(string,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10857,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13335:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13339:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13335:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13335:63:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10856,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"13319:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13319:80:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10865,"nodeType":"ExpressionStatement","src":"13319:80:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13252:3:13","parameters":{"id":10854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10849,"mutability":"mutable","name":"p0","nameLocation":"13270:2:13","nodeType":"VariableDeclaration","scope":10867,"src":"13256:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10848,"name":"string","nodeType":"ElementaryTypeName","src":"13256:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10851,"mutability":"mutable","name":"p1","nameLocation":"13282:2:13","nodeType":"VariableDeclaration","scope":10867,"src":"13274:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10850,"name":"address","nodeType":"ElementaryTypeName","src":"13274:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10853,"mutability":"mutable","name":"p2","nameLocation":"13291:2:13","nodeType":"VariableDeclaration","scope":10867,"src":"13286:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10852,"name":"bool","nodeType":"ElementaryTypeName","src":"13286:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13255:39:13"},"returnParameters":{"id":10855,"nodeType":"ParameterList","parameters":[],"src":"13309:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10887,"nodeType":"FunctionDefinition","src":"13412:169:13","nodes":[],"body":{"id":10886,"nodeType":"Block","src":"13481:100:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c6164647265737329","id":10879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13531:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8","typeString":"literal_string \"log(string,address,address)\""},"value":"log(string,address,address)"},{"id":10880,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10869,"src":"13562:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10881,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10871,"src":"13566:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10882,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10873,"src":"13570:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8","typeString":"literal_string \"log(string,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10877,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13507:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13511:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13507:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13507:66:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10876,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"13491:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13491:83:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10885,"nodeType":"ExpressionStatement","src":"13491:83:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13421:3:13","parameters":{"id":10874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10869,"mutability":"mutable","name":"p0","nameLocation":"13439:2:13","nodeType":"VariableDeclaration","scope":10887,"src":"13425:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10868,"name":"string","nodeType":"ElementaryTypeName","src":"13425:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10871,"mutability":"mutable","name":"p1","nameLocation":"13451:2:13","nodeType":"VariableDeclaration","scope":10887,"src":"13443:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10870,"name":"address","nodeType":"ElementaryTypeName","src":"13443:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10873,"mutability":"mutable","name":"p2","nameLocation":"13463:2:13","nodeType":"VariableDeclaration","scope":10887,"src":"13455:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10872,"name":"address","nodeType":"ElementaryTypeName","src":"13455:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13424:42:13"},"returnParameters":{"id":10875,"nodeType":"ParameterList","parameters":[],"src":"13481:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10907,"nodeType":"FunctionDefinition","src":"13587:146:13","nodes":[],"body":{"id":10906,"nodeType":"Block","src":"13641:92:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c75696e7429","id":10899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13691:21:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b5c03e061c862e366b964ce1ef4845511d610b73a90137eb2b2afa3099b1a4e","typeString":"literal_string \"log(bool,uint,uint)\""},"value":"log(bool,uint,uint)"},{"id":10900,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10889,"src":"13714:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10901,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10891,"src":"13718:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10902,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10893,"src":"13722:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b5c03e061c862e366b964ce1ef4845511d610b73a90137eb2b2afa3099b1a4e","typeString":"literal_string \"log(bool,uint,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10897,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13667:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13671:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13667:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13667:58:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10896,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"13651:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13651:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10905,"nodeType":"ExpressionStatement","src":"13651:75:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13596:3:13","parameters":{"id":10894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10889,"mutability":"mutable","name":"p0","nameLocation":"13605:2:13","nodeType":"VariableDeclaration","scope":10907,"src":"13600:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10888,"name":"bool","nodeType":"ElementaryTypeName","src":"13600:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10891,"mutability":"mutable","name":"p1","nameLocation":"13614:2:13","nodeType":"VariableDeclaration","scope":10907,"src":"13609:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10890,"name":"uint","nodeType":"ElementaryTypeName","src":"13609:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10893,"mutability":"mutable","name":"p2","nameLocation":"13623:2:13","nodeType":"VariableDeclaration","scope":10907,"src":"13618:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10892,"name":"uint","nodeType":"ElementaryTypeName","src":"13618:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13599:27:13"},"returnParameters":{"id":10895,"nodeType":"ParameterList","parameters":[],"src":"13641:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10927,"nodeType":"FunctionDefinition","src":"13739:157:13","nodes":[],"body":{"id":10926,"nodeType":"Block","src":"13802:94:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c737472696e6729","id":10919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13852:23:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_c8397eb0de34bc3ec2853d625c1649c0c0abb20941c30ba650cc738adade018f","typeString":"literal_string \"log(bool,uint,string)\""},"value":"log(bool,uint,string)"},{"id":10920,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10909,"src":"13877:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10921,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10911,"src":"13881:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10922,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10913,"src":"13885:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c8397eb0de34bc3ec2853d625c1649c0c0abb20941c30ba650cc738adade018f","typeString":"literal_string \"log(bool,uint,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10917,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13828:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13832:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13828:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13828:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10916,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"13812:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13812:77:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10925,"nodeType":"ExpressionStatement","src":"13812:77:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13748:3:13","parameters":{"id":10914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10909,"mutability":"mutable","name":"p0","nameLocation":"13757:2:13","nodeType":"VariableDeclaration","scope":10927,"src":"13752:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10908,"name":"bool","nodeType":"ElementaryTypeName","src":"13752:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10911,"mutability":"mutable","name":"p1","nameLocation":"13766:2:13","nodeType":"VariableDeclaration","scope":10927,"src":"13761:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10910,"name":"uint","nodeType":"ElementaryTypeName","src":"13761:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10913,"mutability":"mutable","name":"p2","nameLocation":"13784:2:13","nodeType":"VariableDeclaration","scope":10927,"src":"13770:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10912,"name":"string","nodeType":"ElementaryTypeName","src":"13770:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13751:36:13"},"returnParameters":{"id":10915,"nodeType":"ParameterList","parameters":[],"src":"13802:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10947,"nodeType":"FunctionDefinition","src":"13902:146:13","nodes":[],"body":{"id":10946,"nodeType":"Block","src":"13956:92:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c626f6f6c29","id":10939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14006:21:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_1badc9eb6813ec769c33a3918f278565b7e2e9ed34d2ae2d50d951cc0f602ae0","typeString":"literal_string \"log(bool,uint,bool)\""},"value":"log(bool,uint,bool)"},{"id":10940,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10929,"src":"14029:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10941,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10931,"src":"14033:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10942,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10933,"src":"14037:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1badc9eb6813ec769c33a3918f278565b7e2e9ed34d2ae2d50d951cc0f602ae0","typeString":"literal_string \"log(bool,uint,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10937,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13982:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10938,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13986:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13982:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13982:58:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10936,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"13966:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13966:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10945,"nodeType":"ExpressionStatement","src":"13966:75:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13911:3:13","parameters":{"id":10934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10929,"mutability":"mutable","name":"p0","nameLocation":"13920:2:13","nodeType":"VariableDeclaration","scope":10947,"src":"13915:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10928,"name":"bool","nodeType":"ElementaryTypeName","src":"13915:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10931,"mutability":"mutable","name":"p1","nameLocation":"13929:2:13","nodeType":"VariableDeclaration","scope":10947,"src":"13924:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10930,"name":"uint","nodeType":"ElementaryTypeName","src":"13924:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10933,"mutability":"mutable","name":"p2","nameLocation":"13938:2:13","nodeType":"VariableDeclaration","scope":10947,"src":"13933:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10932,"name":"bool","nodeType":"ElementaryTypeName","src":"13933:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13914:27:13"},"returnParameters":{"id":10935,"nodeType":"ParameterList","parameters":[],"src":"13956:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10967,"nodeType":"FunctionDefinition","src":"14054:152:13","nodes":[],"body":{"id":10966,"nodeType":"Block","src":"14111:95:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c6164647265737329","id":10959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14161:24:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4d23507f52009aec241457bf26dc51305bd2896aa08c5b47f04709554b39440","typeString":"literal_string \"log(bool,uint,address)\""},"value":"log(bool,uint,address)"},{"id":10960,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10949,"src":"14187:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10961,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10951,"src":"14191:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10962,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10953,"src":"14195:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c4d23507f52009aec241457bf26dc51305bd2896aa08c5b47f04709554b39440","typeString":"literal_string \"log(bool,uint,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10957,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14137:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14141:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14137:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14137:61:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10956,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"14121:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14121:78:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10965,"nodeType":"ExpressionStatement","src":"14121:78:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14063:3:13","parameters":{"id":10954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10949,"mutability":"mutable","name":"p0","nameLocation":"14072:2:13","nodeType":"VariableDeclaration","scope":10967,"src":"14067:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10948,"name":"bool","nodeType":"ElementaryTypeName","src":"14067:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10951,"mutability":"mutable","name":"p1","nameLocation":"14081:2:13","nodeType":"VariableDeclaration","scope":10967,"src":"14076:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10950,"name":"uint","nodeType":"ElementaryTypeName","src":"14076:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10953,"mutability":"mutable","name":"p2","nameLocation":"14093:2:13","nodeType":"VariableDeclaration","scope":10967,"src":"14085:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10952,"name":"address","nodeType":"ElementaryTypeName","src":"14085:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14066:30:13"},"returnParameters":{"id":10955,"nodeType":"ParameterList","parameters":[],"src":"14111:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":10987,"nodeType":"FunctionDefinition","src":"14212:157:13","nodes":[],"body":{"id":10986,"nodeType":"Block","src":"14275:94:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e7429","id":10979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14325:23:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_c0382aac3e9b237c9c8f246cdb8152d44351aaafa72d99e3640be65f754ac807","typeString":"literal_string \"log(bool,string,uint)\""},"value":"log(bool,string,uint)"},{"id":10980,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10969,"src":"14350:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10981,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10971,"src":"14354:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10982,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10973,"src":"14358:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c0382aac3e9b237c9c8f246cdb8152d44351aaafa72d99e3640be65f754ac807","typeString":"literal_string \"log(bool,string,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10977,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14301:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14305:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14301:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14301:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10976,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"14285:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":10984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14285:77:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10985,"nodeType":"ExpressionStatement","src":"14285:77:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14221:3:13","parameters":{"id":10974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10969,"mutability":"mutable","name":"p0","nameLocation":"14230:2:13","nodeType":"VariableDeclaration","scope":10987,"src":"14225:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10968,"name":"bool","nodeType":"ElementaryTypeName","src":"14225:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10971,"mutability":"mutable","name":"p1","nameLocation":"14248:2:13","nodeType":"VariableDeclaration","scope":10987,"src":"14234:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10970,"name":"string","nodeType":"ElementaryTypeName","src":"14234:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10973,"mutability":"mutable","name":"p2","nameLocation":"14257:2:13","nodeType":"VariableDeclaration","scope":10987,"src":"14252:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10972,"name":"uint","nodeType":"ElementaryTypeName","src":"14252:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14224:36:13"},"returnParameters":{"id":10975,"nodeType":"ParameterList","parameters":[],"src":"14275:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11007,"nodeType":"FunctionDefinition","src":"14375:168:13","nodes":[],"body":{"id":11006,"nodeType":"Block","src":"14447:96:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e6729","id":10999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14497:25:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102","typeString":"literal_string \"log(bool,string,string)\""},"value":"log(bool,string,string)"},{"id":11000,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10989,"src":"14524:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11001,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10991,"src":"14528:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11002,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10993,"src":"14532:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102","typeString":"literal_string \"log(bool,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10997,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14473:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10998,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14477:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14473:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14473:62:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10996,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"14457:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14457:79:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11005,"nodeType":"ExpressionStatement","src":"14457:79:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14384:3:13","parameters":{"id":10994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10989,"mutability":"mutable","name":"p0","nameLocation":"14393:2:13","nodeType":"VariableDeclaration","scope":11007,"src":"14388:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10988,"name":"bool","nodeType":"ElementaryTypeName","src":"14388:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10991,"mutability":"mutable","name":"p1","nameLocation":"14411:2:13","nodeType":"VariableDeclaration","scope":11007,"src":"14397:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10990,"name":"string","nodeType":"ElementaryTypeName","src":"14397:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10993,"mutability":"mutable","name":"p2","nameLocation":"14429:2:13","nodeType":"VariableDeclaration","scope":11007,"src":"14415:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10992,"name":"string","nodeType":"ElementaryTypeName","src":"14415:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14387:45:13"},"returnParameters":{"id":10995,"nodeType":"ParameterList","parameters":[],"src":"14447:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11027,"nodeType":"FunctionDefinition","src":"14549:157:13","nodes":[],"body":{"id":11026,"nodeType":"Block","src":"14612:94:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c29","id":11019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14662:23:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa","typeString":"literal_string \"log(bool,string,bool)\""},"value":"log(bool,string,bool)"},{"id":11020,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11009,"src":"14687:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11021,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"14691:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11022,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11013,"src":"14695:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa","typeString":"literal_string \"log(bool,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11017,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14638:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14642:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14638:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14638:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11016,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"14622:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14622:77:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11025,"nodeType":"ExpressionStatement","src":"14622:77:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14558:3:13","parameters":{"id":11014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11009,"mutability":"mutable","name":"p0","nameLocation":"14567:2:13","nodeType":"VariableDeclaration","scope":11027,"src":"14562:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11008,"name":"bool","nodeType":"ElementaryTypeName","src":"14562:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11011,"mutability":"mutable","name":"p1","nameLocation":"14585:2:13","nodeType":"VariableDeclaration","scope":11027,"src":"14571:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11010,"name":"string","nodeType":"ElementaryTypeName","src":"14571:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11013,"mutability":"mutable","name":"p2","nameLocation":"14594:2:13","nodeType":"VariableDeclaration","scope":11027,"src":"14589:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11012,"name":"bool","nodeType":"ElementaryTypeName","src":"14589:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14561:36:13"},"returnParameters":{"id":11015,"nodeType":"ParameterList","parameters":[],"src":"14612:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11047,"nodeType":"FunctionDefinition","src":"14712:163:13","nodes":[],"body":{"id":11046,"nodeType":"Block","src":"14778:97:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c6164647265737329","id":11039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14828:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79","typeString":"literal_string \"log(bool,string,address)\""},"value":"log(bool,string,address)"},{"id":11040,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11029,"src":"14856:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11041,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11031,"src":"14860:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11042,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11033,"src":"14864:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79","typeString":"literal_string \"log(bool,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11037,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14804:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14808:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14804:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14804:63:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11036,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"14788:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14788:80:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11045,"nodeType":"ExpressionStatement","src":"14788:80:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14721:3:13","parameters":{"id":11034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11029,"mutability":"mutable","name":"p0","nameLocation":"14730:2:13","nodeType":"VariableDeclaration","scope":11047,"src":"14725:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11028,"name":"bool","nodeType":"ElementaryTypeName","src":"14725:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11031,"mutability":"mutable","name":"p1","nameLocation":"14748:2:13","nodeType":"VariableDeclaration","scope":11047,"src":"14734:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11030,"name":"string","nodeType":"ElementaryTypeName","src":"14734:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11033,"mutability":"mutable","name":"p2","nameLocation":"14760:2:13","nodeType":"VariableDeclaration","scope":11047,"src":"14752:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11032,"name":"address","nodeType":"ElementaryTypeName","src":"14752:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14724:39:13"},"returnParameters":{"id":11035,"nodeType":"ParameterList","parameters":[],"src":"14778:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11067,"nodeType":"FunctionDefinition","src":"14881:146:13","nodes":[],"body":{"id":11066,"nodeType":"Block","src":"14935:92:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e7429","id":11059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14985:21:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_b01365bbae43503e22260bcc9cf23ffef37ffc9f6c1580737fe2489955065877","typeString":"literal_string \"log(bool,bool,uint)\""},"value":"log(bool,bool,uint)"},{"id":11060,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11049,"src":"15008:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11061,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11051,"src":"15012:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11062,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11053,"src":"15016:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b01365bbae43503e22260bcc9cf23ffef37ffc9f6c1580737fe2489955065877","typeString":"literal_string \"log(bool,bool,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11057,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14961:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14965:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14961:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14961:58:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11056,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"14945:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14945:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11065,"nodeType":"ExpressionStatement","src":"14945:75:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14890:3:13","parameters":{"id":11054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11049,"mutability":"mutable","name":"p0","nameLocation":"14899:2:13","nodeType":"VariableDeclaration","scope":11067,"src":"14894:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11048,"name":"bool","nodeType":"ElementaryTypeName","src":"14894:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11051,"mutability":"mutable","name":"p1","nameLocation":"14908:2:13","nodeType":"VariableDeclaration","scope":11067,"src":"14903:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11050,"name":"bool","nodeType":"ElementaryTypeName","src":"14903:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11053,"mutability":"mutable","name":"p2","nameLocation":"14917:2:13","nodeType":"VariableDeclaration","scope":11067,"src":"14912:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11052,"name":"uint","nodeType":"ElementaryTypeName","src":"14912:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14893:27:13"},"returnParameters":{"id":11055,"nodeType":"ParameterList","parameters":[],"src":"14935:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11087,"nodeType":"FunctionDefinition","src":"15033:157:13","nodes":[],"body":{"id":11086,"nodeType":"Block","src":"15096:94:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e6729","id":11079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15146:23:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc","typeString":"literal_string \"log(bool,bool,string)\""},"value":"log(bool,bool,string)"},{"id":11080,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11069,"src":"15171:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11081,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11071,"src":"15175:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11082,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11073,"src":"15179:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc","typeString":"literal_string \"log(bool,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11077,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15122:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15126:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15122:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15122:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11076,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"15106:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15106:77:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11085,"nodeType":"ExpressionStatement","src":"15106:77:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15042:3:13","parameters":{"id":11074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11069,"mutability":"mutable","name":"p0","nameLocation":"15051:2:13","nodeType":"VariableDeclaration","scope":11087,"src":"15046:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11068,"name":"bool","nodeType":"ElementaryTypeName","src":"15046:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11071,"mutability":"mutable","name":"p1","nameLocation":"15060:2:13","nodeType":"VariableDeclaration","scope":11087,"src":"15055:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11070,"name":"bool","nodeType":"ElementaryTypeName","src":"15055:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11073,"mutability":"mutable","name":"p2","nameLocation":"15078:2:13","nodeType":"VariableDeclaration","scope":11087,"src":"15064:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11072,"name":"string","nodeType":"ElementaryTypeName","src":"15064:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15045:36:13"},"returnParameters":{"id":11075,"nodeType":"ParameterList","parameters":[],"src":"15096:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11107,"nodeType":"FunctionDefinition","src":"15196:146:13","nodes":[],"body":{"id":11106,"nodeType":"Block","src":"15250:92:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c29","id":11099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15300:21:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590","typeString":"literal_string \"log(bool,bool,bool)\""},"value":"log(bool,bool,bool)"},{"id":11100,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11089,"src":"15323:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11101,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11091,"src":"15327:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11102,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11093,"src":"15331:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590","typeString":"literal_string \"log(bool,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11097,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15276:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15280:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15276:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15276:58:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11096,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"15260:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15260:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11105,"nodeType":"ExpressionStatement","src":"15260:75:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15205:3:13","parameters":{"id":11094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11089,"mutability":"mutable","name":"p0","nameLocation":"15214:2:13","nodeType":"VariableDeclaration","scope":11107,"src":"15209:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11088,"name":"bool","nodeType":"ElementaryTypeName","src":"15209:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11091,"mutability":"mutable","name":"p1","nameLocation":"15223:2:13","nodeType":"VariableDeclaration","scope":11107,"src":"15218:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11090,"name":"bool","nodeType":"ElementaryTypeName","src":"15218:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11093,"mutability":"mutable","name":"p2","nameLocation":"15232:2:13","nodeType":"VariableDeclaration","scope":11107,"src":"15227:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11092,"name":"bool","nodeType":"ElementaryTypeName","src":"15227:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15208:27:13"},"returnParameters":{"id":11095,"nodeType":"ParameterList","parameters":[],"src":"15250:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11127,"nodeType":"FunctionDefinition","src":"15348:152:13","nodes":[],"body":{"id":11126,"nodeType":"Block","src":"15405:95:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c6164647265737329","id":11119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15455:24:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81","typeString":"literal_string \"log(bool,bool,address)\""},"value":"log(bool,bool,address)"},{"id":11120,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11109,"src":"15481:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11121,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11111,"src":"15485:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11122,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11113,"src":"15489:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81","typeString":"literal_string \"log(bool,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11117,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15431:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15435:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15431:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15431:61:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11116,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"15415:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15415:78:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11125,"nodeType":"ExpressionStatement","src":"15415:78:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15357:3:13","parameters":{"id":11114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11109,"mutability":"mutable","name":"p0","nameLocation":"15366:2:13","nodeType":"VariableDeclaration","scope":11127,"src":"15361:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11108,"name":"bool","nodeType":"ElementaryTypeName","src":"15361:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11111,"mutability":"mutable","name":"p1","nameLocation":"15375:2:13","nodeType":"VariableDeclaration","scope":11127,"src":"15370:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11110,"name":"bool","nodeType":"ElementaryTypeName","src":"15370:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11113,"mutability":"mutable","name":"p2","nameLocation":"15387:2:13","nodeType":"VariableDeclaration","scope":11127,"src":"15379:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11112,"name":"address","nodeType":"ElementaryTypeName","src":"15379:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15360:30:13"},"returnParameters":{"id":11115,"nodeType":"ParameterList","parameters":[],"src":"15405:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11147,"nodeType":"FunctionDefinition","src":"15506:152:13","nodes":[],"body":{"id":11146,"nodeType":"Block","src":"15563:95:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e7429","id":11139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15613:24:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb704bafbd89369a907d48394b6acdacf482ae42cc2aaedd1cc37e89b4054b3d","typeString":"literal_string \"log(bool,address,uint)\""},"value":"log(bool,address,uint)"},{"id":11140,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11129,"src":"15639:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11141,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11131,"src":"15643:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11142,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11133,"src":"15647:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb704bafbd89369a907d48394b6acdacf482ae42cc2aaedd1cc37e89b4054b3d","typeString":"literal_string \"log(bool,address,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11137,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15589:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15593:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15589:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15589:61:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11136,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"15573:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15573:78:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11145,"nodeType":"ExpressionStatement","src":"15573:78:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15515:3:13","parameters":{"id":11134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11129,"mutability":"mutable","name":"p0","nameLocation":"15524:2:13","nodeType":"VariableDeclaration","scope":11147,"src":"15519:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11128,"name":"bool","nodeType":"ElementaryTypeName","src":"15519:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11131,"mutability":"mutable","name":"p1","nameLocation":"15536:2:13","nodeType":"VariableDeclaration","scope":11147,"src":"15528:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11130,"name":"address","nodeType":"ElementaryTypeName","src":"15528:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11133,"mutability":"mutable","name":"p2","nameLocation":"15545:2:13","nodeType":"VariableDeclaration","scope":11147,"src":"15540:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11132,"name":"uint","nodeType":"ElementaryTypeName","src":"15540:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15518:30:13"},"returnParameters":{"id":11135,"nodeType":"ParameterList","parameters":[],"src":"15563:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11167,"nodeType":"FunctionDefinition","src":"15664:163:13","nodes":[],"body":{"id":11166,"nodeType":"Block","src":"15730:97:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e6729","id":11159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15780:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d","typeString":"literal_string \"log(bool,address,string)\""},"value":"log(bool,address,string)"},{"id":11160,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11149,"src":"15808:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11161,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11151,"src":"15812:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11162,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11153,"src":"15816:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d","typeString":"literal_string \"log(bool,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11157,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15756:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11158,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15760:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15756:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15756:63:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11156,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"15740:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15740:80:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11165,"nodeType":"ExpressionStatement","src":"15740:80:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15673:3:13","parameters":{"id":11154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11149,"mutability":"mutable","name":"p0","nameLocation":"15682:2:13","nodeType":"VariableDeclaration","scope":11167,"src":"15677:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11148,"name":"bool","nodeType":"ElementaryTypeName","src":"15677:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11151,"mutability":"mutable","name":"p1","nameLocation":"15694:2:13","nodeType":"VariableDeclaration","scope":11167,"src":"15686:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11150,"name":"address","nodeType":"ElementaryTypeName","src":"15686:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11153,"mutability":"mutable","name":"p2","nameLocation":"15712:2:13","nodeType":"VariableDeclaration","scope":11167,"src":"15698:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11152,"name":"string","nodeType":"ElementaryTypeName","src":"15698:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15676:39:13"},"returnParameters":{"id":11155,"nodeType":"ParameterList","parameters":[],"src":"15730:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11187,"nodeType":"FunctionDefinition","src":"15833:152:13","nodes":[],"body":{"id":11186,"nodeType":"Block","src":"15890:95:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c29","id":11179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15940:24:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908","typeString":"literal_string \"log(bool,address,bool)\""},"value":"log(bool,address,bool)"},{"id":11180,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11169,"src":"15966:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11181,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11171,"src":"15970:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11182,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11173,"src":"15974:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908","typeString":"literal_string \"log(bool,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11177,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15916:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15920:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15916:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15916:61:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11176,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"15900:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15900:78:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11185,"nodeType":"ExpressionStatement","src":"15900:78:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15842:3:13","parameters":{"id":11174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11169,"mutability":"mutable","name":"p0","nameLocation":"15851:2:13","nodeType":"VariableDeclaration","scope":11187,"src":"15846:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11168,"name":"bool","nodeType":"ElementaryTypeName","src":"15846:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11171,"mutability":"mutable","name":"p1","nameLocation":"15863:2:13","nodeType":"VariableDeclaration","scope":11187,"src":"15855:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11170,"name":"address","nodeType":"ElementaryTypeName","src":"15855:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11173,"mutability":"mutable","name":"p2","nameLocation":"15872:2:13","nodeType":"VariableDeclaration","scope":11187,"src":"15867:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11172,"name":"bool","nodeType":"ElementaryTypeName","src":"15867:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15845:30:13"},"returnParameters":{"id":11175,"nodeType":"ParameterList","parameters":[],"src":"15890:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11207,"nodeType":"FunctionDefinition","src":"15991:158:13","nodes":[],"body":{"id":11206,"nodeType":"Block","src":"16051:98:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c6164647265737329","id":11199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16101:27:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265","typeString":"literal_string \"log(bool,address,address)\""},"value":"log(bool,address,address)"},{"id":11200,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11189,"src":"16130:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11201,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11191,"src":"16134:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11202,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11193,"src":"16138:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265","typeString":"literal_string \"log(bool,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11197,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16077:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16081:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16077:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16077:64:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11196,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"16061:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16061:81:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11205,"nodeType":"ExpressionStatement","src":"16061:81:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16000:3:13","parameters":{"id":11194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11189,"mutability":"mutable","name":"p0","nameLocation":"16009:2:13","nodeType":"VariableDeclaration","scope":11207,"src":"16004:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11188,"name":"bool","nodeType":"ElementaryTypeName","src":"16004:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11191,"mutability":"mutable","name":"p1","nameLocation":"16021:2:13","nodeType":"VariableDeclaration","scope":11207,"src":"16013:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11190,"name":"address","nodeType":"ElementaryTypeName","src":"16013:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11193,"mutability":"mutable","name":"p2","nameLocation":"16033:2:13","nodeType":"VariableDeclaration","scope":11207,"src":"16025:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11192,"name":"address","nodeType":"ElementaryTypeName","src":"16025:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16003:33:13"},"returnParameters":{"id":11195,"nodeType":"ParameterList","parameters":[],"src":"16051:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11227,"nodeType":"FunctionDefinition","src":"16155:152:13","nodes":[],"body":{"id":11226,"nodeType":"Block","src":"16212:95:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c75696e7429","id":11219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16262:24:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_8786135eae1a8e4736031518026bd3bd30886c3cc8d3e8bdedd6faea426de5ea","typeString":"literal_string \"log(address,uint,uint)\""},"value":"log(address,uint,uint)"},{"id":11220,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11209,"src":"16288:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11221,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11211,"src":"16292:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11222,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11213,"src":"16296:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8786135eae1a8e4736031518026bd3bd30886c3cc8d3e8bdedd6faea426de5ea","typeString":"literal_string \"log(address,uint,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11217,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16238:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16242:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16238:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16238:61:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11216,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"16222:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16222:78:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11225,"nodeType":"ExpressionStatement","src":"16222:78:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16164:3:13","parameters":{"id":11214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11209,"mutability":"mutable","name":"p0","nameLocation":"16176:2:13","nodeType":"VariableDeclaration","scope":11227,"src":"16168:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11208,"name":"address","nodeType":"ElementaryTypeName","src":"16168:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11211,"mutability":"mutable","name":"p1","nameLocation":"16185:2:13","nodeType":"VariableDeclaration","scope":11227,"src":"16180:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11210,"name":"uint","nodeType":"ElementaryTypeName","src":"16180:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11213,"mutability":"mutable","name":"p2","nameLocation":"16194:2:13","nodeType":"VariableDeclaration","scope":11227,"src":"16189:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11212,"name":"uint","nodeType":"ElementaryTypeName","src":"16189:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16167:30:13"},"returnParameters":{"id":11215,"nodeType":"ParameterList","parameters":[],"src":"16212:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11247,"nodeType":"FunctionDefinition","src":"16313:163:13","nodes":[],"body":{"id":11246,"nodeType":"Block","src":"16379:97:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c737472696e6729","id":11239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16429:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_baf968498a2094de432bd16841b992056c14db9f313a6b44c3156c2b5f1dc2b4","typeString":"literal_string \"log(address,uint,string)\""},"value":"log(address,uint,string)"},{"id":11240,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11229,"src":"16457:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11241,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11231,"src":"16461:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11242,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11233,"src":"16465:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_baf968498a2094de432bd16841b992056c14db9f313a6b44c3156c2b5f1dc2b4","typeString":"literal_string \"log(address,uint,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11237,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16405:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16409:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16405:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16405:63:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11236,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"16389:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16389:80:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11245,"nodeType":"ExpressionStatement","src":"16389:80:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16322:3:13","parameters":{"id":11234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11229,"mutability":"mutable","name":"p0","nameLocation":"16334:2:13","nodeType":"VariableDeclaration","scope":11247,"src":"16326:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11228,"name":"address","nodeType":"ElementaryTypeName","src":"16326:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11231,"mutability":"mutable","name":"p1","nameLocation":"16343:2:13","nodeType":"VariableDeclaration","scope":11247,"src":"16338:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11230,"name":"uint","nodeType":"ElementaryTypeName","src":"16338:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11233,"mutability":"mutable","name":"p2","nameLocation":"16361:2:13","nodeType":"VariableDeclaration","scope":11247,"src":"16347:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11232,"name":"string","nodeType":"ElementaryTypeName","src":"16347:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16325:39:13"},"returnParameters":{"id":11235,"nodeType":"ParameterList","parameters":[],"src":"16379:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11267,"nodeType":"FunctionDefinition","src":"16482:152:13","nodes":[],"body":{"id":11266,"nodeType":"Block","src":"16539:95:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c626f6f6c29","id":11259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16589:24:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_e54ae1445cd51f09e801fc5885e33c709102997417d3d9b6f543f7724468b4e4","typeString":"literal_string \"log(address,uint,bool)\""},"value":"log(address,uint,bool)"},{"id":11260,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11249,"src":"16615:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11261,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11251,"src":"16619:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11262,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11253,"src":"16623:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e54ae1445cd51f09e801fc5885e33c709102997417d3d9b6f543f7724468b4e4","typeString":"literal_string \"log(address,uint,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11257,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16565:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16569:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16565:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16565:61:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11256,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"16549:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16549:78:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11265,"nodeType":"ExpressionStatement","src":"16549:78:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16491:3:13","parameters":{"id":11254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11249,"mutability":"mutable","name":"p0","nameLocation":"16503:2:13","nodeType":"VariableDeclaration","scope":11267,"src":"16495:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11248,"name":"address","nodeType":"ElementaryTypeName","src":"16495:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11251,"mutability":"mutable","name":"p1","nameLocation":"16512:2:13","nodeType":"VariableDeclaration","scope":11267,"src":"16507:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11250,"name":"uint","nodeType":"ElementaryTypeName","src":"16507:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11253,"mutability":"mutable","name":"p2","nameLocation":"16521:2:13","nodeType":"VariableDeclaration","scope":11267,"src":"16516:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11252,"name":"bool","nodeType":"ElementaryTypeName","src":"16516:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16494:30:13"},"returnParameters":{"id":11255,"nodeType":"ParameterList","parameters":[],"src":"16539:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11287,"nodeType":"FunctionDefinition","src":"16640:158:13","nodes":[],"body":{"id":11286,"nodeType":"Block","src":"16700:98:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c6164647265737329","id":11279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16750:27:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_97eca3948a309251ff02cc4a3cb96f84ac4b6b4bdc56e86c9f0131c9b70c6259","typeString":"literal_string \"log(address,uint,address)\""},"value":"log(address,uint,address)"},{"id":11280,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11269,"src":"16779:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11281,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11271,"src":"16783:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11282,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11273,"src":"16787:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_97eca3948a309251ff02cc4a3cb96f84ac4b6b4bdc56e86c9f0131c9b70c6259","typeString":"literal_string \"log(address,uint,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11277,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16726:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16730:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16726:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16726:64:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11276,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"16710:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16710:81:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11285,"nodeType":"ExpressionStatement","src":"16710:81:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16649:3:13","parameters":{"id":11274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11269,"mutability":"mutable","name":"p0","nameLocation":"16661:2:13","nodeType":"VariableDeclaration","scope":11287,"src":"16653:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11268,"name":"address","nodeType":"ElementaryTypeName","src":"16653:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11271,"mutability":"mutable","name":"p1","nameLocation":"16670:2:13","nodeType":"VariableDeclaration","scope":11287,"src":"16665:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11270,"name":"uint","nodeType":"ElementaryTypeName","src":"16665:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11273,"mutability":"mutable","name":"p2","nameLocation":"16682:2:13","nodeType":"VariableDeclaration","scope":11287,"src":"16674:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11272,"name":"address","nodeType":"ElementaryTypeName","src":"16674:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16652:33:13"},"returnParameters":{"id":11275,"nodeType":"ParameterList","parameters":[],"src":"16700:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11307,"nodeType":"FunctionDefinition","src":"16804:163:13","nodes":[],"body":{"id":11306,"nodeType":"Block","src":"16870:97:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e7429","id":11299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16920:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_1cdaf28a630ff01c83e1629295cea6793da60638603e831a5c07be53dbee3597","typeString":"literal_string \"log(address,string,uint)\""},"value":"log(address,string,uint)"},{"id":11300,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11289,"src":"16948:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11301,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11291,"src":"16952:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11302,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11293,"src":"16956:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1cdaf28a630ff01c83e1629295cea6793da60638603e831a5c07be53dbee3597","typeString":"literal_string \"log(address,string,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11297,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16896:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16900:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16896:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16896:63:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11296,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"16880:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16880:80:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11305,"nodeType":"ExpressionStatement","src":"16880:80:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16813:3:13","parameters":{"id":11294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11289,"mutability":"mutable","name":"p0","nameLocation":"16825:2:13","nodeType":"VariableDeclaration","scope":11307,"src":"16817:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11288,"name":"address","nodeType":"ElementaryTypeName","src":"16817:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11291,"mutability":"mutable","name":"p1","nameLocation":"16843:2:13","nodeType":"VariableDeclaration","scope":11307,"src":"16829:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11290,"name":"string","nodeType":"ElementaryTypeName","src":"16829:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11293,"mutability":"mutable","name":"p2","nameLocation":"16852:2:13","nodeType":"VariableDeclaration","scope":11307,"src":"16847:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11292,"name":"uint","nodeType":"ElementaryTypeName","src":"16847:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16816:39:13"},"returnParameters":{"id":11295,"nodeType":"ParameterList","parameters":[],"src":"16870:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11327,"nodeType":"FunctionDefinition","src":"16973:174:13","nodes":[],"body":{"id":11326,"nodeType":"Block","src":"17048:99:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e6729","id":11319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17098:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158","typeString":"literal_string \"log(address,string,string)\""},"value":"log(address,string,string)"},{"id":11320,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11309,"src":"17128:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11321,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11311,"src":"17132:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11322,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11313,"src":"17136:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158","typeString":"literal_string \"log(address,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11317,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17074:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17078:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17074:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17074:65:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11316,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"17058:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17058:82:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11325,"nodeType":"ExpressionStatement","src":"17058:82:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16982:3:13","parameters":{"id":11314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11309,"mutability":"mutable","name":"p0","nameLocation":"16994:2:13","nodeType":"VariableDeclaration","scope":11327,"src":"16986:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11308,"name":"address","nodeType":"ElementaryTypeName","src":"16986:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11311,"mutability":"mutable","name":"p1","nameLocation":"17012:2:13","nodeType":"VariableDeclaration","scope":11327,"src":"16998:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11310,"name":"string","nodeType":"ElementaryTypeName","src":"16998:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11313,"mutability":"mutable","name":"p2","nameLocation":"17030:2:13","nodeType":"VariableDeclaration","scope":11327,"src":"17016:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11312,"name":"string","nodeType":"ElementaryTypeName","src":"17016:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16985:48:13"},"returnParameters":{"id":11315,"nodeType":"ParameterList","parameters":[],"src":"17048:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11347,"nodeType":"FunctionDefinition","src":"17153:163:13","nodes":[],"body":{"id":11346,"nodeType":"Block","src":"17219:97:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c29","id":11339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17269:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96","typeString":"literal_string \"log(address,string,bool)\""},"value":"log(address,string,bool)"},{"id":11340,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11329,"src":"17297:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11341,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11331,"src":"17301:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11342,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"17305:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96","typeString":"literal_string \"log(address,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11337,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17245:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17249:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17245:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17245:63:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11336,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"17229:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17229:80:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11345,"nodeType":"ExpressionStatement","src":"17229:80:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17162:3:13","parameters":{"id":11334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11329,"mutability":"mutable","name":"p0","nameLocation":"17174:2:13","nodeType":"VariableDeclaration","scope":11347,"src":"17166:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11328,"name":"address","nodeType":"ElementaryTypeName","src":"17166:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11331,"mutability":"mutable","name":"p1","nameLocation":"17192:2:13","nodeType":"VariableDeclaration","scope":11347,"src":"17178:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11330,"name":"string","nodeType":"ElementaryTypeName","src":"17178:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11333,"mutability":"mutable","name":"p2","nameLocation":"17201:2:13","nodeType":"VariableDeclaration","scope":11347,"src":"17196:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11332,"name":"bool","nodeType":"ElementaryTypeName","src":"17196:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17165:39:13"},"returnParameters":{"id":11335,"nodeType":"ParameterList","parameters":[],"src":"17219:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11367,"nodeType":"FunctionDefinition","src":"17322:169:13","nodes":[],"body":{"id":11366,"nodeType":"Block","src":"17391:100:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c6164647265737329","id":11359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17441:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231","typeString":"literal_string \"log(address,string,address)\""},"value":"log(address,string,address)"},{"id":11360,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11349,"src":"17472:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11361,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11351,"src":"17476:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11362,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11353,"src":"17480:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231","typeString":"literal_string \"log(address,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11357,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17417:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17421:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17417:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17417:66:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11356,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"17401:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17401:83:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11365,"nodeType":"ExpressionStatement","src":"17401:83:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17331:3:13","parameters":{"id":11354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11349,"mutability":"mutable","name":"p0","nameLocation":"17343:2:13","nodeType":"VariableDeclaration","scope":11367,"src":"17335:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11348,"name":"address","nodeType":"ElementaryTypeName","src":"17335:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11351,"mutability":"mutable","name":"p1","nameLocation":"17361:2:13","nodeType":"VariableDeclaration","scope":11367,"src":"17347:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11350,"name":"string","nodeType":"ElementaryTypeName","src":"17347:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11353,"mutability":"mutable","name":"p2","nameLocation":"17373:2:13","nodeType":"VariableDeclaration","scope":11367,"src":"17365:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11352,"name":"address","nodeType":"ElementaryTypeName","src":"17365:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17334:42:13"},"returnParameters":{"id":11355,"nodeType":"ParameterList","parameters":[],"src":"17391:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11387,"nodeType":"FunctionDefinition","src":"17497:152:13","nodes":[],"body":{"id":11386,"nodeType":"Block","src":"17554:95:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e7429","id":11379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17604:24:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c468d157d9cb3bd4f3bc977d201b067de313f8e774b0377d5c5b2b5c9426095","typeString":"literal_string \"log(address,bool,uint)\""},"value":"log(address,bool,uint)"},{"id":11380,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11369,"src":"17630:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11381,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11371,"src":"17634:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11382,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11373,"src":"17638:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c468d157d9cb3bd4f3bc977d201b067de313f8e774b0377d5c5b2b5c9426095","typeString":"literal_string \"log(address,bool,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11377,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17580:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17584:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17580:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17580:61:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11376,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"17564:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17564:78:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11385,"nodeType":"ExpressionStatement","src":"17564:78:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17506:3:13","parameters":{"id":11374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11369,"mutability":"mutable","name":"p0","nameLocation":"17518:2:13","nodeType":"VariableDeclaration","scope":11387,"src":"17510:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11368,"name":"address","nodeType":"ElementaryTypeName","src":"17510:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11371,"mutability":"mutable","name":"p1","nameLocation":"17527:2:13","nodeType":"VariableDeclaration","scope":11387,"src":"17522:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11370,"name":"bool","nodeType":"ElementaryTypeName","src":"17522:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11373,"mutability":"mutable","name":"p2","nameLocation":"17536:2:13","nodeType":"VariableDeclaration","scope":11387,"src":"17531:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11372,"name":"uint","nodeType":"ElementaryTypeName","src":"17531:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17509:30:13"},"returnParameters":{"id":11375,"nodeType":"ParameterList","parameters":[],"src":"17554:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11407,"nodeType":"FunctionDefinition","src":"17655:163:13","nodes":[],"body":{"id":11406,"nodeType":"Block","src":"17721:97:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e6729","id":11399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17771:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750","typeString":"literal_string \"log(address,bool,string)\""},"value":"log(address,bool,string)"},{"id":11400,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11389,"src":"17799:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11401,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11391,"src":"17803:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11402,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11393,"src":"17807:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750","typeString":"literal_string \"log(address,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11397,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17747:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17751:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17747:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17747:63:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11396,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"17731:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17731:80:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11405,"nodeType":"ExpressionStatement","src":"17731:80:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17664:3:13","parameters":{"id":11394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11389,"mutability":"mutable","name":"p0","nameLocation":"17676:2:13","nodeType":"VariableDeclaration","scope":11407,"src":"17668:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11388,"name":"address","nodeType":"ElementaryTypeName","src":"17668:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11391,"mutability":"mutable","name":"p1","nameLocation":"17685:2:13","nodeType":"VariableDeclaration","scope":11407,"src":"17680:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11390,"name":"bool","nodeType":"ElementaryTypeName","src":"17680:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11393,"mutability":"mutable","name":"p2","nameLocation":"17703:2:13","nodeType":"VariableDeclaration","scope":11407,"src":"17689:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11392,"name":"string","nodeType":"ElementaryTypeName","src":"17689:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17667:39:13"},"returnParameters":{"id":11395,"nodeType":"ParameterList","parameters":[],"src":"17721:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11427,"nodeType":"FunctionDefinition","src":"17824:152:13","nodes":[],"body":{"id":11426,"nodeType":"Block","src":"17881:95:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c29","id":11419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17931:24:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279","typeString":"literal_string \"log(address,bool,bool)\""},"value":"log(address,bool,bool)"},{"id":11420,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11409,"src":"17957:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11421,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11411,"src":"17961:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11422,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11413,"src":"17965:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279","typeString":"literal_string \"log(address,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11417,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17907:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17911:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17907:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17907:61:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11416,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"17891:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17891:78:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11425,"nodeType":"ExpressionStatement","src":"17891:78:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17833:3:13","parameters":{"id":11414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11409,"mutability":"mutable","name":"p0","nameLocation":"17845:2:13","nodeType":"VariableDeclaration","scope":11427,"src":"17837:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11408,"name":"address","nodeType":"ElementaryTypeName","src":"17837:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11411,"mutability":"mutable","name":"p1","nameLocation":"17854:2:13","nodeType":"VariableDeclaration","scope":11427,"src":"17849:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11410,"name":"bool","nodeType":"ElementaryTypeName","src":"17849:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11413,"mutability":"mutable","name":"p2","nameLocation":"17863:2:13","nodeType":"VariableDeclaration","scope":11427,"src":"17858:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11412,"name":"bool","nodeType":"ElementaryTypeName","src":"17858:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17836:30:13"},"returnParameters":{"id":11415,"nodeType":"ParameterList","parameters":[],"src":"17881:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11447,"nodeType":"FunctionDefinition","src":"17982:158:13","nodes":[],"body":{"id":11446,"nodeType":"Block","src":"18042:98:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c6164647265737329","id":11439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18092:27:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d","typeString":"literal_string \"log(address,bool,address)\""},"value":"log(address,bool,address)"},{"id":11440,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11429,"src":"18121:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11441,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11431,"src":"18125:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11442,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11433,"src":"18129:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d","typeString":"literal_string \"log(address,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11437,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18068:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18072:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18068:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18068:64:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11436,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"18052:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18052:81:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11445,"nodeType":"ExpressionStatement","src":"18052:81:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17991:3:13","parameters":{"id":11434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11429,"mutability":"mutable","name":"p0","nameLocation":"18003:2:13","nodeType":"VariableDeclaration","scope":11447,"src":"17995:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11428,"name":"address","nodeType":"ElementaryTypeName","src":"17995:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11431,"mutability":"mutable","name":"p1","nameLocation":"18012:2:13","nodeType":"VariableDeclaration","scope":11447,"src":"18007:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11430,"name":"bool","nodeType":"ElementaryTypeName","src":"18007:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11433,"mutability":"mutable","name":"p2","nameLocation":"18024:2:13","nodeType":"VariableDeclaration","scope":11447,"src":"18016:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11432,"name":"address","nodeType":"ElementaryTypeName","src":"18016:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17994:33:13"},"returnParameters":{"id":11435,"nodeType":"ParameterList","parameters":[],"src":"18042:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11467,"nodeType":"FunctionDefinition","src":"18146:158:13","nodes":[],"body":{"id":11466,"nodeType":"Block","src":"18206:98:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e7429","id":11459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18256:27:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c366d7295b93bbfacc4df0ea28f0eef60efacfffd447f8f2823cbe5b2fedb07","typeString":"literal_string \"log(address,address,uint)\""},"value":"log(address,address,uint)"},{"id":11460,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11449,"src":"18285:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11461,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11451,"src":"18289:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11462,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11453,"src":"18293:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6c366d7295b93bbfacc4df0ea28f0eef60efacfffd447f8f2823cbe5b2fedb07","typeString":"literal_string \"log(address,address,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11457,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18232:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18236:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18232:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18232:64:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11456,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"18216:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18216:81:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11465,"nodeType":"ExpressionStatement","src":"18216:81:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18155:3:13","parameters":{"id":11454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11449,"mutability":"mutable","name":"p0","nameLocation":"18167:2:13","nodeType":"VariableDeclaration","scope":11467,"src":"18159:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11448,"name":"address","nodeType":"ElementaryTypeName","src":"18159:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11451,"mutability":"mutable","name":"p1","nameLocation":"18179:2:13","nodeType":"VariableDeclaration","scope":11467,"src":"18171:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11450,"name":"address","nodeType":"ElementaryTypeName","src":"18171:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11453,"mutability":"mutable","name":"p2","nameLocation":"18188:2:13","nodeType":"VariableDeclaration","scope":11467,"src":"18183:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11452,"name":"uint","nodeType":"ElementaryTypeName","src":"18183:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18158:33:13"},"returnParameters":{"id":11455,"nodeType":"ParameterList","parameters":[],"src":"18206:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11487,"nodeType":"FunctionDefinition","src":"18310:169:13","nodes":[],"body":{"id":11486,"nodeType":"Block","src":"18379:100:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e6729","id":11479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18429:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee","typeString":"literal_string \"log(address,address,string)\""},"value":"log(address,address,string)"},{"id":11480,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11469,"src":"18460:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11481,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11471,"src":"18464:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11482,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11473,"src":"18468:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee","typeString":"literal_string \"log(address,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11477,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18405:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18409:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18405:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18405:66:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11476,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"18389:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18389:83:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11485,"nodeType":"ExpressionStatement","src":"18389:83:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18319:3:13","parameters":{"id":11474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11469,"mutability":"mutable","name":"p0","nameLocation":"18331:2:13","nodeType":"VariableDeclaration","scope":11487,"src":"18323:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11468,"name":"address","nodeType":"ElementaryTypeName","src":"18323:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11471,"mutability":"mutable","name":"p1","nameLocation":"18343:2:13","nodeType":"VariableDeclaration","scope":11487,"src":"18335:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11470,"name":"address","nodeType":"ElementaryTypeName","src":"18335:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11473,"mutability":"mutable","name":"p2","nameLocation":"18361:2:13","nodeType":"VariableDeclaration","scope":11487,"src":"18347:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11472,"name":"string","nodeType":"ElementaryTypeName","src":"18347:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18322:42:13"},"returnParameters":{"id":11475,"nodeType":"ParameterList","parameters":[],"src":"18379:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11507,"nodeType":"FunctionDefinition","src":"18485:158:13","nodes":[],"body":{"id":11506,"nodeType":"Block","src":"18545:98:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c29","id":11499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18595:27:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc","typeString":"literal_string \"log(address,address,bool)\""},"value":"log(address,address,bool)"},{"id":11500,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11489,"src":"18624:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11501,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11491,"src":"18628:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11502,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11493,"src":"18632:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc","typeString":"literal_string \"log(address,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11497,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18571:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18575:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18571:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18571:64:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11496,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"18555:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18555:81:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11505,"nodeType":"ExpressionStatement","src":"18555:81:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18494:3:13","parameters":{"id":11494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11489,"mutability":"mutable","name":"p0","nameLocation":"18506:2:13","nodeType":"VariableDeclaration","scope":11507,"src":"18498:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11488,"name":"address","nodeType":"ElementaryTypeName","src":"18498:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11491,"mutability":"mutable","name":"p1","nameLocation":"18518:2:13","nodeType":"VariableDeclaration","scope":11507,"src":"18510:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11490,"name":"address","nodeType":"ElementaryTypeName","src":"18510:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11493,"mutability":"mutable","name":"p2","nameLocation":"18527:2:13","nodeType":"VariableDeclaration","scope":11507,"src":"18522:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11492,"name":"bool","nodeType":"ElementaryTypeName","src":"18522:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18497:33:13"},"returnParameters":{"id":11495,"nodeType":"ParameterList","parameters":[],"src":"18545:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11527,"nodeType":"FunctionDefinition","src":"18649:164:13","nodes":[],"body":{"id":11526,"nodeType":"Block","src":"18712:101:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c6164647265737329","id":11519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18762:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830","typeString":"literal_string \"log(address,address,address)\""},"value":"log(address,address,address)"},{"id":11520,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11509,"src":"18794:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11521,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11511,"src":"18798:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11522,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11513,"src":"18802:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830","typeString":"literal_string \"log(address,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11517,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18738:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18742:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18738:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18738:67:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11516,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"18722:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18722:84:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11525,"nodeType":"ExpressionStatement","src":"18722:84:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18658:3:13","parameters":{"id":11514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11509,"mutability":"mutable","name":"p0","nameLocation":"18670:2:13","nodeType":"VariableDeclaration","scope":11527,"src":"18662:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11508,"name":"address","nodeType":"ElementaryTypeName","src":"18662:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11511,"mutability":"mutable","name":"p1","nameLocation":"18682:2:13","nodeType":"VariableDeclaration","scope":11527,"src":"18674:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11510,"name":"address","nodeType":"ElementaryTypeName","src":"18674:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11513,"mutability":"mutable","name":"p2","nameLocation":"18694:2:13","nodeType":"VariableDeclaration","scope":11527,"src":"18686:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11512,"name":"address","nodeType":"ElementaryTypeName","src":"18686:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18661:36:13"},"returnParameters":{"id":11515,"nodeType":"ParameterList","parameters":[],"src":"18712:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11550,"nodeType":"FunctionDefinition","src":"18819:164:13","nodes":[],"body":{"id":11549,"nodeType":"Block","src":"18882:101:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c75696e742c75696e7429","id":11541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18932:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ca0ad3ec7f731e4661cde447171efd221faf44c50b57eba4cc4965c1f89c0b6","typeString":"literal_string \"log(uint,uint,uint,uint)\""},"value":"log(uint,uint,uint,uint)"},{"id":11542,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11529,"src":"18960:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11543,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11531,"src":"18964:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11544,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11533,"src":"18968:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11545,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11535,"src":"18972:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ca0ad3ec7f731e4661cde447171efd221faf44c50b57eba4cc4965c1f89c0b6","typeString":"literal_string \"log(uint,uint,uint,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11539,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18908:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11540,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18912:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18908:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18908:67:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11538,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"18892:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18892:84:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11548,"nodeType":"ExpressionStatement","src":"18892:84:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18828:3:13","parameters":{"id":11536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11529,"mutability":"mutable","name":"p0","nameLocation":"18837:2:13","nodeType":"VariableDeclaration","scope":11550,"src":"18832:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11528,"name":"uint","nodeType":"ElementaryTypeName","src":"18832:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11531,"mutability":"mutable","name":"p1","nameLocation":"18846:2:13","nodeType":"VariableDeclaration","scope":11550,"src":"18841:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11530,"name":"uint","nodeType":"ElementaryTypeName","src":"18841:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11533,"mutability":"mutable","name":"p2","nameLocation":"18855:2:13","nodeType":"VariableDeclaration","scope":11550,"src":"18850:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11532,"name":"uint","nodeType":"ElementaryTypeName","src":"18850:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11535,"mutability":"mutable","name":"p3","nameLocation":"18864:2:13","nodeType":"VariableDeclaration","scope":11550,"src":"18859:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11534,"name":"uint","nodeType":"ElementaryTypeName","src":"18859:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18831:36:13"},"returnParameters":{"id":11537,"nodeType":"ParameterList","parameters":[],"src":"18882:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11573,"nodeType":"FunctionDefinition","src":"18989:175:13","nodes":[],"body":{"id":11572,"nodeType":"Block","src":"19061:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c75696e742c737472696e6729","id":11564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19111:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_78ad7a0c8cf57ba0e3b9e892fd6558ba40a5d4c84ef5c8c5e36bfc8d7f23b0c5","typeString":"literal_string \"log(uint,uint,uint,string)\""},"value":"log(uint,uint,uint,string)"},{"id":11565,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11552,"src":"19141:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11566,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11554,"src":"19145:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11567,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11556,"src":"19149:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11568,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11558,"src":"19153:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_78ad7a0c8cf57ba0e3b9e892fd6558ba40a5d4c84ef5c8c5e36bfc8d7f23b0c5","typeString":"literal_string \"log(uint,uint,uint,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11562,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19087:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19091:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19087:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19087:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11561,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"19071:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19071:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11571,"nodeType":"ExpressionStatement","src":"19071:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18998:3:13","parameters":{"id":11559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11552,"mutability":"mutable","name":"p0","nameLocation":"19007:2:13","nodeType":"VariableDeclaration","scope":11573,"src":"19002:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11551,"name":"uint","nodeType":"ElementaryTypeName","src":"19002:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11554,"mutability":"mutable","name":"p1","nameLocation":"19016:2:13","nodeType":"VariableDeclaration","scope":11573,"src":"19011:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11553,"name":"uint","nodeType":"ElementaryTypeName","src":"19011:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11556,"mutability":"mutable","name":"p2","nameLocation":"19025:2:13","nodeType":"VariableDeclaration","scope":11573,"src":"19020:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11555,"name":"uint","nodeType":"ElementaryTypeName","src":"19020:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11558,"mutability":"mutable","name":"p3","nameLocation":"19043:2:13","nodeType":"VariableDeclaration","scope":11573,"src":"19029:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11557,"name":"string","nodeType":"ElementaryTypeName","src":"19029:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19001:45:13"},"returnParameters":{"id":11560,"nodeType":"ParameterList","parameters":[],"src":"19061:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11596,"nodeType":"FunctionDefinition","src":"19170:164:13","nodes":[],"body":{"id":11595,"nodeType":"Block","src":"19233:101:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c75696e742c626f6f6c29","id":11587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19283:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_6452b9cbdf8b8479d7ee301237b2d6dfa173fc92538628ab30d643fb4351918f","typeString":"literal_string \"log(uint,uint,uint,bool)\""},"value":"log(uint,uint,uint,bool)"},{"id":11588,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11575,"src":"19311:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11589,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"19315:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11590,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11579,"src":"19319:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11591,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11581,"src":"19323:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6452b9cbdf8b8479d7ee301237b2d6dfa173fc92538628ab30d643fb4351918f","typeString":"literal_string \"log(uint,uint,uint,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11585,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19259:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11586,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19263:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19259:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19259:67:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11584,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"19243:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19243:84:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11594,"nodeType":"ExpressionStatement","src":"19243:84:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19179:3:13","parameters":{"id":11582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11575,"mutability":"mutable","name":"p0","nameLocation":"19188:2:13","nodeType":"VariableDeclaration","scope":11596,"src":"19183:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11574,"name":"uint","nodeType":"ElementaryTypeName","src":"19183:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11577,"mutability":"mutable","name":"p1","nameLocation":"19197:2:13","nodeType":"VariableDeclaration","scope":11596,"src":"19192:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11576,"name":"uint","nodeType":"ElementaryTypeName","src":"19192:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11579,"mutability":"mutable","name":"p2","nameLocation":"19206:2:13","nodeType":"VariableDeclaration","scope":11596,"src":"19201:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11578,"name":"uint","nodeType":"ElementaryTypeName","src":"19201:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11581,"mutability":"mutable","name":"p3","nameLocation":"19215:2:13","nodeType":"VariableDeclaration","scope":11596,"src":"19210:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11580,"name":"bool","nodeType":"ElementaryTypeName","src":"19210:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19182:36:13"},"returnParameters":{"id":11583,"nodeType":"ParameterList","parameters":[],"src":"19233:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11619,"nodeType":"FunctionDefinition","src":"19340:170:13","nodes":[],"body":{"id":11618,"nodeType":"Block","src":"19406:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c75696e742c6164647265737329","id":11610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19456:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0853f69a5584c9e0aa87ddae9bd870cf5164166d612d334644e66176c1213ba","typeString":"literal_string \"log(uint,uint,uint,address)\""},"value":"log(uint,uint,uint,address)"},{"id":11611,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11598,"src":"19487:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11612,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11600,"src":"19491:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11613,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11602,"src":"19495:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11614,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11604,"src":"19499:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0853f69a5584c9e0aa87ddae9bd870cf5164166d612d334644e66176c1213ba","typeString":"literal_string \"log(uint,uint,uint,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11608,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19432:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19436:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19432:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19432:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11607,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"19416:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19416:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11617,"nodeType":"ExpressionStatement","src":"19416:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19349:3:13","parameters":{"id":11605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11598,"mutability":"mutable","name":"p0","nameLocation":"19358:2:13","nodeType":"VariableDeclaration","scope":11619,"src":"19353:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11597,"name":"uint","nodeType":"ElementaryTypeName","src":"19353:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11600,"mutability":"mutable","name":"p1","nameLocation":"19367:2:13","nodeType":"VariableDeclaration","scope":11619,"src":"19362:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11599,"name":"uint","nodeType":"ElementaryTypeName","src":"19362:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11602,"mutability":"mutable","name":"p2","nameLocation":"19376:2:13","nodeType":"VariableDeclaration","scope":11619,"src":"19371:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11601,"name":"uint","nodeType":"ElementaryTypeName","src":"19371:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11604,"mutability":"mutable","name":"p3","nameLocation":"19388:2:13","nodeType":"VariableDeclaration","scope":11619,"src":"19380:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11603,"name":"address","nodeType":"ElementaryTypeName","src":"19380:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19352:39:13"},"returnParameters":{"id":11606,"nodeType":"ParameterList","parameters":[],"src":"19406:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11642,"nodeType":"FunctionDefinition","src":"19516:175:13","nodes":[],"body":{"id":11641,"nodeType":"Block","src":"19588:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c737472696e672c75696e7429","id":11633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19638:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_3894163d4e8f3eec101fb8e2c1029563bd05d05ee1d1790a46910ebbbdc3072e","typeString":"literal_string \"log(uint,uint,string,uint)\""},"value":"log(uint,uint,string,uint)"},{"id":11634,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11621,"src":"19668:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11635,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11623,"src":"19672:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11636,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11625,"src":"19676:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11637,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11627,"src":"19680:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3894163d4e8f3eec101fb8e2c1029563bd05d05ee1d1790a46910ebbbdc3072e","typeString":"literal_string \"log(uint,uint,string,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11631,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19614:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19618:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19614:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19614:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11630,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"19598:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19598:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11640,"nodeType":"ExpressionStatement","src":"19598:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19525:3:13","parameters":{"id":11628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11621,"mutability":"mutable","name":"p0","nameLocation":"19534:2:13","nodeType":"VariableDeclaration","scope":11642,"src":"19529:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11620,"name":"uint","nodeType":"ElementaryTypeName","src":"19529:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11623,"mutability":"mutable","name":"p1","nameLocation":"19543:2:13","nodeType":"VariableDeclaration","scope":11642,"src":"19538:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11622,"name":"uint","nodeType":"ElementaryTypeName","src":"19538:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11625,"mutability":"mutable","name":"p2","nameLocation":"19561:2:13","nodeType":"VariableDeclaration","scope":11642,"src":"19547:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11624,"name":"string","nodeType":"ElementaryTypeName","src":"19547:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11627,"mutability":"mutable","name":"p3","nameLocation":"19570:2:13","nodeType":"VariableDeclaration","scope":11642,"src":"19565:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11626,"name":"uint","nodeType":"ElementaryTypeName","src":"19565:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19528:45:13"},"returnParameters":{"id":11629,"nodeType":"ParameterList","parameters":[],"src":"19588:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11665,"nodeType":"FunctionDefinition","src":"19697:186:13","nodes":[],"body":{"id":11664,"nodeType":"Block","src":"19778:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c737472696e672c737472696e6729","id":11656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19828:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_7c032a3207958e3d969ab52b045e7a59226129ee4b9e813f7071f9a5e80813f6","typeString":"literal_string \"log(uint,uint,string,string)\""},"value":"log(uint,uint,string,string)"},{"id":11657,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11644,"src":"19860:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11658,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11646,"src":"19864:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11659,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11648,"src":"19868:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11660,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11650,"src":"19872:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7c032a3207958e3d969ab52b045e7a59226129ee4b9e813f7071f9a5e80813f6","typeString":"literal_string \"log(uint,uint,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11654,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19804:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19808:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19804:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19804:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11653,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"19788:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19788:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11663,"nodeType":"ExpressionStatement","src":"19788:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19706:3:13","parameters":{"id":11651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11644,"mutability":"mutable","name":"p0","nameLocation":"19715:2:13","nodeType":"VariableDeclaration","scope":11665,"src":"19710:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11643,"name":"uint","nodeType":"ElementaryTypeName","src":"19710:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11646,"mutability":"mutable","name":"p1","nameLocation":"19724:2:13","nodeType":"VariableDeclaration","scope":11665,"src":"19719:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11645,"name":"uint","nodeType":"ElementaryTypeName","src":"19719:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11648,"mutability":"mutable","name":"p2","nameLocation":"19742:2:13","nodeType":"VariableDeclaration","scope":11665,"src":"19728:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11647,"name":"string","nodeType":"ElementaryTypeName","src":"19728:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11650,"mutability":"mutable","name":"p3","nameLocation":"19760:2:13","nodeType":"VariableDeclaration","scope":11665,"src":"19746:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11649,"name":"string","nodeType":"ElementaryTypeName","src":"19746:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19709:54:13"},"returnParameters":{"id":11652,"nodeType":"ParameterList","parameters":[],"src":"19778:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11688,"nodeType":"FunctionDefinition","src":"19889:175:13","nodes":[],"body":{"id":11687,"nodeType":"Block","src":"19961:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c737472696e672c626f6f6c29","id":11679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20011:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_b22eaf06d72d481cf9b94b8f4d5fb89cf08bbfd924ee166a250ac94617be65b9","typeString":"literal_string \"log(uint,uint,string,bool)\""},"value":"log(uint,uint,string,bool)"},{"id":11680,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11667,"src":"20041:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11681,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11669,"src":"20045:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11682,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11671,"src":"20049:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11683,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11673,"src":"20053:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b22eaf06d72d481cf9b94b8f4d5fb89cf08bbfd924ee166a250ac94617be65b9","typeString":"literal_string \"log(uint,uint,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11677,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19987:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19991:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19987:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19987:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11676,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"19971:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19971:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11686,"nodeType":"ExpressionStatement","src":"19971:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19898:3:13","parameters":{"id":11674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11667,"mutability":"mutable","name":"p0","nameLocation":"19907:2:13","nodeType":"VariableDeclaration","scope":11688,"src":"19902:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11666,"name":"uint","nodeType":"ElementaryTypeName","src":"19902:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11669,"mutability":"mutable","name":"p1","nameLocation":"19916:2:13","nodeType":"VariableDeclaration","scope":11688,"src":"19911:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11668,"name":"uint","nodeType":"ElementaryTypeName","src":"19911:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11671,"mutability":"mutable","name":"p2","nameLocation":"19934:2:13","nodeType":"VariableDeclaration","scope":11688,"src":"19920:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11670,"name":"string","nodeType":"ElementaryTypeName","src":"19920:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11673,"mutability":"mutable","name":"p3","nameLocation":"19943:2:13","nodeType":"VariableDeclaration","scope":11688,"src":"19938:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11672,"name":"bool","nodeType":"ElementaryTypeName","src":"19938:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19901:45:13"},"returnParameters":{"id":11675,"nodeType":"ParameterList","parameters":[],"src":"19961:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11711,"nodeType":"FunctionDefinition","src":"20070:181:13","nodes":[],"body":{"id":11710,"nodeType":"Block","src":"20145:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c737472696e672c6164647265737329","id":11702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20195:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_433285a23ec6b1f0f76da64682232527561857544109f80e3e5d46b0e16980e7","typeString":"literal_string \"log(uint,uint,string,address)\""},"value":"log(uint,uint,string,address)"},{"id":11703,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11690,"src":"20228:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11704,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11692,"src":"20232:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11705,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11694,"src":"20236:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11706,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11696,"src":"20240:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_433285a23ec6b1f0f76da64682232527561857544109f80e3e5d46b0e16980e7","typeString":"literal_string \"log(uint,uint,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11700,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20171:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20175:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20171:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20171:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11699,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"20155:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20155:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11709,"nodeType":"ExpressionStatement","src":"20155:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20079:3:13","parameters":{"id":11697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11690,"mutability":"mutable","name":"p0","nameLocation":"20088:2:13","nodeType":"VariableDeclaration","scope":11711,"src":"20083:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11689,"name":"uint","nodeType":"ElementaryTypeName","src":"20083:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11692,"mutability":"mutable","name":"p1","nameLocation":"20097:2:13","nodeType":"VariableDeclaration","scope":11711,"src":"20092:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11691,"name":"uint","nodeType":"ElementaryTypeName","src":"20092:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11694,"mutability":"mutable","name":"p2","nameLocation":"20115:2:13","nodeType":"VariableDeclaration","scope":11711,"src":"20101:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11693,"name":"string","nodeType":"ElementaryTypeName","src":"20101:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11696,"mutability":"mutable","name":"p3","nameLocation":"20127:2:13","nodeType":"VariableDeclaration","scope":11711,"src":"20119:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11695,"name":"address","nodeType":"ElementaryTypeName","src":"20119:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20082:48:13"},"returnParameters":{"id":11698,"nodeType":"ParameterList","parameters":[],"src":"20145:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11734,"nodeType":"FunctionDefinition","src":"20257:164:13","nodes":[],"body":{"id":11733,"nodeType":"Block","src":"20320:101:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c626f6f6c2c75696e7429","id":11725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20370:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c647c8c5fed6e02ad4f1c7bfb891e58ba00758f5d6cb92966fd0684c5b3fc8d","typeString":"literal_string \"log(uint,uint,bool,uint)\""},"value":"log(uint,uint,bool,uint)"},{"id":11726,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11713,"src":"20398:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11727,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11715,"src":"20402:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11728,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11717,"src":"20406:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11729,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11719,"src":"20410:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6c647c8c5fed6e02ad4f1c7bfb891e58ba00758f5d6cb92966fd0684c5b3fc8d","typeString":"literal_string \"log(uint,uint,bool,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11723,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20346:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20350:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20346:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20346:67:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11722,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"20330:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20330:84:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11732,"nodeType":"ExpressionStatement","src":"20330:84:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20266:3:13","parameters":{"id":11720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11713,"mutability":"mutable","name":"p0","nameLocation":"20275:2:13","nodeType":"VariableDeclaration","scope":11734,"src":"20270:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11712,"name":"uint","nodeType":"ElementaryTypeName","src":"20270:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11715,"mutability":"mutable","name":"p1","nameLocation":"20284:2:13","nodeType":"VariableDeclaration","scope":11734,"src":"20279:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11714,"name":"uint","nodeType":"ElementaryTypeName","src":"20279:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11717,"mutability":"mutable","name":"p2","nameLocation":"20293:2:13","nodeType":"VariableDeclaration","scope":11734,"src":"20288:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11716,"name":"bool","nodeType":"ElementaryTypeName","src":"20288:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11719,"mutability":"mutable","name":"p3","nameLocation":"20302:2:13","nodeType":"VariableDeclaration","scope":11734,"src":"20297:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11718,"name":"uint","nodeType":"ElementaryTypeName","src":"20297:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20269:36:13"},"returnParameters":{"id":11721,"nodeType":"ParameterList","parameters":[],"src":"20320:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11757,"nodeType":"FunctionDefinition","src":"20427:175:13","nodes":[],"body":{"id":11756,"nodeType":"Block","src":"20499:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c626f6f6c2c737472696e6729","id":11748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20549:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_efd9cbeee79713372dd0a748a26a3fb36cbe4eb4e01a37fbde0cde0e101fc85a","typeString":"literal_string \"log(uint,uint,bool,string)\""},"value":"log(uint,uint,bool,string)"},{"id":11749,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11736,"src":"20579:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11750,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11738,"src":"20583:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11751,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11740,"src":"20587:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11752,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11742,"src":"20591:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_efd9cbeee79713372dd0a748a26a3fb36cbe4eb4e01a37fbde0cde0e101fc85a","typeString":"literal_string \"log(uint,uint,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11746,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20525:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20529:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20525:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20525:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11745,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"20509:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20509:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11755,"nodeType":"ExpressionStatement","src":"20509:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20436:3:13","parameters":{"id":11743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11736,"mutability":"mutable","name":"p0","nameLocation":"20445:2:13","nodeType":"VariableDeclaration","scope":11757,"src":"20440:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11735,"name":"uint","nodeType":"ElementaryTypeName","src":"20440:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11738,"mutability":"mutable","name":"p1","nameLocation":"20454:2:13","nodeType":"VariableDeclaration","scope":11757,"src":"20449:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11737,"name":"uint","nodeType":"ElementaryTypeName","src":"20449:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11740,"mutability":"mutable","name":"p2","nameLocation":"20463:2:13","nodeType":"VariableDeclaration","scope":11757,"src":"20458:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11739,"name":"bool","nodeType":"ElementaryTypeName","src":"20458:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11742,"mutability":"mutable","name":"p3","nameLocation":"20481:2:13","nodeType":"VariableDeclaration","scope":11757,"src":"20467:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11741,"name":"string","nodeType":"ElementaryTypeName","src":"20467:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"20439:45:13"},"returnParameters":{"id":11744,"nodeType":"ParameterList","parameters":[],"src":"20499:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11780,"nodeType":"FunctionDefinition","src":"20608:164:13","nodes":[],"body":{"id":11779,"nodeType":"Block","src":"20671:101:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c626f6f6c2c626f6f6c29","id":11771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20721:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_94be3bb13e096cdbc5a1999a524e3b6664a32da7e2c2954ae0e2b792a0dd1f41","typeString":"literal_string \"log(uint,uint,bool,bool)\""},"value":"log(uint,uint,bool,bool)"},{"id":11772,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11759,"src":"20749:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11773,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11761,"src":"20753:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11774,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11763,"src":"20757:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11775,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11765,"src":"20761:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94be3bb13e096cdbc5a1999a524e3b6664a32da7e2c2954ae0e2b792a0dd1f41","typeString":"literal_string \"log(uint,uint,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11769,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20697:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20701:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20697:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20697:67:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11768,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"20681:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20681:84:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11778,"nodeType":"ExpressionStatement","src":"20681:84:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20617:3:13","parameters":{"id":11766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11759,"mutability":"mutable","name":"p0","nameLocation":"20626:2:13","nodeType":"VariableDeclaration","scope":11780,"src":"20621:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11758,"name":"uint","nodeType":"ElementaryTypeName","src":"20621:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11761,"mutability":"mutable","name":"p1","nameLocation":"20635:2:13","nodeType":"VariableDeclaration","scope":11780,"src":"20630:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11760,"name":"uint","nodeType":"ElementaryTypeName","src":"20630:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11763,"mutability":"mutable","name":"p2","nameLocation":"20644:2:13","nodeType":"VariableDeclaration","scope":11780,"src":"20639:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11762,"name":"bool","nodeType":"ElementaryTypeName","src":"20639:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11765,"mutability":"mutable","name":"p3","nameLocation":"20653:2:13","nodeType":"VariableDeclaration","scope":11780,"src":"20648:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11764,"name":"bool","nodeType":"ElementaryTypeName","src":"20648:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20620:36:13"},"returnParameters":{"id":11767,"nodeType":"ParameterList","parameters":[],"src":"20671:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11803,"nodeType":"FunctionDefinition","src":"20778:170:13","nodes":[],"body":{"id":11802,"nodeType":"Block","src":"20844:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c626f6f6c2c6164647265737329","id":11794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20894:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_e117744fcc46e4484cabd18d640497b4a9d76b7f775e79fe9a95e42427bd8976","typeString":"literal_string \"log(uint,uint,bool,address)\""},"value":"log(uint,uint,bool,address)"},{"id":11795,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11782,"src":"20925:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11796,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11784,"src":"20929:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11797,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11786,"src":"20933:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11798,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11788,"src":"20937:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e117744fcc46e4484cabd18d640497b4a9d76b7f775e79fe9a95e42427bd8976","typeString":"literal_string \"log(uint,uint,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11792,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20870:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20874:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20870:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20870:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11791,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"20854:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20854:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11801,"nodeType":"ExpressionStatement","src":"20854:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20787:3:13","parameters":{"id":11789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11782,"mutability":"mutable","name":"p0","nameLocation":"20796:2:13","nodeType":"VariableDeclaration","scope":11803,"src":"20791:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11781,"name":"uint","nodeType":"ElementaryTypeName","src":"20791:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11784,"mutability":"mutable","name":"p1","nameLocation":"20805:2:13","nodeType":"VariableDeclaration","scope":11803,"src":"20800:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11783,"name":"uint","nodeType":"ElementaryTypeName","src":"20800:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11786,"mutability":"mutable","name":"p2","nameLocation":"20814:2:13","nodeType":"VariableDeclaration","scope":11803,"src":"20809:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11785,"name":"bool","nodeType":"ElementaryTypeName","src":"20809:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11788,"mutability":"mutable","name":"p3","nameLocation":"20826:2:13","nodeType":"VariableDeclaration","scope":11803,"src":"20818:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11787,"name":"address","nodeType":"ElementaryTypeName","src":"20818:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20790:39:13"},"returnParameters":{"id":11790,"nodeType":"ParameterList","parameters":[],"src":"20844:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11826,"nodeType":"FunctionDefinition","src":"20954:170:13","nodes":[],"body":{"id":11825,"nodeType":"Block","src":"21020:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c616464726573732c75696e7429","id":11817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21070:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_610ba8c0cae1123f7f8ad76791afd86dc185a4f1fe79a263112118ddb5231e9f","typeString":"literal_string \"log(uint,uint,address,uint)\""},"value":"log(uint,uint,address,uint)"},{"id":11818,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11805,"src":"21101:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11819,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11807,"src":"21105:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11820,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11809,"src":"21109:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11821,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11811,"src":"21113:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_610ba8c0cae1123f7f8ad76791afd86dc185a4f1fe79a263112118ddb5231e9f","typeString":"literal_string \"log(uint,uint,address,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11815,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21046:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21050:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21046:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21046:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11814,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"21030:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21030:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11824,"nodeType":"ExpressionStatement","src":"21030:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20963:3:13","parameters":{"id":11812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11805,"mutability":"mutable","name":"p0","nameLocation":"20972:2:13","nodeType":"VariableDeclaration","scope":11826,"src":"20967:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11804,"name":"uint","nodeType":"ElementaryTypeName","src":"20967:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11807,"mutability":"mutable","name":"p1","nameLocation":"20981:2:13","nodeType":"VariableDeclaration","scope":11826,"src":"20976:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11806,"name":"uint","nodeType":"ElementaryTypeName","src":"20976:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11809,"mutability":"mutable","name":"p2","nameLocation":"20993:2:13","nodeType":"VariableDeclaration","scope":11826,"src":"20985:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11808,"name":"address","nodeType":"ElementaryTypeName","src":"20985:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11811,"mutability":"mutable","name":"p3","nameLocation":"21002:2:13","nodeType":"VariableDeclaration","scope":11826,"src":"20997:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11810,"name":"uint","nodeType":"ElementaryTypeName","src":"20997:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20966:39:13"},"returnParameters":{"id":11813,"nodeType":"ParameterList","parameters":[],"src":"21020:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11849,"nodeType":"FunctionDefinition","src":"21130:181:13","nodes":[],"body":{"id":11848,"nodeType":"Block","src":"21205:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c616464726573732c737472696e6729","id":11840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21255:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6a2d1de1bf5c0a47e82220cd592c8fb4a4a43f17ecab471044861ef70454227","typeString":"literal_string \"log(uint,uint,address,string)\""},"value":"log(uint,uint,address,string)"},{"id":11841,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11828,"src":"21288:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11842,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11830,"src":"21292:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11843,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11832,"src":"21296:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11844,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11834,"src":"21300:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6a2d1de1bf5c0a47e82220cd592c8fb4a4a43f17ecab471044861ef70454227","typeString":"literal_string \"log(uint,uint,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11838,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21231:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21235:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21231:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21231:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11837,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"21215:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21215:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11847,"nodeType":"ExpressionStatement","src":"21215:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21139:3:13","parameters":{"id":11835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11828,"mutability":"mutable","name":"p0","nameLocation":"21148:2:13","nodeType":"VariableDeclaration","scope":11849,"src":"21143:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11827,"name":"uint","nodeType":"ElementaryTypeName","src":"21143:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11830,"mutability":"mutable","name":"p1","nameLocation":"21157:2:13","nodeType":"VariableDeclaration","scope":11849,"src":"21152:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11829,"name":"uint","nodeType":"ElementaryTypeName","src":"21152:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11832,"mutability":"mutable","name":"p2","nameLocation":"21169:2:13","nodeType":"VariableDeclaration","scope":11849,"src":"21161:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11831,"name":"address","nodeType":"ElementaryTypeName","src":"21161:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11834,"mutability":"mutable","name":"p3","nameLocation":"21187:2:13","nodeType":"VariableDeclaration","scope":11849,"src":"21173:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11833,"name":"string","nodeType":"ElementaryTypeName","src":"21173:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21142:48:13"},"returnParameters":{"id":11836,"nodeType":"ParameterList","parameters":[],"src":"21205:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11872,"nodeType":"FunctionDefinition","src":"21317:170:13","nodes":[],"body":{"id":11871,"nodeType":"Block","src":"21383:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c616464726573732c626f6f6c29","id":11863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21433:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a8e820ae9dc5fd5a845e5dabf2b296e5588fe5a0d8101de14323ebe3e8e2b6c0","typeString":"literal_string \"log(uint,uint,address,bool)\""},"value":"log(uint,uint,address,bool)"},{"id":11864,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11851,"src":"21464:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11865,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11853,"src":"21468:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11866,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11855,"src":"21472:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11867,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11857,"src":"21476:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a8e820ae9dc5fd5a845e5dabf2b296e5588fe5a0d8101de14323ebe3e8e2b6c0","typeString":"literal_string \"log(uint,uint,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11861,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21409:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21413:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21409:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21409:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11860,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"21393:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21393:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11870,"nodeType":"ExpressionStatement","src":"21393:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21326:3:13","parameters":{"id":11858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11851,"mutability":"mutable","name":"p0","nameLocation":"21335:2:13","nodeType":"VariableDeclaration","scope":11872,"src":"21330:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11850,"name":"uint","nodeType":"ElementaryTypeName","src":"21330:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11853,"mutability":"mutable","name":"p1","nameLocation":"21344:2:13","nodeType":"VariableDeclaration","scope":11872,"src":"21339:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11852,"name":"uint","nodeType":"ElementaryTypeName","src":"21339:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11855,"mutability":"mutable","name":"p2","nameLocation":"21356:2:13","nodeType":"VariableDeclaration","scope":11872,"src":"21348:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11854,"name":"address","nodeType":"ElementaryTypeName","src":"21348:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11857,"mutability":"mutable","name":"p3","nameLocation":"21365:2:13","nodeType":"VariableDeclaration","scope":11872,"src":"21360:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11856,"name":"bool","nodeType":"ElementaryTypeName","src":"21360:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21329:39:13"},"returnParameters":{"id":11859,"nodeType":"ParameterList","parameters":[],"src":"21383:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11895,"nodeType":"FunctionDefinition","src":"21493:176:13","nodes":[],"body":{"id":11894,"nodeType":"Block","src":"21562:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c616464726573732c6164647265737329","id":11886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21612:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca939b20e9284d76bbbc091d0d45d06f650171230ac4f1f35652b8b6e1579811","typeString":"literal_string \"log(uint,uint,address,address)\""},"value":"log(uint,uint,address,address)"},{"id":11887,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11874,"src":"21646:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11888,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11876,"src":"21650:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11889,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11878,"src":"21654:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11890,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11880,"src":"21658:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ca939b20e9284d76bbbc091d0d45d06f650171230ac4f1f35652b8b6e1579811","typeString":"literal_string \"log(uint,uint,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11884,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21588:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21592:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21588:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21588:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11883,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"21572:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21572:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11893,"nodeType":"ExpressionStatement","src":"21572:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21502:3:13","parameters":{"id":11881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11874,"mutability":"mutable","name":"p0","nameLocation":"21511:2:13","nodeType":"VariableDeclaration","scope":11895,"src":"21506:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11873,"name":"uint","nodeType":"ElementaryTypeName","src":"21506:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11876,"mutability":"mutable","name":"p1","nameLocation":"21520:2:13","nodeType":"VariableDeclaration","scope":11895,"src":"21515:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11875,"name":"uint","nodeType":"ElementaryTypeName","src":"21515:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11878,"mutability":"mutable","name":"p2","nameLocation":"21532:2:13","nodeType":"VariableDeclaration","scope":11895,"src":"21524:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11877,"name":"address","nodeType":"ElementaryTypeName","src":"21524:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11880,"mutability":"mutable","name":"p3","nameLocation":"21544:2:13","nodeType":"VariableDeclaration","scope":11895,"src":"21536:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11879,"name":"address","nodeType":"ElementaryTypeName","src":"21536:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21505:42:13"},"returnParameters":{"id":11882,"nodeType":"ParameterList","parameters":[],"src":"21562:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11918,"nodeType":"FunctionDefinition","src":"21675:175:13","nodes":[],"body":{"id":11917,"nodeType":"Block","src":"21747:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c75696e742c75696e7429","id":11909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21797:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_c0043807b5f951e0375253205c951c6e6a6b19b5de111342e8f6be7c7f284628","typeString":"literal_string \"log(uint,string,uint,uint)\""},"value":"log(uint,string,uint,uint)"},{"id":11910,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11897,"src":"21827:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11911,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11899,"src":"21831:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11912,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11901,"src":"21835:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11913,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11903,"src":"21839:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c0043807b5f951e0375253205c951c6e6a6b19b5de111342e8f6be7c7f284628","typeString":"literal_string \"log(uint,string,uint,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11907,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21773:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21777:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21773:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21773:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11906,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"21757:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21757:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11916,"nodeType":"ExpressionStatement","src":"21757:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21684:3:13","parameters":{"id":11904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11897,"mutability":"mutable","name":"p0","nameLocation":"21693:2:13","nodeType":"VariableDeclaration","scope":11918,"src":"21688:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11896,"name":"uint","nodeType":"ElementaryTypeName","src":"21688:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11899,"mutability":"mutable","name":"p1","nameLocation":"21711:2:13","nodeType":"VariableDeclaration","scope":11918,"src":"21697:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11898,"name":"string","nodeType":"ElementaryTypeName","src":"21697:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11901,"mutability":"mutable","name":"p2","nameLocation":"21720:2:13","nodeType":"VariableDeclaration","scope":11918,"src":"21715:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11900,"name":"uint","nodeType":"ElementaryTypeName","src":"21715:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11903,"mutability":"mutable","name":"p3","nameLocation":"21729:2:13","nodeType":"VariableDeclaration","scope":11918,"src":"21724:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11902,"name":"uint","nodeType":"ElementaryTypeName","src":"21724:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21687:45:13"},"returnParameters":{"id":11905,"nodeType":"ParameterList","parameters":[],"src":"21747:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11941,"nodeType":"FunctionDefinition","src":"21856:186:13","nodes":[],"body":{"id":11940,"nodeType":"Block","src":"21937:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c75696e742c737472696e6729","id":11932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21987:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a2bc0c99cedfd873182e8eb1e68799dc8925c663b8ce2430858586fba62fe313","typeString":"literal_string \"log(uint,string,uint,string)\""},"value":"log(uint,string,uint,string)"},{"id":11933,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11920,"src":"22019:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11934,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11922,"src":"22023:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11935,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11924,"src":"22027:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11936,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11926,"src":"22031:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a2bc0c99cedfd873182e8eb1e68799dc8925c663b8ce2430858586fba62fe313","typeString":"literal_string \"log(uint,string,uint,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11930,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21963:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21967:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21963:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21963:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11929,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"21947:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21947:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11939,"nodeType":"ExpressionStatement","src":"21947:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21865:3:13","parameters":{"id":11927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11920,"mutability":"mutable","name":"p0","nameLocation":"21874:2:13","nodeType":"VariableDeclaration","scope":11941,"src":"21869:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11919,"name":"uint","nodeType":"ElementaryTypeName","src":"21869:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11922,"mutability":"mutable","name":"p1","nameLocation":"21892:2:13","nodeType":"VariableDeclaration","scope":11941,"src":"21878:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11921,"name":"string","nodeType":"ElementaryTypeName","src":"21878:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11924,"mutability":"mutable","name":"p2","nameLocation":"21901:2:13","nodeType":"VariableDeclaration","scope":11941,"src":"21896:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11923,"name":"uint","nodeType":"ElementaryTypeName","src":"21896:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11926,"mutability":"mutable","name":"p3","nameLocation":"21919:2:13","nodeType":"VariableDeclaration","scope":11941,"src":"21905:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11925,"name":"string","nodeType":"ElementaryTypeName","src":"21905:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21868:54:13"},"returnParameters":{"id":11928,"nodeType":"ParameterList","parameters":[],"src":"21937:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11964,"nodeType":"FunctionDefinition","src":"22048:175:13","nodes":[],"body":{"id":11963,"nodeType":"Block","src":"22120:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c75696e742c626f6f6c29","id":11955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22170:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_875a6e2ed2444d0d09e264b06717914212d8a793bea0f48b5633e707ac53784d","typeString":"literal_string \"log(uint,string,uint,bool)\""},"value":"log(uint,string,uint,bool)"},{"id":11956,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11943,"src":"22200:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11957,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11945,"src":"22204:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11958,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"22208:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11959,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11949,"src":"22212:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_875a6e2ed2444d0d09e264b06717914212d8a793bea0f48b5633e707ac53784d","typeString":"literal_string \"log(uint,string,uint,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11953,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22146:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22150:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22146:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22146:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11952,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"22130:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22130:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11962,"nodeType":"ExpressionStatement","src":"22130:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22057:3:13","parameters":{"id":11950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11943,"mutability":"mutable","name":"p0","nameLocation":"22066:2:13","nodeType":"VariableDeclaration","scope":11964,"src":"22061:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11942,"name":"uint","nodeType":"ElementaryTypeName","src":"22061:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11945,"mutability":"mutable","name":"p1","nameLocation":"22084:2:13","nodeType":"VariableDeclaration","scope":11964,"src":"22070:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11944,"name":"string","nodeType":"ElementaryTypeName","src":"22070:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11947,"mutability":"mutable","name":"p2","nameLocation":"22093:2:13","nodeType":"VariableDeclaration","scope":11964,"src":"22088:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11946,"name":"uint","nodeType":"ElementaryTypeName","src":"22088:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11949,"mutability":"mutable","name":"p3","nameLocation":"22102:2:13","nodeType":"VariableDeclaration","scope":11964,"src":"22097:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11948,"name":"bool","nodeType":"ElementaryTypeName","src":"22097:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22060:45:13"},"returnParameters":{"id":11951,"nodeType":"ParameterList","parameters":[],"src":"22120:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":11987,"nodeType":"FunctionDefinition","src":"22229:181:13","nodes":[],"body":{"id":11986,"nodeType":"Block","src":"22304:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c75696e742c6164647265737329","id":11978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22354:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_ab7bd9fd9b149127bbb235a3e1bec9a2e844f3968bdc1f48944c4b1973dacfda","typeString":"literal_string \"log(uint,string,uint,address)\""},"value":"log(uint,string,uint,address)"},{"id":11979,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11966,"src":"22387:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11980,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11968,"src":"22391:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11981,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11970,"src":"22395:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11982,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11972,"src":"22399:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ab7bd9fd9b149127bbb235a3e1bec9a2e844f3968bdc1f48944c4b1973dacfda","typeString":"literal_string \"log(uint,string,uint,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11976,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22330:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22334:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22330:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22330:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11975,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"22314:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":11984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22314:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11985,"nodeType":"ExpressionStatement","src":"22314:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22238:3:13","parameters":{"id":11973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11966,"mutability":"mutable","name":"p0","nameLocation":"22247:2:13","nodeType":"VariableDeclaration","scope":11987,"src":"22242:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11965,"name":"uint","nodeType":"ElementaryTypeName","src":"22242:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11968,"mutability":"mutable","name":"p1","nameLocation":"22265:2:13","nodeType":"VariableDeclaration","scope":11987,"src":"22251:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11967,"name":"string","nodeType":"ElementaryTypeName","src":"22251:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11970,"mutability":"mutable","name":"p2","nameLocation":"22274:2:13","nodeType":"VariableDeclaration","scope":11987,"src":"22269:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11969,"name":"uint","nodeType":"ElementaryTypeName","src":"22269:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11972,"mutability":"mutable","name":"p3","nameLocation":"22286:2:13","nodeType":"VariableDeclaration","scope":11987,"src":"22278:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11971,"name":"address","nodeType":"ElementaryTypeName","src":"22278:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22241:48:13"},"returnParameters":{"id":11974,"nodeType":"ParameterList","parameters":[],"src":"22304:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12010,"nodeType":"FunctionDefinition","src":"22416:186:13","nodes":[],"body":{"id":12009,"nodeType":"Block","src":"22497:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c737472696e672c75696e7429","id":12001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22547:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_76ec635e4702367bf449b895743175fa2654af8170b6d9c20dd183616d0a192b","typeString":"literal_string \"log(uint,string,string,uint)\""},"value":"log(uint,string,string,uint)"},{"id":12002,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11989,"src":"22579:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12003,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11991,"src":"22583:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12004,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11993,"src":"22587:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12005,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11995,"src":"22591:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_76ec635e4702367bf449b895743175fa2654af8170b6d9c20dd183616d0a192b","typeString":"literal_string \"log(uint,string,string,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11999,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22523:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22527:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22523:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22523:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11998,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"22507:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22507:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12008,"nodeType":"ExpressionStatement","src":"22507:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22425:3:13","parameters":{"id":11996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11989,"mutability":"mutable","name":"p0","nameLocation":"22434:2:13","nodeType":"VariableDeclaration","scope":12010,"src":"22429:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11988,"name":"uint","nodeType":"ElementaryTypeName","src":"22429:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11991,"mutability":"mutable","name":"p1","nameLocation":"22452:2:13","nodeType":"VariableDeclaration","scope":12010,"src":"22438:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11990,"name":"string","nodeType":"ElementaryTypeName","src":"22438:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11993,"mutability":"mutable","name":"p2","nameLocation":"22470:2:13","nodeType":"VariableDeclaration","scope":12010,"src":"22456:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11992,"name":"string","nodeType":"ElementaryTypeName","src":"22456:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11995,"mutability":"mutable","name":"p3","nameLocation":"22479:2:13","nodeType":"VariableDeclaration","scope":12010,"src":"22474:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11994,"name":"uint","nodeType":"ElementaryTypeName","src":"22474:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22428:54:13"},"returnParameters":{"id":11997,"nodeType":"ParameterList","parameters":[],"src":"22497:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12033,"nodeType":"FunctionDefinition","src":"22608:197:13","nodes":[],"body":{"id":12032,"nodeType":"Block","src":"22698:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c737472696e672c737472696e6729","id":12024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22748:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_57dd0a119927787a0c91b48333e191a1b3a4082dcb6efc912e2ba5b047e15156","typeString":"literal_string \"log(uint,string,string,string)\""},"value":"log(uint,string,string,string)"},{"id":12025,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12012,"src":"22782:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12026,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12014,"src":"22786:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12027,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12016,"src":"22790:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12028,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12018,"src":"22794:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_57dd0a119927787a0c91b48333e191a1b3a4082dcb6efc912e2ba5b047e15156","typeString":"literal_string \"log(uint,string,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12022,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22724:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22728:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22724:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22724:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12021,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"22708:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22708:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12031,"nodeType":"ExpressionStatement","src":"22708:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22617:3:13","parameters":{"id":12019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12012,"mutability":"mutable","name":"p0","nameLocation":"22626:2:13","nodeType":"VariableDeclaration","scope":12033,"src":"22621:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12011,"name":"uint","nodeType":"ElementaryTypeName","src":"22621:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12014,"mutability":"mutable","name":"p1","nameLocation":"22644:2:13","nodeType":"VariableDeclaration","scope":12033,"src":"22630:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12013,"name":"string","nodeType":"ElementaryTypeName","src":"22630:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12016,"mutability":"mutable","name":"p2","nameLocation":"22662:2:13","nodeType":"VariableDeclaration","scope":12033,"src":"22648:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12015,"name":"string","nodeType":"ElementaryTypeName","src":"22648:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12018,"mutability":"mutable","name":"p3","nameLocation":"22680:2:13","nodeType":"VariableDeclaration","scope":12033,"src":"22666:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12017,"name":"string","nodeType":"ElementaryTypeName","src":"22666:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22620:63:13"},"returnParameters":{"id":12020,"nodeType":"ParameterList","parameters":[],"src":"22698:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12056,"nodeType":"FunctionDefinition","src":"22811:186:13","nodes":[],"body":{"id":12055,"nodeType":"Block","src":"22892:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c737472696e672c626f6f6c29","id":12047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22942:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_12862b98fdb7950b0e6908443bc9d7894b44d5616424da5cdb6206a848affcbc","typeString":"literal_string \"log(uint,string,string,bool)\""},"value":"log(uint,string,string,bool)"},{"id":12048,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12035,"src":"22974:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12049,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12037,"src":"22978:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12050,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12039,"src":"22982:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12051,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12041,"src":"22986:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12862b98fdb7950b0e6908443bc9d7894b44d5616424da5cdb6206a848affcbc","typeString":"literal_string \"log(uint,string,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12045,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22918:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22922:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22918:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22918:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12044,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"22902:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22902:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12054,"nodeType":"ExpressionStatement","src":"22902:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22820:3:13","parameters":{"id":12042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12035,"mutability":"mutable","name":"p0","nameLocation":"22829:2:13","nodeType":"VariableDeclaration","scope":12056,"src":"22824:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12034,"name":"uint","nodeType":"ElementaryTypeName","src":"22824:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12037,"mutability":"mutable","name":"p1","nameLocation":"22847:2:13","nodeType":"VariableDeclaration","scope":12056,"src":"22833:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12036,"name":"string","nodeType":"ElementaryTypeName","src":"22833:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12039,"mutability":"mutable","name":"p2","nameLocation":"22865:2:13","nodeType":"VariableDeclaration","scope":12056,"src":"22851:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12038,"name":"string","nodeType":"ElementaryTypeName","src":"22851:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12041,"mutability":"mutable","name":"p3","nameLocation":"22874:2:13","nodeType":"VariableDeclaration","scope":12056,"src":"22869:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12040,"name":"bool","nodeType":"ElementaryTypeName","src":"22869:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22823:54:13"},"returnParameters":{"id":12043,"nodeType":"ParameterList","parameters":[],"src":"22892:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12079,"nodeType":"FunctionDefinition","src":"23003:192:13","nodes":[],"body":{"id":12078,"nodeType":"Block","src":"23087:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c737472696e672c6164647265737329","id":12070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23137:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc988aa0514d1ed8be70a6bf2bdff4972e3f3420811b4adbd40f9b75b873fded","typeString":"literal_string \"log(uint,string,string,address)\""},"value":"log(uint,string,string,address)"},{"id":12071,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12058,"src":"23172:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12072,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12060,"src":"23176:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12073,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12062,"src":"23180:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12074,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"23184:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cc988aa0514d1ed8be70a6bf2bdff4972e3f3420811b4adbd40f9b75b873fded","typeString":"literal_string \"log(uint,string,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12068,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23113:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23117:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23113:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23113:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12067,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"23097:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23097:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12077,"nodeType":"ExpressionStatement","src":"23097:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23012:3:13","parameters":{"id":12065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12058,"mutability":"mutable","name":"p0","nameLocation":"23021:2:13","nodeType":"VariableDeclaration","scope":12079,"src":"23016:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12057,"name":"uint","nodeType":"ElementaryTypeName","src":"23016:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12060,"mutability":"mutable","name":"p1","nameLocation":"23039:2:13","nodeType":"VariableDeclaration","scope":12079,"src":"23025:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12059,"name":"string","nodeType":"ElementaryTypeName","src":"23025:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12062,"mutability":"mutable","name":"p2","nameLocation":"23057:2:13","nodeType":"VariableDeclaration","scope":12079,"src":"23043:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12061,"name":"string","nodeType":"ElementaryTypeName","src":"23043:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12064,"mutability":"mutable","name":"p3","nameLocation":"23069:2:13","nodeType":"VariableDeclaration","scope":12079,"src":"23061:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12063,"name":"address","nodeType":"ElementaryTypeName","src":"23061:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23015:57:13"},"returnParameters":{"id":12066,"nodeType":"ParameterList","parameters":[],"src":"23087:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12102,"nodeType":"FunctionDefinition","src":"23201:175:13","nodes":[],"body":{"id":12101,"nodeType":"Block","src":"23273:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c626f6f6c2c75696e7429","id":12093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23323:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a4b48a7f4bdefee99950b35e5da7ba9724c3954e445cc3077000bce7a4265081","typeString":"literal_string \"log(uint,string,bool,uint)\""},"value":"log(uint,string,bool,uint)"},{"id":12094,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12081,"src":"23353:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12095,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12083,"src":"23357:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12096,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12085,"src":"23361:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12097,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12087,"src":"23365:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a4b48a7f4bdefee99950b35e5da7ba9724c3954e445cc3077000bce7a4265081","typeString":"literal_string \"log(uint,string,bool,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12091,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23299:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23303:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23299:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23299:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12090,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"23283:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23283:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12100,"nodeType":"ExpressionStatement","src":"23283:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23210:3:13","parameters":{"id":12088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12081,"mutability":"mutable","name":"p0","nameLocation":"23219:2:13","nodeType":"VariableDeclaration","scope":12102,"src":"23214:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12080,"name":"uint","nodeType":"ElementaryTypeName","src":"23214:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12083,"mutability":"mutable","name":"p1","nameLocation":"23237:2:13","nodeType":"VariableDeclaration","scope":12102,"src":"23223:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12082,"name":"string","nodeType":"ElementaryTypeName","src":"23223:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12085,"mutability":"mutable","name":"p2","nameLocation":"23246:2:13","nodeType":"VariableDeclaration","scope":12102,"src":"23241:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12084,"name":"bool","nodeType":"ElementaryTypeName","src":"23241:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12087,"mutability":"mutable","name":"p3","nameLocation":"23255:2:13","nodeType":"VariableDeclaration","scope":12102,"src":"23250:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12086,"name":"uint","nodeType":"ElementaryTypeName","src":"23250:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23213:45:13"},"returnParameters":{"id":12089,"nodeType":"ParameterList","parameters":[],"src":"23273:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12125,"nodeType":"FunctionDefinition","src":"23382:186:13","nodes":[],"body":{"id":12124,"nodeType":"Block","src":"23463:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c626f6f6c2c737472696e6729","id":12116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23513:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d489ca064b1083bafb8388fd8f3d44c2255dbe322f7a52abe786a76257d06e4","typeString":"literal_string \"log(uint,string,bool,string)\""},"value":"log(uint,string,bool,string)"},{"id":12117,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12104,"src":"23545:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12118,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12106,"src":"23549:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12119,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12108,"src":"23553:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12120,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12110,"src":"23557:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8d489ca064b1083bafb8388fd8f3d44c2255dbe322f7a52abe786a76257d06e4","typeString":"literal_string \"log(uint,string,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12114,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23489:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23493:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23489:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23489:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12113,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"23473:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23473:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12123,"nodeType":"ExpressionStatement","src":"23473:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23391:3:13","parameters":{"id":12111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12104,"mutability":"mutable","name":"p0","nameLocation":"23400:2:13","nodeType":"VariableDeclaration","scope":12125,"src":"23395:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12103,"name":"uint","nodeType":"ElementaryTypeName","src":"23395:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12106,"mutability":"mutable","name":"p1","nameLocation":"23418:2:13","nodeType":"VariableDeclaration","scope":12125,"src":"23404:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12105,"name":"string","nodeType":"ElementaryTypeName","src":"23404:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12108,"mutability":"mutable","name":"p2","nameLocation":"23427:2:13","nodeType":"VariableDeclaration","scope":12125,"src":"23422:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12107,"name":"bool","nodeType":"ElementaryTypeName","src":"23422:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12110,"mutability":"mutable","name":"p3","nameLocation":"23445:2:13","nodeType":"VariableDeclaration","scope":12125,"src":"23431:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12109,"name":"string","nodeType":"ElementaryTypeName","src":"23431:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23394:54:13"},"returnParameters":{"id":12112,"nodeType":"ParameterList","parameters":[],"src":"23463:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12148,"nodeType":"FunctionDefinition","src":"23574:175:13","nodes":[],"body":{"id":12147,"nodeType":"Block","src":"23646:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c626f6f6c2c626f6f6c29","id":12139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23696:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_51bc2bc161debf765eefa84d88e06440adeb87045d559377a9edb97406168b2a","typeString":"literal_string \"log(uint,string,bool,bool)\""},"value":"log(uint,string,bool,bool)"},{"id":12140,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12127,"src":"23726:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12141,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12129,"src":"23730:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12142,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12131,"src":"23734:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12143,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12133,"src":"23738:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_51bc2bc161debf765eefa84d88e06440adeb87045d559377a9edb97406168b2a","typeString":"literal_string \"log(uint,string,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12137,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23672:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23676:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23672:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23672:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12136,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"23656:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23656:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12146,"nodeType":"ExpressionStatement","src":"23656:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23583:3:13","parameters":{"id":12134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12127,"mutability":"mutable","name":"p0","nameLocation":"23592:2:13","nodeType":"VariableDeclaration","scope":12148,"src":"23587:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12126,"name":"uint","nodeType":"ElementaryTypeName","src":"23587:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12129,"mutability":"mutable","name":"p1","nameLocation":"23610:2:13","nodeType":"VariableDeclaration","scope":12148,"src":"23596:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12128,"name":"string","nodeType":"ElementaryTypeName","src":"23596:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12131,"mutability":"mutable","name":"p2","nameLocation":"23619:2:13","nodeType":"VariableDeclaration","scope":12148,"src":"23614:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12130,"name":"bool","nodeType":"ElementaryTypeName","src":"23614:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12133,"mutability":"mutable","name":"p3","nameLocation":"23628:2:13","nodeType":"VariableDeclaration","scope":12148,"src":"23623:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12132,"name":"bool","nodeType":"ElementaryTypeName","src":"23623:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23586:45:13"},"returnParameters":{"id":12135,"nodeType":"ParameterList","parameters":[],"src":"23646:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12171,"nodeType":"FunctionDefinition","src":"23755:181:13","nodes":[],"body":{"id":12170,"nodeType":"Block","src":"23830:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c626f6f6c2c6164647265737329","id":12162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23880:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_796f28a06ededa438107c0866560412d4d4337e29da4c7300f50c49a73c18829","typeString":"literal_string \"log(uint,string,bool,address)\""},"value":"log(uint,string,bool,address)"},{"id":12163,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12150,"src":"23913:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12164,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12152,"src":"23917:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12165,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12154,"src":"23921:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12166,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12156,"src":"23925:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_796f28a06ededa438107c0866560412d4d4337e29da4c7300f50c49a73c18829","typeString":"literal_string \"log(uint,string,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12160,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23856:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23860:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23856:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23856:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12159,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"23840:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23840:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12169,"nodeType":"ExpressionStatement","src":"23840:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23764:3:13","parameters":{"id":12157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12150,"mutability":"mutable","name":"p0","nameLocation":"23773:2:13","nodeType":"VariableDeclaration","scope":12171,"src":"23768:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12149,"name":"uint","nodeType":"ElementaryTypeName","src":"23768:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12152,"mutability":"mutable","name":"p1","nameLocation":"23791:2:13","nodeType":"VariableDeclaration","scope":12171,"src":"23777:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12151,"name":"string","nodeType":"ElementaryTypeName","src":"23777:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12154,"mutability":"mutable","name":"p2","nameLocation":"23800:2:13","nodeType":"VariableDeclaration","scope":12171,"src":"23795:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12153,"name":"bool","nodeType":"ElementaryTypeName","src":"23795:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12156,"mutability":"mutable","name":"p3","nameLocation":"23812:2:13","nodeType":"VariableDeclaration","scope":12171,"src":"23804:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12155,"name":"address","nodeType":"ElementaryTypeName","src":"23804:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23767:48:13"},"returnParameters":{"id":12158,"nodeType":"ParameterList","parameters":[],"src":"23830:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12194,"nodeType":"FunctionDefinition","src":"23942:181:13","nodes":[],"body":{"id":12193,"nodeType":"Block","src":"24017:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c616464726573732c75696e7429","id":12185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24067:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_98e7f3f3a2c39a91982b0a3ae7f29043579abd563fc10531c052f92c3317af43","typeString":"literal_string \"log(uint,string,address,uint)\""},"value":"log(uint,string,address,uint)"},{"id":12186,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12173,"src":"24100:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12187,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12175,"src":"24104:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12188,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12177,"src":"24108:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12189,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12179,"src":"24112:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_98e7f3f3a2c39a91982b0a3ae7f29043579abd563fc10531c052f92c3317af43","typeString":"literal_string \"log(uint,string,address,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12183,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24043:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24047:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24043:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24043:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12182,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"24027:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24027:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12192,"nodeType":"ExpressionStatement","src":"24027:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23951:3:13","parameters":{"id":12180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12173,"mutability":"mutable","name":"p0","nameLocation":"23960:2:13","nodeType":"VariableDeclaration","scope":12194,"src":"23955:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12172,"name":"uint","nodeType":"ElementaryTypeName","src":"23955:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12175,"mutability":"mutable","name":"p1","nameLocation":"23978:2:13","nodeType":"VariableDeclaration","scope":12194,"src":"23964:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12174,"name":"string","nodeType":"ElementaryTypeName","src":"23964:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12177,"mutability":"mutable","name":"p2","nameLocation":"23990:2:13","nodeType":"VariableDeclaration","scope":12194,"src":"23982:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12176,"name":"address","nodeType":"ElementaryTypeName","src":"23982:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12179,"mutability":"mutable","name":"p3","nameLocation":"23999:2:13","nodeType":"VariableDeclaration","scope":12194,"src":"23994:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12178,"name":"uint","nodeType":"ElementaryTypeName","src":"23994:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23954:48:13"},"returnParameters":{"id":12181,"nodeType":"ParameterList","parameters":[],"src":"24017:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12217,"nodeType":"FunctionDefinition","src":"24129:192:13","nodes":[],"body":{"id":12216,"nodeType":"Block","src":"24213:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c616464726573732c737472696e6729","id":12208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24263:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_f898577fdc87bf80b54b2b838f8b58bf5a74554c7beeb61b98f3c2b7d59f31e2","typeString":"literal_string \"log(uint,string,address,string)\""},"value":"log(uint,string,address,string)"},{"id":12209,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12196,"src":"24298:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12210,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12198,"src":"24302:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12211,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12200,"src":"24306:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12212,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12202,"src":"24310:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f898577fdc87bf80b54b2b838f8b58bf5a74554c7beeb61b98f3c2b7d59f31e2","typeString":"literal_string \"log(uint,string,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12206,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24239:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24243:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24239:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24239:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12205,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"24223:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24223:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12215,"nodeType":"ExpressionStatement","src":"24223:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24138:3:13","parameters":{"id":12203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12196,"mutability":"mutable","name":"p0","nameLocation":"24147:2:13","nodeType":"VariableDeclaration","scope":12217,"src":"24142:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12195,"name":"uint","nodeType":"ElementaryTypeName","src":"24142:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12198,"mutability":"mutable","name":"p1","nameLocation":"24165:2:13","nodeType":"VariableDeclaration","scope":12217,"src":"24151:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12197,"name":"string","nodeType":"ElementaryTypeName","src":"24151:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12200,"mutability":"mutable","name":"p2","nameLocation":"24177:2:13","nodeType":"VariableDeclaration","scope":12217,"src":"24169:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12199,"name":"address","nodeType":"ElementaryTypeName","src":"24169:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12202,"mutability":"mutable","name":"p3","nameLocation":"24195:2:13","nodeType":"VariableDeclaration","scope":12217,"src":"24181:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12201,"name":"string","nodeType":"ElementaryTypeName","src":"24181:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"24141:57:13"},"returnParameters":{"id":12204,"nodeType":"ParameterList","parameters":[],"src":"24213:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12240,"nodeType":"FunctionDefinition","src":"24327:181:13","nodes":[],"body":{"id":12239,"nodeType":"Block","src":"24402:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c616464726573732c626f6f6c29","id":12231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24452:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_f93fff378483bab1a84a8ae346090ff91e793863821a5430c45153390c3262e1","typeString":"literal_string \"log(uint,string,address,bool)\""},"value":"log(uint,string,address,bool)"},{"id":12232,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12219,"src":"24485:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12233,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12221,"src":"24489:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12234,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12223,"src":"24493:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12235,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12225,"src":"24497:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f93fff378483bab1a84a8ae346090ff91e793863821a5430c45153390c3262e1","typeString":"literal_string \"log(uint,string,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12229,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24428:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24432:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24428:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24428:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12228,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"24412:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24412:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12238,"nodeType":"ExpressionStatement","src":"24412:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24336:3:13","parameters":{"id":12226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12219,"mutability":"mutable","name":"p0","nameLocation":"24345:2:13","nodeType":"VariableDeclaration","scope":12240,"src":"24340:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12218,"name":"uint","nodeType":"ElementaryTypeName","src":"24340:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12221,"mutability":"mutable","name":"p1","nameLocation":"24363:2:13","nodeType":"VariableDeclaration","scope":12240,"src":"24349:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12220,"name":"string","nodeType":"ElementaryTypeName","src":"24349:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12223,"mutability":"mutable","name":"p2","nameLocation":"24375:2:13","nodeType":"VariableDeclaration","scope":12240,"src":"24367:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12222,"name":"address","nodeType":"ElementaryTypeName","src":"24367:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12225,"mutability":"mutable","name":"p3","nameLocation":"24384:2:13","nodeType":"VariableDeclaration","scope":12240,"src":"24379:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12224,"name":"bool","nodeType":"ElementaryTypeName","src":"24379:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"24339:48:13"},"returnParameters":{"id":12227,"nodeType":"ParameterList","parameters":[],"src":"24402:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12263,"nodeType":"FunctionDefinition","src":"24514:187:13","nodes":[],"body":{"id":12262,"nodeType":"Block","src":"24592:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c616464726573732c6164647265737329","id":12254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24642:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_7fa5458bb859a8b444c46f9915b7879afe7e200298580a00c5813ecf5c0a77cb","typeString":"literal_string \"log(uint,string,address,address)\""},"value":"log(uint,string,address,address)"},{"id":12255,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12242,"src":"24678:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12256,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12244,"src":"24682:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12257,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12246,"src":"24686:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12258,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12248,"src":"24690:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7fa5458bb859a8b444c46f9915b7879afe7e200298580a00c5813ecf5c0a77cb","typeString":"literal_string \"log(uint,string,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12252,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24618:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12253,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24622:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24618:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24618:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12251,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"24602:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24602:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12261,"nodeType":"ExpressionStatement","src":"24602:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24523:3:13","parameters":{"id":12249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12242,"mutability":"mutable","name":"p0","nameLocation":"24532:2:13","nodeType":"VariableDeclaration","scope":12263,"src":"24527:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12241,"name":"uint","nodeType":"ElementaryTypeName","src":"24527:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12244,"mutability":"mutable","name":"p1","nameLocation":"24550:2:13","nodeType":"VariableDeclaration","scope":12263,"src":"24536:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12243,"name":"string","nodeType":"ElementaryTypeName","src":"24536:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12246,"mutability":"mutable","name":"p2","nameLocation":"24562:2:13","nodeType":"VariableDeclaration","scope":12263,"src":"24554:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12245,"name":"address","nodeType":"ElementaryTypeName","src":"24554:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12248,"mutability":"mutable","name":"p3","nameLocation":"24574:2:13","nodeType":"VariableDeclaration","scope":12263,"src":"24566:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12247,"name":"address","nodeType":"ElementaryTypeName","src":"24566:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24526:51:13"},"returnParameters":{"id":12250,"nodeType":"ParameterList","parameters":[],"src":"24592:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12286,"nodeType":"FunctionDefinition","src":"24707:164:13","nodes":[],"body":{"id":12285,"nodeType":"Block","src":"24770:101:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c75696e742c75696e7429","id":12277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24820:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_56828da42a6ecdc94480e6d223af96b676cdc4ca9a00b1d88a7646ef1e12541e","typeString":"literal_string \"log(uint,bool,uint,uint)\""},"value":"log(uint,bool,uint,uint)"},{"id":12278,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"24848:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12279,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12267,"src":"24852:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12280,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12269,"src":"24856:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12281,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12271,"src":"24860:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_56828da42a6ecdc94480e6d223af96b676cdc4ca9a00b1d88a7646ef1e12541e","typeString":"literal_string \"log(uint,bool,uint,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12275,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24796:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24800:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24796:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24796:67:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12274,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"24780:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24780:84:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12284,"nodeType":"ExpressionStatement","src":"24780:84:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24716:3:13","parameters":{"id":12272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12265,"mutability":"mutable","name":"p0","nameLocation":"24725:2:13","nodeType":"VariableDeclaration","scope":12286,"src":"24720:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12264,"name":"uint","nodeType":"ElementaryTypeName","src":"24720:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12267,"mutability":"mutable","name":"p1","nameLocation":"24734:2:13","nodeType":"VariableDeclaration","scope":12286,"src":"24729:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12266,"name":"bool","nodeType":"ElementaryTypeName","src":"24729:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12269,"mutability":"mutable","name":"p2","nameLocation":"24743:2:13","nodeType":"VariableDeclaration","scope":12286,"src":"24738:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12268,"name":"uint","nodeType":"ElementaryTypeName","src":"24738:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12271,"mutability":"mutable","name":"p3","nameLocation":"24752:2:13","nodeType":"VariableDeclaration","scope":12286,"src":"24747:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12270,"name":"uint","nodeType":"ElementaryTypeName","src":"24747:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24719:36:13"},"returnParameters":{"id":12273,"nodeType":"ParameterList","parameters":[],"src":"24770:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12309,"nodeType":"FunctionDefinition","src":"24877:175:13","nodes":[],"body":{"id":12308,"nodeType":"Block","src":"24949:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c75696e742c737472696e6729","id":12300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24999:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_e8ddbc56b4712607102717eb35a3ee6aa0309358d07a4257a282d4a44ceb2f63","typeString":"literal_string \"log(uint,bool,uint,string)\""},"value":"log(uint,bool,uint,string)"},{"id":12301,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12288,"src":"25029:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12302,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12290,"src":"25033:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12303,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12292,"src":"25037:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12304,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12294,"src":"25041:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e8ddbc56b4712607102717eb35a3ee6aa0309358d07a4257a282d4a44ceb2f63","typeString":"literal_string \"log(uint,bool,uint,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12298,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24975:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24979:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24975:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24975:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12297,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"24959:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24959:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12307,"nodeType":"ExpressionStatement","src":"24959:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24886:3:13","parameters":{"id":12295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12288,"mutability":"mutable","name":"p0","nameLocation":"24895:2:13","nodeType":"VariableDeclaration","scope":12309,"src":"24890:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12287,"name":"uint","nodeType":"ElementaryTypeName","src":"24890:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12290,"mutability":"mutable","name":"p1","nameLocation":"24904:2:13","nodeType":"VariableDeclaration","scope":12309,"src":"24899:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12289,"name":"bool","nodeType":"ElementaryTypeName","src":"24899:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12292,"mutability":"mutable","name":"p2","nameLocation":"24913:2:13","nodeType":"VariableDeclaration","scope":12309,"src":"24908:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12291,"name":"uint","nodeType":"ElementaryTypeName","src":"24908:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12294,"mutability":"mutable","name":"p3","nameLocation":"24931:2:13","nodeType":"VariableDeclaration","scope":12309,"src":"24917:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12293,"name":"string","nodeType":"ElementaryTypeName","src":"24917:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"24889:45:13"},"returnParameters":{"id":12296,"nodeType":"ParameterList","parameters":[],"src":"24949:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12332,"nodeType":"FunctionDefinition","src":"25058:164:13","nodes":[],"body":{"id":12331,"nodeType":"Block","src":"25121:101:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c75696e742c626f6f6c29","id":12323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25171:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2abc4fdef6f35f3785755f2ca3a26416b52c0c4c5ad8b27342fc84a56532f2f","typeString":"literal_string \"log(uint,bool,uint,bool)\""},"value":"log(uint,bool,uint,bool)"},{"id":12324,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12311,"src":"25199:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12325,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12313,"src":"25203:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12326,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12315,"src":"25207:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12327,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12317,"src":"25211:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2abc4fdef6f35f3785755f2ca3a26416b52c0c4c5ad8b27342fc84a56532f2f","typeString":"literal_string \"log(uint,bool,uint,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12321,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25147:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25151:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25147:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25147:67:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12320,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"25131:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25131:84:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12330,"nodeType":"ExpressionStatement","src":"25131:84:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25067:3:13","parameters":{"id":12318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12311,"mutability":"mutable","name":"p0","nameLocation":"25076:2:13","nodeType":"VariableDeclaration","scope":12332,"src":"25071:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12310,"name":"uint","nodeType":"ElementaryTypeName","src":"25071:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12313,"mutability":"mutable","name":"p1","nameLocation":"25085:2:13","nodeType":"VariableDeclaration","scope":12332,"src":"25080:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12312,"name":"bool","nodeType":"ElementaryTypeName","src":"25080:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12315,"mutability":"mutable","name":"p2","nameLocation":"25094:2:13","nodeType":"VariableDeclaration","scope":12332,"src":"25089:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12314,"name":"uint","nodeType":"ElementaryTypeName","src":"25089:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12317,"mutability":"mutable","name":"p3","nameLocation":"25103:2:13","nodeType":"VariableDeclaration","scope":12332,"src":"25098:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12316,"name":"bool","nodeType":"ElementaryTypeName","src":"25098:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"25070:36:13"},"returnParameters":{"id":12319,"nodeType":"ParameterList","parameters":[],"src":"25121:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12355,"nodeType":"FunctionDefinition","src":"25228:170:13","nodes":[],"body":{"id":12354,"nodeType":"Block","src":"25294:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c75696e742c6164647265737329","id":12346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25344:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f40058ea8927b23c60661eeb28f54d3ce10f5f6cdd8e3ce445d34409ceb50a3","typeString":"literal_string \"log(uint,bool,uint,address)\""},"value":"log(uint,bool,uint,address)"},{"id":12347,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12334,"src":"25375:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12348,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12336,"src":"25379:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12349,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12338,"src":"25383:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12350,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12340,"src":"25387:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f40058ea8927b23c60661eeb28f54d3ce10f5f6cdd8e3ce445d34409ceb50a3","typeString":"literal_string \"log(uint,bool,uint,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12344,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25320:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25324:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25320:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25320:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12343,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"25304:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25304:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12353,"nodeType":"ExpressionStatement","src":"25304:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25237:3:13","parameters":{"id":12341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12334,"mutability":"mutable","name":"p0","nameLocation":"25246:2:13","nodeType":"VariableDeclaration","scope":12355,"src":"25241:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12333,"name":"uint","nodeType":"ElementaryTypeName","src":"25241:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12336,"mutability":"mutable","name":"p1","nameLocation":"25255:2:13","nodeType":"VariableDeclaration","scope":12355,"src":"25250:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12335,"name":"bool","nodeType":"ElementaryTypeName","src":"25250:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12338,"mutability":"mutable","name":"p2","nameLocation":"25264:2:13","nodeType":"VariableDeclaration","scope":12355,"src":"25259:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12337,"name":"uint","nodeType":"ElementaryTypeName","src":"25259:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12340,"mutability":"mutable","name":"p3","nameLocation":"25276:2:13","nodeType":"VariableDeclaration","scope":12355,"src":"25268:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12339,"name":"address","nodeType":"ElementaryTypeName","src":"25268:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25240:39:13"},"returnParameters":{"id":12342,"nodeType":"ParameterList","parameters":[],"src":"25294:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12378,"nodeType":"FunctionDefinition","src":"25404:175:13","nodes":[],"body":{"id":12377,"nodeType":"Block","src":"25476:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c737472696e672c75696e7429","id":12369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25526:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_915fdb28841654f5e04882ad0aa4f5de28bd90db1a700dae8b1eb5e67e36a012","typeString":"literal_string \"log(uint,bool,string,uint)\""},"value":"log(uint,bool,string,uint)"},{"id":12370,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12357,"src":"25556:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12371,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12359,"src":"25560:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12372,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12361,"src":"25564:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12373,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12363,"src":"25568:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_915fdb28841654f5e04882ad0aa4f5de28bd90db1a700dae8b1eb5e67e36a012","typeString":"literal_string \"log(uint,bool,string,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12367,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25502:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25506:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25502:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25502:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12366,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"25486:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25486:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12376,"nodeType":"ExpressionStatement","src":"25486:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25413:3:13","parameters":{"id":12364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12357,"mutability":"mutable","name":"p0","nameLocation":"25422:2:13","nodeType":"VariableDeclaration","scope":12378,"src":"25417:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12356,"name":"uint","nodeType":"ElementaryTypeName","src":"25417:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12359,"mutability":"mutable","name":"p1","nameLocation":"25431:2:13","nodeType":"VariableDeclaration","scope":12378,"src":"25426:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12358,"name":"bool","nodeType":"ElementaryTypeName","src":"25426:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12361,"mutability":"mutable","name":"p2","nameLocation":"25449:2:13","nodeType":"VariableDeclaration","scope":12378,"src":"25435:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12360,"name":"string","nodeType":"ElementaryTypeName","src":"25435:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12363,"mutability":"mutable","name":"p3","nameLocation":"25458:2:13","nodeType":"VariableDeclaration","scope":12378,"src":"25453:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12362,"name":"uint","nodeType":"ElementaryTypeName","src":"25453:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25416:45:13"},"returnParameters":{"id":12365,"nodeType":"ParameterList","parameters":[],"src":"25476:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12401,"nodeType":"FunctionDefinition","src":"25585:186:13","nodes":[],"body":{"id":12400,"nodeType":"Block","src":"25666:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c737472696e672c737472696e6729","id":12392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25716:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a433fcfd538cd0e077747fbb2c5a6453c1804c6ad4af653273e0d14ab4a0566a","typeString":"literal_string \"log(uint,bool,string,string)\""},"value":"log(uint,bool,string,string)"},{"id":12393,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12380,"src":"25748:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12394,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12382,"src":"25752:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12395,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12384,"src":"25756:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12396,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12386,"src":"25760:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a433fcfd538cd0e077747fbb2c5a6453c1804c6ad4af653273e0d14ab4a0566a","typeString":"literal_string \"log(uint,bool,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12390,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25692:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25696:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25692:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25692:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12389,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"25676:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25676:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12399,"nodeType":"ExpressionStatement","src":"25676:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25594:3:13","parameters":{"id":12387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12380,"mutability":"mutable","name":"p0","nameLocation":"25603:2:13","nodeType":"VariableDeclaration","scope":12401,"src":"25598:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12379,"name":"uint","nodeType":"ElementaryTypeName","src":"25598:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12382,"mutability":"mutable","name":"p1","nameLocation":"25612:2:13","nodeType":"VariableDeclaration","scope":12401,"src":"25607:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12381,"name":"bool","nodeType":"ElementaryTypeName","src":"25607:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12384,"mutability":"mutable","name":"p2","nameLocation":"25630:2:13","nodeType":"VariableDeclaration","scope":12401,"src":"25616:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12383,"name":"string","nodeType":"ElementaryTypeName","src":"25616:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12386,"mutability":"mutable","name":"p3","nameLocation":"25648:2:13","nodeType":"VariableDeclaration","scope":12401,"src":"25634:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12385,"name":"string","nodeType":"ElementaryTypeName","src":"25634:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"25597:54:13"},"returnParameters":{"id":12388,"nodeType":"ParameterList","parameters":[],"src":"25666:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12424,"nodeType":"FunctionDefinition","src":"25777:175:13","nodes":[],"body":{"id":12423,"nodeType":"Block","src":"25849:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c737472696e672c626f6f6c29","id":12415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25899:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_346eb8c74221bcb2c0a69b8dde628b7e6175c4f090782c8f07996b251212e22d","typeString":"literal_string \"log(uint,bool,string,bool)\""},"value":"log(uint,bool,string,bool)"},{"id":12416,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12403,"src":"25929:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12417,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12405,"src":"25933:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12418,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12407,"src":"25937:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12419,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12409,"src":"25941:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_346eb8c74221bcb2c0a69b8dde628b7e6175c4f090782c8f07996b251212e22d","typeString":"literal_string \"log(uint,bool,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12413,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25875:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25879:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25875:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25875:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12412,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"25859:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25859:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12422,"nodeType":"ExpressionStatement","src":"25859:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25786:3:13","parameters":{"id":12410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12403,"mutability":"mutable","name":"p0","nameLocation":"25795:2:13","nodeType":"VariableDeclaration","scope":12424,"src":"25790:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12402,"name":"uint","nodeType":"ElementaryTypeName","src":"25790:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12405,"mutability":"mutable","name":"p1","nameLocation":"25804:2:13","nodeType":"VariableDeclaration","scope":12424,"src":"25799:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12404,"name":"bool","nodeType":"ElementaryTypeName","src":"25799:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12407,"mutability":"mutable","name":"p2","nameLocation":"25822:2:13","nodeType":"VariableDeclaration","scope":12424,"src":"25808:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12406,"name":"string","nodeType":"ElementaryTypeName","src":"25808:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12409,"mutability":"mutable","name":"p3","nameLocation":"25831:2:13","nodeType":"VariableDeclaration","scope":12424,"src":"25826:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12408,"name":"bool","nodeType":"ElementaryTypeName","src":"25826:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"25789:45:13"},"returnParameters":{"id":12411,"nodeType":"ParameterList","parameters":[],"src":"25849:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12447,"nodeType":"FunctionDefinition","src":"25958:181:13","nodes":[],"body":{"id":12446,"nodeType":"Block","src":"26033:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c737472696e672c6164647265737329","id":12438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26083:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_496e2bb45f5cdd3680c3e807c53955b9de163e898851c7844433c0a9c91dcd9d","typeString":"literal_string \"log(uint,bool,string,address)\""},"value":"log(uint,bool,string,address)"},{"id":12439,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12426,"src":"26116:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12440,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12428,"src":"26120:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12441,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12430,"src":"26124:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12442,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12432,"src":"26128:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_496e2bb45f5cdd3680c3e807c53955b9de163e898851c7844433c0a9c91dcd9d","typeString":"literal_string \"log(uint,bool,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12436,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26059:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26063:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26059:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26059:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12435,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"26043:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26043:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12445,"nodeType":"ExpressionStatement","src":"26043:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25967:3:13","parameters":{"id":12433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12426,"mutability":"mutable","name":"p0","nameLocation":"25976:2:13","nodeType":"VariableDeclaration","scope":12447,"src":"25971:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12425,"name":"uint","nodeType":"ElementaryTypeName","src":"25971:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12428,"mutability":"mutable","name":"p1","nameLocation":"25985:2:13","nodeType":"VariableDeclaration","scope":12447,"src":"25980:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12427,"name":"bool","nodeType":"ElementaryTypeName","src":"25980:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12430,"mutability":"mutable","name":"p2","nameLocation":"26003:2:13","nodeType":"VariableDeclaration","scope":12447,"src":"25989:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12429,"name":"string","nodeType":"ElementaryTypeName","src":"25989:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12432,"mutability":"mutable","name":"p3","nameLocation":"26015:2:13","nodeType":"VariableDeclaration","scope":12447,"src":"26007:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12431,"name":"address","nodeType":"ElementaryTypeName","src":"26007:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25970:48:13"},"returnParameters":{"id":12434,"nodeType":"ParameterList","parameters":[],"src":"26033:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12470,"nodeType":"FunctionDefinition","src":"26145:164:13","nodes":[],"body":{"id":12469,"nodeType":"Block","src":"26208:101:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c626f6f6c2c75696e7429","id":12461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26258:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_bd25ad5987e2f3e90d5ff2c9e0dad802782e9040e45e823722ccf598278cf7ed","typeString":"literal_string \"log(uint,bool,bool,uint)\""},"value":"log(uint,bool,bool,uint)"},{"id":12462,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12449,"src":"26286:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12463,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12451,"src":"26290:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12464,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12453,"src":"26294:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12465,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12455,"src":"26298:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bd25ad5987e2f3e90d5ff2c9e0dad802782e9040e45e823722ccf598278cf7ed","typeString":"literal_string \"log(uint,bool,bool,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12459,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26234:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26238:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26234:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26234:67:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12458,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"26218:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26218:84:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12468,"nodeType":"ExpressionStatement","src":"26218:84:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26154:3:13","parameters":{"id":12456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12449,"mutability":"mutable","name":"p0","nameLocation":"26163:2:13","nodeType":"VariableDeclaration","scope":12470,"src":"26158:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12448,"name":"uint","nodeType":"ElementaryTypeName","src":"26158:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12451,"mutability":"mutable","name":"p1","nameLocation":"26172:2:13","nodeType":"VariableDeclaration","scope":12470,"src":"26167:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12450,"name":"bool","nodeType":"ElementaryTypeName","src":"26167:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12453,"mutability":"mutable","name":"p2","nameLocation":"26181:2:13","nodeType":"VariableDeclaration","scope":12470,"src":"26176:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12452,"name":"bool","nodeType":"ElementaryTypeName","src":"26176:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12455,"mutability":"mutable","name":"p3","nameLocation":"26190:2:13","nodeType":"VariableDeclaration","scope":12470,"src":"26185:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12454,"name":"uint","nodeType":"ElementaryTypeName","src":"26185:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26157:36:13"},"returnParameters":{"id":12457,"nodeType":"ParameterList","parameters":[],"src":"26208:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12493,"nodeType":"FunctionDefinition","src":"26315:175:13","nodes":[],"body":{"id":12492,"nodeType":"Block","src":"26387:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c626f6f6c2c737472696e6729","id":12484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26437:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_318ae59b506d4efe5cd02b34be9f24009f0134ab1136defc4789a09e425a8861","typeString":"literal_string \"log(uint,bool,bool,string)\""},"value":"log(uint,bool,bool,string)"},{"id":12485,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12472,"src":"26467:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12486,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12474,"src":"26471:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12487,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12476,"src":"26475:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12488,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12478,"src":"26479:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_318ae59b506d4efe5cd02b34be9f24009f0134ab1136defc4789a09e425a8861","typeString":"literal_string \"log(uint,bool,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12482,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26413:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26417:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26413:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26413:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12481,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"26397:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26397:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12491,"nodeType":"ExpressionStatement","src":"26397:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26324:3:13","parameters":{"id":12479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12472,"mutability":"mutable","name":"p0","nameLocation":"26333:2:13","nodeType":"VariableDeclaration","scope":12493,"src":"26328:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12471,"name":"uint","nodeType":"ElementaryTypeName","src":"26328:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12474,"mutability":"mutable","name":"p1","nameLocation":"26342:2:13","nodeType":"VariableDeclaration","scope":12493,"src":"26337:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12473,"name":"bool","nodeType":"ElementaryTypeName","src":"26337:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12476,"mutability":"mutable","name":"p2","nameLocation":"26351:2:13","nodeType":"VariableDeclaration","scope":12493,"src":"26346:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12475,"name":"bool","nodeType":"ElementaryTypeName","src":"26346:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12478,"mutability":"mutable","name":"p3","nameLocation":"26369:2:13","nodeType":"VariableDeclaration","scope":12493,"src":"26355:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12477,"name":"string","nodeType":"ElementaryTypeName","src":"26355:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26327:45:13"},"returnParameters":{"id":12480,"nodeType":"ParameterList","parameters":[],"src":"26387:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12516,"nodeType":"FunctionDefinition","src":"26496:164:13","nodes":[],"body":{"id":12515,"nodeType":"Block","src":"26559:101:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c626f6f6c2c626f6f6c29","id":12507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26609:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e6c5315e6998332ba87ae2545bc72447c94349a51e999446a98bfab04167b32","typeString":"literal_string \"log(uint,bool,bool,bool)\""},"value":"log(uint,bool,bool,bool)"},{"id":12508,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12495,"src":"26637:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12509,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12497,"src":"26641:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12510,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12499,"src":"26645:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12511,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12501,"src":"26649:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e6c5315e6998332ba87ae2545bc72447c94349a51e999446a98bfab04167b32","typeString":"literal_string \"log(uint,bool,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12505,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26585:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26589:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26585:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26585:67:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12504,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"26569:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26569:84:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12514,"nodeType":"ExpressionStatement","src":"26569:84:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26505:3:13","parameters":{"id":12502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12495,"mutability":"mutable","name":"p0","nameLocation":"26514:2:13","nodeType":"VariableDeclaration","scope":12516,"src":"26509:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12494,"name":"uint","nodeType":"ElementaryTypeName","src":"26509:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12497,"mutability":"mutable","name":"p1","nameLocation":"26523:2:13","nodeType":"VariableDeclaration","scope":12516,"src":"26518:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12496,"name":"bool","nodeType":"ElementaryTypeName","src":"26518:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12499,"mutability":"mutable","name":"p2","nameLocation":"26532:2:13","nodeType":"VariableDeclaration","scope":12516,"src":"26527:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12498,"name":"bool","nodeType":"ElementaryTypeName","src":"26527:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12501,"mutability":"mutable","name":"p3","nameLocation":"26541:2:13","nodeType":"VariableDeclaration","scope":12516,"src":"26536:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12500,"name":"bool","nodeType":"ElementaryTypeName","src":"26536:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26508:36:13"},"returnParameters":{"id":12503,"nodeType":"ParameterList","parameters":[],"src":"26559:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12539,"nodeType":"FunctionDefinition","src":"26666:170:13","nodes":[],"body":{"id":12538,"nodeType":"Block","src":"26732:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c626f6f6c2c6164647265737329","id":12530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26782:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_5306225d3f6a0c340e12a634d8571b24a659d0fdcb96dd45e3bd062feb68355b","typeString":"literal_string \"log(uint,bool,bool,address)\""},"value":"log(uint,bool,bool,address)"},{"id":12531,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12518,"src":"26813:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12532,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12520,"src":"26817:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12533,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12522,"src":"26821:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12534,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12524,"src":"26825:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5306225d3f6a0c340e12a634d8571b24a659d0fdcb96dd45e3bd062feb68355b","typeString":"literal_string \"log(uint,bool,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12528,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26758:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26762:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26758:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26758:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12527,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"26742:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26742:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12537,"nodeType":"ExpressionStatement","src":"26742:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26675:3:13","parameters":{"id":12525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12518,"mutability":"mutable","name":"p0","nameLocation":"26684:2:13","nodeType":"VariableDeclaration","scope":12539,"src":"26679:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12517,"name":"uint","nodeType":"ElementaryTypeName","src":"26679:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12520,"mutability":"mutable","name":"p1","nameLocation":"26693:2:13","nodeType":"VariableDeclaration","scope":12539,"src":"26688:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12519,"name":"bool","nodeType":"ElementaryTypeName","src":"26688:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12522,"mutability":"mutable","name":"p2","nameLocation":"26702:2:13","nodeType":"VariableDeclaration","scope":12539,"src":"26697:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12521,"name":"bool","nodeType":"ElementaryTypeName","src":"26697:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12524,"mutability":"mutable","name":"p3","nameLocation":"26714:2:13","nodeType":"VariableDeclaration","scope":12539,"src":"26706:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12523,"name":"address","nodeType":"ElementaryTypeName","src":"26706:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26678:39:13"},"returnParameters":{"id":12526,"nodeType":"ParameterList","parameters":[],"src":"26732:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12562,"nodeType":"FunctionDefinition","src":"26842:170:13","nodes":[],"body":{"id":12561,"nodeType":"Block","src":"26908:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c616464726573732c75696e7429","id":12553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26958:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_41b5ef3bc57cb6072d9bbab757f04e68fb78a6a8b29741a7b963761abce32fb1","typeString":"literal_string \"log(uint,bool,address,uint)\""},"value":"log(uint,bool,address,uint)"},{"id":12554,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12541,"src":"26989:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12555,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12543,"src":"26993:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12556,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12545,"src":"26997:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12557,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12547,"src":"27001:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41b5ef3bc57cb6072d9bbab757f04e68fb78a6a8b29741a7b963761abce32fb1","typeString":"literal_string \"log(uint,bool,address,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12551,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26934:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26938:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26934:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26934:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12550,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"26918:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26918:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12560,"nodeType":"ExpressionStatement","src":"26918:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26851:3:13","parameters":{"id":12548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12541,"mutability":"mutable","name":"p0","nameLocation":"26860:2:13","nodeType":"VariableDeclaration","scope":12562,"src":"26855:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12540,"name":"uint","nodeType":"ElementaryTypeName","src":"26855:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12543,"mutability":"mutable","name":"p1","nameLocation":"26869:2:13","nodeType":"VariableDeclaration","scope":12562,"src":"26864:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12542,"name":"bool","nodeType":"ElementaryTypeName","src":"26864:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12545,"mutability":"mutable","name":"p2","nameLocation":"26881:2:13","nodeType":"VariableDeclaration","scope":12562,"src":"26873:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12544,"name":"address","nodeType":"ElementaryTypeName","src":"26873:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12547,"mutability":"mutable","name":"p3","nameLocation":"26890:2:13","nodeType":"VariableDeclaration","scope":12562,"src":"26885:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12546,"name":"uint","nodeType":"ElementaryTypeName","src":"26885:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26854:39:13"},"returnParameters":{"id":12549,"nodeType":"ParameterList","parameters":[],"src":"26908:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12585,"nodeType":"FunctionDefinition","src":"27018:181:13","nodes":[],"body":{"id":12584,"nodeType":"Block","src":"27093:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c616464726573732c737472696e6729","id":12576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27143:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a230761e3811ae33e11d91e6667cf79e7e0ce8023ec276bdd69859f68587933c","typeString":"literal_string \"log(uint,bool,address,string)\""},"value":"log(uint,bool,address,string)"},{"id":12577,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12564,"src":"27176:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12578,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12566,"src":"27180:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12579,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12568,"src":"27184:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12580,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12570,"src":"27188:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a230761e3811ae33e11d91e6667cf79e7e0ce8023ec276bdd69859f68587933c","typeString":"literal_string \"log(uint,bool,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12574,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27119:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12575,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27123:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27119:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27119:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12573,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"27103:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27103:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12583,"nodeType":"ExpressionStatement","src":"27103:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27027:3:13","parameters":{"id":12571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12564,"mutability":"mutable","name":"p0","nameLocation":"27036:2:13","nodeType":"VariableDeclaration","scope":12585,"src":"27031:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12563,"name":"uint","nodeType":"ElementaryTypeName","src":"27031:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12566,"mutability":"mutable","name":"p1","nameLocation":"27045:2:13","nodeType":"VariableDeclaration","scope":12585,"src":"27040:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12565,"name":"bool","nodeType":"ElementaryTypeName","src":"27040:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12568,"mutability":"mutable","name":"p2","nameLocation":"27057:2:13","nodeType":"VariableDeclaration","scope":12585,"src":"27049:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12567,"name":"address","nodeType":"ElementaryTypeName","src":"27049:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12570,"mutability":"mutable","name":"p3","nameLocation":"27075:2:13","nodeType":"VariableDeclaration","scope":12585,"src":"27061:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12569,"name":"string","nodeType":"ElementaryTypeName","src":"27061:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27030:48:13"},"returnParameters":{"id":12572,"nodeType":"ParameterList","parameters":[],"src":"27093:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12608,"nodeType":"FunctionDefinition","src":"27205:170:13","nodes":[],"body":{"id":12607,"nodeType":"Block","src":"27271:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c616464726573732c626f6f6c29","id":12599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27321:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_91fb124272873b32f25c28f6935451e3d46ffd78ac8ebaaa0e096a7942db5445","typeString":"literal_string \"log(uint,bool,address,bool)\""},"value":"log(uint,bool,address,bool)"},{"id":12600,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12587,"src":"27352:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12601,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12589,"src":"27356:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12602,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12591,"src":"27360:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12603,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12593,"src":"27364:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91fb124272873b32f25c28f6935451e3d46ffd78ac8ebaaa0e096a7942db5445","typeString":"literal_string \"log(uint,bool,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12597,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27297:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27301:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27297:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27297:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12596,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"27281:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27281:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12606,"nodeType":"ExpressionStatement","src":"27281:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27214:3:13","parameters":{"id":12594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12587,"mutability":"mutable","name":"p0","nameLocation":"27223:2:13","nodeType":"VariableDeclaration","scope":12608,"src":"27218:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12586,"name":"uint","nodeType":"ElementaryTypeName","src":"27218:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12589,"mutability":"mutable","name":"p1","nameLocation":"27232:2:13","nodeType":"VariableDeclaration","scope":12608,"src":"27227:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12588,"name":"bool","nodeType":"ElementaryTypeName","src":"27227:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12591,"mutability":"mutable","name":"p2","nameLocation":"27244:2:13","nodeType":"VariableDeclaration","scope":12608,"src":"27236:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12590,"name":"address","nodeType":"ElementaryTypeName","src":"27236:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12593,"mutability":"mutable","name":"p3","nameLocation":"27253:2:13","nodeType":"VariableDeclaration","scope":12608,"src":"27248:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12592,"name":"bool","nodeType":"ElementaryTypeName","src":"27248:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27217:39:13"},"returnParameters":{"id":12595,"nodeType":"ParameterList","parameters":[],"src":"27271:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12631,"nodeType":"FunctionDefinition","src":"27381:176:13","nodes":[],"body":{"id":12630,"nodeType":"Block","src":"27450:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c616464726573732c6164647265737329","id":12622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27500:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_86edc10cd85187c3b3f180e68e570c794e768808cdffe5158045d6f841ae33f2","typeString":"literal_string \"log(uint,bool,address,address)\""},"value":"log(uint,bool,address,address)"},{"id":12623,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12610,"src":"27534:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12624,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12612,"src":"27538:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12625,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12614,"src":"27542:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12626,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12616,"src":"27546:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_86edc10cd85187c3b3f180e68e570c794e768808cdffe5158045d6f841ae33f2","typeString":"literal_string \"log(uint,bool,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12620,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27476:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27480:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27476:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27476:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12619,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"27460:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27460:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12629,"nodeType":"ExpressionStatement","src":"27460:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27390:3:13","parameters":{"id":12617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12610,"mutability":"mutable","name":"p0","nameLocation":"27399:2:13","nodeType":"VariableDeclaration","scope":12631,"src":"27394:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12609,"name":"uint","nodeType":"ElementaryTypeName","src":"27394:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12612,"mutability":"mutable","name":"p1","nameLocation":"27408:2:13","nodeType":"VariableDeclaration","scope":12631,"src":"27403:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12611,"name":"bool","nodeType":"ElementaryTypeName","src":"27403:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12614,"mutability":"mutable","name":"p2","nameLocation":"27420:2:13","nodeType":"VariableDeclaration","scope":12631,"src":"27412:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12613,"name":"address","nodeType":"ElementaryTypeName","src":"27412:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12616,"mutability":"mutable","name":"p3","nameLocation":"27432:2:13","nodeType":"VariableDeclaration","scope":12631,"src":"27424:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12615,"name":"address","nodeType":"ElementaryTypeName","src":"27424:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"27393:42:13"},"returnParameters":{"id":12618,"nodeType":"ParameterList","parameters":[],"src":"27450:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12654,"nodeType":"FunctionDefinition","src":"27563:170:13","nodes":[],"body":{"id":12653,"nodeType":"Block","src":"27629:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c75696e742c75696e7429","id":12645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27679:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca9a3eb4a61979ee5cc1814fa8df2504ab7831148afaa3d4c17622578eab7412","typeString":"literal_string \"log(uint,address,uint,uint)\""},"value":"log(uint,address,uint,uint)"},{"id":12646,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12633,"src":"27710:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12647,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12635,"src":"27714:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12648,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12637,"src":"27718:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12649,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12639,"src":"27722:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ca9a3eb4a61979ee5cc1814fa8df2504ab7831148afaa3d4c17622578eab7412","typeString":"literal_string \"log(uint,address,uint,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12643,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27655:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27659:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27655:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27655:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12642,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"27639:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27639:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12652,"nodeType":"ExpressionStatement","src":"27639:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27572:3:13","parameters":{"id":12640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12633,"mutability":"mutable","name":"p0","nameLocation":"27581:2:13","nodeType":"VariableDeclaration","scope":12654,"src":"27576:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12632,"name":"uint","nodeType":"ElementaryTypeName","src":"27576:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12635,"mutability":"mutable","name":"p1","nameLocation":"27593:2:13","nodeType":"VariableDeclaration","scope":12654,"src":"27585:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12634,"name":"address","nodeType":"ElementaryTypeName","src":"27585:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12637,"mutability":"mutable","name":"p2","nameLocation":"27602:2:13","nodeType":"VariableDeclaration","scope":12654,"src":"27597:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12636,"name":"uint","nodeType":"ElementaryTypeName","src":"27597:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12639,"mutability":"mutable","name":"p3","nameLocation":"27611:2:13","nodeType":"VariableDeclaration","scope":12654,"src":"27606:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12638,"name":"uint","nodeType":"ElementaryTypeName","src":"27606:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27575:39:13"},"returnParameters":{"id":12641,"nodeType":"ParameterList","parameters":[],"src":"27629:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12677,"nodeType":"FunctionDefinition","src":"27739:181:13","nodes":[],"body":{"id":12676,"nodeType":"Block","src":"27814:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c75696e742c737472696e6729","id":12668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27864:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ed3bd282d1a27244fa4d3668aff783448c1a1864ff920057fa9f1c8144bb10b","typeString":"literal_string \"log(uint,address,uint,string)\""},"value":"log(uint,address,uint,string)"},{"id":12669,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12656,"src":"27897:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12670,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12658,"src":"27901:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12671,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12660,"src":"27905:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12672,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12662,"src":"27909:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3ed3bd282d1a27244fa4d3668aff783448c1a1864ff920057fa9f1c8144bb10b","typeString":"literal_string \"log(uint,address,uint,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12666,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27840:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27844:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27840:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27840:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12665,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"27824:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27824:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12675,"nodeType":"ExpressionStatement","src":"27824:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27748:3:13","parameters":{"id":12663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12656,"mutability":"mutable","name":"p0","nameLocation":"27757:2:13","nodeType":"VariableDeclaration","scope":12677,"src":"27752:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12655,"name":"uint","nodeType":"ElementaryTypeName","src":"27752:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12658,"mutability":"mutable","name":"p1","nameLocation":"27769:2:13","nodeType":"VariableDeclaration","scope":12677,"src":"27761:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12657,"name":"address","nodeType":"ElementaryTypeName","src":"27761:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12660,"mutability":"mutable","name":"p2","nameLocation":"27778:2:13","nodeType":"VariableDeclaration","scope":12677,"src":"27773:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12659,"name":"uint","nodeType":"ElementaryTypeName","src":"27773:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12662,"mutability":"mutable","name":"p3","nameLocation":"27796:2:13","nodeType":"VariableDeclaration","scope":12677,"src":"27782:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12661,"name":"string","nodeType":"ElementaryTypeName","src":"27782:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27751:48:13"},"returnParameters":{"id":12664,"nodeType":"ParameterList","parameters":[],"src":"27814:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12700,"nodeType":"FunctionDefinition","src":"27926:170:13","nodes":[],"body":{"id":12699,"nodeType":"Block","src":"27992:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c75696e742c626f6f6c29","id":12691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28042:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_19f67369d42bc0582d07ae744348ad46b79a6c16f354e3d3fb3c6bff2ecfa9f8","typeString":"literal_string \"log(uint,address,uint,bool)\""},"value":"log(uint,address,uint,bool)"},{"id":12692,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12679,"src":"28073:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12693,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12681,"src":"28077:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12694,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12683,"src":"28081:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12695,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12685,"src":"28085:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_19f67369d42bc0582d07ae744348ad46b79a6c16f354e3d3fb3c6bff2ecfa9f8","typeString":"literal_string \"log(uint,address,uint,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12689,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28018:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12690,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28022:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28018:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28018:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12688,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"28002:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28002:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12698,"nodeType":"ExpressionStatement","src":"28002:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27935:3:13","parameters":{"id":12686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12679,"mutability":"mutable","name":"p0","nameLocation":"27944:2:13","nodeType":"VariableDeclaration","scope":12700,"src":"27939:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12678,"name":"uint","nodeType":"ElementaryTypeName","src":"27939:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12681,"mutability":"mutable","name":"p1","nameLocation":"27956:2:13","nodeType":"VariableDeclaration","scope":12700,"src":"27948:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12680,"name":"address","nodeType":"ElementaryTypeName","src":"27948:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12683,"mutability":"mutable","name":"p2","nameLocation":"27965:2:13","nodeType":"VariableDeclaration","scope":12700,"src":"27960:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12682,"name":"uint","nodeType":"ElementaryTypeName","src":"27960:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12685,"mutability":"mutable","name":"p3","nameLocation":"27974:2:13","nodeType":"VariableDeclaration","scope":12700,"src":"27969:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12684,"name":"bool","nodeType":"ElementaryTypeName","src":"27969:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27938:39:13"},"returnParameters":{"id":12687,"nodeType":"ParameterList","parameters":[],"src":"27992:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12723,"nodeType":"FunctionDefinition","src":"28102:176:13","nodes":[],"body":{"id":12722,"nodeType":"Block","src":"28171:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c75696e742c6164647265737329","id":12714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28221:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_fdb2ecd415c75df8f66285a054607fa1335126fb1d8930dfc21744a3de7298e3","typeString":"literal_string \"log(uint,address,uint,address)\""},"value":"log(uint,address,uint,address)"},{"id":12715,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12702,"src":"28255:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12716,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12704,"src":"28259:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12717,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12706,"src":"28263:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12718,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12708,"src":"28267:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fdb2ecd415c75df8f66285a054607fa1335126fb1d8930dfc21744a3de7298e3","typeString":"literal_string \"log(uint,address,uint,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12712,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28197:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12713,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28201:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28197:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28197:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12711,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"28181:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28181:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12721,"nodeType":"ExpressionStatement","src":"28181:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28111:3:13","parameters":{"id":12709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12702,"mutability":"mutable","name":"p0","nameLocation":"28120:2:13","nodeType":"VariableDeclaration","scope":12723,"src":"28115:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12701,"name":"uint","nodeType":"ElementaryTypeName","src":"28115:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12704,"mutability":"mutable","name":"p1","nameLocation":"28132:2:13","nodeType":"VariableDeclaration","scope":12723,"src":"28124:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12703,"name":"address","nodeType":"ElementaryTypeName","src":"28124:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12706,"mutability":"mutable","name":"p2","nameLocation":"28141:2:13","nodeType":"VariableDeclaration","scope":12723,"src":"28136:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12705,"name":"uint","nodeType":"ElementaryTypeName","src":"28136:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12708,"mutability":"mutable","name":"p3","nameLocation":"28153:2:13","nodeType":"VariableDeclaration","scope":12723,"src":"28145:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12707,"name":"address","nodeType":"ElementaryTypeName","src":"28145:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28114:42:13"},"returnParameters":{"id":12710,"nodeType":"ParameterList","parameters":[],"src":"28171:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12746,"nodeType":"FunctionDefinition","src":"28284:181:13","nodes":[],"body":{"id":12745,"nodeType":"Block","src":"28359:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c737472696e672c75696e7429","id":12737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28409:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0c414e8ba2ea65b865dd0bf68b2357e81261b47f237c68a4a8a63051bbef2eb","typeString":"literal_string \"log(uint,address,string,uint)\""},"value":"log(uint,address,string,uint)"},{"id":12738,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12725,"src":"28442:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12739,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12727,"src":"28446:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12740,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12729,"src":"28450:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12741,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12731,"src":"28454:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0c414e8ba2ea65b865dd0bf68b2357e81261b47f237c68a4a8a63051bbef2eb","typeString":"literal_string \"log(uint,address,string,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12735,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28385:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28389:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28385:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28385:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12734,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"28369:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28369:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12744,"nodeType":"ExpressionStatement","src":"28369:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28293:3:13","parameters":{"id":12732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12725,"mutability":"mutable","name":"p0","nameLocation":"28302:2:13","nodeType":"VariableDeclaration","scope":12746,"src":"28297:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12724,"name":"uint","nodeType":"ElementaryTypeName","src":"28297:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12727,"mutability":"mutable","name":"p1","nameLocation":"28314:2:13","nodeType":"VariableDeclaration","scope":12746,"src":"28306:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12726,"name":"address","nodeType":"ElementaryTypeName","src":"28306:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12729,"mutability":"mutable","name":"p2","nameLocation":"28332:2:13","nodeType":"VariableDeclaration","scope":12746,"src":"28318:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12728,"name":"string","nodeType":"ElementaryTypeName","src":"28318:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12731,"mutability":"mutable","name":"p3","nameLocation":"28341:2:13","nodeType":"VariableDeclaration","scope":12746,"src":"28336:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12730,"name":"uint","nodeType":"ElementaryTypeName","src":"28336:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28296:48:13"},"returnParameters":{"id":12733,"nodeType":"ParameterList","parameters":[],"src":"28359:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12769,"nodeType":"FunctionDefinition","src":"28471:192:13","nodes":[],"body":{"id":12768,"nodeType":"Block","src":"28555:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c737472696e672c737472696e6729","id":12760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28605:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d778624e1d83269ce0415864bb54677b540f778c6b8503cf9035bc7517326f1","typeString":"literal_string \"log(uint,address,string,string)\""},"value":"log(uint,address,string,string)"},{"id":12761,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12748,"src":"28640:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12762,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12750,"src":"28644:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12763,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12752,"src":"28648:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12764,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12754,"src":"28652:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8d778624e1d83269ce0415864bb54677b540f778c6b8503cf9035bc7517326f1","typeString":"literal_string \"log(uint,address,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12758,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28581:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28585:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28581:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28581:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12757,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"28565:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28565:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12767,"nodeType":"ExpressionStatement","src":"28565:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28480:3:13","parameters":{"id":12755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12748,"mutability":"mutable","name":"p0","nameLocation":"28489:2:13","nodeType":"VariableDeclaration","scope":12769,"src":"28484:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12747,"name":"uint","nodeType":"ElementaryTypeName","src":"28484:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12750,"mutability":"mutable","name":"p1","nameLocation":"28501:2:13","nodeType":"VariableDeclaration","scope":12769,"src":"28493:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12749,"name":"address","nodeType":"ElementaryTypeName","src":"28493:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12752,"mutability":"mutable","name":"p2","nameLocation":"28519:2:13","nodeType":"VariableDeclaration","scope":12769,"src":"28505:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12751,"name":"string","nodeType":"ElementaryTypeName","src":"28505:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12754,"mutability":"mutable","name":"p3","nameLocation":"28537:2:13","nodeType":"VariableDeclaration","scope":12769,"src":"28523:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12753,"name":"string","nodeType":"ElementaryTypeName","src":"28523:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28483:57:13"},"returnParameters":{"id":12756,"nodeType":"ParameterList","parameters":[],"src":"28555:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12792,"nodeType":"FunctionDefinition","src":"28669:181:13","nodes":[],"body":{"id":12791,"nodeType":"Block","src":"28744:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c737472696e672c626f6f6c29","id":12783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28794:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_22a479a660b74b7598155f369ed227a5a93527fbdb04ff6f78fbf35fa23aacbf","typeString":"literal_string \"log(uint,address,string,bool)\""},"value":"log(uint,address,string,bool)"},{"id":12784,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12771,"src":"28827:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12785,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12773,"src":"28831:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12786,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12775,"src":"28835:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12787,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12777,"src":"28839:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_22a479a660b74b7598155f369ed227a5a93527fbdb04ff6f78fbf35fa23aacbf","typeString":"literal_string \"log(uint,address,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12781,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28770:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12782,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28774:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28770:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28770:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12780,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"28754:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28754:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12790,"nodeType":"ExpressionStatement","src":"28754:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28678:3:13","parameters":{"id":12778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12771,"mutability":"mutable","name":"p0","nameLocation":"28687:2:13","nodeType":"VariableDeclaration","scope":12792,"src":"28682:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12770,"name":"uint","nodeType":"ElementaryTypeName","src":"28682:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12773,"mutability":"mutable","name":"p1","nameLocation":"28699:2:13","nodeType":"VariableDeclaration","scope":12792,"src":"28691:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12772,"name":"address","nodeType":"ElementaryTypeName","src":"28691:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12775,"mutability":"mutable","name":"p2","nameLocation":"28717:2:13","nodeType":"VariableDeclaration","scope":12792,"src":"28703:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12774,"name":"string","nodeType":"ElementaryTypeName","src":"28703:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12777,"mutability":"mutable","name":"p3","nameLocation":"28726:2:13","nodeType":"VariableDeclaration","scope":12792,"src":"28721:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12776,"name":"bool","nodeType":"ElementaryTypeName","src":"28721:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28681:48:13"},"returnParameters":{"id":12779,"nodeType":"ParameterList","parameters":[],"src":"28744:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12815,"nodeType":"FunctionDefinition","src":"28856:187:13","nodes":[],"body":{"id":12814,"nodeType":"Block","src":"28934:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c737472696e672c6164647265737329","id":12806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28984:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbe58efddc067d74914c3479914810966ae688ac66ca2bbcae69cd9d0395796f","typeString":"literal_string \"log(uint,address,string,address)\""},"value":"log(uint,address,string,address)"},{"id":12807,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12794,"src":"29020:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12808,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12796,"src":"29024:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12809,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12798,"src":"29028:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12810,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12800,"src":"29032:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cbe58efddc067d74914c3479914810966ae688ac66ca2bbcae69cd9d0395796f","typeString":"literal_string \"log(uint,address,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12804,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28960:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28964:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28960:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28960:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12803,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"28944:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28944:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12813,"nodeType":"ExpressionStatement","src":"28944:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28865:3:13","parameters":{"id":12801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12794,"mutability":"mutable","name":"p0","nameLocation":"28874:2:13","nodeType":"VariableDeclaration","scope":12815,"src":"28869:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12793,"name":"uint","nodeType":"ElementaryTypeName","src":"28869:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12796,"mutability":"mutable","name":"p1","nameLocation":"28886:2:13","nodeType":"VariableDeclaration","scope":12815,"src":"28878:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12795,"name":"address","nodeType":"ElementaryTypeName","src":"28878:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12798,"mutability":"mutable","name":"p2","nameLocation":"28904:2:13","nodeType":"VariableDeclaration","scope":12815,"src":"28890:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12797,"name":"string","nodeType":"ElementaryTypeName","src":"28890:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12800,"mutability":"mutable","name":"p3","nameLocation":"28916:2:13","nodeType":"VariableDeclaration","scope":12815,"src":"28908:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12799,"name":"address","nodeType":"ElementaryTypeName","src":"28908:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28868:51:13"},"returnParameters":{"id":12802,"nodeType":"ParameterList","parameters":[],"src":"28934:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12838,"nodeType":"FunctionDefinition","src":"29049:170:13","nodes":[],"body":{"id":12837,"nodeType":"Block","src":"29115:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c626f6f6c2c75696e7429","id":12829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29165:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_7b08e8ebd6be8a04c54551194ba5143f1a555d43fe60d53843383a9915eeccb2","typeString":"literal_string \"log(uint,address,bool,uint)\""},"value":"log(uint,address,bool,uint)"},{"id":12830,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12817,"src":"29196:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12831,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12819,"src":"29200:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12832,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12821,"src":"29204:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12833,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12823,"src":"29208:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7b08e8ebd6be8a04c54551194ba5143f1a555d43fe60d53843383a9915eeccb2","typeString":"literal_string \"log(uint,address,bool,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12827,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29141:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29145:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29141:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29141:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12826,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"29125:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29125:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12836,"nodeType":"ExpressionStatement","src":"29125:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29058:3:13","parameters":{"id":12824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12817,"mutability":"mutable","name":"p0","nameLocation":"29067:2:13","nodeType":"VariableDeclaration","scope":12838,"src":"29062:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12816,"name":"uint","nodeType":"ElementaryTypeName","src":"29062:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12819,"mutability":"mutable","name":"p1","nameLocation":"29079:2:13","nodeType":"VariableDeclaration","scope":12838,"src":"29071:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12818,"name":"address","nodeType":"ElementaryTypeName","src":"29071:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12821,"mutability":"mutable","name":"p2","nameLocation":"29088:2:13","nodeType":"VariableDeclaration","scope":12838,"src":"29083:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12820,"name":"bool","nodeType":"ElementaryTypeName","src":"29083:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12823,"mutability":"mutable","name":"p3","nameLocation":"29097:2:13","nodeType":"VariableDeclaration","scope":12838,"src":"29092:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12822,"name":"uint","nodeType":"ElementaryTypeName","src":"29092:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29061:39:13"},"returnParameters":{"id":12825,"nodeType":"ParameterList","parameters":[],"src":"29115:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12861,"nodeType":"FunctionDefinition","src":"29225:181:13","nodes":[],"body":{"id":12860,"nodeType":"Block","src":"29300:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c626f6f6c2c737472696e6729","id":12852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29350:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_63f0e24221aeb6c531ea500a191ac35497bf48695fb29864fe57726a12d605c6","typeString":"literal_string \"log(uint,address,bool,string)\""},"value":"log(uint,address,bool,string)"},{"id":12853,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12840,"src":"29383:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12854,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12842,"src":"29387:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12855,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12844,"src":"29391:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12856,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12846,"src":"29395:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_63f0e24221aeb6c531ea500a191ac35497bf48695fb29864fe57726a12d605c6","typeString":"literal_string \"log(uint,address,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12850,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29326:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29330:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29326:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29326:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12849,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"29310:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29310:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12859,"nodeType":"ExpressionStatement","src":"29310:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29234:3:13","parameters":{"id":12847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12840,"mutability":"mutable","name":"p0","nameLocation":"29243:2:13","nodeType":"VariableDeclaration","scope":12861,"src":"29238:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12839,"name":"uint","nodeType":"ElementaryTypeName","src":"29238:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12842,"mutability":"mutable","name":"p1","nameLocation":"29255:2:13","nodeType":"VariableDeclaration","scope":12861,"src":"29247:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12841,"name":"address","nodeType":"ElementaryTypeName","src":"29247:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12844,"mutability":"mutable","name":"p2","nameLocation":"29264:2:13","nodeType":"VariableDeclaration","scope":12861,"src":"29259:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12843,"name":"bool","nodeType":"ElementaryTypeName","src":"29259:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12846,"mutability":"mutable","name":"p3","nameLocation":"29282:2:13","nodeType":"VariableDeclaration","scope":12861,"src":"29268:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12845,"name":"string","nodeType":"ElementaryTypeName","src":"29268:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29237:48:13"},"returnParameters":{"id":12848,"nodeType":"ParameterList","parameters":[],"src":"29300:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12884,"nodeType":"FunctionDefinition","src":"29412:170:13","nodes":[],"body":{"id":12883,"nodeType":"Block","src":"29478:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c626f6f6c2c626f6f6c29","id":12875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29528:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_7e27410dc86ab22a92f2a269c9cf538b707bde3ac248f933df1f4d0b76947d32","typeString":"literal_string \"log(uint,address,bool,bool)\""},"value":"log(uint,address,bool,bool)"},{"id":12876,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12863,"src":"29559:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12877,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12865,"src":"29563:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12878,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12867,"src":"29567:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12879,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12869,"src":"29571:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7e27410dc86ab22a92f2a269c9cf538b707bde3ac248f933df1f4d0b76947d32","typeString":"literal_string \"log(uint,address,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12873,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29504:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29508:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29504:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29504:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12872,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"29488:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29488:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12882,"nodeType":"ExpressionStatement","src":"29488:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29421:3:13","parameters":{"id":12870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12863,"mutability":"mutable","name":"p0","nameLocation":"29430:2:13","nodeType":"VariableDeclaration","scope":12884,"src":"29425:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12862,"name":"uint","nodeType":"ElementaryTypeName","src":"29425:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12865,"mutability":"mutable","name":"p1","nameLocation":"29442:2:13","nodeType":"VariableDeclaration","scope":12884,"src":"29434:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12864,"name":"address","nodeType":"ElementaryTypeName","src":"29434:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12867,"mutability":"mutable","name":"p2","nameLocation":"29451:2:13","nodeType":"VariableDeclaration","scope":12884,"src":"29446:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12866,"name":"bool","nodeType":"ElementaryTypeName","src":"29446:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12869,"mutability":"mutable","name":"p3","nameLocation":"29460:2:13","nodeType":"VariableDeclaration","scope":12884,"src":"29455:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12868,"name":"bool","nodeType":"ElementaryTypeName","src":"29455:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29424:39:13"},"returnParameters":{"id":12871,"nodeType":"ParameterList","parameters":[],"src":"29478:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12907,"nodeType":"FunctionDefinition","src":"29588:176:13","nodes":[],"body":{"id":12906,"nodeType":"Block","src":"29657:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c626f6f6c2c6164647265737329","id":12898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29707:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6313094a820841f3156e32d271c63cceded7f62875d471e1e87ef33ec252789","typeString":"literal_string \"log(uint,address,bool,address)\""},"value":"log(uint,address,bool,address)"},{"id":12899,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12886,"src":"29741:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12900,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12888,"src":"29745:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12901,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12890,"src":"29749:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12902,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12892,"src":"29753:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6313094a820841f3156e32d271c63cceded7f62875d471e1e87ef33ec252789","typeString":"literal_string \"log(uint,address,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12896,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29683:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29687:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29683:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29683:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12895,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"29667:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29667:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12905,"nodeType":"ExpressionStatement","src":"29667:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29597:3:13","parameters":{"id":12893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12886,"mutability":"mutable","name":"p0","nameLocation":"29606:2:13","nodeType":"VariableDeclaration","scope":12907,"src":"29601:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12885,"name":"uint","nodeType":"ElementaryTypeName","src":"29601:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12888,"mutability":"mutable","name":"p1","nameLocation":"29618:2:13","nodeType":"VariableDeclaration","scope":12907,"src":"29610:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12887,"name":"address","nodeType":"ElementaryTypeName","src":"29610:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12890,"mutability":"mutable","name":"p2","nameLocation":"29627:2:13","nodeType":"VariableDeclaration","scope":12907,"src":"29622:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12889,"name":"bool","nodeType":"ElementaryTypeName","src":"29622:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12892,"mutability":"mutable","name":"p3","nameLocation":"29639:2:13","nodeType":"VariableDeclaration","scope":12907,"src":"29631:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12891,"name":"address","nodeType":"ElementaryTypeName","src":"29631:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29600:42:13"},"returnParameters":{"id":12894,"nodeType":"ParameterList","parameters":[],"src":"29657:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12930,"nodeType":"FunctionDefinition","src":"29770:176:13","nodes":[],"body":{"id":12929,"nodeType":"Block","src":"29839:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c616464726573732c75696e7429","id":12921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29889:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a3cbf9603c94c357c6f62b7a32789d9ca5caa81518d1277c9ca986a5650734b","typeString":"literal_string \"log(uint,address,address,uint)\""},"value":"log(uint,address,address,uint)"},{"id":12922,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12909,"src":"29923:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12923,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12911,"src":"29927:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12924,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12913,"src":"29931:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12925,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12915,"src":"29935:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9a3cbf9603c94c357c6f62b7a32789d9ca5caa81518d1277c9ca986a5650734b","typeString":"literal_string \"log(uint,address,address,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12919,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29865:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29869:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29865:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29865:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12918,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"29849:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29849:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12928,"nodeType":"ExpressionStatement","src":"29849:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29779:3:13","parameters":{"id":12916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12909,"mutability":"mutable","name":"p0","nameLocation":"29788:2:13","nodeType":"VariableDeclaration","scope":12930,"src":"29783:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12908,"name":"uint","nodeType":"ElementaryTypeName","src":"29783:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12911,"mutability":"mutable","name":"p1","nameLocation":"29800:2:13","nodeType":"VariableDeclaration","scope":12930,"src":"29792:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12910,"name":"address","nodeType":"ElementaryTypeName","src":"29792:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12913,"mutability":"mutable","name":"p2","nameLocation":"29812:2:13","nodeType":"VariableDeclaration","scope":12930,"src":"29804:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12912,"name":"address","nodeType":"ElementaryTypeName","src":"29804:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12915,"mutability":"mutable","name":"p3","nameLocation":"29821:2:13","nodeType":"VariableDeclaration","scope":12930,"src":"29816:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12914,"name":"uint","nodeType":"ElementaryTypeName","src":"29816:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29782:42:13"},"returnParameters":{"id":12917,"nodeType":"ParameterList","parameters":[],"src":"29839:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12953,"nodeType":"FunctionDefinition","src":"29952:187:13","nodes":[],"body":{"id":12952,"nodeType":"Block","src":"30030:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c616464726573732c737472696e6729","id":12944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30080:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_7943dc6627d308affd474fe50b563bcfbf09518236383b806f11730459213622","typeString":"literal_string \"log(uint,address,address,string)\""},"value":"log(uint,address,address,string)"},{"id":12945,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12932,"src":"30116:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12946,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12934,"src":"30120:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12947,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12936,"src":"30124:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12948,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12938,"src":"30128:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7943dc6627d308affd474fe50b563bcfbf09518236383b806f11730459213622","typeString":"literal_string \"log(uint,address,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12942,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30056:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30060:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30056:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30056:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12941,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"30040:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30040:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12951,"nodeType":"ExpressionStatement","src":"30040:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29961:3:13","parameters":{"id":12939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12932,"mutability":"mutable","name":"p0","nameLocation":"29970:2:13","nodeType":"VariableDeclaration","scope":12953,"src":"29965:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12931,"name":"uint","nodeType":"ElementaryTypeName","src":"29965:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12934,"mutability":"mutable","name":"p1","nameLocation":"29982:2:13","nodeType":"VariableDeclaration","scope":12953,"src":"29974:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12933,"name":"address","nodeType":"ElementaryTypeName","src":"29974:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12936,"mutability":"mutable","name":"p2","nameLocation":"29994:2:13","nodeType":"VariableDeclaration","scope":12953,"src":"29986:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12935,"name":"address","nodeType":"ElementaryTypeName","src":"29986:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12938,"mutability":"mutable","name":"p3","nameLocation":"30012:2:13","nodeType":"VariableDeclaration","scope":12953,"src":"29998:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12937,"name":"string","nodeType":"ElementaryTypeName","src":"29998:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29964:51:13"},"returnParameters":{"id":12940,"nodeType":"ParameterList","parameters":[],"src":"30030:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12976,"nodeType":"FunctionDefinition","src":"30145:176:13","nodes":[],"body":{"id":12975,"nodeType":"Block","src":"30214:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c616464726573732c626f6f6c29","id":12967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30264:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_01550b04ea9916da7bc495d1b5ca5c4bd8d92ef3a98e2cca5a948cec5011f38c","typeString":"literal_string \"log(uint,address,address,bool)\""},"value":"log(uint,address,address,bool)"},{"id":12968,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12955,"src":"30298:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12969,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12957,"src":"30302:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12970,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12959,"src":"30306:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12971,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12961,"src":"30310:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_01550b04ea9916da7bc495d1b5ca5c4bd8d92ef3a98e2cca5a948cec5011f38c","typeString":"literal_string \"log(uint,address,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12965,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30240:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30244:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30240:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30240:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12964,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"30224:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30224:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12974,"nodeType":"ExpressionStatement","src":"30224:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30154:3:13","parameters":{"id":12962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12955,"mutability":"mutable","name":"p0","nameLocation":"30163:2:13","nodeType":"VariableDeclaration","scope":12976,"src":"30158:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12954,"name":"uint","nodeType":"ElementaryTypeName","src":"30158:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12957,"mutability":"mutable","name":"p1","nameLocation":"30175:2:13","nodeType":"VariableDeclaration","scope":12976,"src":"30167:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12956,"name":"address","nodeType":"ElementaryTypeName","src":"30167:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12959,"mutability":"mutable","name":"p2","nameLocation":"30187:2:13","nodeType":"VariableDeclaration","scope":12976,"src":"30179:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12958,"name":"address","nodeType":"ElementaryTypeName","src":"30179:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12961,"mutability":"mutable","name":"p3","nameLocation":"30196:2:13","nodeType":"VariableDeclaration","scope":12976,"src":"30191:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12960,"name":"bool","nodeType":"ElementaryTypeName","src":"30191:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30157:42:13"},"returnParameters":{"id":12963,"nodeType":"ParameterList","parameters":[],"src":"30214:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":12999,"nodeType":"FunctionDefinition","src":"30327:182:13","nodes":[],"body":{"id":12998,"nodeType":"Block","src":"30399:110:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c616464726573732c6164647265737329","id":12990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30449:35:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_554745f9e6550eea6000ea2febc94de95d453100d5d60359e62cd398b366bfc4","typeString":"literal_string \"log(uint,address,address,address)\""},"value":"log(uint,address,address,address)"},{"id":12991,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12978,"src":"30486:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12992,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12980,"src":"30490:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12993,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12982,"src":"30494:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12994,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12984,"src":"30498:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_554745f9e6550eea6000ea2febc94de95d453100d5d60359e62cd398b366bfc4","typeString":"literal_string \"log(uint,address,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12988,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30425:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30429:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30425:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30425:76:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12987,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"30409:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":12996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30409:93:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12997,"nodeType":"ExpressionStatement","src":"30409:93:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30336:3:13","parameters":{"id":12985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12978,"mutability":"mutable","name":"p0","nameLocation":"30345:2:13","nodeType":"VariableDeclaration","scope":12999,"src":"30340:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12977,"name":"uint","nodeType":"ElementaryTypeName","src":"30340:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12980,"mutability":"mutable","name":"p1","nameLocation":"30357:2:13","nodeType":"VariableDeclaration","scope":12999,"src":"30349:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12979,"name":"address","nodeType":"ElementaryTypeName","src":"30349:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12982,"mutability":"mutable","name":"p2","nameLocation":"30369:2:13","nodeType":"VariableDeclaration","scope":12999,"src":"30361:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12981,"name":"address","nodeType":"ElementaryTypeName","src":"30361:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12984,"mutability":"mutable","name":"p3","nameLocation":"30381:2:13","nodeType":"VariableDeclaration","scope":12999,"src":"30373:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12983,"name":"address","nodeType":"ElementaryTypeName","src":"30373:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"30339:45:13"},"returnParameters":{"id":12986,"nodeType":"ParameterList","parameters":[],"src":"30399:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13022,"nodeType":"FunctionDefinition","src":"30515:175:13","nodes":[],"body":{"id":13021,"nodeType":"Block","src":"30587:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c75696e742c75696e7429","id":13013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30637:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_08ee5666d6bd329d27af528e563bb238dedf631fe471effe31c7123dcb5164f2","typeString":"literal_string \"log(string,uint,uint,uint)\""},"value":"log(string,uint,uint,uint)"},{"id":13014,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13001,"src":"30667:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13015,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13003,"src":"30671:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13016,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13005,"src":"30675:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13017,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13007,"src":"30679:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_08ee5666d6bd329d27af528e563bb238dedf631fe471effe31c7123dcb5164f2","typeString":"literal_string \"log(string,uint,uint,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13011,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30613:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30617:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30613:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30613:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13010,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"30597:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30597:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13020,"nodeType":"ExpressionStatement","src":"30597:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30524:3:13","parameters":{"id":13008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13001,"mutability":"mutable","name":"p0","nameLocation":"30542:2:13","nodeType":"VariableDeclaration","scope":13022,"src":"30528:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13000,"name":"string","nodeType":"ElementaryTypeName","src":"30528:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13003,"mutability":"mutable","name":"p1","nameLocation":"30551:2:13","nodeType":"VariableDeclaration","scope":13022,"src":"30546:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13002,"name":"uint","nodeType":"ElementaryTypeName","src":"30546:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13005,"mutability":"mutable","name":"p2","nameLocation":"30560:2:13","nodeType":"VariableDeclaration","scope":13022,"src":"30555:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13004,"name":"uint","nodeType":"ElementaryTypeName","src":"30555:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13007,"mutability":"mutable","name":"p3","nameLocation":"30569:2:13","nodeType":"VariableDeclaration","scope":13022,"src":"30564:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13006,"name":"uint","nodeType":"ElementaryTypeName","src":"30564:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30527:45:13"},"returnParameters":{"id":13009,"nodeType":"ParameterList","parameters":[],"src":"30587:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13045,"nodeType":"FunctionDefinition","src":"30696:186:13","nodes":[],"body":{"id":13044,"nodeType":"Block","src":"30777:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c75696e742c737472696e6729","id":13036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30827:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a54ed4bdd39588715cd10f1b9730ac9f0db064013c8dc11e216fa2ef3a5948b8","typeString":"literal_string \"log(string,uint,uint,string)\""},"value":"log(string,uint,uint,string)"},{"id":13037,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13024,"src":"30859:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13038,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13026,"src":"30863:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13039,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13028,"src":"30867:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13040,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13030,"src":"30871:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a54ed4bdd39588715cd10f1b9730ac9f0db064013c8dc11e216fa2ef3a5948b8","typeString":"literal_string \"log(string,uint,uint,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13034,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30803:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30807:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30803:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30803:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13033,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"30787:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30787:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13043,"nodeType":"ExpressionStatement","src":"30787:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30705:3:13","parameters":{"id":13031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13024,"mutability":"mutable","name":"p0","nameLocation":"30723:2:13","nodeType":"VariableDeclaration","scope":13045,"src":"30709:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13023,"name":"string","nodeType":"ElementaryTypeName","src":"30709:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13026,"mutability":"mutable","name":"p1","nameLocation":"30732:2:13","nodeType":"VariableDeclaration","scope":13045,"src":"30727:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13025,"name":"uint","nodeType":"ElementaryTypeName","src":"30727:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13028,"mutability":"mutable","name":"p2","nameLocation":"30741:2:13","nodeType":"VariableDeclaration","scope":13045,"src":"30736:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13027,"name":"uint","nodeType":"ElementaryTypeName","src":"30736:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13030,"mutability":"mutable","name":"p3","nameLocation":"30759:2:13","nodeType":"VariableDeclaration","scope":13045,"src":"30745:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13029,"name":"string","nodeType":"ElementaryTypeName","src":"30745:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30708:54:13"},"returnParameters":{"id":13032,"nodeType":"ParameterList","parameters":[],"src":"30777:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13068,"nodeType":"FunctionDefinition","src":"30888:175:13","nodes":[],"body":{"id":13067,"nodeType":"Block","src":"30960:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c75696e742c626f6f6c29","id":13059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31010:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_f73c7e3dc5b5cecd5787e08e359612e609c17649291b138c8f184ee441526f2d","typeString":"literal_string \"log(string,uint,uint,bool)\""},"value":"log(string,uint,uint,bool)"},{"id":13060,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13047,"src":"31040:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13061,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13049,"src":"31044:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13062,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13051,"src":"31048:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13063,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13053,"src":"31052:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f73c7e3dc5b5cecd5787e08e359612e609c17649291b138c8f184ee441526f2d","typeString":"literal_string \"log(string,uint,uint,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13057,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30986:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30990:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30986:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30986:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13056,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"30970:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30970:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13066,"nodeType":"ExpressionStatement","src":"30970:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30897:3:13","parameters":{"id":13054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13047,"mutability":"mutable","name":"p0","nameLocation":"30915:2:13","nodeType":"VariableDeclaration","scope":13068,"src":"30901:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13046,"name":"string","nodeType":"ElementaryTypeName","src":"30901:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13049,"mutability":"mutable","name":"p1","nameLocation":"30924:2:13","nodeType":"VariableDeclaration","scope":13068,"src":"30919:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13048,"name":"uint","nodeType":"ElementaryTypeName","src":"30919:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13051,"mutability":"mutable","name":"p2","nameLocation":"30933:2:13","nodeType":"VariableDeclaration","scope":13068,"src":"30928:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13050,"name":"uint","nodeType":"ElementaryTypeName","src":"30928:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13053,"mutability":"mutable","name":"p3","nameLocation":"30942:2:13","nodeType":"VariableDeclaration","scope":13068,"src":"30937:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13052,"name":"bool","nodeType":"ElementaryTypeName","src":"30937:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30900:45:13"},"returnParameters":{"id":13055,"nodeType":"ParameterList","parameters":[],"src":"30960:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13091,"nodeType":"FunctionDefinition","src":"31069:181:13","nodes":[],"body":{"id":13090,"nodeType":"Block","src":"31144:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c75696e742c6164647265737329","id":13082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31194:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_bed728bf5bf9afc41a2cff142cfc289808bbba64cbab683d8e6689e6f6f14abc","typeString":"literal_string \"log(string,uint,uint,address)\""},"value":"log(string,uint,uint,address)"},{"id":13083,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13070,"src":"31227:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13084,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13072,"src":"31231:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13085,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13074,"src":"31235:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13086,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13076,"src":"31239:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bed728bf5bf9afc41a2cff142cfc289808bbba64cbab683d8e6689e6f6f14abc","typeString":"literal_string \"log(string,uint,uint,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13080,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31170:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31174:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31170:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31170:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13079,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"31154:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31154:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13089,"nodeType":"ExpressionStatement","src":"31154:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31078:3:13","parameters":{"id":13077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13070,"mutability":"mutable","name":"p0","nameLocation":"31096:2:13","nodeType":"VariableDeclaration","scope":13091,"src":"31082:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13069,"name":"string","nodeType":"ElementaryTypeName","src":"31082:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13072,"mutability":"mutable","name":"p1","nameLocation":"31105:2:13","nodeType":"VariableDeclaration","scope":13091,"src":"31100:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13071,"name":"uint","nodeType":"ElementaryTypeName","src":"31100:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13074,"mutability":"mutable","name":"p2","nameLocation":"31114:2:13","nodeType":"VariableDeclaration","scope":13091,"src":"31109:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13073,"name":"uint","nodeType":"ElementaryTypeName","src":"31109:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13076,"mutability":"mutable","name":"p3","nameLocation":"31126:2:13","nodeType":"VariableDeclaration","scope":13091,"src":"31118:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13075,"name":"address","nodeType":"ElementaryTypeName","src":"31118:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31081:48:13"},"returnParameters":{"id":13078,"nodeType":"ParameterList","parameters":[],"src":"31144:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13114,"nodeType":"FunctionDefinition","src":"31256:186:13","nodes":[],"body":{"id":13113,"nodeType":"Block","src":"31337:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c737472696e672c75696e7429","id":13105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31387:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0c4b225a555b1198e8b1e32117070e759cad9a7266d99901b8a7fd2482d0e2f","typeString":"literal_string \"log(string,uint,string,uint)\""},"value":"log(string,uint,string,uint)"},{"id":13106,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13093,"src":"31419:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13107,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13095,"src":"31423:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13108,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13097,"src":"31427:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13109,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13099,"src":"31431:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0c4b225a555b1198e8b1e32117070e759cad9a7266d99901b8a7fd2482d0e2f","typeString":"literal_string \"log(string,uint,string,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13103,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31363:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31367:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31363:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31363:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13102,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"31347:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31347:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13112,"nodeType":"ExpressionStatement","src":"31347:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31265:3:13","parameters":{"id":13100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13093,"mutability":"mutable","name":"p0","nameLocation":"31283:2:13","nodeType":"VariableDeclaration","scope":13114,"src":"31269:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13092,"name":"string","nodeType":"ElementaryTypeName","src":"31269:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13095,"mutability":"mutable","name":"p1","nameLocation":"31292:2:13","nodeType":"VariableDeclaration","scope":13114,"src":"31287:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13094,"name":"uint","nodeType":"ElementaryTypeName","src":"31287:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13097,"mutability":"mutable","name":"p2","nameLocation":"31310:2:13","nodeType":"VariableDeclaration","scope":13114,"src":"31296:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13096,"name":"string","nodeType":"ElementaryTypeName","src":"31296:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13099,"mutability":"mutable","name":"p3","nameLocation":"31319:2:13","nodeType":"VariableDeclaration","scope":13114,"src":"31314:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13098,"name":"uint","nodeType":"ElementaryTypeName","src":"31314:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31268:54:13"},"returnParameters":{"id":13101,"nodeType":"ParameterList","parameters":[],"src":"31337:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13137,"nodeType":"FunctionDefinition","src":"31448:197:13","nodes":[],"body":{"id":13136,"nodeType":"Block","src":"31538:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c737472696e672c737472696e6729","id":13128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31588:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c98dae27db048edb14bb31b4326832aa1fb54be52caaf49d1cecb59aa297c07","typeString":"literal_string \"log(string,uint,string,string)\""},"value":"log(string,uint,string,string)"},{"id":13129,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13116,"src":"31622:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13130,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13118,"src":"31626:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13131,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13120,"src":"31630:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13132,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13122,"src":"31634:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6c98dae27db048edb14bb31b4326832aa1fb54be52caaf49d1cecb59aa297c07","typeString":"literal_string \"log(string,uint,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13126,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31564:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31568:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31564:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31564:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13125,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"31548:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31548:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13135,"nodeType":"ExpressionStatement","src":"31548:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31457:3:13","parameters":{"id":13123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13116,"mutability":"mutable","name":"p0","nameLocation":"31475:2:13","nodeType":"VariableDeclaration","scope":13137,"src":"31461:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13115,"name":"string","nodeType":"ElementaryTypeName","src":"31461:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13118,"mutability":"mutable","name":"p1","nameLocation":"31484:2:13","nodeType":"VariableDeclaration","scope":13137,"src":"31479:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13117,"name":"uint","nodeType":"ElementaryTypeName","src":"31479:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13120,"mutability":"mutable","name":"p2","nameLocation":"31502:2:13","nodeType":"VariableDeclaration","scope":13137,"src":"31488:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13119,"name":"string","nodeType":"ElementaryTypeName","src":"31488:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13122,"mutability":"mutable","name":"p3","nameLocation":"31520:2:13","nodeType":"VariableDeclaration","scope":13137,"src":"31506:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13121,"name":"string","nodeType":"ElementaryTypeName","src":"31506:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31460:63:13"},"returnParameters":{"id":13124,"nodeType":"ParameterList","parameters":[],"src":"31538:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13160,"nodeType":"FunctionDefinition","src":"31651:186:13","nodes":[],"body":{"id":13159,"nodeType":"Block","src":"31732:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c737472696e672c626f6f6c29","id":13151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31782:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_e99f82cf29cb9d7551a843a55617f00569395570d3a9816be530f7c6197ec7c8","typeString":"literal_string \"log(string,uint,string,bool)\""},"value":"log(string,uint,string,bool)"},{"id":13152,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13139,"src":"31814:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13153,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13141,"src":"31818:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13154,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13143,"src":"31822:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13155,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"31826:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e99f82cf29cb9d7551a843a55617f00569395570d3a9816be530f7c6197ec7c8","typeString":"literal_string \"log(string,uint,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13149,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31758:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31762:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31758:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31758:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13148,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"31742:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31742:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13158,"nodeType":"ExpressionStatement","src":"31742:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31660:3:13","parameters":{"id":13146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13139,"mutability":"mutable","name":"p0","nameLocation":"31678:2:13","nodeType":"VariableDeclaration","scope":13160,"src":"31664:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13138,"name":"string","nodeType":"ElementaryTypeName","src":"31664:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13141,"mutability":"mutable","name":"p1","nameLocation":"31687:2:13","nodeType":"VariableDeclaration","scope":13160,"src":"31682:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13140,"name":"uint","nodeType":"ElementaryTypeName","src":"31682:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13143,"mutability":"mutable","name":"p2","nameLocation":"31705:2:13","nodeType":"VariableDeclaration","scope":13160,"src":"31691:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13142,"name":"string","nodeType":"ElementaryTypeName","src":"31691:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13145,"mutability":"mutable","name":"p3","nameLocation":"31714:2:13","nodeType":"VariableDeclaration","scope":13160,"src":"31709:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13144,"name":"bool","nodeType":"ElementaryTypeName","src":"31709:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"31663:54:13"},"returnParameters":{"id":13147,"nodeType":"ParameterList","parameters":[],"src":"31732:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13183,"nodeType":"FunctionDefinition","src":"31843:192:13","nodes":[],"body":{"id":13182,"nodeType":"Block","src":"31927:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c737472696e672c6164647265737329","id":13174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31977:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_bb7235e9977380af5de9932c5c28e18d22806b4b0a15ac7e98086e795e59b31c","typeString":"literal_string \"log(string,uint,string,address)\""},"value":"log(string,uint,string,address)"},{"id":13175,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13162,"src":"32012:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13176,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13164,"src":"32016:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13177,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13166,"src":"32020:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13178,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13168,"src":"32024:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bb7235e9977380af5de9932c5c28e18d22806b4b0a15ac7e98086e795e59b31c","typeString":"literal_string \"log(string,uint,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13172,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31953:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31957:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31953:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31953:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13171,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"31937:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31937:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13181,"nodeType":"ExpressionStatement","src":"31937:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31852:3:13","parameters":{"id":13169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13162,"mutability":"mutable","name":"p0","nameLocation":"31870:2:13","nodeType":"VariableDeclaration","scope":13183,"src":"31856:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13161,"name":"string","nodeType":"ElementaryTypeName","src":"31856:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13164,"mutability":"mutable","name":"p1","nameLocation":"31879:2:13","nodeType":"VariableDeclaration","scope":13183,"src":"31874:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13163,"name":"uint","nodeType":"ElementaryTypeName","src":"31874:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13166,"mutability":"mutable","name":"p2","nameLocation":"31897:2:13","nodeType":"VariableDeclaration","scope":13183,"src":"31883:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13165,"name":"string","nodeType":"ElementaryTypeName","src":"31883:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13168,"mutability":"mutable","name":"p3","nameLocation":"31909:2:13","nodeType":"VariableDeclaration","scope":13183,"src":"31901:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13167,"name":"address","nodeType":"ElementaryTypeName","src":"31901:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31855:57:13"},"returnParameters":{"id":13170,"nodeType":"ParameterList","parameters":[],"src":"31927:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13206,"nodeType":"FunctionDefinition","src":"32041:175:13","nodes":[],"body":{"id":13205,"nodeType":"Block","src":"32113:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c626f6f6c2c75696e7429","id":13197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32163:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_550e6ef516f1b3b5be9432b068022af744a919b7f9554b6605ddb59dad27875f","typeString":"literal_string \"log(string,uint,bool,uint)\""},"value":"log(string,uint,bool,uint)"},{"id":13198,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13185,"src":"32193:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13199,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13187,"src":"32197:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13200,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13189,"src":"32201:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13201,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13191,"src":"32205:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_550e6ef516f1b3b5be9432b068022af744a919b7f9554b6605ddb59dad27875f","typeString":"literal_string \"log(string,uint,bool,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13195,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32139:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32143:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32139:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32139:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13194,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"32123:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32123:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13204,"nodeType":"ExpressionStatement","src":"32123:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32050:3:13","parameters":{"id":13192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13185,"mutability":"mutable","name":"p0","nameLocation":"32068:2:13","nodeType":"VariableDeclaration","scope":13206,"src":"32054:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13184,"name":"string","nodeType":"ElementaryTypeName","src":"32054:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13187,"mutability":"mutable","name":"p1","nameLocation":"32077:2:13","nodeType":"VariableDeclaration","scope":13206,"src":"32072:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13186,"name":"uint","nodeType":"ElementaryTypeName","src":"32072:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13189,"mutability":"mutable","name":"p2","nameLocation":"32086:2:13","nodeType":"VariableDeclaration","scope":13206,"src":"32081:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13188,"name":"bool","nodeType":"ElementaryTypeName","src":"32081:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13191,"mutability":"mutable","name":"p3","nameLocation":"32095:2:13","nodeType":"VariableDeclaration","scope":13206,"src":"32090:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13190,"name":"uint","nodeType":"ElementaryTypeName","src":"32090:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32053:45:13"},"returnParameters":{"id":13193,"nodeType":"ParameterList","parameters":[],"src":"32113:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13229,"nodeType":"FunctionDefinition","src":"32222:186:13","nodes":[],"body":{"id":13228,"nodeType":"Block","src":"32303:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c626f6f6c2c737472696e6729","id":13220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32353:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_76cc6064a225b36730abdd64aa9dcb74a19c97e79a6eaa7e7a7381b59d8b3f68","typeString":"literal_string \"log(string,uint,bool,string)\""},"value":"log(string,uint,bool,string)"},{"id":13221,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13208,"src":"32385:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13222,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13210,"src":"32389:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13223,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13212,"src":"32393:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13224,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13214,"src":"32397:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_76cc6064a225b36730abdd64aa9dcb74a19c97e79a6eaa7e7a7381b59d8b3f68","typeString":"literal_string \"log(string,uint,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13218,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32329:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32333:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32329:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32329:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13217,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"32313:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32313:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13227,"nodeType":"ExpressionStatement","src":"32313:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32231:3:13","parameters":{"id":13215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13208,"mutability":"mutable","name":"p0","nameLocation":"32249:2:13","nodeType":"VariableDeclaration","scope":13229,"src":"32235:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13207,"name":"string","nodeType":"ElementaryTypeName","src":"32235:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13210,"mutability":"mutable","name":"p1","nameLocation":"32258:2:13","nodeType":"VariableDeclaration","scope":13229,"src":"32253:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13209,"name":"uint","nodeType":"ElementaryTypeName","src":"32253:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13212,"mutability":"mutable","name":"p2","nameLocation":"32267:2:13","nodeType":"VariableDeclaration","scope":13229,"src":"32262:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13211,"name":"bool","nodeType":"ElementaryTypeName","src":"32262:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13214,"mutability":"mutable","name":"p3","nameLocation":"32285:2:13","nodeType":"VariableDeclaration","scope":13229,"src":"32271:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13213,"name":"string","nodeType":"ElementaryTypeName","src":"32271:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32234:54:13"},"returnParameters":{"id":13216,"nodeType":"ParameterList","parameters":[],"src":"32303:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13252,"nodeType":"FunctionDefinition","src":"32414:175:13","nodes":[],"body":{"id":13251,"nodeType":"Block","src":"32486:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c626f6f6c2c626f6f6c29","id":13243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32536:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_e37ff3d07873d5117abd74fe9be70fdadf355b74510a6f7507b0edd4a0032d7f","typeString":"literal_string \"log(string,uint,bool,bool)\""},"value":"log(string,uint,bool,bool)"},{"id":13244,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13231,"src":"32566:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13245,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13233,"src":"32570:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13246,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13235,"src":"32574:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13247,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13237,"src":"32578:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e37ff3d07873d5117abd74fe9be70fdadf355b74510a6f7507b0edd4a0032d7f","typeString":"literal_string \"log(string,uint,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13241,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32512:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32516:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32512:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32512:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13240,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"32496:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32496:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13250,"nodeType":"ExpressionStatement","src":"32496:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32423:3:13","parameters":{"id":13238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13231,"mutability":"mutable","name":"p0","nameLocation":"32441:2:13","nodeType":"VariableDeclaration","scope":13252,"src":"32427:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13230,"name":"string","nodeType":"ElementaryTypeName","src":"32427:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13233,"mutability":"mutable","name":"p1","nameLocation":"32450:2:13","nodeType":"VariableDeclaration","scope":13252,"src":"32445:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13232,"name":"uint","nodeType":"ElementaryTypeName","src":"32445:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13235,"mutability":"mutable","name":"p2","nameLocation":"32459:2:13","nodeType":"VariableDeclaration","scope":13252,"src":"32454:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13234,"name":"bool","nodeType":"ElementaryTypeName","src":"32454:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13237,"mutability":"mutable","name":"p3","nameLocation":"32468:2:13","nodeType":"VariableDeclaration","scope":13252,"src":"32463:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13236,"name":"bool","nodeType":"ElementaryTypeName","src":"32463:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"32426:45:13"},"returnParameters":{"id":13239,"nodeType":"ParameterList","parameters":[],"src":"32486:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13275,"nodeType":"FunctionDefinition","src":"32595:181:13","nodes":[],"body":{"id":13274,"nodeType":"Block","src":"32670:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c626f6f6c2c6164647265737329","id":13266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32720:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_e5549d91ec2998207f70463fe94a71d0edc39b13b219ff8feb87dd990a616539","typeString":"literal_string \"log(string,uint,bool,address)\""},"value":"log(string,uint,bool,address)"},{"id":13267,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13254,"src":"32753:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13268,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13256,"src":"32757:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13269,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13258,"src":"32761:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13270,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13260,"src":"32765:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e5549d91ec2998207f70463fe94a71d0edc39b13b219ff8feb87dd990a616539","typeString":"literal_string \"log(string,uint,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13264,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32696:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32700:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32696:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32696:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13263,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"32680:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32680:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13273,"nodeType":"ExpressionStatement","src":"32680:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32604:3:13","parameters":{"id":13261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13254,"mutability":"mutable","name":"p0","nameLocation":"32622:2:13","nodeType":"VariableDeclaration","scope":13275,"src":"32608:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13253,"name":"string","nodeType":"ElementaryTypeName","src":"32608:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13256,"mutability":"mutable","name":"p1","nameLocation":"32631:2:13","nodeType":"VariableDeclaration","scope":13275,"src":"32626:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13255,"name":"uint","nodeType":"ElementaryTypeName","src":"32626:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13258,"mutability":"mutable","name":"p2","nameLocation":"32640:2:13","nodeType":"VariableDeclaration","scope":13275,"src":"32635:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13257,"name":"bool","nodeType":"ElementaryTypeName","src":"32635:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13260,"mutability":"mutable","name":"p3","nameLocation":"32652:2:13","nodeType":"VariableDeclaration","scope":13275,"src":"32644:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13259,"name":"address","nodeType":"ElementaryTypeName","src":"32644:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32607:48:13"},"returnParameters":{"id":13262,"nodeType":"ParameterList","parameters":[],"src":"32670:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13298,"nodeType":"FunctionDefinition","src":"32782:181:13","nodes":[],"body":{"id":13297,"nodeType":"Block","src":"32857:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c616464726573732c75696e7429","id":13289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32907:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_58497afe9e509136f5cf2fb1db9876437d9cbd769be5985b518ff094427e4f75","typeString":"literal_string \"log(string,uint,address,uint)\""},"value":"log(string,uint,address,uint)"},{"id":13290,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13277,"src":"32940:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13291,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13279,"src":"32944:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13292,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13281,"src":"32948:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13293,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13283,"src":"32952:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_58497afe9e509136f5cf2fb1db9876437d9cbd769be5985b518ff094427e4f75","typeString":"literal_string \"log(string,uint,address,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13287,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32883:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32887:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32883:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32883:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13286,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"32867:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32867:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13296,"nodeType":"ExpressionStatement","src":"32867:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32791:3:13","parameters":{"id":13284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13277,"mutability":"mutable","name":"p0","nameLocation":"32809:2:13","nodeType":"VariableDeclaration","scope":13298,"src":"32795:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13276,"name":"string","nodeType":"ElementaryTypeName","src":"32795:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13279,"mutability":"mutable","name":"p1","nameLocation":"32818:2:13","nodeType":"VariableDeclaration","scope":13298,"src":"32813:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13278,"name":"uint","nodeType":"ElementaryTypeName","src":"32813:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13281,"mutability":"mutable","name":"p2","nameLocation":"32830:2:13","nodeType":"VariableDeclaration","scope":13298,"src":"32822:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13280,"name":"address","nodeType":"ElementaryTypeName","src":"32822:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13283,"mutability":"mutable","name":"p3","nameLocation":"32839:2:13","nodeType":"VariableDeclaration","scope":13298,"src":"32834:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13282,"name":"uint","nodeType":"ElementaryTypeName","src":"32834:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32794:48:13"},"returnParameters":{"id":13285,"nodeType":"ParameterList","parameters":[],"src":"32857:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13321,"nodeType":"FunctionDefinition","src":"32969:192:13","nodes":[],"body":{"id":13320,"nodeType":"Block","src":"33053:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c616464726573732c737472696e6729","id":13312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33103:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_3254c2e85e824e7dd0b3e2e602f95218ed23a331406e197386693086d91053c0","typeString":"literal_string \"log(string,uint,address,string)\""},"value":"log(string,uint,address,string)"},{"id":13313,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13300,"src":"33138:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13314,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13302,"src":"33142:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13315,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13304,"src":"33146:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13316,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13306,"src":"33150:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3254c2e85e824e7dd0b3e2e602f95218ed23a331406e197386693086d91053c0","typeString":"literal_string \"log(string,uint,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13310,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33079:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13311,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33083:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33079:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33079:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13309,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"33063:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33063:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13319,"nodeType":"ExpressionStatement","src":"33063:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32978:3:13","parameters":{"id":13307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13300,"mutability":"mutable","name":"p0","nameLocation":"32996:2:13","nodeType":"VariableDeclaration","scope":13321,"src":"32982:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13299,"name":"string","nodeType":"ElementaryTypeName","src":"32982:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13302,"mutability":"mutable","name":"p1","nameLocation":"33005:2:13","nodeType":"VariableDeclaration","scope":13321,"src":"33000:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13301,"name":"uint","nodeType":"ElementaryTypeName","src":"33000:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13304,"mutability":"mutable","name":"p2","nameLocation":"33017:2:13","nodeType":"VariableDeclaration","scope":13321,"src":"33009:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13303,"name":"address","nodeType":"ElementaryTypeName","src":"33009:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13306,"mutability":"mutable","name":"p3","nameLocation":"33035:2:13","nodeType":"VariableDeclaration","scope":13321,"src":"33021:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13305,"name":"string","nodeType":"ElementaryTypeName","src":"33021:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32981:57:13"},"returnParameters":{"id":13308,"nodeType":"ParameterList","parameters":[],"src":"33053:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13344,"nodeType":"FunctionDefinition","src":"33167:181:13","nodes":[],"body":{"id":13343,"nodeType":"Block","src":"33242:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c616464726573732c626f6f6c29","id":13335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33292:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_1106a8f7a9fdb0743cc8f33bcf28da92f358b488bfc5eb2426dcc116571bae10","typeString":"literal_string \"log(string,uint,address,bool)\""},"value":"log(string,uint,address,bool)"},{"id":13336,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13323,"src":"33325:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13337,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13325,"src":"33329:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13338,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13327,"src":"33333:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13339,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13329,"src":"33337:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1106a8f7a9fdb0743cc8f33bcf28da92f358b488bfc5eb2426dcc116571bae10","typeString":"literal_string \"log(string,uint,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13333,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33268:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33272:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33268:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33268:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13332,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"33252:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33252:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13342,"nodeType":"ExpressionStatement","src":"33252:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33176:3:13","parameters":{"id":13330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13323,"mutability":"mutable","name":"p0","nameLocation":"33194:2:13","nodeType":"VariableDeclaration","scope":13344,"src":"33180:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13322,"name":"string","nodeType":"ElementaryTypeName","src":"33180:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13325,"mutability":"mutable","name":"p1","nameLocation":"33203:2:13","nodeType":"VariableDeclaration","scope":13344,"src":"33198:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13324,"name":"uint","nodeType":"ElementaryTypeName","src":"33198:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13327,"mutability":"mutable","name":"p2","nameLocation":"33215:2:13","nodeType":"VariableDeclaration","scope":13344,"src":"33207:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13326,"name":"address","nodeType":"ElementaryTypeName","src":"33207:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13329,"mutability":"mutable","name":"p3","nameLocation":"33224:2:13","nodeType":"VariableDeclaration","scope":13344,"src":"33219:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13328,"name":"bool","nodeType":"ElementaryTypeName","src":"33219:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33179:48:13"},"returnParameters":{"id":13331,"nodeType":"ParameterList","parameters":[],"src":"33242:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13367,"nodeType":"FunctionDefinition","src":"33354:187:13","nodes":[],"body":{"id":13366,"nodeType":"Block","src":"33432:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c616464726573732c6164647265737329","id":13358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33482:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_eac892812ad5b43e056a005de5f4269f3430ecb19d3374f0e27d055022fbb381","typeString":"literal_string \"log(string,uint,address,address)\""},"value":"log(string,uint,address,address)"},{"id":13359,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13346,"src":"33518:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13360,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13348,"src":"33522:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13361,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13350,"src":"33526:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13362,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13352,"src":"33530:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eac892812ad5b43e056a005de5f4269f3430ecb19d3374f0e27d055022fbb381","typeString":"literal_string \"log(string,uint,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13356,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33458:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33462:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33458:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33458:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13355,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"33442:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33442:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13365,"nodeType":"ExpressionStatement","src":"33442:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33363:3:13","parameters":{"id":13353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13346,"mutability":"mutable","name":"p0","nameLocation":"33381:2:13","nodeType":"VariableDeclaration","scope":13367,"src":"33367:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13345,"name":"string","nodeType":"ElementaryTypeName","src":"33367:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13348,"mutability":"mutable","name":"p1","nameLocation":"33390:2:13","nodeType":"VariableDeclaration","scope":13367,"src":"33385:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13347,"name":"uint","nodeType":"ElementaryTypeName","src":"33385:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13350,"mutability":"mutable","name":"p2","nameLocation":"33402:2:13","nodeType":"VariableDeclaration","scope":13367,"src":"33394:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13349,"name":"address","nodeType":"ElementaryTypeName","src":"33394:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13352,"mutability":"mutable","name":"p3","nameLocation":"33414:2:13","nodeType":"VariableDeclaration","scope":13367,"src":"33406:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13351,"name":"address","nodeType":"ElementaryTypeName","src":"33406:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33366:51:13"},"returnParameters":{"id":13354,"nodeType":"ParameterList","parameters":[],"src":"33432:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13390,"nodeType":"FunctionDefinition","src":"33547:186:13","nodes":[],"body":{"id":13389,"nodeType":"Block","src":"33628:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e742c75696e7429","id":13381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33678:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5cf17d093c9068e0703e037cea1f6c3048599508dc7985106a94aa34c08c926","typeString":"literal_string \"log(string,string,uint,uint)\""},"value":"log(string,string,uint,uint)"},{"id":13382,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13369,"src":"33710:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13383,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13371,"src":"33714:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13384,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13373,"src":"33718:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13385,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13375,"src":"33722:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d5cf17d093c9068e0703e037cea1f6c3048599508dc7985106a94aa34c08c926","typeString":"literal_string \"log(string,string,uint,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13379,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33654:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33658:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33654:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33654:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13378,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"33638:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33638:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13388,"nodeType":"ExpressionStatement","src":"33638:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33556:3:13","parameters":{"id":13376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13369,"mutability":"mutable","name":"p0","nameLocation":"33574:2:13","nodeType":"VariableDeclaration","scope":13390,"src":"33560:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13368,"name":"string","nodeType":"ElementaryTypeName","src":"33560:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13371,"mutability":"mutable","name":"p1","nameLocation":"33592:2:13","nodeType":"VariableDeclaration","scope":13390,"src":"33578:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13370,"name":"string","nodeType":"ElementaryTypeName","src":"33578:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13373,"mutability":"mutable","name":"p2","nameLocation":"33601:2:13","nodeType":"VariableDeclaration","scope":13390,"src":"33596:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13372,"name":"uint","nodeType":"ElementaryTypeName","src":"33596:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13375,"mutability":"mutable","name":"p3","nameLocation":"33610:2:13","nodeType":"VariableDeclaration","scope":13390,"src":"33605:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13374,"name":"uint","nodeType":"ElementaryTypeName","src":"33605:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33559:54:13"},"returnParameters":{"id":13377,"nodeType":"ParameterList","parameters":[],"src":"33628:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13413,"nodeType":"FunctionDefinition","src":"33739:197:13","nodes":[],"body":{"id":13412,"nodeType":"Block","src":"33829:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e742c737472696e6729","id":13404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33879:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d142cdddf40ab944834474e14a37534e67dcf2f6ffd68fd3d894f907fb76a0a","typeString":"literal_string \"log(string,string,uint,string)\""},"value":"log(string,string,uint,string)"},{"id":13405,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13392,"src":"33913:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13406,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13394,"src":"33917:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13407,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13396,"src":"33921:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13408,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13398,"src":"33925:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8d142cdddf40ab944834474e14a37534e67dcf2f6ffd68fd3d894f907fb76a0a","typeString":"literal_string \"log(string,string,uint,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13402,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33855:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33859:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33855:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33855:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13401,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"33839:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33839:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13411,"nodeType":"ExpressionStatement","src":"33839:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33748:3:13","parameters":{"id":13399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13392,"mutability":"mutable","name":"p0","nameLocation":"33766:2:13","nodeType":"VariableDeclaration","scope":13413,"src":"33752:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13391,"name":"string","nodeType":"ElementaryTypeName","src":"33752:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13394,"mutability":"mutable","name":"p1","nameLocation":"33784:2:13","nodeType":"VariableDeclaration","scope":13413,"src":"33770:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13393,"name":"string","nodeType":"ElementaryTypeName","src":"33770:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13396,"mutability":"mutable","name":"p2","nameLocation":"33793:2:13","nodeType":"VariableDeclaration","scope":13413,"src":"33788:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13395,"name":"uint","nodeType":"ElementaryTypeName","src":"33788:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13398,"mutability":"mutable","name":"p3","nameLocation":"33811:2:13","nodeType":"VariableDeclaration","scope":13413,"src":"33797:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13397,"name":"string","nodeType":"ElementaryTypeName","src":"33797:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"33751:63:13"},"returnParameters":{"id":13400,"nodeType":"ParameterList","parameters":[],"src":"33829:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13436,"nodeType":"FunctionDefinition","src":"33942:186:13","nodes":[],"body":{"id":13435,"nodeType":"Block","src":"34023:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e742c626f6f6c29","id":13427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34073:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_e65658ca6578795ac405c3487ab68ec21d76f9a79d734a9ab869db5d96b4556b","typeString":"literal_string \"log(string,string,uint,bool)\""},"value":"log(string,string,uint,bool)"},{"id":13428,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13415,"src":"34105:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13429,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13417,"src":"34109:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13430,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13419,"src":"34113:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13431,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13421,"src":"34117:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e65658ca6578795ac405c3487ab68ec21d76f9a79d734a9ab869db5d96b4556b","typeString":"literal_string \"log(string,string,uint,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13425,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34049:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34053:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34049:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34049:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13424,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"34033:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34033:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13434,"nodeType":"ExpressionStatement","src":"34033:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33951:3:13","parameters":{"id":13422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13415,"mutability":"mutable","name":"p0","nameLocation":"33969:2:13","nodeType":"VariableDeclaration","scope":13436,"src":"33955:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13414,"name":"string","nodeType":"ElementaryTypeName","src":"33955:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13417,"mutability":"mutable","name":"p1","nameLocation":"33987:2:13","nodeType":"VariableDeclaration","scope":13436,"src":"33973:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13416,"name":"string","nodeType":"ElementaryTypeName","src":"33973:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13419,"mutability":"mutable","name":"p2","nameLocation":"33996:2:13","nodeType":"VariableDeclaration","scope":13436,"src":"33991:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13418,"name":"uint","nodeType":"ElementaryTypeName","src":"33991:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13421,"mutability":"mutable","name":"p3","nameLocation":"34005:2:13","nodeType":"VariableDeclaration","scope":13436,"src":"34000:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13420,"name":"bool","nodeType":"ElementaryTypeName","src":"34000:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33954:54:13"},"returnParameters":{"id":13423,"nodeType":"ParameterList","parameters":[],"src":"34023:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13459,"nodeType":"FunctionDefinition","src":"34134:192:13","nodes":[],"body":{"id":13458,"nodeType":"Block","src":"34218:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e742c6164647265737329","id":13450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34268:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d4f46805293f3e84ba6dbfe353f76b3d1f1cfb2ff1e8024fb2adb45e2b7a128","typeString":"literal_string \"log(string,string,uint,address)\""},"value":"log(string,string,uint,address)"},{"id":13451,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13438,"src":"34303:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13452,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13440,"src":"34307:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13453,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13442,"src":"34311:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13454,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13444,"src":"34315:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d4f46805293f3e84ba6dbfe353f76b3d1f1cfb2ff1e8024fb2adb45e2b7a128","typeString":"literal_string \"log(string,string,uint,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13448,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34244:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13449,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34248:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34244:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34244:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13447,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"34228:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34228:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13457,"nodeType":"ExpressionStatement","src":"34228:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34143:3:13","parameters":{"id":13445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13438,"mutability":"mutable","name":"p0","nameLocation":"34161:2:13","nodeType":"VariableDeclaration","scope":13459,"src":"34147:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13437,"name":"string","nodeType":"ElementaryTypeName","src":"34147:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13440,"mutability":"mutable","name":"p1","nameLocation":"34179:2:13","nodeType":"VariableDeclaration","scope":13459,"src":"34165:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13439,"name":"string","nodeType":"ElementaryTypeName","src":"34165:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13442,"mutability":"mutable","name":"p2","nameLocation":"34188:2:13","nodeType":"VariableDeclaration","scope":13459,"src":"34183:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13441,"name":"uint","nodeType":"ElementaryTypeName","src":"34183:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13444,"mutability":"mutable","name":"p3","nameLocation":"34200:2:13","nodeType":"VariableDeclaration","scope":13459,"src":"34192:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13443,"name":"address","nodeType":"ElementaryTypeName","src":"34192:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34146:57:13"},"returnParameters":{"id":13446,"nodeType":"ParameterList","parameters":[],"src":"34218:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13482,"nodeType":"FunctionDefinition","src":"34332:197:13","nodes":[],"body":{"id":13481,"nodeType":"Block","src":"34422:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c75696e7429","id":13473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34472:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_9fd009f5f31a16d665d9be327a4a2b17dc428108ae31e46ab875e747b5ee155f","typeString":"literal_string \"log(string,string,string,uint)\""},"value":"log(string,string,string,uint)"},{"id":13474,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13461,"src":"34506:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13475,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13463,"src":"34510:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13476,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13465,"src":"34514:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13477,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"34518:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9fd009f5f31a16d665d9be327a4a2b17dc428108ae31e46ab875e747b5ee155f","typeString":"literal_string \"log(string,string,string,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13471,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34448:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34452:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34448:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34448:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13470,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"34432:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34432:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13480,"nodeType":"ExpressionStatement","src":"34432:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34341:3:13","parameters":{"id":13468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13461,"mutability":"mutable","name":"p0","nameLocation":"34359:2:13","nodeType":"VariableDeclaration","scope":13482,"src":"34345:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13460,"name":"string","nodeType":"ElementaryTypeName","src":"34345:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13463,"mutability":"mutable","name":"p1","nameLocation":"34377:2:13","nodeType":"VariableDeclaration","scope":13482,"src":"34363:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13462,"name":"string","nodeType":"ElementaryTypeName","src":"34363:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13465,"mutability":"mutable","name":"p2","nameLocation":"34395:2:13","nodeType":"VariableDeclaration","scope":13482,"src":"34381:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13464,"name":"string","nodeType":"ElementaryTypeName","src":"34381:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13467,"mutability":"mutable","name":"p3","nameLocation":"34404:2:13","nodeType":"VariableDeclaration","scope":13482,"src":"34399:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13466,"name":"uint","nodeType":"ElementaryTypeName","src":"34399:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34344:63:13"},"returnParameters":{"id":13469,"nodeType":"ParameterList","parameters":[],"src":"34422:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13505,"nodeType":"FunctionDefinition","src":"34535:208:13","nodes":[],"body":{"id":13504,"nodeType":"Block","src":"34634:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c737472696e6729","id":13496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34684:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe","typeString":"literal_string \"log(string,string,string,string)\""},"value":"log(string,string,string,string)"},{"id":13497,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13484,"src":"34720:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13498,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13486,"src":"34724:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13499,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13488,"src":"34728:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13500,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13490,"src":"34732:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe","typeString":"literal_string \"log(string,string,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13494,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34660:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34664:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34660:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34660:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13493,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"34644:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34644:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13503,"nodeType":"ExpressionStatement","src":"34644:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34544:3:13","parameters":{"id":13491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13484,"mutability":"mutable","name":"p0","nameLocation":"34562:2:13","nodeType":"VariableDeclaration","scope":13505,"src":"34548:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13483,"name":"string","nodeType":"ElementaryTypeName","src":"34548:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13486,"mutability":"mutable","name":"p1","nameLocation":"34580:2:13","nodeType":"VariableDeclaration","scope":13505,"src":"34566:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13485,"name":"string","nodeType":"ElementaryTypeName","src":"34566:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13488,"mutability":"mutable","name":"p2","nameLocation":"34598:2:13","nodeType":"VariableDeclaration","scope":13505,"src":"34584:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13487,"name":"string","nodeType":"ElementaryTypeName","src":"34584:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13490,"mutability":"mutable","name":"p3","nameLocation":"34616:2:13","nodeType":"VariableDeclaration","scope":13505,"src":"34602:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13489,"name":"string","nodeType":"ElementaryTypeName","src":"34602:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"34547:72:13"},"returnParameters":{"id":13492,"nodeType":"ParameterList","parameters":[],"src":"34634:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13528,"nodeType":"FunctionDefinition","src":"34749:197:13","nodes":[],"body":{"id":13527,"nodeType":"Block","src":"34839:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c626f6f6c29","id":13519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34889:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332","typeString":"literal_string \"log(string,string,string,bool)\""},"value":"log(string,string,string,bool)"},{"id":13520,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13507,"src":"34923:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13521,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13509,"src":"34927:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13522,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13511,"src":"34931:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13523,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13513,"src":"34935:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332","typeString":"literal_string \"log(string,string,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13517,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34865:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34869:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34865:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34865:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13516,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"34849:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34849:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13526,"nodeType":"ExpressionStatement","src":"34849:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34758:3:13","parameters":{"id":13514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13507,"mutability":"mutable","name":"p0","nameLocation":"34776:2:13","nodeType":"VariableDeclaration","scope":13528,"src":"34762:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13506,"name":"string","nodeType":"ElementaryTypeName","src":"34762:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13509,"mutability":"mutable","name":"p1","nameLocation":"34794:2:13","nodeType":"VariableDeclaration","scope":13528,"src":"34780:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13508,"name":"string","nodeType":"ElementaryTypeName","src":"34780:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13511,"mutability":"mutable","name":"p2","nameLocation":"34812:2:13","nodeType":"VariableDeclaration","scope":13528,"src":"34798:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13510,"name":"string","nodeType":"ElementaryTypeName","src":"34798:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13513,"mutability":"mutable","name":"p3","nameLocation":"34821:2:13","nodeType":"VariableDeclaration","scope":13528,"src":"34816:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13512,"name":"bool","nodeType":"ElementaryTypeName","src":"34816:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"34761:63:13"},"returnParameters":{"id":13515,"nodeType":"ParameterList","parameters":[],"src":"34839:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13551,"nodeType":"FunctionDefinition","src":"34952:203:13","nodes":[],"body":{"id":13550,"nodeType":"Block","src":"35045:110:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c6164647265737329","id":13542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35095:35:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16","typeString":"literal_string \"log(string,string,string,address)\""},"value":"log(string,string,string,address)"},{"id":13543,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13530,"src":"35132:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13544,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13532,"src":"35136:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13545,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13534,"src":"35140:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13546,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13536,"src":"35144:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16","typeString":"literal_string \"log(string,string,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13540,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35071:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35075:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35071:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35071:76:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13539,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"35055:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35055:93:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13549,"nodeType":"ExpressionStatement","src":"35055:93:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34961:3:13","parameters":{"id":13537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13530,"mutability":"mutable","name":"p0","nameLocation":"34979:2:13","nodeType":"VariableDeclaration","scope":13551,"src":"34965:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13529,"name":"string","nodeType":"ElementaryTypeName","src":"34965:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13532,"mutability":"mutable","name":"p1","nameLocation":"34997:2:13","nodeType":"VariableDeclaration","scope":13551,"src":"34983:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13531,"name":"string","nodeType":"ElementaryTypeName","src":"34983:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13534,"mutability":"mutable","name":"p2","nameLocation":"35015:2:13","nodeType":"VariableDeclaration","scope":13551,"src":"35001:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13533,"name":"string","nodeType":"ElementaryTypeName","src":"35001:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13536,"mutability":"mutable","name":"p3","nameLocation":"35027:2:13","nodeType":"VariableDeclaration","scope":13551,"src":"35019:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13535,"name":"address","nodeType":"ElementaryTypeName","src":"35019:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34964:66:13"},"returnParameters":{"id":13538,"nodeType":"ParameterList","parameters":[],"src":"35045:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13574,"nodeType":"FunctionDefinition","src":"35161:186:13","nodes":[],"body":{"id":13573,"nodeType":"Block","src":"35242:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c75696e7429","id":13565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35292:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_86818a7aa9bc994aa800ce554e865f0047fd8aaa8799a458e8fea2db0986c5c1","typeString":"literal_string \"log(string,string,bool,uint)\""},"value":"log(string,string,bool,uint)"},{"id":13566,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13553,"src":"35324:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13567,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13555,"src":"35328:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13568,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13557,"src":"35332:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13569,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13559,"src":"35336:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_86818a7aa9bc994aa800ce554e865f0047fd8aaa8799a458e8fea2db0986c5c1","typeString":"literal_string \"log(string,string,bool,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13563,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35268:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35272:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35268:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35268:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13562,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"35252:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35252:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13572,"nodeType":"ExpressionStatement","src":"35252:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35170:3:13","parameters":{"id":13560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13553,"mutability":"mutable","name":"p0","nameLocation":"35188:2:13","nodeType":"VariableDeclaration","scope":13574,"src":"35174:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13552,"name":"string","nodeType":"ElementaryTypeName","src":"35174:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13555,"mutability":"mutable","name":"p1","nameLocation":"35206:2:13","nodeType":"VariableDeclaration","scope":13574,"src":"35192:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13554,"name":"string","nodeType":"ElementaryTypeName","src":"35192:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13557,"mutability":"mutable","name":"p2","nameLocation":"35215:2:13","nodeType":"VariableDeclaration","scope":13574,"src":"35210:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13556,"name":"bool","nodeType":"ElementaryTypeName","src":"35210:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13559,"mutability":"mutable","name":"p3","nameLocation":"35224:2:13","nodeType":"VariableDeclaration","scope":13574,"src":"35219:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13558,"name":"uint","nodeType":"ElementaryTypeName","src":"35219:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35173:54:13"},"returnParameters":{"id":13561,"nodeType":"ParameterList","parameters":[],"src":"35242:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13597,"nodeType":"FunctionDefinition","src":"35353:197:13","nodes":[],"body":{"id":13596,"nodeType":"Block","src":"35443:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c737472696e6729","id":13588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35493:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b","typeString":"literal_string \"log(string,string,bool,string)\""},"value":"log(string,string,bool,string)"},{"id":13589,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13576,"src":"35527:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13590,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13578,"src":"35531:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13591,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13580,"src":"35535:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13592,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13582,"src":"35539:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b","typeString":"literal_string \"log(string,string,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13586,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35469:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13587,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35473:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35469:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35469:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13585,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"35453:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35453:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13595,"nodeType":"ExpressionStatement","src":"35453:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35362:3:13","parameters":{"id":13583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13576,"mutability":"mutable","name":"p0","nameLocation":"35380:2:13","nodeType":"VariableDeclaration","scope":13597,"src":"35366:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13575,"name":"string","nodeType":"ElementaryTypeName","src":"35366:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13578,"mutability":"mutable","name":"p1","nameLocation":"35398:2:13","nodeType":"VariableDeclaration","scope":13597,"src":"35384:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13577,"name":"string","nodeType":"ElementaryTypeName","src":"35384:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13580,"mutability":"mutable","name":"p2","nameLocation":"35407:2:13","nodeType":"VariableDeclaration","scope":13597,"src":"35402:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13579,"name":"bool","nodeType":"ElementaryTypeName","src":"35402:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13582,"mutability":"mutable","name":"p3","nameLocation":"35425:2:13","nodeType":"VariableDeclaration","scope":13597,"src":"35411:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13581,"name":"string","nodeType":"ElementaryTypeName","src":"35411:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35365:63:13"},"returnParameters":{"id":13584,"nodeType":"ParameterList","parameters":[],"src":"35443:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13620,"nodeType":"FunctionDefinition","src":"35556:186:13","nodes":[],"body":{"id":13619,"nodeType":"Block","src":"35637:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c626f6f6c29","id":13611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35687:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10","typeString":"literal_string \"log(string,string,bool,bool)\""},"value":"log(string,string,bool,bool)"},{"id":13612,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13599,"src":"35719:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13613,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13601,"src":"35723:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13614,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13603,"src":"35727:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13615,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13605,"src":"35731:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10","typeString":"literal_string \"log(string,string,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13609,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35663:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35667:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35663:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35663:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13608,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"35647:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35647:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13618,"nodeType":"ExpressionStatement","src":"35647:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35565:3:13","parameters":{"id":13606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13599,"mutability":"mutable","name":"p0","nameLocation":"35583:2:13","nodeType":"VariableDeclaration","scope":13620,"src":"35569:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13598,"name":"string","nodeType":"ElementaryTypeName","src":"35569:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13601,"mutability":"mutable","name":"p1","nameLocation":"35601:2:13","nodeType":"VariableDeclaration","scope":13620,"src":"35587:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13600,"name":"string","nodeType":"ElementaryTypeName","src":"35587:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13603,"mutability":"mutable","name":"p2","nameLocation":"35610:2:13","nodeType":"VariableDeclaration","scope":13620,"src":"35605:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13602,"name":"bool","nodeType":"ElementaryTypeName","src":"35605:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13605,"mutability":"mutable","name":"p3","nameLocation":"35619:2:13","nodeType":"VariableDeclaration","scope":13620,"src":"35614:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13604,"name":"bool","nodeType":"ElementaryTypeName","src":"35614:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"35568:54:13"},"returnParameters":{"id":13607,"nodeType":"ParameterList","parameters":[],"src":"35637:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13643,"nodeType":"FunctionDefinition","src":"35748:192:13","nodes":[],"body":{"id":13642,"nodeType":"Block","src":"35832:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c6164647265737329","id":13634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35882:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d","typeString":"literal_string \"log(string,string,bool,address)\""},"value":"log(string,string,bool,address)"},{"id":13635,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13622,"src":"35917:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13636,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13624,"src":"35921:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13637,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13626,"src":"35925:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13638,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13628,"src":"35929:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d","typeString":"literal_string \"log(string,string,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13632,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35858:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35862:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35858:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35858:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13631,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"35842:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35842:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13641,"nodeType":"ExpressionStatement","src":"35842:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35757:3:13","parameters":{"id":13629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13622,"mutability":"mutable","name":"p0","nameLocation":"35775:2:13","nodeType":"VariableDeclaration","scope":13643,"src":"35761:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13621,"name":"string","nodeType":"ElementaryTypeName","src":"35761:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13624,"mutability":"mutable","name":"p1","nameLocation":"35793:2:13","nodeType":"VariableDeclaration","scope":13643,"src":"35779:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13623,"name":"string","nodeType":"ElementaryTypeName","src":"35779:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13626,"mutability":"mutable","name":"p2","nameLocation":"35802:2:13","nodeType":"VariableDeclaration","scope":13643,"src":"35797:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13625,"name":"bool","nodeType":"ElementaryTypeName","src":"35797:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13628,"mutability":"mutable","name":"p3","nameLocation":"35814:2:13","nodeType":"VariableDeclaration","scope":13643,"src":"35806:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13627,"name":"address","nodeType":"ElementaryTypeName","src":"35806:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35760:57:13"},"returnParameters":{"id":13630,"nodeType":"ParameterList","parameters":[],"src":"35832:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13666,"nodeType":"FunctionDefinition","src":"35946:192:13","nodes":[],"body":{"id":13665,"nodeType":"Block","src":"36030:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c75696e7429","id":13657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36080:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a81a56a33247069679e8b6a463a3b29deb4b1020ce6e03b978132074cad28c2","typeString":"literal_string \"log(string,string,address,uint)\""},"value":"log(string,string,address,uint)"},{"id":13658,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13645,"src":"36115:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13659,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13647,"src":"36119:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13660,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13649,"src":"36123:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13661,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13651,"src":"36127:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a81a56a33247069679e8b6a463a3b29deb4b1020ce6e03b978132074cad28c2","typeString":"literal_string \"log(string,string,address,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13655,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36056:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36060:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36056:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36056:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13654,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"36040:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36040:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13664,"nodeType":"ExpressionStatement","src":"36040:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35955:3:13","parameters":{"id":13652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13645,"mutability":"mutable","name":"p0","nameLocation":"35973:2:13","nodeType":"VariableDeclaration","scope":13666,"src":"35959:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13644,"name":"string","nodeType":"ElementaryTypeName","src":"35959:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13647,"mutability":"mutable","name":"p1","nameLocation":"35991:2:13","nodeType":"VariableDeclaration","scope":13666,"src":"35977:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13646,"name":"string","nodeType":"ElementaryTypeName","src":"35977:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13649,"mutability":"mutable","name":"p2","nameLocation":"36003:2:13","nodeType":"VariableDeclaration","scope":13666,"src":"35995:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13648,"name":"address","nodeType":"ElementaryTypeName","src":"35995:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13651,"mutability":"mutable","name":"p3","nameLocation":"36012:2:13","nodeType":"VariableDeclaration","scope":13666,"src":"36007:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13650,"name":"uint","nodeType":"ElementaryTypeName","src":"36007:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35958:57:13"},"returnParameters":{"id":13653,"nodeType":"ParameterList","parameters":[],"src":"36030:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13689,"nodeType":"FunctionDefinition","src":"36144:203:13","nodes":[],"body":{"id":13688,"nodeType":"Block","src":"36237:110:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c737472696e6729","id":13680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36287:35:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6","typeString":"literal_string \"log(string,string,address,string)\""},"value":"log(string,string,address,string)"},{"id":13681,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13668,"src":"36324:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13682,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13670,"src":"36328:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13683,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13672,"src":"36332:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13684,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13674,"src":"36336:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6","typeString":"literal_string \"log(string,string,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13678,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36263:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36267:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36263:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36263:76:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13677,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"36247:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36247:93:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13687,"nodeType":"ExpressionStatement","src":"36247:93:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36153:3:13","parameters":{"id":13675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13668,"mutability":"mutable","name":"p0","nameLocation":"36171:2:13","nodeType":"VariableDeclaration","scope":13689,"src":"36157:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13667,"name":"string","nodeType":"ElementaryTypeName","src":"36157:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13670,"mutability":"mutable","name":"p1","nameLocation":"36189:2:13","nodeType":"VariableDeclaration","scope":13689,"src":"36175:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13669,"name":"string","nodeType":"ElementaryTypeName","src":"36175:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13672,"mutability":"mutable","name":"p2","nameLocation":"36201:2:13","nodeType":"VariableDeclaration","scope":13689,"src":"36193:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13671,"name":"address","nodeType":"ElementaryTypeName","src":"36193:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13674,"mutability":"mutable","name":"p3","nameLocation":"36219:2:13","nodeType":"VariableDeclaration","scope":13689,"src":"36205:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13673,"name":"string","nodeType":"ElementaryTypeName","src":"36205:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36156:66:13"},"returnParameters":{"id":13676,"nodeType":"ParameterList","parameters":[],"src":"36237:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13712,"nodeType":"FunctionDefinition","src":"36353:192:13","nodes":[],"body":{"id":13711,"nodeType":"Block","src":"36437:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c626f6f6c29","id":13703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36487:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63","typeString":"literal_string \"log(string,string,address,bool)\""},"value":"log(string,string,address,bool)"},{"id":13704,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13691,"src":"36522:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13705,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13693,"src":"36526:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13706,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13695,"src":"36530:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13707,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13697,"src":"36534:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63","typeString":"literal_string \"log(string,string,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13701,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36463:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36467:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36463:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36463:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13700,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"36447:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36447:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13710,"nodeType":"ExpressionStatement","src":"36447:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36362:3:13","parameters":{"id":13698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13691,"mutability":"mutable","name":"p0","nameLocation":"36380:2:13","nodeType":"VariableDeclaration","scope":13712,"src":"36366:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13690,"name":"string","nodeType":"ElementaryTypeName","src":"36366:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13693,"mutability":"mutable","name":"p1","nameLocation":"36398:2:13","nodeType":"VariableDeclaration","scope":13712,"src":"36384:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13692,"name":"string","nodeType":"ElementaryTypeName","src":"36384:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13695,"mutability":"mutable","name":"p2","nameLocation":"36410:2:13","nodeType":"VariableDeclaration","scope":13712,"src":"36402:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13694,"name":"address","nodeType":"ElementaryTypeName","src":"36402:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13697,"mutability":"mutable","name":"p3","nameLocation":"36419:2:13","nodeType":"VariableDeclaration","scope":13712,"src":"36414:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13696,"name":"bool","nodeType":"ElementaryTypeName","src":"36414:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"36365:57:13"},"returnParameters":{"id":13699,"nodeType":"ParameterList","parameters":[],"src":"36437:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13735,"nodeType":"FunctionDefinition","src":"36551:198:13","nodes":[],"body":{"id":13734,"nodeType":"Block","src":"36638:111:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c6164647265737329","id":13726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36688:36:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d","typeString":"literal_string \"log(string,string,address,address)\""},"value":"log(string,string,address,address)"},{"id":13727,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13714,"src":"36726:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13728,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13716,"src":"36730:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13729,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13718,"src":"36734:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13730,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13720,"src":"36738:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d","typeString":"literal_string \"log(string,string,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13724,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36664:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13725,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36668:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36664:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36664:77:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13723,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"36648:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36648:94:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13733,"nodeType":"ExpressionStatement","src":"36648:94:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36560:3:13","parameters":{"id":13721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13714,"mutability":"mutable","name":"p0","nameLocation":"36578:2:13","nodeType":"VariableDeclaration","scope":13735,"src":"36564:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13713,"name":"string","nodeType":"ElementaryTypeName","src":"36564:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13716,"mutability":"mutable","name":"p1","nameLocation":"36596:2:13","nodeType":"VariableDeclaration","scope":13735,"src":"36582:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13715,"name":"string","nodeType":"ElementaryTypeName","src":"36582:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13718,"mutability":"mutable","name":"p2","nameLocation":"36608:2:13","nodeType":"VariableDeclaration","scope":13735,"src":"36600:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13717,"name":"address","nodeType":"ElementaryTypeName","src":"36600:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13720,"mutability":"mutable","name":"p3","nameLocation":"36620:2:13","nodeType":"VariableDeclaration","scope":13735,"src":"36612:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13719,"name":"address","nodeType":"ElementaryTypeName","src":"36612:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36563:60:13"},"returnParameters":{"id":13722,"nodeType":"ParameterList","parameters":[],"src":"36638:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13758,"nodeType":"FunctionDefinition","src":"36755:175:13","nodes":[],"body":{"id":13757,"nodeType":"Block","src":"36827:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e742c75696e7429","id":13749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36877:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_5dbff038873b5f716761e9dcaab0713a903ceaebb2ba8c30b199c4dc534f7701","typeString":"literal_string \"log(string,bool,uint,uint)\""},"value":"log(string,bool,uint,uint)"},{"id":13750,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13737,"src":"36907:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13751,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13739,"src":"36911:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13752,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13741,"src":"36915:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13753,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13743,"src":"36919:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5dbff038873b5f716761e9dcaab0713a903ceaebb2ba8c30b199c4dc534f7701","typeString":"literal_string \"log(string,bool,uint,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13747,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36853:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36857:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36853:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36853:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13746,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"36837:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36837:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13756,"nodeType":"ExpressionStatement","src":"36837:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36764:3:13","parameters":{"id":13744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13737,"mutability":"mutable","name":"p0","nameLocation":"36782:2:13","nodeType":"VariableDeclaration","scope":13758,"src":"36768:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13736,"name":"string","nodeType":"ElementaryTypeName","src":"36768:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13739,"mutability":"mutable","name":"p1","nameLocation":"36791:2:13","nodeType":"VariableDeclaration","scope":13758,"src":"36786:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13738,"name":"bool","nodeType":"ElementaryTypeName","src":"36786:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13741,"mutability":"mutable","name":"p2","nameLocation":"36800:2:13","nodeType":"VariableDeclaration","scope":13758,"src":"36795:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13740,"name":"uint","nodeType":"ElementaryTypeName","src":"36795:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13743,"mutability":"mutable","name":"p3","nameLocation":"36809:2:13","nodeType":"VariableDeclaration","scope":13758,"src":"36804:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13742,"name":"uint","nodeType":"ElementaryTypeName","src":"36804:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36767:45:13"},"returnParameters":{"id":13745,"nodeType":"ParameterList","parameters":[],"src":"36827:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13781,"nodeType":"FunctionDefinition","src":"36936:186:13","nodes":[],"body":{"id":13780,"nodeType":"Block","src":"37017:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e742c737472696e6729","id":13772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37067:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_42b9a2274d0e9ab9211da679bc79f433c4055060036260a350e95cf10b9004ee","typeString":"literal_string \"log(string,bool,uint,string)\""},"value":"log(string,bool,uint,string)"},{"id":13773,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13760,"src":"37099:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13774,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13762,"src":"37103:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13775,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13764,"src":"37107:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13776,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13766,"src":"37111:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42b9a2274d0e9ab9211da679bc79f433c4055060036260a350e95cf10b9004ee","typeString":"literal_string \"log(string,bool,uint,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13770,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37043:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13771,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37047:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37043:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37043:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13769,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"37027:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37027:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13779,"nodeType":"ExpressionStatement","src":"37027:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36945:3:13","parameters":{"id":13767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13760,"mutability":"mutable","name":"p0","nameLocation":"36963:2:13","nodeType":"VariableDeclaration","scope":13781,"src":"36949:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13759,"name":"string","nodeType":"ElementaryTypeName","src":"36949:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13762,"mutability":"mutable","name":"p1","nameLocation":"36972:2:13","nodeType":"VariableDeclaration","scope":13781,"src":"36967:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13761,"name":"bool","nodeType":"ElementaryTypeName","src":"36967:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13764,"mutability":"mutable","name":"p2","nameLocation":"36981:2:13","nodeType":"VariableDeclaration","scope":13781,"src":"36976:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13763,"name":"uint","nodeType":"ElementaryTypeName","src":"36976:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13766,"mutability":"mutable","name":"p3","nameLocation":"36999:2:13","nodeType":"VariableDeclaration","scope":13781,"src":"36985:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13765,"name":"string","nodeType":"ElementaryTypeName","src":"36985:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36948:54:13"},"returnParameters":{"id":13768,"nodeType":"ParameterList","parameters":[],"src":"37017:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13804,"nodeType":"FunctionDefinition","src":"37128:175:13","nodes":[],"body":{"id":13803,"nodeType":"Block","src":"37200:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e742c626f6f6c29","id":13795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37250:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_3cc5b5d38fa67d61ad4f760e2dab344ea54d36d39a7b72ff747c1e117e2289bb","typeString":"literal_string \"log(string,bool,uint,bool)\""},"value":"log(string,bool,uint,bool)"},{"id":13796,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13783,"src":"37280:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13797,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13785,"src":"37284:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13798,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13787,"src":"37288:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13799,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13789,"src":"37292:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3cc5b5d38fa67d61ad4f760e2dab344ea54d36d39a7b72ff747c1e117e2289bb","typeString":"literal_string \"log(string,bool,uint,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13793,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37226:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37230:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37226:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37226:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13792,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"37210:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37210:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13802,"nodeType":"ExpressionStatement","src":"37210:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37137:3:13","parameters":{"id":13790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13783,"mutability":"mutable","name":"p0","nameLocation":"37155:2:13","nodeType":"VariableDeclaration","scope":13804,"src":"37141:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13782,"name":"string","nodeType":"ElementaryTypeName","src":"37141:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13785,"mutability":"mutable","name":"p1","nameLocation":"37164:2:13","nodeType":"VariableDeclaration","scope":13804,"src":"37159:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13784,"name":"bool","nodeType":"ElementaryTypeName","src":"37159:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13787,"mutability":"mutable","name":"p2","nameLocation":"37173:2:13","nodeType":"VariableDeclaration","scope":13804,"src":"37168:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13786,"name":"uint","nodeType":"ElementaryTypeName","src":"37168:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13789,"mutability":"mutable","name":"p3","nameLocation":"37182:2:13","nodeType":"VariableDeclaration","scope":13804,"src":"37177:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13788,"name":"bool","nodeType":"ElementaryTypeName","src":"37177:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"37140:45:13"},"returnParameters":{"id":13791,"nodeType":"ParameterList","parameters":[],"src":"37200:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13827,"nodeType":"FunctionDefinition","src":"37309:181:13","nodes":[],"body":{"id":13826,"nodeType":"Block","src":"37384:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e742c6164647265737329","id":13818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37434:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_71d3850da171f493bcf1bd9faa0694f71484214d8459bca427251a9ad3e9bbd6","typeString":"literal_string \"log(string,bool,uint,address)\""},"value":"log(string,bool,uint,address)"},{"id":13819,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13806,"src":"37467:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13820,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13808,"src":"37471:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13821,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13810,"src":"37475:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13822,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13812,"src":"37479:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_71d3850da171f493bcf1bd9faa0694f71484214d8459bca427251a9ad3e9bbd6","typeString":"literal_string \"log(string,bool,uint,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13816,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37410:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13817,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37414:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37410:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37410:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13815,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"37394:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37394:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13825,"nodeType":"ExpressionStatement","src":"37394:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37318:3:13","parameters":{"id":13813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13806,"mutability":"mutable","name":"p0","nameLocation":"37336:2:13","nodeType":"VariableDeclaration","scope":13827,"src":"37322:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13805,"name":"string","nodeType":"ElementaryTypeName","src":"37322:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13808,"mutability":"mutable","name":"p1","nameLocation":"37345:2:13","nodeType":"VariableDeclaration","scope":13827,"src":"37340:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13807,"name":"bool","nodeType":"ElementaryTypeName","src":"37340:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13810,"mutability":"mutable","name":"p2","nameLocation":"37354:2:13","nodeType":"VariableDeclaration","scope":13827,"src":"37349:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13809,"name":"uint","nodeType":"ElementaryTypeName","src":"37349:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13812,"mutability":"mutable","name":"p3","nameLocation":"37366:2:13","nodeType":"VariableDeclaration","scope":13827,"src":"37358:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13811,"name":"address","nodeType":"ElementaryTypeName","src":"37358:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"37321:48:13"},"returnParameters":{"id":13814,"nodeType":"ParameterList","parameters":[],"src":"37384:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13850,"nodeType":"FunctionDefinition","src":"37496:186:13","nodes":[],"body":{"id":13849,"nodeType":"Block","src":"37577:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c75696e7429","id":13841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37627:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_34cb308d42fc37e3a239bcd0d717cf3713a336733737bee1d82ac9061e969d72","typeString":"literal_string \"log(string,bool,string,uint)\""},"value":"log(string,bool,string,uint)"},{"id":13842,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13829,"src":"37659:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13843,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13831,"src":"37663:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13844,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13833,"src":"37667:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13845,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13835,"src":"37671:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_34cb308d42fc37e3a239bcd0d717cf3713a336733737bee1d82ac9061e969d72","typeString":"literal_string \"log(string,bool,string,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13839,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37603:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37607:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37603:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37603:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13838,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"37587:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37587:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13848,"nodeType":"ExpressionStatement","src":"37587:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37505:3:13","parameters":{"id":13836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13829,"mutability":"mutable","name":"p0","nameLocation":"37523:2:13","nodeType":"VariableDeclaration","scope":13850,"src":"37509:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13828,"name":"string","nodeType":"ElementaryTypeName","src":"37509:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13831,"mutability":"mutable","name":"p1","nameLocation":"37532:2:13","nodeType":"VariableDeclaration","scope":13850,"src":"37527:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13830,"name":"bool","nodeType":"ElementaryTypeName","src":"37527:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13833,"mutability":"mutable","name":"p2","nameLocation":"37550:2:13","nodeType":"VariableDeclaration","scope":13850,"src":"37536:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13832,"name":"string","nodeType":"ElementaryTypeName","src":"37536:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13835,"mutability":"mutable","name":"p3","nameLocation":"37559:2:13","nodeType":"VariableDeclaration","scope":13850,"src":"37554:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13834,"name":"uint","nodeType":"ElementaryTypeName","src":"37554:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37508:54:13"},"returnParameters":{"id":13837,"nodeType":"ParameterList","parameters":[],"src":"37577:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13873,"nodeType":"FunctionDefinition","src":"37688:197:13","nodes":[],"body":{"id":13872,"nodeType":"Block","src":"37778:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c737472696e6729","id":13864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37828:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d","typeString":"literal_string \"log(string,bool,string,string)\""},"value":"log(string,bool,string,string)"},{"id":13865,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13852,"src":"37862:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13866,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13854,"src":"37866:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13867,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13856,"src":"37870:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13868,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13858,"src":"37874:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d","typeString":"literal_string \"log(string,bool,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13862,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37804:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37808:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37804:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37804:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13861,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"37788:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37788:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13871,"nodeType":"ExpressionStatement","src":"37788:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37697:3:13","parameters":{"id":13859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13852,"mutability":"mutable","name":"p0","nameLocation":"37715:2:13","nodeType":"VariableDeclaration","scope":13873,"src":"37701:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13851,"name":"string","nodeType":"ElementaryTypeName","src":"37701:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13854,"mutability":"mutable","name":"p1","nameLocation":"37724:2:13","nodeType":"VariableDeclaration","scope":13873,"src":"37719:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13853,"name":"bool","nodeType":"ElementaryTypeName","src":"37719:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13856,"mutability":"mutable","name":"p2","nameLocation":"37742:2:13","nodeType":"VariableDeclaration","scope":13873,"src":"37728:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13855,"name":"string","nodeType":"ElementaryTypeName","src":"37728:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13858,"mutability":"mutable","name":"p3","nameLocation":"37760:2:13","nodeType":"VariableDeclaration","scope":13873,"src":"37746:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13857,"name":"string","nodeType":"ElementaryTypeName","src":"37746:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37700:63:13"},"returnParameters":{"id":13860,"nodeType":"ParameterList","parameters":[],"src":"37778:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13896,"nodeType":"FunctionDefinition","src":"37891:186:13","nodes":[],"body":{"id":13895,"nodeType":"Block","src":"37972:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c626f6f6c29","id":13887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38022:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b","typeString":"literal_string \"log(string,bool,string,bool)\""},"value":"log(string,bool,string,bool)"},{"id":13888,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13875,"src":"38054:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13889,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13877,"src":"38058:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13890,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13879,"src":"38062:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13891,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13881,"src":"38066:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b","typeString":"literal_string \"log(string,bool,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13885,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37998:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13886,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38002:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37998:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37998:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13884,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"37982:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37982:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13894,"nodeType":"ExpressionStatement","src":"37982:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37900:3:13","parameters":{"id":13882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13875,"mutability":"mutable","name":"p0","nameLocation":"37918:2:13","nodeType":"VariableDeclaration","scope":13896,"src":"37904:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13874,"name":"string","nodeType":"ElementaryTypeName","src":"37904:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13877,"mutability":"mutable","name":"p1","nameLocation":"37927:2:13","nodeType":"VariableDeclaration","scope":13896,"src":"37922:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13876,"name":"bool","nodeType":"ElementaryTypeName","src":"37922:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13879,"mutability":"mutable","name":"p2","nameLocation":"37945:2:13","nodeType":"VariableDeclaration","scope":13896,"src":"37931:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13878,"name":"string","nodeType":"ElementaryTypeName","src":"37931:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13881,"mutability":"mutable","name":"p3","nameLocation":"37954:2:13","nodeType":"VariableDeclaration","scope":13896,"src":"37949:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13880,"name":"bool","nodeType":"ElementaryTypeName","src":"37949:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"37903:54:13"},"returnParameters":{"id":13883,"nodeType":"ParameterList","parameters":[],"src":"37972:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13919,"nodeType":"FunctionDefinition","src":"38083:192:13","nodes":[],"body":{"id":13918,"nodeType":"Block","src":"38167:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c6164647265737329","id":13910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38217:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8","typeString":"literal_string \"log(string,bool,string,address)\""},"value":"log(string,bool,string,address)"},{"id":13911,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13898,"src":"38252:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13912,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13900,"src":"38256:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13913,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13902,"src":"38260:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13914,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13904,"src":"38264:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8","typeString":"literal_string \"log(string,bool,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":13908,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38193:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38197:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38193:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38193:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13907,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"38177:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38177:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13917,"nodeType":"ExpressionStatement","src":"38177:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38092:3:13","parameters":{"id":13905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13898,"mutability":"mutable","name":"p0","nameLocation":"38110:2:13","nodeType":"VariableDeclaration","scope":13919,"src":"38096:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13897,"name":"string","nodeType":"ElementaryTypeName","src":"38096:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13900,"mutability":"mutable","name":"p1","nameLocation":"38119:2:13","nodeType":"VariableDeclaration","scope":13919,"src":"38114:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13899,"name":"bool","nodeType":"ElementaryTypeName","src":"38114:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13902,"mutability":"mutable","name":"p2","nameLocation":"38137:2:13","nodeType":"VariableDeclaration","scope":13919,"src":"38123:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13901,"name":"string","nodeType":"ElementaryTypeName","src":"38123:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13904,"mutability":"mutable","name":"p3","nameLocation":"38149:2:13","nodeType":"VariableDeclaration","scope":13919,"src":"38141:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13903,"name":"address","nodeType":"ElementaryTypeName","src":"38141:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38095:57:13"},"returnParameters":{"id":13906,"nodeType":"ParameterList","parameters":[],"src":"38167:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13942,"nodeType":"FunctionDefinition","src":"38281:175:13","nodes":[],"body":{"id":13941,"nodeType":"Block","src":"38353:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c75696e7429","id":13933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38403:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_807531e8eafdd7a15a803e586dd9a01b2aa8ae2cdd52f093775c0dcb0c977edf","typeString":"literal_string \"log(string,bool,bool,uint)\""},"value":"log(string,bool,bool,uint)"},{"id":13934,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13921,"src":"38433:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13935,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13923,"src":"38437:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13936,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13925,"src":"38441:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13937,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13927,"src":"38445:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_807531e8eafdd7a15a803e586dd9a01b2aa8ae2cdd52f093775c0dcb0c977edf","typeString":"literal_string \"log(string,bool,bool,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13931,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38379:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38383:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38379:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38379:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13930,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"38363:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38363:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13940,"nodeType":"ExpressionStatement","src":"38363:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38290:3:13","parameters":{"id":13928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13921,"mutability":"mutable","name":"p0","nameLocation":"38308:2:13","nodeType":"VariableDeclaration","scope":13942,"src":"38294:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13920,"name":"string","nodeType":"ElementaryTypeName","src":"38294:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13923,"mutability":"mutable","name":"p1","nameLocation":"38317:2:13","nodeType":"VariableDeclaration","scope":13942,"src":"38312:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13922,"name":"bool","nodeType":"ElementaryTypeName","src":"38312:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13925,"mutability":"mutable","name":"p2","nameLocation":"38326:2:13","nodeType":"VariableDeclaration","scope":13942,"src":"38321:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13924,"name":"bool","nodeType":"ElementaryTypeName","src":"38321:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13927,"mutability":"mutable","name":"p3","nameLocation":"38335:2:13","nodeType":"VariableDeclaration","scope":13942,"src":"38330:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13926,"name":"uint","nodeType":"ElementaryTypeName","src":"38330:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38293:45:13"},"returnParameters":{"id":13929,"nodeType":"ParameterList","parameters":[],"src":"38353:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13965,"nodeType":"FunctionDefinition","src":"38462:186:13","nodes":[],"body":{"id":13964,"nodeType":"Block","src":"38543:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c737472696e6729","id":13956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38593:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058","typeString":"literal_string \"log(string,bool,bool,string)\""},"value":"log(string,bool,bool,string)"},{"id":13957,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13944,"src":"38625:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13958,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13946,"src":"38629:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13959,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13948,"src":"38633:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13960,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13950,"src":"38637:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058","typeString":"literal_string \"log(string,bool,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":13954,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38569:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38573:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38569:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38569:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13953,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"38553:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38553:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13963,"nodeType":"ExpressionStatement","src":"38553:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38471:3:13","parameters":{"id":13951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13944,"mutability":"mutable","name":"p0","nameLocation":"38489:2:13","nodeType":"VariableDeclaration","scope":13965,"src":"38475:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13943,"name":"string","nodeType":"ElementaryTypeName","src":"38475:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13946,"mutability":"mutable","name":"p1","nameLocation":"38498:2:13","nodeType":"VariableDeclaration","scope":13965,"src":"38493:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13945,"name":"bool","nodeType":"ElementaryTypeName","src":"38493:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13948,"mutability":"mutable","name":"p2","nameLocation":"38507:2:13","nodeType":"VariableDeclaration","scope":13965,"src":"38502:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13947,"name":"bool","nodeType":"ElementaryTypeName","src":"38502:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13950,"mutability":"mutable","name":"p3","nameLocation":"38525:2:13","nodeType":"VariableDeclaration","scope":13965,"src":"38511:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13949,"name":"string","nodeType":"ElementaryTypeName","src":"38511:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"38474:54:13"},"returnParameters":{"id":13952,"nodeType":"ParameterList","parameters":[],"src":"38543:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":13988,"nodeType":"FunctionDefinition","src":"38654:175:13","nodes":[],"body":{"id":13987,"nodeType":"Block","src":"38726:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c626f6f6c29","id":13979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38776:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2","typeString":"literal_string \"log(string,bool,bool,bool)\""},"value":"log(string,bool,bool,bool)"},{"id":13980,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13967,"src":"38806:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":13981,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13969,"src":"38810:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13982,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13971,"src":"38814:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":13983,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13973,"src":"38818:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2","typeString":"literal_string \"log(string,bool,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":13977,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38752:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38756:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38752:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38752:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13976,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"38736:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":13985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38736:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13986,"nodeType":"ExpressionStatement","src":"38736:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38663:3:13","parameters":{"id":13974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13967,"mutability":"mutable","name":"p0","nameLocation":"38681:2:13","nodeType":"VariableDeclaration","scope":13988,"src":"38667:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13966,"name":"string","nodeType":"ElementaryTypeName","src":"38667:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13969,"mutability":"mutable","name":"p1","nameLocation":"38690:2:13","nodeType":"VariableDeclaration","scope":13988,"src":"38685:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13968,"name":"bool","nodeType":"ElementaryTypeName","src":"38685:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13971,"mutability":"mutable","name":"p2","nameLocation":"38699:2:13","nodeType":"VariableDeclaration","scope":13988,"src":"38694:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13970,"name":"bool","nodeType":"ElementaryTypeName","src":"38694:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13973,"mutability":"mutable","name":"p3","nameLocation":"38708:2:13","nodeType":"VariableDeclaration","scope":13988,"src":"38703:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13972,"name":"bool","nodeType":"ElementaryTypeName","src":"38703:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38666:45:13"},"returnParameters":{"id":13975,"nodeType":"ParameterList","parameters":[],"src":"38726:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14011,"nodeType":"FunctionDefinition","src":"38835:181:13","nodes":[],"body":{"id":14010,"nodeType":"Block","src":"38910:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c6164647265737329","id":14002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38960:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d","typeString":"literal_string \"log(string,bool,bool,address)\""},"value":"log(string,bool,bool,address)"},{"id":14003,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13990,"src":"38993:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14004,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13992,"src":"38997:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14005,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13994,"src":"39001:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14006,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13996,"src":"39005:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d","typeString":"literal_string \"log(string,bool,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14000,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38936:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38940:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38936:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38936:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13999,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"38920:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38920:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14009,"nodeType":"ExpressionStatement","src":"38920:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38844:3:13","parameters":{"id":13997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13990,"mutability":"mutable","name":"p0","nameLocation":"38862:2:13","nodeType":"VariableDeclaration","scope":14011,"src":"38848:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13989,"name":"string","nodeType":"ElementaryTypeName","src":"38848:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13992,"mutability":"mutable","name":"p1","nameLocation":"38871:2:13","nodeType":"VariableDeclaration","scope":14011,"src":"38866:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13991,"name":"bool","nodeType":"ElementaryTypeName","src":"38866:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13994,"mutability":"mutable","name":"p2","nameLocation":"38880:2:13","nodeType":"VariableDeclaration","scope":14011,"src":"38875:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13993,"name":"bool","nodeType":"ElementaryTypeName","src":"38875:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13996,"mutability":"mutable","name":"p3","nameLocation":"38892:2:13","nodeType":"VariableDeclaration","scope":14011,"src":"38884:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13995,"name":"address","nodeType":"ElementaryTypeName","src":"38884:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38847:48:13"},"returnParameters":{"id":13998,"nodeType":"ParameterList","parameters":[],"src":"38910:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14034,"nodeType":"FunctionDefinition","src":"39022:181:13","nodes":[],"body":{"id":14033,"nodeType":"Block","src":"39097:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c75696e7429","id":14025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39147:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_28df4e96d50017c69e64253ea877c992512b689fb9fed17cf6af78f104f1200b","typeString":"literal_string \"log(string,bool,address,uint)\""},"value":"log(string,bool,address,uint)"},{"id":14026,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14013,"src":"39180:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14027,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14015,"src":"39184:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14028,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14017,"src":"39188:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14029,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14019,"src":"39192:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_28df4e96d50017c69e64253ea877c992512b689fb9fed17cf6af78f104f1200b","typeString":"literal_string \"log(string,bool,address,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14023,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39123:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39127:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39123:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39123:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14022,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"39107:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39107:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14032,"nodeType":"ExpressionStatement","src":"39107:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39031:3:13","parameters":{"id":14020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14013,"mutability":"mutable","name":"p0","nameLocation":"39049:2:13","nodeType":"VariableDeclaration","scope":14034,"src":"39035:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14012,"name":"string","nodeType":"ElementaryTypeName","src":"39035:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14015,"mutability":"mutable","name":"p1","nameLocation":"39058:2:13","nodeType":"VariableDeclaration","scope":14034,"src":"39053:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14014,"name":"bool","nodeType":"ElementaryTypeName","src":"39053:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14017,"mutability":"mutable","name":"p2","nameLocation":"39070:2:13","nodeType":"VariableDeclaration","scope":14034,"src":"39062:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14016,"name":"address","nodeType":"ElementaryTypeName","src":"39062:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14019,"mutability":"mutable","name":"p3","nameLocation":"39079:2:13","nodeType":"VariableDeclaration","scope":14034,"src":"39074:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14018,"name":"uint","nodeType":"ElementaryTypeName","src":"39074:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39034:48:13"},"returnParameters":{"id":14021,"nodeType":"ParameterList","parameters":[],"src":"39097:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14057,"nodeType":"FunctionDefinition","src":"39209:192:13","nodes":[],"body":{"id":14056,"nodeType":"Block","src":"39293:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c737472696e6729","id":14048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39343:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef","typeString":"literal_string \"log(string,bool,address,string)\""},"value":"log(string,bool,address,string)"},{"id":14049,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14036,"src":"39378:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14050,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14038,"src":"39382:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14051,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14040,"src":"39386:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14052,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14042,"src":"39390:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef","typeString":"literal_string \"log(string,bool,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14046,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39319:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39323:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39319:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39319:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14045,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"39303:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39303:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14055,"nodeType":"ExpressionStatement","src":"39303:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39218:3:13","parameters":{"id":14043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14036,"mutability":"mutable","name":"p0","nameLocation":"39236:2:13","nodeType":"VariableDeclaration","scope":14057,"src":"39222:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14035,"name":"string","nodeType":"ElementaryTypeName","src":"39222:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14038,"mutability":"mutable","name":"p1","nameLocation":"39245:2:13","nodeType":"VariableDeclaration","scope":14057,"src":"39240:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14037,"name":"bool","nodeType":"ElementaryTypeName","src":"39240:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14040,"mutability":"mutable","name":"p2","nameLocation":"39257:2:13","nodeType":"VariableDeclaration","scope":14057,"src":"39249:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14039,"name":"address","nodeType":"ElementaryTypeName","src":"39249:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14042,"mutability":"mutable","name":"p3","nameLocation":"39275:2:13","nodeType":"VariableDeclaration","scope":14057,"src":"39261:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14041,"name":"string","nodeType":"ElementaryTypeName","src":"39261:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"39221:57:13"},"returnParameters":{"id":14044,"nodeType":"ParameterList","parameters":[],"src":"39293:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14080,"nodeType":"FunctionDefinition","src":"39407:181:13","nodes":[],"body":{"id":14079,"nodeType":"Block","src":"39482:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c626f6f6c29","id":14071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39532:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482","typeString":"literal_string \"log(string,bool,address,bool)\""},"value":"log(string,bool,address,bool)"},{"id":14072,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14059,"src":"39565:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14073,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14061,"src":"39569:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14074,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14063,"src":"39573:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14075,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14065,"src":"39577:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482","typeString":"literal_string \"log(string,bool,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14069,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39508:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39512:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39508:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39508:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14068,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"39492:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39492:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14078,"nodeType":"ExpressionStatement","src":"39492:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39416:3:13","parameters":{"id":14066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14059,"mutability":"mutable","name":"p0","nameLocation":"39434:2:13","nodeType":"VariableDeclaration","scope":14080,"src":"39420:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14058,"name":"string","nodeType":"ElementaryTypeName","src":"39420:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14061,"mutability":"mutable","name":"p1","nameLocation":"39443:2:13","nodeType":"VariableDeclaration","scope":14080,"src":"39438:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14060,"name":"bool","nodeType":"ElementaryTypeName","src":"39438:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14063,"mutability":"mutable","name":"p2","nameLocation":"39455:2:13","nodeType":"VariableDeclaration","scope":14080,"src":"39447:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14062,"name":"address","nodeType":"ElementaryTypeName","src":"39447:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14065,"mutability":"mutable","name":"p3","nameLocation":"39464:2:13","nodeType":"VariableDeclaration","scope":14080,"src":"39459:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14064,"name":"bool","nodeType":"ElementaryTypeName","src":"39459:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"39419:48:13"},"returnParameters":{"id":14067,"nodeType":"ParameterList","parameters":[],"src":"39482:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14103,"nodeType":"FunctionDefinition","src":"39594:187:13","nodes":[],"body":{"id":14102,"nodeType":"Block","src":"39672:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c6164647265737329","id":14094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39722:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d","typeString":"literal_string \"log(string,bool,address,address)\""},"value":"log(string,bool,address,address)"},{"id":14095,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14082,"src":"39758:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14096,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14084,"src":"39762:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14097,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14086,"src":"39766:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14098,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14088,"src":"39770:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d","typeString":"literal_string \"log(string,bool,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14092,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39698:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39702:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39698:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39698:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14091,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"39682:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39682:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14101,"nodeType":"ExpressionStatement","src":"39682:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39603:3:13","parameters":{"id":14089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14082,"mutability":"mutable","name":"p0","nameLocation":"39621:2:13","nodeType":"VariableDeclaration","scope":14103,"src":"39607:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14081,"name":"string","nodeType":"ElementaryTypeName","src":"39607:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14084,"mutability":"mutable","name":"p1","nameLocation":"39630:2:13","nodeType":"VariableDeclaration","scope":14103,"src":"39625:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14083,"name":"bool","nodeType":"ElementaryTypeName","src":"39625:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14086,"mutability":"mutable","name":"p2","nameLocation":"39642:2:13","nodeType":"VariableDeclaration","scope":14103,"src":"39634:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14085,"name":"address","nodeType":"ElementaryTypeName","src":"39634:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14088,"mutability":"mutable","name":"p3","nameLocation":"39654:2:13","nodeType":"VariableDeclaration","scope":14103,"src":"39646:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14087,"name":"address","nodeType":"ElementaryTypeName","src":"39646:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39606:51:13"},"returnParameters":{"id":14090,"nodeType":"ParameterList","parameters":[],"src":"39672:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14126,"nodeType":"FunctionDefinition","src":"39787:181:13","nodes":[],"body":{"id":14125,"nodeType":"Block","src":"39862:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e742c75696e7429","id":14117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39912:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_daa394bd4914eaece965f4173c7699746dff411e470b03385f052bd7b13f1bd3","typeString":"literal_string \"log(string,address,uint,uint)\""},"value":"log(string,address,uint,uint)"},{"id":14118,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14105,"src":"39945:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14119,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14107,"src":"39949:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14120,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14109,"src":"39953:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14121,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14111,"src":"39957:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_daa394bd4914eaece965f4173c7699746dff411e470b03385f052bd7b13f1bd3","typeString":"literal_string \"log(string,address,uint,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14115,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39888:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14116,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39892:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39888:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39888:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14114,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"39872:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39872:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14124,"nodeType":"ExpressionStatement","src":"39872:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39796:3:13","parameters":{"id":14112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14105,"mutability":"mutable","name":"p0","nameLocation":"39814:2:13","nodeType":"VariableDeclaration","scope":14126,"src":"39800:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14104,"name":"string","nodeType":"ElementaryTypeName","src":"39800:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14107,"mutability":"mutable","name":"p1","nameLocation":"39826:2:13","nodeType":"VariableDeclaration","scope":14126,"src":"39818:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14106,"name":"address","nodeType":"ElementaryTypeName","src":"39818:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14109,"mutability":"mutable","name":"p2","nameLocation":"39835:2:13","nodeType":"VariableDeclaration","scope":14126,"src":"39830:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14108,"name":"uint","nodeType":"ElementaryTypeName","src":"39830:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14111,"mutability":"mutable","name":"p3","nameLocation":"39844:2:13","nodeType":"VariableDeclaration","scope":14126,"src":"39839:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14110,"name":"uint","nodeType":"ElementaryTypeName","src":"39839:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39799:48:13"},"returnParameters":{"id":14113,"nodeType":"ParameterList","parameters":[],"src":"39862:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14149,"nodeType":"FunctionDefinition","src":"39974:192:13","nodes":[],"body":{"id":14148,"nodeType":"Block","src":"40058:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e742c737472696e6729","id":14140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40108:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c55f234d048f08e770926729ee5d8a9c70d6b9a607ce037165c7e0f36155a98","typeString":"literal_string \"log(string,address,uint,string)\""},"value":"log(string,address,uint,string)"},{"id":14141,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14128,"src":"40143:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14142,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14130,"src":"40147:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14143,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14132,"src":"40151:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14144,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14134,"src":"40155:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4c55f234d048f08e770926729ee5d8a9c70d6b9a607ce037165c7e0f36155a98","typeString":"literal_string \"log(string,address,uint,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14138,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40084:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40088:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40084:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40084:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14137,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"40068:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40068:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14147,"nodeType":"ExpressionStatement","src":"40068:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39983:3:13","parameters":{"id":14135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14128,"mutability":"mutable","name":"p0","nameLocation":"40001:2:13","nodeType":"VariableDeclaration","scope":14149,"src":"39987:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14127,"name":"string","nodeType":"ElementaryTypeName","src":"39987:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14130,"mutability":"mutable","name":"p1","nameLocation":"40013:2:13","nodeType":"VariableDeclaration","scope":14149,"src":"40005:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14129,"name":"address","nodeType":"ElementaryTypeName","src":"40005:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14132,"mutability":"mutable","name":"p2","nameLocation":"40022:2:13","nodeType":"VariableDeclaration","scope":14149,"src":"40017:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14131,"name":"uint","nodeType":"ElementaryTypeName","src":"40017:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14134,"mutability":"mutable","name":"p3","nameLocation":"40040:2:13","nodeType":"VariableDeclaration","scope":14149,"src":"40026:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14133,"name":"string","nodeType":"ElementaryTypeName","src":"40026:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"39986:57:13"},"returnParameters":{"id":14136,"nodeType":"ParameterList","parameters":[],"src":"40058:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14172,"nodeType":"FunctionDefinition","src":"40172:181:13","nodes":[],"body":{"id":14171,"nodeType":"Block","src":"40247:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e742c626f6f6c29","id":14163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40297:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ac1c13c91f65a91284d9d77ba7484e75b0a3dd9b57a01fd497babb7d6ebc554","typeString":"literal_string \"log(string,address,uint,bool)\""},"value":"log(string,address,uint,bool)"},{"id":14164,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14151,"src":"40330:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14165,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14153,"src":"40334:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14166,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14155,"src":"40338:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14167,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14157,"src":"40342:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ac1c13c91f65a91284d9d77ba7484e75b0a3dd9b57a01fd497babb7d6ebc554","typeString":"literal_string \"log(string,address,uint,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14161,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40273:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40277:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40273:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40273:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14160,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"40257:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40257:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14170,"nodeType":"ExpressionStatement","src":"40257:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40181:3:13","parameters":{"id":14158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14151,"mutability":"mutable","name":"p0","nameLocation":"40199:2:13","nodeType":"VariableDeclaration","scope":14172,"src":"40185:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14150,"name":"string","nodeType":"ElementaryTypeName","src":"40185:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14153,"mutability":"mutable","name":"p1","nameLocation":"40211:2:13","nodeType":"VariableDeclaration","scope":14172,"src":"40203:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14152,"name":"address","nodeType":"ElementaryTypeName","src":"40203:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14155,"mutability":"mutable","name":"p2","nameLocation":"40220:2:13","nodeType":"VariableDeclaration","scope":14172,"src":"40215:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14154,"name":"uint","nodeType":"ElementaryTypeName","src":"40215:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14157,"mutability":"mutable","name":"p3","nameLocation":"40229:2:13","nodeType":"VariableDeclaration","scope":14172,"src":"40224:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14156,"name":"bool","nodeType":"ElementaryTypeName","src":"40224:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"40184:48:13"},"returnParameters":{"id":14159,"nodeType":"ParameterList","parameters":[],"src":"40247:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14195,"nodeType":"FunctionDefinition","src":"40359:187:13","nodes":[],"body":{"id":14194,"nodeType":"Block","src":"40437:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e742c6164647265737329","id":14186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40487:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a366ec808c8af1aa091e8102642939a99436cf04d3dfac2ae23c299404f821b2","typeString":"literal_string \"log(string,address,uint,address)\""},"value":"log(string,address,uint,address)"},{"id":14187,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14174,"src":"40523:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14188,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14176,"src":"40527:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14189,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14178,"src":"40531:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14190,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14180,"src":"40535:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a366ec808c8af1aa091e8102642939a99436cf04d3dfac2ae23c299404f821b2","typeString":"literal_string \"log(string,address,uint,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14184,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40463:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40467:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40463:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40463:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14183,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"40447:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40447:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14193,"nodeType":"ExpressionStatement","src":"40447:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40368:3:13","parameters":{"id":14181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14174,"mutability":"mutable","name":"p0","nameLocation":"40386:2:13","nodeType":"VariableDeclaration","scope":14195,"src":"40372:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14173,"name":"string","nodeType":"ElementaryTypeName","src":"40372:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14176,"mutability":"mutable","name":"p1","nameLocation":"40398:2:13","nodeType":"VariableDeclaration","scope":14195,"src":"40390:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14175,"name":"address","nodeType":"ElementaryTypeName","src":"40390:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14178,"mutability":"mutable","name":"p2","nameLocation":"40407:2:13","nodeType":"VariableDeclaration","scope":14195,"src":"40402:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14177,"name":"uint","nodeType":"ElementaryTypeName","src":"40402:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14180,"mutability":"mutable","name":"p3","nameLocation":"40419:2:13","nodeType":"VariableDeclaration","scope":14195,"src":"40411:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14179,"name":"address","nodeType":"ElementaryTypeName","src":"40411:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40371:51:13"},"returnParameters":{"id":14182,"nodeType":"ParameterList","parameters":[],"src":"40437:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14218,"nodeType":"FunctionDefinition","src":"40552:192:13","nodes":[],"body":{"id":14217,"nodeType":"Block","src":"40636:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c75696e7429","id":14209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40686:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f624be9ea3983abac9c65ced8f562a492ebb84e6f74cd40f35387eff4d66349","typeString":"literal_string \"log(string,address,string,uint)\""},"value":"log(string,address,string,uint)"},{"id":14210,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14197,"src":"40721:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14211,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14199,"src":"40725:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14212,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14201,"src":"40729:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14213,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14203,"src":"40733:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8f624be9ea3983abac9c65ced8f562a492ebb84e6f74cd40f35387eff4d66349","typeString":"literal_string \"log(string,address,string,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14207,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40662:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40666:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40662:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40662:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14206,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"40646:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40646:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14216,"nodeType":"ExpressionStatement","src":"40646:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40561:3:13","parameters":{"id":14204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14197,"mutability":"mutable","name":"p0","nameLocation":"40579:2:13","nodeType":"VariableDeclaration","scope":14218,"src":"40565:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14196,"name":"string","nodeType":"ElementaryTypeName","src":"40565:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14199,"mutability":"mutable","name":"p1","nameLocation":"40591:2:13","nodeType":"VariableDeclaration","scope":14218,"src":"40583:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14198,"name":"address","nodeType":"ElementaryTypeName","src":"40583:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14201,"mutability":"mutable","name":"p2","nameLocation":"40609:2:13","nodeType":"VariableDeclaration","scope":14218,"src":"40595:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14200,"name":"string","nodeType":"ElementaryTypeName","src":"40595:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14203,"mutability":"mutable","name":"p3","nameLocation":"40618:2:13","nodeType":"VariableDeclaration","scope":14218,"src":"40613:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14202,"name":"uint","nodeType":"ElementaryTypeName","src":"40613:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"40564:57:13"},"returnParameters":{"id":14205,"nodeType":"ParameterList","parameters":[],"src":"40636:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14241,"nodeType":"FunctionDefinition","src":"40750:203:13","nodes":[],"body":{"id":14240,"nodeType":"Block","src":"40843:110:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c737472696e6729","id":14232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40893:35:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797","typeString":"literal_string \"log(string,address,string,string)\""},"value":"log(string,address,string,string)"},{"id":14233,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14220,"src":"40930:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14234,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14222,"src":"40934:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14235,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14224,"src":"40938:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14236,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14226,"src":"40942:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797","typeString":"literal_string \"log(string,address,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14230,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40869:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40873:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40869:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40869:76:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14229,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"40853:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40853:93:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14239,"nodeType":"ExpressionStatement","src":"40853:93:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40759:3:13","parameters":{"id":14227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14220,"mutability":"mutable","name":"p0","nameLocation":"40777:2:13","nodeType":"VariableDeclaration","scope":14241,"src":"40763:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14219,"name":"string","nodeType":"ElementaryTypeName","src":"40763:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14222,"mutability":"mutable","name":"p1","nameLocation":"40789:2:13","nodeType":"VariableDeclaration","scope":14241,"src":"40781:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14221,"name":"address","nodeType":"ElementaryTypeName","src":"40781:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14224,"mutability":"mutable","name":"p2","nameLocation":"40807:2:13","nodeType":"VariableDeclaration","scope":14241,"src":"40793:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14223,"name":"string","nodeType":"ElementaryTypeName","src":"40793:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14226,"mutability":"mutable","name":"p3","nameLocation":"40825:2:13","nodeType":"VariableDeclaration","scope":14241,"src":"40811:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14225,"name":"string","nodeType":"ElementaryTypeName","src":"40811:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40762:66:13"},"returnParameters":{"id":14228,"nodeType":"ParameterList","parameters":[],"src":"40843:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14264,"nodeType":"FunctionDefinition","src":"40959:192:13","nodes":[],"body":{"id":14263,"nodeType":"Block","src":"41043:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c626f6f6c29","id":14255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41093:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154","typeString":"literal_string \"log(string,address,string,bool)\""},"value":"log(string,address,string,bool)"},{"id":14256,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14243,"src":"41128:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14257,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14245,"src":"41132:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14258,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14247,"src":"41136:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14259,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14249,"src":"41140:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154","typeString":"literal_string \"log(string,address,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14253,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41069:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41073:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41069:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41069:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14252,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"41053:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41053:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14262,"nodeType":"ExpressionStatement","src":"41053:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40968:3:13","parameters":{"id":14250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14243,"mutability":"mutable","name":"p0","nameLocation":"40986:2:13","nodeType":"VariableDeclaration","scope":14264,"src":"40972:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14242,"name":"string","nodeType":"ElementaryTypeName","src":"40972:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14245,"mutability":"mutable","name":"p1","nameLocation":"40998:2:13","nodeType":"VariableDeclaration","scope":14264,"src":"40990:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14244,"name":"address","nodeType":"ElementaryTypeName","src":"40990:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14247,"mutability":"mutable","name":"p2","nameLocation":"41016:2:13","nodeType":"VariableDeclaration","scope":14264,"src":"41002:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14246,"name":"string","nodeType":"ElementaryTypeName","src":"41002:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14249,"mutability":"mutable","name":"p3","nameLocation":"41025:2:13","nodeType":"VariableDeclaration","scope":14264,"src":"41020:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14248,"name":"bool","nodeType":"ElementaryTypeName","src":"41020:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"40971:57:13"},"returnParameters":{"id":14251,"nodeType":"ParameterList","parameters":[],"src":"41043:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14287,"nodeType":"FunctionDefinition","src":"41157:198:13","nodes":[],"body":{"id":14286,"nodeType":"Block","src":"41244:111:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c6164647265737329","id":14278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41294:36:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d","typeString":"literal_string \"log(string,address,string,address)\""},"value":"log(string,address,string,address)"},{"id":14279,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14266,"src":"41332:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14280,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14268,"src":"41336:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14281,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14270,"src":"41340:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14282,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14272,"src":"41344:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d","typeString":"literal_string \"log(string,address,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14276,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41270:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41274:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41270:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41270:77:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14275,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"41254:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41254:94:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14285,"nodeType":"ExpressionStatement","src":"41254:94:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41166:3:13","parameters":{"id":14273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14266,"mutability":"mutable","name":"p0","nameLocation":"41184:2:13","nodeType":"VariableDeclaration","scope":14287,"src":"41170:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14265,"name":"string","nodeType":"ElementaryTypeName","src":"41170:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14268,"mutability":"mutable","name":"p1","nameLocation":"41196:2:13","nodeType":"VariableDeclaration","scope":14287,"src":"41188:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14267,"name":"address","nodeType":"ElementaryTypeName","src":"41188:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14270,"mutability":"mutable","name":"p2","nameLocation":"41214:2:13","nodeType":"VariableDeclaration","scope":14287,"src":"41200:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14269,"name":"string","nodeType":"ElementaryTypeName","src":"41200:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14272,"mutability":"mutable","name":"p3","nameLocation":"41226:2:13","nodeType":"VariableDeclaration","scope":14287,"src":"41218:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14271,"name":"address","nodeType":"ElementaryTypeName","src":"41218:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41169:60:13"},"returnParameters":{"id":14274,"nodeType":"ParameterList","parameters":[],"src":"41244:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14310,"nodeType":"FunctionDefinition","src":"41361:181:13","nodes":[],"body":{"id":14309,"nodeType":"Block","src":"41436:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c75696e7429","id":14301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41486:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d1bb8ba57e795e9925065473f653a381a99be37bdcfbeaf49f38097f35af7f","typeString":"literal_string \"log(string,address,bool,uint)\""},"value":"log(string,address,bool,uint)"},{"id":14302,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14289,"src":"41519:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14303,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14291,"src":"41523:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14304,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14293,"src":"41527:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14305,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14295,"src":"41531:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d1bb8ba57e795e9925065473f653a381a99be37bdcfbeaf49f38097f35af7f","typeString":"literal_string \"log(string,address,bool,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14299,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41462:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41466:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41462:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41462:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14298,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"41446:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41446:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14308,"nodeType":"ExpressionStatement","src":"41446:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41370:3:13","parameters":{"id":14296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14289,"mutability":"mutable","name":"p0","nameLocation":"41388:2:13","nodeType":"VariableDeclaration","scope":14310,"src":"41374:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14288,"name":"string","nodeType":"ElementaryTypeName","src":"41374:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14291,"mutability":"mutable","name":"p1","nameLocation":"41400:2:13","nodeType":"VariableDeclaration","scope":14310,"src":"41392:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14290,"name":"address","nodeType":"ElementaryTypeName","src":"41392:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14293,"mutability":"mutable","name":"p2","nameLocation":"41409:2:13","nodeType":"VariableDeclaration","scope":14310,"src":"41404:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14292,"name":"bool","nodeType":"ElementaryTypeName","src":"41404:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14295,"mutability":"mutable","name":"p3","nameLocation":"41418:2:13","nodeType":"VariableDeclaration","scope":14310,"src":"41413:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14294,"name":"uint","nodeType":"ElementaryTypeName","src":"41413:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"41373:48:13"},"returnParameters":{"id":14297,"nodeType":"ParameterList","parameters":[],"src":"41436:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14333,"nodeType":"FunctionDefinition","src":"41548:192:13","nodes":[],"body":{"id":14332,"nodeType":"Block","src":"41632:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c737472696e6729","id":14324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41682:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb","typeString":"literal_string \"log(string,address,bool,string)\""},"value":"log(string,address,bool,string)"},{"id":14325,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14312,"src":"41717:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14326,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"41721:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14327,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14316,"src":"41725:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14328,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14318,"src":"41729:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb","typeString":"literal_string \"log(string,address,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14322,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41658:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41662:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41658:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41658:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14321,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"41642:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41642:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14331,"nodeType":"ExpressionStatement","src":"41642:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41557:3:13","parameters":{"id":14319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14312,"mutability":"mutable","name":"p0","nameLocation":"41575:2:13","nodeType":"VariableDeclaration","scope":14333,"src":"41561:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14311,"name":"string","nodeType":"ElementaryTypeName","src":"41561:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14314,"mutability":"mutable","name":"p1","nameLocation":"41587:2:13","nodeType":"VariableDeclaration","scope":14333,"src":"41579:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14313,"name":"address","nodeType":"ElementaryTypeName","src":"41579:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14316,"mutability":"mutable","name":"p2","nameLocation":"41596:2:13","nodeType":"VariableDeclaration","scope":14333,"src":"41591:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14315,"name":"bool","nodeType":"ElementaryTypeName","src":"41591:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14318,"mutability":"mutable","name":"p3","nameLocation":"41614:2:13","nodeType":"VariableDeclaration","scope":14333,"src":"41600:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14317,"name":"string","nodeType":"ElementaryTypeName","src":"41600:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41560:57:13"},"returnParameters":{"id":14320,"nodeType":"ParameterList","parameters":[],"src":"41632:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14356,"nodeType":"FunctionDefinition","src":"41746:181:13","nodes":[],"body":{"id":14355,"nodeType":"Block","src":"41821:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c626f6f6c29","id":14347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41871:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039","typeString":"literal_string \"log(string,address,bool,bool)\""},"value":"log(string,address,bool,bool)"},{"id":14348,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"41904:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14349,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14337,"src":"41908:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14350,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14339,"src":"41912:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14351,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"41916:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039","typeString":"literal_string \"log(string,address,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14345,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41847:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41851:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41847:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41847:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14344,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"41831:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41831:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14354,"nodeType":"ExpressionStatement","src":"41831:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41755:3:13","parameters":{"id":14342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14335,"mutability":"mutable","name":"p0","nameLocation":"41773:2:13","nodeType":"VariableDeclaration","scope":14356,"src":"41759:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14334,"name":"string","nodeType":"ElementaryTypeName","src":"41759:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14337,"mutability":"mutable","name":"p1","nameLocation":"41785:2:13","nodeType":"VariableDeclaration","scope":14356,"src":"41777:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14336,"name":"address","nodeType":"ElementaryTypeName","src":"41777:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14339,"mutability":"mutable","name":"p2","nameLocation":"41794:2:13","nodeType":"VariableDeclaration","scope":14356,"src":"41789:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14338,"name":"bool","nodeType":"ElementaryTypeName","src":"41789:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14341,"mutability":"mutable","name":"p3","nameLocation":"41803:2:13","nodeType":"VariableDeclaration","scope":14356,"src":"41798:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14340,"name":"bool","nodeType":"ElementaryTypeName","src":"41798:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"41758:48:13"},"returnParameters":{"id":14343,"nodeType":"ParameterList","parameters":[],"src":"41821:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14379,"nodeType":"FunctionDefinition","src":"41933:187:13","nodes":[],"body":{"id":14378,"nodeType":"Block","src":"42011:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c6164647265737329","id":14370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42061:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76","typeString":"literal_string \"log(string,address,bool,address)\""},"value":"log(string,address,bool,address)"},{"id":14371,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14358,"src":"42097:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14372,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14360,"src":"42101:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14373,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14362,"src":"42105:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14374,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14364,"src":"42109:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76","typeString":"literal_string \"log(string,address,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14368,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42037:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42041:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42037:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42037:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14367,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"42021:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42021:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14377,"nodeType":"ExpressionStatement","src":"42021:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41942:3:13","parameters":{"id":14365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14358,"mutability":"mutable","name":"p0","nameLocation":"41960:2:13","nodeType":"VariableDeclaration","scope":14379,"src":"41946:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14357,"name":"string","nodeType":"ElementaryTypeName","src":"41946:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14360,"mutability":"mutable","name":"p1","nameLocation":"41972:2:13","nodeType":"VariableDeclaration","scope":14379,"src":"41964:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14359,"name":"address","nodeType":"ElementaryTypeName","src":"41964:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14362,"mutability":"mutable","name":"p2","nameLocation":"41981:2:13","nodeType":"VariableDeclaration","scope":14379,"src":"41976:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14361,"name":"bool","nodeType":"ElementaryTypeName","src":"41976:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14364,"mutability":"mutable","name":"p3","nameLocation":"41993:2:13","nodeType":"VariableDeclaration","scope":14379,"src":"41985:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14363,"name":"address","nodeType":"ElementaryTypeName","src":"41985:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41945:51:13"},"returnParameters":{"id":14366,"nodeType":"ParameterList","parameters":[],"src":"42011:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14402,"nodeType":"FunctionDefinition","src":"42126:187:13","nodes":[],"body":{"id":14401,"nodeType":"Block","src":"42204:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c75696e7429","id":14393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42254:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_6eb7943d4272e495e7f5cdeb25ef89b9c3c1042d5c1e0e6e11a8fdc842ff5e02","typeString":"literal_string \"log(string,address,address,uint)\""},"value":"log(string,address,address,uint)"},{"id":14394,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14381,"src":"42290:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14395,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14383,"src":"42294:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14396,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14385,"src":"42298:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14397,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14387,"src":"42302:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6eb7943d4272e495e7f5cdeb25ef89b9c3c1042d5c1e0e6e11a8fdc842ff5e02","typeString":"literal_string \"log(string,address,address,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14391,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42230:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14392,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42234:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42230:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42230:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14390,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"42214:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42214:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14400,"nodeType":"ExpressionStatement","src":"42214:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42135:3:13","parameters":{"id":14388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14381,"mutability":"mutable","name":"p0","nameLocation":"42153:2:13","nodeType":"VariableDeclaration","scope":14402,"src":"42139:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14380,"name":"string","nodeType":"ElementaryTypeName","src":"42139:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14383,"mutability":"mutable","name":"p1","nameLocation":"42165:2:13","nodeType":"VariableDeclaration","scope":14402,"src":"42157:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14382,"name":"address","nodeType":"ElementaryTypeName","src":"42157:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14385,"mutability":"mutable","name":"p2","nameLocation":"42177:2:13","nodeType":"VariableDeclaration","scope":14402,"src":"42169:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14384,"name":"address","nodeType":"ElementaryTypeName","src":"42169:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14387,"mutability":"mutable","name":"p3","nameLocation":"42186:2:13","nodeType":"VariableDeclaration","scope":14402,"src":"42181:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14386,"name":"uint","nodeType":"ElementaryTypeName","src":"42181:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42138:51:13"},"returnParameters":{"id":14389,"nodeType":"ParameterList","parameters":[],"src":"42204:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14425,"nodeType":"FunctionDefinition","src":"42319:198:13","nodes":[],"body":{"id":14424,"nodeType":"Block","src":"42406:111:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c737472696e6729","id":14416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42456:36:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76","typeString":"literal_string \"log(string,address,address,string)\""},"value":"log(string,address,address,string)"},{"id":14417,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14404,"src":"42494:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14418,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14406,"src":"42498:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14419,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14408,"src":"42502:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14420,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14410,"src":"42506:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76","typeString":"literal_string \"log(string,address,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14414,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42432:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42436:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42432:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42432:77:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14413,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"42416:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42416:94:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14423,"nodeType":"ExpressionStatement","src":"42416:94:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42328:3:13","parameters":{"id":14411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14404,"mutability":"mutable","name":"p0","nameLocation":"42346:2:13","nodeType":"VariableDeclaration","scope":14425,"src":"42332:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14403,"name":"string","nodeType":"ElementaryTypeName","src":"42332:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14406,"mutability":"mutable","name":"p1","nameLocation":"42358:2:13","nodeType":"VariableDeclaration","scope":14425,"src":"42350:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14405,"name":"address","nodeType":"ElementaryTypeName","src":"42350:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14408,"mutability":"mutable","name":"p2","nameLocation":"42370:2:13","nodeType":"VariableDeclaration","scope":14425,"src":"42362:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14407,"name":"address","nodeType":"ElementaryTypeName","src":"42362:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14410,"mutability":"mutable","name":"p3","nameLocation":"42388:2:13","nodeType":"VariableDeclaration","scope":14425,"src":"42374:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14409,"name":"string","nodeType":"ElementaryTypeName","src":"42374:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42331:60:13"},"returnParameters":{"id":14412,"nodeType":"ParameterList","parameters":[],"src":"42406:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14448,"nodeType":"FunctionDefinition","src":"42523:187:13","nodes":[],"body":{"id":14447,"nodeType":"Block","src":"42601:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c626f6f6c29","id":14439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42651:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4","typeString":"literal_string \"log(string,address,address,bool)\""},"value":"log(string,address,address,bool)"},{"id":14440,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14427,"src":"42687:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14441,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14429,"src":"42691:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14442,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14431,"src":"42695:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14443,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14433,"src":"42699:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4","typeString":"literal_string \"log(string,address,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14437,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42627:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42631:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42627:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42627:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14436,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"42611:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42611:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14446,"nodeType":"ExpressionStatement","src":"42611:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42532:3:13","parameters":{"id":14434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14427,"mutability":"mutable","name":"p0","nameLocation":"42550:2:13","nodeType":"VariableDeclaration","scope":14448,"src":"42536:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14426,"name":"string","nodeType":"ElementaryTypeName","src":"42536:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14429,"mutability":"mutable","name":"p1","nameLocation":"42562:2:13","nodeType":"VariableDeclaration","scope":14448,"src":"42554:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14428,"name":"address","nodeType":"ElementaryTypeName","src":"42554:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14431,"mutability":"mutable","name":"p2","nameLocation":"42574:2:13","nodeType":"VariableDeclaration","scope":14448,"src":"42566:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14430,"name":"address","nodeType":"ElementaryTypeName","src":"42566:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14433,"mutability":"mutable","name":"p3","nameLocation":"42583:2:13","nodeType":"VariableDeclaration","scope":14448,"src":"42578:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14432,"name":"bool","nodeType":"ElementaryTypeName","src":"42578:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"42535:51:13"},"returnParameters":{"id":14435,"nodeType":"ParameterList","parameters":[],"src":"42601:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14471,"nodeType":"FunctionDefinition","src":"42716:193:13","nodes":[],"body":{"id":14470,"nodeType":"Block","src":"42797:112:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c6164647265737329","id":14462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42847:37:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15","typeString":"literal_string \"log(string,address,address,address)\""},"value":"log(string,address,address,address)"},{"id":14463,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14450,"src":"42886:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14464,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14452,"src":"42890:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14465,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14454,"src":"42894:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14466,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14456,"src":"42898:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15","typeString":"literal_string \"log(string,address,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14460,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42823:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42827:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42823:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42823:78:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14459,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"42807:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42807:95:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14469,"nodeType":"ExpressionStatement","src":"42807:95:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42725:3:13","parameters":{"id":14457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14450,"mutability":"mutable","name":"p0","nameLocation":"42743:2:13","nodeType":"VariableDeclaration","scope":14471,"src":"42729:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14449,"name":"string","nodeType":"ElementaryTypeName","src":"42729:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14452,"mutability":"mutable","name":"p1","nameLocation":"42755:2:13","nodeType":"VariableDeclaration","scope":14471,"src":"42747:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14451,"name":"address","nodeType":"ElementaryTypeName","src":"42747:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14454,"mutability":"mutable","name":"p2","nameLocation":"42767:2:13","nodeType":"VariableDeclaration","scope":14471,"src":"42759:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14453,"name":"address","nodeType":"ElementaryTypeName","src":"42759:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14456,"mutability":"mutable","name":"p3","nameLocation":"42779:2:13","nodeType":"VariableDeclaration","scope":14471,"src":"42771:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14455,"name":"address","nodeType":"ElementaryTypeName","src":"42771:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42728:54:13"},"returnParameters":{"id":14458,"nodeType":"ParameterList","parameters":[],"src":"42797:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14494,"nodeType":"FunctionDefinition","src":"42915:164:13","nodes":[],"body":{"id":14493,"nodeType":"Block","src":"42978:101:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c75696e742c75696e7429","id":14485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43028:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_32dfa524f720faf836764864b46011dc5eb74e494d57e12b294a68048585d558","typeString":"literal_string \"log(bool,uint,uint,uint)\""},"value":"log(bool,uint,uint,uint)"},{"id":14486,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14473,"src":"43056:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14487,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14475,"src":"43060:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14488,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14477,"src":"43064:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14489,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14479,"src":"43068:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32dfa524f720faf836764864b46011dc5eb74e494d57e12b294a68048585d558","typeString":"literal_string \"log(bool,uint,uint,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14483,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43004:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43008:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43004:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43004:67:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14482,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"42988:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42988:84:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14492,"nodeType":"ExpressionStatement","src":"42988:84:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42924:3:13","parameters":{"id":14480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14473,"mutability":"mutable","name":"p0","nameLocation":"42933:2:13","nodeType":"VariableDeclaration","scope":14494,"src":"42928:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14472,"name":"bool","nodeType":"ElementaryTypeName","src":"42928:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14475,"mutability":"mutable","name":"p1","nameLocation":"42942:2:13","nodeType":"VariableDeclaration","scope":14494,"src":"42937:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14474,"name":"uint","nodeType":"ElementaryTypeName","src":"42937:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14477,"mutability":"mutable","name":"p2","nameLocation":"42951:2:13","nodeType":"VariableDeclaration","scope":14494,"src":"42946:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14476,"name":"uint","nodeType":"ElementaryTypeName","src":"42946:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14479,"mutability":"mutable","name":"p3","nameLocation":"42960:2:13","nodeType":"VariableDeclaration","scope":14494,"src":"42955:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14478,"name":"uint","nodeType":"ElementaryTypeName","src":"42955:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42927:36:13"},"returnParameters":{"id":14481,"nodeType":"ParameterList","parameters":[],"src":"42978:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14517,"nodeType":"FunctionDefinition","src":"43085:175:13","nodes":[],"body":{"id":14516,"nodeType":"Block","src":"43157:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c75696e742c737472696e6729","id":14508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43207:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_da0666c89b01999f5c8980ce90fe9d0a367a350fd8d2ec7d1f94587b6281ebd3","typeString":"literal_string \"log(bool,uint,uint,string)\""},"value":"log(bool,uint,uint,string)"},{"id":14509,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14496,"src":"43237:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14510,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14498,"src":"43241:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14511,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14500,"src":"43245:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14512,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14502,"src":"43249:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da0666c89b01999f5c8980ce90fe9d0a367a350fd8d2ec7d1f94587b6281ebd3","typeString":"literal_string \"log(bool,uint,uint,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14506,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43183:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43187:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43183:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43183:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14505,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"43167:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43167:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14515,"nodeType":"ExpressionStatement","src":"43167:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43094:3:13","parameters":{"id":14503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14496,"mutability":"mutable","name":"p0","nameLocation":"43103:2:13","nodeType":"VariableDeclaration","scope":14517,"src":"43098:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14495,"name":"bool","nodeType":"ElementaryTypeName","src":"43098:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14498,"mutability":"mutable","name":"p1","nameLocation":"43112:2:13","nodeType":"VariableDeclaration","scope":14517,"src":"43107:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14497,"name":"uint","nodeType":"ElementaryTypeName","src":"43107:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14500,"mutability":"mutable","name":"p2","nameLocation":"43121:2:13","nodeType":"VariableDeclaration","scope":14517,"src":"43116:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14499,"name":"uint","nodeType":"ElementaryTypeName","src":"43116:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14502,"mutability":"mutable","name":"p3","nameLocation":"43139:2:13","nodeType":"VariableDeclaration","scope":14517,"src":"43125:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14501,"name":"string","nodeType":"ElementaryTypeName","src":"43125:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43097:45:13"},"returnParameters":{"id":14504,"nodeType":"ParameterList","parameters":[],"src":"43157:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14540,"nodeType":"FunctionDefinition","src":"43266:164:13","nodes":[],"body":{"id":14539,"nodeType":"Block","src":"43329:101:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c75696e742c626f6f6c29","id":14531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43379:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a41d81dec511172fa866e067fea22fe074eb6260a116ec078e2e0e79a7fd8ef2","typeString":"literal_string \"log(bool,uint,uint,bool)\""},"value":"log(bool,uint,uint,bool)"},{"id":14532,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14519,"src":"43407:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14533,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14521,"src":"43411:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14534,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14523,"src":"43415:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14535,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14525,"src":"43419:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a41d81dec511172fa866e067fea22fe074eb6260a116ec078e2e0e79a7fd8ef2","typeString":"literal_string \"log(bool,uint,uint,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14529,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43355:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43359:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43355:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43355:67:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14528,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"43339:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43339:84:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14538,"nodeType":"ExpressionStatement","src":"43339:84:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43275:3:13","parameters":{"id":14526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14519,"mutability":"mutable","name":"p0","nameLocation":"43284:2:13","nodeType":"VariableDeclaration","scope":14540,"src":"43279:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14518,"name":"bool","nodeType":"ElementaryTypeName","src":"43279:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14521,"mutability":"mutable","name":"p1","nameLocation":"43293:2:13","nodeType":"VariableDeclaration","scope":14540,"src":"43288:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14520,"name":"uint","nodeType":"ElementaryTypeName","src":"43288:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14523,"mutability":"mutable","name":"p2","nameLocation":"43302:2:13","nodeType":"VariableDeclaration","scope":14540,"src":"43297:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14522,"name":"uint","nodeType":"ElementaryTypeName","src":"43297:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14525,"mutability":"mutable","name":"p3","nameLocation":"43311:2:13","nodeType":"VariableDeclaration","scope":14540,"src":"43306:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14524,"name":"bool","nodeType":"ElementaryTypeName","src":"43306:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"43278:36:13"},"returnParameters":{"id":14527,"nodeType":"ParameterList","parameters":[],"src":"43329:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14563,"nodeType":"FunctionDefinition","src":"43436:170:13","nodes":[],"body":{"id":14562,"nodeType":"Block","src":"43502:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c75696e742c6164647265737329","id":14554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43552:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_f161b2216765f7746c6d62a843721a4e56fa83880464de0ff958770fd9704e33","typeString":"literal_string \"log(bool,uint,uint,address)\""},"value":"log(bool,uint,uint,address)"},{"id":14555,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14542,"src":"43583:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14556,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14544,"src":"43587:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14557,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14546,"src":"43591:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14558,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14548,"src":"43595:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f161b2216765f7746c6d62a843721a4e56fa83880464de0ff958770fd9704e33","typeString":"literal_string \"log(bool,uint,uint,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14552,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43528:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43532:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43528:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43528:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14551,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"43512:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43512:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14561,"nodeType":"ExpressionStatement","src":"43512:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43445:3:13","parameters":{"id":14549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14542,"mutability":"mutable","name":"p0","nameLocation":"43454:2:13","nodeType":"VariableDeclaration","scope":14563,"src":"43449:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14541,"name":"bool","nodeType":"ElementaryTypeName","src":"43449:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14544,"mutability":"mutable","name":"p1","nameLocation":"43463:2:13","nodeType":"VariableDeclaration","scope":14563,"src":"43458:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14543,"name":"uint","nodeType":"ElementaryTypeName","src":"43458:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14546,"mutability":"mutable","name":"p2","nameLocation":"43472:2:13","nodeType":"VariableDeclaration","scope":14563,"src":"43467:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14545,"name":"uint","nodeType":"ElementaryTypeName","src":"43467:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14548,"mutability":"mutable","name":"p3","nameLocation":"43484:2:13","nodeType":"VariableDeclaration","scope":14563,"src":"43476:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14547,"name":"address","nodeType":"ElementaryTypeName","src":"43476:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"43448:39:13"},"returnParameters":{"id":14550,"nodeType":"ParameterList","parameters":[],"src":"43502:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14586,"nodeType":"FunctionDefinition","src":"43612:175:13","nodes":[],"body":{"id":14585,"nodeType":"Block","src":"43684:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c737472696e672c75696e7429","id":14577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43734:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_4180011b79de474cdb825b6c4cfbc6d05927b06d92ab7c90ba7ff48d251e1813","typeString":"literal_string \"log(bool,uint,string,uint)\""},"value":"log(bool,uint,string,uint)"},{"id":14578,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14565,"src":"43764:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14579,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14567,"src":"43768:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14580,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14569,"src":"43772:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14581,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14571,"src":"43776:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4180011b79de474cdb825b6c4cfbc6d05927b06d92ab7c90ba7ff48d251e1813","typeString":"literal_string \"log(bool,uint,string,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14575,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43710:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43714:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43710:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43710:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14574,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"43694:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43694:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14584,"nodeType":"ExpressionStatement","src":"43694:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43621:3:13","parameters":{"id":14572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14565,"mutability":"mutable","name":"p0","nameLocation":"43630:2:13","nodeType":"VariableDeclaration","scope":14586,"src":"43625:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14564,"name":"bool","nodeType":"ElementaryTypeName","src":"43625:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14567,"mutability":"mutable","name":"p1","nameLocation":"43639:2:13","nodeType":"VariableDeclaration","scope":14586,"src":"43634:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14566,"name":"uint","nodeType":"ElementaryTypeName","src":"43634:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14569,"mutability":"mutable","name":"p2","nameLocation":"43657:2:13","nodeType":"VariableDeclaration","scope":14586,"src":"43643:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14568,"name":"string","nodeType":"ElementaryTypeName","src":"43643:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14571,"mutability":"mutable","name":"p3","nameLocation":"43666:2:13","nodeType":"VariableDeclaration","scope":14586,"src":"43661:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14570,"name":"uint","nodeType":"ElementaryTypeName","src":"43661:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"43624:45:13"},"returnParameters":{"id":14573,"nodeType":"ParameterList","parameters":[],"src":"43684:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14609,"nodeType":"FunctionDefinition","src":"43793:186:13","nodes":[],"body":{"id":14608,"nodeType":"Block","src":"43874:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c737472696e672c737472696e6729","id":14600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43924:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_d32a654812cf9bc5514c83d6adb00987a26a725c531c254b4dfe4eef4cdfc8ee","typeString":"literal_string \"log(bool,uint,string,string)\""},"value":"log(bool,uint,string,string)"},{"id":14601,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14588,"src":"43956:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14602,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14590,"src":"43960:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14603,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14592,"src":"43964:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14604,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14594,"src":"43968:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d32a654812cf9bc5514c83d6adb00987a26a725c531c254b4dfe4eef4cdfc8ee","typeString":"literal_string \"log(bool,uint,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14598,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43900:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43904:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43900:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43900:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14597,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"43884:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43884:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14607,"nodeType":"ExpressionStatement","src":"43884:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43802:3:13","parameters":{"id":14595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14588,"mutability":"mutable","name":"p0","nameLocation":"43811:2:13","nodeType":"VariableDeclaration","scope":14609,"src":"43806:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14587,"name":"bool","nodeType":"ElementaryTypeName","src":"43806:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14590,"mutability":"mutable","name":"p1","nameLocation":"43820:2:13","nodeType":"VariableDeclaration","scope":14609,"src":"43815:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14589,"name":"uint","nodeType":"ElementaryTypeName","src":"43815:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14592,"mutability":"mutable","name":"p2","nameLocation":"43838:2:13","nodeType":"VariableDeclaration","scope":14609,"src":"43824:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14591,"name":"string","nodeType":"ElementaryTypeName","src":"43824:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14594,"mutability":"mutable","name":"p3","nameLocation":"43856:2:13","nodeType":"VariableDeclaration","scope":14609,"src":"43842:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14593,"name":"string","nodeType":"ElementaryTypeName","src":"43842:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43805:54:13"},"returnParameters":{"id":14596,"nodeType":"ParameterList","parameters":[],"src":"43874:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14632,"nodeType":"FunctionDefinition","src":"43985:175:13","nodes":[],"body":{"id":14631,"nodeType":"Block","src":"44057:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c737472696e672c626f6f6c29","id":14623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44107:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_91d2f813beb255a90e7ea595fb27355b60d93c3f818aac6b4c27388d34e0ea16","typeString":"literal_string \"log(bool,uint,string,bool)\""},"value":"log(bool,uint,string,bool)"},{"id":14624,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14611,"src":"44137:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14625,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14613,"src":"44141:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14626,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14615,"src":"44145:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14627,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14617,"src":"44149:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91d2f813beb255a90e7ea595fb27355b60d93c3f818aac6b4c27388d34e0ea16","typeString":"literal_string \"log(bool,uint,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14621,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44083:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44087:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44083:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44083:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14620,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"44067:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44067:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14630,"nodeType":"ExpressionStatement","src":"44067:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43994:3:13","parameters":{"id":14618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14611,"mutability":"mutable","name":"p0","nameLocation":"44003:2:13","nodeType":"VariableDeclaration","scope":14632,"src":"43998:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14610,"name":"bool","nodeType":"ElementaryTypeName","src":"43998:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14613,"mutability":"mutable","name":"p1","nameLocation":"44012:2:13","nodeType":"VariableDeclaration","scope":14632,"src":"44007:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14612,"name":"uint","nodeType":"ElementaryTypeName","src":"44007:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14615,"mutability":"mutable","name":"p2","nameLocation":"44030:2:13","nodeType":"VariableDeclaration","scope":14632,"src":"44016:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14614,"name":"string","nodeType":"ElementaryTypeName","src":"44016:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14617,"mutability":"mutable","name":"p3","nameLocation":"44039:2:13","nodeType":"VariableDeclaration","scope":14632,"src":"44034:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14616,"name":"bool","nodeType":"ElementaryTypeName","src":"44034:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"43997:45:13"},"returnParameters":{"id":14619,"nodeType":"ParameterList","parameters":[],"src":"44057:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14655,"nodeType":"FunctionDefinition","src":"44166:181:13","nodes":[],"body":{"id":14654,"nodeType":"Block","src":"44241:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c737472696e672c6164647265737329","id":14646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44291:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5c70d29969a9ad21bdf8986348e5dc44eea151f64e0f90231a45219c4d0e3d5","typeString":"literal_string \"log(bool,uint,string,address)\""},"value":"log(bool,uint,string,address)"},{"id":14647,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14634,"src":"44324:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14648,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14636,"src":"44328:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14649,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14638,"src":"44332:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14650,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14640,"src":"44336:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5c70d29969a9ad21bdf8986348e5dc44eea151f64e0f90231a45219c4d0e3d5","typeString":"literal_string \"log(bool,uint,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14644,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44267:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14645,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44271:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44267:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44267:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14643,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"44251:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44251:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14653,"nodeType":"ExpressionStatement","src":"44251:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44175:3:13","parameters":{"id":14641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14634,"mutability":"mutable","name":"p0","nameLocation":"44184:2:13","nodeType":"VariableDeclaration","scope":14655,"src":"44179:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14633,"name":"bool","nodeType":"ElementaryTypeName","src":"44179:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14636,"mutability":"mutable","name":"p1","nameLocation":"44193:2:13","nodeType":"VariableDeclaration","scope":14655,"src":"44188:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14635,"name":"uint","nodeType":"ElementaryTypeName","src":"44188:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14638,"mutability":"mutable","name":"p2","nameLocation":"44211:2:13","nodeType":"VariableDeclaration","scope":14655,"src":"44197:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14637,"name":"string","nodeType":"ElementaryTypeName","src":"44197:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14640,"mutability":"mutable","name":"p3","nameLocation":"44223:2:13","nodeType":"VariableDeclaration","scope":14655,"src":"44215:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14639,"name":"address","nodeType":"ElementaryTypeName","src":"44215:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"44178:48:13"},"returnParameters":{"id":14642,"nodeType":"ParameterList","parameters":[],"src":"44241:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14678,"nodeType":"FunctionDefinition","src":"44353:164:13","nodes":[],"body":{"id":14677,"nodeType":"Block","src":"44416:101:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c626f6f6c2c75696e7429","id":14669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44466:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3de5593988099d08808f80d2a972ea3da18ecd746f0a3e437c530efaad65aa0","typeString":"literal_string \"log(bool,uint,bool,uint)\""},"value":"log(bool,uint,bool,uint)"},{"id":14670,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14657,"src":"44494:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14671,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14659,"src":"44498:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14672,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14661,"src":"44502:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14673,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14663,"src":"44506:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d3de5593988099d08808f80d2a972ea3da18ecd746f0a3e437c530efaad65aa0","typeString":"literal_string \"log(bool,uint,bool,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14667,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44442:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44446:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44442:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44442:67:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14666,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"44426:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44426:84:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14676,"nodeType":"ExpressionStatement","src":"44426:84:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44362:3:13","parameters":{"id":14664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14657,"mutability":"mutable","name":"p0","nameLocation":"44371:2:13","nodeType":"VariableDeclaration","scope":14678,"src":"44366:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14656,"name":"bool","nodeType":"ElementaryTypeName","src":"44366:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14659,"mutability":"mutable","name":"p1","nameLocation":"44380:2:13","nodeType":"VariableDeclaration","scope":14678,"src":"44375:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14658,"name":"uint","nodeType":"ElementaryTypeName","src":"44375:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14661,"mutability":"mutable","name":"p2","nameLocation":"44389:2:13","nodeType":"VariableDeclaration","scope":14678,"src":"44384:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14660,"name":"bool","nodeType":"ElementaryTypeName","src":"44384:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14663,"mutability":"mutable","name":"p3","nameLocation":"44398:2:13","nodeType":"VariableDeclaration","scope":14678,"src":"44393:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14662,"name":"uint","nodeType":"ElementaryTypeName","src":"44393:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"44365:36:13"},"returnParameters":{"id":14665,"nodeType":"ParameterList","parameters":[],"src":"44416:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14701,"nodeType":"FunctionDefinition","src":"44523:175:13","nodes":[],"body":{"id":14700,"nodeType":"Block","src":"44595:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c626f6f6c2c737472696e6729","id":14692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44645:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6d569d433e69694879a799e3777d59bc29ee89dcbaf739de9b283882fd259ad","typeString":"literal_string \"log(bool,uint,bool,string)\""},"value":"log(bool,uint,bool,string)"},{"id":14693,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14680,"src":"44675:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14694,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14682,"src":"44679:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14695,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14684,"src":"44683:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14696,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14686,"src":"44687:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6d569d433e69694879a799e3777d59bc29ee89dcbaf739de9b283882fd259ad","typeString":"literal_string \"log(bool,uint,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14690,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44621:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44625:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44621:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44621:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14689,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"44605:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44605:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14699,"nodeType":"ExpressionStatement","src":"44605:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44532:3:13","parameters":{"id":14687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14680,"mutability":"mutable","name":"p0","nameLocation":"44541:2:13","nodeType":"VariableDeclaration","scope":14701,"src":"44536:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14679,"name":"bool","nodeType":"ElementaryTypeName","src":"44536:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14682,"mutability":"mutable","name":"p1","nameLocation":"44550:2:13","nodeType":"VariableDeclaration","scope":14701,"src":"44545:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14681,"name":"uint","nodeType":"ElementaryTypeName","src":"44545:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14684,"mutability":"mutable","name":"p2","nameLocation":"44559:2:13","nodeType":"VariableDeclaration","scope":14701,"src":"44554:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14683,"name":"bool","nodeType":"ElementaryTypeName","src":"44554:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14686,"mutability":"mutable","name":"p3","nameLocation":"44577:2:13","nodeType":"VariableDeclaration","scope":14701,"src":"44563:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14685,"name":"string","nodeType":"ElementaryTypeName","src":"44563:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"44535:45:13"},"returnParameters":{"id":14688,"nodeType":"ParameterList","parameters":[],"src":"44595:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14724,"nodeType":"FunctionDefinition","src":"44704:164:13","nodes":[],"body":{"id":14723,"nodeType":"Block","src":"44767:101:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c626f6f6c2c626f6f6c29","id":14715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44817:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_9e01f7417c5ff66a2399364b03788fbf8437045d38acf377fab727a3440df7be","typeString":"literal_string \"log(bool,uint,bool,bool)\""},"value":"log(bool,uint,bool,bool)"},{"id":14716,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14703,"src":"44845:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14717,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14705,"src":"44849:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14718,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14707,"src":"44853:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14719,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14709,"src":"44857:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9e01f7417c5ff66a2399364b03788fbf8437045d38acf377fab727a3440df7be","typeString":"literal_string \"log(bool,uint,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14713,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44793:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44797:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44793:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44793:67:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14712,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"44777:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44777:84:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14722,"nodeType":"ExpressionStatement","src":"44777:84:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44713:3:13","parameters":{"id":14710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14703,"mutability":"mutable","name":"p0","nameLocation":"44722:2:13","nodeType":"VariableDeclaration","scope":14724,"src":"44717:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14702,"name":"bool","nodeType":"ElementaryTypeName","src":"44717:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14705,"mutability":"mutable","name":"p1","nameLocation":"44731:2:13","nodeType":"VariableDeclaration","scope":14724,"src":"44726:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14704,"name":"uint","nodeType":"ElementaryTypeName","src":"44726:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14707,"mutability":"mutable","name":"p2","nameLocation":"44740:2:13","nodeType":"VariableDeclaration","scope":14724,"src":"44735:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14706,"name":"bool","nodeType":"ElementaryTypeName","src":"44735:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14709,"mutability":"mutable","name":"p3","nameLocation":"44749:2:13","nodeType":"VariableDeclaration","scope":14724,"src":"44744:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14708,"name":"bool","nodeType":"ElementaryTypeName","src":"44744:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"44716:36:13"},"returnParameters":{"id":14711,"nodeType":"ParameterList","parameters":[],"src":"44767:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14747,"nodeType":"FunctionDefinition","src":"44874:170:13","nodes":[],"body":{"id":14746,"nodeType":"Block","src":"44940:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c626f6f6c2c6164647265737329","id":14738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44990:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_4267c7f8f9987b1bc934e31e016f4d182f67ab95e55c5567fbc71b4f01a83f4b","typeString":"literal_string \"log(bool,uint,bool,address)\""},"value":"log(bool,uint,bool,address)"},{"id":14739,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14726,"src":"45021:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14740,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14728,"src":"45025:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14741,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14730,"src":"45029:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14742,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14732,"src":"45033:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4267c7f8f9987b1bc934e31e016f4d182f67ab95e55c5567fbc71b4f01a83f4b","typeString":"literal_string \"log(bool,uint,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14736,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44966:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14737,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44970:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44966:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44966:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14735,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"44950:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44950:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14745,"nodeType":"ExpressionStatement","src":"44950:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44883:3:13","parameters":{"id":14733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14726,"mutability":"mutable","name":"p0","nameLocation":"44892:2:13","nodeType":"VariableDeclaration","scope":14747,"src":"44887:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14725,"name":"bool","nodeType":"ElementaryTypeName","src":"44887:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14728,"mutability":"mutable","name":"p1","nameLocation":"44901:2:13","nodeType":"VariableDeclaration","scope":14747,"src":"44896:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14727,"name":"uint","nodeType":"ElementaryTypeName","src":"44896:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14730,"mutability":"mutable","name":"p2","nameLocation":"44910:2:13","nodeType":"VariableDeclaration","scope":14747,"src":"44905:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14729,"name":"bool","nodeType":"ElementaryTypeName","src":"44905:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14732,"mutability":"mutable","name":"p3","nameLocation":"44922:2:13","nodeType":"VariableDeclaration","scope":14747,"src":"44914:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14731,"name":"address","nodeType":"ElementaryTypeName","src":"44914:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"44886:39:13"},"returnParameters":{"id":14734,"nodeType":"ParameterList","parameters":[],"src":"44940:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14770,"nodeType":"FunctionDefinition","src":"45050:170:13","nodes":[],"body":{"id":14769,"nodeType":"Block","src":"45116:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c616464726573732c75696e7429","id":14761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45166:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_caa5236acb25f4f5a01ec5f570d99d895d397c7e9fd20ed31c9c33fa8a17f26d","typeString":"literal_string \"log(bool,uint,address,uint)\""},"value":"log(bool,uint,address,uint)"},{"id":14762,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14749,"src":"45197:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14763,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14751,"src":"45201:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14764,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14753,"src":"45205:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14765,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14755,"src":"45209:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_caa5236acb25f4f5a01ec5f570d99d895d397c7e9fd20ed31c9c33fa8a17f26d","typeString":"literal_string \"log(bool,uint,address,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14759,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45142:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45146:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45142:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45142:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14758,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"45126:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45126:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14768,"nodeType":"ExpressionStatement","src":"45126:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45059:3:13","parameters":{"id":14756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14749,"mutability":"mutable","name":"p0","nameLocation":"45068:2:13","nodeType":"VariableDeclaration","scope":14770,"src":"45063:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14748,"name":"bool","nodeType":"ElementaryTypeName","src":"45063:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14751,"mutability":"mutable","name":"p1","nameLocation":"45077:2:13","nodeType":"VariableDeclaration","scope":14770,"src":"45072:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14750,"name":"uint","nodeType":"ElementaryTypeName","src":"45072:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14753,"mutability":"mutable","name":"p2","nameLocation":"45089:2:13","nodeType":"VariableDeclaration","scope":14770,"src":"45081:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14752,"name":"address","nodeType":"ElementaryTypeName","src":"45081:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14755,"mutability":"mutable","name":"p3","nameLocation":"45098:2:13","nodeType":"VariableDeclaration","scope":14770,"src":"45093:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14754,"name":"uint","nodeType":"ElementaryTypeName","src":"45093:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"45062:39:13"},"returnParameters":{"id":14757,"nodeType":"ParameterList","parameters":[],"src":"45116:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14793,"nodeType":"FunctionDefinition","src":"45226:181:13","nodes":[],"body":{"id":14792,"nodeType":"Block","src":"45301:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c616464726573732c737472696e6729","id":14784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45351:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_180913415ccbde45e0d2184e3dd2387bed86df0066bd73fcb896bc02a6226689","typeString":"literal_string \"log(bool,uint,address,string)\""},"value":"log(bool,uint,address,string)"},{"id":14785,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14772,"src":"45384:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14786,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14774,"src":"45388:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14787,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14776,"src":"45392:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14788,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14778,"src":"45396:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_180913415ccbde45e0d2184e3dd2387bed86df0066bd73fcb896bc02a6226689","typeString":"literal_string \"log(bool,uint,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14782,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45327:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14783,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45331:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45327:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45327:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14781,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"45311:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45311:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14791,"nodeType":"ExpressionStatement","src":"45311:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45235:3:13","parameters":{"id":14779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14772,"mutability":"mutable","name":"p0","nameLocation":"45244:2:13","nodeType":"VariableDeclaration","scope":14793,"src":"45239:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14771,"name":"bool","nodeType":"ElementaryTypeName","src":"45239:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14774,"mutability":"mutable","name":"p1","nameLocation":"45253:2:13","nodeType":"VariableDeclaration","scope":14793,"src":"45248:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14773,"name":"uint","nodeType":"ElementaryTypeName","src":"45248:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14776,"mutability":"mutable","name":"p2","nameLocation":"45265:2:13","nodeType":"VariableDeclaration","scope":14793,"src":"45257:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14775,"name":"address","nodeType":"ElementaryTypeName","src":"45257:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14778,"mutability":"mutable","name":"p3","nameLocation":"45283:2:13","nodeType":"VariableDeclaration","scope":14793,"src":"45269:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14777,"name":"string","nodeType":"ElementaryTypeName","src":"45269:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"45238:48:13"},"returnParameters":{"id":14780,"nodeType":"ParameterList","parameters":[],"src":"45301:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14816,"nodeType":"FunctionDefinition","src":"45413:170:13","nodes":[],"body":{"id":14815,"nodeType":"Block","src":"45479:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c616464726573732c626f6f6c29","id":14807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45529:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_65adf4082cd731bd1252f957eddeecdbdcf11e48975b5ac20d902fcb218153fa","typeString":"literal_string \"log(bool,uint,address,bool)\""},"value":"log(bool,uint,address,bool)"},{"id":14808,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14795,"src":"45560:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14809,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14797,"src":"45564:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14810,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14799,"src":"45568:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14811,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14801,"src":"45572:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_65adf4082cd731bd1252f957eddeecdbdcf11e48975b5ac20d902fcb218153fa","typeString":"literal_string \"log(bool,uint,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14805,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45505:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14806,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45509:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45505:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45505:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14804,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"45489:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45489:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14814,"nodeType":"ExpressionStatement","src":"45489:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45422:3:13","parameters":{"id":14802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14795,"mutability":"mutable","name":"p0","nameLocation":"45431:2:13","nodeType":"VariableDeclaration","scope":14816,"src":"45426:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14794,"name":"bool","nodeType":"ElementaryTypeName","src":"45426:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14797,"mutability":"mutable","name":"p1","nameLocation":"45440:2:13","nodeType":"VariableDeclaration","scope":14816,"src":"45435:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14796,"name":"uint","nodeType":"ElementaryTypeName","src":"45435:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14799,"mutability":"mutable","name":"p2","nameLocation":"45452:2:13","nodeType":"VariableDeclaration","scope":14816,"src":"45444:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14798,"name":"address","nodeType":"ElementaryTypeName","src":"45444:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14801,"mutability":"mutable","name":"p3","nameLocation":"45461:2:13","nodeType":"VariableDeclaration","scope":14816,"src":"45456:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14800,"name":"bool","nodeType":"ElementaryTypeName","src":"45456:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"45425:39:13"},"returnParameters":{"id":14803,"nodeType":"ParameterList","parameters":[],"src":"45479:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14839,"nodeType":"FunctionDefinition","src":"45589:176:13","nodes":[],"body":{"id":14838,"nodeType":"Block","src":"45658:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c616464726573732c6164647265737329","id":14830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45708:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a2f90aa07fc9781ea213028ce9aef0a44d6a31a77e2f4d54d97a0d808348d5d","typeString":"literal_string \"log(bool,uint,address,address)\""},"value":"log(bool,uint,address,address)"},{"id":14831,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14818,"src":"45742:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14832,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14820,"src":"45746:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14833,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14822,"src":"45750:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14834,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14824,"src":"45754:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8a2f90aa07fc9781ea213028ce9aef0a44d6a31a77e2f4d54d97a0d808348d5d","typeString":"literal_string \"log(bool,uint,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14828,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45684:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14829,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45688:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45684:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45684:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14827,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"45668:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45668:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14837,"nodeType":"ExpressionStatement","src":"45668:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45598:3:13","parameters":{"id":14825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14818,"mutability":"mutable","name":"p0","nameLocation":"45607:2:13","nodeType":"VariableDeclaration","scope":14839,"src":"45602:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14817,"name":"bool","nodeType":"ElementaryTypeName","src":"45602:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14820,"mutability":"mutable","name":"p1","nameLocation":"45616:2:13","nodeType":"VariableDeclaration","scope":14839,"src":"45611:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14819,"name":"uint","nodeType":"ElementaryTypeName","src":"45611:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14822,"mutability":"mutable","name":"p2","nameLocation":"45628:2:13","nodeType":"VariableDeclaration","scope":14839,"src":"45620:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14821,"name":"address","nodeType":"ElementaryTypeName","src":"45620:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14824,"mutability":"mutable","name":"p3","nameLocation":"45640:2:13","nodeType":"VariableDeclaration","scope":14839,"src":"45632:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14823,"name":"address","nodeType":"ElementaryTypeName","src":"45632:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"45601:42:13"},"returnParameters":{"id":14826,"nodeType":"ParameterList","parameters":[],"src":"45658:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14862,"nodeType":"FunctionDefinition","src":"45771:175:13","nodes":[],"body":{"id":14861,"nodeType":"Block","src":"45843:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e742c75696e7429","id":14853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45893:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e4ae86e71c7c77322d634e39fba7bc2a7e4fbe918bce10fe47326050a13b7c9","typeString":"literal_string \"log(bool,string,uint,uint)\""},"value":"log(bool,string,uint,uint)"},{"id":14854,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14841,"src":"45923:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14855,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14843,"src":"45927:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14856,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14845,"src":"45931:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14857,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14847,"src":"45935:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e4ae86e71c7c77322d634e39fba7bc2a7e4fbe918bce10fe47326050a13b7c9","typeString":"literal_string \"log(bool,string,uint,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14851,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45869:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45873:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45869:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45869:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14850,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"45853:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45853:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14860,"nodeType":"ExpressionStatement","src":"45853:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45780:3:13","parameters":{"id":14848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14841,"mutability":"mutable","name":"p0","nameLocation":"45789:2:13","nodeType":"VariableDeclaration","scope":14862,"src":"45784:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14840,"name":"bool","nodeType":"ElementaryTypeName","src":"45784:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14843,"mutability":"mutable","name":"p1","nameLocation":"45807:2:13","nodeType":"VariableDeclaration","scope":14862,"src":"45793:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14842,"name":"string","nodeType":"ElementaryTypeName","src":"45793:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14845,"mutability":"mutable","name":"p2","nameLocation":"45816:2:13","nodeType":"VariableDeclaration","scope":14862,"src":"45811:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14844,"name":"uint","nodeType":"ElementaryTypeName","src":"45811:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14847,"mutability":"mutable","name":"p3","nameLocation":"45825:2:13","nodeType":"VariableDeclaration","scope":14862,"src":"45820:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14846,"name":"uint","nodeType":"ElementaryTypeName","src":"45820:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"45783:45:13"},"returnParameters":{"id":14849,"nodeType":"ParameterList","parameters":[],"src":"45843:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14885,"nodeType":"FunctionDefinition","src":"45952:186:13","nodes":[],"body":{"id":14884,"nodeType":"Block","src":"46033:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e742c737472696e6729","id":14876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46083:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_77a1abed9f9fbc44023408083dd5c1cf42b0b566799470c6ab535b12d0f8f649","typeString":"literal_string \"log(bool,string,uint,string)\""},"value":"log(bool,string,uint,string)"},{"id":14877,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14864,"src":"46115:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14878,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14866,"src":"46119:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14879,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14868,"src":"46123:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14880,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14870,"src":"46127:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_77a1abed9f9fbc44023408083dd5c1cf42b0b566799470c6ab535b12d0f8f649","typeString":"literal_string \"log(bool,string,uint,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14874,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46059:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46063:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46059:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46059:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14873,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"46043:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46043:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14883,"nodeType":"ExpressionStatement","src":"46043:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45961:3:13","parameters":{"id":14871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14864,"mutability":"mutable","name":"p0","nameLocation":"45970:2:13","nodeType":"VariableDeclaration","scope":14885,"src":"45965:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14863,"name":"bool","nodeType":"ElementaryTypeName","src":"45965:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14866,"mutability":"mutable","name":"p1","nameLocation":"45988:2:13","nodeType":"VariableDeclaration","scope":14885,"src":"45974:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14865,"name":"string","nodeType":"ElementaryTypeName","src":"45974:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14868,"mutability":"mutable","name":"p2","nameLocation":"45997:2:13","nodeType":"VariableDeclaration","scope":14885,"src":"45992:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14867,"name":"uint","nodeType":"ElementaryTypeName","src":"45992:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14870,"mutability":"mutable","name":"p3","nameLocation":"46015:2:13","nodeType":"VariableDeclaration","scope":14885,"src":"46001:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14869,"name":"string","nodeType":"ElementaryTypeName","src":"46001:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"45964:54:13"},"returnParameters":{"id":14872,"nodeType":"ParameterList","parameters":[],"src":"46033:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14908,"nodeType":"FunctionDefinition","src":"46144:175:13","nodes":[],"body":{"id":14907,"nodeType":"Block","src":"46216:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e742c626f6f6c29","id":14899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46266:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_20bbc9af7c6bae926ffd73678c9130310d497610a5c76e6e2ae48edff96f38a8","typeString":"literal_string \"log(bool,string,uint,bool)\""},"value":"log(bool,string,uint,bool)"},{"id":14900,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14887,"src":"46296:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14901,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14889,"src":"46300:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14902,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14891,"src":"46304:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14903,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14893,"src":"46308:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20bbc9af7c6bae926ffd73678c9130310d497610a5c76e6e2ae48edff96f38a8","typeString":"literal_string \"log(bool,string,uint,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14897,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46242:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46246:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46242:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46242:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14896,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"46226:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46226:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14906,"nodeType":"ExpressionStatement","src":"46226:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46153:3:13","parameters":{"id":14894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14887,"mutability":"mutable","name":"p0","nameLocation":"46162:2:13","nodeType":"VariableDeclaration","scope":14908,"src":"46157:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14886,"name":"bool","nodeType":"ElementaryTypeName","src":"46157:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14889,"mutability":"mutable","name":"p1","nameLocation":"46180:2:13","nodeType":"VariableDeclaration","scope":14908,"src":"46166:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14888,"name":"string","nodeType":"ElementaryTypeName","src":"46166:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14891,"mutability":"mutable","name":"p2","nameLocation":"46189:2:13","nodeType":"VariableDeclaration","scope":14908,"src":"46184:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14890,"name":"uint","nodeType":"ElementaryTypeName","src":"46184:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14893,"mutability":"mutable","name":"p3","nameLocation":"46198:2:13","nodeType":"VariableDeclaration","scope":14908,"src":"46193:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14892,"name":"bool","nodeType":"ElementaryTypeName","src":"46193:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46156:45:13"},"returnParameters":{"id":14895,"nodeType":"ParameterList","parameters":[],"src":"46216:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14931,"nodeType":"FunctionDefinition","src":"46325:181:13","nodes":[],"body":{"id":14930,"nodeType":"Block","src":"46400:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e742c6164647265737329","id":14922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46450:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_5b22b938264abfc98de8ea025ac5bd87df03cbffd23b96cdfe194e0ef6fb136a","typeString":"literal_string \"log(bool,string,uint,address)\""},"value":"log(bool,string,uint,address)"},{"id":14923,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14910,"src":"46483:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14924,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14912,"src":"46487:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14925,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14914,"src":"46491:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14926,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14916,"src":"46495:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5b22b938264abfc98de8ea025ac5bd87df03cbffd23b96cdfe194e0ef6fb136a","typeString":"literal_string \"log(bool,string,uint,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14920,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46426:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46430:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46426:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46426:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14919,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"46410:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46410:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14929,"nodeType":"ExpressionStatement","src":"46410:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46334:3:13","parameters":{"id":14917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14910,"mutability":"mutable","name":"p0","nameLocation":"46343:2:13","nodeType":"VariableDeclaration","scope":14931,"src":"46338:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14909,"name":"bool","nodeType":"ElementaryTypeName","src":"46338:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14912,"mutability":"mutable","name":"p1","nameLocation":"46361:2:13","nodeType":"VariableDeclaration","scope":14931,"src":"46347:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14911,"name":"string","nodeType":"ElementaryTypeName","src":"46347:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14914,"mutability":"mutable","name":"p2","nameLocation":"46370:2:13","nodeType":"VariableDeclaration","scope":14931,"src":"46365:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14913,"name":"uint","nodeType":"ElementaryTypeName","src":"46365:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14916,"mutability":"mutable","name":"p3","nameLocation":"46382:2:13","nodeType":"VariableDeclaration","scope":14931,"src":"46374:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14915,"name":"address","nodeType":"ElementaryTypeName","src":"46374:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"46337:48:13"},"returnParameters":{"id":14918,"nodeType":"ParameterList","parameters":[],"src":"46400:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14954,"nodeType":"FunctionDefinition","src":"46512:186:13","nodes":[],"body":{"id":14953,"nodeType":"Block","src":"46593:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c75696e7429","id":14945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46643:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ddb259214a75c0fc75757e8e19b1cf1c4ec17a5eef635b4715f04b86884d5df","typeString":"literal_string \"log(bool,string,string,uint)\""},"value":"log(bool,string,string,uint)"},{"id":14946,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14933,"src":"46675:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14947,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14935,"src":"46679:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14948,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14937,"src":"46683:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14949,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14939,"src":"46687:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ddb259214a75c0fc75757e8e19b1cf1c4ec17a5eef635b4715f04b86884d5df","typeString":"literal_string \"log(bool,string,string,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14943,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46619:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46623:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46619:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46619:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14942,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"46603:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46603:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14952,"nodeType":"ExpressionStatement","src":"46603:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46521:3:13","parameters":{"id":14940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14933,"mutability":"mutable","name":"p0","nameLocation":"46530:2:13","nodeType":"VariableDeclaration","scope":14954,"src":"46525:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14932,"name":"bool","nodeType":"ElementaryTypeName","src":"46525:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14935,"mutability":"mutable","name":"p1","nameLocation":"46548:2:13","nodeType":"VariableDeclaration","scope":14954,"src":"46534:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14934,"name":"string","nodeType":"ElementaryTypeName","src":"46534:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14937,"mutability":"mutable","name":"p2","nameLocation":"46566:2:13","nodeType":"VariableDeclaration","scope":14954,"src":"46552:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14936,"name":"string","nodeType":"ElementaryTypeName","src":"46552:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14939,"mutability":"mutable","name":"p3","nameLocation":"46575:2:13","nodeType":"VariableDeclaration","scope":14954,"src":"46570:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14938,"name":"uint","nodeType":"ElementaryTypeName","src":"46570:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46524:54:13"},"returnParameters":{"id":14941,"nodeType":"ParameterList","parameters":[],"src":"46593:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":14977,"nodeType":"FunctionDefinition","src":"46704:197:13","nodes":[],"body":{"id":14976,"nodeType":"Block","src":"46794:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c737472696e6729","id":14968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46844:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9","typeString":"literal_string \"log(bool,string,string,string)\""},"value":"log(bool,string,string,string)"},{"id":14969,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14956,"src":"46878:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14970,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14958,"src":"46882:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14971,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14960,"src":"46886:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14972,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14962,"src":"46890:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9","typeString":"literal_string \"log(bool,string,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":14966,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46820:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46824:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46820:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46820:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14965,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"46804:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46804:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14975,"nodeType":"ExpressionStatement","src":"46804:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46713:3:13","parameters":{"id":14963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14956,"mutability":"mutable","name":"p0","nameLocation":"46722:2:13","nodeType":"VariableDeclaration","scope":14977,"src":"46717:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14955,"name":"bool","nodeType":"ElementaryTypeName","src":"46717:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14958,"mutability":"mutable","name":"p1","nameLocation":"46740:2:13","nodeType":"VariableDeclaration","scope":14977,"src":"46726:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14957,"name":"string","nodeType":"ElementaryTypeName","src":"46726:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14960,"mutability":"mutable","name":"p2","nameLocation":"46758:2:13","nodeType":"VariableDeclaration","scope":14977,"src":"46744:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14959,"name":"string","nodeType":"ElementaryTypeName","src":"46744:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14962,"mutability":"mutable","name":"p3","nameLocation":"46776:2:13","nodeType":"VariableDeclaration","scope":14977,"src":"46762:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14961,"name":"string","nodeType":"ElementaryTypeName","src":"46762:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46716:63:13"},"returnParameters":{"id":14964,"nodeType":"ParameterList","parameters":[],"src":"46794:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15000,"nodeType":"FunctionDefinition","src":"46907:186:13","nodes":[],"body":{"id":14999,"nodeType":"Block","src":"46988:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c626f6f6c29","id":14991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47038:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1","typeString":"literal_string \"log(bool,string,string,bool)\""},"value":"log(bool,string,string,bool)"},{"id":14992,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14979,"src":"47070:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14993,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14981,"src":"47074:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14994,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14983,"src":"47078:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":14995,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14985,"src":"47082:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1","typeString":"literal_string \"log(bool,string,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":14989,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47014:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47018:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47014:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":14996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47014:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14988,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"46998:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":14997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46998:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14998,"nodeType":"ExpressionStatement","src":"46998:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46916:3:13","parameters":{"id":14986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14979,"mutability":"mutable","name":"p0","nameLocation":"46925:2:13","nodeType":"VariableDeclaration","scope":15000,"src":"46920:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14978,"name":"bool","nodeType":"ElementaryTypeName","src":"46920:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14981,"mutability":"mutable","name":"p1","nameLocation":"46943:2:13","nodeType":"VariableDeclaration","scope":15000,"src":"46929:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14980,"name":"string","nodeType":"ElementaryTypeName","src":"46929:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14983,"mutability":"mutable","name":"p2","nameLocation":"46961:2:13","nodeType":"VariableDeclaration","scope":15000,"src":"46947:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14982,"name":"string","nodeType":"ElementaryTypeName","src":"46947:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14985,"mutability":"mutable","name":"p3","nameLocation":"46970:2:13","nodeType":"VariableDeclaration","scope":15000,"src":"46965:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14984,"name":"bool","nodeType":"ElementaryTypeName","src":"46965:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46919:54:13"},"returnParameters":{"id":14987,"nodeType":"ParameterList","parameters":[],"src":"46988:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15023,"nodeType":"FunctionDefinition","src":"47099:192:13","nodes":[],"body":{"id":15022,"nodeType":"Block","src":"47183:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c6164647265737329","id":15014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47233:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5","typeString":"literal_string \"log(bool,string,string,address)\""},"value":"log(bool,string,string,address)"},{"id":15015,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15002,"src":"47268:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15016,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15004,"src":"47272:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15017,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15006,"src":"47276:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15018,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15008,"src":"47280:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5","typeString":"literal_string \"log(bool,string,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15012,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47209:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15013,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47213:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47209:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47209:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15011,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"47193:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47193:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15021,"nodeType":"ExpressionStatement","src":"47193:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47108:3:13","parameters":{"id":15009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15002,"mutability":"mutable","name":"p0","nameLocation":"47117:2:13","nodeType":"VariableDeclaration","scope":15023,"src":"47112:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15001,"name":"bool","nodeType":"ElementaryTypeName","src":"47112:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15004,"mutability":"mutable","name":"p1","nameLocation":"47135:2:13","nodeType":"VariableDeclaration","scope":15023,"src":"47121:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15003,"name":"string","nodeType":"ElementaryTypeName","src":"47121:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15006,"mutability":"mutable","name":"p2","nameLocation":"47153:2:13","nodeType":"VariableDeclaration","scope":15023,"src":"47139:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15005,"name":"string","nodeType":"ElementaryTypeName","src":"47139:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15008,"mutability":"mutable","name":"p3","nameLocation":"47165:2:13","nodeType":"VariableDeclaration","scope":15023,"src":"47157:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15007,"name":"address","nodeType":"ElementaryTypeName","src":"47157:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"47111:57:13"},"returnParameters":{"id":15010,"nodeType":"ParameterList","parameters":[],"src":"47183:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15046,"nodeType":"FunctionDefinition","src":"47297:175:13","nodes":[],"body":{"id":15045,"nodeType":"Block","src":"47369:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c75696e7429","id":15037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47419:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d6f9ca539d16169f184b68d5f2cbc34ada538d6737083559aa5a96068582055","typeString":"literal_string \"log(bool,string,bool,uint)\""},"value":"log(bool,string,bool,uint)"},{"id":15038,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15025,"src":"47449:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15039,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15027,"src":"47453:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15040,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15029,"src":"47457:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15041,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15031,"src":"47461:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8d6f9ca539d16169f184b68d5f2cbc34ada538d6737083559aa5a96068582055","typeString":"literal_string \"log(bool,string,bool,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15035,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47395:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15036,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47399:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47395:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47395:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15034,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"47379:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47379:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15044,"nodeType":"ExpressionStatement","src":"47379:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47306:3:13","parameters":{"id":15032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15025,"mutability":"mutable","name":"p0","nameLocation":"47315:2:13","nodeType":"VariableDeclaration","scope":15046,"src":"47310:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15024,"name":"bool","nodeType":"ElementaryTypeName","src":"47310:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15027,"mutability":"mutable","name":"p1","nameLocation":"47333:2:13","nodeType":"VariableDeclaration","scope":15046,"src":"47319:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15026,"name":"string","nodeType":"ElementaryTypeName","src":"47319:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15029,"mutability":"mutable","name":"p2","nameLocation":"47342:2:13","nodeType":"VariableDeclaration","scope":15046,"src":"47337:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15028,"name":"bool","nodeType":"ElementaryTypeName","src":"47337:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15031,"mutability":"mutable","name":"p3","nameLocation":"47351:2:13","nodeType":"VariableDeclaration","scope":15046,"src":"47346:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15030,"name":"uint","nodeType":"ElementaryTypeName","src":"47346:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"47309:45:13"},"returnParameters":{"id":15033,"nodeType":"ParameterList","parameters":[],"src":"47369:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15069,"nodeType":"FunctionDefinition","src":"47478:186:13","nodes":[],"body":{"id":15068,"nodeType":"Block","src":"47559:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c737472696e6729","id":15060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47609:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468","typeString":"literal_string \"log(bool,string,bool,string)\""},"value":"log(bool,string,bool,string)"},{"id":15061,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15048,"src":"47641:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15062,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15050,"src":"47645:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15063,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15052,"src":"47649:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15064,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15054,"src":"47653:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468","typeString":"literal_string \"log(bool,string,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15058,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47585:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47589:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47585:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47585:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15057,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"47569:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47569:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15067,"nodeType":"ExpressionStatement","src":"47569:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47487:3:13","parameters":{"id":15055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15048,"mutability":"mutable","name":"p0","nameLocation":"47496:2:13","nodeType":"VariableDeclaration","scope":15069,"src":"47491:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15047,"name":"bool","nodeType":"ElementaryTypeName","src":"47491:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15050,"mutability":"mutable","name":"p1","nameLocation":"47514:2:13","nodeType":"VariableDeclaration","scope":15069,"src":"47500:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15049,"name":"string","nodeType":"ElementaryTypeName","src":"47500:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15052,"mutability":"mutable","name":"p2","nameLocation":"47523:2:13","nodeType":"VariableDeclaration","scope":15069,"src":"47518:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15051,"name":"bool","nodeType":"ElementaryTypeName","src":"47518:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15054,"mutability":"mutable","name":"p3","nameLocation":"47541:2:13","nodeType":"VariableDeclaration","scope":15069,"src":"47527:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15053,"name":"string","nodeType":"ElementaryTypeName","src":"47527:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47490:54:13"},"returnParameters":{"id":15056,"nodeType":"ParameterList","parameters":[],"src":"47559:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15092,"nodeType":"FunctionDefinition","src":"47670:175:13","nodes":[],"body":{"id":15091,"nodeType":"Block","src":"47742:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c626f6f6c29","id":15083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47792:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f","typeString":"literal_string \"log(bool,string,bool,bool)\""},"value":"log(bool,string,bool,bool)"},{"id":15084,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15071,"src":"47822:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15085,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15073,"src":"47826:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15086,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15075,"src":"47830:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15087,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15077,"src":"47834:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f","typeString":"literal_string \"log(bool,string,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15081,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47768:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47772:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47768:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47768:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15080,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"47752:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47752:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15090,"nodeType":"ExpressionStatement","src":"47752:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47679:3:13","parameters":{"id":15078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15071,"mutability":"mutable","name":"p0","nameLocation":"47688:2:13","nodeType":"VariableDeclaration","scope":15092,"src":"47683:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15070,"name":"bool","nodeType":"ElementaryTypeName","src":"47683:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15073,"mutability":"mutable","name":"p1","nameLocation":"47706:2:13","nodeType":"VariableDeclaration","scope":15092,"src":"47692:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15072,"name":"string","nodeType":"ElementaryTypeName","src":"47692:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15075,"mutability":"mutable","name":"p2","nameLocation":"47715:2:13","nodeType":"VariableDeclaration","scope":15092,"src":"47710:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15074,"name":"bool","nodeType":"ElementaryTypeName","src":"47710:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15077,"mutability":"mutable","name":"p3","nameLocation":"47724:2:13","nodeType":"VariableDeclaration","scope":15092,"src":"47719:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15076,"name":"bool","nodeType":"ElementaryTypeName","src":"47719:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"47682:45:13"},"returnParameters":{"id":15079,"nodeType":"ParameterList","parameters":[],"src":"47742:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15115,"nodeType":"FunctionDefinition","src":"47851:181:13","nodes":[],"body":{"id":15114,"nodeType":"Block","src":"47926:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c6164647265737329","id":15106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47976:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5","typeString":"literal_string \"log(bool,string,bool,address)\""},"value":"log(bool,string,bool,address)"},{"id":15107,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15094,"src":"48009:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15108,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15096,"src":"48013:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15109,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15098,"src":"48017:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15110,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15100,"src":"48021:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5","typeString":"literal_string \"log(bool,string,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15104,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47952:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47956:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47952:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47952:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15103,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"47936:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47936:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15113,"nodeType":"ExpressionStatement","src":"47936:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47860:3:13","parameters":{"id":15101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15094,"mutability":"mutable","name":"p0","nameLocation":"47869:2:13","nodeType":"VariableDeclaration","scope":15115,"src":"47864:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15093,"name":"bool","nodeType":"ElementaryTypeName","src":"47864:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15096,"mutability":"mutable","name":"p1","nameLocation":"47887:2:13","nodeType":"VariableDeclaration","scope":15115,"src":"47873:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15095,"name":"string","nodeType":"ElementaryTypeName","src":"47873:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15098,"mutability":"mutable","name":"p2","nameLocation":"47896:2:13","nodeType":"VariableDeclaration","scope":15115,"src":"47891:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15097,"name":"bool","nodeType":"ElementaryTypeName","src":"47891:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15100,"mutability":"mutable","name":"p3","nameLocation":"47908:2:13","nodeType":"VariableDeclaration","scope":15115,"src":"47900:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15099,"name":"address","nodeType":"ElementaryTypeName","src":"47900:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"47863:48:13"},"returnParameters":{"id":15102,"nodeType":"ParameterList","parameters":[],"src":"47926:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15138,"nodeType":"FunctionDefinition","src":"48038:181:13","nodes":[],"body":{"id":15137,"nodeType":"Block","src":"48113:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c75696e7429","id":15129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48163:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_1b0b955b558cd224468bb20ba92b23519cb59fe363a105b00d7a815c1673c4ca","typeString":"literal_string \"log(bool,string,address,uint)\""},"value":"log(bool,string,address,uint)"},{"id":15130,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15117,"src":"48196:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15131,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15119,"src":"48200:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15132,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15121,"src":"48204:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15133,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15123,"src":"48208:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1b0b955b558cd224468bb20ba92b23519cb59fe363a105b00d7a815c1673c4ca","typeString":"literal_string \"log(bool,string,address,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15127,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48139:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48143:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48139:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48139:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15126,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"48123:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48123:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15136,"nodeType":"ExpressionStatement","src":"48123:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48047:3:13","parameters":{"id":15124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15117,"mutability":"mutable","name":"p0","nameLocation":"48056:2:13","nodeType":"VariableDeclaration","scope":15138,"src":"48051:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15116,"name":"bool","nodeType":"ElementaryTypeName","src":"48051:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15119,"mutability":"mutable","name":"p1","nameLocation":"48074:2:13","nodeType":"VariableDeclaration","scope":15138,"src":"48060:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15118,"name":"string","nodeType":"ElementaryTypeName","src":"48060:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15121,"mutability":"mutable","name":"p2","nameLocation":"48086:2:13","nodeType":"VariableDeclaration","scope":15138,"src":"48078:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15120,"name":"address","nodeType":"ElementaryTypeName","src":"48078:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15123,"mutability":"mutable","name":"p3","nameLocation":"48095:2:13","nodeType":"VariableDeclaration","scope":15138,"src":"48090:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15122,"name":"uint","nodeType":"ElementaryTypeName","src":"48090:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"48050:48:13"},"returnParameters":{"id":15125,"nodeType":"ParameterList","parameters":[],"src":"48113:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15161,"nodeType":"FunctionDefinition","src":"48225:192:13","nodes":[],"body":{"id":15160,"nodeType":"Block","src":"48309:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c737472696e6729","id":15152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48359:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7","typeString":"literal_string \"log(bool,string,address,string)\""},"value":"log(bool,string,address,string)"},{"id":15153,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15140,"src":"48394:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15154,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15142,"src":"48398:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15155,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15144,"src":"48402:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15156,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15146,"src":"48406:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7","typeString":"literal_string \"log(bool,string,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15150,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48335:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48339:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48335:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48335:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15149,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"48319:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48319:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15159,"nodeType":"ExpressionStatement","src":"48319:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48234:3:13","parameters":{"id":15147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15140,"mutability":"mutable","name":"p0","nameLocation":"48243:2:13","nodeType":"VariableDeclaration","scope":15161,"src":"48238:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15139,"name":"bool","nodeType":"ElementaryTypeName","src":"48238:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15142,"mutability":"mutable","name":"p1","nameLocation":"48261:2:13","nodeType":"VariableDeclaration","scope":15161,"src":"48247:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15141,"name":"string","nodeType":"ElementaryTypeName","src":"48247:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15144,"mutability":"mutable","name":"p2","nameLocation":"48273:2:13","nodeType":"VariableDeclaration","scope":15161,"src":"48265:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15143,"name":"address","nodeType":"ElementaryTypeName","src":"48265:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15146,"mutability":"mutable","name":"p3","nameLocation":"48291:2:13","nodeType":"VariableDeclaration","scope":15161,"src":"48277:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15145,"name":"string","nodeType":"ElementaryTypeName","src":"48277:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48237:57:13"},"returnParameters":{"id":15148,"nodeType":"ParameterList","parameters":[],"src":"48309:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15184,"nodeType":"FunctionDefinition","src":"48423:181:13","nodes":[],"body":{"id":15183,"nodeType":"Block","src":"48498:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c626f6f6c29","id":15175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48548:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d","typeString":"literal_string \"log(bool,string,address,bool)\""},"value":"log(bool,string,address,bool)"},{"id":15176,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15163,"src":"48581:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15177,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15165,"src":"48585:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15178,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15167,"src":"48589:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15179,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15169,"src":"48593:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d","typeString":"literal_string \"log(bool,string,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15173,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48524:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15174,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48528:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48524:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48524:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15172,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"48508:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48508:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15182,"nodeType":"ExpressionStatement","src":"48508:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48432:3:13","parameters":{"id":15170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15163,"mutability":"mutable","name":"p0","nameLocation":"48441:2:13","nodeType":"VariableDeclaration","scope":15184,"src":"48436:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15162,"name":"bool","nodeType":"ElementaryTypeName","src":"48436:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15165,"mutability":"mutable","name":"p1","nameLocation":"48459:2:13","nodeType":"VariableDeclaration","scope":15184,"src":"48445:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15164,"name":"string","nodeType":"ElementaryTypeName","src":"48445:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15167,"mutability":"mutable","name":"p2","nameLocation":"48471:2:13","nodeType":"VariableDeclaration","scope":15184,"src":"48463:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15166,"name":"address","nodeType":"ElementaryTypeName","src":"48463:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15169,"mutability":"mutable","name":"p3","nameLocation":"48480:2:13","nodeType":"VariableDeclaration","scope":15184,"src":"48475:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15168,"name":"bool","nodeType":"ElementaryTypeName","src":"48475:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"48435:48:13"},"returnParameters":{"id":15171,"nodeType":"ParameterList","parameters":[],"src":"48498:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15207,"nodeType":"FunctionDefinition","src":"48610:187:13","nodes":[],"body":{"id":15206,"nodeType":"Block","src":"48688:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c6164647265737329","id":15198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48738:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822","typeString":"literal_string \"log(bool,string,address,address)\""},"value":"log(bool,string,address,address)"},{"id":15199,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15186,"src":"48774:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15200,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15188,"src":"48778:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15201,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15190,"src":"48782:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15202,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15192,"src":"48786:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822","typeString":"literal_string \"log(bool,string,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15196,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48714:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48718:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48714:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48714:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15195,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"48698:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48698:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15205,"nodeType":"ExpressionStatement","src":"48698:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48619:3:13","parameters":{"id":15193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15186,"mutability":"mutable","name":"p0","nameLocation":"48628:2:13","nodeType":"VariableDeclaration","scope":15207,"src":"48623:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15185,"name":"bool","nodeType":"ElementaryTypeName","src":"48623:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15188,"mutability":"mutable","name":"p1","nameLocation":"48646:2:13","nodeType":"VariableDeclaration","scope":15207,"src":"48632:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15187,"name":"string","nodeType":"ElementaryTypeName","src":"48632:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15190,"mutability":"mutable","name":"p2","nameLocation":"48658:2:13","nodeType":"VariableDeclaration","scope":15207,"src":"48650:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15189,"name":"address","nodeType":"ElementaryTypeName","src":"48650:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15192,"mutability":"mutable","name":"p3","nameLocation":"48670:2:13","nodeType":"VariableDeclaration","scope":15207,"src":"48662:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15191,"name":"address","nodeType":"ElementaryTypeName","src":"48662:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"48622:51:13"},"returnParameters":{"id":15194,"nodeType":"ParameterList","parameters":[],"src":"48688:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15230,"nodeType":"FunctionDefinition","src":"48803:164:13","nodes":[],"body":{"id":15229,"nodeType":"Block","src":"48866:101:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e742c75696e7429","id":15221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48916:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_4667de8ece32e91ade336fb6d8a14a500512d40e1162a34636a5bca908b16e6a","typeString":"literal_string \"log(bool,bool,uint,uint)\""},"value":"log(bool,bool,uint,uint)"},{"id":15222,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15209,"src":"48944:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15223,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15211,"src":"48948:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15224,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15213,"src":"48952:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15225,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15215,"src":"48956:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4667de8ece32e91ade336fb6d8a14a500512d40e1162a34636a5bca908b16e6a","typeString":"literal_string \"log(bool,bool,uint,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15219,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48892:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48896:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48892:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48892:67:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15218,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"48876:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48876:84:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15228,"nodeType":"ExpressionStatement","src":"48876:84:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48812:3:13","parameters":{"id":15216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15209,"mutability":"mutable","name":"p0","nameLocation":"48821:2:13","nodeType":"VariableDeclaration","scope":15230,"src":"48816:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15208,"name":"bool","nodeType":"ElementaryTypeName","src":"48816:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15211,"mutability":"mutable","name":"p1","nameLocation":"48830:2:13","nodeType":"VariableDeclaration","scope":15230,"src":"48825:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15210,"name":"bool","nodeType":"ElementaryTypeName","src":"48825:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15213,"mutability":"mutable","name":"p2","nameLocation":"48839:2:13","nodeType":"VariableDeclaration","scope":15230,"src":"48834:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15212,"name":"uint","nodeType":"ElementaryTypeName","src":"48834:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15215,"mutability":"mutable","name":"p3","nameLocation":"48848:2:13","nodeType":"VariableDeclaration","scope":15230,"src":"48843:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15214,"name":"uint","nodeType":"ElementaryTypeName","src":"48843:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"48815:36:13"},"returnParameters":{"id":15217,"nodeType":"ParameterList","parameters":[],"src":"48866:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15253,"nodeType":"FunctionDefinition","src":"48973:175:13","nodes":[],"body":{"id":15252,"nodeType":"Block","src":"49045:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e742c737472696e6729","id":15244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49095:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_50618937639b3b1cb3bbe247efb1fae4eb9a85d1e66ac66dfc77c62561966adc","typeString":"literal_string \"log(bool,bool,uint,string)\""},"value":"log(bool,bool,uint,string)"},{"id":15245,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15232,"src":"49125:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15246,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15234,"src":"49129:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15247,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15236,"src":"49133:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15248,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15238,"src":"49137:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50618937639b3b1cb3bbe247efb1fae4eb9a85d1e66ac66dfc77c62561966adc","typeString":"literal_string \"log(bool,bool,uint,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15242,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49071:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15243,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49075:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49071:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49071:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15241,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"49055:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49055:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15251,"nodeType":"ExpressionStatement","src":"49055:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48982:3:13","parameters":{"id":15239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15232,"mutability":"mutable","name":"p0","nameLocation":"48991:2:13","nodeType":"VariableDeclaration","scope":15253,"src":"48986:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15231,"name":"bool","nodeType":"ElementaryTypeName","src":"48986:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15234,"mutability":"mutable","name":"p1","nameLocation":"49000:2:13","nodeType":"VariableDeclaration","scope":15253,"src":"48995:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15233,"name":"bool","nodeType":"ElementaryTypeName","src":"48995:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15236,"mutability":"mutable","name":"p2","nameLocation":"49009:2:13","nodeType":"VariableDeclaration","scope":15253,"src":"49004:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15235,"name":"uint","nodeType":"ElementaryTypeName","src":"49004:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15238,"mutability":"mutable","name":"p3","nameLocation":"49027:2:13","nodeType":"VariableDeclaration","scope":15253,"src":"49013:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15237,"name":"string","nodeType":"ElementaryTypeName","src":"49013:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48985:45:13"},"returnParameters":{"id":15240,"nodeType":"ParameterList","parameters":[],"src":"49045:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15276,"nodeType":"FunctionDefinition","src":"49154:164:13","nodes":[],"body":{"id":15275,"nodeType":"Block","src":"49217:101:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e742c626f6f6c29","id":15267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49267:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_ab5cc1c47d926d79461c86216768f32b6ec0ac12d51c1eb543ea3bd1cfec0110","typeString":"literal_string \"log(bool,bool,uint,bool)\""},"value":"log(bool,bool,uint,bool)"},{"id":15268,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15255,"src":"49295:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15269,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15257,"src":"49299:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15270,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15259,"src":"49303:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15271,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15261,"src":"49307:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ab5cc1c47d926d79461c86216768f32b6ec0ac12d51c1eb543ea3bd1cfec0110","typeString":"literal_string \"log(bool,bool,uint,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15265,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49243:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49247:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49243:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49243:67:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15264,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"49227:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49227:84:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15274,"nodeType":"ExpressionStatement","src":"49227:84:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49163:3:13","parameters":{"id":15262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15255,"mutability":"mutable","name":"p0","nameLocation":"49172:2:13","nodeType":"VariableDeclaration","scope":15276,"src":"49167:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15254,"name":"bool","nodeType":"ElementaryTypeName","src":"49167:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15257,"mutability":"mutable","name":"p1","nameLocation":"49181:2:13","nodeType":"VariableDeclaration","scope":15276,"src":"49176:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15256,"name":"bool","nodeType":"ElementaryTypeName","src":"49176:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15259,"mutability":"mutable","name":"p2","nameLocation":"49190:2:13","nodeType":"VariableDeclaration","scope":15276,"src":"49185:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15258,"name":"uint","nodeType":"ElementaryTypeName","src":"49185:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15261,"mutability":"mutable","name":"p3","nameLocation":"49199:2:13","nodeType":"VariableDeclaration","scope":15276,"src":"49194:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15260,"name":"bool","nodeType":"ElementaryTypeName","src":"49194:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"49166:36:13"},"returnParameters":{"id":15263,"nodeType":"ParameterList","parameters":[],"src":"49217:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15299,"nodeType":"FunctionDefinition","src":"49324:170:13","nodes":[],"body":{"id":15298,"nodeType":"Block","src":"49390:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e742c6164647265737329","id":15290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49440:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_0bff950dc175e3e278946e4adb75fffc4ee67cda33555121dd293b95b27a39a7","typeString":"literal_string \"log(bool,bool,uint,address)\""},"value":"log(bool,bool,uint,address)"},{"id":15291,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15278,"src":"49471:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15292,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15280,"src":"49475:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15293,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15282,"src":"49479:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15294,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15284,"src":"49483:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0bff950dc175e3e278946e4adb75fffc4ee67cda33555121dd293b95b27a39a7","typeString":"literal_string \"log(bool,bool,uint,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15288,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49416:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49420:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49416:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49416:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15287,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"49400:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49400:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15297,"nodeType":"ExpressionStatement","src":"49400:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49333:3:13","parameters":{"id":15285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15278,"mutability":"mutable","name":"p0","nameLocation":"49342:2:13","nodeType":"VariableDeclaration","scope":15299,"src":"49337:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15277,"name":"bool","nodeType":"ElementaryTypeName","src":"49337:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15280,"mutability":"mutable","name":"p1","nameLocation":"49351:2:13","nodeType":"VariableDeclaration","scope":15299,"src":"49346:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15279,"name":"bool","nodeType":"ElementaryTypeName","src":"49346:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15282,"mutability":"mutable","name":"p2","nameLocation":"49360:2:13","nodeType":"VariableDeclaration","scope":15299,"src":"49355:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15281,"name":"uint","nodeType":"ElementaryTypeName","src":"49355:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15284,"mutability":"mutable","name":"p3","nameLocation":"49372:2:13","nodeType":"VariableDeclaration","scope":15299,"src":"49364:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15283,"name":"address","nodeType":"ElementaryTypeName","src":"49364:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"49336:39:13"},"returnParameters":{"id":15286,"nodeType":"ParameterList","parameters":[],"src":"49390:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15322,"nodeType":"FunctionDefinition","src":"49500:175:13","nodes":[],"body":{"id":15321,"nodeType":"Block","src":"49572:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c75696e7429","id":15313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49622:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_178b4685db1dff62c4ee472c2e6bf50abba0dc230768235e43c6259152d1244e","typeString":"literal_string \"log(bool,bool,string,uint)\""},"value":"log(bool,bool,string,uint)"},{"id":15314,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15301,"src":"49652:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15315,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15303,"src":"49656:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15316,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15305,"src":"49660:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15317,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15307,"src":"49664:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_178b4685db1dff62c4ee472c2e6bf50abba0dc230768235e43c6259152d1244e","typeString":"literal_string \"log(bool,bool,string,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15311,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49598:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49602:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49598:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49598:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15310,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"49582:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49582:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15320,"nodeType":"ExpressionStatement","src":"49582:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49509:3:13","parameters":{"id":15308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15301,"mutability":"mutable","name":"p0","nameLocation":"49518:2:13","nodeType":"VariableDeclaration","scope":15322,"src":"49513:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15300,"name":"bool","nodeType":"ElementaryTypeName","src":"49513:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15303,"mutability":"mutable","name":"p1","nameLocation":"49527:2:13","nodeType":"VariableDeclaration","scope":15322,"src":"49522:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15302,"name":"bool","nodeType":"ElementaryTypeName","src":"49522:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15305,"mutability":"mutable","name":"p2","nameLocation":"49545:2:13","nodeType":"VariableDeclaration","scope":15322,"src":"49531:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15304,"name":"string","nodeType":"ElementaryTypeName","src":"49531:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15307,"mutability":"mutable","name":"p3","nameLocation":"49554:2:13","nodeType":"VariableDeclaration","scope":15322,"src":"49549:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15306,"name":"uint","nodeType":"ElementaryTypeName","src":"49549:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"49512:45:13"},"returnParameters":{"id":15309,"nodeType":"ParameterList","parameters":[],"src":"49572:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15345,"nodeType":"FunctionDefinition","src":"49681:186:13","nodes":[],"body":{"id":15344,"nodeType":"Block","src":"49762:105:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c737472696e6729","id":15336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49812:30:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf","typeString":"literal_string \"log(bool,bool,string,string)\""},"value":"log(bool,bool,string,string)"},{"id":15337,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15324,"src":"49844:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15338,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15326,"src":"49848:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15339,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15328,"src":"49852:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15340,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15330,"src":"49856:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf","typeString":"literal_string \"log(bool,bool,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15334,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49788:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49792:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49788:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49788:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15333,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"49772:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49772:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15343,"nodeType":"ExpressionStatement","src":"49772:88:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49690:3:13","parameters":{"id":15331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15324,"mutability":"mutable","name":"p0","nameLocation":"49699:2:13","nodeType":"VariableDeclaration","scope":15345,"src":"49694:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15323,"name":"bool","nodeType":"ElementaryTypeName","src":"49694:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15326,"mutability":"mutable","name":"p1","nameLocation":"49708:2:13","nodeType":"VariableDeclaration","scope":15345,"src":"49703:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15325,"name":"bool","nodeType":"ElementaryTypeName","src":"49703:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15328,"mutability":"mutable","name":"p2","nameLocation":"49726:2:13","nodeType":"VariableDeclaration","scope":15345,"src":"49712:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15327,"name":"string","nodeType":"ElementaryTypeName","src":"49712:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15330,"mutability":"mutable","name":"p3","nameLocation":"49744:2:13","nodeType":"VariableDeclaration","scope":15345,"src":"49730:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15329,"name":"string","nodeType":"ElementaryTypeName","src":"49730:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"49693:54:13"},"returnParameters":{"id":15332,"nodeType":"ParameterList","parameters":[],"src":"49762:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15368,"nodeType":"FunctionDefinition","src":"49873:175:13","nodes":[],"body":{"id":15367,"nodeType":"Block","src":"49945:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c626f6f6c29","id":15359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49995:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02","typeString":"literal_string \"log(bool,bool,string,bool)\""},"value":"log(bool,bool,string,bool)"},{"id":15360,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15347,"src":"50025:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15361,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15349,"src":"50029:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15362,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15351,"src":"50033:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15363,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15353,"src":"50037:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02","typeString":"literal_string \"log(bool,bool,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15357,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49971:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49975:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49971:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49971:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15356,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"49955:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49955:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15366,"nodeType":"ExpressionStatement","src":"49955:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49882:3:13","parameters":{"id":15354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15347,"mutability":"mutable","name":"p0","nameLocation":"49891:2:13","nodeType":"VariableDeclaration","scope":15368,"src":"49886:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15346,"name":"bool","nodeType":"ElementaryTypeName","src":"49886:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15349,"mutability":"mutable","name":"p1","nameLocation":"49900:2:13","nodeType":"VariableDeclaration","scope":15368,"src":"49895:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15348,"name":"bool","nodeType":"ElementaryTypeName","src":"49895:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15351,"mutability":"mutable","name":"p2","nameLocation":"49918:2:13","nodeType":"VariableDeclaration","scope":15368,"src":"49904:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15350,"name":"string","nodeType":"ElementaryTypeName","src":"49904:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15353,"mutability":"mutable","name":"p3","nameLocation":"49927:2:13","nodeType":"VariableDeclaration","scope":15368,"src":"49922:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15352,"name":"bool","nodeType":"ElementaryTypeName","src":"49922:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"49885:45:13"},"returnParameters":{"id":15355,"nodeType":"ParameterList","parameters":[],"src":"49945:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15391,"nodeType":"FunctionDefinition","src":"50054:181:13","nodes":[],"body":{"id":15390,"nodeType":"Block","src":"50129:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c6164647265737329","id":15382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50179:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202","typeString":"literal_string \"log(bool,bool,string,address)\""},"value":"log(bool,bool,string,address)"},{"id":15383,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15370,"src":"50212:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15384,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15372,"src":"50216:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15385,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15374,"src":"50220:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15386,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15376,"src":"50224:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202","typeString":"literal_string \"log(bool,bool,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15380,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50155:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50159:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50155:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50155:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15379,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"50139:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50139:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15389,"nodeType":"ExpressionStatement","src":"50139:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50063:3:13","parameters":{"id":15377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15370,"mutability":"mutable","name":"p0","nameLocation":"50072:2:13","nodeType":"VariableDeclaration","scope":15391,"src":"50067:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15369,"name":"bool","nodeType":"ElementaryTypeName","src":"50067:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15372,"mutability":"mutable","name":"p1","nameLocation":"50081:2:13","nodeType":"VariableDeclaration","scope":15391,"src":"50076:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15371,"name":"bool","nodeType":"ElementaryTypeName","src":"50076:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15374,"mutability":"mutable","name":"p2","nameLocation":"50099:2:13","nodeType":"VariableDeclaration","scope":15391,"src":"50085:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15373,"name":"string","nodeType":"ElementaryTypeName","src":"50085:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15376,"mutability":"mutable","name":"p3","nameLocation":"50111:2:13","nodeType":"VariableDeclaration","scope":15391,"src":"50103:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15375,"name":"address","nodeType":"ElementaryTypeName","src":"50103:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"50066:48:13"},"returnParameters":{"id":15378,"nodeType":"ParameterList","parameters":[],"src":"50129:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15414,"nodeType":"FunctionDefinition","src":"50241:164:13","nodes":[],"body":{"id":15413,"nodeType":"Block","src":"50304:101:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c75696e7429","id":15405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50354:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_c248834dff84ca4bcbda9cf249a0d5da3bd0a58b4562085082654d4d9851b501","typeString":"literal_string \"log(bool,bool,bool,uint)\""},"value":"log(bool,bool,bool,uint)"},{"id":15406,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15393,"src":"50382:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15407,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15395,"src":"50386:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15408,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15397,"src":"50390:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15409,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15399,"src":"50394:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c248834dff84ca4bcbda9cf249a0d5da3bd0a58b4562085082654d4d9851b501","typeString":"literal_string \"log(bool,bool,bool,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15403,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50330:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50334:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50330:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50330:67:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15402,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"50314:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50314:84:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15412,"nodeType":"ExpressionStatement","src":"50314:84:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50250:3:13","parameters":{"id":15400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15393,"mutability":"mutable","name":"p0","nameLocation":"50259:2:13","nodeType":"VariableDeclaration","scope":15414,"src":"50254:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15392,"name":"bool","nodeType":"ElementaryTypeName","src":"50254:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15395,"mutability":"mutable","name":"p1","nameLocation":"50268:2:13","nodeType":"VariableDeclaration","scope":15414,"src":"50263:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15394,"name":"bool","nodeType":"ElementaryTypeName","src":"50263:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15397,"mutability":"mutable","name":"p2","nameLocation":"50277:2:13","nodeType":"VariableDeclaration","scope":15414,"src":"50272:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15396,"name":"bool","nodeType":"ElementaryTypeName","src":"50272:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15399,"mutability":"mutable","name":"p3","nameLocation":"50286:2:13","nodeType":"VariableDeclaration","scope":15414,"src":"50281:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15398,"name":"uint","nodeType":"ElementaryTypeName","src":"50281:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"50253:36:13"},"returnParameters":{"id":15401,"nodeType":"ParameterList","parameters":[],"src":"50304:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15437,"nodeType":"FunctionDefinition","src":"50411:175:13","nodes":[],"body":{"id":15436,"nodeType":"Block","src":"50483:103:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c737472696e6729","id":15428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50533:28:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15","typeString":"literal_string \"log(bool,bool,bool,string)\""},"value":"log(bool,bool,bool,string)"},{"id":15429,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15416,"src":"50563:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15430,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15418,"src":"50567:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15431,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15420,"src":"50571:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15432,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15422,"src":"50575:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15","typeString":"literal_string \"log(bool,bool,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15426,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50509:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50513:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50509:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50509:69:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15425,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"50493:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50493:86:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15435,"nodeType":"ExpressionStatement","src":"50493:86:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50420:3:13","parameters":{"id":15423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15416,"mutability":"mutable","name":"p0","nameLocation":"50429:2:13","nodeType":"VariableDeclaration","scope":15437,"src":"50424:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15415,"name":"bool","nodeType":"ElementaryTypeName","src":"50424:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15418,"mutability":"mutable","name":"p1","nameLocation":"50438:2:13","nodeType":"VariableDeclaration","scope":15437,"src":"50433:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15417,"name":"bool","nodeType":"ElementaryTypeName","src":"50433:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15420,"mutability":"mutable","name":"p2","nameLocation":"50447:2:13","nodeType":"VariableDeclaration","scope":15437,"src":"50442:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15419,"name":"bool","nodeType":"ElementaryTypeName","src":"50442:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15422,"mutability":"mutable","name":"p3","nameLocation":"50465:2:13","nodeType":"VariableDeclaration","scope":15437,"src":"50451:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15421,"name":"string","nodeType":"ElementaryTypeName","src":"50451:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50423:45:13"},"returnParameters":{"id":15424,"nodeType":"ParameterList","parameters":[],"src":"50483:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15460,"nodeType":"FunctionDefinition","src":"50592:164:13","nodes":[],"body":{"id":15459,"nodeType":"Block","src":"50655:101:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c626f6f6c29","id":15451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50705:26:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f","typeString":"literal_string \"log(bool,bool,bool,bool)\""},"value":"log(bool,bool,bool,bool)"},{"id":15452,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15439,"src":"50733:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15453,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15441,"src":"50737:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15454,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15443,"src":"50741:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15455,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15445,"src":"50745:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f","typeString":"literal_string \"log(bool,bool,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15449,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50681:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50685:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50681:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50681:67:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15448,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"50665:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50665:84:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15458,"nodeType":"ExpressionStatement","src":"50665:84:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50601:3:13","parameters":{"id":15446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15439,"mutability":"mutable","name":"p0","nameLocation":"50610:2:13","nodeType":"VariableDeclaration","scope":15460,"src":"50605:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15438,"name":"bool","nodeType":"ElementaryTypeName","src":"50605:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15441,"mutability":"mutable","name":"p1","nameLocation":"50619:2:13","nodeType":"VariableDeclaration","scope":15460,"src":"50614:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15440,"name":"bool","nodeType":"ElementaryTypeName","src":"50614:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15443,"mutability":"mutable","name":"p2","nameLocation":"50628:2:13","nodeType":"VariableDeclaration","scope":15460,"src":"50623:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15442,"name":"bool","nodeType":"ElementaryTypeName","src":"50623:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15445,"mutability":"mutable","name":"p3","nameLocation":"50637:2:13","nodeType":"VariableDeclaration","scope":15460,"src":"50632:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15444,"name":"bool","nodeType":"ElementaryTypeName","src":"50632:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"50604:36:13"},"returnParameters":{"id":15447,"nodeType":"ParameterList","parameters":[],"src":"50655:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15483,"nodeType":"FunctionDefinition","src":"50762:170:13","nodes":[],"body":{"id":15482,"nodeType":"Block","src":"50828:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c6164647265737329","id":15474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50878:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4","typeString":"literal_string \"log(bool,bool,bool,address)\""},"value":"log(bool,bool,bool,address)"},{"id":15475,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15462,"src":"50909:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15476,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15464,"src":"50913:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15477,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15466,"src":"50917:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15478,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15468,"src":"50921:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4","typeString":"literal_string \"log(bool,bool,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15472,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50854:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50858:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50854:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50854:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15471,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"50838:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50838:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15481,"nodeType":"ExpressionStatement","src":"50838:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50771:3:13","parameters":{"id":15469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15462,"mutability":"mutable","name":"p0","nameLocation":"50780:2:13","nodeType":"VariableDeclaration","scope":15483,"src":"50775:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15461,"name":"bool","nodeType":"ElementaryTypeName","src":"50775:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15464,"mutability":"mutable","name":"p1","nameLocation":"50789:2:13","nodeType":"VariableDeclaration","scope":15483,"src":"50784:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15463,"name":"bool","nodeType":"ElementaryTypeName","src":"50784:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15466,"mutability":"mutable","name":"p2","nameLocation":"50798:2:13","nodeType":"VariableDeclaration","scope":15483,"src":"50793:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15465,"name":"bool","nodeType":"ElementaryTypeName","src":"50793:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15468,"mutability":"mutable","name":"p3","nameLocation":"50810:2:13","nodeType":"VariableDeclaration","scope":15483,"src":"50802:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15467,"name":"address","nodeType":"ElementaryTypeName","src":"50802:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"50774:39:13"},"returnParameters":{"id":15470,"nodeType":"ParameterList","parameters":[],"src":"50828:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15506,"nodeType":"FunctionDefinition","src":"50938:170:13","nodes":[],"body":{"id":15505,"nodeType":"Block","src":"51004:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c75696e7429","id":15497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51054:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_609386e78fd5b0eaf4b919077203f18b1606ddf72247d9e5eef9238918f7cf5e","typeString":"literal_string \"log(bool,bool,address,uint)\""},"value":"log(bool,bool,address,uint)"},{"id":15498,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15485,"src":"51085:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15499,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15487,"src":"51089:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15500,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15489,"src":"51093:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15501,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15491,"src":"51097:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_609386e78fd5b0eaf4b919077203f18b1606ddf72247d9e5eef9238918f7cf5e","typeString":"literal_string \"log(bool,bool,address,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15495,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51030:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51034:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51030:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51030:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15494,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"51014:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51014:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15504,"nodeType":"ExpressionStatement","src":"51014:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50947:3:13","parameters":{"id":15492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15485,"mutability":"mutable","name":"p0","nameLocation":"50956:2:13","nodeType":"VariableDeclaration","scope":15506,"src":"50951:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15484,"name":"bool","nodeType":"ElementaryTypeName","src":"50951:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15487,"mutability":"mutable","name":"p1","nameLocation":"50965:2:13","nodeType":"VariableDeclaration","scope":15506,"src":"50960:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15486,"name":"bool","nodeType":"ElementaryTypeName","src":"50960:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15489,"mutability":"mutable","name":"p2","nameLocation":"50977:2:13","nodeType":"VariableDeclaration","scope":15506,"src":"50969:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15488,"name":"address","nodeType":"ElementaryTypeName","src":"50969:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15491,"mutability":"mutable","name":"p3","nameLocation":"50986:2:13","nodeType":"VariableDeclaration","scope":15506,"src":"50981:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15490,"name":"uint","nodeType":"ElementaryTypeName","src":"50981:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"50950:39:13"},"returnParameters":{"id":15493,"nodeType":"ParameterList","parameters":[],"src":"51004:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15529,"nodeType":"FunctionDefinition","src":"51114:181:13","nodes":[],"body":{"id":15528,"nodeType":"Block","src":"51189:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c737472696e6729","id":15520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51239:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2","typeString":"literal_string \"log(bool,bool,address,string)\""},"value":"log(bool,bool,address,string)"},{"id":15521,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15508,"src":"51272:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15522,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15510,"src":"51276:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15523,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15512,"src":"51280:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15524,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15514,"src":"51284:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2","typeString":"literal_string \"log(bool,bool,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15518,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51215:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51219:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51215:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51215:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15517,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"51199:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51199:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15527,"nodeType":"ExpressionStatement","src":"51199:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51123:3:13","parameters":{"id":15515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15508,"mutability":"mutable","name":"p0","nameLocation":"51132:2:13","nodeType":"VariableDeclaration","scope":15529,"src":"51127:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15507,"name":"bool","nodeType":"ElementaryTypeName","src":"51127:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15510,"mutability":"mutable","name":"p1","nameLocation":"51141:2:13","nodeType":"VariableDeclaration","scope":15529,"src":"51136:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15509,"name":"bool","nodeType":"ElementaryTypeName","src":"51136:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15512,"mutability":"mutable","name":"p2","nameLocation":"51153:2:13","nodeType":"VariableDeclaration","scope":15529,"src":"51145:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15511,"name":"address","nodeType":"ElementaryTypeName","src":"51145:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15514,"mutability":"mutable","name":"p3","nameLocation":"51171:2:13","nodeType":"VariableDeclaration","scope":15529,"src":"51157:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15513,"name":"string","nodeType":"ElementaryTypeName","src":"51157:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51126:48:13"},"returnParameters":{"id":15516,"nodeType":"ParameterList","parameters":[],"src":"51189:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15552,"nodeType":"FunctionDefinition","src":"51301:170:13","nodes":[],"body":{"id":15551,"nodeType":"Block","src":"51367:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c626f6f6c29","id":15543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51417:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf","typeString":"literal_string \"log(bool,bool,address,bool)\""},"value":"log(bool,bool,address,bool)"},{"id":15544,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15531,"src":"51448:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15545,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15533,"src":"51452:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15546,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15535,"src":"51456:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15547,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15537,"src":"51460:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf","typeString":"literal_string \"log(bool,bool,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15541,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51393:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51397:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51393:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51393:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15540,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"51377:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51377:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15550,"nodeType":"ExpressionStatement","src":"51377:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51310:3:13","parameters":{"id":15538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15531,"mutability":"mutable","name":"p0","nameLocation":"51319:2:13","nodeType":"VariableDeclaration","scope":15552,"src":"51314:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15530,"name":"bool","nodeType":"ElementaryTypeName","src":"51314:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15533,"mutability":"mutable","name":"p1","nameLocation":"51328:2:13","nodeType":"VariableDeclaration","scope":15552,"src":"51323:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15532,"name":"bool","nodeType":"ElementaryTypeName","src":"51323:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15535,"mutability":"mutable","name":"p2","nameLocation":"51340:2:13","nodeType":"VariableDeclaration","scope":15552,"src":"51332:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15534,"name":"address","nodeType":"ElementaryTypeName","src":"51332:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15537,"mutability":"mutable","name":"p3","nameLocation":"51349:2:13","nodeType":"VariableDeclaration","scope":15552,"src":"51344:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15536,"name":"bool","nodeType":"ElementaryTypeName","src":"51344:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"51313:39:13"},"returnParameters":{"id":15539,"nodeType":"ParameterList","parameters":[],"src":"51367:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15575,"nodeType":"FunctionDefinition","src":"51477:176:13","nodes":[],"body":{"id":15574,"nodeType":"Block","src":"51546:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c6164647265737329","id":15566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51596:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4","typeString":"literal_string \"log(bool,bool,address,address)\""},"value":"log(bool,bool,address,address)"},{"id":15567,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15554,"src":"51630:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15568,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15556,"src":"51634:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15569,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15558,"src":"51638:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15570,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15560,"src":"51642:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4","typeString":"literal_string \"log(bool,bool,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15564,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51572:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51576:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51572:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51572:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15563,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"51556:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51556:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15573,"nodeType":"ExpressionStatement","src":"51556:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51486:3:13","parameters":{"id":15561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15554,"mutability":"mutable","name":"p0","nameLocation":"51495:2:13","nodeType":"VariableDeclaration","scope":15575,"src":"51490:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15553,"name":"bool","nodeType":"ElementaryTypeName","src":"51490:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15556,"mutability":"mutable","name":"p1","nameLocation":"51504:2:13","nodeType":"VariableDeclaration","scope":15575,"src":"51499:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15555,"name":"bool","nodeType":"ElementaryTypeName","src":"51499:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15558,"mutability":"mutable","name":"p2","nameLocation":"51516:2:13","nodeType":"VariableDeclaration","scope":15575,"src":"51508:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15557,"name":"address","nodeType":"ElementaryTypeName","src":"51508:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15560,"mutability":"mutable","name":"p3","nameLocation":"51528:2:13","nodeType":"VariableDeclaration","scope":15575,"src":"51520:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15559,"name":"address","nodeType":"ElementaryTypeName","src":"51520:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"51489:42:13"},"returnParameters":{"id":15562,"nodeType":"ParameterList","parameters":[],"src":"51546:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15598,"nodeType":"FunctionDefinition","src":"51659:170:13","nodes":[],"body":{"id":15597,"nodeType":"Block","src":"51725:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e742c75696e7429","id":15589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51775:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_9bfe72bcae17311bf78638487cb2635e8b5b6f81761042494681e890b65ae4df","typeString":"literal_string \"log(bool,address,uint,uint)\""},"value":"log(bool,address,uint,uint)"},{"id":15590,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15577,"src":"51806:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15591,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15579,"src":"51810:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15592,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15581,"src":"51814:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15593,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15583,"src":"51818:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9bfe72bcae17311bf78638487cb2635e8b5b6f81761042494681e890b65ae4df","typeString":"literal_string \"log(bool,address,uint,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15587,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51751:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51755:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51751:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51751:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15586,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"51735:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51735:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15596,"nodeType":"ExpressionStatement","src":"51735:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51668:3:13","parameters":{"id":15584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15577,"mutability":"mutable","name":"p0","nameLocation":"51677:2:13","nodeType":"VariableDeclaration","scope":15598,"src":"51672:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15576,"name":"bool","nodeType":"ElementaryTypeName","src":"51672:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15579,"mutability":"mutable","name":"p1","nameLocation":"51689:2:13","nodeType":"VariableDeclaration","scope":15598,"src":"51681:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15578,"name":"address","nodeType":"ElementaryTypeName","src":"51681:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15581,"mutability":"mutable","name":"p2","nameLocation":"51698:2:13","nodeType":"VariableDeclaration","scope":15598,"src":"51693:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15580,"name":"uint","nodeType":"ElementaryTypeName","src":"51693:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15583,"mutability":"mutable","name":"p3","nameLocation":"51707:2:13","nodeType":"VariableDeclaration","scope":15598,"src":"51702:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15582,"name":"uint","nodeType":"ElementaryTypeName","src":"51702:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"51671:39:13"},"returnParameters":{"id":15585,"nodeType":"ParameterList","parameters":[],"src":"51725:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15621,"nodeType":"FunctionDefinition","src":"51835:181:13","nodes":[],"body":{"id":15620,"nodeType":"Block","src":"51910:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e742c737472696e6729","id":15612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51960:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0685833a55270d98fa68e8c0a0f64fe3e03f6cdaeaebd8f87342de905392f45","typeString":"literal_string \"log(bool,address,uint,string)\""},"value":"log(bool,address,uint,string)"},{"id":15613,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15600,"src":"51993:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15614,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15602,"src":"51997:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15615,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15604,"src":"52001:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15616,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15606,"src":"52005:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0685833a55270d98fa68e8c0a0f64fe3e03f6cdaeaebd8f87342de905392f45","typeString":"literal_string \"log(bool,address,uint,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15610,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51936:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15611,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51940:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51936:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51936:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15609,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"51920:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51920:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15619,"nodeType":"ExpressionStatement","src":"51920:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51844:3:13","parameters":{"id":15607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15600,"mutability":"mutable","name":"p0","nameLocation":"51853:2:13","nodeType":"VariableDeclaration","scope":15621,"src":"51848:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15599,"name":"bool","nodeType":"ElementaryTypeName","src":"51848:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15602,"mutability":"mutable","name":"p1","nameLocation":"51865:2:13","nodeType":"VariableDeclaration","scope":15621,"src":"51857:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15601,"name":"address","nodeType":"ElementaryTypeName","src":"51857:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15604,"mutability":"mutable","name":"p2","nameLocation":"51874:2:13","nodeType":"VariableDeclaration","scope":15621,"src":"51869:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15603,"name":"uint","nodeType":"ElementaryTypeName","src":"51869:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15606,"mutability":"mutable","name":"p3","nameLocation":"51892:2:13","nodeType":"VariableDeclaration","scope":15621,"src":"51878:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15605,"name":"string","nodeType":"ElementaryTypeName","src":"51878:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51847:48:13"},"returnParameters":{"id":15608,"nodeType":"ParameterList","parameters":[],"src":"51910:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15644,"nodeType":"FunctionDefinition","src":"52022:170:13","nodes":[],"body":{"id":15643,"nodeType":"Block","src":"52088:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e742c626f6f6c29","id":15635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52138:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee8d8672273fdba9089296874ea62335af7f94273edab558dd69c0c81ad5275f","typeString":"literal_string \"log(bool,address,uint,bool)\""},"value":"log(bool,address,uint,bool)"},{"id":15636,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15623,"src":"52169:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15637,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15625,"src":"52173:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15638,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15627,"src":"52177:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15639,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15629,"src":"52181:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee8d8672273fdba9089296874ea62335af7f94273edab558dd69c0c81ad5275f","typeString":"literal_string \"log(bool,address,uint,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15633,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52114:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15634,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52118:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52114:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52114:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15632,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"52098:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52098:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15642,"nodeType":"ExpressionStatement","src":"52098:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52031:3:13","parameters":{"id":15630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15623,"mutability":"mutable","name":"p0","nameLocation":"52040:2:13","nodeType":"VariableDeclaration","scope":15644,"src":"52035:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15622,"name":"bool","nodeType":"ElementaryTypeName","src":"52035:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15625,"mutability":"mutable","name":"p1","nameLocation":"52052:2:13","nodeType":"VariableDeclaration","scope":15644,"src":"52044:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15624,"name":"address","nodeType":"ElementaryTypeName","src":"52044:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15627,"mutability":"mutable","name":"p2","nameLocation":"52061:2:13","nodeType":"VariableDeclaration","scope":15644,"src":"52056:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15626,"name":"uint","nodeType":"ElementaryTypeName","src":"52056:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15629,"mutability":"mutable","name":"p3","nameLocation":"52070:2:13","nodeType":"VariableDeclaration","scope":15644,"src":"52065:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15628,"name":"bool","nodeType":"ElementaryTypeName","src":"52065:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"52034:39:13"},"returnParameters":{"id":15631,"nodeType":"ParameterList","parameters":[],"src":"52088:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15667,"nodeType":"FunctionDefinition","src":"52198:176:13","nodes":[],"body":{"id":15666,"nodeType":"Block","src":"52267:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e742c6164647265737329","id":15658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52317:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_68f158b5f9bd826807d19c20c2d71bd298a10503195154a299bf8d64baa18687","typeString":"literal_string \"log(bool,address,uint,address)\""},"value":"log(bool,address,uint,address)"},{"id":15659,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15646,"src":"52351:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15660,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15648,"src":"52355:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15661,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15650,"src":"52359:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15662,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15652,"src":"52363:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_68f158b5f9bd826807d19c20c2d71bd298a10503195154a299bf8d64baa18687","typeString":"literal_string \"log(bool,address,uint,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15656,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52293:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52297:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52293:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52293:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15655,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"52277:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52277:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15665,"nodeType":"ExpressionStatement","src":"52277:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52207:3:13","parameters":{"id":15653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15646,"mutability":"mutable","name":"p0","nameLocation":"52216:2:13","nodeType":"VariableDeclaration","scope":15667,"src":"52211:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15645,"name":"bool","nodeType":"ElementaryTypeName","src":"52211:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15648,"mutability":"mutable","name":"p1","nameLocation":"52228:2:13","nodeType":"VariableDeclaration","scope":15667,"src":"52220:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15647,"name":"address","nodeType":"ElementaryTypeName","src":"52220:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15650,"mutability":"mutable","name":"p2","nameLocation":"52237:2:13","nodeType":"VariableDeclaration","scope":15667,"src":"52232:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15649,"name":"uint","nodeType":"ElementaryTypeName","src":"52232:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15652,"mutability":"mutable","name":"p3","nameLocation":"52249:2:13","nodeType":"VariableDeclaration","scope":15667,"src":"52241:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15651,"name":"address","nodeType":"ElementaryTypeName","src":"52241:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"52210:42:13"},"returnParameters":{"id":15654,"nodeType":"ParameterList","parameters":[],"src":"52267:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15690,"nodeType":"FunctionDefinition","src":"52380:181:13","nodes":[],"body":{"id":15689,"nodeType":"Block","src":"52455:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c75696e7429","id":15681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52505:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b99fc2207222410afd35c7faf7feba54ff2367ba89f893584c27ce75693de6e","typeString":"literal_string \"log(bool,address,string,uint)\""},"value":"log(bool,address,string,uint)"},{"id":15682,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15669,"src":"52538:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15683,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15671,"src":"52542:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15684,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"52546:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15685,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15675,"src":"52550:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b99fc2207222410afd35c7faf7feba54ff2367ba89f893584c27ce75693de6e","typeString":"literal_string \"log(bool,address,string,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15679,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52481:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52485:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52481:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52481:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15678,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"52465:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52465:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15688,"nodeType":"ExpressionStatement","src":"52465:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52389:3:13","parameters":{"id":15676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15669,"mutability":"mutable","name":"p0","nameLocation":"52398:2:13","nodeType":"VariableDeclaration","scope":15690,"src":"52393:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15668,"name":"bool","nodeType":"ElementaryTypeName","src":"52393:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15671,"mutability":"mutable","name":"p1","nameLocation":"52410:2:13","nodeType":"VariableDeclaration","scope":15690,"src":"52402:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15670,"name":"address","nodeType":"ElementaryTypeName","src":"52402:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15673,"mutability":"mutable","name":"p2","nameLocation":"52428:2:13","nodeType":"VariableDeclaration","scope":15690,"src":"52414:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15672,"name":"string","nodeType":"ElementaryTypeName","src":"52414:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15675,"mutability":"mutable","name":"p3","nameLocation":"52437:2:13","nodeType":"VariableDeclaration","scope":15690,"src":"52432:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15674,"name":"uint","nodeType":"ElementaryTypeName","src":"52432:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"52392:48:13"},"returnParameters":{"id":15677,"nodeType":"ParameterList","parameters":[],"src":"52455:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15713,"nodeType":"FunctionDefinition","src":"52567:192:13","nodes":[],"body":{"id":15712,"nodeType":"Block","src":"52651:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c737472696e6729","id":15704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52701:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d","typeString":"literal_string \"log(bool,address,string,string)\""},"value":"log(bool,address,string,string)"},{"id":15705,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15692,"src":"52736:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15706,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15694,"src":"52740:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15707,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15696,"src":"52744:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15708,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15698,"src":"52748:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d","typeString":"literal_string \"log(bool,address,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15702,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52677:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52681:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52677:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52677:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15701,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"52661:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52661:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15711,"nodeType":"ExpressionStatement","src":"52661:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52576:3:13","parameters":{"id":15699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15692,"mutability":"mutable","name":"p0","nameLocation":"52585:2:13","nodeType":"VariableDeclaration","scope":15713,"src":"52580:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15691,"name":"bool","nodeType":"ElementaryTypeName","src":"52580:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15694,"mutability":"mutable","name":"p1","nameLocation":"52597:2:13","nodeType":"VariableDeclaration","scope":15713,"src":"52589:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15693,"name":"address","nodeType":"ElementaryTypeName","src":"52589:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15696,"mutability":"mutable","name":"p2","nameLocation":"52615:2:13","nodeType":"VariableDeclaration","scope":15713,"src":"52601:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15695,"name":"string","nodeType":"ElementaryTypeName","src":"52601:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15698,"mutability":"mutable","name":"p3","nameLocation":"52633:2:13","nodeType":"VariableDeclaration","scope":15713,"src":"52619:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15697,"name":"string","nodeType":"ElementaryTypeName","src":"52619:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"52579:57:13"},"returnParameters":{"id":15700,"nodeType":"ParameterList","parameters":[],"src":"52651:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15736,"nodeType":"FunctionDefinition","src":"52765:181:13","nodes":[],"body":{"id":15735,"nodeType":"Block","src":"52840:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c626f6f6c29","id":15727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52890:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc","typeString":"literal_string \"log(bool,address,string,bool)\""},"value":"log(bool,address,string,bool)"},{"id":15728,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15715,"src":"52923:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15729,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15717,"src":"52927:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15730,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15719,"src":"52931:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15731,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15721,"src":"52935:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc","typeString":"literal_string \"log(bool,address,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15725,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52866:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15726,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52870:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52866:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52866:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15724,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"52850:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52850:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15734,"nodeType":"ExpressionStatement","src":"52850:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52774:3:13","parameters":{"id":15722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15715,"mutability":"mutable","name":"p0","nameLocation":"52783:2:13","nodeType":"VariableDeclaration","scope":15736,"src":"52778:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15714,"name":"bool","nodeType":"ElementaryTypeName","src":"52778:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15717,"mutability":"mutable","name":"p1","nameLocation":"52795:2:13","nodeType":"VariableDeclaration","scope":15736,"src":"52787:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15716,"name":"address","nodeType":"ElementaryTypeName","src":"52787:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15719,"mutability":"mutable","name":"p2","nameLocation":"52813:2:13","nodeType":"VariableDeclaration","scope":15736,"src":"52799:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15718,"name":"string","nodeType":"ElementaryTypeName","src":"52799:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15721,"mutability":"mutable","name":"p3","nameLocation":"52822:2:13","nodeType":"VariableDeclaration","scope":15736,"src":"52817:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15720,"name":"bool","nodeType":"ElementaryTypeName","src":"52817:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"52777:48:13"},"returnParameters":{"id":15723,"nodeType":"ParameterList","parameters":[],"src":"52840:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15759,"nodeType":"FunctionDefinition","src":"52952:187:13","nodes":[],"body":{"id":15758,"nodeType":"Block","src":"53030:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c6164647265737329","id":15750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53080:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654","typeString":"literal_string \"log(bool,address,string,address)\""},"value":"log(bool,address,string,address)"},{"id":15751,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15738,"src":"53116:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15752,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15740,"src":"53120:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15753,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15742,"src":"53124:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15754,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15744,"src":"53128:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654","typeString":"literal_string \"log(bool,address,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15748,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53056:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15749,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53060:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53056:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53056:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15747,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"53040:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53040:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15757,"nodeType":"ExpressionStatement","src":"53040:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52961:3:13","parameters":{"id":15745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15738,"mutability":"mutable","name":"p0","nameLocation":"52970:2:13","nodeType":"VariableDeclaration","scope":15759,"src":"52965:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15737,"name":"bool","nodeType":"ElementaryTypeName","src":"52965:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15740,"mutability":"mutable","name":"p1","nameLocation":"52982:2:13","nodeType":"VariableDeclaration","scope":15759,"src":"52974:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15739,"name":"address","nodeType":"ElementaryTypeName","src":"52974:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15742,"mutability":"mutable","name":"p2","nameLocation":"53000:2:13","nodeType":"VariableDeclaration","scope":15759,"src":"52986:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15741,"name":"string","nodeType":"ElementaryTypeName","src":"52986:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15744,"mutability":"mutable","name":"p3","nameLocation":"53012:2:13","nodeType":"VariableDeclaration","scope":15759,"src":"53004:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15743,"name":"address","nodeType":"ElementaryTypeName","src":"53004:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"52964:51:13"},"returnParameters":{"id":15746,"nodeType":"ParameterList","parameters":[],"src":"53030:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15782,"nodeType":"FunctionDefinition","src":"53145:170:13","nodes":[],"body":{"id":15781,"nodeType":"Block","src":"53211:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c75696e7429","id":15773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53261:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_4cb60fd1171fb665e1565124463601e5c451a362c8efbc6e1fcfbffbbb9850d9","typeString":"literal_string \"log(bool,address,bool,uint)\""},"value":"log(bool,address,bool,uint)"},{"id":15774,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15761,"src":"53292:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15775,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15763,"src":"53296:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15776,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15765,"src":"53300:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15777,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15767,"src":"53304:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4cb60fd1171fb665e1565124463601e5c451a362c8efbc6e1fcfbffbbb9850d9","typeString":"literal_string \"log(bool,address,bool,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15771,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53237:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15772,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53241:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53237:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53237:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15770,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"53221:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53221:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15780,"nodeType":"ExpressionStatement","src":"53221:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53154:3:13","parameters":{"id":15768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15761,"mutability":"mutable","name":"p0","nameLocation":"53163:2:13","nodeType":"VariableDeclaration","scope":15782,"src":"53158:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15760,"name":"bool","nodeType":"ElementaryTypeName","src":"53158:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15763,"mutability":"mutable","name":"p1","nameLocation":"53175:2:13","nodeType":"VariableDeclaration","scope":15782,"src":"53167:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15762,"name":"address","nodeType":"ElementaryTypeName","src":"53167:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15765,"mutability":"mutable","name":"p2","nameLocation":"53184:2:13","nodeType":"VariableDeclaration","scope":15782,"src":"53179:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15764,"name":"bool","nodeType":"ElementaryTypeName","src":"53179:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15767,"mutability":"mutable","name":"p3","nameLocation":"53193:2:13","nodeType":"VariableDeclaration","scope":15782,"src":"53188:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15766,"name":"uint","nodeType":"ElementaryTypeName","src":"53188:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"53157:39:13"},"returnParameters":{"id":15769,"nodeType":"ParameterList","parameters":[],"src":"53211:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15805,"nodeType":"FunctionDefinition","src":"53321:181:13","nodes":[],"body":{"id":15804,"nodeType":"Block","src":"53396:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c737472696e6729","id":15796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53446:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59","typeString":"literal_string \"log(bool,address,bool,string)\""},"value":"log(bool,address,bool,string)"},{"id":15797,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15784,"src":"53479:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15798,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15786,"src":"53483:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15799,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15788,"src":"53487:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15800,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15790,"src":"53491:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59","typeString":"literal_string \"log(bool,address,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15794,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53422:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53426:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53422:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53422:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15793,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"53406:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53406:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15803,"nodeType":"ExpressionStatement","src":"53406:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53330:3:13","parameters":{"id":15791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15784,"mutability":"mutable","name":"p0","nameLocation":"53339:2:13","nodeType":"VariableDeclaration","scope":15805,"src":"53334:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15783,"name":"bool","nodeType":"ElementaryTypeName","src":"53334:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15786,"mutability":"mutable","name":"p1","nameLocation":"53351:2:13","nodeType":"VariableDeclaration","scope":15805,"src":"53343:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15785,"name":"address","nodeType":"ElementaryTypeName","src":"53343:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15788,"mutability":"mutable","name":"p2","nameLocation":"53360:2:13","nodeType":"VariableDeclaration","scope":15805,"src":"53355:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15787,"name":"bool","nodeType":"ElementaryTypeName","src":"53355:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15790,"mutability":"mutable","name":"p3","nameLocation":"53378:2:13","nodeType":"VariableDeclaration","scope":15805,"src":"53364:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15789,"name":"string","nodeType":"ElementaryTypeName","src":"53364:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"53333:48:13"},"returnParameters":{"id":15792,"nodeType":"ParameterList","parameters":[],"src":"53396:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15828,"nodeType":"FunctionDefinition","src":"53508:170:13","nodes":[],"body":{"id":15827,"nodeType":"Block","src":"53574:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c626f6f6c29","id":15819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53624:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577","typeString":"literal_string \"log(bool,address,bool,bool)\""},"value":"log(bool,address,bool,bool)"},{"id":15820,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15807,"src":"53655:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15821,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15809,"src":"53659:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15822,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15811,"src":"53663:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15823,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15813,"src":"53667:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577","typeString":"literal_string \"log(bool,address,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15817,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53600:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53604:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53600:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53600:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15816,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"53584:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53584:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15826,"nodeType":"ExpressionStatement","src":"53584:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53517:3:13","parameters":{"id":15814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15807,"mutability":"mutable","name":"p0","nameLocation":"53526:2:13","nodeType":"VariableDeclaration","scope":15828,"src":"53521:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15806,"name":"bool","nodeType":"ElementaryTypeName","src":"53521:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15809,"mutability":"mutable","name":"p1","nameLocation":"53538:2:13","nodeType":"VariableDeclaration","scope":15828,"src":"53530:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15808,"name":"address","nodeType":"ElementaryTypeName","src":"53530:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15811,"mutability":"mutable","name":"p2","nameLocation":"53547:2:13","nodeType":"VariableDeclaration","scope":15828,"src":"53542:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15810,"name":"bool","nodeType":"ElementaryTypeName","src":"53542:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15813,"mutability":"mutable","name":"p3","nameLocation":"53556:2:13","nodeType":"VariableDeclaration","scope":15828,"src":"53551:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15812,"name":"bool","nodeType":"ElementaryTypeName","src":"53551:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"53520:39:13"},"returnParameters":{"id":15815,"nodeType":"ParameterList","parameters":[],"src":"53574:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15851,"nodeType":"FunctionDefinition","src":"53684:176:13","nodes":[],"body":{"id":15850,"nodeType":"Block","src":"53753:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c6164647265737329","id":15842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53803:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870","typeString":"literal_string \"log(bool,address,bool,address)\""},"value":"log(bool,address,bool,address)"},{"id":15843,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15830,"src":"53837:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15844,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15832,"src":"53841:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15845,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15834,"src":"53845:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15846,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15836,"src":"53849:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870","typeString":"literal_string \"log(bool,address,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15840,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53779:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53783:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53779:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53779:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15839,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"53763:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53763:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15849,"nodeType":"ExpressionStatement","src":"53763:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53693:3:13","parameters":{"id":15837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15830,"mutability":"mutable","name":"p0","nameLocation":"53702:2:13","nodeType":"VariableDeclaration","scope":15851,"src":"53697:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15829,"name":"bool","nodeType":"ElementaryTypeName","src":"53697:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15832,"mutability":"mutable","name":"p1","nameLocation":"53714:2:13","nodeType":"VariableDeclaration","scope":15851,"src":"53706:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15831,"name":"address","nodeType":"ElementaryTypeName","src":"53706:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15834,"mutability":"mutable","name":"p2","nameLocation":"53723:2:13","nodeType":"VariableDeclaration","scope":15851,"src":"53718:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15833,"name":"bool","nodeType":"ElementaryTypeName","src":"53718:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15836,"mutability":"mutable","name":"p3","nameLocation":"53735:2:13","nodeType":"VariableDeclaration","scope":15851,"src":"53727:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15835,"name":"address","nodeType":"ElementaryTypeName","src":"53727:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"53696:42:13"},"returnParameters":{"id":15838,"nodeType":"ParameterList","parameters":[],"src":"53753:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15874,"nodeType":"FunctionDefinition","src":"53866:176:13","nodes":[],"body":{"id":15873,"nodeType":"Block","src":"53935:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c75696e7429","id":15865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53985:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_5284bd6c2d02d32d79d43dcd0793be5ced63bf4e51bea38208974f6d8ca5def7","typeString":"literal_string \"log(bool,address,address,uint)\""},"value":"log(bool,address,address,uint)"},{"id":15866,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15853,"src":"54019:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15867,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15855,"src":"54023:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15868,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15857,"src":"54027:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15869,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15859,"src":"54031:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5284bd6c2d02d32d79d43dcd0793be5ced63bf4e51bea38208974f6d8ca5def7","typeString":"literal_string \"log(bool,address,address,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15863,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53961:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53965:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53961:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53961:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15862,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"53945:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53945:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15872,"nodeType":"ExpressionStatement","src":"53945:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53875:3:13","parameters":{"id":15860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15853,"mutability":"mutable","name":"p0","nameLocation":"53884:2:13","nodeType":"VariableDeclaration","scope":15874,"src":"53879:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15852,"name":"bool","nodeType":"ElementaryTypeName","src":"53879:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15855,"mutability":"mutable","name":"p1","nameLocation":"53896:2:13","nodeType":"VariableDeclaration","scope":15874,"src":"53888:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15854,"name":"address","nodeType":"ElementaryTypeName","src":"53888:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15857,"mutability":"mutable","name":"p2","nameLocation":"53908:2:13","nodeType":"VariableDeclaration","scope":15874,"src":"53900:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15856,"name":"address","nodeType":"ElementaryTypeName","src":"53900:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15859,"mutability":"mutable","name":"p3","nameLocation":"53917:2:13","nodeType":"VariableDeclaration","scope":15874,"src":"53912:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15858,"name":"uint","nodeType":"ElementaryTypeName","src":"53912:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"53878:42:13"},"returnParameters":{"id":15861,"nodeType":"ParameterList","parameters":[],"src":"53935:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15897,"nodeType":"FunctionDefinition","src":"54048:187:13","nodes":[],"body":{"id":15896,"nodeType":"Block","src":"54126:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c737472696e6729","id":15888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54176:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432","typeString":"literal_string \"log(bool,address,address,string)\""},"value":"log(bool,address,address,string)"},{"id":15889,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15876,"src":"54212:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15890,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"54216:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15891,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15880,"src":"54220:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15892,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15882,"src":"54224:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432","typeString":"literal_string \"log(bool,address,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15886,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54152:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54156:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54152:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54152:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15885,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"54136:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54136:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15895,"nodeType":"ExpressionStatement","src":"54136:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54057:3:13","parameters":{"id":15883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15876,"mutability":"mutable","name":"p0","nameLocation":"54066:2:13","nodeType":"VariableDeclaration","scope":15897,"src":"54061:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15875,"name":"bool","nodeType":"ElementaryTypeName","src":"54061:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15878,"mutability":"mutable","name":"p1","nameLocation":"54078:2:13","nodeType":"VariableDeclaration","scope":15897,"src":"54070:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15877,"name":"address","nodeType":"ElementaryTypeName","src":"54070:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15880,"mutability":"mutable","name":"p2","nameLocation":"54090:2:13","nodeType":"VariableDeclaration","scope":15897,"src":"54082:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15879,"name":"address","nodeType":"ElementaryTypeName","src":"54082:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15882,"mutability":"mutable","name":"p3","nameLocation":"54108:2:13","nodeType":"VariableDeclaration","scope":15897,"src":"54094:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15881,"name":"string","nodeType":"ElementaryTypeName","src":"54094:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"54060:51:13"},"returnParameters":{"id":15884,"nodeType":"ParameterList","parameters":[],"src":"54126:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15920,"nodeType":"FunctionDefinition","src":"54241:176:13","nodes":[],"body":{"id":15919,"nodeType":"Block","src":"54310:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c626f6f6c29","id":15911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54360:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e","typeString":"literal_string \"log(bool,address,address,bool)\""},"value":"log(bool,address,address,bool)"},{"id":15912,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15899,"src":"54394:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15913,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15901,"src":"54398:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15914,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15903,"src":"54402:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15915,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15905,"src":"54406:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e","typeString":"literal_string \"log(bool,address,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15909,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54336:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54340:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54336:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54336:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15908,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"54320:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54320:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15918,"nodeType":"ExpressionStatement","src":"54320:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54250:3:13","parameters":{"id":15906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15899,"mutability":"mutable","name":"p0","nameLocation":"54259:2:13","nodeType":"VariableDeclaration","scope":15920,"src":"54254:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15898,"name":"bool","nodeType":"ElementaryTypeName","src":"54254:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15901,"mutability":"mutable","name":"p1","nameLocation":"54271:2:13","nodeType":"VariableDeclaration","scope":15920,"src":"54263:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15900,"name":"address","nodeType":"ElementaryTypeName","src":"54263:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15903,"mutability":"mutable","name":"p2","nameLocation":"54283:2:13","nodeType":"VariableDeclaration","scope":15920,"src":"54275:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15902,"name":"address","nodeType":"ElementaryTypeName","src":"54275:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15905,"mutability":"mutable","name":"p3","nameLocation":"54292:2:13","nodeType":"VariableDeclaration","scope":15920,"src":"54287:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15904,"name":"bool","nodeType":"ElementaryTypeName","src":"54287:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"54253:42:13"},"returnParameters":{"id":15907,"nodeType":"ParameterList","parameters":[],"src":"54310:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15943,"nodeType":"FunctionDefinition","src":"54423:182:13","nodes":[],"body":{"id":15942,"nodeType":"Block","src":"54495:110:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c6164647265737329","id":15934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54545:35:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123","typeString":"literal_string \"log(bool,address,address,address)\""},"value":"log(bool,address,address,address)"},{"id":15935,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15922,"src":"54582:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":15936,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15924,"src":"54586:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15937,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15926,"src":"54590:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15938,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15928,"src":"54594:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123","typeString":"literal_string \"log(bool,address,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15932,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54521:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54525:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54521:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54521:76:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15931,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"54505:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54505:93:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15941,"nodeType":"ExpressionStatement","src":"54505:93:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54432:3:13","parameters":{"id":15929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15922,"mutability":"mutable","name":"p0","nameLocation":"54441:2:13","nodeType":"VariableDeclaration","scope":15943,"src":"54436:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15921,"name":"bool","nodeType":"ElementaryTypeName","src":"54436:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15924,"mutability":"mutable","name":"p1","nameLocation":"54453:2:13","nodeType":"VariableDeclaration","scope":15943,"src":"54445:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15923,"name":"address","nodeType":"ElementaryTypeName","src":"54445:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15926,"mutability":"mutable","name":"p2","nameLocation":"54465:2:13","nodeType":"VariableDeclaration","scope":15943,"src":"54457:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15925,"name":"address","nodeType":"ElementaryTypeName","src":"54457:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15928,"mutability":"mutable","name":"p3","nameLocation":"54477:2:13","nodeType":"VariableDeclaration","scope":15943,"src":"54469:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15927,"name":"address","nodeType":"ElementaryTypeName","src":"54469:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"54435:45:13"},"returnParameters":{"id":15930,"nodeType":"ParameterList","parameters":[],"src":"54495:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15966,"nodeType":"FunctionDefinition","src":"54611:170:13","nodes":[],"body":{"id":15965,"nodeType":"Block","src":"54677:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c75696e742c75696e7429","id":15957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54727:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d0e9de46a80fe11d0044e9599dfddd0e8b842cabe189638f7090f19867918c1","typeString":"literal_string \"log(address,uint,uint,uint)\""},"value":"log(address,uint,uint,uint)"},{"id":15958,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15945,"src":"54758:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15959,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15947,"src":"54762:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15960,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15949,"src":"54766:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15961,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15951,"src":"54770:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3d0e9de46a80fe11d0044e9599dfddd0e8b842cabe189638f7090f19867918c1","typeString":"literal_string \"log(address,uint,uint,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15955,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54703:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54707:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54703:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54703:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15954,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"54687:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54687:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15964,"nodeType":"ExpressionStatement","src":"54687:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54620:3:13","parameters":{"id":15952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15945,"mutability":"mutable","name":"p0","nameLocation":"54632:2:13","nodeType":"VariableDeclaration","scope":15966,"src":"54624:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15944,"name":"address","nodeType":"ElementaryTypeName","src":"54624:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15947,"mutability":"mutable","name":"p1","nameLocation":"54641:2:13","nodeType":"VariableDeclaration","scope":15966,"src":"54636:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15946,"name":"uint","nodeType":"ElementaryTypeName","src":"54636:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15949,"mutability":"mutable","name":"p2","nameLocation":"54650:2:13","nodeType":"VariableDeclaration","scope":15966,"src":"54645:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15948,"name":"uint","nodeType":"ElementaryTypeName","src":"54645:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15951,"mutability":"mutable","name":"p3","nameLocation":"54659:2:13","nodeType":"VariableDeclaration","scope":15966,"src":"54654:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15950,"name":"uint","nodeType":"ElementaryTypeName","src":"54654:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"54623:39:13"},"returnParameters":{"id":15953,"nodeType":"ParameterList","parameters":[],"src":"54677:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15989,"nodeType":"FunctionDefinition","src":"54787:181:13","nodes":[],"body":{"id":15988,"nodeType":"Block","src":"54862:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c75696e742c737472696e6729","id":15980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54912:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_89340dab4d23e956541beb32775ccfee8376ba263886dd811a646420a3a403a3","typeString":"literal_string \"log(address,uint,uint,string)\""},"value":"log(address,uint,uint,string)"},{"id":15981,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15968,"src":"54945:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15982,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15970,"src":"54949:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15983,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15972,"src":"54953:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15984,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15974,"src":"54957:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_89340dab4d23e956541beb32775ccfee8376ba263886dd811a646420a3a403a3","typeString":"literal_string \"log(address,uint,uint,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15978,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54888:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54892:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54888:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54888:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15977,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"54872:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54872:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15987,"nodeType":"ExpressionStatement","src":"54872:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54796:3:13","parameters":{"id":15975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15968,"mutability":"mutable","name":"p0","nameLocation":"54808:2:13","nodeType":"VariableDeclaration","scope":15989,"src":"54800:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15967,"name":"address","nodeType":"ElementaryTypeName","src":"54800:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15970,"mutability":"mutable","name":"p1","nameLocation":"54817:2:13","nodeType":"VariableDeclaration","scope":15989,"src":"54812:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15969,"name":"uint","nodeType":"ElementaryTypeName","src":"54812:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15972,"mutability":"mutable","name":"p2","nameLocation":"54826:2:13","nodeType":"VariableDeclaration","scope":15989,"src":"54821:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15971,"name":"uint","nodeType":"ElementaryTypeName","src":"54821:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15974,"mutability":"mutable","name":"p3","nameLocation":"54844:2:13","nodeType":"VariableDeclaration","scope":15989,"src":"54830:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15973,"name":"string","nodeType":"ElementaryTypeName","src":"54830:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"54799:48:13"},"returnParameters":{"id":15976,"nodeType":"ParameterList","parameters":[],"src":"54862:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16012,"nodeType":"FunctionDefinition","src":"54974:170:13","nodes":[],"body":{"id":16011,"nodeType":"Block","src":"55040:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c75696e742c626f6f6c29","id":16003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55090:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_ec4ba8a24543362f628480c68bc2d6749e97ab33d46530db336a528c77e48393","typeString":"literal_string \"log(address,uint,uint,bool)\""},"value":"log(address,uint,uint,bool)"},{"id":16004,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15991,"src":"55121:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16005,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15993,"src":"55125:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16006,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15995,"src":"55129:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16007,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15997,"src":"55133:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ec4ba8a24543362f628480c68bc2d6749e97ab33d46530db336a528c77e48393","typeString":"literal_string \"log(address,uint,uint,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16001,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55066:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16002,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55070:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55066:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55066:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16000,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"55050:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55050:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16010,"nodeType":"ExpressionStatement","src":"55050:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54983:3:13","parameters":{"id":15998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15991,"mutability":"mutable","name":"p0","nameLocation":"54995:2:13","nodeType":"VariableDeclaration","scope":16012,"src":"54987:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15990,"name":"address","nodeType":"ElementaryTypeName","src":"54987:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15993,"mutability":"mutable","name":"p1","nameLocation":"55004:2:13","nodeType":"VariableDeclaration","scope":16012,"src":"54999:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15992,"name":"uint","nodeType":"ElementaryTypeName","src":"54999:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15995,"mutability":"mutable","name":"p2","nameLocation":"55013:2:13","nodeType":"VariableDeclaration","scope":16012,"src":"55008:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15994,"name":"uint","nodeType":"ElementaryTypeName","src":"55008:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15997,"mutability":"mutable","name":"p3","nameLocation":"55022:2:13","nodeType":"VariableDeclaration","scope":16012,"src":"55017:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15996,"name":"bool","nodeType":"ElementaryTypeName","src":"55017:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"54986:39:13"},"returnParameters":{"id":15999,"nodeType":"ParameterList","parameters":[],"src":"55040:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16035,"nodeType":"FunctionDefinition","src":"55150:176:13","nodes":[],"body":{"id":16034,"nodeType":"Block","src":"55219:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c75696e742c6164647265737329","id":16026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55269:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ef634347c2e4a2aa1a4e4e13d33bf0169f02bc4d10ff6168ca604cf3134d957","typeString":"literal_string \"log(address,uint,uint,address)\""},"value":"log(address,uint,uint,address)"},{"id":16027,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16014,"src":"55303:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16028,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16016,"src":"55307:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16029,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16018,"src":"55311:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16030,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16020,"src":"55315:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1ef634347c2e4a2aa1a4e4e13d33bf0169f02bc4d10ff6168ca604cf3134d957","typeString":"literal_string \"log(address,uint,uint,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16024,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55245:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16025,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55249:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55245:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55245:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16023,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"55229:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55229:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16033,"nodeType":"ExpressionStatement","src":"55229:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55159:3:13","parameters":{"id":16021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16014,"mutability":"mutable","name":"p0","nameLocation":"55171:2:13","nodeType":"VariableDeclaration","scope":16035,"src":"55163:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16013,"name":"address","nodeType":"ElementaryTypeName","src":"55163:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16016,"mutability":"mutable","name":"p1","nameLocation":"55180:2:13","nodeType":"VariableDeclaration","scope":16035,"src":"55175:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16015,"name":"uint","nodeType":"ElementaryTypeName","src":"55175:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16018,"mutability":"mutable","name":"p2","nameLocation":"55189:2:13","nodeType":"VariableDeclaration","scope":16035,"src":"55184:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16017,"name":"uint","nodeType":"ElementaryTypeName","src":"55184:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16020,"mutability":"mutable","name":"p3","nameLocation":"55201:2:13","nodeType":"VariableDeclaration","scope":16035,"src":"55193:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16019,"name":"address","nodeType":"ElementaryTypeName","src":"55193:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"55162:42:13"},"returnParameters":{"id":16022,"nodeType":"ParameterList","parameters":[],"src":"55219:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16058,"nodeType":"FunctionDefinition","src":"55332:181:13","nodes":[],"body":{"id":16057,"nodeType":"Block","src":"55407:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c737472696e672c75696e7429","id":16049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55457:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_f512cf9b6f6b16313e82164dab4a017b25c36dde729112fd1b69de438557701b","typeString":"literal_string \"log(address,uint,string,uint)\""},"value":"log(address,uint,string,uint)"},{"id":16050,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16037,"src":"55490:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16051,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16039,"src":"55494:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16052,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16041,"src":"55498:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16053,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16043,"src":"55502:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f512cf9b6f6b16313e82164dab4a017b25c36dde729112fd1b69de438557701b","typeString":"literal_string \"log(address,uint,string,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16047,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55433:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55437:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55433:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55433:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16046,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"55417:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55417:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16056,"nodeType":"ExpressionStatement","src":"55417:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55341:3:13","parameters":{"id":16044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16037,"mutability":"mutable","name":"p0","nameLocation":"55353:2:13","nodeType":"VariableDeclaration","scope":16058,"src":"55345:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16036,"name":"address","nodeType":"ElementaryTypeName","src":"55345:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16039,"mutability":"mutable","name":"p1","nameLocation":"55362:2:13","nodeType":"VariableDeclaration","scope":16058,"src":"55357:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16038,"name":"uint","nodeType":"ElementaryTypeName","src":"55357:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16041,"mutability":"mutable","name":"p2","nameLocation":"55380:2:13","nodeType":"VariableDeclaration","scope":16058,"src":"55366:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16040,"name":"string","nodeType":"ElementaryTypeName","src":"55366:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16043,"mutability":"mutable","name":"p3","nameLocation":"55389:2:13","nodeType":"VariableDeclaration","scope":16058,"src":"55384:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16042,"name":"uint","nodeType":"ElementaryTypeName","src":"55384:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"55344:48:13"},"returnParameters":{"id":16045,"nodeType":"ParameterList","parameters":[],"src":"55407:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16081,"nodeType":"FunctionDefinition","src":"55519:192:13","nodes":[],"body":{"id":16080,"nodeType":"Block","src":"55603:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c737472696e672c737472696e6729","id":16072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55653:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_7e56c693294848e354fd0e0f30db9c459984681d518306ec606cfd6f328a5ba0","typeString":"literal_string \"log(address,uint,string,string)\""},"value":"log(address,uint,string,string)"},{"id":16073,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16060,"src":"55688:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16074,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16062,"src":"55692:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16075,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16064,"src":"55696:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16076,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16066,"src":"55700:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7e56c693294848e354fd0e0f30db9c459984681d518306ec606cfd6f328a5ba0","typeString":"literal_string \"log(address,uint,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16070,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55629:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16071,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55633:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55629:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55629:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16069,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"55613:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55613:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16079,"nodeType":"ExpressionStatement","src":"55613:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55528:3:13","parameters":{"id":16067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16060,"mutability":"mutable","name":"p0","nameLocation":"55540:2:13","nodeType":"VariableDeclaration","scope":16081,"src":"55532:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16059,"name":"address","nodeType":"ElementaryTypeName","src":"55532:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16062,"mutability":"mutable","name":"p1","nameLocation":"55549:2:13","nodeType":"VariableDeclaration","scope":16081,"src":"55544:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16061,"name":"uint","nodeType":"ElementaryTypeName","src":"55544:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16064,"mutability":"mutable","name":"p2","nameLocation":"55567:2:13","nodeType":"VariableDeclaration","scope":16081,"src":"55553:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16063,"name":"string","nodeType":"ElementaryTypeName","src":"55553:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16066,"mutability":"mutable","name":"p3","nameLocation":"55585:2:13","nodeType":"VariableDeclaration","scope":16081,"src":"55571:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16065,"name":"string","nodeType":"ElementaryTypeName","src":"55571:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"55531:57:13"},"returnParameters":{"id":16068,"nodeType":"ParameterList","parameters":[],"src":"55603:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16104,"nodeType":"FunctionDefinition","src":"55717:181:13","nodes":[],"body":{"id":16103,"nodeType":"Block","src":"55792:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c737472696e672c626f6f6c29","id":16095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55842:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a4024f1195637e9b9bd0fa746905cf1693b1e0cd3e1c717a1cbc5279763b256a","typeString":"literal_string \"log(address,uint,string,bool)\""},"value":"log(address,uint,string,bool)"},{"id":16096,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16083,"src":"55875:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16097,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16085,"src":"55879:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16098,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16087,"src":"55883:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16099,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16089,"src":"55887:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a4024f1195637e9b9bd0fa746905cf1693b1e0cd3e1c717a1cbc5279763b256a","typeString":"literal_string \"log(address,uint,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16093,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55818:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16094,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55822:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55818:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55818:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16092,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"55802:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55802:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16102,"nodeType":"ExpressionStatement","src":"55802:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55726:3:13","parameters":{"id":16090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16083,"mutability":"mutable","name":"p0","nameLocation":"55738:2:13","nodeType":"VariableDeclaration","scope":16104,"src":"55730:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16082,"name":"address","nodeType":"ElementaryTypeName","src":"55730:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16085,"mutability":"mutable","name":"p1","nameLocation":"55747:2:13","nodeType":"VariableDeclaration","scope":16104,"src":"55742:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16084,"name":"uint","nodeType":"ElementaryTypeName","src":"55742:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16087,"mutability":"mutable","name":"p2","nameLocation":"55765:2:13","nodeType":"VariableDeclaration","scope":16104,"src":"55751:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16086,"name":"string","nodeType":"ElementaryTypeName","src":"55751:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16089,"mutability":"mutable","name":"p3","nameLocation":"55774:2:13","nodeType":"VariableDeclaration","scope":16104,"src":"55769:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16088,"name":"bool","nodeType":"ElementaryTypeName","src":"55769:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"55729:48:13"},"returnParameters":{"id":16091,"nodeType":"ParameterList","parameters":[],"src":"55792:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16127,"nodeType":"FunctionDefinition","src":"55904:187:13","nodes":[],"body":{"id":16126,"nodeType":"Block","src":"55982:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c737472696e672c6164647265737329","id":16118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56032:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc792604099307de53721f0c554f3059214ac3d8d1f6cd01cd16cf188835e809","typeString":"literal_string \"log(address,uint,string,address)\""},"value":"log(address,uint,string,address)"},{"id":16119,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16106,"src":"56068:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16120,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16108,"src":"56072:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16121,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16110,"src":"56076:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16122,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16112,"src":"56080:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc792604099307de53721f0c554f3059214ac3d8d1f6cd01cd16cf188835e809","typeString":"literal_string \"log(address,uint,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16116,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56008:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56012:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56008:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56008:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16115,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"55992:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55992:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16125,"nodeType":"ExpressionStatement","src":"55992:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55913:3:13","parameters":{"id":16113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16106,"mutability":"mutable","name":"p0","nameLocation":"55925:2:13","nodeType":"VariableDeclaration","scope":16127,"src":"55917:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16105,"name":"address","nodeType":"ElementaryTypeName","src":"55917:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16108,"mutability":"mutable","name":"p1","nameLocation":"55934:2:13","nodeType":"VariableDeclaration","scope":16127,"src":"55929:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16107,"name":"uint","nodeType":"ElementaryTypeName","src":"55929:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16110,"mutability":"mutable","name":"p2","nameLocation":"55952:2:13","nodeType":"VariableDeclaration","scope":16127,"src":"55938:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16109,"name":"string","nodeType":"ElementaryTypeName","src":"55938:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16112,"mutability":"mutable","name":"p3","nameLocation":"55964:2:13","nodeType":"VariableDeclaration","scope":16127,"src":"55956:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16111,"name":"address","nodeType":"ElementaryTypeName","src":"55956:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"55916:51:13"},"returnParameters":{"id":16114,"nodeType":"ParameterList","parameters":[],"src":"55982:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16150,"nodeType":"FunctionDefinition","src":"56097:170:13","nodes":[],"body":{"id":16149,"nodeType":"Block","src":"56163:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c626f6f6c2c75696e7429","id":16141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56213:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_698f43923a9354f67c861ae1c111970990b11c7f948743e5f44d6ea901e7f1a2","typeString":"literal_string \"log(address,uint,bool,uint)\""},"value":"log(address,uint,bool,uint)"},{"id":16142,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16129,"src":"56244:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16143,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16131,"src":"56248:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16144,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16133,"src":"56252:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16145,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16135,"src":"56256:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_698f43923a9354f67c861ae1c111970990b11c7f948743e5f44d6ea901e7f1a2","typeString":"literal_string \"log(address,uint,bool,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16139,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56189:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16140,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56193:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56189:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56189:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16138,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"56173:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56173:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16148,"nodeType":"ExpressionStatement","src":"56173:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56106:3:13","parameters":{"id":16136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16129,"mutability":"mutable","name":"p0","nameLocation":"56118:2:13","nodeType":"VariableDeclaration","scope":16150,"src":"56110:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16128,"name":"address","nodeType":"ElementaryTypeName","src":"56110:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16131,"mutability":"mutable","name":"p1","nameLocation":"56127:2:13","nodeType":"VariableDeclaration","scope":16150,"src":"56122:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16130,"name":"uint","nodeType":"ElementaryTypeName","src":"56122:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16133,"mutability":"mutable","name":"p2","nameLocation":"56136:2:13","nodeType":"VariableDeclaration","scope":16150,"src":"56131:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16132,"name":"bool","nodeType":"ElementaryTypeName","src":"56131:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16135,"mutability":"mutable","name":"p3","nameLocation":"56145:2:13","nodeType":"VariableDeclaration","scope":16150,"src":"56140:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16134,"name":"uint","nodeType":"ElementaryTypeName","src":"56140:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"56109:39:13"},"returnParameters":{"id":16137,"nodeType":"ParameterList","parameters":[],"src":"56163:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16173,"nodeType":"FunctionDefinition","src":"56273:181:13","nodes":[],"body":{"id":16172,"nodeType":"Block","src":"56348:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c626f6f6c2c737472696e6729","id":16164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56398:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e8e4e75a8ccb3f0e11ad74335eebf7a17a78463e99c3b077ff34193a8918f3f","typeString":"literal_string \"log(address,uint,bool,string)\""},"value":"log(address,uint,bool,string)"},{"id":16165,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16152,"src":"56431:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16166,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16154,"src":"56435:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16167,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16156,"src":"56439:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16168,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16158,"src":"56443:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e8e4e75a8ccb3f0e11ad74335eebf7a17a78463e99c3b077ff34193a8918f3f","typeString":"literal_string \"log(address,uint,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16162,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56374:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56378:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56374:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56374:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16161,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"56358:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56358:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16171,"nodeType":"ExpressionStatement","src":"56358:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56282:3:13","parameters":{"id":16159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16152,"mutability":"mutable","name":"p0","nameLocation":"56294:2:13","nodeType":"VariableDeclaration","scope":16173,"src":"56286:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16151,"name":"address","nodeType":"ElementaryTypeName","src":"56286:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16154,"mutability":"mutable","name":"p1","nameLocation":"56303:2:13","nodeType":"VariableDeclaration","scope":16173,"src":"56298:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16153,"name":"uint","nodeType":"ElementaryTypeName","src":"56298:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16156,"mutability":"mutable","name":"p2","nameLocation":"56312:2:13","nodeType":"VariableDeclaration","scope":16173,"src":"56307:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16155,"name":"bool","nodeType":"ElementaryTypeName","src":"56307:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16158,"mutability":"mutable","name":"p3","nameLocation":"56330:2:13","nodeType":"VariableDeclaration","scope":16173,"src":"56316:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16157,"name":"string","nodeType":"ElementaryTypeName","src":"56316:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56285:48:13"},"returnParameters":{"id":16160,"nodeType":"ParameterList","parameters":[],"src":"56348:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16196,"nodeType":"FunctionDefinition","src":"56460:170:13","nodes":[],"body":{"id":16195,"nodeType":"Block","src":"56526:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c626f6f6c2c626f6f6c29","id":16187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56576:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_fea1d55aec42c422504acea77de45574d2fa3abd9dc9c6288741e19c3bd9849b","typeString":"literal_string \"log(address,uint,bool,bool)\""},"value":"log(address,uint,bool,bool)"},{"id":16188,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16175,"src":"56607:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16189,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16177,"src":"56611:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16190,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16179,"src":"56615:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16191,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16181,"src":"56619:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fea1d55aec42c422504acea77de45574d2fa3abd9dc9c6288741e19c3bd9849b","typeString":"literal_string \"log(address,uint,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16185,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56552:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56556:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56552:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56552:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16184,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"56536:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56536:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16194,"nodeType":"ExpressionStatement","src":"56536:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56469:3:13","parameters":{"id":16182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16175,"mutability":"mutable","name":"p0","nameLocation":"56481:2:13","nodeType":"VariableDeclaration","scope":16196,"src":"56473:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16174,"name":"address","nodeType":"ElementaryTypeName","src":"56473:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16177,"mutability":"mutable","name":"p1","nameLocation":"56490:2:13","nodeType":"VariableDeclaration","scope":16196,"src":"56485:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16176,"name":"uint","nodeType":"ElementaryTypeName","src":"56485:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16179,"mutability":"mutable","name":"p2","nameLocation":"56499:2:13","nodeType":"VariableDeclaration","scope":16196,"src":"56494:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16178,"name":"bool","nodeType":"ElementaryTypeName","src":"56494:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16181,"mutability":"mutable","name":"p3","nameLocation":"56508:2:13","nodeType":"VariableDeclaration","scope":16196,"src":"56503:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16180,"name":"bool","nodeType":"ElementaryTypeName","src":"56503:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"56472:39:13"},"returnParameters":{"id":16183,"nodeType":"ParameterList","parameters":[],"src":"56526:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16219,"nodeType":"FunctionDefinition","src":"56636:176:13","nodes":[],"body":{"id":16218,"nodeType":"Block","src":"56705:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c626f6f6c2c6164647265737329","id":16210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56755:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_23e5497254e625e6c33a3fa3eb47ff18f6bac3345da52f847bd5571820febf2d","typeString":"literal_string \"log(address,uint,bool,address)\""},"value":"log(address,uint,bool,address)"},{"id":16211,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16198,"src":"56789:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16212,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16200,"src":"56793:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16213,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16202,"src":"56797:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16214,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16204,"src":"56801:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_23e5497254e625e6c33a3fa3eb47ff18f6bac3345da52f847bd5571820febf2d","typeString":"literal_string \"log(address,uint,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16208,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56731:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56735:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56731:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56731:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16207,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"56715:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56715:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16217,"nodeType":"ExpressionStatement","src":"56715:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56645:3:13","parameters":{"id":16205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16198,"mutability":"mutable","name":"p0","nameLocation":"56657:2:13","nodeType":"VariableDeclaration","scope":16219,"src":"56649:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16197,"name":"address","nodeType":"ElementaryTypeName","src":"56649:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16200,"mutability":"mutable","name":"p1","nameLocation":"56666:2:13","nodeType":"VariableDeclaration","scope":16219,"src":"56661:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16199,"name":"uint","nodeType":"ElementaryTypeName","src":"56661:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16202,"mutability":"mutable","name":"p2","nameLocation":"56675:2:13","nodeType":"VariableDeclaration","scope":16219,"src":"56670:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16201,"name":"bool","nodeType":"ElementaryTypeName","src":"56670:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16204,"mutability":"mutable","name":"p3","nameLocation":"56687:2:13","nodeType":"VariableDeclaration","scope":16219,"src":"56679:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16203,"name":"address","nodeType":"ElementaryTypeName","src":"56679:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"56648:42:13"},"returnParameters":{"id":16206,"nodeType":"ParameterList","parameters":[],"src":"56705:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16242,"nodeType":"FunctionDefinition","src":"56818:176:13","nodes":[],"body":{"id":16241,"nodeType":"Block","src":"56887:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c616464726573732c75696e7429","id":16233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56937:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5d98768f8145ad77f2cf1b1f44790c3edb28c68feadee43b01883b75311ac0e","typeString":"literal_string \"log(address,uint,address,uint)\""},"value":"log(address,uint,address,uint)"},{"id":16234,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16221,"src":"56971:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16235,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16223,"src":"56975:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16236,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16225,"src":"56979:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16237,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16227,"src":"56983:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5d98768f8145ad77f2cf1b1f44790c3edb28c68feadee43b01883b75311ac0e","typeString":"literal_string \"log(address,uint,address,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16231,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56913:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56917:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56913:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56913:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16230,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"56897:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56897:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16240,"nodeType":"ExpressionStatement","src":"56897:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56827:3:13","parameters":{"id":16228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16221,"mutability":"mutable","name":"p0","nameLocation":"56839:2:13","nodeType":"VariableDeclaration","scope":16242,"src":"56831:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16220,"name":"address","nodeType":"ElementaryTypeName","src":"56831:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16223,"mutability":"mutable","name":"p1","nameLocation":"56848:2:13","nodeType":"VariableDeclaration","scope":16242,"src":"56843:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16222,"name":"uint","nodeType":"ElementaryTypeName","src":"56843:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16225,"mutability":"mutable","name":"p2","nameLocation":"56860:2:13","nodeType":"VariableDeclaration","scope":16242,"src":"56852:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16224,"name":"address","nodeType":"ElementaryTypeName","src":"56852:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16227,"mutability":"mutable","name":"p3","nameLocation":"56869:2:13","nodeType":"VariableDeclaration","scope":16242,"src":"56864:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16226,"name":"uint","nodeType":"ElementaryTypeName","src":"56864:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"56830:42:13"},"returnParameters":{"id":16229,"nodeType":"ParameterList","parameters":[],"src":"56887:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16265,"nodeType":"FunctionDefinition","src":"57000:187:13","nodes":[],"body":{"id":16264,"nodeType":"Block","src":"57078:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c616464726573732c737472696e6729","id":16256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57128:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d71f39ef468709ab1c82c125aa1311ff96f65f56794c27c7babe5651379e4b4","typeString":"literal_string \"log(address,uint,address,string)\""},"value":"log(address,uint,address,string)"},{"id":16257,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16244,"src":"57164:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16258,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16246,"src":"57168:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16259,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16248,"src":"57172:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16260,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16250,"src":"57176:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d71f39ef468709ab1c82c125aa1311ff96f65f56794c27c7babe5651379e4b4","typeString":"literal_string \"log(address,uint,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16254,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57104:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16255,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57108:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57104:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57104:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16253,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"57088:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57088:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16263,"nodeType":"ExpressionStatement","src":"57088:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57009:3:13","parameters":{"id":16251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16244,"mutability":"mutable","name":"p0","nameLocation":"57021:2:13","nodeType":"VariableDeclaration","scope":16265,"src":"57013:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16243,"name":"address","nodeType":"ElementaryTypeName","src":"57013:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16246,"mutability":"mutable","name":"p1","nameLocation":"57030:2:13","nodeType":"VariableDeclaration","scope":16265,"src":"57025:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16245,"name":"uint","nodeType":"ElementaryTypeName","src":"57025:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16248,"mutability":"mutable","name":"p2","nameLocation":"57042:2:13","nodeType":"VariableDeclaration","scope":16265,"src":"57034:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16247,"name":"address","nodeType":"ElementaryTypeName","src":"57034:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16250,"mutability":"mutable","name":"p3","nameLocation":"57060:2:13","nodeType":"VariableDeclaration","scope":16265,"src":"57046:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16249,"name":"string","nodeType":"ElementaryTypeName","src":"57046:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"57012:51:13"},"returnParameters":{"id":16252,"nodeType":"ParameterList","parameters":[],"src":"57078:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16288,"nodeType":"FunctionDefinition","src":"57193:176:13","nodes":[],"body":{"id":16287,"nodeType":"Block","src":"57262:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c616464726573732c626f6f6c29","id":16279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57312:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_f181a1e98aefbb6e5d63ca72f24da9aa3686f47d72314c12e70fa7843b309ee6","typeString":"literal_string \"log(address,uint,address,bool)\""},"value":"log(address,uint,address,bool)"},{"id":16280,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16267,"src":"57346:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16281,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16269,"src":"57350:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16282,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16271,"src":"57354:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16283,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16273,"src":"57358:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f181a1e98aefbb6e5d63ca72f24da9aa3686f47d72314c12e70fa7843b309ee6","typeString":"literal_string \"log(address,uint,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16277,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57288:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57292:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57288:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57288:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16276,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"57272:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57272:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16286,"nodeType":"ExpressionStatement","src":"57272:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57202:3:13","parameters":{"id":16274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16267,"mutability":"mutable","name":"p0","nameLocation":"57214:2:13","nodeType":"VariableDeclaration","scope":16288,"src":"57206:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16266,"name":"address","nodeType":"ElementaryTypeName","src":"57206:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16269,"mutability":"mutable","name":"p1","nameLocation":"57223:2:13","nodeType":"VariableDeclaration","scope":16288,"src":"57218:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16268,"name":"uint","nodeType":"ElementaryTypeName","src":"57218:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16271,"mutability":"mutable","name":"p2","nameLocation":"57235:2:13","nodeType":"VariableDeclaration","scope":16288,"src":"57227:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16270,"name":"address","nodeType":"ElementaryTypeName","src":"57227:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16273,"mutability":"mutable","name":"p3","nameLocation":"57244:2:13","nodeType":"VariableDeclaration","scope":16288,"src":"57239:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16272,"name":"bool","nodeType":"ElementaryTypeName","src":"57239:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"57205:42:13"},"returnParameters":{"id":16275,"nodeType":"ParameterList","parameters":[],"src":"57262:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16311,"nodeType":"FunctionDefinition","src":"57375:182:13","nodes":[],"body":{"id":16310,"nodeType":"Block","src":"57447:110:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c616464726573732c6164647265737329","id":16302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57497:35:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_ec24846f1ed52bfa5dc64139c1bf8b03f991fdd5156eccb50dfe44ca5a2ca40e","typeString":"literal_string \"log(address,uint,address,address)\""},"value":"log(address,uint,address,address)"},{"id":16303,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16290,"src":"57534:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16304,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16292,"src":"57538:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16305,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16294,"src":"57542:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16306,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16296,"src":"57546:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ec24846f1ed52bfa5dc64139c1bf8b03f991fdd5156eccb50dfe44ca5a2ca40e","typeString":"literal_string \"log(address,uint,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16300,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57473:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57477:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57473:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57473:76:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16299,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"57457:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57457:93:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16309,"nodeType":"ExpressionStatement","src":"57457:93:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57384:3:13","parameters":{"id":16297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16290,"mutability":"mutable","name":"p0","nameLocation":"57396:2:13","nodeType":"VariableDeclaration","scope":16311,"src":"57388:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16289,"name":"address","nodeType":"ElementaryTypeName","src":"57388:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16292,"mutability":"mutable","name":"p1","nameLocation":"57405:2:13","nodeType":"VariableDeclaration","scope":16311,"src":"57400:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16291,"name":"uint","nodeType":"ElementaryTypeName","src":"57400:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16294,"mutability":"mutable","name":"p2","nameLocation":"57417:2:13","nodeType":"VariableDeclaration","scope":16311,"src":"57409:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16293,"name":"address","nodeType":"ElementaryTypeName","src":"57409:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16296,"mutability":"mutable","name":"p3","nameLocation":"57429:2:13","nodeType":"VariableDeclaration","scope":16311,"src":"57421:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16295,"name":"address","nodeType":"ElementaryTypeName","src":"57421:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"57387:45:13"},"returnParameters":{"id":16298,"nodeType":"ParameterList","parameters":[],"src":"57447:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16334,"nodeType":"FunctionDefinition","src":"57563:181:13","nodes":[],"body":{"id":16333,"nodeType":"Block","src":"57638:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e742c75696e7429","id":16325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57688:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a4c92a60ad8c7136a44d442238a838fba251b421248205a77f1a522d55c988af","typeString":"literal_string \"log(address,string,uint,uint)\""},"value":"log(address,string,uint,uint)"},{"id":16326,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16313,"src":"57721:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16327,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16315,"src":"57725:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16328,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16317,"src":"57729:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16329,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16319,"src":"57733:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a4c92a60ad8c7136a44d442238a838fba251b421248205a77f1a522d55c988af","typeString":"literal_string \"log(address,string,uint,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16323,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57664:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16324,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57668:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57664:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57664:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16322,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"57648:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57648:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16332,"nodeType":"ExpressionStatement","src":"57648:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57572:3:13","parameters":{"id":16320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16313,"mutability":"mutable","name":"p0","nameLocation":"57584:2:13","nodeType":"VariableDeclaration","scope":16334,"src":"57576:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16312,"name":"address","nodeType":"ElementaryTypeName","src":"57576:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16315,"mutability":"mutable","name":"p1","nameLocation":"57602:2:13","nodeType":"VariableDeclaration","scope":16334,"src":"57588:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16314,"name":"string","nodeType":"ElementaryTypeName","src":"57588:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16317,"mutability":"mutable","name":"p2","nameLocation":"57611:2:13","nodeType":"VariableDeclaration","scope":16334,"src":"57606:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16316,"name":"uint","nodeType":"ElementaryTypeName","src":"57606:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16319,"mutability":"mutable","name":"p3","nameLocation":"57620:2:13","nodeType":"VariableDeclaration","scope":16334,"src":"57615:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16318,"name":"uint","nodeType":"ElementaryTypeName","src":"57615:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"57575:48:13"},"returnParameters":{"id":16321,"nodeType":"ParameterList","parameters":[],"src":"57638:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16357,"nodeType":"FunctionDefinition","src":"57750:192:13","nodes":[],"body":{"id":16356,"nodeType":"Block","src":"57834:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e742c737472696e6729","id":16348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57884:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d1365c94e45374e792b786edc547d0277c401db24a4303b5dd1e8a93df0829e","typeString":"literal_string \"log(address,string,uint,string)\""},"value":"log(address,string,uint,string)"},{"id":16349,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16336,"src":"57919:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16350,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16338,"src":"57923:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16351,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16340,"src":"57927:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16352,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16342,"src":"57931:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d1365c94e45374e792b786edc547d0277c401db24a4303b5dd1e8a93df0829e","typeString":"literal_string \"log(address,string,uint,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16346,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57860:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57864:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57860:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57860:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16345,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"57844:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57844:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16355,"nodeType":"ExpressionStatement","src":"57844:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57759:3:13","parameters":{"id":16343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16336,"mutability":"mutable","name":"p0","nameLocation":"57771:2:13","nodeType":"VariableDeclaration","scope":16357,"src":"57763:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16335,"name":"address","nodeType":"ElementaryTypeName","src":"57763:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16338,"mutability":"mutable","name":"p1","nameLocation":"57789:2:13","nodeType":"VariableDeclaration","scope":16357,"src":"57775:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16337,"name":"string","nodeType":"ElementaryTypeName","src":"57775:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16340,"mutability":"mutable","name":"p2","nameLocation":"57798:2:13","nodeType":"VariableDeclaration","scope":16357,"src":"57793:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16339,"name":"uint","nodeType":"ElementaryTypeName","src":"57793:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16342,"mutability":"mutable","name":"p3","nameLocation":"57816:2:13","nodeType":"VariableDeclaration","scope":16357,"src":"57802:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16341,"name":"string","nodeType":"ElementaryTypeName","src":"57802:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"57762:57:13"},"returnParameters":{"id":16344,"nodeType":"ParameterList","parameters":[],"src":"57834:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16380,"nodeType":"FunctionDefinition","src":"57948:181:13","nodes":[],"body":{"id":16379,"nodeType":"Block","src":"58023:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e742c626f6f6c29","id":16371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58073:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_7e250d5bf3975165268961c2b6dbe143f053bed03d903630f547f1fbab28b895","typeString":"literal_string \"log(address,string,uint,bool)\""},"value":"log(address,string,uint,bool)"},{"id":16372,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16359,"src":"58106:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16373,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16361,"src":"58110:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16374,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16363,"src":"58114:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16375,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16365,"src":"58118:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7e250d5bf3975165268961c2b6dbe143f053bed03d903630f547f1fbab28b895","typeString":"literal_string \"log(address,string,uint,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16369,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58049:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58053:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58049:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58049:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16368,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"58033:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58033:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16378,"nodeType":"ExpressionStatement","src":"58033:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57957:3:13","parameters":{"id":16366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16359,"mutability":"mutable","name":"p0","nameLocation":"57969:2:13","nodeType":"VariableDeclaration","scope":16380,"src":"57961:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16358,"name":"address","nodeType":"ElementaryTypeName","src":"57961:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16361,"mutability":"mutable","name":"p1","nameLocation":"57987:2:13","nodeType":"VariableDeclaration","scope":16380,"src":"57973:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16360,"name":"string","nodeType":"ElementaryTypeName","src":"57973:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16363,"mutability":"mutable","name":"p2","nameLocation":"57996:2:13","nodeType":"VariableDeclaration","scope":16380,"src":"57991:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16362,"name":"uint","nodeType":"ElementaryTypeName","src":"57991:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16365,"mutability":"mutable","name":"p3","nameLocation":"58005:2:13","nodeType":"VariableDeclaration","scope":16380,"src":"58000:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16364,"name":"bool","nodeType":"ElementaryTypeName","src":"58000:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"57960:48:13"},"returnParameters":{"id":16367,"nodeType":"ParameterList","parameters":[],"src":"58023:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16403,"nodeType":"FunctionDefinition","src":"58135:187:13","nodes":[],"body":{"id":16402,"nodeType":"Block","src":"58213:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e742c6164647265737329","id":16394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58263:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_dfd7d80b4150ea6b0b2772758d6e66d8c7f141bfd7de11119a8fee2a703664e4","typeString":"literal_string \"log(address,string,uint,address)\""},"value":"log(address,string,uint,address)"},{"id":16395,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16382,"src":"58299:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16396,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16384,"src":"58303:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16397,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16386,"src":"58307:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16398,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16388,"src":"58311:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dfd7d80b4150ea6b0b2772758d6e66d8c7f141bfd7de11119a8fee2a703664e4","typeString":"literal_string \"log(address,string,uint,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16392,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58239:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58243:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58239:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58239:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16391,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"58223:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58223:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16401,"nodeType":"ExpressionStatement","src":"58223:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58144:3:13","parameters":{"id":16389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16382,"mutability":"mutable","name":"p0","nameLocation":"58156:2:13","nodeType":"VariableDeclaration","scope":16403,"src":"58148:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16381,"name":"address","nodeType":"ElementaryTypeName","src":"58148:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16384,"mutability":"mutable","name":"p1","nameLocation":"58174:2:13","nodeType":"VariableDeclaration","scope":16403,"src":"58160:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16383,"name":"string","nodeType":"ElementaryTypeName","src":"58160:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16386,"mutability":"mutable","name":"p2","nameLocation":"58183:2:13","nodeType":"VariableDeclaration","scope":16403,"src":"58178:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16385,"name":"uint","nodeType":"ElementaryTypeName","src":"58178:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16388,"mutability":"mutable","name":"p3","nameLocation":"58195:2:13","nodeType":"VariableDeclaration","scope":16403,"src":"58187:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16387,"name":"address","nodeType":"ElementaryTypeName","src":"58187:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"58147:51:13"},"returnParameters":{"id":16390,"nodeType":"ParameterList","parameters":[],"src":"58213:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16426,"nodeType":"FunctionDefinition","src":"58328:192:13","nodes":[],"body":{"id":16425,"nodeType":"Block","src":"58412:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c75696e7429","id":16417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58462:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a14fd039ae37435afa9d1674d6d48b37ffbd5da4cd9166a3f673f5f0db01a4c5","typeString":"literal_string \"log(address,string,string,uint)\""},"value":"log(address,string,string,uint)"},{"id":16418,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16405,"src":"58497:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16419,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16407,"src":"58501:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16420,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16409,"src":"58505:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16421,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16411,"src":"58509:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a14fd039ae37435afa9d1674d6d48b37ffbd5da4cd9166a3f673f5f0db01a4c5","typeString":"literal_string \"log(address,string,string,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16415,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58438:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58442:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58438:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58438:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16414,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"58422:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58422:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16424,"nodeType":"ExpressionStatement","src":"58422:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58337:3:13","parameters":{"id":16412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16405,"mutability":"mutable","name":"p0","nameLocation":"58349:2:13","nodeType":"VariableDeclaration","scope":16426,"src":"58341:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16404,"name":"address","nodeType":"ElementaryTypeName","src":"58341:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16407,"mutability":"mutable","name":"p1","nameLocation":"58367:2:13","nodeType":"VariableDeclaration","scope":16426,"src":"58353:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16406,"name":"string","nodeType":"ElementaryTypeName","src":"58353:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16409,"mutability":"mutable","name":"p2","nameLocation":"58385:2:13","nodeType":"VariableDeclaration","scope":16426,"src":"58371:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16408,"name":"string","nodeType":"ElementaryTypeName","src":"58371:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16411,"mutability":"mutable","name":"p3","nameLocation":"58394:2:13","nodeType":"VariableDeclaration","scope":16426,"src":"58389:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16410,"name":"uint","nodeType":"ElementaryTypeName","src":"58389:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"58340:57:13"},"returnParameters":{"id":16413,"nodeType":"ParameterList","parameters":[],"src":"58412:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16449,"nodeType":"FunctionDefinition","src":"58526:203:13","nodes":[],"body":{"id":16448,"nodeType":"Block","src":"58619:110:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c737472696e6729","id":16440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58669:35:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c","typeString":"literal_string \"log(address,string,string,string)\""},"value":"log(address,string,string,string)"},{"id":16441,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16428,"src":"58706:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16442,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16430,"src":"58710:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16443,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16432,"src":"58714:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16444,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16434,"src":"58718:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c","typeString":"literal_string \"log(address,string,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16438,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58645:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58649:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58645:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58645:76:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16437,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"58629:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58629:93:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16447,"nodeType":"ExpressionStatement","src":"58629:93:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58535:3:13","parameters":{"id":16435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16428,"mutability":"mutable","name":"p0","nameLocation":"58547:2:13","nodeType":"VariableDeclaration","scope":16449,"src":"58539:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16427,"name":"address","nodeType":"ElementaryTypeName","src":"58539:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16430,"mutability":"mutable","name":"p1","nameLocation":"58565:2:13","nodeType":"VariableDeclaration","scope":16449,"src":"58551:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16429,"name":"string","nodeType":"ElementaryTypeName","src":"58551:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16432,"mutability":"mutable","name":"p2","nameLocation":"58583:2:13","nodeType":"VariableDeclaration","scope":16449,"src":"58569:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16431,"name":"string","nodeType":"ElementaryTypeName","src":"58569:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16434,"mutability":"mutable","name":"p3","nameLocation":"58601:2:13","nodeType":"VariableDeclaration","scope":16449,"src":"58587:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16433,"name":"string","nodeType":"ElementaryTypeName","src":"58587:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"58538:66:13"},"returnParameters":{"id":16436,"nodeType":"ParameterList","parameters":[],"src":"58619:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16472,"nodeType":"FunctionDefinition","src":"58735:192:13","nodes":[],"body":{"id":16471,"nodeType":"Block","src":"58819:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c626f6f6c29","id":16463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58869:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed","typeString":"literal_string \"log(address,string,string,bool)\""},"value":"log(address,string,string,bool)"},{"id":16464,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16451,"src":"58904:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16465,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16453,"src":"58908:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16466,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16455,"src":"58912:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16467,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16457,"src":"58916:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed","typeString":"literal_string \"log(address,string,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16461,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58845:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16462,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58849:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58845:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58845:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16460,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"58829:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58829:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16470,"nodeType":"ExpressionStatement","src":"58829:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58744:3:13","parameters":{"id":16458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16451,"mutability":"mutable","name":"p0","nameLocation":"58756:2:13","nodeType":"VariableDeclaration","scope":16472,"src":"58748:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16450,"name":"address","nodeType":"ElementaryTypeName","src":"58748:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16453,"mutability":"mutable","name":"p1","nameLocation":"58774:2:13","nodeType":"VariableDeclaration","scope":16472,"src":"58760:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16452,"name":"string","nodeType":"ElementaryTypeName","src":"58760:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16455,"mutability":"mutable","name":"p2","nameLocation":"58792:2:13","nodeType":"VariableDeclaration","scope":16472,"src":"58778:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16454,"name":"string","nodeType":"ElementaryTypeName","src":"58778:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16457,"mutability":"mutable","name":"p3","nameLocation":"58801:2:13","nodeType":"VariableDeclaration","scope":16472,"src":"58796:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16456,"name":"bool","nodeType":"ElementaryTypeName","src":"58796:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"58747:57:13"},"returnParameters":{"id":16459,"nodeType":"ParameterList","parameters":[],"src":"58819:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16495,"nodeType":"FunctionDefinition","src":"58933:198:13","nodes":[],"body":{"id":16494,"nodeType":"Block","src":"59020:111:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c6164647265737329","id":16486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59070:36:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f","typeString":"literal_string \"log(address,string,string,address)\""},"value":"log(address,string,string,address)"},{"id":16487,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16474,"src":"59108:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16488,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16476,"src":"59112:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16489,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16478,"src":"59116:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16490,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16480,"src":"59120:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f","typeString":"literal_string \"log(address,string,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16484,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59046:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59050:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59046:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59046:77:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16483,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"59030:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59030:94:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16493,"nodeType":"ExpressionStatement","src":"59030:94:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58942:3:13","parameters":{"id":16481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16474,"mutability":"mutable","name":"p0","nameLocation":"58954:2:13","nodeType":"VariableDeclaration","scope":16495,"src":"58946:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16473,"name":"address","nodeType":"ElementaryTypeName","src":"58946:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16476,"mutability":"mutable","name":"p1","nameLocation":"58972:2:13","nodeType":"VariableDeclaration","scope":16495,"src":"58958:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16475,"name":"string","nodeType":"ElementaryTypeName","src":"58958:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16478,"mutability":"mutable","name":"p2","nameLocation":"58990:2:13","nodeType":"VariableDeclaration","scope":16495,"src":"58976:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16477,"name":"string","nodeType":"ElementaryTypeName","src":"58976:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16480,"mutability":"mutable","name":"p3","nameLocation":"59002:2:13","nodeType":"VariableDeclaration","scope":16495,"src":"58994:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16479,"name":"address","nodeType":"ElementaryTypeName","src":"58994:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"58945:60:13"},"returnParameters":{"id":16482,"nodeType":"ParameterList","parameters":[],"src":"59020:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16518,"nodeType":"FunctionDefinition","src":"59137:181:13","nodes":[],"body":{"id":16517,"nodeType":"Block","src":"59212:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c75696e7429","id":16509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59262:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_e720521cc58e36659b0c45689a38054bd7300ff30d5ec0cfec7bae3dc2e9689a","typeString":"literal_string \"log(address,string,bool,uint)\""},"value":"log(address,string,bool,uint)"},{"id":16510,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16497,"src":"59295:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16511,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16499,"src":"59299:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16512,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16501,"src":"59303:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16513,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16503,"src":"59307:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e720521cc58e36659b0c45689a38054bd7300ff30d5ec0cfec7bae3dc2e9689a","typeString":"literal_string \"log(address,string,bool,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16507,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59238:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59242:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59238:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59238:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16506,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"59222:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59222:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16516,"nodeType":"ExpressionStatement","src":"59222:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59146:3:13","parameters":{"id":16504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16497,"mutability":"mutable","name":"p0","nameLocation":"59158:2:13","nodeType":"VariableDeclaration","scope":16518,"src":"59150:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16496,"name":"address","nodeType":"ElementaryTypeName","src":"59150:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16499,"mutability":"mutable","name":"p1","nameLocation":"59176:2:13","nodeType":"VariableDeclaration","scope":16518,"src":"59162:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16498,"name":"string","nodeType":"ElementaryTypeName","src":"59162:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16501,"mutability":"mutable","name":"p2","nameLocation":"59185:2:13","nodeType":"VariableDeclaration","scope":16518,"src":"59180:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16500,"name":"bool","nodeType":"ElementaryTypeName","src":"59180:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16503,"mutability":"mutable","name":"p3","nameLocation":"59194:2:13","nodeType":"VariableDeclaration","scope":16518,"src":"59189:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16502,"name":"uint","nodeType":"ElementaryTypeName","src":"59189:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"59149:48:13"},"returnParameters":{"id":16505,"nodeType":"ParameterList","parameters":[],"src":"59212:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16541,"nodeType":"FunctionDefinition","src":"59324:192:13","nodes":[],"body":{"id":16540,"nodeType":"Block","src":"59408:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c737472696e6729","id":16532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59458:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc","typeString":"literal_string \"log(address,string,bool,string)\""},"value":"log(address,string,bool,string)"},{"id":16533,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16520,"src":"59493:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16534,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16522,"src":"59497:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16535,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16524,"src":"59501:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16536,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16526,"src":"59505:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc","typeString":"literal_string \"log(address,string,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16530,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59434:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59438:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59434:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59434:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16529,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"59418:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59418:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16539,"nodeType":"ExpressionStatement","src":"59418:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59333:3:13","parameters":{"id":16527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16520,"mutability":"mutable","name":"p0","nameLocation":"59345:2:13","nodeType":"VariableDeclaration","scope":16541,"src":"59337:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16519,"name":"address","nodeType":"ElementaryTypeName","src":"59337:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16522,"mutability":"mutable","name":"p1","nameLocation":"59363:2:13","nodeType":"VariableDeclaration","scope":16541,"src":"59349:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16521,"name":"string","nodeType":"ElementaryTypeName","src":"59349:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16524,"mutability":"mutable","name":"p2","nameLocation":"59372:2:13","nodeType":"VariableDeclaration","scope":16541,"src":"59367:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16523,"name":"bool","nodeType":"ElementaryTypeName","src":"59367:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16526,"mutability":"mutable","name":"p3","nameLocation":"59390:2:13","nodeType":"VariableDeclaration","scope":16541,"src":"59376:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16525,"name":"string","nodeType":"ElementaryTypeName","src":"59376:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59336:57:13"},"returnParameters":{"id":16528,"nodeType":"ParameterList","parameters":[],"src":"59408:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16564,"nodeType":"FunctionDefinition","src":"59522:181:13","nodes":[],"body":{"id":16563,"nodeType":"Block","src":"59597:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c626f6f6c29","id":16555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59647:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08","typeString":"literal_string \"log(address,string,bool,bool)\""},"value":"log(address,string,bool,bool)"},{"id":16556,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16543,"src":"59680:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16557,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16545,"src":"59684:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16558,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16547,"src":"59688:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16559,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16549,"src":"59692:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08","typeString":"literal_string \"log(address,string,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16553,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59623:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59627:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59623:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59623:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16552,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"59607:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59607:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16562,"nodeType":"ExpressionStatement","src":"59607:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59531:3:13","parameters":{"id":16550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16543,"mutability":"mutable","name":"p0","nameLocation":"59543:2:13","nodeType":"VariableDeclaration","scope":16564,"src":"59535:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16542,"name":"address","nodeType":"ElementaryTypeName","src":"59535:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16545,"mutability":"mutable","name":"p1","nameLocation":"59561:2:13","nodeType":"VariableDeclaration","scope":16564,"src":"59547:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16544,"name":"string","nodeType":"ElementaryTypeName","src":"59547:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16547,"mutability":"mutable","name":"p2","nameLocation":"59570:2:13","nodeType":"VariableDeclaration","scope":16564,"src":"59565:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16546,"name":"bool","nodeType":"ElementaryTypeName","src":"59565:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16549,"mutability":"mutable","name":"p3","nameLocation":"59579:2:13","nodeType":"VariableDeclaration","scope":16564,"src":"59574:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16548,"name":"bool","nodeType":"ElementaryTypeName","src":"59574:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"59534:48:13"},"returnParameters":{"id":16551,"nodeType":"ParameterList","parameters":[],"src":"59597:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16587,"nodeType":"FunctionDefinition","src":"59709:187:13","nodes":[],"body":{"id":16586,"nodeType":"Block","src":"59787:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c6164647265737329","id":16578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59837:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970","typeString":"literal_string \"log(address,string,bool,address)\""},"value":"log(address,string,bool,address)"},{"id":16579,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16566,"src":"59873:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16580,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"59877:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16581,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16570,"src":"59881:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16582,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16572,"src":"59885:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970","typeString":"literal_string \"log(address,string,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16576,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59813:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59817:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59813:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59813:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16575,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"59797:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59797:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16585,"nodeType":"ExpressionStatement","src":"59797:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59718:3:13","parameters":{"id":16573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16566,"mutability":"mutable","name":"p0","nameLocation":"59730:2:13","nodeType":"VariableDeclaration","scope":16587,"src":"59722:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16565,"name":"address","nodeType":"ElementaryTypeName","src":"59722:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16568,"mutability":"mutable","name":"p1","nameLocation":"59748:2:13","nodeType":"VariableDeclaration","scope":16587,"src":"59734:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16567,"name":"string","nodeType":"ElementaryTypeName","src":"59734:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16570,"mutability":"mutable","name":"p2","nameLocation":"59757:2:13","nodeType":"VariableDeclaration","scope":16587,"src":"59752:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16569,"name":"bool","nodeType":"ElementaryTypeName","src":"59752:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16572,"mutability":"mutable","name":"p3","nameLocation":"59769:2:13","nodeType":"VariableDeclaration","scope":16587,"src":"59761:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16571,"name":"address","nodeType":"ElementaryTypeName","src":"59761:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"59721:51:13"},"returnParameters":{"id":16574,"nodeType":"ParameterList","parameters":[],"src":"59787:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16610,"nodeType":"FunctionDefinition","src":"59902:187:13","nodes":[],"body":{"id":16609,"nodeType":"Block","src":"59980:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c75696e7429","id":16601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60030:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c1933a9a9c61e3dc8d3ebdfa929712b21dab3dcf7188e7d35cbf8aaaf476582","typeString":"literal_string \"log(address,string,address,uint)\""},"value":"log(address,string,address,uint)"},{"id":16602,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16589,"src":"60066:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16603,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16591,"src":"60070:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16604,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16593,"src":"60074:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16605,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16595,"src":"60078:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c1933a9a9c61e3dc8d3ebdfa929712b21dab3dcf7188e7d35cbf8aaaf476582","typeString":"literal_string \"log(address,string,address,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16599,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60006:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60010:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60006:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60006:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16598,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"59990:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59990:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16608,"nodeType":"ExpressionStatement","src":"59990:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59911:3:13","parameters":{"id":16596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16589,"mutability":"mutable","name":"p0","nameLocation":"59923:2:13","nodeType":"VariableDeclaration","scope":16610,"src":"59915:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16588,"name":"address","nodeType":"ElementaryTypeName","src":"59915:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16591,"mutability":"mutable","name":"p1","nameLocation":"59941:2:13","nodeType":"VariableDeclaration","scope":16610,"src":"59927:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16590,"name":"string","nodeType":"ElementaryTypeName","src":"59927:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16593,"mutability":"mutable","name":"p2","nameLocation":"59953:2:13","nodeType":"VariableDeclaration","scope":16610,"src":"59945:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16592,"name":"address","nodeType":"ElementaryTypeName","src":"59945:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16595,"mutability":"mutable","name":"p3","nameLocation":"59962:2:13","nodeType":"VariableDeclaration","scope":16610,"src":"59957:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16594,"name":"uint","nodeType":"ElementaryTypeName","src":"59957:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"59914:51:13"},"returnParameters":{"id":16597,"nodeType":"ParameterList","parameters":[],"src":"59980:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16633,"nodeType":"FunctionDefinition","src":"60095:198:13","nodes":[],"body":{"id":16632,"nodeType":"Block","src":"60182:111:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c737472696e6729","id":16624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60232:36:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea","typeString":"literal_string \"log(address,string,address,string)\""},"value":"log(address,string,address,string)"},{"id":16625,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16612,"src":"60270:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16626,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16614,"src":"60274:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16627,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16616,"src":"60278:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16628,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16618,"src":"60282:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea","typeString":"literal_string \"log(address,string,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16622,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60208:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16623,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60212:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60208:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60208:77:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16621,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"60192:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60192:94:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16631,"nodeType":"ExpressionStatement","src":"60192:94:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60104:3:13","parameters":{"id":16619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16612,"mutability":"mutable","name":"p0","nameLocation":"60116:2:13","nodeType":"VariableDeclaration","scope":16633,"src":"60108:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16611,"name":"address","nodeType":"ElementaryTypeName","src":"60108:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16614,"mutability":"mutable","name":"p1","nameLocation":"60134:2:13","nodeType":"VariableDeclaration","scope":16633,"src":"60120:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16613,"name":"string","nodeType":"ElementaryTypeName","src":"60120:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16616,"mutability":"mutable","name":"p2","nameLocation":"60146:2:13","nodeType":"VariableDeclaration","scope":16633,"src":"60138:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16615,"name":"address","nodeType":"ElementaryTypeName","src":"60138:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16618,"mutability":"mutable","name":"p3","nameLocation":"60164:2:13","nodeType":"VariableDeclaration","scope":16633,"src":"60150:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16617,"name":"string","nodeType":"ElementaryTypeName","src":"60150:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"60107:60:13"},"returnParameters":{"id":16620,"nodeType":"ParameterList","parameters":[],"src":"60182:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16656,"nodeType":"FunctionDefinition","src":"60299:187:13","nodes":[],"body":{"id":16655,"nodeType":"Block","src":"60377:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c626f6f6c29","id":16647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60427:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081","typeString":"literal_string \"log(address,string,address,bool)\""},"value":"log(address,string,address,bool)"},{"id":16648,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16635,"src":"60463:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16649,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16637,"src":"60467:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16650,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16639,"src":"60471:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16651,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16641,"src":"60475:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081","typeString":"literal_string \"log(address,string,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16645,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60403:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60407:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60403:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60403:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16644,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"60387:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60387:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16654,"nodeType":"ExpressionStatement","src":"60387:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60308:3:13","parameters":{"id":16642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16635,"mutability":"mutable","name":"p0","nameLocation":"60320:2:13","nodeType":"VariableDeclaration","scope":16656,"src":"60312:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16634,"name":"address","nodeType":"ElementaryTypeName","src":"60312:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16637,"mutability":"mutable","name":"p1","nameLocation":"60338:2:13","nodeType":"VariableDeclaration","scope":16656,"src":"60324:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16636,"name":"string","nodeType":"ElementaryTypeName","src":"60324:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16639,"mutability":"mutable","name":"p2","nameLocation":"60350:2:13","nodeType":"VariableDeclaration","scope":16656,"src":"60342:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16638,"name":"address","nodeType":"ElementaryTypeName","src":"60342:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16641,"mutability":"mutable","name":"p3","nameLocation":"60359:2:13","nodeType":"VariableDeclaration","scope":16656,"src":"60354:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16640,"name":"bool","nodeType":"ElementaryTypeName","src":"60354:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"60311:51:13"},"returnParameters":{"id":16643,"nodeType":"ParameterList","parameters":[],"src":"60377:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16679,"nodeType":"FunctionDefinition","src":"60492:193:13","nodes":[],"body":{"id":16678,"nodeType":"Block","src":"60573:112:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c6164647265737329","id":16670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60623:37:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121","typeString":"literal_string \"log(address,string,address,address)\""},"value":"log(address,string,address,address)"},{"id":16671,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16658,"src":"60662:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16672,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16660,"src":"60666:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16673,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16662,"src":"60670:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16674,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16664,"src":"60674:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121","typeString":"literal_string \"log(address,string,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16668,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60599:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60603:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60599:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60599:78:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16667,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"60583:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60583:95:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16677,"nodeType":"ExpressionStatement","src":"60583:95:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60501:3:13","parameters":{"id":16665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16658,"mutability":"mutable","name":"p0","nameLocation":"60513:2:13","nodeType":"VariableDeclaration","scope":16679,"src":"60505:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16657,"name":"address","nodeType":"ElementaryTypeName","src":"60505:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16660,"mutability":"mutable","name":"p1","nameLocation":"60531:2:13","nodeType":"VariableDeclaration","scope":16679,"src":"60517:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16659,"name":"string","nodeType":"ElementaryTypeName","src":"60517:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16662,"mutability":"mutable","name":"p2","nameLocation":"60543:2:13","nodeType":"VariableDeclaration","scope":16679,"src":"60535:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16661,"name":"address","nodeType":"ElementaryTypeName","src":"60535:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16664,"mutability":"mutable","name":"p3","nameLocation":"60555:2:13","nodeType":"VariableDeclaration","scope":16679,"src":"60547:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16663,"name":"address","nodeType":"ElementaryTypeName","src":"60547:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"60504:54:13"},"returnParameters":{"id":16666,"nodeType":"ParameterList","parameters":[],"src":"60573:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16702,"nodeType":"FunctionDefinition","src":"60691:170:13","nodes":[],"body":{"id":16701,"nodeType":"Block","src":"60757:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e742c75696e7429","id":16693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60807:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_c210a01e60a7d88137859e75abc2d14430087408747ac6787f0acb2f0f8bfd59","typeString":"literal_string \"log(address,bool,uint,uint)\""},"value":"log(address,bool,uint,uint)"},{"id":16694,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16681,"src":"60838:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16695,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16683,"src":"60842:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16696,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16685,"src":"60846:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16697,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16687,"src":"60850:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c210a01e60a7d88137859e75abc2d14430087408747ac6787f0acb2f0f8bfd59","typeString":"literal_string \"log(address,bool,uint,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16691,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60783:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60787:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60783:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60783:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16690,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"60767:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60767:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16700,"nodeType":"ExpressionStatement","src":"60767:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60700:3:13","parameters":{"id":16688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16681,"mutability":"mutable","name":"p0","nameLocation":"60712:2:13","nodeType":"VariableDeclaration","scope":16702,"src":"60704:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16680,"name":"address","nodeType":"ElementaryTypeName","src":"60704:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16683,"mutability":"mutable","name":"p1","nameLocation":"60721:2:13","nodeType":"VariableDeclaration","scope":16702,"src":"60716:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16682,"name":"bool","nodeType":"ElementaryTypeName","src":"60716:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16685,"mutability":"mutable","name":"p2","nameLocation":"60730:2:13","nodeType":"VariableDeclaration","scope":16702,"src":"60725:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16684,"name":"uint","nodeType":"ElementaryTypeName","src":"60725:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16687,"mutability":"mutable","name":"p3","nameLocation":"60739:2:13","nodeType":"VariableDeclaration","scope":16702,"src":"60734:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16686,"name":"uint","nodeType":"ElementaryTypeName","src":"60734:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"60703:39:13"},"returnParameters":{"id":16689,"nodeType":"ParameterList","parameters":[],"src":"60757:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16725,"nodeType":"FunctionDefinition","src":"60867:181:13","nodes":[],"body":{"id":16724,"nodeType":"Block","src":"60942:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e742c737472696e6729","id":16716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60992:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b588eccef132ec49572951d33e9b0d1b814d54c82133831f78cdc5d923bc6e6","typeString":"literal_string \"log(address,bool,uint,string)\""},"value":"log(address,bool,uint,string)"},{"id":16717,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16704,"src":"61025:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16718,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16706,"src":"61029:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16719,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16708,"src":"61033:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16720,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16710,"src":"61037:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9b588eccef132ec49572951d33e9b0d1b814d54c82133831f78cdc5d923bc6e6","typeString":"literal_string \"log(address,bool,uint,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16714,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60968:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60972:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60968:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60968:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16713,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"60952:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60952:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16723,"nodeType":"ExpressionStatement","src":"60952:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60876:3:13","parameters":{"id":16711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16704,"mutability":"mutable","name":"p0","nameLocation":"60888:2:13","nodeType":"VariableDeclaration","scope":16725,"src":"60880:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16703,"name":"address","nodeType":"ElementaryTypeName","src":"60880:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16706,"mutability":"mutable","name":"p1","nameLocation":"60897:2:13","nodeType":"VariableDeclaration","scope":16725,"src":"60892:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16705,"name":"bool","nodeType":"ElementaryTypeName","src":"60892:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16708,"mutability":"mutable","name":"p2","nameLocation":"60906:2:13","nodeType":"VariableDeclaration","scope":16725,"src":"60901:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16707,"name":"uint","nodeType":"ElementaryTypeName","src":"60901:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16710,"mutability":"mutable","name":"p3","nameLocation":"60924:2:13","nodeType":"VariableDeclaration","scope":16725,"src":"60910:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16709,"name":"string","nodeType":"ElementaryTypeName","src":"60910:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"60879:48:13"},"returnParameters":{"id":16712,"nodeType":"ParameterList","parameters":[],"src":"60942:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16748,"nodeType":"FunctionDefinition","src":"61054:170:13","nodes":[],"body":{"id":16747,"nodeType":"Block","src":"61120:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e742c626f6f6c29","id":16739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61170:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_85cdc5af22f2a2b52749c228b5bc379bac815d0d3575c2899b6657bce00fab33","typeString":"literal_string \"log(address,bool,uint,bool)\""},"value":"log(address,bool,uint,bool)"},{"id":16740,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16727,"src":"61201:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16741,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16729,"src":"61205:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16742,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16731,"src":"61209:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16743,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16733,"src":"61213:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_85cdc5af22f2a2b52749c228b5bc379bac815d0d3575c2899b6657bce00fab33","typeString":"literal_string \"log(address,bool,uint,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16737,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61146:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61150:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61146:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61146:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16736,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"61130:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61130:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16746,"nodeType":"ExpressionStatement","src":"61130:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61063:3:13","parameters":{"id":16734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16727,"mutability":"mutable","name":"p0","nameLocation":"61075:2:13","nodeType":"VariableDeclaration","scope":16748,"src":"61067:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16726,"name":"address","nodeType":"ElementaryTypeName","src":"61067:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16729,"mutability":"mutable","name":"p1","nameLocation":"61084:2:13","nodeType":"VariableDeclaration","scope":16748,"src":"61079:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16728,"name":"bool","nodeType":"ElementaryTypeName","src":"61079:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16731,"mutability":"mutable","name":"p2","nameLocation":"61093:2:13","nodeType":"VariableDeclaration","scope":16748,"src":"61088:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16730,"name":"uint","nodeType":"ElementaryTypeName","src":"61088:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16733,"mutability":"mutable","name":"p3","nameLocation":"61102:2:13","nodeType":"VariableDeclaration","scope":16748,"src":"61097:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16732,"name":"bool","nodeType":"ElementaryTypeName","src":"61097:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"61066:39:13"},"returnParameters":{"id":16735,"nodeType":"ParameterList","parameters":[],"src":"61120:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16771,"nodeType":"FunctionDefinition","src":"61230:176:13","nodes":[],"body":{"id":16770,"nodeType":"Block","src":"61299:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e742c6164647265737329","id":16762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61349:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d8ce61ee7d058fd1e588343a35fb1aff71b8e7f74d553220d0e20088cb908bf","typeString":"literal_string \"log(address,bool,uint,address)\""},"value":"log(address,bool,uint,address)"},{"id":16763,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16750,"src":"61383:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16764,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16752,"src":"61387:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16765,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16754,"src":"61391:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16766,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16756,"src":"61395:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d8ce61ee7d058fd1e588343a35fb1aff71b8e7f74d553220d0e20088cb908bf","typeString":"literal_string \"log(address,bool,uint,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16760,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61325:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61329:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61325:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61325:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16759,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"61309:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61309:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16769,"nodeType":"ExpressionStatement","src":"61309:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61239:3:13","parameters":{"id":16757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16750,"mutability":"mutable","name":"p0","nameLocation":"61251:2:13","nodeType":"VariableDeclaration","scope":16771,"src":"61243:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16749,"name":"address","nodeType":"ElementaryTypeName","src":"61243:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16752,"mutability":"mutable","name":"p1","nameLocation":"61260:2:13","nodeType":"VariableDeclaration","scope":16771,"src":"61255:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16751,"name":"bool","nodeType":"ElementaryTypeName","src":"61255:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16754,"mutability":"mutable","name":"p2","nameLocation":"61269:2:13","nodeType":"VariableDeclaration","scope":16771,"src":"61264:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16753,"name":"uint","nodeType":"ElementaryTypeName","src":"61264:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16756,"mutability":"mutable","name":"p3","nameLocation":"61281:2:13","nodeType":"VariableDeclaration","scope":16771,"src":"61273:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16755,"name":"address","nodeType":"ElementaryTypeName","src":"61273:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"61242:42:13"},"returnParameters":{"id":16758,"nodeType":"ParameterList","parameters":[],"src":"61299:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16794,"nodeType":"FunctionDefinition","src":"61412:181:13","nodes":[],"body":{"id":16793,"nodeType":"Block","src":"61487:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c75696e7429","id":16785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61537:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_9e127b6e4348bc33b3ea7f05f6479d3e1b1fe2b3727e1f4ba94b6a36e7abac9b","typeString":"literal_string \"log(address,bool,string,uint)\""},"value":"log(address,bool,string,uint)"},{"id":16786,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16773,"src":"61570:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16787,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16775,"src":"61574:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16788,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16777,"src":"61578:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16789,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16779,"src":"61582:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9e127b6e4348bc33b3ea7f05f6479d3e1b1fe2b3727e1f4ba94b6a36e7abac9b","typeString":"literal_string \"log(address,bool,string,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16783,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61513:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61517:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61513:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61513:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16782,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"61497:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61497:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16792,"nodeType":"ExpressionStatement","src":"61497:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61421:3:13","parameters":{"id":16780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16773,"mutability":"mutable","name":"p0","nameLocation":"61433:2:13","nodeType":"VariableDeclaration","scope":16794,"src":"61425:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16772,"name":"address","nodeType":"ElementaryTypeName","src":"61425:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16775,"mutability":"mutable","name":"p1","nameLocation":"61442:2:13","nodeType":"VariableDeclaration","scope":16794,"src":"61437:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16774,"name":"bool","nodeType":"ElementaryTypeName","src":"61437:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16777,"mutability":"mutable","name":"p2","nameLocation":"61460:2:13","nodeType":"VariableDeclaration","scope":16794,"src":"61446:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16776,"name":"string","nodeType":"ElementaryTypeName","src":"61446:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16779,"mutability":"mutable","name":"p3","nameLocation":"61469:2:13","nodeType":"VariableDeclaration","scope":16794,"src":"61464:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16778,"name":"uint","nodeType":"ElementaryTypeName","src":"61464:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"61424:48:13"},"returnParameters":{"id":16781,"nodeType":"ParameterList","parameters":[],"src":"61487:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16817,"nodeType":"FunctionDefinition","src":"61599:192:13","nodes":[],"body":{"id":16816,"nodeType":"Block","src":"61683:108:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c737472696e6729","id":16808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61733:33:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f","typeString":"literal_string \"log(address,bool,string,string)\""},"value":"log(address,bool,string,string)"},{"id":16809,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16796,"src":"61768:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16810,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16798,"src":"61772:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16811,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16800,"src":"61776:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16812,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16802,"src":"61780:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f","typeString":"literal_string \"log(address,bool,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16806,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61709:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61713:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61709:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61709:74:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16805,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"61693:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61693:91:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16815,"nodeType":"ExpressionStatement","src":"61693:91:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61608:3:13","parameters":{"id":16803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16796,"mutability":"mutable","name":"p0","nameLocation":"61620:2:13","nodeType":"VariableDeclaration","scope":16817,"src":"61612:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16795,"name":"address","nodeType":"ElementaryTypeName","src":"61612:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16798,"mutability":"mutable","name":"p1","nameLocation":"61629:2:13","nodeType":"VariableDeclaration","scope":16817,"src":"61624:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16797,"name":"bool","nodeType":"ElementaryTypeName","src":"61624:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16800,"mutability":"mutable","name":"p2","nameLocation":"61647:2:13","nodeType":"VariableDeclaration","scope":16817,"src":"61633:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16799,"name":"string","nodeType":"ElementaryTypeName","src":"61633:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16802,"mutability":"mutable","name":"p3","nameLocation":"61665:2:13","nodeType":"VariableDeclaration","scope":16817,"src":"61651:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16801,"name":"string","nodeType":"ElementaryTypeName","src":"61651:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"61611:57:13"},"returnParameters":{"id":16804,"nodeType":"ParameterList","parameters":[],"src":"61683:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16840,"nodeType":"FunctionDefinition","src":"61797:181:13","nodes":[],"body":{"id":16839,"nodeType":"Block","src":"61872:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c626f6f6c29","id":16831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61922:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f","typeString":"literal_string \"log(address,bool,string,bool)\""},"value":"log(address,bool,string,bool)"},{"id":16832,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16819,"src":"61955:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16833,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16821,"src":"61959:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16834,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16823,"src":"61963:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16835,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16825,"src":"61967:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f","typeString":"literal_string \"log(address,bool,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16829,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61898:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61902:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61898:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61898:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16828,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"61882:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61882:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16838,"nodeType":"ExpressionStatement","src":"61882:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61806:3:13","parameters":{"id":16826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16819,"mutability":"mutable","name":"p0","nameLocation":"61818:2:13","nodeType":"VariableDeclaration","scope":16840,"src":"61810:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16818,"name":"address","nodeType":"ElementaryTypeName","src":"61810:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16821,"mutability":"mutable","name":"p1","nameLocation":"61827:2:13","nodeType":"VariableDeclaration","scope":16840,"src":"61822:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16820,"name":"bool","nodeType":"ElementaryTypeName","src":"61822:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16823,"mutability":"mutable","name":"p2","nameLocation":"61845:2:13","nodeType":"VariableDeclaration","scope":16840,"src":"61831:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16822,"name":"string","nodeType":"ElementaryTypeName","src":"61831:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16825,"mutability":"mutable","name":"p3","nameLocation":"61854:2:13","nodeType":"VariableDeclaration","scope":16840,"src":"61849:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16824,"name":"bool","nodeType":"ElementaryTypeName","src":"61849:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"61809:48:13"},"returnParameters":{"id":16827,"nodeType":"ParameterList","parameters":[],"src":"61872:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16863,"nodeType":"FunctionDefinition","src":"61984:187:13","nodes":[],"body":{"id":16862,"nodeType":"Block","src":"62062:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c6164647265737329","id":16854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62112:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc","typeString":"literal_string \"log(address,bool,string,address)\""},"value":"log(address,bool,string,address)"},{"id":16855,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16842,"src":"62148:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16856,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16844,"src":"62152:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16857,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16846,"src":"62156:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16858,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16848,"src":"62160:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc","typeString":"literal_string \"log(address,bool,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16852,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62088:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62092:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62088:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62088:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16851,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"62072:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62072:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16861,"nodeType":"ExpressionStatement","src":"62072:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61993:3:13","parameters":{"id":16849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16842,"mutability":"mutable","name":"p0","nameLocation":"62005:2:13","nodeType":"VariableDeclaration","scope":16863,"src":"61997:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16841,"name":"address","nodeType":"ElementaryTypeName","src":"61997:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16844,"mutability":"mutable","name":"p1","nameLocation":"62014:2:13","nodeType":"VariableDeclaration","scope":16863,"src":"62009:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16843,"name":"bool","nodeType":"ElementaryTypeName","src":"62009:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16846,"mutability":"mutable","name":"p2","nameLocation":"62032:2:13","nodeType":"VariableDeclaration","scope":16863,"src":"62018:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16845,"name":"string","nodeType":"ElementaryTypeName","src":"62018:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16848,"mutability":"mutable","name":"p3","nameLocation":"62044:2:13","nodeType":"VariableDeclaration","scope":16863,"src":"62036:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16847,"name":"address","nodeType":"ElementaryTypeName","src":"62036:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"61996:51:13"},"returnParameters":{"id":16850,"nodeType":"ParameterList","parameters":[],"src":"62062:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16886,"nodeType":"FunctionDefinition","src":"62177:170:13","nodes":[],"body":{"id":16885,"nodeType":"Block","src":"62243:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c75696e7429","id":16877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62293:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfb587569c9e063cd7daed07e27d9193980aad24c48787cb6531c47fa694e463","typeString":"literal_string \"log(address,bool,bool,uint)\""},"value":"log(address,bool,bool,uint)"},{"id":16878,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16865,"src":"62324:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16879,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16867,"src":"62328:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16880,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16869,"src":"62332:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16881,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16871,"src":"62336:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cfb587569c9e063cd7daed07e27d9193980aad24c48787cb6531c47fa694e463","typeString":"literal_string \"log(address,bool,bool,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16875,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62269:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62273:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62269:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62269:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16874,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"62253:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62253:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16884,"nodeType":"ExpressionStatement","src":"62253:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62186:3:13","parameters":{"id":16872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16865,"mutability":"mutable","name":"p0","nameLocation":"62198:2:13","nodeType":"VariableDeclaration","scope":16886,"src":"62190:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16864,"name":"address","nodeType":"ElementaryTypeName","src":"62190:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16867,"mutability":"mutable","name":"p1","nameLocation":"62207:2:13","nodeType":"VariableDeclaration","scope":16886,"src":"62202:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16866,"name":"bool","nodeType":"ElementaryTypeName","src":"62202:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16869,"mutability":"mutable","name":"p2","nameLocation":"62216:2:13","nodeType":"VariableDeclaration","scope":16886,"src":"62211:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16868,"name":"bool","nodeType":"ElementaryTypeName","src":"62211:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16871,"mutability":"mutable","name":"p3","nameLocation":"62225:2:13","nodeType":"VariableDeclaration","scope":16886,"src":"62220:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16870,"name":"uint","nodeType":"ElementaryTypeName","src":"62220:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"62189:39:13"},"returnParameters":{"id":16873,"nodeType":"ParameterList","parameters":[],"src":"62243:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16909,"nodeType":"FunctionDefinition","src":"62353:181:13","nodes":[],"body":{"id":16908,"nodeType":"Block","src":"62428:106:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c737472696e6729","id":16900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62478:31:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300","typeString":"literal_string \"log(address,bool,bool,string)\""},"value":"log(address,bool,bool,string)"},{"id":16901,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16888,"src":"62511:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16902,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16890,"src":"62515:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16903,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16892,"src":"62519:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16904,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16894,"src":"62523:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300","typeString":"literal_string \"log(address,bool,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16898,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62454:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62458:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62454:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62454:72:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16897,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"62438:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62438:89:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16907,"nodeType":"ExpressionStatement","src":"62438:89:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62362:3:13","parameters":{"id":16895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16888,"mutability":"mutable","name":"p0","nameLocation":"62374:2:13","nodeType":"VariableDeclaration","scope":16909,"src":"62366:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16887,"name":"address","nodeType":"ElementaryTypeName","src":"62366:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16890,"mutability":"mutable","name":"p1","nameLocation":"62383:2:13","nodeType":"VariableDeclaration","scope":16909,"src":"62378:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16889,"name":"bool","nodeType":"ElementaryTypeName","src":"62378:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16892,"mutability":"mutable","name":"p2","nameLocation":"62392:2:13","nodeType":"VariableDeclaration","scope":16909,"src":"62387:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16891,"name":"bool","nodeType":"ElementaryTypeName","src":"62387:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16894,"mutability":"mutable","name":"p3","nameLocation":"62410:2:13","nodeType":"VariableDeclaration","scope":16909,"src":"62396:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16893,"name":"string","nodeType":"ElementaryTypeName","src":"62396:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"62365:48:13"},"returnParameters":{"id":16896,"nodeType":"ParameterList","parameters":[],"src":"62428:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16932,"nodeType":"FunctionDefinition","src":"62540:170:13","nodes":[],"body":{"id":16931,"nodeType":"Block","src":"62606:104:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c626f6f6c29","id":16923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62656:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634","typeString":"literal_string \"log(address,bool,bool,bool)\""},"value":"log(address,bool,bool,bool)"},{"id":16924,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16911,"src":"62687:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16925,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16913,"src":"62691:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16926,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16915,"src":"62695:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16927,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16917,"src":"62699:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634","typeString":"literal_string \"log(address,bool,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16921,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62632:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62636:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62632:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62632:70:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16920,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"62616:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62616:87:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16930,"nodeType":"ExpressionStatement","src":"62616:87:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62549:3:13","parameters":{"id":16918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16911,"mutability":"mutable","name":"p0","nameLocation":"62561:2:13","nodeType":"VariableDeclaration","scope":16932,"src":"62553:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16910,"name":"address","nodeType":"ElementaryTypeName","src":"62553:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16913,"mutability":"mutable","name":"p1","nameLocation":"62570:2:13","nodeType":"VariableDeclaration","scope":16932,"src":"62565:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16912,"name":"bool","nodeType":"ElementaryTypeName","src":"62565:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16915,"mutability":"mutable","name":"p2","nameLocation":"62579:2:13","nodeType":"VariableDeclaration","scope":16932,"src":"62574:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16914,"name":"bool","nodeType":"ElementaryTypeName","src":"62574:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16917,"mutability":"mutable","name":"p3","nameLocation":"62588:2:13","nodeType":"VariableDeclaration","scope":16932,"src":"62583:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16916,"name":"bool","nodeType":"ElementaryTypeName","src":"62583:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"62552:39:13"},"returnParameters":{"id":16919,"nodeType":"ParameterList","parameters":[],"src":"62606:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16955,"nodeType":"FunctionDefinition","src":"62716:176:13","nodes":[],"body":{"id":16954,"nodeType":"Block","src":"62785:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c6164647265737329","id":16946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62835:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953","typeString":"literal_string \"log(address,bool,bool,address)\""},"value":"log(address,bool,bool,address)"},{"id":16947,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16934,"src":"62869:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16948,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16936,"src":"62873:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16949,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16938,"src":"62877:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16950,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16940,"src":"62881:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953","typeString":"literal_string \"log(address,bool,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16944,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62811:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62815:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62811:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62811:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16943,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"62795:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62795:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16953,"nodeType":"ExpressionStatement","src":"62795:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62725:3:13","parameters":{"id":16941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16934,"mutability":"mutable","name":"p0","nameLocation":"62737:2:13","nodeType":"VariableDeclaration","scope":16955,"src":"62729:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16933,"name":"address","nodeType":"ElementaryTypeName","src":"62729:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16936,"mutability":"mutable","name":"p1","nameLocation":"62746:2:13","nodeType":"VariableDeclaration","scope":16955,"src":"62741:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16935,"name":"bool","nodeType":"ElementaryTypeName","src":"62741:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16938,"mutability":"mutable","name":"p2","nameLocation":"62755:2:13","nodeType":"VariableDeclaration","scope":16955,"src":"62750:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16937,"name":"bool","nodeType":"ElementaryTypeName","src":"62750:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16940,"mutability":"mutable","name":"p3","nameLocation":"62767:2:13","nodeType":"VariableDeclaration","scope":16955,"src":"62759:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16939,"name":"address","nodeType":"ElementaryTypeName","src":"62759:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"62728:42:13"},"returnParameters":{"id":16942,"nodeType":"ParameterList","parameters":[],"src":"62785:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16978,"nodeType":"FunctionDefinition","src":"62898:176:13","nodes":[],"body":{"id":16977,"nodeType":"Block","src":"62967:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c75696e7429","id":16969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63017:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc7116d2e67ccd625262e6814a6f82f2367beea9919409c81fcbb94bea1b6b84","typeString":"literal_string \"log(address,bool,address,uint)\""},"value":"log(address,bool,address,uint)"},{"id":16970,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16957,"src":"63051:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16971,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16959,"src":"63055:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16972,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16961,"src":"63059:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16973,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16963,"src":"63063:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc7116d2e67ccd625262e6814a6f82f2367beea9919409c81fcbb94bea1b6b84","typeString":"literal_string \"log(address,bool,address,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16967,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62993:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62997:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62993:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62993:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16966,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"62977:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62977:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16976,"nodeType":"ExpressionStatement","src":"62977:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62907:3:13","parameters":{"id":16964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16957,"mutability":"mutable","name":"p0","nameLocation":"62919:2:13","nodeType":"VariableDeclaration","scope":16978,"src":"62911:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16956,"name":"address","nodeType":"ElementaryTypeName","src":"62911:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16959,"mutability":"mutable","name":"p1","nameLocation":"62928:2:13","nodeType":"VariableDeclaration","scope":16978,"src":"62923:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16958,"name":"bool","nodeType":"ElementaryTypeName","src":"62923:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16961,"mutability":"mutable","name":"p2","nameLocation":"62940:2:13","nodeType":"VariableDeclaration","scope":16978,"src":"62932:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16960,"name":"address","nodeType":"ElementaryTypeName","src":"62932:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16963,"mutability":"mutable","name":"p3","nameLocation":"62949:2:13","nodeType":"VariableDeclaration","scope":16978,"src":"62944:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16962,"name":"uint","nodeType":"ElementaryTypeName","src":"62944:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"62910:42:13"},"returnParameters":{"id":16965,"nodeType":"ParameterList","parameters":[],"src":"62967:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17001,"nodeType":"FunctionDefinition","src":"63080:187:13","nodes":[],"body":{"id":17000,"nodeType":"Block","src":"63158:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c737472696e6729","id":16992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63208:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453","typeString":"literal_string \"log(address,bool,address,string)\""},"value":"log(address,bool,address,string)"},{"id":16993,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16980,"src":"63244:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16994,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16982,"src":"63248:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16995,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16984,"src":"63252:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16996,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16986,"src":"63256:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453","typeString":"literal_string \"log(address,bool,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16990,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63184:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63188:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63184:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63184:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16989,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"63168:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63168:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16999,"nodeType":"ExpressionStatement","src":"63168:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63089:3:13","parameters":{"id":16987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16980,"mutability":"mutable","name":"p0","nameLocation":"63101:2:13","nodeType":"VariableDeclaration","scope":17001,"src":"63093:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16979,"name":"address","nodeType":"ElementaryTypeName","src":"63093:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16982,"mutability":"mutable","name":"p1","nameLocation":"63110:2:13","nodeType":"VariableDeclaration","scope":17001,"src":"63105:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16981,"name":"bool","nodeType":"ElementaryTypeName","src":"63105:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16984,"mutability":"mutable","name":"p2","nameLocation":"63122:2:13","nodeType":"VariableDeclaration","scope":17001,"src":"63114:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16983,"name":"address","nodeType":"ElementaryTypeName","src":"63114:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16986,"mutability":"mutable","name":"p3","nameLocation":"63140:2:13","nodeType":"VariableDeclaration","scope":17001,"src":"63126:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16985,"name":"string","nodeType":"ElementaryTypeName","src":"63126:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63092:51:13"},"returnParameters":{"id":16988,"nodeType":"ParameterList","parameters":[],"src":"63158:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17024,"nodeType":"FunctionDefinition","src":"63273:176:13","nodes":[],"body":{"id":17023,"nodeType":"Block","src":"63342:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c626f6f6c29","id":17015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63392:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1","typeString":"literal_string \"log(address,bool,address,bool)\""},"value":"log(address,bool,address,bool)"},{"id":17016,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17003,"src":"63426:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17017,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17005,"src":"63430:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17018,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17007,"src":"63434:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17019,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17009,"src":"63438:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1","typeString":"literal_string \"log(address,bool,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17013,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63368:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63372:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63368:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63368:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17012,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"63352:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63352:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17022,"nodeType":"ExpressionStatement","src":"63352:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63282:3:13","parameters":{"id":17010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17003,"mutability":"mutable","name":"p0","nameLocation":"63294:2:13","nodeType":"VariableDeclaration","scope":17024,"src":"63286:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17002,"name":"address","nodeType":"ElementaryTypeName","src":"63286:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17005,"mutability":"mutable","name":"p1","nameLocation":"63303:2:13","nodeType":"VariableDeclaration","scope":17024,"src":"63298:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17004,"name":"bool","nodeType":"ElementaryTypeName","src":"63298:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17007,"mutability":"mutable","name":"p2","nameLocation":"63315:2:13","nodeType":"VariableDeclaration","scope":17024,"src":"63307:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17006,"name":"address","nodeType":"ElementaryTypeName","src":"63307:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17009,"mutability":"mutable","name":"p3","nameLocation":"63324:2:13","nodeType":"VariableDeclaration","scope":17024,"src":"63319:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17008,"name":"bool","nodeType":"ElementaryTypeName","src":"63319:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"63285:42:13"},"returnParameters":{"id":17011,"nodeType":"ParameterList","parameters":[],"src":"63342:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17047,"nodeType":"FunctionDefinition","src":"63455:182:13","nodes":[],"body":{"id":17046,"nodeType":"Block","src":"63527:110:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c6164647265737329","id":17038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63577:35:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35","typeString":"literal_string \"log(address,bool,address,address)\""},"value":"log(address,bool,address,address)"},{"id":17039,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17026,"src":"63614:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17040,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17028,"src":"63618:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17041,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17030,"src":"63622:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17042,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17032,"src":"63626:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35","typeString":"literal_string \"log(address,bool,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17036,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63553:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63557:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63553:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63553:76:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17035,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"63537:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63537:93:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17045,"nodeType":"ExpressionStatement","src":"63537:93:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63464:3:13","parameters":{"id":17033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17026,"mutability":"mutable","name":"p0","nameLocation":"63476:2:13","nodeType":"VariableDeclaration","scope":17047,"src":"63468:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17025,"name":"address","nodeType":"ElementaryTypeName","src":"63468:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17028,"mutability":"mutable","name":"p1","nameLocation":"63485:2:13","nodeType":"VariableDeclaration","scope":17047,"src":"63480:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17027,"name":"bool","nodeType":"ElementaryTypeName","src":"63480:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17030,"mutability":"mutable","name":"p2","nameLocation":"63497:2:13","nodeType":"VariableDeclaration","scope":17047,"src":"63489:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17029,"name":"address","nodeType":"ElementaryTypeName","src":"63489:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17032,"mutability":"mutable","name":"p3","nameLocation":"63509:2:13","nodeType":"VariableDeclaration","scope":17047,"src":"63501:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17031,"name":"address","nodeType":"ElementaryTypeName","src":"63501:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"63467:45:13"},"returnParameters":{"id":17034,"nodeType":"ParameterList","parameters":[],"src":"63527:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17070,"nodeType":"FunctionDefinition","src":"63643:176:13","nodes":[],"body":{"id":17069,"nodeType":"Block","src":"63712:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e742c75696e7429","id":17061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63762:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_54fdf3e4fb94f9bebc9a1c60d5b71090f9817e68730b5af20b69dff283044ed6","typeString":"literal_string \"log(address,address,uint,uint)\""},"value":"log(address,address,uint,uint)"},{"id":17062,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17049,"src":"63796:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17063,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17051,"src":"63800:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17064,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17053,"src":"63804:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17065,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17055,"src":"63808:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_54fdf3e4fb94f9bebc9a1c60d5b71090f9817e68730b5af20b69dff283044ed6","typeString":"literal_string \"log(address,address,uint,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17059,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63738:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17060,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63742:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63738:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63738:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17058,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"63722:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63722:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17068,"nodeType":"ExpressionStatement","src":"63722:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63652:3:13","parameters":{"id":17056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17049,"mutability":"mutable","name":"p0","nameLocation":"63664:2:13","nodeType":"VariableDeclaration","scope":17070,"src":"63656:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17048,"name":"address","nodeType":"ElementaryTypeName","src":"63656:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17051,"mutability":"mutable","name":"p1","nameLocation":"63676:2:13","nodeType":"VariableDeclaration","scope":17070,"src":"63668:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17050,"name":"address","nodeType":"ElementaryTypeName","src":"63668:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17053,"mutability":"mutable","name":"p2","nameLocation":"63685:2:13","nodeType":"VariableDeclaration","scope":17070,"src":"63680:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17052,"name":"uint","nodeType":"ElementaryTypeName","src":"63680:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17055,"mutability":"mutable","name":"p3","nameLocation":"63694:2:13","nodeType":"VariableDeclaration","scope":17070,"src":"63689:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17054,"name":"uint","nodeType":"ElementaryTypeName","src":"63689:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"63655:42:13"},"returnParameters":{"id":17057,"nodeType":"ParameterList","parameters":[],"src":"63712:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17093,"nodeType":"FunctionDefinition","src":"63825:187:13","nodes":[],"body":{"id":17092,"nodeType":"Block","src":"63903:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e742c737472696e6729","id":17084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63953:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_9dd12eadc51edb79b050f95e9310706b305e500a52025b74b024df3cbcb53815","typeString":"literal_string \"log(address,address,uint,string)\""},"value":"log(address,address,uint,string)"},{"id":17085,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17072,"src":"63989:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17086,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17074,"src":"63993:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17087,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17076,"src":"63997:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17088,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17078,"src":"64001:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9dd12eadc51edb79b050f95e9310706b305e500a52025b74b024df3cbcb53815","typeString":"literal_string \"log(address,address,uint,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17082,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63929:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17083,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63933:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63929:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63929:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17081,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"63913:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63913:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17091,"nodeType":"ExpressionStatement","src":"63913:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63834:3:13","parameters":{"id":17079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17072,"mutability":"mutable","name":"p0","nameLocation":"63846:2:13","nodeType":"VariableDeclaration","scope":17093,"src":"63838:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17071,"name":"address","nodeType":"ElementaryTypeName","src":"63838:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17074,"mutability":"mutable","name":"p1","nameLocation":"63858:2:13","nodeType":"VariableDeclaration","scope":17093,"src":"63850:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17073,"name":"address","nodeType":"ElementaryTypeName","src":"63850:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17076,"mutability":"mutable","name":"p2","nameLocation":"63867:2:13","nodeType":"VariableDeclaration","scope":17093,"src":"63862:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17075,"name":"uint","nodeType":"ElementaryTypeName","src":"63862:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17078,"mutability":"mutable","name":"p3","nameLocation":"63885:2:13","nodeType":"VariableDeclaration","scope":17093,"src":"63871:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17077,"name":"string","nodeType":"ElementaryTypeName","src":"63871:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63837:51:13"},"returnParameters":{"id":17080,"nodeType":"ParameterList","parameters":[],"src":"63903:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17116,"nodeType":"FunctionDefinition","src":"64018:176:13","nodes":[],"body":{"id":17115,"nodeType":"Block","src":"64087:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e742c626f6f6c29","id":17107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64137:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2f688eccc5824e4375e54ae0df7ae9f757b0758319e26fa7dcc6a4450e1d411","typeString":"literal_string \"log(address,address,uint,bool)\""},"value":"log(address,address,uint,bool)"},{"id":17108,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17095,"src":"64171:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17109,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17097,"src":"64175:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17110,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17099,"src":"64179:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17111,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17101,"src":"64183:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c2f688eccc5824e4375e54ae0df7ae9f757b0758319e26fa7dcc6a4450e1d411","typeString":"literal_string \"log(address,address,uint,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17105,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64113:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64117:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64113:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64113:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17104,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"64097:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64097:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17114,"nodeType":"ExpressionStatement","src":"64097:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64027:3:13","parameters":{"id":17102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17095,"mutability":"mutable","name":"p0","nameLocation":"64039:2:13","nodeType":"VariableDeclaration","scope":17116,"src":"64031:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17094,"name":"address","nodeType":"ElementaryTypeName","src":"64031:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17097,"mutability":"mutable","name":"p1","nameLocation":"64051:2:13","nodeType":"VariableDeclaration","scope":17116,"src":"64043:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17096,"name":"address","nodeType":"ElementaryTypeName","src":"64043:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17099,"mutability":"mutable","name":"p2","nameLocation":"64060:2:13","nodeType":"VariableDeclaration","scope":17116,"src":"64055:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17098,"name":"uint","nodeType":"ElementaryTypeName","src":"64055:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17101,"mutability":"mutable","name":"p3","nameLocation":"64069:2:13","nodeType":"VariableDeclaration","scope":17116,"src":"64064:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17100,"name":"bool","nodeType":"ElementaryTypeName","src":"64064:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"64030:42:13"},"returnParameters":{"id":17103,"nodeType":"ParameterList","parameters":[],"src":"64087:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17139,"nodeType":"FunctionDefinition","src":"64200:182:13","nodes":[],"body":{"id":17138,"nodeType":"Block","src":"64272:110:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e742c6164647265737329","id":17130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64322:35:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6c65276d9b81968c5dbc7d91412af8260979b88b9036d81153645629a214556","typeString":"literal_string \"log(address,address,uint,address)\""},"value":"log(address,address,uint,address)"},{"id":17131,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17118,"src":"64359:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17132,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17120,"src":"64363:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17133,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17122,"src":"64367:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17134,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17124,"src":"64371:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6c65276d9b81968c5dbc7d91412af8260979b88b9036d81153645629a214556","typeString":"literal_string \"log(address,address,uint,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17128,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64298:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17129,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64302:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64298:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64298:76:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17127,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"64282:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64282:93:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17137,"nodeType":"ExpressionStatement","src":"64282:93:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64209:3:13","parameters":{"id":17125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17118,"mutability":"mutable","name":"p0","nameLocation":"64221:2:13","nodeType":"VariableDeclaration","scope":17139,"src":"64213:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17117,"name":"address","nodeType":"ElementaryTypeName","src":"64213:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17120,"mutability":"mutable","name":"p1","nameLocation":"64233:2:13","nodeType":"VariableDeclaration","scope":17139,"src":"64225:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17119,"name":"address","nodeType":"ElementaryTypeName","src":"64225:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17122,"mutability":"mutable","name":"p2","nameLocation":"64242:2:13","nodeType":"VariableDeclaration","scope":17139,"src":"64237:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17121,"name":"uint","nodeType":"ElementaryTypeName","src":"64237:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17124,"mutability":"mutable","name":"p3","nameLocation":"64254:2:13","nodeType":"VariableDeclaration","scope":17139,"src":"64246:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17123,"name":"address","nodeType":"ElementaryTypeName","src":"64246:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"64212:45:13"},"returnParameters":{"id":17126,"nodeType":"ParameterList","parameters":[],"src":"64272:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17162,"nodeType":"FunctionDefinition","src":"64388:187:13","nodes":[],"body":{"id":17161,"nodeType":"Block","src":"64466:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c75696e7429","id":17153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64516:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_04289300eaed00bb9d0d7894f7439ff06a8c4040945c0625e94f6f0c87fb11ba","typeString":"literal_string \"log(address,address,string,uint)\""},"value":"log(address,address,string,uint)"},{"id":17154,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17141,"src":"64552:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17155,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17143,"src":"64556:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17156,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17145,"src":"64560:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17157,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"64564:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_04289300eaed00bb9d0d7894f7439ff06a8c4040945c0625e94f6f0c87fb11ba","typeString":"literal_string \"log(address,address,string,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17151,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64492:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64496:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64492:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64492:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17150,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"64476:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64476:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17160,"nodeType":"ExpressionStatement","src":"64476:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64397:3:13","parameters":{"id":17148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17141,"mutability":"mutable","name":"p0","nameLocation":"64409:2:13","nodeType":"VariableDeclaration","scope":17162,"src":"64401:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17140,"name":"address","nodeType":"ElementaryTypeName","src":"64401:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17143,"mutability":"mutable","name":"p1","nameLocation":"64421:2:13","nodeType":"VariableDeclaration","scope":17162,"src":"64413:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17142,"name":"address","nodeType":"ElementaryTypeName","src":"64413:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17145,"mutability":"mutable","name":"p2","nameLocation":"64439:2:13","nodeType":"VariableDeclaration","scope":17162,"src":"64425:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17144,"name":"string","nodeType":"ElementaryTypeName","src":"64425:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17147,"mutability":"mutable","name":"p3","nameLocation":"64448:2:13","nodeType":"VariableDeclaration","scope":17162,"src":"64443:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17146,"name":"uint","nodeType":"ElementaryTypeName","src":"64443:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"64400:51:13"},"returnParameters":{"id":17149,"nodeType":"ParameterList","parameters":[],"src":"64466:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17185,"nodeType":"FunctionDefinition","src":"64581:198:13","nodes":[],"body":{"id":17184,"nodeType":"Block","src":"64668:111:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c737472696e6729","id":17176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64718:36:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1","typeString":"literal_string \"log(address,address,string,string)\""},"value":"log(address,address,string,string)"},{"id":17177,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17164,"src":"64756:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17178,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17166,"src":"64760:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17179,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17168,"src":"64764:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17180,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17170,"src":"64768:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1","typeString":"literal_string \"log(address,address,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17174,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64694:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64698:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64694:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64694:77:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17173,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"64678:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64678:94:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17183,"nodeType":"ExpressionStatement","src":"64678:94:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64590:3:13","parameters":{"id":17171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17164,"mutability":"mutable","name":"p0","nameLocation":"64602:2:13","nodeType":"VariableDeclaration","scope":17185,"src":"64594:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17163,"name":"address","nodeType":"ElementaryTypeName","src":"64594:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17166,"mutability":"mutable","name":"p1","nameLocation":"64614:2:13","nodeType":"VariableDeclaration","scope":17185,"src":"64606:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17165,"name":"address","nodeType":"ElementaryTypeName","src":"64606:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17168,"mutability":"mutable","name":"p2","nameLocation":"64632:2:13","nodeType":"VariableDeclaration","scope":17185,"src":"64618:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17167,"name":"string","nodeType":"ElementaryTypeName","src":"64618:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17170,"mutability":"mutable","name":"p3","nameLocation":"64650:2:13","nodeType":"VariableDeclaration","scope":17185,"src":"64636:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17169,"name":"string","nodeType":"ElementaryTypeName","src":"64636:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"64593:60:13"},"returnParameters":{"id":17172,"nodeType":"ParameterList","parameters":[],"src":"64668:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17208,"nodeType":"FunctionDefinition","src":"64785:187:13","nodes":[],"body":{"id":17207,"nodeType":"Block","src":"64863:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c626f6f6c29","id":17199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64913:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd","typeString":"literal_string \"log(address,address,string,bool)\""},"value":"log(address,address,string,bool)"},{"id":17200,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17187,"src":"64949:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17201,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"64953:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17202,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17191,"src":"64957:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17203,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17193,"src":"64961:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd","typeString":"literal_string \"log(address,address,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17197,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64889:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64893:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64889:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64889:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17196,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"64873:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64873:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17206,"nodeType":"ExpressionStatement","src":"64873:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64794:3:13","parameters":{"id":17194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17187,"mutability":"mutable","name":"p0","nameLocation":"64806:2:13","nodeType":"VariableDeclaration","scope":17208,"src":"64798:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17186,"name":"address","nodeType":"ElementaryTypeName","src":"64798:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17189,"mutability":"mutable","name":"p1","nameLocation":"64818:2:13","nodeType":"VariableDeclaration","scope":17208,"src":"64810:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17188,"name":"address","nodeType":"ElementaryTypeName","src":"64810:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17191,"mutability":"mutable","name":"p2","nameLocation":"64836:2:13","nodeType":"VariableDeclaration","scope":17208,"src":"64822:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17190,"name":"string","nodeType":"ElementaryTypeName","src":"64822:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17193,"mutability":"mutable","name":"p3","nameLocation":"64845:2:13","nodeType":"VariableDeclaration","scope":17208,"src":"64840:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17192,"name":"bool","nodeType":"ElementaryTypeName","src":"64840:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"64797:51:13"},"returnParameters":{"id":17195,"nodeType":"ParameterList","parameters":[],"src":"64863:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17231,"nodeType":"FunctionDefinition","src":"64978:193:13","nodes":[],"body":{"id":17230,"nodeType":"Block","src":"65059:112:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c6164647265737329","id":17222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65109:37:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687","typeString":"literal_string \"log(address,address,string,address)\""},"value":"log(address,address,string,address)"},{"id":17223,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17210,"src":"65148:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17224,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17212,"src":"65152:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17225,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17214,"src":"65156:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17226,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17216,"src":"65160:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687","typeString":"literal_string \"log(address,address,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17220,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65085:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65089:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65085:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65085:78:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17219,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"65069:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65069:95:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17229,"nodeType":"ExpressionStatement","src":"65069:95:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64987:3:13","parameters":{"id":17217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17210,"mutability":"mutable","name":"p0","nameLocation":"64999:2:13","nodeType":"VariableDeclaration","scope":17231,"src":"64991:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17209,"name":"address","nodeType":"ElementaryTypeName","src":"64991:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17212,"mutability":"mutable","name":"p1","nameLocation":"65011:2:13","nodeType":"VariableDeclaration","scope":17231,"src":"65003:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17211,"name":"address","nodeType":"ElementaryTypeName","src":"65003:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17214,"mutability":"mutable","name":"p2","nameLocation":"65029:2:13","nodeType":"VariableDeclaration","scope":17231,"src":"65015:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17213,"name":"string","nodeType":"ElementaryTypeName","src":"65015:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17216,"mutability":"mutable","name":"p3","nameLocation":"65041:2:13","nodeType":"VariableDeclaration","scope":17231,"src":"65033:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17215,"name":"address","nodeType":"ElementaryTypeName","src":"65033:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"64990:54:13"},"returnParameters":{"id":17218,"nodeType":"ParameterList","parameters":[],"src":"65059:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17254,"nodeType":"FunctionDefinition","src":"65177:176:13","nodes":[],"body":{"id":17253,"nodeType":"Block","src":"65246:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c75696e7429","id":17245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65296:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_95d65f110e4042ee84d162cfc6d17a44c2f2784259e33c97679d21e7a95a841e","typeString":"literal_string \"log(address,address,bool,uint)\""},"value":"log(address,address,bool,uint)"},{"id":17246,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17233,"src":"65330:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17247,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17235,"src":"65334:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17248,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17237,"src":"65338:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17249,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17239,"src":"65342:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_95d65f110e4042ee84d162cfc6d17a44c2f2784259e33c97679d21e7a95a841e","typeString":"literal_string \"log(address,address,bool,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17243,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65272:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65276:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65272:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65272:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17242,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"65256:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65256:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17252,"nodeType":"ExpressionStatement","src":"65256:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65186:3:13","parameters":{"id":17240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17233,"mutability":"mutable","name":"p0","nameLocation":"65198:2:13","nodeType":"VariableDeclaration","scope":17254,"src":"65190:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17232,"name":"address","nodeType":"ElementaryTypeName","src":"65190:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17235,"mutability":"mutable","name":"p1","nameLocation":"65210:2:13","nodeType":"VariableDeclaration","scope":17254,"src":"65202:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17234,"name":"address","nodeType":"ElementaryTypeName","src":"65202:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17237,"mutability":"mutable","name":"p2","nameLocation":"65219:2:13","nodeType":"VariableDeclaration","scope":17254,"src":"65214:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17236,"name":"bool","nodeType":"ElementaryTypeName","src":"65214:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17239,"mutability":"mutable","name":"p3","nameLocation":"65228:2:13","nodeType":"VariableDeclaration","scope":17254,"src":"65223:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17238,"name":"uint","nodeType":"ElementaryTypeName","src":"65223:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"65189:42:13"},"returnParameters":{"id":17241,"nodeType":"ParameterList","parameters":[],"src":"65246:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17277,"nodeType":"FunctionDefinition","src":"65359:187:13","nodes":[],"body":{"id":17276,"nodeType":"Block","src":"65437:109:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c737472696e6729","id":17268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65487:34:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88","typeString":"literal_string \"log(address,address,bool,string)\""},"value":"log(address,address,bool,string)"},{"id":17269,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17256,"src":"65523:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17270,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17258,"src":"65527:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17271,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17260,"src":"65531:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17272,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17262,"src":"65535:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88","typeString":"literal_string \"log(address,address,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17266,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65463:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65467:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65463:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65463:75:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17265,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"65447:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65447:92:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17275,"nodeType":"ExpressionStatement","src":"65447:92:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65368:3:13","parameters":{"id":17263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17256,"mutability":"mutable","name":"p0","nameLocation":"65380:2:13","nodeType":"VariableDeclaration","scope":17277,"src":"65372:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17255,"name":"address","nodeType":"ElementaryTypeName","src":"65372:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17258,"mutability":"mutable","name":"p1","nameLocation":"65392:2:13","nodeType":"VariableDeclaration","scope":17277,"src":"65384:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17257,"name":"address","nodeType":"ElementaryTypeName","src":"65384:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17260,"mutability":"mutable","name":"p2","nameLocation":"65401:2:13","nodeType":"VariableDeclaration","scope":17277,"src":"65396:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17259,"name":"bool","nodeType":"ElementaryTypeName","src":"65396:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17262,"mutability":"mutable","name":"p3","nameLocation":"65419:2:13","nodeType":"VariableDeclaration","scope":17277,"src":"65405:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17261,"name":"string","nodeType":"ElementaryTypeName","src":"65405:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"65371:51:13"},"returnParameters":{"id":17264,"nodeType":"ParameterList","parameters":[],"src":"65437:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17300,"nodeType":"FunctionDefinition","src":"65552:176:13","nodes":[],"body":{"id":17299,"nodeType":"Block","src":"65621:107:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c626f6f6c29","id":17291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65671:32:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65","typeString":"literal_string \"log(address,address,bool,bool)\""},"value":"log(address,address,bool,bool)"},{"id":17292,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17279,"src":"65705:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17293,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17281,"src":"65709:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17294,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17283,"src":"65713:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17295,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17285,"src":"65717:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65","typeString":"literal_string \"log(address,address,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17289,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65647:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65651:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65647:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65647:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17288,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"65631:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65631:90:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17298,"nodeType":"ExpressionStatement","src":"65631:90:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65561:3:13","parameters":{"id":17286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17279,"mutability":"mutable","name":"p0","nameLocation":"65573:2:13","nodeType":"VariableDeclaration","scope":17300,"src":"65565:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17278,"name":"address","nodeType":"ElementaryTypeName","src":"65565:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17281,"mutability":"mutable","name":"p1","nameLocation":"65585:2:13","nodeType":"VariableDeclaration","scope":17300,"src":"65577:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17280,"name":"address","nodeType":"ElementaryTypeName","src":"65577:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17283,"mutability":"mutable","name":"p2","nameLocation":"65594:2:13","nodeType":"VariableDeclaration","scope":17300,"src":"65589:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17282,"name":"bool","nodeType":"ElementaryTypeName","src":"65589:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17285,"mutability":"mutable","name":"p3","nameLocation":"65603:2:13","nodeType":"VariableDeclaration","scope":17300,"src":"65598:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17284,"name":"bool","nodeType":"ElementaryTypeName","src":"65598:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"65564:42:13"},"returnParameters":{"id":17287,"nodeType":"ParameterList","parameters":[],"src":"65621:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17323,"nodeType":"FunctionDefinition","src":"65734:182:13","nodes":[],"body":{"id":17322,"nodeType":"Block","src":"65806:110:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c6164647265737329","id":17314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65856:35:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c","typeString":"literal_string \"log(address,address,bool,address)\""},"value":"log(address,address,bool,address)"},{"id":17315,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17302,"src":"65893:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17316,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17304,"src":"65897:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17317,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17306,"src":"65901:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17318,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17308,"src":"65905:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c","typeString":"literal_string \"log(address,address,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17312,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65832:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65836:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65832:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65832:76:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17311,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"65816:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65816:93:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17321,"nodeType":"ExpressionStatement","src":"65816:93:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65743:3:13","parameters":{"id":17309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17302,"mutability":"mutable","name":"p0","nameLocation":"65755:2:13","nodeType":"VariableDeclaration","scope":17323,"src":"65747:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17301,"name":"address","nodeType":"ElementaryTypeName","src":"65747:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17304,"mutability":"mutable","name":"p1","nameLocation":"65767:2:13","nodeType":"VariableDeclaration","scope":17323,"src":"65759:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17303,"name":"address","nodeType":"ElementaryTypeName","src":"65759:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17306,"mutability":"mutable","name":"p2","nameLocation":"65776:2:13","nodeType":"VariableDeclaration","scope":17323,"src":"65771:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17305,"name":"bool","nodeType":"ElementaryTypeName","src":"65771:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17308,"mutability":"mutable","name":"p3","nameLocation":"65788:2:13","nodeType":"VariableDeclaration","scope":17323,"src":"65780:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17307,"name":"address","nodeType":"ElementaryTypeName","src":"65780:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"65746:45:13"},"returnParameters":{"id":17310,"nodeType":"ParameterList","parameters":[],"src":"65806:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17346,"nodeType":"FunctionDefinition","src":"65922:182:13","nodes":[],"body":{"id":17345,"nodeType":"Block","src":"65994:110:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c75696e7429","id":17337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66044:35:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_ed5eac8706392442fff9f76d5de4d50b9cc22387f3f19d447470771094406028","typeString":"literal_string \"log(address,address,address,uint)\""},"value":"log(address,address,address,uint)"},{"id":17338,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17325,"src":"66081:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17339,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17327,"src":"66085:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17340,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17329,"src":"66089:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17341,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17331,"src":"66093:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ed5eac8706392442fff9f76d5de4d50b9cc22387f3f19d447470771094406028","typeString":"literal_string \"log(address,address,address,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17335,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66020:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66024:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66020:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66020:76:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17334,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"66004:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66004:93:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17344,"nodeType":"ExpressionStatement","src":"66004:93:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65931:3:13","parameters":{"id":17332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17325,"mutability":"mutable","name":"p0","nameLocation":"65943:2:13","nodeType":"VariableDeclaration","scope":17346,"src":"65935:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17324,"name":"address","nodeType":"ElementaryTypeName","src":"65935:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17327,"mutability":"mutable","name":"p1","nameLocation":"65955:2:13","nodeType":"VariableDeclaration","scope":17346,"src":"65947:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17326,"name":"address","nodeType":"ElementaryTypeName","src":"65947:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17329,"mutability":"mutable","name":"p2","nameLocation":"65967:2:13","nodeType":"VariableDeclaration","scope":17346,"src":"65959:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17328,"name":"address","nodeType":"ElementaryTypeName","src":"65959:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17331,"mutability":"mutable","name":"p3","nameLocation":"65976:2:13","nodeType":"VariableDeclaration","scope":17346,"src":"65971:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17330,"name":"uint","nodeType":"ElementaryTypeName","src":"65971:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"65934:45:13"},"returnParameters":{"id":17333,"nodeType":"ParameterList","parameters":[],"src":"65994:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17369,"nodeType":"FunctionDefinition","src":"66110:193:13","nodes":[],"body":{"id":17368,"nodeType":"Block","src":"66191:112:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c737472696e6729","id":17360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66241:37:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025","typeString":"literal_string \"log(address,address,address,string)\""},"value":"log(address,address,address,string)"},{"id":17361,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17348,"src":"66280:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17362,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17350,"src":"66284:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17363,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17352,"src":"66288:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17364,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17354,"src":"66292:2:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025","typeString":"literal_string \"log(address,address,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17358,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66217:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66221:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66217:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66217:78:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17357,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"66201:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66201:95:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17367,"nodeType":"ExpressionStatement","src":"66201:95:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66119:3:13","parameters":{"id":17355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17348,"mutability":"mutable","name":"p0","nameLocation":"66131:2:13","nodeType":"VariableDeclaration","scope":17369,"src":"66123:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17347,"name":"address","nodeType":"ElementaryTypeName","src":"66123:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17350,"mutability":"mutable","name":"p1","nameLocation":"66143:2:13","nodeType":"VariableDeclaration","scope":17369,"src":"66135:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17349,"name":"address","nodeType":"ElementaryTypeName","src":"66135:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17352,"mutability":"mutable","name":"p2","nameLocation":"66155:2:13","nodeType":"VariableDeclaration","scope":17369,"src":"66147:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17351,"name":"address","nodeType":"ElementaryTypeName","src":"66147:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17354,"mutability":"mutable","name":"p3","nameLocation":"66173:2:13","nodeType":"VariableDeclaration","scope":17369,"src":"66159:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17353,"name":"string","nodeType":"ElementaryTypeName","src":"66159:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66122:54:13"},"returnParameters":{"id":17356,"nodeType":"ParameterList","parameters":[],"src":"66191:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17392,"nodeType":"FunctionDefinition","src":"66309:182:13","nodes":[],"body":{"id":17391,"nodeType":"Block","src":"66381:110:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c626f6f6c29","id":17383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66431:35:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb","typeString":"literal_string \"log(address,address,address,bool)\""},"value":"log(address,address,address,bool)"},{"id":17384,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17371,"src":"66468:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17385,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17373,"src":"66472:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17386,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17375,"src":"66476:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17387,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17377,"src":"66480:2:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb","typeString":"literal_string \"log(address,address,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17381,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66407:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66411:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66407:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66407:76:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17380,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"66391:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66391:93:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17390,"nodeType":"ExpressionStatement","src":"66391:93:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66318:3:13","parameters":{"id":17378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17371,"mutability":"mutable","name":"p0","nameLocation":"66330:2:13","nodeType":"VariableDeclaration","scope":17392,"src":"66322:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17370,"name":"address","nodeType":"ElementaryTypeName","src":"66322:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17373,"mutability":"mutable","name":"p1","nameLocation":"66342:2:13","nodeType":"VariableDeclaration","scope":17392,"src":"66334:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17372,"name":"address","nodeType":"ElementaryTypeName","src":"66334:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17375,"mutability":"mutable","name":"p2","nameLocation":"66354:2:13","nodeType":"VariableDeclaration","scope":17392,"src":"66346:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17374,"name":"address","nodeType":"ElementaryTypeName","src":"66346:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17377,"mutability":"mutable","name":"p3","nameLocation":"66363:2:13","nodeType":"VariableDeclaration","scope":17392,"src":"66358:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17376,"name":"bool","nodeType":"ElementaryTypeName","src":"66358:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"66321:45:13"},"returnParameters":{"id":17379,"nodeType":"ParameterList","parameters":[],"src":"66381:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17415,"nodeType":"FunctionDefinition","src":"66497:188:13","nodes":[],"body":{"id":17414,"nodeType":"Block","src":"66572:113:13","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c6164647265737329","id":17406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66622:38:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5","typeString":"literal_string \"log(address,address,address,address)\""},"value":"log(address,address,address,address)"},{"id":17407,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17394,"src":"66662:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17408,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17396,"src":"66666:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17409,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17398,"src":"66670:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17410,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17400,"src":"66674:2:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5","typeString":"literal_string \"log(address,address,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17404,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66598:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17405,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66602:19:13","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66598:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66598:79:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17403,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"66582:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66582:96:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17413,"nodeType":"ExpressionStatement","src":"66582:96:13"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66506:3:13","parameters":{"id":17401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17394,"mutability":"mutable","name":"p0","nameLocation":"66518:2:13","nodeType":"VariableDeclaration","scope":17415,"src":"66510:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17393,"name":"address","nodeType":"ElementaryTypeName","src":"66510:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17396,"mutability":"mutable","name":"p1","nameLocation":"66530:2:13","nodeType":"VariableDeclaration","scope":17415,"src":"66522:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17395,"name":"address","nodeType":"ElementaryTypeName","src":"66522:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17398,"mutability":"mutable","name":"p2","nameLocation":"66542:2:13","nodeType":"VariableDeclaration","scope":17415,"src":"66534:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17397,"name":"address","nodeType":"ElementaryTypeName","src":"66534:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17400,"mutability":"mutable","name":"p3","nameLocation":"66554:2:13","nodeType":"VariableDeclaration","scope":17415,"src":"66546:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17399,"name":"address","nodeType":"ElementaryTypeName","src":"66546:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"66509:48:13"},"returnParameters":{"id":17402,"nodeType":"ParameterList","parameters":[],"src":"66572:0:13"},"scope":17416,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"console","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[17416],"name":"console","nameLocation":"74:7:13","scope":17417,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":13} \ No newline at end of file diff --git a/out/console2.sol/console2.json b/out/console2.sol/console2.json deleted file mode 100644 index a6f09876..00000000 --- a/out/console2.sol/console2.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220c2bb52bb58559714207b0a39b4818e261731a542910516f5e59d013b0beffe9f64736f6c63430008160033","sourceMap":"525:68782:14:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220c2bb52bb58559714207b0a39b4818e261731a542910516f5e59d013b0beffe9f64736f6c63430008160033","sourceMap":"525:68782:14:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"The original console.sol uses `int` and `uint` for computing function selectors, but it should use `int256` and `uint256`. This modified version fixes that. This version is recommended over `console.sol` if you don't need compatibility with Hardhat as the logs will show up in forge stack traces. If you do need compatibility with Hardhat, you must use `console.sol`. Reference: https://github.com/NomicFoundation/hardhat/issues/2178\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/forge-std/src/console2.sol\":\"console2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/forge-std/src/console2.sol":"console2"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/forge-std/src/console2.sol","id":25513,"exportedSymbols":{"console2":[25512]},"nodeType":"SourceUnit","src":"32:69275:14","nodes":[{"id":17418,"nodeType":"PragmaDirective","src":"32:32:14","nodes":[],"literals":["solidity",">=","0.4",".22","<","0.9",".0"]},{"id":25512,"nodeType":"ContractDefinition","src":"525:68782:14","nodes":[{"id":17425,"nodeType":"VariableDeclaration","src":"548:86:14","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE_ADDRESS","nameLocation":"565:15:14","scope":25512,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17420,"name":"address","nodeType":"ElementaryTypeName","src":"548:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":17423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"591:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"583:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17421,"name":"address","nodeType":"ElementaryTypeName","src":"583:7:14","typeDescriptions":{}}},"id":17424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"583:51:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":17441,"nodeType":"FunctionDefinition","src":"641:376:14","nodes":[],"body":{"id":17440,"nodeType":"Block","src":"701:316:14","nodes":[],"statements":[{"assignments":[17431],"declarations":[{"constant":false,"id":17431,"mutability":"mutable","name":"payloadLength","nameLocation":"719:13:14","nodeType":"VariableDeclaration","scope":17440,"src":"711:21:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17430,"name":"uint256","nodeType":"ElementaryTypeName","src":"711:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17434,"initialValue":{"expression":{"id":17432,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17427,"src":"735:7:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":17433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"743:6:14","memberName":"length","nodeType":"MemberAccess","src":"735:14:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"711:38:14"},{"assignments":[17436],"declarations":[{"constant":false,"id":17436,"mutability":"mutable","name":"consoleAddress","nameLocation":"767:14:14","nodeType":"VariableDeclaration","scope":17440,"src":"759:22:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17435,"name":"address","nodeType":"ElementaryTypeName","src":"759:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":17438,"initialValue":{"id":17437,"name":"CONSOLE_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17425,"src":"784:15:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"759:40:14"},{"AST":{"nativeSrc":"861:150:14","nodeType":"YulBlock","src":"861:150:14","statements":[{"nativeSrc":"875:36:14","nodeType":"YulVariableDeclaration","src":"875:36:14","value":{"arguments":[{"name":"payload","nativeSrc":"899:7:14","nodeType":"YulIdentifier","src":"899:7:14"},{"kind":"number","nativeSrc":"908:2:14","nodeType":"YulLiteral","src":"908:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"895:3:14","nodeType":"YulIdentifier","src":"895:3:14"},"nativeSrc":"895:16:14","nodeType":"YulFunctionCall","src":"895:16:14"},"variables":[{"name":"payloadStart","nativeSrc":"879:12:14","nodeType":"YulTypedName","src":"879:12:14","type":""}]},{"nativeSrc":"924:77:14","nodeType":"YulVariableDeclaration","src":"924:77:14","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"944:3:14","nodeType":"YulIdentifier","src":"944:3:14"},"nativeSrc":"944:5:14","nodeType":"YulFunctionCall","src":"944:5:14"},{"name":"consoleAddress","nativeSrc":"951:14:14","nodeType":"YulIdentifier","src":"951:14:14"},{"name":"payloadStart","nativeSrc":"967:12:14","nodeType":"YulIdentifier","src":"967:12:14"},{"name":"payloadLength","nativeSrc":"981:13:14","nodeType":"YulIdentifier","src":"981:13:14"},{"kind":"number","nativeSrc":"996:1:14","nodeType":"YulLiteral","src":"996:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"999:1:14","nodeType":"YulLiteral","src":"999:1:14","type":"","value":"0"}],"functionName":{"name":"staticcall","nativeSrc":"933:10:14","nodeType":"YulIdentifier","src":"933:10:14"},"nativeSrc":"933:68:14","nodeType":"YulFunctionCall","src":"933:68:14"},"variables":[{"name":"r","nativeSrc":"928:1:14","nodeType":"YulTypedName","src":"928:1:14","type":""}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":17436,"isOffset":false,"isSlot":false,"src":"951:14:14","valueSize":1},{"declaration":17427,"isOffset":false,"isSlot":false,"src":"899:7:14","valueSize":1},{"declaration":17431,"isOffset":false,"isSlot":false,"src":"981:13:14","valueSize":1}],"id":17439,"nodeType":"InlineAssembly","src":"852:159:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayload","nameLocation":"650:15:14","parameters":{"id":17428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17427,"mutability":"mutable","name":"payload","nameLocation":"679:7:14","nodeType":"VariableDeclaration","scope":17441,"src":"666:20:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17426,"name":"bytes","nodeType":"ElementaryTypeName","src":"666:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"665:22:14"},"returnParameters":{"id":17429,"nodeType":"ParameterList","parameters":[],"src":"701:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":17452,"nodeType":"FunctionDefinition","src":"1023:95:14","nodes":[],"body":{"id":17451,"nodeType":"Block","src":"1052:66:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672829","id":17447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1102:7:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39","typeString":"literal_string \"log()\""},"value":"log()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39","typeString":"literal_string \"log()\""}],"expression":{"id":17445,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1078:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1082:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1078:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1078:32:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17444,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"1062:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1062:49:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17450,"nodeType":"ExpressionStatement","src":"1062:49:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"1032:3:14","parameters":{"id":17442,"nodeType":"ParameterList","parameters":[],"src":"1035:2:14"},"returnParameters":{"id":17443,"nodeType":"ParameterList","parameters":[],"src":"1052:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17466,"nodeType":"FunctionDefinition","src":"1124:117:14","nodes":[],"body":{"id":17465,"nodeType":"Block","src":"1165:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728696e7432353629","id":17460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1215:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d5b6cb95ba2d00a93cd4ffa61ec07ef4bb1694f20c02a3cccb170a38df81ef8","typeString":"literal_string \"log(int256)\""},"value":"log(int256)"},{"id":17461,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17454,"src":"1230:2:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d5b6cb95ba2d00a93cd4ffa61ec07ef4bb1694f20c02a3cccb170a38df81ef8","typeString":"literal_string \"log(int256)\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":17458,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1191:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1195:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1191:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1191:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17457,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"1175:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1175:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17464,"nodeType":"ExpressionStatement","src":"1175:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logInt","nameLocation":"1133:6:14","parameters":{"id":17455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17454,"mutability":"mutable","name":"p0","nameLocation":"1147:2:14","nodeType":"VariableDeclaration","scope":17466,"src":"1140:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17453,"name":"int256","nodeType":"ElementaryTypeName","src":"1140:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1139:11:14"},"returnParameters":{"id":17456,"nodeType":"ParameterList","parameters":[],"src":"1165:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17480,"nodeType":"FunctionDefinition","src":"1247:120:14","nodes":[],"body":{"id":17479,"nodeType":"Block","src":"1290:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e7432353629","id":17474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1340:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},"value":"log(uint256)"},{"id":17475,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17468,"src":"1356:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17472,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1316:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1320:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1316:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1316:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17471,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"1300:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1300:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17478,"nodeType":"ExpressionStatement","src":"1300:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logUint","nameLocation":"1256:7:14","parameters":{"id":17469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17468,"mutability":"mutable","name":"p0","nameLocation":"1272:2:14","nodeType":"VariableDeclaration","scope":17480,"src":"1264:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17467,"name":"uint256","nodeType":"ElementaryTypeName","src":"1264:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1263:12:14"},"returnParameters":{"id":17470,"nodeType":"ParameterList","parameters":[],"src":"1290:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17494,"nodeType":"FunctionDefinition","src":"1373:127:14","nodes":[],"body":{"id":17493,"nodeType":"Block","src":"1424:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":17488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1474:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":17489,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17482,"src":"1489:2:14","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":17486,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1450:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17487,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1454:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1450:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1450:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17485,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"1434:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1434:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17492,"nodeType":"ExpressionStatement","src":"1434:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logString","nameLocation":"1382:9:14","parameters":{"id":17483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17482,"mutability":"mutable","name":"p0","nameLocation":"1406:2:14","nodeType":"VariableDeclaration","scope":17494,"src":"1392:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17481,"name":"string","nodeType":"ElementaryTypeName","src":"1392:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1391:18:14"},"returnParameters":{"id":17484,"nodeType":"ParameterList","parameters":[],"src":"1424:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17508,"nodeType":"FunctionDefinition","src":"1506:114:14","nodes":[],"body":{"id":17507,"nodeType":"Block","src":"1546:74:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c29","id":17502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1596:11:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},"value":"log(bool)"},{"id":17503,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17496,"src":"1609:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17500,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1572:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1576:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1572:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1572:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17499,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"1556:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1556:57:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17506,"nodeType":"ExpressionStatement","src":"1556:57:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBool","nameLocation":"1515:7:14","parameters":{"id":17497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17496,"mutability":"mutable","name":"p0","nameLocation":"1528:2:14","nodeType":"VariableDeclaration","scope":17508,"src":"1523:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17495,"name":"bool","nodeType":"ElementaryTypeName","src":"1523:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1522:9:14"},"returnParameters":{"id":17498,"nodeType":"ParameterList","parameters":[],"src":"1546:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17522,"nodeType":"FunctionDefinition","src":"1626:123:14","nodes":[],"body":{"id":17521,"nodeType":"Block","src":"1672:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286164647265737329","id":17516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1722:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},"value":"log(address)"},{"id":17517,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17510,"src":"1738:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17514,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1698:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1702:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1698:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1698:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17513,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"1682:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1682:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17520,"nodeType":"ExpressionStatement","src":"1682:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logAddress","nameLocation":"1635:10:14","parameters":{"id":17511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17510,"mutability":"mutable","name":"p0","nameLocation":"1654:2:14","nodeType":"VariableDeclaration","scope":17522,"src":"1646:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17509,"name":"address","nodeType":"ElementaryTypeName","src":"1646:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1645:12:14"},"returnParameters":{"id":17512,"nodeType":"ParameterList","parameters":[],"src":"1672:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17536,"nodeType":"FunctionDefinition","src":"1755:124:14","nodes":[],"body":{"id":17535,"nodeType":"Block","src":"1804:75:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728627974657329","id":17530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1854:12:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238","typeString":"literal_string \"log(bytes)\""},"value":"log(bytes)"},{"id":17531,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17524,"src":"1868:2:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238","typeString":"literal_string \"log(bytes)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":17528,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1830:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1834:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1830:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1830:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17527,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"1814:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1814:58:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17534,"nodeType":"ExpressionStatement","src":"1814:58:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes","nameLocation":"1764:8:14","parameters":{"id":17525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17524,"mutability":"mutable","name":"p0","nameLocation":"1786:2:14","nodeType":"VariableDeclaration","scope":17536,"src":"1773:15:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17523,"name":"bytes","nodeType":"ElementaryTypeName","src":"1773:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1772:17:14"},"returnParameters":{"id":17526,"nodeType":"ParameterList","parameters":[],"src":"1804:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17550,"nodeType":"FunctionDefinition","src":"1885:120:14","nodes":[],"body":{"id":17549,"nodeType":"Block","src":"1929:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733129","id":17544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1979:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041","typeString":"literal_string \"log(bytes1)\""},"value":"log(bytes1)"},{"id":17545,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17538,"src":"1994:2:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041","typeString":"literal_string \"log(bytes1)\""},{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"expression":{"id":17542,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1955:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1959:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1955:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1955:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17541,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"1939:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1939:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17548,"nodeType":"ExpressionStatement","src":"1939:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes1","nameLocation":"1894:9:14","parameters":{"id":17539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17538,"mutability":"mutable","name":"p0","nameLocation":"1911:2:14","nodeType":"VariableDeclaration","scope":17550,"src":"1904:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":17537,"name":"bytes1","nodeType":"ElementaryTypeName","src":"1904:6:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"}],"src":"1903:11:14"},"returnParameters":{"id":17540,"nodeType":"ParameterList","parameters":[],"src":"1929:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17564,"nodeType":"FunctionDefinition","src":"2011:120:14","nodes":[],"body":{"id":17563,"nodeType":"Block","src":"2055:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733229","id":17558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2105:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224","typeString":"literal_string \"log(bytes2)\""},"value":"log(bytes2)"},{"id":17559,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17552,"src":"2120:2:14","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224","typeString":"literal_string \"log(bytes2)\""},{"typeIdentifier":"t_bytes2","typeString":"bytes2"}],"expression":{"id":17556,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2081:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2085:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2081:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2081:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17555,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"2065:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2065:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17562,"nodeType":"ExpressionStatement","src":"2065:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes2","nameLocation":"2020:9:14","parameters":{"id":17553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17552,"mutability":"mutable","name":"p0","nameLocation":"2037:2:14","nodeType":"VariableDeclaration","scope":17564,"src":"2030:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"},"typeName":{"id":17551,"name":"bytes2","nodeType":"ElementaryTypeName","src":"2030:6:14","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}},"visibility":"internal"}],"src":"2029:11:14"},"returnParameters":{"id":17554,"nodeType":"ParameterList","parameters":[],"src":"2055:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17578,"nodeType":"FunctionDefinition","src":"2137:120:14","nodes":[],"body":{"id":17577,"nodeType":"Block","src":"2181:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733329","id":17572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2231:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee","typeString":"literal_string \"log(bytes3)\""},"value":"log(bytes3)"},{"id":17573,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17566,"src":"2246:2:14","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee","typeString":"literal_string \"log(bytes3)\""},{"typeIdentifier":"t_bytes3","typeString":"bytes3"}],"expression":{"id":17570,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2207:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17571,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2211:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2207:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2207:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17569,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"2191:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2191:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17576,"nodeType":"ExpressionStatement","src":"2191:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes3","nameLocation":"2146:9:14","parameters":{"id":17567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17566,"mutability":"mutable","name":"p0","nameLocation":"2163:2:14","nodeType":"VariableDeclaration","scope":17578,"src":"2156:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"},"typeName":{"id":17565,"name":"bytes3","nodeType":"ElementaryTypeName","src":"2156:6:14","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"}},"visibility":"internal"}],"src":"2155:11:14"},"returnParameters":{"id":17568,"nodeType":"ParameterList","parameters":[],"src":"2181:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17592,"nodeType":"FunctionDefinition","src":"2263:120:14","nodes":[],"body":{"id":17591,"nodeType":"Block","src":"2307:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733429","id":17586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2357:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55","typeString":"literal_string \"log(bytes4)\""},"value":"log(bytes4)"},{"id":17587,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17580,"src":"2372:2:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55","typeString":"literal_string \"log(bytes4)\""},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":17584,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2333:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17585,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2337:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2333:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2333:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17583,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"2317:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2317:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17590,"nodeType":"ExpressionStatement","src":"2317:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes4","nameLocation":"2272:9:14","parameters":{"id":17581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17580,"mutability":"mutable","name":"p0","nameLocation":"2289:2:14","nodeType":"VariableDeclaration","scope":17592,"src":"2282:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":17579,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2282:6:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2281:11:14"},"returnParameters":{"id":17582,"nodeType":"ParameterList","parameters":[],"src":"2307:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17606,"nodeType":"FunctionDefinition","src":"2389:120:14","nodes":[],"body":{"id":17605,"nodeType":"Block","src":"2433:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733529","id":17600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2483:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a","typeString":"literal_string \"log(bytes5)\""},"value":"log(bytes5)"},{"id":17601,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17594,"src":"2498:2:14","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a","typeString":"literal_string \"log(bytes5)\""},{"typeIdentifier":"t_bytes5","typeString":"bytes5"}],"expression":{"id":17598,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2459:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2463:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2459:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2459:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17597,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"2443:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2443:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17604,"nodeType":"ExpressionStatement","src":"2443:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes5","nameLocation":"2398:9:14","parameters":{"id":17595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17594,"mutability":"mutable","name":"p0","nameLocation":"2415:2:14","nodeType":"VariableDeclaration","scope":17606,"src":"2408:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"},"typeName":{"id":17593,"name":"bytes5","nodeType":"ElementaryTypeName","src":"2408:6:14","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"}},"visibility":"internal"}],"src":"2407:11:14"},"returnParameters":{"id":17596,"nodeType":"ParameterList","parameters":[],"src":"2433:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17620,"nodeType":"FunctionDefinition","src":"2515:120:14","nodes":[],"body":{"id":17619,"nodeType":"Block","src":"2559:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733629","id":17614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2609:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330","typeString":"literal_string \"log(bytes6)\""},"value":"log(bytes6)"},{"id":17615,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17608,"src":"2624:2:14","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330","typeString":"literal_string \"log(bytes6)\""},{"typeIdentifier":"t_bytes6","typeString":"bytes6"}],"expression":{"id":17612,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2585:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2589:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2585:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2585:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17611,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"2569:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2569:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17618,"nodeType":"ExpressionStatement","src":"2569:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes6","nameLocation":"2524:9:14","parameters":{"id":17609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17608,"mutability":"mutable","name":"p0","nameLocation":"2541:2:14","nodeType":"VariableDeclaration","scope":17620,"src":"2534:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"},"typeName":{"id":17607,"name":"bytes6","nodeType":"ElementaryTypeName","src":"2534:6:14","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"}},"visibility":"internal"}],"src":"2533:11:14"},"returnParameters":{"id":17610,"nodeType":"ParameterList","parameters":[],"src":"2559:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17634,"nodeType":"FunctionDefinition","src":"2641:120:14","nodes":[],"body":{"id":17633,"nodeType":"Block","src":"2685:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733729","id":17628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2735:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29","typeString":"literal_string \"log(bytes7)\""},"value":"log(bytes7)"},{"id":17629,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17622,"src":"2750:2:14","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29","typeString":"literal_string \"log(bytes7)\""},{"typeIdentifier":"t_bytes7","typeString":"bytes7"}],"expression":{"id":17626,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2711:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2715:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2711:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2711:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17625,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"2695:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2695:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17632,"nodeType":"ExpressionStatement","src":"2695:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes7","nameLocation":"2650:9:14","parameters":{"id":17623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17622,"mutability":"mutable","name":"p0","nameLocation":"2667:2:14","nodeType":"VariableDeclaration","scope":17634,"src":"2660:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"},"typeName":{"id":17621,"name":"bytes7","nodeType":"ElementaryTypeName","src":"2660:6:14","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},"visibility":"internal"}],"src":"2659:11:14"},"returnParameters":{"id":17624,"nodeType":"ParameterList","parameters":[],"src":"2685:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17648,"nodeType":"FunctionDefinition","src":"2767:120:14","nodes":[],"body":{"id":17647,"nodeType":"Block","src":"2811:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733829","id":17642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2861:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3","typeString":"literal_string \"log(bytes8)\""},"value":"log(bytes8)"},{"id":17643,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17636,"src":"2876:2:14","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3","typeString":"literal_string \"log(bytes8)\""},{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"expression":{"id":17640,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2837:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2841:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2837:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2837:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17639,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"2821:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2821:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17646,"nodeType":"ExpressionStatement","src":"2821:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes8","nameLocation":"2776:9:14","parameters":{"id":17637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17636,"mutability":"mutable","name":"p0","nameLocation":"2793:2:14","nodeType":"VariableDeclaration","scope":17648,"src":"2786:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"},"typeName":{"id":17635,"name":"bytes8","nodeType":"ElementaryTypeName","src":"2786:6:14","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"visibility":"internal"}],"src":"2785:11:14"},"returnParameters":{"id":17638,"nodeType":"ParameterList","parameters":[],"src":"2811:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17662,"nodeType":"FunctionDefinition","src":"2893:120:14","nodes":[],"body":{"id":17661,"nodeType":"Block","src":"2937:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733929","id":17656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2987:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667","typeString":"literal_string \"log(bytes9)\""},"value":"log(bytes9)"},{"id":17657,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17650,"src":"3002:2:14","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667","typeString":"literal_string \"log(bytes9)\""},{"typeIdentifier":"t_bytes9","typeString":"bytes9"}],"expression":{"id":17654,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2963:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2967:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2963:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2963:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17653,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"2947:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2947:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17660,"nodeType":"ExpressionStatement","src":"2947:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes9","nameLocation":"2902:9:14","parameters":{"id":17651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17650,"mutability":"mutable","name":"p0","nameLocation":"2919:2:14","nodeType":"VariableDeclaration","scope":17662,"src":"2912:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"},"typeName":{"id":17649,"name":"bytes9","nodeType":"ElementaryTypeName","src":"2912:6:14","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"}},"visibility":"internal"}],"src":"2911:11:14"},"returnParameters":{"id":17652,"nodeType":"ParameterList","parameters":[],"src":"2937:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17676,"nodeType":"FunctionDefinition","src":"3019:123:14","nodes":[],"body":{"id":17675,"nodeType":"Block","src":"3065:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313029","id":17670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3115:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66","typeString":"literal_string \"log(bytes10)\""},"value":"log(bytes10)"},{"id":17671,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17664,"src":"3131:2:14","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66","typeString":"literal_string \"log(bytes10)\""},{"typeIdentifier":"t_bytes10","typeString":"bytes10"}],"expression":{"id":17668,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3091:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3095:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3091:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3091:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17667,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"3075:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3075:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17674,"nodeType":"ExpressionStatement","src":"3075:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes10","nameLocation":"3028:10:14","parameters":{"id":17665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17664,"mutability":"mutable","name":"p0","nameLocation":"3047:2:14","nodeType":"VariableDeclaration","scope":17676,"src":"3039:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"},"typeName":{"id":17663,"name":"bytes10","nodeType":"ElementaryTypeName","src":"3039:7:14","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"}},"visibility":"internal"}],"src":"3038:12:14"},"returnParameters":{"id":17666,"nodeType":"ParameterList","parameters":[],"src":"3065:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17690,"nodeType":"FunctionDefinition","src":"3148:123:14","nodes":[],"body":{"id":17689,"nodeType":"Block","src":"3194:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313129","id":17684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3244:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9","typeString":"literal_string \"log(bytes11)\""},"value":"log(bytes11)"},{"id":17685,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17678,"src":"3260:2:14","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9","typeString":"literal_string \"log(bytes11)\""},{"typeIdentifier":"t_bytes11","typeString":"bytes11"}],"expression":{"id":17682,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3220:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3224:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3220:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3220:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17681,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"3204:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3204:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17688,"nodeType":"ExpressionStatement","src":"3204:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes11","nameLocation":"3157:10:14","parameters":{"id":17679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17678,"mutability":"mutable","name":"p0","nameLocation":"3176:2:14","nodeType":"VariableDeclaration","scope":17690,"src":"3168:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"},"typeName":{"id":17677,"name":"bytes11","nodeType":"ElementaryTypeName","src":"3168:7:14","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"}},"visibility":"internal"}],"src":"3167:12:14"},"returnParameters":{"id":17680,"nodeType":"ParameterList","parameters":[],"src":"3194:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17704,"nodeType":"FunctionDefinition","src":"3277:123:14","nodes":[],"body":{"id":17703,"nodeType":"Block","src":"3323:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313229","id":17698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3373:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2","typeString":"literal_string \"log(bytes12)\""},"value":"log(bytes12)"},{"id":17699,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17692,"src":"3389:2:14","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2","typeString":"literal_string \"log(bytes12)\""},{"typeIdentifier":"t_bytes12","typeString":"bytes12"}],"expression":{"id":17696,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3349:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3353:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3349:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3349:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17695,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"3333:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3333:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17702,"nodeType":"ExpressionStatement","src":"3333:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes12","nameLocation":"3286:10:14","parameters":{"id":17693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17692,"mutability":"mutable","name":"p0","nameLocation":"3305:2:14","nodeType":"VariableDeclaration","scope":17704,"src":"3297:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"},"typeName":{"id":17691,"name":"bytes12","nodeType":"ElementaryTypeName","src":"3297:7:14","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"visibility":"internal"}],"src":"3296:12:14"},"returnParameters":{"id":17694,"nodeType":"ParameterList","parameters":[],"src":"3323:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17718,"nodeType":"FunctionDefinition","src":"3406:123:14","nodes":[],"body":{"id":17717,"nodeType":"Block","src":"3452:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313329","id":17712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3502:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec","typeString":"literal_string \"log(bytes13)\""},"value":"log(bytes13)"},{"id":17713,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17706,"src":"3518:2:14","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec","typeString":"literal_string \"log(bytes13)\""},{"typeIdentifier":"t_bytes13","typeString":"bytes13"}],"expression":{"id":17710,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3478:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3482:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3478:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3478:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17709,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"3462:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3462:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17716,"nodeType":"ExpressionStatement","src":"3462:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes13","nameLocation":"3415:10:14","parameters":{"id":17707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17706,"mutability":"mutable","name":"p0","nameLocation":"3434:2:14","nodeType":"VariableDeclaration","scope":17718,"src":"3426:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"},"typeName":{"id":17705,"name":"bytes13","nodeType":"ElementaryTypeName","src":"3426:7:14","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"}},"visibility":"internal"}],"src":"3425:12:14"},"returnParameters":{"id":17708,"nodeType":"ParameterList","parameters":[],"src":"3452:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17732,"nodeType":"FunctionDefinition","src":"3535:123:14","nodes":[],"body":{"id":17731,"nodeType":"Block","src":"3581:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313429","id":17726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3631:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278","typeString":"literal_string \"log(bytes14)\""},"value":"log(bytes14)"},{"id":17727,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17720,"src":"3647:2:14","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278","typeString":"literal_string \"log(bytes14)\""},{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"expression":{"id":17724,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3607:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17725,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3611:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3607:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3607:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17723,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"3591:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3591:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17730,"nodeType":"ExpressionStatement","src":"3591:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes14","nameLocation":"3544:10:14","parameters":{"id":17721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17720,"mutability":"mutable","name":"p0","nameLocation":"3563:2:14","nodeType":"VariableDeclaration","scope":17732,"src":"3555:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":17719,"name":"bytes14","nodeType":"ElementaryTypeName","src":"3555:7:14","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"}],"src":"3554:12:14"},"returnParameters":{"id":17722,"nodeType":"ParameterList","parameters":[],"src":"3581:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17746,"nodeType":"FunctionDefinition","src":"3664:123:14","nodes":[],"body":{"id":17745,"nodeType":"Block","src":"3710:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313529","id":17740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3760:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606","typeString":"literal_string \"log(bytes15)\""},"value":"log(bytes15)"},{"id":17741,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17734,"src":"3776:2:14","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606","typeString":"literal_string \"log(bytes15)\""},{"typeIdentifier":"t_bytes15","typeString":"bytes15"}],"expression":{"id":17738,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3736:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3740:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3736:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3736:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17737,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"3720:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3720:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17744,"nodeType":"ExpressionStatement","src":"3720:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes15","nameLocation":"3673:10:14","parameters":{"id":17735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17734,"mutability":"mutable","name":"p0","nameLocation":"3692:2:14","nodeType":"VariableDeclaration","scope":17746,"src":"3684:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"},"typeName":{"id":17733,"name":"bytes15","nodeType":"ElementaryTypeName","src":"3684:7:14","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"}},"visibility":"internal"}],"src":"3683:12:14"},"returnParameters":{"id":17736,"nodeType":"ParameterList","parameters":[],"src":"3710:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17760,"nodeType":"FunctionDefinition","src":"3793:123:14","nodes":[],"body":{"id":17759,"nodeType":"Block","src":"3839:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313629","id":17754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3889:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3","typeString":"literal_string \"log(bytes16)\""},"value":"log(bytes16)"},{"id":17755,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17748,"src":"3905:2:14","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3","typeString":"literal_string \"log(bytes16)\""},{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":17752,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3865:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3869:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3865:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3865:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17751,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"3849:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3849:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17758,"nodeType":"ExpressionStatement","src":"3849:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes16","nameLocation":"3802:10:14","parameters":{"id":17749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17748,"mutability":"mutable","name":"p0","nameLocation":"3821:2:14","nodeType":"VariableDeclaration","scope":17760,"src":"3813:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":17747,"name":"bytes16","nodeType":"ElementaryTypeName","src":"3813:7:14","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"3812:12:14"},"returnParameters":{"id":17750,"nodeType":"ParameterList","parameters":[],"src":"3839:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17774,"nodeType":"FunctionDefinition","src":"3922:123:14","nodes":[],"body":{"id":17773,"nodeType":"Block","src":"3968:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313729","id":17768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4018:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3","typeString":"literal_string \"log(bytes17)\""},"value":"log(bytes17)"},{"id":17769,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17762,"src":"4034:2:14","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3","typeString":"literal_string \"log(bytes17)\""},{"typeIdentifier":"t_bytes17","typeString":"bytes17"}],"expression":{"id":17766,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3994:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3998:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3994:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3994:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17765,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"3978:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3978:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17772,"nodeType":"ExpressionStatement","src":"3978:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes17","nameLocation":"3931:10:14","parameters":{"id":17763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17762,"mutability":"mutable","name":"p0","nameLocation":"3950:2:14","nodeType":"VariableDeclaration","scope":17774,"src":"3942:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"},"typeName":{"id":17761,"name":"bytes17","nodeType":"ElementaryTypeName","src":"3942:7:14","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"}},"visibility":"internal"}],"src":"3941:12:14"},"returnParameters":{"id":17764,"nodeType":"ParameterList","parameters":[],"src":"3968:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17788,"nodeType":"FunctionDefinition","src":"4051:123:14","nodes":[],"body":{"id":17787,"nodeType":"Block","src":"4097:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313829","id":17782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4147:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116","typeString":"literal_string \"log(bytes18)\""},"value":"log(bytes18)"},{"id":17783,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17776,"src":"4163:2:14","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116","typeString":"literal_string \"log(bytes18)\""},{"typeIdentifier":"t_bytes18","typeString":"bytes18"}],"expression":{"id":17780,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4123:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4127:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4123:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4123:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17779,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"4107:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4107:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17786,"nodeType":"ExpressionStatement","src":"4107:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes18","nameLocation":"4060:10:14","parameters":{"id":17777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17776,"mutability":"mutable","name":"p0","nameLocation":"4079:2:14","nodeType":"VariableDeclaration","scope":17788,"src":"4071:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"},"typeName":{"id":17775,"name":"bytes18","nodeType":"ElementaryTypeName","src":"4071:7:14","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"}},"visibility":"internal"}],"src":"4070:12:14"},"returnParameters":{"id":17778,"nodeType":"ParameterList","parameters":[],"src":"4097:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17802,"nodeType":"FunctionDefinition","src":"4180:123:14","nodes":[],"body":{"id":17801,"nodeType":"Block","src":"4226:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313929","id":17796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4276:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada","typeString":"literal_string \"log(bytes19)\""},"value":"log(bytes19)"},{"id":17797,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17790,"src":"4292:2:14","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada","typeString":"literal_string \"log(bytes19)\""},{"typeIdentifier":"t_bytes19","typeString":"bytes19"}],"expression":{"id":17794,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4252:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4256:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4252:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4252:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17793,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"4236:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4236:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17800,"nodeType":"ExpressionStatement","src":"4236:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes19","nameLocation":"4189:10:14","parameters":{"id":17791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17790,"mutability":"mutable","name":"p0","nameLocation":"4208:2:14","nodeType":"VariableDeclaration","scope":17802,"src":"4200:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"},"typeName":{"id":17789,"name":"bytes19","nodeType":"ElementaryTypeName","src":"4200:7:14","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"}},"visibility":"internal"}],"src":"4199:12:14"},"returnParameters":{"id":17792,"nodeType":"ParameterList","parameters":[],"src":"4226:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17816,"nodeType":"FunctionDefinition","src":"4309:123:14","nodes":[],"body":{"id":17815,"nodeType":"Block","src":"4355:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323029","id":17810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4405:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231","typeString":"literal_string \"log(bytes20)\""},"value":"log(bytes20)"},{"id":17811,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17804,"src":"4421:2:14","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231","typeString":"literal_string \"log(bytes20)\""},{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"expression":{"id":17808,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4381:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4385:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4381:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4381:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17807,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"4365:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4365:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17814,"nodeType":"ExpressionStatement","src":"4365:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes20","nameLocation":"4318:10:14","parameters":{"id":17805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17804,"mutability":"mutable","name":"p0","nameLocation":"4337:2:14","nodeType":"VariableDeclaration","scope":17816,"src":"4329:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":17803,"name":"bytes20","nodeType":"ElementaryTypeName","src":"4329:7:14","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"4328:12:14"},"returnParameters":{"id":17806,"nodeType":"ParameterList","parameters":[],"src":"4355:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17830,"nodeType":"FunctionDefinition","src":"4438:123:14","nodes":[],"body":{"id":17829,"nodeType":"Block","src":"4484:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323129","id":17824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4534:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7","typeString":"literal_string \"log(bytes21)\""},"value":"log(bytes21)"},{"id":17825,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17818,"src":"4550:2:14","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7","typeString":"literal_string \"log(bytes21)\""},{"typeIdentifier":"t_bytes21","typeString":"bytes21"}],"expression":{"id":17822,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4510:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4514:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4510:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4510:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17821,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"4494:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4494:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17828,"nodeType":"ExpressionStatement","src":"4494:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes21","nameLocation":"4447:10:14","parameters":{"id":17819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17818,"mutability":"mutable","name":"p0","nameLocation":"4466:2:14","nodeType":"VariableDeclaration","scope":17830,"src":"4458:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"},"typeName":{"id":17817,"name":"bytes21","nodeType":"ElementaryTypeName","src":"4458:7:14","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"}},"visibility":"internal"}],"src":"4457:12:14"},"returnParameters":{"id":17820,"nodeType":"ParameterList","parameters":[],"src":"4484:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17844,"nodeType":"FunctionDefinition","src":"4567:123:14","nodes":[],"body":{"id":17843,"nodeType":"Block","src":"4613:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323229","id":17838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4663:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575","typeString":"literal_string \"log(bytes22)\""},"value":"log(bytes22)"},{"id":17839,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17832,"src":"4679:2:14","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575","typeString":"literal_string \"log(bytes22)\""},{"typeIdentifier":"t_bytes22","typeString":"bytes22"}],"expression":{"id":17836,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4639:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4643:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4639:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4639:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17835,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"4623:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4623:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17842,"nodeType":"ExpressionStatement","src":"4623:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes22","nameLocation":"4576:10:14","parameters":{"id":17833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17832,"mutability":"mutable","name":"p0","nameLocation":"4595:2:14","nodeType":"VariableDeclaration","scope":17844,"src":"4587:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"},"typeName":{"id":17831,"name":"bytes22","nodeType":"ElementaryTypeName","src":"4587:7:14","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"}},"visibility":"internal"}],"src":"4586:12:14"},"returnParameters":{"id":17834,"nodeType":"ParameterList","parameters":[],"src":"4613:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17858,"nodeType":"FunctionDefinition","src":"4696:123:14","nodes":[],"body":{"id":17857,"nodeType":"Block","src":"4742:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323329","id":17852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4792:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061","typeString":"literal_string \"log(bytes23)\""},"value":"log(bytes23)"},{"id":17853,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17846,"src":"4808:2:14","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061","typeString":"literal_string \"log(bytes23)\""},{"typeIdentifier":"t_bytes23","typeString":"bytes23"}],"expression":{"id":17850,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4768:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4772:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4768:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4768:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17849,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"4752:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4752:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17856,"nodeType":"ExpressionStatement","src":"4752:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes23","nameLocation":"4705:10:14","parameters":{"id":17847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17846,"mutability":"mutable","name":"p0","nameLocation":"4724:2:14","nodeType":"VariableDeclaration","scope":17858,"src":"4716:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"},"typeName":{"id":17845,"name":"bytes23","nodeType":"ElementaryTypeName","src":"4716:7:14","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"}},"visibility":"internal"}],"src":"4715:12:14"},"returnParameters":{"id":17848,"nodeType":"ParameterList","parameters":[],"src":"4742:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17872,"nodeType":"FunctionDefinition","src":"4825:123:14","nodes":[],"body":{"id":17871,"nodeType":"Block","src":"4871:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323429","id":17866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4921:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4","typeString":"literal_string \"log(bytes24)\""},"value":"log(bytes24)"},{"id":17867,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17860,"src":"4937:2:14","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4","typeString":"literal_string \"log(bytes24)\""},{"typeIdentifier":"t_bytes24","typeString":"bytes24"}],"expression":{"id":17864,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4897:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17865,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4901:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4897:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4897:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17863,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"4881:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4881:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17870,"nodeType":"ExpressionStatement","src":"4881:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes24","nameLocation":"4834:10:14","parameters":{"id":17861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17860,"mutability":"mutable","name":"p0","nameLocation":"4853:2:14","nodeType":"VariableDeclaration","scope":17872,"src":"4845:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"},"typeName":{"id":17859,"name":"bytes24","nodeType":"ElementaryTypeName","src":"4845:7:14","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"}},"visibility":"internal"}],"src":"4844:12:14"},"returnParameters":{"id":17862,"nodeType":"ParameterList","parameters":[],"src":"4871:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17886,"nodeType":"FunctionDefinition","src":"4954:123:14","nodes":[],"body":{"id":17885,"nodeType":"Block","src":"5000:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323529","id":17880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5050:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25","typeString":"literal_string \"log(bytes25)\""},"value":"log(bytes25)"},{"id":17881,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17874,"src":"5066:2:14","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25","typeString":"literal_string \"log(bytes25)\""},{"typeIdentifier":"t_bytes25","typeString":"bytes25"}],"expression":{"id":17878,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5026:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5030:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5026:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5026:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17877,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"5010:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5010:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17884,"nodeType":"ExpressionStatement","src":"5010:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes25","nameLocation":"4963:10:14","parameters":{"id":17875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17874,"mutability":"mutable","name":"p0","nameLocation":"4982:2:14","nodeType":"VariableDeclaration","scope":17886,"src":"4974:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"},"typeName":{"id":17873,"name":"bytes25","nodeType":"ElementaryTypeName","src":"4974:7:14","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"}},"visibility":"internal"}],"src":"4973:12:14"},"returnParameters":{"id":17876,"nodeType":"ParameterList","parameters":[],"src":"5000:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17900,"nodeType":"FunctionDefinition","src":"5083:123:14","nodes":[],"body":{"id":17899,"nodeType":"Block","src":"5129:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323629","id":17894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5179:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b","typeString":"literal_string \"log(bytes26)\""},"value":"log(bytes26)"},{"id":17895,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17888,"src":"5195:2:14","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b","typeString":"literal_string \"log(bytes26)\""},{"typeIdentifier":"t_bytes26","typeString":"bytes26"}],"expression":{"id":17892,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5155:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5159:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5155:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5155:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17891,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"5139:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5139:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17898,"nodeType":"ExpressionStatement","src":"5139:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes26","nameLocation":"5092:10:14","parameters":{"id":17889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17888,"mutability":"mutable","name":"p0","nameLocation":"5111:2:14","nodeType":"VariableDeclaration","scope":17900,"src":"5103:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"},"typeName":{"id":17887,"name":"bytes26","nodeType":"ElementaryTypeName","src":"5103:7:14","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"}},"visibility":"internal"}],"src":"5102:12:14"},"returnParameters":{"id":17890,"nodeType":"ParameterList","parameters":[],"src":"5129:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17914,"nodeType":"FunctionDefinition","src":"5212:123:14","nodes":[],"body":{"id":17913,"nodeType":"Block","src":"5258:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323729","id":17908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5308:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6","typeString":"literal_string \"log(bytes27)\""},"value":"log(bytes27)"},{"id":17909,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17902,"src":"5324:2:14","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6","typeString":"literal_string \"log(bytes27)\""},{"typeIdentifier":"t_bytes27","typeString":"bytes27"}],"expression":{"id":17906,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5284:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5288:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5284:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5284:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17905,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"5268:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5268:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17912,"nodeType":"ExpressionStatement","src":"5268:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes27","nameLocation":"5221:10:14","parameters":{"id":17903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17902,"mutability":"mutable","name":"p0","nameLocation":"5240:2:14","nodeType":"VariableDeclaration","scope":17914,"src":"5232:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"},"typeName":{"id":17901,"name":"bytes27","nodeType":"ElementaryTypeName","src":"5232:7:14","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"}},"visibility":"internal"}],"src":"5231:12:14"},"returnParameters":{"id":17904,"nodeType":"ParameterList","parameters":[],"src":"5258:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17928,"nodeType":"FunctionDefinition","src":"5341:123:14","nodes":[],"body":{"id":17927,"nodeType":"Block","src":"5387:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323829","id":17922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5437:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042","typeString":"literal_string \"log(bytes28)\""},"value":"log(bytes28)"},{"id":17923,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17916,"src":"5453:2:14","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042","typeString":"literal_string \"log(bytes28)\""},{"typeIdentifier":"t_bytes28","typeString":"bytes28"}],"expression":{"id":17920,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5413:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5417:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5413:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5413:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17919,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"5397:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5397:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17926,"nodeType":"ExpressionStatement","src":"5397:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes28","nameLocation":"5350:10:14","parameters":{"id":17917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17916,"mutability":"mutable","name":"p0","nameLocation":"5369:2:14","nodeType":"VariableDeclaration","scope":17928,"src":"5361:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"},"typeName":{"id":17915,"name":"bytes28","nodeType":"ElementaryTypeName","src":"5361:7:14","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"}},"visibility":"internal"}],"src":"5360:12:14"},"returnParameters":{"id":17918,"nodeType":"ParameterList","parameters":[],"src":"5387:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17942,"nodeType":"FunctionDefinition","src":"5470:123:14","nodes":[],"body":{"id":17941,"nodeType":"Block","src":"5516:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323929","id":17936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5566:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667","typeString":"literal_string \"log(bytes29)\""},"value":"log(bytes29)"},{"id":17937,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17930,"src":"5582:2:14","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667","typeString":"literal_string \"log(bytes29)\""},{"typeIdentifier":"t_bytes29","typeString":"bytes29"}],"expression":{"id":17934,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5542:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5546:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5542:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5542:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17933,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"5526:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5526:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17940,"nodeType":"ExpressionStatement","src":"5526:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes29","nameLocation":"5479:10:14","parameters":{"id":17931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17930,"mutability":"mutable","name":"p0","nameLocation":"5498:2:14","nodeType":"VariableDeclaration","scope":17942,"src":"5490:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"},"typeName":{"id":17929,"name":"bytes29","nodeType":"ElementaryTypeName","src":"5490:7:14","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"}},"visibility":"internal"}],"src":"5489:12:14"},"returnParameters":{"id":17932,"nodeType":"ParameterList","parameters":[],"src":"5516:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17956,"nodeType":"FunctionDefinition","src":"5599:123:14","nodes":[],"body":{"id":17955,"nodeType":"Block","src":"5645:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333029","id":17950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5695:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad","typeString":"literal_string \"log(bytes30)\""},"value":"log(bytes30)"},{"id":17951,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17944,"src":"5711:2:14","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad","typeString":"literal_string \"log(bytes30)\""},{"typeIdentifier":"t_bytes30","typeString":"bytes30"}],"expression":{"id":17948,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5671:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5675:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5671:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5671:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17947,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"5655:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5655:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17954,"nodeType":"ExpressionStatement","src":"5655:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes30","nameLocation":"5608:10:14","parameters":{"id":17945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17944,"mutability":"mutable","name":"p0","nameLocation":"5627:2:14","nodeType":"VariableDeclaration","scope":17956,"src":"5619:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"},"typeName":{"id":17943,"name":"bytes30","nodeType":"ElementaryTypeName","src":"5619:7:14","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}},"visibility":"internal"}],"src":"5618:12:14"},"returnParameters":{"id":17946,"nodeType":"ParameterList","parameters":[],"src":"5645:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17970,"nodeType":"FunctionDefinition","src":"5728:123:14","nodes":[],"body":{"id":17969,"nodeType":"Block","src":"5774:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333129","id":17964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5824:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce","typeString":"literal_string \"log(bytes31)\""},"value":"log(bytes31)"},{"id":17965,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17958,"src":"5840:2:14","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce","typeString":"literal_string \"log(bytes31)\""},{"typeIdentifier":"t_bytes31","typeString":"bytes31"}],"expression":{"id":17962,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5800:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5804:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5800:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5800:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17961,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"5784:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5784:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17968,"nodeType":"ExpressionStatement","src":"5784:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes31","nameLocation":"5737:10:14","parameters":{"id":17959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17958,"mutability":"mutable","name":"p0","nameLocation":"5756:2:14","nodeType":"VariableDeclaration","scope":17970,"src":"5748:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"typeName":{"id":17957,"name":"bytes31","nodeType":"ElementaryTypeName","src":"5748:7:14","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"visibility":"internal"}],"src":"5747:12:14"},"returnParameters":{"id":17960,"nodeType":"ParameterList","parameters":[],"src":"5774:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17984,"nodeType":"FunctionDefinition","src":"5857:123:14","nodes":[],"body":{"id":17983,"nodeType":"Block","src":"5903:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333229","id":17978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5953:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da","typeString":"literal_string \"log(bytes32)\""},"value":"log(bytes32)"},{"id":17979,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17972,"src":"5969:2:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da","typeString":"literal_string \"log(bytes32)\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":17976,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5929:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5933:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5929:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5929:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17975,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"5913:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5913:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17982,"nodeType":"ExpressionStatement","src":"5913:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes32","nameLocation":"5866:10:14","parameters":{"id":17973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17972,"mutability":"mutable","name":"p0","nameLocation":"5885:2:14","nodeType":"VariableDeclaration","scope":17984,"src":"5877:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17971,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5877:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5876:12:14"},"returnParameters":{"id":17974,"nodeType":"ParameterList","parameters":[],"src":"5903:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17998,"nodeType":"FunctionDefinition","src":"5986:116:14","nodes":[],"body":{"id":17997,"nodeType":"Block","src":"6025:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e7432353629","id":17992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6075:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},"value":"log(uint256)"},{"id":17993,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17986,"src":"6091:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17990,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6051:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6055:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6051:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6051:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17989,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"6035:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6035:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17996,"nodeType":"ExpressionStatement","src":"6035:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"5995:3:14","parameters":{"id":17987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17986,"mutability":"mutable","name":"p0","nameLocation":"6007:2:14","nodeType":"VariableDeclaration","scope":17998,"src":"5999:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17985,"name":"uint256","nodeType":"ElementaryTypeName","src":"5999:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5998:12:14"},"returnParameters":{"id":17988,"nodeType":"ParameterList","parameters":[],"src":"6025:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18012,"nodeType":"FunctionDefinition","src":"6108:114:14","nodes":[],"body":{"id":18011,"nodeType":"Block","src":"6146:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728696e7432353629","id":18006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6196:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d5b6cb95ba2d00a93cd4ffa61ec07ef4bb1694f20c02a3cccb170a38df81ef8","typeString":"literal_string \"log(int256)\""},"value":"log(int256)"},{"id":18007,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18000,"src":"6211:2:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d5b6cb95ba2d00a93cd4ffa61ec07ef4bb1694f20c02a3cccb170a38df81ef8","typeString":"literal_string \"log(int256)\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":18004,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6172:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18005,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6176:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6172:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6172:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18003,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"6156:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6156:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18010,"nodeType":"ExpressionStatement","src":"6156:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6117:3:14","parameters":{"id":18001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18000,"mutability":"mutable","name":"p0","nameLocation":"6128:2:14","nodeType":"VariableDeclaration","scope":18012,"src":"6121:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17999,"name":"int256","nodeType":"ElementaryTypeName","src":"6121:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"6120:11:14"},"returnParameters":{"id":18002,"nodeType":"ParameterList","parameters":[],"src":"6146:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18026,"nodeType":"FunctionDefinition","src":"6228:121:14","nodes":[],"body":{"id":18025,"nodeType":"Block","src":"6273:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":18020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6323:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":18021,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18014,"src":"6338:2:14","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":18018,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6299:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6303:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6299:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6299:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18017,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"6283:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6283:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18024,"nodeType":"ExpressionStatement","src":"6283:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6237:3:14","parameters":{"id":18015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18014,"mutability":"mutable","name":"p0","nameLocation":"6255:2:14","nodeType":"VariableDeclaration","scope":18026,"src":"6241:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18013,"name":"string","nodeType":"ElementaryTypeName","src":"6241:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6240:18:14"},"returnParameters":{"id":18016,"nodeType":"ParameterList","parameters":[],"src":"6273:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18040,"nodeType":"FunctionDefinition","src":"6355:110:14","nodes":[],"body":{"id":18039,"nodeType":"Block","src":"6391:74:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c29","id":18034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6441:11:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},"value":"log(bool)"},{"id":18035,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18028,"src":"6454:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18032,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6417:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6421:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6417:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6417:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18031,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"6401:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6401:57:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18038,"nodeType":"ExpressionStatement","src":"6401:57:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6364:3:14","parameters":{"id":18029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18028,"mutability":"mutable","name":"p0","nameLocation":"6373:2:14","nodeType":"VariableDeclaration","scope":18040,"src":"6368:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18027,"name":"bool","nodeType":"ElementaryTypeName","src":"6368:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6367:9:14"},"returnParameters":{"id":18030,"nodeType":"ParameterList","parameters":[],"src":"6391:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18054,"nodeType":"FunctionDefinition","src":"6471:116:14","nodes":[],"body":{"id":18053,"nodeType":"Block","src":"6510:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286164647265737329","id":18048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6560:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},"value":"log(address)"},{"id":18049,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18042,"src":"6576:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18046,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6536:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6540:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6536:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6536:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18045,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"6520:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6520:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18052,"nodeType":"ExpressionStatement","src":"6520:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6480:3:14","parameters":{"id":18043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18042,"mutability":"mutable","name":"p0","nameLocation":"6492:2:14","nodeType":"VariableDeclaration","scope":18054,"src":"6484:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18041,"name":"address","nodeType":"ElementaryTypeName","src":"6484:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6483:12:14"},"returnParameters":{"id":18044,"nodeType":"ParameterList","parameters":[],"src":"6510:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18071,"nodeType":"FunctionDefinition","src":"6593:140:14","nodes":[],"body":{"id":18070,"nodeType":"Block","src":"6644:89:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e7432353629","id":18064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6694:22:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f666715aa6b8e8ce32bd39173f51eea0643fdd246a826c4756c2f168022b6eb5","typeString":"literal_string \"log(uint256,uint256)\""},"value":"log(uint256,uint256)"},{"id":18065,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18056,"src":"6718:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18066,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18058,"src":"6722:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f666715aa6b8e8ce32bd39173f51eea0643fdd246a826c4756c2f168022b6eb5","typeString":"literal_string \"log(uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18062,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6670:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6674:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6670:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6670:55:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18061,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"6654:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6654:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18069,"nodeType":"ExpressionStatement","src":"6654:72:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6602:3:14","parameters":{"id":18059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18056,"mutability":"mutable","name":"p0","nameLocation":"6614:2:14","nodeType":"VariableDeclaration","scope":18071,"src":"6606:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18055,"name":"uint256","nodeType":"ElementaryTypeName","src":"6606:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18058,"mutability":"mutable","name":"p1","nameLocation":"6626:2:14","nodeType":"VariableDeclaration","scope":18071,"src":"6618:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18057,"name":"uint256","nodeType":"ElementaryTypeName","src":"6618:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6605:24:14"},"returnParameters":{"id":18060,"nodeType":"ParameterList","parameters":[],"src":"6644:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18088,"nodeType":"FunctionDefinition","src":"6739:145:14","nodes":[],"body":{"id":18087,"nodeType":"Block","src":"6796:88:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e6729","id":18081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6846:21:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_643fd0df4c7dfb004c6169012c8aec390bd7246941d7fe467022f10f2da987c3","typeString":"literal_string \"log(uint256,string)\""},"value":"log(uint256,string)"},{"id":18082,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18073,"src":"6869:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18083,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18075,"src":"6873:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_643fd0df4c7dfb004c6169012c8aec390bd7246941d7fe467022f10f2da987c3","typeString":"literal_string \"log(uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18079,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6822:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6826:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6822:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6822:54:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18078,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"6806:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6806:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18086,"nodeType":"ExpressionStatement","src":"6806:71:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6748:3:14","parameters":{"id":18076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18073,"mutability":"mutable","name":"p0","nameLocation":"6760:2:14","nodeType":"VariableDeclaration","scope":18088,"src":"6752:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18072,"name":"uint256","nodeType":"ElementaryTypeName","src":"6752:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18075,"mutability":"mutable","name":"p1","nameLocation":"6778:2:14","nodeType":"VariableDeclaration","scope":18088,"src":"6764:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18074,"name":"string","nodeType":"ElementaryTypeName","src":"6764:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6751:30:14"},"returnParameters":{"id":18077,"nodeType":"ParameterList","parameters":[],"src":"6796:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18105,"nodeType":"FunctionDefinition","src":"6890:134:14","nodes":[],"body":{"id":18104,"nodeType":"Block","src":"6938:86:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c29","id":18098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6988:19:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c9d7eb3a75db315653a5c0996fcea52a2b2692643ce8ace4d8b12bb9da6c1f2","typeString":"literal_string \"log(uint256,bool)\""},"value":"log(uint256,bool)"},{"id":18099,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18090,"src":"7009:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18100,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18092,"src":"7013:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c9d7eb3a75db315653a5c0996fcea52a2b2692643ce8ace4d8b12bb9da6c1f2","typeString":"literal_string \"log(uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18096,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6964:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6968:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6964:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6964:52:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18095,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"6948:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6948:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18103,"nodeType":"ExpressionStatement","src":"6948:69:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6899:3:14","parameters":{"id":18093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18090,"mutability":"mutable","name":"p0","nameLocation":"6911:2:14","nodeType":"VariableDeclaration","scope":18105,"src":"6903:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18089,"name":"uint256","nodeType":"ElementaryTypeName","src":"6903:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18092,"mutability":"mutable","name":"p1","nameLocation":"6920:2:14","nodeType":"VariableDeclaration","scope":18105,"src":"6915:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18091,"name":"bool","nodeType":"ElementaryTypeName","src":"6915:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6902:21:14"},"returnParameters":{"id":18094,"nodeType":"ParameterList","parameters":[],"src":"6938:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18122,"nodeType":"FunctionDefinition","src":"7030:140:14","nodes":[],"body":{"id":18121,"nodeType":"Block","src":"7081:89:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c6164647265737329","id":18115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7131:22:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_69276c86d20522c49707664308d424b84905ef92219f3146bcaacedc72eaed27","typeString":"literal_string \"log(uint256,address)\""},"value":"log(uint256,address)"},{"id":18116,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18107,"src":"7155:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18117,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18109,"src":"7159:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_69276c86d20522c49707664308d424b84905ef92219f3146bcaacedc72eaed27","typeString":"literal_string \"log(uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18113,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7107:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7111:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7107:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7107:55:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18112,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"7091:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7091:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18120,"nodeType":"ExpressionStatement","src":"7091:72:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7039:3:14","parameters":{"id":18110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18107,"mutability":"mutable","name":"p0","nameLocation":"7051:2:14","nodeType":"VariableDeclaration","scope":18122,"src":"7043:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18106,"name":"uint256","nodeType":"ElementaryTypeName","src":"7043:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18109,"mutability":"mutable","name":"p1","nameLocation":"7063:2:14","nodeType":"VariableDeclaration","scope":18122,"src":"7055:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18108,"name":"address","nodeType":"ElementaryTypeName","src":"7055:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7042:24:14"},"returnParameters":{"id":18111,"nodeType":"ParameterList","parameters":[],"src":"7081:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18139,"nodeType":"FunctionDefinition","src":"7176:145:14","nodes":[],"body":{"id":18138,"nodeType":"Block","src":"7233:88:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e7432353629","id":18132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7283:21:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e","typeString":"literal_string \"log(string,uint256)\""},"value":"log(string,uint256)"},{"id":18133,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18124,"src":"7306:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18134,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18126,"src":"7310:2:14","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":18130,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7259:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7263:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7259:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7259:54:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18129,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"7243:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7243:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18137,"nodeType":"ExpressionStatement","src":"7243:71:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7185:3:14","parameters":{"id":18127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18124,"mutability":"mutable","name":"p0","nameLocation":"7203:2:14","nodeType":"VariableDeclaration","scope":18139,"src":"7189:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18123,"name":"string","nodeType":"ElementaryTypeName","src":"7189:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18126,"mutability":"mutable","name":"p1","nameLocation":"7215:2:14","nodeType":"VariableDeclaration","scope":18139,"src":"7207:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18125,"name":"uint256","nodeType":"ElementaryTypeName","src":"7207:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7188:30:14"},"returnParameters":{"id":18128,"nodeType":"ParameterList","parameters":[],"src":"7233:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18156,"nodeType":"FunctionDefinition","src":"7327:143:14","nodes":[],"body":{"id":18155,"nodeType":"Block","src":"7383:87:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c696e7432353629","id":18149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7433:20:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ca6268e2d626deb26c45bf74aa3316f24594d4f4b66b5d8fd8e966d88ac4e25","typeString":"literal_string \"log(string,int256)\""},"value":"log(string,int256)"},{"id":18150,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18141,"src":"7455:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18151,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18143,"src":"7459:2:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3ca6268e2d626deb26c45bf74aa3316f24594d4f4b66b5d8fd8e966d88ac4e25","typeString":"literal_string \"log(string,int256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":18147,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7409:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7413:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7409:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7409:53:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18146,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"7393:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7393:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18154,"nodeType":"ExpressionStatement","src":"7393:70:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7336:3:14","parameters":{"id":18144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18141,"mutability":"mutable","name":"p0","nameLocation":"7354:2:14","nodeType":"VariableDeclaration","scope":18156,"src":"7340:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18140,"name":"string","nodeType":"ElementaryTypeName","src":"7340:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18143,"mutability":"mutable","name":"p1","nameLocation":"7365:2:14","nodeType":"VariableDeclaration","scope":18156,"src":"7358:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":18142,"name":"int256","nodeType":"ElementaryTypeName","src":"7358:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"7339:29:14"},"returnParameters":{"id":18145,"nodeType":"ParameterList","parameters":[],"src":"7383:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18173,"nodeType":"FunctionDefinition","src":"7476:150:14","nodes":[],"body":{"id":18172,"nodeType":"Block","src":"7539:87:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e6729","id":18166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7589:20:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},"value":"log(string,string)"},{"id":18167,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18158,"src":"7611:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18168,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18160,"src":"7615:2:14","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":18164,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7565:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18165,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7569:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7565:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7565:53:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18163,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"7549:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7549:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18171,"nodeType":"ExpressionStatement","src":"7549:70:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7485:3:14","parameters":{"id":18161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18158,"mutability":"mutable","name":"p0","nameLocation":"7503:2:14","nodeType":"VariableDeclaration","scope":18173,"src":"7489:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18157,"name":"string","nodeType":"ElementaryTypeName","src":"7489:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18160,"mutability":"mutable","name":"p1","nameLocation":"7521:2:14","nodeType":"VariableDeclaration","scope":18173,"src":"7507:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18159,"name":"string","nodeType":"ElementaryTypeName","src":"7507:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7488:36:14"},"returnParameters":{"id":18162,"nodeType":"ParameterList","parameters":[],"src":"7539:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18190,"nodeType":"FunctionDefinition","src":"7632:139:14","nodes":[],"body":{"id":18189,"nodeType":"Block","src":"7686:85:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c29","id":18183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7736:18:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870","typeString":"literal_string \"log(string,bool)\""},"value":"log(string,bool)"},{"id":18184,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18175,"src":"7756:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18185,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18177,"src":"7760:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870","typeString":"literal_string \"log(string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18181,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7712:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7716:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7712:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7712:51:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18180,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"7696:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7696:68:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18188,"nodeType":"ExpressionStatement","src":"7696:68:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7641:3:14","parameters":{"id":18178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18175,"mutability":"mutable","name":"p0","nameLocation":"7659:2:14","nodeType":"VariableDeclaration","scope":18190,"src":"7645:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18174,"name":"string","nodeType":"ElementaryTypeName","src":"7645:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18177,"mutability":"mutable","name":"p1","nameLocation":"7668:2:14","nodeType":"VariableDeclaration","scope":18190,"src":"7663:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18176,"name":"bool","nodeType":"ElementaryTypeName","src":"7663:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7644:27:14"},"returnParameters":{"id":18179,"nodeType":"ParameterList","parameters":[],"src":"7686:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18207,"nodeType":"FunctionDefinition","src":"7777:145:14","nodes":[],"body":{"id":18206,"nodeType":"Block","src":"7834:88:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c6164647265737329","id":18200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7884:21:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72","typeString":"literal_string \"log(string,address)\""},"value":"log(string,address)"},{"id":18201,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18192,"src":"7907:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18202,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18194,"src":"7911:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72","typeString":"literal_string \"log(string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18198,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7860:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7864:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7860:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7860:54:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18197,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"7844:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7844:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18205,"nodeType":"ExpressionStatement","src":"7844:71:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7786:3:14","parameters":{"id":18195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18192,"mutability":"mutable","name":"p0","nameLocation":"7804:2:14","nodeType":"VariableDeclaration","scope":18207,"src":"7790:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18191,"name":"string","nodeType":"ElementaryTypeName","src":"7790:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18194,"mutability":"mutable","name":"p1","nameLocation":"7816:2:14","nodeType":"VariableDeclaration","scope":18207,"src":"7808:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18193,"name":"address","nodeType":"ElementaryTypeName","src":"7808:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7789:30:14"},"returnParameters":{"id":18196,"nodeType":"ParameterList","parameters":[],"src":"7834:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18224,"nodeType":"FunctionDefinition","src":"7928:134:14","nodes":[],"body":{"id":18223,"nodeType":"Block","src":"7976:86:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e7432353629","id":18217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8026:19:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_399174d3d0c43cb9677bce4fa1b5541fc60a002cbf23e154f1abcbb5f02cf2d7","typeString":"literal_string \"log(bool,uint256)\""},"value":"log(bool,uint256)"},{"id":18218,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18209,"src":"8047:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18219,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18211,"src":"8051:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_399174d3d0c43cb9677bce4fa1b5541fc60a002cbf23e154f1abcbb5f02cf2d7","typeString":"literal_string \"log(bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18215,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8002:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8006:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8002:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8002:52:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18214,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"7986:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7986:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18222,"nodeType":"ExpressionStatement","src":"7986:69:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7937:3:14","parameters":{"id":18212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18209,"mutability":"mutable","name":"p0","nameLocation":"7946:2:14","nodeType":"VariableDeclaration","scope":18224,"src":"7941:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18208,"name":"bool","nodeType":"ElementaryTypeName","src":"7941:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18211,"mutability":"mutable","name":"p1","nameLocation":"7958:2:14","nodeType":"VariableDeclaration","scope":18224,"src":"7950:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18210,"name":"uint256","nodeType":"ElementaryTypeName","src":"7950:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7940:21:14"},"returnParameters":{"id":18213,"nodeType":"ParameterList","parameters":[],"src":"7976:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18241,"nodeType":"FunctionDefinition","src":"8068:139:14","nodes":[],"body":{"id":18240,"nodeType":"Block","src":"8122:85:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e6729","id":18234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8172:18:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84","typeString":"literal_string \"log(bool,string)\""},"value":"log(bool,string)"},{"id":18235,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18226,"src":"8192:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18236,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18228,"src":"8196:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84","typeString":"literal_string \"log(bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18232,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8148:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18233,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8152:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8148:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8148:51:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18231,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"8132:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8132:68:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18239,"nodeType":"ExpressionStatement","src":"8132:68:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8077:3:14","parameters":{"id":18229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18226,"mutability":"mutable","name":"p0","nameLocation":"8086:2:14","nodeType":"VariableDeclaration","scope":18241,"src":"8081:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18225,"name":"bool","nodeType":"ElementaryTypeName","src":"8081:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18228,"mutability":"mutable","name":"p1","nameLocation":"8104:2:14","nodeType":"VariableDeclaration","scope":18241,"src":"8090:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18227,"name":"string","nodeType":"ElementaryTypeName","src":"8090:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8080:27:14"},"returnParameters":{"id":18230,"nodeType":"ParameterList","parameters":[],"src":"8122:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18258,"nodeType":"FunctionDefinition","src":"8213:128:14","nodes":[],"body":{"id":18257,"nodeType":"Block","src":"8258:83:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c29","id":18251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8308:16:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15","typeString":"literal_string \"log(bool,bool)\""},"value":"log(bool,bool)"},{"id":18252,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18243,"src":"8326:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18253,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18245,"src":"8330:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15","typeString":"literal_string \"log(bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18249,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8284:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8288:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8284:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8284:49:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18248,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"8268:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8268:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18256,"nodeType":"ExpressionStatement","src":"8268:66:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8222:3:14","parameters":{"id":18246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18243,"mutability":"mutable","name":"p0","nameLocation":"8231:2:14","nodeType":"VariableDeclaration","scope":18258,"src":"8226:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18242,"name":"bool","nodeType":"ElementaryTypeName","src":"8226:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18245,"mutability":"mutable","name":"p1","nameLocation":"8240:2:14","nodeType":"VariableDeclaration","scope":18258,"src":"8235:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18244,"name":"bool","nodeType":"ElementaryTypeName","src":"8235:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8225:18:14"},"returnParameters":{"id":18247,"nodeType":"ParameterList","parameters":[],"src":"8258:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18275,"nodeType":"FunctionDefinition","src":"8347:134:14","nodes":[],"body":{"id":18274,"nodeType":"Block","src":"8395:86:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c6164647265737329","id":18268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8445:19:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55","typeString":"literal_string \"log(bool,address)\""},"value":"log(bool,address)"},{"id":18269,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18260,"src":"8466:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18270,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18262,"src":"8470:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55","typeString":"literal_string \"log(bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18266,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8421:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8425:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8421:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8421:52:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18265,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"8405:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8405:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18273,"nodeType":"ExpressionStatement","src":"8405:69:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8356:3:14","parameters":{"id":18263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18260,"mutability":"mutable","name":"p0","nameLocation":"8365:2:14","nodeType":"VariableDeclaration","scope":18275,"src":"8360:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18259,"name":"bool","nodeType":"ElementaryTypeName","src":"8360:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18262,"mutability":"mutable","name":"p1","nameLocation":"8377:2:14","nodeType":"VariableDeclaration","scope":18275,"src":"8369:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18261,"name":"address","nodeType":"ElementaryTypeName","src":"8369:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8359:21:14"},"returnParameters":{"id":18264,"nodeType":"ParameterList","parameters":[],"src":"8395:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18292,"nodeType":"FunctionDefinition","src":"8487:140:14","nodes":[],"body":{"id":18291,"nodeType":"Block","src":"8538:89:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e7432353629","id":18285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8588:22:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8309e8a8b132619bdb25dffa9d595ba1ecb7835540fd62622dad33018c4a0d3e","typeString":"literal_string \"log(address,uint256)\""},"value":"log(address,uint256)"},{"id":18286,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18277,"src":"8612:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18287,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18279,"src":"8616:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8309e8a8b132619bdb25dffa9d595ba1ecb7835540fd62622dad33018c4a0d3e","typeString":"literal_string \"log(address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18283,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8564:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8568:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8564:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8564:55:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18282,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"8548:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8548:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18290,"nodeType":"ExpressionStatement","src":"8548:72:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8496:3:14","parameters":{"id":18280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18277,"mutability":"mutable","name":"p0","nameLocation":"8508:2:14","nodeType":"VariableDeclaration","scope":18292,"src":"8500:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18276,"name":"address","nodeType":"ElementaryTypeName","src":"8500:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18279,"mutability":"mutable","name":"p1","nameLocation":"8520:2:14","nodeType":"VariableDeclaration","scope":18292,"src":"8512:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18278,"name":"uint256","nodeType":"ElementaryTypeName","src":"8512:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8499:24:14"},"returnParameters":{"id":18281,"nodeType":"ParameterList","parameters":[],"src":"8538:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18309,"nodeType":"FunctionDefinition","src":"8633:145:14","nodes":[],"body":{"id":18308,"nodeType":"Block","src":"8690:88:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e6729","id":18302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8740:21:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab","typeString":"literal_string \"log(address,string)\""},"value":"log(address,string)"},{"id":18303,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18294,"src":"8763:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18304,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18296,"src":"8767:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab","typeString":"literal_string \"log(address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18300,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8716:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8720:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8716:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8716:54:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18299,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"8700:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8700:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18307,"nodeType":"ExpressionStatement","src":"8700:71:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8642:3:14","parameters":{"id":18297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18294,"mutability":"mutable","name":"p0","nameLocation":"8654:2:14","nodeType":"VariableDeclaration","scope":18309,"src":"8646:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18293,"name":"address","nodeType":"ElementaryTypeName","src":"8646:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18296,"mutability":"mutable","name":"p1","nameLocation":"8672:2:14","nodeType":"VariableDeclaration","scope":18309,"src":"8658:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18295,"name":"string","nodeType":"ElementaryTypeName","src":"8658:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8645:30:14"},"returnParameters":{"id":18298,"nodeType":"ParameterList","parameters":[],"src":"8690:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18326,"nodeType":"FunctionDefinition","src":"8784:134:14","nodes":[],"body":{"id":18325,"nodeType":"Block","src":"8832:86:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c29","id":18319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8882:19:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b","typeString":"literal_string \"log(address,bool)\""},"value":"log(address,bool)"},{"id":18320,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18311,"src":"8903:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18321,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18313,"src":"8907:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b","typeString":"literal_string \"log(address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18317,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8858:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8862:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8858:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8858:52:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18316,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"8842:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8842:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18324,"nodeType":"ExpressionStatement","src":"8842:69:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8793:3:14","parameters":{"id":18314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18311,"mutability":"mutable","name":"p0","nameLocation":"8805:2:14","nodeType":"VariableDeclaration","scope":18326,"src":"8797:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18310,"name":"address","nodeType":"ElementaryTypeName","src":"8797:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18313,"mutability":"mutable","name":"p1","nameLocation":"8814:2:14","nodeType":"VariableDeclaration","scope":18326,"src":"8809:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18312,"name":"bool","nodeType":"ElementaryTypeName","src":"8809:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8796:21:14"},"returnParameters":{"id":18315,"nodeType":"ParameterList","parameters":[],"src":"8832:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18343,"nodeType":"FunctionDefinition","src":"8924:140:14","nodes":[],"body":{"id":18342,"nodeType":"Block","src":"8975:89:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c6164647265737329","id":18336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9025:22:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161","typeString":"literal_string \"log(address,address)\""},"value":"log(address,address)"},{"id":18337,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18328,"src":"9049:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18338,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18330,"src":"9053:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161","typeString":"literal_string \"log(address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18334,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9001:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9005:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9001:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9001:55:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18333,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"8985:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8985:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18341,"nodeType":"ExpressionStatement","src":"8985:72:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8933:3:14","parameters":{"id":18331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18328,"mutability":"mutable","name":"p0","nameLocation":"8945:2:14","nodeType":"VariableDeclaration","scope":18343,"src":"8937:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18327,"name":"address","nodeType":"ElementaryTypeName","src":"8937:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18330,"mutability":"mutable","name":"p1","nameLocation":"8957:2:14","nodeType":"VariableDeclaration","scope":18343,"src":"8949:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18329,"name":"address","nodeType":"ElementaryTypeName","src":"8949:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8936:24:14"},"returnParameters":{"id":18332,"nodeType":"ParameterList","parameters":[],"src":"8975:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18363,"nodeType":"FunctionDefinition","src":"9070:164:14","nodes":[],"body":{"id":18362,"nodeType":"Block","src":"9133:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e7432353629","id":18355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9183:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_d1ed7a3c020c4f5939654147940a147a8e4e638fa1e8f5664b5efbd1e1f3c4a6","typeString":"literal_string \"log(uint256,uint256,uint256)\""},"value":"log(uint256,uint256,uint256)"},{"id":18356,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18345,"src":"9215:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18357,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18347,"src":"9219:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18358,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18349,"src":"9223:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d1ed7a3c020c4f5939654147940a147a8e4e638fa1e8f5664b5efbd1e1f3c4a6","typeString":"literal_string \"log(uint256,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18353,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9159:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9163:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9159:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9159:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18352,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"9143:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9143:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18361,"nodeType":"ExpressionStatement","src":"9143:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9079:3:14","parameters":{"id":18350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18345,"mutability":"mutable","name":"p0","nameLocation":"9091:2:14","nodeType":"VariableDeclaration","scope":18363,"src":"9083:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18344,"name":"uint256","nodeType":"ElementaryTypeName","src":"9083:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18347,"mutability":"mutable","name":"p1","nameLocation":"9103:2:14","nodeType":"VariableDeclaration","scope":18363,"src":"9095:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18346,"name":"uint256","nodeType":"ElementaryTypeName","src":"9095:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18349,"mutability":"mutable","name":"p2","nameLocation":"9115:2:14","nodeType":"VariableDeclaration","scope":18363,"src":"9107:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18348,"name":"uint256","nodeType":"ElementaryTypeName","src":"9107:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9082:36:14"},"returnParameters":{"id":18351,"nodeType":"ParameterList","parameters":[],"src":"9133:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18383,"nodeType":"FunctionDefinition","src":"9240:169:14","nodes":[],"body":{"id":18382,"nodeType":"Block","src":"9309:100:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e6729","id":18375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9359:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_71d04af2c0d71f035017c73ec9440d8cef06157a84f0febe8ec74eca98138262","typeString":"literal_string \"log(uint256,uint256,string)\""},"value":"log(uint256,uint256,string)"},{"id":18376,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18365,"src":"9390:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18377,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18367,"src":"9394:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18378,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18369,"src":"9398:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_71d04af2c0d71f035017c73ec9440d8cef06157a84f0febe8ec74eca98138262","typeString":"literal_string \"log(uint256,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18373,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9335:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9339:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9335:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9335:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18372,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"9319:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9319:83:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18381,"nodeType":"ExpressionStatement","src":"9319:83:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9249:3:14","parameters":{"id":18370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18365,"mutability":"mutable","name":"p0","nameLocation":"9261:2:14","nodeType":"VariableDeclaration","scope":18383,"src":"9253:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18364,"name":"uint256","nodeType":"ElementaryTypeName","src":"9253:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18367,"mutability":"mutable","name":"p1","nameLocation":"9273:2:14","nodeType":"VariableDeclaration","scope":18383,"src":"9265:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18366,"name":"uint256","nodeType":"ElementaryTypeName","src":"9265:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18369,"mutability":"mutable","name":"p2","nameLocation":"9291:2:14","nodeType":"VariableDeclaration","scope":18383,"src":"9277:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18368,"name":"string","nodeType":"ElementaryTypeName","src":"9277:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9252:42:14"},"returnParameters":{"id":18371,"nodeType":"ParameterList","parameters":[],"src":"9309:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18403,"nodeType":"FunctionDefinition","src":"9415:158:14","nodes":[],"body":{"id":18402,"nodeType":"Block","src":"9475:98:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c29","id":18395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9525:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4766da72b632663e3b9911d02d6f30e0cf213f928bdb9f6fd840851875d9fce0","typeString":"literal_string \"log(uint256,uint256,bool)\""},"value":"log(uint256,uint256,bool)"},{"id":18396,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18385,"src":"9554:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18397,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18387,"src":"9558:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18398,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18389,"src":"9562:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4766da72b632663e3b9911d02d6f30e0cf213f928bdb9f6fd840851875d9fce0","typeString":"literal_string \"log(uint256,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18393,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9501:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9505:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9501:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9501:64:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18392,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"9485:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9485:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18401,"nodeType":"ExpressionStatement","src":"9485:81:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9424:3:14","parameters":{"id":18390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18385,"mutability":"mutable","name":"p0","nameLocation":"9436:2:14","nodeType":"VariableDeclaration","scope":18403,"src":"9428:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18384,"name":"uint256","nodeType":"ElementaryTypeName","src":"9428:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18387,"mutability":"mutable","name":"p1","nameLocation":"9448:2:14","nodeType":"VariableDeclaration","scope":18403,"src":"9440:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18386,"name":"uint256","nodeType":"ElementaryTypeName","src":"9440:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18389,"mutability":"mutable","name":"p2","nameLocation":"9457:2:14","nodeType":"VariableDeclaration","scope":18403,"src":"9452:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18388,"name":"bool","nodeType":"ElementaryTypeName","src":"9452:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9427:33:14"},"returnParameters":{"id":18391,"nodeType":"ParameterList","parameters":[],"src":"9475:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18423,"nodeType":"FunctionDefinition","src":"9579:164:14","nodes":[],"body":{"id":18422,"nodeType":"Block","src":"9642:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c6164647265737329","id":18415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9692:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c96b331e359852d9a7254105926ce8dfcc42dd4fce56a736cfb981b4c2984c1","typeString":"literal_string \"log(uint256,uint256,address)\""},"value":"log(uint256,uint256,address)"},{"id":18416,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18405,"src":"9724:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18417,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18407,"src":"9728:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18418,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18409,"src":"9732:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5c96b331e359852d9a7254105926ce8dfcc42dd4fce56a736cfb981b4c2984c1","typeString":"literal_string \"log(uint256,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18413,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9668:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9672:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9668:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9668:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18412,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"9652:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9652:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18421,"nodeType":"ExpressionStatement","src":"9652:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9588:3:14","parameters":{"id":18410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18405,"mutability":"mutable","name":"p0","nameLocation":"9600:2:14","nodeType":"VariableDeclaration","scope":18423,"src":"9592:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18404,"name":"uint256","nodeType":"ElementaryTypeName","src":"9592:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18407,"mutability":"mutable","name":"p1","nameLocation":"9612:2:14","nodeType":"VariableDeclaration","scope":18423,"src":"9604:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18406,"name":"uint256","nodeType":"ElementaryTypeName","src":"9604:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18409,"mutability":"mutable","name":"p2","nameLocation":"9624:2:14","nodeType":"VariableDeclaration","scope":18423,"src":"9616:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18408,"name":"address","nodeType":"ElementaryTypeName","src":"9616:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9591:36:14"},"returnParameters":{"id":18411,"nodeType":"ParameterList","parameters":[],"src":"9642:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18443,"nodeType":"FunctionDefinition","src":"9749:169:14","nodes":[],"body":{"id":18442,"nodeType":"Block","src":"9818:100:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e7432353629","id":18435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9868:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_37aa7d4c835edd965b1201d9c03f13272bd937d8e244ab84a153693e2f2f30c0","typeString":"literal_string \"log(uint256,string,uint256)\""},"value":"log(uint256,string,uint256)"},{"id":18436,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18425,"src":"9899:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18437,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18427,"src":"9903:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18438,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18429,"src":"9907:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_37aa7d4c835edd965b1201d9c03f13272bd937d8e244ab84a153693e2f2f30c0","typeString":"literal_string \"log(uint256,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18433,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9844:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9848:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9844:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9844:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18432,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"9828:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9828:83:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18441,"nodeType":"ExpressionStatement","src":"9828:83:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9758:3:14","parameters":{"id":18430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18425,"mutability":"mutable","name":"p0","nameLocation":"9770:2:14","nodeType":"VariableDeclaration","scope":18443,"src":"9762:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18424,"name":"uint256","nodeType":"ElementaryTypeName","src":"9762:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18427,"mutability":"mutable","name":"p1","nameLocation":"9788:2:14","nodeType":"VariableDeclaration","scope":18443,"src":"9774:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18426,"name":"string","nodeType":"ElementaryTypeName","src":"9774:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18429,"mutability":"mutable","name":"p2","nameLocation":"9800:2:14","nodeType":"VariableDeclaration","scope":18443,"src":"9792:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18428,"name":"uint256","nodeType":"ElementaryTypeName","src":"9792:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9761:42:14"},"returnParameters":{"id":18431,"nodeType":"ParameterList","parameters":[],"src":"9818:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18463,"nodeType":"FunctionDefinition","src":"9924:174:14","nodes":[],"body":{"id":18462,"nodeType":"Block","src":"9999:99:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e6729","id":18455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10049:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_b115611f13262589f336fb650c9278bd1879123a635e6a638f94e6cbdb1c1b35","typeString":"literal_string \"log(uint256,string,string)\""},"value":"log(uint256,string,string)"},{"id":18456,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18445,"src":"10079:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18457,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18447,"src":"10083:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18458,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18449,"src":"10087:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b115611f13262589f336fb650c9278bd1879123a635e6a638f94e6cbdb1c1b35","typeString":"literal_string \"log(uint256,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18453,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10025:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18454,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10029:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10025:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10025:65:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18452,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"10009:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10009:82:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18461,"nodeType":"ExpressionStatement","src":"10009:82:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9933:3:14","parameters":{"id":18450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18445,"mutability":"mutable","name":"p0","nameLocation":"9945:2:14","nodeType":"VariableDeclaration","scope":18463,"src":"9937:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18444,"name":"uint256","nodeType":"ElementaryTypeName","src":"9937:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18447,"mutability":"mutable","name":"p1","nameLocation":"9963:2:14","nodeType":"VariableDeclaration","scope":18463,"src":"9949:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18446,"name":"string","nodeType":"ElementaryTypeName","src":"9949:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18449,"mutability":"mutable","name":"p2","nameLocation":"9981:2:14","nodeType":"VariableDeclaration","scope":18463,"src":"9967:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18448,"name":"string","nodeType":"ElementaryTypeName","src":"9967:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9936:48:14"},"returnParameters":{"id":18451,"nodeType":"ParameterList","parameters":[],"src":"9999:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18483,"nodeType":"FunctionDefinition","src":"10104:163:14","nodes":[],"body":{"id":18482,"nodeType":"Block","src":"10170:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c29","id":18475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10220:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4ceda75ad13e534e8b5089564c6a40ae80cd33aac3e77ef1f87a233c1d43067a","typeString":"literal_string \"log(uint256,string,bool)\""},"value":"log(uint256,string,bool)"},{"id":18476,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18465,"src":"10248:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18477,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18467,"src":"10252:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18478,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18469,"src":"10256:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4ceda75ad13e534e8b5089564c6a40ae80cd33aac3e77ef1f87a233c1d43067a","typeString":"literal_string \"log(uint256,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18473,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10196:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10200:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10196:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10196:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18472,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"10180:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10180:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18481,"nodeType":"ExpressionStatement","src":"10180:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10113:3:14","parameters":{"id":18470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18465,"mutability":"mutable","name":"p0","nameLocation":"10125:2:14","nodeType":"VariableDeclaration","scope":18483,"src":"10117:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18464,"name":"uint256","nodeType":"ElementaryTypeName","src":"10117:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18467,"mutability":"mutable","name":"p1","nameLocation":"10143:2:14","nodeType":"VariableDeclaration","scope":18483,"src":"10129:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18466,"name":"string","nodeType":"ElementaryTypeName","src":"10129:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18469,"mutability":"mutable","name":"p2","nameLocation":"10152:2:14","nodeType":"VariableDeclaration","scope":18483,"src":"10147:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18468,"name":"bool","nodeType":"ElementaryTypeName","src":"10147:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10116:39:14"},"returnParameters":{"id":18471,"nodeType":"ParameterList","parameters":[],"src":"10170:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18503,"nodeType":"FunctionDefinition","src":"10273:169:14","nodes":[],"body":{"id":18502,"nodeType":"Block","src":"10342:100:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c6164647265737329","id":18495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10392:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7afac959002f7dcdccdf461a7e6db7810eebd7217c0b7c30905b3c7e89b561f2","typeString":"literal_string \"log(uint256,string,address)\""},"value":"log(uint256,string,address)"},{"id":18496,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18485,"src":"10423:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18497,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18487,"src":"10427:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18498,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18489,"src":"10431:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7afac959002f7dcdccdf461a7e6db7810eebd7217c0b7c30905b3c7e89b561f2","typeString":"literal_string \"log(uint256,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18493,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10368:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10372:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10368:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10368:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18492,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"10352:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10352:83:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18501,"nodeType":"ExpressionStatement","src":"10352:83:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10282:3:14","parameters":{"id":18490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18485,"mutability":"mutable","name":"p0","nameLocation":"10294:2:14","nodeType":"VariableDeclaration","scope":18503,"src":"10286:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18484,"name":"uint256","nodeType":"ElementaryTypeName","src":"10286:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18487,"mutability":"mutable","name":"p1","nameLocation":"10312:2:14","nodeType":"VariableDeclaration","scope":18503,"src":"10298:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18486,"name":"string","nodeType":"ElementaryTypeName","src":"10298:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18489,"mutability":"mutable","name":"p2","nameLocation":"10324:2:14","nodeType":"VariableDeclaration","scope":18503,"src":"10316:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18488,"name":"address","nodeType":"ElementaryTypeName","src":"10316:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10285:42:14"},"returnParameters":{"id":18491,"nodeType":"ParameterList","parameters":[],"src":"10342:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18523,"nodeType":"FunctionDefinition","src":"10448:158:14","nodes":[],"body":{"id":18522,"nodeType":"Block","src":"10508:98:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e7432353629","id":18515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10558:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_200980147f19b368809aab41084ebebcf1e19d47edd13f2d540a6327cec213d1","typeString":"literal_string \"log(uint256,bool,uint256)\""},"value":"log(uint256,bool,uint256)"},{"id":18516,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18505,"src":"10587:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18517,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18507,"src":"10591:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18518,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"10595:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_200980147f19b368809aab41084ebebcf1e19d47edd13f2d540a6327cec213d1","typeString":"literal_string \"log(uint256,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18513,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10534:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10538:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10534:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10534:64:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18512,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"10518:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10518:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18521,"nodeType":"ExpressionStatement","src":"10518:81:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10457:3:14","parameters":{"id":18510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18505,"mutability":"mutable","name":"p0","nameLocation":"10469:2:14","nodeType":"VariableDeclaration","scope":18523,"src":"10461:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18504,"name":"uint256","nodeType":"ElementaryTypeName","src":"10461:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18507,"mutability":"mutable","name":"p1","nameLocation":"10478:2:14","nodeType":"VariableDeclaration","scope":18523,"src":"10473:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18506,"name":"bool","nodeType":"ElementaryTypeName","src":"10473:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18509,"mutability":"mutable","name":"p2","nameLocation":"10490:2:14","nodeType":"VariableDeclaration","scope":18523,"src":"10482:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18508,"name":"uint256","nodeType":"ElementaryTypeName","src":"10482:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10460:33:14"},"returnParameters":{"id":18511,"nodeType":"ParameterList","parameters":[],"src":"10508:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18543,"nodeType":"FunctionDefinition","src":"10612:163:14","nodes":[],"body":{"id":18542,"nodeType":"Block","src":"10678:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e6729","id":18535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10728:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_85775021582c57b14e9e0b33e0f693439478099486817fe4214a503f559f37df","typeString":"literal_string \"log(uint256,bool,string)\""},"value":"log(uint256,bool,string)"},{"id":18536,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18525,"src":"10756:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18537,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18527,"src":"10760:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18538,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18529,"src":"10764:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_85775021582c57b14e9e0b33e0f693439478099486817fe4214a503f559f37df","typeString":"literal_string \"log(uint256,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18533,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10704:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18534,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10708:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10704:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10704:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18532,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"10688:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10688:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18541,"nodeType":"ExpressionStatement","src":"10688:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10621:3:14","parameters":{"id":18530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18525,"mutability":"mutable","name":"p0","nameLocation":"10633:2:14","nodeType":"VariableDeclaration","scope":18543,"src":"10625:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18524,"name":"uint256","nodeType":"ElementaryTypeName","src":"10625:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18527,"mutability":"mutable","name":"p1","nameLocation":"10642:2:14","nodeType":"VariableDeclaration","scope":18543,"src":"10637:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18526,"name":"bool","nodeType":"ElementaryTypeName","src":"10637:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18529,"mutability":"mutable","name":"p2","nameLocation":"10660:2:14","nodeType":"VariableDeclaration","scope":18543,"src":"10646:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18528,"name":"string","nodeType":"ElementaryTypeName","src":"10646:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10624:39:14"},"returnParameters":{"id":18531,"nodeType":"ParameterList","parameters":[],"src":"10678:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18563,"nodeType":"FunctionDefinition","src":"10781:152:14","nodes":[],"body":{"id":18562,"nodeType":"Block","src":"10838:95:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c29","id":18555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10888:24:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_207186500d54a80dae0e8fae760b583cb518c2c49967db59c8f7e5596879c0b6","typeString":"literal_string \"log(uint256,bool,bool)\""},"value":"log(uint256,bool,bool)"},{"id":18556,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18545,"src":"10914:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18557,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18547,"src":"10918:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18558,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18549,"src":"10922:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_207186500d54a80dae0e8fae760b583cb518c2c49967db59c8f7e5596879c0b6","typeString":"literal_string \"log(uint256,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18553,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10864:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10868:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10864:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10864:61:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18552,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"10848:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10848:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18561,"nodeType":"ExpressionStatement","src":"10848:78:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10790:3:14","parameters":{"id":18550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18545,"mutability":"mutable","name":"p0","nameLocation":"10802:2:14","nodeType":"VariableDeclaration","scope":18563,"src":"10794:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18544,"name":"uint256","nodeType":"ElementaryTypeName","src":"10794:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18547,"mutability":"mutable","name":"p1","nameLocation":"10811:2:14","nodeType":"VariableDeclaration","scope":18563,"src":"10806:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18546,"name":"bool","nodeType":"ElementaryTypeName","src":"10806:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18549,"mutability":"mutable","name":"p2","nameLocation":"10820:2:14","nodeType":"VariableDeclaration","scope":18563,"src":"10815:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18548,"name":"bool","nodeType":"ElementaryTypeName","src":"10815:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10793:30:14"},"returnParameters":{"id":18551,"nodeType":"ParameterList","parameters":[],"src":"10838:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18583,"nodeType":"FunctionDefinition","src":"10939:158:14","nodes":[],"body":{"id":18582,"nodeType":"Block","src":"10999:98:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c6164647265737329","id":18575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11049:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_35085f7b74fe0b67ab2d779d94b2a1efc14ce8d637e06ffda83ca305116f3c99","typeString":"literal_string \"log(uint256,bool,address)\""},"value":"log(uint256,bool,address)"},{"id":18576,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18565,"src":"11078:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18577,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18567,"src":"11082:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18578,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18569,"src":"11086:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_35085f7b74fe0b67ab2d779d94b2a1efc14ce8d637e06ffda83ca305116f3c99","typeString":"literal_string \"log(uint256,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18573,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11025:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11029:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11025:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11025:64:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18572,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"11009:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11009:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18581,"nodeType":"ExpressionStatement","src":"11009:81:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10948:3:14","parameters":{"id":18570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18565,"mutability":"mutable","name":"p0","nameLocation":"10960:2:14","nodeType":"VariableDeclaration","scope":18583,"src":"10952:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18564,"name":"uint256","nodeType":"ElementaryTypeName","src":"10952:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18567,"mutability":"mutable","name":"p1","nameLocation":"10969:2:14","nodeType":"VariableDeclaration","scope":18583,"src":"10964:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18566,"name":"bool","nodeType":"ElementaryTypeName","src":"10964:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18569,"mutability":"mutable","name":"p2","nameLocation":"10981:2:14","nodeType":"VariableDeclaration","scope":18583,"src":"10973:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18568,"name":"address","nodeType":"ElementaryTypeName","src":"10973:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10951:33:14"},"returnParameters":{"id":18571,"nodeType":"ParameterList","parameters":[],"src":"10999:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18603,"nodeType":"FunctionDefinition","src":"11103:164:14","nodes":[],"body":{"id":18602,"nodeType":"Block","src":"11166:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e7432353629","id":18595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11216:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a9b5ed5e0cc67953f5b0a58c12e9694944af5a126321ab88870dec3bc05a9ae","typeString":"literal_string \"log(uint256,address,uint256)\""},"value":"log(uint256,address,uint256)"},{"id":18596,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18585,"src":"11248:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18597,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18587,"src":"11252:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18598,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18589,"src":"11256:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a9b5ed5e0cc67953f5b0a58c12e9694944af5a126321ab88870dec3bc05a9ae","typeString":"literal_string \"log(uint256,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18593,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11192:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11196:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11192:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11192:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18592,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"11176:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11176:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18601,"nodeType":"ExpressionStatement","src":"11176:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11112:3:14","parameters":{"id":18590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18585,"mutability":"mutable","name":"p0","nameLocation":"11124:2:14","nodeType":"VariableDeclaration","scope":18603,"src":"11116:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18584,"name":"uint256","nodeType":"ElementaryTypeName","src":"11116:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18587,"mutability":"mutable","name":"p1","nameLocation":"11136:2:14","nodeType":"VariableDeclaration","scope":18603,"src":"11128:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18586,"name":"address","nodeType":"ElementaryTypeName","src":"11128:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18589,"mutability":"mutable","name":"p2","nameLocation":"11148:2:14","nodeType":"VariableDeclaration","scope":18603,"src":"11140:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18588,"name":"uint256","nodeType":"ElementaryTypeName","src":"11140:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11115:36:14"},"returnParameters":{"id":18591,"nodeType":"ParameterList","parameters":[],"src":"11166:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18623,"nodeType":"FunctionDefinition","src":"11273:169:14","nodes":[],"body":{"id":18622,"nodeType":"Block","src":"11342:100:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e6729","id":18615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11392:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_63cb41f9a63efe5dfacd3a2836bdef664d136fd6113f8e931c31a919af38935c","typeString":"literal_string \"log(uint256,address,string)\""},"value":"log(uint256,address,string)"},{"id":18616,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18605,"src":"11423:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18617,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18607,"src":"11427:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18618,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18609,"src":"11431:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_63cb41f9a63efe5dfacd3a2836bdef664d136fd6113f8e931c31a919af38935c","typeString":"literal_string \"log(uint256,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18613,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11368:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11372:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11368:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11368:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18612,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"11352:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11352:83:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18621,"nodeType":"ExpressionStatement","src":"11352:83:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11282:3:14","parameters":{"id":18610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18605,"mutability":"mutable","name":"p0","nameLocation":"11294:2:14","nodeType":"VariableDeclaration","scope":18623,"src":"11286:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18604,"name":"uint256","nodeType":"ElementaryTypeName","src":"11286:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18607,"mutability":"mutable","name":"p1","nameLocation":"11306:2:14","nodeType":"VariableDeclaration","scope":18623,"src":"11298:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18606,"name":"address","nodeType":"ElementaryTypeName","src":"11298:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18609,"mutability":"mutable","name":"p2","nameLocation":"11324:2:14","nodeType":"VariableDeclaration","scope":18623,"src":"11310:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18608,"name":"string","nodeType":"ElementaryTypeName","src":"11310:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11285:42:14"},"returnParameters":{"id":18611,"nodeType":"ParameterList","parameters":[],"src":"11342:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18643,"nodeType":"FunctionDefinition","src":"11448:158:14","nodes":[],"body":{"id":18642,"nodeType":"Block","src":"11508:98:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c29","id":18635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11558:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b6ec042c5598a780a5bfae5e9ea2c50c251da4c38db3a134b8857be618f0c5c","typeString":"literal_string \"log(uint256,address,bool)\""},"value":"log(uint256,address,bool)"},{"id":18636,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"11587:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18637,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18627,"src":"11591:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18638,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18629,"src":"11595:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9b6ec042c5598a780a5bfae5e9ea2c50c251da4c38db3a134b8857be618f0c5c","typeString":"literal_string \"log(uint256,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18633,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11534:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18634,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11538:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11534:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11534:64:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18632,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"11518:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11518:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18641,"nodeType":"ExpressionStatement","src":"11518:81:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11457:3:14","parameters":{"id":18630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18625,"mutability":"mutable","name":"p0","nameLocation":"11469:2:14","nodeType":"VariableDeclaration","scope":18643,"src":"11461:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18624,"name":"uint256","nodeType":"ElementaryTypeName","src":"11461:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18627,"mutability":"mutable","name":"p1","nameLocation":"11481:2:14","nodeType":"VariableDeclaration","scope":18643,"src":"11473:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18626,"name":"address","nodeType":"ElementaryTypeName","src":"11473:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18629,"mutability":"mutable","name":"p2","nameLocation":"11490:2:14","nodeType":"VariableDeclaration","scope":18643,"src":"11485:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18628,"name":"bool","nodeType":"ElementaryTypeName","src":"11485:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11460:33:14"},"returnParameters":{"id":18631,"nodeType":"ParameterList","parameters":[],"src":"11508:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18663,"nodeType":"FunctionDefinition","src":"11612:164:14","nodes":[],"body":{"id":18662,"nodeType":"Block","src":"11675:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c6164647265737329","id":18655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11725:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_bcfd9be04f8d6b8ee1ae73075f8fe8db10e4b254a56103daa450197029a55fda","typeString":"literal_string \"log(uint256,address,address)\""},"value":"log(uint256,address,address)"},{"id":18656,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18645,"src":"11757:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18657,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18647,"src":"11761:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18658,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18649,"src":"11765:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bcfd9be04f8d6b8ee1ae73075f8fe8db10e4b254a56103daa450197029a55fda","typeString":"literal_string \"log(uint256,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18653,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11701:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11705:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11701:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11701:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18652,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"11685:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11685:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18661,"nodeType":"ExpressionStatement","src":"11685:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11621:3:14","parameters":{"id":18650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18645,"mutability":"mutable","name":"p0","nameLocation":"11633:2:14","nodeType":"VariableDeclaration","scope":18663,"src":"11625:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18644,"name":"uint256","nodeType":"ElementaryTypeName","src":"11625:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18647,"mutability":"mutable","name":"p1","nameLocation":"11645:2:14","nodeType":"VariableDeclaration","scope":18663,"src":"11637:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18646,"name":"address","nodeType":"ElementaryTypeName","src":"11637:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18649,"mutability":"mutable","name":"p2","nameLocation":"11657:2:14","nodeType":"VariableDeclaration","scope":18663,"src":"11649:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18648,"name":"address","nodeType":"ElementaryTypeName","src":"11649:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11624:36:14"},"returnParameters":{"id":18651,"nodeType":"ParameterList","parameters":[],"src":"11675:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18683,"nodeType":"FunctionDefinition","src":"11782:169:14","nodes":[],"body":{"id":18682,"nodeType":"Block","src":"11851:100:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e7432353629","id":18675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11901:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca47c4ebe9fba29faff9e6b57fbe69e17216e7526486c463d61c06e8992beece","typeString":"literal_string \"log(string,uint256,uint256)\""},"value":"log(string,uint256,uint256)"},{"id":18676,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18665,"src":"11932:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18677,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18667,"src":"11936:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18678,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18669,"src":"11940:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ca47c4ebe9fba29faff9e6b57fbe69e17216e7526486c463d61c06e8992beece","typeString":"literal_string \"log(string,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18673,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11877:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11881:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11877:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11877:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18672,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"11861:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11861:83:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18681,"nodeType":"ExpressionStatement","src":"11861:83:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11791:3:14","parameters":{"id":18670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18665,"mutability":"mutable","name":"p0","nameLocation":"11809:2:14","nodeType":"VariableDeclaration","scope":18683,"src":"11795:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18664,"name":"string","nodeType":"ElementaryTypeName","src":"11795:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18667,"mutability":"mutable","name":"p1","nameLocation":"11821:2:14","nodeType":"VariableDeclaration","scope":18683,"src":"11813:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18666,"name":"uint256","nodeType":"ElementaryTypeName","src":"11813:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18669,"mutability":"mutable","name":"p2","nameLocation":"11833:2:14","nodeType":"VariableDeclaration","scope":18683,"src":"11825:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18668,"name":"uint256","nodeType":"ElementaryTypeName","src":"11825:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11794:42:14"},"returnParameters":{"id":18671,"nodeType":"ParameterList","parameters":[],"src":"11851:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18703,"nodeType":"FunctionDefinition","src":"11957:174:14","nodes":[],"body":{"id":18702,"nodeType":"Block","src":"12032:99:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e6729","id":18695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12082:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5970e089c65c5d431d60f26e6cf1ec3984c873a96b59f1aed9fc44cdf9078bcf","typeString":"literal_string \"log(string,uint256,string)\""},"value":"log(string,uint256,string)"},{"id":18696,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18685,"src":"12112:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18697,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18687,"src":"12116:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18698,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18689,"src":"12120:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5970e089c65c5d431d60f26e6cf1ec3984c873a96b59f1aed9fc44cdf9078bcf","typeString":"literal_string \"log(string,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18693,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12058:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12062:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12058:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12058:65:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18692,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"12042:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12042:82:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18701,"nodeType":"ExpressionStatement","src":"12042:82:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11966:3:14","parameters":{"id":18690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18685,"mutability":"mutable","name":"p0","nameLocation":"11984:2:14","nodeType":"VariableDeclaration","scope":18703,"src":"11970:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18684,"name":"string","nodeType":"ElementaryTypeName","src":"11970:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18687,"mutability":"mutable","name":"p1","nameLocation":"11996:2:14","nodeType":"VariableDeclaration","scope":18703,"src":"11988:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18686,"name":"uint256","nodeType":"ElementaryTypeName","src":"11988:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18689,"mutability":"mutable","name":"p2","nameLocation":"12014:2:14","nodeType":"VariableDeclaration","scope":18703,"src":"12000:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18688,"name":"string","nodeType":"ElementaryTypeName","src":"12000:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11969:48:14"},"returnParameters":{"id":18691,"nodeType":"ParameterList","parameters":[],"src":"12032:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18723,"nodeType":"FunctionDefinition","src":"12137:163:14","nodes":[],"body":{"id":18722,"nodeType":"Block","src":"12203:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c29","id":18715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12253:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca7733b1b473f13a94152fab2b969755f42d925703a46c93a1825aad614f145e","typeString":"literal_string \"log(string,uint256,bool)\""},"value":"log(string,uint256,bool)"},{"id":18716,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18705,"src":"12281:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18717,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18707,"src":"12285:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18718,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18709,"src":"12289:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ca7733b1b473f13a94152fab2b969755f42d925703a46c93a1825aad614f145e","typeString":"literal_string \"log(string,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18713,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12229:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12233:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12229:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12229:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18712,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"12213:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12213:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18721,"nodeType":"ExpressionStatement","src":"12213:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12146:3:14","parameters":{"id":18710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18705,"mutability":"mutable","name":"p0","nameLocation":"12164:2:14","nodeType":"VariableDeclaration","scope":18723,"src":"12150:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18704,"name":"string","nodeType":"ElementaryTypeName","src":"12150:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18707,"mutability":"mutable","name":"p1","nameLocation":"12176:2:14","nodeType":"VariableDeclaration","scope":18723,"src":"12168:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18706,"name":"uint256","nodeType":"ElementaryTypeName","src":"12168:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18709,"mutability":"mutable","name":"p2","nameLocation":"12185:2:14","nodeType":"VariableDeclaration","scope":18723,"src":"12180:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18708,"name":"bool","nodeType":"ElementaryTypeName","src":"12180:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12149:39:14"},"returnParameters":{"id":18711,"nodeType":"ParameterList","parameters":[],"src":"12203:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18743,"nodeType":"FunctionDefinition","src":"12306:169:14","nodes":[],"body":{"id":18742,"nodeType":"Block","src":"12375:100:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c6164647265737329","id":18735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12425:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c7ec4485ea8bf18e646e5381f7318f45423199ed371307bc9171a4242f27335","typeString":"literal_string \"log(string,uint256,address)\""},"value":"log(string,uint256,address)"},{"id":18736,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18725,"src":"12456:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18737,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18727,"src":"12460:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18738,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18729,"src":"12464:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c7ec4485ea8bf18e646e5381f7318f45423199ed371307bc9171a4242f27335","typeString":"literal_string \"log(string,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18733,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12401:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12405:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12401:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12401:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18732,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"12385:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12385:83:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18741,"nodeType":"ExpressionStatement","src":"12385:83:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12315:3:14","parameters":{"id":18730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18725,"mutability":"mutable","name":"p0","nameLocation":"12333:2:14","nodeType":"VariableDeclaration","scope":18743,"src":"12319:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18724,"name":"string","nodeType":"ElementaryTypeName","src":"12319:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18727,"mutability":"mutable","name":"p1","nameLocation":"12345:2:14","nodeType":"VariableDeclaration","scope":18743,"src":"12337:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18726,"name":"uint256","nodeType":"ElementaryTypeName","src":"12337:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18729,"mutability":"mutable","name":"p2","nameLocation":"12357:2:14","nodeType":"VariableDeclaration","scope":18743,"src":"12349:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18728,"name":"address","nodeType":"ElementaryTypeName","src":"12349:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12318:42:14"},"returnParameters":{"id":18731,"nodeType":"ParameterList","parameters":[],"src":"12375:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18763,"nodeType":"FunctionDefinition","src":"12481:174:14","nodes":[],"body":{"id":18762,"nodeType":"Block","src":"12556:99:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e7432353629","id":18755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12606:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5821efa12787fd2b80909e807f1dcc73717b87128d89e827e5b876178f2fdbd0","typeString":"literal_string \"log(string,string,uint256)\""},"value":"log(string,string,uint256)"},{"id":18756,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18745,"src":"12636:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18757,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18747,"src":"12640:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18758,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18749,"src":"12644:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5821efa12787fd2b80909e807f1dcc73717b87128d89e827e5b876178f2fdbd0","typeString":"literal_string \"log(string,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18753,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12582:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18754,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12586:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12582:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12582:65:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18752,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"12566:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12566:82:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18761,"nodeType":"ExpressionStatement","src":"12566:82:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12490:3:14","parameters":{"id":18750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18745,"mutability":"mutable","name":"p0","nameLocation":"12508:2:14","nodeType":"VariableDeclaration","scope":18763,"src":"12494:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18744,"name":"string","nodeType":"ElementaryTypeName","src":"12494:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18747,"mutability":"mutable","name":"p1","nameLocation":"12526:2:14","nodeType":"VariableDeclaration","scope":18763,"src":"12512:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18746,"name":"string","nodeType":"ElementaryTypeName","src":"12512:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18749,"mutability":"mutable","name":"p2","nameLocation":"12538:2:14","nodeType":"VariableDeclaration","scope":18763,"src":"12530:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18748,"name":"uint256","nodeType":"ElementaryTypeName","src":"12530:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12493:48:14"},"returnParameters":{"id":18751,"nodeType":"ParameterList","parameters":[],"src":"12556:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18783,"nodeType":"FunctionDefinition","src":"12661:179:14","nodes":[],"body":{"id":18782,"nodeType":"Block","src":"12742:98:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e6729","id":18775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12792:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f","typeString":"literal_string \"log(string,string,string)\""},"value":"log(string,string,string)"},{"id":18776,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18765,"src":"12821:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18777,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18767,"src":"12825:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18778,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18769,"src":"12829:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f","typeString":"literal_string \"log(string,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18773,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12768:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12772:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12768:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12768:64:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18772,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"12752:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12752:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18781,"nodeType":"ExpressionStatement","src":"12752:81:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12670:3:14","parameters":{"id":18770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18765,"mutability":"mutable","name":"p0","nameLocation":"12688:2:14","nodeType":"VariableDeclaration","scope":18783,"src":"12674:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18764,"name":"string","nodeType":"ElementaryTypeName","src":"12674:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18767,"mutability":"mutable","name":"p1","nameLocation":"12706:2:14","nodeType":"VariableDeclaration","scope":18783,"src":"12692:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18766,"name":"string","nodeType":"ElementaryTypeName","src":"12692:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18769,"mutability":"mutable","name":"p2","nameLocation":"12724:2:14","nodeType":"VariableDeclaration","scope":18783,"src":"12710:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18768,"name":"string","nodeType":"ElementaryTypeName","src":"12710:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12673:54:14"},"returnParameters":{"id":18771,"nodeType":"ParameterList","parameters":[],"src":"12742:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18803,"nodeType":"FunctionDefinition","src":"12846:168:14","nodes":[],"body":{"id":18802,"nodeType":"Block","src":"12918:96:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c29","id":18795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12968:25:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb","typeString":"literal_string \"log(string,string,bool)\""},"value":"log(string,string,bool)"},{"id":18796,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18785,"src":"12995:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18797,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18787,"src":"12999:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18798,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18789,"src":"13003:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb","typeString":"literal_string \"log(string,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18793,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12944:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12948:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12944:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12944:62:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18792,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"12928:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12928:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18801,"nodeType":"ExpressionStatement","src":"12928:79:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12855:3:14","parameters":{"id":18790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18785,"mutability":"mutable","name":"p0","nameLocation":"12873:2:14","nodeType":"VariableDeclaration","scope":18803,"src":"12859:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18784,"name":"string","nodeType":"ElementaryTypeName","src":"12859:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18787,"mutability":"mutable","name":"p1","nameLocation":"12891:2:14","nodeType":"VariableDeclaration","scope":18803,"src":"12877:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18786,"name":"string","nodeType":"ElementaryTypeName","src":"12877:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18789,"mutability":"mutable","name":"p2","nameLocation":"12900:2:14","nodeType":"VariableDeclaration","scope":18803,"src":"12895:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18788,"name":"bool","nodeType":"ElementaryTypeName","src":"12895:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12858:45:14"},"returnParameters":{"id":18791,"nodeType":"ParameterList","parameters":[],"src":"12918:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18823,"nodeType":"FunctionDefinition","src":"13020:174:14","nodes":[],"body":{"id":18822,"nodeType":"Block","src":"13095:99:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c6164647265737329","id":18815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13145:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768","typeString":"literal_string \"log(string,string,address)\""},"value":"log(string,string,address)"},{"id":18816,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18805,"src":"13175:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18817,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18807,"src":"13179:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18818,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18809,"src":"13183:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768","typeString":"literal_string \"log(string,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18813,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13121:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13125:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13121:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13121:65:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18812,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"13105:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13105:82:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18821,"nodeType":"ExpressionStatement","src":"13105:82:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13029:3:14","parameters":{"id":18810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18805,"mutability":"mutable","name":"p0","nameLocation":"13047:2:14","nodeType":"VariableDeclaration","scope":18823,"src":"13033:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18804,"name":"string","nodeType":"ElementaryTypeName","src":"13033:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18807,"mutability":"mutable","name":"p1","nameLocation":"13065:2:14","nodeType":"VariableDeclaration","scope":18823,"src":"13051:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18806,"name":"string","nodeType":"ElementaryTypeName","src":"13051:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18809,"mutability":"mutable","name":"p2","nameLocation":"13077:2:14","nodeType":"VariableDeclaration","scope":18823,"src":"13069:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18808,"name":"address","nodeType":"ElementaryTypeName","src":"13069:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13032:48:14"},"returnParameters":{"id":18811,"nodeType":"ParameterList","parameters":[],"src":"13095:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18843,"nodeType":"FunctionDefinition","src":"13200:163:14","nodes":[],"body":{"id":18842,"nodeType":"Block","src":"13266:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e7432353629","id":18835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13316:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c95958d6bc6e492868f9bea34fa0d5d3bf60736d44598880e7a9a99746b5d26a","typeString":"literal_string \"log(string,bool,uint256)\""},"value":"log(string,bool,uint256)"},{"id":18836,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18825,"src":"13344:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18837,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18827,"src":"13348:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18838,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18829,"src":"13352:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c95958d6bc6e492868f9bea34fa0d5d3bf60736d44598880e7a9a99746b5d26a","typeString":"literal_string \"log(string,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18833,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13292:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13296:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13292:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13292:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18832,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"13276:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13276:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18841,"nodeType":"ExpressionStatement","src":"13276:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13209:3:14","parameters":{"id":18830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18825,"mutability":"mutable","name":"p0","nameLocation":"13227:2:14","nodeType":"VariableDeclaration","scope":18843,"src":"13213:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18824,"name":"string","nodeType":"ElementaryTypeName","src":"13213:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18827,"mutability":"mutable","name":"p1","nameLocation":"13236:2:14","nodeType":"VariableDeclaration","scope":18843,"src":"13231:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18826,"name":"bool","nodeType":"ElementaryTypeName","src":"13231:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18829,"mutability":"mutable","name":"p2","nameLocation":"13248:2:14","nodeType":"VariableDeclaration","scope":18843,"src":"13240:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18828,"name":"uint256","nodeType":"ElementaryTypeName","src":"13240:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13212:39:14"},"returnParameters":{"id":18831,"nodeType":"ParameterList","parameters":[],"src":"13266:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18863,"nodeType":"FunctionDefinition","src":"13369:168:14","nodes":[],"body":{"id":18862,"nodeType":"Block","src":"13441:96:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e6729","id":18855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13491:25:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7","typeString":"literal_string \"log(string,bool,string)\""},"value":"log(string,bool,string)"},{"id":18856,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18845,"src":"13518:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18857,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18847,"src":"13522:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18858,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18849,"src":"13526:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7","typeString":"literal_string \"log(string,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18853,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13467:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13471:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13467:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13467:62:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18852,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"13451:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13451:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18861,"nodeType":"ExpressionStatement","src":"13451:79:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13378:3:14","parameters":{"id":18850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18845,"mutability":"mutable","name":"p0","nameLocation":"13396:2:14","nodeType":"VariableDeclaration","scope":18863,"src":"13382:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18844,"name":"string","nodeType":"ElementaryTypeName","src":"13382:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18847,"mutability":"mutable","name":"p1","nameLocation":"13405:2:14","nodeType":"VariableDeclaration","scope":18863,"src":"13400:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18846,"name":"bool","nodeType":"ElementaryTypeName","src":"13400:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18849,"mutability":"mutable","name":"p2","nameLocation":"13423:2:14","nodeType":"VariableDeclaration","scope":18863,"src":"13409:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18848,"name":"string","nodeType":"ElementaryTypeName","src":"13409:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13381:45:14"},"returnParameters":{"id":18851,"nodeType":"ParameterList","parameters":[],"src":"13441:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18883,"nodeType":"FunctionDefinition","src":"13543:157:14","nodes":[],"body":{"id":18882,"nodeType":"Block","src":"13606:94:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c29","id":18875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13656:23:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d","typeString":"literal_string \"log(string,bool,bool)\""},"value":"log(string,bool,bool)"},{"id":18876,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18865,"src":"13681:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18877,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18867,"src":"13685:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18878,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18869,"src":"13689:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d","typeString":"literal_string \"log(string,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18873,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13632:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13636:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13632:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13632:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18872,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"13616:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13616:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18881,"nodeType":"ExpressionStatement","src":"13616:77:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13552:3:14","parameters":{"id":18870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18865,"mutability":"mutable","name":"p0","nameLocation":"13570:2:14","nodeType":"VariableDeclaration","scope":18883,"src":"13556:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18864,"name":"string","nodeType":"ElementaryTypeName","src":"13556:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18867,"mutability":"mutable","name":"p1","nameLocation":"13579:2:14","nodeType":"VariableDeclaration","scope":18883,"src":"13574:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18866,"name":"bool","nodeType":"ElementaryTypeName","src":"13574:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18869,"mutability":"mutable","name":"p2","nameLocation":"13588:2:14","nodeType":"VariableDeclaration","scope":18883,"src":"13583:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18868,"name":"bool","nodeType":"ElementaryTypeName","src":"13583:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13555:36:14"},"returnParameters":{"id":18871,"nodeType":"ParameterList","parameters":[],"src":"13606:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18903,"nodeType":"FunctionDefinition","src":"13706:163:14","nodes":[],"body":{"id":18902,"nodeType":"Block","src":"13772:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c6164647265737329","id":18895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13822:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f","typeString":"literal_string \"log(string,bool,address)\""},"value":"log(string,bool,address)"},{"id":18896,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18885,"src":"13850:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18897,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18887,"src":"13854:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18898,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18889,"src":"13858:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f","typeString":"literal_string \"log(string,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18893,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13798:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13802:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13798:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13798:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18892,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"13782:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13782:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18901,"nodeType":"ExpressionStatement","src":"13782:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13715:3:14","parameters":{"id":18890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18885,"mutability":"mutable","name":"p0","nameLocation":"13733:2:14","nodeType":"VariableDeclaration","scope":18903,"src":"13719:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18884,"name":"string","nodeType":"ElementaryTypeName","src":"13719:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18887,"mutability":"mutable","name":"p1","nameLocation":"13742:2:14","nodeType":"VariableDeclaration","scope":18903,"src":"13737:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18886,"name":"bool","nodeType":"ElementaryTypeName","src":"13737:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18889,"mutability":"mutable","name":"p2","nameLocation":"13754:2:14","nodeType":"VariableDeclaration","scope":18903,"src":"13746:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18888,"name":"address","nodeType":"ElementaryTypeName","src":"13746:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13718:39:14"},"returnParameters":{"id":18891,"nodeType":"ParameterList","parameters":[],"src":"13772:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18923,"nodeType":"FunctionDefinition","src":"13875:169:14","nodes":[],"body":{"id":18922,"nodeType":"Block","src":"13944:100:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e7432353629","id":18915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13994:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d26b92533630e908cb95a1b2ed09291c6aa98f8da7094a2325f8c86cd45e5e4","typeString":"literal_string \"log(string,address,uint256)\""},"value":"log(string,address,uint256)"},{"id":18916,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18905,"src":"14025:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18917,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18907,"src":"14029:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18918,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18909,"src":"14033:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d26b92533630e908cb95a1b2ed09291c6aa98f8da7094a2325f8c86cd45e5e4","typeString":"literal_string \"log(string,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18913,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13970:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13974:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13970:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13970:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18912,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"13954:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13954:83:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18921,"nodeType":"ExpressionStatement","src":"13954:83:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13884:3:14","parameters":{"id":18910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18905,"mutability":"mutable","name":"p0","nameLocation":"13902:2:14","nodeType":"VariableDeclaration","scope":18923,"src":"13888:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18904,"name":"string","nodeType":"ElementaryTypeName","src":"13888:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18907,"mutability":"mutable","name":"p1","nameLocation":"13914:2:14","nodeType":"VariableDeclaration","scope":18923,"src":"13906:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18906,"name":"address","nodeType":"ElementaryTypeName","src":"13906:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18909,"mutability":"mutable","name":"p2","nameLocation":"13926:2:14","nodeType":"VariableDeclaration","scope":18923,"src":"13918:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18908,"name":"uint256","nodeType":"ElementaryTypeName","src":"13918:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13887:42:14"},"returnParameters":{"id":18911,"nodeType":"ParameterList","parameters":[],"src":"13944:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18943,"nodeType":"FunctionDefinition","src":"14050:174:14","nodes":[],"body":{"id":18942,"nodeType":"Block","src":"14125:99:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e6729","id":18935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14175:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634","typeString":"literal_string \"log(string,address,string)\""},"value":"log(string,address,string)"},{"id":18936,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18925,"src":"14205:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18937,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18927,"src":"14209:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18938,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18929,"src":"14213:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634","typeString":"literal_string \"log(string,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18933,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14151:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14155:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14151:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14151:65:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18932,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"14135:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14135:82:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18941,"nodeType":"ExpressionStatement","src":"14135:82:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14059:3:14","parameters":{"id":18930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18925,"mutability":"mutable","name":"p0","nameLocation":"14077:2:14","nodeType":"VariableDeclaration","scope":18943,"src":"14063:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18924,"name":"string","nodeType":"ElementaryTypeName","src":"14063:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18927,"mutability":"mutable","name":"p1","nameLocation":"14089:2:14","nodeType":"VariableDeclaration","scope":18943,"src":"14081:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18926,"name":"address","nodeType":"ElementaryTypeName","src":"14081:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18929,"mutability":"mutable","name":"p2","nameLocation":"14107:2:14","nodeType":"VariableDeclaration","scope":18943,"src":"14093:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18928,"name":"string","nodeType":"ElementaryTypeName","src":"14093:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14062:48:14"},"returnParameters":{"id":18931,"nodeType":"ParameterList","parameters":[],"src":"14125:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18963,"nodeType":"FunctionDefinition","src":"14230:163:14","nodes":[],"body":{"id":18962,"nodeType":"Block","src":"14296:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c29","id":18955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14346:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8","typeString":"literal_string \"log(string,address,bool)\""},"value":"log(string,address,bool)"},{"id":18956,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18945,"src":"14374:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18957,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18947,"src":"14378:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18958,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18949,"src":"14382:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8","typeString":"literal_string \"log(string,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18953,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14322:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14326:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14322:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14322:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18952,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"14306:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14306:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18961,"nodeType":"ExpressionStatement","src":"14306:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14239:3:14","parameters":{"id":18950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18945,"mutability":"mutable","name":"p0","nameLocation":"14257:2:14","nodeType":"VariableDeclaration","scope":18963,"src":"14243:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18944,"name":"string","nodeType":"ElementaryTypeName","src":"14243:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18947,"mutability":"mutable","name":"p1","nameLocation":"14269:2:14","nodeType":"VariableDeclaration","scope":18963,"src":"14261:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18946,"name":"address","nodeType":"ElementaryTypeName","src":"14261:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18949,"mutability":"mutable","name":"p2","nameLocation":"14278:2:14","nodeType":"VariableDeclaration","scope":18963,"src":"14273:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18948,"name":"bool","nodeType":"ElementaryTypeName","src":"14273:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14242:39:14"},"returnParameters":{"id":18951,"nodeType":"ParameterList","parameters":[],"src":"14296:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18983,"nodeType":"FunctionDefinition","src":"14399:169:14","nodes":[],"body":{"id":18982,"nodeType":"Block","src":"14468:100:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c6164647265737329","id":18975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14518:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8","typeString":"literal_string \"log(string,address,address)\""},"value":"log(string,address,address)"},{"id":18976,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18965,"src":"14549:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18977,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18967,"src":"14553:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18978,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18969,"src":"14557:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8","typeString":"literal_string \"log(string,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18973,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14494:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14498:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14494:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14494:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18972,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"14478:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14478:83:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18981,"nodeType":"ExpressionStatement","src":"14478:83:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14408:3:14","parameters":{"id":18970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18965,"mutability":"mutable","name":"p0","nameLocation":"14426:2:14","nodeType":"VariableDeclaration","scope":18983,"src":"14412:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18964,"name":"string","nodeType":"ElementaryTypeName","src":"14412:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18967,"mutability":"mutable","name":"p1","nameLocation":"14438:2:14","nodeType":"VariableDeclaration","scope":18983,"src":"14430:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18966,"name":"address","nodeType":"ElementaryTypeName","src":"14430:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18969,"mutability":"mutable","name":"p2","nameLocation":"14450:2:14","nodeType":"VariableDeclaration","scope":18983,"src":"14442:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18968,"name":"address","nodeType":"ElementaryTypeName","src":"14442:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14411:42:14"},"returnParameters":{"id":18971,"nodeType":"ParameterList","parameters":[],"src":"14468:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19003,"nodeType":"FunctionDefinition","src":"14574:158:14","nodes":[],"body":{"id":19002,"nodeType":"Block","src":"14634:98:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e7432353629","id":18995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14684:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_371033677da72158a60d6dc6ec9fa4683ad37ad854670ba3fcf814603cf8bb28","typeString":"literal_string \"log(bool,uint256,uint256)\""},"value":"log(bool,uint256,uint256)"},{"id":18996,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18985,"src":"14713:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18997,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18987,"src":"14717:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18998,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18989,"src":"14721:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_371033677da72158a60d6dc6ec9fa4683ad37ad854670ba3fcf814603cf8bb28","typeString":"literal_string \"log(bool,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18993,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14660:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14664:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14660:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14660:64:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18992,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"14644:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14644:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19001,"nodeType":"ExpressionStatement","src":"14644:81:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14583:3:14","parameters":{"id":18990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18985,"mutability":"mutable","name":"p0","nameLocation":"14592:2:14","nodeType":"VariableDeclaration","scope":19003,"src":"14587:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18984,"name":"bool","nodeType":"ElementaryTypeName","src":"14587:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18987,"mutability":"mutable","name":"p1","nameLocation":"14604:2:14","nodeType":"VariableDeclaration","scope":19003,"src":"14596:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18986,"name":"uint256","nodeType":"ElementaryTypeName","src":"14596:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18989,"mutability":"mutable","name":"p2","nameLocation":"14616:2:14","nodeType":"VariableDeclaration","scope":19003,"src":"14608:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18988,"name":"uint256","nodeType":"ElementaryTypeName","src":"14608:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14586:33:14"},"returnParameters":{"id":18991,"nodeType":"ParameterList","parameters":[],"src":"14634:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19023,"nodeType":"FunctionDefinition","src":"14738:163:14","nodes":[],"body":{"id":19022,"nodeType":"Block","src":"14804:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e6729","id":19015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14854:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3fc3970359ec5bcd4a409af812c658e77b7983043c9e7299db566fbd8131447","typeString":"literal_string \"log(bool,uint256,string)\""},"value":"log(bool,uint256,string)"},{"id":19016,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19005,"src":"14882:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19017,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19007,"src":"14886:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19018,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19009,"src":"14890:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3fc3970359ec5bcd4a409af812c658e77b7983043c9e7299db566fbd8131447","typeString":"literal_string \"log(bool,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19013,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14830:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14834:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14830:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14830:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19012,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"14814:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14814:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19021,"nodeType":"ExpressionStatement","src":"14814:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14747:3:14","parameters":{"id":19010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19005,"mutability":"mutable","name":"p0","nameLocation":"14756:2:14","nodeType":"VariableDeclaration","scope":19023,"src":"14751:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19004,"name":"bool","nodeType":"ElementaryTypeName","src":"14751:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19007,"mutability":"mutable","name":"p1","nameLocation":"14768:2:14","nodeType":"VariableDeclaration","scope":19023,"src":"14760:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19006,"name":"uint256","nodeType":"ElementaryTypeName","src":"14760:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19009,"mutability":"mutable","name":"p2","nameLocation":"14786:2:14","nodeType":"VariableDeclaration","scope":19023,"src":"14772:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19008,"name":"string","nodeType":"ElementaryTypeName","src":"14772:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14750:39:14"},"returnParameters":{"id":19011,"nodeType":"ParameterList","parameters":[],"src":"14804:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19043,"nodeType":"FunctionDefinition","src":"14907:152:14","nodes":[],"body":{"id":19042,"nodeType":"Block","src":"14964:95:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c29","id":19035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15014:24:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e8defba9dac8a3ed4ad0f711b733171fd223b5d127b3485540d69bec05995a26","typeString":"literal_string \"log(bool,uint256,bool)\""},"value":"log(bool,uint256,bool)"},{"id":19036,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19025,"src":"15040:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19037,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19027,"src":"15044:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19038,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19029,"src":"15048:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e8defba9dac8a3ed4ad0f711b733171fd223b5d127b3485540d69bec05995a26","typeString":"literal_string \"log(bool,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19033,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14990:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14994:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14990:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14990:61:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19032,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"14974:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14974:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19041,"nodeType":"ExpressionStatement","src":"14974:78:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14916:3:14","parameters":{"id":19030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19025,"mutability":"mutable","name":"p0","nameLocation":"14925:2:14","nodeType":"VariableDeclaration","scope":19043,"src":"14920:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19024,"name":"bool","nodeType":"ElementaryTypeName","src":"14920:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19027,"mutability":"mutable","name":"p1","nameLocation":"14937:2:14","nodeType":"VariableDeclaration","scope":19043,"src":"14929:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19026,"name":"uint256","nodeType":"ElementaryTypeName","src":"14929:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19029,"mutability":"mutable","name":"p2","nameLocation":"14946:2:14","nodeType":"VariableDeclaration","scope":19043,"src":"14941:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19028,"name":"bool","nodeType":"ElementaryTypeName","src":"14941:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14919:30:14"},"returnParameters":{"id":19031,"nodeType":"ParameterList","parameters":[],"src":"14964:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19063,"nodeType":"FunctionDefinition","src":"15065:158:14","nodes":[],"body":{"id":19062,"nodeType":"Block","src":"15125:98:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c6164647265737329","id":19055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15175:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_088ef9d2f4d01d13401423c19b7f189200a7ad3f567d9e20f37299f94f92f574","typeString":"literal_string \"log(bool,uint256,address)\""},"value":"log(bool,uint256,address)"},{"id":19056,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19045,"src":"15204:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19057,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19047,"src":"15208:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19058,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19049,"src":"15212:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_088ef9d2f4d01d13401423c19b7f189200a7ad3f567d9e20f37299f94f92f574","typeString":"literal_string \"log(bool,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19053,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15151:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15155:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15151:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15151:64:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19052,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"15135:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15135:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19061,"nodeType":"ExpressionStatement","src":"15135:81:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15074:3:14","parameters":{"id":19050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19045,"mutability":"mutable","name":"p0","nameLocation":"15083:2:14","nodeType":"VariableDeclaration","scope":19063,"src":"15078:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19044,"name":"bool","nodeType":"ElementaryTypeName","src":"15078:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19047,"mutability":"mutable","name":"p1","nameLocation":"15095:2:14","nodeType":"VariableDeclaration","scope":19063,"src":"15087:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19046,"name":"uint256","nodeType":"ElementaryTypeName","src":"15087:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19049,"mutability":"mutable","name":"p2","nameLocation":"15107:2:14","nodeType":"VariableDeclaration","scope":19063,"src":"15099:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19048,"name":"address","nodeType":"ElementaryTypeName","src":"15099:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15077:33:14"},"returnParameters":{"id":19051,"nodeType":"ParameterList","parameters":[],"src":"15125:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19083,"nodeType":"FunctionDefinition","src":"15229:163:14","nodes":[],"body":{"id":19082,"nodeType":"Block","src":"15295:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e7432353629","id":19075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15345:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1093ee11e671928331708700100b356c86a8494f33b170ddcffd95462a0adf64","typeString":"literal_string \"log(bool,string,uint256)\""},"value":"log(bool,string,uint256)"},{"id":19076,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19065,"src":"15373:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19077,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19067,"src":"15377:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19078,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19069,"src":"15381:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1093ee11e671928331708700100b356c86a8494f33b170ddcffd95462a0adf64","typeString":"literal_string \"log(bool,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19073,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15321:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15325:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15321:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15321:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19072,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"15305:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15305:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19081,"nodeType":"ExpressionStatement","src":"15305:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15238:3:14","parameters":{"id":19070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19065,"mutability":"mutable","name":"p0","nameLocation":"15247:2:14","nodeType":"VariableDeclaration","scope":19083,"src":"15242:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19064,"name":"bool","nodeType":"ElementaryTypeName","src":"15242:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19067,"mutability":"mutable","name":"p1","nameLocation":"15265:2:14","nodeType":"VariableDeclaration","scope":19083,"src":"15251:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19066,"name":"string","nodeType":"ElementaryTypeName","src":"15251:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19069,"mutability":"mutable","name":"p2","nameLocation":"15277:2:14","nodeType":"VariableDeclaration","scope":19083,"src":"15269:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19068,"name":"uint256","nodeType":"ElementaryTypeName","src":"15269:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15241:39:14"},"returnParameters":{"id":19071,"nodeType":"ParameterList","parameters":[],"src":"15295:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19103,"nodeType":"FunctionDefinition","src":"15398:168:14","nodes":[],"body":{"id":19102,"nodeType":"Block","src":"15470:96:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e6729","id":19095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15520:25:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102","typeString":"literal_string \"log(bool,string,string)\""},"value":"log(bool,string,string)"},{"id":19096,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19085,"src":"15547:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19097,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19087,"src":"15551:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19098,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19089,"src":"15555:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102","typeString":"literal_string \"log(bool,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19093,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15496:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19094,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15500:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15496:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15496:62:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19092,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"15480:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15480:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19101,"nodeType":"ExpressionStatement","src":"15480:79:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15407:3:14","parameters":{"id":19090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19085,"mutability":"mutable","name":"p0","nameLocation":"15416:2:14","nodeType":"VariableDeclaration","scope":19103,"src":"15411:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19084,"name":"bool","nodeType":"ElementaryTypeName","src":"15411:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19087,"mutability":"mutable","name":"p1","nameLocation":"15434:2:14","nodeType":"VariableDeclaration","scope":19103,"src":"15420:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19086,"name":"string","nodeType":"ElementaryTypeName","src":"15420:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19089,"mutability":"mutable","name":"p2","nameLocation":"15452:2:14","nodeType":"VariableDeclaration","scope":19103,"src":"15438:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19088,"name":"string","nodeType":"ElementaryTypeName","src":"15438:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15410:45:14"},"returnParameters":{"id":19091,"nodeType":"ParameterList","parameters":[],"src":"15470:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19123,"nodeType":"FunctionDefinition","src":"15572:157:14","nodes":[],"body":{"id":19122,"nodeType":"Block","src":"15635:94:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c29","id":19115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15685:23:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa","typeString":"literal_string \"log(bool,string,bool)\""},"value":"log(bool,string,bool)"},{"id":19116,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19105,"src":"15710:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19117,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19107,"src":"15714:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19118,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19109,"src":"15718:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa","typeString":"literal_string \"log(bool,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19113,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15661:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15665:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15661:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15661:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19112,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"15645:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15645:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19121,"nodeType":"ExpressionStatement","src":"15645:77:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15581:3:14","parameters":{"id":19110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19105,"mutability":"mutable","name":"p0","nameLocation":"15590:2:14","nodeType":"VariableDeclaration","scope":19123,"src":"15585:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19104,"name":"bool","nodeType":"ElementaryTypeName","src":"15585:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19107,"mutability":"mutable","name":"p1","nameLocation":"15608:2:14","nodeType":"VariableDeclaration","scope":19123,"src":"15594:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19106,"name":"string","nodeType":"ElementaryTypeName","src":"15594:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19109,"mutability":"mutable","name":"p2","nameLocation":"15617:2:14","nodeType":"VariableDeclaration","scope":19123,"src":"15612:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19108,"name":"bool","nodeType":"ElementaryTypeName","src":"15612:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15584:36:14"},"returnParameters":{"id":19111,"nodeType":"ParameterList","parameters":[],"src":"15635:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19143,"nodeType":"FunctionDefinition","src":"15735:163:14","nodes":[],"body":{"id":19142,"nodeType":"Block","src":"15801:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c6164647265737329","id":19135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15851:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79","typeString":"literal_string \"log(bool,string,address)\""},"value":"log(bool,string,address)"},{"id":19136,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19125,"src":"15879:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19137,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19127,"src":"15883:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19138,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19129,"src":"15887:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79","typeString":"literal_string \"log(bool,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19133,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15827:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19134,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15831:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15827:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15827:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19132,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"15811:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15811:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19141,"nodeType":"ExpressionStatement","src":"15811:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15744:3:14","parameters":{"id":19130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19125,"mutability":"mutable","name":"p0","nameLocation":"15753:2:14","nodeType":"VariableDeclaration","scope":19143,"src":"15748:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19124,"name":"bool","nodeType":"ElementaryTypeName","src":"15748:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19127,"mutability":"mutable","name":"p1","nameLocation":"15771:2:14","nodeType":"VariableDeclaration","scope":19143,"src":"15757:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19126,"name":"string","nodeType":"ElementaryTypeName","src":"15757:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19129,"mutability":"mutable","name":"p2","nameLocation":"15783:2:14","nodeType":"VariableDeclaration","scope":19143,"src":"15775:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19128,"name":"address","nodeType":"ElementaryTypeName","src":"15775:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15747:39:14"},"returnParameters":{"id":19131,"nodeType":"ParameterList","parameters":[],"src":"15801:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19163,"nodeType":"FunctionDefinition","src":"15904:152:14","nodes":[],"body":{"id":19162,"nodeType":"Block","src":"15961:95:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e7432353629","id":19155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16011:24:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_12f216023a0243e7ece19b75fc4619b59ea663e0aefdf2e4b1faa16a9fa3a211","typeString":"literal_string \"log(bool,bool,uint256)\""},"value":"log(bool,bool,uint256)"},{"id":19156,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19145,"src":"16037:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19157,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19147,"src":"16041:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19158,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19149,"src":"16045:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12f216023a0243e7ece19b75fc4619b59ea663e0aefdf2e4b1faa16a9fa3a211","typeString":"literal_string \"log(bool,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19153,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15987:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15991:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15987:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15987:61:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19152,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"15971:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15971:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19161,"nodeType":"ExpressionStatement","src":"15971:78:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15913:3:14","parameters":{"id":19150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19145,"mutability":"mutable","name":"p0","nameLocation":"15922:2:14","nodeType":"VariableDeclaration","scope":19163,"src":"15917:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19144,"name":"bool","nodeType":"ElementaryTypeName","src":"15917:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19147,"mutability":"mutable","name":"p1","nameLocation":"15931:2:14","nodeType":"VariableDeclaration","scope":19163,"src":"15926:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19146,"name":"bool","nodeType":"ElementaryTypeName","src":"15926:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19149,"mutability":"mutable","name":"p2","nameLocation":"15943:2:14","nodeType":"VariableDeclaration","scope":19163,"src":"15935:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19148,"name":"uint256","nodeType":"ElementaryTypeName","src":"15935:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15916:30:14"},"returnParameters":{"id":19151,"nodeType":"ParameterList","parameters":[],"src":"15961:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19183,"nodeType":"FunctionDefinition","src":"16062:157:14","nodes":[],"body":{"id":19182,"nodeType":"Block","src":"16125:94:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e6729","id":19175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16175:23:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc","typeString":"literal_string \"log(bool,bool,string)\""},"value":"log(bool,bool,string)"},{"id":19176,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19165,"src":"16200:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19177,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19167,"src":"16204:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19178,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19169,"src":"16208:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc","typeString":"literal_string \"log(bool,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19173,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16151:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19174,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16155:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16151:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16151:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19172,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"16135:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16135:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19181,"nodeType":"ExpressionStatement","src":"16135:77:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16071:3:14","parameters":{"id":19170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19165,"mutability":"mutable","name":"p0","nameLocation":"16080:2:14","nodeType":"VariableDeclaration","scope":19183,"src":"16075:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19164,"name":"bool","nodeType":"ElementaryTypeName","src":"16075:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19167,"mutability":"mutable","name":"p1","nameLocation":"16089:2:14","nodeType":"VariableDeclaration","scope":19183,"src":"16084:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19166,"name":"bool","nodeType":"ElementaryTypeName","src":"16084:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19169,"mutability":"mutable","name":"p2","nameLocation":"16107:2:14","nodeType":"VariableDeclaration","scope":19183,"src":"16093:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19168,"name":"string","nodeType":"ElementaryTypeName","src":"16093:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16074:36:14"},"returnParameters":{"id":19171,"nodeType":"ParameterList","parameters":[],"src":"16125:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19203,"nodeType":"FunctionDefinition","src":"16225:146:14","nodes":[],"body":{"id":19202,"nodeType":"Block","src":"16279:92:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c29","id":19195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16329:21:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590","typeString":"literal_string \"log(bool,bool,bool)\""},"value":"log(bool,bool,bool)"},{"id":19196,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19185,"src":"16352:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19197,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19187,"src":"16356:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19198,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19189,"src":"16360:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590","typeString":"literal_string \"log(bool,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19193,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16305:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16309:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16305:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16305:58:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19192,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"16289:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16289:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19201,"nodeType":"ExpressionStatement","src":"16289:75:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16234:3:14","parameters":{"id":19190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19185,"mutability":"mutable","name":"p0","nameLocation":"16243:2:14","nodeType":"VariableDeclaration","scope":19203,"src":"16238:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19184,"name":"bool","nodeType":"ElementaryTypeName","src":"16238:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19187,"mutability":"mutable","name":"p1","nameLocation":"16252:2:14","nodeType":"VariableDeclaration","scope":19203,"src":"16247:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19186,"name":"bool","nodeType":"ElementaryTypeName","src":"16247:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19189,"mutability":"mutable","name":"p2","nameLocation":"16261:2:14","nodeType":"VariableDeclaration","scope":19203,"src":"16256:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19188,"name":"bool","nodeType":"ElementaryTypeName","src":"16256:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16237:27:14"},"returnParameters":{"id":19191,"nodeType":"ParameterList","parameters":[],"src":"16279:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19223,"nodeType":"FunctionDefinition","src":"16377:152:14","nodes":[],"body":{"id":19222,"nodeType":"Block","src":"16434:95:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c6164647265737329","id":19215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16484:24:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81","typeString":"literal_string \"log(bool,bool,address)\""},"value":"log(bool,bool,address)"},{"id":19216,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19205,"src":"16510:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19217,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19207,"src":"16514:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19218,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19209,"src":"16518:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81","typeString":"literal_string \"log(bool,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19213,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16460:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16464:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16460:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16460:61:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19212,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"16444:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16444:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19221,"nodeType":"ExpressionStatement","src":"16444:78:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16386:3:14","parameters":{"id":19210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19205,"mutability":"mutable","name":"p0","nameLocation":"16395:2:14","nodeType":"VariableDeclaration","scope":19223,"src":"16390:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19204,"name":"bool","nodeType":"ElementaryTypeName","src":"16390:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19207,"mutability":"mutable","name":"p1","nameLocation":"16404:2:14","nodeType":"VariableDeclaration","scope":19223,"src":"16399:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19206,"name":"bool","nodeType":"ElementaryTypeName","src":"16399:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19209,"mutability":"mutable","name":"p2","nameLocation":"16416:2:14","nodeType":"VariableDeclaration","scope":19223,"src":"16408:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19208,"name":"address","nodeType":"ElementaryTypeName","src":"16408:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16389:30:14"},"returnParameters":{"id":19211,"nodeType":"ParameterList","parameters":[],"src":"16434:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19243,"nodeType":"FunctionDefinition","src":"16535:158:14","nodes":[],"body":{"id":19242,"nodeType":"Block","src":"16595:98:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e7432353629","id":19235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16645:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f7b9afb4f9ee9df3fee50155d0accfa23536f443bcbc89ec11f75df422d05ac","typeString":"literal_string \"log(bool,address,uint256)\""},"value":"log(bool,address,uint256)"},{"id":19236,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19225,"src":"16674:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19237,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19227,"src":"16678:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19238,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19229,"src":"16682:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f7b9afb4f9ee9df3fee50155d0accfa23536f443bcbc89ec11f75df422d05ac","typeString":"literal_string \"log(bool,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19233,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16621:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16625:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16621:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16621:64:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19232,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"16605:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16605:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19241,"nodeType":"ExpressionStatement","src":"16605:81:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16544:3:14","parameters":{"id":19230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19225,"mutability":"mutable","name":"p0","nameLocation":"16553:2:14","nodeType":"VariableDeclaration","scope":19243,"src":"16548:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19224,"name":"bool","nodeType":"ElementaryTypeName","src":"16548:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19227,"mutability":"mutable","name":"p1","nameLocation":"16565:2:14","nodeType":"VariableDeclaration","scope":19243,"src":"16557:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19226,"name":"address","nodeType":"ElementaryTypeName","src":"16557:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19229,"mutability":"mutable","name":"p2","nameLocation":"16577:2:14","nodeType":"VariableDeclaration","scope":19243,"src":"16569:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19228,"name":"uint256","nodeType":"ElementaryTypeName","src":"16569:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16547:33:14"},"returnParameters":{"id":19231,"nodeType":"ParameterList","parameters":[],"src":"16595:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19263,"nodeType":"FunctionDefinition","src":"16699:163:14","nodes":[],"body":{"id":19262,"nodeType":"Block","src":"16765:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e6729","id":19255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16815:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d","typeString":"literal_string \"log(bool,address,string)\""},"value":"log(bool,address,string)"},{"id":19256,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19245,"src":"16843:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19257,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19247,"src":"16847:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19258,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19249,"src":"16851:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d","typeString":"literal_string \"log(bool,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19253,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16791:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16795:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16791:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16791:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19252,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"16775:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16775:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19261,"nodeType":"ExpressionStatement","src":"16775:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16708:3:14","parameters":{"id":19250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19245,"mutability":"mutable","name":"p0","nameLocation":"16717:2:14","nodeType":"VariableDeclaration","scope":19263,"src":"16712:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19244,"name":"bool","nodeType":"ElementaryTypeName","src":"16712:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19247,"mutability":"mutable","name":"p1","nameLocation":"16729:2:14","nodeType":"VariableDeclaration","scope":19263,"src":"16721:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19246,"name":"address","nodeType":"ElementaryTypeName","src":"16721:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19249,"mutability":"mutable","name":"p2","nameLocation":"16747:2:14","nodeType":"VariableDeclaration","scope":19263,"src":"16733:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19248,"name":"string","nodeType":"ElementaryTypeName","src":"16733:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16711:39:14"},"returnParameters":{"id":19251,"nodeType":"ParameterList","parameters":[],"src":"16765:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19283,"nodeType":"FunctionDefinition","src":"16868:152:14","nodes":[],"body":{"id":19282,"nodeType":"Block","src":"16925:95:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c29","id":19275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16975:24:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908","typeString":"literal_string \"log(bool,address,bool)\""},"value":"log(bool,address,bool)"},{"id":19276,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19265,"src":"17001:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19277,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19267,"src":"17005:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19278,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19269,"src":"17009:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908","typeString":"literal_string \"log(bool,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19273,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16951:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16955:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16951:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16951:61:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19272,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"16935:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16935:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19281,"nodeType":"ExpressionStatement","src":"16935:78:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16877:3:14","parameters":{"id":19270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19265,"mutability":"mutable","name":"p0","nameLocation":"16886:2:14","nodeType":"VariableDeclaration","scope":19283,"src":"16881:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19264,"name":"bool","nodeType":"ElementaryTypeName","src":"16881:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19267,"mutability":"mutable","name":"p1","nameLocation":"16898:2:14","nodeType":"VariableDeclaration","scope":19283,"src":"16890:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19266,"name":"address","nodeType":"ElementaryTypeName","src":"16890:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19269,"mutability":"mutable","name":"p2","nameLocation":"16907:2:14","nodeType":"VariableDeclaration","scope":19283,"src":"16902:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19268,"name":"bool","nodeType":"ElementaryTypeName","src":"16902:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16880:30:14"},"returnParameters":{"id":19271,"nodeType":"ParameterList","parameters":[],"src":"16925:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19303,"nodeType":"FunctionDefinition","src":"17026:158:14","nodes":[],"body":{"id":19302,"nodeType":"Block","src":"17086:98:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c6164647265737329","id":19295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17136:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265","typeString":"literal_string \"log(bool,address,address)\""},"value":"log(bool,address,address)"},{"id":19296,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19285,"src":"17165:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19297,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19287,"src":"17169:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19298,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19289,"src":"17173:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265","typeString":"literal_string \"log(bool,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19293,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17112:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17116:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17112:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17112:64:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19292,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"17096:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17096:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19301,"nodeType":"ExpressionStatement","src":"17096:81:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17035:3:14","parameters":{"id":19290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19285,"mutability":"mutable","name":"p0","nameLocation":"17044:2:14","nodeType":"VariableDeclaration","scope":19303,"src":"17039:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19284,"name":"bool","nodeType":"ElementaryTypeName","src":"17039:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19287,"mutability":"mutable","name":"p1","nameLocation":"17056:2:14","nodeType":"VariableDeclaration","scope":19303,"src":"17048:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19286,"name":"address","nodeType":"ElementaryTypeName","src":"17048:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19289,"mutability":"mutable","name":"p2","nameLocation":"17068:2:14","nodeType":"VariableDeclaration","scope":19303,"src":"17060:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19288,"name":"address","nodeType":"ElementaryTypeName","src":"17060:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17038:33:14"},"returnParameters":{"id":19291,"nodeType":"ParameterList","parameters":[],"src":"17086:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19323,"nodeType":"FunctionDefinition","src":"17190:164:14","nodes":[],"body":{"id":19322,"nodeType":"Block","src":"17253:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e7432353629","id":19315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17303:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_b69bcaf6823fa467c87c127df102001d1ca4e8a6dc08cab8aa1e5ab4a0ae8c76","typeString":"literal_string \"log(address,uint256,uint256)\""},"value":"log(address,uint256,uint256)"},{"id":19316,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19305,"src":"17335:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19317,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19307,"src":"17339:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19318,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19309,"src":"17343:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b69bcaf6823fa467c87c127df102001d1ca4e8a6dc08cab8aa1e5ab4a0ae8c76","typeString":"literal_string \"log(address,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19313,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17279:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17283:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17279:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17279:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19312,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"17263:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17263:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19321,"nodeType":"ExpressionStatement","src":"17263:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17199:3:14","parameters":{"id":19310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19305,"mutability":"mutable","name":"p0","nameLocation":"17211:2:14","nodeType":"VariableDeclaration","scope":19323,"src":"17203:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19304,"name":"address","nodeType":"ElementaryTypeName","src":"17203:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19307,"mutability":"mutable","name":"p1","nameLocation":"17223:2:14","nodeType":"VariableDeclaration","scope":19323,"src":"17215:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19306,"name":"uint256","nodeType":"ElementaryTypeName","src":"17215:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19309,"mutability":"mutable","name":"p2","nameLocation":"17235:2:14","nodeType":"VariableDeclaration","scope":19323,"src":"17227:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19308,"name":"uint256","nodeType":"ElementaryTypeName","src":"17227:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17202:36:14"},"returnParameters":{"id":19311,"nodeType":"ParameterList","parameters":[],"src":"17253:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19343,"nodeType":"FunctionDefinition","src":"17360:169:14","nodes":[],"body":{"id":19342,"nodeType":"Block","src":"17429:100:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e6729","id":19335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17479:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1f2e8aa7ff0c088860d7b3f0d1dc288d8e8a07808525cc31a5691f1bc0e149d","typeString":"literal_string \"log(address,uint256,string)\""},"value":"log(address,uint256,string)"},{"id":19336,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19325,"src":"17510:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19337,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19327,"src":"17514:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19338,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19329,"src":"17518:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1f2e8aa7ff0c088860d7b3f0d1dc288d8e8a07808525cc31a5691f1bc0e149d","typeString":"literal_string \"log(address,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19333,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17455:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17459:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17455:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17455:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19332,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"17439:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17439:83:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19341,"nodeType":"ExpressionStatement","src":"17439:83:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17369:3:14","parameters":{"id":19330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19325,"mutability":"mutable","name":"p0","nameLocation":"17381:2:14","nodeType":"VariableDeclaration","scope":19343,"src":"17373:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19324,"name":"address","nodeType":"ElementaryTypeName","src":"17373:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19327,"mutability":"mutable","name":"p1","nameLocation":"17393:2:14","nodeType":"VariableDeclaration","scope":19343,"src":"17385:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19326,"name":"uint256","nodeType":"ElementaryTypeName","src":"17385:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19329,"mutability":"mutable","name":"p2","nameLocation":"17411:2:14","nodeType":"VariableDeclaration","scope":19343,"src":"17397:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19328,"name":"string","nodeType":"ElementaryTypeName","src":"17397:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17372:42:14"},"returnParameters":{"id":19331,"nodeType":"ParameterList","parameters":[],"src":"17429:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19363,"nodeType":"FunctionDefinition","src":"17535:158:14","nodes":[],"body":{"id":19362,"nodeType":"Block","src":"17595:98:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c29","id":19355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17645:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_678209a8f42181c670dc624bae130f552678a896a5cb06db485524796aca1390","typeString":"literal_string \"log(address,uint256,bool)\""},"value":"log(address,uint256,bool)"},{"id":19356,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19345,"src":"17674:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19357,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19347,"src":"17678:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19358,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19349,"src":"17682:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_678209a8f42181c670dc624bae130f552678a896a5cb06db485524796aca1390","typeString":"literal_string \"log(address,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19353,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17621:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17625:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17621:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17621:64:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19352,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"17605:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17605:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19361,"nodeType":"ExpressionStatement","src":"17605:81:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17544:3:14","parameters":{"id":19350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19345,"mutability":"mutable","name":"p0","nameLocation":"17556:2:14","nodeType":"VariableDeclaration","scope":19363,"src":"17548:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19344,"name":"address","nodeType":"ElementaryTypeName","src":"17548:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19347,"mutability":"mutable","name":"p1","nameLocation":"17568:2:14","nodeType":"VariableDeclaration","scope":19363,"src":"17560:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19346,"name":"uint256","nodeType":"ElementaryTypeName","src":"17560:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19349,"mutability":"mutable","name":"p2","nameLocation":"17577:2:14","nodeType":"VariableDeclaration","scope":19363,"src":"17572:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19348,"name":"bool","nodeType":"ElementaryTypeName","src":"17572:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17547:33:14"},"returnParameters":{"id":19351,"nodeType":"ParameterList","parameters":[],"src":"17595:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19383,"nodeType":"FunctionDefinition","src":"17699:164:14","nodes":[],"body":{"id":19382,"nodeType":"Block","src":"17762:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c6164647265737329","id":19375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17812:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7bc0d848840f8a2b7df87b30af9a8d9856aea86658fd890c9e8abce72cda0b36","typeString":"literal_string \"log(address,uint256,address)\""},"value":"log(address,uint256,address)"},{"id":19376,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19365,"src":"17844:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19377,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19367,"src":"17848:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19378,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19369,"src":"17852:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7bc0d848840f8a2b7df87b30af9a8d9856aea86658fd890c9e8abce72cda0b36","typeString":"literal_string \"log(address,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19373,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17788:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17792:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17788:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17788:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19372,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"17772:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17772:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19381,"nodeType":"ExpressionStatement","src":"17772:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17708:3:14","parameters":{"id":19370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19365,"mutability":"mutable","name":"p0","nameLocation":"17720:2:14","nodeType":"VariableDeclaration","scope":19383,"src":"17712:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19364,"name":"address","nodeType":"ElementaryTypeName","src":"17712:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19367,"mutability":"mutable","name":"p1","nameLocation":"17732:2:14","nodeType":"VariableDeclaration","scope":19383,"src":"17724:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19366,"name":"uint256","nodeType":"ElementaryTypeName","src":"17724:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19369,"mutability":"mutable","name":"p2","nameLocation":"17744:2:14","nodeType":"VariableDeclaration","scope":19383,"src":"17736:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19368,"name":"address","nodeType":"ElementaryTypeName","src":"17736:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17711:36:14"},"returnParameters":{"id":19371,"nodeType":"ParameterList","parameters":[],"src":"17762:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19403,"nodeType":"FunctionDefinition","src":"17869:169:14","nodes":[],"body":{"id":19402,"nodeType":"Block","src":"17938:100:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e7432353629","id":19395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17988:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_67dd6ff15de5c635b9900811039f919659774d9843a07b7bcdfb1b54315e9200","typeString":"literal_string \"log(address,string,uint256)\""},"value":"log(address,string,uint256)"},{"id":19396,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19385,"src":"18019:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19397,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19387,"src":"18023:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19398,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19389,"src":"18027:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_67dd6ff15de5c635b9900811039f919659774d9843a07b7bcdfb1b54315e9200","typeString":"literal_string \"log(address,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19393,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17964:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17968:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17964:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17964:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19392,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"17948:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17948:83:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19401,"nodeType":"ExpressionStatement","src":"17948:83:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17878:3:14","parameters":{"id":19390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19385,"mutability":"mutable","name":"p0","nameLocation":"17890:2:14","nodeType":"VariableDeclaration","scope":19403,"src":"17882:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19384,"name":"address","nodeType":"ElementaryTypeName","src":"17882:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19387,"mutability":"mutable","name":"p1","nameLocation":"17908:2:14","nodeType":"VariableDeclaration","scope":19403,"src":"17894:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19386,"name":"string","nodeType":"ElementaryTypeName","src":"17894:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19389,"mutability":"mutable","name":"p2","nameLocation":"17920:2:14","nodeType":"VariableDeclaration","scope":19403,"src":"17912:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19388,"name":"uint256","nodeType":"ElementaryTypeName","src":"17912:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17881:42:14"},"returnParameters":{"id":19391,"nodeType":"ParameterList","parameters":[],"src":"17938:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19423,"nodeType":"FunctionDefinition","src":"18044:174:14","nodes":[],"body":{"id":19422,"nodeType":"Block","src":"18119:99:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e6729","id":19415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18169:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158","typeString":"literal_string \"log(address,string,string)\""},"value":"log(address,string,string)"},{"id":19416,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19405,"src":"18199:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19417,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19407,"src":"18203:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19418,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19409,"src":"18207:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158","typeString":"literal_string \"log(address,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19413,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18145:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18149:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18145:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18145:65:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19412,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"18129:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18129:82:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19421,"nodeType":"ExpressionStatement","src":"18129:82:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18053:3:14","parameters":{"id":19410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19405,"mutability":"mutable","name":"p0","nameLocation":"18065:2:14","nodeType":"VariableDeclaration","scope":19423,"src":"18057:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19404,"name":"address","nodeType":"ElementaryTypeName","src":"18057:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19407,"mutability":"mutable","name":"p1","nameLocation":"18083:2:14","nodeType":"VariableDeclaration","scope":19423,"src":"18069:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19406,"name":"string","nodeType":"ElementaryTypeName","src":"18069:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19409,"mutability":"mutable","name":"p2","nameLocation":"18101:2:14","nodeType":"VariableDeclaration","scope":19423,"src":"18087:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19408,"name":"string","nodeType":"ElementaryTypeName","src":"18087:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18056:48:14"},"returnParameters":{"id":19411,"nodeType":"ParameterList","parameters":[],"src":"18119:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19443,"nodeType":"FunctionDefinition","src":"18224:163:14","nodes":[],"body":{"id":19442,"nodeType":"Block","src":"18290:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c29","id":19435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18340:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96","typeString":"literal_string \"log(address,string,bool)\""},"value":"log(address,string,bool)"},{"id":19436,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19425,"src":"18368:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19437,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19427,"src":"18372:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19438,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19429,"src":"18376:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96","typeString":"literal_string \"log(address,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19433,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18316:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18320:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18316:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18316:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19432,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"18300:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18300:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19441,"nodeType":"ExpressionStatement","src":"18300:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18233:3:14","parameters":{"id":19430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19425,"mutability":"mutable","name":"p0","nameLocation":"18245:2:14","nodeType":"VariableDeclaration","scope":19443,"src":"18237:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19424,"name":"address","nodeType":"ElementaryTypeName","src":"18237:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19427,"mutability":"mutable","name":"p1","nameLocation":"18263:2:14","nodeType":"VariableDeclaration","scope":19443,"src":"18249:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19426,"name":"string","nodeType":"ElementaryTypeName","src":"18249:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19429,"mutability":"mutable","name":"p2","nameLocation":"18272:2:14","nodeType":"VariableDeclaration","scope":19443,"src":"18267:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19428,"name":"bool","nodeType":"ElementaryTypeName","src":"18267:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18236:39:14"},"returnParameters":{"id":19431,"nodeType":"ParameterList","parameters":[],"src":"18290:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19463,"nodeType":"FunctionDefinition","src":"18393:169:14","nodes":[],"body":{"id":19462,"nodeType":"Block","src":"18462:100:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c6164647265737329","id":19455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18512:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231","typeString":"literal_string \"log(address,string,address)\""},"value":"log(address,string,address)"},{"id":19456,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19445,"src":"18543:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19457,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19447,"src":"18547:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19458,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19449,"src":"18551:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231","typeString":"literal_string \"log(address,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19453,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18488:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19454,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18492:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18488:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18488:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19452,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"18472:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18472:83:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19461,"nodeType":"ExpressionStatement","src":"18472:83:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18402:3:14","parameters":{"id":19450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19445,"mutability":"mutable","name":"p0","nameLocation":"18414:2:14","nodeType":"VariableDeclaration","scope":19463,"src":"18406:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19444,"name":"address","nodeType":"ElementaryTypeName","src":"18406:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19447,"mutability":"mutable","name":"p1","nameLocation":"18432:2:14","nodeType":"VariableDeclaration","scope":19463,"src":"18418:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19446,"name":"string","nodeType":"ElementaryTypeName","src":"18418:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19449,"mutability":"mutable","name":"p2","nameLocation":"18444:2:14","nodeType":"VariableDeclaration","scope":19463,"src":"18436:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19448,"name":"address","nodeType":"ElementaryTypeName","src":"18436:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18405:42:14"},"returnParameters":{"id":19451,"nodeType":"ParameterList","parameters":[],"src":"18462:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19483,"nodeType":"FunctionDefinition","src":"18568:158:14","nodes":[],"body":{"id":19482,"nodeType":"Block","src":"18628:98:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e7432353629","id":19475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18678:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9c4f99fb8e27f663a71adc9f15ace4bdc959202f3b7faa1c8ca25e5e7e8568f9","typeString":"literal_string \"log(address,bool,uint256)\""},"value":"log(address,bool,uint256)"},{"id":19476,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19465,"src":"18707:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19477,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19467,"src":"18711:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19478,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19469,"src":"18715:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9c4f99fb8e27f663a71adc9f15ace4bdc959202f3b7faa1c8ca25e5e7e8568f9","typeString":"literal_string \"log(address,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19473,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18654:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18658:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18654:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18654:64:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19472,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"18638:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18638:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19481,"nodeType":"ExpressionStatement","src":"18638:81:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18577:3:14","parameters":{"id":19470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19465,"mutability":"mutable","name":"p0","nameLocation":"18589:2:14","nodeType":"VariableDeclaration","scope":19483,"src":"18581:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19464,"name":"address","nodeType":"ElementaryTypeName","src":"18581:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19467,"mutability":"mutable","name":"p1","nameLocation":"18598:2:14","nodeType":"VariableDeclaration","scope":19483,"src":"18593:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19466,"name":"bool","nodeType":"ElementaryTypeName","src":"18593:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19469,"mutability":"mutable","name":"p2","nameLocation":"18610:2:14","nodeType":"VariableDeclaration","scope":19483,"src":"18602:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19468,"name":"uint256","nodeType":"ElementaryTypeName","src":"18602:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18580:33:14"},"returnParameters":{"id":19471,"nodeType":"ParameterList","parameters":[],"src":"18628:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19503,"nodeType":"FunctionDefinition","src":"18732:163:14","nodes":[],"body":{"id":19502,"nodeType":"Block","src":"18798:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e6729","id":19495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18848:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750","typeString":"literal_string \"log(address,bool,string)\""},"value":"log(address,bool,string)"},{"id":19496,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19485,"src":"18876:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19497,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19487,"src":"18880:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19498,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19489,"src":"18884:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750","typeString":"literal_string \"log(address,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19493,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18824:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18828:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18824:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18824:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19492,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"18808:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18808:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19501,"nodeType":"ExpressionStatement","src":"18808:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18741:3:14","parameters":{"id":19490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19485,"mutability":"mutable","name":"p0","nameLocation":"18753:2:14","nodeType":"VariableDeclaration","scope":19503,"src":"18745:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19484,"name":"address","nodeType":"ElementaryTypeName","src":"18745:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19487,"mutability":"mutable","name":"p1","nameLocation":"18762:2:14","nodeType":"VariableDeclaration","scope":19503,"src":"18757:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19486,"name":"bool","nodeType":"ElementaryTypeName","src":"18757:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19489,"mutability":"mutable","name":"p2","nameLocation":"18780:2:14","nodeType":"VariableDeclaration","scope":19503,"src":"18766:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19488,"name":"string","nodeType":"ElementaryTypeName","src":"18766:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18744:39:14"},"returnParameters":{"id":19491,"nodeType":"ParameterList","parameters":[],"src":"18798:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19523,"nodeType":"FunctionDefinition","src":"18901:152:14","nodes":[],"body":{"id":19522,"nodeType":"Block","src":"18958:95:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c29","id":19515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19008:24:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279","typeString":"literal_string \"log(address,bool,bool)\""},"value":"log(address,bool,bool)"},{"id":19516,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19505,"src":"19034:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19517,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19507,"src":"19038:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19518,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19509,"src":"19042:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279","typeString":"literal_string \"log(address,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19513,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18984:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18988:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18984:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18984:61:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19512,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"18968:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18968:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19521,"nodeType":"ExpressionStatement","src":"18968:78:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18910:3:14","parameters":{"id":19510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19505,"mutability":"mutable","name":"p0","nameLocation":"18922:2:14","nodeType":"VariableDeclaration","scope":19523,"src":"18914:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19504,"name":"address","nodeType":"ElementaryTypeName","src":"18914:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19507,"mutability":"mutable","name":"p1","nameLocation":"18931:2:14","nodeType":"VariableDeclaration","scope":19523,"src":"18926:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19506,"name":"bool","nodeType":"ElementaryTypeName","src":"18926:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19509,"mutability":"mutable","name":"p2","nameLocation":"18940:2:14","nodeType":"VariableDeclaration","scope":19523,"src":"18935:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19508,"name":"bool","nodeType":"ElementaryTypeName","src":"18935:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18913:30:14"},"returnParameters":{"id":19511,"nodeType":"ParameterList","parameters":[],"src":"18958:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19543,"nodeType":"FunctionDefinition","src":"19059:158:14","nodes":[],"body":{"id":19542,"nodeType":"Block","src":"19119:98:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c6164647265737329","id":19535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19169:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d","typeString":"literal_string \"log(address,bool,address)\""},"value":"log(address,bool,address)"},{"id":19536,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19525,"src":"19198:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19537,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19527,"src":"19202:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19538,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19529,"src":"19206:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d","typeString":"literal_string \"log(address,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19533,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19145:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19534,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19149:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19145:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19145:64:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19532,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"19129:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19129:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19541,"nodeType":"ExpressionStatement","src":"19129:81:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19068:3:14","parameters":{"id":19530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19525,"mutability":"mutable","name":"p0","nameLocation":"19080:2:14","nodeType":"VariableDeclaration","scope":19543,"src":"19072:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19524,"name":"address","nodeType":"ElementaryTypeName","src":"19072:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19527,"mutability":"mutable","name":"p1","nameLocation":"19089:2:14","nodeType":"VariableDeclaration","scope":19543,"src":"19084:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19526,"name":"bool","nodeType":"ElementaryTypeName","src":"19084:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19529,"mutability":"mutable","name":"p2","nameLocation":"19101:2:14","nodeType":"VariableDeclaration","scope":19543,"src":"19093:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19528,"name":"address","nodeType":"ElementaryTypeName","src":"19093:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19071:33:14"},"returnParameters":{"id":19531,"nodeType":"ParameterList","parameters":[],"src":"19119:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19563,"nodeType":"FunctionDefinition","src":"19223:164:14","nodes":[],"body":{"id":19562,"nodeType":"Block","src":"19286:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e7432353629","id":19555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19336:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_17fe6185890336f35fbbd1b2962ba4f7207a4a65eb5b7443a7be8a152af930a4","typeString":"literal_string \"log(address,address,uint256)\""},"value":"log(address,address,uint256)"},{"id":19556,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19545,"src":"19368:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19557,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19547,"src":"19372:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19558,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19549,"src":"19376:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_17fe6185890336f35fbbd1b2962ba4f7207a4a65eb5b7443a7be8a152af930a4","typeString":"literal_string \"log(address,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19553,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19312:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19316:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19312:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19312:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19552,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"19296:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19296:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19561,"nodeType":"ExpressionStatement","src":"19296:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19232:3:14","parameters":{"id":19550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19545,"mutability":"mutable","name":"p0","nameLocation":"19244:2:14","nodeType":"VariableDeclaration","scope":19563,"src":"19236:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19544,"name":"address","nodeType":"ElementaryTypeName","src":"19236:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19547,"mutability":"mutable","name":"p1","nameLocation":"19256:2:14","nodeType":"VariableDeclaration","scope":19563,"src":"19248:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19546,"name":"address","nodeType":"ElementaryTypeName","src":"19248:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19549,"mutability":"mutable","name":"p2","nameLocation":"19268:2:14","nodeType":"VariableDeclaration","scope":19563,"src":"19260:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19548,"name":"uint256","nodeType":"ElementaryTypeName","src":"19260:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19235:36:14"},"returnParameters":{"id":19551,"nodeType":"ParameterList","parameters":[],"src":"19286:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19583,"nodeType":"FunctionDefinition","src":"19393:169:14","nodes":[],"body":{"id":19582,"nodeType":"Block","src":"19462:100:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e6729","id":19575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19512:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee","typeString":"literal_string \"log(address,address,string)\""},"value":"log(address,address,string)"},{"id":19576,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19565,"src":"19543:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19577,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19567,"src":"19547:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19578,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19569,"src":"19551:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee","typeString":"literal_string \"log(address,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19573,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19488:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19492:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19488:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19488:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19572,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"19472:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19472:83:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19581,"nodeType":"ExpressionStatement","src":"19472:83:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19402:3:14","parameters":{"id":19570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19565,"mutability":"mutable","name":"p0","nameLocation":"19414:2:14","nodeType":"VariableDeclaration","scope":19583,"src":"19406:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19564,"name":"address","nodeType":"ElementaryTypeName","src":"19406:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19567,"mutability":"mutable","name":"p1","nameLocation":"19426:2:14","nodeType":"VariableDeclaration","scope":19583,"src":"19418:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19566,"name":"address","nodeType":"ElementaryTypeName","src":"19418:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19569,"mutability":"mutable","name":"p2","nameLocation":"19444:2:14","nodeType":"VariableDeclaration","scope":19583,"src":"19430:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19568,"name":"string","nodeType":"ElementaryTypeName","src":"19430:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19405:42:14"},"returnParameters":{"id":19571,"nodeType":"ParameterList","parameters":[],"src":"19462:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19603,"nodeType":"FunctionDefinition","src":"19568:158:14","nodes":[],"body":{"id":19602,"nodeType":"Block","src":"19628:98:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c29","id":19595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19678:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc","typeString":"literal_string \"log(address,address,bool)\""},"value":"log(address,address,bool)"},{"id":19596,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19585,"src":"19707:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19597,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19587,"src":"19711:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19598,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19589,"src":"19715:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc","typeString":"literal_string \"log(address,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19593,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19654:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19658:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19654:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19654:64:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19592,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"19638:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19638:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19601,"nodeType":"ExpressionStatement","src":"19638:81:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19577:3:14","parameters":{"id":19590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19585,"mutability":"mutable","name":"p0","nameLocation":"19589:2:14","nodeType":"VariableDeclaration","scope":19603,"src":"19581:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19584,"name":"address","nodeType":"ElementaryTypeName","src":"19581:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19587,"mutability":"mutable","name":"p1","nameLocation":"19601:2:14","nodeType":"VariableDeclaration","scope":19603,"src":"19593:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19586,"name":"address","nodeType":"ElementaryTypeName","src":"19593:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19589,"mutability":"mutable","name":"p2","nameLocation":"19610:2:14","nodeType":"VariableDeclaration","scope":19603,"src":"19605:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19588,"name":"bool","nodeType":"ElementaryTypeName","src":"19605:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19580:33:14"},"returnParameters":{"id":19591,"nodeType":"ParameterList","parameters":[],"src":"19628:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19623,"nodeType":"FunctionDefinition","src":"19732:164:14","nodes":[],"body":{"id":19622,"nodeType":"Block","src":"19795:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c6164647265737329","id":19615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19845:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830","typeString":"literal_string \"log(address,address,address)\""},"value":"log(address,address,address)"},{"id":19616,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19605,"src":"19877:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19617,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19607,"src":"19881:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19618,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19609,"src":"19885:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830","typeString":"literal_string \"log(address,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19613,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19821:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19825:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19821:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19821:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19612,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"19805:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19805:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19621,"nodeType":"ExpressionStatement","src":"19805:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19741:3:14","parameters":{"id":19610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19605,"mutability":"mutable","name":"p0","nameLocation":"19753:2:14","nodeType":"VariableDeclaration","scope":19623,"src":"19745:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19604,"name":"address","nodeType":"ElementaryTypeName","src":"19745:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19607,"mutability":"mutable","name":"p1","nameLocation":"19765:2:14","nodeType":"VariableDeclaration","scope":19623,"src":"19757:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19606,"name":"address","nodeType":"ElementaryTypeName","src":"19757:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19609,"mutability":"mutable","name":"p2","nameLocation":"19777:2:14","nodeType":"VariableDeclaration","scope":19623,"src":"19769:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19608,"name":"address","nodeType":"ElementaryTypeName","src":"19769:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19744:36:14"},"returnParameters":{"id":19611,"nodeType":"ParameterList","parameters":[],"src":"19795:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19646,"nodeType":"FunctionDefinition","src":"19902:188:14","nodes":[],"body":{"id":19645,"nodeType":"Block","src":"19977:113:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c75696e7432353629","id":19637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20027:38:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_193fb8009d4d1e3c22da0dd831b1e3aed72b8cabd1ebf3967b4ab3c2bbcf1c4f","typeString":"literal_string \"log(uint256,uint256,uint256,uint256)\""},"value":"log(uint256,uint256,uint256,uint256)"},{"id":19638,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19625,"src":"20067:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19639,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19627,"src":"20071:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19640,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19629,"src":"20075:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19641,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19631,"src":"20079:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_193fb8009d4d1e3c22da0dd831b1e3aed72b8cabd1ebf3967b4ab3c2bbcf1c4f","typeString":"literal_string \"log(uint256,uint256,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19635,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20003:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20007:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20003:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20003:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19634,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"19987:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19987:96:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19644,"nodeType":"ExpressionStatement","src":"19987:96:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19911:3:14","parameters":{"id":19632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19625,"mutability":"mutable","name":"p0","nameLocation":"19923:2:14","nodeType":"VariableDeclaration","scope":19646,"src":"19915:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19624,"name":"uint256","nodeType":"ElementaryTypeName","src":"19915:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19627,"mutability":"mutable","name":"p1","nameLocation":"19935:2:14","nodeType":"VariableDeclaration","scope":19646,"src":"19927:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19626,"name":"uint256","nodeType":"ElementaryTypeName","src":"19927:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19629,"mutability":"mutable","name":"p2","nameLocation":"19947:2:14","nodeType":"VariableDeclaration","scope":19646,"src":"19939:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19628,"name":"uint256","nodeType":"ElementaryTypeName","src":"19939:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19631,"mutability":"mutable","name":"p3","nameLocation":"19959:2:14","nodeType":"VariableDeclaration","scope":19646,"src":"19951:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19630,"name":"uint256","nodeType":"ElementaryTypeName","src":"19951:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19914:48:14"},"returnParameters":{"id":19633,"nodeType":"ParameterList","parameters":[],"src":"19977:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19669,"nodeType":"FunctionDefinition","src":"20096:193:14","nodes":[],"body":{"id":19668,"nodeType":"Block","src":"20177:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c737472696e6729","id":19660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20227:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_59cfcbe3e387f57023dcccd8733484dcb5a23a41a25c4015c01a4e8d3520c4ef","typeString":"literal_string \"log(uint256,uint256,uint256,string)\""},"value":"log(uint256,uint256,uint256,string)"},{"id":19661,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19648,"src":"20266:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19662,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19650,"src":"20270:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19663,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19652,"src":"20274:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19664,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19654,"src":"20278:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_59cfcbe3e387f57023dcccd8733484dcb5a23a41a25c4015c01a4e8d3520c4ef","typeString":"literal_string \"log(uint256,uint256,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19658,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20203:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20207:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20203:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20203:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19657,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"20187:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20187:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19667,"nodeType":"ExpressionStatement","src":"20187:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20105:3:14","parameters":{"id":19655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19648,"mutability":"mutable","name":"p0","nameLocation":"20117:2:14","nodeType":"VariableDeclaration","scope":19669,"src":"20109:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19647,"name":"uint256","nodeType":"ElementaryTypeName","src":"20109:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19650,"mutability":"mutable","name":"p1","nameLocation":"20129:2:14","nodeType":"VariableDeclaration","scope":19669,"src":"20121:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19649,"name":"uint256","nodeType":"ElementaryTypeName","src":"20121:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19652,"mutability":"mutable","name":"p2","nameLocation":"20141:2:14","nodeType":"VariableDeclaration","scope":19669,"src":"20133:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19651,"name":"uint256","nodeType":"ElementaryTypeName","src":"20133:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19654,"mutability":"mutable","name":"p3","nameLocation":"20159:2:14","nodeType":"VariableDeclaration","scope":19669,"src":"20145:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19653,"name":"string","nodeType":"ElementaryTypeName","src":"20145:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"20108:54:14"},"returnParameters":{"id":19656,"nodeType":"ParameterList","parameters":[],"src":"20177:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19692,"nodeType":"FunctionDefinition","src":"20295:182:14","nodes":[],"body":{"id":19691,"nodeType":"Block","src":"20367:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c626f6f6c29","id":19683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20417:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c598d18505e9c7404a061484d6144251d0ef342167a57ace85723d498abac8e3","typeString":"literal_string \"log(uint256,uint256,uint256,bool)\""},"value":"log(uint256,uint256,uint256,bool)"},{"id":19684,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19671,"src":"20454:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19685,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19673,"src":"20458:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19686,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19675,"src":"20462:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19687,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19677,"src":"20466:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c598d18505e9c7404a061484d6144251d0ef342167a57ace85723d498abac8e3","typeString":"literal_string \"log(uint256,uint256,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19681,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20393:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20397:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20393:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20393:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19680,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"20377:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20377:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19690,"nodeType":"ExpressionStatement","src":"20377:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20304:3:14","parameters":{"id":19678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19671,"mutability":"mutable","name":"p0","nameLocation":"20316:2:14","nodeType":"VariableDeclaration","scope":19692,"src":"20308:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19670,"name":"uint256","nodeType":"ElementaryTypeName","src":"20308:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19673,"mutability":"mutable","name":"p1","nameLocation":"20328:2:14","nodeType":"VariableDeclaration","scope":19692,"src":"20320:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19672,"name":"uint256","nodeType":"ElementaryTypeName","src":"20320:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19675,"mutability":"mutable","name":"p2","nameLocation":"20340:2:14","nodeType":"VariableDeclaration","scope":19692,"src":"20332:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19674,"name":"uint256","nodeType":"ElementaryTypeName","src":"20332:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19677,"mutability":"mutable","name":"p3","nameLocation":"20349:2:14","nodeType":"VariableDeclaration","scope":19692,"src":"20344:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19676,"name":"bool","nodeType":"ElementaryTypeName","src":"20344:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20307:45:14"},"returnParameters":{"id":19679,"nodeType":"ParameterList","parameters":[],"src":"20367:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19715,"nodeType":"FunctionDefinition","src":"20483:188:14","nodes":[],"body":{"id":19714,"nodeType":"Block","src":"20558:113:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c6164647265737329","id":19706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20608:38:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_fa8185afaca325eb459625959e5610b99e97bbcba8d5834d7632610b4f237c79","typeString":"literal_string \"log(uint256,uint256,uint256,address)\""},"value":"log(uint256,uint256,uint256,address)"},{"id":19707,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19694,"src":"20648:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19708,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19696,"src":"20652:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19709,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19698,"src":"20656:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19710,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19700,"src":"20660:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fa8185afaca325eb459625959e5610b99e97bbcba8d5834d7632610b4f237c79","typeString":"literal_string \"log(uint256,uint256,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19704,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20584:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20588:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20584:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20584:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19703,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"20568:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20568:96:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19713,"nodeType":"ExpressionStatement","src":"20568:96:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20492:3:14","parameters":{"id":19701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19694,"mutability":"mutable","name":"p0","nameLocation":"20504:2:14","nodeType":"VariableDeclaration","scope":19715,"src":"20496:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19693,"name":"uint256","nodeType":"ElementaryTypeName","src":"20496:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19696,"mutability":"mutable","name":"p1","nameLocation":"20516:2:14","nodeType":"VariableDeclaration","scope":19715,"src":"20508:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19695,"name":"uint256","nodeType":"ElementaryTypeName","src":"20508:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19698,"mutability":"mutable","name":"p2","nameLocation":"20528:2:14","nodeType":"VariableDeclaration","scope":19715,"src":"20520:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19697,"name":"uint256","nodeType":"ElementaryTypeName","src":"20520:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19700,"mutability":"mutable","name":"p3","nameLocation":"20540:2:14","nodeType":"VariableDeclaration","scope":19715,"src":"20532:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19699,"name":"address","nodeType":"ElementaryTypeName","src":"20532:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20495:48:14"},"returnParameters":{"id":19702,"nodeType":"ParameterList","parameters":[],"src":"20558:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19738,"nodeType":"FunctionDefinition","src":"20677:193:14","nodes":[],"body":{"id":19737,"nodeType":"Block","src":"20758:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c75696e7432353629","id":19729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20808:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5da297eb5acf47b1a9c0089c080d654cc07f2a8c9aa94fc68af26a6405cde114","typeString":"literal_string \"log(uint256,uint256,string,uint256)\""},"value":"log(uint256,uint256,string,uint256)"},{"id":19730,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19717,"src":"20847:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19731,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19719,"src":"20851:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19732,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19721,"src":"20855:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19733,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19723,"src":"20859:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5da297eb5acf47b1a9c0089c080d654cc07f2a8c9aa94fc68af26a6405cde114","typeString":"literal_string \"log(uint256,uint256,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19727,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20784:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20788:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20784:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20784:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19726,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"20768:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20768:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19736,"nodeType":"ExpressionStatement","src":"20768:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20686:3:14","parameters":{"id":19724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19717,"mutability":"mutable","name":"p0","nameLocation":"20698:2:14","nodeType":"VariableDeclaration","scope":19738,"src":"20690:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19716,"name":"uint256","nodeType":"ElementaryTypeName","src":"20690:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19719,"mutability":"mutable","name":"p1","nameLocation":"20710:2:14","nodeType":"VariableDeclaration","scope":19738,"src":"20702:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19718,"name":"uint256","nodeType":"ElementaryTypeName","src":"20702:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19721,"mutability":"mutable","name":"p2","nameLocation":"20728:2:14","nodeType":"VariableDeclaration","scope":19738,"src":"20714:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19720,"name":"string","nodeType":"ElementaryTypeName","src":"20714:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19723,"mutability":"mutable","name":"p3","nameLocation":"20740:2:14","nodeType":"VariableDeclaration","scope":19738,"src":"20732:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19722,"name":"uint256","nodeType":"ElementaryTypeName","src":"20732:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20689:54:14"},"returnParameters":{"id":19725,"nodeType":"ParameterList","parameters":[],"src":"20758:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19761,"nodeType":"FunctionDefinition","src":"20876:198:14","nodes":[],"body":{"id":19760,"nodeType":"Block","src":"20963:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c737472696e6729","id":19752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21013:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_27d8afd2525217fff7302dbf79acc81edc09cb300d94f2503a4fb8a8115910e0","typeString":"literal_string \"log(uint256,uint256,string,string)\""},"value":"log(uint256,uint256,string,string)"},{"id":19753,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19740,"src":"21051:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19754,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19742,"src":"21055:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19755,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19744,"src":"21059:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19756,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19746,"src":"21063:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_27d8afd2525217fff7302dbf79acc81edc09cb300d94f2503a4fb8a8115910e0","typeString":"literal_string \"log(uint256,uint256,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19750,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20989:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19751,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20993:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20989:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20989:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19749,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"20973:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20973:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19759,"nodeType":"ExpressionStatement","src":"20973:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20885:3:14","parameters":{"id":19747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19740,"mutability":"mutable","name":"p0","nameLocation":"20897:2:14","nodeType":"VariableDeclaration","scope":19761,"src":"20889:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19739,"name":"uint256","nodeType":"ElementaryTypeName","src":"20889:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19742,"mutability":"mutable","name":"p1","nameLocation":"20909:2:14","nodeType":"VariableDeclaration","scope":19761,"src":"20901:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19741,"name":"uint256","nodeType":"ElementaryTypeName","src":"20901:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19744,"mutability":"mutable","name":"p2","nameLocation":"20927:2:14","nodeType":"VariableDeclaration","scope":19761,"src":"20913:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19743,"name":"string","nodeType":"ElementaryTypeName","src":"20913:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19746,"mutability":"mutable","name":"p3","nameLocation":"20945:2:14","nodeType":"VariableDeclaration","scope":19761,"src":"20931:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19745,"name":"string","nodeType":"ElementaryTypeName","src":"20931:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"20888:60:14"},"returnParameters":{"id":19748,"nodeType":"ParameterList","parameters":[],"src":"20963:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19784,"nodeType":"FunctionDefinition","src":"21080:187:14","nodes":[],"body":{"id":19783,"nodeType":"Block","src":"21158:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c626f6f6c29","id":19775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21208:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7af6ab2578caf14043420c6b292dcb787d09d31b13365d7673f201f9b2e310c9","typeString":"literal_string \"log(uint256,uint256,string,bool)\""},"value":"log(uint256,uint256,string,bool)"},{"id":19776,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19763,"src":"21244:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19777,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19765,"src":"21248:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19778,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19767,"src":"21252:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19779,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19769,"src":"21256:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7af6ab2578caf14043420c6b292dcb787d09d31b13365d7673f201f9b2e310c9","typeString":"literal_string \"log(uint256,uint256,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19773,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21184:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21188:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21184:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21184:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19772,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"21168:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21168:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19782,"nodeType":"ExpressionStatement","src":"21168:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21089:3:14","parameters":{"id":19770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19763,"mutability":"mutable","name":"p0","nameLocation":"21101:2:14","nodeType":"VariableDeclaration","scope":19784,"src":"21093:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19762,"name":"uint256","nodeType":"ElementaryTypeName","src":"21093:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19765,"mutability":"mutable","name":"p1","nameLocation":"21113:2:14","nodeType":"VariableDeclaration","scope":19784,"src":"21105:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19764,"name":"uint256","nodeType":"ElementaryTypeName","src":"21105:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19767,"mutability":"mutable","name":"p2","nameLocation":"21131:2:14","nodeType":"VariableDeclaration","scope":19784,"src":"21117:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19766,"name":"string","nodeType":"ElementaryTypeName","src":"21117:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19769,"mutability":"mutable","name":"p3","nameLocation":"21140:2:14","nodeType":"VariableDeclaration","scope":19784,"src":"21135:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19768,"name":"bool","nodeType":"ElementaryTypeName","src":"21135:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21092:51:14"},"returnParameters":{"id":19771,"nodeType":"ParameterList","parameters":[],"src":"21158:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19807,"nodeType":"FunctionDefinition","src":"21273:193:14","nodes":[],"body":{"id":19806,"nodeType":"Block","src":"21354:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c6164647265737329","id":19798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21404:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_42d21db701843c064ab7fb7cddd0cda130fcc29c7289dd90519dfea1322b1a53","typeString":"literal_string \"log(uint256,uint256,string,address)\""},"value":"log(uint256,uint256,string,address)"},{"id":19799,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19786,"src":"21443:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19800,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19788,"src":"21447:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19801,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19790,"src":"21451:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19802,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19792,"src":"21455:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42d21db701843c064ab7fb7cddd0cda130fcc29c7289dd90519dfea1322b1a53","typeString":"literal_string \"log(uint256,uint256,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19796,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21380:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21384:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21380:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21380:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19795,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"21364:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21364:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19805,"nodeType":"ExpressionStatement","src":"21364:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21282:3:14","parameters":{"id":19793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19786,"mutability":"mutable","name":"p0","nameLocation":"21294:2:14","nodeType":"VariableDeclaration","scope":19807,"src":"21286:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19785,"name":"uint256","nodeType":"ElementaryTypeName","src":"21286:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19788,"mutability":"mutable","name":"p1","nameLocation":"21306:2:14","nodeType":"VariableDeclaration","scope":19807,"src":"21298:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19787,"name":"uint256","nodeType":"ElementaryTypeName","src":"21298:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19790,"mutability":"mutable","name":"p2","nameLocation":"21324:2:14","nodeType":"VariableDeclaration","scope":19807,"src":"21310:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19789,"name":"string","nodeType":"ElementaryTypeName","src":"21310:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19792,"mutability":"mutable","name":"p3","nameLocation":"21336:2:14","nodeType":"VariableDeclaration","scope":19807,"src":"21328:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19791,"name":"address","nodeType":"ElementaryTypeName","src":"21328:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21285:54:14"},"returnParameters":{"id":19794,"nodeType":"ParameterList","parameters":[],"src":"21354:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19830,"nodeType":"FunctionDefinition","src":"21472:182:14","nodes":[],"body":{"id":19829,"nodeType":"Block","src":"21544:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c75696e7432353629","id":19821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21594:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb7f6fd2c2005d3f08b2528135265cced621d1abf62716b05a9b62bc732577fd","typeString":"literal_string \"log(uint256,uint256,bool,uint256)\""},"value":"log(uint256,uint256,bool,uint256)"},{"id":19822,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19809,"src":"21631:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19823,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19811,"src":"21635:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19824,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19813,"src":"21639:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19825,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19815,"src":"21643:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb7f6fd2c2005d3f08b2528135265cced621d1abf62716b05a9b62bc732577fd","typeString":"literal_string \"log(uint256,uint256,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19819,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21570:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21574:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21570:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21570:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19818,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"21554:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21554:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19828,"nodeType":"ExpressionStatement","src":"21554:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21481:3:14","parameters":{"id":19816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19809,"mutability":"mutable","name":"p0","nameLocation":"21493:2:14","nodeType":"VariableDeclaration","scope":19830,"src":"21485:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19808,"name":"uint256","nodeType":"ElementaryTypeName","src":"21485:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19811,"mutability":"mutable","name":"p1","nameLocation":"21505:2:14","nodeType":"VariableDeclaration","scope":19830,"src":"21497:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19810,"name":"uint256","nodeType":"ElementaryTypeName","src":"21497:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19813,"mutability":"mutable","name":"p2","nameLocation":"21514:2:14","nodeType":"VariableDeclaration","scope":19830,"src":"21509:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19812,"name":"bool","nodeType":"ElementaryTypeName","src":"21509:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19815,"mutability":"mutable","name":"p3","nameLocation":"21526:2:14","nodeType":"VariableDeclaration","scope":19830,"src":"21518:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19814,"name":"uint256","nodeType":"ElementaryTypeName","src":"21518:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21484:45:14"},"returnParameters":{"id":19817,"nodeType":"ParameterList","parameters":[],"src":"21544:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19853,"nodeType":"FunctionDefinition","src":"21660:187:14","nodes":[],"body":{"id":19852,"nodeType":"Block","src":"21738:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c737472696e6729","id":19844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21788:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5b4fc99467445b3de47079da2d48b3031bb8d3adcbee781cbdca55596f1414a","typeString":"literal_string \"log(uint256,uint256,bool,string)\""},"value":"log(uint256,uint256,bool,string)"},{"id":19845,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19832,"src":"21824:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19846,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19834,"src":"21828:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19847,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19836,"src":"21832:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19848,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19838,"src":"21836:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5b4fc99467445b3de47079da2d48b3031bb8d3adcbee781cbdca55596f1414a","typeString":"literal_string \"log(uint256,uint256,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19842,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21764:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19843,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21768:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21764:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21764:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19841,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"21748:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21748:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19851,"nodeType":"ExpressionStatement","src":"21748:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21669:3:14","parameters":{"id":19839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19832,"mutability":"mutable","name":"p0","nameLocation":"21681:2:14","nodeType":"VariableDeclaration","scope":19853,"src":"21673:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19831,"name":"uint256","nodeType":"ElementaryTypeName","src":"21673:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19834,"mutability":"mutable","name":"p1","nameLocation":"21693:2:14","nodeType":"VariableDeclaration","scope":19853,"src":"21685:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19833,"name":"uint256","nodeType":"ElementaryTypeName","src":"21685:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19836,"mutability":"mutable","name":"p2","nameLocation":"21702:2:14","nodeType":"VariableDeclaration","scope":19853,"src":"21697:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19835,"name":"bool","nodeType":"ElementaryTypeName","src":"21697:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19838,"mutability":"mutable","name":"p3","nameLocation":"21720:2:14","nodeType":"VariableDeclaration","scope":19853,"src":"21706:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19837,"name":"string","nodeType":"ElementaryTypeName","src":"21706:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21672:51:14"},"returnParameters":{"id":19840,"nodeType":"ParameterList","parameters":[],"src":"21738:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19876,"nodeType":"FunctionDefinition","src":"21853:176:14","nodes":[],"body":{"id":19875,"nodeType":"Block","src":"21922:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c626f6f6c29","id":19867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21972:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ab085ae680de5118cde80cb5e8cb1f7383786238f1394e82b7ab82553a0dd7fe","typeString":"literal_string \"log(uint256,uint256,bool,bool)\""},"value":"log(uint256,uint256,bool,bool)"},{"id":19868,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19855,"src":"22006:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19869,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19857,"src":"22010:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19870,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19859,"src":"22014:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19871,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19861,"src":"22018:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ab085ae680de5118cde80cb5e8cb1f7383786238f1394e82b7ab82553a0dd7fe","typeString":"literal_string \"log(uint256,uint256,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19865,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21948:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21952:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21948:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21948:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19864,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"21932:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21932:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19874,"nodeType":"ExpressionStatement","src":"21932:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21862:3:14","parameters":{"id":19862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19855,"mutability":"mutable","name":"p0","nameLocation":"21874:2:14","nodeType":"VariableDeclaration","scope":19876,"src":"21866:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19854,"name":"uint256","nodeType":"ElementaryTypeName","src":"21866:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19857,"mutability":"mutable","name":"p1","nameLocation":"21886:2:14","nodeType":"VariableDeclaration","scope":19876,"src":"21878:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19856,"name":"uint256","nodeType":"ElementaryTypeName","src":"21878:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19859,"mutability":"mutable","name":"p2","nameLocation":"21895:2:14","nodeType":"VariableDeclaration","scope":19876,"src":"21890:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19858,"name":"bool","nodeType":"ElementaryTypeName","src":"21890:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19861,"mutability":"mutable","name":"p3","nameLocation":"21904:2:14","nodeType":"VariableDeclaration","scope":19876,"src":"21899:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19860,"name":"bool","nodeType":"ElementaryTypeName","src":"21899:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21865:42:14"},"returnParameters":{"id":19863,"nodeType":"ParameterList","parameters":[],"src":"21922:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19899,"nodeType":"FunctionDefinition","src":"22035:182:14","nodes":[],"body":{"id":19898,"nodeType":"Block","src":"22107:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c6164647265737329","id":19890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22157:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a816a83f59c7e2fc96bb179b1fa8fd5307277d58bad9d6b835a280d4474fc1b","typeString":"literal_string \"log(uint256,uint256,bool,address)\""},"value":"log(uint256,uint256,bool,address)"},{"id":19891,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19878,"src":"22194:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19892,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19880,"src":"22198:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19893,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19882,"src":"22202:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19894,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19884,"src":"22206:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9a816a83f59c7e2fc96bb179b1fa8fd5307277d58bad9d6b835a280d4474fc1b","typeString":"literal_string \"log(uint256,uint256,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19888,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22133:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22137:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22133:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22133:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19887,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"22117:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22117:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19897,"nodeType":"ExpressionStatement","src":"22117:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22044:3:14","parameters":{"id":19885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19878,"mutability":"mutable","name":"p0","nameLocation":"22056:2:14","nodeType":"VariableDeclaration","scope":19899,"src":"22048:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19877,"name":"uint256","nodeType":"ElementaryTypeName","src":"22048:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19880,"mutability":"mutable","name":"p1","nameLocation":"22068:2:14","nodeType":"VariableDeclaration","scope":19899,"src":"22060:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19879,"name":"uint256","nodeType":"ElementaryTypeName","src":"22060:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19882,"mutability":"mutable","name":"p2","nameLocation":"22077:2:14","nodeType":"VariableDeclaration","scope":19899,"src":"22072:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19881,"name":"bool","nodeType":"ElementaryTypeName","src":"22072:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19884,"mutability":"mutable","name":"p3","nameLocation":"22089:2:14","nodeType":"VariableDeclaration","scope":19899,"src":"22081:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19883,"name":"address","nodeType":"ElementaryTypeName","src":"22081:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22047:45:14"},"returnParameters":{"id":19886,"nodeType":"ParameterList","parameters":[],"src":"22107:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19922,"nodeType":"FunctionDefinition","src":"22223:188:14","nodes":[],"body":{"id":19921,"nodeType":"Block","src":"22298:113:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c75696e7432353629","id":19913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22348:38:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_88f6e4b2e9fd1797748b31e8b1564d27784c7a0b5de7a75df225524205baab36","typeString":"literal_string \"log(uint256,uint256,address,uint256)\""},"value":"log(uint256,uint256,address,uint256)"},{"id":19914,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19901,"src":"22388:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19915,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19903,"src":"22392:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19916,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19905,"src":"22396:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19917,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19907,"src":"22400:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_88f6e4b2e9fd1797748b31e8b1564d27784c7a0b5de7a75df225524205baab36","typeString":"literal_string \"log(uint256,uint256,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19911,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22324:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19912,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22328:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22324:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22324:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19910,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"22308:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22308:96:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19920,"nodeType":"ExpressionStatement","src":"22308:96:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22232:3:14","parameters":{"id":19908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19901,"mutability":"mutable","name":"p0","nameLocation":"22244:2:14","nodeType":"VariableDeclaration","scope":19922,"src":"22236:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19900,"name":"uint256","nodeType":"ElementaryTypeName","src":"22236:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19903,"mutability":"mutable","name":"p1","nameLocation":"22256:2:14","nodeType":"VariableDeclaration","scope":19922,"src":"22248:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19902,"name":"uint256","nodeType":"ElementaryTypeName","src":"22248:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19905,"mutability":"mutable","name":"p2","nameLocation":"22268:2:14","nodeType":"VariableDeclaration","scope":19922,"src":"22260:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19904,"name":"address","nodeType":"ElementaryTypeName","src":"22260:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19907,"mutability":"mutable","name":"p3","nameLocation":"22280:2:14","nodeType":"VariableDeclaration","scope":19922,"src":"22272:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19906,"name":"uint256","nodeType":"ElementaryTypeName","src":"22272:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22235:48:14"},"returnParameters":{"id":19909,"nodeType":"ParameterList","parameters":[],"src":"22298:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19945,"nodeType":"FunctionDefinition","src":"22417:193:14","nodes":[],"body":{"id":19944,"nodeType":"Block","src":"22498:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c737472696e6729","id":19936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22548:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6cde40b8d4f88da65710732f1ce432c86447f486bf713e5763c0ab174df12f40","typeString":"literal_string \"log(uint256,uint256,address,string)\""},"value":"log(uint256,uint256,address,string)"},{"id":19937,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19924,"src":"22587:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19938,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19926,"src":"22591:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19939,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19928,"src":"22595:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19940,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19930,"src":"22599:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6cde40b8d4f88da65710732f1ce432c86447f486bf713e5763c0ab174df12f40","typeString":"literal_string \"log(uint256,uint256,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19934,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22524:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22528:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22524:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22524:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19933,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"22508:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22508:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19943,"nodeType":"ExpressionStatement","src":"22508:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22426:3:14","parameters":{"id":19931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19924,"mutability":"mutable","name":"p0","nameLocation":"22438:2:14","nodeType":"VariableDeclaration","scope":19945,"src":"22430:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19923,"name":"uint256","nodeType":"ElementaryTypeName","src":"22430:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19926,"mutability":"mutable","name":"p1","nameLocation":"22450:2:14","nodeType":"VariableDeclaration","scope":19945,"src":"22442:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19925,"name":"uint256","nodeType":"ElementaryTypeName","src":"22442:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19928,"mutability":"mutable","name":"p2","nameLocation":"22462:2:14","nodeType":"VariableDeclaration","scope":19945,"src":"22454:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19927,"name":"address","nodeType":"ElementaryTypeName","src":"22454:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19930,"mutability":"mutable","name":"p3","nameLocation":"22480:2:14","nodeType":"VariableDeclaration","scope":19945,"src":"22466:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19929,"name":"string","nodeType":"ElementaryTypeName","src":"22466:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22429:54:14"},"returnParameters":{"id":19932,"nodeType":"ParameterList","parameters":[],"src":"22498:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19968,"nodeType":"FunctionDefinition","src":"22616:182:14","nodes":[],"body":{"id":19967,"nodeType":"Block","src":"22688:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c626f6f6c29","id":19959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22738:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_15cac47617578377cd39f9593e7bb3ffa0e284336b9741dcc2c4151a93e1b201","typeString":"literal_string \"log(uint256,uint256,address,bool)\""},"value":"log(uint256,uint256,address,bool)"},{"id":19960,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19947,"src":"22775:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19961,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19949,"src":"22779:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19962,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19951,"src":"22783:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19963,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19953,"src":"22787:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_15cac47617578377cd39f9593e7bb3ffa0e284336b9741dcc2c4151a93e1b201","typeString":"literal_string \"log(uint256,uint256,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19957,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22714:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22718:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22714:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22714:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19956,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"22698:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22698:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19966,"nodeType":"ExpressionStatement","src":"22698:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22625:3:14","parameters":{"id":19954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19947,"mutability":"mutable","name":"p0","nameLocation":"22637:2:14","nodeType":"VariableDeclaration","scope":19968,"src":"22629:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19946,"name":"uint256","nodeType":"ElementaryTypeName","src":"22629:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19949,"mutability":"mutable","name":"p1","nameLocation":"22649:2:14","nodeType":"VariableDeclaration","scope":19968,"src":"22641:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19948,"name":"uint256","nodeType":"ElementaryTypeName","src":"22641:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19951,"mutability":"mutable","name":"p2","nameLocation":"22661:2:14","nodeType":"VariableDeclaration","scope":19968,"src":"22653:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19950,"name":"address","nodeType":"ElementaryTypeName","src":"22653:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19953,"mutability":"mutable","name":"p3","nameLocation":"22670:2:14","nodeType":"VariableDeclaration","scope":19968,"src":"22665:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19952,"name":"bool","nodeType":"ElementaryTypeName","src":"22665:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22628:45:14"},"returnParameters":{"id":19955,"nodeType":"ParameterList","parameters":[],"src":"22688:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19991,"nodeType":"FunctionDefinition","src":"22804:188:14","nodes":[],"body":{"id":19990,"nodeType":"Block","src":"22879:113:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c6164647265737329","id":19982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22929:38:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_56a5d1b1d2f0613b93371fc2b5ec91f6c2ba1375e1e4ff59b5061b56ca88e88d","typeString":"literal_string \"log(uint256,uint256,address,address)\""},"value":"log(uint256,uint256,address,address)"},{"id":19983,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19970,"src":"22969:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19984,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19972,"src":"22973:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19985,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19974,"src":"22977:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19986,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19976,"src":"22981:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_56a5d1b1d2f0613b93371fc2b5ec91f6c2ba1375e1e4ff59b5061b56ca88e88d","typeString":"literal_string \"log(uint256,uint256,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19980,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22905:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22909:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22905:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22905:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19979,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"22889:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22889:96:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19989,"nodeType":"ExpressionStatement","src":"22889:96:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22813:3:14","parameters":{"id":19977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19970,"mutability":"mutable","name":"p0","nameLocation":"22825:2:14","nodeType":"VariableDeclaration","scope":19991,"src":"22817:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19969,"name":"uint256","nodeType":"ElementaryTypeName","src":"22817:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19972,"mutability":"mutable","name":"p1","nameLocation":"22837:2:14","nodeType":"VariableDeclaration","scope":19991,"src":"22829:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19971,"name":"uint256","nodeType":"ElementaryTypeName","src":"22829:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19974,"mutability":"mutable","name":"p2","nameLocation":"22849:2:14","nodeType":"VariableDeclaration","scope":19991,"src":"22841:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19973,"name":"address","nodeType":"ElementaryTypeName","src":"22841:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19976,"mutability":"mutable","name":"p3","nameLocation":"22861:2:14","nodeType":"VariableDeclaration","scope":19991,"src":"22853:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19975,"name":"address","nodeType":"ElementaryTypeName","src":"22853:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22816:48:14"},"returnParameters":{"id":19978,"nodeType":"ParameterList","parameters":[],"src":"22879:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20014,"nodeType":"FunctionDefinition","src":"22998:193:14","nodes":[],"body":{"id":20013,"nodeType":"Block","src":"23079:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c75696e7432353629","id":20005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23129:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_82c25b74e3ddb6ea40e867e0a41af8848bdc6a88fd5e365497c46917573fd66f","typeString":"literal_string \"log(uint256,string,uint256,uint256)\""},"value":"log(uint256,string,uint256,uint256)"},{"id":20006,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19993,"src":"23168:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20007,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19995,"src":"23172:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20008,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19997,"src":"23176:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20009,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19999,"src":"23180:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_82c25b74e3ddb6ea40e867e0a41af8848bdc6a88fd5e365497c46917573fd66f","typeString":"literal_string \"log(uint256,string,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20003,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23105:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20004,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23109:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23105:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23105:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20002,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"23089:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23089:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20012,"nodeType":"ExpressionStatement","src":"23089:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23007:3:14","parameters":{"id":20000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19993,"mutability":"mutable","name":"p0","nameLocation":"23019:2:14","nodeType":"VariableDeclaration","scope":20014,"src":"23011:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19992,"name":"uint256","nodeType":"ElementaryTypeName","src":"23011:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19995,"mutability":"mutable","name":"p1","nameLocation":"23037:2:14","nodeType":"VariableDeclaration","scope":20014,"src":"23023:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19994,"name":"string","nodeType":"ElementaryTypeName","src":"23023:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19997,"mutability":"mutable","name":"p2","nameLocation":"23049:2:14","nodeType":"VariableDeclaration","scope":20014,"src":"23041:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19996,"name":"uint256","nodeType":"ElementaryTypeName","src":"23041:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19999,"mutability":"mutable","name":"p3","nameLocation":"23061:2:14","nodeType":"VariableDeclaration","scope":20014,"src":"23053:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19998,"name":"uint256","nodeType":"ElementaryTypeName","src":"23053:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23010:54:14"},"returnParameters":{"id":20001,"nodeType":"ParameterList","parameters":[],"src":"23079:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20037,"nodeType":"FunctionDefinition","src":"23197:198:14","nodes":[],"body":{"id":20036,"nodeType":"Block","src":"23284:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c737472696e6729","id":20028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23334:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_b7b914cad3c94167dcd4b5ef970076918e96b3894a20503b7d3f9648bea8aace","typeString":"literal_string \"log(uint256,string,uint256,string)\""},"value":"log(uint256,string,uint256,string)"},{"id":20029,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20016,"src":"23372:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20030,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20018,"src":"23376:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20031,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20020,"src":"23380:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20032,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20022,"src":"23384:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b7b914cad3c94167dcd4b5ef970076918e96b3894a20503b7d3f9648bea8aace","typeString":"literal_string \"log(uint256,string,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20026,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23310:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20027,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23314:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23310:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23310:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20025,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"23294:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23294:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20035,"nodeType":"ExpressionStatement","src":"23294:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23206:3:14","parameters":{"id":20023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20016,"mutability":"mutable","name":"p0","nameLocation":"23218:2:14","nodeType":"VariableDeclaration","scope":20037,"src":"23210:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20015,"name":"uint256","nodeType":"ElementaryTypeName","src":"23210:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20018,"mutability":"mutable","name":"p1","nameLocation":"23236:2:14","nodeType":"VariableDeclaration","scope":20037,"src":"23222:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20017,"name":"string","nodeType":"ElementaryTypeName","src":"23222:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20020,"mutability":"mutable","name":"p2","nameLocation":"23248:2:14","nodeType":"VariableDeclaration","scope":20037,"src":"23240:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20019,"name":"uint256","nodeType":"ElementaryTypeName","src":"23240:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20022,"mutability":"mutable","name":"p3","nameLocation":"23266:2:14","nodeType":"VariableDeclaration","scope":20037,"src":"23252:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20021,"name":"string","nodeType":"ElementaryTypeName","src":"23252:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23209:60:14"},"returnParameters":{"id":20024,"nodeType":"ParameterList","parameters":[],"src":"23284:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20060,"nodeType":"FunctionDefinition","src":"23401:187:14","nodes":[],"body":{"id":20059,"nodeType":"Block","src":"23479:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c626f6f6c29","id":20051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23529:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_691a8f74cbf1a313fd1bdfd5dda19feaf4f9deac56f7ca7c4fa6386e5382a03c","typeString":"literal_string \"log(uint256,string,uint256,bool)\""},"value":"log(uint256,string,uint256,bool)"},{"id":20052,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20039,"src":"23565:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20053,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20041,"src":"23569:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20054,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20043,"src":"23573:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20055,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20045,"src":"23577:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_691a8f74cbf1a313fd1bdfd5dda19feaf4f9deac56f7ca7c4fa6386e5382a03c","typeString":"literal_string \"log(uint256,string,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":20049,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23505:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23509:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23505:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23505:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20048,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"23489:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23489:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20058,"nodeType":"ExpressionStatement","src":"23489:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23410:3:14","parameters":{"id":20046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20039,"mutability":"mutable","name":"p0","nameLocation":"23422:2:14","nodeType":"VariableDeclaration","scope":20060,"src":"23414:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20038,"name":"uint256","nodeType":"ElementaryTypeName","src":"23414:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20041,"mutability":"mutable","name":"p1","nameLocation":"23440:2:14","nodeType":"VariableDeclaration","scope":20060,"src":"23426:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20040,"name":"string","nodeType":"ElementaryTypeName","src":"23426:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20043,"mutability":"mutable","name":"p2","nameLocation":"23452:2:14","nodeType":"VariableDeclaration","scope":20060,"src":"23444:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20042,"name":"uint256","nodeType":"ElementaryTypeName","src":"23444:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20045,"mutability":"mutable","name":"p3","nameLocation":"23461:2:14","nodeType":"VariableDeclaration","scope":20060,"src":"23456:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20044,"name":"bool","nodeType":"ElementaryTypeName","src":"23456:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23413:51:14"},"returnParameters":{"id":20047,"nodeType":"ParameterList","parameters":[],"src":"23479:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20083,"nodeType":"FunctionDefinition","src":"23594:193:14","nodes":[],"body":{"id":20082,"nodeType":"Block","src":"23675:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c6164647265737329","id":20074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23725:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b2279b4b3c26cbcd4374acce75e4c447a59a65883d849a72eaa051b3a07ec08","typeString":"literal_string \"log(uint256,string,uint256,address)\""},"value":"log(uint256,string,uint256,address)"},{"id":20075,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20062,"src":"23764:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20076,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20064,"src":"23768:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20077,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20066,"src":"23772:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20078,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20068,"src":"23776:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b2279b4b3c26cbcd4374acce75e4c447a59a65883d849a72eaa051b3a07ec08","typeString":"literal_string \"log(uint256,string,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20072,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23701:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23705:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23701:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23701:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20071,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"23685:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23685:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20081,"nodeType":"ExpressionStatement","src":"23685:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23603:3:14","parameters":{"id":20069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20062,"mutability":"mutable","name":"p0","nameLocation":"23615:2:14","nodeType":"VariableDeclaration","scope":20083,"src":"23607:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20061,"name":"uint256","nodeType":"ElementaryTypeName","src":"23607:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20064,"mutability":"mutable","name":"p1","nameLocation":"23633:2:14","nodeType":"VariableDeclaration","scope":20083,"src":"23619:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20063,"name":"string","nodeType":"ElementaryTypeName","src":"23619:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20066,"mutability":"mutable","name":"p2","nameLocation":"23645:2:14","nodeType":"VariableDeclaration","scope":20083,"src":"23637:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20065,"name":"uint256","nodeType":"ElementaryTypeName","src":"23637:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20068,"mutability":"mutable","name":"p3","nameLocation":"23657:2:14","nodeType":"VariableDeclaration","scope":20083,"src":"23649:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20067,"name":"address","nodeType":"ElementaryTypeName","src":"23649:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23606:54:14"},"returnParameters":{"id":20070,"nodeType":"ParameterList","parameters":[],"src":"23675:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20106,"nodeType":"FunctionDefinition","src":"23793:198:14","nodes":[],"body":{"id":20105,"nodeType":"Block","src":"23880:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c75696e7432353629","id":20097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23930:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_b028c9bd0105e32bab3e2b1b4678f4cd49b1f267c4fcb1899043ad16b67c3dd1","typeString":"literal_string \"log(uint256,string,string,uint256)\""},"value":"log(uint256,string,string,uint256)"},{"id":20098,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20085,"src":"23968:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20099,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20087,"src":"23972:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20100,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20089,"src":"23976:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20101,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20091,"src":"23980:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b028c9bd0105e32bab3e2b1b4678f4cd49b1f267c4fcb1899043ad16b67c3dd1","typeString":"literal_string \"log(uint256,string,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20095,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23906:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23910:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23906:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23906:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20094,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"23890:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23890:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20104,"nodeType":"ExpressionStatement","src":"23890:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23802:3:14","parameters":{"id":20092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20085,"mutability":"mutable","name":"p0","nameLocation":"23814:2:14","nodeType":"VariableDeclaration","scope":20106,"src":"23806:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20084,"name":"uint256","nodeType":"ElementaryTypeName","src":"23806:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20087,"mutability":"mutable","name":"p1","nameLocation":"23832:2:14","nodeType":"VariableDeclaration","scope":20106,"src":"23818:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20086,"name":"string","nodeType":"ElementaryTypeName","src":"23818:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20089,"mutability":"mutable","name":"p2","nameLocation":"23850:2:14","nodeType":"VariableDeclaration","scope":20106,"src":"23836:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20088,"name":"string","nodeType":"ElementaryTypeName","src":"23836:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20091,"mutability":"mutable","name":"p3","nameLocation":"23862:2:14","nodeType":"VariableDeclaration","scope":20106,"src":"23854:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20090,"name":"uint256","nodeType":"ElementaryTypeName","src":"23854:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23805:60:14"},"returnParameters":{"id":20093,"nodeType":"ParameterList","parameters":[],"src":"23880:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20129,"nodeType":"FunctionDefinition","src":"23997:203:14","nodes":[],"body":{"id":20128,"nodeType":"Block","src":"24090:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c737472696e6729","id":20120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24140:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_21ad06836085541851abea445814b5a1baf9d3be52c1169a6570c83010dbea5a","typeString":"literal_string \"log(uint256,string,string,string)\""},"value":"log(uint256,string,string,string)"},{"id":20121,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20108,"src":"24177:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20122,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20110,"src":"24181:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20123,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20112,"src":"24185:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20124,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20114,"src":"24189:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_21ad06836085541851abea445814b5a1baf9d3be52c1169a6570c83010dbea5a","typeString":"literal_string \"log(uint256,string,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20118,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24116:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24120:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24116:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24116:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20117,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"24100:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24100:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20127,"nodeType":"ExpressionStatement","src":"24100:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24006:3:14","parameters":{"id":20115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20108,"mutability":"mutable","name":"p0","nameLocation":"24018:2:14","nodeType":"VariableDeclaration","scope":20129,"src":"24010:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20107,"name":"uint256","nodeType":"ElementaryTypeName","src":"24010:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20110,"mutability":"mutable","name":"p1","nameLocation":"24036:2:14","nodeType":"VariableDeclaration","scope":20129,"src":"24022:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20109,"name":"string","nodeType":"ElementaryTypeName","src":"24022:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20112,"mutability":"mutable","name":"p2","nameLocation":"24054:2:14","nodeType":"VariableDeclaration","scope":20129,"src":"24040:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20111,"name":"string","nodeType":"ElementaryTypeName","src":"24040:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20114,"mutability":"mutable","name":"p3","nameLocation":"24072:2:14","nodeType":"VariableDeclaration","scope":20129,"src":"24058:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20113,"name":"string","nodeType":"ElementaryTypeName","src":"24058:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"24009:66:14"},"returnParameters":{"id":20116,"nodeType":"ParameterList","parameters":[],"src":"24090:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20152,"nodeType":"FunctionDefinition","src":"24206:192:14","nodes":[],"body":{"id":20151,"nodeType":"Block","src":"24290:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c626f6f6c29","id":20143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24340:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_b3a6b6bdf3265665181b9a9ab1338c75ebc293704c96a9a669654a5ba9f6d3e9","typeString":"literal_string \"log(uint256,string,string,bool)\""},"value":"log(uint256,string,string,bool)"},{"id":20144,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20131,"src":"24375:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20145,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20133,"src":"24379:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20146,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20135,"src":"24383:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20147,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20137,"src":"24387:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b3a6b6bdf3265665181b9a9ab1338c75ebc293704c96a9a669654a5ba9f6d3e9","typeString":"literal_string \"log(uint256,string,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":20141,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24316:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24320:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24316:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24316:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20140,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"24300:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24300:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20150,"nodeType":"ExpressionStatement","src":"24300:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24215:3:14","parameters":{"id":20138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20131,"mutability":"mutable","name":"p0","nameLocation":"24227:2:14","nodeType":"VariableDeclaration","scope":20152,"src":"24219:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20130,"name":"uint256","nodeType":"ElementaryTypeName","src":"24219:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20133,"mutability":"mutable","name":"p1","nameLocation":"24245:2:14","nodeType":"VariableDeclaration","scope":20152,"src":"24231:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20132,"name":"string","nodeType":"ElementaryTypeName","src":"24231:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20135,"mutability":"mutable","name":"p2","nameLocation":"24263:2:14","nodeType":"VariableDeclaration","scope":20152,"src":"24249:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20134,"name":"string","nodeType":"ElementaryTypeName","src":"24249:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20137,"mutability":"mutable","name":"p3","nameLocation":"24272:2:14","nodeType":"VariableDeclaration","scope":20152,"src":"24267:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20136,"name":"bool","nodeType":"ElementaryTypeName","src":"24267:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"24218:57:14"},"returnParameters":{"id":20139,"nodeType":"ParameterList","parameters":[],"src":"24290:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20175,"nodeType":"FunctionDefinition","src":"24404:198:14","nodes":[],"body":{"id":20174,"nodeType":"Block","src":"24491:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c6164647265737329","id":20166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24541:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_d583c60265ad086fe6216ef9aea37bf5de1e77bdf9055c734c55781d5f4b81d7","typeString":"literal_string \"log(uint256,string,string,address)\""},"value":"log(uint256,string,string,address)"},{"id":20167,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20154,"src":"24579:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20168,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20156,"src":"24583:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20169,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20158,"src":"24587:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20170,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20160,"src":"24591:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d583c60265ad086fe6216ef9aea37bf5de1e77bdf9055c734c55781d5f4b81d7","typeString":"literal_string \"log(uint256,string,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20164,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24517:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20165,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24521:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24517:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24517:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20163,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"24501:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24501:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20173,"nodeType":"ExpressionStatement","src":"24501:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24413:3:14","parameters":{"id":20161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20154,"mutability":"mutable","name":"p0","nameLocation":"24425:2:14","nodeType":"VariableDeclaration","scope":20175,"src":"24417:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20153,"name":"uint256","nodeType":"ElementaryTypeName","src":"24417:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20156,"mutability":"mutable","name":"p1","nameLocation":"24443:2:14","nodeType":"VariableDeclaration","scope":20175,"src":"24429:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20155,"name":"string","nodeType":"ElementaryTypeName","src":"24429:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20158,"mutability":"mutable","name":"p2","nameLocation":"24461:2:14","nodeType":"VariableDeclaration","scope":20175,"src":"24447:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20157,"name":"string","nodeType":"ElementaryTypeName","src":"24447:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20160,"mutability":"mutable","name":"p3","nameLocation":"24473:2:14","nodeType":"VariableDeclaration","scope":20175,"src":"24465:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20159,"name":"address","nodeType":"ElementaryTypeName","src":"24465:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24416:60:14"},"returnParameters":{"id":20162,"nodeType":"ParameterList","parameters":[],"src":"24491:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20198,"nodeType":"FunctionDefinition","src":"24608:187:14","nodes":[],"body":{"id":20197,"nodeType":"Block","src":"24686:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c75696e7432353629","id":20189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24736:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf00988004d982e10d8d4fa7f603a1414e3b2b91cdfcf6f72808ca6c3100f96a","typeString":"literal_string \"log(uint256,string,bool,uint256)\""},"value":"log(uint256,string,bool,uint256)"},{"id":20190,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20177,"src":"24772:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20191,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20179,"src":"24776:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20192,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20181,"src":"24780:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20193,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20183,"src":"24784:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf00988004d982e10d8d4fa7f603a1414e3b2b91cdfcf6f72808ca6c3100f96a","typeString":"literal_string \"log(uint256,string,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20187,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24712:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24716:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24712:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24712:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20186,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"24696:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24696:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20196,"nodeType":"ExpressionStatement","src":"24696:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24617:3:14","parameters":{"id":20184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20177,"mutability":"mutable","name":"p0","nameLocation":"24629:2:14","nodeType":"VariableDeclaration","scope":20198,"src":"24621:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20176,"name":"uint256","nodeType":"ElementaryTypeName","src":"24621:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20179,"mutability":"mutable","name":"p1","nameLocation":"24647:2:14","nodeType":"VariableDeclaration","scope":20198,"src":"24633:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20178,"name":"string","nodeType":"ElementaryTypeName","src":"24633:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20181,"mutability":"mutable","name":"p2","nameLocation":"24656:2:14","nodeType":"VariableDeclaration","scope":20198,"src":"24651:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20180,"name":"bool","nodeType":"ElementaryTypeName","src":"24651:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20183,"mutability":"mutable","name":"p3","nameLocation":"24668:2:14","nodeType":"VariableDeclaration","scope":20198,"src":"24660:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20182,"name":"uint256","nodeType":"ElementaryTypeName","src":"24660:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24620:51:14"},"returnParameters":{"id":20185,"nodeType":"ParameterList","parameters":[],"src":"24686:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20221,"nodeType":"FunctionDefinition","src":"24801:192:14","nodes":[],"body":{"id":20220,"nodeType":"Block","src":"24885:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c737472696e6729","id":20212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24935:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2d423cdca0e3ae7a0a1a283a67d891c85787b75e0c5291c02d15317d67fe45c","typeString":"literal_string \"log(uint256,string,bool,string)\""},"value":"log(uint256,string,bool,string)"},{"id":20213,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20200,"src":"24970:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20214,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20202,"src":"24974:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20215,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20204,"src":"24978:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20216,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20206,"src":"24982:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2d423cdca0e3ae7a0a1a283a67d891c85787b75e0c5291c02d15317d67fe45c","typeString":"literal_string \"log(uint256,string,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20210,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24911:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24915:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24911:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24911:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20209,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"24895:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24895:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20219,"nodeType":"ExpressionStatement","src":"24895:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24810:3:14","parameters":{"id":20207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20200,"mutability":"mutable","name":"p0","nameLocation":"24822:2:14","nodeType":"VariableDeclaration","scope":20221,"src":"24814:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20199,"name":"uint256","nodeType":"ElementaryTypeName","src":"24814:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20202,"mutability":"mutable","name":"p1","nameLocation":"24840:2:14","nodeType":"VariableDeclaration","scope":20221,"src":"24826:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20201,"name":"string","nodeType":"ElementaryTypeName","src":"24826:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20204,"mutability":"mutable","name":"p2","nameLocation":"24849:2:14","nodeType":"VariableDeclaration","scope":20221,"src":"24844:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20203,"name":"bool","nodeType":"ElementaryTypeName","src":"24844:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20206,"mutability":"mutable","name":"p3","nameLocation":"24867:2:14","nodeType":"VariableDeclaration","scope":20221,"src":"24853:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20205,"name":"string","nodeType":"ElementaryTypeName","src":"24853:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"24813:57:14"},"returnParameters":{"id":20208,"nodeType":"ParameterList","parameters":[],"src":"24885:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20244,"nodeType":"FunctionDefinition","src":"24999:181:14","nodes":[],"body":{"id":20243,"nodeType":"Block","src":"25074:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c626f6f6c29","id":20235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25124:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba535d9cec0fb8bbd83e61b83d0f575d149cba6778a192239c1bdc5170053e4f","typeString":"literal_string \"log(uint256,string,bool,bool)\""},"value":"log(uint256,string,bool,bool)"},{"id":20236,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20223,"src":"25157:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20237,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20225,"src":"25161:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20238,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20227,"src":"25165:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20239,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20229,"src":"25169:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ba535d9cec0fb8bbd83e61b83d0f575d149cba6778a192239c1bdc5170053e4f","typeString":"literal_string \"log(uint256,string,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":20233,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25100:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25104:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25100:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25100:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20232,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"25084:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25084:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20242,"nodeType":"ExpressionStatement","src":"25084:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25008:3:14","parameters":{"id":20230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20223,"mutability":"mutable","name":"p0","nameLocation":"25020:2:14","nodeType":"VariableDeclaration","scope":20244,"src":"25012:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20222,"name":"uint256","nodeType":"ElementaryTypeName","src":"25012:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20225,"mutability":"mutable","name":"p1","nameLocation":"25038:2:14","nodeType":"VariableDeclaration","scope":20244,"src":"25024:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20224,"name":"string","nodeType":"ElementaryTypeName","src":"25024:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20227,"mutability":"mutable","name":"p2","nameLocation":"25047:2:14","nodeType":"VariableDeclaration","scope":20244,"src":"25042:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20226,"name":"bool","nodeType":"ElementaryTypeName","src":"25042:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20229,"mutability":"mutable","name":"p3","nameLocation":"25056:2:14","nodeType":"VariableDeclaration","scope":20244,"src":"25051:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20228,"name":"bool","nodeType":"ElementaryTypeName","src":"25051:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"25011:48:14"},"returnParameters":{"id":20231,"nodeType":"ParameterList","parameters":[],"src":"25074:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20267,"nodeType":"FunctionDefinition","src":"25186:187:14","nodes":[],"body":{"id":20266,"nodeType":"Block","src":"25264:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c6164647265737329","id":20258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25314:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae2ec581fba979c4f79aae94f13936ff6bb7e283817b2ec0602d9daa028a1550","typeString":"literal_string \"log(uint256,string,bool,address)\""},"value":"log(uint256,string,bool,address)"},{"id":20259,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20246,"src":"25350:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20260,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20248,"src":"25354:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20261,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20250,"src":"25358:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20262,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20252,"src":"25362:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ae2ec581fba979c4f79aae94f13936ff6bb7e283817b2ec0602d9daa028a1550","typeString":"literal_string \"log(uint256,string,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20256,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25290:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25294:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25290:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25290:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20255,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"25274:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25274:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20265,"nodeType":"ExpressionStatement","src":"25274:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25195:3:14","parameters":{"id":20253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20246,"mutability":"mutable","name":"p0","nameLocation":"25207:2:14","nodeType":"VariableDeclaration","scope":20267,"src":"25199:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20245,"name":"uint256","nodeType":"ElementaryTypeName","src":"25199:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20248,"mutability":"mutable","name":"p1","nameLocation":"25225:2:14","nodeType":"VariableDeclaration","scope":20267,"src":"25211:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20247,"name":"string","nodeType":"ElementaryTypeName","src":"25211:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20250,"mutability":"mutable","name":"p2","nameLocation":"25234:2:14","nodeType":"VariableDeclaration","scope":20267,"src":"25229:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20249,"name":"bool","nodeType":"ElementaryTypeName","src":"25229:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20252,"mutability":"mutable","name":"p3","nameLocation":"25246:2:14","nodeType":"VariableDeclaration","scope":20267,"src":"25238:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20251,"name":"address","nodeType":"ElementaryTypeName","src":"25238:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25198:51:14"},"returnParameters":{"id":20254,"nodeType":"ParameterList","parameters":[],"src":"25264:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20290,"nodeType":"FunctionDefinition","src":"25379:193:14","nodes":[],"body":{"id":20289,"nodeType":"Block","src":"25460:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c75696e7432353629","id":20281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25510:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e8d3018d32ee5012095e63c81679b366f06035e83d43be351e9c327886860908","typeString":"literal_string \"log(uint256,string,address,uint256)\""},"value":"log(uint256,string,address,uint256)"},{"id":20282,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20269,"src":"25549:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20283,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20271,"src":"25553:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20284,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20273,"src":"25557:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20285,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20275,"src":"25561:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e8d3018d32ee5012095e63c81679b366f06035e83d43be351e9c327886860908","typeString":"literal_string \"log(uint256,string,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20279,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25486:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20280,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25490:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25486:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25486:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20278,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"25470:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25470:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20288,"nodeType":"ExpressionStatement","src":"25470:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25388:3:14","parameters":{"id":20276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20269,"mutability":"mutable","name":"p0","nameLocation":"25400:2:14","nodeType":"VariableDeclaration","scope":20290,"src":"25392:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20268,"name":"uint256","nodeType":"ElementaryTypeName","src":"25392:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20271,"mutability":"mutable","name":"p1","nameLocation":"25418:2:14","nodeType":"VariableDeclaration","scope":20290,"src":"25404:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20270,"name":"string","nodeType":"ElementaryTypeName","src":"25404:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20273,"mutability":"mutable","name":"p2","nameLocation":"25430:2:14","nodeType":"VariableDeclaration","scope":20290,"src":"25422:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20272,"name":"address","nodeType":"ElementaryTypeName","src":"25422:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20275,"mutability":"mutable","name":"p3","nameLocation":"25442:2:14","nodeType":"VariableDeclaration","scope":20290,"src":"25434:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20274,"name":"uint256","nodeType":"ElementaryTypeName","src":"25434:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25391:54:14"},"returnParameters":{"id":20277,"nodeType":"ParameterList","parameters":[],"src":"25460:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20313,"nodeType":"FunctionDefinition","src":"25578:198:14","nodes":[],"body":{"id":20312,"nodeType":"Block","src":"25665:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c737472696e6729","id":20304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25715:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9c3adfa1394c3989d93ade538d03d04b05867057c1dd54721ae2c85f9a1a4720","typeString":"literal_string \"log(uint256,string,address,string)\""},"value":"log(uint256,string,address,string)"},{"id":20305,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20292,"src":"25753:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20306,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20294,"src":"25757:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20307,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20296,"src":"25761:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20308,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20298,"src":"25765:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9c3adfa1394c3989d93ade538d03d04b05867057c1dd54721ae2c85f9a1a4720","typeString":"literal_string \"log(uint256,string,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20302,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25691:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25695:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25691:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25691:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20301,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"25675:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25675:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20311,"nodeType":"ExpressionStatement","src":"25675:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25587:3:14","parameters":{"id":20299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20292,"mutability":"mutable","name":"p0","nameLocation":"25599:2:14","nodeType":"VariableDeclaration","scope":20313,"src":"25591:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20291,"name":"uint256","nodeType":"ElementaryTypeName","src":"25591:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20294,"mutability":"mutable","name":"p1","nameLocation":"25617:2:14","nodeType":"VariableDeclaration","scope":20313,"src":"25603:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20293,"name":"string","nodeType":"ElementaryTypeName","src":"25603:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20296,"mutability":"mutable","name":"p2","nameLocation":"25629:2:14","nodeType":"VariableDeclaration","scope":20313,"src":"25621:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20295,"name":"address","nodeType":"ElementaryTypeName","src":"25621:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20298,"mutability":"mutable","name":"p3","nameLocation":"25647:2:14","nodeType":"VariableDeclaration","scope":20313,"src":"25633:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20297,"name":"string","nodeType":"ElementaryTypeName","src":"25633:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"25590:60:14"},"returnParameters":{"id":20300,"nodeType":"ParameterList","parameters":[],"src":"25665:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20336,"nodeType":"FunctionDefinition","src":"25782:187:14","nodes":[],"body":{"id":20335,"nodeType":"Block","src":"25860:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c626f6f6c29","id":20327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25910:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_90c30a564e5b352d6dfee73888402a5685ca327aad7827d5040904440ee085c5","typeString":"literal_string \"log(uint256,string,address,bool)\""},"value":"log(uint256,string,address,bool)"},{"id":20328,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20315,"src":"25946:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20329,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20317,"src":"25950:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20330,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20319,"src":"25954:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20331,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20321,"src":"25958:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90c30a564e5b352d6dfee73888402a5685ca327aad7827d5040904440ee085c5","typeString":"literal_string \"log(uint256,string,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":20325,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25886:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20326,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25890:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25886:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25886:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20324,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"25870:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25870:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20334,"nodeType":"ExpressionStatement","src":"25870:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25791:3:14","parameters":{"id":20322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20315,"mutability":"mutable","name":"p0","nameLocation":"25803:2:14","nodeType":"VariableDeclaration","scope":20336,"src":"25795:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20314,"name":"uint256","nodeType":"ElementaryTypeName","src":"25795:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20317,"mutability":"mutable","name":"p1","nameLocation":"25821:2:14","nodeType":"VariableDeclaration","scope":20336,"src":"25807:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20316,"name":"string","nodeType":"ElementaryTypeName","src":"25807:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20319,"mutability":"mutable","name":"p2","nameLocation":"25833:2:14","nodeType":"VariableDeclaration","scope":20336,"src":"25825:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20318,"name":"address","nodeType":"ElementaryTypeName","src":"25825:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20321,"mutability":"mutable","name":"p3","nameLocation":"25842:2:14","nodeType":"VariableDeclaration","scope":20336,"src":"25837:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20320,"name":"bool","nodeType":"ElementaryTypeName","src":"25837:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"25794:51:14"},"returnParameters":{"id":20323,"nodeType":"ParameterList","parameters":[],"src":"25860:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20359,"nodeType":"FunctionDefinition","src":"25975:193:14","nodes":[],"body":{"id":20358,"nodeType":"Block","src":"26056:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c6164647265737329","id":20350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26106:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6168ed618844a2c75dc49207e69cdff562cd2faf2e74aa5192211a023611c6bd","typeString":"literal_string \"log(uint256,string,address,address)\""},"value":"log(uint256,string,address,address)"},{"id":20351,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20338,"src":"26145:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20352,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20340,"src":"26149:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20353,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20342,"src":"26153:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20354,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20344,"src":"26157:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6168ed618844a2c75dc49207e69cdff562cd2faf2e74aa5192211a023611c6bd","typeString":"literal_string \"log(uint256,string,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20348,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26082:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26086:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26082:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26082:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20347,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"26066:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26066:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20357,"nodeType":"ExpressionStatement","src":"26066:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25984:3:14","parameters":{"id":20345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20338,"mutability":"mutable","name":"p0","nameLocation":"25996:2:14","nodeType":"VariableDeclaration","scope":20359,"src":"25988:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20337,"name":"uint256","nodeType":"ElementaryTypeName","src":"25988:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20340,"mutability":"mutable","name":"p1","nameLocation":"26014:2:14","nodeType":"VariableDeclaration","scope":20359,"src":"26000:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20339,"name":"string","nodeType":"ElementaryTypeName","src":"26000:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20342,"mutability":"mutable","name":"p2","nameLocation":"26026:2:14","nodeType":"VariableDeclaration","scope":20359,"src":"26018:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20341,"name":"address","nodeType":"ElementaryTypeName","src":"26018:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20344,"mutability":"mutable","name":"p3","nameLocation":"26038:2:14","nodeType":"VariableDeclaration","scope":20359,"src":"26030:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20343,"name":"address","nodeType":"ElementaryTypeName","src":"26030:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25987:54:14"},"returnParameters":{"id":20346,"nodeType":"ParameterList","parameters":[],"src":"26056:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20382,"nodeType":"FunctionDefinition","src":"26174:182:14","nodes":[],"body":{"id":20381,"nodeType":"Block","src":"26246:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c75696e7432353629","id":20373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26296:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c6acc7a8396e6de9a5a1476aecf2cbff57758b174747b0371b7f3994e930b8b4","typeString":"literal_string \"log(uint256,bool,uint256,uint256)\""},"value":"log(uint256,bool,uint256,uint256)"},{"id":20374,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20361,"src":"26333:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20375,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20363,"src":"26337:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20376,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20365,"src":"26341:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20377,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20367,"src":"26345:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c6acc7a8396e6de9a5a1476aecf2cbff57758b174747b0371b7f3994e930b8b4","typeString":"literal_string \"log(uint256,bool,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20371,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26272:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26276:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26272:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26272:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20370,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"26256:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26256:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20380,"nodeType":"ExpressionStatement","src":"26256:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26183:3:14","parameters":{"id":20368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20361,"mutability":"mutable","name":"p0","nameLocation":"26195:2:14","nodeType":"VariableDeclaration","scope":20382,"src":"26187:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20360,"name":"uint256","nodeType":"ElementaryTypeName","src":"26187:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20363,"mutability":"mutable","name":"p1","nameLocation":"26204:2:14","nodeType":"VariableDeclaration","scope":20382,"src":"26199:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20362,"name":"bool","nodeType":"ElementaryTypeName","src":"26199:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20365,"mutability":"mutable","name":"p2","nameLocation":"26216:2:14","nodeType":"VariableDeclaration","scope":20382,"src":"26208:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20364,"name":"uint256","nodeType":"ElementaryTypeName","src":"26208:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20367,"mutability":"mutable","name":"p3","nameLocation":"26228:2:14","nodeType":"VariableDeclaration","scope":20382,"src":"26220:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20366,"name":"uint256","nodeType":"ElementaryTypeName","src":"26220:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26186:45:14"},"returnParameters":{"id":20369,"nodeType":"ParameterList","parameters":[],"src":"26246:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20405,"nodeType":"FunctionDefinition","src":"26362:187:14","nodes":[],"body":{"id":20404,"nodeType":"Block","src":"26440:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c737472696e6729","id":20396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26490:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_de03e77403acbacf9b1b18c1115984c9fba2c45e2eec9f12c266ada3f62a0d1b","typeString":"literal_string \"log(uint256,bool,uint256,string)\""},"value":"log(uint256,bool,uint256,string)"},{"id":20397,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20384,"src":"26526:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20398,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20386,"src":"26530:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20399,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20388,"src":"26534:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20400,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20390,"src":"26538:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de03e77403acbacf9b1b18c1115984c9fba2c45e2eec9f12c266ada3f62a0d1b","typeString":"literal_string \"log(uint256,bool,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20394,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26466:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26470:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26466:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26466:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20393,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"26450:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26450:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20403,"nodeType":"ExpressionStatement","src":"26450:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26371:3:14","parameters":{"id":20391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20384,"mutability":"mutable","name":"p0","nameLocation":"26383:2:14","nodeType":"VariableDeclaration","scope":20405,"src":"26375:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20383,"name":"uint256","nodeType":"ElementaryTypeName","src":"26375:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20386,"mutability":"mutable","name":"p1","nameLocation":"26392:2:14","nodeType":"VariableDeclaration","scope":20405,"src":"26387:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20385,"name":"bool","nodeType":"ElementaryTypeName","src":"26387:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20388,"mutability":"mutable","name":"p2","nameLocation":"26404:2:14","nodeType":"VariableDeclaration","scope":20405,"src":"26396:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20387,"name":"uint256","nodeType":"ElementaryTypeName","src":"26396:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20390,"mutability":"mutable","name":"p3","nameLocation":"26422:2:14","nodeType":"VariableDeclaration","scope":20405,"src":"26408:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20389,"name":"string","nodeType":"ElementaryTypeName","src":"26408:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26374:51:14"},"returnParameters":{"id":20392,"nodeType":"ParameterList","parameters":[],"src":"26440:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20428,"nodeType":"FunctionDefinition","src":"26555:176:14","nodes":[],"body":{"id":20427,"nodeType":"Block","src":"26624:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c626f6f6c29","id":20419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26674:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_91a02e2ac8ae09683fa28beba3fd130b88054c89e51901b8e0510c8e25aa37d1","typeString":"literal_string \"log(uint256,bool,uint256,bool)\""},"value":"log(uint256,bool,uint256,bool)"},{"id":20420,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20407,"src":"26708:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20421,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20409,"src":"26712:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20422,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20411,"src":"26716:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20423,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20413,"src":"26720:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91a02e2ac8ae09683fa28beba3fd130b88054c89e51901b8e0510c8e25aa37d1","typeString":"literal_string \"log(uint256,bool,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":20417,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26650:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26654:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26650:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26650:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20416,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"26634:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26634:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20426,"nodeType":"ExpressionStatement","src":"26634:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26564:3:14","parameters":{"id":20414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20407,"mutability":"mutable","name":"p0","nameLocation":"26576:2:14","nodeType":"VariableDeclaration","scope":20428,"src":"26568:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20406,"name":"uint256","nodeType":"ElementaryTypeName","src":"26568:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20409,"mutability":"mutable","name":"p1","nameLocation":"26585:2:14","nodeType":"VariableDeclaration","scope":20428,"src":"26580:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20408,"name":"bool","nodeType":"ElementaryTypeName","src":"26580:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20411,"mutability":"mutable","name":"p2","nameLocation":"26597:2:14","nodeType":"VariableDeclaration","scope":20428,"src":"26589:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20410,"name":"uint256","nodeType":"ElementaryTypeName","src":"26589:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20413,"mutability":"mutable","name":"p3","nameLocation":"26606:2:14","nodeType":"VariableDeclaration","scope":20428,"src":"26601:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20412,"name":"bool","nodeType":"ElementaryTypeName","src":"26601:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26567:42:14"},"returnParameters":{"id":20415,"nodeType":"ParameterList","parameters":[],"src":"26624:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20451,"nodeType":"FunctionDefinition","src":"26737:182:14","nodes":[],"body":{"id":20450,"nodeType":"Block","src":"26809:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c6164647265737329","id":20442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26859:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_88cb6041693b97a5282ad65a65484c065fbc3d3a4dac698c427f5b30bb33b29b","typeString":"literal_string \"log(uint256,bool,uint256,address)\""},"value":"log(uint256,bool,uint256,address)"},{"id":20443,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20430,"src":"26896:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20444,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20432,"src":"26900:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20445,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20434,"src":"26904:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20446,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20436,"src":"26908:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_88cb6041693b97a5282ad65a65484c065fbc3d3a4dac698c427f5b30bb33b29b","typeString":"literal_string \"log(uint256,bool,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20440,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26835:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26839:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26835:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26835:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20439,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"26819:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26819:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20449,"nodeType":"ExpressionStatement","src":"26819:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26746:3:14","parameters":{"id":20437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20430,"mutability":"mutable","name":"p0","nameLocation":"26758:2:14","nodeType":"VariableDeclaration","scope":20451,"src":"26750:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20429,"name":"uint256","nodeType":"ElementaryTypeName","src":"26750:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20432,"mutability":"mutable","name":"p1","nameLocation":"26767:2:14","nodeType":"VariableDeclaration","scope":20451,"src":"26762:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20431,"name":"bool","nodeType":"ElementaryTypeName","src":"26762:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20434,"mutability":"mutable","name":"p2","nameLocation":"26779:2:14","nodeType":"VariableDeclaration","scope":20451,"src":"26771:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20433,"name":"uint256","nodeType":"ElementaryTypeName","src":"26771:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20436,"mutability":"mutable","name":"p3","nameLocation":"26791:2:14","nodeType":"VariableDeclaration","scope":20451,"src":"26783:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20435,"name":"address","nodeType":"ElementaryTypeName","src":"26783:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26749:45:14"},"returnParameters":{"id":20438,"nodeType":"ParameterList","parameters":[],"src":"26809:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20474,"nodeType":"FunctionDefinition","src":"26925:187:14","nodes":[],"body":{"id":20473,"nodeType":"Block","src":"27003:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c75696e7432353629","id":20465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27053:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c1d07463509a567bf9962980ac948a2ea7c76a53c189a607b7b35b14e806be8","typeString":"literal_string \"log(uint256,bool,string,uint256)\""},"value":"log(uint256,bool,string,uint256)"},{"id":20466,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20453,"src":"27089:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20467,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20455,"src":"27093:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20468,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20457,"src":"27097:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20469,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20459,"src":"27101:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c1d07463509a567bf9962980ac948a2ea7c76a53c189a607b7b35b14e806be8","typeString":"literal_string \"log(uint256,bool,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20463,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27029:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27033:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27029:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27029:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20462,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"27013:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27013:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20472,"nodeType":"ExpressionStatement","src":"27013:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26934:3:14","parameters":{"id":20460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20453,"mutability":"mutable","name":"p0","nameLocation":"26946:2:14","nodeType":"VariableDeclaration","scope":20474,"src":"26938:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20452,"name":"uint256","nodeType":"ElementaryTypeName","src":"26938:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20455,"mutability":"mutable","name":"p1","nameLocation":"26955:2:14","nodeType":"VariableDeclaration","scope":20474,"src":"26950:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20454,"name":"bool","nodeType":"ElementaryTypeName","src":"26950:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20457,"mutability":"mutable","name":"p2","nameLocation":"26973:2:14","nodeType":"VariableDeclaration","scope":20474,"src":"26959:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20456,"name":"string","nodeType":"ElementaryTypeName","src":"26959:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20459,"mutability":"mutable","name":"p3","nameLocation":"26985:2:14","nodeType":"VariableDeclaration","scope":20474,"src":"26977:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20458,"name":"uint256","nodeType":"ElementaryTypeName","src":"26977:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26937:51:14"},"returnParameters":{"id":20461,"nodeType":"ParameterList","parameters":[],"src":"27003:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20497,"nodeType":"FunctionDefinition","src":"27118:192:14","nodes":[],"body":{"id":20496,"nodeType":"Block","src":"27202:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c737472696e6729","id":20488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27252:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_68c8b8bd8cd0cfd8add7c6745840520db0bd1049365ac415de6367b3b79b5ddd","typeString":"literal_string \"log(uint256,bool,string,string)\""},"value":"log(uint256,bool,string,string)"},{"id":20489,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20476,"src":"27287:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20490,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20478,"src":"27291:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20491,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20480,"src":"27295:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20492,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20482,"src":"27299:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_68c8b8bd8cd0cfd8add7c6745840520db0bd1049365ac415de6367b3b79b5ddd","typeString":"literal_string \"log(uint256,bool,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20486,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27228:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20487,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27232:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27228:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27228:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20485,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"27212:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27212:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20495,"nodeType":"ExpressionStatement","src":"27212:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27127:3:14","parameters":{"id":20483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20476,"mutability":"mutable","name":"p0","nameLocation":"27139:2:14","nodeType":"VariableDeclaration","scope":20497,"src":"27131:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20475,"name":"uint256","nodeType":"ElementaryTypeName","src":"27131:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20478,"mutability":"mutable","name":"p1","nameLocation":"27148:2:14","nodeType":"VariableDeclaration","scope":20497,"src":"27143:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20477,"name":"bool","nodeType":"ElementaryTypeName","src":"27143:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20480,"mutability":"mutable","name":"p2","nameLocation":"27166:2:14","nodeType":"VariableDeclaration","scope":20497,"src":"27152:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20479,"name":"string","nodeType":"ElementaryTypeName","src":"27152:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20482,"mutability":"mutable","name":"p3","nameLocation":"27184:2:14","nodeType":"VariableDeclaration","scope":20497,"src":"27170:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20481,"name":"string","nodeType":"ElementaryTypeName","src":"27170:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27130:57:14"},"returnParameters":{"id":20484,"nodeType":"ParameterList","parameters":[],"src":"27202:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20520,"nodeType":"FunctionDefinition","src":"27316:181:14","nodes":[],"body":{"id":20519,"nodeType":"Block","src":"27391:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c626f6f6c29","id":20511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27441:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb928d7f2c458ba40d8ba853c60153b2f73ca9189d4be051103bc8a6c10d45ad","typeString":"literal_string \"log(uint256,bool,string,bool)\""},"value":"log(uint256,bool,string,bool)"},{"id":20512,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20499,"src":"27474:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20513,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20501,"src":"27478:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20514,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20503,"src":"27482:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20515,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20505,"src":"27486:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb928d7f2c458ba40d8ba853c60153b2f73ca9189d4be051103bc8a6c10d45ad","typeString":"literal_string \"log(uint256,bool,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":20509,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27417:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20510,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27421:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27417:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27417:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20508,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"27401:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27401:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20518,"nodeType":"ExpressionStatement","src":"27401:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27325:3:14","parameters":{"id":20506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20499,"mutability":"mutable","name":"p0","nameLocation":"27337:2:14","nodeType":"VariableDeclaration","scope":20520,"src":"27329:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20498,"name":"uint256","nodeType":"ElementaryTypeName","src":"27329:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20501,"mutability":"mutable","name":"p1","nameLocation":"27346:2:14","nodeType":"VariableDeclaration","scope":20520,"src":"27341:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20500,"name":"bool","nodeType":"ElementaryTypeName","src":"27341:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20503,"mutability":"mutable","name":"p2","nameLocation":"27364:2:14","nodeType":"VariableDeclaration","scope":20520,"src":"27350:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20502,"name":"string","nodeType":"ElementaryTypeName","src":"27350:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20505,"mutability":"mutable","name":"p3","nameLocation":"27373:2:14","nodeType":"VariableDeclaration","scope":20520,"src":"27368:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20504,"name":"bool","nodeType":"ElementaryTypeName","src":"27368:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27328:48:14"},"returnParameters":{"id":20507,"nodeType":"ParameterList","parameters":[],"src":"27391:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20543,"nodeType":"FunctionDefinition","src":"27503:187:14","nodes":[],"body":{"id":20542,"nodeType":"Block","src":"27581:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c6164647265737329","id":20534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27631:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef529018e81552426f837435fb92b39b88965df2736546faff28c9f06e5f58b5","typeString":"literal_string \"log(uint256,bool,string,address)\""},"value":"log(uint256,bool,string,address)"},{"id":20535,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20522,"src":"27667:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20536,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20524,"src":"27671:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20537,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20526,"src":"27675:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20538,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20528,"src":"27679:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef529018e81552426f837435fb92b39b88965df2736546faff28c9f06e5f58b5","typeString":"literal_string \"log(uint256,bool,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20532,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27607:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20533,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27611:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27607:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27607:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20531,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"27591:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27591:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20541,"nodeType":"ExpressionStatement","src":"27591:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27512:3:14","parameters":{"id":20529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20522,"mutability":"mutable","name":"p0","nameLocation":"27524:2:14","nodeType":"VariableDeclaration","scope":20543,"src":"27516:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20521,"name":"uint256","nodeType":"ElementaryTypeName","src":"27516:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20524,"mutability":"mutable","name":"p1","nameLocation":"27533:2:14","nodeType":"VariableDeclaration","scope":20543,"src":"27528:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20523,"name":"bool","nodeType":"ElementaryTypeName","src":"27528:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20526,"mutability":"mutable","name":"p2","nameLocation":"27551:2:14","nodeType":"VariableDeclaration","scope":20543,"src":"27537:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20525,"name":"string","nodeType":"ElementaryTypeName","src":"27537:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20528,"mutability":"mutable","name":"p3","nameLocation":"27563:2:14","nodeType":"VariableDeclaration","scope":20543,"src":"27555:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20527,"name":"address","nodeType":"ElementaryTypeName","src":"27555:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"27515:51:14"},"returnParameters":{"id":20530,"nodeType":"ParameterList","parameters":[],"src":"27581:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20566,"nodeType":"FunctionDefinition","src":"27696:176:14","nodes":[],"body":{"id":20565,"nodeType":"Block","src":"27765:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c75696e7432353629","id":20557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27815:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7464ce2380e6490f75dd524dd03612157b27bca22ecbf1bc2f0ca22ac41015d1","typeString":"literal_string \"log(uint256,bool,bool,uint256)\""},"value":"log(uint256,bool,bool,uint256)"},{"id":20558,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20545,"src":"27849:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20559,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20547,"src":"27853:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20560,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20549,"src":"27857:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20561,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20551,"src":"27861:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7464ce2380e6490f75dd524dd03612157b27bca22ecbf1bc2f0ca22ac41015d1","typeString":"literal_string \"log(uint256,bool,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20555,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27791:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20556,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27795:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27791:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27791:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20554,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"27775:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27775:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20564,"nodeType":"ExpressionStatement","src":"27775:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27705:3:14","parameters":{"id":20552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20545,"mutability":"mutable","name":"p0","nameLocation":"27717:2:14","nodeType":"VariableDeclaration","scope":20566,"src":"27709:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20544,"name":"uint256","nodeType":"ElementaryTypeName","src":"27709:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20547,"mutability":"mutable","name":"p1","nameLocation":"27726:2:14","nodeType":"VariableDeclaration","scope":20566,"src":"27721:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20546,"name":"bool","nodeType":"ElementaryTypeName","src":"27721:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20549,"mutability":"mutable","name":"p2","nameLocation":"27735:2:14","nodeType":"VariableDeclaration","scope":20566,"src":"27730:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20548,"name":"bool","nodeType":"ElementaryTypeName","src":"27730:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20551,"mutability":"mutable","name":"p3","nameLocation":"27747:2:14","nodeType":"VariableDeclaration","scope":20566,"src":"27739:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20550,"name":"uint256","nodeType":"ElementaryTypeName","src":"27739:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27708:42:14"},"returnParameters":{"id":20553,"nodeType":"ParameterList","parameters":[],"src":"27765:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20589,"nodeType":"FunctionDefinition","src":"27878:181:14","nodes":[],"body":{"id":20588,"nodeType":"Block","src":"27953:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c737472696e6729","id":20580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28003:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_dddb956172e374c580dd136b5b8151c6400d22ece6b561a1010b6b9e902dd439","typeString":"literal_string \"log(uint256,bool,bool,string)\""},"value":"log(uint256,bool,bool,string)"},{"id":20581,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20568,"src":"28036:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20582,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20570,"src":"28040:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20583,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20572,"src":"28044:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20584,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20574,"src":"28048:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dddb956172e374c580dd136b5b8151c6400d22ece6b561a1010b6b9e902dd439","typeString":"literal_string \"log(uint256,bool,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20578,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27979:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27983:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27979:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27979:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20577,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"27963:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27963:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20587,"nodeType":"ExpressionStatement","src":"27963:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27887:3:14","parameters":{"id":20575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20568,"mutability":"mutable","name":"p0","nameLocation":"27899:2:14","nodeType":"VariableDeclaration","scope":20589,"src":"27891:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20567,"name":"uint256","nodeType":"ElementaryTypeName","src":"27891:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20570,"mutability":"mutable","name":"p1","nameLocation":"27908:2:14","nodeType":"VariableDeclaration","scope":20589,"src":"27903:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20569,"name":"bool","nodeType":"ElementaryTypeName","src":"27903:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20572,"mutability":"mutable","name":"p2","nameLocation":"27917:2:14","nodeType":"VariableDeclaration","scope":20589,"src":"27912:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20571,"name":"bool","nodeType":"ElementaryTypeName","src":"27912:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20574,"mutability":"mutable","name":"p3","nameLocation":"27935:2:14","nodeType":"VariableDeclaration","scope":20589,"src":"27921:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20573,"name":"string","nodeType":"ElementaryTypeName","src":"27921:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27890:48:14"},"returnParameters":{"id":20576,"nodeType":"ParameterList","parameters":[],"src":"27953:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20612,"nodeType":"FunctionDefinition","src":"28065:170:14","nodes":[],"body":{"id":20611,"nodeType":"Block","src":"28131:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c626f6f6c29","id":20603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28181:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6f577a1520f8fa7d40eaff9dcd5f293e28b7606bd07d0a450b13db93da80473","typeString":"literal_string \"log(uint256,bool,bool,bool)\""},"value":"log(uint256,bool,bool,bool)"},{"id":20604,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20591,"src":"28212:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20605,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20593,"src":"28216:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20606,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20595,"src":"28220:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20607,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20597,"src":"28224:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6f577a1520f8fa7d40eaff9dcd5f293e28b7606bd07d0a450b13db93da80473","typeString":"literal_string \"log(uint256,bool,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":20601,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28157:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28161:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28157:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28157:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20600,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"28141:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28141:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20610,"nodeType":"ExpressionStatement","src":"28141:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28074:3:14","parameters":{"id":20598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20591,"mutability":"mutable","name":"p0","nameLocation":"28086:2:14","nodeType":"VariableDeclaration","scope":20612,"src":"28078:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20590,"name":"uint256","nodeType":"ElementaryTypeName","src":"28078:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20593,"mutability":"mutable","name":"p1","nameLocation":"28095:2:14","nodeType":"VariableDeclaration","scope":20612,"src":"28090:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20592,"name":"bool","nodeType":"ElementaryTypeName","src":"28090:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20595,"mutability":"mutable","name":"p2","nameLocation":"28104:2:14","nodeType":"VariableDeclaration","scope":20612,"src":"28099:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20594,"name":"bool","nodeType":"ElementaryTypeName","src":"28099:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20597,"mutability":"mutable","name":"p3","nameLocation":"28113:2:14","nodeType":"VariableDeclaration","scope":20612,"src":"28108:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20596,"name":"bool","nodeType":"ElementaryTypeName","src":"28108:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28077:39:14"},"returnParameters":{"id":20599,"nodeType":"ParameterList","parameters":[],"src":"28131:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20635,"nodeType":"FunctionDefinition","src":"28241:176:14","nodes":[],"body":{"id":20634,"nodeType":"Block","src":"28310:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c6164647265737329","id":20626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28360:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_69640b598ea5b9e4e68e932871cb8a509ce832c6718a902773532568b8c95c31","typeString":"literal_string \"log(uint256,bool,bool,address)\""},"value":"log(uint256,bool,bool,address)"},{"id":20627,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20614,"src":"28394:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20628,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20616,"src":"28398:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20629,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20618,"src":"28402:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20630,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20620,"src":"28406:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_69640b598ea5b9e4e68e932871cb8a509ce832c6718a902773532568b8c95c31","typeString":"literal_string \"log(uint256,bool,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20624,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28336:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28340:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28336:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28336:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20623,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"28320:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28320:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20633,"nodeType":"ExpressionStatement","src":"28320:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28250:3:14","parameters":{"id":20621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20614,"mutability":"mutable","name":"p0","nameLocation":"28262:2:14","nodeType":"VariableDeclaration","scope":20635,"src":"28254:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20613,"name":"uint256","nodeType":"ElementaryTypeName","src":"28254:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20616,"mutability":"mutable","name":"p1","nameLocation":"28271:2:14","nodeType":"VariableDeclaration","scope":20635,"src":"28266:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20615,"name":"bool","nodeType":"ElementaryTypeName","src":"28266:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20618,"mutability":"mutable","name":"p2","nameLocation":"28280:2:14","nodeType":"VariableDeclaration","scope":20635,"src":"28275:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20617,"name":"bool","nodeType":"ElementaryTypeName","src":"28275:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20620,"mutability":"mutable","name":"p3","nameLocation":"28292:2:14","nodeType":"VariableDeclaration","scope":20635,"src":"28284:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20619,"name":"address","nodeType":"ElementaryTypeName","src":"28284:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28253:42:14"},"returnParameters":{"id":20622,"nodeType":"ParameterList","parameters":[],"src":"28310:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20658,"nodeType":"FunctionDefinition","src":"28423:182:14","nodes":[],"body":{"id":20657,"nodeType":"Block","src":"28495:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c75696e7432353629","id":20649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28545:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_078287f5d654caee11cca90bb8c074a9529509cd07319dc17a93fa036ea5ea88","typeString":"literal_string \"log(uint256,bool,address,uint256)\""},"value":"log(uint256,bool,address,uint256)"},{"id":20650,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20637,"src":"28582:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20651,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20639,"src":"28586:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20652,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20641,"src":"28590:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20653,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20643,"src":"28594:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_078287f5d654caee11cca90bb8c074a9529509cd07319dc17a93fa036ea5ea88","typeString":"literal_string \"log(uint256,bool,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20647,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28521:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20648,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28525:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28521:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28521:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20646,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"28505:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28505:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20656,"nodeType":"ExpressionStatement","src":"28505:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28432:3:14","parameters":{"id":20644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20637,"mutability":"mutable","name":"p0","nameLocation":"28444:2:14","nodeType":"VariableDeclaration","scope":20658,"src":"28436:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20636,"name":"uint256","nodeType":"ElementaryTypeName","src":"28436:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20639,"mutability":"mutable","name":"p1","nameLocation":"28453:2:14","nodeType":"VariableDeclaration","scope":20658,"src":"28448:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20638,"name":"bool","nodeType":"ElementaryTypeName","src":"28448:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20641,"mutability":"mutable","name":"p2","nameLocation":"28465:2:14","nodeType":"VariableDeclaration","scope":20658,"src":"28457:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20640,"name":"address","nodeType":"ElementaryTypeName","src":"28457:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20643,"mutability":"mutable","name":"p3","nameLocation":"28477:2:14","nodeType":"VariableDeclaration","scope":20658,"src":"28469:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20642,"name":"uint256","nodeType":"ElementaryTypeName","src":"28469:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28435:45:14"},"returnParameters":{"id":20645,"nodeType":"ParameterList","parameters":[],"src":"28495:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20681,"nodeType":"FunctionDefinition","src":"28611:187:14","nodes":[],"body":{"id":20680,"nodeType":"Block","src":"28689:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c737472696e6729","id":20672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28739:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ade052c70a8f7736e3d4ca12bfb5de52ba51cd4551a71eb41200e5ca9b193461","typeString":"literal_string \"log(uint256,bool,address,string)\""},"value":"log(uint256,bool,address,string)"},{"id":20673,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20660,"src":"28775:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20674,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20662,"src":"28779:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20675,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20664,"src":"28783:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20676,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20666,"src":"28787:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ade052c70a8f7736e3d4ca12bfb5de52ba51cd4551a71eb41200e5ca9b193461","typeString":"literal_string \"log(uint256,bool,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20670,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28715:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20671,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28719:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28715:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28715:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20669,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"28699:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28699:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20679,"nodeType":"ExpressionStatement","src":"28699:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28620:3:14","parameters":{"id":20667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20660,"mutability":"mutable","name":"p0","nameLocation":"28632:2:14","nodeType":"VariableDeclaration","scope":20681,"src":"28624:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20659,"name":"uint256","nodeType":"ElementaryTypeName","src":"28624:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20662,"mutability":"mutable","name":"p1","nameLocation":"28641:2:14","nodeType":"VariableDeclaration","scope":20681,"src":"28636:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20661,"name":"bool","nodeType":"ElementaryTypeName","src":"28636:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20664,"mutability":"mutable","name":"p2","nameLocation":"28653:2:14","nodeType":"VariableDeclaration","scope":20681,"src":"28645:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20663,"name":"address","nodeType":"ElementaryTypeName","src":"28645:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20666,"mutability":"mutable","name":"p3","nameLocation":"28671:2:14","nodeType":"VariableDeclaration","scope":20681,"src":"28657:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20665,"name":"string","nodeType":"ElementaryTypeName","src":"28657:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28623:51:14"},"returnParameters":{"id":20668,"nodeType":"ParameterList","parameters":[],"src":"28689:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20704,"nodeType":"FunctionDefinition","src":"28804:176:14","nodes":[],"body":{"id":20703,"nodeType":"Block","src":"28873:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c626f6f6c29","id":20695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28923:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_454d54a5a1119d55883b5fbee0d6f19af54017eb1650d2284224aac472880f6a","typeString":"literal_string \"log(uint256,bool,address,bool)\""},"value":"log(uint256,bool,address,bool)"},{"id":20696,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20683,"src":"28957:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20697,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20685,"src":"28961:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20698,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20687,"src":"28965:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20699,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20689,"src":"28969:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_454d54a5a1119d55883b5fbee0d6f19af54017eb1650d2284224aac472880f6a","typeString":"literal_string \"log(uint256,bool,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":20693,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28899:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28903:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28899:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28899:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20692,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"28883:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28883:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20702,"nodeType":"ExpressionStatement","src":"28883:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28813:3:14","parameters":{"id":20690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20683,"mutability":"mutable","name":"p0","nameLocation":"28825:2:14","nodeType":"VariableDeclaration","scope":20704,"src":"28817:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20682,"name":"uint256","nodeType":"ElementaryTypeName","src":"28817:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20685,"mutability":"mutable","name":"p1","nameLocation":"28834:2:14","nodeType":"VariableDeclaration","scope":20704,"src":"28829:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20684,"name":"bool","nodeType":"ElementaryTypeName","src":"28829:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20687,"mutability":"mutable","name":"p2","nameLocation":"28846:2:14","nodeType":"VariableDeclaration","scope":20704,"src":"28838:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20686,"name":"address","nodeType":"ElementaryTypeName","src":"28838:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20689,"mutability":"mutable","name":"p3","nameLocation":"28855:2:14","nodeType":"VariableDeclaration","scope":20704,"src":"28850:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20688,"name":"bool","nodeType":"ElementaryTypeName","src":"28850:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28816:42:14"},"returnParameters":{"id":20691,"nodeType":"ParameterList","parameters":[],"src":"28873:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20727,"nodeType":"FunctionDefinition","src":"28986:182:14","nodes":[],"body":{"id":20726,"nodeType":"Block","src":"29058:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c6164647265737329","id":20718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29108:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1ef4cbbfd0316a849f14b661567c9c341a49bccb745dfb6a3d9b82c389ac190","typeString":"literal_string \"log(uint256,bool,address,address)\""},"value":"log(uint256,bool,address,address)"},{"id":20719,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20706,"src":"29145:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20720,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20708,"src":"29149:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20721,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20710,"src":"29153:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20722,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20712,"src":"29157:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1ef4cbbfd0316a849f14b661567c9c341a49bccb745dfb6a3d9b82c389ac190","typeString":"literal_string \"log(uint256,bool,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20716,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29084:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20717,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29088:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29084:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29084:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20715,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"29068:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29068:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20725,"nodeType":"ExpressionStatement","src":"29068:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28995:3:14","parameters":{"id":20713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20706,"mutability":"mutable","name":"p0","nameLocation":"29007:2:14","nodeType":"VariableDeclaration","scope":20727,"src":"28999:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20705,"name":"uint256","nodeType":"ElementaryTypeName","src":"28999:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20708,"mutability":"mutable","name":"p1","nameLocation":"29016:2:14","nodeType":"VariableDeclaration","scope":20727,"src":"29011:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20707,"name":"bool","nodeType":"ElementaryTypeName","src":"29011:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20710,"mutability":"mutable","name":"p2","nameLocation":"29028:2:14","nodeType":"VariableDeclaration","scope":20727,"src":"29020:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20709,"name":"address","nodeType":"ElementaryTypeName","src":"29020:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20712,"mutability":"mutable","name":"p3","nameLocation":"29040:2:14","nodeType":"VariableDeclaration","scope":20727,"src":"29032:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20711,"name":"address","nodeType":"ElementaryTypeName","src":"29032:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28998:45:14"},"returnParameters":{"id":20714,"nodeType":"ParameterList","parameters":[],"src":"29058:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20750,"nodeType":"FunctionDefinition","src":"29174:188:14","nodes":[],"body":{"id":20749,"nodeType":"Block","src":"29249:113:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c75696e7432353629","id":20741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29299:38:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c9cd9c12a2e17a9af800ac7e9a2b379066135ecb5b197bdb13381ac61cbc59a","typeString":"literal_string \"log(uint256,address,uint256,uint256)\""},"value":"log(uint256,address,uint256,uint256)"},{"id":20742,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20729,"src":"29339:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20743,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20731,"src":"29343:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20744,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20733,"src":"29347:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20745,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20735,"src":"29351:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c9cd9c12a2e17a9af800ac7e9a2b379066135ecb5b197bdb13381ac61cbc59a","typeString":"literal_string \"log(uint256,address,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20739,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29275:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20740,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29279:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29275:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29275:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20738,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"29259:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29259:96:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20748,"nodeType":"ExpressionStatement","src":"29259:96:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29183:3:14","parameters":{"id":20736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20729,"mutability":"mutable","name":"p0","nameLocation":"29195:2:14","nodeType":"VariableDeclaration","scope":20750,"src":"29187:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20728,"name":"uint256","nodeType":"ElementaryTypeName","src":"29187:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20731,"mutability":"mutable","name":"p1","nameLocation":"29207:2:14","nodeType":"VariableDeclaration","scope":20750,"src":"29199:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20730,"name":"address","nodeType":"ElementaryTypeName","src":"29199:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20733,"mutability":"mutable","name":"p2","nameLocation":"29219:2:14","nodeType":"VariableDeclaration","scope":20750,"src":"29211:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20732,"name":"uint256","nodeType":"ElementaryTypeName","src":"29211:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20735,"mutability":"mutable","name":"p3","nameLocation":"29231:2:14","nodeType":"VariableDeclaration","scope":20750,"src":"29223:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20734,"name":"uint256","nodeType":"ElementaryTypeName","src":"29223:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29186:48:14"},"returnParameters":{"id":20737,"nodeType":"ParameterList","parameters":[],"src":"29249:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20773,"nodeType":"FunctionDefinition","src":"29368:193:14","nodes":[],"body":{"id":20772,"nodeType":"Block","src":"29449:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c737472696e6729","id":20764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29499:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ddb06521f885b932f9898b05830c564a50fea82133f47ad308278affbd84d0bd","typeString":"literal_string \"log(uint256,address,uint256,string)\""},"value":"log(uint256,address,uint256,string)"},{"id":20765,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20752,"src":"29538:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20766,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20754,"src":"29542:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20767,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20756,"src":"29546:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20768,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20758,"src":"29550:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ddb06521f885b932f9898b05830c564a50fea82133f47ad308278affbd84d0bd","typeString":"literal_string \"log(uint256,address,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20762,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29475:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20763,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29479:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29475:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29475:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20761,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"29459:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29459:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20771,"nodeType":"ExpressionStatement","src":"29459:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29377:3:14","parameters":{"id":20759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20752,"mutability":"mutable","name":"p0","nameLocation":"29389:2:14","nodeType":"VariableDeclaration","scope":20773,"src":"29381:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20751,"name":"uint256","nodeType":"ElementaryTypeName","src":"29381:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20754,"mutability":"mutable","name":"p1","nameLocation":"29401:2:14","nodeType":"VariableDeclaration","scope":20773,"src":"29393:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20753,"name":"address","nodeType":"ElementaryTypeName","src":"29393:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20756,"mutability":"mutable","name":"p2","nameLocation":"29413:2:14","nodeType":"VariableDeclaration","scope":20773,"src":"29405:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20755,"name":"uint256","nodeType":"ElementaryTypeName","src":"29405:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20758,"mutability":"mutable","name":"p3","nameLocation":"29431:2:14","nodeType":"VariableDeclaration","scope":20773,"src":"29417:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20757,"name":"string","nodeType":"ElementaryTypeName","src":"29417:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29380:54:14"},"returnParameters":{"id":20760,"nodeType":"ParameterList","parameters":[],"src":"29449:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20796,"nodeType":"FunctionDefinition","src":"29567:182:14","nodes":[],"body":{"id":20795,"nodeType":"Block","src":"29639:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c626f6f6c29","id":20787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29689:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f743a7c155871069fb5e6df4e57e25e572bb3015b18294cc69630b2e0ae2e5f","typeString":"literal_string \"log(uint256,address,uint256,bool)\""},"value":"log(uint256,address,uint256,bool)"},{"id":20788,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20775,"src":"29726:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20789,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20777,"src":"29730:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20790,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20779,"src":"29734:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20791,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20781,"src":"29738:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f743a7c155871069fb5e6df4e57e25e572bb3015b18294cc69630b2e0ae2e5f","typeString":"literal_string \"log(uint256,address,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":20785,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29665:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29669:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29665:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29665:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20784,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"29649:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29649:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20794,"nodeType":"ExpressionStatement","src":"29649:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29576:3:14","parameters":{"id":20782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20775,"mutability":"mutable","name":"p0","nameLocation":"29588:2:14","nodeType":"VariableDeclaration","scope":20796,"src":"29580:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20774,"name":"uint256","nodeType":"ElementaryTypeName","src":"29580:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20777,"mutability":"mutable","name":"p1","nameLocation":"29600:2:14","nodeType":"VariableDeclaration","scope":20796,"src":"29592:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20776,"name":"address","nodeType":"ElementaryTypeName","src":"29592:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20779,"mutability":"mutable","name":"p2","nameLocation":"29612:2:14","nodeType":"VariableDeclaration","scope":20796,"src":"29604:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20778,"name":"uint256","nodeType":"ElementaryTypeName","src":"29604:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20781,"mutability":"mutable","name":"p3","nameLocation":"29621:2:14","nodeType":"VariableDeclaration","scope":20796,"src":"29616:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20780,"name":"bool","nodeType":"ElementaryTypeName","src":"29616:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29579:45:14"},"returnParameters":{"id":20783,"nodeType":"ParameterList","parameters":[],"src":"29639:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20819,"nodeType":"FunctionDefinition","src":"29755:188:14","nodes":[],"body":{"id":20818,"nodeType":"Block","src":"29830:113:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c6164647265737329","id":20810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29880:38:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_15c127b50404cc1f9627d5115fd42bf400df548658b1002bf25e12f94854b379","typeString":"literal_string \"log(uint256,address,uint256,address)\""},"value":"log(uint256,address,uint256,address)"},{"id":20811,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20798,"src":"29920:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20812,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20800,"src":"29924:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20813,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20802,"src":"29928:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20814,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20804,"src":"29932:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_15c127b50404cc1f9627d5115fd42bf400df548658b1002bf25e12f94854b379","typeString":"literal_string \"log(uint256,address,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20808,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29856:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29860:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29856:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29856:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20807,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"29840:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29840:96:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20817,"nodeType":"ExpressionStatement","src":"29840:96:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29764:3:14","parameters":{"id":20805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20798,"mutability":"mutable","name":"p0","nameLocation":"29776:2:14","nodeType":"VariableDeclaration","scope":20819,"src":"29768:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20797,"name":"uint256","nodeType":"ElementaryTypeName","src":"29768:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20800,"mutability":"mutable","name":"p1","nameLocation":"29788:2:14","nodeType":"VariableDeclaration","scope":20819,"src":"29780:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20799,"name":"address","nodeType":"ElementaryTypeName","src":"29780:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20802,"mutability":"mutable","name":"p2","nameLocation":"29800:2:14","nodeType":"VariableDeclaration","scope":20819,"src":"29792:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20801,"name":"uint256","nodeType":"ElementaryTypeName","src":"29792:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20804,"mutability":"mutable","name":"p3","nameLocation":"29812:2:14","nodeType":"VariableDeclaration","scope":20819,"src":"29804:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20803,"name":"address","nodeType":"ElementaryTypeName","src":"29804:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29767:48:14"},"returnParameters":{"id":20806,"nodeType":"ParameterList","parameters":[],"src":"29830:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20842,"nodeType":"FunctionDefinition","src":"29949:193:14","nodes":[],"body":{"id":20841,"nodeType":"Block","src":"30030:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c75696e7432353629","id":20833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30080:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_46826b5dec5e8aeff4504f2c138d4e9c8aadb89d9034725f3050269a35303ba0","typeString":"literal_string \"log(uint256,address,string,uint256)\""},"value":"log(uint256,address,string,uint256)"},{"id":20834,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20821,"src":"30119:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20835,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20823,"src":"30123:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20836,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20825,"src":"30127:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20837,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20827,"src":"30131:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46826b5dec5e8aeff4504f2c138d4e9c8aadb89d9034725f3050269a35303ba0","typeString":"literal_string \"log(uint256,address,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20831,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30056:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30060:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30056:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30056:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20830,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"30040:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30040:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20840,"nodeType":"ExpressionStatement","src":"30040:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29958:3:14","parameters":{"id":20828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20821,"mutability":"mutable","name":"p0","nameLocation":"29970:2:14","nodeType":"VariableDeclaration","scope":20842,"src":"29962:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20820,"name":"uint256","nodeType":"ElementaryTypeName","src":"29962:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20823,"mutability":"mutable","name":"p1","nameLocation":"29982:2:14","nodeType":"VariableDeclaration","scope":20842,"src":"29974:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20822,"name":"address","nodeType":"ElementaryTypeName","src":"29974:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20825,"mutability":"mutable","name":"p2","nameLocation":"30000:2:14","nodeType":"VariableDeclaration","scope":20842,"src":"29986:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20824,"name":"string","nodeType":"ElementaryTypeName","src":"29986:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20827,"mutability":"mutable","name":"p3","nameLocation":"30012:2:14","nodeType":"VariableDeclaration","scope":20842,"src":"30004:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20826,"name":"uint256","nodeType":"ElementaryTypeName","src":"30004:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29961:54:14"},"returnParameters":{"id":20829,"nodeType":"ParameterList","parameters":[],"src":"30030:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20865,"nodeType":"FunctionDefinition","src":"30148:198:14","nodes":[],"body":{"id":20864,"nodeType":"Block","src":"30235:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c737472696e6729","id":20856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30285:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3e128ca3cc785552dc4e62d3c73af79fb5f114dc6f0c0eb2bc0e3bdbbd4a1d3b","typeString":"literal_string \"log(uint256,address,string,string)\""},"value":"log(uint256,address,string,string)"},{"id":20857,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20844,"src":"30323:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20858,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20846,"src":"30327:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20859,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20848,"src":"30331:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20860,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20850,"src":"30335:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3e128ca3cc785552dc4e62d3c73af79fb5f114dc6f0c0eb2bc0e3bdbbd4a1d3b","typeString":"literal_string \"log(uint256,address,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20854,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30261:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30265:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30261:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30261:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20853,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"30245:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30245:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20863,"nodeType":"ExpressionStatement","src":"30245:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30157:3:14","parameters":{"id":20851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20844,"mutability":"mutable","name":"p0","nameLocation":"30169:2:14","nodeType":"VariableDeclaration","scope":20865,"src":"30161:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20843,"name":"uint256","nodeType":"ElementaryTypeName","src":"30161:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20846,"mutability":"mutable","name":"p1","nameLocation":"30181:2:14","nodeType":"VariableDeclaration","scope":20865,"src":"30173:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20845,"name":"address","nodeType":"ElementaryTypeName","src":"30173:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20848,"mutability":"mutable","name":"p2","nameLocation":"30199:2:14","nodeType":"VariableDeclaration","scope":20865,"src":"30185:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20847,"name":"string","nodeType":"ElementaryTypeName","src":"30185:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20850,"mutability":"mutable","name":"p3","nameLocation":"30217:2:14","nodeType":"VariableDeclaration","scope":20865,"src":"30203:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20849,"name":"string","nodeType":"ElementaryTypeName","src":"30203:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30160:60:14"},"returnParameters":{"id":20852,"nodeType":"ParameterList","parameters":[],"src":"30235:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20888,"nodeType":"FunctionDefinition","src":"30352:187:14","nodes":[],"body":{"id":20887,"nodeType":"Block","src":"30430:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c626f6f6c29","id":20879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30480:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc32ab07df108ae88df1c6b9771e60e5cd39cbe0f0e92481af8633000db2c64b","typeString":"literal_string \"log(uint256,address,string,bool)\""},"value":"log(uint256,address,string,bool)"},{"id":20880,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20867,"src":"30516:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20881,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20869,"src":"30520:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20882,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20871,"src":"30524:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20883,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20873,"src":"30528:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cc32ab07df108ae88df1c6b9771e60e5cd39cbe0f0e92481af8633000db2c64b","typeString":"literal_string \"log(uint256,address,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":20877,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30456:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30460:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30456:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30456:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20876,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"30440:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30440:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20886,"nodeType":"ExpressionStatement","src":"30440:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30361:3:14","parameters":{"id":20874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20867,"mutability":"mutable","name":"p0","nameLocation":"30373:2:14","nodeType":"VariableDeclaration","scope":20888,"src":"30365:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20866,"name":"uint256","nodeType":"ElementaryTypeName","src":"30365:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20869,"mutability":"mutable","name":"p1","nameLocation":"30385:2:14","nodeType":"VariableDeclaration","scope":20888,"src":"30377:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20868,"name":"address","nodeType":"ElementaryTypeName","src":"30377:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20871,"mutability":"mutable","name":"p2","nameLocation":"30403:2:14","nodeType":"VariableDeclaration","scope":20888,"src":"30389:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20870,"name":"string","nodeType":"ElementaryTypeName","src":"30389:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20873,"mutability":"mutable","name":"p3","nameLocation":"30412:2:14","nodeType":"VariableDeclaration","scope":20888,"src":"30407:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20872,"name":"bool","nodeType":"ElementaryTypeName","src":"30407:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30364:51:14"},"returnParameters":{"id":20875,"nodeType":"ParameterList","parameters":[],"src":"30430:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20911,"nodeType":"FunctionDefinition","src":"30545:193:14","nodes":[],"body":{"id":20910,"nodeType":"Block","src":"30626:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c6164647265737329","id":20902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30676:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9cba8fffa4a3e6f47d307a71f619bf1719d0a75680c6c916d7776ea0341039b9","typeString":"literal_string \"log(uint256,address,string,address)\""},"value":"log(uint256,address,string,address)"},{"id":20903,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20890,"src":"30715:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20904,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20892,"src":"30719:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20905,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20894,"src":"30723:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20906,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20896,"src":"30727:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9cba8fffa4a3e6f47d307a71f619bf1719d0a75680c6c916d7776ea0341039b9","typeString":"literal_string \"log(uint256,address,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20900,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30652:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30656:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30652:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30652:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20899,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"30636:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30636:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20909,"nodeType":"ExpressionStatement","src":"30636:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30554:3:14","parameters":{"id":20897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20890,"mutability":"mutable","name":"p0","nameLocation":"30566:2:14","nodeType":"VariableDeclaration","scope":20911,"src":"30558:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20889,"name":"uint256","nodeType":"ElementaryTypeName","src":"30558:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20892,"mutability":"mutable","name":"p1","nameLocation":"30578:2:14","nodeType":"VariableDeclaration","scope":20911,"src":"30570:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20891,"name":"address","nodeType":"ElementaryTypeName","src":"30570:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20894,"mutability":"mutable","name":"p2","nameLocation":"30596:2:14","nodeType":"VariableDeclaration","scope":20911,"src":"30582:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20893,"name":"string","nodeType":"ElementaryTypeName","src":"30582:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20896,"mutability":"mutable","name":"p3","nameLocation":"30608:2:14","nodeType":"VariableDeclaration","scope":20911,"src":"30600:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20895,"name":"address","nodeType":"ElementaryTypeName","src":"30600:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"30557:54:14"},"returnParameters":{"id":20898,"nodeType":"ParameterList","parameters":[],"src":"30626:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20934,"nodeType":"FunctionDefinition","src":"30744:182:14","nodes":[],"body":{"id":20933,"nodeType":"Block","src":"30816:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c75696e7432353629","id":20925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30866:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5abd992a7a64be8afc8745d44215dd5b4a31f8b03abd4cb03ff6565b7f51c1b1","typeString":"literal_string \"log(uint256,address,bool,uint256)\""},"value":"log(uint256,address,bool,uint256)"},{"id":20926,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20913,"src":"30903:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20927,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20915,"src":"30907:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20928,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20917,"src":"30911:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20929,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20919,"src":"30915:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5abd992a7a64be8afc8745d44215dd5b4a31f8b03abd4cb03ff6565b7f51c1b1","typeString":"literal_string \"log(uint256,address,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20923,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30842:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30846:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30842:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30842:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20922,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"30826:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30826:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20932,"nodeType":"ExpressionStatement","src":"30826:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30753:3:14","parameters":{"id":20920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20913,"mutability":"mutable","name":"p0","nameLocation":"30765:2:14","nodeType":"VariableDeclaration","scope":20934,"src":"30757:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20912,"name":"uint256","nodeType":"ElementaryTypeName","src":"30757:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20915,"mutability":"mutable","name":"p1","nameLocation":"30777:2:14","nodeType":"VariableDeclaration","scope":20934,"src":"30769:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20914,"name":"address","nodeType":"ElementaryTypeName","src":"30769:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20917,"mutability":"mutable","name":"p2","nameLocation":"30786:2:14","nodeType":"VariableDeclaration","scope":20934,"src":"30781:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20916,"name":"bool","nodeType":"ElementaryTypeName","src":"30781:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20919,"mutability":"mutable","name":"p3","nameLocation":"30798:2:14","nodeType":"VariableDeclaration","scope":20934,"src":"30790:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20918,"name":"uint256","nodeType":"ElementaryTypeName","src":"30790:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30756:45:14"},"returnParameters":{"id":20921,"nodeType":"ParameterList","parameters":[],"src":"30816:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20957,"nodeType":"FunctionDefinition","src":"30932:187:14","nodes":[],"body":{"id":20956,"nodeType":"Block","src":"31010:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c737472696e6729","id":20948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31060:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_90fb06aa0f94ddb9149d9a0d0271a9fd2b331af93ebc6a4aece22e4f82154c7d","typeString":"literal_string \"log(uint256,address,bool,string)\""},"value":"log(uint256,address,bool,string)"},{"id":20949,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20936,"src":"31096:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20950,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20938,"src":"31100:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20951,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20940,"src":"31104:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20952,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20942,"src":"31108:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90fb06aa0f94ddb9149d9a0d0271a9fd2b331af93ebc6a4aece22e4f82154c7d","typeString":"literal_string \"log(uint256,address,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20946,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31036:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31040:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31036:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31036:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20945,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"31020:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31020:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20955,"nodeType":"ExpressionStatement","src":"31020:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30941:3:14","parameters":{"id":20943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20936,"mutability":"mutable","name":"p0","nameLocation":"30953:2:14","nodeType":"VariableDeclaration","scope":20957,"src":"30945:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20935,"name":"uint256","nodeType":"ElementaryTypeName","src":"30945:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20938,"mutability":"mutable","name":"p1","nameLocation":"30965:2:14","nodeType":"VariableDeclaration","scope":20957,"src":"30957:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20937,"name":"address","nodeType":"ElementaryTypeName","src":"30957:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20940,"mutability":"mutable","name":"p2","nameLocation":"30974:2:14","nodeType":"VariableDeclaration","scope":20957,"src":"30969:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20939,"name":"bool","nodeType":"ElementaryTypeName","src":"30969:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20942,"mutability":"mutable","name":"p3","nameLocation":"30992:2:14","nodeType":"VariableDeclaration","scope":20957,"src":"30978:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20941,"name":"string","nodeType":"ElementaryTypeName","src":"30978:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30944:51:14"},"returnParameters":{"id":20944,"nodeType":"ParameterList","parameters":[],"src":"31010:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20980,"nodeType":"FunctionDefinition","src":"31125:176:14","nodes":[],"body":{"id":20979,"nodeType":"Block","src":"31194:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c626f6f6c29","id":20971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31244:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e351140f919f09731a4793c7bb4d5f07234902f499ced9e1e3c9639d2685c6f1","typeString":"literal_string \"log(uint256,address,bool,bool)\""},"value":"log(uint256,address,bool,bool)"},{"id":20972,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20959,"src":"31278:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20973,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20961,"src":"31282:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20974,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20963,"src":"31286:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20975,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20965,"src":"31290:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e351140f919f09731a4793c7bb4d5f07234902f499ced9e1e3c9639d2685c6f1","typeString":"literal_string \"log(uint256,address,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":20969,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31220:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31224:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31220:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31220:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20968,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"31204:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31204:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20978,"nodeType":"ExpressionStatement","src":"31204:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31134:3:14","parameters":{"id":20966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20959,"mutability":"mutable","name":"p0","nameLocation":"31146:2:14","nodeType":"VariableDeclaration","scope":20980,"src":"31138:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20958,"name":"uint256","nodeType":"ElementaryTypeName","src":"31138:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20961,"mutability":"mutable","name":"p1","nameLocation":"31158:2:14","nodeType":"VariableDeclaration","scope":20980,"src":"31150:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20960,"name":"address","nodeType":"ElementaryTypeName","src":"31150:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20963,"mutability":"mutable","name":"p2","nameLocation":"31167:2:14","nodeType":"VariableDeclaration","scope":20980,"src":"31162:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20962,"name":"bool","nodeType":"ElementaryTypeName","src":"31162:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20965,"mutability":"mutable","name":"p3","nameLocation":"31176:2:14","nodeType":"VariableDeclaration","scope":20980,"src":"31171:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20964,"name":"bool","nodeType":"ElementaryTypeName","src":"31171:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"31137:42:14"},"returnParameters":{"id":20967,"nodeType":"ParameterList","parameters":[],"src":"31194:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21003,"nodeType":"FunctionDefinition","src":"31307:182:14","nodes":[],"body":{"id":21002,"nodeType":"Block","src":"31379:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c6164647265737329","id":20994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31429:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef72c5130890d3b81e89bdbf9a039a84547328dd01c955d6bb1088aaf2252d05","typeString":"literal_string \"log(uint256,address,bool,address)\""},"value":"log(uint256,address,bool,address)"},{"id":20995,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20982,"src":"31466:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20996,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20984,"src":"31470:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20997,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20986,"src":"31474:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20998,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20988,"src":"31478:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef72c5130890d3b81e89bdbf9a039a84547328dd01c955d6bb1088aaf2252d05","typeString":"literal_string \"log(uint256,address,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20992,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31405:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31409:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31405:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31405:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20991,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"31389:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31389:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21001,"nodeType":"ExpressionStatement","src":"31389:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31316:3:14","parameters":{"id":20989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20982,"mutability":"mutable","name":"p0","nameLocation":"31328:2:14","nodeType":"VariableDeclaration","scope":21003,"src":"31320:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20981,"name":"uint256","nodeType":"ElementaryTypeName","src":"31320:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20984,"mutability":"mutable","name":"p1","nameLocation":"31340:2:14","nodeType":"VariableDeclaration","scope":21003,"src":"31332:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20983,"name":"address","nodeType":"ElementaryTypeName","src":"31332:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20986,"mutability":"mutable","name":"p2","nameLocation":"31349:2:14","nodeType":"VariableDeclaration","scope":21003,"src":"31344:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20985,"name":"bool","nodeType":"ElementaryTypeName","src":"31344:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20988,"mutability":"mutable","name":"p3","nameLocation":"31361:2:14","nodeType":"VariableDeclaration","scope":21003,"src":"31353:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20987,"name":"address","nodeType":"ElementaryTypeName","src":"31353:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31319:45:14"},"returnParameters":{"id":20990,"nodeType":"ParameterList","parameters":[],"src":"31379:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21026,"nodeType":"FunctionDefinition","src":"31495:188:14","nodes":[],"body":{"id":21025,"nodeType":"Block","src":"31570:113:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c75696e7432353629","id":21017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31620:38:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_736efbb692cd4ba0c879f89673f1c5a7eb58e7bd2b833c4d30d41d3aa9c7a23a","typeString":"literal_string \"log(uint256,address,address,uint256)\""},"value":"log(uint256,address,address,uint256)"},{"id":21018,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21005,"src":"31660:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21019,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21007,"src":"31664:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21020,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21009,"src":"31668:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21021,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21011,"src":"31672:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_736efbb692cd4ba0c879f89673f1c5a7eb58e7bd2b833c4d30d41d3aa9c7a23a","typeString":"literal_string \"log(uint256,address,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21015,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31596:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21016,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31600:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31596:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31596:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21014,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"31580:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31580:96:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21024,"nodeType":"ExpressionStatement","src":"31580:96:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31504:3:14","parameters":{"id":21012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21005,"mutability":"mutable","name":"p0","nameLocation":"31516:2:14","nodeType":"VariableDeclaration","scope":21026,"src":"31508:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21004,"name":"uint256","nodeType":"ElementaryTypeName","src":"31508:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21007,"mutability":"mutable","name":"p1","nameLocation":"31528:2:14","nodeType":"VariableDeclaration","scope":21026,"src":"31520:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21006,"name":"address","nodeType":"ElementaryTypeName","src":"31520:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21009,"mutability":"mutable","name":"p2","nameLocation":"31540:2:14","nodeType":"VariableDeclaration","scope":21026,"src":"31532:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21008,"name":"address","nodeType":"ElementaryTypeName","src":"31532:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21011,"mutability":"mutable","name":"p3","nameLocation":"31552:2:14","nodeType":"VariableDeclaration","scope":21026,"src":"31544:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21010,"name":"uint256","nodeType":"ElementaryTypeName","src":"31544:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31507:48:14"},"returnParameters":{"id":21013,"nodeType":"ParameterList","parameters":[],"src":"31570:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21049,"nodeType":"FunctionDefinition","src":"31689:193:14","nodes":[],"body":{"id":21048,"nodeType":"Block","src":"31770:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c737472696e6729","id":21040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31820:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_031c6f73458c2a0d841ad5d5914dceb24973d9df898a3826eec79330397cd882","typeString":"literal_string \"log(uint256,address,address,string)\""},"value":"log(uint256,address,address,string)"},{"id":21041,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21028,"src":"31859:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21042,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21030,"src":"31863:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21043,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21032,"src":"31867:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21044,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21034,"src":"31871:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_031c6f73458c2a0d841ad5d5914dceb24973d9df898a3826eec79330397cd882","typeString":"literal_string \"log(uint256,address,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21038,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31796:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21039,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31800:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31796:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31796:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21037,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"31780:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31780:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21047,"nodeType":"ExpressionStatement","src":"31780:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31698:3:14","parameters":{"id":21035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21028,"mutability":"mutable","name":"p0","nameLocation":"31710:2:14","nodeType":"VariableDeclaration","scope":21049,"src":"31702:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21027,"name":"uint256","nodeType":"ElementaryTypeName","src":"31702:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21030,"mutability":"mutable","name":"p1","nameLocation":"31722:2:14","nodeType":"VariableDeclaration","scope":21049,"src":"31714:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21029,"name":"address","nodeType":"ElementaryTypeName","src":"31714:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21032,"mutability":"mutable","name":"p2","nameLocation":"31734:2:14","nodeType":"VariableDeclaration","scope":21049,"src":"31726:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21031,"name":"address","nodeType":"ElementaryTypeName","src":"31726:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21034,"mutability":"mutable","name":"p3","nameLocation":"31752:2:14","nodeType":"VariableDeclaration","scope":21049,"src":"31738:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21033,"name":"string","nodeType":"ElementaryTypeName","src":"31738:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31701:54:14"},"returnParameters":{"id":21036,"nodeType":"ParameterList","parameters":[],"src":"31770:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21072,"nodeType":"FunctionDefinition","src":"31888:182:14","nodes":[],"body":{"id":21071,"nodeType":"Block","src":"31960:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c626f6f6c29","id":21063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32010:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_091ffaf5e3365a794bfeb97b8157886a9ba00c981ee88d8a8fdb0cc96a5e6c1d","typeString":"literal_string \"log(uint256,address,address,bool)\""},"value":"log(uint256,address,address,bool)"},{"id":21064,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21051,"src":"32047:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21065,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21053,"src":"32051:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21066,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21055,"src":"32055:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21067,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21057,"src":"32059:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_091ffaf5e3365a794bfeb97b8157886a9ba00c981ee88d8a8fdb0cc96a5e6c1d","typeString":"literal_string \"log(uint256,address,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":21061,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31986:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31990:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31986:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31986:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21060,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"31970:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31970:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21070,"nodeType":"ExpressionStatement","src":"31970:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31897:3:14","parameters":{"id":21058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21051,"mutability":"mutable","name":"p0","nameLocation":"31909:2:14","nodeType":"VariableDeclaration","scope":21072,"src":"31901:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21050,"name":"uint256","nodeType":"ElementaryTypeName","src":"31901:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21053,"mutability":"mutable","name":"p1","nameLocation":"31921:2:14","nodeType":"VariableDeclaration","scope":21072,"src":"31913:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21052,"name":"address","nodeType":"ElementaryTypeName","src":"31913:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21055,"mutability":"mutable","name":"p2","nameLocation":"31933:2:14","nodeType":"VariableDeclaration","scope":21072,"src":"31925:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21054,"name":"address","nodeType":"ElementaryTypeName","src":"31925:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21057,"mutability":"mutable","name":"p3","nameLocation":"31942:2:14","nodeType":"VariableDeclaration","scope":21072,"src":"31937:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21056,"name":"bool","nodeType":"ElementaryTypeName","src":"31937:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"31900:45:14"},"returnParameters":{"id":21059,"nodeType":"ParameterList","parameters":[],"src":"31960:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21095,"nodeType":"FunctionDefinition","src":"32076:188:14","nodes":[],"body":{"id":21094,"nodeType":"Block","src":"32151:113:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c6164647265737329","id":21086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32201:38:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2488b414330cbd4ddab2b849dacd8bed50b19b82318ec6e4a5ccdf72ee519553","typeString":"literal_string \"log(uint256,address,address,address)\""},"value":"log(uint256,address,address,address)"},{"id":21087,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21074,"src":"32241:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21088,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21076,"src":"32245:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21089,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21078,"src":"32249:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21090,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21080,"src":"32253:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2488b414330cbd4ddab2b849dacd8bed50b19b82318ec6e4a5ccdf72ee519553","typeString":"literal_string \"log(uint256,address,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21084,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32177:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32181:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32177:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32177:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21083,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"32161:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32161:96:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21093,"nodeType":"ExpressionStatement","src":"32161:96:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32085:3:14","parameters":{"id":21081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21074,"mutability":"mutable","name":"p0","nameLocation":"32097:2:14","nodeType":"VariableDeclaration","scope":21095,"src":"32089:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21073,"name":"uint256","nodeType":"ElementaryTypeName","src":"32089:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21076,"mutability":"mutable","name":"p1","nameLocation":"32109:2:14","nodeType":"VariableDeclaration","scope":21095,"src":"32101:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21075,"name":"address","nodeType":"ElementaryTypeName","src":"32101:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21078,"mutability":"mutable","name":"p2","nameLocation":"32121:2:14","nodeType":"VariableDeclaration","scope":21095,"src":"32113:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21077,"name":"address","nodeType":"ElementaryTypeName","src":"32113:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21080,"mutability":"mutable","name":"p3","nameLocation":"32133:2:14","nodeType":"VariableDeclaration","scope":21095,"src":"32125:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21079,"name":"address","nodeType":"ElementaryTypeName","src":"32125:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32088:48:14"},"returnParameters":{"id":21082,"nodeType":"ParameterList","parameters":[],"src":"32151:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21118,"nodeType":"FunctionDefinition","src":"32270:193:14","nodes":[],"body":{"id":21117,"nodeType":"Block","src":"32351:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c75696e7432353629","id":21109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32401:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a7a8785394d9aadf7945b4e3d27726dea716dc88e3f64cc80b3aa9abbd2751c5","typeString":"literal_string \"log(string,uint256,uint256,uint256)\""},"value":"log(string,uint256,uint256,uint256)"},{"id":21110,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"32440:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21111,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21099,"src":"32444:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21112,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"32448:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21113,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21103,"src":"32452:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a7a8785394d9aadf7945b4e3d27726dea716dc88e3f64cc80b3aa9abbd2751c5","typeString":"literal_string \"log(string,uint256,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21107,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32377:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32381:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32377:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32377:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21106,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"32361:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32361:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21116,"nodeType":"ExpressionStatement","src":"32361:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32279:3:14","parameters":{"id":21104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21097,"mutability":"mutable","name":"p0","nameLocation":"32297:2:14","nodeType":"VariableDeclaration","scope":21118,"src":"32283:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21096,"name":"string","nodeType":"ElementaryTypeName","src":"32283:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21099,"mutability":"mutable","name":"p1","nameLocation":"32309:2:14","nodeType":"VariableDeclaration","scope":21118,"src":"32301:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21098,"name":"uint256","nodeType":"ElementaryTypeName","src":"32301:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21101,"mutability":"mutable","name":"p2","nameLocation":"32321:2:14","nodeType":"VariableDeclaration","scope":21118,"src":"32313:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21100,"name":"uint256","nodeType":"ElementaryTypeName","src":"32313:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21103,"mutability":"mutable","name":"p3","nameLocation":"32333:2:14","nodeType":"VariableDeclaration","scope":21118,"src":"32325:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21102,"name":"uint256","nodeType":"ElementaryTypeName","src":"32325:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32282:54:14"},"returnParameters":{"id":21105,"nodeType":"ParameterList","parameters":[],"src":"32351:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21141,"nodeType":"FunctionDefinition","src":"32469:198:14","nodes":[],"body":{"id":21140,"nodeType":"Block","src":"32556:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c737472696e6729","id":21132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32606:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_854b34964800cd321ba295da547026c9cfe69753667a81487e80d237f63c927f","typeString":"literal_string \"log(string,uint256,uint256,string)\""},"value":"log(string,uint256,uint256,string)"},{"id":21133,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21120,"src":"32644:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21134,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21122,"src":"32648:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21135,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21124,"src":"32652:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21136,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21126,"src":"32656:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_854b34964800cd321ba295da547026c9cfe69753667a81487e80d237f63c927f","typeString":"literal_string \"log(string,uint256,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21130,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32582:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32586:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32582:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32582:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21129,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"32566:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32566:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21139,"nodeType":"ExpressionStatement","src":"32566:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32478:3:14","parameters":{"id":21127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21120,"mutability":"mutable","name":"p0","nameLocation":"32496:2:14","nodeType":"VariableDeclaration","scope":21141,"src":"32482:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21119,"name":"string","nodeType":"ElementaryTypeName","src":"32482:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21122,"mutability":"mutable","name":"p1","nameLocation":"32508:2:14","nodeType":"VariableDeclaration","scope":21141,"src":"32500:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21121,"name":"uint256","nodeType":"ElementaryTypeName","src":"32500:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21124,"mutability":"mutable","name":"p2","nameLocation":"32520:2:14","nodeType":"VariableDeclaration","scope":21141,"src":"32512:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21123,"name":"uint256","nodeType":"ElementaryTypeName","src":"32512:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21126,"mutability":"mutable","name":"p3","nameLocation":"32538:2:14","nodeType":"VariableDeclaration","scope":21141,"src":"32524:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21125,"name":"string","nodeType":"ElementaryTypeName","src":"32524:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32481:60:14"},"returnParameters":{"id":21128,"nodeType":"ParameterList","parameters":[],"src":"32556:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21164,"nodeType":"FunctionDefinition","src":"32673:187:14","nodes":[],"body":{"id":21163,"nodeType":"Block","src":"32751:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c626f6f6c29","id":21155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32801:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7626db92bcbe8fb38799da91134ebae6bc6c7b10cb0db567e752720b8fd9ae0f","typeString":"literal_string \"log(string,uint256,uint256,bool)\""},"value":"log(string,uint256,uint256,bool)"},{"id":21156,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21143,"src":"32837:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21157,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21145,"src":"32841:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21158,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21147,"src":"32845:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21159,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21149,"src":"32849:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7626db92bcbe8fb38799da91134ebae6bc6c7b10cb0db567e752720b8fd9ae0f","typeString":"literal_string \"log(string,uint256,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":21153,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32777:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32781:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32777:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32777:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21152,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"32761:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32761:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21162,"nodeType":"ExpressionStatement","src":"32761:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32682:3:14","parameters":{"id":21150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21143,"mutability":"mutable","name":"p0","nameLocation":"32700:2:14","nodeType":"VariableDeclaration","scope":21164,"src":"32686:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21142,"name":"string","nodeType":"ElementaryTypeName","src":"32686:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21145,"mutability":"mutable","name":"p1","nameLocation":"32712:2:14","nodeType":"VariableDeclaration","scope":21164,"src":"32704:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21144,"name":"uint256","nodeType":"ElementaryTypeName","src":"32704:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21147,"mutability":"mutable","name":"p2","nameLocation":"32724:2:14","nodeType":"VariableDeclaration","scope":21164,"src":"32716:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21146,"name":"uint256","nodeType":"ElementaryTypeName","src":"32716:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21149,"mutability":"mutable","name":"p3","nameLocation":"32733:2:14","nodeType":"VariableDeclaration","scope":21164,"src":"32728:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21148,"name":"bool","nodeType":"ElementaryTypeName","src":"32728:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"32685:51:14"},"returnParameters":{"id":21151,"nodeType":"ParameterList","parameters":[],"src":"32751:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21187,"nodeType":"FunctionDefinition","src":"32866:193:14","nodes":[],"body":{"id":21186,"nodeType":"Block","src":"32947:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c6164647265737329","id":21178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32997:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e21de278b3902dab5803384c9ad03fb95c973bc87490e387079e41c7f244f118","typeString":"literal_string \"log(string,uint256,uint256,address)\""},"value":"log(string,uint256,uint256,address)"},{"id":21179,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21166,"src":"33036:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21180,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21168,"src":"33040:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21181,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21170,"src":"33044:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21182,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21172,"src":"33048:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e21de278b3902dab5803384c9ad03fb95c973bc87490e387079e41c7f244f118","typeString":"literal_string \"log(string,uint256,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21176,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32973:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32977:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32973:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32973:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21175,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"32957:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32957:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21185,"nodeType":"ExpressionStatement","src":"32957:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32875:3:14","parameters":{"id":21173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21166,"mutability":"mutable","name":"p0","nameLocation":"32893:2:14","nodeType":"VariableDeclaration","scope":21187,"src":"32879:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21165,"name":"string","nodeType":"ElementaryTypeName","src":"32879:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21168,"mutability":"mutable","name":"p1","nameLocation":"32905:2:14","nodeType":"VariableDeclaration","scope":21187,"src":"32897:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21167,"name":"uint256","nodeType":"ElementaryTypeName","src":"32897:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21170,"mutability":"mutable","name":"p2","nameLocation":"32917:2:14","nodeType":"VariableDeclaration","scope":21187,"src":"32909:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21169,"name":"uint256","nodeType":"ElementaryTypeName","src":"32909:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21172,"mutability":"mutable","name":"p3","nameLocation":"32929:2:14","nodeType":"VariableDeclaration","scope":21187,"src":"32921:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21171,"name":"address","nodeType":"ElementaryTypeName","src":"32921:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32878:54:14"},"returnParameters":{"id":21174,"nodeType":"ParameterList","parameters":[],"src":"32947:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21210,"nodeType":"FunctionDefinition","src":"33065:198:14","nodes":[],"body":{"id":21209,"nodeType":"Block","src":"33152:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c75696e7432353629","id":21201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33202:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c67ea9d1db4353b82da41ad5e5b85243320ba3a89399b41c13eee1ab804e84c9","typeString":"literal_string \"log(string,uint256,string,uint256)\""},"value":"log(string,uint256,string,uint256)"},{"id":21202,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21189,"src":"33240:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21203,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21191,"src":"33244:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21204,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21193,"src":"33248:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21205,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21195,"src":"33252:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c67ea9d1db4353b82da41ad5e5b85243320ba3a89399b41c13eee1ab804e84c9","typeString":"literal_string \"log(string,uint256,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21199,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33178:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33182:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33178:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33178:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21198,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"33162:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33162:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21208,"nodeType":"ExpressionStatement","src":"33162:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33074:3:14","parameters":{"id":21196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21189,"mutability":"mutable","name":"p0","nameLocation":"33092:2:14","nodeType":"VariableDeclaration","scope":21210,"src":"33078:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21188,"name":"string","nodeType":"ElementaryTypeName","src":"33078:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21191,"mutability":"mutable","name":"p1","nameLocation":"33104:2:14","nodeType":"VariableDeclaration","scope":21210,"src":"33096:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21190,"name":"uint256","nodeType":"ElementaryTypeName","src":"33096:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21193,"mutability":"mutable","name":"p2","nameLocation":"33122:2:14","nodeType":"VariableDeclaration","scope":21210,"src":"33108:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21192,"name":"string","nodeType":"ElementaryTypeName","src":"33108:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21195,"mutability":"mutable","name":"p3","nameLocation":"33134:2:14","nodeType":"VariableDeclaration","scope":21210,"src":"33126:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21194,"name":"uint256","nodeType":"ElementaryTypeName","src":"33126:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33077:60:14"},"returnParameters":{"id":21197,"nodeType":"ParameterList","parameters":[],"src":"33152:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21233,"nodeType":"FunctionDefinition","src":"33269:203:14","nodes":[],"body":{"id":21232,"nodeType":"Block","src":"33362:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c737472696e6729","id":21224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33412:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ab84e1fba099b79ad99dc62242807811428e5c36b5f473a3b74e319a04c4089","typeString":"literal_string \"log(string,uint256,string,string)\""},"value":"log(string,uint256,string,string)"},{"id":21225,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21212,"src":"33449:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21226,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21214,"src":"33453:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21227,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21216,"src":"33457:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21228,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21218,"src":"33461:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ab84e1fba099b79ad99dc62242807811428e5c36b5f473a3b74e319a04c4089","typeString":"literal_string \"log(string,uint256,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21222,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33388:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21223,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33392:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33388:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33388:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21221,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"33372:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33372:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21231,"nodeType":"ExpressionStatement","src":"33372:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33278:3:14","parameters":{"id":21219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21212,"mutability":"mutable","name":"p0","nameLocation":"33296:2:14","nodeType":"VariableDeclaration","scope":21233,"src":"33282:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21211,"name":"string","nodeType":"ElementaryTypeName","src":"33282:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21214,"mutability":"mutable","name":"p1","nameLocation":"33308:2:14","nodeType":"VariableDeclaration","scope":21233,"src":"33300:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21213,"name":"uint256","nodeType":"ElementaryTypeName","src":"33300:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21216,"mutability":"mutable","name":"p2","nameLocation":"33326:2:14","nodeType":"VariableDeclaration","scope":21233,"src":"33312:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21215,"name":"string","nodeType":"ElementaryTypeName","src":"33312:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21218,"mutability":"mutable","name":"p3","nameLocation":"33344:2:14","nodeType":"VariableDeclaration","scope":21233,"src":"33330:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21217,"name":"string","nodeType":"ElementaryTypeName","src":"33330:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"33281:66:14"},"returnParameters":{"id":21220,"nodeType":"ParameterList","parameters":[],"src":"33362:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21256,"nodeType":"FunctionDefinition","src":"33478:192:14","nodes":[],"body":{"id":21255,"nodeType":"Block","src":"33562:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c626f6f6c29","id":21247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33612:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d24491d69f4bc88a6e68cd8228b6698af11fe37f60f65c80e3f11428a8eba2f","typeString":"literal_string \"log(string,uint256,string,bool)\""},"value":"log(string,uint256,string,bool)"},{"id":21248,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21235,"src":"33647:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21249,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21237,"src":"33651:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21250,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21239,"src":"33655:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21251,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21241,"src":"33659:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7d24491d69f4bc88a6e68cd8228b6698af11fe37f60f65c80e3f11428a8eba2f","typeString":"literal_string \"log(string,uint256,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":21245,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33588:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33592:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33588:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33588:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21244,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"33572:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33572:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21254,"nodeType":"ExpressionStatement","src":"33572:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33487:3:14","parameters":{"id":21242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21235,"mutability":"mutable","name":"p0","nameLocation":"33505:2:14","nodeType":"VariableDeclaration","scope":21256,"src":"33491:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21234,"name":"string","nodeType":"ElementaryTypeName","src":"33491:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21237,"mutability":"mutable","name":"p1","nameLocation":"33517:2:14","nodeType":"VariableDeclaration","scope":21256,"src":"33509:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21236,"name":"uint256","nodeType":"ElementaryTypeName","src":"33509:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21239,"mutability":"mutable","name":"p2","nameLocation":"33535:2:14","nodeType":"VariableDeclaration","scope":21256,"src":"33521:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21238,"name":"string","nodeType":"ElementaryTypeName","src":"33521:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21241,"mutability":"mutable","name":"p3","nameLocation":"33544:2:14","nodeType":"VariableDeclaration","scope":21256,"src":"33539:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21240,"name":"bool","nodeType":"ElementaryTypeName","src":"33539:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33490:57:14"},"returnParameters":{"id":21243,"nodeType":"ParameterList","parameters":[],"src":"33562:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21279,"nodeType":"FunctionDefinition","src":"33676:198:14","nodes":[],"body":{"id":21278,"nodeType":"Block","src":"33763:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c6164647265737329","id":21270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33813:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7c4632a48572fa2d4647539e525c9742d692f8e780540d6116f897ab472257cb","typeString":"literal_string \"log(string,uint256,string,address)\""},"value":"log(string,uint256,string,address)"},{"id":21271,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21258,"src":"33851:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21272,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21260,"src":"33855:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21273,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21262,"src":"33859:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21274,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21264,"src":"33863:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7c4632a48572fa2d4647539e525c9742d692f8e780540d6116f897ab472257cb","typeString":"literal_string \"log(string,uint256,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21268,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33789:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21269,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33793:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33789:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33789:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21267,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"33773:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33773:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21277,"nodeType":"ExpressionStatement","src":"33773:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33685:3:14","parameters":{"id":21265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21258,"mutability":"mutable","name":"p0","nameLocation":"33703:2:14","nodeType":"VariableDeclaration","scope":21279,"src":"33689:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21257,"name":"string","nodeType":"ElementaryTypeName","src":"33689:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21260,"mutability":"mutable","name":"p1","nameLocation":"33715:2:14","nodeType":"VariableDeclaration","scope":21279,"src":"33707:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21259,"name":"uint256","nodeType":"ElementaryTypeName","src":"33707:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21262,"mutability":"mutable","name":"p2","nameLocation":"33733:2:14","nodeType":"VariableDeclaration","scope":21279,"src":"33719:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21261,"name":"string","nodeType":"ElementaryTypeName","src":"33719:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21264,"mutability":"mutable","name":"p3","nameLocation":"33745:2:14","nodeType":"VariableDeclaration","scope":21279,"src":"33737:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21263,"name":"address","nodeType":"ElementaryTypeName","src":"33737:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33688:60:14"},"returnParameters":{"id":21266,"nodeType":"ParameterList","parameters":[],"src":"33763:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21302,"nodeType":"FunctionDefinition","src":"33880:187:14","nodes":[],"body":{"id":21301,"nodeType":"Block","src":"33958:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c75696e7432353629","id":21293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34008:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e41b6f6f58a4f880a3266f23bebaff73175ff4306317c20982bc2eabc04edd13","typeString":"literal_string \"log(string,uint256,bool,uint256)\""},"value":"log(string,uint256,bool,uint256)"},{"id":21294,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21281,"src":"34044:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21295,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21283,"src":"34048:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21296,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21285,"src":"34052:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21297,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21287,"src":"34056:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e41b6f6f58a4f880a3266f23bebaff73175ff4306317c20982bc2eabc04edd13","typeString":"literal_string \"log(string,uint256,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21291,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33984:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33988:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33984:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33984:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21290,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"33968:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33968:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21300,"nodeType":"ExpressionStatement","src":"33968:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33889:3:14","parameters":{"id":21288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21281,"mutability":"mutable","name":"p0","nameLocation":"33907:2:14","nodeType":"VariableDeclaration","scope":21302,"src":"33893:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21280,"name":"string","nodeType":"ElementaryTypeName","src":"33893:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21283,"mutability":"mutable","name":"p1","nameLocation":"33919:2:14","nodeType":"VariableDeclaration","scope":21302,"src":"33911:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21282,"name":"uint256","nodeType":"ElementaryTypeName","src":"33911:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21285,"mutability":"mutable","name":"p2","nameLocation":"33928:2:14","nodeType":"VariableDeclaration","scope":21302,"src":"33923:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21284,"name":"bool","nodeType":"ElementaryTypeName","src":"33923:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21287,"mutability":"mutable","name":"p3","nameLocation":"33940:2:14","nodeType":"VariableDeclaration","scope":21302,"src":"33932:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21286,"name":"uint256","nodeType":"ElementaryTypeName","src":"33932:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33892:51:14"},"returnParameters":{"id":21289,"nodeType":"ParameterList","parameters":[],"src":"33958:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21325,"nodeType":"FunctionDefinition","src":"34073:192:14","nodes":[],"body":{"id":21324,"nodeType":"Block","src":"34157:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c737472696e6729","id":21316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34207:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_abf73a9831ab2bdeb8da9d06a81eab42196b20e336ab670ecba37bac94839d87","typeString":"literal_string \"log(string,uint256,bool,string)\""},"value":"log(string,uint256,bool,string)"},{"id":21317,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21304,"src":"34242:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21318,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21306,"src":"34246:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21319,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21308,"src":"34250:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21320,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21310,"src":"34254:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_abf73a9831ab2bdeb8da9d06a81eab42196b20e336ab670ecba37bac94839d87","typeString":"literal_string \"log(string,uint256,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21314,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34183:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34187:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34183:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34183:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21313,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"34167:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34167:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21323,"nodeType":"ExpressionStatement","src":"34167:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34082:3:14","parameters":{"id":21311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21304,"mutability":"mutable","name":"p0","nameLocation":"34100:2:14","nodeType":"VariableDeclaration","scope":21325,"src":"34086:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21303,"name":"string","nodeType":"ElementaryTypeName","src":"34086:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21306,"mutability":"mutable","name":"p1","nameLocation":"34112:2:14","nodeType":"VariableDeclaration","scope":21325,"src":"34104:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21305,"name":"uint256","nodeType":"ElementaryTypeName","src":"34104:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21308,"mutability":"mutable","name":"p2","nameLocation":"34121:2:14","nodeType":"VariableDeclaration","scope":21325,"src":"34116:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21307,"name":"bool","nodeType":"ElementaryTypeName","src":"34116:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21310,"mutability":"mutable","name":"p3","nameLocation":"34139:2:14","nodeType":"VariableDeclaration","scope":21325,"src":"34125:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21309,"name":"string","nodeType":"ElementaryTypeName","src":"34125:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"34085:57:14"},"returnParameters":{"id":21312,"nodeType":"ParameterList","parameters":[],"src":"34157:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21348,"nodeType":"FunctionDefinition","src":"34271:181:14","nodes":[],"body":{"id":21347,"nodeType":"Block","src":"34346:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c626f6f6c29","id":21339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34396:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_354c36d6798abb81721fb2beaef51c92cab9d4cf16be10f0a4724648784ecb76","typeString":"literal_string \"log(string,uint256,bool,bool)\""},"value":"log(string,uint256,bool,bool)"},{"id":21340,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21327,"src":"34429:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21341,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21329,"src":"34433:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21342,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21331,"src":"34437:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21343,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21333,"src":"34441:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_354c36d6798abb81721fb2beaef51c92cab9d4cf16be10f0a4724648784ecb76","typeString":"literal_string \"log(string,uint256,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":21337,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34372:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34376:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34372:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34372:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21336,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"34356:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34356:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21346,"nodeType":"ExpressionStatement","src":"34356:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34280:3:14","parameters":{"id":21334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21327,"mutability":"mutable","name":"p0","nameLocation":"34298:2:14","nodeType":"VariableDeclaration","scope":21348,"src":"34284:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21326,"name":"string","nodeType":"ElementaryTypeName","src":"34284:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21329,"mutability":"mutable","name":"p1","nameLocation":"34310:2:14","nodeType":"VariableDeclaration","scope":21348,"src":"34302:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21328,"name":"uint256","nodeType":"ElementaryTypeName","src":"34302:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21331,"mutability":"mutable","name":"p2","nameLocation":"34319:2:14","nodeType":"VariableDeclaration","scope":21348,"src":"34314:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21330,"name":"bool","nodeType":"ElementaryTypeName","src":"34314:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21333,"mutability":"mutable","name":"p3","nameLocation":"34328:2:14","nodeType":"VariableDeclaration","scope":21348,"src":"34323:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21332,"name":"bool","nodeType":"ElementaryTypeName","src":"34323:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"34283:48:14"},"returnParameters":{"id":21335,"nodeType":"ParameterList","parameters":[],"src":"34346:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21371,"nodeType":"FunctionDefinition","src":"34458:187:14","nodes":[],"body":{"id":21370,"nodeType":"Block","src":"34536:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c6164647265737329","id":21362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34586:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0e95b9833a204b7ba633bd63a60ec523906565f2c86d8936f7ff3e9937880f7","typeString":"literal_string \"log(string,uint256,bool,address)\""},"value":"log(string,uint256,bool,address)"},{"id":21363,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21350,"src":"34622:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21364,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21352,"src":"34626:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21365,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21354,"src":"34630:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21366,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21356,"src":"34634:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0e95b9833a204b7ba633bd63a60ec523906565f2c86d8936f7ff3e9937880f7","typeString":"literal_string \"log(string,uint256,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21360,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34562:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21361,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34566:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34562:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34562:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21359,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"34546:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34546:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21369,"nodeType":"ExpressionStatement","src":"34546:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34467:3:14","parameters":{"id":21357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21350,"mutability":"mutable","name":"p0","nameLocation":"34485:2:14","nodeType":"VariableDeclaration","scope":21371,"src":"34471:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21349,"name":"string","nodeType":"ElementaryTypeName","src":"34471:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21352,"mutability":"mutable","name":"p1","nameLocation":"34497:2:14","nodeType":"VariableDeclaration","scope":21371,"src":"34489:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21351,"name":"uint256","nodeType":"ElementaryTypeName","src":"34489:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21354,"mutability":"mutable","name":"p2","nameLocation":"34506:2:14","nodeType":"VariableDeclaration","scope":21371,"src":"34501:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21353,"name":"bool","nodeType":"ElementaryTypeName","src":"34501:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21356,"mutability":"mutable","name":"p3","nameLocation":"34518:2:14","nodeType":"VariableDeclaration","scope":21371,"src":"34510:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21355,"name":"address","nodeType":"ElementaryTypeName","src":"34510:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34470:51:14"},"returnParameters":{"id":21358,"nodeType":"ParameterList","parameters":[],"src":"34536:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21394,"nodeType":"FunctionDefinition","src":"34651:193:14","nodes":[],"body":{"id":21393,"nodeType":"Block","src":"34732:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c75696e7432353629","id":21385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34782:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f04fdc6b6271b036262883bae0d1ea5155524010fed0023b5c71c574fb937ff","typeString":"literal_string \"log(string,uint256,address,uint256)\""},"value":"log(string,uint256,address,uint256)"},{"id":21386,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21373,"src":"34821:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21387,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21375,"src":"34825:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21388,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21377,"src":"34829:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21389,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21379,"src":"34833:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f04fdc6b6271b036262883bae0d1ea5155524010fed0023b5c71c574fb937ff","typeString":"literal_string \"log(string,uint256,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21383,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34758:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34762:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34758:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34758:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21382,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"34742:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34742:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21392,"nodeType":"ExpressionStatement","src":"34742:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34660:3:14","parameters":{"id":21380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21373,"mutability":"mutable","name":"p0","nameLocation":"34678:2:14","nodeType":"VariableDeclaration","scope":21394,"src":"34664:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21372,"name":"string","nodeType":"ElementaryTypeName","src":"34664:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21375,"mutability":"mutable","name":"p1","nameLocation":"34690:2:14","nodeType":"VariableDeclaration","scope":21394,"src":"34682:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21374,"name":"uint256","nodeType":"ElementaryTypeName","src":"34682:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21377,"mutability":"mutable","name":"p2","nameLocation":"34702:2:14","nodeType":"VariableDeclaration","scope":21394,"src":"34694:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21376,"name":"address","nodeType":"ElementaryTypeName","src":"34694:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21379,"mutability":"mutable","name":"p3","nameLocation":"34714:2:14","nodeType":"VariableDeclaration","scope":21394,"src":"34706:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21378,"name":"uint256","nodeType":"ElementaryTypeName","src":"34706:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34663:54:14"},"returnParameters":{"id":21381,"nodeType":"ParameterList","parameters":[],"src":"34732:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21417,"nodeType":"FunctionDefinition","src":"34850:198:14","nodes":[],"body":{"id":21416,"nodeType":"Block","src":"34937:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c737472696e6729","id":21408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34987:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9ffb2f93ff043d0a86ff6dc2ddf23d28dfc95ecde23d406177dfe6f19d070d2b","typeString":"literal_string \"log(string,uint256,address,string)\""},"value":"log(string,uint256,address,string)"},{"id":21409,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21396,"src":"35025:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21410,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21398,"src":"35029:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21411,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21400,"src":"35033:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21412,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21402,"src":"35037:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9ffb2f93ff043d0a86ff6dc2ddf23d28dfc95ecde23d406177dfe6f19d070d2b","typeString":"literal_string \"log(string,uint256,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21406,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34963:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34967:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34963:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34963:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21405,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"34947:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34947:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21415,"nodeType":"ExpressionStatement","src":"34947:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34859:3:14","parameters":{"id":21403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21396,"mutability":"mutable","name":"p0","nameLocation":"34877:2:14","nodeType":"VariableDeclaration","scope":21417,"src":"34863:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21395,"name":"string","nodeType":"ElementaryTypeName","src":"34863:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21398,"mutability":"mutable","name":"p1","nameLocation":"34889:2:14","nodeType":"VariableDeclaration","scope":21417,"src":"34881:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21397,"name":"uint256","nodeType":"ElementaryTypeName","src":"34881:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21400,"mutability":"mutable","name":"p2","nameLocation":"34901:2:14","nodeType":"VariableDeclaration","scope":21417,"src":"34893:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21399,"name":"address","nodeType":"ElementaryTypeName","src":"34893:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21402,"mutability":"mutable","name":"p3","nameLocation":"34919:2:14","nodeType":"VariableDeclaration","scope":21417,"src":"34905:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21401,"name":"string","nodeType":"ElementaryTypeName","src":"34905:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"34862:60:14"},"returnParameters":{"id":21404,"nodeType":"ParameterList","parameters":[],"src":"34937:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21440,"nodeType":"FunctionDefinition","src":"35054:187:14","nodes":[],"body":{"id":21439,"nodeType":"Block","src":"35132:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c626f6f6c29","id":21431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35182:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_82112a429657399db0318af6ca78ff56626aa907939e7cf56b60b07035dcc190","typeString":"literal_string \"log(string,uint256,address,bool)\""},"value":"log(string,uint256,address,bool)"},{"id":21432,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21419,"src":"35218:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21433,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21421,"src":"35222:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21434,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21423,"src":"35226:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21435,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21425,"src":"35230:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_82112a429657399db0318af6ca78ff56626aa907939e7cf56b60b07035dcc190","typeString":"literal_string \"log(string,uint256,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":21429,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35158:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35162:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35158:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35158:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21428,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"35142:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35142:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21438,"nodeType":"ExpressionStatement","src":"35142:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35063:3:14","parameters":{"id":21426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21419,"mutability":"mutable","name":"p0","nameLocation":"35081:2:14","nodeType":"VariableDeclaration","scope":21440,"src":"35067:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21418,"name":"string","nodeType":"ElementaryTypeName","src":"35067:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21421,"mutability":"mutable","name":"p1","nameLocation":"35093:2:14","nodeType":"VariableDeclaration","scope":21440,"src":"35085:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21420,"name":"uint256","nodeType":"ElementaryTypeName","src":"35085:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21423,"mutability":"mutable","name":"p2","nameLocation":"35105:2:14","nodeType":"VariableDeclaration","scope":21440,"src":"35097:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21422,"name":"address","nodeType":"ElementaryTypeName","src":"35097:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21425,"mutability":"mutable","name":"p3","nameLocation":"35114:2:14","nodeType":"VariableDeclaration","scope":21440,"src":"35109:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21424,"name":"bool","nodeType":"ElementaryTypeName","src":"35109:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"35066:51:14"},"returnParameters":{"id":21427,"nodeType":"ParameterList","parameters":[],"src":"35132:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21463,"nodeType":"FunctionDefinition","src":"35247:193:14","nodes":[],"body":{"id":21462,"nodeType":"Block","src":"35328:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c6164647265737329","id":21454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35378:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ea2b7aea4409bbe3ef8ca502419b3574b002a6123a1f864be076316b8efcd1d","typeString":"literal_string \"log(string,uint256,address,address)\""},"value":"log(string,uint256,address,address)"},{"id":21455,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21442,"src":"35417:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21456,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21444,"src":"35421:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21457,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21446,"src":"35425:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21458,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21448,"src":"35429:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ea2b7aea4409bbe3ef8ca502419b3574b002a6123a1f864be076316b8efcd1d","typeString":"literal_string \"log(string,uint256,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21452,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35354:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35358:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35354:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35354:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21451,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"35338:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35338:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21461,"nodeType":"ExpressionStatement","src":"35338:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35256:3:14","parameters":{"id":21449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21442,"mutability":"mutable","name":"p0","nameLocation":"35274:2:14","nodeType":"VariableDeclaration","scope":21463,"src":"35260:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21441,"name":"string","nodeType":"ElementaryTypeName","src":"35260:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21444,"mutability":"mutable","name":"p1","nameLocation":"35286:2:14","nodeType":"VariableDeclaration","scope":21463,"src":"35278:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21443,"name":"uint256","nodeType":"ElementaryTypeName","src":"35278:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21446,"mutability":"mutable","name":"p2","nameLocation":"35298:2:14","nodeType":"VariableDeclaration","scope":21463,"src":"35290:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21445,"name":"address","nodeType":"ElementaryTypeName","src":"35290:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21448,"mutability":"mutable","name":"p3","nameLocation":"35310:2:14","nodeType":"VariableDeclaration","scope":21463,"src":"35302:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21447,"name":"address","nodeType":"ElementaryTypeName","src":"35302:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35259:54:14"},"returnParameters":{"id":21450,"nodeType":"ParameterList","parameters":[],"src":"35328:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21486,"nodeType":"FunctionDefinition","src":"35446:198:14","nodes":[],"body":{"id":21485,"nodeType":"Block","src":"35533:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c75696e7432353629","id":21477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35583:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f45d7d2cd1abe030b09347ce21ce66b503ffdad3e7a1ad6df9e55da5d9367776","typeString":"literal_string \"log(string,string,uint256,uint256)\""},"value":"log(string,string,uint256,uint256)"},{"id":21478,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21465,"src":"35621:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21479,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21467,"src":"35625:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21480,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21469,"src":"35629:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21481,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21471,"src":"35633:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f45d7d2cd1abe030b09347ce21ce66b503ffdad3e7a1ad6df9e55da5d9367776","typeString":"literal_string \"log(string,string,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21475,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35559:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35563:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35559:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35559:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21474,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"35543:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35543:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21484,"nodeType":"ExpressionStatement","src":"35543:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35455:3:14","parameters":{"id":21472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21465,"mutability":"mutable","name":"p0","nameLocation":"35473:2:14","nodeType":"VariableDeclaration","scope":21486,"src":"35459:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21464,"name":"string","nodeType":"ElementaryTypeName","src":"35459:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21467,"mutability":"mutable","name":"p1","nameLocation":"35491:2:14","nodeType":"VariableDeclaration","scope":21486,"src":"35477:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21466,"name":"string","nodeType":"ElementaryTypeName","src":"35477:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21469,"mutability":"mutable","name":"p2","nameLocation":"35503:2:14","nodeType":"VariableDeclaration","scope":21486,"src":"35495:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21468,"name":"uint256","nodeType":"ElementaryTypeName","src":"35495:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21471,"mutability":"mutable","name":"p3","nameLocation":"35515:2:14","nodeType":"VariableDeclaration","scope":21486,"src":"35507:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21470,"name":"uint256","nodeType":"ElementaryTypeName","src":"35507:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35458:60:14"},"returnParameters":{"id":21473,"nodeType":"ParameterList","parameters":[],"src":"35533:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21509,"nodeType":"FunctionDefinition","src":"35650:203:14","nodes":[],"body":{"id":21508,"nodeType":"Block","src":"35743:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c737472696e6729","id":21500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35793:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d1a971aebb8f2fbb7526a470ca55e409230d59ee63217090d29ce11b768e909","typeString":"literal_string \"log(string,string,uint256,string)\""},"value":"log(string,string,uint256,string)"},{"id":21501,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21488,"src":"35830:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21502,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21490,"src":"35834:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21503,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21492,"src":"35838:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21504,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21494,"src":"35842:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d1a971aebb8f2fbb7526a470ca55e409230d59ee63217090d29ce11b768e909","typeString":"literal_string \"log(string,string,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21498,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35769:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35773:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35769:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35769:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21497,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"35753:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35753:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21507,"nodeType":"ExpressionStatement","src":"35753:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35659:3:14","parameters":{"id":21495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21488,"mutability":"mutable","name":"p0","nameLocation":"35677:2:14","nodeType":"VariableDeclaration","scope":21509,"src":"35663:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21487,"name":"string","nodeType":"ElementaryTypeName","src":"35663:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21490,"mutability":"mutable","name":"p1","nameLocation":"35695:2:14","nodeType":"VariableDeclaration","scope":21509,"src":"35681:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21489,"name":"string","nodeType":"ElementaryTypeName","src":"35681:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21492,"mutability":"mutable","name":"p2","nameLocation":"35707:2:14","nodeType":"VariableDeclaration","scope":21509,"src":"35699:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21491,"name":"uint256","nodeType":"ElementaryTypeName","src":"35699:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21494,"mutability":"mutable","name":"p3","nameLocation":"35725:2:14","nodeType":"VariableDeclaration","scope":21509,"src":"35711:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21493,"name":"string","nodeType":"ElementaryTypeName","src":"35711:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35662:66:14"},"returnParameters":{"id":21496,"nodeType":"ParameterList","parameters":[],"src":"35743:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21532,"nodeType":"FunctionDefinition","src":"35859:192:14","nodes":[],"body":{"id":21531,"nodeType":"Block","src":"35943:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c626f6f6c29","id":21523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35993:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3a8a6546b97cf01562dd9ca797c4955f3bab9bc163d02081737c20b686446d2","typeString":"literal_string \"log(string,string,uint256,bool)\""},"value":"log(string,string,uint256,bool)"},{"id":21524,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21511,"src":"36028:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21525,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21513,"src":"36032:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21526,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21515,"src":"36036:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21527,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21517,"src":"36040:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3a8a6546b97cf01562dd9ca797c4955f3bab9bc163d02081737c20b686446d2","typeString":"literal_string \"log(string,string,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":21521,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35969:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35973:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35969:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35969:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21520,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"35953:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35953:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21530,"nodeType":"ExpressionStatement","src":"35953:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35868:3:14","parameters":{"id":21518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21511,"mutability":"mutable","name":"p0","nameLocation":"35886:2:14","nodeType":"VariableDeclaration","scope":21532,"src":"35872:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21510,"name":"string","nodeType":"ElementaryTypeName","src":"35872:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21513,"mutability":"mutable","name":"p1","nameLocation":"35904:2:14","nodeType":"VariableDeclaration","scope":21532,"src":"35890:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21512,"name":"string","nodeType":"ElementaryTypeName","src":"35890:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21515,"mutability":"mutable","name":"p2","nameLocation":"35916:2:14","nodeType":"VariableDeclaration","scope":21532,"src":"35908:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21514,"name":"uint256","nodeType":"ElementaryTypeName","src":"35908:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21517,"mutability":"mutable","name":"p3","nameLocation":"35925:2:14","nodeType":"VariableDeclaration","scope":21532,"src":"35920:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21516,"name":"bool","nodeType":"ElementaryTypeName","src":"35920:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"35871:57:14"},"returnParameters":{"id":21519,"nodeType":"ParameterList","parameters":[],"src":"35943:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21555,"nodeType":"FunctionDefinition","src":"36057:198:14","nodes":[],"body":{"id":21554,"nodeType":"Block","src":"36144:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c6164647265737329","id":21546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36194:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1023f7b286378387abf24b7020dbd1ddde789519cf7f13da727146a2a8a61fc6","typeString":"literal_string \"log(string,string,uint256,address)\""},"value":"log(string,string,uint256,address)"},{"id":21547,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21534,"src":"36232:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21548,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21536,"src":"36236:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21549,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21538,"src":"36240:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21550,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21540,"src":"36244:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1023f7b286378387abf24b7020dbd1ddde789519cf7f13da727146a2a8a61fc6","typeString":"literal_string \"log(string,string,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21544,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36170:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36174:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36170:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36170:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21543,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"36154:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36154:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21553,"nodeType":"ExpressionStatement","src":"36154:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36066:3:14","parameters":{"id":21541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21534,"mutability":"mutable","name":"p0","nameLocation":"36084:2:14","nodeType":"VariableDeclaration","scope":21555,"src":"36070:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21533,"name":"string","nodeType":"ElementaryTypeName","src":"36070:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21536,"mutability":"mutable","name":"p1","nameLocation":"36102:2:14","nodeType":"VariableDeclaration","scope":21555,"src":"36088:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21535,"name":"string","nodeType":"ElementaryTypeName","src":"36088:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21538,"mutability":"mutable","name":"p2","nameLocation":"36114:2:14","nodeType":"VariableDeclaration","scope":21555,"src":"36106:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21537,"name":"uint256","nodeType":"ElementaryTypeName","src":"36106:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21540,"mutability":"mutable","name":"p3","nameLocation":"36126:2:14","nodeType":"VariableDeclaration","scope":21555,"src":"36118:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21539,"name":"address","nodeType":"ElementaryTypeName","src":"36118:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36069:60:14"},"returnParameters":{"id":21542,"nodeType":"ParameterList","parameters":[],"src":"36144:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21578,"nodeType":"FunctionDefinition","src":"36261:203:14","nodes":[],"body":{"id":21577,"nodeType":"Block","src":"36354:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c75696e7432353629","id":21569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36404:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8eafb02b2f27070f4cef3c26d2b8a8d041c7bf077352780062dc5a70550ac689","typeString":"literal_string \"log(string,string,string,uint256)\""},"value":"log(string,string,string,uint256)"},{"id":21570,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21557,"src":"36441:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21571,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21559,"src":"36445:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21572,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21561,"src":"36449:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21573,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21563,"src":"36453:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8eafb02b2f27070f4cef3c26d2b8a8d041c7bf077352780062dc5a70550ac689","typeString":"literal_string \"log(string,string,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21567,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36380:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36384:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36380:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36380:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21566,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"36364:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36364:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21576,"nodeType":"ExpressionStatement","src":"36364:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36270:3:14","parameters":{"id":21564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21557,"mutability":"mutable","name":"p0","nameLocation":"36288:2:14","nodeType":"VariableDeclaration","scope":21578,"src":"36274:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21556,"name":"string","nodeType":"ElementaryTypeName","src":"36274:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21559,"mutability":"mutable","name":"p1","nameLocation":"36306:2:14","nodeType":"VariableDeclaration","scope":21578,"src":"36292:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21558,"name":"string","nodeType":"ElementaryTypeName","src":"36292:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21561,"mutability":"mutable","name":"p2","nameLocation":"36324:2:14","nodeType":"VariableDeclaration","scope":21578,"src":"36310:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21560,"name":"string","nodeType":"ElementaryTypeName","src":"36310:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21563,"mutability":"mutable","name":"p3","nameLocation":"36336:2:14","nodeType":"VariableDeclaration","scope":21578,"src":"36328:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21562,"name":"uint256","nodeType":"ElementaryTypeName","src":"36328:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36273:66:14"},"returnParameters":{"id":21565,"nodeType":"ParameterList","parameters":[],"src":"36354:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21601,"nodeType":"FunctionDefinition","src":"36470:208:14","nodes":[],"body":{"id":21600,"nodeType":"Block","src":"36569:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c737472696e6729","id":21592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36619:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe","typeString":"literal_string \"log(string,string,string,string)\""},"value":"log(string,string,string,string)"},{"id":21593,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21580,"src":"36655:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21594,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21582,"src":"36659:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21595,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21584,"src":"36663:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21596,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21586,"src":"36667:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe","typeString":"literal_string \"log(string,string,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21590,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36595:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21591,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36599:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36595:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36595:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21589,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"36579:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36579:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21599,"nodeType":"ExpressionStatement","src":"36579:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36479:3:14","parameters":{"id":21587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21580,"mutability":"mutable","name":"p0","nameLocation":"36497:2:14","nodeType":"VariableDeclaration","scope":21601,"src":"36483:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21579,"name":"string","nodeType":"ElementaryTypeName","src":"36483:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21582,"mutability":"mutable","name":"p1","nameLocation":"36515:2:14","nodeType":"VariableDeclaration","scope":21601,"src":"36501:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21581,"name":"string","nodeType":"ElementaryTypeName","src":"36501:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21584,"mutability":"mutable","name":"p2","nameLocation":"36533:2:14","nodeType":"VariableDeclaration","scope":21601,"src":"36519:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21583,"name":"string","nodeType":"ElementaryTypeName","src":"36519:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21586,"mutability":"mutable","name":"p3","nameLocation":"36551:2:14","nodeType":"VariableDeclaration","scope":21601,"src":"36537:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21585,"name":"string","nodeType":"ElementaryTypeName","src":"36537:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36482:72:14"},"returnParameters":{"id":21588,"nodeType":"ParameterList","parameters":[],"src":"36569:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21624,"nodeType":"FunctionDefinition","src":"36684:197:14","nodes":[],"body":{"id":21623,"nodeType":"Block","src":"36774:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c626f6f6c29","id":21615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36824:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332","typeString":"literal_string \"log(string,string,string,bool)\""},"value":"log(string,string,string,bool)"},{"id":21616,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21603,"src":"36858:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21617,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21605,"src":"36862:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21618,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21607,"src":"36866:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21619,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21609,"src":"36870:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332","typeString":"literal_string \"log(string,string,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":21613,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36800:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36804:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36800:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36800:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21612,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"36784:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36784:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21622,"nodeType":"ExpressionStatement","src":"36784:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36693:3:14","parameters":{"id":21610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21603,"mutability":"mutable","name":"p0","nameLocation":"36711:2:14","nodeType":"VariableDeclaration","scope":21624,"src":"36697:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21602,"name":"string","nodeType":"ElementaryTypeName","src":"36697:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21605,"mutability":"mutable","name":"p1","nameLocation":"36729:2:14","nodeType":"VariableDeclaration","scope":21624,"src":"36715:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21604,"name":"string","nodeType":"ElementaryTypeName","src":"36715:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21607,"mutability":"mutable","name":"p2","nameLocation":"36747:2:14","nodeType":"VariableDeclaration","scope":21624,"src":"36733:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21606,"name":"string","nodeType":"ElementaryTypeName","src":"36733:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21609,"mutability":"mutable","name":"p3","nameLocation":"36756:2:14","nodeType":"VariableDeclaration","scope":21624,"src":"36751:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21608,"name":"bool","nodeType":"ElementaryTypeName","src":"36751:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"36696:63:14"},"returnParameters":{"id":21611,"nodeType":"ParameterList","parameters":[],"src":"36774:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21647,"nodeType":"FunctionDefinition","src":"36887:203:14","nodes":[],"body":{"id":21646,"nodeType":"Block","src":"36980:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c6164647265737329","id":21638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37030:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16","typeString":"literal_string \"log(string,string,string,address)\""},"value":"log(string,string,string,address)"},{"id":21639,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21626,"src":"37067:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21640,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21628,"src":"37071:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21641,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21630,"src":"37075:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21642,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21632,"src":"37079:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16","typeString":"literal_string \"log(string,string,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21636,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37006:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37010:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37006:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37006:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21635,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"36990:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36990:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21645,"nodeType":"ExpressionStatement","src":"36990:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36896:3:14","parameters":{"id":21633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21626,"mutability":"mutable","name":"p0","nameLocation":"36914:2:14","nodeType":"VariableDeclaration","scope":21647,"src":"36900:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21625,"name":"string","nodeType":"ElementaryTypeName","src":"36900:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21628,"mutability":"mutable","name":"p1","nameLocation":"36932:2:14","nodeType":"VariableDeclaration","scope":21647,"src":"36918:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21627,"name":"string","nodeType":"ElementaryTypeName","src":"36918:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21630,"mutability":"mutable","name":"p2","nameLocation":"36950:2:14","nodeType":"VariableDeclaration","scope":21647,"src":"36936:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21629,"name":"string","nodeType":"ElementaryTypeName","src":"36936:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21632,"mutability":"mutable","name":"p3","nameLocation":"36962:2:14","nodeType":"VariableDeclaration","scope":21647,"src":"36954:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21631,"name":"address","nodeType":"ElementaryTypeName","src":"36954:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36899:66:14"},"returnParameters":{"id":21634,"nodeType":"ParameterList","parameters":[],"src":"36980:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21670,"nodeType":"FunctionDefinition","src":"37096:192:14","nodes":[],"body":{"id":21669,"nodeType":"Block","src":"37180:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c75696e7432353629","id":21661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37230:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6aefad2ecee6d91421acc41f939bded56985ac5c9cf6e49011ee16b1bb31729","typeString":"literal_string \"log(string,string,bool,uint256)\""},"value":"log(string,string,bool,uint256)"},{"id":21662,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21649,"src":"37265:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21663,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21651,"src":"37269:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21664,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21653,"src":"37273:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21665,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21655,"src":"37277:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6aefad2ecee6d91421acc41f939bded56985ac5c9cf6e49011ee16b1bb31729","typeString":"literal_string \"log(string,string,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21659,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37206:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37210:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37206:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37206:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21658,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"37190:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37190:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21668,"nodeType":"ExpressionStatement","src":"37190:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37105:3:14","parameters":{"id":21656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21649,"mutability":"mutable","name":"p0","nameLocation":"37123:2:14","nodeType":"VariableDeclaration","scope":21670,"src":"37109:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21648,"name":"string","nodeType":"ElementaryTypeName","src":"37109:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21651,"mutability":"mutable","name":"p1","nameLocation":"37141:2:14","nodeType":"VariableDeclaration","scope":21670,"src":"37127:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21650,"name":"string","nodeType":"ElementaryTypeName","src":"37127:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21653,"mutability":"mutable","name":"p2","nameLocation":"37150:2:14","nodeType":"VariableDeclaration","scope":21670,"src":"37145:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21652,"name":"bool","nodeType":"ElementaryTypeName","src":"37145:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21655,"mutability":"mutable","name":"p3","nameLocation":"37162:2:14","nodeType":"VariableDeclaration","scope":21670,"src":"37154:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21654,"name":"uint256","nodeType":"ElementaryTypeName","src":"37154:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37108:57:14"},"returnParameters":{"id":21657,"nodeType":"ParameterList","parameters":[],"src":"37180:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21693,"nodeType":"FunctionDefinition","src":"37294:197:14","nodes":[],"body":{"id":21692,"nodeType":"Block","src":"37384:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c737472696e6729","id":21684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37434:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b","typeString":"literal_string \"log(string,string,bool,string)\""},"value":"log(string,string,bool,string)"},{"id":21685,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21672,"src":"37468:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21686,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21674,"src":"37472:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21687,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21676,"src":"37476:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21688,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21678,"src":"37480:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b","typeString":"literal_string \"log(string,string,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21682,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37410:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37414:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37410:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37410:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21681,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"37394:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37394:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21691,"nodeType":"ExpressionStatement","src":"37394:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37303:3:14","parameters":{"id":21679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21672,"mutability":"mutable","name":"p0","nameLocation":"37321:2:14","nodeType":"VariableDeclaration","scope":21693,"src":"37307:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21671,"name":"string","nodeType":"ElementaryTypeName","src":"37307:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21674,"mutability":"mutable","name":"p1","nameLocation":"37339:2:14","nodeType":"VariableDeclaration","scope":21693,"src":"37325:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21673,"name":"string","nodeType":"ElementaryTypeName","src":"37325:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21676,"mutability":"mutable","name":"p2","nameLocation":"37348:2:14","nodeType":"VariableDeclaration","scope":21693,"src":"37343:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21675,"name":"bool","nodeType":"ElementaryTypeName","src":"37343:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21678,"mutability":"mutable","name":"p3","nameLocation":"37366:2:14","nodeType":"VariableDeclaration","scope":21693,"src":"37352:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21677,"name":"string","nodeType":"ElementaryTypeName","src":"37352:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37306:63:14"},"returnParameters":{"id":21680,"nodeType":"ParameterList","parameters":[],"src":"37384:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21716,"nodeType":"FunctionDefinition","src":"37497:186:14","nodes":[],"body":{"id":21715,"nodeType":"Block","src":"37578:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c626f6f6c29","id":21707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37628:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10","typeString":"literal_string \"log(string,string,bool,bool)\""},"value":"log(string,string,bool,bool)"},{"id":21708,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21695,"src":"37660:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21709,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21697,"src":"37664:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21710,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21699,"src":"37668:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21711,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21701,"src":"37672:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10","typeString":"literal_string \"log(string,string,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":21705,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37604:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21706,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37608:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37604:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37604:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21704,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"37588:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37588:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21714,"nodeType":"ExpressionStatement","src":"37588:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37506:3:14","parameters":{"id":21702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21695,"mutability":"mutable","name":"p0","nameLocation":"37524:2:14","nodeType":"VariableDeclaration","scope":21716,"src":"37510:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21694,"name":"string","nodeType":"ElementaryTypeName","src":"37510:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21697,"mutability":"mutable","name":"p1","nameLocation":"37542:2:14","nodeType":"VariableDeclaration","scope":21716,"src":"37528:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21696,"name":"string","nodeType":"ElementaryTypeName","src":"37528:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21699,"mutability":"mutable","name":"p2","nameLocation":"37551:2:14","nodeType":"VariableDeclaration","scope":21716,"src":"37546:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21698,"name":"bool","nodeType":"ElementaryTypeName","src":"37546:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21701,"mutability":"mutable","name":"p3","nameLocation":"37560:2:14","nodeType":"VariableDeclaration","scope":21716,"src":"37555:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21700,"name":"bool","nodeType":"ElementaryTypeName","src":"37555:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"37509:54:14"},"returnParameters":{"id":21703,"nodeType":"ParameterList","parameters":[],"src":"37578:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21739,"nodeType":"FunctionDefinition","src":"37689:192:14","nodes":[],"body":{"id":21738,"nodeType":"Block","src":"37773:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c6164647265737329","id":21730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37823:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d","typeString":"literal_string \"log(string,string,bool,address)\""},"value":"log(string,string,bool,address)"},{"id":21731,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21718,"src":"37858:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21732,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21720,"src":"37862:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21733,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21722,"src":"37866:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21734,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21724,"src":"37870:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d","typeString":"literal_string \"log(string,string,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21728,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37799:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37803:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37799:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37799:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21727,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"37783:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37783:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21737,"nodeType":"ExpressionStatement","src":"37783:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37698:3:14","parameters":{"id":21725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21718,"mutability":"mutable","name":"p0","nameLocation":"37716:2:14","nodeType":"VariableDeclaration","scope":21739,"src":"37702:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21717,"name":"string","nodeType":"ElementaryTypeName","src":"37702:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21720,"mutability":"mutable","name":"p1","nameLocation":"37734:2:14","nodeType":"VariableDeclaration","scope":21739,"src":"37720:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21719,"name":"string","nodeType":"ElementaryTypeName","src":"37720:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21722,"mutability":"mutable","name":"p2","nameLocation":"37743:2:14","nodeType":"VariableDeclaration","scope":21739,"src":"37738:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21721,"name":"bool","nodeType":"ElementaryTypeName","src":"37738:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21724,"mutability":"mutable","name":"p3","nameLocation":"37755:2:14","nodeType":"VariableDeclaration","scope":21739,"src":"37747:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21723,"name":"address","nodeType":"ElementaryTypeName","src":"37747:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"37701:57:14"},"returnParameters":{"id":21726,"nodeType":"ParameterList","parameters":[],"src":"37773:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21762,"nodeType":"FunctionDefinition","src":"37887:198:14","nodes":[],"body":{"id":21761,"nodeType":"Block","src":"37974:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c75696e7432353629","id":21753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38024:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7cc3c607046f21bb2d1cc4864448de2e6c44029beb9bfc36cf6ca90777ae5a00","typeString":"literal_string \"log(string,string,address,uint256)\""},"value":"log(string,string,address,uint256)"},{"id":21754,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21741,"src":"38062:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21755,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21743,"src":"38066:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21756,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21745,"src":"38070:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21757,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21747,"src":"38074:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7cc3c607046f21bb2d1cc4864448de2e6c44029beb9bfc36cf6ca90777ae5a00","typeString":"literal_string \"log(string,string,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21751,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38000:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21752,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38004:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38000:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38000:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21750,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"37984:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37984:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21760,"nodeType":"ExpressionStatement","src":"37984:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37896:3:14","parameters":{"id":21748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21741,"mutability":"mutable","name":"p0","nameLocation":"37914:2:14","nodeType":"VariableDeclaration","scope":21762,"src":"37900:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21740,"name":"string","nodeType":"ElementaryTypeName","src":"37900:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21743,"mutability":"mutable","name":"p1","nameLocation":"37932:2:14","nodeType":"VariableDeclaration","scope":21762,"src":"37918:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21742,"name":"string","nodeType":"ElementaryTypeName","src":"37918:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21745,"mutability":"mutable","name":"p2","nameLocation":"37944:2:14","nodeType":"VariableDeclaration","scope":21762,"src":"37936:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21744,"name":"address","nodeType":"ElementaryTypeName","src":"37936:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21747,"mutability":"mutable","name":"p3","nameLocation":"37956:2:14","nodeType":"VariableDeclaration","scope":21762,"src":"37948:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21746,"name":"uint256","nodeType":"ElementaryTypeName","src":"37948:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37899:60:14"},"returnParameters":{"id":21749,"nodeType":"ParameterList","parameters":[],"src":"37974:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21785,"nodeType":"FunctionDefinition","src":"38091:203:14","nodes":[],"body":{"id":21784,"nodeType":"Block","src":"38184:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c737472696e6729","id":21776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38234:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6","typeString":"literal_string \"log(string,string,address,string)\""},"value":"log(string,string,address,string)"},{"id":21777,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21764,"src":"38271:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21778,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21766,"src":"38275:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21779,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21768,"src":"38279:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21780,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21770,"src":"38283:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6","typeString":"literal_string \"log(string,string,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21774,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38210:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38214:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38210:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38210:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21773,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"38194:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38194:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21783,"nodeType":"ExpressionStatement","src":"38194:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38100:3:14","parameters":{"id":21771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21764,"mutability":"mutable","name":"p0","nameLocation":"38118:2:14","nodeType":"VariableDeclaration","scope":21785,"src":"38104:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21763,"name":"string","nodeType":"ElementaryTypeName","src":"38104:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21766,"mutability":"mutable","name":"p1","nameLocation":"38136:2:14","nodeType":"VariableDeclaration","scope":21785,"src":"38122:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21765,"name":"string","nodeType":"ElementaryTypeName","src":"38122:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21768,"mutability":"mutable","name":"p2","nameLocation":"38148:2:14","nodeType":"VariableDeclaration","scope":21785,"src":"38140:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21767,"name":"address","nodeType":"ElementaryTypeName","src":"38140:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21770,"mutability":"mutable","name":"p3","nameLocation":"38166:2:14","nodeType":"VariableDeclaration","scope":21785,"src":"38152:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21769,"name":"string","nodeType":"ElementaryTypeName","src":"38152:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"38103:66:14"},"returnParameters":{"id":21772,"nodeType":"ParameterList","parameters":[],"src":"38184:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21808,"nodeType":"FunctionDefinition","src":"38300:192:14","nodes":[],"body":{"id":21807,"nodeType":"Block","src":"38384:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c626f6f6c29","id":21799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38434:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63","typeString":"literal_string \"log(string,string,address,bool)\""},"value":"log(string,string,address,bool)"},{"id":21800,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21787,"src":"38469:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21801,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21789,"src":"38473:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21802,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21791,"src":"38477:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21803,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21793,"src":"38481:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63","typeString":"literal_string \"log(string,string,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":21797,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38410:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38414:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38410:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38410:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21796,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"38394:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38394:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21806,"nodeType":"ExpressionStatement","src":"38394:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38309:3:14","parameters":{"id":21794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21787,"mutability":"mutable","name":"p0","nameLocation":"38327:2:14","nodeType":"VariableDeclaration","scope":21808,"src":"38313:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21786,"name":"string","nodeType":"ElementaryTypeName","src":"38313:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21789,"mutability":"mutable","name":"p1","nameLocation":"38345:2:14","nodeType":"VariableDeclaration","scope":21808,"src":"38331:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21788,"name":"string","nodeType":"ElementaryTypeName","src":"38331:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21791,"mutability":"mutable","name":"p2","nameLocation":"38357:2:14","nodeType":"VariableDeclaration","scope":21808,"src":"38349:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21790,"name":"address","nodeType":"ElementaryTypeName","src":"38349:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21793,"mutability":"mutable","name":"p3","nameLocation":"38366:2:14","nodeType":"VariableDeclaration","scope":21808,"src":"38361:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21792,"name":"bool","nodeType":"ElementaryTypeName","src":"38361:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38312:57:14"},"returnParameters":{"id":21795,"nodeType":"ParameterList","parameters":[],"src":"38384:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21831,"nodeType":"FunctionDefinition","src":"38498:198:14","nodes":[],"body":{"id":21830,"nodeType":"Block","src":"38585:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c6164647265737329","id":21822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38635:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d","typeString":"literal_string \"log(string,string,address,address)\""},"value":"log(string,string,address,address)"},{"id":21823,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21810,"src":"38673:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21824,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21812,"src":"38677:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21825,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21814,"src":"38681:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21826,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21816,"src":"38685:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d","typeString":"literal_string \"log(string,string,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21820,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38611:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21821,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38615:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38611:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38611:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21819,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"38595:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38595:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21829,"nodeType":"ExpressionStatement","src":"38595:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38507:3:14","parameters":{"id":21817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21810,"mutability":"mutable","name":"p0","nameLocation":"38525:2:14","nodeType":"VariableDeclaration","scope":21831,"src":"38511:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21809,"name":"string","nodeType":"ElementaryTypeName","src":"38511:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21812,"mutability":"mutable","name":"p1","nameLocation":"38543:2:14","nodeType":"VariableDeclaration","scope":21831,"src":"38529:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21811,"name":"string","nodeType":"ElementaryTypeName","src":"38529:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21814,"mutability":"mutable","name":"p2","nameLocation":"38555:2:14","nodeType":"VariableDeclaration","scope":21831,"src":"38547:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21813,"name":"address","nodeType":"ElementaryTypeName","src":"38547:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21816,"mutability":"mutable","name":"p3","nameLocation":"38567:2:14","nodeType":"VariableDeclaration","scope":21831,"src":"38559:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21815,"name":"address","nodeType":"ElementaryTypeName","src":"38559:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38510:60:14"},"returnParameters":{"id":21818,"nodeType":"ParameterList","parameters":[],"src":"38585:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21854,"nodeType":"FunctionDefinition","src":"38702:187:14","nodes":[],"body":{"id":21853,"nodeType":"Block","src":"38780:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c75696e7432353629","id":21845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38830:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_64b5bb671d0911515c2d999ed3f7f689c3b5762a99b342dfee4a1d88fec7b25e","typeString":"literal_string \"log(string,bool,uint256,uint256)\""},"value":"log(string,bool,uint256,uint256)"},{"id":21846,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21833,"src":"38866:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21847,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21835,"src":"38870:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21848,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21837,"src":"38874:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21849,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21839,"src":"38878:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_64b5bb671d0911515c2d999ed3f7f689c3b5762a99b342dfee4a1d88fec7b25e","typeString":"literal_string \"log(string,bool,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21843,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38806:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38810:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38806:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38806:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21842,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"38790:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38790:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21852,"nodeType":"ExpressionStatement","src":"38790:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38711:3:14","parameters":{"id":21840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21833,"mutability":"mutable","name":"p0","nameLocation":"38729:2:14","nodeType":"VariableDeclaration","scope":21854,"src":"38715:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21832,"name":"string","nodeType":"ElementaryTypeName","src":"38715:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21835,"mutability":"mutable","name":"p1","nameLocation":"38738:2:14","nodeType":"VariableDeclaration","scope":21854,"src":"38733:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21834,"name":"bool","nodeType":"ElementaryTypeName","src":"38733:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21837,"mutability":"mutable","name":"p2","nameLocation":"38750:2:14","nodeType":"VariableDeclaration","scope":21854,"src":"38742:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21836,"name":"uint256","nodeType":"ElementaryTypeName","src":"38742:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21839,"mutability":"mutable","name":"p3","nameLocation":"38762:2:14","nodeType":"VariableDeclaration","scope":21854,"src":"38754:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21838,"name":"uint256","nodeType":"ElementaryTypeName","src":"38754:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38714:51:14"},"returnParameters":{"id":21841,"nodeType":"ParameterList","parameters":[],"src":"38780:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21877,"nodeType":"FunctionDefinition","src":"38895:192:14","nodes":[],"body":{"id":21876,"nodeType":"Block","src":"38979:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c737472696e6729","id":21868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39029:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_742d6ee771df9df1dec5a8b70ff5f7f41567f6ae9fe27e7e391b2811f9978b00","typeString":"literal_string \"log(string,bool,uint256,string)\""},"value":"log(string,bool,uint256,string)"},{"id":21869,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21856,"src":"39064:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21870,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21858,"src":"39068:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21871,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21860,"src":"39072:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21872,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21862,"src":"39076:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_742d6ee771df9df1dec5a8b70ff5f7f41567f6ae9fe27e7e391b2811f9978b00","typeString":"literal_string \"log(string,bool,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21866,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39005:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39009:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39005:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39005:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21865,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"38989:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38989:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21875,"nodeType":"ExpressionStatement","src":"38989:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38904:3:14","parameters":{"id":21863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21856,"mutability":"mutable","name":"p0","nameLocation":"38922:2:14","nodeType":"VariableDeclaration","scope":21877,"src":"38908:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21855,"name":"string","nodeType":"ElementaryTypeName","src":"38908:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21858,"mutability":"mutable","name":"p1","nameLocation":"38931:2:14","nodeType":"VariableDeclaration","scope":21877,"src":"38926:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21857,"name":"bool","nodeType":"ElementaryTypeName","src":"38926:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21860,"mutability":"mutable","name":"p2","nameLocation":"38943:2:14","nodeType":"VariableDeclaration","scope":21877,"src":"38935:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21859,"name":"uint256","nodeType":"ElementaryTypeName","src":"38935:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21862,"mutability":"mutable","name":"p3","nameLocation":"38961:2:14","nodeType":"VariableDeclaration","scope":21877,"src":"38947:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21861,"name":"string","nodeType":"ElementaryTypeName","src":"38947:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"38907:57:14"},"returnParameters":{"id":21864,"nodeType":"ParameterList","parameters":[],"src":"38979:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21900,"nodeType":"FunctionDefinition","src":"39093:181:14","nodes":[],"body":{"id":21899,"nodeType":"Block","src":"39168:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c626f6f6c29","id":21891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39218:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8af7cf8a379b674b00a81c3841f4203ce23fde0db10f1f8c2a0017ca424d79e2","typeString":"literal_string \"log(string,bool,uint256,bool)\""},"value":"log(string,bool,uint256,bool)"},{"id":21892,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21879,"src":"39251:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21893,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21881,"src":"39255:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21894,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21883,"src":"39259:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21895,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21885,"src":"39263:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8af7cf8a379b674b00a81c3841f4203ce23fde0db10f1f8c2a0017ca424d79e2","typeString":"literal_string \"log(string,bool,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":21889,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39194:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39198:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39194:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39194:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21888,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"39178:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39178:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21898,"nodeType":"ExpressionStatement","src":"39178:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39102:3:14","parameters":{"id":21886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21879,"mutability":"mutable","name":"p0","nameLocation":"39120:2:14","nodeType":"VariableDeclaration","scope":21900,"src":"39106:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21878,"name":"string","nodeType":"ElementaryTypeName","src":"39106:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21881,"mutability":"mutable","name":"p1","nameLocation":"39129:2:14","nodeType":"VariableDeclaration","scope":21900,"src":"39124:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21880,"name":"bool","nodeType":"ElementaryTypeName","src":"39124:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21883,"mutability":"mutable","name":"p2","nameLocation":"39141:2:14","nodeType":"VariableDeclaration","scope":21900,"src":"39133:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21882,"name":"uint256","nodeType":"ElementaryTypeName","src":"39133:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21885,"mutability":"mutable","name":"p3","nameLocation":"39150:2:14","nodeType":"VariableDeclaration","scope":21900,"src":"39145:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21884,"name":"bool","nodeType":"ElementaryTypeName","src":"39145:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"39105:48:14"},"returnParameters":{"id":21887,"nodeType":"ParameterList","parameters":[],"src":"39168:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21923,"nodeType":"FunctionDefinition","src":"39280:187:14","nodes":[],"body":{"id":21922,"nodeType":"Block","src":"39358:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c6164647265737329","id":21914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39408:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_935e09bfd29779a7e049f17e6e907bb9f7181e93c0c486cf646b7471eb4a9d1e","typeString":"literal_string \"log(string,bool,uint256,address)\""},"value":"log(string,bool,uint256,address)"},{"id":21915,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21902,"src":"39444:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21916,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21904,"src":"39448:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21917,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21906,"src":"39452:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21918,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21908,"src":"39456:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_935e09bfd29779a7e049f17e6e907bb9f7181e93c0c486cf646b7471eb4a9d1e","typeString":"literal_string \"log(string,bool,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21912,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39384:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39388:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39384:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39384:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21911,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"39368:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39368:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21921,"nodeType":"ExpressionStatement","src":"39368:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39289:3:14","parameters":{"id":21909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21902,"mutability":"mutable","name":"p0","nameLocation":"39307:2:14","nodeType":"VariableDeclaration","scope":21923,"src":"39293:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21901,"name":"string","nodeType":"ElementaryTypeName","src":"39293:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21904,"mutability":"mutable","name":"p1","nameLocation":"39316:2:14","nodeType":"VariableDeclaration","scope":21923,"src":"39311:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21903,"name":"bool","nodeType":"ElementaryTypeName","src":"39311:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21906,"mutability":"mutable","name":"p2","nameLocation":"39328:2:14","nodeType":"VariableDeclaration","scope":21923,"src":"39320:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21905,"name":"uint256","nodeType":"ElementaryTypeName","src":"39320:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21908,"mutability":"mutable","name":"p3","nameLocation":"39340:2:14","nodeType":"VariableDeclaration","scope":21923,"src":"39332:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21907,"name":"address","nodeType":"ElementaryTypeName","src":"39332:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39292:51:14"},"returnParameters":{"id":21910,"nodeType":"ParameterList","parameters":[],"src":"39358:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21946,"nodeType":"FunctionDefinition","src":"39473:192:14","nodes":[],"body":{"id":21945,"nodeType":"Block","src":"39557:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c75696e7432353629","id":21937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39607:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_24f9146562ee02c43db65ac014241fab3a51c9e29435f60d2ed133a186cac03a","typeString":"literal_string \"log(string,bool,string,uint256)\""},"value":"log(string,bool,string,uint256)"},{"id":21938,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21925,"src":"39642:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21939,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21927,"src":"39646:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21940,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21929,"src":"39650:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21941,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21931,"src":"39654:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_24f9146562ee02c43db65ac014241fab3a51c9e29435f60d2ed133a186cac03a","typeString":"literal_string \"log(string,bool,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21935,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39583:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39587:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39583:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39583:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21934,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"39567:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39567:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21944,"nodeType":"ExpressionStatement","src":"39567:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39482:3:14","parameters":{"id":21932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21925,"mutability":"mutable","name":"p0","nameLocation":"39500:2:14","nodeType":"VariableDeclaration","scope":21946,"src":"39486:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21924,"name":"string","nodeType":"ElementaryTypeName","src":"39486:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21927,"mutability":"mutable","name":"p1","nameLocation":"39509:2:14","nodeType":"VariableDeclaration","scope":21946,"src":"39504:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21926,"name":"bool","nodeType":"ElementaryTypeName","src":"39504:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21929,"mutability":"mutable","name":"p2","nameLocation":"39527:2:14","nodeType":"VariableDeclaration","scope":21946,"src":"39513:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21928,"name":"string","nodeType":"ElementaryTypeName","src":"39513:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21931,"mutability":"mutable","name":"p3","nameLocation":"39539:2:14","nodeType":"VariableDeclaration","scope":21946,"src":"39531:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21930,"name":"uint256","nodeType":"ElementaryTypeName","src":"39531:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39485:57:14"},"returnParameters":{"id":21933,"nodeType":"ParameterList","parameters":[],"src":"39557:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21969,"nodeType":"FunctionDefinition","src":"39671:197:14","nodes":[],"body":{"id":21968,"nodeType":"Block","src":"39761:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c737472696e6729","id":21960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39811:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d","typeString":"literal_string \"log(string,bool,string,string)\""},"value":"log(string,bool,string,string)"},{"id":21961,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21948,"src":"39845:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21962,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21950,"src":"39849:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21963,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21952,"src":"39853:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21964,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21954,"src":"39857:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d","typeString":"literal_string \"log(string,bool,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21958,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39787:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39791:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39787:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39787:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21957,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"39771:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39771:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21967,"nodeType":"ExpressionStatement","src":"39771:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39680:3:14","parameters":{"id":21955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21948,"mutability":"mutable","name":"p0","nameLocation":"39698:2:14","nodeType":"VariableDeclaration","scope":21969,"src":"39684:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21947,"name":"string","nodeType":"ElementaryTypeName","src":"39684:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21950,"mutability":"mutable","name":"p1","nameLocation":"39707:2:14","nodeType":"VariableDeclaration","scope":21969,"src":"39702:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21949,"name":"bool","nodeType":"ElementaryTypeName","src":"39702:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21952,"mutability":"mutable","name":"p2","nameLocation":"39725:2:14","nodeType":"VariableDeclaration","scope":21969,"src":"39711:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21951,"name":"string","nodeType":"ElementaryTypeName","src":"39711:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21954,"mutability":"mutable","name":"p3","nameLocation":"39743:2:14","nodeType":"VariableDeclaration","scope":21969,"src":"39729:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21953,"name":"string","nodeType":"ElementaryTypeName","src":"39729:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"39683:63:14"},"returnParameters":{"id":21956,"nodeType":"ParameterList","parameters":[],"src":"39761:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21992,"nodeType":"FunctionDefinition","src":"39874:186:14","nodes":[],"body":{"id":21991,"nodeType":"Block","src":"39955:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c626f6f6c29","id":21983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40005:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b","typeString":"literal_string \"log(string,bool,string,bool)\""},"value":"log(string,bool,string,bool)"},{"id":21984,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21971,"src":"40037:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21985,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21973,"src":"40041:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21986,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21975,"src":"40045:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21987,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21977,"src":"40049:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b","typeString":"literal_string \"log(string,bool,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":21981,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39981:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39985:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39981:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39981:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21980,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"39965:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39965:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21990,"nodeType":"ExpressionStatement","src":"39965:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39883:3:14","parameters":{"id":21978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21971,"mutability":"mutable","name":"p0","nameLocation":"39901:2:14","nodeType":"VariableDeclaration","scope":21992,"src":"39887:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21970,"name":"string","nodeType":"ElementaryTypeName","src":"39887:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21973,"mutability":"mutable","name":"p1","nameLocation":"39910:2:14","nodeType":"VariableDeclaration","scope":21992,"src":"39905:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21972,"name":"bool","nodeType":"ElementaryTypeName","src":"39905:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21975,"mutability":"mutable","name":"p2","nameLocation":"39928:2:14","nodeType":"VariableDeclaration","scope":21992,"src":"39914:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21974,"name":"string","nodeType":"ElementaryTypeName","src":"39914:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21977,"mutability":"mutable","name":"p3","nameLocation":"39937:2:14","nodeType":"VariableDeclaration","scope":21992,"src":"39932:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21976,"name":"bool","nodeType":"ElementaryTypeName","src":"39932:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"39886:54:14"},"returnParameters":{"id":21979,"nodeType":"ParameterList","parameters":[],"src":"39955:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22015,"nodeType":"FunctionDefinition","src":"40066:192:14","nodes":[],"body":{"id":22014,"nodeType":"Block","src":"40150:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c6164647265737329","id":22006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40200:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8","typeString":"literal_string \"log(string,bool,string,address)\""},"value":"log(string,bool,string,address)"},{"id":22007,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21994,"src":"40235:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22008,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21996,"src":"40239:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22009,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21998,"src":"40243:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22010,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22000,"src":"40247:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8","typeString":"literal_string \"log(string,bool,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22004,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40176:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22005,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40180:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40176:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40176:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22003,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"40160:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40160:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22013,"nodeType":"ExpressionStatement","src":"40160:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40075:3:14","parameters":{"id":22001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21994,"mutability":"mutable","name":"p0","nameLocation":"40093:2:14","nodeType":"VariableDeclaration","scope":22015,"src":"40079:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21993,"name":"string","nodeType":"ElementaryTypeName","src":"40079:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21996,"mutability":"mutable","name":"p1","nameLocation":"40102:2:14","nodeType":"VariableDeclaration","scope":22015,"src":"40097:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21995,"name":"bool","nodeType":"ElementaryTypeName","src":"40097:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21998,"mutability":"mutable","name":"p2","nameLocation":"40120:2:14","nodeType":"VariableDeclaration","scope":22015,"src":"40106:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21997,"name":"string","nodeType":"ElementaryTypeName","src":"40106:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22000,"mutability":"mutable","name":"p3","nameLocation":"40132:2:14","nodeType":"VariableDeclaration","scope":22015,"src":"40124:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21999,"name":"address","nodeType":"ElementaryTypeName","src":"40124:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40078:57:14"},"returnParameters":{"id":22002,"nodeType":"ParameterList","parameters":[],"src":"40150:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22038,"nodeType":"FunctionDefinition","src":"40264:181:14","nodes":[],"body":{"id":22037,"nodeType":"Block","src":"40339:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c75696e7432353629","id":22029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40389:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e3f78a95b6137f6ae9ccc69d6fedacb3b283b432b4367bfc497a4b3b428665c","typeString":"literal_string \"log(string,bool,bool,uint256)\""},"value":"log(string,bool,bool,uint256)"},{"id":22030,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22017,"src":"40422:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22031,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22019,"src":"40426:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22032,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22021,"src":"40430:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22033,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22023,"src":"40434:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e3f78a95b6137f6ae9ccc69d6fedacb3b283b432b4367bfc497a4b3b428665c","typeString":"literal_string \"log(string,bool,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22027,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40365:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40369:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40365:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40365:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22026,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"40349:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40349:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22036,"nodeType":"ExpressionStatement","src":"40349:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40273:3:14","parameters":{"id":22024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22017,"mutability":"mutable","name":"p0","nameLocation":"40291:2:14","nodeType":"VariableDeclaration","scope":22038,"src":"40277:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22016,"name":"string","nodeType":"ElementaryTypeName","src":"40277:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22019,"mutability":"mutable","name":"p1","nameLocation":"40300:2:14","nodeType":"VariableDeclaration","scope":22038,"src":"40295:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22018,"name":"bool","nodeType":"ElementaryTypeName","src":"40295:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22021,"mutability":"mutable","name":"p2","nameLocation":"40309:2:14","nodeType":"VariableDeclaration","scope":22038,"src":"40304:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22020,"name":"bool","nodeType":"ElementaryTypeName","src":"40304:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22023,"mutability":"mutable","name":"p3","nameLocation":"40321:2:14","nodeType":"VariableDeclaration","scope":22038,"src":"40313:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22022,"name":"uint256","nodeType":"ElementaryTypeName","src":"40313:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"40276:48:14"},"returnParameters":{"id":22025,"nodeType":"ParameterList","parameters":[],"src":"40339:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22061,"nodeType":"FunctionDefinition","src":"40451:186:14","nodes":[],"body":{"id":22060,"nodeType":"Block","src":"40532:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c737472696e6729","id":22052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40582:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058","typeString":"literal_string \"log(string,bool,bool,string)\""},"value":"log(string,bool,bool,string)"},{"id":22053,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22040,"src":"40614:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22054,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22042,"src":"40618:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22055,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22044,"src":"40622:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22056,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22046,"src":"40626:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058","typeString":"literal_string \"log(string,bool,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22050,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40558:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40562:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40558:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40558:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22049,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"40542:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40542:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22059,"nodeType":"ExpressionStatement","src":"40542:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40460:3:14","parameters":{"id":22047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22040,"mutability":"mutable","name":"p0","nameLocation":"40478:2:14","nodeType":"VariableDeclaration","scope":22061,"src":"40464:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22039,"name":"string","nodeType":"ElementaryTypeName","src":"40464:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22042,"mutability":"mutable","name":"p1","nameLocation":"40487:2:14","nodeType":"VariableDeclaration","scope":22061,"src":"40482:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22041,"name":"bool","nodeType":"ElementaryTypeName","src":"40482:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22044,"mutability":"mutable","name":"p2","nameLocation":"40496:2:14","nodeType":"VariableDeclaration","scope":22061,"src":"40491:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22043,"name":"bool","nodeType":"ElementaryTypeName","src":"40491:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22046,"mutability":"mutable","name":"p3","nameLocation":"40514:2:14","nodeType":"VariableDeclaration","scope":22061,"src":"40500:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22045,"name":"string","nodeType":"ElementaryTypeName","src":"40500:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40463:54:14"},"returnParameters":{"id":22048,"nodeType":"ParameterList","parameters":[],"src":"40532:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22084,"nodeType":"FunctionDefinition","src":"40643:175:14","nodes":[],"body":{"id":22083,"nodeType":"Block","src":"40715:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c626f6f6c29","id":22075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40765:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2","typeString":"literal_string \"log(string,bool,bool,bool)\""},"value":"log(string,bool,bool,bool)"},{"id":22076,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22063,"src":"40795:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22077,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22065,"src":"40799:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22078,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22067,"src":"40803:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22079,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22069,"src":"40807:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2","typeString":"literal_string \"log(string,bool,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22073,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40741:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40745:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40741:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40741:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22072,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"40725:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40725:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22082,"nodeType":"ExpressionStatement","src":"40725:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40652:3:14","parameters":{"id":22070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22063,"mutability":"mutable","name":"p0","nameLocation":"40670:2:14","nodeType":"VariableDeclaration","scope":22084,"src":"40656:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22062,"name":"string","nodeType":"ElementaryTypeName","src":"40656:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22065,"mutability":"mutable","name":"p1","nameLocation":"40679:2:14","nodeType":"VariableDeclaration","scope":22084,"src":"40674:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22064,"name":"bool","nodeType":"ElementaryTypeName","src":"40674:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22067,"mutability":"mutable","name":"p2","nameLocation":"40688:2:14","nodeType":"VariableDeclaration","scope":22084,"src":"40683:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22066,"name":"bool","nodeType":"ElementaryTypeName","src":"40683:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22069,"mutability":"mutable","name":"p3","nameLocation":"40697:2:14","nodeType":"VariableDeclaration","scope":22084,"src":"40692:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22068,"name":"bool","nodeType":"ElementaryTypeName","src":"40692:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"40655:45:14"},"returnParameters":{"id":22071,"nodeType":"ParameterList","parameters":[],"src":"40715:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22107,"nodeType":"FunctionDefinition","src":"40824:181:14","nodes":[],"body":{"id":22106,"nodeType":"Block","src":"40899:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c6164647265737329","id":22098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40949:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d","typeString":"literal_string \"log(string,bool,bool,address)\""},"value":"log(string,bool,bool,address)"},{"id":22099,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22086,"src":"40982:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22100,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22088,"src":"40986:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22101,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22090,"src":"40990:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22102,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22092,"src":"40994:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d","typeString":"literal_string \"log(string,bool,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22096,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40925:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40929:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40925:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40925:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22095,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"40909:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40909:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22105,"nodeType":"ExpressionStatement","src":"40909:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40833:3:14","parameters":{"id":22093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22086,"mutability":"mutable","name":"p0","nameLocation":"40851:2:14","nodeType":"VariableDeclaration","scope":22107,"src":"40837:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22085,"name":"string","nodeType":"ElementaryTypeName","src":"40837:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22088,"mutability":"mutable","name":"p1","nameLocation":"40860:2:14","nodeType":"VariableDeclaration","scope":22107,"src":"40855:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22087,"name":"bool","nodeType":"ElementaryTypeName","src":"40855:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22090,"mutability":"mutable","name":"p2","nameLocation":"40869:2:14","nodeType":"VariableDeclaration","scope":22107,"src":"40864:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22089,"name":"bool","nodeType":"ElementaryTypeName","src":"40864:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22092,"mutability":"mutable","name":"p3","nameLocation":"40881:2:14","nodeType":"VariableDeclaration","scope":22107,"src":"40873:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22091,"name":"address","nodeType":"ElementaryTypeName","src":"40873:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40836:48:14"},"returnParameters":{"id":22094,"nodeType":"ParameterList","parameters":[],"src":"40899:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22130,"nodeType":"FunctionDefinition","src":"41011:187:14","nodes":[],"body":{"id":22129,"nodeType":"Block","src":"41089:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c75696e7432353629","id":22121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41139:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d08bb051545e1af26b8dc05172e6aa8a0bd85212ec19e971b10cea364c21531","typeString":"literal_string \"log(string,bool,address,uint256)\""},"value":"log(string,bool,address,uint256)"},{"id":22122,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22109,"src":"41175:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22123,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22111,"src":"41179:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22124,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22113,"src":"41183:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22125,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22115,"src":"41187:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d08bb051545e1af26b8dc05172e6aa8a0bd85212ec19e971b10cea364c21531","typeString":"literal_string \"log(string,bool,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22119,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41115:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22120,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41119:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41115:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41115:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22118,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"41099:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41099:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22128,"nodeType":"ExpressionStatement","src":"41099:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41020:3:14","parameters":{"id":22116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22109,"mutability":"mutable","name":"p0","nameLocation":"41038:2:14","nodeType":"VariableDeclaration","scope":22130,"src":"41024:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22108,"name":"string","nodeType":"ElementaryTypeName","src":"41024:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22111,"mutability":"mutable","name":"p1","nameLocation":"41047:2:14","nodeType":"VariableDeclaration","scope":22130,"src":"41042:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22110,"name":"bool","nodeType":"ElementaryTypeName","src":"41042:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22113,"mutability":"mutable","name":"p2","nameLocation":"41059:2:14","nodeType":"VariableDeclaration","scope":22130,"src":"41051:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22112,"name":"address","nodeType":"ElementaryTypeName","src":"41051:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22115,"mutability":"mutable","name":"p3","nameLocation":"41071:2:14","nodeType":"VariableDeclaration","scope":22130,"src":"41063:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22114,"name":"uint256","nodeType":"ElementaryTypeName","src":"41063:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"41023:51:14"},"returnParameters":{"id":22117,"nodeType":"ParameterList","parameters":[],"src":"41089:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22153,"nodeType":"FunctionDefinition","src":"41204:192:14","nodes":[],"body":{"id":22152,"nodeType":"Block","src":"41288:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c737472696e6729","id":22144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41338:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef","typeString":"literal_string \"log(string,bool,address,string)\""},"value":"log(string,bool,address,string)"},{"id":22145,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22132,"src":"41373:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22146,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22134,"src":"41377:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22147,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22136,"src":"41381:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22148,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22138,"src":"41385:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef","typeString":"literal_string \"log(string,bool,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22142,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41314:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41318:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41314:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41314:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22141,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"41298:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41298:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22151,"nodeType":"ExpressionStatement","src":"41298:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41213:3:14","parameters":{"id":22139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22132,"mutability":"mutable","name":"p0","nameLocation":"41231:2:14","nodeType":"VariableDeclaration","scope":22153,"src":"41217:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22131,"name":"string","nodeType":"ElementaryTypeName","src":"41217:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22134,"mutability":"mutable","name":"p1","nameLocation":"41240:2:14","nodeType":"VariableDeclaration","scope":22153,"src":"41235:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22133,"name":"bool","nodeType":"ElementaryTypeName","src":"41235:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22136,"mutability":"mutable","name":"p2","nameLocation":"41252:2:14","nodeType":"VariableDeclaration","scope":22153,"src":"41244:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22135,"name":"address","nodeType":"ElementaryTypeName","src":"41244:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22138,"mutability":"mutable","name":"p3","nameLocation":"41270:2:14","nodeType":"VariableDeclaration","scope":22153,"src":"41256:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22137,"name":"string","nodeType":"ElementaryTypeName","src":"41256:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41216:57:14"},"returnParameters":{"id":22140,"nodeType":"ParameterList","parameters":[],"src":"41288:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22176,"nodeType":"FunctionDefinition","src":"41402:181:14","nodes":[],"body":{"id":22175,"nodeType":"Block","src":"41477:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c626f6f6c29","id":22167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41527:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482","typeString":"literal_string \"log(string,bool,address,bool)\""},"value":"log(string,bool,address,bool)"},{"id":22168,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22155,"src":"41560:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22169,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22157,"src":"41564:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22170,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22159,"src":"41568:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22171,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22161,"src":"41572:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482","typeString":"literal_string \"log(string,bool,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22165,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41503:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41507:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41503:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41503:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22164,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"41487:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41487:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22174,"nodeType":"ExpressionStatement","src":"41487:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41411:3:14","parameters":{"id":22162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22155,"mutability":"mutable","name":"p0","nameLocation":"41429:2:14","nodeType":"VariableDeclaration","scope":22176,"src":"41415:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22154,"name":"string","nodeType":"ElementaryTypeName","src":"41415:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22157,"mutability":"mutable","name":"p1","nameLocation":"41438:2:14","nodeType":"VariableDeclaration","scope":22176,"src":"41433:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22156,"name":"bool","nodeType":"ElementaryTypeName","src":"41433:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22159,"mutability":"mutable","name":"p2","nameLocation":"41450:2:14","nodeType":"VariableDeclaration","scope":22176,"src":"41442:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22158,"name":"address","nodeType":"ElementaryTypeName","src":"41442:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22161,"mutability":"mutable","name":"p3","nameLocation":"41459:2:14","nodeType":"VariableDeclaration","scope":22176,"src":"41454:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22160,"name":"bool","nodeType":"ElementaryTypeName","src":"41454:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"41414:48:14"},"returnParameters":{"id":22163,"nodeType":"ParameterList","parameters":[],"src":"41477:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22199,"nodeType":"FunctionDefinition","src":"41589:187:14","nodes":[],"body":{"id":22198,"nodeType":"Block","src":"41667:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c6164647265737329","id":22190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41717:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d","typeString":"literal_string \"log(string,bool,address,address)\""},"value":"log(string,bool,address,address)"},{"id":22191,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22178,"src":"41753:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22192,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22180,"src":"41757:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22193,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22182,"src":"41761:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22194,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22184,"src":"41765:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d","typeString":"literal_string \"log(string,bool,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22188,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41693:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41697:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41693:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41693:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22187,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"41677:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41677:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22197,"nodeType":"ExpressionStatement","src":"41677:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41598:3:14","parameters":{"id":22185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22178,"mutability":"mutable","name":"p0","nameLocation":"41616:2:14","nodeType":"VariableDeclaration","scope":22199,"src":"41602:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22177,"name":"string","nodeType":"ElementaryTypeName","src":"41602:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22180,"mutability":"mutable","name":"p1","nameLocation":"41625:2:14","nodeType":"VariableDeclaration","scope":22199,"src":"41620:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22179,"name":"bool","nodeType":"ElementaryTypeName","src":"41620:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22182,"mutability":"mutable","name":"p2","nameLocation":"41637:2:14","nodeType":"VariableDeclaration","scope":22199,"src":"41629:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22181,"name":"address","nodeType":"ElementaryTypeName","src":"41629:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22184,"mutability":"mutable","name":"p3","nameLocation":"41649:2:14","nodeType":"VariableDeclaration","scope":22199,"src":"41641:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22183,"name":"address","nodeType":"ElementaryTypeName","src":"41641:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41601:51:14"},"returnParameters":{"id":22186,"nodeType":"ParameterList","parameters":[],"src":"41667:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22222,"nodeType":"FunctionDefinition","src":"41782:193:14","nodes":[],"body":{"id":22221,"nodeType":"Block","src":"41863:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c75696e7432353629","id":22213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41913:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8f51b1efa50f24f22e6d84ce2fe784a33e1301484ada1546e913ae05d6370e9","typeString":"literal_string \"log(string,address,uint256,uint256)\""},"value":"log(string,address,uint256,uint256)"},{"id":22214,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22201,"src":"41952:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22215,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22203,"src":"41956:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22216,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22205,"src":"41960:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22217,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22207,"src":"41964:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f8f51b1efa50f24f22e6d84ce2fe784a33e1301484ada1546e913ae05d6370e9","typeString":"literal_string \"log(string,address,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22211,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41889:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41893:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41889:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41889:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22210,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"41873:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41873:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22220,"nodeType":"ExpressionStatement","src":"41873:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41791:3:14","parameters":{"id":22208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22201,"mutability":"mutable","name":"p0","nameLocation":"41809:2:14","nodeType":"VariableDeclaration","scope":22222,"src":"41795:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22200,"name":"string","nodeType":"ElementaryTypeName","src":"41795:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22203,"mutability":"mutable","name":"p1","nameLocation":"41821:2:14","nodeType":"VariableDeclaration","scope":22222,"src":"41813:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22202,"name":"address","nodeType":"ElementaryTypeName","src":"41813:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22205,"mutability":"mutable","name":"p2","nameLocation":"41833:2:14","nodeType":"VariableDeclaration","scope":22222,"src":"41825:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22204,"name":"uint256","nodeType":"ElementaryTypeName","src":"41825:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22207,"mutability":"mutable","name":"p3","nameLocation":"41845:2:14","nodeType":"VariableDeclaration","scope":22222,"src":"41837:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22206,"name":"uint256","nodeType":"ElementaryTypeName","src":"41837:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"41794:54:14"},"returnParameters":{"id":22209,"nodeType":"ParameterList","parameters":[],"src":"41863:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22245,"nodeType":"FunctionDefinition","src":"41981:198:14","nodes":[],"body":{"id":22244,"nodeType":"Block","src":"42068:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c737472696e6729","id":22236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42118:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a477632ed0f8b7872a83c9247644de555db395491f2f355c6edb676d8bcb46c","typeString":"literal_string \"log(string,address,uint256,string)\""},"value":"log(string,address,uint256,string)"},{"id":22237,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22224,"src":"42156:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22238,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22226,"src":"42160:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22239,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22228,"src":"42164:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22240,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22230,"src":"42168:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a477632ed0f8b7872a83c9247644de555db395491f2f355c6edb676d8bcb46c","typeString":"literal_string \"log(string,address,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22234,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42094:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42098:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42094:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42094:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22233,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"42078:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42078:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22243,"nodeType":"ExpressionStatement","src":"42078:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41990:3:14","parameters":{"id":22231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22224,"mutability":"mutable","name":"p0","nameLocation":"42008:2:14","nodeType":"VariableDeclaration","scope":22245,"src":"41994:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22223,"name":"string","nodeType":"ElementaryTypeName","src":"41994:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22226,"mutability":"mutable","name":"p1","nameLocation":"42020:2:14","nodeType":"VariableDeclaration","scope":22245,"src":"42012:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22225,"name":"address","nodeType":"ElementaryTypeName","src":"42012:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22228,"mutability":"mutable","name":"p2","nameLocation":"42032:2:14","nodeType":"VariableDeclaration","scope":22245,"src":"42024:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22227,"name":"uint256","nodeType":"ElementaryTypeName","src":"42024:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22230,"mutability":"mutable","name":"p3","nameLocation":"42050:2:14","nodeType":"VariableDeclaration","scope":22245,"src":"42036:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22229,"name":"string","nodeType":"ElementaryTypeName","src":"42036:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41993:60:14"},"returnParameters":{"id":22232,"nodeType":"ParameterList","parameters":[],"src":"42068:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22268,"nodeType":"FunctionDefinition","src":"42185:187:14","nodes":[],"body":{"id":22267,"nodeType":"Block","src":"42263:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c626f6f6c29","id":22259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42313:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc4845f029f76ed29f7b800fe92a7851214073a807806d7d808676b2cbe7a1c7","typeString":"literal_string \"log(string,address,uint256,bool)\""},"value":"log(string,address,uint256,bool)"},{"id":22260,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22247,"src":"42349:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22261,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22249,"src":"42353:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22262,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22251,"src":"42357:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22263,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22253,"src":"42361:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fc4845f029f76ed29f7b800fe92a7851214073a807806d7d808676b2cbe7a1c7","typeString":"literal_string \"log(string,address,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22257,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42289:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42293:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42289:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42289:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22256,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"42273:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42273:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22266,"nodeType":"ExpressionStatement","src":"42273:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42194:3:14","parameters":{"id":22254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22247,"mutability":"mutable","name":"p0","nameLocation":"42212:2:14","nodeType":"VariableDeclaration","scope":22268,"src":"42198:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22246,"name":"string","nodeType":"ElementaryTypeName","src":"42198:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22249,"mutability":"mutable","name":"p1","nameLocation":"42224:2:14","nodeType":"VariableDeclaration","scope":22268,"src":"42216:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22248,"name":"address","nodeType":"ElementaryTypeName","src":"42216:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22251,"mutability":"mutable","name":"p2","nameLocation":"42236:2:14","nodeType":"VariableDeclaration","scope":22268,"src":"42228:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22250,"name":"uint256","nodeType":"ElementaryTypeName","src":"42228:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22253,"mutability":"mutable","name":"p3","nameLocation":"42245:2:14","nodeType":"VariableDeclaration","scope":22268,"src":"42240:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22252,"name":"bool","nodeType":"ElementaryTypeName","src":"42240:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"42197:51:14"},"returnParameters":{"id":22255,"nodeType":"ParameterList","parameters":[],"src":"42263:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22291,"nodeType":"FunctionDefinition","src":"42378:193:14","nodes":[],"body":{"id":22290,"nodeType":"Block","src":"42459:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c6164647265737329","id":22282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42509:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_63fb8bc57476e3f2139504feb3fa304f43eeecc15ac8e150b7b3c9fdfa4ea83a","typeString":"literal_string \"log(string,address,uint256,address)\""},"value":"log(string,address,uint256,address)"},{"id":22283,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22270,"src":"42548:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22284,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22272,"src":"42552:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22285,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22274,"src":"42556:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22286,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22276,"src":"42560:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_63fb8bc57476e3f2139504feb3fa304f43eeecc15ac8e150b7b3c9fdfa4ea83a","typeString":"literal_string \"log(string,address,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22280,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42485:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42489:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42485:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42485:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22279,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"42469:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42469:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22289,"nodeType":"ExpressionStatement","src":"42469:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42387:3:14","parameters":{"id":22277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22270,"mutability":"mutable","name":"p0","nameLocation":"42405:2:14","nodeType":"VariableDeclaration","scope":22291,"src":"42391:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22269,"name":"string","nodeType":"ElementaryTypeName","src":"42391:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22272,"mutability":"mutable","name":"p1","nameLocation":"42417:2:14","nodeType":"VariableDeclaration","scope":22291,"src":"42409:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22271,"name":"address","nodeType":"ElementaryTypeName","src":"42409:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22274,"mutability":"mutable","name":"p2","nameLocation":"42429:2:14","nodeType":"VariableDeclaration","scope":22291,"src":"42421:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22273,"name":"uint256","nodeType":"ElementaryTypeName","src":"42421:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22276,"mutability":"mutable","name":"p3","nameLocation":"42441:2:14","nodeType":"VariableDeclaration","scope":22291,"src":"42433:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22275,"name":"address","nodeType":"ElementaryTypeName","src":"42433:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42390:54:14"},"returnParameters":{"id":22278,"nodeType":"ParameterList","parameters":[],"src":"42459:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22314,"nodeType":"FunctionDefinition","src":"42577:198:14","nodes":[],"body":{"id":22313,"nodeType":"Block","src":"42664:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c75696e7432353629","id":22305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42714:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_91d1112e9ca774de680c78512401449500c1938a4e449f6e73f80a84d95cfcfd","typeString":"literal_string \"log(string,address,string,uint256)\""},"value":"log(string,address,string,uint256)"},{"id":22306,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22293,"src":"42752:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22307,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22295,"src":"42756:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22308,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22297,"src":"42760:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22309,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"42764:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91d1112e9ca774de680c78512401449500c1938a4e449f6e73f80a84d95cfcfd","typeString":"literal_string \"log(string,address,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22303,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42690:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42694:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42690:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42690:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22302,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"42674:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42674:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22312,"nodeType":"ExpressionStatement","src":"42674:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42586:3:14","parameters":{"id":22300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22293,"mutability":"mutable","name":"p0","nameLocation":"42604:2:14","nodeType":"VariableDeclaration","scope":22314,"src":"42590:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22292,"name":"string","nodeType":"ElementaryTypeName","src":"42590:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22295,"mutability":"mutable","name":"p1","nameLocation":"42616:2:14","nodeType":"VariableDeclaration","scope":22314,"src":"42608:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22294,"name":"address","nodeType":"ElementaryTypeName","src":"42608:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22297,"mutability":"mutable","name":"p2","nameLocation":"42634:2:14","nodeType":"VariableDeclaration","scope":22314,"src":"42620:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22296,"name":"string","nodeType":"ElementaryTypeName","src":"42620:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22299,"mutability":"mutable","name":"p3","nameLocation":"42646:2:14","nodeType":"VariableDeclaration","scope":22314,"src":"42638:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22298,"name":"uint256","nodeType":"ElementaryTypeName","src":"42638:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42589:60:14"},"returnParameters":{"id":22301,"nodeType":"ParameterList","parameters":[],"src":"42664:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22337,"nodeType":"FunctionDefinition","src":"42781:203:14","nodes":[],"body":{"id":22336,"nodeType":"Block","src":"42874:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c737472696e6729","id":22328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42924:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797","typeString":"literal_string \"log(string,address,string,string)\""},"value":"log(string,address,string,string)"},{"id":22329,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22316,"src":"42961:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22330,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22318,"src":"42965:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22331,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22320,"src":"42969:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22332,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22322,"src":"42973:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797","typeString":"literal_string \"log(string,address,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22326,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42900:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42904:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42900:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42900:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22325,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"42884:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42884:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22335,"nodeType":"ExpressionStatement","src":"42884:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42790:3:14","parameters":{"id":22323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22316,"mutability":"mutable","name":"p0","nameLocation":"42808:2:14","nodeType":"VariableDeclaration","scope":22337,"src":"42794:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22315,"name":"string","nodeType":"ElementaryTypeName","src":"42794:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22318,"mutability":"mutable","name":"p1","nameLocation":"42820:2:14","nodeType":"VariableDeclaration","scope":22337,"src":"42812:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22317,"name":"address","nodeType":"ElementaryTypeName","src":"42812:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22320,"mutability":"mutable","name":"p2","nameLocation":"42838:2:14","nodeType":"VariableDeclaration","scope":22337,"src":"42824:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22319,"name":"string","nodeType":"ElementaryTypeName","src":"42824:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22322,"mutability":"mutable","name":"p3","nameLocation":"42856:2:14","nodeType":"VariableDeclaration","scope":22337,"src":"42842:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22321,"name":"string","nodeType":"ElementaryTypeName","src":"42842:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42793:66:14"},"returnParameters":{"id":22324,"nodeType":"ParameterList","parameters":[],"src":"42874:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22360,"nodeType":"FunctionDefinition","src":"42990:192:14","nodes":[],"body":{"id":22359,"nodeType":"Block","src":"43074:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c626f6f6c29","id":22351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43124:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154","typeString":"literal_string \"log(string,address,string,bool)\""},"value":"log(string,address,string,bool)"},{"id":22352,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22339,"src":"43159:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22353,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22341,"src":"43163:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22354,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22343,"src":"43167:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22355,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22345,"src":"43171:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154","typeString":"literal_string \"log(string,address,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22349,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43100:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43104:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43100:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43100:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22348,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"43084:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43084:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22358,"nodeType":"ExpressionStatement","src":"43084:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42999:3:14","parameters":{"id":22346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22339,"mutability":"mutable","name":"p0","nameLocation":"43017:2:14","nodeType":"VariableDeclaration","scope":22360,"src":"43003:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22338,"name":"string","nodeType":"ElementaryTypeName","src":"43003:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22341,"mutability":"mutable","name":"p1","nameLocation":"43029:2:14","nodeType":"VariableDeclaration","scope":22360,"src":"43021:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22340,"name":"address","nodeType":"ElementaryTypeName","src":"43021:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22343,"mutability":"mutable","name":"p2","nameLocation":"43047:2:14","nodeType":"VariableDeclaration","scope":22360,"src":"43033:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22342,"name":"string","nodeType":"ElementaryTypeName","src":"43033:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22345,"mutability":"mutable","name":"p3","nameLocation":"43056:2:14","nodeType":"VariableDeclaration","scope":22360,"src":"43051:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22344,"name":"bool","nodeType":"ElementaryTypeName","src":"43051:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"43002:57:14"},"returnParameters":{"id":22347,"nodeType":"ParameterList","parameters":[],"src":"43074:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22383,"nodeType":"FunctionDefinition","src":"43188:198:14","nodes":[],"body":{"id":22382,"nodeType":"Block","src":"43275:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c6164647265737329","id":22374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43325:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d","typeString":"literal_string \"log(string,address,string,address)\""},"value":"log(string,address,string,address)"},{"id":22375,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22362,"src":"43363:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22376,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22364,"src":"43367:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22377,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22366,"src":"43371:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22378,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22368,"src":"43375:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d","typeString":"literal_string \"log(string,address,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22372,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43301:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43305:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43301:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43301:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22371,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"43285:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43285:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22381,"nodeType":"ExpressionStatement","src":"43285:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43197:3:14","parameters":{"id":22369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22362,"mutability":"mutable","name":"p0","nameLocation":"43215:2:14","nodeType":"VariableDeclaration","scope":22383,"src":"43201:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22361,"name":"string","nodeType":"ElementaryTypeName","src":"43201:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22364,"mutability":"mutable","name":"p1","nameLocation":"43227:2:14","nodeType":"VariableDeclaration","scope":22383,"src":"43219:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22363,"name":"address","nodeType":"ElementaryTypeName","src":"43219:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22366,"mutability":"mutable","name":"p2","nameLocation":"43245:2:14","nodeType":"VariableDeclaration","scope":22383,"src":"43231:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22365,"name":"string","nodeType":"ElementaryTypeName","src":"43231:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22368,"mutability":"mutable","name":"p3","nameLocation":"43257:2:14","nodeType":"VariableDeclaration","scope":22383,"src":"43249:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22367,"name":"address","nodeType":"ElementaryTypeName","src":"43249:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"43200:60:14"},"returnParameters":{"id":22370,"nodeType":"ParameterList","parameters":[],"src":"43275:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22406,"nodeType":"FunctionDefinition","src":"43392:187:14","nodes":[],"body":{"id":22405,"nodeType":"Block","src":"43470:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c75696e7432353629","id":22397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43520:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3e9f866aadef9b1f2b0257e0ed5e2df8882ba55e598b4f5282674b64ae3f06b5","typeString":"literal_string \"log(string,address,bool,uint256)\""},"value":"log(string,address,bool,uint256)"},{"id":22398,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22385,"src":"43556:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22399,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22387,"src":"43560:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22400,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22389,"src":"43564:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22401,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22391,"src":"43568:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3e9f866aadef9b1f2b0257e0ed5e2df8882ba55e598b4f5282674b64ae3f06b5","typeString":"literal_string \"log(string,address,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22395,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43496:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43500:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43496:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43496:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22394,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"43480:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43480:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22404,"nodeType":"ExpressionStatement","src":"43480:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43401:3:14","parameters":{"id":22392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22385,"mutability":"mutable","name":"p0","nameLocation":"43419:2:14","nodeType":"VariableDeclaration","scope":22406,"src":"43405:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22384,"name":"string","nodeType":"ElementaryTypeName","src":"43405:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22387,"mutability":"mutable","name":"p1","nameLocation":"43431:2:14","nodeType":"VariableDeclaration","scope":22406,"src":"43423:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22386,"name":"address","nodeType":"ElementaryTypeName","src":"43423:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22389,"mutability":"mutable","name":"p2","nameLocation":"43440:2:14","nodeType":"VariableDeclaration","scope":22406,"src":"43435:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22388,"name":"bool","nodeType":"ElementaryTypeName","src":"43435:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22391,"mutability":"mutable","name":"p3","nameLocation":"43452:2:14","nodeType":"VariableDeclaration","scope":22406,"src":"43444:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22390,"name":"uint256","nodeType":"ElementaryTypeName","src":"43444:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"43404:51:14"},"returnParameters":{"id":22393,"nodeType":"ParameterList","parameters":[],"src":"43470:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22429,"nodeType":"FunctionDefinition","src":"43585:192:14","nodes":[],"body":{"id":22428,"nodeType":"Block","src":"43669:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c737472696e6729","id":22420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43719:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb","typeString":"literal_string \"log(string,address,bool,string)\""},"value":"log(string,address,bool,string)"},{"id":22421,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22408,"src":"43754:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22422,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22410,"src":"43758:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22423,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22412,"src":"43762:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22424,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22414,"src":"43766:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb","typeString":"literal_string \"log(string,address,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22418,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43695:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43699:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43695:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43695:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22417,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"43679:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43679:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22427,"nodeType":"ExpressionStatement","src":"43679:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43594:3:14","parameters":{"id":22415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22408,"mutability":"mutable","name":"p0","nameLocation":"43612:2:14","nodeType":"VariableDeclaration","scope":22429,"src":"43598:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22407,"name":"string","nodeType":"ElementaryTypeName","src":"43598:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22410,"mutability":"mutable","name":"p1","nameLocation":"43624:2:14","nodeType":"VariableDeclaration","scope":22429,"src":"43616:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22409,"name":"address","nodeType":"ElementaryTypeName","src":"43616:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22412,"mutability":"mutable","name":"p2","nameLocation":"43633:2:14","nodeType":"VariableDeclaration","scope":22429,"src":"43628:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22411,"name":"bool","nodeType":"ElementaryTypeName","src":"43628:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22414,"mutability":"mutable","name":"p3","nameLocation":"43651:2:14","nodeType":"VariableDeclaration","scope":22429,"src":"43637:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22413,"name":"string","nodeType":"ElementaryTypeName","src":"43637:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43597:57:14"},"returnParameters":{"id":22416,"nodeType":"ParameterList","parameters":[],"src":"43669:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22452,"nodeType":"FunctionDefinition","src":"43783:181:14","nodes":[],"body":{"id":22451,"nodeType":"Block","src":"43858:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c626f6f6c29","id":22443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43908:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039","typeString":"literal_string \"log(string,address,bool,bool)\""},"value":"log(string,address,bool,bool)"},{"id":22444,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22431,"src":"43941:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22445,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22433,"src":"43945:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22446,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22435,"src":"43949:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22447,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22437,"src":"43953:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039","typeString":"literal_string \"log(string,address,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22441,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43884:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43888:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43884:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43884:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22440,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"43868:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43868:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22450,"nodeType":"ExpressionStatement","src":"43868:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43792:3:14","parameters":{"id":22438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22431,"mutability":"mutable","name":"p0","nameLocation":"43810:2:14","nodeType":"VariableDeclaration","scope":22452,"src":"43796:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22430,"name":"string","nodeType":"ElementaryTypeName","src":"43796:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22433,"mutability":"mutable","name":"p1","nameLocation":"43822:2:14","nodeType":"VariableDeclaration","scope":22452,"src":"43814:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22432,"name":"address","nodeType":"ElementaryTypeName","src":"43814:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22435,"mutability":"mutable","name":"p2","nameLocation":"43831:2:14","nodeType":"VariableDeclaration","scope":22452,"src":"43826:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22434,"name":"bool","nodeType":"ElementaryTypeName","src":"43826:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22437,"mutability":"mutable","name":"p3","nameLocation":"43840:2:14","nodeType":"VariableDeclaration","scope":22452,"src":"43835:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22436,"name":"bool","nodeType":"ElementaryTypeName","src":"43835:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"43795:48:14"},"returnParameters":{"id":22439,"nodeType":"ParameterList","parameters":[],"src":"43858:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22475,"nodeType":"FunctionDefinition","src":"43970:187:14","nodes":[],"body":{"id":22474,"nodeType":"Block","src":"44048:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c6164647265737329","id":22466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44098:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76","typeString":"literal_string \"log(string,address,bool,address)\""},"value":"log(string,address,bool,address)"},{"id":22467,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22454,"src":"44134:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22468,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22456,"src":"44138:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22469,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22458,"src":"44142:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22470,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22460,"src":"44146:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76","typeString":"literal_string \"log(string,address,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22464,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44074:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22465,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44078:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44074:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44074:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22463,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"44058:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44058:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22473,"nodeType":"ExpressionStatement","src":"44058:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43979:3:14","parameters":{"id":22461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22454,"mutability":"mutable","name":"p0","nameLocation":"43997:2:14","nodeType":"VariableDeclaration","scope":22475,"src":"43983:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22453,"name":"string","nodeType":"ElementaryTypeName","src":"43983:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22456,"mutability":"mutable","name":"p1","nameLocation":"44009:2:14","nodeType":"VariableDeclaration","scope":22475,"src":"44001:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22455,"name":"address","nodeType":"ElementaryTypeName","src":"44001:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22458,"mutability":"mutable","name":"p2","nameLocation":"44018:2:14","nodeType":"VariableDeclaration","scope":22475,"src":"44013:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22457,"name":"bool","nodeType":"ElementaryTypeName","src":"44013:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22460,"mutability":"mutable","name":"p3","nameLocation":"44030:2:14","nodeType":"VariableDeclaration","scope":22475,"src":"44022:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22459,"name":"address","nodeType":"ElementaryTypeName","src":"44022:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"43982:51:14"},"returnParameters":{"id":22462,"nodeType":"ParameterList","parameters":[],"src":"44048:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22498,"nodeType":"FunctionDefinition","src":"44163:193:14","nodes":[],"body":{"id":22497,"nodeType":"Block","src":"44244:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c75696e7432353629","id":22489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44294:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8ef3f399de1ebecd7840dee5f4cdc1bad43021ab37fa3acdd3dfbd36f7092e7b","typeString":"literal_string \"log(string,address,address,uint256)\""},"value":"log(string,address,address,uint256)"},{"id":22490,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22477,"src":"44333:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22491,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22479,"src":"44337:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22492,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22481,"src":"44341:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22493,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22483,"src":"44345:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8ef3f399de1ebecd7840dee5f4cdc1bad43021ab37fa3acdd3dfbd36f7092e7b","typeString":"literal_string \"log(string,address,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22487,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44270:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22488,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44274:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44270:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44270:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22486,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"44254:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44254:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22496,"nodeType":"ExpressionStatement","src":"44254:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44172:3:14","parameters":{"id":22484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22477,"mutability":"mutable","name":"p0","nameLocation":"44190:2:14","nodeType":"VariableDeclaration","scope":22498,"src":"44176:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22476,"name":"string","nodeType":"ElementaryTypeName","src":"44176:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22479,"mutability":"mutable","name":"p1","nameLocation":"44202:2:14","nodeType":"VariableDeclaration","scope":22498,"src":"44194:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22478,"name":"address","nodeType":"ElementaryTypeName","src":"44194:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22481,"mutability":"mutable","name":"p2","nameLocation":"44214:2:14","nodeType":"VariableDeclaration","scope":22498,"src":"44206:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22480,"name":"address","nodeType":"ElementaryTypeName","src":"44206:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22483,"mutability":"mutable","name":"p3","nameLocation":"44226:2:14","nodeType":"VariableDeclaration","scope":22498,"src":"44218:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22482,"name":"uint256","nodeType":"ElementaryTypeName","src":"44218:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"44175:54:14"},"returnParameters":{"id":22485,"nodeType":"ParameterList","parameters":[],"src":"44244:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22521,"nodeType":"FunctionDefinition","src":"44362:198:14","nodes":[],"body":{"id":22520,"nodeType":"Block","src":"44449:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c737472696e6729","id":22512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44499:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76","typeString":"literal_string \"log(string,address,address,string)\""},"value":"log(string,address,address,string)"},{"id":22513,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22500,"src":"44537:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22514,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22502,"src":"44541:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22515,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22504,"src":"44545:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22516,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22506,"src":"44549:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76","typeString":"literal_string \"log(string,address,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22510,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44475:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22511,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44479:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44475:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44475:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22509,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"44459:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44459:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22519,"nodeType":"ExpressionStatement","src":"44459:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44371:3:14","parameters":{"id":22507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22500,"mutability":"mutable","name":"p0","nameLocation":"44389:2:14","nodeType":"VariableDeclaration","scope":22521,"src":"44375:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22499,"name":"string","nodeType":"ElementaryTypeName","src":"44375:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22502,"mutability":"mutable","name":"p1","nameLocation":"44401:2:14","nodeType":"VariableDeclaration","scope":22521,"src":"44393:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22501,"name":"address","nodeType":"ElementaryTypeName","src":"44393:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22504,"mutability":"mutable","name":"p2","nameLocation":"44413:2:14","nodeType":"VariableDeclaration","scope":22521,"src":"44405:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22503,"name":"address","nodeType":"ElementaryTypeName","src":"44405:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22506,"mutability":"mutable","name":"p3","nameLocation":"44431:2:14","nodeType":"VariableDeclaration","scope":22521,"src":"44417:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22505,"name":"string","nodeType":"ElementaryTypeName","src":"44417:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"44374:60:14"},"returnParameters":{"id":22508,"nodeType":"ParameterList","parameters":[],"src":"44449:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22544,"nodeType":"FunctionDefinition","src":"44566:187:14","nodes":[],"body":{"id":22543,"nodeType":"Block","src":"44644:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c626f6f6c29","id":22535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44694:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4","typeString":"literal_string \"log(string,address,address,bool)\""},"value":"log(string,address,address,bool)"},{"id":22536,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22523,"src":"44730:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22537,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22525,"src":"44734:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22538,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22527,"src":"44738:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22539,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22529,"src":"44742:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4","typeString":"literal_string \"log(string,address,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22533,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44670:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22534,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44674:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44670:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44670:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22532,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"44654:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44654:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22542,"nodeType":"ExpressionStatement","src":"44654:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44575:3:14","parameters":{"id":22530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22523,"mutability":"mutable","name":"p0","nameLocation":"44593:2:14","nodeType":"VariableDeclaration","scope":22544,"src":"44579:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22522,"name":"string","nodeType":"ElementaryTypeName","src":"44579:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22525,"mutability":"mutable","name":"p1","nameLocation":"44605:2:14","nodeType":"VariableDeclaration","scope":22544,"src":"44597:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22524,"name":"address","nodeType":"ElementaryTypeName","src":"44597:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22527,"mutability":"mutable","name":"p2","nameLocation":"44617:2:14","nodeType":"VariableDeclaration","scope":22544,"src":"44609:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22526,"name":"address","nodeType":"ElementaryTypeName","src":"44609:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22529,"mutability":"mutable","name":"p3","nameLocation":"44626:2:14","nodeType":"VariableDeclaration","scope":22544,"src":"44621:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22528,"name":"bool","nodeType":"ElementaryTypeName","src":"44621:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"44578:51:14"},"returnParameters":{"id":22531,"nodeType":"ParameterList","parameters":[],"src":"44644:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22567,"nodeType":"FunctionDefinition","src":"44759:193:14","nodes":[],"body":{"id":22566,"nodeType":"Block","src":"44840:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c6164647265737329","id":22558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44890:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15","typeString":"literal_string \"log(string,address,address,address)\""},"value":"log(string,address,address,address)"},{"id":22559,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22546,"src":"44929:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22560,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22548,"src":"44933:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22561,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22550,"src":"44937:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22562,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22552,"src":"44941:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15","typeString":"literal_string \"log(string,address,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22556,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44866:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44870:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44866:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44866:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22555,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"44850:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44850:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22565,"nodeType":"ExpressionStatement","src":"44850:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44768:3:14","parameters":{"id":22553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22546,"mutability":"mutable","name":"p0","nameLocation":"44786:2:14","nodeType":"VariableDeclaration","scope":22567,"src":"44772:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22545,"name":"string","nodeType":"ElementaryTypeName","src":"44772:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22548,"mutability":"mutable","name":"p1","nameLocation":"44798:2:14","nodeType":"VariableDeclaration","scope":22567,"src":"44790:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22547,"name":"address","nodeType":"ElementaryTypeName","src":"44790:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22550,"mutability":"mutable","name":"p2","nameLocation":"44810:2:14","nodeType":"VariableDeclaration","scope":22567,"src":"44802:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22549,"name":"address","nodeType":"ElementaryTypeName","src":"44802:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22552,"mutability":"mutable","name":"p3","nameLocation":"44822:2:14","nodeType":"VariableDeclaration","scope":22567,"src":"44814:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22551,"name":"address","nodeType":"ElementaryTypeName","src":"44814:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"44771:54:14"},"returnParameters":{"id":22554,"nodeType":"ParameterList","parameters":[],"src":"44840:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22590,"nodeType":"FunctionDefinition","src":"44958:182:14","nodes":[],"body":{"id":22589,"nodeType":"Block","src":"45030:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c75696e7432353629","id":22581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45080:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_374bb4b29e495d2b557643d341fe72136bf6e92f2ac9b1edd86dbbd72a19d62b","typeString":"literal_string \"log(bool,uint256,uint256,uint256)\""},"value":"log(bool,uint256,uint256,uint256)"},{"id":22582,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22569,"src":"45117:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22583,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22571,"src":"45121:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22584,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22573,"src":"45125:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22585,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22575,"src":"45129:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_374bb4b29e495d2b557643d341fe72136bf6e92f2ac9b1edd86dbbd72a19d62b","typeString":"literal_string \"log(bool,uint256,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22579,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45056:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22580,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45060:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45056:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45056:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22578,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"45040:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45040:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22588,"nodeType":"ExpressionStatement","src":"45040:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44967:3:14","parameters":{"id":22576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22569,"mutability":"mutable","name":"p0","nameLocation":"44976:2:14","nodeType":"VariableDeclaration","scope":22590,"src":"44971:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22568,"name":"bool","nodeType":"ElementaryTypeName","src":"44971:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22571,"mutability":"mutable","name":"p1","nameLocation":"44988:2:14","nodeType":"VariableDeclaration","scope":22590,"src":"44980:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22570,"name":"uint256","nodeType":"ElementaryTypeName","src":"44980:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22573,"mutability":"mutable","name":"p2","nameLocation":"45000:2:14","nodeType":"VariableDeclaration","scope":22590,"src":"44992:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22572,"name":"uint256","nodeType":"ElementaryTypeName","src":"44992:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22575,"mutability":"mutable","name":"p3","nameLocation":"45012:2:14","nodeType":"VariableDeclaration","scope":22590,"src":"45004:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22574,"name":"uint256","nodeType":"ElementaryTypeName","src":"45004:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"44970:45:14"},"returnParameters":{"id":22577,"nodeType":"ParameterList","parameters":[],"src":"45030:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22613,"nodeType":"FunctionDefinition","src":"45146:187:14","nodes":[],"body":{"id":22612,"nodeType":"Block","src":"45224:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c737472696e6729","id":22604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45274:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e69fb5dd49f06ae0054ca1d4af84221644c5b45a9306505e04580a4156255c3","typeString":"literal_string \"log(bool,uint256,uint256,string)\""},"value":"log(bool,uint256,uint256,string)"},{"id":22605,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22592,"src":"45310:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22606,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22594,"src":"45314:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22607,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22596,"src":"45318:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22608,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22598,"src":"45322:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e69fb5dd49f06ae0054ca1d4af84221644c5b45a9306505e04580a4156255c3","typeString":"literal_string \"log(bool,uint256,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22602,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45250:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45254:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45250:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45250:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22601,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"45234:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45234:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22611,"nodeType":"ExpressionStatement","src":"45234:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45155:3:14","parameters":{"id":22599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22592,"mutability":"mutable","name":"p0","nameLocation":"45164:2:14","nodeType":"VariableDeclaration","scope":22613,"src":"45159:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22591,"name":"bool","nodeType":"ElementaryTypeName","src":"45159:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22594,"mutability":"mutable","name":"p1","nameLocation":"45176:2:14","nodeType":"VariableDeclaration","scope":22613,"src":"45168:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22593,"name":"uint256","nodeType":"ElementaryTypeName","src":"45168:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22596,"mutability":"mutable","name":"p2","nameLocation":"45188:2:14","nodeType":"VariableDeclaration","scope":22613,"src":"45180:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22595,"name":"uint256","nodeType":"ElementaryTypeName","src":"45180:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22598,"mutability":"mutable","name":"p3","nameLocation":"45206:2:14","nodeType":"VariableDeclaration","scope":22613,"src":"45192:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22597,"name":"string","nodeType":"ElementaryTypeName","src":"45192:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"45158:51:14"},"returnParameters":{"id":22600,"nodeType":"ParameterList","parameters":[],"src":"45224:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22636,"nodeType":"FunctionDefinition","src":"45339:176:14","nodes":[],"body":{"id":22635,"nodeType":"Block","src":"45408:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c626f6f6c29","id":22627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45458:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_be9843530e69b1feba88a3a9701a6984aaa8a57e749a7f9d10c857993e79900d","typeString":"literal_string \"log(bool,uint256,uint256,bool)\""},"value":"log(bool,uint256,uint256,bool)"},{"id":22628,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22615,"src":"45492:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22629,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22617,"src":"45496:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22630,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22619,"src":"45500:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22631,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22621,"src":"45504:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be9843530e69b1feba88a3a9701a6984aaa8a57e749a7f9d10c857993e79900d","typeString":"literal_string \"log(bool,uint256,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22625,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45434:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45438:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45434:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45434:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22624,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"45418:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45418:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22634,"nodeType":"ExpressionStatement","src":"45418:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45348:3:14","parameters":{"id":22622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22615,"mutability":"mutable","name":"p0","nameLocation":"45357:2:14","nodeType":"VariableDeclaration","scope":22636,"src":"45352:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22614,"name":"bool","nodeType":"ElementaryTypeName","src":"45352:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22617,"mutability":"mutable","name":"p1","nameLocation":"45369:2:14","nodeType":"VariableDeclaration","scope":22636,"src":"45361:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22616,"name":"uint256","nodeType":"ElementaryTypeName","src":"45361:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22619,"mutability":"mutable","name":"p2","nameLocation":"45381:2:14","nodeType":"VariableDeclaration","scope":22636,"src":"45373:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22618,"name":"uint256","nodeType":"ElementaryTypeName","src":"45373:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22621,"mutability":"mutable","name":"p3","nameLocation":"45390:2:14","nodeType":"VariableDeclaration","scope":22636,"src":"45385:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22620,"name":"bool","nodeType":"ElementaryTypeName","src":"45385:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"45351:42:14"},"returnParameters":{"id":22623,"nodeType":"ParameterList","parameters":[],"src":"45408:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22659,"nodeType":"FunctionDefinition","src":"45521:182:14","nodes":[],"body":{"id":22658,"nodeType":"Block","src":"45593:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c6164647265737329","id":22650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45643:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_00dd87b926eb0a94d5705f2c40026359b9577dfd5ddb2d0d51c86b3f4acb5010","typeString":"literal_string \"log(bool,uint256,uint256,address)\""},"value":"log(bool,uint256,uint256,address)"},{"id":22651,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22638,"src":"45680:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22652,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22640,"src":"45684:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22653,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22642,"src":"45688:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22654,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22644,"src":"45692:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_00dd87b926eb0a94d5705f2c40026359b9577dfd5ddb2d0d51c86b3f4acb5010","typeString":"literal_string \"log(bool,uint256,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22648,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45619:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45623:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45619:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45619:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22647,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"45603:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45603:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22657,"nodeType":"ExpressionStatement","src":"45603:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45530:3:14","parameters":{"id":22645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22638,"mutability":"mutable","name":"p0","nameLocation":"45539:2:14","nodeType":"VariableDeclaration","scope":22659,"src":"45534:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22637,"name":"bool","nodeType":"ElementaryTypeName","src":"45534:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22640,"mutability":"mutable","name":"p1","nameLocation":"45551:2:14","nodeType":"VariableDeclaration","scope":22659,"src":"45543:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22639,"name":"uint256","nodeType":"ElementaryTypeName","src":"45543:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22642,"mutability":"mutable","name":"p2","nameLocation":"45563:2:14","nodeType":"VariableDeclaration","scope":22659,"src":"45555:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22641,"name":"uint256","nodeType":"ElementaryTypeName","src":"45555:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22644,"mutability":"mutable","name":"p3","nameLocation":"45575:2:14","nodeType":"VariableDeclaration","scope":22659,"src":"45567:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22643,"name":"address","nodeType":"ElementaryTypeName","src":"45567:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"45533:45:14"},"returnParameters":{"id":22646,"nodeType":"ParameterList","parameters":[],"src":"45593:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22682,"nodeType":"FunctionDefinition","src":"45709:187:14","nodes":[],"body":{"id":22681,"nodeType":"Block","src":"45787:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c75696e7432353629","id":22673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45837:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a1199e21848ce015eabd66ea7f6a3409c7fc6ef9bb322d84e4c06706c42747e","typeString":"literal_string \"log(bool,uint256,string,uint256)\""},"value":"log(bool,uint256,string,uint256)"},{"id":22674,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22661,"src":"45873:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22675,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22663,"src":"45877:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22676,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22665,"src":"45881:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22677,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22667,"src":"45885:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6a1199e21848ce015eabd66ea7f6a3409c7fc6ef9bb322d84e4c06706c42747e","typeString":"literal_string \"log(bool,uint256,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22671,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45813:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22672,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45817:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45813:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45813:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22670,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"45797:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45797:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22680,"nodeType":"ExpressionStatement","src":"45797:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45718:3:14","parameters":{"id":22668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22661,"mutability":"mutable","name":"p0","nameLocation":"45727:2:14","nodeType":"VariableDeclaration","scope":22682,"src":"45722:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22660,"name":"bool","nodeType":"ElementaryTypeName","src":"45722:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22663,"mutability":"mutable","name":"p1","nameLocation":"45739:2:14","nodeType":"VariableDeclaration","scope":22682,"src":"45731:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22662,"name":"uint256","nodeType":"ElementaryTypeName","src":"45731:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22665,"mutability":"mutable","name":"p2","nameLocation":"45757:2:14","nodeType":"VariableDeclaration","scope":22682,"src":"45743:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22664,"name":"string","nodeType":"ElementaryTypeName","src":"45743:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22667,"mutability":"mutable","name":"p3","nameLocation":"45769:2:14","nodeType":"VariableDeclaration","scope":22682,"src":"45761:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22666,"name":"uint256","nodeType":"ElementaryTypeName","src":"45761:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"45721:51:14"},"returnParameters":{"id":22669,"nodeType":"ParameterList","parameters":[],"src":"45787:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22705,"nodeType":"FunctionDefinition","src":"45902:192:14","nodes":[],"body":{"id":22704,"nodeType":"Block","src":"45986:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c737472696e6729","id":22696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46036:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5bc2249bce1f463dc4a6cae73d4e7be2aab36b6885cd1506575f16575a67f07","typeString":"literal_string \"log(bool,uint256,string,string)\""},"value":"log(bool,uint256,string,string)"},{"id":22697,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22684,"src":"46071:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22698,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22686,"src":"46075:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22699,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22688,"src":"46079:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22700,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22690,"src":"46083:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f5bc2249bce1f463dc4a6cae73d4e7be2aab36b6885cd1506575f16575a67f07","typeString":"literal_string \"log(bool,uint256,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22694,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46012:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46016:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46012:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46012:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22693,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"45996:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45996:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22703,"nodeType":"ExpressionStatement","src":"45996:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45911:3:14","parameters":{"id":22691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22684,"mutability":"mutable","name":"p0","nameLocation":"45920:2:14","nodeType":"VariableDeclaration","scope":22705,"src":"45915:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22683,"name":"bool","nodeType":"ElementaryTypeName","src":"45915:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22686,"mutability":"mutable","name":"p1","nameLocation":"45932:2:14","nodeType":"VariableDeclaration","scope":22705,"src":"45924:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22685,"name":"uint256","nodeType":"ElementaryTypeName","src":"45924:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22688,"mutability":"mutable","name":"p2","nameLocation":"45950:2:14","nodeType":"VariableDeclaration","scope":22705,"src":"45936:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22687,"name":"string","nodeType":"ElementaryTypeName","src":"45936:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22690,"mutability":"mutable","name":"p3","nameLocation":"45968:2:14","nodeType":"VariableDeclaration","scope":22705,"src":"45954:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22689,"name":"string","nodeType":"ElementaryTypeName","src":"45954:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"45914:57:14"},"returnParameters":{"id":22692,"nodeType":"ParameterList","parameters":[],"src":"45986:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22728,"nodeType":"FunctionDefinition","src":"46100:181:14","nodes":[],"body":{"id":22727,"nodeType":"Block","src":"46175:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c626f6f6c29","id":22719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46225:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e5e70b2b79ba63a1232a1075e7d527614bad7291574e41ebeb8ef428426395c2","typeString":"literal_string \"log(bool,uint256,string,bool)\""},"value":"log(bool,uint256,string,bool)"},{"id":22720,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22707,"src":"46258:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22721,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22709,"src":"46262:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22722,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22711,"src":"46266:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22723,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22713,"src":"46270:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e5e70b2b79ba63a1232a1075e7d527614bad7291574e41ebeb8ef428426395c2","typeString":"literal_string \"log(bool,uint256,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22717,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46201:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46205:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46201:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46201:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22716,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"46185:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46185:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22726,"nodeType":"ExpressionStatement","src":"46185:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46109:3:14","parameters":{"id":22714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22707,"mutability":"mutable","name":"p0","nameLocation":"46118:2:14","nodeType":"VariableDeclaration","scope":22728,"src":"46113:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22706,"name":"bool","nodeType":"ElementaryTypeName","src":"46113:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22709,"mutability":"mutable","name":"p1","nameLocation":"46130:2:14","nodeType":"VariableDeclaration","scope":22728,"src":"46122:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22708,"name":"uint256","nodeType":"ElementaryTypeName","src":"46122:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22711,"mutability":"mutable","name":"p2","nameLocation":"46148:2:14","nodeType":"VariableDeclaration","scope":22728,"src":"46134:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22710,"name":"string","nodeType":"ElementaryTypeName","src":"46134:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22713,"mutability":"mutable","name":"p3","nameLocation":"46157:2:14","nodeType":"VariableDeclaration","scope":22728,"src":"46152:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22712,"name":"bool","nodeType":"ElementaryTypeName","src":"46152:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46112:48:14"},"returnParameters":{"id":22715,"nodeType":"ParameterList","parameters":[],"src":"46175:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22751,"nodeType":"FunctionDefinition","src":"46287:187:14","nodes":[],"body":{"id":22750,"nodeType":"Block","src":"46365:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c6164647265737329","id":22742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46415:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_fedd1fffaad08b0e5474b192f50d84da9ca48f54859d4d4f42d00bf3f4781fab","typeString":"literal_string \"log(bool,uint256,string,address)\""},"value":"log(bool,uint256,string,address)"},{"id":22743,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22730,"src":"46451:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22744,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22732,"src":"46455:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22745,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22734,"src":"46459:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22746,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22736,"src":"46463:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fedd1fffaad08b0e5474b192f50d84da9ca48f54859d4d4f42d00bf3f4781fab","typeString":"literal_string \"log(bool,uint256,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22740,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46391:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46395:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46391:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46391:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22739,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"46375:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46375:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22749,"nodeType":"ExpressionStatement","src":"46375:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46296:3:14","parameters":{"id":22737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22730,"mutability":"mutable","name":"p0","nameLocation":"46305:2:14","nodeType":"VariableDeclaration","scope":22751,"src":"46300:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22729,"name":"bool","nodeType":"ElementaryTypeName","src":"46300:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22732,"mutability":"mutable","name":"p1","nameLocation":"46317:2:14","nodeType":"VariableDeclaration","scope":22751,"src":"46309:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22731,"name":"uint256","nodeType":"ElementaryTypeName","src":"46309:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22734,"mutability":"mutable","name":"p2","nameLocation":"46335:2:14","nodeType":"VariableDeclaration","scope":22751,"src":"46321:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22733,"name":"string","nodeType":"ElementaryTypeName","src":"46321:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22736,"mutability":"mutable","name":"p3","nameLocation":"46347:2:14","nodeType":"VariableDeclaration","scope":22751,"src":"46339:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22735,"name":"address","nodeType":"ElementaryTypeName","src":"46339:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"46299:51:14"},"returnParameters":{"id":22738,"nodeType":"ParameterList","parameters":[],"src":"46365:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22774,"nodeType":"FunctionDefinition","src":"46480:176:14","nodes":[],"body":{"id":22773,"nodeType":"Block","src":"46549:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c75696e7432353629","id":22765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46599:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7f9bbca288abffbb423da5759392c2bb0e6c7c60dc55ee1c76da7b38adac1443","typeString":"literal_string \"log(bool,uint256,bool,uint256)\""},"value":"log(bool,uint256,bool,uint256)"},{"id":22766,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22753,"src":"46633:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22767,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22755,"src":"46637:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22768,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22757,"src":"46641:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22769,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22759,"src":"46645:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7f9bbca288abffbb423da5759392c2bb0e6c7c60dc55ee1c76da7b38adac1443","typeString":"literal_string \"log(bool,uint256,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22763,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46575:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46579:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46575:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46575:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22762,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"46559:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46559:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22772,"nodeType":"ExpressionStatement","src":"46559:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46489:3:14","parameters":{"id":22760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22753,"mutability":"mutable","name":"p0","nameLocation":"46498:2:14","nodeType":"VariableDeclaration","scope":22774,"src":"46493:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22752,"name":"bool","nodeType":"ElementaryTypeName","src":"46493:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22755,"mutability":"mutable","name":"p1","nameLocation":"46510:2:14","nodeType":"VariableDeclaration","scope":22774,"src":"46502:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22754,"name":"uint256","nodeType":"ElementaryTypeName","src":"46502:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22757,"mutability":"mutable","name":"p2","nameLocation":"46519:2:14","nodeType":"VariableDeclaration","scope":22774,"src":"46514:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22756,"name":"bool","nodeType":"ElementaryTypeName","src":"46514:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22759,"mutability":"mutable","name":"p3","nameLocation":"46531:2:14","nodeType":"VariableDeclaration","scope":22774,"src":"46523:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22758,"name":"uint256","nodeType":"ElementaryTypeName","src":"46523:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46492:42:14"},"returnParameters":{"id":22761,"nodeType":"ParameterList","parameters":[],"src":"46549:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22797,"nodeType":"FunctionDefinition","src":"46662:181:14","nodes":[],"body":{"id":22796,"nodeType":"Block","src":"46737:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c737472696e6729","id":22788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46787:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9143dbb14a0962a6e3d7ec52e236cb9bf165b86383a96499ea4cf52b827d7ce0","typeString":"literal_string \"log(bool,uint256,bool,string)\""},"value":"log(bool,uint256,bool,string)"},{"id":22789,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22776,"src":"46820:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22790,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22778,"src":"46824:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22791,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22780,"src":"46828:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22792,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22782,"src":"46832:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9143dbb14a0962a6e3d7ec52e236cb9bf165b86383a96499ea4cf52b827d7ce0","typeString":"literal_string \"log(bool,uint256,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22786,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46763:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46767:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46763:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46763:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22785,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"46747:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46747:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22795,"nodeType":"ExpressionStatement","src":"46747:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46671:3:14","parameters":{"id":22783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22776,"mutability":"mutable","name":"p0","nameLocation":"46680:2:14","nodeType":"VariableDeclaration","scope":22797,"src":"46675:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22775,"name":"bool","nodeType":"ElementaryTypeName","src":"46675:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22778,"mutability":"mutable","name":"p1","nameLocation":"46692:2:14","nodeType":"VariableDeclaration","scope":22797,"src":"46684:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22777,"name":"uint256","nodeType":"ElementaryTypeName","src":"46684:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22780,"mutability":"mutable","name":"p2","nameLocation":"46701:2:14","nodeType":"VariableDeclaration","scope":22797,"src":"46696:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22779,"name":"bool","nodeType":"ElementaryTypeName","src":"46696:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22782,"mutability":"mutable","name":"p3","nameLocation":"46719:2:14","nodeType":"VariableDeclaration","scope":22797,"src":"46705:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22781,"name":"string","nodeType":"ElementaryTypeName","src":"46705:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46674:48:14"},"returnParameters":{"id":22784,"nodeType":"ParameterList","parameters":[],"src":"46737:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22820,"nodeType":"FunctionDefinition","src":"46849:170:14","nodes":[],"body":{"id":22819,"nodeType":"Block","src":"46915:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c626f6f6c29","id":22811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46965:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ceb5f4d77121f3d3cfafeaa403e6fff70e4470d0bfb40c1d850f89e3d65029f2","typeString":"literal_string \"log(bool,uint256,bool,bool)\""},"value":"log(bool,uint256,bool,bool)"},{"id":22812,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22799,"src":"46996:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22813,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22801,"src":"47000:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22814,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22803,"src":"47004:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22815,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22805,"src":"47008:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ceb5f4d77121f3d3cfafeaa403e6fff70e4470d0bfb40c1d850f89e3d65029f2","typeString":"literal_string \"log(bool,uint256,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22809,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46941:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46945:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46941:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46941:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22808,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"46925:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46925:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22818,"nodeType":"ExpressionStatement","src":"46925:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46858:3:14","parameters":{"id":22806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22799,"mutability":"mutable","name":"p0","nameLocation":"46867:2:14","nodeType":"VariableDeclaration","scope":22820,"src":"46862:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22798,"name":"bool","nodeType":"ElementaryTypeName","src":"46862:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22801,"mutability":"mutable","name":"p1","nameLocation":"46879:2:14","nodeType":"VariableDeclaration","scope":22820,"src":"46871:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22800,"name":"uint256","nodeType":"ElementaryTypeName","src":"46871:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22803,"mutability":"mutable","name":"p2","nameLocation":"46888:2:14","nodeType":"VariableDeclaration","scope":22820,"src":"46883:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22802,"name":"bool","nodeType":"ElementaryTypeName","src":"46883:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22805,"mutability":"mutable","name":"p3","nameLocation":"46897:2:14","nodeType":"VariableDeclaration","scope":22820,"src":"46892:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22804,"name":"bool","nodeType":"ElementaryTypeName","src":"46892:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46861:39:14"},"returnParameters":{"id":22807,"nodeType":"ParameterList","parameters":[],"src":"46915:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22843,"nodeType":"FunctionDefinition","src":"47025:176:14","nodes":[],"body":{"id":22842,"nodeType":"Block","src":"47094:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c6164647265737329","id":22834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47144:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9acd3616ce3d15d7b870c591206f600266707f40592e6070353f762f54c75a2e","typeString":"literal_string \"log(bool,uint256,bool,address)\""},"value":"log(bool,uint256,bool,address)"},{"id":22835,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22822,"src":"47178:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22836,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22824,"src":"47182:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22837,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22826,"src":"47186:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22838,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22828,"src":"47190:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9acd3616ce3d15d7b870c591206f600266707f40592e6070353f762f54c75a2e","typeString":"literal_string \"log(bool,uint256,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22832,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47120:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47124:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47120:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47120:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22831,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"47104:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47104:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22841,"nodeType":"ExpressionStatement","src":"47104:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47034:3:14","parameters":{"id":22829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22822,"mutability":"mutable","name":"p0","nameLocation":"47043:2:14","nodeType":"VariableDeclaration","scope":22843,"src":"47038:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22821,"name":"bool","nodeType":"ElementaryTypeName","src":"47038:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22824,"mutability":"mutable","name":"p1","nameLocation":"47055:2:14","nodeType":"VariableDeclaration","scope":22843,"src":"47047:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22823,"name":"uint256","nodeType":"ElementaryTypeName","src":"47047:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22826,"mutability":"mutable","name":"p2","nameLocation":"47064:2:14","nodeType":"VariableDeclaration","scope":22843,"src":"47059:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22825,"name":"bool","nodeType":"ElementaryTypeName","src":"47059:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22828,"mutability":"mutable","name":"p3","nameLocation":"47076:2:14","nodeType":"VariableDeclaration","scope":22843,"src":"47068:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22827,"name":"address","nodeType":"ElementaryTypeName","src":"47068:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"47037:42:14"},"returnParameters":{"id":22830,"nodeType":"ParameterList","parameters":[],"src":"47094:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22866,"nodeType":"FunctionDefinition","src":"47207:182:14","nodes":[],"body":{"id":22865,"nodeType":"Block","src":"47279:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c75696e7432353629","id":22857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47329:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1537dc87a2086882c18d77c4157142ca3b6771cb00e940824367191cd9b5e560","typeString":"literal_string \"log(bool,uint256,address,uint256)\""},"value":"log(bool,uint256,address,uint256)"},{"id":22858,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22845,"src":"47366:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22859,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22847,"src":"47370:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22860,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22849,"src":"47374:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22861,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22851,"src":"47378:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1537dc87a2086882c18d77c4157142ca3b6771cb00e940824367191cd9b5e560","typeString":"literal_string \"log(bool,uint256,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22855,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47305:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47309:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47305:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47305:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22854,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"47289:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47289:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22864,"nodeType":"ExpressionStatement","src":"47289:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47216:3:14","parameters":{"id":22852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22845,"mutability":"mutable","name":"p0","nameLocation":"47225:2:14","nodeType":"VariableDeclaration","scope":22866,"src":"47220:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22844,"name":"bool","nodeType":"ElementaryTypeName","src":"47220:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22847,"mutability":"mutable","name":"p1","nameLocation":"47237:2:14","nodeType":"VariableDeclaration","scope":22866,"src":"47229:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22846,"name":"uint256","nodeType":"ElementaryTypeName","src":"47229:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22849,"mutability":"mutable","name":"p2","nameLocation":"47249:2:14","nodeType":"VariableDeclaration","scope":22866,"src":"47241:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22848,"name":"address","nodeType":"ElementaryTypeName","src":"47241:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22851,"mutability":"mutable","name":"p3","nameLocation":"47261:2:14","nodeType":"VariableDeclaration","scope":22866,"src":"47253:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22850,"name":"uint256","nodeType":"ElementaryTypeName","src":"47253:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"47219:45:14"},"returnParameters":{"id":22853,"nodeType":"ParameterList","parameters":[],"src":"47279:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22889,"nodeType":"FunctionDefinition","src":"47395:187:14","nodes":[],"body":{"id":22888,"nodeType":"Block","src":"47473:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c737472696e6729","id":22880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47523:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1bb3b09a4221f0a7df6a4e6e8ee3a14c54c5ebf8032d4ada871c774122536c94","typeString":"literal_string \"log(bool,uint256,address,string)\""},"value":"log(bool,uint256,address,string)"},{"id":22881,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22868,"src":"47559:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22882,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22870,"src":"47563:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22883,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22872,"src":"47567:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22884,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22874,"src":"47571:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1bb3b09a4221f0a7df6a4e6e8ee3a14c54c5ebf8032d4ada871c774122536c94","typeString":"literal_string \"log(bool,uint256,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22878,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47499:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47503:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47499:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47499:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22877,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"47483:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47483:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22887,"nodeType":"ExpressionStatement","src":"47483:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47404:3:14","parameters":{"id":22875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22868,"mutability":"mutable","name":"p0","nameLocation":"47413:2:14","nodeType":"VariableDeclaration","scope":22889,"src":"47408:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22867,"name":"bool","nodeType":"ElementaryTypeName","src":"47408:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22870,"mutability":"mutable","name":"p1","nameLocation":"47425:2:14","nodeType":"VariableDeclaration","scope":22889,"src":"47417:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22869,"name":"uint256","nodeType":"ElementaryTypeName","src":"47417:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22872,"mutability":"mutable","name":"p2","nameLocation":"47437:2:14","nodeType":"VariableDeclaration","scope":22889,"src":"47429:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22871,"name":"address","nodeType":"ElementaryTypeName","src":"47429:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22874,"mutability":"mutable","name":"p3","nameLocation":"47455:2:14","nodeType":"VariableDeclaration","scope":22889,"src":"47441:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22873,"name":"string","nodeType":"ElementaryTypeName","src":"47441:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47407:51:14"},"returnParameters":{"id":22876,"nodeType":"ParameterList","parameters":[],"src":"47473:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22912,"nodeType":"FunctionDefinition","src":"47588:176:14","nodes":[],"body":{"id":22911,"nodeType":"Block","src":"47657:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c626f6f6c29","id":22903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47707:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4c314ff4d8914c4657179922b73426f4bcee4ae499bd03b5b3cf557ef247ea8","typeString":"literal_string \"log(bool,uint256,address,bool)\""},"value":"log(bool,uint256,address,bool)"},{"id":22904,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22891,"src":"47741:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22905,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22893,"src":"47745:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22906,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22895,"src":"47749:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22907,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22897,"src":"47753:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b4c314ff4d8914c4657179922b73426f4bcee4ae499bd03b5b3cf557ef247ea8","typeString":"literal_string \"log(bool,uint256,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22901,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47683:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47687:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47683:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47683:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22900,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"47667:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47667:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22910,"nodeType":"ExpressionStatement","src":"47667:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47597:3:14","parameters":{"id":22898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22891,"mutability":"mutable","name":"p0","nameLocation":"47606:2:14","nodeType":"VariableDeclaration","scope":22912,"src":"47601:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22890,"name":"bool","nodeType":"ElementaryTypeName","src":"47601:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22893,"mutability":"mutable","name":"p1","nameLocation":"47618:2:14","nodeType":"VariableDeclaration","scope":22912,"src":"47610:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22892,"name":"uint256","nodeType":"ElementaryTypeName","src":"47610:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22895,"mutability":"mutable","name":"p2","nameLocation":"47630:2:14","nodeType":"VariableDeclaration","scope":22912,"src":"47622:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22894,"name":"address","nodeType":"ElementaryTypeName","src":"47622:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22897,"mutability":"mutable","name":"p3","nameLocation":"47639:2:14","nodeType":"VariableDeclaration","scope":22912,"src":"47634:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22896,"name":"bool","nodeType":"ElementaryTypeName","src":"47634:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"47600:42:14"},"returnParameters":{"id":22899,"nodeType":"ParameterList","parameters":[],"src":"47657:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22935,"nodeType":"FunctionDefinition","src":"47770:182:14","nodes":[],"body":{"id":22934,"nodeType":"Block","src":"47842:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c6164647265737329","id":22926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47892:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_26f560a852938fadf6addef4dd03c86f93715a295417544d6a793cb20f13b8dd","typeString":"literal_string \"log(bool,uint256,address,address)\""},"value":"log(bool,uint256,address,address)"},{"id":22927,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22914,"src":"47929:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22928,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22916,"src":"47933:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22929,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22918,"src":"47937:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22930,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22920,"src":"47941:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_26f560a852938fadf6addef4dd03c86f93715a295417544d6a793cb20f13b8dd","typeString":"literal_string \"log(bool,uint256,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22924,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47868:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47872:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47868:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47868:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22923,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"47852:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47852:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22933,"nodeType":"ExpressionStatement","src":"47852:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47779:3:14","parameters":{"id":22921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22914,"mutability":"mutable","name":"p0","nameLocation":"47788:2:14","nodeType":"VariableDeclaration","scope":22935,"src":"47783:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22913,"name":"bool","nodeType":"ElementaryTypeName","src":"47783:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22916,"mutability":"mutable","name":"p1","nameLocation":"47800:2:14","nodeType":"VariableDeclaration","scope":22935,"src":"47792:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22915,"name":"uint256","nodeType":"ElementaryTypeName","src":"47792:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22918,"mutability":"mutable","name":"p2","nameLocation":"47812:2:14","nodeType":"VariableDeclaration","scope":22935,"src":"47804:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22917,"name":"address","nodeType":"ElementaryTypeName","src":"47804:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22920,"mutability":"mutable","name":"p3","nameLocation":"47824:2:14","nodeType":"VariableDeclaration","scope":22935,"src":"47816:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22919,"name":"address","nodeType":"ElementaryTypeName","src":"47816:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"47782:45:14"},"returnParameters":{"id":22922,"nodeType":"ParameterList","parameters":[],"src":"47842:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22958,"nodeType":"FunctionDefinition","src":"47958:187:14","nodes":[],"body":{"id":22957,"nodeType":"Block","src":"48036:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c75696e7432353629","id":22949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48086:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_28863fcbec29a80af15c2b8595f162a2324efa0e9f70b928971349e597c15cb0","typeString":"literal_string \"log(bool,string,uint256,uint256)\""},"value":"log(bool,string,uint256,uint256)"},{"id":22950,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22937,"src":"48122:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22951,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22939,"src":"48126:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22952,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22941,"src":"48130:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22953,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22943,"src":"48134:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_28863fcbec29a80af15c2b8595f162a2324efa0e9f70b928971349e597c15cb0","typeString":"literal_string \"log(bool,string,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22947,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48062:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22948,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48066:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48062:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48062:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22946,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"48046:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48046:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22956,"nodeType":"ExpressionStatement","src":"48046:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47967:3:14","parameters":{"id":22944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22937,"mutability":"mutable","name":"p0","nameLocation":"47976:2:14","nodeType":"VariableDeclaration","scope":22958,"src":"47971:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22936,"name":"bool","nodeType":"ElementaryTypeName","src":"47971:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22939,"mutability":"mutable","name":"p1","nameLocation":"47994:2:14","nodeType":"VariableDeclaration","scope":22958,"src":"47980:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22938,"name":"string","nodeType":"ElementaryTypeName","src":"47980:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22941,"mutability":"mutable","name":"p2","nameLocation":"48006:2:14","nodeType":"VariableDeclaration","scope":22958,"src":"47998:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22940,"name":"uint256","nodeType":"ElementaryTypeName","src":"47998:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22943,"mutability":"mutable","name":"p3","nameLocation":"48018:2:14","nodeType":"VariableDeclaration","scope":22958,"src":"48010:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22942,"name":"uint256","nodeType":"ElementaryTypeName","src":"48010:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"47970:51:14"},"returnParameters":{"id":22945,"nodeType":"ParameterList","parameters":[],"src":"48036:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22981,"nodeType":"FunctionDefinition","src":"48151:192:14","nodes":[],"body":{"id":22980,"nodeType":"Block","src":"48235:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c737472696e6729","id":22972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48285:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ad96de6602c0b08f6631d6647303bccf3e586fcfa2c15fa04c5d6cbf0ffc70d","typeString":"literal_string \"log(bool,string,uint256,string)\""},"value":"log(bool,string,uint256,string)"},{"id":22973,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22960,"src":"48320:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22974,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22962,"src":"48324:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22975,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22964,"src":"48328:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22976,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22966,"src":"48332:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1ad96de6602c0b08f6631d6647303bccf3e586fcfa2c15fa04c5d6cbf0ffc70d","typeString":"literal_string \"log(bool,string,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22970,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48261:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48265:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48261:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48261:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22969,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"48245:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48245:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22979,"nodeType":"ExpressionStatement","src":"48245:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48160:3:14","parameters":{"id":22967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22960,"mutability":"mutable","name":"p0","nameLocation":"48169:2:14","nodeType":"VariableDeclaration","scope":22981,"src":"48164:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22959,"name":"bool","nodeType":"ElementaryTypeName","src":"48164:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22962,"mutability":"mutable","name":"p1","nameLocation":"48187:2:14","nodeType":"VariableDeclaration","scope":22981,"src":"48173:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22961,"name":"string","nodeType":"ElementaryTypeName","src":"48173:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22964,"mutability":"mutable","name":"p2","nameLocation":"48199:2:14","nodeType":"VariableDeclaration","scope":22981,"src":"48191:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22963,"name":"uint256","nodeType":"ElementaryTypeName","src":"48191:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22966,"mutability":"mutable","name":"p3","nameLocation":"48217:2:14","nodeType":"VariableDeclaration","scope":22981,"src":"48203:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22965,"name":"string","nodeType":"ElementaryTypeName","src":"48203:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48163:57:14"},"returnParameters":{"id":22968,"nodeType":"ParameterList","parameters":[],"src":"48235:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23004,"nodeType":"FunctionDefinition","src":"48349:181:14","nodes":[],"body":{"id":23003,"nodeType":"Block","src":"48424:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c626f6f6c29","id":22995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48474:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b0e5d538cb3332d8fd45a0c2680232536414e292adbc2f70059f1d665e25411","typeString":"literal_string \"log(bool,string,uint256,bool)\""},"value":"log(bool,string,uint256,bool)"},{"id":22996,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22983,"src":"48507:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22997,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22985,"src":"48511:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22998,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22987,"src":"48515:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22999,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22989,"src":"48519:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6b0e5d538cb3332d8fd45a0c2680232536414e292adbc2f70059f1d665e25411","typeString":"literal_string \"log(bool,string,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22993,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48450:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48454:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48450:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48450:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22992,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"48434:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48434:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23002,"nodeType":"ExpressionStatement","src":"48434:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48358:3:14","parameters":{"id":22990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22983,"mutability":"mutable","name":"p0","nameLocation":"48367:2:14","nodeType":"VariableDeclaration","scope":23004,"src":"48362:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22982,"name":"bool","nodeType":"ElementaryTypeName","src":"48362:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22985,"mutability":"mutable","name":"p1","nameLocation":"48385:2:14","nodeType":"VariableDeclaration","scope":23004,"src":"48371:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22984,"name":"string","nodeType":"ElementaryTypeName","src":"48371:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22987,"mutability":"mutable","name":"p2","nameLocation":"48397:2:14","nodeType":"VariableDeclaration","scope":23004,"src":"48389:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22986,"name":"uint256","nodeType":"ElementaryTypeName","src":"48389:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22989,"mutability":"mutable","name":"p3","nameLocation":"48406:2:14","nodeType":"VariableDeclaration","scope":23004,"src":"48401:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22988,"name":"bool","nodeType":"ElementaryTypeName","src":"48401:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"48361:48:14"},"returnParameters":{"id":22991,"nodeType":"ParameterList","parameters":[],"src":"48424:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23027,"nodeType":"FunctionDefinition","src":"48536:187:14","nodes":[],"body":{"id":23026,"nodeType":"Block","src":"48614:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c6164647265737329","id":23018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48664:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1596a1ceb88c7fe162cbcf294bbc564db1eb943f277b50b442bf55dba1134056","typeString":"literal_string \"log(bool,string,uint256,address)\""},"value":"log(bool,string,uint256,address)"},{"id":23019,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23006,"src":"48700:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23020,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23008,"src":"48704:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23021,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23010,"src":"48708:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23022,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23012,"src":"48712:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1596a1ceb88c7fe162cbcf294bbc564db1eb943f277b50b442bf55dba1134056","typeString":"literal_string \"log(bool,string,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23016,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48640:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23017,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48644:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48640:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48640:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23015,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"48624:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48624:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23025,"nodeType":"ExpressionStatement","src":"48624:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48545:3:14","parameters":{"id":23013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23006,"mutability":"mutable","name":"p0","nameLocation":"48554:2:14","nodeType":"VariableDeclaration","scope":23027,"src":"48549:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23005,"name":"bool","nodeType":"ElementaryTypeName","src":"48549:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23008,"mutability":"mutable","name":"p1","nameLocation":"48572:2:14","nodeType":"VariableDeclaration","scope":23027,"src":"48558:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23007,"name":"string","nodeType":"ElementaryTypeName","src":"48558:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23010,"mutability":"mutable","name":"p2","nameLocation":"48584:2:14","nodeType":"VariableDeclaration","scope":23027,"src":"48576:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23009,"name":"uint256","nodeType":"ElementaryTypeName","src":"48576:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23012,"mutability":"mutable","name":"p3","nameLocation":"48596:2:14","nodeType":"VariableDeclaration","scope":23027,"src":"48588:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23011,"name":"address","nodeType":"ElementaryTypeName","src":"48588:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"48548:51:14"},"returnParameters":{"id":23014,"nodeType":"ParameterList","parameters":[],"src":"48614:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23050,"nodeType":"FunctionDefinition","src":"48729:192:14","nodes":[],"body":{"id":23049,"nodeType":"Block","src":"48813:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c75696e7432353629","id":23041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48863:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7be0c3eb1e87c47c60c12330b930fb496493960f97b03f8342bbe08fec9d20a2","typeString":"literal_string \"log(bool,string,string,uint256)\""},"value":"log(bool,string,string,uint256)"},{"id":23042,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23029,"src":"48898:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23043,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23031,"src":"48902:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23044,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23033,"src":"48906:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23045,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23035,"src":"48910:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7be0c3eb1e87c47c60c12330b930fb496493960f97b03f8342bbe08fec9d20a2","typeString":"literal_string \"log(bool,string,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23039,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48839:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48843:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48839:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48839:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23038,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"48823:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48823:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23048,"nodeType":"ExpressionStatement","src":"48823:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48738:3:14","parameters":{"id":23036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23029,"mutability":"mutable","name":"p0","nameLocation":"48747:2:14","nodeType":"VariableDeclaration","scope":23050,"src":"48742:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23028,"name":"bool","nodeType":"ElementaryTypeName","src":"48742:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23031,"mutability":"mutable","name":"p1","nameLocation":"48765:2:14","nodeType":"VariableDeclaration","scope":23050,"src":"48751:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23030,"name":"string","nodeType":"ElementaryTypeName","src":"48751:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23033,"mutability":"mutable","name":"p2","nameLocation":"48783:2:14","nodeType":"VariableDeclaration","scope":23050,"src":"48769:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23032,"name":"string","nodeType":"ElementaryTypeName","src":"48769:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23035,"mutability":"mutable","name":"p3","nameLocation":"48795:2:14","nodeType":"VariableDeclaration","scope":23050,"src":"48787:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23034,"name":"uint256","nodeType":"ElementaryTypeName","src":"48787:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"48741:57:14"},"returnParameters":{"id":23037,"nodeType":"ParameterList","parameters":[],"src":"48813:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23073,"nodeType":"FunctionDefinition","src":"48927:197:14","nodes":[],"body":{"id":23072,"nodeType":"Block","src":"49017:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c737472696e6729","id":23064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49067:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9","typeString":"literal_string \"log(bool,string,string,string)\""},"value":"log(bool,string,string,string)"},{"id":23065,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23052,"src":"49101:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23066,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23054,"src":"49105:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23067,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23056,"src":"49109:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23068,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23058,"src":"49113:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9","typeString":"literal_string \"log(bool,string,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":23062,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49043:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49047:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49043:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49043:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23061,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"49027:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49027:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23071,"nodeType":"ExpressionStatement","src":"49027:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48936:3:14","parameters":{"id":23059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23052,"mutability":"mutable","name":"p0","nameLocation":"48945:2:14","nodeType":"VariableDeclaration","scope":23073,"src":"48940:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23051,"name":"bool","nodeType":"ElementaryTypeName","src":"48940:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23054,"mutability":"mutable","name":"p1","nameLocation":"48963:2:14","nodeType":"VariableDeclaration","scope":23073,"src":"48949:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23053,"name":"string","nodeType":"ElementaryTypeName","src":"48949:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23056,"mutability":"mutable","name":"p2","nameLocation":"48981:2:14","nodeType":"VariableDeclaration","scope":23073,"src":"48967:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23055,"name":"string","nodeType":"ElementaryTypeName","src":"48967:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23058,"mutability":"mutable","name":"p3","nameLocation":"48999:2:14","nodeType":"VariableDeclaration","scope":23073,"src":"48985:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23057,"name":"string","nodeType":"ElementaryTypeName","src":"48985:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48939:63:14"},"returnParameters":{"id":23060,"nodeType":"ParameterList","parameters":[],"src":"49017:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23096,"nodeType":"FunctionDefinition","src":"49130:186:14","nodes":[],"body":{"id":23095,"nodeType":"Block","src":"49211:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c626f6f6c29","id":23087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49261:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1","typeString":"literal_string \"log(bool,string,string,bool)\""},"value":"log(bool,string,string,bool)"},{"id":23088,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23075,"src":"49293:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23089,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23077,"src":"49297:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23090,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23079,"src":"49301:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23091,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23081,"src":"49305:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1","typeString":"literal_string \"log(bool,string,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":23085,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49237:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23086,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49241:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49237:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49237:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23084,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"49221:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49221:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23094,"nodeType":"ExpressionStatement","src":"49221:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49139:3:14","parameters":{"id":23082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23075,"mutability":"mutable","name":"p0","nameLocation":"49148:2:14","nodeType":"VariableDeclaration","scope":23096,"src":"49143:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23074,"name":"bool","nodeType":"ElementaryTypeName","src":"49143:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23077,"mutability":"mutable","name":"p1","nameLocation":"49166:2:14","nodeType":"VariableDeclaration","scope":23096,"src":"49152:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23076,"name":"string","nodeType":"ElementaryTypeName","src":"49152:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23079,"mutability":"mutable","name":"p2","nameLocation":"49184:2:14","nodeType":"VariableDeclaration","scope":23096,"src":"49170:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23078,"name":"string","nodeType":"ElementaryTypeName","src":"49170:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23081,"mutability":"mutable","name":"p3","nameLocation":"49193:2:14","nodeType":"VariableDeclaration","scope":23096,"src":"49188:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23080,"name":"bool","nodeType":"ElementaryTypeName","src":"49188:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"49142:54:14"},"returnParameters":{"id":23083,"nodeType":"ParameterList","parameters":[],"src":"49211:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23119,"nodeType":"FunctionDefinition","src":"49322:192:14","nodes":[],"body":{"id":23118,"nodeType":"Block","src":"49406:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c6164647265737329","id":23110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49456:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5","typeString":"literal_string \"log(bool,string,string,address)\""},"value":"log(bool,string,string,address)"},{"id":23111,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23098,"src":"49491:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23112,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23100,"src":"49495:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23113,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23102,"src":"49499:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23114,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23104,"src":"49503:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5","typeString":"literal_string \"log(bool,string,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23108,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49432:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49436:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49432:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49432:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23107,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"49416:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49416:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23117,"nodeType":"ExpressionStatement","src":"49416:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49331:3:14","parameters":{"id":23105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23098,"mutability":"mutable","name":"p0","nameLocation":"49340:2:14","nodeType":"VariableDeclaration","scope":23119,"src":"49335:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23097,"name":"bool","nodeType":"ElementaryTypeName","src":"49335:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23100,"mutability":"mutable","name":"p1","nameLocation":"49358:2:14","nodeType":"VariableDeclaration","scope":23119,"src":"49344:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23099,"name":"string","nodeType":"ElementaryTypeName","src":"49344:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23102,"mutability":"mutable","name":"p2","nameLocation":"49376:2:14","nodeType":"VariableDeclaration","scope":23119,"src":"49362:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23101,"name":"string","nodeType":"ElementaryTypeName","src":"49362:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23104,"mutability":"mutable","name":"p3","nameLocation":"49388:2:14","nodeType":"VariableDeclaration","scope":23119,"src":"49380:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23103,"name":"address","nodeType":"ElementaryTypeName","src":"49380:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"49334:57:14"},"returnParameters":{"id":23106,"nodeType":"ParameterList","parameters":[],"src":"49406:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23142,"nodeType":"FunctionDefinition","src":"49520:181:14","nodes":[],"body":{"id":23141,"nodeType":"Block","src":"49595:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c75696e7432353629","id":23133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49645:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1606a393d6d8ee0e5b372b3b4baba691a3700cb155888ecb60500deb6038e937","typeString":"literal_string \"log(bool,string,bool,uint256)\""},"value":"log(bool,string,bool,uint256)"},{"id":23134,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23121,"src":"49678:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23135,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23123,"src":"49682:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23136,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23125,"src":"49686:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23137,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23127,"src":"49690:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1606a393d6d8ee0e5b372b3b4baba691a3700cb155888ecb60500deb6038e937","typeString":"literal_string \"log(bool,string,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23131,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49621:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49625:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49621:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49621:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23130,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"49605:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49605:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23140,"nodeType":"ExpressionStatement","src":"49605:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49529:3:14","parameters":{"id":23128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23121,"mutability":"mutable","name":"p0","nameLocation":"49538:2:14","nodeType":"VariableDeclaration","scope":23142,"src":"49533:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23120,"name":"bool","nodeType":"ElementaryTypeName","src":"49533:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23123,"mutability":"mutable","name":"p1","nameLocation":"49556:2:14","nodeType":"VariableDeclaration","scope":23142,"src":"49542:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23122,"name":"string","nodeType":"ElementaryTypeName","src":"49542:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23125,"mutability":"mutable","name":"p2","nameLocation":"49565:2:14","nodeType":"VariableDeclaration","scope":23142,"src":"49560:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23124,"name":"bool","nodeType":"ElementaryTypeName","src":"49560:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23127,"mutability":"mutable","name":"p3","nameLocation":"49577:2:14","nodeType":"VariableDeclaration","scope":23142,"src":"49569:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23126,"name":"uint256","nodeType":"ElementaryTypeName","src":"49569:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"49532:48:14"},"returnParameters":{"id":23129,"nodeType":"ParameterList","parameters":[],"src":"49595:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23165,"nodeType":"FunctionDefinition","src":"49707:186:14","nodes":[],"body":{"id":23164,"nodeType":"Block","src":"49788:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c737472696e6729","id":23156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49838:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468","typeString":"literal_string \"log(bool,string,bool,string)\""},"value":"log(bool,string,bool,string)"},{"id":23157,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23144,"src":"49870:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23158,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23146,"src":"49874:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23159,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23148,"src":"49878:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23160,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23150,"src":"49882:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468","typeString":"literal_string \"log(bool,string,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":23154,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49814:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23155,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49818:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49814:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49814:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23153,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"49798:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49798:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23163,"nodeType":"ExpressionStatement","src":"49798:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49716:3:14","parameters":{"id":23151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23144,"mutability":"mutable","name":"p0","nameLocation":"49725:2:14","nodeType":"VariableDeclaration","scope":23165,"src":"49720:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23143,"name":"bool","nodeType":"ElementaryTypeName","src":"49720:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23146,"mutability":"mutable","name":"p1","nameLocation":"49743:2:14","nodeType":"VariableDeclaration","scope":23165,"src":"49729:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23145,"name":"string","nodeType":"ElementaryTypeName","src":"49729:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23148,"mutability":"mutable","name":"p2","nameLocation":"49752:2:14","nodeType":"VariableDeclaration","scope":23165,"src":"49747:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23147,"name":"bool","nodeType":"ElementaryTypeName","src":"49747:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23150,"mutability":"mutable","name":"p3","nameLocation":"49770:2:14","nodeType":"VariableDeclaration","scope":23165,"src":"49756:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23149,"name":"string","nodeType":"ElementaryTypeName","src":"49756:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"49719:54:14"},"returnParameters":{"id":23152,"nodeType":"ParameterList","parameters":[],"src":"49788:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23188,"nodeType":"FunctionDefinition","src":"49899:175:14","nodes":[],"body":{"id":23187,"nodeType":"Block","src":"49971:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c626f6f6c29","id":23179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50021:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f","typeString":"literal_string \"log(bool,string,bool,bool)\""},"value":"log(bool,string,bool,bool)"},{"id":23180,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23167,"src":"50051:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23181,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23169,"src":"50055:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23182,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23171,"src":"50059:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23183,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23173,"src":"50063:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f","typeString":"literal_string \"log(bool,string,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":23177,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49997:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50001:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49997:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49997:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23176,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"49981:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49981:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23186,"nodeType":"ExpressionStatement","src":"49981:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49908:3:14","parameters":{"id":23174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23167,"mutability":"mutable","name":"p0","nameLocation":"49917:2:14","nodeType":"VariableDeclaration","scope":23188,"src":"49912:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23166,"name":"bool","nodeType":"ElementaryTypeName","src":"49912:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23169,"mutability":"mutable","name":"p1","nameLocation":"49935:2:14","nodeType":"VariableDeclaration","scope":23188,"src":"49921:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23168,"name":"string","nodeType":"ElementaryTypeName","src":"49921:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23171,"mutability":"mutable","name":"p2","nameLocation":"49944:2:14","nodeType":"VariableDeclaration","scope":23188,"src":"49939:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23170,"name":"bool","nodeType":"ElementaryTypeName","src":"49939:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23173,"mutability":"mutable","name":"p3","nameLocation":"49953:2:14","nodeType":"VariableDeclaration","scope":23188,"src":"49948:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23172,"name":"bool","nodeType":"ElementaryTypeName","src":"49948:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"49911:45:14"},"returnParameters":{"id":23175,"nodeType":"ParameterList","parameters":[],"src":"49971:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23211,"nodeType":"FunctionDefinition","src":"50080:181:14","nodes":[],"body":{"id":23210,"nodeType":"Block","src":"50155:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c6164647265737329","id":23202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50205:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5","typeString":"literal_string \"log(bool,string,bool,address)\""},"value":"log(bool,string,bool,address)"},{"id":23203,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23190,"src":"50238:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23204,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23192,"src":"50242:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23205,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23194,"src":"50246:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23206,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23196,"src":"50250:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5","typeString":"literal_string \"log(bool,string,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23200,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50181:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50185:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50181:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50181:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23199,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"50165:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50165:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23209,"nodeType":"ExpressionStatement","src":"50165:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50089:3:14","parameters":{"id":23197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23190,"mutability":"mutable","name":"p0","nameLocation":"50098:2:14","nodeType":"VariableDeclaration","scope":23211,"src":"50093:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23189,"name":"bool","nodeType":"ElementaryTypeName","src":"50093:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23192,"mutability":"mutable","name":"p1","nameLocation":"50116:2:14","nodeType":"VariableDeclaration","scope":23211,"src":"50102:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23191,"name":"string","nodeType":"ElementaryTypeName","src":"50102:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23194,"mutability":"mutable","name":"p2","nameLocation":"50125:2:14","nodeType":"VariableDeclaration","scope":23211,"src":"50120:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23193,"name":"bool","nodeType":"ElementaryTypeName","src":"50120:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23196,"mutability":"mutable","name":"p3","nameLocation":"50137:2:14","nodeType":"VariableDeclaration","scope":23211,"src":"50129:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23195,"name":"address","nodeType":"ElementaryTypeName","src":"50129:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"50092:48:14"},"returnParameters":{"id":23198,"nodeType":"ParameterList","parameters":[],"src":"50155:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23234,"nodeType":"FunctionDefinition","src":"50267:187:14","nodes":[],"body":{"id":23233,"nodeType":"Block","src":"50345:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c75696e7432353629","id":23225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50395:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5cada94c7dfdda57d4cfcf14da44c63431bfd533756a6e0d0d0a684af164218","typeString":"literal_string \"log(bool,string,address,uint256)\""},"value":"log(bool,string,address,uint256)"},{"id":23226,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23213,"src":"50431:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23227,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23215,"src":"50435:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23228,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23217,"src":"50439:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23229,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23219,"src":"50443:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5cada94c7dfdda57d4cfcf14da44c63431bfd533756a6e0d0d0a684af164218","typeString":"literal_string \"log(bool,string,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23223,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50371:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50375:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50371:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50371:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23222,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"50355:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50355:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23232,"nodeType":"ExpressionStatement","src":"50355:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50276:3:14","parameters":{"id":23220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23213,"mutability":"mutable","name":"p0","nameLocation":"50285:2:14","nodeType":"VariableDeclaration","scope":23234,"src":"50280:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23212,"name":"bool","nodeType":"ElementaryTypeName","src":"50280:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23215,"mutability":"mutable","name":"p1","nameLocation":"50303:2:14","nodeType":"VariableDeclaration","scope":23234,"src":"50289:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23214,"name":"string","nodeType":"ElementaryTypeName","src":"50289:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23217,"mutability":"mutable","name":"p2","nameLocation":"50315:2:14","nodeType":"VariableDeclaration","scope":23234,"src":"50307:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23216,"name":"address","nodeType":"ElementaryTypeName","src":"50307:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23219,"mutability":"mutable","name":"p3","nameLocation":"50327:2:14","nodeType":"VariableDeclaration","scope":23234,"src":"50319:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23218,"name":"uint256","nodeType":"ElementaryTypeName","src":"50319:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"50279:51:14"},"returnParameters":{"id":23221,"nodeType":"ParameterList","parameters":[],"src":"50345:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23257,"nodeType":"FunctionDefinition","src":"50460:192:14","nodes":[],"body":{"id":23256,"nodeType":"Block","src":"50544:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c737472696e6729","id":23248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50594:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7","typeString":"literal_string \"log(bool,string,address,string)\""},"value":"log(bool,string,address,string)"},{"id":23249,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23236,"src":"50629:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23250,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23238,"src":"50633:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23251,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23240,"src":"50637:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23252,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23242,"src":"50641:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7","typeString":"literal_string \"log(bool,string,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":23246,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50570:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50574:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50570:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50570:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23245,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"50554:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50554:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23255,"nodeType":"ExpressionStatement","src":"50554:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50469:3:14","parameters":{"id":23243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23236,"mutability":"mutable","name":"p0","nameLocation":"50478:2:14","nodeType":"VariableDeclaration","scope":23257,"src":"50473:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23235,"name":"bool","nodeType":"ElementaryTypeName","src":"50473:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23238,"mutability":"mutable","name":"p1","nameLocation":"50496:2:14","nodeType":"VariableDeclaration","scope":23257,"src":"50482:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23237,"name":"string","nodeType":"ElementaryTypeName","src":"50482:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23240,"mutability":"mutable","name":"p2","nameLocation":"50508:2:14","nodeType":"VariableDeclaration","scope":23257,"src":"50500:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23239,"name":"address","nodeType":"ElementaryTypeName","src":"50500:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23242,"mutability":"mutable","name":"p3","nameLocation":"50526:2:14","nodeType":"VariableDeclaration","scope":23257,"src":"50512:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23241,"name":"string","nodeType":"ElementaryTypeName","src":"50512:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50472:57:14"},"returnParameters":{"id":23244,"nodeType":"ParameterList","parameters":[],"src":"50544:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23280,"nodeType":"FunctionDefinition","src":"50658:181:14","nodes":[],"body":{"id":23279,"nodeType":"Block","src":"50733:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c626f6f6c29","id":23271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50783:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d","typeString":"literal_string \"log(bool,string,address,bool)\""},"value":"log(bool,string,address,bool)"},{"id":23272,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23259,"src":"50816:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23273,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23261,"src":"50820:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23274,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23263,"src":"50824:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23275,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23265,"src":"50828:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d","typeString":"literal_string \"log(bool,string,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":23269,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50759:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23270,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50763:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50759:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50759:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23268,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"50743:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50743:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23278,"nodeType":"ExpressionStatement","src":"50743:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50667:3:14","parameters":{"id":23266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23259,"mutability":"mutable","name":"p0","nameLocation":"50676:2:14","nodeType":"VariableDeclaration","scope":23280,"src":"50671:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23258,"name":"bool","nodeType":"ElementaryTypeName","src":"50671:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23261,"mutability":"mutable","name":"p1","nameLocation":"50694:2:14","nodeType":"VariableDeclaration","scope":23280,"src":"50680:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23260,"name":"string","nodeType":"ElementaryTypeName","src":"50680:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23263,"mutability":"mutable","name":"p2","nameLocation":"50706:2:14","nodeType":"VariableDeclaration","scope":23280,"src":"50698:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23262,"name":"address","nodeType":"ElementaryTypeName","src":"50698:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23265,"mutability":"mutable","name":"p3","nameLocation":"50715:2:14","nodeType":"VariableDeclaration","scope":23280,"src":"50710:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23264,"name":"bool","nodeType":"ElementaryTypeName","src":"50710:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"50670:48:14"},"returnParameters":{"id":23267,"nodeType":"ParameterList","parameters":[],"src":"50733:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23303,"nodeType":"FunctionDefinition","src":"50845:187:14","nodes":[],"body":{"id":23302,"nodeType":"Block","src":"50923:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c6164647265737329","id":23294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50973:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822","typeString":"literal_string \"log(bool,string,address,address)\""},"value":"log(bool,string,address,address)"},{"id":23295,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23282,"src":"51009:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23296,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23284,"src":"51013:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23297,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23286,"src":"51017:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23298,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23288,"src":"51021:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822","typeString":"literal_string \"log(bool,string,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23292,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50949:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23293,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50953:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50949:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50949:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23291,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"50933:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50933:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23301,"nodeType":"ExpressionStatement","src":"50933:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50854:3:14","parameters":{"id":23289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23282,"mutability":"mutable","name":"p0","nameLocation":"50863:2:14","nodeType":"VariableDeclaration","scope":23303,"src":"50858:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23281,"name":"bool","nodeType":"ElementaryTypeName","src":"50858:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23284,"mutability":"mutable","name":"p1","nameLocation":"50881:2:14","nodeType":"VariableDeclaration","scope":23303,"src":"50867:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23283,"name":"string","nodeType":"ElementaryTypeName","src":"50867:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23286,"mutability":"mutable","name":"p2","nameLocation":"50893:2:14","nodeType":"VariableDeclaration","scope":23303,"src":"50885:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23285,"name":"address","nodeType":"ElementaryTypeName","src":"50885:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23288,"mutability":"mutable","name":"p3","nameLocation":"50905:2:14","nodeType":"VariableDeclaration","scope":23303,"src":"50897:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23287,"name":"address","nodeType":"ElementaryTypeName","src":"50897:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"50857:51:14"},"returnParameters":{"id":23290,"nodeType":"ParameterList","parameters":[],"src":"50923:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23326,"nodeType":"FunctionDefinition","src":"51038:176:14","nodes":[],"body":{"id":23325,"nodeType":"Block","src":"51107:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c75696e7432353629","id":23317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51157:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_0bb00eab8772a517edb34ef48e9be8dbee2f7b7490bba02909d18953766a9d34","typeString":"literal_string \"log(bool,bool,uint256,uint256)\""},"value":"log(bool,bool,uint256,uint256)"},{"id":23318,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23305,"src":"51191:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23319,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23307,"src":"51195:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23320,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23309,"src":"51199:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23321,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23311,"src":"51203:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0bb00eab8772a517edb34ef48e9be8dbee2f7b7490bba02909d18953766a9d34","typeString":"literal_string \"log(bool,bool,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23315,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51133:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51137:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51133:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51133:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23314,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"51117:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51117:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23324,"nodeType":"ExpressionStatement","src":"51117:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51047:3:14","parameters":{"id":23312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23305,"mutability":"mutable","name":"p0","nameLocation":"51056:2:14","nodeType":"VariableDeclaration","scope":23326,"src":"51051:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23304,"name":"bool","nodeType":"ElementaryTypeName","src":"51051:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23307,"mutability":"mutable","name":"p1","nameLocation":"51065:2:14","nodeType":"VariableDeclaration","scope":23326,"src":"51060:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23306,"name":"bool","nodeType":"ElementaryTypeName","src":"51060:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23309,"mutability":"mutable","name":"p2","nameLocation":"51077:2:14","nodeType":"VariableDeclaration","scope":23326,"src":"51069:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23308,"name":"uint256","nodeType":"ElementaryTypeName","src":"51069:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23311,"mutability":"mutable","name":"p3","nameLocation":"51089:2:14","nodeType":"VariableDeclaration","scope":23326,"src":"51081:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23310,"name":"uint256","nodeType":"ElementaryTypeName","src":"51081:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"51050:42:14"},"returnParameters":{"id":23313,"nodeType":"ParameterList","parameters":[],"src":"51107:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23349,"nodeType":"FunctionDefinition","src":"51220:181:14","nodes":[],"body":{"id":23348,"nodeType":"Block","src":"51295:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c737472696e6729","id":23340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51345:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7dd4d0e0c518f4b352fd13daccf87a5d9bed9e01e109d2cd329f8180d1bf37cf","typeString":"literal_string \"log(bool,bool,uint256,string)\""},"value":"log(bool,bool,uint256,string)"},{"id":23341,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23328,"src":"51378:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23342,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23330,"src":"51382:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23343,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23332,"src":"51386:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23344,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23334,"src":"51390:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7dd4d0e0c518f4b352fd13daccf87a5d9bed9e01e109d2cd329f8180d1bf37cf","typeString":"literal_string \"log(bool,bool,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":23338,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51321:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51325:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51321:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51321:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23337,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"51305:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51305:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23347,"nodeType":"ExpressionStatement","src":"51305:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51229:3:14","parameters":{"id":23335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23328,"mutability":"mutable","name":"p0","nameLocation":"51238:2:14","nodeType":"VariableDeclaration","scope":23349,"src":"51233:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23327,"name":"bool","nodeType":"ElementaryTypeName","src":"51233:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23330,"mutability":"mutable","name":"p1","nameLocation":"51247:2:14","nodeType":"VariableDeclaration","scope":23349,"src":"51242:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23329,"name":"bool","nodeType":"ElementaryTypeName","src":"51242:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23332,"mutability":"mutable","name":"p2","nameLocation":"51259:2:14","nodeType":"VariableDeclaration","scope":23349,"src":"51251:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23331,"name":"uint256","nodeType":"ElementaryTypeName","src":"51251:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23334,"mutability":"mutable","name":"p3","nameLocation":"51277:2:14","nodeType":"VariableDeclaration","scope":23349,"src":"51263:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23333,"name":"string","nodeType":"ElementaryTypeName","src":"51263:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51232:48:14"},"returnParameters":{"id":23336,"nodeType":"ParameterList","parameters":[],"src":"51295:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23372,"nodeType":"FunctionDefinition","src":"51407:170:14","nodes":[],"body":{"id":23371,"nodeType":"Block","src":"51473:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c626f6f6c29","id":23363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51523:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_619e4d0eef4ca09035d413eaba6f544cfd6dc9e01c2aeecde070c53237f5a842","typeString":"literal_string \"log(bool,bool,uint256,bool)\""},"value":"log(bool,bool,uint256,bool)"},{"id":23364,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23351,"src":"51554:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23365,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23353,"src":"51558:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23366,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23355,"src":"51562:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23367,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23357,"src":"51566:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_619e4d0eef4ca09035d413eaba6f544cfd6dc9e01c2aeecde070c53237f5a842","typeString":"literal_string \"log(bool,bool,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":23361,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51499:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51503:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51499:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51499:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23360,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"51483:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51483:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23370,"nodeType":"ExpressionStatement","src":"51483:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51416:3:14","parameters":{"id":23358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23351,"mutability":"mutable","name":"p0","nameLocation":"51425:2:14","nodeType":"VariableDeclaration","scope":23372,"src":"51420:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23350,"name":"bool","nodeType":"ElementaryTypeName","src":"51420:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23353,"mutability":"mutable","name":"p1","nameLocation":"51434:2:14","nodeType":"VariableDeclaration","scope":23372,"src":"51429:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23352,"name":"bool","nodeType":"ElementaryTypeName","src":"51429:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23355,"mutability":"mutable","name":"p2","nameLocation":"51446:2:14","nodeType":"VariableDeclaration","scope":23372,"src":"51438:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23354,"name":"uint256","nodeType":"ElementaryTypeName","src":"51438:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23357,"mutability":"mutable","name":"p3","nameLocation":"51455:2:14","nodeType":"VariableDeclaration","scope":23372,"src":"51450:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23356,"name":"bool","nodeType":"ElementaryTypeName","src":"51450:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"51419:39:14"},"returnParameters":{"id":23359,"nodeType":"ParameterList","parameters":[],"src":"51473:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23395,"nodeType":"FunctionDefinition","src":"51583:176:14","nodes":[],"body":{"id":23394,"nodeType":"Block","src":"51652:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c6164647265737329","id":23386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51702:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_54a7a9a08e00a28d36d734cc45e318f9adc9ffbfd731cd45d0dc5a2abe2b9ac9","typeString":"literal_string \"log(bool,bool,uint256,address)\""},"value":"log(bool,bool,uint256,address)"},{"id":23387,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23374,"src":"51736:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23388,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23376,"src":"51740:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23389,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23378,"src":"51744:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23390,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23380,"src":"51748:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_54a7a9a08e00a28d36d734cc45e318f9adc9ffbfd731cd45d0dc5a2abe2b9ac9","typeString":"literal_string \"log(bool,bool,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23384,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51678:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51682:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51678:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51678:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23383,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"51662:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51662:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23393,"nodeType":"ExpressionStatement","src":"51662:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51592:3:14","parameters":{"id":23381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23374,"mutability":"mutable","name":"p0","nameLocation":"51601:2:14","nodeType":"VariableDeclaration","scope":23395,"src":"51596:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23373,"name":"bool","nodeType":"ElementaryTypeName","src":"51596:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23376,"mutability":"mutable","name":"p1","nameLocation":"51610:2:14","nodeType":"VariableDeclaration","scope":23395,"src":"51605:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23375,"name":"bool","nodeType":"ElementaryTypeName","src":"51605:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23378,"mutability":"mutable","name":"p2","nameLocation":"51622:2:14","nodeType":"VariableDeclaration","scope":23395,"src":"51614:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23377,"name":"uint256","nodeType":"ElementaryTypeName","src":"51614:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23380,"mutability":"mutable","name":"p3","nameLocation":"51634:2:14","nodeType":"VariableDeclaration","scope":23395,"src":"51626:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23379,"name":"address","nodeType":"ElementaryTypeName","src":"51626:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"51595:42:14"},"returnParameters":{"id":23382,"nodeType":"ParameterList","parameters":[],"src":"51652:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23418,"nodeType":"FunctionDefinition","src":"51765:181:14","nodes":[],"body":{"id":23417,"nodeType":"Block","src":"51840:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c75696e7432353629","id":23409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51890:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e3a9ca2f5717705d404f75ae4eff025addb4f91e02ce7d2b9a424fc7423a8246","typeString":"literal_string \"log(bool,bool,string,uint256)\""},"value":"log(bool,bool,string,uint256)"},{"id":23410,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23397,"src":"51923:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23411,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23399,"src":"51927:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23412,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23401,"src":"51931:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23413,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23403,"src":"51935:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e3a9ca2f5717705d404f75ae4eff025addb4f91e02ce7d2b9a424fc7423a8246","typeString":"literal_string \"log(bool,bool,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23407,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51866:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51870:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51866:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51866:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23406,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"51850:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51850:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23416,"nodeType":"ExpressionStatement","src":"51850:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51774:3:14","parameters":{"id":23404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23397,"mutability":"mutable","name":"p0","nameLocation":"51783:2:14","nodeType":"VariableDeclaration","scope":23418,"src":"51778:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23396,"name":"bool","nodeType":"ElementaryTypeName","src":"51778:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23399,"mutability":"mutable","name":"p1","nameLocation":"51792:2:14","nodeType":"VariableDeclaration","scope":23418,"src":"51787:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23398,"name":"bool","nodeType":"ElementaryTypeName","src":"51787:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23401,"mutability":"mutable","name":"p2","nameLocation":"51810:2:14","nodeType":"VariableDeclaration","scope":23418,"src":"51796:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23400,"name":"string","nodeType":"ElementaryTypeName","src":"51796:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23403,"mutability":"mutable","name":"p3","nameLocation":"51822:2:14","nodeType":"VariableDeclaration","scope":23418,"src":"51814:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23402,"name":"uint256","nodeType":"ElementaryTypeName","src":"51814:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"51777:48:14"},"returnParameters":{"id":23405,"nodeType":"ParameterList","parameters":[],"src":"51840:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23441,"nodeType":"FunctionDefinition","src":"51952:186:14","nodes":[],"body":{"id":23440,"nodeType":"Block","src":"52033:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c737472696e6729","id":23432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52083:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf","typeString":"literal_string \"log(bool,bool,string,string)\""},"value":"log(bool,bool,string,string)"},{"id":23433,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23420,"src":"52115:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23434,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23422,"src":"52119:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23435,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23424,"src":"52123:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23436,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23426,"src":"52127:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf","typeString":"literal_string \"log(bool,bool,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":23430,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52059:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52063:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52059:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52059:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23429,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"52043:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52043:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23439,"nodeType":"ExpressionStatement","src":"52043:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51961:3:14","parameters":{"id":23427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23420,"mutability":"mutable","name":"p0","nameLocation":"51970:2:14","nodeType":"VariableDeclaration","scope":23441,"src":"51965:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23419,"name":"bool","nodeType":"ElementaryTypeName","src":"51965:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23422,"mutability":"mutable","name":"p1","nameLocation":"51979:2:14","nodeType":"VariableDeclaration","scope":23441,"src":"51974:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23421,"name":"bool","nodeType":"ElementaryTypeName","src":"51974:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23424,"mutability":"mutable","name":"p2","nameLocation":"51997:2:14","nodeType":"VariableDeclaration","scope":23441,"src":"51983:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23423,"name":"string","nodeType":"ElementaryTypeName","src":"51983:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23426,"mutability":"mutable","name":"p3","nameLocation":"52015:2:14","nodeType":"VariableDeclaration","scope":23441,"src":"52001:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23425,"name":"string","nodeType":"ElementaryTypeName","src":"52001:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51964:54:14"},"returnParameters":{"id":23428,"nodeType":"ParameterList","parameters":[],"src":"52033:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23464,"nodeType":"FunctionDefinition","src":"52144:175:14","nodes":[],"body":{"id":23463,"nodeType":"Block","src":"52216:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c626f6f6c29","id":23455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52266:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02","typeString":"literal_string \"log(bool,bool,string,bool)\""},"value":"log(bool,bool,string,bool)"},{"id":23456,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23443,"src":"52296:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23457,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23445,"src":"52300:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23458,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23447,"src":"52304:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23459,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23449,"src":"52308:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02","typeString":"literal_string \"log(bool,bool,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":23453,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52242:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23454,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52246:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52242:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52242:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23452,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"52226:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52226:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23462,"nodeType":"ExpressionStatement","src":"52226:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52153:3:14","parameters":{"id":23450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23443,"mutability":"mutable","name":"p0","nameLocation":"52162:2:14","nodeType":"VariableDeclaration","scope":23464,"src":"52157:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23442,"name":"bool","nodeType":"ElementaryTypeName","src":"52157:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23445,"mutability":"mutable","name":"p1","nameLocation":"52171:2:14","nodeType":"VariableDeclaration","scope":23464,"src":"52166:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23444,"name":"bool","nodeType":"ElementaryTypeName","src":"52166:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23447,"mutability":"mutable","name":"p2","nameLocation":"52189:2:14","nodeType":"VariableDeclaration","scope":23464,"src":"52175:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23446,"name":"string","nodeType":"ElementaryTypeName","src":"52175:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23449,"mutability":"mutable","name":"p3","nameLocation":"52198:2:14","nodeType":"VariableDeclaration","scope":23464,"src":"52193:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23448,"name":"bool","nodeType":"ElementaryTypeName","src":"52193:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"52156:45:14"},"returnParameters":{"id":23451,"nodeType":"ParameterList","parameters":[],"src":"52216:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23487,"nodeType":"FunctionDefinition","src":"52325:181:14","nodes":[],"body":{"id":23486,"nodeType":"Block","src":"52400:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c6164647265737329","id":23478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52450:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202","typeString":"literal_string \"log(bool,bool,string,address)\""},"value":"log(bool,bool,string,address)"},{"id":23479,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23466,"src":"52483:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23480,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23468,"src":"52487:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23481,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23470,"src":"52491:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23482,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23472,"src":"52495:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202","typeString":"literal_string \"log(bool,bool,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23476,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52426:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52430:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52426:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52426:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23475,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"52410:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52410:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23485,"nodeType":"ExpressionStatement","src":"52410:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52334:3:14","parameters":{"id":23473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23466,"mutability":"mutable","name":"p0","nameLocation":"52343:2:14","nodeType":"VariableDeclaration","scope":23487,"src":"52338:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23465,"name":"bool","nodeType":"ElementaryTypeName","src":"52338:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23468,"mutability":"mutable","name":"p1","nameLocation":"52352:2:14","nodeType":"VariableDeclaration","scope":23487,"src":"52347:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23467,"name":"bool","nodeType":"ElementaryTypeName","src":"52347:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23470,"mutability":"mutable","name":"p2","nameLocation":"52370:2:14","nodeType":"VariableDeclaration","scope":23487,"src":"52356:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23469,"name":"string","nodeType":"ElementaryTypeName","src":"52356:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23472,"mutability":"mutable","name":"p3","nameLocation":"52382:2:14","nodeType":"VariableDeclaration","scope":23487,"src":"52374:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23471,"name":"address","nodeType":"ElementaryTypeName","src":"52374:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"52337:48:14"},"returnParameters":{"id":23474,"nodeType":"ParameterList","parameters":[],"src":"52400:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23510,"nodeType":"FunctionDefinition","src":"52512:170:14","nodes":[],"body":{"id":23509,"nodeType":"Block","src":"52578:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c75696e7432353629","id":23501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52628:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d7045c1b7eb7ef78b5ae54b2426a16952d89f674f6d689a4e37aa73bc076a7c","typeString":"literal_string \"log(bool,bool,bool,uint256)\""},"value":"log(bool,bool,bool,uint256)"},{"id":23502,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23489,"src":"52659:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23503,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23491,"src":"52663:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23504,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23493,"src":"52667:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23505,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23495,"src":"52671:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d7045c1b7eb7ef78b5ae54b2426a16952d89f674f6d689a4e37aa73bc076a7c","typeString":"literal_string \"log(bool,bool,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23499,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52604:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23500,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52608:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52604:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52604:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23498,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"52588:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52588:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23508,"nodeType":"ExpressionStatement","src":"52588:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52521:3:14","parameters":{"id":23496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23489,"mutability":"mutable","name":"p0","nameLocation":"52530:2:14","nodeType":"VariableDeclaration","scope":23510,"src":"52525:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23488,"name":"bool","nodeType":"ElementaryTypeName","src":"52525:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23491,"mutability":"mutable","name":"p1","nameLocation":"52539:2:14","nodeType":"VariableDeclaration","scope":23510,"src":"52534:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23490,"name":"bool","nodeType":"ElementaryTypeName","src":"52534:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23493,"mutability":"mutable","name":"p2","nameLocation":"52548:2:14","nodeType":"VariableDeclaration","scope":23510,"src":"52543:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23492,"name":"bool","nodeType":"ElementaryTypeName","src":"52543:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23495,"mutability":"mutable","name":"p3","nameLocation":"52560:2:14","nodeType":"VariableDeclaration","scope":23510,"src":"52552:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23494,"name":"uint256","nodeType":"ElementaryTypeName","src":"52552:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"52524:39:14"},"returnParameters":{"id":23497,"nodeType":"ParameterList","parameters":[],"src":"52578:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23533,"nodeType":"FunctionDefinition","src":"52688:175:14","nodes":[],"body":{"id":23532,"nodeType":"Block","src":"52760:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c737472696e6729","id":23524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52810:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15","typeString":"literal_string \"log(bool,bool,bool,string)\""},"value":"log(bool,bool,bool,string)"},{"id":23525,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23512,"src":"52840:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23526,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23514,"src":"52844:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23527,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23516,"src":"52848:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23528,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23518,"src":"52852:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15","typeString":"literal_string \"log(bool,bool,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":23522,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52786:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23523,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52790:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52786:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52786:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23521,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"52770:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52770:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23531,"nodeType":"ExpressionStatement","src":"52770:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52697:3:14","parameters":{"id":23519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23512,"mutability":"mutable","name":"p0","nameLocation":"52706:2:14","nodeType":"VariableDeclaration","scope":23533,"src":"52701:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23511,"name":"bool","nodeType":"ElementaryTypeName","src":"52701:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23514,"mutability":"mutable","name":"p1","nameLocation":"52715:2:14","nodeType":"VariableDeclaration","scope":23533,"src":"52710:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23513,"name":"bool","nodeType":"ElementaryTypeName","src":"52710:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23516,"mutability":"mutable","name":"p2","nameLocation":"52724:2:14","nodeType":"VariableDeclaration","scope":23533,"src":"52719:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23515,"name":"bool","nodeType":"ElementaryTypeName","src":"52719:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23518,"mutability":"mutable","name":"p3","nameLocation":"52742:2:14","nodeType":"VariableDeclaration","scope":23533,"src":"52728:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23517,"name":"string","nodeType":"ElementaryTypeName","src":"52728:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"52700:45:14"},"returnParameters":{"id":23520,"nodeType":"ParameterList","parameters":[],"src":"52760:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23556,"nodeType":"FunctionDefinition","src":"52869:164:14","nodes":[],"body":{"id":23555,"nodeType":"Block","src":"52932:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c626f6f6c29","id":23547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52982:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f","typeString":"literal_string \"log(bool,bool,bool,bool)\""},"value":"log(bool,bool,bool,bool)"},{"id":23548,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23535,"src":"53010:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23549,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23537,"src":"53014:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23550,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23539,"src":"53018:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23551,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23541,"src":"53022:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f","typeString":"literal_string \"log(bool,bool,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":23545,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52958:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23546,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52962:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52958:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52958:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23544,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"52942:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52942:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23554,"nodeType":"ExpressionStatement","src":"52942:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52878:3:14","parameters":{"id":23542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23535,"mutability":"mutable","name":"p0","nameLocation":"52887:2:14","nodeType":"VariableDeclaration","scope":23556,"src":"52882:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23534,"name":"bool","nodeType":"ElementaryTypeName","src":"52882:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23537,"mutability":"mutable","name":"p1","nameLocation":"52896:2:14","nodeType":"VariableDeclaration","scope":23556,"src":"52891:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23536,"name":"bool","nodeType":"ElementaryTypeName","src":"52891:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23539,"mutability":"mutable","name":"p2","nameLocation":"52905:2:14","nodeType":"VariableDeclaration","scope":23556,"src":"52900:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23538,"name":"bool","nodeType":"ElementaryTypeName","src":"52900:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23541,"mutability":"mutable","name":"p3","nameLocation":"52914:2:14","nodeType":"VariableDeclaration","scope":23556,"src":"52909:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23540,"name":"bool","nodeType":"ElementaryTypeName","src":"52909:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"52881:36:14"},"returnParameters":{"id":23543,"nodeType":"ParameterList","parameters":[],"src":"52932:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23579,"nodeType":"FunctionDefinition","src":"53039:170:14","nodes":[],"body":{"id":23578,"nodeType":"Block","src":"53105:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c6164647265737329","id":23570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53155:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4","typeString":"literal_string \"log(bool,bool,bool,address)\""},"value":"log(bool,bool,bool,address)"},{"id":23571,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23558,"src":"53186:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23572,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23560,"src":"53190:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23573,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23562,"src":"53194:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23574,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23564,"src":"53198:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4","typeString":"literal_string \"log(bool,bool,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23568,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53131:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53135:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53131:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53131:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23567,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"53115:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53115:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23577,"nodeType":"ExpressionStatement","src":"53115:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53048:3:14","parameters":{"id":23565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23558,"mutability":"mutable","name":"p0","nameLocation":"53057:2:14","nodeType":"VariableDeclaration","scope":23579,"src":"53052:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23557,"name":"bool","nodeType":"ElementaryTypeName","src":"53052:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23560,"mutability":"mutable","name":"p1","nameLocation":"53066:2:14","nodeType":"VariableDeclaration","scope":23579,"src":"53061:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23559,"name":"bool","nodeType":"ElementaryTypeName","src":"53061:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23562,"mutability":"mutable","name":"p2","nameLocation":"53075:2:14","nodeType":"VariableDeclaration","scope":23579,"src":"53070:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23561,"name":"bool","nodeType":"ElementaryTypeName","src":"53070:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23564,"mutability":"mutable","name":"p3","nameLocation":"53087:2:14","nodeType":"VariableDeclaration","scope":23579,"src":"53079:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23563,"name":"address","nodeType":"ElementaryTypeName","src":"53079:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"53051:39:14"},"returnParameters":{"id":23566,"nodeType":"ParameterList","parameters":[],"src":"53105:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23602,"nodeType":"FunctionDefinition","src":"53215:176:14","nodes":[],"body":{"id":23601,"nodeType":"Block","src":"53284:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c75696e7432353629","id":23593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53334:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c123d5798ed03bd59911522da9ad7b1fc4e62f5a5de1c95ef20dc3897657cf1","typeString":"literal_string \"log(bool,bool,address,uint256)\""},"value":"log(bool,bool,address,uint256)"},{"id":23594,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23581,"src":"53368:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23595,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23583,"src":"53372:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23596,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23585,"src":"53376:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23597,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23587,"src":"53380:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4c123d5798ed03bd59911522da9ad7b1fc4e62f5a5de1c95ef20dc3897657cf1","typeString":"literal_string \"log(bool,bool,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23591,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53310:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53314:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53310:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53310:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23590,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"53294:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53294:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23600,"nodeType":"ExpressionStatement","src":"53294:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53224:3:14","parameters":{"id":23588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23581,"mutability":"mutable","name":"p0","nameLocation":"53233:2:14","nodeType":"VariableDeclaration","scope":23602,"src":"53228:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23580,"name":"bool","nodeType":"ElementaryTypeName","src":"53228:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23583,"mutability":"mutable","name":"p1","nameLocation":"53242:2:14","nodeType":"VariableDeclaration","scope":23602,"src":"53237:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23582,"name":"bool","nodeType":"ElementaryTypeName","src":"53237:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23585,"mutability":"mutable","name":"p2","nameLocation":"53254:2:14","nodeType":"VariableDeclaration","scope":23602,"src":"53246:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23584,"name":"address","nodeType":"ElementaryTypeName","src":"53246:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23587,"mutability":"mutable","name":"p3","nameLocation":"53266:2:14","nodeType":"VariableDeclaration","scope":23602,"src":"53258:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23586,"name":"uint256","nodeType":"ElementaryTypeName","src":"53258:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"53227:42:14"},"returnParameters":{"id":23589,"nodeType":"ParameterList","parameters":[],"src":"53284:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23625,"nodeType":"FunctionDefinition","src":"53397:181:14","nodes":[],"body":{"id":23624,"nodeType":"Block","src":"53472:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c737472696e6729","id":23616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53522:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2","typeString":"literal_string \"log(bool,bool,address,string)\""},"value":"log(bool,bool,address,string)"},{"id":23617,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23604,"src":"53555:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23618,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23606,"src":"53559:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23619,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23608,"src":"53563:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23620,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23610,"src":"53567:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2","typeString":"literal_string \"log(bool,bool,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":23614,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53498:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53502:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53498:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53498:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23613,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"53482:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53482:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23623,"nodeType":"ExpressionStatement","src":"53482:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53406:3:14","parameters":{"id":23611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23604,"mutability":"mutable","name":"p0","nameLocation":"53415:2:14","nodeType":"VariableDeclaration","scope":23625,"src":"53410:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23603,"name":"bool","nodeType":"ElementaryTypeName","src":"53410:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23606,"mutability":"mutable","name":"p1","nameLocation":"53424:2:14","nodeType":"VariableDeclaration","scope":23625,"src":"53419:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23605,"name":"bool","nodeType":"ElementaryTypeName","src":"53419:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23608,"mutability":"mutable","name":"p2","nameLocation":"53436:2:14","nodeType":"VariableDeclaration","scope":23625,"src":"53428:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23607,"name":"address","nodeType":"ElementaryTypeName","src":"53428:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23610,"mutability":"mutable","name":"p3","nameLocation":"53454:2:14","nodeType":"VariableDeclaration","scope":23625,"src":"53440:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23609,"name":"string","nodeType":"ElementaryTypeName","src":"53440:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"53409:48:14"},"returnParameters":{"id":23612,"nodeType":"ParameterList","parameters":[],"src":"53472:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23648,"nodeType":"FunctionDefinition","src":"53584:170:14","nodes":[],"body":{"id":23647,"nodeType":"Block","src":"53650:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c626f6f6c29","id":23639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53700:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf","typeString":"literal_string \"log(bool,bool,address,bool)\""},"value":"log(bool,bool,address,bool)"},{"id":23640,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23627,"src":"53731:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23641,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23629,"src":"53735:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23642,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23631,"src":"53739:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23643,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23633,"src":"53743:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf","typeString":"literal_string \"log(bool,bool,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":23637,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53676:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53680:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53676:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53676:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23636,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"53660:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53660:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23646,"nodeType":"ExpressionStatement","src":"53660:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53593:3:14","parameters":{"id":23634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23627,"mutability":"mutable","name":"p0","nameLocation":"53602:2:14","nodeType":"VariableDeclaration","scope":23648,"src":"53597:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23626,"name":"bool","nodeType":"ElementaryTypeName","src":"53597:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23629,"mutability":"mutable","name":"p1","nameLocation":"53611:2:14","nodeType":"VariableDeclaration","scope":23648,"src":"53606:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23628,"name":"bool","nodeType":"ElementaryTypeName","src":"53606:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23631,"mutability":"mutable","name":"p2","nameLocation":"53623:2:14","nodeType":"VariableDeclaration","scope":23648,"src":"53615:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23630,"name":"address","nodeType":"ElementaryTypeName","src":"53615:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23633,"mutability":"mutable","name":"p3","nameLocation":"53632:2:14","nodeType":"VariableDeclaration","scope":23648,"src":"53627:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23632,"name":"bool","nodeType":"ElementaryTypeName","src":"53627:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"53596:39:14"},"returnParameters":{"id":23635,"nodeType":"ParameterList","parameters":[],"src":"53650:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23671,"nodeType":"FunctionDefinition","src":"53760:176:14","nodes":[],"body":{"id":23670,"nodeType":"Block","src":"53829:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c6164647265737329","id":23662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53879:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4","typeString":"literal_string \"log(bool,bool,address,address)\""},"value":"log(bool,bool,address,address)"},{"id":23663,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23650,"src":"53913:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23664,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23652,"src":"53917:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23665,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23654,"src":"53921:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23666,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23656,"src":"53925:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4","typeString":"literal_string \"log(bool,bool,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23660,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53855:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23661,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53859:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53855:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53855:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23659,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"53839:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53839:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23669,"nodeType":"ExpressionStatement","src":"53839:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53769:3:14","parameters":{"id":23657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23650,"mutability":"mutable","name":"p0","nameLocation":"53778:2:14","nodeType":"VariableDeclaration","scope":23671,"src":"53773:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23649,"name":"bool","nodeType":"ElementaryTypeName","src":"53773:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23652,"mutability":"mutable","name":"p1","nameLocation":"53787:2:14","nodeType":"VariableDeclaration","scope":23671,"src":"53782:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23651,"name":"bool","nodeType":"ElementaryTypeName","src":"53782:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23654,"mutability":"mutable","name":"p2","nameLocation":"53799:2:14","nodeType":"VariableDeclaration","scope":23671,"src":"53791:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23653,"name":"address","nodeType":"ElementaryTypeName","src":"53791:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23656,"mutability":"mutable","name":"p3","nameLocation":"53811:2:14","nodeType":"VariableDeclaration","scope":23671,"src":"53803:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23655,"name":"address","nodeType":"ElementaryTypeName","src":"53803:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"53772:42:14"},"returnParameters":{"id":23658,"nodeType":"ParameterList","parameters":[],"src":"53829:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23694,"nodeType":"FunctionDefinition","src":"53942:182:14","nodes":[],"body":{"id":23693,"nodeType":"Block","src":"54014:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c75696e7432353629","id":23685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54064:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7bf181a13b51d775e7d4339fb4fee9749d9226fa1720a2ae5e3183ab5674d16e","typeString":"literal_string \"log(bool,address,uint256,uint256)\""},"value":"log(bool,address,uint256,uint256)"},{"id":23686,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23673,"src":"54101:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23687,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23675,"src":"54105:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23688,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23677,"src":"54109:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23689,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23679,"src":"54113:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7bf181a13b51d775e7d4339fb4fee9749d9226fa1720a2ae5e3183ab5674d16e","typeString":"literal_string \"log(bool,address,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23683,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54040:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54044:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54040:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54040:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23682,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"54024:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54024:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23692,"nodeType":"ExpressionStatement","src":"54024:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53951:3:14","parameters":{"id":23680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23673,"mutability":"mutable","name":"p0","nameLocation":"53960:2:14","nodeType":"VariableDeclaration","scope":23694,"src":"53955:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23672,"name":"bool","nodeType":"ElementaryTypeName","src":"53955:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23675,"mutability":"mutable","name":"p1","nameLocation":"53972:2:14","nodeType":"VariableDeclaration","scope":23694,"src":"53964:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23674,"name":"address","nodeType":"ElementaryTypeName","src":"53964:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23677,"mutability":"mutable","name":"p2","nameLocation":"53984:2:14","nodeType":"VariableDeclaration","scope":23694,"src":"53976:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23676,"name":"uint256","nodeType":"ElementaryTypeName","src":"53976:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23679,"mutability":"mutable","name":"p3","nameLocation":"53996:2:14","nodeType":"VariableDeclaration","scope":23694,"src":"53988:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23678,"name":"uint256","nodeType":"ElementaryTypeName","src":"53988:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"53954:45:14"},"returnParameters":{"id":23681,"nodeType":"ParameterList","parameters":[],"src":"54014:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23717,"nodeType":"FunctionDefinition","src":"54130:187:14","nodes":[],"body":{"id":23716,"nodeType":"Block","src":"54208:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c737472696e6729","id":23708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54258:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_51f09ff8d49d8535177ce9f46f86e22d6e0ebf6aab24e3ad1fe351dec9cb8af7","typeString":"literal_string \"log(bool,address,uint256,string)\""},"value":"log(bool,address,uint256,string)"},{"id":23709,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23696,"src":"54294:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23710,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23698,"src":"54298:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23711,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23700,"src":"54302:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23712,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23702,"src":"54306:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_51f09ff8d49d8535177ce9f46f86e22d6e0ebf6aab24e3ad1fe351dec9cb8af7","typeString":"literal_string \"log(bool,address,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":23706,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54234:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23707,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54238:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54234:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54234:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23705,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"54218:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54218:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23715,"nodeType":"ExpressionStatement","src":"54218:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54139:3:14","parameters":{"id":23703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23696,"mutability":"mutable","name":"p0","nameLocation":"54148:2:14","nodeType":"VariableDeclaration","scope":23717,"src":"54143:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23695,"name":"bool","nodeType":"ElementaryTypeName","src":"54143:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23698,"mutability":"mutable","name":"p1","nameLocation":"54160:2:14","nodeType":"VariableDeclaration","scope":23717,"src":"54152:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23697,"name":"address","nodeType":"ElementaryTypeName","src":"54152:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23700,"mutability":"mutable","name":"p2","nameLocation":"54172:2:14","nodeType":"VariableDeclaration","scope":23717,"src":"54164:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23699,"name":"uint256","nodeType":"ElementaryTypeName","src":"54164:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23702,"mutability":"mutable","name":"p3","nameLocation":"54190:2:14","nodeType":"VariableDeclaration","scope":23717,"src":"54176:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23701,"name":"string","nodeType":"ElementaryTypeName","src":"54176:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"54142:51:14"},"returnParameters":{"id":23704,"nodeType":"ParameterList","parameters":[],"src":"54208:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23740,"nodeType":"FunctionDefinition","src":"54323:176:14","nodes":[],"body":{"id":23739,"nodeType":"Block","src":"54392:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c626f6f6c29","id":23731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54442:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6019f1c844577cb799272d8b580ae7d31e1d26be8513d99f3a91ca8ea67c958","typeString":"literal_string \"log(bool,address,uint256,bool)\""},"value":"log(bool,address,uint256,bool)"},{"id":23732,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23719,"src":"54476:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23733,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23721,"src":"54480:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23734,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23723,"src":"54484:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23735,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23725,"src":"54488:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6019f1c844577cb799272d8b580ae7d31e1d26be8513d99f3a91ca8ea67c958","typeString":"literal_string \"log(bool,address,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":23729,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54418:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54422:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54418:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54418:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23728,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"54402:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54402:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23738,"nodeType":"ExpressionStatement","src":"54402:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54332:3:14","parameters":{"id":23726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23719,"mutability":"mutable","name":"p0","nameLocation":"54341:2:14","nodeType":"VariableDeclaration","scope":23740,"src":"54336:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23718,"name":"bool","nodeType":"ElementaryTypeName","src":"54336:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23721,"mutability":"mutable","name":"p1","nameLocation":"54353:2:14","nodeType":"VariableDeclaration","scope":23740,"src":"54345:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23720,"name":"address","nodeType":"ElementaryTypeName","src":"54345:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23723,"mutability":"mutable","name":"p2","nameLocation":"54365:2:14","nodeType":"VariableDeclaration","scope":23740,"src":"54357:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23722,"name":"uint256","nodeType":"ElementaryTypeName","src":"54357:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23725,"mutability":"mutable","name":"p3","nameLocation":"54374:2:14","nodeType":"VariableDeclaration","scope":23740,"src":"54369:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23724,"name":"bool","nodeType":"ElementaryTypeName","src":"54369:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"54335:42:14"},"returnParameters":{"id":23727,"nodeType":"ParameterList","parameters":[],"src":"54392:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23763,"nodeType":"FunctionDefinition","src":"54505:182:14","nodes":[],"body":{"id":23762,"nodeType":"Block","src":"54577:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c6164647265737329","id":23754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54627:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_136b05dd56dbfa6e97805ce657954968bb4ea366eef252c9fa3aec31b1aa7ebd","typeString":"literal_string \"log(bool,address,uint256,address)\""},"value":"log(bool,address,uint256,address)"},{"id":23755,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23742,"src":"54664:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23756,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23744,"src":"54668:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23757,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23746,"src":"54672:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23758,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23748,"src":"54676:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_136b05dd56dbfa6e97805ce657954968bb4ea366eef252c9fa3aec31b1aa7ebd","typeString":"literal_string \"log(bool,address,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23752,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54603:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54607:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54603:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54603:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23751,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"54587:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54587:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23761,"nodeType":"ExpressionStatement","src":"54587:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54514:3:14","parameters":{"id":23749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23742,"mutability":"mutable","name":"p0","nameLocation":"54523:2:14","nodeType":"VariableDeclaration","scope":23763,"src":"54518:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23741,"name":"bool","nodeType":"ElementaryTypeName","src":"54518:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23744,"mutability":"mutable","name":"p1","nameLocation":"54535:2:14","nodeType":"VariableDeclaration","scope":23763,"src":"54527:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23743,"name":"address","nodeType":"ElementaryTypeName","src":"54527:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23746,"mutability":"mutable","name":"p2","nameLocation":"54547:2:14","nodeType":"VariableDeclaration","scope":23763,"src":"54539:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23745,"name":"uint256","nodeType":"ElementaryTypeName","src":"54539:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23748,"mutability":"mutable","name":"p3","nameLocation":"54559:2:14","nodeType":"VariableDeclaration","scope":23763,"src":"54551:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23747,"name":"address","nodeType":"ElementaryTypeName","src":"54551:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"54517:45:14"},"returnParameters":{"id":23750,"nodeType":"ParameterList","parameters":[],"src":"54577:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23786,"nodeType":"FunctionDefinition","src":"54693:187:14","nodes":[],"body":{"id":23785,"nodeType":"Block","src":"54771:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c75696e7432353629","id":23777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54821:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c21f64c781c24c69fbdf6daf185e821c3143831e9c7b3ede1933a6cffd68030d","typeString":"literal_string \"log(bool,address,string,uint256)\""},"value":"log(bool,address,string,uint256)"},{"id":23778,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23765,"src":"54857:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23779,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23767,"src":"54861:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23780,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23769,"src":"54865:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23781,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23771,"src":"54869:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c21f64c781c24c69fbdf6daf185e821c3143831e9c7b3ede1933a6cffd68030d","typeString":"literal_string \"log(bool,address,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23775,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54797:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54801:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54797:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54797:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23774,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"54781:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54781:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23784,"nodeType":"ExpressionStatement","src":"54781:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54702:3:14","parameters":{"id":23772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23765,"mutability":"mutable","name":"p0","nameLocation":"54711:2:14","nodeType":"VariableDeclaration","scope":23786,"src":"54706:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23764,"name":"bool","nodeType":"ElementaryTypeName","src":"54706:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23767,"mutability":"mutable","name":"p1","nameLocation":"54723:2:14","nodeType":"VariableDeclaration","scope":23786,"src":"54715:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23766,"name":"address","nodeType":"ElementaryTypeName","src":"54715:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23769,"mutability":"mutable","name":"p2","nameLocation":"54741:2:14","nodeType":"VariableDeclaration","scope":23786,"src":"54727:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23768,"name":"string","nodeType":"ElementaryTypeName","src":"54727:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23771,"mutability":"mutable","name":"p3","nameLocation":"54753:2:14","nodeType":"VariableDeclaration","scope":23786,"src":"54745:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23770,"name":"uint256","nodeType":"ElementaryTypeName","src":"54745:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"54705:51:14"},"returnParameters":{"id":23773,"nodeType":"ParameterList","parameters":[],"src":"54771:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23809,"nodeType":"FunctionDefinition","src":"54886:192:14","nodes":[],"body":{"id":23808,"nodeType":"Block","src":"54970:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c737472696e6729","id":23800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55020:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d","typeString":"literal_string \"log(bool,address,string,string)\""},"value":"log(bool,address,string,string)"},{"id":23801,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23788,"src":"55055:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23802,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23790,"src":"55059:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23803,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23792,"src":"55063:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23804,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23794,"src":"55067:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d","typeString":"literal_string \"log(bool,address,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":23798,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54996:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23799,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55000:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54996:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54996:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23797,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"54980:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54980:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23807,"nodeType":"ExpressionStatement","src":"54980:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54895:3:14","parameters":{"id":23795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23788,"mutability":"mutable","name":"p0","nameLocation":"54904:2:14","nodeType":"VariableDeclaration","scope":23809,"src":"54899:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23787,"name":"bool","nodeType":"ElementaryTypeName","src":"54899:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23790,"mutability":"mutable","name":"p1","nameLocation":"54916:2:14","nodeType":"VariableDeclaration","scope":23809,"src":"54908:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23789,"name":"address","nodeType":"ElementaryTypeName","src":"54908:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23792,"mutability":"mutable","name":"p2","nameLocation":"54934:2:14","nodeType":"VariableDeclaration","scope":23809,"src":"54920:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23791,"name":"string","nodeType":"ElementaryTypeName","src":"54920:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23794,"mutability":"mutable","name":"p3","nameLocation":"54952:2:14","nodeType":"VariableDeclaration","scope":23809,"src":"54938:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23793,"name":"string","nodeType":"ElementaryTypeName","src":"54938:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"54898:57:14"},"returnParameters":{"id":23796,"nodeType":"ParameterList","parameters":[],"src":"54970:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23832,"nodeType":"FunctionDefinition","src":"55084:181:14","nodes":[],"body":{"id":23831,"nodeType":"Block","src":"55159:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c626f6f6c29","id":23823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55209:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc","typeString":"literal_string \"log(bool,address,string,bool)\""},"value":"log(bool,address,string,bool)"},{"id":23824,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23811,"src":"55242:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23825,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23813,"src":"55246:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23826,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23815,"src":"55250:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23827,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23817,"src":"55254:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc","typeString":"literal_string \"log(bool,address,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":23821,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55185:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55189:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55185:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55185:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23820,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"55169:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55169:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23830,"nodeType":"ExpressionStatement","src":"55169:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55093:3:14","parameters":{"id":23818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23811,"mutability":"mutable","name":"p0","nameLocation":"55102:2:14","nodeType":"VariableDeclaration","scope":23832,"src":"55097:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23810,"name":"bool","nodeType":"ElementaryTypeName","src":"55097:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23813,"mutability":"mutable","name":"p1","nameLocation":"55114:2:14","nodeType":"VariableDeclaration","scope":23832,"src":"55106:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23812,"name":"address","nodeType":"ElementaryTypeName","src":"55106:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23815,"mutability":"mutable","name":"p2","nameLocation":"55132:2:14","nodeType":"VariableDeclaration","scope":23832,"src":"55118:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23814,"name":"string","nodeType":"ElementaryTypeName","src":"55118:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23817,"mutability":"mutable","name":"p3","nameLocation":"55141:2:14","nodeType":"VariableDeclaration","scope":23832,"src":"55136:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23816,"name":"bool","nodeType":"ElementaryTypeName","src":"55136:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"55096:48:14"},"returnParameters":{"id":23819,"nodeType":"ParameterList","parameters":[],"src":"55159:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23855,"nodeType":"FunctionDefinition","src":"55271:187:14","nodes":[],"body":{"id":23854,"nodeType":"Block","src":"55349:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c6164647265737329","id":23846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55399:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654","typeString":"literal_string \"log(bool,address,string,address)\""},"value":"log(bool,address,string,address)"},{"id":23847,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23834,"src":"55435:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23848,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23836,"src":"55439:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23849,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23838,"src":"55443:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23850,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23840,"src":"55447:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654","typeString":"literal_string \"log(bool,address,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23844,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55375:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55379:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55375:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55375:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23843,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"55359:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55359:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23853,"nodeType":"ExpressionStatement","src":"55359:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55280:3:14","parameters":{"id":23841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23834,"mutability":"mutable","name":"p0","nameLocation":"55289:2:14","nodeType":"VariableDeclaration","scope":23855,"src":"55284:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23833,"name":"bool","nodeType":"ElementaryTypeName","src":"55284:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23836,"mutability":"mutable","name":"p1","nameLocation":"55301:2:14","nodeType":"VariableDeclaration","scope":23855,"src":"55293:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23835,"name":"address","nodeType":"ElementaryTypeName","src":"55293:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23838,"mutability":"mutable","name":"p2","nameLocation":"55319:2:14","nodeType":"VariableDeclaration","scope":23855,"src":"55305:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23837,"name":"string","nodeType":"ElementaryTypeName","src":"55305:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23840,"mutability":"mutable","name":"p3","nameLocation":"55331:2:14","nodeType":"VariableDeclaration","scope":23855,"src":"55323:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23839,"name":"address","nodeType":"ElementaryTypeName","src":"55323:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"55283:51:14"},"returnParameters":{"id":23842,"nodeType":"ParameterList","parameters":[],"src":"55349:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23878,"nodeType":"FunctionDefinition","src":"55464:176:14","nodes":[],"body":{"id":23877,"nodeType":"Block","src":"55533:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c75696e7432353629","id":23869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55583:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_07831502b96d5b050adbd4ca2f9d4cd011dd7a8d3e1266dadb6c832ee8e56059","typeString":"literal_string \"log(bool,address,bool,uint256)\""},"value":"log(bool,address,bool,uint256)"},{"id":23870,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23857,"src":"55617:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23871,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23859,"src":"55621:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23872,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23861,"src":"55625:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23873,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23863,"src":"55629:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07831502b96d5b050adbd4ca2f9d4cd011dd7a8d3e1266dadb6c832ee8e56059","typeString":"literal_string \"log(bool,address,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23867,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55559:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55563:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55559:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55559:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23866,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"55543:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55543:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23876,"nodeType":"ExpressionStatement","src":"55543:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55473:3:14","parameters":{"id":23864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23857,"mutability":"mutable","name":"p0","nameLocation":"55482:2:14","nodeType":"VariableDeclaration","scope":23878,"src":"55477:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23856,"name":"bool","nodeType":"ElementaryTypeName","src":"55477:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23859,"mutability":"mutable","name":"p1","nameLocation":"55494:2:14","nodeType":"VariableDeclaration","scope":23878,"src":"55486:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23858,"name":"address","nodeType":"ElementaryTypeName","src":"55486:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23861,"mutability":"mutable","name":"p2","nameLocation":"55503:2:14","nodeType":"VariableDeclaration","scope":23878,"src":"55498:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23860,"name":"bool","nodeType":"ElementaryTypeName","src":"55498:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23863,"mutability":"mutable","name":"p3","nameLocation":"55515:2:14","nodeType":"VariableDeclaration","scope":23878,"src":"55507:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23862,"name":"uint256","nodeType":"ElementaryTypeName","src":"55507:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"55476:42:14"},"returnParameters":{"id":23865,"nodeType":"ParameterList","parameters":[],"src":"55533:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23901,"nodeType":"FunctionDefinition","src":"55646:181:14","nodes":[],"body":{"id":23900,"nodeType":"Block","src":"55721:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c737472696e6729","id":23892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55771:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59","typeString":"literal_string \"log(bool,address,bool,string)\""},"value":"log(bool,address,bool,string)"},{"id":23893,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23880,"src":"55804:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23894,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23882,"src":"55808:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23895,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23884,"src":"55812:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23896,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23886,"src":"55816:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59","typeString":"literal_string \"log(bool,address,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":23890,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55747:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23891,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55751:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55747:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55747:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23889,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"55731:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55731:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23899,"nodeType":"ExpressionStatement","src":"55731:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55655:3:14","parameters":{"id":23887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23880,"mutability":"mutable","name":"p0","nameLocation":"55664:2:14","nodeType":"VariableDeclaration","scope":23901,"src":"55659:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23879,"name":"bool","nodeType":"ElementaryTypeName","src":"55659:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23882,"mutability":"mutable","name":"p1","nameLocation":"55676:2:14","nodeType":"VariableDeclaration","scope":23901,"src":"55668:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23881,"name":"address","nodeType":"ElementaryTypeName","src":"55668:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23884,"mutability":"mutable","name":"p2","nameLocation":"55685:2:14","nodeType":"VariableDeclaration","scope":23901,"src":"55680:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23883,"name":"bool","nodeType":"ElementaryTypeName","src":"55680:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23886,"mutability":"mutable","name":"p3","nameLocation":"55703:2:14","nodeType":"VariableDeclaration","scope":23901,"src":"55689:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23885,"name":"string","nodeType":"ElementaryTypeName","src":"55689:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"55658:48:14"},"returnParameters":{"id":23888,"nodeType":"ParameterList","parameters":[],"src":"55721:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23924,"nodeType":"FunctionDefinition","src":"55833:170:14","nodes":[],"body":{"id":23923,"nodeType":"Block","src":"55899:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c626f6f6c29","id":23915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55949:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577","typeString":"literal_string \"log(bool,address,bool,bool)\""},"value":"log(bool,address,bool,bool)"},{"id":23916,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23903,"src":"55980:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23917,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23905,"src":"55984:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23918,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23907,"src":"55988:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23919,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23909,"src":"55992:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577","typeString":"literal_string \"log(bool,address,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":23913,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55925:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55929:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55925:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55925:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23912,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"55909:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55909:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23922,"nodeType":"ExpressionStatement","src":"55909:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55842:3:14","parameters":{"id":23910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23903,"mutability":"mutable","name":"p0","nameLocation":"55851:2:14","nodeType":"VariableDeclaration","scope":23924,"src":"55846:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23902,"name":"bool","nodeType":"ElementaryTypeName","src":"55846:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23905,"mutability":"mutable","name":"p1","nameLocation":"55863:2:14","nodeType":"VariableDeclaration","scope":23924,"src":"55855:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23904,"name":"address","nodeType":"ElementaryTypeName","src":"55855:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23907,"mutability":"mutable","name":"p2","nameLocation":"55872:2:14","nodeType":"VariableDeclaration","scope":23924,"src":"55867:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23906,"name":"bool","nodeType":"ElementaryTypeName","src":"55867:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23909,"mutability":"mutable","name":"p3","nameLocation":"55881:2:14","nodeType":"VariableDeclaration","scope":23924,"src":"55876:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23908,"name":"bool","nodeType":"ElementaryTypeName","src":"55876:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"55845:39:14"},"returnParameters":{"id":23911,"nodeType":"ParameterList","parameters":[],"src":"55899:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23947,"nodeType":"FunctionDefinition","src":"56009:176:14","nodes":[],"body":{"id":23946,"nodeType":"Block","src":"56078:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c6164647265737329","id":23938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56128:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870","typeString":"literal_string \"log(bool,address,bool,address)\""},"value":"log(bool,address,bool,address)"},{"id":23939,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23926,"src":"56162:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23940,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23928,"src":"56166:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23941,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23930,"src":"56170:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23942,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23932,"src":"56174:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870","typeString":"literal_string \"log(bool,address,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23936,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56104:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23937,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56108:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56104:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56104:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23935,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"56088:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56088:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23945,"nodeType":"ExpressionStatement","src":"56088:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56018:3:14","parameters":{"id":23933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23926,"mutability":"mutable","name":"p0","nameLocation":"56027:2:14","nodeType":"VariableDeclaration","scope":23947,"src":"56022:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23925,"name":"bool","nodeType":"ElementaryTypeName","src":"56022:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23928,"mutability":"mutable","name":"p1","nameLocation":"56039:2:14","nodeType":"VariableDeclaration","scope":23947,"src":"56031:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23927,"name":"address","nodeType":"ElementaryTypeName","src":"56031:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23930,"mutability":"mutable","name":"p2","nameLocation":"56048:2:14","nodeType":"VariableDeclaration","scope":23947,"src":"56043:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23929,"name":"bool","nodeType":"ElementaryTypeName","src":"56043:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23932,"mutability":"mutable","name":"p3","nameLocation":"56060:2:14","nodeType":"VariableDeclaration","scope":23947,"src":"56052:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23931,"name":"address","nodeType":"ElementaryTypeName","src":"56052:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"56021:42:14"},"returnParameters":{"id":23934,"nodeType":"ParameterList","parameters":[],"src":"56078:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23970,"nodeType":"FunctionDefinition","src":"56191:182:14","nodes":[],"body":{"id":23969,"nodeType":"Block","src":"56263:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c75696e7432353629","id":23961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56313:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c66d1be8b80b8d96088c57d6fc12897f737822d5beb6e751a923520a0a509b8","typeString":"literal_string \"log(bool,address,address,uint256)\""},"value":"log(bool,address,address,uint256)"},{"id":23962,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23949,"src":"56350:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23963,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23951,"src":"56354:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23964,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23953,"src":"56358:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23965,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23955,"src":"56362:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c66d1be8b80b8d96088c57d6fc12897f737822d5beb6e751a923520a0a509b8","typeString":"literal_string \"log(bool,address,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23959,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56289:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23960,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56293:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56289:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56289:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23958,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"56273:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56273:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23968,"nodeType":"ExpressionStatement","src":"56273:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56200:3:14","parameters":{"id":23956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23949,"mutability":"mutable","name":"p0","nameLocation":"56209:2:14","nodeType":"VariableDeclaration","scope":23970,"src":"56204:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23948,"name":"bool","nodeType":"ElementaryTypeName","src":"56204:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23951,"mutability":"mutable","name":"p1","nameLocation":"56221:2:14","nodeType":"VariableDeclaration","scope":23970,"src":"56213:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23950,"name":"address","nodeType":"ElementaryTypeName","src":"56213:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23953,"mutability":"mutable","name":"p2","nameLocation":"56233:2:14","nodeType":"VariableDeclaration","scope":23970,"src":"56225:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23952,"name":"address","nodeType":"ElementaryTypeName","src":"56225:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23955,"mutability":"mutable","name":"p3","nameLocation":"56245:2:14","nodeType":"VariableDeclaration","scope":23970,"src":"56237:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23954,"name":"uint256","nodeType":"ElementaryTypeName","src":"56237:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"56203:45:14"},"returnParameters":{"id":23957,"nodeType":"ParameterList","parameters":[],"src":"56263:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23993,"nodeType":"FunctionDefinition","src":"56379:187:14","nodes":[],"body":{"id":23992,"nodeType":"Block","src":"56457:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c737472696e6729","id":23984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56507:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432","typeString":"literal_string \"log(bool,address,address,string)\""},"value":"log(bool,address,address,string)"},{"id":23985,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23972,"src":"56543:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23986,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23974,"src":"56547:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23987,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23976,"src":"56551:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23988,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23978,"src":"56555:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432","typeString":"literal_string \"log(bool,address,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":23982,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56483:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23983,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56487:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56483:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56483:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23981,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"56467:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56467:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23991,"nodeType":"ExpressionStatement","src":"56467:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56388:3:14","parameters":{"id":23979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23972,"mutability":"mutable","name":"p0","nameLocation":"56397:2:14","nodeType":"VariableDeclaration","scope":23993,"src":"56392:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23971,"name":"bool","nodeType":"ElementaryTypeName","src":"56392:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23974,"mutability":"mutable","name":"p1","nameLocation":"56409:2:14","nodeType":"VariableDeclaration","scope":23993,"src":"56401:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23973,"name":"address","nodeType":"ElementaryTypeName","src":"56401:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23976,"mutability":"mutable","name":"p2","nameLocation":"56421:2:14","nodeType":"VariableDeclaration","scope":23993,"src":"56413:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23975,"name":"address","nodeType":"ElementaryTypeName","src":"56413:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23978,"mutability":"mutable","name":"p3","nameLocation":"56439:2:14","nodeType":"VariableDeclaration","scope":23993,"src":"56425:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23977,"name":"string","nodeType":"ElementaryTypeName","src":"56425:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56391:51:14"},"returnParameters":{"id":23980,"nodeType":"ParameterList","parameters":[],"src":"56457:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24016,"nodeType":"FunctionDefinition","src":"56572:176:14","nodes":[],"body":{"id":24015,"nodeType":"Block","src":"56641:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c626f6f6c29","id":24007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56691:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e","typeString":"literal_string \"log(bool,address,address,bool)\""},"value":"log(bool,address,address,bool)"},{"id":24008,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23995,"src":"56725:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24009,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23997,"src":"56729:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24010,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23999,"src":"56733:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24011,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24001,"src":"56737:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e","typeString":"literal_string \"log(bool,address,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":24005,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56667:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24006,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56671:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56667:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56667:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24004,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"56651:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56651:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24014,"nodeType":"ExpressionStatement","src":"56651:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56581:3:14","parameters":{"id":24002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23995,"mutability":"mutable","name":"p0","nameLocation":"56590:2:14","nodeType":"VariableDeclaration","scope":24016,"src":"56585:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23994,"name":"bool","nodeType":"ElementaryTypeName","src":"56585:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23997,"mutability":"mutable","name":"p1","nameLocation":"56602:2:14","nodeType":"VariableDeclaration","scope":24016,"src":"56594:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23996,"name":"address","nodeType":"ElementaryTypeName","src":"56594:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23999,"mutability":"mutable","name":"p2","nameLocation":"56614:2:14","nodeType":"VariableDeclaration","scope":24016,"src":"56606:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23998,"name":"address","nodeType":"ElementaryTypeName","src":"56606:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24001,"mutability":"mutable","name":"p3","nameLocation":"56623:2:14","nodeType":"VariableDeclaration","scope":24016,"src":"56618:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24000,"name":"bool","nodeType":"ElementaryTypeName","src":"56618:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"56584:42:14"},"returnParameters":{"id":24003,"nodeType":"ParameterList","parameters":[],"src":"56641:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24039,"nodeType":"FunctionDefinition","src":"56754:182:14","nodes":[],"body":{"id":24038,"nodeType":"Block","src":"56826:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c6164647265737329","id":24030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56876:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123","typeString":"literal_string \"log(bool,address,address,address)\""},"value":"log(bool,address,address,address)"},{"id":24031,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24018,"src":"56913:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24032,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24020,"src":"56917:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24033,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24022,"src":"56921:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24034,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24024,"src":"56925:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123","typeString":"literal_string \"log(bool,address,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24028,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56852:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56856:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56852:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56852:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24027,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"56836:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56836:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24037,"nodeType":"ExpressionStatement","src":"56836:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56763:3:14","parameters":{"id":24025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24018,"mutability":"mutable","name":"p0","nameLocation":"56772:2:14","nodeType":"VariableDeclaration","scope":24039,"src":"56767:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24017,"name":"bool","nodeType":"ElementaryTypeName","src":"56767:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24020,"mutability":"mutable","name":"p1","nameLocation":"56784:2:14","nodeType":"VariableDeclaration","scope":24039,"src":"56776:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24019,"name":"address","nodeType":"ElementaryTypeName","src":"56776:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24022,"mutability":"mutable","name":"p2","nameLocation":"56796:2:14","nodeType":"VariableDeclaration","scope":24039,"src":"56788:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24021,"name":"address","nodeType":"ElementaryTypeName","src":"56788:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24024,"mutability":"mutable","name":"p3","nameLocation":"56808:2:14","nodeType":"VariableDeclaration","scope":24039,"src":"56800:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24023,"name":"address","nodeType":"ElementaryTypeName","src":"56800:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"56766:45:14"},"returnParameters":{"id":24026,"nodeType":"ParameterList","parameters":[],"src":"56826:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24062,"nodeType":"FunctionDefinition","src":"56942:188:14","nodes":[],"body":{"id":24061,"nodeType":"Block","src":"57017:113:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c75696e7432353629","id":24053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57067:38:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_34f0e636808ebabd61ce9b247c78c7a38984ab35d5f29c0bd51299288509f6d6","typeString":"literal_string \"log(address,uint256,uint256,uint256)\""},"value":"log(address,uint256,uint256,uint256)"},{"id":24054,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24041,"src":"57107:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24055,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24043,"src":"57111:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24056,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24045,"src":"57115:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24057,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24047,"src":"57119:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_34f0e636808ebabd61ce9b247c78c7a38984ab35d5f29c0bd51299288509f6d6","typeString":"literal_string \"log(address,uint256,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24051,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57043:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57047:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57043:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57043:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24050,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"57027:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57027:96:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24060,"nodeType":"ExpressionStatement","src":"57027:96:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56951:3:14","parameters":{"id":24048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24041,"mutability":"mutable","name":"p0","nameLocation":"56963:2:14","nodeType":"VariableDeclaration","scope":24062,"src":"56955:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24040,"name":"address","nodeType":"ElementaryTypeName","src":"56955:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24043,"mutability":"mutable","name":"p1","nameLocation":"56975:2:14","nodeType":"VariableDeclaration","scope":24062,"src":"56967:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24042,"name":"uint256","nodeType":"ElementaryTypeName","src":"56967:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24045,"mutability":"mutable","name":"p2","nameLocation":"56987:2:14","nodeType":"VariableDeclaration","scope":24062,"src":"56979:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24044,"name":"uint256","nodeType":"ElementaryTypeName","src":"56979:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24047,"mutability":"mutable","name":"p3","nameLocation":"56999:2:14","nodeType":"VariableDeclaration","scope":24062,"src":"56991:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24046,"name":"uint256","nodeType":"ElementaryTypeName","src":"56991:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"56954:48:14"},"returnParameters":{"id":24049,"nodeType":"ParameterList","parameters":[],"src":"57017:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24085,"nodeType":"FunctionDefinition","src":"57136:193:14","nodes":[],"body":{"id":24084,"nodeType":"Block","src":"57217:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c737472696e6729","id":24076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57267:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a28c017e545dc04fb82dd1a46d46ba463e69e0aeff774fbced9bedd205b6cf6","typeString":"literal_string \"log(address,uint256,uint256,string)\""},"value":"log(address,uint256,uint256,string)"},{"id":24077,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24064,"src":"57306:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24078,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24066,"src":"57310:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24079,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24068,"src":"57314:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24080,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24070,"src":"57318:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a28c017e545dc04fb82dd1a46d46ba463e69e0aeff774fbced9bedd205b6cf6","typeString":"literal_string \"log(address,uint256,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":24074,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57243:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57247:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57243:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57243:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24073,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"57227:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57227:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24083,"nodeType":"ExpressionStatement","src":"57227:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57145:3:14","parameters":{"id":24071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24064,"mutability":"mutable","name":"p0","nameLocation":"57157:2:14","nodeType":"VariableDeclaration","scope":24085,"src":"57149:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24063,"name":"address","nodeType":"ElementaryTypeName","src":"57149:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24066,"mutability":"mutable","name":"p1","nameLocation":"57169:2:14","nodeType":"VariableDeclaration","scope":24085,"src":"57161:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24065,"name":"uint256","nodeType":"ElementaryTypeName","src":"57161:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24068,"mutability":"mutable","name":"p2","nameLocation":"57181:2:14","nodeType":"VariableDeclaration","scope":24085,"src":"57173:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24067,"name":"uint256","nodeType":"ElementaryTypeName","src":"57173:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24070,"mutability":"mutable","name":"p3","nameLocation":"57199:2:14","nodeType":"VariableDeclaration","scope":24085,"src":"57185:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24069,"name":"string","nodeType":"ElementaryTypeName","src":"57185:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"57148:54:14"},"returnParameters":{"id":24072,"nodeType":"ParameterList","parameters":[],"src":"57217:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24108,"nodeType":"FunctionDefinition","src":"57335:182:14","nodes":[],"body":{"id":24107,"nodeType":"Block","src":"57407:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c626f6f6c29","id":24099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57457:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_66f1bc67b5cb59260b3541ed684f0a38ab8f590dfff7947bd562de33eae3c57e","typeString":"literal_string \"log(address,uint256,uint256,bool)\""},"value":"log(address,uint256,uint256,bool)"},{"id":24100,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24087,"src":"57494:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24101,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24089,"src":"57498:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24102,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24091,"src":"57502:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24103,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24093,"src":"57506:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_66f1bc67b5cb59260b3541ed684f0a38ab8f590dfff7947bd562de33eae3c57e","typeString":"literal_string \"log(address,uint256,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":24097,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57433:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57437:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57433:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57433:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24096,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"57417:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57417:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24106,"nodeType":"ExpressionStatement","src":"57417:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57344:3:14","parameters":{"id":24094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24087,"mutability":"mutable","name":"p0","nameLocation":"57356:2:14","nodeType":"VariableDeclaration","scope":24108,"src":"57348:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24086,"name":"address","nodeType":"ElementaryTypeName","src":"57348:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24089,"mutability":"mutable","name":"p1","nameLocation":"57368:2:14","nodeType":"VariableDeclaration","scope":24108,"src":"57360:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24088,"name":"uint256","nodeType":"ElementaryTypeName","src":"57360:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24091,"mutability":"mutable","name":"p2","nameLocation":"57380:2:14","nodeType":"VariableDeclaration","scope":24108,"src":"57372:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24090,"name":"uint256","nodeType":"ElementaryTypeName","src":"57372:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24093,"mutability":"mutable","name":"p3","nameLocation":"57389:2:14","nodeType":"VariableDeclaration","scope":24108,"src":"57384:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24092,"name":"bool","nodeType":"ElementaryTypeName","src":"57384:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"57347:45:14"},"returnParameters":{"id":24095,"nodeType":"ParameterList","parameters":[],"src":"57407:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24131,"nodeType":"FunctionDefinition","src":"57523:188:14","nodes":[],"body":{"id":24130,"nodeType":"Block","src":"57598:113:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c6164647265737329","id":24122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57648:38:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_20e3984d0b91232a40a479187d959e3fb7102cd2a40a0267e07a4f648290e390","typeString":"literal_string \"log(address,uint256,uint256,address)\""},"value":"log(address,uint256,uint256,address)"},{"id":24123,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24110,"src":"57688:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24124,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24112,"src":"57692:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24125,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24114,"src":"57696:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24126,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24116,"src":"57700:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20e3984d0b91232a40a479187d959e3fb7102cd2a40a0267e07a4f648290e390","typeString":"literal_string \"log(address,uint256,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24120,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57624:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57628:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57624:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57624:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24119,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"57608:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57608:96:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24129,"nodeType":"ExpressionStatement","src":"57608:96:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57532:3:14","parameters":{"id":24117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24110,"mutability":"mutable","name":"p0","nameLocation":"57544:2:14","nodeType":"VariableDeclaration","scope":24131,"src":"57536:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24109,"name":"address","nodeType":"ElementaryTypeName","src":"57536:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24112,"mutability":"mutable","name":"p1","nameLocation":"57556:2:14","nodeType":"VariableDeclaration","scope":24131,"src":"57548:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24111,"name":"uint256","nodeType":"ElementaryTypeName","src":"57548:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24114,"mutability":"mutable","name":"p2","nameLocation":"57568:2:14","nodeType":"VariableDeclaration","scope":24131,"src":"57560:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24113,"name":"uint256","nodeType":"ElementaryTypeName","src":"57560:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24116,"mutability":"mutable","name":"p3","nameLocation":"57580:2:14","nodeType":"VariableDeclaration","scope":24131,"src":"57572:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24115,"name":"address","nodeType":"ElementaryTypeName","src":"57572:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"57535:48:14"},"returnParameters":{"id":24118,"nodeType":"ParameterList","parameters":[],"src":"57598:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24154,"nodeType":"FunctionDefinition","src":"57717:193:14","nodes":[],"body":{"id":24153,"nodeType":"Block","src":"57798:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c75696e7432353629","id":24145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57848:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_bf01f89152073297823dffc184d44302911f7269a4d8bb68457feda7325d0054","typeString":"literal_string \"log(address,uint256,string,uint256)\""},"value":"log(address,uint256,string,uint256)"},{"id":24146,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24133,"src":"57887:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24147,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24135,"src":"57891:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24148,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24137,"src":"57895:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24149,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24139,"src":"57899:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bf01f89152073297823dffc184d44302911f7269a4d8bb68457feda7325d0054","typeString":"literal_string \"log(address,uint256,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24143,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57824:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57828:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57824:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57824:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24142,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"57808:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57808:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24152,"nodeType":"ExpressionStatement","src":"57808:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57726:3:14","parameters":{"id":24140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24133,"mutability":"mutable","name":"p0","nameLocation":"57738:2:14","nodeType":"VariableDeclaration","scope":24154,"src":"57730:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24132,"name":"address","nodeType":"ElementaryTypeName","src":"57730:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24135,"mutability":"mutable","name":"p1","nameLocation":"57750:2:14","nodeType":"VariableDeclaration","scope":24154,"src":"57742:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24134,"name":"uint256","nodeType":"ElementaryTypeName","src":"57742:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24137,"mutability":"mutable","name":"p2","nameLocation":"57768:2:14","nodeType":"VariableDeclaration","scope":24154,"src":"57754:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24136,"name":"string","nodeType":"ElementaryTypeName","src":"57754:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24139,"mutability":"mutable","name":"p3","nameLocation":"57780:2:14","nodeType":"VariableDeclaration","scope":24154,"src":"57772:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24138,"name":"uint256","nodeType":"ElementaryTypeName","src":"57772:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"57729:54:14"},"returnParameters":{"id":24141,"nodeType":"ParameterList","parameters":[],"src":"57798:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24177,"nodeType":"FunctionDefinition","src":"57916:198:14","nodes":[],"body":{"id":24176,"nodeType":"Block","src":"58003:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c737472696e6729","id":24168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58053:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a8c40673ee8948292248925b0e9d44ca87355f3f886942e848cf22ee50e1c9","typeString":"literal_string \"log(address,uint256,string,string)\""},"value":"log(address,uint256,string,string)"},{"id":24169,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24156,"src":"58091:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24170,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24158,"src":"58095:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24171,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24160,"src":"58099:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24172,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24162,"src":"58103:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_88a8c40673ee8948292248925b0e9d44ca87355f3f886942e848cf22ee50e1c9","typeString":"literal_string \"log(address,uint256,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":24166,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58029:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58033:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58029:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58029:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24165,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"58013:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58013:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24175,"nodeType":"ExpressionStatement","src":"58013:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57925:3:14","parameters":{"id":24163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24156,"mutability":"mutable","name":"p0","nameLocation":"57937:2:14","nodeType":"VariableDeclaration","scope":24177,"src":"57929:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24155,"name":"address","nodeType":"ElementaryTypeName","src":"57929:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24158,"mutability":"mutable","name":"p1","nameLocation":"57949:2:14","nodeType":"VariableDeclaration","scope":24177,"src":"57941:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24157,"name":"uint256","nodeType":"ElementaryTypeName","src":"57941:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24160,"mutability":"mutable","name":"p2","nameLocation":"57967:2:14","nodeType":"VariableDeclaration","scope":24177,"src":"57953:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24159,"name":"string","nodeType":"ElementaryTypeName","src":"57953:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24162,"mutability":"mutable","name":"p3","nameLocation":"57985:2:14","nodeType":"VariableDeclaration","scope":24177,"src":"57971:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24161,"name":"string","nodeType":"ElementaryTypeName","src":"57971:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"57928:60:14"},"returnParameters":{"id":24164,"nodeType":"ParameterList","parameters":[],"src":"58003:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24200,"nodeType":"FunctionDefinition","src":"58120:187:14","nodes":[],"body":{"id":24199,"nodeType":"Block","src":"58198:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c626f6f6c29","id":24191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58248:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf18105cbdc058258aaac7d4703aebeff683e464ae87b167f8bcabefd4799184","typeString":"literal_string \"log(address,uint256,string,bool)\""},"value":"log(address,uint256,string,bool)"},{"id":24192,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24179,"src":"58284:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24193,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24181,"src":"58288:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24194,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24183,"src":"58292:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24195,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24185,"src":"58296:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf18105cbdc058258aaac7d4703aebeff683e464ae87b167f8bcabefd4799184","typeString":"literal_string \"log(address,uint256,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":24189,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58224:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58228:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58224:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58224:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24188,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"58208:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58208:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24198,"nodeType":"ExpressionStatement","src":"58208:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58129:3:14","parameters":{"id":24186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24179,"mutability":"mutable","name":"p0","nameLocation":"58141:2:14","nodeType":"VariableDeclaration","scope":24200,"src":"58133:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24178,"name":"address","nodeType":"ElementaryTypeName","src":"58133:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24181,"mutability":"mutable","name":"p1","nameLocation":"58153:2:14","nodeType":"VariableDeclaration","scope":24200,"src":"58145:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24180,"name":"uint256","nodeType":"ElementaryTypeName","src":"58145:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24183,"mutability":"mutable","name":"p2","nameLocation":"58171:2:14","nodeType":"VariableDeclaration","scope":24200,"src":"58157:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24182,"name":"string","nodeType":"ElementaryTypeName","src":"58157:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24185,"mutability":"mutable","name":"p3","nameLocation":"58180:2:14","nodeType":"VariableDeclaration","scope":24200,"src":"58175:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24184,"name":"bool","nodeType":"ElementaryTypeName","src":"58175:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"58132:51:14"},"returnParameters":{"id":24187,"nodeType":"ParameterList","parameters":[],"src":"58198:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24223,"nodeType":"FunctionDefinition","src":"58313:193:14","nodes":[],"body":{"id":24222,"nodeType":"Block","src":"58394:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c6164647265737329","id":24214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58444:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c430d475ad8236f34d086a6aae3612106ae74c8621b8677d58f13dcda27570a","typeString":"literal_string \"log(address,uint256,string,address)\""},"value":"log(address,uint256,string,address)"},{"id":24215,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24202,"src":"58483:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24216,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24204,"src":"58487:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24217,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24206,"src":"58491:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24218,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24208,"src":"58495:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5c430d475ad8236f34d086a6aae3612106ae74c8621b8677d58f13dcda27570a","typeString":"literal_string \"log(address,uint256,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24212,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58420:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58424:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58420:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58420:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24211,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"58404:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58404:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24221,"nodeType":"ExpressionStatement","src":"58404:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58322:3:14","parameters":{"id":24209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24202,"mutability":"mutable","name":"p0","nameLocation":"58334:2:14","nodeType":"VariableDeclaration","scope":24223,"src":"58326:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24201,"name":"address","nodeType":"ElementaryTypeName","src":"58326:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24204,"mutability":"mutable","name":"p1","nameLocation":"58346:2:14","nodeType":"VariableDeclaration","scope":24223,"src":"58338:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24203,"name":"uint256","nodeType":"ElementaryTypeName","src":"58338:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24206,"mutability":"mutable","name":"p2","nameLocation":"58364:2:14","nodeType":"VariableDeclaration","scope":24223,"src":"58350:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24205,"name":"string","nodeType":"ElementaryTypeName","src":"58350:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24208,"mutability":"mutable","name":"p3","nameLocation":"58376:2:14","nodeType":"VariableDeclaration","scope":24223,"src":"58368:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24207,"name":"address","nodeType":"ElementaryTypeName","src":"58368:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"58325:54:14"},"returnParameters":{"id":24210,"nodeType":"ParameterList","parameters":[],"src":"58394:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24246,"nodeType":"FunctionDefinition","src":"58512:182:14","nodes":[],"body":{"id":24245,"nodeType":"Block","src":"58584:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c75696e7432353629","id":24237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58634:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_22f6b999343c50207803e85ddd9e714a5457dacc91c49407b8de02bdaf889e5e","typeString":"literal_string \"log(address,uint256,bool,uint256)\""},"value":"log(address,uint256,bool,uint256)"},{"id":24238,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24225,"src":"58671:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24239,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24227,"src":"58675:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24240,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24229,"src":"58679:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24241,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24231,"src":"58683:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_22f6b999343c50207803e85ddd9e714a5457dacc91c49407b8de02bdaf889e5e","typeString":"literal_string \"log(address,uint256,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24235,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58610:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58614:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58610:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58610:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24234,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"58594:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58594:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24244,"nodeType":"ExpressionStatement","src":"58594:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58521:3:14","parameters":{"id":24232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24225,"mutability":"mutable","name":"p0","nameLocation":"58533:2:14","nodeType":"VariableDeclaration","scope":24246,"src":"58525:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24224,"name":"address","nodeType":"ElementaryTypeName","src":"58525:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24227,"mutability":"mutable","name":"p1","nameLocation":"58545:2:14","nodeType":"VariableDeclaration","scope":24246,"src":"58537:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24226,"name":"uint256","nodeType":"ElementaryTypeName","src":"58537:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24229,"mutability":"mutable","name":"p2","nameLocation":"58554:2:14","nodeType":"VariableDeclaration","scope":24246,"src":"58549:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24228,"name":"bool","nodeType":"ElementaryTypeName","src":"58549:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24231,"mutability":"mutable","name":"p3","nameLocation":"58566:2:14","nodeType":"VariableDeclaration","scope":24246,"src":"58558:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24230,"name":"uint256","nodeType":"ElementaryTypeName","src":"58558:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"58524:45:14"},"returnParameters":{"id":24233,"nodeType":"ParameterList","parameters":[],"src":"58584:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24269,"nodeType":"FunctionDefinition","src":"58700:187:14","nodes":[],"body":{"id":24268,"nodeType":"Block","src":"58778:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c737472696e6729","id":24260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58828:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5ad85f9b1e72940e5c2ff98bcaf10dac65873a2d1f60566284e5a9bba66ce0b","typeString":"literal_string \"log(address,uint256,bool,string)\""},"value":"log(address,uint256,bool,string)"},{"id":24261,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24248,"src":"58864:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24262,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24250,"src":"58868:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24263,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24252,"src":"58872:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24264,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24254,"src":"58876:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5ad85f9b1e72940e5c2ff98bcaf10dac65873a2d1f60566284e5a9bba66ce0b","typeString":"literal_string \"log(address,uint256,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":24258,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58804:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58808:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58804:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58804:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24257,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"58788:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58788:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24267,"nodeType":"ExpressionStatement","src":"58788:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58709:3:14","parameters":{"id":24255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24248,"mutability":"mutable","name":"p0","nameLocation":"58721:2:14","nodeType":"VariableDeclaration","scope":24269,"src":"58713:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24247,"name":"address","nodeType":"ElementaryTypeName","src":"58713:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24250,"mutability":"mutable","name":"p1","nameLocation":"58733:2:14","nodeType":"VariableDeclaration","scope":24269,"src":"58725:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24249,"name":"uint256","nodeType":"ElementaryTypeName","src":"58725:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24252,"mutability":"mutable","name":"p2","nameLocation":"58742:2:14","nodeType":"VariableDeclaration","scope":24269,"src":"58737:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24251,"name":"bool","nodeType":"ElementaryTypeName","src":"58737:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24254,"mutability":"mutable","name":"p3","nameLocation":"58760:2:14","nodeType":"VariableDeclaration","scope":24269,"src":"58746:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24253,"name":"string","nodeType":"ElementaryTypeName","src":"58746:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"58712:51:14"},"returnParameters":{"id":24256,"nodeType":"ParameterList","parameters":[],"src":"58778:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24292,"nodeType":"FunctionDefinition","src":"58893:176:14","nodes":[],"body":{"id":24291,"nodeType":"Block","src":"58962:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c626f6f6c29","id":24283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59012:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3bf5e5379bfb03415fbd47322e912c55a56b102cc24fbed41ca848047f460ae7","typeString":"literal_string \"log(address,uint256,bool,bool)\""},"value":"log(address,uint256,bool,bool)"},{"id":24284,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24271,"src":"59046:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24285,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24273,"src":"59050:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24286,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24275,"src":"59054:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24287,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24277,"src":"59058:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3bf5e5379bfb03415fbd47322e912c55a56b102cc24fbed41ca848047f460ae7","typeString":"literal_string \"log(address,uint256,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":24281,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58988:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24282,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58992:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58988:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58988:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24280,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"58972:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58972:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24290,"nodeType":"ExpressionStatement","src":"58972:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58902:3:14","parameters":{"id":24278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24271,"mutability":"mutable","name":"p0","nameLocation":"58914:2:14","nodeType":"VariableDeclaration","scope":24292,"src":"58906:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24270,"name":"address","nodeType":"ElementaryTypeName","src":"58906:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24273,"mutability":"mutable","name":"p1","nameLocation":"58926:2:14","nodeType":"VariableDeclaration","scope":24292,"src":"58918:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24272,"name":"uint256","nodeType":"ElementaryTypeName","src":"58918:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24275,"mutability":"mutable","name":"p2","nameLocation":"58935:2:14","nodeType":"VariableDeclaration","scope":24292,"src":"58930:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24274,"name":"bool","nodeType":"ElementaryTypeName","src":"58930:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24277,"mutability":"mutable","name":"p3","nameLocation":"58944:2:14","nodeType":"VariableDeclaration","scope":24292,"src":"58939:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24276,"name":"bool","nodeType":"ElementaryTypeName","src":"58939:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"58905:42:14"},"returnParameters":{"id":24279,"nodeType":"ParameterList","parameters":[],"src":"58962:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24315,"nodeType":"FunctionDefinition","src":"59075:182:14","nodes":[],"body":{"id":24314,"nodeType":"Block","src":"59147:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c6164647265737329","id":24306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59197:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a31bfdcce87cf9e77dc577737a291feb3aa727a8fbb8205e53519527c85ff290","typeString":"literal_string \"log(address,uint256,bool,address)\""},"value":"log(address,uint256,bool,address)"},{"id":24307,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24294,"src":"59234:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24308,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24296,"src":"59238:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24309,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24298,"src":"59242:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24310,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24300,"src":"59246:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a31bfdcce87cf9e77dc577737a291feb3aa727a8fbb8205e53519527c85ff290","typeString":"literal_string \"log(address,uint256,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24304,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59173:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59177:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59173:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59173:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24303,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"59157:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59157:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24313,"nodeType":"ExpressionStatement","src":"59157:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59084:3:14","parameters":{"id":24301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24294,"mutability":"mutable","name":"p0","nameLocation":"59096:2:14","nodeType":"VariableDeclaration","scope":24315,"src":"59088:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24293,"name":"address","nodeType":"ElementaryTypeName","src":"59088:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24296,"mutability":"mutable","name":"p1","nameLocation":"59108:2:14","nodeType":"VariableDeclaration","scope":24315,"src":"59100:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24295,"name":"uint256","nodeType":"ElementaryTypeName","src":"59100:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24298,"mutability":"mutable","name":"p2","nameLocation":"59117:2:14","nodeType":"VariableDeclaration","scope":24315,"src":"59112:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24297,"name":"bool","nodeType":"ElementaryTypeName","src":"59112:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24300,"mutability":"mutable","name":"p3","nameLocation":"59129:2:14","nodeType":"VariableDeclaration","scope":24315,"src":"59121:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24299,"name":"address","nodeType":"ElementaryTypeName","src":"59121:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"59087:45:14"},"returnParameters":{"id":24302,"nodeType":"ParameterList","parameters":[],"src":"59147:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24338,"nodeType":"FunctionDefinition","src":"59263:188:14","nodes":[],"body":{"id":24337,"nodeType":"Block","src":"59338:113:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c75696e7432353629","id":24329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59388:38:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_100f650ebf81cb406bb4fb842e06128992c5a86986b0eab3b9e965c3254516e6","typeString":"literal_string \"log(address,uint256,address,uint256)\""},"value":"log(address,uint256,address,uint256)"},{"id":24330,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24317,"src":"59428:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24331,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24319,"src":"59432:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24332,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24321,"src":"59436:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24333,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24323,"src":"59440:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_100f650ebf81cb406bb4fb842e06128992c5a86986b0eab3b9e965c3254516e6","typeString":"literal_string \"log(address,uint256,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24327,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59364:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24328,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59368:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59364:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59364:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24326,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"59348:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59348:96:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24336,"nodeType":"ExpressionStatement","src":"59348:96:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59272:3:14","parameters":{"id":24324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24317,"mutability":"mutable","name":"p0","nameLocation":"59284:2:14","nodeType":"VariableDeclaration","scope":24338,"src":"59276:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24316,"name":"address","nodeType":"ElementaryTypeName","src":"59276:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24319,"mutability":"mutable","name":"p1","nameLocation":"59296:2:14","nodeType":"VariableDeclaration","scope":24338,"src":"59288:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24318,"name":"uint256","nodeType":"ElementaryTypeName","src":"59288:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24321,"mutability":"mutable","name":"p2","nameLocation":"59308:2:14","nodeType":"VariableDeclaration","scope":24338,"src":"59300:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24320,"name":"address","nodeType":"ElementaryTypeName","src":"59300:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24323,"mutability":"mutable","name":"p3","nameLocation":"59320:2:14","nodeType":"VariableDeclaration","scope":24338,"src":"59312:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24322,"name":"uint256","nodeType":"ElementaryTypeName","src":"59312:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"59275:48:14"},"returnParameters":{"id":24325,"nodeType":"ParameterList","parameters":[],"src":"59338:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24361,"nodeType":"FunctionDefinition","src":"59457:193:14","nodes":[],"body":{"id":24360,"nodeType":"Block","src":"59538:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c737472696e6729","id":24352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59588:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1da986ea2505037a166dd31728d673db1dd36bf0935c0201f0d23934a6acafdb","typeString":"literal_string \"log(address,uint256,address,string)\""},"value":"log(address,uint256,address,string)"},{"id":24353,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24340,"src":"59627:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24354,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24342,"src":"59631:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24355,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24344,"src":"59635:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24356,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24346,"src":"59639:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1da986ea2505037a166dd31728d673db1dd36bf0935c0201f0d23934a6acafdb","typeString":"literal_string \"log(address,uint256,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":24350,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59564:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59568:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59564:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59564:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24349,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"59548:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59548:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24359,"nodeType":"ExpressionStatement","src":"59548:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59466:3:14","parameters":{"id":24347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24340,"mutability":"mutable","name":"p0","nameLocation":"59478:2:14","nodeType":"VariableDeclaration","scope":24361,"src":"59470:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24339,"name":"address","nodeType":"ElementaryTypeName","src":"59470:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24342,"mutability":"mutable","name":"p1","nameLocation":"59490:2:14","nodeType":"VariableDeclaration","scope":24361,"src":"59482:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24341,"name":"uint256","nodeType":"ElementaryTypeName","src":"59482:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24344,"mutability":"mutable","name":"p2","nameLocation":"59502:2:14","nodeType":"VariableDeclaration","scope":24361,"src":"59494:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24343,"name":"address","nodeType":"ElementaryTypeName","src":"59494:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24346,"mutability":"mutable","name":"p3","nameLocation":"59520:2:14","nodeType":"VariableDeclaration","scope":24361,"src":"59506:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24345,"name":"string","nodeType":"ElementaryTypeName","src":"59506:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59469:54:14"},"returnParameters":{"id":24348,"nodeType":"ParameterList","parameters":[],"src":"59538:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24384,"nodeType":"FunctionDefinition","src":"59656:182:14","nodes":[],"body":{"id":24383,"nodeType":"Block","src":"59728:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c626f6f6c29","id":24375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59778:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1bcc9b3f106a0ac6ebf0cd2eda5f636e4ab1afa891b1acb460dd180f14bb322","typeString":"literal_string \"log(address,uint256,address,bool)\""},"value":"log(address,uint256,address,bool)"},{"id":24376,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24363,"src":"59815:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24377,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24365,"src":"59819:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24378,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24367,"src":"59823:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24379,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24369,"src":"59827:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1bcc9b3f106a0ac6ebf0cd2eda5f636e4ab1afa891b1acb460dd180f14bb322","typeString":"literal_string \"log(address,uint256,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":24373,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59754:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59758:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59754:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59754:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24372,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"59738:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59738:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24382,"nodeType":"ExpressionStatement","src":"59738:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59665:3:14","parameters":{"id":24370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24363,"mutability":"mutable","name":"p0","nameLocation":"59677:2:14","nodeType":"VariableDeclaration","scope":24384,"src":"59669:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24362,"name":"address","nodeType":"ElementaryTypeName","src":"59669:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24365,"mutability":"mutable","name":"p1","nameLocation":"59689:2:14","nodeType":"VariableDeclaration","scope":24384,"src":"59681:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24364,"name":"uint256","nodeType":"ElementaryTypeName","src":"59681:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24367,"mutability":"mutable","name":"p2","nameLocation":"59701:2:14","nodeType":"VariableDeclaration","scope":24384,"src":"59693:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24366,"name":"address","nodeType":"ElementaryTypeName","src":"59693:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24369,"mutability":"mutable","name":"p3","nameLocation":"59710:2:14","nodeType":"VariableDeclaration","scope":24384,"src":"59705:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24368,"name":"bool","nodeType":"ElementaryTypeName","src":"59705:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"59668:45:14"},"returnParameters":{"id":24371,"nodeType":"ParameterList","parameters":[],"src":"59728:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24407,"nodeType":"FunctionDefinition","src":"59844:188:14","nodes":[],"body":{"id":24406,"nodeType":"Block","src":"59919:113:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c6164647265737329","id":24398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59969:38:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_478d1c625a50f0548fbd6ce5c9463f034dc2ce146c930b3546dac402346457d4","typeString":"literal_string \"log(address,uint256,address,address)\""},"value":"log(address,uint256,address,address)"},{"id":24399,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24386,"src":"60009:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24400,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24388,"src":"60013:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24401,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24390,"src":"60017:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24402,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24392,"src":"60021:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_478d1c625a50f0548fbd6ce5c9463f034dc2ce146c930b3546dac402346457d4","typeString":"literal_string \"log(address,uint256,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24396,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59945:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59949:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59945:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59945:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24395,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"59929:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59929:96:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24405,"nodeType":"ExpressionStatement","src":"59929:96:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59853:3:14","parameters":{"id":24393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24386,"mutability":"mutable","name":"p0","nameLocation":"59865:2:14","nodeType":"VariableDeclaration","scope":24407,"src":"59857:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24385,"name":"address","nodeType":"ElementaryTypeName","src":"59857:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24388,"mutability":"mutable","name":"p1","nameLocation":"59877:2:14","nodeType":"VariableDeclaration","scope":24407,"src":"59869:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24387,"name":"uint256","nodeType":"ElementaryTypeName","src":"59869:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24390,"mutability":"mutable","name":"p2","nameLocation":"59889:2:14","nodeType":"VariableDeclaration","scope":24407,"src":"59881:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24389,"name":"address","nodeType":"ElementaryTypeName","src":"59881:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24392,"mutability":"mutable","name":"p3","nameLocation":"59901:2:14","nodeType":"VariableDeclaration","scope":24407,"src":"59893:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24391,"name":"address","nodeType":"ElementaryTypeName","src":"59893:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"59856:48:14"},"returnParameters":{"id":24394,"nodeType":"ParameterList","parameters":[],"src":"59919:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24430,"nodeType":"FunctionDefinition","src":"60038:193:14","nodes":[],"body":{"id":24429,"nodeType":"Block","src":"60119:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c75696e7432353629","id":24421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60169:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1dc8e1b86f5e8cc33f88f9c9577316d392566cde443e43069eebe8e56a0a0562","typeString":"literal_string \"log(address,string,uint256,uint256)\""},"value":"log(address,string,uint256,uint256)"},{"id":24422,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24409,"src":"60208:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24423,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24411,"src":"60212:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24424,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24413,"src":"60216:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24425,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24415,"src":"60220:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1dc8e1b86f5e8cc33f88f9c9577316d392566cde443e43069eebe8e56a0a0562","typeString":"literal_string \"log(address,string,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24419,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60145:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24420,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60149:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60145:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60145:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24418,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"60129:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60129:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24428,"nodeType":"ExpressionStatement","src":"60129:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60047:3:14","parameters":{"id":24416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24409,"mutability":"mutable","name":"p0","nameLocation":"60059:2:14","nodeType":"VariableDeclaration","scope":24430,"src":"60051:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24408,"name":"address","nodeType":"ElementaryTypeName","src":"60051:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24411,"mutability":"mutable","name":"p1","nameLocation":"60077:2:14","nodeType":"VariableDeclaration","scope":24430,"src":"60063:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24410,"name":"string","nodeType":"ElementaryTypeName","src":"60063:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24413,"mutability":"mutable","name":"p2","nameLocation":"60089:2:14","nodeType":"VariableDeclaration","scope":24430,"src":"60081:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24412,"name":"uint256","nodeType":"ElementaryTypeName","src":"60081:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24415,"mutability":"mutable","name":"p3","nameLocation":"60101:2:14","nodeType":"VariableDeclaration","scope":24430,"src":"60093:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24414,"name":"uint256","nodeType":"ElementaryTypeName","src":"60093:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"60050:54:14"},"returnParameters":{"id":24417,"nodeType":"ParameterList","parameters":[],"src":"60119:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24453,"nodeType":"FunctionDefinition","src":"60237:198:14","nodes":[],"body":{"id":24452,"nodeType":"Block","src":"60324:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c737472696e6729","id":24444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60374:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_448830a8c1281c2ef562207eb8a81eaf8ce3a05f5db2e480f1a7741f740725d3","typeString":"literal_string \"log(address,string,uint256,string)\""},"value":"log(address,string,uint256,string)"},{"id":24445,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24432,"src":"60412:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24446,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24434,"src":"60416:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24447,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24436,"src":"60420:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24448,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24438,"src":"60424:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_448830a8c1281c2ef562207eb8a81eaf8ce3a05f5db2e480f1a7741f740725d3","typeString":"literal_string \"log(address,string,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":24442,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60350:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24443,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60354:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60350:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60350:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24441,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"60334:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60334:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24451,"nodeType":"ExpressionStatement","src":"60334:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60246:3:14","parameters":{"id":24439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24432,"mutability":"mutable","name":"p0","nameLocation":"60258:2:14","nodeType":"VariableDeclaration","scope":24453,"src":"60250:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24431,"name":"address","nodeType":"ElementaryTypeName","src":"60250:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24434,"mutability":"mutable","name":"p1","nameLocation":"60276:2:14","nodeType":"VariableDeclaration","scope":24453,"src":"60262:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24433,"name":"string","nodeType":"ElementaryTypeName","src":"60262:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24436,"mutability":"mutable","name":"p2","nameLocation":"60288:2:14","nodeType":"VariableDeclaration","scope":24453,"src":"60280:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24435,"name":"uint256","nodeType":"ElementaryTypeName","src":"60280:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24438,"mutability":"mutable","name":"p3","nameLocation":"60306:2:14","nodeType":"VariableDeclaration","scope":24453,"src":"60292:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24437,"name":"string","nodeType":"ElementaryTypeName","src":"60292:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"60249:60:14"},"returnParameters":{"id":24440,"nodeType":"ParameterList","parameters":[],"src":"60324:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24476,"nodeType":"FunctionDefinition","src":"60441:187:14","nodes":[],"body":{"id":24475,"nodeType":"Block","src":"60519:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c626f6f6c29","id":24467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60569:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ef7e050655c297a96024e476b2cd79b6c7fd3efbcd797a5d2723a888114ada4","typeString":"literal_string \"log(address,string,uint256,bool)\""},"value":"log(address,string,uint256,bool)"},{"id":24468,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24455,"src":"60605:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24469,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"60609:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24470,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24459,"src":"60613:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24471,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24461,"src":"60617:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0ef7e050655c297a96024e476b2cd79b6c7fd3efbcd797a5d2723a888114ada4","typeString":"literal_string \"log(address,string,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":24465,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60545:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60549:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60545:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60545:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24464,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"60529:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60529:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24474,"nodeType":"ExpressionStatement","src":"60529:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60450:3:14","parameters":{"id":24462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24455,"mutability":"mutable","name":"p0","nameLocation":"60462:2:14","nodeType":"VariableDeclaration","scope":24476,"src":"60454:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24454,"name":"address","nodeType":"ElementaryTypeName","src":"60454:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24457,"mutability":"mutable","name":"p1","nameLocation":"60480:2:14","nodeType":"VariableDeclaration","scope":24476,"src":"60466:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24456,"name":"string","nodeType":"ElementaryTypeName","src":"60466:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24459,"mutability":"mutable","name":"p2","nameLocation":"60492:2:14","nodeType":"VariableDeclaration","scope":24476,"src":"60484:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24458,"name":"uint256","nodeType":"ElementaryTypeName","src":"60484:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24461,"mutability":"mutable","name":"p3","nameLocation":"60501:2:14","nodeType":"VariableDeclaration","scope":24476,"src":"60496:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24460,"name":"bool","nodeType":"ElementaryTypeName","src":"60496:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"60453:51:14"},"returnParameters":{"id":24463,"nodeType":"ParameterList","parameters":[],"src":"60519:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24499,"nodeType":"FunctionDefinition","src":"60634:193:14","nodes":[],"body":{"id":24498,"nodeType":"Block","src":"60715:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c6164647265737329","id":24490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60765:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_631836789e813227d6b1cf492359a1dbdd837663758bd3e55e319e4a730f0a18","typeString":"literal_string \"log(address,string,uint256,address)\""},"value":"log(address,string,uint256,address)"},{"id":24491,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24478,"src":"60804:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24492,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24480,"src":"60808:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24493,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24482,"src":"60812:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24494,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24484,"src":"60816:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_631836789e813227d6b1cf492359a1dbdd837663758bd3e55e319e4a730f0a18","typeString":"literal_string \"log(address,string,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24488,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60741:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60745:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60741:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60741:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24487,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"60725:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60725:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24497,"nodeType":"ExpressionStatement","src":"60725:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60643:3:14","parameters":{"id":24485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24478,"mutability":"mutable","name":"p0","nameLocation":"60655:2:14","nodeType":"VariableDeclaration","scope":24499,"src":"60647:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24477,"name":"address","nodeType":"ElementaryTypeName","src":"60647:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24480,"mutability":"mutable","name":"p1","nameLocation":"60673:2:14","nodeType":"VariableDeclaration","scope":24499,"src":"60659:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24479,"name":"string","nodeType":"ElementaryTypeName","src":"60659:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24482,"mutability":"mutable","name":"p2","nameLocation":"60685:2:14","nodeType":"VariableDeclaration","scope":24499,"src":"60677:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24481,"name":"uint256","nodeType":"ElementaryTypeName","src":"60677:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24484,"mutability":"mutable","name":"p3","nameLocation":"60697:2:14","nodeType":"VariableDeclaration","scope":24499,"src":"60689:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24483,"name":"address","nodeType":"ElementaryTypeName","src":"60689:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"60646:54:14"},"returnParameters":{"id":24486,"nodeType":"ParameterList","parameters":[],"src":"60715:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24522,"nodeType":"FunctionDefinition","src":"60833:198:14","nodes":[],"body":{"id":24521,"nodeType":"Block","src":"60920:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c75696e7432353629","id":24513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60970:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_159f89272dbf40436b74fcc844c992c1f5cc6a7cc05a9db80782be1a20a8f265","typeString":"literal_string \"log(address,string,string,uint256)\""},"value":"log(address,string,string,uint256)"},{"id":24514,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24501,"src":"61008:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24515,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24503,"src":"61012:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24516,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24505,"src":"61016:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24517,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24507,"src":"61020:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_159f89272dbf40436b74fcc844c992c1f5cc6a7cc05a9db80782be1a20a8f265","typeString":"literal_string \"log(address,string,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24511,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60946:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24512,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60950:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60946:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60946:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24510,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"60930:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60930:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24520,"nodeType":"ExpressionStatement","src":"60930:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60842:3:14","parameters":{"id":24508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24501,"mutability":"mutable","name":"p0","nameLocation":"60854:2:14","nodeType":"VariableDeclaration","scope":24522,"src":"60846:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24500,"name":"address","nodeType":"ElementaryTypeName","src":"60846:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24503,"mutability":"mutable","name":"p1","nameLocation":"60872:2:14","nodeType":"VariableDeclaration","scope":24522,"src":"60858:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24502,"name":"string","nodeType":"ElementaryTypeName","src":"60858:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24505,"mutability":"mutable","name":"p2","nameLocation":"60890:2:14","nodeType":"VariableDeclaration","scope":24522,"src":"60876:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24504,"name":"string","nodeType":"ElementaryTypeName","src":"60876:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24507,"mutability":"mutable","name":"p3","nameLocation":"60902:2:14","nodeType":"VariableDeclaration","scope":24522,"src":"60894:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24506,"name":"uint256","nodeType":"ElementaryTypeName","src":"60894:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"60845:60:14"},"returnParameters":{"id":24509,"nodeType":"ParameterList","parameters":[],"src":"60920:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24545,"nodeType":"FunctionDefinition","src":"61037:203:14","nodes":[],"body":{"id":24544,"nodeType":"Block","src":"61130:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c737472696e6729","id":24536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61180:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c","typeString":"literal_string \"log(address,string,string,string)\""},"value":"log(address,string,string,string)"},{"id":24537,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24524,"src":"61217:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24538,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24526,"src":"61221:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24539,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24528,"src":"61225:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24540,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24530,"src":"61229:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c","typeString":"literal_string \"log(address,string,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":24534,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61156:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61160:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61156:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61156:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24533,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"61140:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61140:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24543,"nodeType":"ExpressionStatement","src":"61140:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61046:3:14","parameters":{"id":24531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24524,"mutability":"mutable","name":"p0","nameLocation":"61058:2:14","nodeType":"VariableDeclaration","scope":24545,"src":"61050:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24523,"name":"address","nodeType":"ElementaryTypeName","src":"61050:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24526,"mutability":"mutable","name":"p1","nameLocation":"61076:2:14","nodeType":"VariableDeclaration","scope":24545,"src":"61062:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24525,"name":"string","nodeType":"ElementaryTypeName","src":"61062:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24528,"mutability":"mutable","name":"p2","nameLocation":"61094:2:14","nodeType":"VariableDeclaration","scope":24545,"src":"61080:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24527,"name":"string","nodeType":"ElementaryTypeName","src":"61080:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24530,"mutability":"mutable","name":"p3","nameLocation":"61112:2:14","nodeType":"VariableDeclaration","scope":24545,"src":"61098:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24529,"name":"string","nodeType":"ElementaryTypeName","src":"61098:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"61049:66:14"},"returnParameters":{"id":24532,"nodeType":"ParameterList","parameters":[],"src":"61130:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24568,"nodeType":"FunctionDefinition","src":"61246:192:14","nodes":[],"body":{"id":24567,"nodeType":"Block","src":"61330:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c626f6f6c29","id":24559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61380:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed","typeString":"literal_string \"log(address,string,string,bool)\""},"value":"log(address,string,string,bool)"},{"id":24560,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24547,"src":"61415:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24561,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24549,"src":"61419:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24562,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24551,"src":"61423:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24563,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24553,"src":"61427:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed","typeString":"literal_string \"log(address,string,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":24557,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61356:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61360:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61356:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61356:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24556,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"61340:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61340:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24566,"nodeType":"ExpressionStatement","src":"61340:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61255:3:14","parameters":{"id":24554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24547,"mutability":"mutable","name":"p0","nameLocation":"61267:2:14","nodeType":"VariableDeclaration","scope":24568,"src":"61259:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24546,"name":"address","nodeType":"ElementaryTypeName","src":"61259:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24549,"mutability":"mutable","name":"p1","nameLocation":"61285:2:14","nodeType":"VariableDeclaration","scope":24568,"src":"61271:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24548,"name":"string","nodeType":"ElementaryTypeName","src":"61271:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24551,"mutability":"mutable","name":"p2","nameLocation":"61303:2:14","nodeType":"VariableDeclaration","scope":24568,"src":"61289:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24550,"name":"string","nodeType":"ElementaryTypeName","src":"61289:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24553,"mutability":"mutable","name":"p3","nameLocation":"61312:2:14","nodeType":"VariableDeclaration","scope":24568,"src":"61307:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24552,"name":"bool","nodeType":"ElementaryTypeName","src":"61307:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"61258:57:14"},"returnParameters":{"id":24555,"nodeType":"ParameterList","parameters":[],"src":"61330:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24591,"nodeType":"FunctionDefinition","src":"61444:198:14","nodes":[],"body":{"id":24590,"nodeType":"Block","src":"61531:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c6164647265737329","id":24582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61581:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f","typeString":"literal_string \"log(address,string,string,address)\""},"value":"log(address,string,string,address)"},{"id":24583,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24570,"src":"61619:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24584,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24572,"src":"61623:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24585,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24574,"src":"61627:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24586,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24576,"src":"61631:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f","typeString":"literal_string \"log(address,string,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24580,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61557:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61561:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61557:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61557:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24579,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"61541:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61541:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24589,"nodeType":"ExpressionStatement","src":"61541:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61453:3:14","parameters":{"id":24577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24570,"mutability":"mutable","name":"p0","nameLocation":"61465:2:14","nodeType":"VariableDeclaration","scope":24591,"src":"61457:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24569,"name":"address","nodeType":"ElementaryTypeName","src":"61457:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24572,"mutability":"mutable","name":"p1","nameLocation":"61483:2:14","nodeType":"VariableDeclaration","scope":24591,"src":"61469:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24571,"name":"string","nodeType":"ElementaryTypeName","src":"61469:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24574,"mutability":"mutable","name":"p2","nameLocation":"61501:2:14","nodeType":"VariableDeclaration","scope":24591,"src":"61487:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24573,"name":"string","nodeType":"ElementaryTypeName","src":"61487:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24576,"mutability":"mutable","name":"p3","nameLocation":"61513:2:14","nodeType":"VariableDeclaration","scope":24591,"src":"61505:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24575,"name":"address","nodeType":"ElementaryTypeName","src":"61505:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"61456:60:14"},"returnParameters":{"id":24578,"nodeType":"ParameterList","parameters":[],"src":"61531:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24614,"nodeType":"FunctionDefinition","src":"61648:187:14","nodes":[],"body":{"id":24613,"nodeType":"Block","src":"61726:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c75696e7432353629","id":24605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61776:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_515e38b61b40d622a4c0448953be005b3991f6a70155c59b5dca42a264aa0345","typeString":"literal_string \"log(address,string,bool,uint256)\""},"value":"log(address,string,bool,uint256)"},{"id":24606,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24593,"src":"61812:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24607,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24595,"src":"61816:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24608,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24597,"src":"61820:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24609,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24599,"src":"61824:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_515e38b61b40d622a4c0448953be005b3991f6a70155c59b5dca42a264aa0345","typeString":"literal_string \"log(address,string,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24603,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61752:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61756:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61752:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61752:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24602,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"61736:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61736:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24612,"nodeType":"ExpressionStatement","src":"61736:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61657:3:14","parameters":{"id":24600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24593,"mutability":"mutable","name":"p0","nameLocation":"61669:2:14","nodeType":"VariableDeclaration","scope":24614,"src":"61661:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24592,"name":"address","nodeType":"ElementaryTypeName","src":"61661:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24595,"mutability":"mutable","name":"p1","nameLocation":"61687:2:14","nodeType":"VariableDeclaration","scope":24614,"src":"61673:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24594,"name":"string","nodeType":"ElementaryTypeName","src":"61673:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24597,"mutability":"mutable","name":"p2","nameLocation":"61696:2:14","nodeType":"VariableDeclaration","scope":24614,"src":"61691:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24596,"name":"bool","nodeType":"ElementaryTypeName","src":"61691:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24599,"mutability":"mutable","name":"p3","nameLocation":"61708:2:14","nodeType":"VariableDeclaration","scope":24614,"src":"61700:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24598,"name":"uint256","nodeType":"ElementaryTypeName","src":"61700:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"61660:51:14"},"returnParameters":{"id":24601,"nodeType":"ParameterList","parameters":[],"src":"61726:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24637,"nodeType":"FunctionDefinition","src":"61841:192:14","nodes":[],"body":{"id":24636,"nodeType":"Block","src":"61925:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c737472696e6729","id":24628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61975:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc","typeString":"literal_string \"log(address,string,bool,string)\""},"value":"log(address,string,bool,string)"},{"id":24629,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24616,"src":"62010:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24630,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24618,"src":"62014:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24631,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24620,"src":"62018:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24632,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24622,"src":"62022:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc","typeString":"literal_string \"log(address,string,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":24626,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61951:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61955:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61951:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61951:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24625,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"61935:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61935:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24635,"nodeType":"ExpressionStatement","src":"61935:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61850:3:14","parameters":{"id":24623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24616,"mutability":"mutable","name":"p0","nameLocation":"61862:2:14","nodeType":"VariableDeclaration","scope":24637,"src":"61854:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24615,"name":"address","nodeType":"ElementaryTypeName","src":"61854:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24618,"mutability":"mutable","name":"p1","nameLocation":"61880:2:14","nodeType":"VariableDeclaration","scope":24637,"src":"61866:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24617,"name":"string","nodeType":"ElementaryTypeName","src":"61866:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24620,"mutability":"mutable","name":"p2","nameLocation":"61889:2:14","nodeType":"VariableDeclaration","scope":24637,"src":"61884:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24619,"name":"bool","nodeType":"ElementaryTypeName","src":"61884:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24622,"mutability":"mutable","name":"p3","nameLocation":"61907:2:14","nodeType":"VariableDeclaration","scope":24637,"src":"61893:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24621,"name":"string","nodeType":"ElementaryTypeName","src":"61893:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"61853:57:14"},"returnParameters":{"id":24624,"nodeType":"ParameterList","parameters":[],"src":"61925:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24660,"nodeType":"FunctionDefinition","src":"62039:181:14","nodes":[],"body":{"id":24659,"nodeType":"Block","src":"62114:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c626f6f6c29","id":24651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62164:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08","typeString":"literal_string \"log(address,string,bool,bool)\""},"value":"log(address,string,bool,bool)"},{"id":24652,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24639,"src":"62197:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24653,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24641,"src":"62201:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24654,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24643,"src":"62205:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24655,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24645,"src":"62209:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08","typeString":"literal_string \"log(address,string,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":24649,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62140:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62144:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62140:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62140:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24648,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"62124:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62124:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24658,"nodeType":"ExpressionStatement","src":"62124:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62048:3:14","parameters":{"id":24646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24639,"mutability":"mutable","name":"p0","nameLocation":"62060:2:14","nodeType":"VariableDeclaration","scope":24660,"src":"62052:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24638,"name":"address","nodeType":"ElementaryTypeName","src":"62052:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24641,"mutability":"mutable","name":"p1","nameLocation":"62078:2:14","nodeType":"VariableDeclaration","scope":24660,"src":"62064:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24640,"name":"string","nodeType":"ElementaryTypeName","src":"62064:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24643,"mutability":"mutable","name":"p2","nameLocation":"62087:2:14","nodeType":"VariableDeclaration","scope":24660,"src":"62082:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24642,"name":"bool","nodeType":"ElementaryTypeName","src":"62082:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24645,"mutability":"mutable","name":"p3","nameLocation":"62096:2:14","nodeType":"VariableDeclaration","scope":24660,"src":"62091:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24644,"name":"bool","nodeType":"ElementaryTypeName","src":"62091:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"62051:48:14"},"returnParameters":{"id":24647,"nodeType":"ParameterList","parameters":[],"src":"62114:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24683,"nodeType":"FunctionDefinition","src":"62226:187:14","nodes":[],"body":{"id":24682,"nodeType":"Block","src":"62304:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c6164647265737329","id":24674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62354:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970","typeString":"literal_string \"log(address,string,bool,address)\""},"value":"log(address,string,bool,address)"},{"id":24675,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24662,"src":"62390:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24676,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24664,"src":"62394:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24677,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24666,"src":"62398:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24678,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24668,"src":"62402:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970","typeString":"literal_string \"log(address,string,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24672,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62330:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62334:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62330:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62330:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24671,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"62314:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62314:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24681,"nodeType":"ExpressionStatement","src":"62314:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62235:3:14","parameters":{"id":24669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24662,"mutability":"mutable","name":"p0","nameLocation":"62247:2:14","nodeType":"VariableDeclaration","scope":24683,"src":"62239:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24661,"name":"address","nodeType":"ElementaryTypeName","src":"62239:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24664,"mutability":"mutable","name":"p1","nameLocation":"62265:2:14","nodeType":"VariableDeclaration","scope":24683,"src":"62251:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24663,"name":"string","nodeType":"ElementaryTypeName","src":"62251:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24666,"mutability":"mutable","name":"p2","nameLocation":"62274:2:14","nodeType":"VariableDeclaration","scope":24683,"src":"62269:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24665,"name":"bool","nodeType":"ElementaryTypeName","src":"62269:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24668,"mutability":"mutable","name":"p3","nameLocation":"62286:2:14","nodeType":"VariableDeclaration","scope":24683,"src":"62278:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24667,"name":"address","nodeType":"ElementaryTypeName","src":"62278:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"62238:51:14"},"returnParameters":{"id":24670,"nodeType":"ParameterList","parameters":[],"src":"62304:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24706,"nodeType":"FunctionDefinition","src":"62419:193:14","nodes":[],"body":{"id":24705,"nodeType":"Block","src":"62500:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c75696e7432353629","id":24697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62550:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_457fe3cf7da0d45ce051e53ef9adc21213d4d7779b5a0fadf99dea432be4beb7","typeString":"literal_string \"log(address,string,address,uint256)\""},"value":"log(address,string,address,uint256)"},{"id":24698,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24685,"src":"62589:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24699,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24687,"src":"62593:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24700,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24689,"src":"62597:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24701,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24691,"src":"62601:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_457fe3cf7da0d45ce051e53ef9adc21213d4d7779b5a0fadf99dea432be4beb7","typeString":"literal_string \"log(address,string,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24695,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62526:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24696,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62530:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62526:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62526:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24694,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"62510:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62510:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24704,"nodeType":"ExpressionStatement","src":"62510:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62428:3:14","parameters":{"id":24692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24685,"mutability":"mutable","name":"p0","nameLocation":"62440:2:14","nodeType":"VariableDeclaration","scope":24706,"src":"62432:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24684,"name":"address","nodeType":"ElementaryTypeName","src":"62432:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24687,"mutability":"mutable","name":"p1","nameLocation":"62458:2:14","nodeType":"VariableDeclaration","scope":24706,"src":"62444:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24686,"name":"string","nodeType":"ElementaryTypeName","src":"62444:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24689,"mutability":"mutable","name":"p2","nameLocation":"62470:2:14","nodeType":"VariableDeclaration","scope":24706,"src":"62462:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24688,"name":"address","nodeType":"ElementaryTypeName","src":"62462:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24691,"mutability":"mutable","name":"p3","nameLocation":"62482:2:14","nodeType":"VariableDeclaration","scope":24706,"src":"62474:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24690,"name":"uint256","nodeType":"ElementaryTypeName","src":"62474:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"62431:54:14"},"returnParameters":{"id":24693,"nodeType":"ParameterList","parameters":[],"src":"62500:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24729,"nodeType":"FunctionDefinition","src":"62618:198:14","nodes":[],"body":{"id":24728,"nodeType":"Block","src":"62705:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c737472696e6729","id":24720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62755:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea","typeString":"literal_string \"log(address,string,address,string)\""},"value":"log(address,string,address,string)"},{"id":24721,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24708,"src":"62793:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24722,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24710,"src":"62797:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24723,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24712,"src":"62801:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24724,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24714,"src":"62805:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea","typeString":"literal_string \"log(address,string,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":24718,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62731:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62735:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62731:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62731:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24717,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"62715:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62715:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24727,"nodeType":"ExpressionStatement","src":"62715:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62627:3:14","parameters":{"id":24715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24708,"mutability":"mutable","name":"p0","nameLocation":"62639:2:14","nodeType":"VariableDeclaration","scope":24729,"src":"62631:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24707,"name":"address","nodeType":"ElementaryTypeName","src":"62631:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24710,"mutability":"mutable","name":"p1","nameLocation":"62657:2:14","nodeType":"VariableDeclaration","scope":24729,"src":"62643:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24709,"name":"string","nodeType":"ElementaryTypeName","src":"62643:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24712,"mutability":"mutable","name":"p2","nameLocation":"62669:2:14","nodeType":"VariableDeclaration","scope":24729,"src":"62661:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24711,"name":"address","nodeType":"ElementaryTypeName","src":"62661:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24714,"mutability":"mutable","name":"p3","nameLocation":"62687:2:14","nodeType":"VariableDeclaration","scope":24729,"src":"62673:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24713,"name":"string","nodeType":"ElementaryTypeName","src":"62673:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"62630:60:14"},"returnParameters":{"id":24716,"nodeType":"ParameterList","parameters":[],"src":"62705:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24752,"nodeType":"FunctionDefinition","src":"62822:187:14","nodes":[],"body":{"id":24751,"nodeType":"Block","src":"62900:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c626f6f6c29","id":24743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62950:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081","typeString":"literal_string \"log(address,string,address,bool)\""},"value":"log(address,string,address,bool)"},{"id":24744,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24731,"src":"62986:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24745,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24733,"src":"62990:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24746,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24735,"src":"62994:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24747,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24737,"src":"62998:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081","typeString":"literal_string \"log(address,string,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":24741,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62926:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62930:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62926:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62926:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24740,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"62910:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62910:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24750,"nodeType":"ExpressionStatement","src":"62910:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62831:3:14","parameters":{"id":24738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24731,"mutability":"mutable","name":"p0","nameLocation":"62843:2:14","nodeType":"VariableDeclaration","scope":24752,"src":"62835:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24730,"name":"address","nodeType":"ElementaryTypeName","src":"62835:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24733,"mutability":"mutable","name":"p1","nameLocation":"62861:2:14","nodeType":"VariableDeclaration","scope":24752,"src":"62847:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24732,"name":"string","nodeType":"ElementaryTypeName","src":"62847:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24735,"mutability":"mutable","name":"p2","nameLocation":"62873:2:14","nodeType":"VariableDeclaration","scope":24752,"src":"62865:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24734,"name":"address","nodeType":"ElementaryTypeName","src":"62865:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24737,"mutability":"mutable","name":"p3","nameLocation":"62882:2:14","nodeType":"VariableDeclaration","scope":24752,"src":"62877:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24736,"name":"bool","nodeType":"ElementaryTypeName","src":"62877:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"62834:51:14"},"returnParameters":{"id":24739,"nodeType":"ParameterList","parameters":[],"src":"62900:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24775,"nodeType":"FunctionDefinition","src":"63015:193:14","nodes":[],"body":{"id":24774,"nodeType":"Block","src":"63096:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c6164647265737329","id":24766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63146:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121","typeString":"literal_string \"log(address,string,address,address)\""},"value":"log(address,string,address,address)"},{"id":24767,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24754,"src":"63185:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24768,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24756,"src":"63189:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24769,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24758,"src":"63193:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24770,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24760,"src":"63197:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121","typeString":"literal_string \"log(address,string,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24764,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63122:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63126:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63122:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63122:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24763,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"63106:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63106:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24773,"nodeType":"ExpressionStatement","src":"63106:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63024:3:14","parameters":{"id":24761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24754,"mutability":"mutable","name":"p0","nameLocation":"63036:2:14","nodeType":"VariableDeclaration","scope":24775,"src":"63028:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24753,"name":"address","nodeType":"ElementaryTypeName","src":"63028:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24756,"mutability":"mutable","name":"p1","nameLocation":"63054:2:14","nodeType":"VariableDeclaration","scope":24775,"src":"63040:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24755,"name":"string","nodeType":"ElementaryTypeName","src":"63040:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24758,"mutability":"mutable","name":"p2","nameLocation":"63066:2:14","nodeType":"VariableDeclaration","scope":24775,"src":"63058:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24757,"name":"address","nodeType":"ElementaryTypeName","src":"63058:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24760,"mutability":"mutable","name":"p3","nameLocation":"63078:2:14","nodeType":"VariableDeclaration","scope":24775,"src":"63070:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24759,"name":"address","nodeType":"ElementaryTypeName","src":"63070:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"63027:54:14"},"returnParameters":{"id":24762,"nodeType":"ParameterList","parameters":[],"src":"63096:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24798,"nodeType":"FunctionDefinition","src":"63214:182:14","nodes":[],"body":{"id":24797,"nodeType":"Block","src":"63286:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c75696e7432353629","id":24789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63336:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_386ff5f4530ea008cf639214e5b8a55077ec58314989bc72a4ee1f3ffe9617a4","typeString":"literal_string \"log(address,bool,uint256,uint256)\""},"value":"log(address,bool,uint256,uint256)"},{"id":24790,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24777,"src":"63373:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24791,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24779,"src":"63377:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24792,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24781,"src":"63381:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24793,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24783,"src":"63385:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_386ff5f4530ea008cf639214e5b8a55077ec58314989bc72a4ee1f3ffe9617a4","typeString":"literal_string \"log(address,bool,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24787,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63312:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24788,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63316:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63312:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63312:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24786,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"63296:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63296:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24796,"nodeType":"ExpressionStatement","src":"63296:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63223:3:14","parameters":{"id":24784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24777,"mutability":"mutable","name":"p0","nameLocation":"63235:2:14","nodeType":"VariableDeclaration","scope":24798,"src":"63227:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24776,"name":"address","nodeType":"ElementaryTypeName","src":"63227:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24779,"mutability":"mutable","name":"p1","nameLocation":"63244:2:14","nodeType":"VariableDeclaration","scope":24798,"src":"63239:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24778,"name":"bool","nodeType":"ElementaryTypeName","src":"63239:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24781,"mutability":"mutable","name":"p2","nameLocation":"63256:2:14","nodeType":"VariableDeclaration","scope":24798,"src":"63248:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24780,"name":"uint256","nodeType":"ElementaryTypeName","src":"63248:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24783,"mutability":"mutable","name":"p3","nameLocation":"63268:2:14","nodeType":"VariableDeclaration","scope":24798,"src":"63260:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24782,"name":"uint256","nodeType":"ElementaryTypeName","src":"63260:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"63226:45:14"},"returnParameters":{"id":24785,"nodeType":"ParameterList","parameters":[],"src":"63286:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24821,"nodeType":"FunctionDefinition","src":"63402:187:14","nodes":[],"body":{"id":24820,"nodeType":"Block","src":"63480:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c737472696e6729","id":24812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63530:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_0aa6cfad2c268cd387390ada6d4a75b3aa3e38d6511517eb59fcd07a90f9c283","typeString":"literal_string \"log(address,bool,uint256,string)\""},"value":"log(address,bool,uint256,string)"},{"id":24813,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24800,"src":"63566:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24814,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24802,"src":"63570:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24815,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24804,"src":"63574:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24816,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24806,"src":"63578:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0aa6cfad2c268cd387390ada6d4a75b3aa3e38d6511517eb59fcd07a90f9c283","typeString":"literal_string \"log(address,bool,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":24810,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63506:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24811,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63510:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63506:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63506:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24809,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"63490:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63490:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24819,"nodeType":"ExpressionStatement","src":"63490:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63411:3:14","parameters":{"id":24807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24800,"mutability":"mutable","name":"p0","nameLocation":"63423:2:14","nodeType":"VariableDeclaration","scope":24821,"src":"63415:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24799,"name":"address","nodeType":"ElementaryTypeName","src":"63415:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24802,"mutability":"mutable","name":"p1","nameLocation":"63432:2:14","nodeType":"VariableDeclaration","scope":24821,"src":"63427:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24801,"name":"bool","nodeType":"ElementaryTypeName","src":"63427:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24804,"mutability":"mutable","name":"p2","nameLocation":"63444:2:14","nodeType":"VariableDeclaration","scope":24821,"src":"63436:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24803,"name":"uint256","nodeType":"ElementaryTypeName","src":"63436:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24806,"mutability":"mutable","name":"p3","nameLocation":"63462:2:14","nodeType":"VariableDeclaration","scope":24821,"src":"63448:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24805,"name":"string","nodeType":"ElementaryTypeName","src":"63448:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63414:51:14"},"returnParameters":{"id":24808,"nodeType":"ParameterList","parameters":[],"src":"63480:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24844,"nodeType":"FunctionDefinition","src":"63595:176:14","nodes":[],"body":{"id":24843,"nodeType":"Block","src":"63664:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c626f6f6c29","id":24835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63714:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4643e20494ddb98fe78bc587bcecbcc7db255edcee8232992e8be9b00c4713c","typeString":"literal_string \"log(address,bool,uint256,bool)\""},"value":"log(address,bool,uint256,bool)"},{"id":24836,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24823,"src":"63748:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24837,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24825,"src":"63752:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24838,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24827,"src":"63756:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24839,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24829,"src":"63760:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c4643e20494ddb98fe78bc587bcecbcc7db255edcee8232992e8be9b00c4713c","typeString":"literal_string \"log(address,bool,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":24833,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63690:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63694:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63690:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63690:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24832,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"63674:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63674:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24842,"nodeType":"ExpressionStatement","src":"63674:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63604:3:14","parameters":{"id":24830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24823,"mutability":"mutable","name":"p0","nameLocation":"63616:2:14","nodeType":"VariableDeclaration","scope":24844,"src":"63608:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24822,"name":"address","nodeType":"ElementaryTypeName","src":"63608:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24825,"mutability":"mutable","name":"p1","nameLocation":"63625:2:14","nodeType":"VariableDeclaration","scope":24844,"src":"63620:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24824,"name":"bool","nodeType":"ElementaryTypeName","src":"63620:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24827,"mutability":"mutable","name":"p2","nameLocation":"63637:2:14","nodeType":"VariableDeclaration","scope":24844,"src":"63629:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24826,"name":"uint256","nodeType":"ElementaryTypeName","src":"63629:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24829,"mutability":"mutable","name":"p3","nameLocation":"63646:2:14","nodeType":"VariableDeclaration","scope":24844,"src":"63641:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24828,"name":"bool","nodeType":"ElementaryTypeName","src":"63641:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"63607:42:14"},"returnParameters":{"id":24831,"nodeType":"ParameterList","parameters":[],"src":"63664:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24867,"nodeType":"FunctionDefinition","src":"63777:182:14","nodes":[],"body":{"id":24866,"nodeType":"Block","src":"63849:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c6164647265737329","id":24858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63899:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ccf790a175b1b762ef5bfd3564f0b74c078f15eca08b8ee654a38a96a5ad2aee","typeString":"literal_string \"log(address,bool,uint256,address)\""},"value":"log(address,bool,uint256,address)"},{"id":24859,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24846,"src":"63936:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24860,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24848,"src":"63940:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24861,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24850,"src":"63944:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24862,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24852,"src":"63948:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ccf790a175b1b762ef5bfd3564f0b74c078f15eca08b8ee654a38a96a5ad2aee","typeString":"literal_string \"log(address,bool,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24856,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63875:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24857,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63879:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63875:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63875:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24855,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"63859:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63859:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24865,"nodeType":"ExpressionStatement","src":"63859:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63786:3:14","parameters":{"id":24853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24846,"mutability":"mutable","name":"p0","nameLocation":"63798:2:14","nodeType":"VariableDeclaration","scope":24867,"src":"63790:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24845,"name":"address","nodeType":"ElementaryTypeName","src":"63790:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24848,"mutability":"mutable","name":"p1","nameLocation":"63807:2:14","nodeType":"VariableDeclaration","scope":24867,"src":"63802:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24847,"name":"bool","nodeType":"ElementaryTypeName","src":"63802:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24850,"mutability":"mutable","name":"p2","nameLocation":"63819:2:14","nodeType":"VariableDeclaration","scope":24867,"src":"63811:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24849,"name":"uint256","nodeType":"ElementaryTypeName","src":"63811:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24852,"mutability":"mutable","name":"p3","nameLocation":"63831:2:14","nodeType":"VariableDeclaration","scope":24867,"src":"63823:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24851,"name":"address","nodeType":"ElementaryTypeName","src":"63823:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"63789:45:14"},"returnParameters":{"id":24854,"nodeType":"ParameterList","parameters":[],"src":"63849:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24890,"nodeType":"FunctionDefinition","src":"63965:187:14","nodes":[],"body":{"id":24889,"nodeType":"Block","src":"64043:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c75696e7432353629","id":24881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64093:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_80e6a20b48643c1f2494eae694f173a69e42da349d0e193e48fece80e869df69","typeString":"literal_string \"log(address,bool,string,uint256)\""},"value":"log(address,bool,string,uint256)"},{"id":24882,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24869,"src":"64129:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24883,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24871,"src":"64133:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24884,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24873,"src":"64137:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24885,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24875,"src":"64141:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_80e6a20b48643c1f2494eae694f173a69e42da349d0e193e48fece80e869df69","typeString":"literal_string \"log(address,bool,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24879,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64069:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64073:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64069:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64069:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24878,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"64053:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64053:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24888,"nodeType":"ExpressionStatement","src":"64053:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63974:3:14","parameters":{"id":24876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24869,"mutability":"mutable","name":"p0","nameLocation":"63986:2:14","nodeType":"VariableDeclaration","scope":24890,"src":"63978:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24868,"name":"address","nodeType":"ElementaryTypeName","src":"63978:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24871,"mutability":"mutable","name":"p1","nameLocation":"63995:2:14","nodeType":"VariableDeclaration","scope":24890,"src":"63990:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24870,"name":"bool","nodeType":"ElementaryTypeName","src":"63990:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24873,"mutability":"mutable","name":"p2","nameLocation":"64013:2:14","nodeType":"VariableDeclaration","scope":24890,"src":"63999:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24872,"name":"string","nodeType":"ElementaryTypeName","src":"63999:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24875,"mutability":"mutable","name":"p3","nameLocation":"64025:2:14","nodeType":"VariableDeclaration","scope":24890,"src":"64017:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24874,"name":"uint256","nodeType":"ElementaryTypeName","src":"64017:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"63977:51:14"},"returnParameters":{"id":24877,"nodeType":"ParameterList","parameters":[],"src":"64043:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24913,"nodeType":"FunctionDefinition","src":"64158:192:14","nodes":[],"body":{"id":24912,"nodeType":"Block","src":"64242:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c737472696e6729","id":24904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64292:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f","typeString":"literal_string \"log(address,bool,string,string)\""},"value":"log(address,bool,string,string)"},{"id":24905,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24892,"src":"64327:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24906,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24894,"src":"64331:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24907,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24896,"src":"64335:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24908,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24898,"src":"64339:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f","typeString":"literal_string \"log(address,bool,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":24902,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64268:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64272:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64268:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64268:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24901,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"64252:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64252:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24911,"nodeType":"ExpressionStatement","src":"64252:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64167:3:14","parameters":{"id":24899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24892,"mutability":"mutable","name":"p0","nameLocation":"64179:2:14","nodeType":"VariableDeclaration","scope":24913,"src":"64171:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24891,"name":"address","nodeType":"ElementaryTypeName","src":"64171:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24894,"mutability":"mutable","name":"p1","nameLocation":"64188:2:14","nodeType":"VariableDeclaration","scope":24913,"src":"64183:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24893,"name":"bool","nodeType":"ElementaryTypeName","src":"64183:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24896,"mutability":"mutable","name":"p2","nameLocation":"64206:2:14","nodeType":"VariableDeclaration","scope":24913,"src":"64192:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24895,"name":"string","nodeType":"ElementaryTypeName","src":"64192:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24898,"mutability":"mutable","name":"p3","nameLocation":"64224:2:14","nodeType":"VariableDeclaration","scope":24913,"src":"64210:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24897,"name":"string","nodeType":"ElementaryTypeName","src":"64210:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"64170:57:14"},"returnParameters":{"id":24900,"nodeType":"ParameterList","parameters":[],"src":"64242:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24936,"nodeType":"FunctionDefinition","src":"64356:181:14","nodes":[],"body":{"id":24935,"nodeType":"Block","src":"64431:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c626f6f6c29","id":24927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64481:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f","typeString":"literal_string \"log(address,bool,string,bool)\""},"value":"log(address,bool,string,bool)"},{"id":24928,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24915,"src":"64514:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24929,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24917,"src":"64518:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24930,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24919,"src":"64522:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24931,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24921,"src":"64526:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f","typeString":"literal_string \"log(address,bool,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":24925,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64457:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64461:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64457:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64457:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24924,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"64441:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64441:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24934,"nodeType":"ExpressionStatement","src":"64441:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64365:3:14","parameters":{"id":24922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24915,"mutability":"mutable","name":"p0","nameLocation":"64377:2:14","nodeType":"VariableDeclaration","scope":24936,"src":"64369:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24914,"name":"address","nodeType":"ElementaryTypeName","src":"64369:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24917,"mutability":"mutable","name":"p1","nameLocation":"64386:2:14","nodeType":"VariableDeclaration","scope":24936,"src":"64381:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24916,"name":"bool","nodeType":"ElementaryTypeName","src":"64381:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24919,"mutability":"mutable","name":"p2","nameLocation":"64404:2:14","nodeType":"VariableDeclaration","scope":24936,"src":"64390:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24918,"name":"string","nodeType":"ElementaryTypeName","src":"64390:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24921,"mutability":"mutable","name":"p3","nameLocation":"64413:2:14","nodeType":"VariableDeclaration","scope":24936,"src":"64408:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24920,"name":"bool","nodeType":"ElementaryTypeName","src":"64408:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"64368:48:14"},"returnParameters":{"id":24923,"nodeType":"ParameterList","parameters":[],"src":"64431:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24959,"nodeType":"FunctionDefinition","src":"64543:187:14","nodes":[],"body":{"id":24958,"nodeType":"Block","src":"64621:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c6164647265737329","id":24950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64671:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc","typeString":"literal_string \"log(address,bool,string,address)\""},"value":"log(address,bool,string,address)"},{"id":24951,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24938,"src":"64707:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24952,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24940,"src":"64711:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24953,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24942,"src":"64715:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24954,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24944,"src":"64719:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc","typeString":"literal_string \"log(address,bool,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24948,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64647:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64651:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64647:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64647:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24947,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"64631:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64631:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24957,"nodeType":"ExpressionStatement","src":"64631:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64552:3:14","parameters":{"id":24945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24938,"mutability":"mutable","name":"p0","nameLocation":"64564:2:14","nodeType":"VariableDeclaration","scope":24959,"src":"64556:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24937,"name":"address","nodeType":"ElementaryTypeName","src":"64556:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24940,"mutability":"mutable","name":"p1","nameLocation":"64573:2:14","nodeType":"VariableDeclaration","scope":24959,"src":"64568:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24939,"name":"bool","nodeType":"ElementaryTypeName","src":"64568:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24942,"mutability":"mutable","name":"p2","nameLocation":"64591:2:14","nodeType":"VariableDeclaration","scope":24959,"src":"64577:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24941,"name":"string","nodeType":"ElementaryTypeName","src":"64577:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24944,"mutability":"mutable","name":"p3","nameLocation":"64603:2:14","nodeType":"VariableDeclaration","scope":24959,"src":"64595:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24943,"name":"address","nodeType":"ElementaryTypeName","src":"64595:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"64555:51:14"},"returnParameters":{"id":24946,"nodeType":"ParameterList","parameters":[],"src":"64621:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":24982,"nodeType":"FunctionDefinition","src":"64736:176:14","nodes":[],"body":{"id":24981,"nodeType":"Block","src":"64805:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c75696e7432353629","id":24973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64855:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c4e5de62881fec144fb423112f08d23c6aca116363a7b195024519470acf22e","typeString":"literal_string \"log(address,bool,bool,uint256)\""},"value":"log(address,bool,bool,uint256)"},{"id":24974,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24961,"src":"64889:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24975,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24963,"src":"64893:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24976,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24965,"src":"64897:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24977,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24967,"src":"64901:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c4e5de62881fec144fb423112f08d23c6aca116363a7b195024519470acf22e","typeString":"literal_string \"log(address,bool,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24971,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64831:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64835:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64831:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64831:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24970,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"64815:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":24979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64815:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24980,"nodeType":"ExpressionStatement","src":"64815:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64745:3:14","parameters":{"id":24968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24961,"mutability":"mutable","name":"p0","nameLocation":"64757:2:14","nodeType":"VariableDeclaration","scope":24982,"src":"64749:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24960,"name":"address","nodeType":"ElementaryTypeName","src":"64749:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24963,"mutability":"mutable","name":"p1","nameLocation":"64766:2:14","nodeType":"VariableDeclaration","scope":24982,"src":"64761:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24962,"name":"bool","nodeType":"ElementaryTypeName","src":"64761:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24965,"mutability":"mutable","name":"p2","nameLocation":"64775:2:14","nodeType":"VariableDeclaration","scope":24982,"src":"64770:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24964,"name":"bool","nodeType":"ElementaryTypeName","src":"64770:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24967,"mutability":"mutable","name":"p3","nameLocation":"64787:2:14","nodeType":"VariableDeclaration","scope":24982,"src":"64779:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24966,"name":"uint256","nodeType":"ElementaryTypeName","src":"64779:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"64748:42:14"},"returnParameters":{"id":24969,"nodeType":"ParameterList","parameters":[],"src":"64805:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25005,"nodeType":"FunctionDefinition","src":"64918:181:14","nodes":[],"body":{"id":25004,"nodeType":"Block","src":"64993:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c737472696e6729","id":24996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65043:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300","typeString":"literal_string \"log(address,bool,bool,string)\""},"value":"log(address,bool,bool,string)"},{"id":24997,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24984,"src":"65076:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24998,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24986,"src":"65080:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24999,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24988,"src":"65084:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25000,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24990,"src":"65088:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300","typeString":"literal_string \"log(address,bool,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":24994,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65019:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24995,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65023:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65019:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65019:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24993,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"65003:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65003:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25003,"nodeType":"ExpressionStatement","src":"65003:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64927:3:14","parameters":{"id":24991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24984,"mutability":"mutable","name":"p0","nameLocation":"64939:2:14","nodeType":"VariableDeclaration","scope":25005,"src":"64931:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24983,"name":"address","nodeType":"ElementaryTypeName","src":"64931:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24986,"mutability":"mutable","name":"p1","nameLocation":"64948:2:14","nodeType":"VariableDeclaration","scope":25005,"src":"64943:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24985,"name":"bool","nodeType":"ElementaryTypeName","src":"64943:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24988,"mutability":"mutable","name":"p2","nameLocation":"64957:2:14","nodeType":"VariableDeclaration","scope":25005,"src":"64952:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24987,"name":"bool","nodeType":"ElementaryTypeName","src":"64952:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24990,"mutability":"mutable","name":"p3","nameLocation":"64975:2:14","nodeType":"VariableDeclaration","scope":25005,"src":"64961:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24989,"name":"string","nodeType":"ElementaryTypeName","src":"64961:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"64930:48:14"},"returnParameters":{"id":24992,"nodeType":"ParameterList","parameters":[],"src":"64993:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25028,"nodeType":"FunctionDefinition","src":"65105:170:14","nodes":[],"body":{"id":25027,"nodeType":"Block","src":"65171:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c626f6f6c29","id":25019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65221:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634","typeString":"literal_string \"log(address,bool,bool,bool)\""},"value":"log(address,bool,bool,bool)"},{"id":25020,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25007,"src":"65252:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25021,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25009,"src":"65256:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25022,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25011,"src":"65260:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25023,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25013,"src":"65264:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634","typeString":"literal_string \"log(address,bool,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":25017,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65197:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65201:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65197:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65197:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25016,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"65181:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65181:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25026,"nodeType":"ExpressionStatement","src":"65181:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65114:3:14","parameters":{"id":25014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25007,"mutability":"mutable","name":"p0","nameLocation":"65126:2:14","nodeType":"VariableDeclaration","scope":25028,"src":"65118:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25006,"name":"address","nodeType":"ElementaryTypeName","src":"65118:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25009,"mutability":"mutable","name":"p1","nameLocation":"65135:2:14","nodeType":"VariableDeclaration","scope":25028,"src":"65130:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25008,"name":"bool","nodeType":"ElementaryTypeName","src":"65130:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25011,"mutability":"mutable","name":"p2","nameLocation":"65144:2:14","nodeType":"VariableDeclaration","scope":25028,"src":"65139:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25010,"name":"bool","nodeType":"ElementaryTypeName","src":"65139:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25013,"mutability":"mutable","name":"p3","nameLocation":"65153:2:14","nodeType":"VariableDeclaration","scope":25028,"src":"65148:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25012,"name":"bool","nodeType":"ElementaryTypeName","src":"65148:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"65117:39:14"},"returnParameters":{"id":25015,"nodeType":"ParameterList","parameters":[],"src":"65171:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25051,"nodeType":"FunctionDefinition","src":"65281:176:14","nodes":[],"body":{"id":25050,"nodeType":"Block","src":"65350:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c6164647265737329","id":25042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65400:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953","typeString":"literal_string \"log(address,bool,bool,address)\""},"value":"log(address,bool,bool,address)"},{"id":25043,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25030,"src":"65434:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25044,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25032,"src":"65438:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25045,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25034,"src":"65442:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25046,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25036,"src":"65446:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953","typeString":"literal_string \"log(address,bool,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25040,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65376:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65380:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65376:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65376:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25039,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"65360:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65360:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25049,"nodeType":"ExpressionStatement","src":"65360:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65290:3:14","parameters":{"id":25037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25030,"mutability":"mutable","name":"p0","nameLocation":"65302:2:14","nodeType":"VariableDeclaration","scope":25051,"src":"65294:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25029,"name":"address","nodeType":"ElementaryTypeName","src":"65294:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25032,"mutability":"mutable","name":"p1","nameLocation":"65311:2:14","nodeType":"VariableDeclaration","scope":25051,"src":"65306:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25031,"name":"bool","nodeType":"ElementaryTypeName","src":"65306:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25034,"mutability":"mutable","name":"p2","nameLocation":"65320:2:14","nodeType":"VariableDeclaration","scope":25051,"src":"65315:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25033,"name":"bool","nodeType":"ElementaryTypeName","src":"65315:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25036,"mutability":"mutable","name":"p3","nameLocation":"65332:2:14","nodeType":"VariableDeclaration","scope":25051,"src":"65324:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25035,"name":"address","nodeType":"ElementaryTypeName","src":"65324:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"65293:42:14"},"returnParameters":{"id":25038,"nodeType":"ParameterList","parameters":[],"src":"65350:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25074,"nodeType":"FunctionDefinition","src":"65463:182:14","nodes":[],"body":{"id":25073,"nodeType":"Block","src":"65535:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c75696e7432353629","id":25065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65585:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a75c59de36827f2596ade7bd79f668ae219518c12b79ebf06071586765c3e039","typeString":"literal_string \"log(address,bool,address,uint256)\""},"value":"log(address,bool,address,uint256)"},{"id":25066,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25053,"src":"65622:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25067,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25055,"src":"65626:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25068,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25057,"src":"65630:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25069,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25059,"src":"65634:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a75c59de36827f2596ade7bd79f668ae219518c12b79ebf06071586765c3e039","typeString":"literal_string \"log(address,bool,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25063,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65561:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65565:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65561:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65561:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25062,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"65545:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65545:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25072,"nodeType":"ExpressionStatement","src":"65545:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65472:3:14","parameters":{"id":25060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25053,"mutability":"mutable","name":"p0","nameLocation":"65484:2:14","nodeType":"VariableDeclaration","scope":25074,"src":"65476:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25052,"name":"address","nodeType":"ElementaryTypeName","src":"65476:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25055,"mutability":"mutable","name":"p1","nameLocation":"65493:2:14","nodeType":"VariableDeclaration","scope":25074,"src":"65488:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25054,"name":"bool","nodeType":"ElementaryTypeName","src":"65488:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25057,"mutability":"mutable","name":"p2","nameLocation":"65505:2:14","nodeType":"VariableDeclaration","scope":25074,"src":"65497:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25056,"name":"address","nodeType":"ElementaryTypeName","src":"65497:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25059,"mutability":"mutable","name":"p3","nameLocation":"65517:2:14","nodeType":"VariableDeclaration","scope":25074,"src":"65509:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25058,"name":"uint256","nodeType":"ElementaryTypeName","src":"65509:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"65475:45:14"},"returnParameters":{"id":25061,"nodeType":"ParameterList","parameters":[],"src":"65535:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25097,"nodeType":"FunctionDefinition","src":"65651:187:14","nodes":[],"body":{"id":25096,"nodeType":"Block","src":"65729:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c737472696e6729","id":25088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65779:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453","typeString":"literal_string \"log(address,bool,address,string)\""},"value":"log(address,bool,address,string)"},{"id":25089,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25076,"src":"65815:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25090,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25078,"src":"65819:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25091,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25080,"src":"65823:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25092,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25082,"src":"65827:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453","typeString":"literal_string \"log(address,bool,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":25086,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65755:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65759:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65755:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65755:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25085,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"65739:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65739:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25095,"nodeType":"ExpressionStatement","src":"65739:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65660:3:14","parameters":{"id":25083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25076,"mutability":"mutable","name":"p0","nameLocation":"65672:2:14","nodeType":"VariableDeclaration","scope":25097,"src":"65664:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25075,"name":"address","nodeType":"ElementaryTypeName","src":"65664:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25078,"mutability":"mutable","name":"p1","nameLocation":"65681:2:14","nodeType":"VariableDeclaration","scope":25097,"src":"65676:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25077,"name":"bool","nodeType":"ElementaryTypeName","src":"65676:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25080,"mutability":"mutable","name":"p2","nameLocation":"65693:2:14","nodeType":"VariableDeclaration","scope":25097,"src":"65685:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25079,"name":"address","nodeType":"ElementaryTypeName","src":"65685:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25082,"mutability":"mutable","name":"p3","nameLocation":"65711:2:14","nodeType":"VariableDeclaration","scope":25097,"src":"65697:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25081,"name":"string","nodeType":"ElementaryTypeName","src":"65697:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"65663:51:14"},"returnParameters":{"id":25084,"nodeType":"ParameterList","parameters":[],"src":"65729:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25120,"nodeType":"FunctionDefinition","src":"65844:176:14","nodes":[],"body":{"id":25119,"nodeType":"Block","src":"65913:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c626f6f6c29","id":25111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65963:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1","typeString":"literal_string \"log(address,bool,address,bool)\""},"value":"log(address,bool,address,bool)"},{"id":25112,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25099,"src":"65997:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25113,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25101,"src":"66001:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25114,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25103,"src":"66005:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25115,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25105,"src":"66009:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1","typeString":"literal_string \"log(address,bool,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":25109,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65939:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65943:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65939:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65939:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25108,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"65923:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65923:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25118,"nodeType":"ExpressionStatement","src":"65923:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65853:3:14","parameters":{"id":25106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25099,"mutability":"mutable","name":"p0","nameLocation":"65865:2:14","nodeType":"VariableDeclaration","scope":25120,"src":"65857:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25098,"name":"address","nodeType":"ElementaryTypeName","src":"65857:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25101,"mutability":"mutable","name":"p1","nameLocation":"65874:2:14","nodeType":"VariableDeclaration","scope":25120,"src":"65869:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25100,"name":"bool","nodeType":"ElementaryTypeName","src":"65869:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25103,"mutability":"mutable","name":"p2","nameLocation":"65886:2:14","nodeType":"VariableDeclaration","scope":25120,"src":"65878:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25102,"name":"address","nodeType":"ElementaryTypeName","src":"65878:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25105,"mutability":"mutable","name":"p3","nameLocation":"65895:2:14","nodeType":"VariableDeclaration","scope":25120,"src":"65890:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25104,"name":"bool","nodeType":"ElementaryTypeName","src":"65890:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"65856:42:14"},"returnParameters":{"id":25107,"nodeType":"ParameterList","parameters":[],"src":"65913:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25143,"nodeType":"FunctionDefinition","src":"66026:182:14","nodes":[],"body":{"id":25142,"nodeType":"Block","src":"66098:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c6164647265737329","id":25134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66148:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35","typeString":"literal_string \"log(address,bool,address,address)\""},"value":"log(address,bool,address,address)"},{"id":25135,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25122,"src":"66185:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25136,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25124,"src":"66189:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25137,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25126,"src":"66193:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25138,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25128,"src":"66197:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35","typeString":"literal_string \"log(address,bool,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25132,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66124:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25133,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66128:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66124:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66124:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25131,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"66108:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66108:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25141,"nodeType":"ExpressionStatement","src":"66108:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66035:3:14","parameters":{"id":25129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25122,"mutability":"mutable","name":"p0","nameLocation":"66047:2:14","nodeType":"VariableDeclaration","scope":25143,"src":"66039:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25121,"name":"address","nodeType":"ElementaryTypeName","src":"66039:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25124,"mutability":"mutable","name":"p1","nameLocation":"66056:2:14","nodeType":"VariableDeclaration","scope":25143,"src":"66051:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25123,"name":"bool","nodeType":"ElementaryTypeName","src":"66051:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25126,"mutability":"mutable","name":"p2","nameLocation":"66068:2:14","nodeType":"VariableDeclaration","scope":25143,"src":"66060:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25125,"name":"address","nodeType":"ElementaryTypeName","src":"66060:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25128,"mutability":"mutable","name":"p3","nameLocation":"66080:2:14","nodeType":"VariableDeclaration","scope":25143,"src":"66072:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25127,"name":"address","nodeType":"ElementaryTypeName","src":"66072:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"66038:45:14"},"returnParameters":{"id":25130,"nodeType":"ParameterList","parameters":[],"src":"66098:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25166,"nodeType":"FunctionDefinition","src":"66214:188:14","nodes":[],"body":{"id":25165,"nodeType":"Block","src":"66289:113:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c75696e7432353629","id":25157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66339:38:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_be55348107f27daf63b48e87ab23840f2cbf20bdfa1dd4b92b4c2b337967fa25","typeString":"literal_string \"log(address,address,uint256,uint256)\""},"value":"log(address,address,uint256,uint256)"},{"id":25158,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25145,"src":"66379:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25159,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25147,"src":"66383:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25160,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25149,"src":"66387:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25161,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25151,"src":"66391:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be55348107f27daf63b48e87ab23840f2cbf20bdfa1dd4b92b4c2b337967fa25","typeString":"literal_string \"log(address,address,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25155,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66315:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25156,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66319:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66315:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66315:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25154,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"66299:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66299:96:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25164,"nodeType":"ExpressionStatement","src":"66299:96:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66223:3:14","parameters":{"id":25152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25145,"mutability":"mutable","name":"p0","nameLocation":"66235:2:14","nodeType":"VariableDeclaration","scope":25166,"src":"66227:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25144,"name":"address","nodeType":"ElementaryTypeName","src":"66227:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25147,"mutability":"mutable","name":"p1","nameLocation":"66247:2:14","nodeType":"VariableDeclaration","scope":25166,"src":"66239:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25146,"name":"address","nodeType":"ElementaryTypeName","src":"66239:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25149,"mutability":"mutable","name":"p2","nameLocation":"66259:2:14","nodeType":"VariableDeclaration","scope":25166,"src":"66251:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25148,"name":"uint256","nodeType":"ElementaryTypeName","src":"66251:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25151,"mutability":"mutable","name":"p3","nameLocation":"66271:2:14","nodeType":"VariableDeclaration","scope":25166,"src":"66263:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25150,"name":"uint256","nodeType":"ElementaryTypeName","src":"66263:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"66226:48:14"},"returnParameters":{"id":25153,"nodeType":"ParameterList","parameters":[],"src":"66289:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25189,"nodeType":"FunctionDefinition","src":"66408:193:14","nodes":[],"body":{"id":25188,"nodeType":"Block","src":"66489:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c737472696e6729","id":25180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66539:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_fdb4f99053c71d9229026b69fabc5567b4324649a228ca0935bada4975f57343","typeString":"literal_string \"log(address,address,uint256,string)\""},"value":"log(address,address,uint256,string)"},{"id":25181,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25168,"src":"66578:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25182,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25170,"src":"66582:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25183,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25172,"src":"66586:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25184,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25174,"src":"66590:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fdb4f99053c71d9229026b69fabc5567b4324649a228ca0935bada4975f57343","typeString":"literal_string \"log(address,address,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":25178,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66515:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25179,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66519:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66515:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66515:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25177,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"66499:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66499:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25187,"nodeType":"ExpressionStatement","src":"66499:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66417:3:14","parameters":{"id":25175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25168,"mutability":"mutable","name":"p0","nameLocation":"66429:2:14","nodeType":"VariableDeclaration","scope":25189,"src":"66421:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25167,"name":"address","nodeType":"ElementaryTypeName","src":"66421:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25170,"mutability":"mutable","name":"p1","nameLocation":"66441:2:14","nodeType":"VariableDeclaration","scope":25189,"src":"66433:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25169,"name":"address","nodeType":"ElementaryTypeName","src":"66433:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25172,"mutability":"mutable","name":"p2","nameLocation":"66453:2:14","nodeType":"VariableDeclaration","scope":25189,"src":"66445:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25171,"name":"uint256","nodeType":"ElementaryTypeName","src":"66445:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25174,"mutability":"mutable","name":"p3","nameLocation":"66471:2:14","nodeType":"VariableDeclaration","scope":25189,"src":"66457:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25173,"name":"string","nodeType":"ElementaryTypeName","src":"66457:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66420:54:14"},"returnParameters":{"id":25176,"nodeType":"ParameterList","parameters":[],"src":"66489:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25212,"nodeType":"FunctionDefinition","src":"66607:182:14","nodes":[],"body":{"id":25211,"nodeType":"Block","src":"66679:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c626f6f6c29","id":25203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66729:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b4254e23753cb4c7d637e38638d109b03aeabf8705961d18d943c5bfa6672cd","typeString":"literal_string \"log(address,address,uint256,bool)\""},"value":"log(address,address,uint256,bool)"},{"id":25204,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25191,"src":"66766:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25205,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25193,"src":"66770:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25206,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25195,"src":"66774:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25207,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25197,"src":"66778:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9b4254e23753cb4c7d637e38638d109b03aeabf8705961d18d943c5bfa6672cd","typeString":"literal_string \"log(address,address,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":25201,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66705:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66709:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66705:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66705:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25200,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"66689:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66689:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25210,"nodeType":"ExpressionStatement","src":"66689:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66616:3:14","parameters":{"id":25198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25191,"mutability":"mutable","name":"p0","nameLocation":"66628:2:14","nodeType":"VariableDeclaration","scope":25212,"src":"66620:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25190,"name":"address","nodeType":"ElementaryTypeName","src":"66620:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25193,"mutability":"mutable","name":"p1","nameLocation":"66640:2:14","nodeType":"VariableDeclaration","scope":25212,"src":"66632:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25192,"name":"address","nodeType":"ElementaryTypeName","src":"66632:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25195,"mutability":"mutable","name":"p2","nameLocation":"66652:2:14","nodeType":"VariableDeclaration","scope":25212,"src":"66644:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25194,"name":"uint256","nodeType":"ElementaryTypeName","src":"66644:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25197,"mutability":"mutable","name":"p3","nameLocation":"66661:2:14","nodeType":"VariableDeclaration","scope":25212,"src":"66656:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25196,"name":"bool","nodeType":"ElementaryTypeName","src":"66656:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"66619:45:14"},"returnParameters":{"id":25199,"nodeType":"ParameterList","parameters":[],"src":"66679:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25235,"nodeType":"FunctionDefinition","src":"66795:188:14","nodes":[],"body":{"id":25234,"nodeType":"Block","src":"66870:113:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c6164647265737329","id":25226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66920:38:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8da6def55c582f2ce59d561e896a66e570478eda5169747a6ea3575cfa60d28b","typeString":"literal_string \"log(address,address,uint256,address)\""},"value":"log(address,address,uint256,address)"},{"id":25227,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25214,"src":"66960:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25228,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25216,"src":"66964:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25229,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25218,"src":"66968:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25230,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25220,"src":"66972:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8da6def55c582f2ce59d561e896a66e570478eda5169747a6ea3575cfa60d28b","typeString":"literal_string \"log(address,address,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25224,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66896:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66900:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66896:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66896:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25223,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"66880:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66880:96:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25233,"nodeType":"ExpressionStatement","src":"66880:96:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66804:3:14","parameters":{"id":25221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25214,"mutability":"mutable","name":"p0","nameLocation":"66816:2:14","nodeType":"VariableDeclaration","scope":25235,"src":"66808:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25213,"name":"address","nodeType":"ElementaryTypeName","src":"66808:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25216,"mutability":"mutable","name":"p1","nameLocation":"66828:2:14","nodeType":"VariableDeclaration","scope":25235,"src":"66820:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25215,"name":"address","nodeType":"ElementaryTypeName","src":"66820:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25218,"mutability":"mutable","name":"p2","nameLocation":"66840:2:14","nodeType":"VariableDeclaration","scope":25235,"src":"66832:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25217,"name":"uint256","nodeType":"ElementaryTypeName","src":"66832:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25220,"mutability":"mutable","name":"p3","nameLocation":"66852:2:14","nodeType":"VariableDeclaration","scope":25235,"src":"66844:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25219,"name":"address","nodeType":"ElementaryTypeName","src":"66844:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"66807:48:14"},"returnParameters":{"id":25222,"nodeType":"ParameterList","parameters":[],"src":"66870:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25258,"nodeType":"FunctionDefinition","src":"66989:193:14","nodes":[],"body":{"id":25257,"nodeType":"Block","src":"67070:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c75696e7432353629","id":25249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67120:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef1cefe7e092dcc5b0ed6bc72a78756f9c352fc002139efb9b181c734d5d45d5","typeString":"literal_string \"log(address,address,string,uint256)\""},"value":"log(address,address,string,uint256)"},{"id":25250,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25237,"src":"67159:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25251,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25239,"src":"67163:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25252,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25241,"src":"67167:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25253,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25243,"src":"67171:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef1cefe7e092dcc5b0ed6bc72a78756f9c352fc002139efb9b181c734d5d45d5","typeString":"literal_string \"log(address,address,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25247,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67096:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67100:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67096:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67096:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25246,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"67080:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67080:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25256,"nodeType":"ExpressionStatement","src":"67080:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66998:3:14","parameters":{"id":25244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25237,"mutability":"mutable","name":"p0","nameLocation":"67010:2:14","nodeType":"VariableDeclaration","scope":25258,"src":"67002:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25236,"name":"address","nodeType":"ElementaryTypeName","src":"67002:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25239,"mutability":"mutable","name":"p1","nameLocation":"67022:2:14","nodeType":"VariableDeclaration","scope":25258,"src":"67014:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25238,"name":"address","nodeType":"ElementaryTypeName","src":"67014:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25241,"mutability":"mutable","name":"p2","nameLocation":"67040:2:14","nodeType":"VariableDeclaration","scope":25258,"src":"67026:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25240,"name":"string","nodeType":"ElementaryTypeName","src":"67026:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25243,"mutability":"mutable","name":"p3","nameLocation":"67052:2:14","nodeType":"VariableDeclaration","scope":25258,"src":"67044:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25242,"name":"uint256","nodeType":"ElementaryTypeName","src":"67044:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"67001:54:14"},"returnParameters":{"id":25245,"nodeType":"ParameterList","parameters":[],"src":"67070:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25281,"nodeType":"FunctionDefinition","src":"67188:198:14","nodes":[],"body":{"id":25280,"nodeType":"Block","src":"67275:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c737472696e6729","id":25272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67325:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1","typeString":"literal_string \"log(address,address,string,string)\""},"value":"log(address,address,string,string)"},{"id":25273,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25260,"src":"67363:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25274,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25262,"src":"67367:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25275,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25264,"src":"67371:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25276,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25266,"src":"67375:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1","typeString":"literal_string \"log(address,address,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":25270,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67301:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67305:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67301:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67301:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25269,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"67285:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67285:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25279,"nodeType":"ExpressionStatement","src":"67285:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67197:3:14","parameters":{"id":25267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25260,"mutability":"mutable","name":"p0","nameLocation":"67209:2:14","nodeType":"VariableDeclaration","scope":25281,"src":"67201:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25259,"name":"address","nodeType":"ElementaryTypeName","src":"67201:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25262,"mutability":"mutable","name":"p1","nameLocation":"67221:2:14","nodeType":"VariableDeclaration","scope":25281,"src":"67213:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25261,"name":"address","nodeType":"ElementaryTypeName","src":"67213:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25264,"mutability":"mutable","name":"p2","nameLocation":"67239:2:14","nodeType":"VariableDeclaration","scope":25281,"src":"67225:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25263,"name":"string","nodeType":"ElementaryTypeName","src":"67225:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25266,"mutability":"mutable","name":"p3","nameLocation":"67257:2:14","nodeType":"VariableDeclaration","scope":25281,"src":"67243:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25265,"name":"string","nodeType":"ElementaryTypeName","src":"67243:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"67200:60:14"},"returnParameters":{"id":25268,"nodeType":"ParameterList","parameters":[],"src":"67275:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25304,"nodeType":"FunctionDefinition","src":"67392:187:14","nodes":[],"body":{"id":25303,"nodeType":"Block","src":"67470:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c626f6f6c29","id":25295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67520:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd","typeString":"literal_string \"log(address,address,string,bool)\""},"value":"log(address,address,string,bool)"},{"id":25296,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25283,"src":"67556:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25297,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25285,"src":"67560:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25298,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25287,"src":"67564:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25299,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25289,"src":"67568:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd","typeString":"literal_string \"log(address,address,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":25293,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67496:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67500:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67496:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67496:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25292,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"67480:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67480:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25302,"nodeType":"ExpressionStatement","src":"67480:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67401:3:14","parameters":{"id":25290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25283,"mutability":"mutable","name":"p0","nameLocation":"67413:2:14","nodeType":"VariableDeclaration","scope":25304,"src":"67405:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25282,"name":"address","nodeType":"ElementaryTypeName","src":"67405:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25285,"mutability":"mutable","name":"p1","nameLocation":"67425:2:14","nodeType":"VariableDeclaration","scope":25304,"src":"67417:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25284,"name":"address","nodeType":"ElementaryTypeName","src":"67417:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25287,"mutability":"mutable","name":"p2","nameLocation":"67443:2:14","nodeType":"VariableDeclaration","scope":25304,"src":"67429:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25286,"name":"string","nodeType":"ElementaryTypeName","src":"67429:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25289,"mutability":"mutable","name":"p3","nameLocation":"67452:2:14","nodeType":"VariableDeclaration","scope":25304,"src":"67447:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25288,"name":"bool","nodeType":"ElementaryTypeName","src":"67447:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"67404:51:14"},"returnParameters":{"id":25291,"nodeType":"ParameterList","parameters":[],"src":"67470:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25327,"nodeType":"FunctionDefinition","src":"67585:193:14","nodes":[],"body":{"id":25326,"nodeType":"Block","src":"67666:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c6164647265737329","id":25318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67716:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687","typeString":"literal_string \"log(address,address,string,address)\""},"value":"log(address,address,string,address)"},{"id":25319,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25306,"src":"67755:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25320,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25308,"src":"67759:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25321,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25310,"src":"67763:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25322,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25312,"src":"67767:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687","typeString":"literal_string \"log(address,address,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25316,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67692:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67696:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67692:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67692:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25315,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"67676:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67676:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25325,"nodeType":"ExpressionStatement","src":"67676:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67594:3:14","parameters":{"id":25313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25306,"mutability":"mutable","name":"p0","nameLocation":"67606:2:14","nodeType":"VariableDeclaration","scope":25327,"src":"67598:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25305,"name":"address","nodeType":"ElementaryTypeName","src":"67598:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25308,"mutability":"mutable","name":"p1","nameLocation":"67618:2:14","nodeType":"VariableDeclaration","scope":25327,"src":"67610:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25307,"name":"address","nodeType":"ElementaryTypeName","src":"67610:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25310,"mutability":"mutable","name":"p2","nameLocation":"67636:2:14","nodeType":"VariableDeclaration","scope":25327,"src":"67622:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25309,"name":"string","nodeType":"ElementaryTypeName","src":"67622:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25312,"mutability":"mutable","name":"p3","nameLocation":"67648:2:14","nodeType":"VariableDeclaration","scope":25327,"src":"67640:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25311,"name":"address","nodeType":"ElementaryTypeName","src":"67640:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"67597:54:14"},"returnParameters":{"id":25314,"nodeType":"ParameterList","parameters":[],"src":"67666:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25350,"nodeType":"FunctionDefinition","src":"67784:182:14","nodes":[],"body":{"id":25349,"nodeType":"Block","src":"67856:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c75696e7432353629","id":25341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67906:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3971e78c267e3c99a8d143ab93f96daa498ed164b55c7e4c2a5439320fbc2671","typeString":"literal_string \"log(address,address,bool,uint256)\""},"value":"log(address,address,bool,uint256)"},{"id":25342,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25329,"src":"67943:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25343,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25331,"src":"67947:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25344,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25333,"src":"67951:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25345,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25335,"src":"67955:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3971e78c267e3c99a8d143ab93f96daa498ed164b55c7e4c2a5439320fbc2671","typeString":"literal_string \"log(address,address,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25339,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67882:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67886:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67882:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67882:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25338,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"67866:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67866:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25348,"nodeType":"ExpressionStatement","src":"67866:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67793:3:14","parameters":{"id":25336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25329,"mutability":"mutable","name":"p0","nameLocation":"67805:2:14","nodeType":"VariableDeclaration","scope":25350,"src":"67797:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25328,"name":"address","nodeType":"ElementaryTypeName","src":"67797:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25331,"mutability":"mutable","name":"p1","nameLocation":"67817:2:14","nodeType":"VariableDeclaration","scope":25350,"src":"67809:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25330,"name":"address","nodeType":"ElementaryTypeName","src":"67809:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25333,"mutability":"mutable","name":"p2","nameLocation":"67826:2:14","nodeType":"VariableDeclaration","scope":25350,"src":"67821:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25332,"name":"bool","nodeType":"ElementaryTypeName","src":"67821:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25335,"mutability":"mutable","name":"p3","nameLocation":"67838:2:14","nodeType":"VariableDeclaration","scope":25350,"src":"67830:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25334,"name":"uint256","nodeType":"ElementaryTypeName","src":"67830:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"67796:45:14"},"returnParameters":{"id":25337,"nodeType":"ParameterList","parameters":[],"src":"67856:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25373,"nodeType":"FunctionDefinition","src":"67972:187:14","nodes":[],"body":{"id":25372,"nodeType":"Block","src":"68050:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c737472696e6729","id":25364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68100:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88","typeString":"literal_string \"log(address,address,bool,string)\""},"value":"log(address,address,bool,string)"},{"id":25365,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25352,"src":"68136:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25366,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25354,"src":"68140:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25367,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25356,"src":"68144:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25368,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25358,"src":"68148:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88","typeString":"literal_string \"log(address,address,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":25362,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68076:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68080:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68076:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68076:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25361,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"68060:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68060:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25371,"nodeType":"ExpressionStatement","src":"68060:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67981:3:14","parameters":{"id":25359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25352,"mutability":"mutable","name":"p0","nameLocation":"67993:2:14","nodeType":"VariableDeclaration","scope":25373,"src":"67985:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25351,"name":"address","nodeType":"ElementaryTypeName","src":"67985:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25354,"mutability":"mutable","name":"p1","nameLocation":"68005:2:14","nodeType":"VariableDeclaration","scope":25373,"src":"67997:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25353,"name":"address","nodeType":"ElementaryTypeName","src":"67997:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25356,"mutability":"mutable","name":"p2","nameLocation":"68014:2:14","nodeType":"VariableDeclaration","scope":25373,"src":"68009:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25355,"name":"bool","nodeType":"ElementaryTypeName","src":"68009:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25358,"mutability":"mutable","name":"p3","nameLocation":"68032:2:14","nodeType":"VariableDeclaration","scope":25373,"src":"68018:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25357,"name":"string","nodeType":"ElementaryTypeName","src":"68018:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"67984:51:14"},"returnParameters":{"id":25360,"nodeType":"ParameterList","parameters":[],"src":"68050:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25396,"nodeType":"FunctionDefinition","src":"68165:176:14","nodes":[],"body":{"id":25395,"nodeType":"Block","src":"68234:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c626f6f6c29","id":25387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68284:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65","typeString":"literal_string \"log(address,address,bool,bool)\""},"value":"log(address,address,bool,bool)"},{"id":25388,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25375,"src":"68318:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25389,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25377,"src":"68322:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25390,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25379,"src":"68326:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25391,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25381,"src":"68330:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65","typeString":"literal_string \"log(address,address,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":25385,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68260:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68264:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68260:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68260:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25384,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"68244:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68244:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25394,"nodeType":"ExpressionStatement","src":"68244:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68174:3:14","parameters":{"id":25382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25375,"mutability":"mutable","name":"p0","nameLocation":"68186:2:14","nodeType":"VariableDeclaration","scope":25396,"src":"68178:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25374,"name":"address","nodeType":"ElementaryTypeName","src":"68178:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25377,"mutability":"mutable","name":"p1","nameLocation":"68198:2:14","nodeType":"VariableDeclaration","scope":25396,"src":"68190:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25376,"name":"address","nodeType":"ElementaryTypeName","src":"68190:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25379,"mutability":"mutable","name":"p2","nameLocation":"68207:2:14","nodeType":"VariableDeclaration","scope":25396,"src":"68202:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25378,"name":"bool","nodeType":"ElementaryTypeName","src":"68202:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25381,"mutability":"mutable","name":"p3","nameLocation":"68216:2:14","nodeType":"VariableDeclaration","scope":25396,"src":"68211:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25380,"name":"bool","nodeType":"ElementaryTypeName","src":"68211:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"68177:42:14"},"returnParameters":{"id":25383,"nodeType":"ParameterList","parameters":[],"src":"68234:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25419,"nodeType":"FunctionDefinition","src":"68347:182:14","nodes":[],"body":{"id":25418,"nodeType":"Block","src":"68419:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c6164647265737329","id":25410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68469:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c","typeString":"literal_string \"log(address,address,bool,address)\""},"value":"log(address,address,bool,address)"},{"id":25411,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25398,"src":"68506:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25412,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25400,"src":"68510:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25413,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25402,"src":"68514:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25414,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25404,"src":"68518:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c","typeString":"literal_string \"log(address,address,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25408,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68445:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68449:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68445:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68445:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25407,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"68429:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68429:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25417,"nodeType":"ExpressionStatement","src":"68429:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68356:3:14","parameters":{"id":25405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25398,"mutability":"mutable","name":"p0","nameLocation":"68368:2:14","nodeType":"VariableDeclaration","scope":25419,"src":"68360:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25397,"name":"address","nodeType":"ElementaryTypeName","src":"68360:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25400,"mutability":"mutable","name":"p1","nameLocation":"68380:2:14","nodeType":"VariableDeclaration","scope":25419,"src":"68372:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25399,"name":"address","nodeType":"ElementaryTypeName","src":"68372:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25402,"mutability":"mutable","name":"p2","nameLocation":"68389:2:14","nodeType":"VariableDeclaration","scope":25419,"src":"68384:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25401,"name":"bool","nodeType":"ElementaryTypeName","src":"68384:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25404,"mutability":"mutable","name":"p3","nameLocation":"68401:2:14","nodeType":"VariableDeclaration","scope":25419,"src":"68393:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25403,"name":"address","nodeType":"ElementaryTypeName","src":"68393:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"68359:45:14"},"returnParameters":{"id":25406,"nodeType":"ParameterList","parameters":[],"src":"68419:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25442,"nodeType":"FunctionDefinition","src":"68535:188:14","nodes":[],"body":{"id":25441,"nodeType":"Block","src":"68610:113:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c75696e7432353629","id":25433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68660:38:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_94250d77556167cb7a7fd3eb9433101f8af8848163edfced0c46147ba10a2577","typeString":"literal_string \"log(address,address,address,uint256)\""},"value":"log(address,address,address,uint256)"},{"id":25434,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25421,"src":"68700:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25435,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25423,"src":"68704:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25436,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25425,"src":"68708:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25437,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25427,"src":"68712:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94250d77556167cb7a7fd3eb9433101f8af8848163edfced0c46147ba10a2577","typeString":"literal_string \"log(address,address,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25431,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68636:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25432,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68640:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68636:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68636:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25430,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"68620:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68620:96:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25440,"nodeType":"ExpressionStatement","src":"68620:96:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68544:3:14","parameters":{"id":25428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25421,"mutability":"mutable","name":"p0","nameLocation":"68556:2:14","nodeType":"VariableDeclaration","scope":25442,"src":"68548:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25420,"name":"address","nodeType":"ElementaryTypeName","src":"68548:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25423,"mutability":"mutable","name":"p1","nameLocation":"68568:2:14","nodeType":"VariableDeclaration","scope":25442,"src":"68560:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25422,"name":"address","nodeType":"ElementaryTypeName","src":"68560:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25425,"mutability":"mutable","name":"p2","nameLocation":"68580:2:14","nodeType":"VariableDeclaration","scope":25442,"src":"68572:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25424,"name":"address","nodeType":"ElementaryTypeName","src":"68572:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25427,"mutability":"mutable","name":"p3","nameLocation":"68592:2:14","nodeType":"VariableDeclaration","scope":25442,"src":"68584:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25426,"name":"uint256","nodeType":"ElementaryTypeName","src":"68584:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"68547:48:14"},"returnParameters":{"id":25429,"nodeType":"ParameterList","parameters":[],"src":"68610:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25465,"nodeType":"FunctionDefinition","src":"68729:193:14","nodes":[],"body":{"id":25464,"nodeType":"Block","src":"68810:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c737472696e6729","id":25456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68860:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025","typeString":"literal_string \"log(address,address,address,string)\""},"value":"log(address,address,address,string)"},{"id":25457,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25444,"src":"68899:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25458,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25446,"src":"68903:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25459,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25448,"src":"68907:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25460,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25450,"src":"68911:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025","typeString":"literal_string \"log(address,address,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":25454,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68836:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25455,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68840:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68836:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68836:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25453,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"68820:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68820:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25463,"nodeType":"ExpressionStatement","src":"68820:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68738:3:14","parameters":{"id":25451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25444,"mutability":"mutable","name":"p0","nameLocation":"68750:2:14","nodeType":"VariableDeclaration","scope":25465,"src":"68742:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25443,"name":"address","nodeType":"ElementaryTypeName","src":"68742:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25446,"mutability":"mutable","name":"p1","nameLocation":"68762:2:14","nodeType":"VariableDeclaration","scope":25465,"src":"68754:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25445,"name":"address","nodeType":"ElementaryTypeName","src":"68754:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25448,"mutability":"mutable","name":"p2","nameLocation":"68774:2:14","nodeType":"VariableDeclaration","scope":25465,"src":"68766:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25447,"name":"address","nodeType":"ElementaryTypeName","src":"68766:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25450,"mutability":"mutable","name":"p3","nameLocation":"68792:2:14","nodeType":"VariableDeclaration","scope":25465,"src":"68778:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25449,"name":"string","nodeType":"ElementaryTypeName","src":"68778:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"68741:54:14"},"returnParameters":{"id":25452,"nodeType":"ParameterList","parameters":[],"src":"68810:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25488,"nodeType":"FunctionDefinition","src":"68928:182:14","nodes":[],"body":{"id":25487,"nodeType":"Block","src":"69000:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c626f6f6c29","id":25479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"69050:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb","typeString":"literal_string \"log(address,address,address,bool)\""},"value":"log(address,address,address,bool)"},{"id":25480,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25467,"src":"69087:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25481,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25469,"src":"69091:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25482,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25471,"src":"69095:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25483,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25473,"src":"69099:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb","typeString":"literal_string \"log(address,address,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":25477,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"69026:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"69030:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"69026:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"69026:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25476,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"69010:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"69010:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25486,"nodeType":"ExpressionStatement","src":"69010:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68937:3:14","parameters":{"id":25474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25467,"mutability":"mutable","name":"p0","nameLocation":"68949:2:14","nodeType":"VariableDeclaration","scope":25488,"src":"68941:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25466,"name":"address","nodeType":"ElementaryTypeName","src":"68941:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25469,"mutability":"mutable","name":"p1","nameLocation":"68961:2:14","nodeType":"VariableDeclaration","scope":25488,"src":"68953:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25468,"name":"address","nodeType":"ElementaryTypeName","src":"68953:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25471,"mutability":"mutable","name":"p2","nameLocation":"68973:2:14","nodeType":"VariableDeclaration","scope":25488,"src":"68965:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25470,"name":"address","nodeType":"ElementaryTypeName","src":"68965:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25473,"mutability":"mutable","name":"p3","nameLocation":"68982:2:14","nodeType":"VariableDeclaration","scope":25488,"src":"68977:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25472,"name":"bool","nodeType":"ElementaryTypeName","src":"68977:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"68940:45:14"},"returnParameters":{"id":25475,"nodeType":"ParameterList","parameters":[],"src":"69000:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":25511,"nodeType":"FunctionDefinition","src":"69116:188:14","nodes":[],"body":{"id":25510,"nodeType":"Block","src":"69191:113:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c6164647265737329","id":25502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"69241:38:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5","typeString":"literal_string \"log(address,address,address,address)\""},"value":"log(address,address,address,address)"},{"id":25503,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25490,"src":"69281:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25504,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25492,"src":"69285:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25505,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25494,"src":"69289:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25506,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25496,"src":"69293:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5","typeString":"literal_string \"log(address,address,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25500,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"69217:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"69221:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"69217:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"69217:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25499,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17441,"src":"69201:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":25508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"69201:96:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25509,"nodeType":"ExpressionStatement","src":"69201:96:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"69125:3:14","parameters":{"id":25497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25490,"mutability":"mutable","name":"p0","nameLocation":"69137:2:14","nodeType":"VariableDeclaration","scope":25511,"src":"69129:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25489,"name":"address","nodeType":"ElementaryTypeName","src":"69129:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25492,"mutability":"mutable","name":"p1","nameLocation":"69149:2:14","nodeType":"VariableDeclaration","scope":25511,"src":"69141:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25491,"name":"address","nodeType":"ElementaryTypeName","src":"69141:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25494,"mutability":"mutable","name":"p2","nameLocation":"69161:2:14","nodeType":"VariableDeclaration","scope":25511,"src":"69153:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25493,"name":"address","nodeType":"ElementaryTypeName","src":"69153:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25496,"mutability":"mutable","name":"p3","nameLocation":"69173:2:14","nodeType":"VariableDeclaration","scope":25511,"src":"69165:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25495,"name":"address","nodeType":"ElementaryTypeName","src":"69165:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"69128:48:14"},"returnParameters":{"id":25498,"nodeType":"ParameterList","parameters":[],"src":"69191:0:14"},"scope":25512,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"console2","contractDependencies":[],"contractKind":"library","documentation":{"id":17419,"nodeType":"StructuredDocumentation","src":"66:459:14","text":"@dev The original console.sol uses `int` and `uint` for computing function selectors, but it should\n use `int256` and `uint256`. This modified version fixes that. This version is recommended\n over `console.sol` if you don't need compatibility with Hardhat as the logs will show up in\n forge stack traces. If you do need compatibility with Hardhat, you must use `console.sol`.\n Reference: https://github.com/NomicFoundation/hardhat/issues/2178"},"fullyImplemented":true,"linearizedBaseContracts":[25512],"name":"console2","nameLocation":"533:8:14","scope":25513,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":14} \ No newline at end of file diff --git a/out/test.sol/DSTest.json b/out/test.sol/DSTest.json deleted file mode 100644 index 6e8ad64a..00000000 --- a/out/test.sol/DSTest.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523461002357600160ff19600054161760005561024090816100298239f35b600080fdfe6080604052600436101561001257600080fd5b6000803560e01c8063ba414fa6146100575763fa7626d41461003357600080fd5b3461005457806003193601126100545760ff60209154166040519015158152f35b80fd5b503461005457806003193601126100545760206100726100b4565b6040519015158152f35b90601f8019910116810190811067ffffffffffffffff82111761009e57604052565b634e487b7160e01b600052604160045260246000fd5b6000805460081c60ff16156100cd575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6100ee57505090565b90915060405160209180838301526519985a5b195960d21b604083015260408252606082019167ffffffffffffffff92818110848211176101f65791828692936040526080840190630667f9d760e41b8252845187855b8281106101de5750509061016f60248787989488950185608482015203600481018452018261007c565b51925af1503d156101d6573d9081116101c25760405190610199601f8201601f191684018361007c565b81523d838383013e5b81818051810103126101be570151908115158203610054575090565b8280fd5b634e487b7160e01b83526041600452602483fd5b5060606101a2565b808801808301516084909101528a9650899101610145565b634e487b7160e01b86526041600452602486fdfea26469706673582212202df69ed745f6d7441074790808b162662b1f92598bfa6fd48adeadcb721f379664736f6c63430008160033","sourceMap":"715:15435:0:-:0;;;;;;;1594:4;715:15435;;1594:4;715:15435;;;1594:4;715:15435;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b6000803560e01c8063ba414fa6146100575763fa7626d41461003357600080fd5b3461005457806003193601126100545760ff60209154166040519015158152f35b80fd5b503461005457806003193601126100545760206100726100b4565b6040519015158152f35b90601f8019910116810190811067ffffffffffffffff82111761009e57604052565b634e487b7160e01b600052604160045260246000fd5b6000805460081c60ff16156100cd575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b6100ee57505090565b90915060405160209180838301526519985a5b195960d21b604083015260408252606082019167ffffffffffffffff92818110848211176101f65791828692936040526080840190630667f9d760e41b8252845187855b8281106101de5750509061016f60248787989488950185608482015203600481018452018261007c565b51925af1503d156101d6573d9081116101c25760405190610199601f8201601f191684018361007c565b81523d838383013e5b81818051810103126101be570151908115158203610054575090565b8280fd5b634e487b7160e01b83526041600452602483fd5b5060606101a2565b808801808301516084909101528a9650899101610145565b634e487b7160e01b86526041600452602486fdfea26469706673582212202df69ed745f6d7441074790808b162662b1f92598bfa6fd48adeadcb721f379664736f6c63430008160033","sourceMap":"715:15435:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1671:64;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;1819:584;1873:7;715:15435;;;;;;;;;;;;;;;1896:14::o;1869:528::-;1941:25;2939:104;;;1980:374;;2367:19;;;:::o;1980:374::-;715:15435;;;;;2196:43;;;;;;1671:64;;;;715:15435;1671:64;;;715:15435;2196:43;;715:15435;1671:64;;;;;;;;;;;;;;;;;;;715:15435;1671:64;2086:175;;;1671:64;;;;;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;;;;;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:0;;;;;;;;;;715:15435;;;1671:64;;;;-1:-1:-1;;1671:64:0;;;715:15435;1671:64;:::i;:::-;;;;;;;;;;;;;;2312:27;;1671:64;;;;2312:27;1671:64;715:15435;;;;1671:64;;;;2297:42;2367:19;:::o;1671:64::-;715:15435;;;1671:64;-1:-1:-1;;;1671:64:0;;;2086:175;1671:64;;;;;;715:15435;1671:64;;;;;;;;;;;;;;;;;-1:-1:-1;1671:64:0;;;;;;-1:-1:-1;;;1671:64:0;;;;;;;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","failed()":"ba414fa6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":\"DSTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/solstat/lib/forge-std/src/\",\":solmate/=lib/solstat/lib/solmate/src/\",\":solstat/=lib/solstat/src/\"],\"viaIR\":true},\"sources\":{\"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/solstat/lib/forge-std/lib/ds-test/src/","forge-std/=lib/solstat/lib/forge-std/src/","solmate/=lib/solstat/lib/solmate/src/","solstat/=lib/solstat/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":"DSTest"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"}},"version":1},"ast":{"absolutePath":"lib/solstat/lib/forge-std/lib/ds-test/src/test.sol","id":1787,"exportedSymbols":{"DSTest":[1786]},"nodeType":"SourceUnit","src":"689:15462:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"689:24:0","nodes":[],"literals":["solidity",">=","0.5",".0"]},{"id":1786,"nodeType":"ContractDefinition","src":"715:15435:0","nodes":[{"id":5,"nodeType":"EventDefinition","src":"737:38:0","nodes":[],"anonymous":false,"eventSelector":"41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","name":"log","nameLocation":"743:3:0","parameters":{"id":4,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5,"src":"767:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2,"name":"string","nodeType":"ElementaryTypeName","src":"767:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"766:8:0"}},{"id":9,"nodeType":"EventDefinition","src":"780:37:0","nodes":[],"anonymous":false,"eventSelector":"e7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4","name":"logs","nameLocation":"786:4:0","parameters":{"id":8,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9,"src":"810:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6,"name":"bytes","nodeType":"ElementaryTypeName","src":"810:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"809:7:0"}},{"id":13,"nodeType":"EventDefinition","src":"823:39:0","nodes":[],"anonymous":false,"eventSelector":"7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3","name":"log_address","nameLocation":"829:11:0","parameters":{"id":12,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13,"src":"853:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10,"name":"address","nodeType":"ElementaryTypeName","src":"853:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"852:9:0"}},{"id":17,"nodeType":"EventDefinition","src":"867:39:0","nodes":[],"anonymous":false,"eventSelector":"e81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3","name":"log_bytes32","nameLocation":"873:11:0","parameters":{"id":16,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17,"src":"897:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14,"name":"bytes32","nodeType":"ElementaryTypeName","src":"897:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"896:9:0"}},{"id":21,"nodeType":"EventDefinition","src":"911:35:0","nodes":[],"anonymous":false,"eventSelector":"0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8","name":"log_int","nameLocation":"917:7:0","parameters":{"id":20,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21,"src":"941:3:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":18,"name":"int","nodeType":"ElementaryTypeName","src":"941:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"940:5:0"}},{"id":25,"nodeType":"EventDefinition","src":"951:36:0","nodes":[],"anonymous":false,"eventSelector":"2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755","name":"log_uint","nameLocation":"957:8:0","parameters":{"id":24,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25,"src":"981:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22,"name":"uint","nodeType":"ElementaryTypeName","src":"981:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"980:6:0"}},{"id":29,"nodeType":"EventDefinition","src":"992:37:0","nodes":[],"anonymous":false,"eventSelector":"23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20","name":"log_bytes","nameLocation":"998:9:0","parameters":{"id":28,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":29,"src":"1022:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":26,"name":"bytes","nodeType":"ElementaryTypeName","src":"1022:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1021:7:0"}},{"id":33,"nodeType":"EventDefinition","src":"1034:38:0","nodes":[],"anonymous":false,"eventSelector":"0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b","name":"log_string","nameLocation":"1040:10:0","parameters":{"id":32,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33,"src":"1064:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30,"name":"string","nodeType":"ElementaryTypeName","src":"1064:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1063:8:0"}},{"id":39,"nodeType":"EventDefinition","src":"1078:55:0","nodes":[],"anonymous":false,"eventSelector":"9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f","name":"log_named_address","nameLocation":"1084:17:0","parameters":{"id":38,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"1115:3:0","nodeType":"VariableDeclaration","scope":39,"src":"1108:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":34,"name":"string","nodeType":"ElementaryTypeName","src":"1108:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":37,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"1128:3:0","nodeType":"VariableDeclaration","scope":39,"src":"1120:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36,"name":"address","nodeType":"ElementaryTypeName","src":"1120:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1107:25:0"}},{"id":45,"nodeType":"EventDefinition","src":"1138:55:0","nodes":[],"anonymous":false,"eventSelector":"afb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99","name":"log_named_bytes32","nameLocation":"1144:17:0","parameters":{"id":44,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"1175:3:0","nodeType":"VariableDeclaration","scope":45,"src":"1168:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":40,"name":"string","nodeType":"ElementaryTypeName","src":"1168:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":43,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"1188:3:0","nodeType":"VariableDeclaration","scope":45,"src":"1180:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1180:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1167:25:0"}},{"id":53,"nodeType":"EventDefinition","src":"1198:66:0","nodes":[],"anonymous":false,"eventSelector":"5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95","name":"log_named_decimal_int","nameLocation":"1204:21:0","parameters":{"id":52,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"1235:3:0","nodeType":"VariableDeclaration","scope":53,"src":"1228:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46,"name":"string","nodeType":"ElementaryTypeName","src":"1228:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":49,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"1244:3:0","nodeType":"VariableDeclaration","scope":53,"src":"1240:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":48,"name":"int","nodeType":"ElementaryTypeName","src":"1240:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":51,"indexed":false,"mutability":"mutable","name":"decimals","nameLocation":"1254:8:0","nodeType":"VariableDeclaration","scope":53,"src":"1249:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50,"name":"uint","nodeType":"ElementaryTypeName","src":"1249:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1227:36:0"}},{"id":61,"nodeType":"EventDefinition","src":"1269:67:0","nodes":[],"anonymous":false,"eventSelector":"eb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b","name":"log_named_decimal_uint","nameLocation":"1275:22:0","parameters":{"id":60,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"1306:3:0","nodeType":"VariableDeclaration","scope":61,"src":"1299:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":54,"name":"string","nodeType":"ElementaryTypeName","src":"1299:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":57,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"1316:3:0","nodeType":"VariableDeclaration","scope":61,"src":"1311:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56,"name":"uint","nodeType":"ElementaryTypeName","src":"1311:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59,"indexed":false,"mutability":"mutable","name":"decimals","nameLocation":"1326:8:0","nodeType":"VariableDeclaration","scope":61,"src":"1321:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58,"name":"uint","nodeType":"ElementaryTypeName","src":"1321:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1298:37:0"}},{"id":67,"nodeType":"EventDefinition","src":"1341:51:0","nodes":[],"anonymous":false,"eventSelector":"2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168","name":"log_named_int","nameLocation":"1347:13:0","parameters":{"id":66,"nodeType":"ParameterList","parameters":[{"constant":false,"id":63,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"1378:3:0","nodeType":"VariableDeclaration","scope":67,"src":"1371:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":62,"name":"string","nodeType":"ElementaryTypeName","src":"1371:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":65,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"1387:3:0","nodeType":"VariableDeclaration","scope":67,"src":"1383:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":64,"name":"int","nodeType":"ElementaryTypeName","src":"1383:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1370:21:0"}},{"id":73,"nodeType":"EventDefinition","src":"1397:52:0","nodes":[],"anonymous":false,"eventSelector":"b2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8","name":"log_named_uint","nameLocation":"1403:14:0","parameters":{"id":72,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"1434:3:0","nodeType":"VariableDeclaration","scope":73,"src":"1427:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":68,"name":"string","nodeType":"ElementaryTypeName","src":"1427:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":71,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"1444:3:0","nodeType":"VariableDeclaration","scope":73,"src":"1439:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70,"name":"uint","nodeType":"ElementaryTypeName","src":"1439:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1426:22:0"}},{"id":79,"nodeType":"EventDefinition","src":"1454:53:0","nodes":[],"anonymous":false,"eventSelector":"d26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18","name":"log_named_bytes","nameLocation":"1460:15:0","parameters":{"id":78,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"1491:3:0","nodeType":"VariableDeclaration","scope":79,"src":"1484:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":74,"name":"string","nodeType":"ElementaryTypeName","src":"1484:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":77,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"1502:3:0","nodeType":"VariableDeclaration","scope":79,"src":"1496:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":76,"name":"bytes","nodeType":"ElementaryTypeName","src":"1496:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1483:23:0"}},{"id":85,"nodeType":"EventDefinition","src":"1512:54:0","nodes":[],"anonymous":false,"eventSelector":"280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583","name":"log_named_string","nameLocation":"1518:16:0","parameters":{"id":84,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"1549:3:0","nodeType":"VariableDeclaration","scope":85,"src":"1542:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":80,"name":"string","nodeType":"ElementaryTypeName","src":"1542:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":83,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"1561:3:0","nodeType":"VariableDeclaration","scope":85,"src":"1554:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82,"name":"string","nodeType":"ElementaryTypeName","src":"1554:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1541:24:0"}},{"id":88,"nodeType":"VariableDeclaration","src":"1572:26:0","nodes":[],"constant":false,"functionSelector":"fa7626d4","mutability":"mutable","name":"IS_TEST","nameLocation":"1584:7:0","scope":1786,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86,"name":"bool","nodeType":"ElementaryTypeName","src":"1572:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":87,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1594:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"public"},{"id":90,"nodeType":"VariableDeclaration","src":"1604:20:0","nodes":[],"constant":false,"mutability":"mutable","name":"_failed","nameLocation":"1617:7:0","scope":1786,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":89,"name":"bool","nodeType":"ElementaryTypeName","src":"1604:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":107,"nodeType":"VariableDeclaration","src":"1631:104:0","nodes":[],"constant":true,"mutability":"constant","name":"HEVM_ADDRESS","nameLocation":"1648:12:0","scope":1786,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91,"name":"address","nodeType":"ElementaryTypeName","src":"1631:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1713:17:0","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":100,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1703:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1703:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":99,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1695:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":98,"name":"uint256","nodeType":"ElementaryTypeName","src":"1695:7:0","typeDescriptions":{}}},"id":103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1695:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":97,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1687:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":96,"name":"uint160","nodeType":"ElementaryTypeName","src":"1687:7:0","typeDescriptions":{}}},"id":104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1687:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":95,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1679:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":94,"name":"bytes20","nodeType":"ElementaryTypeName","src":"1679:7:0","typeDescriptions":{}}},"id":105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1679:55:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":93,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1671:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":92,"name":"address","nodeType":"ElementaryTypeName","src":"1671:7:0","typeDescriptions":{}}},"id":106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1671:64:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":111,"nodeType":"ModifierDefinition","src":"1742:27:0","nodes":[],"body":{"id":110,"nodeType":"Block","src":"1763:6:0","nodes":[],"statements":[{"id":109,"nodeType":"PlaceholderStatement","src":"1765:1:0"}]},"name":"mayRevert","nameLocation":"1751:9:0","parameters":{"id":108,"nodeType":"ParameterList","parameters":[],"src":"1760:2:0"},"virtual":false,"visibility":"internal"},{"id":117,"nodeType":"ModifierDefinition","src":"1774:39:0","nodes":[],"body":{"id":116,"nodeType":"Block","src":"1807:6:0","nodes":[],"statements":[{"id":115,"nodeType":"PlaceholderStatement","src":"1809:1:0"}]},"name":"testopts","nameLocation":"1783:8:0","parameters":{"id":114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":113,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":117,"src":"1792:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":112,"name":"string","nodeType":"ElementaryTypeName","src":"1792:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1791:15:0"},"virtual":false,"visibility":"internal"},{"id":172,"nodeType":"FunctionDefinition","src":"1819:584:0","nodes":[],"body":{"id":171,"nodeType":"Block","src":"1859:544:0","nodes":[],"statements":[{"condition":{"id":122,"name":"_failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90,"src":"1873:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":169,"nodeType":"Block","src":"1927:470:0","statements":[{"assignments":[127],"declarations":[{"constant":false,"id":127,"mutability":"mutable","name":"globalFailed","nameLocation":"1946:12:0","nodeType":"VariableDeclaration","scope":169,"src":"1941:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":126,"name":"bool","nodeType":"ElementaryTypeName","src":"1941:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":129,"initialValue":{"hexValue":"66616c7365","id":128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1961:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"1941:25:0"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":130,"name":"hasHEVMContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":231,"src":"1984:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1984:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":166,"nodeType":"IfStatement","src":"1980:374:0","trueBody":{"id":165,"nodeType":"Block","src":"2002:352:0","statements":[{"assignments":[null,133],"declarations":[null,{"constant":false,"id":133,"mutability":"mutable","name":"retdata","nameLocation":"2036:7:0","nodeType":"VariableDeclaration","scope":165,"src":"2023:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":132,"name":"bytes","nodeType":"ElementaryTypeName","src":"2023:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":154,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6c6f616428616464726573732c6279746573333229","id":141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2145:23:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4","typeString":"literal_string \"load(address,bytes32)\""},"value":"load(address,bytes32)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4","typeString":"literal_string \"load(address,bytes32)\""}],"id":140,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2135:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2135:34:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2128:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":138,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2128:6:0","typeDescriptions":{}}},"id":143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2128:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"id":146,"name":"HEVM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107,"src":"2207:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"6661696c6564","id":149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2229:8:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f44d68b1a26169d304522fa2f95aa938d98120d628d1db5726120ca84e53b43","typeString":"literal_string \"failed\""},"value":"failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8f44d68b1a26169d304522fa2f95aa938d98120d628d1db5726120ca84e53b43","typeString":"literal_string \"failed\""}],"id":148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2221:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":147,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2221:7:0","typeDescriptions":{}}},"id":150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2221:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":144,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2196:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2200:6:0","memberName":"encode","nodeType":"MemberAccess","src":"2196:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2196:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":136,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2086:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2090:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"2086:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2086:175:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":134,"name":"HEVM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107,"src":"2047:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2060:4:0","memberName":"call","nodeType":"MemberAccess","src":"2047:17:0","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2047:232:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2020:259:0"},{"expression":{"id":163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":155,"name":"globalFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127,"src":"2297:12:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":158,"name":"retdata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133,"src":"2323:7:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2333:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":159,"name":"bool","nodeType":"ElementaryTypeName","src":"2333:4:0","typeDescriptions":{}}}],"id":161,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2332:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":156,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2312:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2316:6:0","memberName":"decode","nodeType":"MemberAccess","src":"2312:10:0","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2312:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2297:42:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":164,"nodeType":"ExpressionStatement","src":"2297:42:0"}]}},{"expression":{"id":167,"name":"globalFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127,"src":"2374:12:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":121,"id":168,"nodeType":"Return","src":"2367:19:0"}]},"id":170,"nodeType":"IfStatement","src":"1869:528:0","trueBody":{"id":125,"nodeType":"Block","src":"1882:39:0","statements":[{"expression":{"id":123,"name":"_failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90,"src":"1903:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":121,"id":124,"nodeType":"Return","src":"1896:14:0"}]}}]},"functionSelector":"ba414fa6","implemented":true,"kind":"function","modifiers":[],"name":"failed","nameLocation":"1828:6:0","parameters":{"id":118,"nodeType":"ParameterList","parameters":[],"src":"1834:2:0"},"returnParameters":{"id":121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":120,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":172,"src":"1853:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":119,"name":"bool","nodeType":"ElementaryTypeName","src":"1853:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1852:6:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":216,"nodeType":"FunctionDefinition","src":"2410:424:0","nodes":[],"body":{"id":215,"nodeType":"Block","src":"2435:399:0","nodes":[],"statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":175,"name":"hasHEVMContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":231,"src":"2449:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2449:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":210,"nodeType":"IfStatement","src":"2445:359:0","trueBody":{"id":209,"nodeType":"Block","src":"2467:337:0","statements":[{"assignments":[178,null],"declarations":[{"constant":false,"id":178,"mutability":"mutable","name":"status","nameLocation":"2487:6:0","nodeType":"VariableDeclaration","scope":209,"src":"2482:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":177,"name":"bool","nodeType":"ElementaryTypeName","src":"2482:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":206,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"73746f726528616464726573732c627974657333322c6279746573333229","id":186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2589:32:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc4","typeString":"literal_string \"store(address,bytes32,bytes32)\""},"value":"store(address,bytes32,bytes32)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_70ca10bbd0dbfd9020a9f4b13402c16cb120705e0d1c0aeab10fa353ae586fc4","typeString":"literal_string \"store(address,bytes32,bytes32)\""}],"id":185,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2579:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2579:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2572:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":183,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2572:6:0","typeDescriptions":{}}},"id":188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2572:51:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"id":191,"name":"HEVM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107,"src":"2656:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"6661696c6564","id":194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2678:8:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f44d68b1a26169d304522fa2f95aa938d98120d628d1db5726120ca84e53b43","typeString":"literal_string \"failed\""},"value":"failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8f44d68b1a26169d304522fa2f95aa938d98120d628d1db5726120ca84e53b43","typeString":"literal_string \"failed\""}],"id":193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2670:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":192,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2670:7:0","typeDescriptions":{}}},"id":195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2670:17:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"hexValue":"30783031","id":200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2705:4:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2697:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":198,"name":"uint256","nodeType":"ElementaryTypeName","src":"2697:7:0","typeDescriptions":{}}},"id":201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2697:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2689:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":196,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2689:7:0","typeDescriptions":{}}},"id":202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2689:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":189,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2645:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2649:6:0","memberName":"encode","nodeType":"MemberAccess","src":"2645:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2645:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":181,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2534:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2538:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"2534:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2534:196:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":179,"name":"HEVM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":107,"src":"2499:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2512:4:0","memberName":"call","nodeType":"MemberAccess","src":"2499:17:0","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2499:245:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2481:263:0"},{"expression":{"id":207,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":178,"src":"2758:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":208,"nodeType":"ExpressionStatement","src":"2758:6:0"}]}},{"expression":{"id":213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":211,"name":"_failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90,"src":"2813:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2823:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2813:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":214,"nodeType":"ExpressionStatement","src":"2813:14:0"}]},"implemented":true,"kind":"function","modifiers":[],"name":"fail","nameLocation":"2419:4:0","parameters":{"id":173,"nodeType":"ParameterList","parameters":[],"src":"2423:2:0"},"returnParameters":{"id":174,"nodeType":"ParameterList","parameters":[],"src":"2435:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":231,"nodeType":"FunctionDefinition","src":"2840:242:0","nodes":[],"body":{"id":230,"nodeType":"Block","src":"2895:187:0","nodes":[],"statements":[{"assignments":[222],"declarations":[{"constant":false,"id":222,"mutability":"mutable","name":"hevmCodeSize","nameLocation":"2913:12:0","nodeType":"VariableDeclaration","scope":230,"src":"2905:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":221,"name":"uint256","nodeType":"ElementaryTypeName","src":"2905:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":224,"initialValue":{"hexValue":"30","id":223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2928:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2905:24:0"},{"AST":{"nativeSrc":"2948:95:0","nodeType":"YulBlock","src":"2948:95:0","statements":[{"nativeSrc":"2962:71:0","nodeType":"YulAssignment","src":"2962:71:0","value":{"arguments":[{"kind":"number","nativeSrc":"2990:42:0","nodeType":"YulLiteral","src":"2990:42:0","type":"","value":"0x7109709ECfa91a80626fF3989D68f67F5b1DD12D"}],"functionName":{"name":"extcodesize","nativeSrc":"2978:11:0","nodeType":"YulIdentifier","src":"2978:11:0"},"nativeSrc":"2978:55:0","nodeType":"YulFunctionCall","src":"2978:55:0"},"variableNames":[{"name":"hevmCodeSize","nativeSrc":"2962:12:0","nodeType":"YulIdentifier","src":"2962:12:0"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":222,"isOffset":false,"isSlot":false,"src":"2962:12:0","valueSize":1}],"id":225,"nodeType":"InlineAssembly","src":"2939:104:0"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":226,"name":"hevmCodeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":222,"src":"3059:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3074:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3059:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":220,"id":229,"nodeType":"Return","src":"3052:23:0"}]},"implemented":true,"kind":"function","modifiers":[],"name":"hasHEVMContext","nameLocation":"2849:14:0","parameters":{"id":217,"nodeType":"ParameterList","parameters":[],"src":"2863:2:0"},"returnParameters":{"id":220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":219,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":231,"src":"2889:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":218,"name":"bool","nodeType":"ElementaryTypeName","src":"2889:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2888:6:0"},"scope":1786,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":252,"nodeType":"ModifierDefinition","src":"3088:161:0","nodes":[],"body":{"id":251,"nodeType":"Block","src":"3108:141:0","nodes":[],"statements":[{"assignments":[234],"declarations":[{"constant":false,"id":234,"mutability":"mutable","name":"startGas","nameLocation":"3123:8:0","nodeType":"VariableDeclaration","scope":251,"src":"3118:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":233,"name":"uint","nodeType":"ElementaryTypeName","src":"3118:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":237,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":235,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"3134:7:0","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3134:9:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3118:25:0"},{"id":238,"nodeType":"PlaceholderStatement","src":"3153:1:0"},{"assignments":[240],"declarations":[{"constant":false,"id":240,"mutability":"mutable","name":"endGas","nameLocation":"3169:6:0","nodeType":"VariableDeclaration","scope":251,"src":"3164:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":239,"name":"uint","nodeType":"ElementaryTypeName","src":"3164:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":243,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":241,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"3178:7:0","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3178:9:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3164:23:0"},{"eventCall":{"arguments":[{"hexValue":"676173","id":245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3217:5:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_4498c2139ad6cf2beef3ae7bec34c4856d471c8680dfd28d553f117df74df6b7","typeString":"literal_string \"gas\""},"value":"gas"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":246,"name":"startGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":234,"src":"3224:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":247,"name":"endGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"3235:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3224:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4498c2139ad6cf2beef3ae7bec34c4856d471c8680dfd28d553f117df74df6b7","typeString":"literal_string \"gas\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":244,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"3202:14:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3202:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":250,"nodeType":"EmitStatement","src":"3197:45:0"}]},"name":"logs_gas","nameLocation":"3097:8:0","parameters":{"id":232,"nodeType":"ParameterList","parameters":[],"src":"3105:2:0"},"virtual":false,"visibility":"internal"},{"id":269,"nodeType":"FunctionDefinition","src":"3255:157:0","nodes":[],"body":{"id":268,"nodeType":"Block","src":"3300:112:0","nodes":[],"statements":[{"condition":{"id":258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3314:10:0","subExpression":{"id":257,"name":"condition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":254,"src":"3315:9:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":267,"nodeType":"IfStatement","src":"3310:96:0","trueBody":{"id":266,"nodeType":"Block","src":"3326:80:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a20417373657274696f6e204661696c6564","id":260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3349:25:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc8bd7d7034d6f139e4d0b1fc61bcb3025672e801833991d94fa7390aceb1687","typeString":"literal_string \"Error: Assertion Failed\""},"value":"Error: Assertion Failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cc8bd7d7034d6f139e4d0b1fc61bcb3025672e801833991d94fa7390aceb1687","typeString":"literal_string \"Error: Assertion Failed\""}],"id":259,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"3345:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3345:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":262,"nodeType":"EmitStatement","src":"3340:35:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":263,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"3389:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3389:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":265,"nodeType":"ExpressionStatement","src":"3389:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertTrue","nameLocation":"3264:10:0","parameters":{"id":255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":254,"mutability":"mutable","name":"condition","nameLocation":"3280:9:0","nodeType":"VariableDeclaration","scope":269,"src":"3275:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":253,"name":"bool","nodeType":"ElementaryTypeName","src":"3275:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3274:16:0"},"returnParameters":{"id":256,"nodeType":"ParameterList","parameters":[],"src":"3300:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":290,"nodeType":"FunctionDefinition","src":"3418:191:0","nodes":[],"body":{"id":289,"nodeType":"Block","src":"3482:127:0","nodes":[],"statements":[{"condition":{"id":277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3496:10:0","subExpression":{"id":276,"name":"condition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":271,"src":"3497:9:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":288,"nodeType":"IfStatement","src":"3492:111:0","trueBody":{"id":287,"nodeType":"Block","src":"3508:95:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3544:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":280,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":273,"src":"3553:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":278,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"3527:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3527:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":282,"nodeType":"EmitStatement","src":"3522:35:0"},{"expression":{"arguments":[{"id":284,"name":"condition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":271,"src":"3582:9:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":283,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[269,290],"referencedDeclaration":269,"src":"3571:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$returns$__$","typeString":"function (bool)"}},"id":285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3571:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":286,"nodeType":"ExpressionStatement","src":"3571:21:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertTrue","nameLocation":"3427:10:0","parameters":{"id":274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":271,"mutability":"mutable","name":"condition","nameLocation":"3443:9:0","nodeType":"VariableDeclaration","scope":290,"src":"3438:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":270,"name":"bool","nodeType":"ElementaryTypeName","src":"3438:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":273,"mutability":"mutable","name":"err","nameLocation":"3468:3:0","nodeType":"VariableDeclaration","scope":290,"src":"3454:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":272,"name":"string","nodeType":"ElementaryTypeName","src":"3454:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3437:35:0"},"returnParameters":{"id":275,"nodeType":"ParameterList","parameters":[],"src":"3482:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":320,"nodeType":"FunctionDefinition","src":"3615:277:0","nodes":[],"body":{"id":319,"nodeType":"Block","src":"3664:228:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":297,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":292,"src":"3678:1:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":298,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":294,"src":"3683:1:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3678:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":318,"nodeType":"IfStatement","src":"3674:212:0","trueBody":{"id":317,"nodeType":"Block","src":"3686:200:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203d3d2062206e6f7420736174697366696564205b616464726573735d","id":301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3709:39:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_9fc6ddd126630392f6812bf6b1418b5ec062ae84acc54ee474317255c7d57017","typeString":"literal_string \"Error: a == b not satisfied [address]\""},"value":"Error: a == b not satisfied [address]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9fc6ddd126630392f6812bf6b1418b5ec062ae84acc54ee474317255c7d57017","typeString":"literal_string \"Error: a == b not satisfied [address]\""}],"id":300,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"3705:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3705:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":303,"nodeType":"EmitStatement","src":"3700:49:0"},{"eventCall":{"arguments":[{"hexValue":"20204578706563746564","id":305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3786:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},"value":" Expected"},{"id":306,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":294,"src":"3800:1:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},{"typeIdentifier":"t_address","typeString":"address"}],"id":304,"name":"log_named_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39,"src":"3768:17:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address)"}},"id":307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3768:34:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":308,"nodeType":"EmitStatement","src":"3763:39:0"},{"eventCall":{"arguments":[{"hexValue":"2020202041637475616c","id":310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3839:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},"value":" Actual"},{"id":311,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":292,"src":"3853:1:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},{"typeIdentifier":"t_address","typeString":"address"}],"id":309,"name":"log_named_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39,"src":"3821:17:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address)"}},"id":312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3821:34:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":313,"nodeType":"EmitStatement","src":"3816:39:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":314,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"3869:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3869:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":316,"nodeType":"ExpressionStatement","src":"3869:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"3624:8:0","parameters":{"id":295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":292,"mutability":"mutable","name":"a","nameLocation":"3641:1:0","nodeType":"VariableDeclaration","scope":320,"src":"3633:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":291,"name":"address","nodeType":"ElementaryTypeName","src":"3633:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":294,"mutability":"mutable","name":"b","nameLocation":"3652:1:0","nodeType":"VariableDeclaration","scope":320,"src":"3644:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":293,"name":"address","nodeType":"ElementaryTypeName","src":"3644:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3632:22:0"},"returnParameters":{"id":296,"nodeType":"ParameterList","parameters":[],"src":"3664:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":345,"nodeType":"FunctionDefinition","src":"3897:185:0","nodes":[],"body":{"id":344,"nodeType":"Block","src":"3965:117:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":329,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":322,"src":"3979:1:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":330,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"3984:1:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3979:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":343,"nodeType":"IfStatement","src":"3975:101:0","trueBody":{"id":342,"nodeType":"Block","src":"3987:89:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4024:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":334,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":326,"src":"4033:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":332,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"4006:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4006:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":336,"nodeType":"EmitStatement","src":"4001:36:0"},{"expression":{"arguments":[{"id":338,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":322,"src":"4060:1:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":339,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"4063:1:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":337,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":320,"src":"4051:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4051:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":341,"nodeType":"ExpressionStatement","src":"4051:14:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"3906:8:0","parameters":{"id":327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":322,"mutability":"mutable","name":"a","nameLocation":"3923:1:0","nodeType":"VariableDeclaration","scope":345,"src":"3915:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":321,"name":"address","nodeType":"ElementaryTypeName","src":"3915:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":324,"mutability":"mutable","name":"b","nameLocation":"3934:1:0","nodeType":"VariableDeclaration","scope":345,"src":"3926:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":323,"name":"address","nodeType":"ElementaryTypeName","src":"3926:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":326,"mutability":"mutable","name":"err","nameLocation":"3951:3:0","nodeType":"VariableDeclaration","scope":345,"src":"3937:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":325,"name":"string","nodeType":"ElementaryTypeName","src":"3937:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3914:41:0"},"returnParameters":{"id":328,"nodeType":"ParameterList","parameters":[],"src":"3965:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":375,"nodeType":"FunctionDefinition","src":"4088:277:0","nodes":[],"body":{"id":374,"nodeType":"Block","src":"4137:228:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":352,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":347,"src":"4151:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":353,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":349,"src":"4156:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4151:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":373,"nodeType":"IfStatement","src":"4147:212:0","trueBody":{"id":372,"nodeType":"Block","src":"4159:200:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203d3d2062206e6f7420736174697366696564205b627974657333325d","id":356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4182:39:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6605dedc99dd4e0a76d4678a99cc6956499fe2b523ca6525b248ca3582cef3ef","typeString":"literal_string \"Error: a == b not satisfied [bytes32]\""},"value":"Error: a == b not satisfied [bytes32]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6605dedc99dd4e0a76d4678a99cc6956499fe2b523ca6525b248ca3582cef3ef","typeString":"literal_string \"Error: a == b not satisfied [bytes32]\""}],"id":355,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"4178:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4178:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":358,"nodeType":"EmitStatement","src":"4173:49:0"},{"eventCall":{"arguments":[{"hexValue":"20204578706563746564","id":360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4259:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},"value":" Expected"},{"id":361,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":349,"src":"4273:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":359,"name":"log_named_bytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45,"src":"4241:17:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_bytes32_$returns$__$","typeString":"function (string memory,bytes32)"}},"id":362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4241:34:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":363,"nodeType":"EmitStatement","src":"4236:39:0"},{"eventCall":{"arguments":[{"hexValue":"2020202041637475616c","id":365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4312:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},"value":" Actual"},{"id":366,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":347,"src":"4326:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":364,"name":"log_named_bytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45,"src":"4294:17:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_bytes32_$returns$__$","typeString":"function (string memory,bytes32)"}},"id":367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4294:34:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":368,"nodeType":"EmitStatement","src":"4289:39:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":369,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"4342:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4342:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":371,"nodeType":"ExpressionStatement","src":"4342:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"4097:8:0","parameters":{"id":350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":347,"mutability":"mutable","name":"a","nameLocation":"4114:1:0","nodeType":"VariableDeclaration","scope":375,"src":"4106:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":346,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4106:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":349,"mutability":"mutable","name":"b","nameLocation":"4125:1:0","nodeType":"VariableDeclaration","scope":375,"src":"4117:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":348,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4117:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4105:22:0"},"returnParameters":{"id":351,"nodeType":"ParameterList","parameters":[],"src":"4137:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":400,"nodeType":"FunctionDefinition","src":"4370:185:0","nodes":[],"body":{"id":399,"nodeType":"Block","src":"4438:117:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":384,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":377,"src":"4452:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":385,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":379,"src":"4457:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4452:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":398,"nodeType":"IfStatement","src":"4448:101:0","trueBody":{"id":397,"nodeType":"Block","src":"4460:89:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4497:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":389,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":381,"src":"4506:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":387,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"4479:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4479:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":391,"nodeType":"EmitStatement","src":"4474:36:0"},{"expression":{"arguments":[{"id":393,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":377,"src":"4533:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":394,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":379,"src":"4536:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":392,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":375,"src":"4524:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4524:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":396,"nodeType":"ExpressionStatement","src":"4524:14:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"4379:8:0","parameters":{"id":382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":377,"mutability":"mutable","name":"a","nameLocation":"4396:1:0","nodeType":"VariableDeclaration","scope":400,"src":"4388:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":376,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4388:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":379,"mutability":"mutable","name":"b","nameLocation":"4407:1:0","nodeType":"VariableDeclaration","scope":400,"src":"4399:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":378,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4399:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":381,"mutability":"mutable","name":"err","nameLocation":"4424:3:0","nodeType":"VariableDeclaration","scope":400,"src":"4410:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":380,"name":"string","nodeType":"ElementaryTypeName","src":"4410:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4387:41:0"},"returnParameters":{"id":383,"nodeType":"ParameterList","parameters":[],"src":"4438:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":413,"nodeType":"FunctionDefinition","src":"4560:82:0","nodes":[],"body":{"id":412,"nodeType":"Block","src":"4611:31:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":408,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":402,"src":"4630:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":409,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":404,"src":"4633:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":407,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":375,"src":"4621:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4621:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":411,"nodeType":"ExpressionStatement","src":"4621:14:0"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq32","nameLocation":"4569:10:0","parameters":{"id":405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":402,"mutability":"mutable","name":"a","nameLocation":"4588:1:0","nodeType":"VariableDeclaration","scope":413,"src":"4580:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":401,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4580:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":404,"mutability":"mutable","name":"b","nameLocation":"4599:1:0","nodeType":"VariableDeclaration","scope":413,"src":"4591:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":403,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4591:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4579:22:0"},"returnParameters":{"id":406,"nodeType":"ParameterList","parameters":[],"src":"4611:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":429,"nodeType":"FunctionDefinition","src":"4647:106:0","nodes":[],"body":{"id":428,"nodeType":"Block","src":"4717:36:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":423,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":415,"src":"4736:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":424,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":417,"src":"4739:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":425,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":419,"src":"4742:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":422,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":400,"src":"4727:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory)"}},"id":426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4727:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":427,"nodeType":"ExpressionStatement","src":"4727:19:0"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq32","nameLocation":"4656:10:0","parameters":{"id":420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":415,"mutability":"mutable","name":"a","nameLocation":"4675:1:0","nodeType":"VariableDeclaration","scope":429,"src":"4667:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":414,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4667:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":417,"mutability":"mutable","name":"b","nameLocation":"4686:1:0","nodeType":"VariableDeclaration","scope":429,"src":"4678:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":416,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4678:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":419,"mutability":"mutable","name":"err","nameLocation":"4703:3:0","nodeType":"VariableDeclaration","scope":429,"src":"4689:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":418,"name":"string","nodeType":"ElementaryTypeName","src":"4689:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4666:41:0"},"returnParameters":{"id":421,"nodeType":"ParameterList","parameters":[],"src":"4717:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":459,"nodeType":"FunctionDefinition","src":"4759:257:0","nodes":[],"body":{"id":458,"nodeType":"Block","src":"4800:216:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":436,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":431,"src":"4814:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":437,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":433,"src":"4819:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4814:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":457,"nodeType":"IfStatement","src":"4810:200:0","trueBody":{"id":456,"nodeType":"Block","src":"4822:188:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203d3d2062206e6f7420736174697366696564205b696e745d","id":440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4845:35:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c510d1b16a7b86013fe25431f855bed96290957b4566f7ab53d5bf1855a3a81","typeString":"literal_string \"Error: a == b not satisfied [int]\""},"value":"Error: a == b not satisfied [int]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c510d1b16a7b86013fe25431f855bed96290957b4566f7ab53d5bf1855a3a81","typeString":"literal_string \"Error: a == b not satisfied [int]\""}],"id":439,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"4841:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4841:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":442,"nodeType":"EmitStatement","src":"4836:45:0"},{"eventCall":{"arguments":[{"hexValue":"20204578706563746564","id":444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4914:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},"value":" Expected"},{"id":445,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":433,"src":"4928:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":443,"name":"log_named_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"4900:13:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$","typeString":"function (string memory,int256)"}},"id":446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4900:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":447,"nodeType":"EmitStatement","src":"4895:35:0"},{"eventCall":{"arguments":[{"hexValue":"2020202041637475616c","id":449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4963:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},"value":" Actual"},{"id":450,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":431,"src":"4977:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":448,"name":"log_named_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"4949:13:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$","typeString":"function (string memory,int256)"}},"id":451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4949:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":452,"nodeType":"EmitStatement","src":"4944:35:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":453,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"4993:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4993:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":455,"nodeType":"ExpressionStatement","src":"4993:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"4768:8:0","parameters":{"id":434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":431,"mutability":"mutable","name":"a","nameLocation":"4781:1:0","nodeType":"VariableDeclaration","scope":459,"src":"4777:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":430,"name":"int","nodeType":"ElementaryTypeName","src":"4777:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":433,"mutability":"mutable","name":"b","nameLocation":"4788:1:0","nodeType":"VariableDeclaration","scope":459,"src":"4784:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":432,"name":"int","nodeType":"ElementaryTypeName","src":"4784:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4776:14:0"},"returnParameters":{"id":435,"nodeType":"ParameterList","parameters":[],"src":"4800:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":484,"nodeType":"FunctionDefinition","src":"5021:176:0","nodes":[],"body":{"id":483,"nodeType":"Block","src":"5081:116:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":468,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":461,"src":"5095:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":469,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":463,"src":"5100:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5095:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":482,"nodeType":"IfStatement","src":"5091:100:0","trueBody":{"id":481,"nodeType":"Block","src":"5103:88:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5139:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":473,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":465,"src":"5148:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":471,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"5122:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5122:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":475,"nodeType":"EmitStatement","src":"5117:35:0"},{"expression":{"arguments":[{"id":477,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":461,"src":"5175:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":478,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":463,"src":"5178:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":476,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":459,"src":"5166:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$returns$__$","typeString":"function (int256,int256)"}},"id":479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5166:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":480,"nodeType":"ExpressionStatement","src":"5166:14:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"5030:8:0","parameters":{"id":466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":461,"mutability":"mutable","name":"a","nameLocation":"5043:1:0","nodeType":"VariableDeclaration","scope":484,"src":"5039:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":460,"name":"int","nodeType":"ElementaryTypeName","src":"5039:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":463,"mutability":"mutable","name":"b","nameLocation":"5050:1:0","nodeType":"VariableDeclaration","scope":484,"src":"5046:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":462,"name":"int","nodeType":"ElementaryTypeName","src":"5046:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":465,"mutability":"mutable","name":"err","nameLocation":"5067:3:0","nodeType":"VariableDeclaration","scope":484,"src":"5053:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":464,"name":"string","nodeType":"ElementaryTypeName","src":"5053:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5038:33:0"},"returnParameters":{"id":467,"nodeType":"ParameterList","parameters":[],"src":"5081:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":514,"nodeType":"FunctionDefinition","src":"5202:262:0","nodes":[],"body":{"id":513,"nodeType":"Block","src":"5245:219:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":491,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":486,"src":"5259:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":492,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":488,"src":"5264:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5259:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":512,"nodeType":"IfStatement","src":"5255:203:0","trueBody":{"id":511,"nodeType":"Block","src":"5267:191:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e745d","id":495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5290:36:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_3bb05d3ba160a011999668447ff4a7cdd52bf87aeb1d7b9b284ef23b37a2b183","typeString":"literal_string \"Error: a == b not satisfied [uint]\""},"value":"Error: a == b not satisfied [uint]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3bb05d3ba160a011999668447ff4a7cdd52bf87aeb1d7b9b284ef23b37a2b183","typeString":"literal_string \"Error: a == b not satisfied [uint]\""}],"id":494,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"5286:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5286:41:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":497,"nodeType":"EmitStatement","src":"5281:46:0"},{"eventCall":{"arguments":[{"hexValue":"20204578706563746564","id":499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5361:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},"value":" Expected"},{"id":500,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":488,"src":"5375:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":498,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"5346:14:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5346:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":502,"nodeType":"EmitStatement","src":"5341:36:0"},{"eventCall":{"arguments":[{"hexValue":"2020202041637475616c","id":504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5411:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},"value":" Actual"},{"id":505,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":486,"src":"5425:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":503,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"5396:14:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5396:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":507,"nodeType":"EmitStatement","src":"5391:36:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":508,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"5441:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5441:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":510,"nodeType":"ExpressionStatement","src":"5441:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"5211:8:0","parameters":{"id":489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":486,"mutability":"mutable","name":"a","nameLocation":"5225:1:0","nodeType":"VariableDeclaration","scope":514,"src":"5220:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":485,"name":"uint","nodeType":"ElementaryTypeName","src":"5220:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":488,"mutability":"mutable","name":"b","nameLocation":"5233:1:0","nodeType":"VariableDeclaration","scope":514,"src":"5228:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":487,"name":"uint","nodeType":"ElementaryTypeName","src":"5228:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5219:16:0"},"returnParameters":{"id":490,"nodeType":"ParameterList","parameters":[],"src":"5245:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":539,"nodeType":"FunctionDefinition","src":"5469:178:0","nodes":[],"body":{"id":538,"nodeType":"Block","src":"5531:116:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":523,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":516,"src":"5545:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":524,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":518,"src":"5550:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5545:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":537,"nodeType":"IfStatement","src":"5541:100:0","trueBody":{"id":536,"nodeType":"Block","src":"5553:88:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5589:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":528,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":520,"src":"5598:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":526,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"5572:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5572:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":530,"nodeType":"EmitStatement","src":"5567:35:0"},{"expression":{"arguments":[{"id":532,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":516,"src":"5625:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":533,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":518,"src":"5628:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":531,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":514,"src":"5616:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5616:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":535,"nodeType":"ExpressionStatement","src":"5616:14:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"5478:8:0","parameters":{"id":521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":516,"mutability":"mutable","name":"a","nameLocation":"5492:1:0","nodeType":"VariableDeclaration","scope":539,"src":"5487:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":515,"name":"uint","nodeType":"ElementaryTypeName","src":"5487:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":518,"mutability":"mutable","name":"b","nameLocation":"5500:1:0","nodeType":"VariableDeclaration","scope":539,"src":"5495:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":517,"name":"uint","nodeType":"ElementaryTypeName","src":"5495:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":520,"mutability":"mutable","name":"err","nameLocation":"5517:3:0","nodeType":"VariableDeclaration","scope":539,"src":"5503:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":519,"name":"string","nodeType":"ElementaryTypeName","src":"5503:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5486:35:0"},"returnParameters":{"id":522,"nodeType":"ParameterList","parameters":[],"src":"5531:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":573,"nodeType":"FunctionDefinition","src":"5652:323:0","nodes":[],"body":{"id":572,"nodeType":"Block","src":"5715:260:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":548,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":541,"src":"5729:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":549,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":543,"src":"5734:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5729:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":571,"nodeType":"IfStatement","src":"5725:244:0","trueBody":{"id":570,"nodeType":"Block","src":"5737:232:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203d3d2062206e6f7420736174697366696564205b646563696d616c20696e745d","id":552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5760:43:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ee6ef9b326324a79dedc7af5585ef9f689364368b4e76dd3a37559719a19fe6","typeString":"literal_string \"Error: a == b not satisfied [decimal int]\""},"value":"Error: a == b not satisfied [decimal int]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3ee6ef9b326324a79dedc7af5585ef9f689364368b4e76dd3a37559719a19fe6","typeString":"literal_string \"Error: a == b not satisfied [decimal int]\""}],"id":551,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"5756:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5756:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":554,"nodeType":"EmitStatement","src":"5751:53:0"},{"eventCall":{"arguments":[{"hexValue":"20204578706563746564","id":556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5845:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},"value":" Expected"},{"id":557,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":543,"src":"5859:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":558,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":545,"src":"5862:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":555,"name":"log_named_decimal_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53,"src":"5823:21:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (string memory,int256,uint256)"}},"id":559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5823:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":560,"nodeType":"EmitStatement","src":"5818:53:0"},{"eventCall":{"arguments":[{"hexValue":"2020202041637475616c","id":562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5912:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},"value":" Actual"},{"id":563,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":541,"src":"5926:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":564,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":545,"src":"5929:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":561,"name":"log_named_decimal_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53,"src":"5890:21:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (string memory,int256,uint256)"}},"id":565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5890:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":566,"nodeType":"EmitStatement","src":"5885:53:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":567,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"5952:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5952:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":569,"nodeType":"ExpressionStatement","src":"5952:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEqDecimal","nameLocation":"5661:15:0","parameters":{"id":546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":541,"mutability":"mutable","name":"a","nameLocation":"5681:1:0","nodeType":"VariableDeclaration","scope":573,"src":"5677:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":540,"name":"int","nodeType":"ElementaryTypeName","src":"5677:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":543,"mutability":"mutable","name":"b","nameLocation":"5688:1:0","nodeType":"VariableDeclaration","scope":573,"src":"5684:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":542,"name":"int","nodeType":"ElementaryTypeName","src":"5684:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":545,"mutability":"mutable","name":"decimals","nameLocation":"5696:8:0","nodeType":"VariableDeclaration","scope":573,"src":"5691:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":544,"name":"uint","nodeType":"ElementaryTypeName","src":"5691:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5676:29:0"},"returnParameters":{"id":547,"nodeType":"ParameterList","parameters":[],"src":"5715:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":601,"nodeType":"FunctionDefinition","src":"5980:215:0","nodes":[],"body":{"id":600,"nodeType":"Block","src":"6062:133:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":584,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":575,"src":"6076:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":585,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":577,"src":"6081:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"6076:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":599,"nodeType":"IfStatement","src":"6072:117:0","trueBody":{"id":598,"nodeType":"Block","src":"6084:105:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6120:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":589,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":581,"src":"6129:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":587,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"6103:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6103:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":591,"nodeType":"EmitStatement","src":"6098:35:0"},{"expression":{"arguments":[{"id":593,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":575,"src":"6163:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":594,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":577,"src":"6166:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":595,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":579,"src":"6169:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":592,"name":"assertEqDecimal","nodeType":"Identifier","overloadedDeclarations":[573,601,635,663],"referencedDeclaration":573,"src":"6147:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (int256,int256,uint256)"}},"id":596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6147:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":597,"nodeType":"ExpressionStatement","src":"6147:31:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEqDecimal","nameLocation":"5989:15:0","parameters":{"id":582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":575,"mutability":"mutable","name":"a","nameLocation":"6009:1:0","nodeType":"VariableDeclaration","scope":601,"src":"6005:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":574,"name":"int","nodeType":"ElementaryTypeName","src":"6005:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":577,"mutability":"mutable","name":"b","nameLocation":"6016:1:0","nodeType":"VariableDeclaration","scope":601,"src":"6012:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":576,"name":"int","nodeType":"ElementaryTypeName","src":"6012:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":579,"mutability":"mutable","name":"decimals","nameLocation":"6024:8:0","nodeType":"VariableDeclaration","scope":601,"src":"6019:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":578,"name":"uint","nodeType":"ElementaryTypeName","src":"6019:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":581,"mutability":"mutable","name":"err","nameLocation":"6048:3:0","nodeType":"VariableDeclaration","scope":601,"src":"6034:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":580,"name":"string","nodeType":"ElementaryTypeName","src":"6034:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6004:48:0"},"returnParameters":{"id":583,"nodeType":"ParameterList","parameters":[],"src":"6062:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":635,"nodeType":"FunctionDefinition","src":"6200:328:0","nodes":[],"body":{"id":634,"nodeType":"Block","src":"6265:263:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":610,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":603,"src":"6279:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":611,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":605,"src":"6284:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6279:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":633,"nodeType":"IfStatement","src":"6275:247:0","trueBody":{"id":632,"nodeType":"Block","src":"6287:235:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203d3d2062206e6f7420736174697366696564205b646563696d616c2075696e745d","id":614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6310:44:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_acd59a69b2dc4bcee2d5b2a205a178a5eace192e68808cc4db1cea91cdc48141","typeString":"literal_string \"Error: a == b not satisfied [decimal uint]\""},"value":"Error: a == b not satisfied [decimal uint]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_acd59a69b2dc4bcee2d5b2a205a178a5eace192e68808cc4db1cea91cdc48141","typeString":"literal_string \"Error: a == b not satisfied [decimal uint]\""}],"id":613,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"6306:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6306:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":616,"nodeType":"EmitStatement","src":"6301:54:0"},{"eventCall":{"arguments":[{"hexValue":"20204578706563746564","id":618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6397:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},"value":" Expected"},{"id":619,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":605,"src":"6411:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":620,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":607,"src":"6414:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":617,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61,"src":"6374:22:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6374:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":622,"nodeType":"EmitStatement","src":"6369:54:0"},{"eventCall":{"arguments":[{"hexValue":"2020202041637475616c","id":624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6465:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},"value":" Actual"},{"id":625,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":603,"src":"6479:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":626,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":607,"src":"6482:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":623,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61,"src":"6442:22:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6442:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":628,"nodeType":"EmitStatement","src":"6437:54:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":629,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"6505:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6505:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":631,"nodeType":"ExpressionStatement","src":"6505:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEqDecimal","nameLocation":"6209:15:0","parameters":{"id":608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":603,"mutability":"mutable","name":"a","nameLocation":"6230:1:0","nodeType":"VariableDeclaration","scope":635,"src":"6225:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":602,"name":"uint","nodeType":"ElementaryTypeName","src":"6225:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":605,"mutability":"mutable","name":"b","nameLocation":"6238:1:0","nodeType":"VariableDeclaration","scope":635,"src":"6233:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":604,"name":"uint","nodeType":"ElementaryTypeName","src":"6233:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":607,"mutability":"mutable","name":"decimals","nameLocation":"6246:8:0","nodeType":"VariableDeclaration","scope":635,"src":"6241:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":606,"name":"uint","nodeType":"ElementaryTypeName","src":"6241:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6224:31:0"},"returnParameters":{"id":609,"nodeType":"ParameterList","parameters":[],"src":"6265:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":663,"nodeType":"FunctionDefinition","src":"6533:217:0","nodes":[],"body":{"id":662,"nodeType":"Block","src":"6617:133:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":646,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":637,"src":"6631:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":647,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":639,"src":"6636:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6631:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":661,"nodeType":"IfStatement","src":"6627:117:0","trueBody":{"id":660,"nodeType":"Block","src":"6639:105:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6675:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":651,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":643,"src":"6684:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":649,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"6658:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6658:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":653,"nodeType":"EmitStatement","src":"6653:35:0"},{"expression":{"arguments":[{"id":655,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":637,"src":"6718:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":656,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":639,"src":"6721:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":657,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":641,"src":"6724:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":654,"name":"assertEqDecimal","nodeType":"Identifier","overloadedDeclarations":[573,601,635,663],"referencedDeclaration":635,"src":"6702:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6702:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":659,"nodeType":"ExpressionStatement","src":"6702:31:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEqDecimal","nameLocation":"6542:15:0","parameters":{"id":644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":637,"mutability":"mutable","name":"a","nameLocation":"6563:1:0","nodeType":"VariableDeclaration","scope":663,"src":"6558:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":636,"name":"uint","nodeType":"ElementaryTypeName","src":"6558:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":639,"mutability":"mutable","name":"b","nameLocation":"6571:1:0","nodeType":"VariableDeclaration","scope":663,"src":"6566:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":638,"name":"uint","nodeType":"ElementaryTypeName","src":"6566:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":641,"mutability":"mutable","name":"decimals","nameLocation":"6579:8:0","nodeType":"VariableDeclaration","scope":663,"src":"6574:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":640,"name":"uint","nodeType":"ElementaryTypeName","src":"6574:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":643,"mutability":"mutable","name":"err","nameLocation":"6603:3:0","nodeType":"VariableDeclaration","scope":663,"src":"6589:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":642,"name":"string","nodeType":"ElementaryTypeName","src":"6589:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6557:50:0"},"returnParameters":{"id":645,"nodeType":"ParameterList","parameters":[],"src":"6617:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":693,"nodeType":"FunctionDefinition","src":"6756:259:0","nodes":[],"body":{"id":692,"nodeType":"Block","src":"6799:216:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":670,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":665,"src":"6813:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":671,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":667,"src":"6818:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6813:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":691,"nodeType":"IfStatement","src":"6809:200:0","trueBody":{"id":690,"nodeType":"Block","src":"6821:188:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203e2062206e6f7420736174697366696564205b75696e745d","id":674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6844:35:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_71977b46fbd6a64b4465b93c7a77bcaa06103df599ead9f7e7004b34129c9e3a","typeString":"literal_string \"Error: a > b not satisfied [uint]\""},"value":"Error: a > b not satisfied [uint]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_71977b46fbd6a64b4465b93c7a77bcaa06103df599ead9f7e7004b34129c9e3a","typeString":"literal_string \"Error: a > b not satisfied [uint]\""}],"id":673,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"6840:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6840:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":676,"nodeType":"EmitStatement","src":"6835:45:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652061","id":678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6914:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},"value":" Value a"},{"id":679,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":665,"src":"6927:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":677,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"6899:14:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6899:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":681,"nodeType":"EmitStatement","src":"6894:35:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652062","id":683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6963:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},"value":" Value b"},{"id":684,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":667,"src":"6976:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":682,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"6948:14:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6948:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":686,"nodeType":"EmitStatement","src":"6943:35:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":687,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"6992:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6992:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":689,"nodeType":"ExpressionStatement","src":"6992:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGt","nameLocation":"6765:8:0","parameters":{"id":668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":665,"mutability":"mutable","name":"a","nameLocation":"6779:1:0","nodeType":"VariableDeclaration","scope":693,"src":"6774:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":664,"name":"uint","nodeType":"ElementaryTypeName","src":"6774:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":667,"mutability":"mutable","name":"b","nameLocation":"6787:1:0","nodeType":"VariableDeclaration","scope":693,"src":"6782:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":666,"name":"uint","nodeType":"ElementaryTypeName","src":"6782:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6773:16:0"},"returnParameters":{"id":669,"nodeType":"ParameterList","parameters":[],"src":"6799:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":718,"nodeType":"FunctionDefinition","src":"7020:178:0","nodes":[],"body":{"id":717,"nodeType":"Block","src":"7082:116:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":702,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":695,"src":"7096:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":703,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"7101:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7096:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":716,"nodeType":"IfStatement","src":"7092:100:0","trueBody":{"id":715,"nodeType":"Block","src":"7104:88:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7140:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":707,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":699,"src":"7149:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":705,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"7123:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7123:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":709,"nodeType":"EmitStatement","src":"7118:35:0"},{"expression":{"arguments":[{"id":711,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":695,"src":"7176:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":712,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"7179:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":710,"name":"assertGt","nodeType":"Identifier","overloadedDeclarations":[693,718,748,773],"referencedDeclaration":693,"src":"7167:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7167:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":714,"nodeType":"ExpressionStatement","src":"7167:14:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGt","nameLocation":"7029:8:0","parameters":{"id":700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":695,"mutability":"mutable","name":"a","nameLocation":"7043:1:0","nodeType":"VariableDeclaration","scope":718,"src":"7038:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":694,"name":"uint","nodeType":"ElementaryTypeName","src":"7038:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":697,"mutability":"mutable","name":"b","nameLocation":"7051:1:0","nodeType":"VariableDeclaration","scope":718,"src":"7046:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":696,"name":"uint","nodeType":"ElementaryTypeName","src":"7046:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":699,"mutability":"mutable","name":"err","nameLocation":"7068:3:0","nodeType":"VariableDeclaration","scope":718,"src":"7054:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":698,"name":"string","nodeType":"ElementaryTypeName","src":"7054:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7037:35:0"},"returnParameters":{"id":701,"nodeType":"ParameterList","parameters":[],"src":"7082:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":748,"nodeType":"FunctionDefinition","src":"7203:254:0","nodes":[],"body":{"id":747,"nodeType":"Block","src":"7244:213:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":725,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":720,"src":"7258:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":726,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":722,"src":"7263:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7258:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":746,"nodeType":"IfStatement","src":"7254:197:0","trueBody":{"id":745,"nodeType":"Block","src":"7266:185:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203e2062206e6f7420736174697366696564205b696e745d","id":729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7289:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c6338b3f9677628b4efbdc683490461f2a94469341c3d2ff3d117001fb77d49b","typeString":"literal_string \"Error: a > b not satisfied [int]\""},"value":"Error: a > b not satisfied [int]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c6338b3f9677628b4efbdc683490461f2a94469341c3d2ff3d117001fb77d49b","typeString":"literal_string \"Error: a > b not satisfied [int]\""}],"id":728,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"7285:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7285:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":731,"nodeType":"EmitStatement","src":"7280:44:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652061","id":733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7357:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},"value":" Value a"},{"id":734,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":720,"src":"7370:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":732,"name":"log_named_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"7343:13:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$","typeString":"function (string memory,int256)"}},"id":735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7343:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":736,"nodeType":"EmitStatement","src":"7338:34:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652062","id":738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7405:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},"value":" Value b"},{"id":739,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":722,"src":"7418:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":737,"name":"log_named_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"7391:13:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$","typeString":"function (string memory,int256)"}},"id":740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7391:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":741,"nodeType":"EmitStatement","src":"7386:34:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":742,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"7434:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7434:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":744,"nodeType":"ExpressionStatement","src":"7434:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGt","nameLocation":"7212:8:0","parameters":{"id":723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":720,"mutability":"mutable","name":"a","nameLocation":"7225:1:0","nodeType":"VariableDeclaration","scope":748,"src":"7221:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":719,"name":"int","nodeType":"ElementaryTypeName","src":"7221:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":722,"mutability":"mutable","name":"b","nameLocation":"7232:1:0","nodeType":"VariableDeclaration","scope":748,"src":"7228:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":721,"name":"int","nodeType":"ElementaryTypeName","src":"7228:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"7220:14:0"},"returnParameters":{"id":724,"nodeType":"ParameterList","parameters":[],"src":"7244:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":773,"nodeType":"FunctionDefinition","src":"7462:176:0","nodes":[],"body":{"id":772,"nodeType":"Block","src":"7522:116:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":757,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":750,"src":"7536:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":758,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":752,"src":"7541:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7536:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":771,"nodeType":"IfStatement","src":"7532:100:0","trueBody":{"id":770,"nodeType":"Block","src":"7544:88:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7580:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":762,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":754,"src":"7589:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":760,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"7563:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7563:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":764,"nodeType":"EmitStatement","src":"7558:35:0"},{"expression":{"arguments":[{"id":766,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":750,"src":"7616:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":767,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":752,"src":"7619:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":765,"name":"assertGt","nodeType":"Identifier","overloadedDeclarations":[693,718,748,773],"referencedDeclaration":748,"src":"7607:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$returns$__$","typeString":"function (int256,int256)"}},"id":768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7607:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":769,"nodeType":"ExpressionStatement","src":"7607:14:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGt","nameLocation":"7471:8:0","parameters":{"id":755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":750,"mutability":"mutable","name":"a","nameLocation":"7484:1:0","nodeType":"VariableDeclaration","scope":773,"src":"7480:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":749,"name":"int","nodeType":"ElementaryTypeName","src":"7480:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":752,"mutability":"mutable","name":"b","nameLocation":"7491:1:0","nodeType":"VariableDeclaration","scope":773,"src":"7487:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":751,"name":"int","nodeType":"ElementaryTypeName","src":"7487:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":754,"mutability":"mutable","name":"err","nameLocation":"7508:3:0","nodeType":"VariableDeclaration","scope":773,"src":"7494:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":753,"name":"string","nodeType":"ElementaryTypeName","src":"7494:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7479:33:0"},"returnParameters":{"id":756,"nodeType":"ParameterList","parameters":[],"src":"7522:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":807,"nodeType":"FunctionDefinition","src":"7643:320:0","nodes":[],"body":{"id":806,"nodeType":"Block","src":"7706:257:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":782,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":775,"src":"7720:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":783,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":777,"src":"7725:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7720:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":805,"nodeType":"IfStatement","src":"7716:241:0","trueBody":{"id":804,"nodeType":"Block","src":"7728:229:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203e2062206e6f7420736174697366696564205b646563696d616c20696e745d","id":786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7751:42:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_85ee98c18b4560d5bfeeef41e54955cef93f7b8071348c487f1fd81bd1aaf2ad","typeString":"literal_string \"Error: a > b not satisfied [decimal int]\""},"value":"Error: a > b not satisfied [decimal int]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_85ee98c18b4560d5bfeeef41e54955cef93f7b8071348c487f1fd81bd1aaf2ad","typeString":"literal_string \"Error: a > b not satisfied [decimal int]\""}],"id":785,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"7747:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7747:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":788,"nodeType":"EmitStatement","src":"7742:52:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652061","id":790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7835:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},"value":" Value a"},{"id":791,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":775,"src":"7848:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":792,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":779,"src":"7851:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":789,"name":"log_named_decimal_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53,"src":"7813:21:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (string memory,int256,uint256)"}},"id":793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7813:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":794,"nodeType":"EmitStatement","src":"7808:52:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652062","id":796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7901:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},"value":" Value b"},{"id":797,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":777,"src":"7914:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":798,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":779,"src":"7917:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":795,"name":"log_named_decimal_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53,"src":"7879:21:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (string memory,int256,uint256)"}},"id":799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7879:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":800,"nodeType":"EmitStatement","src":"7874:52:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":801,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"7940:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7940:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":803,"nodeType":"ExpressionStatement","src":"7940:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGtDecimal","nameLocation":"7652:15:0","parameters":{"id":780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":775,"mutability":"mutable","name":"a","nameLocation":"7672:1:0","nodeType":"VariableDeclaration","scope":807,"src":"7668:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":774,"name":"int","nodeType":"ElementaryTypeName","src":"7668:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":777,"mutability":"mutable","name":"b","nameLocation":"7679:1:0","nodeType":"VariableDeclaration","scope":807,"src":"7675:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":776,"name":"int","nodeType":"ElementaryTypeName","src":"7675:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":779,"mutability":"mutable","name":"decimals","nameLocation":"7687:8:0","nodeType":"VariableDeclaration","scope":807,"src":"7682:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":778,"name":"uint","nodeType":"ElementaryTypeName","src":"7682:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7667:29:0"},"returnParameters":{"id":781,"nodeType":"ParameterList","parameters":[],"src":"7706:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":835,"nodeType":"FunctionDefinition","src":"7968:215:0","nodes":[],"body":{"id":834,"nodeType":"Block","src":"8050:133:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":818,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":809,"src":"8064:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":819,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":811,"src":"8069:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8064:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":833,"nodeType":"IfStatement","src":"8060:117:0","trueBody":{"id":832,"nodeType":"Block","src":"8072:105:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8108:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":823,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":815,"src":"8117:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":821,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"8091:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8091:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":825,"nodeType":"EmitStatement","src":"8086:35:0"},{"expression":{"arguments":[{"id":827,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":809,"src":"8151:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":828,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":811,"src":"8154:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":829,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":813,"src":"8157:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":826,"name":"assertGtDecimal","nodeType":"Identifier","overloadedDeclarations":[807,835,869,897],"referencedDeclaration":807,"src":"8135:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (int256,int256,uint256)"}},"id":830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8135:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":831,"nodeType":"ExpressionStatement","src":"8135:31:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGtDecimal","nameLocation":"7977:15:0","parameters":{"id":816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":809,"mutability":"mutable","name":"a","nameLocation":"7997:1:0","nodeType":"VariableDeclaration","scope":835,"src":"7993:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":808,"name":"int","nodeType":"ElementaryTypeName","src":"7993:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":811,"mutability":"mutable","name":"b","nameLocation":"8004:1:0","nodeType":"VariableDeclaration","scope":835,"src":"8000:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":810,"name":"int","nodeType":"ElementaryTypeName","src":"8000:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":813,"mutability":"mutable","name":"decimals","nameLocation":"8012:8:0","nodeType":"VariableDeclaration","scope":835,"src":"8007:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":812,"name":"uint","nodeType":"ElementaryTypeName","src":"8007:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":815,"mutability":"mutable","name":"err","nameLocation":"8036:3:0","nodeType":"VariableDeclaration","scope":835,"src":"8022:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":814,"name":"string","nodeType":"ElementaryTypeName","src":"8022:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7992:48:0"},"returnParameters":{"id":817,"nodeType":"ParameterList","parameters":[],"src":"8050:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":869,"nodeType":"FunctionDefinition","src":"8188:325:0","nodes":[],"body":{"id":868,"nodeType":"Block","src":"8253:260:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":844,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":837,"src":"8267:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":845,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":839,"src":"8272:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8267:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":867,"nodeType":"IfStatement","src":"8263:244:0","trueBody":{"id":866,"nodeType":"Block","src":"8275:232:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203e2062206e6f7420736174697366696564205b646563696d616c2075696e745d","id":848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8298:43:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a2cca6a3a53808b9763cfdafa62d083cc161a243845052a9c6e09d6d624c69f","typeString":"literal_string \"Error: a > b not satisfied [decimal uint]\""},"value":"Error: a > b not satisfied [decimal uint]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2a2cca6a3a53808b9763cfdafa62d083cc161a243845052a9c6e09d6d624c69f","typeString":"literal_string \"Error: a > b not satisfied [decimal uint]\""}],"id":847,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"8294:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8294:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":850,"nodeType":"EmitStatement","src":"8289:53:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652061","id":852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8384:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},"value":" Value a"},{"id":853,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":837,"src":"8397:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":854,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":841,"src":"8400:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":851,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61,"src":"8361:22:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8361:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":856,"nodeType":"EmitStatement","src":"8356:53:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652062","id":858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8451:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},"value":" Value b"},{"id":859,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":839,"src":"8464:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":860,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":841,"src":"8467:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":857,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61,"src":"8428:22:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8428:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":862,"nodeType":"EmitStatement","src":"8423:53:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":863,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"8490:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8490:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":865,"nodeType":"ExpressionStatement","src":"8490:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGtDecimal","nameLocation":"8197:15:0","parameters":{"id":842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":837,"mutability":"mutable","name":"a","nameLocation":"8218:1:0","nodeType":"VariableDeclaration","scope":869,"src":"8213:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":836,"name":"uint","nodeType":"ElementaryTypeName","src":"8213:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":839,"mutability":"mutable","name":"b","nameLocation":"8226:1:0","nodeType":"VariableDeclaration","scope":869,"src":"8221:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":838,"name":"uint","nodeType":"ElementaryTypeName","src":"8221:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":841,"mutability":"mutable","name":"decimals","nameLocation":"8234:8:0","nodeType":"VariableDeclaration","scope":869,"src":"8229:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":840,"name":"uint","nodeType":"ElementaryTypeName","src":"8229:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8212:31:0"},"returnParameters":{"id":843,"nodeType":"ParameterList","parameters":[],"src":"8253:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":897,"nodeType":"FunctionDefinition","src":"8518:217:0","nodes":[],"body":{"id":896,"nodeType":"Block","src":"8602:133:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":880,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":871,"src":"8616:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":881,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":873,"src":"8621:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8616:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":895,"nodeType":"IfStatement","src":"8612:117:0","trueBody":{"id":894,"nodeType":"Block","src":"8624:105:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8660:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":885,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":877,"src":"8669:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":883,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"8643:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8643:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":887,"nodeType":"EmitStatement","src":"8638:35:0"},{"expression":{"arguments":[{"id":889,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":871,"src":"8703:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":890,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":873,"src":"8706:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":891,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"8709:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":888,"name":"assertGtDecimal","nodeType":"Identifier","overloadedDeclarations":[807,835,869,897],"referencedDeclaration":869,"src":"8687:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8687:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":893,"nodeType":"ExpressionStatement","src":"8687:31:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGtDecimal","nameLocation":"8527:15:0","parameters":{"id":878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":871,"mutability":"mutable","name":"a","nameLocation":"8548:1:0","nodeType":"VariableDeclaration","scope":897,"src":"8543:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":870,"name":"uint","nodeType":"ElementaryTypeName","src":"8543:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":873,"mutability":"mutable","name":"b","nameLocation":"8556:1:0","nodeType":"VariableDeclaration","scope":897,"src":"8551:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":872,"name":"uint","nodeType":"ElementaryTypeName","src":"8551:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":875,"mutability":"mutable","name":"decimals","nameLocation":"8564:8:0","nodeType":"VariableDeclaration","scope":897,"src":"8559:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":874,"name":"uint","nodeType":"ElementaryTypeName","src":"8559:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":877,"mutability":"mutable","name":"err","nameLocation":"8588:3:0","nodeType":"VariableDeclaration","scope":897,"src":"8574:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":876,"name":"string","nodeType":"ElementaryTypeName","src":"8574:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8542:50:0"},"returnParameters":{"id":879,"nodeType":"ParameterList","parameters":[],"src":"8602:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":927,"nodeType":"FunctionDefinition","src":"8741:259:0","nodes":[],"body":{"id":926,"nodeType":"Block","src":"8784:216:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":904,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":899,"src":"8798:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":905,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":901,"src":"8802:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8798:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":925,"nodeType":"IfStatement","src":"8794:200:0","trueBody":{"id":924,"nodeType":"Block","src":"8805:189:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203e3d2062206e6f7420736174697366696564205b75696e745d","id":908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8828:36:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad79593ab7a8c163bd9b5379945ad36a940281a5ef1023478b9c309b02ea375e","typeString":"literal_string \"Error: a >= b not satisfied [uint]\""},"value":"Error: a >= b not satisfied [uint]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad79593ab7a8c163bd9b5379945ad36a940281a5ef1023478b9c309b02ea375e","typeString":"literal_string \"Error: a >= b not satisfied [uint]\""}],"id":907,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"8824:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8824:41:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":910,"nodeType":"EmitStatement","src":"8819:46:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652061","id":912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8899:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},"value":" Value a"},{"id":913,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":899,"src":"8912:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":911,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"8884:14:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8884:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":915,"nodeType":"EmitStatement","src":"8879:35:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652062","id":917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8948:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},"value":" Value b"},{"id":918,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":901,"src":"8961:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":916,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"8933:14:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8933:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":920,"nodeType":"EmitStatement","src":"8928:35:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":921,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"8977:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8977:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":923,"nodeType":"ExpressionStatement","src":"8977:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGe","nameLocation":"8750:8:0","parameters":{"id":902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":899,"mutability":"mutable","name":"a","nameLocation":"8764:1:0","nodeType":"VariableDeclaration","scope":927,"src":"8759:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":898,"name":"uint","nodeType":"ElementaryTypeName","src":"8759:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":901,"mutability":"mutable","name":"b","nameLocation":"8772:1:0","nodeType":"VariableDeclaration","scope":927,"src":"8767:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":900,"name":"uint","nodeType":"ElementaryTypeName","src":"8767:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8758:16:0"},"returnParameters":{"id":903,"nodeType":"ParameterList","parameters":[],"src":"8784:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":952,"nodeType":"FunctionDefinition","src":"9005:177:0","nodes":[],"body":{"id":951,"nodeType":"Block","src":"9067:115:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":936,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"9081:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":937,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":931,"src":"9085:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9081:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":950,"nodeType":"IfStatement","src":"9077:99:0","trueBody":{"id":949,"nodeType":"Block","src":"9088:88:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9124:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":941,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":933,"src":"9133:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":939,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"9107:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9107:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":943,"nodeType":"EmitStatement","src":"9102:35:0"},{"expression":{"arguments":[{"id":945,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"9160:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":946,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":931,"src":"9163:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":944,"name":"assertGe","nodeType":"Identifier","overloadedDeclarations":[927,952,982,1007],"referencedDeclaration":927,"src":"9151:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9151:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":948,"nodeType":"ExpressionStatement","src":"9151:14:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGe","nameLocation":"9014:8:0","parameters":{"id":934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":929,"mutability":"mutable","name":"a","nameLocation":"9028:1:0","nodeType":"VariableDeclaration","scope":952,"src":"9023:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":928,"name":"uint","nodeType":"ElementaryTypeName","src":"9023:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":931,"mutability":"mutable","name":"b","nameLocation":"9036:1:0","nodeType":"VariableDeclaration","scope":952,"src":"9031:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":930,"name":"uint","nodeType":"ElementaryTypeName","src":"9031:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":933,"mutability":"mutable","name":"err","nameLocation":"9053:3:0","nodeType":"VariableDeclaration","scope":952,"src":"9039:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":932,"name":"string","nodeType":"ElementaryTypeName","src":"9039:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9022:35:0"},"returnParameters":{"id":935,"nodeType":"ParameterList","parameters":[],"src":"9067:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":982,"nodeType":"FunctionDefinition","src":"9187:254:0","nodes":[],"body":{"id":981,"nodeType":"Block","src":"9228:213:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":959,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":954,"src":"9242:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":960,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":956,"src":"9246:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9242:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":980,"nodeType":"IfStatement","src":"9238:197:0","trueBody":{"id":979,"nodeType":"Block","src":"9249:186:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203e3d2062206e6f7420736174697366696564205b696e745d","id":963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9272:35:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_9dd34d7cd7d190bc9855e4326f563fd4539c0d764699b480d53bfd72aa5807a6","typeString":"literal_string \"Error: a >= b not satisfied [int]\""},"value":"Error: a >= b not satisfied [int]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9dd34d7cd7d190bc9855e4326f563fd4539c0d764699b480d53bfd72aa5807a6","typeString":"literal_string \"Error: a >= b not satisfied [int]\""}],"id":962,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"9268:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9268:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":965,"nodeType":"EmitStatement","src":"9263:45:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652061","id":967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9341:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},"value":" Value a"},{"id":968,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":954,"src":"9354:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":966,"name":"log_named_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"9327:13:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$","typeString":"function (string memory,int256)"}},"id":969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9327:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":970,"nodeType":"EmitStatement","src":"9322:34:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652062","id":972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9389:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},"value":" Value b"},{"id":973,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":956,"src":"9402:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":971,"name":"log_named_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"9375:13:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$","typeString":"function (string memory,int256)"}},"id":974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9375:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":975,"nodeType":"EmitStatement","src":"9370:34:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":976,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"9418:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9418:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":978,"nodeType":"ExpressionStatement","src":"9418:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGe","nameLocation":"9196:8:0","parameters":{"id":957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":954,"mutability":"mutable","name":"a","nameLocation":"9209:1:0","nodeType":"VariableDeclaration","scope":982,"src":"9205:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":953,"name":"int","nodeType":"ElementaryTypeName","src":"9205:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":956,"mutability":"mutable","name":"b","nameLocation":"9216:1:0","nodeType":"VariableDeclaration","scope":982,"src":"9212:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":955,"name":"int","nodeType":"ElementaryTypeName","src":"9212:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9204:14:0"},"returnParameters":{"id":958,"nodeType":"ParameterList","parameters":[],"src":"9228:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1007,"nodeType":"FunctionDefinition","src":"9446:175:0","nodes":[],"body":{"id":1006,"nodeType":"Block","src":"9506:115:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":991,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":984,"src":"9520:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":992,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":986,"src":"9524:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9520:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1005,"nodeType":"IfStatement","src":"9516:99:0","trueBody":{"id":1004,"nodeType":"Block","src":"9527:88:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9563:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":996,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":988,"src":"9572:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":994,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"9546:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9546:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":998,"nodeType":"EmitStatement","src":"9541:35:0"},{"expression":{"arguments":[{"id":1000,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":984,"src":"9599:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1001,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":986,"src":"9602:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":999,"name":"assertGe","nodeType":"Identifier","overloadedDeclarations":[927,952,982,1007],"referencedDeclaration":982,"src":"9590:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$returns$__$","typeString":"function (int256,int256)"}},"id":1002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9590:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1003,"nodeType":"ExpressionStatement","src":"9590:14:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGe","nameLocation":"9455:8:0","parameters":{"id":989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":984,"mutability":"mutable","name":"a","nameLocation":"9468:1:0","nodeType":"VariableDeclaration","scope":1007,"src":"9464:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":983,"name":"int","nodeType":"ElementaryTypeName","src":"9464:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":986,"mutability":"mutable","name":"b","nameLocation":"9475:1:0","nodeType":"VariableDeclaration","scope":1007,"src":"9471:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":985,"name":"int","nodeType":"ElementaryTypeName","src":"9471:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":988,"mutability":"mutable","name":"err","nameLocation":"9492:3:0","nodeType":"VariableDeclaration","scope":1007,"src":"9478:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":987,"name":"string","nodeType":"ElementaryTypeName","src":"9478:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9463:33:0"},"returnParameters":{"id":990,"nodeType":"ParameterList","parameters":[],"src":"9506:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1041,"nodeType":"FunctionDefinition","src":"9626:320:0","nodes":[],"body":{"id":1040,"nodeType":"Block","src":"9689:257:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1016,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1009,"src":"9703:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1017,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1011,"src":"9707:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"9703:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1039,"nodeType":"IfStatement","src":"9699:241:0","trueBody":{"id":1038,"nodeType":"Block","src":"9710:230:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203e3d2062206e6f7420736174697366696564205b646563696d616c20696e745d","id":1020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9733:43:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_0f02f65375ca93c3f3c485b8b2455303d1a8668a2b626cba00789d1c4ebd8736","typeString":"literal_string \"Error: a >= b not satisfied [decimal int]\""},"value":"Error: a >= b not satisfied [decimal int]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0f02f65375ca93c3f3c485b8b2455303d1a8668a2b626cba00789d1c4ebd8736","typeString":"literal_string \"Error: a >= b not satisfied [decimal int]\""}],"id":1019,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"9729:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":1021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9729:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1022,"nodeType":"EmitStatement","src":"9724:53:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652061","id":1024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9818:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},"value":" Value a"},{"id":1025,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1009,"src":"9831:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1026,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1013,"src":"9834:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1023,"name":"log_named_decimal_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53,"src":"9796:21:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (string memory,int256,uint256)"}},"id":1027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9796:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1028,"nodeType":"EmitStatement","src":"9791:52:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652062","id":1030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9884:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},"value":" Value b"},{"id":1031,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1011,"src":"9897:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1032,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1013,"src":"9900:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1029,"name":"log_named_decimal_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53,"src":"9862:21:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (string memory,int256,uint256)"}},"id":1033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9862:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1034,"nodeType":"EmitStatement","src":"9857:52:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1035,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"9923:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9923:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1037,"nodeType":"ExpressionStatement","src":"9923:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGeDecimal","nameLocation":"9635:15:0","parameters":{"id":1014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1009,"mutability":"mutable","name":"a","nameLocation":"9655:1:0","nodeType":"VariableDeclaration","scope":1041,"src":"9651:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1008,"name":"int","nodeType":"ElementaryTypeName","src":"9651:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1011,"mutability":"mutable","name":"b","nameLocation":"9662:1:0","nodeType":"VariableDeclaration","scope":1041,"src":"9658:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1010,"name":"int","nodeType":"ElementaryTypeName","src":"9658:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1013,"mutability":"mutable","name":"decimals","nameLocation":"9670:8:0","nodeType":"VariableDeclaration","scope":1041,"src":"9665:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1012,"name":"uint","nodeType":"ElementaryTypeName","src":"9665:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9650:29:0"},"returnParameters":{"id":1015,"nodeType":"ParameterList","parameters":[],"src":"9689:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1069,"nodeType":"FunctionDefinition","src":"9951:214:0","nodes":[],"body":{"id":1068,"nodeType":"Block","src":"10033:132:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1052,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1043,"src":"10047:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1053,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1045,"src":"10051:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"10047:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1067,"nodeType":"IfStatement","src":"10043:116:0","trueBody":{"id":1066,"nodeType":"Block","src":"10054:105:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":1056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10090:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":1057,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1049,"src":"10099:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1055,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"10073:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":1058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10073:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1059,"nodeType":"EmitStatement","src":"10068:35:0"},{"expression":{"arguments":[{"id":1061,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1043,"src":"10133:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1062,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1045,"src":"10136:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1063,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1047,"src":"10139:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1060,"name":"assertGeDecimal","nodeType":"Identifier","overloadedDeclarations":[1041,1069,1103,1131],"referencedDeclaration":1041,"src":"10117:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (int256,int256,uint256)"}},"id":1064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10117:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1065,"nodeType":"ExpressionStatement","src":"10117:31:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGeDecimal","nameLocation":"9960:15:0","parameters":{"id":1050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1043,"mutability":"mutable","name":"a","nameLocation":"9980:1:0","nodeType":"VariableDeclaration","scope":1069,"src":"9976:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1042,"name":"int","nodeType":"ElementaryTypeName","src":"9976:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1045,"mutability":"mutable","name":"b","nameLocation":"9987:1:0","nodeType":"VariableDeclaration","scope":1069,"src":"9983:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1044,"name":"int","nodeType":"ElementaryTypeName","src":"9983:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1047,"mutability":"mutable","name":"decimals","nameLocation":"9995:8:0","nodeType":"VariableDeclaration","scope":1069,"src":"9990:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1046,"name":"uint","nodeType":"ElementaryTypeName","src":"9990:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1049,"mutability":"mutable","name":"err","nameLocation":"10019:3:0","nodeType":"VariableDeclaration","scope":1069,"src":"10005:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1048,"name":"string","nodeType":"ElementaryTypeName","src":"10005:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9975:48:0"},"returnParameters":{"id":1051,"nodeType":"ParameterList","parameters":[],"src":"10033:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1103,"nodeType":"FunctionDefinition","src":"10170:325:0","nodes":[],"body":{"id":1102,"nodeType":"Block","src":"10235:260:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1078,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1071,"src":"10249:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1079,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1073,"src":"10253:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10249:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1101,"nodeType":"IfStatement","src":"10245:244:0","trueBody":{"id":1100,"nodeType":"Block","src":"10256:233:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203e3d2062206e6f7420736174697366696564205b646563696d616c2075696e745d","id":1082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10279:44:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1192304a51ee70969886576ac83224cad7adddc5aab218616c612e9fa634c616","typeString":"literal_string \"Error: a >= b not satisfied [decimal uint]\""},"value":"Error: a >= b not satisfied [decimal uint]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1192304a51ee70969886576ac83224cad7adddc5aab218616c612e9fa634c616","typeString":"literal_string \"Error: a >= b not satisfied [decimal uint]\""}],"id":1081,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"10275:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":1083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10275:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1084,"nodeType":"EmitStatement","src":"10270:54:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652061","id":1086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10366:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},"value":" Value a"},{"id":1087,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1071,"src":"10379:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1088,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1075,"src":"10382:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1085,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61,"src":"10343:22:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":1089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10343:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1090,"nodeType":"EmitStatement","src":"10338:53:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652062","id":1092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10433:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},"value":" Value b"},{"id":1093,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1073,"src":"10446:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1094,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1075,"src":"10449:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1091,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61,"src":"10410:22:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":1095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10410:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1096,"nodeType":"EmitStatement","src":"10405:53:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1097,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"10472:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10472:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1099,"nodeType":"ExpressionStatement","src":"10472:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGeDecimal","nameLocation":"10179:15:0","parameters":{"id":1076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1071,"mutability":"mutable","name":"a","nameLocation":"10200:1:0","nodeType":"VariableDeclaration","scope":1103,"src":"10195:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1070,"name":"uint","nodeType":"ElementaryTypeName","src":"10195:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1073,"mutability":"mutable","name":"b","nameLocation":"10208:1:0","nodeType":"VariableDeclaration","scope":1103,"src":"10203:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1072,"name":"uint","nodeType":"ElementaryTypeName","src":"10203:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1075,"mutability":"mutable","name":"decimals","nameLocation":"10216:8:0","nodeType":"VariableDeclaration","scope":1103,"src":"10211:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1074,"name":"uint","nodeType":"ElementaryTypeName","src":"10211:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10194:31:0"},"returnParameters":{"id":1077,"nodeType":"ParameterList","parameters":[],"src":"10235:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1131,"nodeType":"FunctionDefinition","src":"10500:216:0","nodes":[],"body":{"id":1130,"nodeType":"Block","src":"10584:132:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1114,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1105,"src":"10598:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1115,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1107,"src":"10602:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10598:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1129,"nodeType":"IfStatement","src":"10594:116:0","trueBody":{"id":1128,"nodeType":"Block","src":"10605:105:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":1118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10641:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":1119,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1111,"src":"10650:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1117,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"10624:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":1120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10624:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1121,"nodeType":"EmitStatement","src":"10619:35:0"},{"expression":{"arguments":[{"id":1123,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1105,"src":"10684:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1124,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1107,"src":"10687:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1125,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1109,"src":"10690:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1122,"name":"assertGeDecimal","nodeType":"Identifier","overloadedDeclarations":[1041,1069,1103,1131],"referencedDeclaration":1103,"src":"10668:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":1126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10668:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1127,"nodeType":"ExpressionStatement","src":"10668:31:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGeDecimal","nameLocation":"10509:15:0","parameters":{"id":1112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1105,"mutability":"mutable","name":"a","nameLocation":"10530:1:0","nodeType":"VariableDeclaration","scope":1131,"src":"10525:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1104,"name":"uint","nodeType":"ElementaryTypeName","src":"10525:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1107,"mutability":"mutable","name":"b","nameLocation":"10538:1:0","nodeType":"VariableDeclaration","scope":1131,"src":"10533:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1106,"name":"uint","nodeType":"ElementaryTypeName","src":"10533:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1109,"mutability":"mutable","name":"decimals","nameLocation":"10546:8:0","nodeType":"VariableDeclaration","scope":1131,"src":"10541:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1108,"name":"uint","nodeType":"ElementaryTypeName","src":"10541:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1111,"mutability":"mutable","name":"err","nameLocation":"10570:3:0","nodeType":"VariableDeclaration","scope":1131,"src":"10556:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1110,"name":"string","nodeType":"ElementaryTypeName","src":"10556:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10524:50:0"},"returnParameters":{"id":1113,"nodeType":"ParameterList","parameters":[],"src":"10584:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1161,"nodeType":"FunctionDefinition","src":"10722:259:0","nodes":[],"body":{"id":1160,"nodeType":"Block","src":"10765:216:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1138,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1133,"src":"10779:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1139,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1135,"src":"10784:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10779:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1159,"nodeType":"IfStatement","src":"10775:200:0","trueBody":{"id":1158,"nodeType":"Block","src":"10787:188:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203c2062206e6f7420736174697366696564205b75696e745d","id":1142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10810:35:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4a5f85d4936ddbc273c762d0b3a90fefdc47bf4d5496816359b86f70b5c74f9","typeString":"literal_string \"Error: a < b not satisfied [uint]\""},"value":"Error: a < b not satisfied [uint]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e4a5f85d4936ddbc273c762d0b3a90fefdc47bf4d5496816359b86f70b5c74f9","typeString":"literal_string \"Error: a < b not satisfied [uint]\""}],"id":1141,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"10806:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":1143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10806:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1144,"nodeType":"EmitStatement","src":"10801:45:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652061","id":1146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10880:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},"value":" Value a"},{"id":1147,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1133,"src":"10893:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1145,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"10865:14:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":1148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10865:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1149,"nodeType":"EmitStatement","src":"10860:35:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652062","id":1151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10929:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},"value":" Value b"},{"id":1152,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1135,"src":"10942:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1150,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"10914:14:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":1153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10914:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1154,"nodeType":"EmitStatement","src":"10909:35:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1155,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"10958:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10958:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1157,"nodeType":"ExpressionStatement","src":"10958:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLt","nameLocation":"10731:8:0","parameters":{"id":1136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1133,"mutability":"mutable","name":"a","nameLocation":"10745:1:0","nodeType":"VariableDeclaration","scope":1161,"src":"10740:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1132,"name":"uint","nodeType":"ElementaryTypeName","src":"10740:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1135,"mutability":"mutable","name":"b","nameLocation":"10753:1:0","nodeType":"VariableDeclaration","scope":1161,"src":"10748:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1134,"name":"uint","nodeType":"ElementaryTypeName","src":"10748:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10739:16:0"},"returnParameters":{"id":1137,"nodeType":"ParameterList","parameters":[],"src":"10765:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1186,"nodeType":"FunctionDefinition","src":"10986:178:0","nodes":[],"body":{"id":1185,"nodeType":"Block","src":"11048:116:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1170,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1163,"src":"11062:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1171,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1165,"src":"11067:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11062:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1184,"nodeType":"IfStatement","src":"11058:100:0","trueBody":{"id":1183,"nodeType":"Block","src":"11070:88:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":1174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11106:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":1175,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1167,"src":"11115:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1173,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"11089:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":1176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11089:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1177,"nodeType":"EmitStatement","src":"11084:35:0"},{"expression":{"arguments":[{"id":1179,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1163,"src":"11142:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1180,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1165,"src":"11145:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1178,"name":"assertLt","nodeType":"Identifier","overloadedDeclarations":[1161,1186,1216,1241],"referencedDeclaration":1161,"src":"11133:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":1181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11133:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1182,"nodeType":"ExpressionStatement","src":"11133:14:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLt","nameLocation":"10995:8:0","parameters":{"id":1168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1163,"mutability":"mutable","name":"a","nameLocation":"11009:1:0","nodeType":"VariableDeclaration","scope":1186,"src":"11004:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1162,"name":"uint","nodeType":"ElementaryTypeName","src":"11004:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1165,"mutability":"mutable","name":"b","nameLocation":"11017:1:0","nodeType":"VariableDeclaration","scope":1186,"src":"11012:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1164,"name":"uint","nodeType":"ElementaryTypeName","src":"11012:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1167,"mutability":"mutable","name":"err","nameLocation":"11034:3:0","nodeType":"VariableDeclaration","scope":1186,"src":"11020:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1166,"name":"string","nodeType":"ElementaryTypeName","src":"11020:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11003:35:0"},"returnParameters":{"id":1169,"nodeType":"ParameterList","parameters":[],"src":"11048:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1216,"nodeType":"FunctionDefinition","src":"11169:254:0","nodes":[],"body":{"id":1215,"nodeType":"Block","src":"11210:213:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1193,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1188,"src":"11224:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1194,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"11229:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11224:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1214,"nodeType":"IfStatement","src":"11220:197:0","trueBody":{"id":1213,"nodeType":"Block","src":"11232:185:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203c2062206e6f7420736174697366696564205b696e745d","id":1197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11255:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_62edb5e296dde1308ab599c3156f51dcd32b6d82784df4b0c0246d307d4bd055","typeString":"literal_string \"Error: a < b not satisfied [int]\""},"value":"Error: a < b not satisfied [int]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_62edb5e296dde1308ab599c3156f51dcd32b6d82784df4b0c0246d307d4bd055","typeString":"literal_string \"Error: a < b not satisfied [int]\""}],"id":1196,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"11251:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":1198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11251:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1199,"nodeType":"EmitStatement","src":"11246:44:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652061","id":1201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11323:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},"value":" Value a"},{"id":1202,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1188,"src":"11336:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":1200,"name":"log_named_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"11309:13:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$","typeString":"function (string memory,int256)"}},"id":1203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11309:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1204,"nodeType":"EmitStatement","src":"11304:34:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652062","id":1206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11371:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},"value":" Value b"},{"id":1207,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"11384:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":1205,"name":"log_named_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"11357:13:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$","typeString":"function (string memory,int256)"}},"id":1208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11357:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1209,"nodeType":"EmitStatement","src":"11352:34:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1210,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"11400:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11400:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1212,"nodeType":"ExpressionStatement","src":"11400:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLt","nameLocation":"11178:8:0","parameters":{"id":1191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1188,"mutability":"mutable","name":"a","nameLocation":"11191:1:0","nodeType":"VariableDeclaration","scope":1216,"src":"11187:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1187,"name":"int","nodeType":"ElementaryTypeName","src":"11187:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1190,"mutability":"mutable","name":"b","nameLocation":"11198:1:0","nodeType":"VariableDeclaration","scope":1216,"src":"11194:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1189,"name":"int","nodeType":"ElementaryTypeName","src":"11194:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"11186:14:0"},"returnParameters":{"id":1192,"nodeType":"ParameterList","parameters":[],"src":"11210:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1241,"nodeType":"FunctionDefinition","src":"11428:176:0","nodes":[],"body":{"id":1240,"nodeType":"Block","src":"11488:116:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1225,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1218,"src":"11502:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1226,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1220,"src":"11507:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11502:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1239,"nodeType":"IfStatement","src":"11498:100:0","trueBody":{"id":1238,"nodeType":"Block","src":"11510:88:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":1229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11546:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":1230,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1222,"src":"11555:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1228,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"11529:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":1231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11529:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1232,"nodeType":"EmitStatement","src":"11524:35:0"},{"expression":{"arguments":[{"id":1234,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1218,"src":"11582:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1235,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1220,"src":"11585:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":1233,"name":"assertLt","nodeType":"Identifier","overloadedDeclarations":[1161,1186,1216,1241],"referencedDeclaration":1216,"src":"11573:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$returns$__$","typeString":"function (int256,int256)"}},"id":1236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11573:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1237,"nodeType":"ExpressionStatement","src":"11573:14:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLt","nameLocation":"11437:8:0","parameters":{"id":1223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1218,"mutability":"mutable","name":"a","nameLocation":"11450:1:0","nodeType":"VariableDeclaration","scope":1241,"src":"11446:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1217,"name":"int","nodeType":"ElementaryTypeName","src":"11446:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1220,"mutability":"mutable","name":"b","nameLocation":"11457:1:0","nodeType":"VariableDeclaration","scope":1241,"src":"11453:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1219,"name":"int","nodeType":"ElementaryTypeName","src":"11453:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1222,"mutability":"mutable","name":"err","nameLocation":"11474:3:0","nodeType":"VariableDeclaration","scope":1241,"src":"11460:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1221,"name":"string","nodeType":"ElementaryTypeName","src":"11460:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11445:33:0"},"returnParameters":{"id":1224,"nodeType":"ParameterList","parameters":[],"src":"11488:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1275,"nodeType":"FunctionDefinition","src":"11609:320:0","nodes":[],"body":{"id":1274,"nodeType":"Block","src":"11672:257:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1250,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1243,"src":"11686:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1251,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1245,"src":"11691:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11686:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1273,"nodeType":"IfStatement","src":"11682:241:0","trueBody":{"id":1272,"nodeType":"Block","src":"11694:229:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203c2062206e6f7420736174697366696564205b646563696d616c20696e745d","id":1254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11717:42:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a598de9e78c706978d3e40be19632446c2f234152ee02226f88acff1b63da79a","typeString":"literal_string \"Error: a < b not satisfied [decimal int]\""},"value":"Error: a < b not satisfied [decimal int]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a598de9e78c706978d3e40be19632446c2f234152ee02226f88acff1b63da79a","typeString":"literal_string \"Error: a < b not satisfied [decimal int]\""}],"id":1253,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"11713:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":1255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11713:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1256,"nodeType":"EmitStatement","src":"11708:52:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652061","id":1258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11801:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},"value":" Value a"},{"id":1259,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1243,"src":"11814:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1260,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1247,"src":"11817:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1257,"name":"log_named_decimal_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53,"src":"11779:21:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (string memory,int256,uint256)"}},"id":1261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11779:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1262,"nodeType":"EmitStatement","src":"11774:52:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652062","id":1264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11867:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},"value":" Value b"},{"id":1265,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1245,"src":"11880:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1266,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1247,"src":"11883:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1263,"name":"log_named_decimal_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53,"src":"11845:21:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (string memory,int256,uint256)"}},"id":1267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11845:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1268,"nodeType":"EmitStatement","src":"11840:52:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1269,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"11906:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11906:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1271,"nodeType":"ExpressionStatement","src":"11906:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLtDecimal","nameLocation":"11618:15:0","parameters":{"id":1248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1243,"mutability":"mutable","name":"a","nameLocation":"11638:1:0","nodeType":"VariableDeclaration","scope":1275,"src":"11634:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1242,"name":"int","nodeType":"ElementaryTypeName","src":"11634:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1245,"mutability":"mutable","name":"b","nameLocation":"11645:1:0","nodeType":"VariableDeclaration","scope":1275,"src":"11641:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1244,"name":"int","nodeType":"ElementaryTypeName","src":"11641:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1247,"mutability":"mutable","name":"decimals","nameLocation":"11653:8:0","nodeType":"VariableDeclaration","scope":1275,"src":"11648:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1246,"name":"uint","nodeType":"ElementaryTypeName","src":"11648:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11633:29:0"},"returnParameters":{"id":1249,"nodeType":"ParameterList","parameters":[],"src":"11672:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1303,"nodeType":"FunctionDefinition","src":"11934:215:0","nodes":[],"body":{"id":1302,"nodeType":"Block","src":"12016:133:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1286,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1277,"src":"12030:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1287,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"12035:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"12030:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1301,"nodeType":"IfStatement","src":"12026:117:0","trueBody":{"id":1300,"nodeType":"Block","src":"12038:105:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":1290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12074:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":1291,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1283,"src":"12083:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1289,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"12057:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":1292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12057:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1293,"nodeType":"EmitStatement","src":"12052:35:0"},{"expression":{"arguments":[{"id":1295,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1277,"src":"12117:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1296,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"12120:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1297,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1281,"src":"12123:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1294,"name":"assertLtDecimal","nodeType":"Identifier","overloadedDeclarations":[1275,1303,1337,1365],"referencedDeclaration":1275,"src":"12101:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (int256,int256,uint256)"}},"id":1298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12101:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1299,"nodeType":"ExpressionStatement","src":"12101:31:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLtDecimal","nameLocation":"11943:15:0","parameters":{"id":1284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1277,"mutability":"mutable","name":"a","nameLocation":"11963:1:0","nodeType":"VariableDeclaration","scope":1303,"src":"11959:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1276,"name":"int","nodeType":"ElementaryTypeName","src":"11959:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1279,"mutability":"mutable","name":"b","nameLocation":"11970:1:0","nodeType":"VariableDeclaration","scope":1303,"src":"11966:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1278,"name":"int","nodeType":"ElementaryTypeName","src":"11966:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1281,"mutability":"mutable","name":"decimals","nameLocation":"11978:8:0","nodeType":"VariableDeclaration","scope":1303,"src":"11973:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1280,"name":"uint","nodeType":"ElementaryTypeName","src":"11973:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1283,"mutability":"mutable","name":"err","nameLocation":"12002:3:0","nodeType":"VariableDeclaration","scope":1303,"src":"11988:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1282,"name":"string","nodeType":"ElementaryTypeName","src":"11988:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11958:48:0"},"returnParameters":{"id":1285,"nodeType":"ParameterList","parameters":[],"src":"12016:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1337,"nodeType":"FunctionDefinition","src":"12154:325:0","nodes":[],"body":{"id":1336,"nodeType":"Block","src":"12219:260:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1312,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1305,"src":"12233:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1313,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1307,"src":"12238:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12233:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1335,"nodeType":"IfStatement","src":"12229:244:0","trueBody":{"id":1334,"nodeType":"Block","src":"12241:232:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203c2062206e6f7420736174697366696564205b646563696d616c2075696e745d","id":1316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12264:43:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8057606f9e67842ac0149f4a7ffdaca59331aea176cd1419e89b7b4b21bbc6d9","typeString":"literal_string \"Error: a < b not satisfied [decimal uint]\""},"value":"Error: a < b not satisfied [decimal uint]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8057606f9e67842ac0149f4a7ffdaca59331aea176cd1419e89b7b4b21bbc6d9","typeString":"literal_string \"Error: a < b not satisfied [decimal uint]\""}],"id":1315,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"12260:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":1317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12260:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1318,"nodeType":"EmitStatement","src":"12255:53:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652061","id":1320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12350:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},"value":" Value a"},{"id":1321,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1305,"src":"12363:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1322,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"12366:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1319,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61,"src":"12327:22:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":1323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12327:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1324,"nodeType":"EmitStatement","src":"12322:53:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652062","id":1326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12417:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},"value":" Value b"},{"id":1327,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1307,"src":"12430:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1328,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"12433:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1325,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61,"src":"12394:22:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":1329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12394:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1330,"nodeType":"EmitStatement","src":"12389:53:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1331,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"12456:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12456:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1333,"nodeType":"ExpressionStatement","src":"12456:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLtDecimal","nameLocation":"12163:15:0","parameters":{"id":1310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1305,"mutability":"mutable","name":"a","nameLocation":"12184:1:0","nodeType":"VariableDeclaration","scope":1337,"src":"12179:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1304,"name":"uint","nodeType":"ElementaryTypeName","src":"12179:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1307,"mutability":"mutable","name":"b","nameLocation":"12192:1:0","nodeType":"VariableDeclaration","scope":1337,"src":"12187:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1306,"name":"uint","nodeType":"ElementaryTypeName","src":"12187:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1309,"mutability":"mutable","name":"decimals","nameLocation":"12200:8:0","nodeType":"VariableDeclaration","scope":1337,"src":"12195:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1308,"name":"uint","nodeType":"ElementaryTypeName","src":"12195:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12178:31:0"},"returnParameters":{"id":1311,"nodeType":"ParameterList","parameters":[],"src":"12219:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1365,"nodeType":"FunctionDefinition","src":"12484:217:0","nodes":[],"body":{"id":1364,"nodeType":"Block","src":"12568:133:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1348,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1339,"src":"12582:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1349,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1341,"src":"12587:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12582:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1363,"nodeType":"IfStatement","src":"12578:117:0","trueBody":{"id":1362,"nodeType":"Block","src":"12590:105:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":1352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12626:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":1353,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1345,"src":"12635:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1351,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"12609:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":1354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12609:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1355,"nodeType":"EmitStatement","src":"12604:35:0"},{"expression":{"arguments":[{"id":1357,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1339,"src":"12669:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1358,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1341,"src":"12672:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1359,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1343,"src":"12675:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1356,"name":"assertLtDecimal","nodeType":"Identifier","overloadedDeclarations":[1275,1303,1337,1365],"referencedDeclaration":1337,"src":"12653:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":1360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12653:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1361,"nodeType":"ExpressionStatement","src":"12653:31:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLtDecimal","nameLocation":"12493:15:0","parameters":{"id":1346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1339,"mutability":"mutable","name":"a","nameLocation":"12514:1:0","nodeType":"VariableDeclaration","scope":1365,"src":"12509:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1338,"name":"uint","nodeType":"ElementaryTypeName","src":"12509:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1341,"mutability":"mutable","name":"b","nameLocation":"12522:1:0","nodeType":"VariableDeclaration","scope":1365,"src":"12517:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1340,"name":"uint","nodeType":"ElementaryTypeName","src":"12517:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1343,"mutability":"mutable","name":"decimals","nameLocation":"12530:8:0","nodeType":"VariableDeclaration","scope":1365,"src":"12525:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1342,"name":"uint","nodeType":"ElementaryTypeName","src":"12525:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1345,"mutability":"mutable","name":"err","nameLocation":"12554:3:0","nodeType":"VariableDeclaration","scope":1365,"src":"12540:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1344,"name":"string","nodeType":"ElementaryTypeName","src":"12540:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12508:50:0"},"returnParameters":{"id":1347,"nodeType":"ParameterList","parameters":[],"src":"12568:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1395,"nodeType":"FunctionDefinition","src":"12707:259:0","nodes":[],"body":{"id":1394,"nodeType":"Block","src":"12750:216:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1372,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1367,"src":"12764:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1373,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1369,"src":"12768:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12764:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1393,"nodeType":"IfStatement","src":"12760:200:0","trueBody":{"id":1392,"nodeType":"Block","src":"12771:189:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203c3d2062206e6f7420736174697366696564205b75696e745d","id":1376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12794:36:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d5420eec28b94f3fd7dd1c7ce81f45c79bfa9fab37300faf965a8d6272e32ff","typeString":"literal_string \"Error: a <= b not satisfied [uint]\""},"value":"Error: a <= b not satisfied [uint]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d5420eec28b94f3fd7dd1c7ce81f45c79bfa9fab37300faf965a8d6272e32ff","typeString":"literal_string \"Error: a <= b not satisfied [uint]\""}],"id":1375,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"12790:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":1377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12790:41:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1378,"nodeType":"EmitStatement","src":"12785:46:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652061","id":1380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12865:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},"value":" Value a"},{"id":1381,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1367,"src":"12878:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1379,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"12850:14:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":1382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12850:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1383,"nodeType":"EmitStatement","src":"12845:35:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652062","id":1385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12914:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},"value":" Value b"},{"id":1386,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1369,"src":"12927:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1384,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"12899:14:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":1387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12899:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1388,"nodeType":"EmitStatement","src":"12894:35:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1389,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"12943:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12943:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1391,"nodeType":"ExpressionStatement","src":"12943:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLe","nameLocation":"12716:8:0","parameters":{"id":1370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1367,"mutability":"mutable","name":"a","nameLocation":"12730:1:0","nodeType":"VariableDeclaration","scope":1395,"src":"12725:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1366,"name":"uint","nodeType":"ElementaryTypeName","src":"12725:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1369,"mutability":"mutable","name":"b","nameLocation":"12738:1:0","nodeType":"VariableDeclaration","scope":1395,"src":"12733:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1368,"name":"uint","nodeType":"ElementaryTypeName","src":"12733:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12724:16:0"},"returnParameters":{"id":1371,"nodeType":"ParameterList","parameters":[],"src":"12750:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1420,"nodeType":"FunctionDefinition","src":"12971:177:0","nodes":[],"body":{"id":1419,"nodeType":"Block","src":"13033:115:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1404,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1397,"src":"13047:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1405,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1399,"src":"13051:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13047:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1418,"nodeType":"IfStatement","src":"13043:99:0","trueBody":{"id":1417,"nodeType":"Block","src":"13054:88:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":1408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13090:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":1409,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1401,"src":"13099:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1407,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"13073:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":1410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13073:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1411,"nodeType":"EmitStatement","src":"13068:35:0"},{"expression":{"arguments":[{"id":1413,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1397,"src":"13126:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1414,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1399,"src":"13129:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1412,"name":"assertLe","nodeType":"Identifier","overloadedDeclarations":[1395,1420,1450,1475],"referencedDeclaration":1395,"src":"13117:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":1415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13117:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1416,"nodeType":"ExpressionStatement","src":"13117:14:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLe","nameLocation":"12980:8:0","parameters":{"id":1402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1397,"mutability":"mutable","name":"a","nameLocation":"12994:1:0","nodeType":"VariableDeclaration","scope":1420,"src":"12989:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1396,"name":"uint","nodeType":"ElementaryTypeName","src":"12989:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1399,"mutability":"mutable","name":"b","nameLocation":"13002:1:0","nodeType":"VariableDeclaration","scope":1420,"src":"12997:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1398,"name":"uint","nodeType":"ElementaryTypeName","src":"12997:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1401,"mutability":"mutable","name":"err","nameLocation":"13019:3:0","nodeType":"VariableDeclaration","scope":1420,"src":"13005:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1400,"name":"string","nodeType":"ElementaryTypeName","src":"13005:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12988:35:0"},"returnParameters":{"id":1403,"nodeType":"ParameterList","parameters":[],"src":"13033:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1450,"nodeType":"FunctionDefinition","src":"13153:254:0","nodes":[],"body":{"id":1449,"nodeType":"Block","src":"13194:213:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1427,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1422,"src":"13208:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1428,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1424,"src":"13212:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"13208:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1448,"nodeType":"IfStatement","src":"13204:197:0","trueBody":{"id":1447,"nodeType":"Block","src":"13215:186:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203c3d2062206e6f7420736174697366696564205b696e745d","id":1431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13238:35:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_558ba41c44b763b352271d6c22f0cb02f5c0c4dbb25ed68172916a4e6a662555","typeString":"literal_string \"Error: a <= b not satisfied [int]\""},"value":"Error: a <= b not satisfied [int]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_558ba41c44b763b352271d6c22f0cb02f5c0c4dbb25ed68172916a4e6a662555","typeString":"literal_string \"Error: a <= b not satisfied [int]\""}],"id":1430,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"13234:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":1432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13234:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1433,"nodeType":"EmitStatement","src":"13229:45:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652061","id":1435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13307:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},"value":" Value a"},{"id":1436,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1422,"src":"13320:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":1434,"name":"log_named_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"13293:13:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$","typeString":"function (string memory,int256)"}},"id":1437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13293:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1438,"nodeType":"EmitStatement","src":"13288:34:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652062","id":1440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13355:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},"value":" Value b"},{"id":1441,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1424,"src":"13368:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":1439,"name":"log_named_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"13341:13:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$","typeString":"function (string memory,int256)"}},"id":1442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13341:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1443,"nodeType":"EmitStatement","src":"13336:34:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1444,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"13384:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13384:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1446,"nodeType":"ExpressionStatement","src":"13384:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLe","nameLocation":"13162:8:0","parameters":{"id":1425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1422,"mutability":"mutable","name":"a","nameLocation":"13175:1:0","nodeType":"VariableDeclaration","scope":1450,"src":"13171:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1421,"name":"int","nodeType":"ElementaryTypeName","src":"13171:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1424,"mutability":"mutable","name":"b","nameLocation":"13182:1:0","nodeType":"VariableDeclaration","scope":1450,"src":"13178:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1423,"name":"int","nodeType":"ElementaryTypeName","src":"13178:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"13170:14:0"},"returnParameters":{"id":1426,"nodeType":"ParameterList","parameters":[],"src":"13194:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1475,"nodeType":"FunctionDefinition","src":"13412:175:0","nodes":[],"body":{"id":1474,"nodeType":"Block","src":"13472:115:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1459,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1452,"src":"13486:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1460,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1454,"src":"13490:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"13486:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1473,"nodeType":"IfStatement","src":"13482:99:0","trueBody":{"id":1472,"nodeType":"Block","src":"13493:88:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":1463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13529:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":1464,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1456,"src":"13538:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1462,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"13512:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":1465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13512:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1466,"nodeType":"EmitStatement","src":"13507:35:0"},{"expression":{"arguments":[{"id":1468,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1452,"src":"13565:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1469,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1454,"src":"13568:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":1467,"name":"assertLe","nodeType":"Identifier","overloadedDeclarations":[1395,1420,1450,1475],"referencedDeclaration":1450,"src":"13556:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$returns$__$","typeString":"function (int256,int256)"}},"id":1470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13556:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1471,"nodeType":"ExpressionStatement","src":"13556:14:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLe","nameLocation":"13421:8:0","parameters":{"id":1457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1452,"mutability":"mutable","name":"a","nameLocation":"13434:1:0","nodeType":"VariableDeclaration","scope":1475,"src":"13430:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1451,"name":"int","nodeType":"ElementaryTypeName","src":"13430:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1454,"mutability":"mutable","name":"b","nameLocation":"13441:1:0","nodeType":"VariableDeclaration","scope":1475,"src":"13437:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1453,"name":"int","nodeType":"ElementaryTypeName","src":"13437:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1456,"mutability":"mutable","name":"err","nameLocation":"13458:3:0","nodeType":"VariableDeclaration","scope":1475,"src":"13444:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1455,"name":"string","nodeType":"ElementaryTypeName","src":"13444:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13429:33:0"},"returnParameters":{"id":1458,"nodeType":"ParameterList","parameters":[],"src":"13472:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1509,"nodeType":"FunctionDefinition","src":"13592:320:0","nodes":[],"body":{"id":1508,"nodeType":"Block","src":"13655:257:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1484,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1477,"src":"13669:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1485,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1479,"src":"13673:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"13669:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1507,"nodeType":"IfStatement","src":"13665:241:0","trueBody":{"id":1506,"nodeType":"Block","src":"13676:230:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203c3d2062206e6f7420736174697366696564205b646563696d616c20696e745d","id":1488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13699:43:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_a855fbfffc345e8a0ab544e824618dabd995fdc5bda653c7d4869b57deb1d23a","typeString":"literal_string \"Error: a <= b not satisfied [decimal int]\""},"value":"Error: a <= b not satisfied [decimal int]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a855fbfffc345e8a0ab544e824618dabd995fdc5bda653c7d4869b57deb1d23a","typeString":"literal_string \"Error: a <= b not satisfied [decimal int]\""}],"id":1487,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"13695:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":1489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13695:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1490,"nodeType":"EmitStatement","src":"13690:53:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652061","id":1492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13784:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},"value":" Value a"},{"id":1493,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1477,"src":"13797:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1494,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1481,"src":"13800:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1491,"name":"log_named_decimal_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53,"src":"13762:21:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (string memory,int256,uint256)"}},"id":1495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13762:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1496,"nodeType":"EmitStatement","src":"13757:52:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652062","id":1498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13850:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},"value":" Value b"},{"id":1499,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1479,"src":"13863:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1500,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1481,"src":"13866:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1497,"name":"log_named_decimal_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53,"src":"13828:21:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (string memory,int256,uint256)"}},"id":1501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13828:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1502,"nodeType":"EmitStatement","src":"13823:52:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1503,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"13889:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13889:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1505,"nodeType":"ExpressionStatement","src":"13889:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLeDecimal","nameLocation":"13601:15:0","parameters":{"id":1482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1477,"mutability":"mutable","name":"a","nameLocation":"13621:1:0","nodeType":"VariableDeclaration","scope":1509,"src":"13617:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1476,"name":"int","nodeType":"ElementaryTypeName","src":"13617:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1479,"mutability":"mutable","name":"b","nameLocation":"13628:1:0","nodeType":"VariableDeclaration","scope":1509,"src":"13624:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1478,"name":"int","nodeType":"ElementaryTypeName","src":"13624:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1481,"mutability":"mutable","name":"decimals","nameLocation":"13636:8:0","nodeType":"VariableDeclaration","scope":1509,"src":"13631:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1480,"name":"uint","nodeType":"ElementaryTypeName","src":"13631:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13616:29:0"},"returnParameters":{"id":1483,"nodeType":"ParameterList","parameters":[],"src":"13655:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1537,"nodeType":"FunctionDefinition","src":"13917:214:0","nodes":[],"body":{"id":1536,"nodeType":"Block","src":"13999:132:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1520,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1511,"src":"14013:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1521,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1513,"src":"14017:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"14013:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1535,"nodeType":"IfStatement","src":"14009:116:0","trueBody":{"id":1534,"nodeType":"Block","src":"14020:105:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":1524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14056:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":1525,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1517,"src":"14065:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1523,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"14039:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":1526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14039:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1527,"nodeType":"EmitStatement","src":"14034:35:0"},{"expression":{"arguments":[{"id":1529,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1511,"src":"14099:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1530,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1513,"src":"14102:1:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1531,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1515,"src":"14105:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1528,"name":"assertLeDecimal","nodeType":"Identifier","overloadedDeclarations":[1509,1537,1571,1599],"referencedDeclaration":1509,"src":"14083:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (int256,int256,uint256)"}},"id":1532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14083:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1533,"nodeType":"ExpressionStatement","src":"14083:31:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLeDecimal","nameLocation":"13926:15:0","parameters":{"id":1518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1511,"mutability":"mutable","name":"a","nameLocation":"13946:1:0","nodeType":"VariableDeclaration","scope":1537,"src":"13942:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1510,"name":"int","nodeType":"ElementaryTypeName","src":"13942:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1513,"mutability":"mutable","name":"b","nameLocation":"13953:1:0","nodeType":"VariableDeclaration","scope":1537,"src":"13949:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1512,"name":"int","nodeType":"ElementaryTypeName","src":"13949:3:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1515,"mutability":"mutable","name":"decimals","nameLocation":"13961:8:0","nodeType":"VariableDeclaration","scope":1537,"src":"13956:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1514,"name":"uint","nodeType":"ElementaryTypeName","src":"13956:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1517,"mutability":"mutable","name":"err","nameLocation":"13985:3:0","nodeType":"VariableDeclaration","scope":1537,"src":"13971:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1516,"name":"string","nodeType":"ElementaryTypeName","src":"13971:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13941:48:0"},"returnParameters":{"id":1519,"nodeType":"ParameterList","parameters":[],"src":"13999:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1571,"nodeType":"FunctionDefinition","src":"14136:325:0","nodes":[],"body":{"id":1570,"nodeType":"Block","src":"14201:260:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1546,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1539,"src":"14215:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1547,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1541,"src":"14219:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14215:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1569,"nodeType":"IfStatement","src":"14211:244:0","trueBody":{"id":1568,"nodeType":"Block","src":"14222:233:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203c3d2062206e6f7420736174697366696564205b646563696d616c2075696e745d","id":1550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14245:44:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_32bce37771ce1d01bc601c73b51f2296c0d8e2a50c2d19a6ac89c6b917715c51","typeString":"literal_string \"Error: a <= b not satisfied [decimal uint]\""},"value":"Error: a <= b not satisfied [decimal uint]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32bce37771ce1d01bc601c73b51f2296c0d8e2a50c2d19a6ac89c6b917715c51","typeString":"literal_string \"Error: a <= b not satisfied [decimal uint]\""}],"id":1549,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"14241:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":1551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14241:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1552,"nodeType":"EmitStatement","src":"14236:54:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652061","id":1554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14332:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},"value":" Value a"},{"id":1555,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1539,"src":"14345:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1556,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1543,"src":"14348:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c592b529b874569f165479a5a4380dedf000796f11e04035f76bfa7310b31d26","typeString":"literal_string \" Value a\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1553,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61,"src":"14309:22:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":1557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14309:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1558,"nodeType":"EmitStatement","src":"14304:53:0"},{"eventCall":{"arguments":[{"hexValue":"202056616c75652062","id":1560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14399:11:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},"value":" Value b"},{"id":1561,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1541,"src":"14412:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1562,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1543,"src":"14415:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e4b1d025132960c3fb1a582cf2366864dc416744d1b9770aa69fe3749623ebc3","typeString":"literal_string \" Value b\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1559,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61,"src":"14376:22:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":1563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14376:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1564,"nodeType":"EmitStatement","src":"14371:53:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1565,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"14438:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14438:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1567,"nodeType":"ExpressionStatement","src":"14438:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLeDecimal","nameLocation":"14145:15:0","parameters":{"id":1544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1539,"mutability":"mutable","name":"a","nameLocation":"14166:1:0","nodeType":"VariableDeclaration","scope":1571,"src":"14161:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1538,"name":"uint","nodeType":"ElementaryTypeName","src":"14161:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1541,"mutability":"mutable","name":"b","nameLocation":"14174:1:0","nodeType":"VariableDeclaration","scope":1571,"src":"14169:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1540,"name":"uint","nodeType":"ElementaryTypeName","src":"14169:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1543,"mutability":"mutable","name":"decimals","nameLocation":"14182:8:0","nodeType":"VariableDeclaration","scope":1571,"src":"14177:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1542,"name":"uint","nodeType":"ElementaryTypeName","src":"14177:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14160:31:0"},"returnParameters":{"id":1545,"nodeType":"ParameterList","parameters":[],"src":"14201:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1599,"nodeType":"FunctionDefinition","src":"14466:216:0","nodes":[],"body":{"id":1598,"nodeType":"Block","src":"14550:132:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1582,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"14564:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1583,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1575,"src":"14568:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14564:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1597,"nodeType":"IfStatement","src":"14560:116:0","trueBody":{"id":1596,"nodeType":"Block","src":"14571:105:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":1586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14607:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":1587,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1579,"src":"14616:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1585,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"14590:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":1588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14590:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1589,"nodeType":"EmitStatement","src":"14585:35:0"},{"expression":{"arguments":[{"id":1591,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"14650:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1592,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1575,"src":"14653:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1593,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"14656:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1590,"name":"assertGeDecimal","nodeType":"Identifier","overloadedDeclarations":[1041,1069,1103,1131],"referencedDeclaration":1103,"src":"14634:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":1594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14634:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1595,"nodeType":"ExpressionStatement","src":"14634:31:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLeDecimal","nameLocation":"14475:15:0","parameters":{"id":1580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1573,"mutability":"mutable","name":"a","nameLocation":"14496:1:0","nodeType":"VariableDeclaration","scope":1599,"src":"14491:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1572,"name":"uint","nodeType":"ElementaryTypeName","src":"14491:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1575,"mutability":"mutable","name":"b","nameLocation":"14504:1:0","nodeType":"VariableDeclaration","scope":1599,"src":"14499:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1574,"name":"uint","nodeType":"ElementaryTypeName","src":"14499:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1577,"mutability":"mutable","name":"decimals","nameLocation":"14512:8:0","nodeType":"VariableDeclaration","scope":1599,"src":"14507:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1576,"name":"uint","nodeType":"ElementaryTypeName","src":"14507:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1579,"mutability":"mutable","name":"err","nameLocation":"14536:3:0","nodeType":"VariableDeclaration","scope":1599,"src":"14522:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1578,"name":"string","nodeType":"ElementaryTypeName","src":"14522:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14490:50:0"},"returnParameters":{"id":1581,"nodeType":"ParameterList","parameters":[],"src":"14550:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1639,"nodeType":"FunctionDefinition","src":"14688:344:0","nodes":[],"body":{"id":1638,"nodeType":"Block","src":"14749:283:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":1609,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1601,"src":"14790:1:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1607,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14773:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14777:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"14773:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14773:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1606,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14763:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14763:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"arguments":[{"id":1615,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1603,"src":"14824:1:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1613,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14807:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14811:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"14807:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14807:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1612,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14797:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14797:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"14763:64:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1637,"nodeType":"IfStatement","src":"14759:267:0","trueBody":{"id":1636,"nodeType":"Block","src":"14829:197:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203d3d2062206e6f7420736174697366696564205b737472696e675d","id":1620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14852:38:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_58e3ca0e65e73c038df3db6a7cab1bf7de300d13038b802ce0f4435889c48e5e","typeString":"literal_string \"Error: a == b not satisfied [string]\""},"value":"Error: a == b not satisfied [string]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_58e3ca0e65e73c038df3db6a7cab1bf7de300d13038b802ce0f4435889c48e5e","typeString":"literal_string \"Error: a == b not satisfied [string]\""}],"id":1619,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"14848:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":1621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14848:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1622,"nodeType":"EmitStatement","src":"14843:48:0"},{"eventCall":{"arguments":[{"hexValue":"20204578706563746564","id":1624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14927:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},"value":" Expected"},{"id":1625,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1603,"src":"14941:1:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1623,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"14910:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":1626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14910:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1627,"nodeType":"EmitStatement","src":"14905:38:0"},{"eventCall":{"arguments":[{"hexValue":"2020202041637475616c","id":1629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14979:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},"value":" Actual"},{"id":1630,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1601,"src":"14993:1:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1628,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"14962:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":1631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14962:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1632,"nodeType":"EmitStatement","src":"14957:38:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1633,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"15009:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15009:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1635,"nodeType":"ExpressionStatement","src":"15009:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"14697:8:0","parameters":{"id":1604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1601,"mutability":"mutable","name":"a","nameLocation":"14720:1:0","nodeType":"VariableDeclaration","scope":1639,"src":"14706:15:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1600,"name":"string","nodeType":"ElementaryTypeName","src":"14706:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1603,"mutability":"mutable","name":"b","nameLocation":"14737:1:0","nodeType":"VariableDeclaration","scope":1639,"src":"14723:15:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1602,"name":"string","nodeType":"ElementaryTypeName","src":"14723:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14705:34:0"},"returnParameters":{"id":1605,"nodeType":"ParameterList","parameters":[],"src":"14749:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1674,"nodeType":"FunctionDefinition","src":"15037:254:0","nodes":[],"body":{"id":1673,"nodeType":"Block","src":"15117:174:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":1651,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1641,"src":"15158:1:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1649,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15141:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15145:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"15141:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15141:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1648,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15131:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15131:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"arguments":[{"id":1657,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1643,"src":"15192:1:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1655,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15175:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15179:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"15175:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15175:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1654,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15165:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15165:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15131:64:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1672,"nodeType":"IfStatement","src":"15127:158:0","trueBody":{"id":1671,"nodeType":"Block","src":"15197:88:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":1662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15233:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":1663,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1645,"src":"15242:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1661,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"15216:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":1664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15216:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1665,"nodeType":"EmitStatement","src":"15211:35:0"},{"expression":{"arguments":[{"id":1667,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1641,"src":"15269:1:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1668,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1643,"src":"15272:1:0","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"}],"id":1666,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[320,345,375,400,459,484,514,539,1639,1674],"referencedDeclaration":1639,"src":"15260:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":1669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15260:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1670,"nodeType":"ExpressionStatement","src":"15260:14:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"15046:8:0","parameters":{"id":1646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1641,"mutability":"mutable","name":"a","nameLocation":"15069:1:0","nodeType":"VariableDeclaration","scope":1674,"src":"15055:15:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1640,"name":"string","nodeType":"ElementaryTypeName","src":"15055:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1643,"mutability":"mutable","name":"b","nameLocation":"15086:1:0","nodeType":"VariableDeclaration","scope":1674,"src":"15072:15:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1642,"name":"string","nodeType":"ElementaryTypeName","src":"15072:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1645,"mutability":"mutable","name":"err","nameLocation":"15103:3:0","nodeType":"VariableDeclaration","scope":1674,"src":"15089:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1644,"name":"string","nodeType":"ElementaryTypeName","src":"15089:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15054:53:0"},"returnParameters":{"id":1647,"nodeType":"ParameterList","parameters":[],"src":"15117:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1726,"nodeType":"FunctionDefinition","src":"15297:345:0","nodes":[],"body":{"id":1725,"nodeType":"Block","src":"15379:263:0","nodes":[],"statements":[{"expression":{"id":1685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1683,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1681,"src":"15389:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":1684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15394:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"15389:9:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1686,"nodeType":"ExpressionStatement","src":"15389:9:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1687,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1676,"src":"15412:1:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15414:6:0","memberName":"length","nodeType":"MemberAccess","src":"15412:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1689,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1678,"src":"15424:1:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15426:6:0","memberName":"length","nodeType":"MemberAccess","src":"15424:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15412:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1723,"nodeType":"Block","src":"15601:35:0","statements":[{"expression":{"id":1721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1719,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1681,"src":"15615:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":1720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15620:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"15615:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1722,"nodeType":"ExpressionStatement","src":"15615:10:0"}]},"id":1724,"nodeType":"IfStatement","src":"15408:228:0","trueBody":{"id":1718,"nodeType":"Block","src":"15434:161:0","statements":[{"body":{"id":1716,"nodeType":"Block","src":"15484:101:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":1709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1703,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1676,"src":"15506:1:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1705,"indexExpression":{"id":1704,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1693,"src":"15508:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15506:4:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"baseExpression":{"id":1706,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1678,"src":"15514:1:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1708,"indexExpression":{"id":1707,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1693,"src":"15516:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15514:4:0","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"15506:12:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1715,"nodeType":"IfStatement","src":"15502:69:0","trueBody":{"id":1714,"nodeType":"Block","src":"15520:51:0","statements":[{"expression":{"id":1712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1710,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1681,"src":"15542:2:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":1711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15547:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"15542:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1713,"nodeType":"ExpressionStatement","src":"15542:10:0"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1696,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1693,"src":"15465:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":1697,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1676,"src":"15469:1:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15471:6:0","memberName":"length","nodeType":"MemberAccess","src":"15469:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15465:12:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1717,"initializationExpression":{"assignments":[1693],"declarations":[{"constant":false,"id":1693,"mutability":"mutable","name":"i","nameLocation":"15458:1:0","nodeType":"VariableDeclaration","scope":1717,"src":"15453:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1692,"name":"uint","nodeType":"ElementaryTypeName","src":"15453:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1695,"initialValue":{"hexValue":"30","id":1694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15462:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"15453:10:0"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":1701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"15479:3:0","subExpression":{"id":1700,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1693,"src":"15479:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1702,"nodeType":"ExpressionStatement","src":"15479:3:0"},"nodeType":"ForStatement","src":"15448:137:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"checkEq0","nameLocation":"15306:8:0","parameters":{"id":1679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1676,"mutability":"mutable","name":"a","nameLocation":"15328:1:0","nodeType":"VariableDeclaration","scope":1726,"src":"15315:14:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1675,"name":"bytes","nodeType":"ElementaryTypeName","src":"15315:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1678,"mutability":"mutable","name":"b","nameLocation":"15344:1:0","nodeType":"VariableDeclaration","scope":1726,"src":"15331:14:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1677,"name":"bytes","nodeType":"ElementaryTypeName","src":"15331:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15314:32:0"},"returnParameters":{"id":1682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1681,"mutability":"mutable","name":"ok","nameLocation":"15375:2:0","nodeType":"VariableDeclaration","scope":1726,"src":"15370:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1680,"name":"bool","nodeType":"ElementaryTypeName","src":"15370:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15369:9:0"},"scope":1786,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1758,"nodeType":"FunctionDefinition","src":"15647:291:0","nodes":[],"body":{"id":1757,"nodeType":"Block","src":"15707:231:0","nodes":[],"statements":[{"condition":{"id":1737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15721:15:0","subExpression":{"arguments":[{"id":1734,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1728,"src":"15731:1:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1735,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1730,"src":"15734:1:0","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"}],"id":1733,"name":"checkEq0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1726,"src":"15722:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes memory,bytes memory) pure returns (bool)"}},"id":1736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15722:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1756,"nodeType":"IfStatement","src":"15717:215:0","trueBody":{"id":1755,"nodeType":"Block","src":"15738:194:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203d3d2062206e6f7420736174697366696564205b62797465735d","id":1739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15761:37:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_9bb7b728691fe2872efdd27bd07c4a95b3586c3b7ec3afa731a7c21a76e39cfc","typeString":"literal_string \"Error: a == b not satisfied [bytes]\""},"value":"Error: a == b not satisfied [bytes]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9bb7b728691fe2872efdd27bd07c4a95b3586c3b7ec3afa731a7c21a76e39cfc","typeString":"literal_string \"Error: a == b not satisfied [bytes]\""}],"id":1738,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"15757:3:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":1740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15757:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1741,"nodeType":"EmitStatement","src":"15752:47:0"},{"eventCall":{"arguments":[{"hexValue":"20204578706563746564","id":1743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15834:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},"value":" Expected"},{"id":1744,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1730,"src":"15848:1:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \" Expected\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1742,"name":"log_named_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79,"src":"15818:15:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,bytes memory)"}},"id":1745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15818:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1746,"nodeType":"EmitStatement","src":"15813:37:0"},{"eventCall":{"arguments":[{"hexValue":"2020202041637475616c","id":1748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15885:12:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},"value":" Actual"},{"id":1749,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1728,"src":"15899:1:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \" Actual\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1747,"name":"log_named_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79,"src":"15869:15:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,bytes memory)"}},"id":1750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15869:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1751,"nodeType":"EmitStatement","src":"15864:37:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1752,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"15915:4:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15915:6:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1754,"nodeType":"ExpressionStatement","src":"15915:6:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq0","nameLocation":"15656:9:0","parameters":{"id":1731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1728,"mutability":"mutable","name":"a","nameLocation":"15679:1:0","nodeType":"VariableDeclaration","scope":1758,"src":"15666:14:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1727,"name":"bytes","nodeType":"ElementaryTypeName","src":"15666:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1730,"mutability":"mutable","name":"b","nameLocation":"15695:1:0","nodeType":"VariableDeclaration","scope":1758,"src":"15682:14:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1729,"name":"bytes","nodeType":"ElementaryTypeName","src":"15682:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15665:32:0"},"returnParameters":{"id":1732,"nodeType":"ParameterList","parameters":[],"src":"15707:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1785,"nodeType":"FunctionDefinition","src":"15943:205:0","nodes":[],"body":{"id":1784,"nodeType":"Block","src":"16022:126:0","nodes":[],"statements":[{"condition":{"id":1771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16036:15:0","subExpression":{"arguments":[{"id":1768,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1760,"src":"16046:1:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1769,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1762,"src":"16049:1:0","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"}],"id":1767,"name":"checkEq0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1726,"src":"16037:8:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes memory,bytes memory) pure returns (bool)"}},"id":1770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16037:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1783,"nodeType":"IfStatement","src":"16032:110:0","trueBody":{"id":1782,"nodeType":"Block","src":"16053:89:0","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":1773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16089:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":1774,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1764,"src":"16098:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1772,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"16072:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":1775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16072:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1776,"nodeType":"EmitStatement","src":"16067:35:0"},{"expression":{"arguments":[{"id":1778,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1760,"src":"16126:1:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1779,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1762,"src":"16129:1:0","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"}],"id":1777,"name":"assertEq0","nodeType":"Identifier","overloadedDeclarations":[1758,1785],"referencedDeclaration":1758,"src":"16116:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory,bytes memory)"}},"id":1780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16116:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1781,"nodeType":"ExpressionStatement","src":"16116:15:0"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq0","nameLocation":"15952:9:0","parameters":{"id":1765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1760,"mutability":"mutable","name":"a","nameLocation":"15975:1:0","nodeType":"VariableDeclaration","scope":1785,"src":"15962:14:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1759,"name":"bytes","nodeType":"ElementaryTypeName","src":"15962:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1762,"mutability":"mutable","name":"b","nameLocation":"15991:1:0","nodeType":"VariableDeclaration","scope":1785,"src":"15978:14:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1761,"name":"bytes","nodeType":"ElementaryTypeName","src":"15978:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1764,"mutability":"mutable","name":"err","nameLocation":"16008:3:0","nodeType":"VariableDeclaration","scope":1785,"src":"15994:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1763,"name":"string","nodeType":"ElementaryTypeName","src":"15994:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15961:51:0"},"returnParameters":{"id":1766,"nodeType":"ParameterList","parameters":[],"src":"16022:0:0"},"scope":1786,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"DSTest","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[1786],"name":"DSTest","nameLocation":"724:6:0","scope":1787,"usedErrors":[],"usedEvents":[5,9,13,17,21,25,29,33,39,45,53,61,67,73,79,85]}],"license":"GPL-3.0-or-later"},"id":0} \ No newline at end of file